From mirageos-devel-bounces@lists.xenproject.org Wed Oct 01 10:27:14 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 01 Oct 2014 10:27: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 1XZH7l-0004X3-Lu; Wed, 01 Oct 2014 10:27:09 +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 1XZH7k-0004Wl-DG
	for mirageos-devel@lists.xenproject.org; Wed, 01 Oct 2014 10:27:08 +0000
Received: from [85.158.137.68:43597] by server-7.bemta-3.messagelabs.com id
	81/C3-01084-BF6DB245; Wed, 01 Oct 2014 10:27:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-16.tower-31.messagelabs.com!1412159224!10830012!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9818 invoked from network); 1 Oct 2014 10:27:06 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Oct 2014 10:27:06 -0000
Received: by mail-vc0-f180.google.com with SMTP id le20so20715vcb.11
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 01 Oct 2014 03:27: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;
	bh=jYs4mSfRWdxQMiJ/lkE8GdZ5mIJ3gPER8hU/da4C0/M=;
	b=qHzTmnKuWtauQOZDAjvfz5PI7J2zqVKOerjBZ7kU9fQ6TYTV7sXm+ynebdC7a0OIFh
	l4dbFLwUz7K8d5APIzEwy2TGqA3AgJWMZc/3VuFVx3Qk38DN6EZSeGgIITONC8/g96QL
	wGZS/ihN8b6wJOI/syK0Jo7uO6zQ8S674IXYHOpyYGscJ9jyAFFKtjIAboFP+m4E3MK2
	oedaM3v02FaNgfFs/ecyk+KAs2wBMI3J4rXlzSiDGO7hHu05NXno+NBZyK4MjJ2UwuLv
	BIHwzifiR9JlvT1Ow59/eQGjSZryPyEGw8pGW0sIPZ3b+HDvRUeu3xkXn6oXd0Iz7dV1
	tQow==
MIME-Version: 1.0
X-Received: by 10.52.245.66 with SMTP id xm2mr13822617vdc.36.1412159224465;
	Wed, 01 Oct 2014 03:27:04 -0700 (PDT)
Received: by 10.31.140.83 with HTTP; Wed, 1 Oct 2014 03:27:04 -0700 (PDT)
In-Reply-To: <CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
References: <54196812.5080701@mehnert.org>
	<CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
Date: Wed, 1 Oct 2014 11:27:04 +0100
Message-ID: <CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: david <david@numm.org>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 17 September 2014 15:20, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 17 Sep 2014, at 11:53, Hannes Mehnert <hannes@mehnert.org> wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA384
>>
>> Hey,
>>
>> I demonstrated that OCaml-TLS runs directly on Xen at the OCaml
>> workshop. The port is still a bit hackish, thus I hope to get some
>> feedback (esp. regarding what features (such as FORTIFY_SOURCE stack
>> protection, and/or assert (should minios provide an assert_fail
>> symbol?)) we want to compile our C code with, and how to upstream
>> these changes properly).
>>
>> I develop on a cubieboard2, where I pinned mirage
>> (44bd28f862549aa1f149421c1e515bb3703e40d7), mirage-xen
>> (0251870f14030315b00ffdd0cd0112d8788270a1) and tcpip
>> (05148f900352eabaa615b60d5b2fb518f5518edd) to git HEAD (as well as
>> x509/asn1-combinators/nocrypto/tls).
>>
>
> Very nice indeed!
>
>> Several libraries needed to be modified to run in the Xen environment:
>>
>> minios
>> - ------
>>
>> https://github.com/hannesm/xen/tree/tls-fixes
>> some symbols are required for the various C libraries below, namely:
>> abort (calling do_exit)
>
> Adding this to MiniOS should be fine (waiting for Thomas Leonard to
> return from vacation).

Another possible place for these would be mirage-platform's
mini_libc.c file. The main advantage is: there's less code review
needed to get things in mirage ;-) Otherwise, you'll need to argue for
these on xen-devel (and add a signed-off-by line to the Git commit).

>> __stack_chk_guard (being NULL)
>
> Is this really essential -- it's inserted by the gcc stack smash
> checker isn't it?  Should be no harm in putting it into MiniOS, but
> I'd prefer understanding if it'll cause problems if (e.g.) clang is
> used to build the toolchain as well.
>
>> fprintf/printf/stdout/stderr/fflush (for gmp and zarith)
>
> I'd definitely prefer to have these in a separate 'nanolibc'
> separate from MiniOS itself.  I believe James Bielman could also
> use such a shim library to compile libselinux as well.

Sounds good.

>> gmp (the GNU multi-precision arithmetic library)
>> - ------------------------------------------------
>>
>> Configure (esp. config.guess) gets confused by an arm dualcore:
>> http://berlin.ccc.de/~hannes/gmp-6a.diff fixes this.
>>
>> I used the following CFLAGS:
>> export CFLAGS="-marm -O2 -pedantic -fomit-frame-pointer -fno-builtin
>> - -D_FORTIFY_SOURCE=0"
>> ./configure
>> make
>
> This is possibly worth folding in to be compiled statically
> (as a separate library) in the mirage-minios-xen repository
> (which is turning into our aggregation-of-libraries-repo).
>
>>
>> zarith
>> - ------
>>
>> Due to subtle differences of GNU libm and openlibm (esp isinf/isnan is
>> rewritten in the GNU version to __isinf/__isnan), I modified caml_z.c
>> to #include <openlibm.h> instead of <math.h> (should openlibm instead
>> install its header file as math.h!?)
>>
>> Patch at http://berlin.ccc.de/~hannes/zarith.diff
>>
>> I additionally pointed zarith to my custom gmp library:
>> export CPPFLAGS="-I/home/mirage/gmp-6.0.0.orig
>> - -I/home/mirage/.opam/system/include"
>> export LDFLAGS="-L/home/mirage/gmp-6.0.0.orig/.libs"
>>
>> (the previously mentioned CFLAGS are also still active!)
>
> Deferring to Thomas on this one...

I wonder if we should use a separate OPAM switch when targeting Xen?
It does mean compiling some things twice, but would allow compiling
with different options, etc. It might also allow some extra
optimisations (e.g. dropping relocation support), and might make
cross-compiling easier one day.

>> ctypes (0.3.3)
>> - --------------
>>
>> nocrypto (from git) depends on ctypes, which needed some CFLAGS (to
>> avoid assert_fail being called (-DNDEBUG), sscanf being translated to
>> __isoc99_sscanf (-D_GNU_SOURCE)), patch
>> http://berlin.ccc.de/~hannes/ctypes.diff
>>
>
> This definition of GNU_SOURCE worries me -- is it happening because
> of a mismatch of header files somewhere in the compilation of the C
> library?  It shouldn't be necessary to define it in the normal course
> of operation of ctypes.
>
>> nocrypto
>> - --------
>>
>> https://github.com/mirleft/ocaml-nocrypto/tree/xen-fixes (adds -DNDEBUG)
>
> Likewise, we should be able to define assert_fail in MiniOS I think,
> as this is a fairly widely used header defined in SUS.
>
>> tls
>> - ---
>>
>> https://github.com/mirleft/ocaml-tls/tree/xen-fixes (use Io_page
>> aligned cstructs before transmitting)
>
> Misaligned Cstructs strike again... :-)
>
>>
>>
>> Once these libraries are patched, the minimum TLS server
>> https://github.com/mirleft/tls-mvp-server/tree/fixes works (with
>> export NET="direct" and s/-unix/-xen/ (mirage-clock-xen,
>> mirage-entropy-xen) in config.ml), and some minor modifications to the
>> Makefile to link in the right gmp/minios/...
>
> Awesome!  Thomas Gazagnaire is looking at the Conduit patches right
> now, which should provide the right place to hook the TLS stack into
> Cohttp and friends.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 01 10:27:14 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 01 Oct 2014 10:27: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 1XZH7l-0004X3-Lu; Wed, 01 Oct 2014 10:27:09 +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 1XZH7k-0004Wl-DG
	for mirageos-devel@lists.xenproject.org; Wed, 01 Oct 2014 10:27:08 +0000
Received: from [85.158.137.68:43597] by server-7.bemta-3.messagelabs.com id
	81/C3-01084-BF6DB245; Wed, 01 Oct 2014 10:27:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-16.tower-31.messagelabs.com!1412159224!10830012!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9818 invoked from network); 1 Oct 2014 10:27:06 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Oct 2014 10:27:06 -0000
Received: by mail-vc0-f180.google.com with SMTP id le20so20715vcb.11
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 01 Oct 2014 03:27: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;
	bh=jYs4mSfRWdxQMiJ/lkE8GdZ5mIJ3gPER8hU/da4C0/M=;
	b=qHzTmnKuWtauQOZDAjvfz5PI7J2zqVKOerjBZ7kU9fQ6TYTV7sXm+ynebdC7a0OIFh
	l4dbFLwUz7K8d5APIzEwy2TGqA3AgJWMZc/3VuFVx3Qk38DN6EZSeGgIITONC8/g96QL
	wGZS/ihN8b6wJOI/syK0Jo7uO6zQ8S674IXYHOpyYGscJ9jyAFFKtjIAboFP+m4E3MK2
	oedaM3v02FaNgfFs/ecyk+KAs2wBMI3J4rXlzSiDGO7hHu05NXno+NBZyK4MjJ2UwuLv
	BIHwzifiR9JlvT1Ow59/eQGjSZryPyEGw8pGW0sIPZ3b+HDvRUeu3xkXn6oXd0Iz7dV1
	tQow==
MIME-Version: 1.0
X-Received: by 10.52.245.66 with SMTP id xm2mr13822617vdc.36.1412159224465;
	Wed, 01 Oct 2014 03:27:04 -0700 (PDT)
Received: by 10.31.140.83 with HTTP; Wed, 1 Oct 2014 03:27:04 -0700 (PDT)
In-Reply-To: <CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
References: <54196812.5080701@mehnert.org>
	<CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
Date: Wed, 1 Oct 2014 11:27:04 +0100
Message-ID: <CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: david <david@numm.org>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 17 September 2014 15:20, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 17 Sep 2014, at 11:53, Hannes Mehnert <hannes@mehnert.org> wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA384
>>
>> Hey,
>>
>> I demonstrated that OCaml-TLS runs directly on Xen at the OCaml
>> workshop. The port is still a bit hackish, thus I hope to get some
>> feedback (esp. regarding what features (such as FORTIFY_SOURCE stack
>> protection, and/or assert (should minios provide an assert_fail
>> symbol?)) we want to compile our C code with, and how to upstream
>> these changes properly).
>>
>> I develop on a cubieboard2, where I pinned mirage
>> (44bd28f862549aa1f149421c1e515bb3703e40d7), mirage-xen
>> (0251870f14030315b00ffdd0cd0112d8788270a1) and tcpip
>> (05148f900352eabaa615b60d5b2fb518f5518edd) to git HEAD (as well as
>> x509/asn1-combinators/nocrypto/tls).
>>
>
> Very nice indeed!
>
>> Several libraries needed to be modified to run in the Xen environment:
>>
>> minios
>> - ------
>>
>> https://github.com/hannesm/xen/tree/tls-fixes
>> some symbols are required for the various C libraries below, namely:
>> abort (calling do_exit)
>
> Adding this to MiniOS should be fine (waiting for Thomas Leonard to
> return from vacation).

Another possible place for these would be mirage-platform's
mini_libc.c file. The main advantage is: there's less code review
needed to get things in mirage ;-) Otherwise, you'll need to argue for
these on xen-devel (and add a signed-off-by line to the Git commit).

>> __stack_chk_guard (being NULL)
>
> Is this really essential -- it's inserted by the gcc stack smash
> checker isn't it?  Should be no harm in putting it into MiniOS, but
> I'd prefer understanding if it'll cause problems if (e.g.) clang is
> used to build the toolchain as well.
>
>> fprintf/printf/stdout/stderr/fflush (for gmp and zarith)
>
> I'd definitely prefer to have these in a separate 'nanolibc'
> separate from MiniOS itself.  I believe James Bielman could also
> use such a shim library to compile libselinux as well.

Sounds good.

>> gmp (the GNU multi-precision arithmetic library)
>> - ------------------------------------------------
>>
>> Configure (esp. config.guess) gets confused by an arm dualcore:
>> http://berlin.ccc.de/~hannes/gmp-6a.diff fixes this.
>>
>> I used the following CFLAGS:
>> export CFLAGS="-marm -O2 -pedantic -fomit-frame-pointer -fno-builtin
>> - -D_FORTIFY_SOURCE=0"
>> ./configure
>> make
>
> This is possibly worth folding in to be compiled statically
> (as a separate library) in the mirage-minios-xen repository
> (which is turning into our aggregation-of-libraries-repo).
>
>>
>> zarith
>> - ------
>>
>> Due to subtle differences of GNU libm and openlibm (esp isinf/isnan is
>> rewritten in the GNU version to __isinf/__isnan), I modified caml_z.c
>> to #include <openlibm.h> instead of <math.h> (should openlibm instead
>> install its header file as math.h!?)
>>
>> Patch at http://berlin.ccc.de/~hannes/zarith.diff
>>
>> I additionally pointed zarith to my custom gmp library:
>> export CPPFLAGS="-I/home/mirage/gmp-6.0.0.orig
>> - -I/home/mirage/.opam/system/include"
>> export LDFLAGS="-L/home/mirage/gmp-6.0.0.orig/.libs"
>>
>> (the previously mentioned CFLAGS are also still active!)
>
> Deferring to Thomas on this one...

I wonder if we should use a separate OPAM switch when targeting Xen?
It does mean compiling some things twice, but would allow compiling
with different options, etc. It might also allow some extra
optimisations (e.g. dropping relocation support), and might make
cross-compiling easier one day.

>> ctypes (0.3.3)
>> - --------------
>>
>> nocrypto (from git) depends on ctypes, which needed some CFLAGS (to
>> avoid assert_fail being called (-DNDEBUG), sscanf being translated to
>> __isoc99_sscanf (-D_GNU_SOURCE)), patch
>> http://berlin.ccc.de/~hannes/ctypes.diff
>>
>
> This definition of GNU_SOURCE worries me -- is it happening because
> of a mismatch of header files somewhere in the compilation of the C
> library?  It shouldn't be necessary to define it in the normal course
> of operation of ctypes.
>
>> nocrypto
>> - --------
>>
>> https://github.com/mirleft/ocaml-nocrypto/tree/xen-fixes (adds -DNDEBUG)
>
> Likewise, we should be able to define assert_fail in MiniOS I think,
> as this is a fairly widely used header defined in SUS.
>
>> tls
>> - ---
>>
>> https://github.com/mirleft/ocaml-tls/tree/xen-fixes (use Io_page
>> aligned cstructs before transmitting)
>
> Misaligned Cstructs strike again... :-)
>
>>
>>
>> Once these libraries are patched, the minimum TLS server
>> https://github.com/mirleft/tls-mvp-server/tree/fixes works (with
>> export NET="direct" and s/-unix/-xen/ (mirage-clock-xen,
>> mirage-entropy-xen) in config.ml), and some minor modifications to the
>> Makefile to link in the right gmp/minios/...
>
> Awesome!  Thomas Gazagnaire is looking at the Conduit patches right
> now, which should provide the right place to hook the TLS stack into
> Cohttp and friends.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 01 18:44:14 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 01 Oct 2014 18:44: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 1XZOsg-0001Dc-4C; Wed, 01 Oct 2014 18:44:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1XZOse-0001DX-Px
	for mirageos-devel@lists.xenproject.org; Wed, 01 Oct 2014 18:44:04 +0000
Received: from [85.158.139.211:11913] by server-7.bemta-5.messagelabs.com id
	C6/9E-30869-37B4C245; Wed, 01 Oct 2014 18:44:03 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-13.tower-206.messagelabs.com!1412189043!11480847!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2500 invoked from network); 1 Oct 2014 18:44:03 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-13.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 1 Oct 2014 18:44:03 -0000
Received: from [10.0.0.6] (g225164226.adsl.alicedsl.de [92.225.164.226])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 099A1149D
	for <mirageos-devel@lists.xenproject.org>;
	Wed,  1 Oct 2014 20:44:01 +0200 (CEST)
Message-ID: <542C4B57.2090104@mehnert.org>
Date: Wed, 01 Oct 2014 20:43:35 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
References: <54196812.5080701@mehnert.org>	<CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
	<CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
In-Reply-To: <CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 PGP SIGNED MESSAGE-----
Hash: SHA384

Hi,

thanks for your replies. Moving forward I've some questions; related
is for sure https://github.com/mirage/mirage-platform/pull/102
(installing runtime headers for xen).

C code currently lives in:
 - xen repo, extras/mini-os <- malloc, printf, console, blkfront, ...
(GPL2)
 - mirage-platform repo, xen/runtime/xencaml <- symbols required by
OCaml runtime (which is in runtime/ocaml)
 - OpenLibm <- should that install a math.h header?
 - a nanolibc is proposed for some more symbols (+gmp?)

Which CFLAGS to use for C libraries (such as OCaml runtime etc.)?
 - enable stack protection (FORTIFY_SOURCE)?
 - enable asserts?
 - for sure -fno-builtin

I generally don't trust C code, thus I'd be in favor of enabling both
stack protection and assertions when compiling our unikernels, but am
happy to hear your opinion.


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

iQIcBAEBCQAGBQJULEtXAAoJELyJZYjffCjuldAP/AtrOzceOvGTVfScsbcm8Bct
XS4MTv7aF7X77JkZfgMTnSknpqc4dQyZlxeiI8NNwZIll2qAqBnG1+4240HVOCK/
rIbp6f6zO9/pLoZeX0uXIUwF6UnH5+VBewIdVRVmikzmsZ19LcYGnS5zxT4S56ny
5FfLKu2ga4yyvMKWJcbc3Y93ekeo5FvJfq8lwyaA8XixJSgPztmUXrqO8UJGVTMw
nqL/KL81VjAAXwVRH/5f/XZkbAwWMEFZCRP6icgBJOmYQtq5YpuDgWWXIQjaUnd/
d8yLveaf49beIQM/8MVk8QXlkmRB0UsuKFNF56qaqc0mpGtcL1PiM+tn9ZTqn0wD
xWFDIXdUmcVgtPhysNUmcBOZjeWw8doV3XvEb4E6Hk+GGfD3/oy0v+2TJG5mvDhI
yVhXXV9rQiSfiqy2Kpiei4LrOu9Zp2GlnCIuj7tLPH79QGzJ/DD9+uMKNq6U8qlc
QJ7FsV11q76nIUhxYjO1mntJkdkT+RvuLK70xXODif7REFzhWFs0Rm8Lq1mQZ5H9
jgkZ4417jxLd+iHlTP4KJ96zpLiCPzMWaZPQCy6WNmGI7kdFqnDKLo14oeSCNCz6
D1LhsQ9P+lcYAvIKtbpKf9iGuCFzke+BQhCEA72vjG9PtXeCpRLoWpFkR2bZ3TLd
k9Os06ptWbiTT/05GAxb
=DaQf
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 01 18:44:14 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 01 Oct 2014 18:44: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 1XZOsg-0001Dc-4C; Wed, 01 Oct 2014 18:44:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1XZOse-0001DX-Px
	for mirageos-devel@lists.xenproject.org; Wed, 01 Oct 2014 18:44:04 +0000
Received: from [85.158.139.211:11913] by server-7.bemta-5.messagelabs.com id
	C6/9E-30869-37B4C245; Wed, 01 Oct 2014 18:44:03 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-13.tower-206.messagelabs.com!1412189043!11480847!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2500 invoked from network); 1 Oct 2014 18:44:03 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-13.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 1 Oct 2014 18:44:03 -0000
Received: from [10.0.0.6] (g225164226.adsl.alicedsl.de [92.225.164.226])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 099A1149D
	for <mirageos-devel@lists.xenproject.org>;
	Wed,  1 Oct 2014 20:44:01 +0200 (CEST)
Message-ID: <542C4B57.2090104@mehnert.org>
Date: Wed, 01 Oct 2014 20:43:35 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
References: <54196812.5080701@mehnert.org>	<CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
	<CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
In-Reply-To: <CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 PGP SIGNED MESSAGE-----
Hash: SHA384

Hi,

thanks for your replies. Moving forward I've some questions; related
is for sure https://github.com/mirage/mirage-platform/pull/102
(installing runtime headers for xen).

C code currently lives in:
 - xen repo, extras/mini-os <- malloc, printf, console, blkfront, ...
(GPL2)
 - mirage-platform repo, xen/runtime/xencaml <- symbols required by
OCaml runtime (which is in runtime/ocaml)
 - OpenLibm <- should that install a math.h header?
 - a nanolibc is proposed for some more symbols (+gmp?)

Which CFLAGS to use for C libraries (such as OCaml runtime etc.)?
 - enable stack protection (FORTIFY_SOURCE)?
 - enable asserts?
 - for sure -fno-builtin

I generally don't trust C code, thus I'd be in favor of enabling both
stack protection and assertions when compiling our unikernels, but am
happy to hear your opinion.


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

iQIcBAEBCQAGBQJULEtXAAoJELyJZYjffCjuldAP/AtrOzceOvGTVfScsbcm8Bct
XS4MTv7aF7X77JkZfgMTnSknpqc4dQyZlxeiI8NNwZIll2qAqBnG1+4240HVOCK/
rIbp6f6zO9/pLoZeX0uXIUwF6UnH5+VBewIdVRVmikzmsZ19LcYGnS5zxT4S56ny
5FfLKu2ga4yyvMKWJcbc3Y93ekeo5FvJfq8lwyaA8XixJSgPztmUXrqO8UJGVTMw
nqL/KL81VjAAXwVRH/5f/XZkbAwWMEFZCRP6icgBJOmYQtq5YpuDgWWXIQjaUnd/
d8yLveaf49beIQM/8MVk8QXlkmRB0UsuKFNF56qaqc0mpGtcL1PiM+tn9ZTqn0wD
xWFDIXdUmcVgtPhysNUmcBOZjeWw8doV3XvEb4E6Hk+GGfD3/oy0v+2TJG5mvDhI
yVhXXV9rQiSfiqy2Kpiei4LrOu9Zp2GlnCIuj7tLPH79QGzJ/DD9+uMKNq6U8qlc
QJ7FsV11q76nIUhxYjO1mntJkdkT+RvuLK70xXODif7REFzhWFs0Rm8Lq1mQZ5H9
jgkZ4417jxLd+iHlTP4KJ96zpLiCPzMWaZPQCy6WNmGI7kdFqnDKLo14oeSCNCz6
D1LhsQ9P+lcYAvIKtbpKf9iGuCFzke+BQhCEA72vjG9PtXeCpRLoWpFkR2bZ3TLd
k9Os06ptWbiTT/05GAxb
=DaQf
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 01 19:38:59 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 01 Oct 2014 19:38: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 1XZPjl-00021j-O3; Wed, 01 Oct 2014 19:38:57 +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 1XZPjk-00021e-4E
	for mirageos-devel@lists.xenproject.org; Wed, 01 Oct 2014 19:38:56 +0000
Received: from [85.158.137.68:6455] by server-16.bemta-3.messagelabs.com id
	BA/62-01431-F485C245; Wed, 01 Oct 2014 19:38:55 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1412192334!10981882!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12238 invoked from network); 1 Oct 2014 19:38:54 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Oct 2014 19:38:54 -0000
Received: by mail-wg0-f45.google.com with SMTP id m15so1427336wgh.4
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 01 Oct 2014 12:38:54 -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
	:content-transfer-encoding:message-id:references:to;
	bh=O9YdhcnJOJj8DVph7I3taDwJRCer4MtN3lZMoCsEc88=;
	b=HCLp+dJEjW8b2S2yVWiDjwYWuR+mRojmU+g7U8YxhhQonHAjAOT+cnk1izM+rdRnLm
	nv6I4MTOf2SQu41c93b8LuqPkam8r5Db5Uw1JMqx/aeXVyPUkUsAm8sWOdP13GjWkbNa
	WkxFjXROw9+2ylu/Pnu0eqI9ZAk3Gzt/J5m5QEja+krKyivjzvcdStaEw8jbP/VZgGxm
	f6UJZ+ArQqVWyeMiRo0OKAeaLsNMa+TS9w4hD3bsnhNNcrZULxRg8TOTjSDscrg4jQas
	n99QeyqMKGzELXXj3t2b1rn+rJRU/0q+chyjK3rwwrbZJ3hrVhTNGEgry5A/V2D12V/0
	9aUg==
X-Received: by 10.194.110.33 with SMTP id hx1mr66388672wjb.12.1412192333825;
	Wed, 01 Oct 2014 12:38:53 -0700 (PDT)
Received: from [192.168.0.2] (cpc25-cmbg14-2-0-cust121.5-4.cable.virginm.net.
	[213.106.112.122])
	by mx.google.com with ESMTPSA id f7sm2864463wix.22.2014.10.01.12.38.52
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 01 Oct 2014 12:38:53 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <69D665AD-E191-40B2-8E41-0111697C2E7F@gazagnaire.org>
Date: Wed, 1 Oct 2014 20:38:54 +0100
Message-Id: <307C9C1D-71DC-4040-BFBD-E935201F9CAB@gazagnaire.org>
References: <69D665AD-E191-40B2-8E41-0111697C2E7F@gazagnaire.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.1878.6)
Subject: Re: [MirageOS-devel] Irmin roadmap
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 very late on all of these points (although I almost have 1/ done, needs more polishing) but I've generated some docs which might be useful to people starting using the library:

http://samoht.github.io/irmin/

Thomas

On 9 Sep 2014, at 16:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

> Hi all,
> 
> Lots of people starting asked me about the status of Irmin. As you might have notice, I'vent had much time to spend on Irmin last month, but I plan to fix that. My current priorities are:
> 
> 1/ make Irmin compiles on the Xen backend of Mirage.  https://github.com/mirage/irmin/issues/81
> This means dropping the dependency to core_kernel (for now on). The external API will not change.
> 
> 2/ improve the high-level JSON API. This is related to https://github.com/mirage/irmin/issues/80 
> Currently, we only have a JSON API for the low-level stores, and the very partial implementation of the higher-level calls. Needs to complete and document that.
> 
> 3/ implement a pure-ocaml Git server to be able to at least `git pull` from it. https://github.com/mirage/ocaml-git/issues/15 
> Together with 1/ this will make possible to query the state of a running Mirage unikernel with a simple `git pull <vm-address>`
> 
> 4/ implement a simple distributed log server .https://github.com/mirage/irmin/issues/82 
> Could use Benjamin's rope implementation, that I first need to release properly.
> 
> 5/ try to come up with a solution to the "unlimited" memory/storage usage issues https://github.com/mirage/irmin/issues/83
> This is the most uncertain part of the short-term roadmap. I'll need to check again what are the limitation of Git shallow copies and see how we can use them to limit the history size to remember.
> 
> There are also few open embarrassing bugs that I want to fix as well (regarding fd leaks ...). 
> 
> If anyone is interested to help me on any of these topics, please feel free to comment on the related issues on Github -- I'll gladly share the workload. Also, feel free to reply to that email if you think there is any important Imrin features that you think are missing now.
> 
> 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 Oct 01 19:38:59 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 01 Oct 2014 19:38: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 1XZPjl-00021j-O3; Wed, 01 Oct 2014 19:38:57 +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 1XZPjk-00021e-4E
	for mirageos-devel@lists.xenproject.org; Wed, 01 Oct 2014 19:38:56 +0000
Received: from [85.158.137.68:6455] by server-16.bemta-3.messagelabs.com id
	BA/62-01431-F485C245; Wed, 01 Oct 2014 19:38:55 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1412192334!10981882!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12238 invoked from network); 1 Oct 2014 19:38:54 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Oct 2014 19:38:54 -0000
Received: by mail-wg0-f45.google.com with SMTP id m15so1427336wgh.4
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 01 Oct 2014 12:38:54 -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
	:content-transfer-encoding:message-id:references:to;
	bh=O9YdhcnJOJj8DVph7I3taDwJRCer4MtN3lZMoCsEc88=;
	b=HCLp+dJEjW8b2S2yVWiDjwYWuR+mRojmU+g7U8YxhhQonHAjAOT+cnk1izM+rdRnLm
	nv6I4MTOf2SQu41c93b8LuqPkam8r5Db5Uw1JMqx/aeXVyPUkUsAm8sWOdP13GjWkbNa
	WkxFjXROw9+2ylu/Pnu0eqI9ZAk3Gzt/J5m5QEja+krKyivjzvcdStaEw8jbP/VZgGxm
	f6UJZ+ArQqVWyeMiRo0OKAeaLsNMa+TS9w4hD3bsnhNNcrZULxRg8TOTjSDscrg4jQas
	n99QeyqMKGzELXXj3t2b1rn+rJRU/0q+chyjK3rwwrbZJ3hrVhTNGEgry5A/V2D12V/0
	9aUg==
X-Received: by 10.194.110.33 with SMTP id hx1mr66388672wjb.12.1412192333825;
	Wed, 01 Oct 2014 12:38:53 -0700 (PDT)
Received: from [192.168.0.2] (cpc25-cmbg14-2-0-cust121.5-4.cable.virginm.net.
	[213.106.112.122])
	by mx.google.com with ESMTPSA id f7sm2864463wix.22.2014.10.01.12.38.52
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 01 Oct 2014 12:38:53 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <69D665AD-E191-40B2-8E41-0111697C2E7F@gazagnaire.org>
Date: Wed, 1 Oct 2014 20:38:54 +0100
Message-Id: <307C9C1D-71DC-4040-BFBD-E935201F9CAB@gazagnaire.org>
References: <69D665AD-E191-40B2-8E41-0111697C2E7F@gazagnaire.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.1878.6)
Subject: Re: [MirageOS-devel] Irmin roadmap
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 very late on all of these points (although I almost have 1/ done, needs more polishing) but I've generated some docs which might be useful to people starting using the library:

http://samoht.github.io/irmin/

Thomas

On 9 Sep 2014, at 16:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

> Hi all,
> 
> Lots of people starting asked me about the status of Irmin. As you might have notice, I'vent had much time to spend on Irmin last month, but I plan to fix that. My current priorities are:
> 
> 1/ make Irmin compiles on the Xen backend of Mirage.  https://github.com/mirage/irmin/issues/81
> This means dropping the dependency to core_kernel (for now on). The external API will not change.
> 
> 2/ improve the high-level JSON API. This is related to https://github.com/mirage/irmin/issues/80 
> Currently, we only have a JSON API for the low-level stores, and the very partial implementation of the higher-level calls. Needs to complete and document that.
> 
> 3/ implement a pure-ocaml Git server to be able to at least `git pull` from it. https://github.com/mirage/ocaml-git/issues/15 
> Together with 1/ this will make possible to query the state of a running Mirage unikernel with a simple `git pull <vm-address>`
> 
> 4/ implement a simple distributed log server .https://github.com/mirage/irmin/issues/82 
> Could use Benjamin's rope implementation, that I first need to release properly.
> 
> 5/ try to come up with a solution to the "unlimited" memory/storage usage issues https://github.com/mirage/irmin/issues/83
> This is the most uncertain part of the short-term roadmap. I'll need to check again what are the limitation of Git shallow copies and see how we can use them to limit the history size to remember.
> 
> There are also few open embarrassing bugs that I want to fix as well (regarding fd leaks ...). 
> 
> If anyone is interested to help me on any of these topics, please feel free to comment on the related issues on Github -- I'll gladly share the workload. Also, feel free to reply to that email if you think there is any important Imrin features that you think are missing now.
> 
> 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 Fri Oct 03 15:21:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Oct 2014 15:21: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 1Xa4fx-0005zw-TN; Fri, 03 Oct 2014 15:21:45 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4fw-0005zp-6R
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 15:21:44 +0000
Received: from [85.158.143.35:23149] by server-3.bemta-4.messagelabs.com id
	82/57-06192-70FBE245; Fri, 03 Oct 2014 15:21:43 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-2.tower-21.messagelabs.com!1412349702!5685130!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5978 invoked from network); 3 Oct 2014 15:21:42 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-2.tower-21.messagelabs.com with SMTP;
	3 Oct 2014 15:21:42 -0000
Received: (qmail 6215 invoked from network); 3 Oct 2014 15:15:25 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 3 Oct 2014 15:15:25 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 05668-02 for <mirageos-devel@lists.xenproject.org>;
	Fri,  3 Oct 2014 16:15:18 +0100 (BST)
Received: (qmail 5755 invoked by uid 599); 3 Oct 2014 15:15:17 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 03 Oct 2014 16:15:17 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4Zk-0000Wu-OU
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 16:15:20 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Fri, 3 Oct 2014 16:15:15 +0100
Thread-Topic: some things that look related to bits of mirage
Thread-Index: Ac/fHNiNJq4lJ5igRbmMtQooB2Nqog==
Message-ID: <CDB845D2-9224-4575-8D41-F95CD28FADB2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] some things that look related to bits of 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: multipart/mixed; boundary="===============6126707470022198513=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6126707470022198513==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

from the TRIOS OSDI workshop programme...

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
pillai

We introduce Fracture, a novel framework that transforms and modernizes =
the basic process abstraction. By =93fracturing=94 an application into =
logical modules, Fracture enables powerful and novel run-time =
configurations that improve run-time testing, application availability, =
and general robustness, all in a generic and incremental manner. We =
demonstrate the utility of fracturing via in-depth case studies of a =
chat client, a web server, and two user-level file systems. Through =
these examples, we show that Fracture enables applications to =
transparently tolerate memory leaks, buffer overflows, and isolate =
subsystem crashes, with little change to source code; through =
intelligent fracturing, we can achieve low overhead as well, thus =
enabling deployment.

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
hruby

Traditionally, applications use sockets to access the network. The =
socket API is well understood and simple to use. However, its simplicity =
has also limited its efficiency in existing implementations. =
Specifically, the socket API requires the application to execute many =
system calls like select, accept, read, and write. Each of these calls =
crosses the protection boundary between user space and the operating =
system, which is expensive. Moreover, the system calls themselves were =
not designed for high concurrency and have become bottlenecks in modern =
systems where processing simultaneous tasks is key to performance. We =
show that we can retain the original socket API without the current =
limitations. Specifically, our sockets almost completely avoid system =
calls on the "fast path". We show that our design eliminates up to 99% =
of the system calls under high load. Perhaps more tellingly, we used our =
sockets to boost NewtOS, a microkernel-based multiserver system, so that =
the performance of its network I/O approaches, and sometimes surpasses, =
the performance of the highly-optimized Linux network stack.





--=20
Cheers,

R.





--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJULr2EAAoJEOLF27JWwSg3kUsQAM58piAH2GnabAfI/w21KP/s
4fD9to09cmXkTfB7tWst8dsgxQJx3PBN3EaRVGA7ZnrYX/t/sTHgXFbzegr5p+Vf
sIjqBW8d9/psqY4+GD/qFZFjMXIEgrZ2bRQ38VGGgkB5+2q5RPI8TM0RoftfKhTs
kWq+OfyoSLbAMXEQjwlehYk4og1rgXLXJrF8XzgPfLuWrG5mVBNTiLCpCRgYRRMX
dO4KSyYr7KIgnurTbpvDbOmXhA1xRBkdArbSDersL2gwyhC/yayWO7ncSzAd+S0E
a54L5wdXI5HeMxtRsbqOft3fGq0dmxAdmu5hQLViFmx1u461+zp2p425N/7VvwjG
E+lway7T1FeaqWXWj/M/a/BB10Y5TgFWFnxv6EVcMuo6GCO3Dx+YkOXvy7MiTr4V
+kUohc8rC8jE6zW6CwgxaT1r3c2kUdB4Yhim4ykBZP8ESSAQc75CzltzX6GFCfyk
16YtNsYT8qVyBN1YfuZTbD+aZ99UNPypP+rfjdnlrHK4VO//TnlePope9400RFcI
LSu8fhTpbAncx8Xzaq2cpGf9Fmf2ggiCtxUHhiW8Fn9oDC/0ovBhG050Qv0Cqsxp
nYN4AGwGpZcU8hVtxcpvbt9iIExNvnEFCBrPKhBtJ7CRyigMMDp6MmYDxRAC4IE4
EKkLI5LaIYjN1DZGTjUB
=MxQQ
-----END PGP SIGNATURE-----

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F--


--===============6126707470022198513==
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

--===============6126707470022198513==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 03 15:21:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Oct 2014 15:21: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 1Xa4fx-0005zw-TN; Fri, 03 Oct 2014 15:21:45 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4fw-0005zp-6R
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 15:21:44 +0000
Received: from [85.158.143.35:23149] by server-3.bemta-4.messagelabs.com id
	82/57-06192-70FBE245; Fri, 03 Oct 2014 15:21:43 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-2.tower-21.messagelabs.com!1412349702!5685130!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5978 invoked from network); 3 Oct 2014 15:21:42 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-2.tower-21.messagelabs.com with SMTP;
	3 Oct 2014 15:21:42 -0000
Received: (qmail 6215 invoked from network); 3 Oct 2014 15:15:25 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 3 Oct 2014 15:15:25 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 05668-02 for <mirageos-devel@lists.xenproject.org>;
	Fri,  3 Oct 2014 16:15:18 +0100 (BST)
Received: (qmail 5755 invoked by uid 599); 3 Oct 2014 15:15:17 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 03 Oct 2014 16:15:17 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4Zk-0000Wu-OU
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 16:15:20 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Fri, 3 Oct 2014 16:15:15 +0100
Thread-Topic: some things that look related to bits of mirage
Thread-Index: Ac/fHNiNJq4lJ5igRbmMtQooB2Nqog==
Message-ID: <CDB845D2-9224-4575-8D41-F95CD28FADB2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] some things that look related to bits of 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: multipart/mixed; boundary="===============6126707470022198513=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6126707470022198513==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

from the TRIOS OSDI workshop programme...

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
pillai

We introduce Fracture, a novel framework that transforms and modernizes =
the basic process abstraction. By =93fracturing=94 an application into =
logical modules, Fracture enables powerful and novel run-time =
configurations that improve run-time testing, application availability, =
and general robustness, all in a generic and incremental manner. We =
demonstrate the utility of fracturing via in-depth case studies of a =
chat client, a web server, and two user-level file systems. Through =
these examples, we show that Fracture enables applications to =
transparently tolerate memory leaks, buffer overflows, and isolate =
subsystem crashes, with little change to source code; through =
intelligent fracturing, we can achieve low overhead as well, thus =
enabling deployment.

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
hruby

Traditionally, applications use sockets to access the network. The =
socket API is well understood and simple to use. However, its simplicity =
has also limited its efficiency in existing implementations. =
Specifically, the socket API requires the application to execute many =
system calls like select, accept, read, and write. Each of these calls =
crosses the protection boundary between user space and the operating =
system, which is expensive. Moreover, the system calls themselves were =
not designed for high concurrency and have become bottlenecks in modern =
systems where processing simultaneous tasks is key to performance. We =
show that we can retain the original socket API without the current =
limitations. Specifically, our sockets almost completely avoid system =
calls on the "fast path". We show that our design eliminates up to 99% =
of the system calls under high load. Perhaps more tellingly, we used our =
sockets to boost NewtOS, a microkernel-based multiserver system, so that =
the performance of its network I/O approaches, and sometimes surpasses, =
the performance of the highly-optimized Linux network stack.





--=20
Cheers,

R.





--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJULr2EAAoJEOLF27JWwSg3kUsQAM58piAH2GnabAfI/w21KP/s
4fD9to09cmXkTfB7tWst8dsgxQJx3PBN3EaRVGA7ZnrYX/t/sTHgXFbzegr5p+Vf
sIjqBW8d9/psqY4+GD/qFZFjMXIEgrZ2bRQ38VGGgkB5+2q5RPI8TM0RoftfKhTs
kWq+OfyoSLbAMXEQjwlehYk4og1rgXLXJrF8XzgPfLuWrG5mVBNTiLCpCRgYRRMX
dO4KSyYr7KIgnurTbpvDbOmXhA1xRBkdArbSDersL2gwyhC/yayWO7ncSzAd+S0E
a54L5wdXI5HeMxtRsbqOft3fGq0dmxAdmu5hQLViFmx1u461+zp2p425N/7VvwjG
E+lway7T1FeaqWXWj/M/a/BB10Y5TgFWFnxv6EVcMuo6GCO3Dx+YkOXvy7MiTr4V
+kUohc8rC8jE6zW6CwgxaT1r3c2kUdB4Yhim4ykBZP8ESSAQc75CzltzX6GFCfyk
16YtNsYT8qVyBN1YfuZTbD+aZ99UNPypP+rfjdnlrHK4VO//TnlePope9400RFcI
LSu8fhTpbAncx8Xzaq2cpGf9Fmf2ggiCtxUHhiW8Fn9oDC/0ovBhG050Qv0Cqsxp
nYN4AGwGpZcU8hVtxcpvbt9iIExNvnEFCBrPKhBtJ7CRyigMMDp6MmYDxRAC4IE4
EKkLI5LaIYjN1DZGTjUB
=MxQQ
-----END PGP SIGNATURE-----

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F--


--===============6126707470022198513==
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

--===============6126707470022198513==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 03 15:30:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Oct 2014 15: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 1Xa4oM-0006SP-W8; Fri, 03 Oct 2014 15:30:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4oL-0006S9-6h
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 15:30:25 +0000
Received: from [193.109.254.147:34521] by server-9.bemta-14.messagelabs.com id
	75/A3-31535-011CE245; Fri, 03 Oct 2014 15:30:24 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-15.tower-27.messagelabs.com!1412350223!13245608!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9272 invoked from network); 3 Oct 2014 15:30:23 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-15.tower-27.messagelabs.com with SMTP;
	3 Oct 2014 15:30:23 -0000
Received: (qmail 15124 invoked from network); 3 Oct 2014 15:21:48 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 3 Oct 2014 15:21:48 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 14323-02 for <mirageos-devel@lists.xenproject.org>;
	Fri,  3 Oct 2014 16:21:42 +0100 (BST)
Received: (qmail 5755 invoked by uid 599); 3 Oct 2014 15:15:17 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 03 Oct 2014 16:15:17 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4Zk-0000Wu-OU
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 16:15:20 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Fri, 3 Oct 2014 16:15:15 +0100
Thread-Topic: some things that look related to bits of mirage
Thread-Index: Ac/fHNiNJq4lJ5igRbmMtQooB2Nqog==
Message-ID: <CDB845D2-9224-4575-8D41-F95CD28FADB2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] some things that look related to bits of 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: multipart/mixed; boundary="===============0186167040388341002=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0186167040388341002==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

from the TRIOS OSDI workshop programme...

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
pillai

We introduce Fracture, a novel framework that transforms and modernizes =
the basic process abstraction. By =93fracturing=94 an application into =
logical modules, Fracture enables powerful and novel run-time =
configurations that improve run-time testing, application availability, =
and general robustness, all in a generic and incremental manner. We =
demonstrate the utility of fracturing via in-depth case studies of a =
chat client, a web server, and two user-level file systems. Through =
these examples, we show that Fracture enables applications to =
transparently tolerate memory leaks, buffer overflows, and isolate =
subsystem crashes, with little change to source code; through =
intelligent fracturing, we can achieve low overhead as well, thus =
enabling deployment.

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
hruby

Traditionally, applications use sockets to access the network. The =
socket API is well understood and simple to use. However, its simplicity =
has also limited its efficiency in existing implementations. =
Specifically, the socket API requires the application to execute many =
system calls like select, accept, read, and write. Each of these calls =
crosses the protection boundary between user space and the operating =
system, which is expensive. Moreover, the system calls themselves were =
not designed for high concurrency and have become bottlenecks in modern =
systems where processing simultaneous tasks is key to performance. We =
show that we can retain the original socket API without the current =
limitations. Specifically, our sockets almost completely avoid system =
calls on the "fast path". We show that our design eliminates up to 99% =
of the system calls under high load. Perhaps more tellingly, we used our =
sockets to boost NewtOS, a microkernel-based multiserver system, so that =
the performance of its network I/O approaches, and sometimes surpasses, =
the performance of the highly-optimized Linux network stack.





--=20
Cheers,

R.





--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJULr2EAAoJEOLF27JWwSg3kUsQAM58piAH2GnabAfI/w21KP/s
4fD9to09cmXkTfB7tWst8dsgxQJx3PBN3EaRVGA7ZnrYX/t/sTHgXFbzegr5p+Vf
sIjqBW8d9/psqY4+GD/qFZFjMXIEgrZ2bRQ38VGGgkB5+2q5RPI8TM0RoftfKhTs
kWq+OfyoSLbAMXEQjwlehYk4og1rgXLXJrF8XzgPfLuWrG5mVBNTiLCpCRgYRRMX
dO4KSyYr7KIgnurTbpvDbOmXhA1xRBkdArbSDersL2gwyhC/yayWO7ncSzAd+S0E
a54L5wdXI5HeMxtRsbqOft3fGq0dmxAdmu5hQLViFmx1u461+zp2p425N/7VvwjG
E+lway7T1FeaqWXWj/M/a/BB10Y5TgFWFnxv6EVcMuo6GCO3Dx+YkOXvy7MiTr4V
+kUohc8rC8jE6zW6CwgxaT1r3c2kUdB4Yhim4ykBZP8ESSAQc75CzltzX6GFCfyk
16YtNsYT8qVyBN1YfuZTbD+aZ99UNPypP+rfjdnlrHK4VO//TnlePope9400RFcI
LSu8fhTpbAncx8Xzaq2cpGf9Fmf2ggiCtxUHhiW8Fn9oDC/0ovBhG050Qv0Cqsxp
nYN4AGwGpZcU8hVtxcpvbt9iIExNvnEFCBrPKhBtJ7CRyigMMDp6MmYDxRAC4IE4
EKkLI5LaIYjN1DZGTjUB
=MxQQ
-----END PGP SIGNATURE-----

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F--


--===============0186167040388341002==
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

--===============0186167040388341002==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 03 15:30:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 03 Oct 2014 15: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 1Xa4oM-0006SP-W8; Fri, 03 Oct 2014 15:30:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4oL-0006S9-6h
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 15:30:25 +0000
Received: from [193.109.254.147:34521] by server-9.bemta-14.messagelabs.com id
	75/A3-31535-011CE245; Fri, 03 Oct 2014 15:30:24 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-15.tower-27.messagelabs.com!1412350223!13245608!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9272 invoked from network); 3 Oct 2014 15:30:23 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-15.tower-27.messagelabs.com with SMTP;
	3 Oct 2014 15:30:23 -0000
Received: (qmail 15124 invoked from network); 3 Oct 2014 15:21:48 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 3 Oct 2014 15:21:48 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 14323-02 for <mirageos-devel@lists.xenproject.org>;
	Fri,  3 Oct 2014 16:21:42 +0100 (BST)
Received: (qmail 5755 invoked by uid 599); 3 Oct 2014 15:15:17 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 03 Oct 2014 16:15:17 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xa4Zk-0000Wu-OU
	for mirageos-devel@lists.xenproject.org; Fri, 03 Oct 2014 16:15:20 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Fri, 3 Oct 2014 16:15:15 +0100
Thread-Topic: some things that look related to bits of mirage
Thread-Index: Ac/fHNiNJq4lJ5igRbmMtQooB2Nqog==
Message-ID: <CDB845D2-9224-4575-8D41-F95CD28FADB2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] some things that look related to bits of 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: multipart/mixed; boundary="===============0186167040388341002=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0186167040388341002==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

from the TRIOS OSDI workshop programme...

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
pillai

We introduce Fracture, a novel framework that transforms and modernizes =
the basic process abstraction. By =93fracturing=94 an application into =
logical modules, Fracture enables powerful and novel run-time =
configurations that improve run-time testing, application availability, =
and general robustness, all in a generic and incremental manner. We =
demonstrate the utility of fracturing via in-depth case studies of a =
chat client, a web server, and two user-level file systems. Through =
these examples, we show that Fracture enables applications to =
transparently tolerate memory leaks, buffer overflows, and isolate =
subsystem crashes, with little change to source code; through =
intelligent fracturing, we can achieve low overhead as well, thus =
enabling deployment.

# =
https://www.usenix.org/conference/trios14/technical-sessions/presentation/=
hruby

Traditionally, applications use sockets to access the network. The =
socket API is well understood and simple to use. However, its simplicity =
has also limited its efficiency in existing implementations. =
Specifically, the socket API requires the application to execute many =
system calls like select, accept, read, and write. Each of these calls =
crosses the protection boundary between user space and the operating =
system, which is expensive. Moreover, the system calls themselves were =
not designed for high concurrency and have become bottlenecks in modern =
systems where processing simultaneous tasks is key to performance. We =
show that we can retain the original socket API without the current =
limitations. Specifically, our sockets almost completely avoid system =
calls on the "fast path". We show that our design eliminates up to 99% =
of the system calls under high load. Perhaps more tellingly, we used our =
sockets to boost NewtOS, a microkernel-based multiserver system, so that =
the performance of its network I/O approaches, and sometimes surpasses, =
the performance of the highly-optimized Linux network stack.





--=20
Cheers,

R.





--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJULr2EAAoJEOLF27JWwSg3kUsQAM58piAH2GnabAfI/w21KP/s
4fD9to09cmXkTfB7tWst8dsgxQJx3PBN3EaRVGA7ZnrYX/t/sTHgXFbzegr5p+Vf
sIjqBW8d9/psqY4+GD/qFZFjMXIEgrZ2bRQ38VGGgkB5+2q5RPI8TM0RoftfKhTs
kWq+OfyoSLbAMXEQjwlehYk4og1rgXLXJrF8XzgPfLuWrG5mVBNTiLCpCRgYRRMX
dO4KSyYr7KIgnurTbpvDbOmXhA1xRBkdArbSDersL2gwyhC/yayWO7ncSzAd+S0E
a54L5wdXI5HeMxtRsbqOft3fGq0dmxAdmu5hQLViFmx1u461+zp2p425N/7VvwjG
E+lway7T1FeaqWXWj/M/a/BB10Y5TgFWFnxv6EVcMuo6GCO3Dx+YkOXvy7MiTr4V
+kUohc8rC8jE6zW6CwgxaT1r3c2kUdB4Yhim4ykBZP8ESSAQc75CzltzX6GFCfyk
16YtNsYT8qVyBN1YfuZTbD+aZ99UNPypP+rfjdnlrHK4VO//TnlePope9400RFcI
LSu8fhTpbAncx8Xzaq2cpGf9Fmf2ggiCtxUHhiW8Fn9oDC/0ovBhG050Qv0Cqsxp
nYN4AGwGpZcU8hVtxcpvbt9iIExNvnEFCBrPKhBtJ7CRyigMMDp6MmYDxRAC4IE4
EKkLI5LaIYjN1DZGTjUB
=MxQQ
-----END PGP SIGNATURE-----

--Apple-Mail=_16489D8C-64C7-40B2-B050-98C9444E035F--


--===============0186167040388341002==
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

--===============0186167040388341002==--


From mirageos-devel-bounces@lists.xenproject.org Sun Oct 05 16:38:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:38: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 1XaopR-0006l4-5h; Sun, 05 Oct 2014 16:38:37 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XaopQ-0006kz-3Q
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:38:36 +0000
Received: from [85.158.143.35:56748] by server-1.bemta-4.messagelabs.com id
	CB/59-05872-A0471345; Sun, 05 Oct 2014 16:38:34 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-21.messagelabs.com!1412527113!13627500!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4826 invoked from network); 5 Oct 2014 16:38:34 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 16:38:34 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8b2a28da;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:40:21 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy-249EKywdA=m8xrS_sWBOdSaUqa2ucX+Vb-tK-eLsQQg@mail.gmail.com>
Date: Sun, 5 Oct 2014 17:38:30 +0100
Message-Id: <BC14EC71-9C8C-4054-BD7F-993F4C273B0F@recoil.org>
References: <1407749779.2986053.151340345.7854E1DA@webmail.messagingengine.com>
	<6B503910-17CB-4770-920C-ECD7D08453DB@recoil.org>
	<CAG4opy-249EKywdA=m8xrS_sWBOdSaUqa2ucX+Vb-tK-eLsQQg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen-arm-builder changes
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 Aug 2014, at 11:48, Thomas Leonard <talex5@gmail.com> wrote:

> On 11 August 2014 11:41, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 11 Aug 2014, at 10:36, Magnus Skjegstad <magnus@v0.no> wrote:
>> 
>>> I have updated xen-arm-builder to support installing driver firmware on
>>> the disk image by adding a FIRMWARE ?= in Makefile and cloning
>>> linux-firmware. I have also enabled support for two wireless adapters
>>> and Cubieboard LEDs in the kernel. I have also set noatime,nodiratime in
>>> fstab to speed up disk access.
>>> 
>>> The firmware-change is also documented in the README.md.
>>> 
>>> I don't know if you want to merge any of these changes back to the main
>>> repo?
>>> 
>>> https://github.com/MagnusS/xen-arm-builder/commits/master
>> 
>> CCing the devel list -- all of these look useful to me.  Should we also
>> set the 'discard' option to enable TRIM on SSDs (or would this cause
>> failures if the media doesn't support trimming?)
>> 
>> Do send a pull request on the existing changes and I'll merge/rebuild.
>> 
>> Incidentally, I added a Dockerfile to xen-arm-builder in order to make
>> it quicker to fetch a working tree.  The limits of containers start
>> showing up quite fast unfortunately, since the only way to mount a
>> loopback device is to use Docker in 'privileged mode', which none of the
>> public build services do.  Still, if anyone wants to play with it, you
>> just:
>> 
>> sudo docker.io pull avsm/xen-arm-builder
>> sudo docker.io run -t avsm/xen-arm-builder bash
>> 
>> Can't do much with it after that unless you're in a privileged local
>> container (if anyone gets that to work, drop a note on this thread).
> 
> I've always been building it in a privileged docker container, since
> I'm not running Ubuntu.
> 
> The command I use to enter my container is:
> 
> docker run -e "http_proxy=http://192.168.0.11:8123/" --privileged -it
> -v `pwd`:/xen-arm-builder --entrypoint /bin/bash -w /xen-arm-builder
> xen-sdcard-builder
> 
> The proxy is to save redownloading all the debs each time.
> 
> To get ARM emulation support, I also have to run this inside the
> container (affects the host too, I think):
> 
> /etc/init.d/binfmt-support start
> 

I've not had a chance to try this out yet (since I have an Ubuntu box),
but I created an issue since it seems like useful information for anyone
else trying: https://github.com/mirage/xen-arm-builder/issues/40

Can integrate it into README if it's all stable Docker command line
flags.

-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 Sun Oct 05 16:38:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:38: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 1XaopR-0006l4-5h; Sun, 05 Oct 2014 16:38:37 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XaopQ-0006kz-3Q
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:38:36 +0000
Received: from [85.158.143.35:56748] by server-1.bemta-4.messagelabs.com id
	CB/59-05872-A0471345; Sun, 05 Oct 2014 16:38:34 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-21.messagelabs.com!1412527113!13627500!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4826 invoked from network); 5 Oct 2014 16:38:34 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 16:38:34 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8b2a28da;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:40:21 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy-249EKywdA=m8xrS_sWBOdSaUqa2ucX+Vb-tK-eLsQQg@mail.gmail.com>
Date: Sun, 5 Oct 2014 17:38:30 +0100
Message-Id: <BC14EC71-9C8C-4054-BD7F-993F4C273B0F@recoil.org>
References: <1407749779.2986053.151340345.7854E1DA@webmail.messagingengine.com>
	<6B503910-17CB-4770-920C-ECD7D08453DB@recoil.org>
	<CAG4opy-249EKywdA=m8xrS_sWBOdSaUqa2ucX+Vb-tK-eLsQQg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen-arm-builder changes
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 Aug 2014, at 11:48, Thomas Leonard <talex5@gmail.com> wrote:

> On 11 August 2014 11:41, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 11 Aug 2014, at 10:36, Magnus Skjegstad <magnus@v0.no> wrote:
>> 
>>> I have updated xen-arm-builder to support installing driver firmware on
>>> the disk image by adding a FIRMWARE ?= in Makefile and cloning
>>> linux-firmware. I have also enabled support for two wireless adapters
>>> and Cubieboard LEDs in the kernel. I have also set noatime,nodiratime in
>>> fstab to speed up disk access.
>>> 
>>> The firmware-change is also documented in the README.md.
>>> 
>>> I don't know if you want to merge any of these changes back to the main
>>> repo?
>>> 
>>> https://github.com/MagnusS/xen-arm-builder/commits/master
>> 
>> CCing the devel list -- all of these look useful to me.  Should we also
>> set the 'discard' option to enable TRIM on SSDs (or would this cause
>> failures if the media doesn't support trimming?)
>> 
>> Do send a pull request on the existing changes and I'll merge/rebuild.
>> 
>> Incidentally, I added a Dockerfile to xen-arm-builder in order to make
>> it quicker to fetch a working tree.  The limits of containers start
>> showing up quite fast unfortunately, since the only way to mount a
>> loopback device is to use Docker in 'privileged mode', which none of the
>> public build services do.  Still, if anyone wants to play with it, you
>> just:
>> 
>> sudo docker.io pull avsm/xen-arm-builder
>> sudo docker.io run -t avsm/xen-arm-builder bash
>> 
>> Can't do much with it after that unless you're in a privileged local
>> container (if anyone gets that to work, drop a note on this thread).
> 
> I've always been building it in a privileged docker container, since
> I'm not running Ubuntu.
> 
> The command I use to enter my container is:
> 
> docker run -e "http_proxy=http://192.168.0.11:8123/" --privileged -it
> -v `pwd`:/xen-arm-builder --entrypoint /bin/bash -w /xen-arm-builder
> xen-sdcard-builder
> 
> The proxy is to save redownloading all the debs each time.
> 
> To get ARM emulation support, I also have to run this inside the
> container (affects the host too, I think):
> 
> /etc/init.d/binfmt-support start
> 

I've not had a chance to try this out yet (since I have an Ubuntu box),
but I created an issue since it seems like useful information for anyone
else trying: https://github.com/mirage/xen-arm-builder/issues/40

Can integrate it into README if it's all stable Docker command line
flags.

-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 Sun Oct 05 16:42:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:42: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 1XaotJ-0006t4-Iq; Sun, 05 Oct 2014 16:42:37 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XaotI-0006sz-8m
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:42:36 +0000
Received: from [85.158.143.35:43197] by server-2.bemta-4.messagelabs.com id
	50/12-04525-BF471345; Sun, 05 Oct 2014 16:42:35 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-14.tower-21.messagelabs.com!1412527354!13999356!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.8 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7348 invoked from network); 5 Oct 2014 16:42:34 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-14.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 16:42:34 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b987d1bb;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:44:23 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <620953433.12363.1407250408850.JavaMail.www@wwinf1c25>
Date: Sun, 5 Oct 2014 17:42:30 +0100
Message-Id: <AC2EF7EF-269B-42E8-9E7F-4C01CD172590@recoil.org>
References: <620953433.12363.1407250408850.JavaMail.www@wwinf1c25>
To: Gilles DALMAS <gdalmas@wanadoo.fr>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] iptables into xen-arm-builder
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="===============3121615637510774918=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============3121615637510774918==
Content-Type: multipart/alternative; boundary="Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D"


--Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi Gilles,

I believe that Magnus Skjegstad has added the relevant modules for =
NETFILTER into the latest xen-arm-builder.  Magnus, could you confirm?

You can download snapshot SDcard images with the latest changes from =
http://blobs.openmirage.org/

cheers,
Anil

On 5 Aug 2014, at 15:53, Gilles DALMAS <gdalmas@wanadoo.fr> wrote:

> sorry,
>=20
> i think there is a problem with iptables into your script. some =
options are disabled into the .config file : NETFILTER ...., therefore, =
iptables module doesn't work correctly.
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D
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;">Hi =
Gilles,<div><br></div><div>I believe that Magnus Skjegstad has added the =
relevant modules for NETFILTER into the latest xen-arm-builder. =
&nbsp;Magnus, could you confirm?</div><div><br></div><div>You can =
download snapshot SDcard images with the latest changes from <a =
href=3D"http://blobs.openmirage.org/">http://blobs.openmirage.org/</a></di=
v><div><br></div><div>cheers,</div><div>Anil</div><div><br><div><div>On =
5 Aug 2014, at 15:53, Gilles DALMAS &lt;<a =
href=3D"mailto:gdalmas@wanadoo.fr">gdalmas@wanadoo.fr</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><p>sorry,</p><p>i think there is a problem with iptables =
into your script. some options are disabled into the .config file : =
NETFILTER ...., therefore, iptables module doesn't work =
correctly.</p>_______________________________________________<br>MirageOS-=
devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br></div></body></html>=

--Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D--


--===============3121615637510774918==
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

--===============3121615637510774918==--


From mirageos-devel-bounces@lists.xenproject.org Sun Oct 05 16:42:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:42: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 1XaotJ-0006t4-Iq; Sun, 05 Oct 2014 16:42:37 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XaotI-0006sz-8m
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:42:36 +0000
Received: from [85.158.143.35:43197] by server-2.bemta-4.messagelabs.com id
	50/12-04525-BF471345; Sun, 05 Oct 2014 16:42:35 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-14.tower-21.messagelabs.com!1412527354!13999356!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.8 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7348 invoked from network); 5 Oct 2014 16:42:34 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-14.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 16:42:34 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b987d1bb;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:44:23 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <620953433.12363.1407250408850.JavaMail.www@wwinf1c25>
Date: Sun, 5 Oct 2014 17:42:30 +0100
Message-Id: <AC2EF7EF-269B-42E8-9E7F-4C01CD172590@recoil.org>
References: <620953433.12363.1407250408850.JavaMail.www@wwinf1c25>
To: Gilles DALMAS <gdalmas@wanadoo.fr>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] iptables into xen-arm-builder
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="===============3121615637510774918=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============3121615637510774918==
Content-Type: multipart/alternative; boundary="Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D"


--Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi Gilles,

I believe that Magnus Skjegstad has added the relevant modules for =
NETFILTER into the latest xen-arm-builder.  Magnus, could you confirm?

You can download snapshot SDcard images with the latest changes from =
http://blobs.openmirage.org/

cheers,
Anil

On 5 Aug 2014, at 15:53, Gilles DALMAS <gdalmas@wanadoo.fr> wrote:

> sorry,
>=20
> i think there is a problem with iptables into your script. some =
options are disabled into the .config file : NETFILTER ...., therefore, =
iptables module doesn't work correctly.
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D
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;">Hi =
Gilles,<div><br></div><div>I believe that Magnus Skjegstad has added the =
relevant modules for NETFILTER into the latest xen-arm-builder. =
&nbsp;Magnus, could you confirm?</div><div><br></div><div>You can =
download snapshot SDcard images with the latest changes from <a =
href=3D"http://blobs.openmirage.org/">http://blobs.openmirage.org/</a></di=
v><div><br></div><div>cheers,</div><div>Anil</div><div><br><div><div>On =
5 Aug 2014, at 15:53, Gilles DALMAS &lt;<a =
href=3D"mailto:gdalmas@wanadoo.fr">gdalmas@wanadoo.fr</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><p>sorry,</p><p>i think there is a problem with iptables =
into your script. some options are disabled into the .config file : =
NETFILTER ...., therefore, iptables module doesn't work =
correctly.</p>_______________________________________________<br>MirageOS-=
devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br></div></body></html>=

--Apple-Mail=_F17DF890-D386-4F59-BFF9-7DB3E4FA193D--


--===============3121615637510774918==
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

--===============3121615637510774918==--


From mirageos-devel-bounces@lists.xenproject.org Sun Oct 05 16:56:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:56: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 1Xap6f-00072f-Mb; Sun, 05 Oct 2014 16:56:25 +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 1Xap6d-00072a-NE
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:56:23 +0000
Received: from [85.158.137.68:17678] by server-12.bemta-3.messagelabs.com id
	99/BE-01574-53871345; Sun, 05 Oct 2014 16:56:21 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1412528178!11610165!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29537 invoked from network); 5 Oct 2014 16:56:18 -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; 5 Oct 2014 16:56:18 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 2464c502;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:58:07 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_b+P-kaqqw+FW5gsVfi7kYh9kmzuRp_gMoJkWp2bUv5w@mail.gmail.com>
Date: Sun, 5 Oct 2014 17:56:15 +0100
Message-Id: <3E3A8A23-87DB-456B-A7E5-6C506C5C8BBA@recoil.org>
References: <CAG4opy8N5aij4KRUyaqfnK6dfJxF7t=frqQuJ9Jy8W=CVf=j9Q@mail.gmail.com>
	<CAG4opy-tq8z70VGY4YB4_2e0r1wNys_0zZ0n2VdNT0XNgg+gUQ@mail.gmail.com>
	<CAG_esB1YVo-L1x6F8w1xxtwo0STvUwkqkx+Gu_G8w1bKd3WxJQ@mail.gmail.com>
	<CAG4opy_b+P-kaqqw+FW5gsVfi7kYh9kmzuRp_gMoJkWp2bUv5w@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage questions from writing a REST service
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 Jul 2014, at 09:18, Thomas Leonard <talex5@gmail.com> wrote:

> On 29 July 2014 14:04, David Scott <scott.dj@gmail.com> wrote:
>> Hi,
>> 
>> Very enjoyable post!
> 
> Thanks :-)
> 
>> On 29 Jul 2014 13:04, "Thomas Leonard" <talex5@gmail.com> wrote:
>>> 
>>> On 7 July 2014 10:08, Thomas Leonard <talex5@gmail.com> wrote:
>>>> I'm writing a test Mirage service for queuing files. It's not using
>>>> ThomasG's merge-queues - I'm just trying the low-level FS stuff first.
>>>> 
>>> 
>>> I did some more tests and wrote the results up here:
>>> 
>>>  http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/
>>> 
>>> In summary:
>>> 
>>> 1. Adding a block cache helped a bit, but it was still too slow.
>> 
>> I think a cache would be helpful for many applications. It's always a bit
>> painful to disable caching on linux-- O_DIRECT doesn't always work, and then
>> you have to align all your buffers. I like the uncached-by-default behaviour
>> of Mirage, but we should make it easier to turn caching back on.
> 
> Perhaps Mirage's block_of_file could take an argument to say whether
> you want it cached. For testing, you often want caching on because
> it's faster, while you want it off when benchmarking. For a real
> system you might want it either way.

I think the way to build these should be via a functor that takes
a BLOCK module type and returns a BLOCK module type, but with caching
inserted as part of its logic.  That can then be constructed directly
in the mirage combinator language using the @-> application.

> 
>>> 2. Dropping FAT and writing directly to the SD card helped a lot.
>> 
>> I think we should concentrate on a block backend for Irmin and label FAT as
>> not part of the Mirage "core". FAT will always be useful for things like
>> making a bootable disk image containing a kernel but it'll never be a
>> drop-in replacement for a modern Linux filesystem :-)
> 
> Are there any concrete plans for this yet? A block backend for Irmin
> would be ideal.

We're getting there -- Thomas (once he returns from his Indian functional
programming conference) will finish the Core_kernel removal from Irmin, and
then we can integrate the Baardskeerder B-Tree library from Arakoon.
That should give us everything we need to persist Irmin into a Xen block
store with no missing dependencies.

We've had Baardskeerder running on Mirage in the past (for the ASPLOS 2013
eval) but it has bitrotted against the newer APIs.   If anyone gets a chance
to resurrect it using the BLOCK interface, that would accelerate the Irmin
porting while Thomas is away.

> 
>>> 3. It's now fast enough for my use, but still slower than I was expecting.
>> 
>> It's very easy to make a small change which hammers performance. I think
>> I'll concentrate on writing  performance tests which can run from a CI when
>> I'm back.
> 
> That would be very useful. It might also show up places where ARM is
> extra slow (e.g. x86 has optimised TCP checksumming, so perhaps we
> should do something similar on ARM).

Dave, did your performance tests ever show up?  I finally have a machine 
setup on which I can run and publish the results regularly.

-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 Sun Oct 05 16:56:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:56: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 1Xap6f-00072f-Mb; Sun, 05 Oct 2014 16:56:25 +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 1Xap6d-00072a-NE
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:56:23 +0000
Received: from [85.158.137.68:17678] by server-12.bemta-3.messagelabs.com id
	99/BE-01574-53871345; Sun, 05 Oct 2014 16:56:21 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1412528178!11610165!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29537 invoked from network); 5 Oct 2014 16:56:18 -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; 5 Oct 2014 16:56:18 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 2464c502;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:58:07 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_b+P-kaqqw+FW5gsVfi7kYh9kmzuRp_gMoJkWp2bUv5w@mail.gmail.com>
Date: Sun, 5 Oct 2014 17:56:15 +0100
Message-Id: <3E3A8A23-87DB-456B-A7E5-6C506C5C8BBA@recoil.org>
References: <CAG4opy8N5aij4KRUyaqfnK6dfJxF7t=frqQuJ9Jy8W=CVf=j9Q@mail.gmail.com>
	<CAG4opy-tq8z70VGY4YB4_2e0r1wNys_0zZ0n2VdNT0XNgg+gUQ@mail.gmail.com>
	<CAG_esB1YVo-L1x6F8w1xxtwo0STvUwkqkx+Gu_G8w1bKd3WxJQ@mail.gmail.com>
	<CAG4opy_b+P-kaqqw+FW5gsVfi7kYh9kmzuRp_gMoJkWp2bUv5w@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage questions from writing a REST service
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 Jul 2014, at 09:18, Thomas Leonard <talex5@gmail.com> wrote:

> On 29 July 2014 14:04, David Scott <scott.dj@gmail.com> wrote:
>> Hi,
>> 
>> Very enjoyable post!
> 
> Thanks :-)
> 
>> On 29 Jul 2014 13:04, "Thomas Leonard" <talex5@gmail.com> wrote:
>>> 
>>> On 7 July 2014 10:08, Thomas Leonard <talex5@gmail.com> wrote:
>>>> I'm writing a test Mirage service for queuing files. It's not using
>>>> ThomasG's merge-queues - I'm just trying the low-level FS stuff first.
>>>> 
>>> 
>>> I did some more tests and wrote the results up here:
>>> 
>>>  http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/
>>> 
>>> In summary:
>>> 
>>> 1. Adding a block cache helped a bit, but it was still too slow.
>> 
>> I think a cache would be helpful for many applications. It's always a bit
>> painful to disable caching on linux-- O_DIRECT doesn't always work, and then
>> you have to align all your buffers. I like the uncached-by-default behaviour
>> of Mirage, but we should make it easier to turn caching back on.
> 
> Perhaps Mirage's block_of_file could take an argument to say whether
> you want it cached. For testing, you often want caching on because
> it's faster, while you want it off when benchmarking. For a real
> system you might want it either way.

I think the way to build these should be via a functor that takes
a BLOCK module type and returns a BLOCK module type, but with caching
inserted as part of its logic.  That can then be constructed directly
in the mirage combinator language using the @-> application.

> 
>>> 2. Dropping FAT and writing directly to the SD card helped a lot.
>> 
>> I think we should concentrate on a block backend for Irmin and label FAT as
>> not part of the Mirage "core". FAT will always be useful for things like
>> making a bootable disk image containing a kernel but it'll never be a
>> drop-in replacement for a modern Linux filesystem :-)
> 
> Are there any concrete plans for this yet? A block backend for Irmin
> would be ideal.

We're getting there -- Thomas (once he returns from his Indian functional
programming conference) will finish the Core_kernel removal from Irmin, and
then we can integrate the Baardskeerder B-Tree library from Arakoon.
That should give us everything we need to persist Irmin into a Xen block
store with no missing dependencies.

We've had Baardskeerder running on Mirage in the past (for the ASPLOS 2013
eval) but it has bitrotted against the newer APIs.   If anyone gets a chance
to resurrect it using the BLOCK interface, that would accelerate the Irmin
porting while Thomas is away.

> 
>>> 3. It's now fast enough for my use, but still slower than I was expecting.
>> 
>> It's very easy to make a small change which hammers performance. I think
>> I'll concentrate on writing  performance tests which can run from a CI when
>> I'm back.
> 
> That would be very useful. It might also show up places where ARM is
> extra slow (e.g. x86 has optimised TCP checksumming, so perhaps we
> should do something similar on ARM).

Dave, did your performance tests ever show up?  I finally have a machine 
setup on which I can run and publish the results regularly.

-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 Sun Oct 05 16:57:56 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:57: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 1Xap88-00074I-Sx; Sun, 05 Oct 2014 16:57:56 +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 1Xap86-00074D-W7
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:57:55 +0000
Received: from [85.158.137.68:58213] by server-5.bemta-3.messagelabs.com id
	92/8E-30889-29871345; Sun, 05 Oct 2014 16:57:54 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-31.messagelabs.com!1412528273!11566698!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15521 invoked from network); 5 Oct 2014 16:57:53 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 16:57:53 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id c421edcd;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:59:41 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <53E10B55.7060107@somerandomidiot.com>
Date: Sun, 5 Oct 2014 17:57:51 +0100
Message-Id: <1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
To: Mindy <mindy@somerandomidiot.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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 was wondering how to solve this more generally (for instance, via an ARM-style device tree).  Does the solution below of picking monotonic network device numbers work on cloud providers?

Amazon still seems to only provide one VIF, so maybe this isn't a real issue.  It'll come up quite quickly on ARM when we are bridging internal/external networks though, so it would be good to figure out a solution...

-anil

On 5 Aug 2014, at 17:50, Mindy <mindy@somerandomidiot.com> wrote:

> Hi Masoud,
> 
> I had a similar question and ended up with this chunk of config.ml for a Mirage program that needed two network interfaces.  Basically, get a different interface by calling `netif` with an integer represented in a string to try for a different interface than the lowest-numbered usable-looking one (tap0 for unix, the vif numbered 0 for xen).  I haven't verified that this actually works with Unix, but it does at least configure and build.
> 
> From a config.ml:
> 
> let client_netif = (netif "0")  (* equivalent to let client_netif = tap0 *)
> let server_netif = (netif "1") (*netif actually needs an integer, shoved
> into a string, which maps to a device ID number assigned by Xen, to do anything
> helpful when xen is the target.  Stuff that can't be turned into an int
> is silently dropped in that case and we just get the first Xen network iface. *)
> 
> Hope this helps,
> Mindy
> 
> On 08/05/2014 10:25 AM, Masoud Koleini wrote:
>> Hi,
>> 
>> I am passing tap0 as a parameter from config to the main module in unikernel.ml. Changing tap0 to tap1 or any other tap device produces an error in compiling config file. How it is possible to pass tap devices other than tap0 from config to the main module?
>> 
>> Thanks.
>> 
>> 
>> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.
>> 
>> This message has been checked for viruses but the contents of an attachment
>> may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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
> 


_______________________________________________
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 Oct 05 16:57:56 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 16:57: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 1Xap88-00074I-Sx; Sun, 05 Oct 2014 16:57:56 +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 1Xap86-00074D-W7
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 16:57:55 +0000
Received: from [85.158.137.68:58213] by server-5.bemta-3.messagelabs.com id
	92/8E-30889-29871345; Sun, 05 Oct 2014 16:57:54 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-31.messagelabs.com!1412528273!11566698!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15521 invoked from network); 5 Oct 2014 16:57:53 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 16:57:53 -0000
Received: from [10.0.0.110] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id c421edcd;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 17:59:41 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <53E10B55.7060107@somerandomidiot.com>
Date: Sun, 5 Oct 2014 17:57:51 +0100
Message-Id: <1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
To: Mindy <mindy@somerandomidiot.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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 was wondering how to solve this more generally (for instance, via an ARM-style device tree).  Does the solution below of picking monotonic network device numbers work on cloud providers?

Amazon still seems to only provide one VIF, so maybe this isn't a real issue.  It'll come up quite quickly on ARM when we are bridging internal/external networks though, so it would be good to figure out a solution...

-anil

On 5 Aug 2014, at 17:50, Mindy <mindy@somerandomidiot.com> wrote:

> Hi Masoud,
> 
> I had a similar question and ended up with this chunk of config.ml for a Mirage program that needed two network interfaces.  Basically, get a different interface by calling `netif` with an integer represented in a string to try for a different interface than the lowest-numbered usable-looking one (tap0 for unix, the vif numbered 0 for xen).  I haven't verified that this actually works with Unix, but it does at least configure and build.
> 
> From a config.ml:
> 
> let client_netif = (netif "0")  (* equivalent to let client_netif = tap0 *)
> let server_netif = (netif "1") (*netif actually needs an integer, shoved
> into a string, which maps to a device ID number assigned by Xen, to do anything
> helpful when xen is the target.  Stuff that can't be turned into an int
> is silently dropped in that case and we just get the first Xen network iface. *)
> 
> Hope this helps,
> Mindy
> 
> On 08/05/2014 10:25 AM, Masoud Koleini wrote:
>> Hi,
>> 
>> I am passing tap0 as a parameter from config to the main module in unikernel.ml. Changing tap0 to tap1 or any other tap device produces an error in compiling config file. How it is possible to pass tap devices other than tap0 from config to the main module?
>> 
>> Thanks.
>> 
>> 
>> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.
>> 
>> This message has been checked for viruses but the contents of an attachment
>> may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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
> 


_______________________________________________
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 Oct 05 20:03:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 20:03: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 1Xas1Z-000169-B2; Sun, 05 Oct 2014 20:03:21 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1Xas1X-000164-Ol
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 20:03:19 +0000
Received: from [85.158.143.35:36330] by server-1.bemta-4.messagelabs.com id
	D9/35-05872-704A1345; Sun, 05 Oct 2014 20:03:19 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1412539398!13979238!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27910 invoked from network); 5 Oct 2014 20:03:18 -0000
Received: from relay3-d.mail.gandi.net (HELO relay3-d.mail.gandi.net)
	(217.70.183.195)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 20:03:18 -0000
Received: from mfilter13-d.gandi.net (mfilter13-d.gandi.net [217.70.178.141])
	by relay3-d.mail.gandi.net (Postfix) with ESMTP id 6A0C4A80B8;
	Sun,  5 Oct 2014 22:03:18 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter13-d.gandi.net
Received: from relay3-d.mail.gandi.net ([217.70.183.195])
	by mfilter13-d.gandi.net (mfilter13-d.gandi.net [10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id SPHLCJqEW+xu; Sun,  5 Oct 2014 22:03:17 +0200 (CEST)
X-Originating-IP: 71.86.229.122
Received: from [192.168.1.103] (71-86-229-122.static.ftbg.wi.charter.com
	[71.86.229.122]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 6DFE8A80B5;
	Sun,  5 Oct 2014 22:03:15 +0200 (CEST)
Message-ID: <5431A41B.2060001@somerandomidiot.com>
Date: Sun, 05 Oct 2014 15:03:39 -0500
From: Mindy <mindy@somerandomidiot.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
In-Reply-To: <1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org




On 10/05/2014 11:57 AM, Anil Madhavapeddy wrote:
> I was wondering how to solve this more generally (for instance, via an ARM-style device tree).  Does the solution below of picking monotonic network device numbers work on cloud providers?
>
> Amazon still seems to only provide one VIF, so maybe this isn't a real issue.  It'll come up quite quickly on ARM when we are bridging internal/external networks though, so it would be good to figure out a solution..
Excellent question.  It apparently doesn't work on EC2, which does allow 
you to give an instance >1 VIF if you futz around in the console a bit.  
Even though the second interface is listed as "device index" 1, versus 
"device index" 0 for the interface created automatically for the 
interface, attempting to get information for the second netif fails 
silently and information for the first is used instead (not great).

-Mindy

_______________________________________________
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 Oct 05 20:03:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 20:03: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 1Xas1Z-000169-B2; Sun, 05 Oct 2014 20:03:21 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1Xas1X-000164-Ol
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 20:03:19 +0000
Received: from [85.158.143.35:36330] by server-1.bemta-4.messagelabs.com id
	D9/35-05872-704A1345; Sun, 05 Oct 2014 20:03:19 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1412539398!13979238!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27910 invoked from network); 5 Oct 2014 20:03:18 -0000
Received: from relay3-d.mail.gandi.net (HELO relay3-d.mail.gandi.net)
	(217.70.183.195)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 20:03:18 -0000
Received: from mfilter13-d.gandi.net (mfilter13-d.gandi.net [217.70.178.141])
	by relay3-d.mail.gandi.net (Postfix) with ESMTP id 6A0C4A80B8;
	Sun,  5 Oct 2014 22:03:18 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter13-d.gandi.net
Received: from relay3-d.mail.gandi.net ([217.70.183.195])
	by mfilter13-d.gandi.net (mfilter13-d.gandi.net [10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id SPHLCJqEW+xu; Sun,  5 Oct 2014 22:03:17 +0200 (CEST)
X-Originating-IP: 71.86.229.122
Received: from [192.168.1.103] (71-86-229-122.static.ftbg.wi.charter.com
	[71.86.229.122]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 6DFE8A80B5;
	Sun,  5 Oct 2014 22:03:15 +0200 (CEST)
Message-ID: <5431A41B.2060001@somerandomidiot.com>
Date: Sun, 05 Oct 2014 15:03:39 -0500
From: Mindy <mindy@somerandomidiot.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
In-Reply-To: <1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org




On 10/05/2014 11:57 AM, Anil Madhavapeddy wrote:
> I was wondering how to solve this more generally (for instance, via an ARM-style device tree).  Does the solution below of picking monotonic network device numbers work on cloud providers?
>
> Amazon still seems to only provide one VIF, so maybe this isn't a real issue.  It'll come up quite quickly on ARM when we are bridging internal/external networks though, so it would be good to figure out a solution..
Excellent question.  It apparently doesn't work on EC2, which does allow 
you to give an instance >1 VIF if you futz around in the console a bit.  
Even though the second interface is listed as "device index" 1, versus 
"device index" 0 for the interface created automatically for the 
interface, attempting to get information for the second netif fails 
silently and information for the first is used instead (not great).

-Mindy

_______________________________________________
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 Oct 05 21:03:13 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 21:03: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 1XasxS-0001Ib-GQ; Sun, 05 Oct 2014 21:03:10 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1XasxR-0001IQ-CO
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 21:03:09 +0000
Received: from [193.109.254.147:58421] by server-10.bemta-14.messagelabs.com
	id CA/DF-01463-C02B1345; Sun, 05 Oct 2014 21:03:08 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1412542985!13395812!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12744 invoked from network); 5 Oct 2014 21:03:05 -0000
Received: from relay3-d.mail.gandi.net (HELO relay3-d.mail.gandi.net)
	(217.70.183.195)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 21:03:05 -0000
Received: from mfilter28-d.gandi.net (mfilter28-d.gandi.net [217.70.178.159])
	by relay3-d.mail.gandi.net (Postfix) with ESMTP id 9FB90A8092
	for <mirageos-devel@lists.xenproject.org>;
	Sun,  5 Oct 2014 23:03:05 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter28-d.gandi.net
Received: from relay3-d.mail.gandi.net ([217.70.183.195])
	by mfilter28-d.gandi.net (mfilter28-d.gandi.net [10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id 9ccHekl6qud8 for <mirageos-devel@lists.xenproject.org>;
	Sun,  5 Oct 2014 23:03:04 +0200 (CEST)
X-Originating-IP: 71.86.229.122
Received: from [192.168.1.103] (71-86-229-122.static.ftbg.wi.charter.com
	[71.86.229.122]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 0AB00A80C0
	for <mirageos-devel@lists.xenproject.org>;
	Sun,  5 Oct 2014 23:03:03 +0200 (CEST)
Message-ID: <5431B21F.2060407@somerandomidiot.com>
Date: Sun, 05 Oct 2014 16:03:27 -0500
From: Mindy <mindy@somerandomidiot.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <53E0F76F.4080303@nottingham.ac.uk>	<53E10B55.7060107@somerandomidiot.com>	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
In-Reply-To: <5431A41B.2060001@somerandomidiot.com>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


On 10/05/2014 03:03 PM, Mindy wrote:
>
>
>
> On 10/05/2014 11:57 AM, Anil Madhavapeddy wrote:
>> I was wondering how to solve this more generally (for instance, via 
>> an ARM-style device tree).  Does the solution below of picking 
>> monotonic network device numbers work on cloud providers?
>>
>> Amazon still seems to only provide one VIF, so maybe this isn't a 
>> real issue.  It'll come up quite quickly on ARM when we are bridging 
>> internal/external networks though, so it would be good to figure out 
>> a solution..
> Excellent question.  It apparently doesn't work on EC2, which does 
> allow you to give an instance >1 VIF if you futz around in the console 
> a bit.  Even though the second interface is listed as "device index" 
> 1, versus "device index" 0 for the interface created automatically for 
> the interface, attempting to get information for the second netif 
> fails silently and information for the first is used instead (not great).

All that stuff I just said is only true if both VIFs aren't attached 
(i.e. assigned to the interface in the Amazon console) at boot time; 
otherwise it appears to work OK (the VM boots and does DHCP for two 
distinct and correct MAC addresses representing the VIFs Amazon provides).

-Mindy

_______________________________________________
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 Oct 05 21:03:13 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 21:03: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 1XasxS-0001Ib-GQ; Sun, 05 Oct 2014 21:03:10 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1XasxR-0001IQ-CO
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 21:03:09 +0000
Received: from [193.109.254.147:58421] by server-10.bemta-14.messagelabs.com
	id CA/DF-01463-C02B1345; Sun, 05 Oct 2014 21:03:08 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1412542985!13395812!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12744 invoked from network); 5 Oct 2014 21:03:05 -0000
Received: from relay3-d.mail.gandi.net (HELO relay3-d.mail.gandi.net)
	(217.70.183.195)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 21:03:05 -0000
Received: from mfilter28-d.gandi.net (mfilter28-d.gandi.net [217.70.178.159])
	by relay3-d.mail.gandi.net (Postfix) with ESMTP id 9FB90A8092
	for <mirageos-devel@lists.xenproject.org>;
	Sun,  5 Oct 2014 23:03:05 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter28-d.gandi.net
Received: from relay3-d.mail.gandi.net ([217.70.183.195])
	by mfilter28-d.gandi.net (mfilter28-d.gandi.net [10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id 9ccHekl6qud8 for <mirageos-devel@lists.xenproject.org>;
	Sun,  5 Oct 2014 23:03:04 +0200 (CEST)
X-Originating-IP: 71.86.229.122
Received: from [192.168.1.103] (71-86-229-122.static.ftbg.wi.charter.com
	[71.86.229.122]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 0AB00A80C0
	for <mirageos-devel@lists.xenproject.org>;
	Sun,  5 Oct 2014 23:03:03 +0200 (CEST)
Message-ID: <5431B21F.2060407@somerandomidiot.com>
Date: Sun, 05 Oct 2014 16:03:27 -0500
From: Mindy <mindy@somerandomidiot.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <53E0F76F.4080303@nottingham.ac.uk>	<53E10B55.7060107@somerandomidiot.com>	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
In-Reply-To: <5431A41B.2060001@somerandomidiot.com>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


On 10/05/2014 03:03 PM, Mindy wrote:
>
>
>
> On 10/05/2014 11:57 AM, Anil Madhavapeddy wrote:
>> I was wondering how to solve this more generally (for instance, via 
>> an ARM-style device tree).  Does the solution below of picking 
>> monotonic network device numbers work on cloud providers?
>>
>> Amazon still seems to only provide one VIF, so maybe this isn't a 
>> real issue.  It'll come up quite quickly on ARM when we are bridging 
>> internal/external networks though, so it would be good to figure out 
>> a solution..
> Excellent question.  It apparently doesn't work on EC2, which does 
> allow you to give an instance >1 VIF if you futz around in the console 
> a bit.  Even though the second interface is listed as "device index" 
> 1, versus "device index" 0 for the interface created automatically for 
> the interface, attempting to get information for the second netif 
> fails silently and information for the first is used instead (not great).

All that stuff I just said is only true if both VIFs aren't attached 
(i.e. assigned to the interface in the Amazon console) at boot time; 
otherwise it appears to work OK (the VM boots and does DHCP for two 
distinct and correct MAC addresses representing the VIFs Amazon provides).

-Mindy

_______________________________________________
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 Oct 05 21:37:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 21:37: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 1XatUz-0001YG-2P; Sun, 05 Oct 2014 21:37:49 +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 1XatUx-0001YB-3V
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 21:37:47 +0000
Received: from [85.158.139.211:59301] by server-16.bemta-5.messagelabs.com id
	FE/D7-01029-A2AB1345; Sun, 05 Oct 2014 21:37:46 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-206.messagelabs.com!1412545065!12168146!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3429 invoked from network); 5 Oct 2014 21:37:45 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 21:37:45 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 09e3498b;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 22:39:33 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431B21F.2060407@somerandomidiot.com>
Date: Sun, 5 Oct 2014 22:37:41 +0100
Message-Id: <BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>	<53E10B55.7060107@somerandomidiot.com>	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
	<5431B21F.2060407@somerandomidiot.com>
To: Mindy <mindy@somerandomidiot.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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 5 Oct 2014, at 22:03, Mindy <mindy@somerandomidiot.com> wrote:
> 
> On 10/05/2014 03:03 PM, Mindy wrote:
>> 
>> On 10/05/2014 11:57 AM, Anil Madhavapeddy wrote:
>>> I was wondering how to solve this more generally (for instance, via an ARM-style device tree).  Does the solution below of picking monotonic network device numbers work on cloud providers?
>>> 
>>> Amazon still seems to only provide one VIF, so maybe this isn't a real issue.  It'll come up quite quickly on ARM when we are bridging internal/external networks though, so it would be good to figure out a solution..
>> Excellent question.  It apparently doesn't work on EC2, which does allow you to give an instance >1 VIF if you futz around in the console a bit.  Even though the second interface is listed as "device index" 1, versus "device index" 0 for the interface created automatically for the interface, attempting to get information for the second netif fails silently and information for the first is used instead (not great).
> 
> All that stuff I just said is only true if both VIFs aren't attached (i.e. assigned to the interface in the Amazon console) at boot time; otherwise it appears to work OK (the VM boots and does DHCP for two distinct and correct MAC addresses representing the VIFs Amazon provides).

Thanks for checking!  That's encouraging -- I would only expect them to work if explicitly attached.

Block devices have another Xenstore numbering scheme that seems far more Linux-specific (and afaict, one that only Dave and Mort understand :-)

-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 Sun Oct 05 21:37:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 21:37: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 1XatUz-0001YG-2P; Sun, 05 Oct 2014 21:37:49 +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 1XatUx-0001YB-3V
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 21:37:47 +0000
Received: from [85.158.139.211:59301] by server-16.bemta-5.messagelabs.com id
	FE/D7-01029-A2AB1345; Sun, 05 Oct 2014 21:37:46 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-206.messagelabs.com!1412545065!12168146!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3429 invoked from network); 5 Oct 2014 21:37:45 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 21:37:45 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 09e3498b;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 22:39:33 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431B21F.2060407@somerandomidiot.com>
Date: Sun, 5 Oct 2014 22:37:41 +0100
Message-Id: <BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>	<53E10B55.7060107@somerandomidiot.com>	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
	<5431B21F.2060407@somerandomidiot.com>
To: Mindy <mindy@somerandomidiot.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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 5 Oct 2014, at 22:03, Mindy <mindy@somerandomidiot.com> wrote:
> 
> On 10/05/2014 03:03 PM, Mindy wrote:
>> 
>> On 10/05/2014 11:57 AM, Anil Madhavapeddy wrote:
>>> I was wondering how to solve this more generally (for instance, via an ARM-style device tree).  Does the solution below of picking monotonic network device numbers work on cloud providers?
>>> 
>>> Amazon still seems to only provide one VIF, so maybe this isn't a real issue.  It'll come up quite quickly on ARM when we are bridging internal/external networks though, so it would be good to figure out a solution..
>> Excellent question.  It apparently doesn't work on EC2, which does allow you to give an instance >1 VIF if you futz around in the console a bit.  Even though the second interface is listed as "device index" 1, versus "device index" 0 for the interface created automatically for the interface, attempting to get information for the second netif fails silently and information for the first is used instead (not great).
> 
> All that stuff I just said is only true if both VIFs aren't attached (i.e. assigned to the interface in the Amazon console) at boot time; otherwise it appears to work OK (the VM boots and does DHCP for two distinct and correct MAC addresses representing the VIFs Amazon provides).

Thanks for checking!  That's encouraging -- I would only expect them to work if explicitly attached.

Block devices have another Xenstore numbering scheme that seems far more Linux-specific (and afaict, one that only Dave and Mort understand :-)

-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 Sun Oct 05 21:48:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 21:48: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 1XatfQ-0001bO-Vc; Sun, 05 Oct 2014 21:48:36 +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 1XatfP-0001bI-5i
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 21:48:35 +0000
Received: from [85.158.139.211:50085] by server-12.bemta-5.messagelabs.com id
	BF/8F-22251-2BCB1345; Sun, 05 Oct 2014 21:48:34 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-206.messagelabs.com!1412545713!12090324!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18712 invoked from network); 5 Oct 2014 21:48:33 -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; 5 Oct 2014 21:48:33 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8e5cc6a6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 22:50:22 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431BBC7.90806@gmail.com>
Date: Sun, 5 Oct 2014 22:48:30 +0100
Message-Id: <3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
References: <5431BBC7.90806@gmail.com>
To: Aaron Quamme <aaron.quamme@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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

[CCing the mirageos-devel list]

On 5 Oct 2014, at 22:44, Aaron Quamme <aaron.quamme@gmail.com> wrote:

> Hello,
> 
> I'm encountering a problem when following the MirageOS hello world guide - when running `make depend' I get the error:
> 
> The dependency mirage-types>=0.4.0 of package mirage-console-unix.1.0.0 is not available for your compiler or your OS.
> 'opam install mirage-console-unix mirage-unix --verbose' failed.
> Makefile:19: recipe for target 'depend' failed
> make: *** [depend] Error 3
> 
> Executing `opam list' reveals that I have mirage-types 1.2.0 installed, so this appears to be a bug.
> 
> I'm running Debian jessie and using opam 1.1.1 with ocaml 4.01.0.
> 
> If there's any other information I can provide, let me know. Thank you for any help you can provide.

Do you have 'aspcud' installed on Jessie by any chance?  If not, could you try installing it and then retrying this?  If that still fails, an issue on https://github.com/ocaml/opam-repository with OPAMDEBUG=1 set in the environment would be helpful in debugging the problem.

-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 Sun Oct 05 21:48:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 21:48: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 1XatfQ-0001bO-Vc; Sun, 05 Oct 2014 21:48:36 +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 1XatfP-0001bI-5i
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 21:48:35 +0000
Received: from [85.158.139.211:50085] by server-12.bemta-5.messagelabs.com id
	BF/8F-22251-2BCB1345; Sun, 05 Oct 2014 21:48:34 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-206.messagelabs.com!1412545713!12090324!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18712 invoked from network); 5 Oct 2014 21:48:33 -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; 5 Oct 2014 21:48:33 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8e5cc6a6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 22:50:22 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431BBC7.90806@gmail.com>
Date: Sun, 5 Oct 2014 22:48:30 +0100
Message-Id: <3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
References: <5431BBC7.90806@gmail.com>
To: Aaron Quamme <aaron.quamme@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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

[CCing the mirageos-devel list]

On 5 Oct 2014, at 22:44, Aaron Quamme <aaron.quamme@gmail.com> wrote:

> Hello,
> 
> I'm encountering a problem when following the MirageOS hello world guide - when running `make depend' I get the error:
> 
> The dependency mirage-types>=0.4.0 of package mirage-console-unix.1.0.0 is not available for your compiler or your OS.
> 'opam install mirage-console-unix mirage-unix --verbose' failed.
> Makefile:19: recipe for target 'depend' failed
> make: *** [depend] Error 3
> 
> Executing `opam list' reveals that I have mirage-types 1.2.0 installed, so this appears to be a bug.
> 
> I'm running Debian jessie and using opam 1.1.1 with ocaml 4.01.0.
> 
> If there's any other information I can provide, let me know. Thank you for any help you can provide.

Do you have 'aspcud' installed on Jessie by any chance?  If not, could you try installing it and then retrying this?  If that still fails, an issue on https://github.com/ocaml/opam-repository with OPAMDEBUG=1 set in the environment would be helpful in debugging the problem.

-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 Sun Oct 05 22:03:49 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:03: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 1Xatu7-0001hJ-6q; Sun, 05 Oct 2014 22:03:47 +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 1Xatu5-0001hE-JO
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:03:45 +0000
Received: from [85.158.139.211:40258] by server-1.bemta-5.messagelabs.com id
	7A/CC-17892-040C1345; Sun, 05 Oct 2014 22:03:44 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-206.messagelabs.com!1412546623!9236199!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26858 invoked from network); 5 Oct 2014 22:03:43 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 5 Oct 2014 22:03:43 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d4819a7d;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 23:05:32 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <20140729092920.GA13382@frosties>
Date: Sun, 5 Oct 2014 23:03:40 +0100
Message-Id: <51486CC3-9712-440A-844F-483DE39228E3@recoil.org>
References: <20140729092920.GA13382@frosties>
To: Goswin von Brederlow <goswin-v-b@web.de>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.1878.6)
Subject: Re: [MirageOS-devel] MPL compiler and bigarray
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

[ccing the mirageos-devel list]

On 29 Jul 2014, at 10:29, Goswin von Brederlow <goswin-v-b@web.de> wrote:
> 
> I've looked at your melange paper [1] and it says that the MPL
> compiler will use a basis library for I/O and buffer management
> functions. You then show the data type for a light-weight packet
> environment record showing that the actual payload is stored in a
> string.
> 
> I want to use MPL for a high througput protocol that involves lots of
> disk I/O with the linux AIO libarry as well and I need to use page
> aligned bigarrays for that.
> 
> I'm wondering how flexible this is. Would it be easy to replace the
> string with a bigarray in the library or replace the library
> altogether? The advantage of a bigarray is that the data is allocated
> outside the ocaml heap and will never be moved by the GC. This allows
> using it in C stubs while the ocaml runtime lock is released or for
> DMA. Bigarrays can also be created to be page aligned or from an
> existing block of data. Which strings all of that requires copying the
> data.
> 
> The MPL generated code is already fast despite the extra copying the
> string requires. I wonder how much using bigarrays for true zero-copy
> networking and I/O would gain on top of that.

Sorry about the delay getting back to you on this.

While it would be easy to replace MPL with a Bigarray rather than a
string, it's probably not worth the effort to resurrect that tool.

We're leaning towards lightweight views over Bigarrays via Cstruct
these days, and using GADTs+metaprogramming to convert packet grammars
into parsers.   The GADT portion of ASN1 parsing for example:
http://openmirage.org/blog/introducing-asn1

What's not fully integrated yet is the use of Metacaml or ppx/camlp4
to perform the metaprogramming.  MPL's introduction of concrete syntax
can then disappear, and packets can be manipulated directly in the
host language as an EDSL.

For simpler protocols like IPv4 or TCP parsing, Cstruct provides a
camlp4 extension that lets you write things like:

cstruct ipv4 {
  uint8_t        hlen_version;
  uint8_t        tos;
  uint16_t       len;
  uint16_t       id;
  uint16_t       off;
  uint8_t        ttl;
  uint8_t        proto;
  uint16_t       csum;
  uint8_t        src[4];
  uint8_t        dst[4]
} as big_endian


and retrieve the values from a Bigarray representation using the
efficient compiler builtins (4.01.0+) for integer conversions.
See https://github.com/mirage/ocaml-cstruct for more on that.

-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 Sun Oct 05 22:03:49 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:03: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 1Xatu7-0001hJ-6q; Sun, 05 Oct 2014 22:03:47 +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 1Xatu5-0001hE-JO
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:03:45 +0000
Received: from [85.158.139.211:40258] by server-1.bemta-5.messagelabs.com id
	7A/CC-17892-040C1345; Sun, 05 Oct 2014 22:03:44 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-206.messagelabs.com!1412546623!9236199!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26858 invoked from network); 5 Oct 2014 22:03:43 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 5 Oct 2014 22:03:43 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d4819a7d;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 23:05:32 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <20140729092920.GA13382@frosties>
Date: Sun, 5 Oct 2014 23:03:40 +0100
Message-Id: <51486CC3-9712-440A-844F-483DE39228E3@recoil.org>
References: <20140729092920.GA13382@frosties>
To: Goswin von Brederlow <goswin-v-b@web.de>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.1878.6)
Subject: Re: [MirageOS-devel] MPL compiler and bigarray
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

[ccing the mirageos-devel list]

On 29 Jul 2014, at 10:29, Goswin von Brederlow <goswin-v-b@web.de> wrote:
> 
> I've looked at your melange paper [1] and it says that the MPL
> compiler will use a basis library for I/O and buffer management
> functions. You then show the data type for a light-weight packet
> environment record showing that the actual payload is stored in a
> string.
> 
> I want to use MPL for a high througput protocol that involves lots of
> disk I/O with the linux AIO libarry as well and I need to use page
> aligned bigarrays for that.
> 
> I'm wondering how flexible this is. Would it be easy to replace the
> string with a bigarray in the library or replace the library
> altogether? The advantage of a bigarray is that the data is allocated
> outside the ocaml heap and will never be moved by the GC. This allows
> using it in C stubs while the ocaml runtime lock is released or for
> DMA. Bigarrays can also be created to be page aligned or from an
> existing block of data. Which strings all of that requires copying the
> data.
> 
> The MPL generated code is already fast despite the extra copying the
> string requires. I wonder how much using bigarrays for true zero-copy
> networking and I/O would gain on top of that.

Sorry about the delay getting back to you on this.

While it would be easy to replace MPL with a Bigarray rather than a
string, it's probably not worth the effort to resurrect that tool.

We're leaning towards lightweight views over Bigarrays via Cstruct
these days, and using GADTs+metaprogramming to convert packet grammars
into parsers.   The GADT portion of ASN1 parsing for example:
http://openmirage.org/blog/introducing-asn1

What's not fully integrated yet is the use of Metacaml or ppx/camlp4
to perform the metaprogramming.  MPL's introduction of concrete syntax
can then disappear, and packets can be manipulated directly in the
host language as an EDSL.

For simpler protocols like IPv4 or TCP parsing, Cstruct provides a
camlp4 extension that lets you write things like:

cstruct ipv4 {
  uint8_t        hlen_version;
  uint8_t        tos;
  uint16_t       len;
  uint16_t       id;
  uint16_t       off;
  uint8_t        ttl;
  uint8_t        proto;
  uint16_t       csum;
  uint8_t        src[4];
  uint8_t        dst[4]
} as big_endian


and retrieve the values from a Bigarray representation using the
efficient compiler builtins (4.01.0+) for integer conversions.
See https://github.com/mirage/ocaml-cstruct for more on that.

-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 Sun Oct 05 22:29:20 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:29: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 1XauIp-0001mE-5v; Sun, 05 Oct 2014 22:29:19 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <aaron.quamme@gmail.com>) id 1XauIn-0001m9-5M
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:29:17 +0000
Received: from [85.158.139.211:11501] by server-17.bemta-5.messagelabs.com id
	AC/FF-08943-C36C1345; Sun, 05 Oct 2014 22:29:16 +0000
X-Env-Sender: aaron.quamme@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1412548154!12116400!1
X-Originating-IP: [209.85.220.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16467 invoked from network); 5 Oct 2014 22:29:15 -0000
Received: from mail-pa0-f48.google.com (HELO mail-pa0-f48.google.com)
	(209.85.220.48)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Oct 2014 22:29:15 -0000
Received: by mail-pa0-f48.google.com with SMTP id eu11so4215499pac.7
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 05 Oct 2014 15:29:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=8DVOqepSfseb3dfGdAkA/PDw7YbgXiKsg7uQ6b80tFo=;
	b=mqLLH15mmwuAbcuHlS0cMF2h9IgHKPRpZQjQR4NBz9UoO6bfoaukJ1fYts+NXMCxOB
	clCN1YcjmLCC9rxosvdrVuR73UZRe+8yHgY/D8l6iiCudBZj2PCWTRc/+EPOw0QIqDlK
	+drYl8Xv3ZxHm54QtkREQ0GjMBdWCuVBrsvjnyIf+VgldqByCxca0jItMsT0FB/icZWV
	uAhLtINnhdTYwgzMMYLbDfNyh3GAgw9pvl/1LjFCMxrw1YQh7GdAdn48Jr3w/n9cxUWt
	5zn2mcqyDTnO6LKf+SYVXcNPOH8cdQRfPDbZPjGTA3kzSV/UX5DOJ6nXJZLqBICilqZL
	mY3A==
X-Received: by 10.70.94.33 with SMTP id cz1mr746812pdb.123.1412548153566;
	Sun, 05 Oct 2014 15:29:13 -0700 (PDT)
Received: from [192.168.7.2] ([68.69.254.174])
	by mx.google.com with ESMTPSA id f11sm5712904pdk.35.2014.10.05.15.29.12
	for <multiple recipients>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Sun, 05 Oct 2014 15:29:13 -0700 (PDT)
Message-ID: <5431C6C5.1090504@gmail.com>
Date: Sun, 05 Oct 2014 17:31:33 -0500
From: Aaron Quamme <aaron.quamme@gmail.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Icedove/31.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
In-Reply-To: <3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10/05/2014 04:48 PM, Anil Madhavapeddy wrote:
> [CCing the mirageos-devel list]
>
> On 5 Oct 2014, at 22:44, Aaron Quamme <aaron.quamme@gmail.com> wrote:
>
>> Hello,
>>
>> I'm encountering a problem when following the MirageOS hello world guide - when running `make depend' I get the error:
>>
>> The dependency mirage-types>=0.4.0 of package mirage-console-unix.1.0.0 is not available for your compiler or your OS.
>> 'opam install mirage-console-unix mirage-unix --verbose' failed.
>> Makefile:19: recipe for target 'depend' failed
>> make: *** [depend] Error 3
>>
>> Executing `opam list' reveals that I have mirage-types 1.2.0 installed, so this appears to be a bug.
>>
>> I'm running Debian jessie and using opam 1.1.1 with ocaml 4.01.0.
>>
>> If there's any other information I can provide, let me know. Thank you for any help you can provide.
>
> Do you have 'aspcud' installed on Jessie by any chance?  If not, could you try installing it and then retrying this?  If that still fails, an issue on https://github.com/ocaml/opam-repository with OPAMDEBUG=1 set in the environment would be helpful in debugging the problem.
>
> -anil
>

I did not have 'aspcud', but installing it doesn't appear to be the 
silver bullet. I tried running 'make depend' again - it looks like opam 
is trying to install packages that I already have installed, which 
causes it to fail:

# W: Cannot find source file matching module 'sexplib_unix' in library 
sexplib_unix
# W: Cannot find source file matching module 'sexplib_num' in library 
sexplib_num
# W: Cannot find source file matching module 'sexplib' in library sexplib
# ocamlfind: Package sexplib_unix is already installed
#  - (file /home/aaron/.opam/system/lib/sexplib_unix/META already exists)
# E: Failure("Command ''/home/aaron/.opam/system/bin/ocamlfind' install 
sexplib_unix unix/lib/META _build/unix/lib/sexplib_unix.cmx 
_build/unix/lib/sexplib_unix.cmxs _build/unix/lib/sexplib_unix.a 
_build/unix/lib/sexplib_unix.cmxa _build/unix/lib/sexplib_unix.cma 
_build/unix/lib/sexplib_unix.cmi unix/lib/sexplib_unix_conv.ml' 
terminated with error code 2")
# make[1]: *** [install] Error 1

Now when I run 'mirage configure --unix', it appears that my 
installation of sexplib isn't detected:

Mirage      Using scanned config file: config.ml
Mirage      Processing: 
/home/aaron/coding/mirage/mirage-skeleton/console/config.ml
Mirage      => rm -rf 
/home/aaron/coding/mirage/mirage-skeleton/console/_build/config.*
Mirage      => cd /home/aaron/coding/mirage/mirage-skeleton/console && 
ocamlbuild -use-ocamlfind -tags annot,bin_annot -pkg mirage config.cmxs
Mirage       ocamlfind ocamldep -package mirage -modules config.ml > 
config.ml.depends
Mirage       + ocamlfind ocamldep -package mirage -modules config.ml > 
config.ml.depends
Mirage       ocamlfind: Package `sexplib' not found - required by `ipaddr'
Mirage       Command exited with code 2.
[ERROR]      The command "cd 
/home/aaron/coding/mirage/mirage-skeleton/console && ocamlbuild 
-use-ocamlfind -tags annot,bin_annot -pkg mirage config.cmxs" exited 
with code 10.

'opam list' shows that sexplib is in fact installed.

It appears that running 'mirage configure --unix' and then 'make depend' 
repeatedly make the problem worse - opam attempts to install more and 
more packages that are already present on my system.

I can certainly file a github issue on this, although I'm afraid it'll 
be an information dump, as I'm not sure what exactly is relevant and 
what isn't.

Aaron


_______________________________________________
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 Oct 05 22:29:20 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:29: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 1XauIp-0001mE-5v; Sun, 05 Oct 2014 22:29:19 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <aaron.quamme@gmail.com>) id 1XauIn-0001m9-5M
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:29:17 +0000
Received: from [85.158.139.211:11501] by server-17.bemta-5.messagelabs.com id
	AC/FF-08943-C36C1345; Sun, 05 Oct 2014 22:29:16 +0000
X-Env-Sender: aaron.quamme@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1412548154!12116400!1
X-Originating-IP: [209.85.220.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16467 invoked from network); 5 Oct 2014 22:29:15 -0000
Received: from mail-pa0-f48.google.com (HELO mail-pa0-f48.google.com)
	(209.85.220.48)
	by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Oct 2014 22:29:15 -0000
Received: by mail-pa0-f48.google.com with SMTP id eu11so4215499pac.7
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 05 Oct 2014 15:29:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=8DVOqepSfseb3dfGdAkA/PDw7YbgXiKsg7uQ6b80tFo=;
	b=mqLLH15mmwuAbcuHlS0cMF2h9IgHKPRpZQjQR4NBz9UoO6bfoaukJ1fYts+NXMCxOB
	clCN1YcjmLCC9rxosvdrVuR73UZRe+8yHgY/D8l6iiCudBZj2PCWTRc/+EPOw0QIqDlK
	+drYl8Xv3ZxHm54QtkREQ0GjMBdWCuVBrsvjnyIf+VgldqByCxca0jItMsT0FB/icZWV
	uAhLtINnhdTYwgzMMYLbDfNyh3GAgw9pvl/1LjFCMxrw1YQh7GdAdn48Jr3w/n9cxUWt
	5zn2mcqyDTnO6LKf+SYVXcNPOH8cdQRfPDbZPjGTA3kzSV/UX5DOJ6nXJZLqBICilqZL
	mY3A==
X-Received: by 10.70.94.33 with SMTP id cz1mr746812pdb.123.1412548153566;
	Sun, 05 Oct 2014 15:29:13 -0700 (PDT)
Received: from [192.168.7.2] ([68.69.254.174])
	by mx.google.com with ESMTPSA id f11sm5712904pdk.35.2014.10.05.15.29.12
	for <multiple recipients>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Sun, 05 Oct 2014 15:29:13 -0700 (PDT)
Message-ID: <5431C6C5.1090504@gmail.com>
Date: Sun, 05 Oct 2014 17:31:33 -0500
From: Aaron Quamme <aaron.quamme@gmail.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Icedove/31.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
In-Reply-To: <3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10/05/2014 04:48 PM, Anil Madhavapeddy wrote:
> [CCing the mirageos-devel list]
>
> On 5 Oct 2014, at 22:44, Aaron Quamme <aaron.quamme@gmail.com> wrote:
>
>> Hello,
>>
>> I'm encountering a problem when following the MirageOS hello world guide - when running `make depend' I get the error:
>>
>> The dependency mirage-types>=0.4.0 of package mirage-console-unix.1.0.0 is not available for your compiler or your OS.
>> 'opam install mirage-console-unix mirage-unix --verbose' failed.
>> Makefile:19: recipe for target 'depend' failed
>> make: *** [depend] Error 3
>>
>> Executing `opam list' reveals that I have mirage-types 1.2.0 installed, so this appears to be a bug.
>>
>> I'm running Debian jessie and using opam 1.1.1 with ocaml 4.01.0.
>>
>> If there's any other information I can provide, let me know. Thank you for any help you can provide.
>
> Do you have 'aspcud' installed on Jessie by any chance?  If not, could you try installing it and then retrying this?  If that still fails, an issue on https://github.com/ocaml/opam-repository with OPAMDEBUG=1 set in the environment would be helpful in debugging the problem.
>
> -anil
>

I did not have 'aspcud', but installing it doesn't appear to be the 
silver bullet. I tried running 'make depend' again - it looks like opam 
is trying to install packages that I already have installed, which 
causes it to fail:

# W: Cannot find source file matching module 'sexplib_unix' in library 
sexplib_unix
# W: Cannot find source file matching module 'sexplib_num' in library 
sexplib_num
# W: Cannot find source file matching module 'sexplib' in library sexplib
# ocamlfind: Package sexplib_unix is already installed
#  - (file /home/aaron/.opam/system/lib/sexplib_unix/META already exists)
# E: Failure("Command ''/home/aaron/.opam/system/bin/ocamlfind' install 
sexplib_unix unix/lib/META _build/unix/lib/sexplib_unix.cmx 
_build/unix/lib/sexplib_unix.cmxs _build/unix/lib/sexplib_unix.a 
_build/unix/lib/sexplib_unix.cmxa _build/unix/lib/sexplib_unix.cma 
_build/unix/lib/sexplib_unix.cmi unix/lib/sexplib_unix_conv.ml' 
terminated with error code 2")
# make[1]: *** [install] Error 1

Now when I run 'mirage configure --unix', it appears that my 
installation of sexplib isn't detected:

Mirage      Using scanned config file: config.ml
Mirage      Processing: 
/home/aaron/coding/mirage/mirage-skeleton/console/config.ml
Mirage      => rm -rf 
/home/aaron/coding/mirage/mirage-skeleton/console/_build/config.*
Mirage      => cd /home/aaron/coding/mirage/mirage-skeleton/console && 
ocamlbuild -use-ocamlfind -tags annot,bin_annot -pkg mirage config.cmxs
Mirage       ocamlfind ocamldep -package mirage -modules config.ml > 
config.ml.depends
Mirage       + ocamlfind ocamldep -package mirage -modules config.ml > 
config.ml.depends
Mirage       ocamlfind: Package `sexplib' not found - required by `ipaddr'
Mirage       Command exited with code 2.
[ERROR]      The command "cd 
/home/aaron/coding/mirage/mirage-skeleton/console && ocamlbuild 
-use-ocamlfind -tags annot,bin_annot -pkg mirage config.cmxs" exited 
with code 10.

'opam list' shows that sexplib is in fact installed.

It appears that running 'mirage configure --unix' and then 'make depend' 
repeatedly make the problem worse - opam attempts to install more and 
more packages that are already present on my system.

I can certainly file a github issue on this, although I'm afraid it'll 
be an information dump, as I'm not sure what exactly is relevant and 
what isn't.

Aaron


_______________________________________________
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 Oct 05 22:35:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:35: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 1XauOO-0001oj-LP; Sun, 05 Oct 2014 22:35:04 +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 1XauON-0001oe-F0
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:35:03 +0000
Received: from [193.109.254.147:65098] by server-12.bemta-14.messagelabs.com
	id 0B/54-01461-697C1345; Sun, 05 Oct 2014 22:35:02 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-27.messagelabs.com!1412548501!13472442!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31038 invoked from network); 5 Oct 2014 22:35:02 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 22:35:02 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 36ae710b;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 23:36:50 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAAxsn=HZr6hB1jk9=dvHKqmSsLH+nBLDP3bvFdTrB6d7JO3Yng@mail.gmail.com>
Date: Sun, 5 Oct 2014 23:34:57 +0100
Message-Id: <E6C48416-A17C-4FFB-A92B-2F92C49CA0D1@recoil.org>
References: <F1335288-E45C-427C-94CB-17917957EDC1@exmail.nottingham.ac.uk>
	<CAAxsn=HZr6hB1jk9=dvHKqmSsLH+nBLDP3bvFdTrB6d7JO3Yng@mail.gmail.com>
To: Jeremy Yallop <jeremy.yallop@cl.cam.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: Steven Luland <psxsl6@nottingham.ac.uk>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] C++ library to OCaml: OCaml objects
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 20 Jun 2014, at 18:47, Jeremy Yallop <jeremy.yallop@cl.cam.ac.uk> wrote:

> Hi Steven,
> 
> On 20 June 2014 16:10, Steven Luland <psxsl6@nottingham.ac.uk> wrote:
>> I wanted to set the type to work with the # notation that OCaml uses
> 
> I find it easier to think about this kind of thing if I separate the
> code that binds the C++ from the code that gives it a more idiomatic
> OCaml interface.  You then end up with four "layers" with
> clearly-separated responsibilities:
> 
>  (1) the C++ library itself (object-oriented C++)
>  (2) the 'extern "C"' interface (function-oriented C++)
>  (3) the ctypes bindings (function-oriented OCaml)
>  (4) the OCaml interface (object-oriented OCaml)
> 
> Here's an example to show what I mean.  First, a simple C++ library
> with a thin 'extern "C"' interface that takes "this" arguments and
> forwards calls to member functions:
> 
<snip>
> Hope that helps a bit!

This was an exceptionally useful tutorial into C++ bindings, so I've
created an issue on the Ctypes tracker to copy it in properly to the
documentation:
   https://github.com/ocamllabs/ocaml-ctypes/issues/187

If anyone has used Ctypes and C++ for any libraries that are uploaded
on GitHub, please let us know so that we can link to them as example
code.

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 Sun Oct 05 22:35:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:35: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 1XauOO-0001oj-LP; Sun, 05 Oct 2014 22:35:04 +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 1XauON-0001oe-F0
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:35:03 +0000
Received: from [193.109.254.147:65098] by server-12.bemta-14.messagelabs.com
	id 0B/54-01461-697C1345; Sun, 05 Oct 2014 22:35:02 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-27.messagelabs.com!1412548501!13472442!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31038 invoked from network); 5 Oct 2014 22:35:02 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 5 Oct 2014 22:35:02 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 36ae710b;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 23:36:50 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAAxsn=HZr6hB1jk9=dvHKqmSsLH+nBLDP3bvFdTrB6d7JO3Yng@mail.gmail.com>
Date: Sun, 5 Oct 2014 23:34:57 +0100
Message-Id: <E6C48416-A17C-4FFB-A92B-2F92C49CA0D1@recoil.org>
References: <F1335288-E45C-427C-94CB-17917957EDC1@exmail.nottingham.ac.uk>
	<CAAxsn=HZr6hB1jk9=dvHKqmSsLH+nBLDP3bvFdTrB6d7JO3Yng@mail.gmail.com>
To: Jeremy Yallop <jeremy.yallop@cl.cam.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: Steven Luland <psxsl6@nottingham.ac.uk>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] C++ library to OCaml: OCaml objects
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 20 Jun 2014, at 18:47, Jeremy Yallop <jeremy.yallop@cl.cam.ac.uk> wrote:

> Hi Steven,
> 
> On 20 June 2014 16:10, Steven Luland <psxsl6@nottingham.ac.uk> wrote:
>> I wanted to set the type to work with the # notation that OCaml uses
> 
> I find it easier to think about this kind of thing if I separate the
> code that binds the C++ from the code that gives it a more idiomatic
> OCaml interface.  You then end up with four "layers" with
> clearly-separated responsibilities:
> 
>  (1) the C++ library itself (object-oriented C++)
>  (2) the 'extern "C"' interface (function-oriented C++)
>  (3) the ctypes bindings (function-oriented OCaml)
>  (4) the OCaml interface (object-oriented OCaml)
> 
> Here's an example to show what I mean.  First, a simple C++ library
> with a thin 'extern "C"' interface that takes "this" arguments and
> forwards calls to member functions:
> 
<snip>
> Hope that helps a bit!

This was an exceptionally useful tutorial into C++ bindings, so I've
created an issue on the Ctypes tracker to copy it in properly to the
documentation:
   https://github.com/ocamllabs/ocaml-ctypes/issues/187

If anyone has used Ctypes and C++ for any libraries that are uploaded
on GitHub, please let us know so that we can link to them as example
code.

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 Sun Oct 05 22:45:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:45: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 1XauYX-0001zX-Tb; Sun, 05 Oct 2014 22:45:33 +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 1XauYW-0001zS-7t
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:45:32 +0000
Received: from [193.109.254.147:52860] by server-6.bemta-14.messagelabs.com id
	FA/87-01867-B0AC1345; Sun, 05 Oct 2014 22:45:31 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1412549130!8868994!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4118 invoked from network); 5 Oct 2014 22:45:30 -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; 5 Oct 2014 22:45:30 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 17c006e6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 23:47:19 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431C6C5.1090504@gmail.com>
Date: Sun, 5 Oct 2014 23:45:27 +0100
Message-Id: <92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
	<5431C6C5.1090504@gmail.com>
To: Aaron Quamme <aaron.quamme@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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 5 Oct 2014, at 23:31, Aaron Quamme <aaron.quamme@gmail.com> wrote:
> 
> It appears that running 'mirage configure --unix' and then 'make depend' repeatedly make the problem worse - opam attempts to install more and more packages that are already present on my system.
> 
> I can certainly file a github issue on this, although I'm afraid it'll be an information dump, as I'm not sure what exactly is relevant and what isn't.
> 

Yeah, I'm not quite sure what's going on here.  The bug may well already be fixed: if you don't mind trying the HEAD branch of https://github.com/ocaml/opam (which will shortly become OPAM 1.2), it has much more robust error recovery in general.

It would probably be best to remove ~/.opam and initialise it from scratch with OPAM 1.2, since I suspect that the internal state of your existing installation is pretty mixed up.

-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 Sun Oct 05 22:45:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 22:45: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 1XauYX-0001zX-Tb; Sun, 05 Oct 2014 22:45:33 +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 1XauYW-0001zS-7t
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 22:45:32 +0000
Received: from [193.109.254.147:52860] by server-6.bemta-14.messagelabs.com id
	FA/87-01867-B0AC1345; Sun, 05 Oct 2014 22:45:31 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1412549130!8868994!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4118 invoked from network); 5 Oct 2014 22:45:30 -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; 5 Oct 2014 22:45:30 -0000
Received: from [192.168.1.113] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 17c006e6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 5 Oct 2014 23:47:19 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431C6C5.1090504@gmail.com>
Date: Sun, 5 Oct 2014 23:45:27 +0100
Message-Id: <92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
	<5431C6C5.1090504@gmail.com>
To: Aaron Quamme <aaron.quamme@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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 5 Oct 2014, at 23:31, Aaron Quamme <aaron.quamme@gmail.com> wrote:
> 
> It appears that running 'mirage configure --unix' and then 'make depend' repeatedly make the problem worse - opam attempts to install more and more packages that are already present on my system.
> 
> I can certainly file a github issue on this, although I'm afraid it'll be an information dump, as I'm not sure what exactly is relevant and what isn't.
> 

Yeah, I'm not quite sure what's going on here.  The bug may well already be fixed: if you don't mind trying the HEAD branch of https://github.com/ocaml/opam (which will shortly become OPAM 1.2), it has much more robust error recovery in general.

It would probably be best to remove ~/.opam and initialise it from scratch with OPAM 1.2, since I suspect that the internal state of your existing installation is pretty mixed up.

-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 Sun Oct 05 23:27:09 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 23: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 1XavCl-00029E-1Q; Sun, 05 Oct 2014 23:27:07 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <aaron.quamme@gmail.com>) id 1XavCj-000299-QB
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 23:27:05 +0000
Received: from [193.109.254.147:8122] by server-6.bemta-14.messagelabs.com id
	93/D4-01867-9C3D1345; Sun, 05 Oct 2014 23:27:05 +0000
X-Env-Sender: aaron.quamme@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1412551622!10178655!1
X-Originating-IP: [209.85.192.179]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14982 invoked from network); 5 Oct 2014 23:27:04 -0000
Received: from mail-pd0-f179.google.com (HELO mail-pd0-f179.google.com)
	(209.85.192.179)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Oct 2014 23:27:04 -0000
Received: by mail-pd0-f179.google.com with SMTP id r10so2360040pdi.10
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 05 Oct 2014 16:27:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=23SFwmsjsqoMl9Lv1UPGyMiUeabQBO/eJFVvWmLqLlw=;
	b=q+zHJ8hvIO1rT7M9pFrYX0zLsDhJiLw30h+jWnvVs+du+GRuIjg3Vwl+2ltt7mHRPz
	2NL4fCMxFmVNzeUEZ0fDAHyZdClAFJEwLvWgfnGUZZA8yVcDRGBSZYG0HtpvXC2UUXPI
	eegVedd50+stKV6A+UlOM1SpQRKDRGpKMe/u6UeBJsyZ8pfRTTRf6GBP8797zGQQwlR+
	Tck36FwRZJkewxVwlnxrzlnu+ZFNXbHjCz+8ORAybL0RHlsgqDfgG37Ojfr+5DYvhACX
	XBwHxrl68Gq8SdlAOhMohp2i0Il9NdOE1sldqGcdnzlS5+bUq1W6ezkOrTN2q1QSLy74
	mp/w==
X-Received: by 10.68.212.41 with SMTP id nh9mr81407pbc.127.1412551622546;
	Sun, 05 Oct 2014 16:27:02 -0700 (PDT)
Received: from [192.168.7.2] ([68.69.254.174]) by mx.google.com with ESMTPSA id
	gu10sm11611881pbc.72.2014.10.05.16.27.01 for <multiple recipients>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Sun, 05 Oct 2014 16:27:02 -0700 (PDT)
Message-ID: <5431D452.3010704@gmail.com>
Date: Sun, 05 Oct 2014 18:29:22 -0500
From: Aaron Quamme <aaron.quamme@gmail.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Icedove/31.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
	<5431C6C5.1090504@gmail.com>
	<92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
In-Reply-To: <92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10/05/2014 05:45 PM, Anil Madhavapeddy wrote:
> On 5 Oct 2014, at 23:31, Aaron Quamme <aaron.quamme@gmail.com> wrote:
>>
>> It appears that running 'mirage configure --unix' and then 'make depend' repeatedly make the problem worse - opam attempts to install more and more packages that are already present on my system.
>>
>> I can certainly file a github issue on this, although I'm afraid it'll be an information dump, as I'm not sure what exactly is relevant and what isn't.
>>
>
> Yeah, I'm not quite sure what's going on here.  The bug may well already be fixed: if you don't mind trying the HEAD branch of https://github.com/ocaml/opam (which will shortly become OPAM 1.2), it has much more robust error recovery in general.
>
> It would probably be best to remove ~/.opam and initialise it from scratch with OPAM 1.2, since I suspect that the internal state of your existing installation is pretty mixed up.
>
> -anil
>

Thanks Anil, OPAM 1.2 works beautifully. Mirage says hello to you and 
the rest of the world =)

Aaron

_______________________________________________
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 Oct 05 23:27:09 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 Oct 2014 23: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 1XavCl-00029E-1Q; Sun, 05 Oct 2014 23:27:07 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <aaron.quamme@gmail.com>) id 1XavCj-000299-QB
	for mirageos-devel@lists.xenproject.org; Sun, 05 Oct 2014 23:27:05 +0000
Received: from [193.109.254.147:8122] by server-6.bemta-14.messagelabs.com id
	93/D4-01867-9C3D1345; Sun, 05 Oct 2014 23:27:05 +0000
X-Env-Sender: aaron.quamme@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1412551622!10178655!1
X-Originating-IP: [209.85.192.179]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14982 invoked from network); 5 Oct 2014 23:27:04 -0000
Received: from mail-pd0-f179.google.com (HELO mail-pd0-f179.google.com)
	(209.85.192.179)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	5 Oct 2014 23:27:04 -0000
Received: by mail-pd0-f179.google.com with SMTP id r10so2360040pdi.10
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 05 Oct 2014 16:27:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=23SFwmsjsqoMl9Lv1UPGyMiUeabQBO/eJFVvWmLqLlw=;
	b=q+zHJ8hvIO1rT7M9pFrYX0zLsDhJiLw30h+jWnvVs+du+GRuIjg3Vwl+2ltt7mHRPz
	2NL4fCMxFmVNzeUEZ0fDAHyZdClAFJEwLvWgfnGUZZA8yVcDRGBSZYG0HtpvXC2UUXPI
	eegVedd50+stKV6A+UlOM1SpQRKDRGpKMe/u6UeBJsyZ8pfRTTRf6GBP8797zGQQwlR+
	Tck36FwRZJkewxVwlnxrzlnu+ZFNXbHjCz+8ORAybL0RHlsgqDfgG37Ojfr+5DYvhACX
	XBwHxrl68Gq8SdlAOhMohp2i0Il9NdOE1sldqGcdnzlS5+bUq1W6ezkOrTN2q1QSLy74
	mp/w==
X-Received: by 10.68.212.41 with SMTP id nh9mr81407pbc.127.1412551622546;
	Sun, 05 Oct 2014 16:27:02 -0700 (PDT)
Received: from [192.168.7.2] ([68.69.254.174]) by mx.google.com with ESMTPSA id
	gu10sm11611881pbc.72.2014.10.05.16.27.01 for <multiple recipients>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Sun, 05 Oct 2014 16:27:02 -0700 (PDT)
Message-ID: <5431D452.3010704@gmail.com>
Date: Sun, 05 Oct 2014 18:29:22 -0500
From: Aaron Quamme <aaron.quamme@gmail.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Icedove/31.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
	<5431C6C5.1090504@gmail.com>
	<92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
In-Reply-To: <92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10/05/2014 05:45 PM, Anil Madhavapeddy wrote:
> On 5 Oct 2014, at 23:31, Aaron Quamme <aaron.quamme@gmail.com> wrote:
>>
>> It appears that running 'mirage configure --unix' and then 'make depend' repeatedly make the problem worse - opam attempts to install more and more packages that are already present on my system.
>>
>> I can certainly file a github issue on this, although I'm afraid it'll be an information dump, as I'm not sure what exactly is relevant and what isn't.
>>
>
> Yeah, I'm not quite sure what's going on here.  The bug may well already be fixed: if you don't mind trying the HEAD branch of https://github.com/ocaml/opam (which will shortly become OPAM 1.2), it has much more robust error recovery in general.
>
> It would probably be best to remove ~/.opam and initialise it from scratch with OPAM 1.2, since I suspect that the internal state of your existing installation is pretty mixed up.
>
> -anil
>

Thanks Anil, OPAM 1.2 works beautifully. Mirage says hello to you and 
the rest of the world =)

Aaron

_______________________________________________
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 Oct 06 09:38:17 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 09:38: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 1Xb4jz-0005da-AE; Mon, 06 Oct 2014 09:38:03 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <goswin-v-b@web.de>) id 1Xb4jx-0005dV-MI
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 09:38:01 +0000
Received: from [193.109.254.147:6423] by server-12.bemta-14.messagelabs.com id
	89/67-01461-9F262345; Mon, 06 Oct 2014 09:38:01 +0000
X-Env-Sender: goswin-v-b@web.de
X-Msg-Ref: server-14.tower-27.messagelabs.com!1412588280!13541175!1
X-Originating-IP: [212.227.17.11]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjExID0+IDE4NTg2\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjExID0+IDE4NTg2\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21865 invoked from network); 6 Oct 2014 09:38:00 -0000
Received: from mout.web.de (HELO mout.web.de) (212.227.17.11)
	by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 6 Oct 2014 09:38:00 -0000
Received: from frosties.localnet ([95.208.222.117]) by smtp.web.de (mrweb101)
	with ESMTPSA (Nemesis) id 0LpNwf-1Y7PLW0zyP-00f7HF;
	Mon, 06 Oct 2014 11:37:59 +0200
Received: from mrvn by frosties.localnet with local (Exim 4.82)
	(envelope-from <goswin-v-b@web.de>)
	id 1Xb4ju-0005Wy-56; Mon, 06 Oct 2014 11:37:58 +0200
Date: Mon, 6 Oct 2014 11:37:58 +0200
From: Goswin von Brederlow <goswin-v-b@web.de>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <20141006093757.GA20501@frosties>
References: <20140729092920.GA13382@frosties>
	<51486CC3-9712-440A-844F-483DE39228E3@recoil.org>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <51486CC3-9712-440A-844F-483DE39228E3@recoil.org>
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Provags-ID: V03:K0:1O6HVW/Z+Wwbzgv/09x9UCuAXBfOPHTYnx+Dub6ujoLTpOZvJte
	QfXm2g8R9SJPUE9tfJczU9soX4DnlhNWlsf3CakB2r1Iy+SIfhDgqs7oAJ5TzQDELKztXwb
	PivUe3nkXEpVcpV1Kssmy9eMAgnrB6ALturqcW481Rqe2Erbqd9E0GuMzRTuqrRA3CVwLvX
	ufJcwQr9t07HsfnCs6nQA==
X-UI-Out-Filterresults: notjunk:1;
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] MPL compiler and bigarray
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, Oct 05, 2014 at 11:03:40PM +0100, Anil Madhavapeddy wrote:
> [ccing the mirageos-devel list]
> 
> On 29 Jul 2014, at 10:29, Goswin von Brederlow <goswin-v-b@web.de> wrote:
> > 
> > I've looked at your melange paper [1] and it says that the MPL
> > compiler will use a basis library for I/O and buffer management
> > functions. You then show the data type for a light-weight packet
> > environment record showing that the actual payload is stored in a
> > string.
> > 
> > I want to use MPL for a high througput protocol that involves lots of
> > disk I/O with the linux AIO libarry as well and I need to use page
> > aligned bigarrays for that.
> > 
> > I'm wondering how flexible this is. Would it be easy to replace the
> > string with a bigarray in the library or replace the library
> > altogether? The advantage of a bigarray is that the data is allocated
> > outside the ocaml heap and will never be moved by the GC. This allows
> > using it in C stubs while the ocaml runtime lock is released or for
> > DMA. Bigarrays can also be created to be page aligned or from an
> > existing block of data. Which strings all of that requires copying the
> > data.
> > 
> > The MPL generated code is already fast despite the extra copying the
> > string requires. I wonder how much using bigarrays for true zero-copy
> > networking and I/O would gain on top of that.
> 
> Sorry about the delay getting back to you on this.
> 
> While it would be easy to replace MPL with a Bigarray rather than a
> string, it's probably not worth the effort to resurrect that tool.
> 
> We're leaning towards lightweight views over Bigarrays via Cstruct
> these days, and using GADTs+metaprogramming to convert packet grammars
> into parsers.   The GADT portion of ASN1 parsing for example:
> http://openmirage.org/blog/introducing-asn1
> 
> What's not fully integrated yet is the use of Metacaml or ppx/camlp4
> to perform the metaprogramming.  MPL's introduction of concrete syntax
> can then disappear, and packets can be manipulated directly in the
> host language as an EDSL.
> 
> For simpler protocols like IPv4 or TCP parsing, Cstruct provides a
> camlp4 extension that lets you write things like:
> 
> cstruct ipv4 {
>   uint8_t        hlen_version;
>   uint8_t        tos;
>   uint16_t       len;
>   uint16_t       id;
>   uint16_t       off;
>   uint8_t        ttl;
>   uint8_t        proto;
>   uint16_t       csum;
>   uint8_t        src[4];
>   uint8_t        dst[4]
> } as big_endian
> 
> 
> and retrieve the values from a Bigarray representation using the
> efficient compiler builtins (4.01.0+) for integer conversions.
> See https://github.com/mirage/ocaml-cstruct for more on that.
> 
> -anil

Cool. That sounds even better.

MfG
	Goswin

_______________________________________________
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 Oct 06 09:38:17 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 09:38: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 1Xb4jz-0005da-AE; Mon, 06 Oct 2014 09:38:03 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <goswin-v-b@web.de>) id 1Xb4jx-0005dV-MI
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 09:38:01 +0000
Received: from [193.109.254.147:6423] by server-12.bemta-14.messagelabs.com id
	89/67-01461-9F262345; Mon, 06 Oct 2014 09:38:01 +0000
X-Env-Sender: goswin-v-b@web.de
X-Msg-Ref: server-14.tower-27.messagelabs.com!1412588280!13541175!1
X-Originating-IP: [212.227.17.11]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjExID0+IDE4NTg2\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjExID0+IDE4NTg2\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21865 invoked from network); 6 Oct 2014 09:38:00 -0000
Received: from mout.web.de (HELO mout.web.de) (212.227.17.11)
	by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 6 Oct 2014 09:38:00 -0000
Received: from frosties.localnet ([95.208.222.117]) by smtp.web.de (mrweb101)
	with ESMTPSA (Nemesis) id 0LpNwf-1Y7PLW0zyP-00f7HF;
	Mon, 06 Oct 2014 11:37:59 +0200
Received: from mrvn by frosties.localnet with local (Exim 4.82)
	(envelope-from <goswin-v-b@web.de>)
	id 1Xb4ju-0005Wy-56; Mon, 06 Oct 2014 11:37:58 +0200
Date: Mon, 6 Oct 2014 11:37:58 +0200
From: Goswin von Brederlow <goswin-v-b@web.de>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <20141006093757.GA20501@frosties>
References: <20140729092920.GA13382@frosties>
	<51486CC3-9712-440A-844F-483DE39228E3@recoil.org>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <51486CC3-9712-440A-844F-483DE39228E3@recoil.org>
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Provags-ID: V03:K0:1O6HVW/Z+Wwbzgv/09x9UCuAXBfOPHTYnx+Dub6ujoLTpOZvJte
	QfXm2g8R9SJPUE9tfJczU9soX4DnlhNWlsf3CakB2r1Iy+SIfhDgqs7oAJ5TzQDELKztXwb
	PivUe3nkXEpVcpV1Kssmy9eMAgnrB6ALturqcW481Rqe2Erbqd9E0GuMzRTuqrRA3CVwLvX
	ufJcwQr9t07HsfnCs6nQA==
X-UI-Out-Filterresults: notjunk:1;
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] MPL compiler and bigarray
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, Oct 05, 2014 at 11:03:40PM +0100, Anil Madhavapeddy wrote:
> [ccing the mirageos-devel list]
> 
> On 29 Jul 2014, at 10:29, Goswin von Brederlow <goswin-v-b@web.de> wrote:
> > 
> > I've looked at your melange paper [1] and it says that the MPL
> > compiler will use a basis library for I/O and buffer management
> > functions. You then show the data type for a light-weight packet
> > environment record showing that the actual payload is stored in a
> > string.
> > 
> > I want to use MPL for a high througput protocol that involves lots of
> > disk I/O with the linux AIO libarry as well and I need to use page
> > aligned bigarrays for that.
> > 
> > I'm wondering how flexible this is. Would it be easy to replace the
> > string with a bigarray in the library or replace the library
> > altogether? The advantage of a bigarray is that the data is allocated
> > outside the ocaml heap and will never be moved by the GC. This allows
> > using it in C stubs while the ocaml runtime lock is released or for
> > DMA. Bigarrays can also be created to be page aligned or from an
> > existing block of data. Which strings all of that requires copying the
> > data.
> > 
> > The MPL generated code is already fast despite the extra copying the
> > string requires. I wonder how much using bigarrays for true zero-copy
> > networking and I/O would gain on top of that.
> 
> Sorry about the delay getting back to you on this.
> 
> While it would be easy to replace MPL with a Bigarray rather than a
> string, it's probably not worth the effort to resurrect that tool.
> 
> We're leaning towards lightweight views over Bigarrays via Cstruct
> these days, and using GADTs+metaprogramming to convert packet grammars
> into parsers.   The GADT portion of ASN1 parsing for example:
> http://openmirage.org/blog/introducing-asn1
> 
> What's not fully integrated yet is the use of Metacaml or ppx/camlp4
> to perform the metaprogramming.  MPL's introduction of concrete syntax
> can then disappear, and packets can be manipulated directly in the
> host language as an EDSL.
> 
> For simpler protocols like IPv4 or TCP parsing, Cstruct provides a
> camlp4 extension that lets you write things like:
> 
> cstruct ipv4 {
>   uint8_t        hlen_version;
>   uint8_t        tos;
>   uint16_t       len;
>   uint16_t       id;
>   uint16_t       off;
>   uint8_t        ttl;
>   uint8_t        proto;
>   uint16_t       csum;
>   uint8_t        src[4];
>   uint8_t        dst[4]
> } as big_endian
> 
> 
> and retrieve the values from a Bigarray representation using the
> efficient compiler builtins (4.01.0+) for integer conversions.
> See https://github.com/mirage/ocaml-cstruct for more on that.
> 
> -anil

Cool. That sounds even better.

MfG
	Goswin

_______________________________________________
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 Oct 06 10:03:42 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 10:03:42 +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 1Xb58d-0006VO-3Z; Mon, 06 Oct 2014 10:03:31 +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 1Xb58b-0006VJ-LB
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 10:03:29 +0000
Received: from [85.158.137.68:30744] by server-9.bemta-3.messagelabs.com id
	04/2D-30790-0F862345; Mon, 06 Oct 2014 10:03:28 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-31.messagelabs.com!1412589808!11699687!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26958 invoked from network); 6 Oct 2014 10:03:28 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 6 Oct 2014 10:03:28 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 29f2e0a3;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 6 Oct 2014 11:05:18 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431D452.3010704@gmail.com>
Date: Mon, 6 Oct 2014 11:03:24 +0100
Message-Id: <5EAF9631-84DD-4C78-8518-77B1638FA5C0@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
	<5431C6C5.1090504@gmail.com>
	<92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
	<5431D452.3010704@gmail.com>
To: Aaron Quamme <aaron.quamme@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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 Oct 2014, at 00:29, Aaron Quamme <aaron.quamme@gmail.com> wrote:

> On 10/05/2014 05:45 PM, Anil Madhavapeddy wrote:
>> On 5 Oct 2014, at 23:31, Aaron Quamme <aaron.quamme@gmail.com> wrote:
>>> 
>>> It appears that running 'mirage configure --unix' and then 'make depend' repeatedly make the problem worse - opam attempts to install more and more packages that are already present on my system.
>>> 
>>> I can certainly file a github issue on this, although I'm afraid it'll be an information dump, as I'm not sure what exactly is relevant and what isn't.
>>> 
>> 
>> Yeah, I'm not quite sure what's going on here.  The bug may well already be fixed: if you don't mind trying the HEAD branch of https://github.com/ocaml/opam (which will shortly become OPAM 1.2), it has much more robust error recovery in general.
>> 
>> It would probably be best to remove ~/.opam and initialise it from scratch with OPAM 1.2, since I suspect that the internal state of your existing installation is pretty mixed up.
>> 
>> -anil
>> 
> 
> Thanks Anil, OPAM 1.2 works beautifully. Mirage says hello to you and the rest of the world =)

Splendid!  Let's tiptoe gently away from OPAM 1.1 and start steering people to OPAM 1.2 as soon as possible, from the sounds of it... :-)

-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 Oct 06 10:03:42 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 10:03:42 +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 1Xb58d-0006VO-3Z; Mon, 06 Oct 2014 10:03:31 +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 1Xb58b-0006VJ-LB
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 10:03:29 +0000
Received: from [85.158.137.68:30744] by server-9.bemta-3.messagelabs.com id
	04/2D-30790-0F862345; Mon, 06 Oct 2014 10:03:28 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-31.messagelabs.com!1412589808!11699687!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26958 invoked from network); 6 Oct 2014 10:03:28 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 6 Oct 2014 10:03:28 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 29f2e0a3;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 6 Oct 2014 11:05:18 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5431D452.3010704@gmail.com>
Date: Mon, 6 Oct 2014 11:03:24 +0100
Message-Id: <5EAF9631-84DD-4C78-8518-77B1638FA5C0@recoil.org>
References: <5431BBC7.90806@gmail.com>
	<3FCB3538-DE1F-42E4-88FB-0008615C4836@recoil.org>
	<5431C6C5.1090504@gmail.com>
	<92B7CFEB-E4D8-4AB1-BA0E-4318BB1E5476@recoil.org>
	<5431D452.3010704@gmail.com>
To: Aaron Quamme <aaron.quamme@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-clock-unix dependency problem
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 Oct 2014, at 00:29, Aaron Quamme <aaron.quamme@gmail.com> wrote:

> On 10/05/2014 05:45 PM, Anil Madhavapeddy wrote:
>> On 5 Oct 2014, at 23:31, Aaron Quamme <aaron.quamme@gmail.com> wrote:
>>> 
>>> It appears that running 'mirage configure --unix' and then 'make depend' repeatedly make the problem worse - opam attempts to install more and more packages that are already present on my system.
>>> 
>>> I can certainly file a github issue on this, although I'm afraid it'll be an information dump, as I'm not sure what exactly is relevant and what isn't.
>>> 
>> 
>> Yeah, I'm not quite sure what's going on here.  The bug may well already be fixed: if you don't mind trying the HEAD branch of https://github.com/ocaml/opam (which will shortly become OPAM 1.2), it has much more robust error recovery in general.
>> 
>> It would probably be best to remove ~/.opam and initialise it from scratch with OPAM 1.2, since I suspect that the internal state of your existing installation is pretty mixed up.
>> 
>> -anil
>> 
> 
> Thanks Anil, OPAM 1.2 works beautifully. Mirage says hello to you and the rest of the world =)

Splendid!  Let's tiptoe gently away from OPAM 1.1 and start steering people to OPAM 1.2 as soon as possible, from the sounds of it... :-)

-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 Oct 06 10:45:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 10:45: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 1Xb5nC-0007MX-TN; Mon, 06 Oct 2014 10:45:26 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xb5nB-0007MQ-03
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 10:45:25 +0000
Received: from [85.158.139.211:50593] by server-6.bemta-5.messagelabs.com id
	44/41-06284-4C272345; Mon, 06 Oct 2014 10:45:24 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-11.tower-206.messagelabs.com!1412592196!8087849!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20354 invoked from network); 6 Oct 2014 10:43:16 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-11.tower-206.messagelabs.com with SMTP;
	6 Oct 2014 10:43:16 -0000
Received: (qmail 3474 invoked from network); 6 Oct 2014 10:43:15 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 6 Oct 2014 10:43:15 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 02241-02 for <mirageos-devel@lists.xenproject.org>;
	Mon,  6 Oct 2014 11:43:09 +0100 (BST)
Received: (qmail 3298 invoked by uid 599); 6 Oct 2014 10:43:09 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 06 Oct 2014 11:43:09 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xb5ky-0001Ih-9L; Mon, 06 Oct 2014 11:43:08 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 6 Oct 2014 11:43:07 +0100
Thread-Topic: [MirageOS-devel] Passing tap devices to the main module
Thread-Index: Ac/hUlDlq2AKppulTaysdAoURqJDYw==
Message-ID: <264D91F1-2A11-4B17-9FF7-96DC9D4FB38A@nottingham.ac.uk>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
	<5431B21F.2060407@somerandomidiot.com>
	<BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
In-Reply-To: <BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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="===============4948474178164338850=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4948474178164338850==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 5 Oct 2014, at 22:37, Anil Madhavapeddy <anil@recoil.org> wrote:

> Block devices have another Xenstore numbering scheme that seems far =
more Linux-specific (and afaict, one that only Dave and Mort understand =
:-)

pshaw. it's in the code. plain for all to see. somewhere.
(just don't ask me to remember it... :)

in a spirit of functorisation, it seems like one should be able to pass =
in a function that would generate the next device id as part of the =
configuration of a unikernel, rather than embedding it in some backend =
library (or even frontend tool). or perhaps that's what providing a =
device tree would do?

(does that even make sense?)


--=20
Cheers,

R.





--Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUMnI7AAoJEOLF27JWwSg3cUQP/3ds1lbA1l+MGxQIRVjgi59W
MCq9SdvLg0oGzhEYeoG0mpJKdu11/dmfrJNIkaAjVwu9ca9nGx2cTnT2MOdC32Wu
JR2Qk/YpHIAJuNwXpwNTBlka5MHUocHW+3Y9IEUMPZ5mV/o4FjavfPbmYQsQV5nU
oAFDZrpe4iDlQ9KTCfbpxZTEgbLHKQjkqQEjh4L6DMkp4j5Ihp9Fz66H2DSBsLSx
kNBNYe4GPLD1kFhms7LzD1rqJU5WRm3khoBxDyQFW/fSpa0u6owkIXlnNs0mUtCv
KUYXRQbcQ/0bUnlbs0rd3KunM3ZeLL1BRhA4vrcvWRkK34pG0ohdzGjfgBjrJvig
xfM5AlLYIHc5i55019Qpk4IF94A0GNEmCcvgYnq0oWdmQe7LAqwV0T80ldXjR7Fb
7Sa1uC+dugZVR3P7898fSGz1XHEu7RR9rzzZbe6VPSeFR8kIFSl8k8dtZf3o0xA2
QSw57LZdMsCmsMjFXjZK3eACIYQlbSD73Flb6hp/zXxr19lVPjaYSCEI2znESunV
KZ0BRIzsf5njPmX8dvhcVHHagWPrViyxWPg0ExSZshqFwZIeX5akhkXcP7EHMtZ1
5bXnevoecvpSnjTYnHThhBOuJVyyJwguQixwdG8iwEFA2sO+CZZMefTUibGj+hE8
BzAZC4ni6ijG57sQE0K7
=5gyg
-----END PGP SIGNATURE-----

--Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376--


--===============4948474178164338850==
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

--===============4948474178164338850==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 06 10:45:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 10:45: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 1Xb5nC-0007MX-TN; Mon, 06 Oct 2014 10:45:26 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xb5nB-0007MQ-03
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 10:45:25 +0000
Received: from [85.158.139.211:50593] by server-6.bemta-5.messagelabs.com id
	44/41-06284-4C272345; Mon, 06 Oct 2014 10:45:24 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-11.tower-206.messagelabs.com!1412592196!8087849!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20354 invoked from network); 6 Oct 2014 10:43:16 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-11.tower-206.messagelabs.com with SMTP;
	6 Oct 2014 10:43:16 -0000
Received: (qmail 3474 invoked from network); 6 Oct 2014 10:43:15 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 6 Oct 2014 10:43:15 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 02241-02 for <mirageos-devel@lists.xenproject.org>;
	Mon,  6 Oct 2014 11:43:09 +0100 (BST)
Received: (qmail 3298 invoked by uid 599); 6 Oct 2014 10:43:09 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 06 Oct 2014 11:43:09 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xb5ky-0001Ih-9L; Mon, 06 Oct 2014 11:43:08 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 6 Oct 2014 11:43:07 +0100
Thread-Topic: [MirageOS-devel] Passing tap devices to the main module
Thread-Index: Ac/hUlDlq2AKppulTaysdAoURqJDYw==
Message-ID: <264D91F1-2A11-4B17-9FF7-96DC9D4FB38A@nottingham.ac.uk>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
	<5431B21F.2060407@somerandomidiot.com>
	<BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
In-Reply-To: <BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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="===============4948474178164338850=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4948474178164338850==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 5 Oct 2014, at 22:37, Anil Madhavapeddy <anil@recoil.org> wrote:

> Block devices have another Xenstore numbering scheme that seems far =
more Linux-specific (and afaict, one that only Dave and Mort understand =
:-)

pshaw. it's in the code. plain for all to see. somewhere.
(just don't ask me to remember it... :)

in a spirit of functorisation, it seems like one should be able to pass =
in a function that would generate the next device id as part of the =
configuration of a unikernel, rather than embedding it in some backend =
library (or even frontend tool). or perhaps that's what providing a =
device tree would do?

(does that even make sense?)


--=20
Cheers,

R.





--Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUMnI7AAoJEOLF27JWwSg3cUQP/3ds1lbA1l+MGxQIRVjgi59W
MCq9SdvLg0oGzhEYeoG0mpJKdu11/dmfrJNIkaAjVwu9ca9nGx2cTnT2MOdC32Wu
JR2Qk/YpHIAJuNwXpwNTBlka5MHUocHW+3Y9IEUMPZ5mV/o4FjavfPbmYQsQV5nU
oAFDZrpe4iDlQ9KTCfbpxZTEgbLHKQjkqQEjh4L6DMkp4j5Ihp9Fz66H2DSBsLSx
kNBNYe4GPLD1kFhms7LzD1rqJU5WRm3khoBxDyQFW/fSpa0u6owkIXlnNs0mUtCv
KUYXRQbcQ/0bUnlbs0rd3KunM3ZeLL1BRhA4vrcvWRkK34pG0ohdzGjfgBjrJvig
xfM5AlLYIHc5i55019Qpk4IF94A0GNEmCcvgYnq0oWdmQe7LAqwV0T80ldXjR7Fb
7Sa1uC+dugZVR3P7898fSGz1XHEu7RR9rzzZbe6VPSeFR8kIFSl8k8dtZf3o0xA2
QSw57LZdMsCmsMjFXjZK3eACIYQlbSD73Flb6hp/zXxr19lVPjaYSCEI2znESunV
KZ0BRIzsf5njPmX8dvhcVHHagWPrViyxWPg0ExSZshqFwZIeX5akhkXcP7EHMtZ1
5bXnevoecvpSnjTYnHThhBOuJVyyJwguQixwdG8iwEFA2sO+CZZMefTUibGj+hE8
BzAZC4ni6ijG57sQE0K7
=5gyg
-----END PGP SIGNATURE-----

--Apple-Mail=_CD0387A9-E10D-4292-8CA3-82D4004C8376--


--===============4948474178164338850==
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

--===============4948474178164338850==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 06 10:51:47 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 10:51: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 1Xb5tB-0007aV-On; Mon, 06 Oct 2014 10:51:37 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xb5tA-0007aP-TB
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 10:51:36 +0000
Received: from [85.158.143.35:49722] by server-2.bemta-4.messagelabs.com id
	66/0D-04525-83472345; Mon, 06 Oct 2014 10:51:36 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-13.tower-21.messagelabs.com!1412592695!6755533!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21594 invoked from network); 6 Oct 2014 10:51:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-13.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 6 Oct 2014 10:51:35 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b77d3186;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 6 Oct 2014 11:53:26 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <264D91F1-2A11-4B17-9FF7-96DC9D4FB38A@nottingham.ac.uk>
Date: Mon, 6 Oct 2014 11:51:33 +0100
Message-Id: <F43A8F15-97B6-4BE4-ADAE-F851953BEBFF@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
	<5431B21F.2060407@somerandomidiot.com>
	<BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
	<264D91F1-2A11-4B17-9FF7-96DC9D4FB38A@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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 Oct 2014, at 11:43, Richard Mortier <Richard.Mortier@nottingham.ac.uk> wrote:
> On 5 Oct 2014, at 22:37, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
>> Block devices have another Xenstore numbering scheme that seems far more Linux-specific (and afaict, one that only Dave and Mort understand :-)
> 
> pshaw. it's in the code. plain for all to see. somewhere.
> (just don't ask me to remember it... :)
> 
> in a spirit of functorisation, it seems like one should be able to pass in a function that would generate the next device id as part of the configuration of a unikernel, rather than embedding it in some backend library (or even frontend tool). or perhaps that's what providing a device tree would do?

Yes, but what does 'next' mean here?  What happens if you have three devices simultaneously hotplugged?  They are mostly independent devices with the only connection being the unique identifier that Xenstore gives then (via the backend toolchain), so it seems odd that one device would be required to give the next one (which is potentially running in a completely separate domain) it's identifier.

-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 Oct 06 10:51:47 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Oct 2014 10:51: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 1Xb5tB-0007aV-On; Mon, 06 Oct 2014 10:51:37 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xb5tA-0007aP-TB
	for mirageos-devel@lists.xenproject.org; Mon, 06 Oct 2014 10:51:36 +0000
Received: from [85.158.143.35:49722] by server-2.bemta-4.messagelabs.com id
	66/0D-04525-83472345; Mon, 06 Oct 2014 10:51:36 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-13.tower-21.messagelabs.com!1412592695!6755533!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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21594 invoked from network); 6 Oct 2014 10:51:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-13.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 6 Oct 2014 10:51:35 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b77d3186;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 6 Oct 2014 11:53:26 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <264D91F1-2A11-4B17-9FF7-96DC9D4FB38A@nottingham.ac.uk>
Date: Mon, 6 Oct 2014 11:51:33 +0100
Message-Id: <F43A8F15-97B6-4BE4-ADAE-F851953BEBFF@recoil.org>
References: <53E0F76F.4080303@nottingham.ac.uk>
	<53E10B55.7060107@somerandomidiot.com>
	<1295FC52-A711-47B4-B832-596931D98C04@recoil.org>
	<5431A41B.2060001@somerandomidiot.com>
	<5431B21F.2060407@somerandomidiot.com>
	<BD89E80C-BD25-4C46-AD79-DF76F3198148@recoil.org>
	<264D91F1-2A11-4B17-9FF7-96DC9D4FB38A@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Passing tap devices to the main module
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 Oct 2014, at 11:43, Richard Mortier <Richard.Mortier@nottingham.ac.uk> wrote:
> On 5 Oct 2014, at 22:37, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
>> Block devices have another Xenstore numbering scheme that seems far more Linux-specific (and afaict, one that only Dave and Mort understand :-)
> 
> pshaw. it's in the code. plain for all to see. somewhere.
> (just don't ask me to remember it... :)
> 
> in a spirit of functorisation, it seems like one should be able to pass in a function that would generate the next device id as part of the configuration of a unikernel, rather than embedding it in some backend library (or even frontend tool). or perhaps that's what providing a device tree would do?

Yes, but what does 'next' mean here?  What happens if you have three devices simultaneously hotplugged?  They are mostly independent devices with the only connection being the unique identifier that Xenstore gives then (via the backend toolchain), so it seems odd that one device would be required to give the next one (which is potentially running in a completely separate domain) it's identifier.

-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 Oct 07 11:22:04 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Oct 2014 11:22: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 1XbSq3-0002sA-ML; Tue, 07 Oct 2014 11:21:55 +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 1XbSq2-0002s5-A7
	for mirageos-devel@lists.xenproject.org; Tue, 07 Oct 2014 11:21:54 +0000
Received: from [193.109.254.147:43916] by server-14.bemta-14.messagelabs.com
	id 97/07-18345-1DCC3345; Tue, 07 Oct 2014 11:21:53 +0000
X-Env-Sender: magnus@v0.no
X-Msg-Ref: server-7.tower-27.messagelabs.com!1412680911!13830211!1
X-Originating-IP: [66.111.4.25]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTExLjQuMjUgPT4gNDQ5ODE=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25077 invoked from network); 7 Oct 2014 11:21:52 -0000
Received: from out1-smtp.messagingengine.com (HELO
	out1-smtp.messagingengine.com) (66.111.4.25)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 7 Oct 2014 11:21:52 -0000
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46])
	by gateway2.nyi.internal (Postfix) with ESMTP id B19CC20B7A
	for <mirageos-devel@lists.xenproject.org>;
	Tue,  7 Oct 2014 07:21:51 -0400 (EDT)
Received: from web5 ([10.202.2.215])
	by compute6.internal (MEProxy); Tue, 07 Oct 2014 07:21:51 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=v0.no; h=
	message-id:x-sasl-enc:from:to:cc:mime-version
	:content-transfer-encoding:content-type:subject:date:in-reply-to
	:references; s=mesmtp; bh=foyIj7AGf8GoUdiGdJGcBFAhgnk=; b=ARk5u7
	IYhKlD/wJjajIVcJpsbgWq9qjWw8kyLfazvExp9358oSdD1aI+gSYaEWnoBOiBjh
	cy1trbvj2GW/4ckdiNBF7xh+Mun0Cgqd7Aq4+3xsUI+wHi8zTMi7U3Tal/diQgSP
	i9VpXapYzdDVmnKrB4qugftfw/4zbnAmtVQiw=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
	messagingengine.com; h=message-id:x-sasl-enc:from:to:cc
	:mime-version:content-transfer-encoding:content-type:subject
	:date:in-reply-to:references; s=smtpout; bh=foyIj7AGf8GoUdiGdJGc
	BFAhgnk=; b=XjQV0zXzILwH6eiRAi17YcR+2kuv3GVzsgjndaqMzBbP30FlBNTY
	T754cXzFFv8dVVdz7WCNy1fGmqb/pFGufG88CYOXQasYtPWTA+Ff8X8sz06avNxj
	cNCCwZspMkZ2tGb/HbpifRC293KmpKDGhH/aICYfcIz+lwbc5bjpswg=
Received: by web5.nyi.internal (Postfix, from userid 99)
	id 5DC5CB22267; Tue,  7 Oct 2014 07:21:51 -0400 (EDT)
Message-Id: <1412680911.1954937.176069489.779506A3@webmail.messagingengine.com>
X-Sasl-Enc: OhUzYBf1jIIHUtIJwrl8uaxs1Kka/Zx2yS5c4rkjnRAE 1412680911
From: Magnus Skjegstad <magnus@v0.no>
To: Anil Madhavapeddy <anil@recoil.org>, Gilles DALMAS <gdalmas@wanadoo.fr>
MIME-Version: 1.0
X-Mailer: MessagingEngine.com Webmail Interface - ajax-257eafe9
Date: Tue, 07 Oct 2014 12:21:51 +0100
In-Reply-To: <AC2EF7EF-269B-42E8-9E7F-4C01CD172590@recoil.org>
References: <620953433.12363.1407250408850.JavaMail.www@wwinf1c25>
	<AC2EF7EF-269B-42E8-9E7F-4C01CD172590@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] iptables into xen-arm-builder
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="===============7584341629088743002=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.

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

This is a multi-part message in MIME format.

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

Yes, I added some of the modules, but not everything. Depending
on what you use you may have to recompile the kernel with more
modules enabled.



Magnus



On Sun, 5 Oct 2014, at 17:42, Anil Madhavapeddy wrote:

Hi Gilles,



I believe that Magnus Skjegstad has added the relevant modules
for NETFILTER into the latest xen-arm-builder.  Magnus, could
you confirm?



You can download snapshot SDcard images with the latest changes
from [1]http://blobs.openmirage.org/



cheers,

Anil


On 5 Aug 2014, at 15:53, Gilles DALMAS <[2]gdalmas@wanadoo.fr>
wrote:

  sorry,

  i think there is a problem with iptables into your script.
  some options are disabled into the .config file : NETFILTER
  ...., therefore, iptables module doesn't work correctly.

_______________________________________________

MirageOS-devel mailing list

[3]MirageOS-devel@lists.xenproject.org

http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d
evel

References

1. http://blobs.openmirage.org/
2. mailto:gdalmas@wanadoo.fr
3. mailto:MirageOS-devel@lists.xenproject.org

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

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>Yes, I added some of the modules, but not everything. Depending on what you use you may have to recompile the kernel with more modules enabled. <br></div>
<div>&nbsp;</div>
<div>Magnus<br></div>
<div>&nbsp;</div>
<div>On Sun, 5 Oct 2014, at 17:42, Anil Madhavapeddy wrote:<br></div>
<blockquote type="cite"><div>Hi Gilles,<br></div>
<div>&nbsp;</div>
<div>I believe that Magnus Skjegstad has added the relevant modules for NETFILTER into the latest xen-arm-builder. &nbsp;Magnus, could you confirm?<br></div>
<div>&nbsp;</div>
<div>You can download snapshot SDcard images with the latest changes from <a href="http://blobs.openmirage.org/">http://blobs.openmirage.org/</a><br></div>
<div>&nbsp;</div>
<div>cheers,<br></div>
<div>Anil<br></div>
<div><div>&nbsp;</div>
<div><div>On 5 Aug 2014, at 15:53, Gilles DALMAS &lt;<a href="mailto:gdalmas@wanadoo.fr">gdalmas@wanadoo.fr</a>&gt; wrote:<br></div>
<div>&nbsp;</div>
<blockquote type="cite"><p>sorry,<br></p><p>i think there is a problem with iptables into your script. some options are disabled into the .config file : NETFILTER ...., therefore, iptables module doesn't work correctly.<br></p><div>_______________________________________________<br></div>
<div>MirageOS-devel mailing list<br></div>
<div><a href="mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.xenproject.org</a><br></div>
<div>http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel<br></div>
</blockquote></div>
<div>&nbsp;</div>
</div>
</blockquote><div>&nbsp;</div>
</body>
</html>

--_----------=_141268091119549370--



--===============7584341629088743002==
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

--===============7584341629088743002==--



From mirageos-devel-bounces@lists.xenproject.org Tue Oct 07 11:22:04 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Oct 2014 11:22: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 1XbSq3-0002sA-ML; Tue, 07 Oct 2014 11:21:55 +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 1XbSq2-0002s5-A7
	for mirageos-devel@lists.xenproject.org; Tue, 07 Oct 2014 11:21:54 +0000
Received: from [193.109.254.147:43916] by server-14.bemta-14.messagelabs.com
	id 97/07-18345-1DCC3345; Tue, 07 Oct 2014 11:21:53 +0000
X-Env-Sender: magnus@v0.no
X-Msg-Ref: server-7.tower-27.messagelabs.com!1412680911!13830211!1
X-Originating-IP: [66.111.4.25]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTExLjQuMjUgPT4gNDQ5ODE=\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25077 invoked from network); 7 Oct 2014 11:21:52 -0000
Received: from out1-smtp.messagingengine.com (HELO
	out1-smtp.messagingengine.com) (66.111.4.25)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 7 Oct 2014 11:21:52 -0000
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46])
	by gateway2.nyi.internal (Postfix) with ESMTP id B19CC20B7A
	for <mirageos-devel@lists.xenproject.org>;
	Tue,  7 Oct 2014 07:21:51 -0400 (EDT)
Received: from web5 ([10.202.2.215])
	by compute6.internal (MEProxy); Tue, 07 Oct 2014 07:21:51 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=v0.no; h=
	message-id:x-sasl-enc:from:to:cc:mime-version
	:content-transfer-encoding:content-type:subject:date:in-reply-to
	:references; s=mesmtp; bh=foyIj7AGf8GoUdiGdJGcBFAhgnk=; b=ARk5u7
	IYhKlD/wJjajIVcJpsbgWq9qjWw8kyLfazvExp9358oSdD1aI+gSYaEWnoBOiBjh
	cy1trbvj2GW/4ckdiNBF7xh+Mun0Cgqd7Aq4+3xsUI+wHi8zTMi7U3Tal/diQgSP
	i9VpXapYzdDVmnKrB4qugftfw/4zbnAmtVQiw=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
	messagingengine.com; h=message-id:x-sasl-enc:from:to:cc
	:mime-version:content-transfer-encoding:content-type:subject
	:date:in-reply-to:references; s=smtpout; bh=foyIj7AGf8GoUdiGdJGc
	BFAhgnk=; b=XjQV0zXzILwH6eiRAi17YcR+2kuv3GVzsgjndaqMzBbP30FlBNTY
	T754cXzFFv8dVVdz7WCNy1fGmqb/pFGufG88CYOXQasYtPWTA+Ff8X8sz06avNxj
	cNCCwZspMkZ2tGb/HbpifRC293KmpKDGhH/aICYfcIz+lwbc5bjpswg=
Received: by web5.nyi.internal (Postfix, from userid 99)
	id 5DC5CB22267; Tue,  7 Oct 2014 07:21:51 -0400 (EDT)
Message-Id: <1412680911.1954937.176069489.779506A3@webmail.messagingengine.com>
X-Sasl-Enc: OhUzYBf1jIIHUtIJwrl8uaxs1Kka/Zx2yS5c4rkjnRAE 1412680911
From: Magnus Skjegstad <magnus@v0.no>
To: Anil Madhavapeddy <anil@recoil.org>, Gilles DALMAS <gdalmas@wanadoo.fr>
MIME-Version: 1.0
X-Mailer: MessagingEngine.com Webmail Interface - ajax-257eafe9
Date: Tue, 07 Oct 2014 12:21:51 +0100
In-Reply-To: <AC2EF7EF-269B-42E8-9E7F-4C01CD172590@recoil.org>
References: <620953433.12363.1407250408850.JavaMail.www@wwinf1c25>
	<AC2EF7EF-269B-42E8-9E7F-4C01CD172590@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] iptables into xen-arm-builder
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="===============7584341629088743002=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.

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

This is a multi-part message in MIME format.

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

Yes, I added some of the modules, but not everything. Depending
on what you use you may have to recompile the kernel with more
modules enabled.



Magnus



On Sun, 5 Oct 2014, at 17:42, Anil Madhavapeddy wrote:

Hi Gilles,



I believe that Magnus Skjegstad has added the relevant modules
for NETFILTER into the latest xen-arm-builder.  Magnus, could
you confirm?



You can download snapshot SDcard images with the latest changes
from [1]http://blobs.openmirage.org/



cheers,

Anil


On 5 Aug 2014, at 15:53, Gilles DALMAS <[2]gdalmas@wanadoo.fr>
wrote:

  sorry,

  i think there is a problem with iptables into your script.
  some options are disabled into the .config file : NETFILTER
  ...., therefore, iptables module doesn't work correctly.

_______________________________________________

MirageOS-devel mailing list

[3]MirageOS-devel@lists.xenproject.org

http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d
evel

References

1. http://blobs.openmirage.org/
2. mailto:gdalmas@wanadoo.fr
3. mailto:MirageOS-devel@lists.xenproject.org

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

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>Yes, I added some of the modules, but not everything. Depending on what you use you may have to recompile the kernel with more modules enabled. <br></div>
<div>&nbsp;</div>
<div>Magnus<br></div>
<div>&nbsp;</div>
<div>On Sun, 5 Oct 2014, at 17:42, Anil Madhavapeddy wrote:<br></div>
<blockquote type="cite"><div>Hi Gilles,<br></div>
<div>&nbsp;</div>
<div>I believe that Magnus Skjegstad has added the relevant modules for NETFILTER into the latest xen-arm-builder. &nbsp;Magnus, could you confirm?<br></div>
<div>&nbsp;</div>
<div>You can download snapshot SDcard images with the latest changes from <a href="http://blobs.openmirage.org/">http://blobs.openmirage.org/</a><br></div>
<div>&nbsp;</div>
<div>cheers,<br></div>
<div>Anil<br></div>
<div><div>&nbsp;</div>
<div><div>On 5 Aug 2014, at 15:53, Gilles DALMAS &lt;<a href="mailto:gdalmas@wanadoo.fr">gdalmas@wanadoo.fr</a>&gt; wrote:<br></div>
<div>&nbsp;</div>
<blockquote type="cite"><p>sorry,<br></p><p>i think there is a problem with iptables into your script. some options are disabled into the .config file : NETFILTER ...., therefore, iptables module doesn't work correctly.<br></p><div>_______________________________________________<br></div>
<div>MirageOS-devel mailing list<br></div>
<div><a href="mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.xenproject.org</a><br></div>
<div>http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel<br></div>
</blockquote></div>
<div>&nbsp;</div>
</div>
</blockquote><div>&nbsp;</div>
</body>
</html>

--_----------=_141268091119549370--



--===============7584341629088743002==
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

--===============7584341629088743002==--



From mirageos-devel-bounces@lists.xenproject.org Tue Oct 07 12:58:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Oct 2014 12:58:34 +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 1XbULX-0005HX-HU; Tue, 07 Oct 2014 12:58:31 +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 1XbULV-0005HS-UF
	for mirageos-devel@lists.xenproject.org; Tue, 07 Oct 2014 12:58:30 +0000
Received: from [85.158.137.68:12136] by server-13.bemta-3.messagelabs.com id
	35/65-01569-573E3345; Tue, 07 Oct 2014 12:58:29 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1412686707!12006911!1
X-Originating-IP: [209.85.216.169]
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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3341 invoked from network); 7 Oct 2014 12:58:28 -0000
Received: from mail-qc0-f169.google.com (HELO mail-qc0-f169.google.com)
	(209.85.216.169)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Oct 2014 12:58:28 -0000
Received: by mail-qc0-f169.google.com with SMTP id i8so5631281qcq.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 07 Oct 2014 05:58:27 -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=wT26kP5AUaCi2LdEcTEZLVaMWVdL92e2MhPeFsgWZZs=;
	b=NBf4zyELA8+IZprWAAn3cKBJqCPSvdsFoHSiMcgN2XKnGa8JGSD5PosSa04EJYwFQF
	S0KnBke5/F5opBomz5383eFI2axlY9xOxANLyTJ19i1bChLAHHzL8Kam21WxK7VMzgwp
	TjKoPJgMHXrbQlaJwwmYdC6Ug7Ifhbs2axZYumwvUZCeqpdaHMUB13KfyxbujpvCdEMG
	J9hhvSQNuXzMEZNdG7r0Omx69tM04zoPoTEkDZB4IKP5y+K8IprWqTWZtD/ackKdjmBO
	BW/i/2IHslHSDvDUi8gkLxGZxWQJ18U5a2DOVddlvKxs17O9wqJHEpSh/7N+iDzbQFtE
	rFAQ==
MIME-Version: 1.0
X-Received: by 10.140.104.207 with SMTP id a73mr35386516qgf.56.1412686707061; 
	Tue, 07 Oct 2014 05:58:27 -0700 (PDT)
Received: by 10.96.103.136 with HTTP; Tue, 7 Oct 2014 05:58:27 -0700 (PDT)
Date: Tue, 7 Oct 2014 13:58:27 +0100
Message-ID: <CAG_esB3RsU1HSjU7ymozvTD2neOr4h57h2sB0MSTgNkz7H9yEg@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] useful link re: HVM booting 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: multipart/mixed; boundary="===============0325994277144771069=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0325994277144771069==
Content-Type: multipart/alternative; boundary=001a1134f3cc5a78a00504d4c118

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

This is a useful intro to booting an HVM x86 kernel via grub:

http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel

http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kernel-with-keyboard-and


-- 
Dave Scott

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

<div dir=3D"ltr"><div><br></div>This is a useful intro to booting an HVM x8=
6 kernel via grub:<div><br></div><div><a href=3D"http://arjunsreedharan.org=
/post/82710718100/kernel-101-lets-write-a-kernel">http://arjunsreedharan.or=
g/post/82710718100/kernel-101-lets-write-a-kernel</a></div><div><br></div><=
div><a href=3D"http://arjunsreedharan.org/post/99370248137/kernel-201-lets-=
write-a-kernel-with-keyboard-and">http://arjunsreedharan.org/post/993702481=
37/kernel-201-lets-write-a-kernel-with-keyboard-and</a></div><div><br clear=
=3D"all"><div><br></div>-- <br>Dave Scott
</div></div>

--001a1134f3cc5a78a00504d4c118--


--===============0325994277144771069==
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

--===============0325994277144771069==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 07 12:58:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Oct 2014 12:58:34 +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 1XbULX-0005HX-HU; Tue, 07 Oct 2014 12:58:31 +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 1XbULV-0005HS-UF
	for mirageos-devel@lists.xenproject.org; Tue, 07 Oct 2014 12:58:30 +0000
Received: from [85.158.137.68:12136] by server-13.bemta-3.messagelabs.com id
	35/65-01569-573E3345; Tue, 07 Oct 2014 12:58:29 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1412686707!12006911!1
X-Originating-IP: [209.85.216.169]
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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3341 invoked from network); 7 Oct 2014 12:58:28 -0000
Received: from mail-qc0-f169.google.com (HELO mail-qc0-f169.google.com)
	(209.85.216.169)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Oct 2014 12:58:28 -0000
Received: by mail-qc0-f169.google.com with SMTP id i8so5631281qcq.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 07 Oct 2014 05:58:27 -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=wT26kP5AUaCi2LdEcTEZLVaMWVdL92e2MhPeFsgWZZs=;
	b=NBf4zyELA8+IZprWAAn3cKBJqCPSvdsFoHSiMcgN2XKnGa8JGSD5PosSa04EJYwFQF
	S0KnBke5/F5opBomz5383eFI2axlY9xOxANLyTJ19i1bChLAHHzL8Kam21WxK7VMzgwp
	TjKoPJgMHXrbQlaJwwmYdC6Ug7Ifhbs2axZYumwvUZCeqpdaHMUB13KfyxbujpvCdEMG
	J9hhvSQNuXzMEZNdG7r0Omx69tM04zoPoTEkDZB4IKP5y+K8IprWqTWZtD/ackKdjmBO
	BW/i/2IHslHSDvDUi8gkLxGZxWQJ18U5a2DOVddlvKxs17O9wqJHEpSh/7N+iDzbQFtE
	rFAQ==
MIME-Version: 1.0
X-Received: by 10.140.104.207 with SMTP id a73mr35386516qgf.56.1412686707061; 
	Tue, 07 Oct 2014 05:58:27 -0700 (PDT)
Received: by 10.96.103.136 with HTTP; Tue, 7 Oct 2014 05:58:27 -0700 (PDT)
Date: Tue, 7 Oct 2014 13:58:27 +0100
Message-ID: <CAG_esB3RsU1HSjU7ymozvTD2neOr4h57h2sB0MSTgNkz7H9yEg@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] useful link re: HVM booting 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: multipart/mixed; boundary="===============0325994277144771069=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0325994277144771069==
Content-Type: multipart/alternative; boundary=001a1134f3cc5a78a00504d4c118

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

This is a useful intro to booting an HVM x86 kernel via grub:

http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel

http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kernel-with-keyboard-and


-- 
Dave Scott

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

<div dir=3D"ltr"><div><br></div>This is a useful intro to booting an HVM x8=
6 kernel via grub:<div><br></div><div><a href=3D"http://arjunsreedharan.org=
/post/82710718100/kernel-101-lets-write-a-kernel">http://arjunsreedharan.or=
g/post/82710718100/kernel-101-lets-write-a-kernel</a></div><div><br></div><=
div><a href=3D"http://arjunsreedharan.org/post/99370248137/kernel-201-lets-=
write-a-kernel-with-keyboard-and">http://arjunsreedharan.org/post/993702481=
37/kernel-201-lets-write-a-kernel-with-keyboard-and</a></div><div><br clear=
=3D"all"><div><br></div>-- <br>Dave Scott
</div></div>

--001a1134f3cc5a78a00504d4c118--


--===============0325994277144771069==
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

--===============0325994277144771069==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 07 15:09:46 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Oct 2014 15:09: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 1XbWOU-0007bC-Uq; Tue, 07 Oct 2014 15:09:42 +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 1XbWOU-0007b4-BU
	for mirageos-devel@lists.xenproject.org; Tue, 07 Oct 2014 15:09:42 +0000
Received: from [85.158.137.68:3065] by server-10.bemta-3.messagelabs.com id
	E0/9C-01456-53204345; Tue, 07 Oct 2014 15:09:41 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-31.messagelabs.com!1412694579!8302457!1
X-Originating-IP: [209.85.220.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29823 invoked from network); 7 Oct 2014 15:09:40 -0000
Received: from mail-vc0-f182.google.com (HELO mail-vc0-f182.google.com)
	(209.85.220.182)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Oct 2014 15:09:40 -0000
Received: by mail-vc0-f182.google.com with SMTP id la4so4875925vcb.41
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 07 Oct 2014 08:09:39 -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=5gDST+LZgoN4EYeQhlfKY3tRSlMgGzk7nWGCslqc5uI=;
	b=X9rke3Fyty1Jz0nXgjYhhc7No3rYmFXmD1c7W0SqT0MI/LUUJnHCGG9KAFZ7rORrNN
	WMGBa6RAI2cOwpcAtDZ8BVm+yHhArYAzhQ/kLY2N6aHzykV6YnQlduAeXkHWRNqMyV2G
	fQttzxgH2HPjLQNyn4yupuNMk1J8ugDgtiqabaUc2hPOjTfl4i4ixHwUZtlX2gQew3KK
	3hSY3rExZXkmO8jG55Xu8ThvpC/Xo7EB/ryqPPKA7D0qHmUQyhVd7K4nN27bRLNqhRKF
	yZ/y7bB5s0gGoSWx57ttoRCkSUB/BvWHMXl1Ey+uPmwD979UW++LTxSZWjJtQTtPMyhI
	mNPg==
MIME-Version: 1.0
X-Received: by 10.52.61.99 with SMTP id o3mr3222164vdr.46.1412694579398; Tue,
	07 Oct 2014 08:09:39 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Tue, 7 Oct 2014 08:09:39 -0700 (PDT)
Date: Tue, 7 Oct 2014 16:09:39 +0100
Message-ID: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Mirage tracing
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 working on improving the profiling support in Mirage.
Previously [1], I was just graphing stats in libreoffice and looking
at call traces, but I've been thinking about how to get more useful
data.

Tracing individual functions was too fine-grained, I think, and failed
to follow Lwt threads, so I intrumented Lwt to record when threads are
created and resolved, and the interactions between them. Graphing the
results looks like this:

  http://test.roscidus.com/static/block-read-mirage-x86.png

  ( trace file: http://test.roscidus.com/static/log-x86.sexp )

This is for a simple test of reading a block device in a tight loop.
Horizontal lines are Lwt threads from creation to becoming resolved
(returned or failed). Blue arrows indicate one thread waiting for
another. Green arrows indicate one thread resolving another (with
Lwt.wakeup).

By default, threads just appear as numbers, but I added some code to
my unikernel to label some them (I didn't annotate any of the Mirage
libraries, though). For example, the "B.read" thread is what the
unikernel gets back when it calls B.read on the block device, but you
can see that behind this mirage-block-xen is creating other threads.

The graphs are more fun when used interactively. There's a simple GTK
viewer here:

  https://github.com/talex5/mirage-tracing

To test:

  $ git clone https://github.com/talex5/mirage-tracing
  $ cd mirage-tracing
  $ make
  $ ./viewer.native .../log-x86.sexp

Drag to pan; scroll to zoom. As you zoom in, smaller details (e.g.
thread labels for short-running threads) become visible, while gross
features (e.g. arrows that span a long time-frame) fade out.

This is very messy code; I just wanted to see if the visualisations
were useful. What do people think?

My hope is that we can hang other trace data off these diagrams, e.g.
showing when GC is happening and when interrupts occur vs when Mirage
starts handling them. If we can synchronise the clocks, it should also
be possible to combine traces from different machines too (e.g. client
and server, or mirage and dom0).

Suggestions on better ways to do things welcome...


[1] http://roscidus.com/blog/blog/2014/08/15/optimising-the-unikernel/


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 07 15:09:46 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Oct 2014 15:09: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 1XbWOU-0007bC-Uq; Tue, 07 Oct 2014 15:09:42 +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 1XbWOU-0007b4-BU
	for mirageos-devel@lists.xenproject.org; Tue, 07 Oct 2014 15:09:42 +0000
Received: from [85.158.137.68:3065] by server-10.bemta-3.messagelabs.com id
	E0/9C-01456-53204345; Tue, 07 Oct 2014 15:09:41 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-31.messagelabs.com!1412694579!8302457!1
X-Originating-IP: [209.85.220.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29823 invoked from network); 7 Oct 2014 15:09:40 -0000
Received: from mail-vc0-f182.google.com (HELO mail-vc0-f182.google.com)
	(209.85.220.182)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	7 Oct 2014 15:09:40 -0000
Received: by mail-vc0-f182.google.com with SMTP id la4so4875925vcb.41
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 07 Oct 2014 08:09:39 -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=5gDST+LZgoN4EYeQhlfKY3tRSlMgGzk7nWGCslqc5uI=;
	b=X9rke3Fyty1Jz0nXgjYhhc7No3rYmFXmD1c7W0SqT0MI/LUUJnHCGG9KAFZ7rORrNN
	WMGBa6RAI2cOwpcAtDZ8BVm+yHhArYAzhQ/kLY2N6aHzykV6YnQlduAeXkHWRNqMyV2G
	fQttzxgH2HPjLQNyn4yupuNMk1J8ugDgtiqabaUc2hPOjTfl4i4ixHwUZtlX2gQew3KK
	3hSY3rExZXkmO8jG55Xu8ThvpC/Xo7EB/ryqPPKA7D0qHmUQyhVd7K4nN27bRLNqhRKF
	yZ/y7bB5s0gGoSWx57ttoRCkSUB/BvWHMXl1Ey+uPmwD979UW++LTxSZWjJtQTtPMyhI
	mNPg==
MIME-Version: 1.0
X-Received: by 10.52.61.99 with SMTP id o3mr3222164vdr.46.1412694579398; Tue,
	07 Oct 2014 08:09:39 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Tue, 7 Oct 2014 08:09:39 -0700 (PDT)
Date: Tue, 7 Oct 2014 16:09:39 +0100
Message-ID: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Mirage tracing
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 working on improving the profiling support in Mirage.
Previously [1], I was just graphing stats in libreoffice and looking
at call traces, but I've been thinking about how to get more useful
data.

Tracing individual functions was too fine-grained, I think, and failed
to follow Lwt threads, so I intrumented Lwt to record when threads are
created and resolved, and the interactions between them. Graphing the
results looks like this:

  http://test.roscidus.com/static/block-read-mirage-x86.png

  ( trace file: http://test.roscidus.com/static/log-x86.sexp )

This is for a simple test of reading a block device in a tight loop.
Horizontal lines are Lwt threads from creation to becoming resolved
(returned or failed). Blue arrows indicate one thread waiting for
another. Green arrows indicate one thread resolving another (with
Lwt.wakeup).

By default, threads just appear as numbers, but I added some code to
my unikernel to label some them (I didn't annotate any of the Mirage
libraries, though). For example, the "B.read" thread is what the
unikernel gets back when it calls B.read on the block device, but you
can see that behind this mirage-block-xen is creating other threads.

The graphs are more fun when used interactively. There's a simple GTK
viewer here:

  https://github.com/talex5/mirage-tracing

To test:

  $ git clone https://github.com/talex5/mirage-tracing
  $ cd mirage-tracing
  $ make
  $ ./viewer.native .../log-x86.sexp

Drag to pan; scroll to zoom. As you zoom in, smaller details (e.g.
thread labels for short-running threads) become visible, while gross
features (e.g. arrows that span a long time-frame) fade out.

This is very messy code; I just wanted to see if the visualisations
were useful. What do people think?

My hope is that we can hang other trace data off these diagrams, e.g.
showing when GC is happening and when interrupts occur vs when Mirage
starts handling them. If we can synchronise the clocks, it should also
be possible to combine traces from different machines too (e.g. client
and server, or mirage and dom0).

Suggestions on better ways to do things welcome...


[1] http://roscidus.com/blog/blog/2014/08/15/optimising-the-unikernel/


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 08 11:59:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 08 Oct 2014 11:59:02 +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 1XbptQ-0005WU-Sn; Wed, 08 Oct 2014 11:58:56 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XbptQ-0005WM-3v
	for mirageos-devel@lists.xenproject.org; Wed, 08 Oct 2014 11:58:56 +0000
Received: from [85.158.143.35:9987] by server-1.bemta-4.messagelabs.com id
	D8/B2-05872-FF625345; Wed, 08 Oct 2014 11:58:55 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-2.tower-21.messagelabs.com!1412769533!6599530!1
X-Originating-IP: [209.85.216.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5290 invoked from network); 8 Oct 2014 11:58:54 -0000
Received: from mail-qc0-f170.google.com (HELO mail-qc0-f170.google.com)
	(209.85.216.170)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Oct 2014 11:58:54 -0000
Received: by mail-qc0-f170.google.com with SMTP id m20so7459488qcx.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 08 Oct 2014 04:58:53 -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=WpxdozZz3aV2wccsqSQL9w21ZKRfem803YDOmXe/wR4=;
	b=jUmn8/Aqvo9hn8rmssDHYVd0Yym5RNGzp018P38LASVbRTVEdfkUjfMKJjsMjlcItd
	jySGI4qNtvfaQ0RsrSetjvi61LjqHwNjDCVIqMjRdeoCC/0a/ODMy3jRwZNjKvrLLoEi
	obmorm5gfjy/0BIw1ifaEvu8KJXhHvfwjQzB+jFFi0H/wmoe1SHpas72na7NULkZ6TwC
	5OBzHTevz1XBjyhyeCSGQuT39BN/HUS2YKWIqjljcCoTVKywLYAUc3GzSbFlSKZuQoQD
	qLX4TiHDHKzmXBXp2IV/1dmjjMpmSNXtfJZWVIgZbhDSzxuB32mWGjR/wtDGZKNqw9Aa
	mGEA==
MIME-Version: 1.0
X-Received: by 10.140.36.167 with SMTP id p36mr1038325qgp.61.1412769533675;
	Wed, 08 Oct 2014 04:58:53 -0700 (PDT)
Received: by 10.229.24.136 with HTTP; Wed, 8 Oct 2014 04:58:53 -0700 (PDT)
In-Reply-To: <542C4B57.2090104@mehnert.org>
References: <54196812.5080701@mehnert.org>
	<CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
	<CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
	<542C4B57.2090104@mehnert.org>
Date: Wed, 8 Oct 2014 12:58:53 +0100
Message-ID: <CAG4opy-Cc=-od4Q=1=+Ys77FKk73-RrdjNwbBhwpqsUHNMn_QQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Hannes Mehnert <hannes@mehnert.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 October 2014 19:43, Hannes Mehnert <hannes@mehnert.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
>
> Hi,
>
> thanks for your replies. Moving forward I've some questions; related
> is for sure https://github.com/mirage/mirage-platform/pull/102
> (installing runtime headers for xen).
>
> C code currently lives in:
>  - xen repo, extras/mini-os <- malloc, printf, console, blkfront, ...
> (GPL2)
>  - mirage-platform repo, xen/runtime/xencaml <- symbols required by
> OCaml runtime (which is in runtime/ocaml)
>  - OpenLibm <- should that install a math.h header?
>  - a nanolibc is proposed for some more symbols (+gmp?)
>
> Which CFLAGS to use for C libraries (such as OCaml runtime etc.)?
>  - enable stack protection (FORTIFY_SOURCE)?
>  - enable asserts?
>  - for sure -fno-builtin
>
> I generally don't trust C code, thus I'd be in favor of enabling both
> stack protection and assertions when compiling our unikernels, but am
> happy to hear your opinion.

As I see it, we have several options:

1. Compile the libraries once for both Unix and Mini-OS. Hope that
things are sufficiently compatible.

2. Compile some libraries separately (e.g. gmp-unix, gmp-xen).

3. Compare all libraries separately (opam switch).

Sounds like we need to do 2 or 3 here. I guess 2 is the easiest, since
we're already doing that with some libraries for other reasons.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 08 11:59:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 08 Oct 2014 11:59:02 +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 1XbptQ-0005WU-Sn; Wed, 08 Oct 2014 11:58:56 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XbptQ-0005WM-3v
	for mirageos-devel@lists.xenproject.org; Wed, 08 Oct 2014 11:58:56 +0000
Received: from [85.158.143.35:9987] by server-1.bemta-4.messagelabs.com id
	D8/B2-05872-FF625345; Wed, 08 Oct 2014 11:58:55 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-2.tower-21.messagelabs.com!1412769533!6599530!1
X-Originating-IP: [209.85.216.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5290 invoked from network); 8 Oct 2014 11:58:54 -0000
Received: from mail-qc0-f170.google.com (HELO mail-qc0-f170.google.com)
	(209.85.216.170)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Oct 2014 11:58:54 -0000
Received: by mail-qc0-f170.google.com with SMTP id m20so7459488qcx.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 08 Oct 2014 04:58:53 -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=WpxdozZz3aV2wccsqSQL9w21ZKRfem803YDOmXe/wR4=;
	b=jUmn8/Aqvo9hn8rmssDHYVd0Yym5RNGzp018P38LASVbRTVEdfkUjfMKJjsMjlcItd
	jySGI4qNtvfaQ0RsrSetjvi61LjqHwNjDCVIqMjRdeoCC/0a/ODMy3jRwZNjKvrLLoEi
	obmorm5gfjy/0BIw1ifaEvu8KJXhHvfwjQzB+jFFi0H/wmoe1SHpas72na7NULkZ6TwC
	5OBzHTevz1XBjyhyeCSGQuT39BN/HUS2YKWIqjljcCoTVKywLYAUc3GzSbFlSKZuQoQD
	qLX4TiHDHKzmXBXp2IV/1dmjjMpmSNXtfJZWVIgZbhDSzxuB32mWGjR/wtDGZKNqw9Aa
	mGEA==
MIME-Version: 1.0
X-Received: by 10.140.36.167 with SMTP id p36mr1038325qgp.61.1412769533675;
	Wed, 08 Oct 2014 04:58:53 -0700 (PDT)
Received: by 10.229.24.136 with HTTP; Wed, 8 Oct 2014 04:58:53 -0700 (PDT)
In-Reply-To: <542C4B57.2090104@mehnert.org>
References: <54196812.5080701@mehnert.org>
	<CD9AD9C5-ABE7-43FA-9038-2F02680122AF@recoil.org>
	<CAG4opy9DkkmTzvKf2CSHepSqhdx-06FFj65nhMY1zHam4PxFzA@mail.gmail.com>
	<542C4B57.2090104@mehnert.org>
Date: Wed, 8 Oct 2014 12:58:53 +0100
Message-ID: <CAG4opy-Cc=-od4Q=1=+Ys77FKk73-RrdjNwbBhwpqsUHNMn_QQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Hannes Mehnert <hannes@mehnert.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 October 2014 19:43, Hannes Mehnert <hannes@mehnert.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
>
> Hi,
>
> thanks for your replies. Moving forward I've some questions; related
> is for sure https://github.com/mirage/mirage-platform/pull/102
> (installing runtime headers for xen).
>
> C code currently lives in:
>  - xen repo, extras/mini-os <- malloc, printf, console, blkfront, ...
> (GPL2)
>  - mirage-platform repo, xen/runtime/xencaml <- symbols required by
> OCaml runtime (which is in runtime/ocaml)
>  - OpenLibm <- should that install a math.h header?
>  - a nanolibc is proposed for some more symbols (+gmp?)
>
> Which CFLAGS to use for C libraries (such as OCaml runtime etc.)?
>  - enable stack protection (FORTIFY_SOURCE)?
>  - enable asserts?
>  - for sure -fno-builtin
>
> I generally don't trust C code, thus I'd be in favor of enabling both
> stack protection and assertions when compiling our unikernels, but am
> happy to hear your opinion.

As I see it, we have several options:

1. Compile the libraries once for both Unix and Mini-OS. Hope that
things are sufficiently compatible.

2. Compile some libraries separately (e.g. gmp-unix, gmp-xen).

3. Compare all libraries separately (opam switch).

Sounds like we need to do 2 or 3 here. I guess 2 is the easiest, since
we're already doing that with some libraries for other reasons.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 08 23:23:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 08 Oct 2014 23:23:34 +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 1Xc0Zt-0000Sv-7C; Wed, 08 Oct 2014 23:23:29 +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 1XbymV-0008KD-6i
	for mirageos-devel@lists.xenproject.org; Wed, 08 Oct 2014 21:28:23 +0000
Received: from [193.109.254.147:40194] by server-12.bemta-14.messagelabs.com
	id 1C/25-01461-67CA5345; Wed, 08 Oct 2014 21:28:22 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1412803700!14193128!1
X-Originating-IP: [209.85.160.181]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5958 invoked from network); 8 Oct 2014 21:28:21 -0000
Received: from mail-yk0-f181.google.com (HELO mail-yk0-f181.google.com)
	(209.85.160.181)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Oct 2014 21:28:21 -0000
Received: by mail-yk0-f181.google.com with SMTP id q200so4168859ykb.40
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 08 Oct 2014 14:28:20 -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=R0ngenOnW0uzndRp2R6qv0jiLH48W4aBKY3CTgrO3mM=;
	b=02pZBeVvfFi9Hy++x/m5E3QFZQLSPLx24Dojlegj3dUQRMF6z5icb7gD/W2nD6BXAm
	0CU5/y/XUDP/5xT7dK6DYZot6sGL683/G5PHUqWWcPyzThPtSusVFVfb2jaIAMzfEaC+
	zd55c3WsrYWADFAvSAZniGAeRMqPRQsQssQBpEovkhKOinHzfzRpdgIg3MuJeVNS0auS
	LT/crS6I3c0kXU8UCyEgMDQOv44MnhKybUBxgND14FVx77eAnGXl5gnF0GyU3s2Hm7hd
	oCl/zDvj9PTyEKZUK/u3wNegMynxJi+ePAex7dm+kAijzeYpyCWkHKP12rdXLI5tD+w5
	Smjw==
X-Received: by 10.236.208.2 with SMTP id p2mr6548759yho.173.1412803699978;
	Wed, 08 Oct 2014 14:28:19 -0700 (PDT)
Received: from [10.252.81.164] ([63.110.51.11])
	by mx.google.com with ESMTPSA id b61sm556852yhc.35.2014.10.08.14.28.18
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 08 Oct 2014 14:28:19 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <1412674626.4972.18.camel@citrix.com>
Date: Wed, 8 Oct 2014 14:28:16 -0700
Message-Id: <09461997-3D89-4FD0-8314-2436CCBA0573@gmail.com>
References: <CAHehzX2-FAjzbF91nt4wcDvAjZfEnxvj4bhN7RAWP5OqP5yDmg@mail.gmail.com>
	<1412674626.4972.18.camel@citrix.com>
To: andrew.cooper3@citrix.com, Paul Durrant <paul.durrant@citrix.com>,
	dave.scott@eu.citrix.com, Anil Madhavapeddy <anil@recoil.org>,
	pasik@iki.fi, George Dunlap <george.dunlap@eu.citrix.com>,
	roger.pau@citrix.com, Ian Campbell <Ian.Campbell@citrix.com>,
	Matt Wilson <msw@amazon.com>
X-Mailer: Apple Mail (2.1878.6)
X-Mailman-Approved-At: Wed, 08 Oct 2014 23:23:28 +0000
Cc: Xen-devel <xen-devel@lists.xen.org>, mirageos-devel@lists.xenproject.org,
	Russ Pavlicek <russell.pavlicek@xenproject.org>,
	Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [MirageOS-devel] [URGENT] Please review tasks for OPW Round 9
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

As well as Mirage projects. So adding MirageOS-devel to CC

Also adding EVERYONE who has a project on http://wiki.xenproject.org/wiki/O=
utreach_Program_Projects =


If you have a new project and you can mentor from Oct 22 - March 2015, plea=
se add it to the LIST
If you can=92t mentor, please take your project off http://wiki.xenproject.=
org/wiki/Outreach_Program_Projects immediately

Best Regards
Lars

On 7 Oct 2014, at 02:37, Ian Campbell <Ian.Campbell@citrix.com> wrote:

> There's lots of xen-api@ projects on that list too, CCing that list too.
> =

> On Thu, 2014-10-02 at 09:51 -0400, Russ Pavlicek wrote:
>> Folks,
>> =

>> The time for the latest round of Gnome OPW has arrived.  I have put
>> together a page of tasks which were left over from the last GSoC and
>> placed them here:
>> =

>> http://wiki.xenproject.org/wiki/Outreach_Program_Projects
>> =

>> Please review them for tasks which should be eliminated (items already
>> done, items no longer needed, etc.) or suggest other tasks which
>> should be considered.  If you are listed as a technical contact,
>> please indicate if you no longer wish to be used in that capacity.
>> Round 9 submissions start on October 22.
>> =

>> The information for Round 9 can be seen here:
>> =

>> http://wiki.xenproject.org/wiki/OutreachProgram/Round9
>> =

>> Thanks,
>> =

>> Russ Pavlicek
>> =

>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xen.org
>> http://lists.xen.org/xen-devel
> =

> =

> =

> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api


_______________________________________________
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 Oct 08 23:23:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 08 Oct 2014 23:23:34 +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 1Xc0Zt-0000Sv-7C; Wed, 08 Oct 2014 23:23:29 +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 1XbymV-0008KD-6i
	for mirageos-devel@lists.xenproject.org; Wed, 08 Oct 2014 21:28:23 +0000
Received: from [193.109.254.147:40194] by server-12.bemta-14.messagelabs.com
	id 1C/25-01461-67CA5345; Wed, 08 Oct 2014 21:28:22 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1412803700!14193128!1
X-Originating-IP: [209.85.160.181]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5958 invoked from network); 8 Oct 2014 21:28:21 -0000
Received: from mail-yk0-f181.google.com (HELO mail-yk0-f181.google.com)
	(209.85.160.181)
	by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	8 Oct 2014 21:28:21 -0000
Received: by mail-yk0-f181.google.com with SMTP id q200so4168859ykb.40
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 08 Oct 2014 14:28:20 -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=R0ngenOnW0uzndRp2R6qv0jiLH48W4aBKY3CTgrO3mM=;
	b=02pZBeVvfFi9Hy++x/m5E3QFZQLSPLx24Dojlegj3dUQRMF6z5icb7gD/W2nD6BXAm
	0CU5/y/XUDP/5xT7dK6DYZot6sGL683/G5PHUqWWcPyzThPtSusVFVfb2jaIAMzfEaC+
	zd55c3WsrYWADFAvSAZniGAeRMqPRQsQssQBpEovkhKOinHzfzRpdgIg3MuJeVNS0auS
	LT/crS6I3c0kXU8UCyEgMDQOv44MnhKybUBxgND14FVx77eAnGXl5gnF0GyU3s2Hm7hd
	oCl/zDvj9PTyEKZUK/u3wNegMynxJi+ePAex7dm+kAijzeYpyCWkHKP12rdXLI5tD+w5
	Smjw==
X-Received: by 10.236.208.2 with SMTP id p2mr6548759yho.173.1412803699978;
	Wed, 08 Oct 2014 14:28:19 -0700 (PDT)
Received: from [10.252.81.164] ([63.110.51.11])
	by mx.google.com with ESMTPSA id b61sm556852yhc.35.2014.10.08.14.28.18
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 08 Oct 2014 14:28:19 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <1412674626.4972.18.camel@citrix.com>
Date: Wed, 8 Oct 2014 14:28:16 -0700
Message-Id: <09461997-3D89-4FD0-8314-2436CCBA0573@gmail.com>
References: <CAHehzX2-FAjzbF91nt4wcDvAjZfEnxvj4bhN7RAWP5OqP5yDmg@mail.gmail.com>
	<1412674626.4972.18.camel@citrix.com>
To: andrew.cooper3@citrix.com, Paul Durrant <paul.durrant@citrix.com>,
	dave.scott@eu.citrix.com, Anil Madhavapeddy <anil@recoil.org>,
	pasik@iki.fi, George Dunlap <george.dunlap@eu.citrix.com>,
	roger.pau@citrix.com, Ian Campbell <Ian.Campbell@citrix.com>,
	Matt Wilson <msw@amazon.com>
X-Mailer: Apple Mail (2.1878.6)
X-Mailman-Approved-At: Wed, 08 Oct 2014 23:23:28 +0000
Cc: Xen-devel <xen-devel@lists.xen.org>, mirageos-devel@lists.xenproject.org,
	Russ Pavlicek <russell.pavlicek@xenproject.org>,
	Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [MirageOS-devel] [URGENT] Please review tasks for OPW Round 9
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

As well as Mirage projects. So adding MirageOS-devel to CC

Also adding EVERYONE who has a project on http://wiki.xenproject.org/wiki/O=
utreach_Program_Projects =


If you have a new project and you can mentor from Oct 22 - March 2015, plea=
se add it to the LIST
If you can=92t mentor, please take your project off http://wiki.xenproject.=
org/wiki/Outreach_Program_Projects immediately

Best Regards
Lars

On 7 Oct 2014, at 02:37, Ian Campbell <Ian.Campbell@citrix.com> wrote:

> There's lots of xen-api@ projects on that list too, CCing that list too.
> =

> On Thu, 2014-10-02 at 09:51 -0400, Russ Pavlicek wrote:
>> Folks,
>> =

>> The time for the latest round of Gnome OPW has arrived.  I have put
>> together a page of tasks which were left over from the last GSoC and
>> placed them here:
>> =

>> http://wiki.xenproject.org/wiki/Outreach_Program_Projects
>> =

>> Please review them for tasks which should be eliminated (items already
>> done, items no longer needed, etc.) or suggest other tasks which
>> should be considered.  If you are listed as a technical contact,
>> please indicate if you no longer wish to be used in that capacity.
>> Round 9 submissions start on October 22.
>> =

>> The information for Round 9 can be seen here:
>> =

>> http://wiki.xenproject.org/wiki/OutreachProgram/Round9
>> =

>> Thanks,
>> =

>> Russ Pavlicek
>> =

>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xen.org
>> http://lists.xen.org/xen-devel
> =

> =

> =

> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api


_______________________________________________
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 Oct 09 08:52:53 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 08:52: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 1Xc9Sq-0004Zo-2w; Thu, 09 Oct 2014 08:52:48 +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 1Xc9So-0004Zf-EH
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 08:52:46 +0000
Received: from [85.158.137.68:40586] by server-2.bemta-3.messagelabs.com id
	C6/A1-09149-DDC46345; Thu, 09 Oct 2014 08:52:45 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1412844763!9956649!1
X-Originating-IP: [209.85.220.178]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23044 invoked from network); 9 Oct 2014 08:52:44 -0000
Received: from mail-vc0-f178.google.com (HELO mail-vc0-f178.google.com)
	(209.85.220.178)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 08:52:44 -0000
Received: by mail-vc0-f178.google.com with SMTP id hq12so609145vcb.9
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 01:52:43 -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
	:content-type; bh=2aaHOHO+9SJwxYAOan12NH7bLuZgjWBF76UWUM1nwP0=;
	b=REYktDQ2jc3MNgTI87UyTW27fHlDJnkwSBKjHQRCRspuKl6+9e/ct5aEa3i+z9nBgG
	3xb8TeahOZYy0sOoUsgbgZNcl+/jy51pyTKmVEKjVL/oepHfWa6wGydVaXn8WyVOMdyg
	DcViLQRyVllpqdQmcqT6fRazgjNIAsrOpU772LowFL8+D98BSl+VTxDHeJqskryCl3jC
	N2DGAxCtiho07bQttqG2JNNjc3OTiq2t+J77UIwHIXP/wDonRExeg1ePa6dhDNkJ+YWl
	nTqbjS3QTS8FiytbA69o1pP6slfydXV8Oo5p0EyNwUKERj3nMojyu5BMQg7QMSxVclaq
	09aw==
MIME-Version: 1.0
X-Received: by 10.52.61.99 with SMTP id o3mr13914384vdr.46.1412844763341; Thu,
	09 Oct 2014 01:52:43 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 9 Oct 2014 01:52:43 -0700 (PDT)
In-Reply-To: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
Date: Thu, 9 Oct 2014 09:52:43 +0100
Message-ID: <CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 7 October 2014 16:09, Thomas Leonard <talex5@gmail.com> wrote:
> I'm currently working on improving the profiling support in Mirage.
> Previously [1], I was just graphing stats in libreoffice and looking
> at call traces, but I've been thinking about how to get more useful
> data.
>
> Tracing individual functions was too fine-grained, I think, and failed
> to follow Lwt threads, so I intrumented Lwt to record when threads are
> created and resolved, and the interactions between them. Graphing the
> results looks like this:
>
>   http://test.roscidus.com/static/block-read-mirage-x86.png
>
>   ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>
> This is for a simple test of reading a block device in a tight loop.
> Horizontal lines are Lwt threads from creation to becoming resolved
> (returned or failed). Blue arrows indicate one thread waiting for
> another. Green arrows indicate one thread resolving another (with
> Lwt.wakeup).
>
> By default, threads just appear as numbers, but I added some code to
> my unikernel to label some them (I didn't annotate any of the Mirage
> libraries, though). For example, the "B.read" thread is what the
> unikernel gets back when it calls B.read on the block device, but you
> can see that behind this mirage-block-xen is creating other threads.
>
> The graphs are more fun when used interactively. There's a simple GTK
> viewer here:
>
>   https://github.com/talex5/mirage-tracing
>
> To test:
>
>   $ git clone https://github.com/talex5/mirage-tracing
>   $ cd mirage-tracing
>   $ make
>   $ ./viewer.native .../log-x86.sexp

It has been pointed out to me that these instructions didn't work
(make also tried to build the sim.ml example program, and that
required a modified Lwt). Fixed now!

> Drag to pan; scroll to zoom. As you zoom in, smaller details (e.g.
> thread labels for short-running threads) become visible, while gross
> features (e.g. arrows that span a long time-frame) fade out.
>
> This is very messy code; I just wanted to see if the visualisations
> were useful. What do people think?
>
> My hope is that we can hang other trace data off these diagrams, e.g.
> showing when GC is happening and when interrupts occur vs when Mirage
> starts handling them. If we can synchronise the clocks, it should also
> be possible to combine traces from different machines too (e.g. client
> and server, or mirage and dom0).
>
> Suggestions on better ways to do things welcome...
>
>
> [1] http://roscidus.com/blog/blog/2014/08/15/optimising-the-unikernel/

How should tracing work with existing mirage libraries? We want
libraries to be able to report extra information (thread labels, when
significant events occur, performance counters, etc), but we also want
high performance when tracing is off.

One possibility is a mirage-tracing library whose default
implementation does nothing. I imagine the OCaml compiler would
optimise all calls to the library away, using cross-module inlining.
Then you could opam pin the real version if you wanted tracing on.

Or is it better to make it dynamic, so tracing can be enabled at any
time without recompiling? Or with a functor applied by the mirage
tool? Any suggestions?


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 09 08:52:53 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 08:52: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 1Xc9Sq-0004Zo-2w; Thu, 09 Oct 2014 08:52:48 +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 1Xc9So-0004Zf-EH
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 08:52:46 +0000
Received: from [85.158.137.68:40586] by server-2.bemta-3.messagelabs.com id
	C6/A1-09149-DDC46345; Thu, 09 Oct 2014 08:52:45 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1412844763!9956649!1
X-Originating-IP: [209.85.220.178]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23044 invoked from network); 9 Oct 2014 08:52:44 -0000
Received: from mail-vc0-f178.google.com (HELO mail-vc0-f178.google.com)
	(209.85.220.178)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 08:52:44 -0000
Received: by mail-vc0-f178.google.com with SMTP id hq12so609145vcb.9
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 01:52:43 -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
	:content-type; bh=2aaHOHO+9SJwxYAOan12NH7bLuZgjWBF76UWUM1nwP0=;
	b=REYktDQ2jc3MNgTI87UyTW27fHlDJnkwSBKjHQRCRspuKl6+9e/ct5aEa3i+z9nBgG
	3xb8TeahOZYy0sOoUsgbgZNcl+/jy51pyTKmVEKjVL/oepHfWa6wGydVaXn8WyVOMdyg
	DcViLQRyVllpqdQmcqT6fRazgjNIAsrOpU772LowFL8+D98BSl+VTxDHeJqskryCl3jC
	N2DGAxCtiho07bQttqG2JNNjc3OTiq2t+J77UIwHIXP/wDonRExeg1ePa6dhDNkJ+YWl
	nTqbjS3QTS8FiytbA69o1pP6slfydXV8Oo5p0EyNwUKERj3nMojyu5BMQg7QMSxVclaq
	09aw==
MIME-Version: 1.0
X-Received: by 10.52.61.99 with SMTP id o3mr13914384vdr.46.1412844763341; Thu,
	09 Oct 2014 01:52:43 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 9 Oct 2014 01:52:43 -0700 (PDT)
In-Reply-To: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
Date: Thu, 9 Oct 2014 09:52:43 +0100
Message-ID: <CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 7 October 2014 16:09, Thomas Leonard <talex5@gmail.com> wrote:
> I'm currently working on improving the profiling support in Mirage.
> Previously [1], I was just graphing stats in libreoffice and looking
> at call traces, but I've been thinking about how to get more useful
> data.
>
> Tracing individual functions was too fine-grained, I think, and failed
> to follow Lwt threads, so I intrumented Lwt to record when threads are
> created and resolved, and the interactions between them. Graphing the
> results looks like this:
>
>   http://test.roscidus.com/static/block-read-mirage-x86.png
>
>   ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>
> This is for a simple test of reading a block device in a tight loop.
> Horizontal lines are Lwt threads from creation to becoming resolved
> (returned or failed). Blue arrows indicate one thread waiting for
> another. Green arrows indicate one thread resolving another (with
> Lwt.wakeup).
>
> By default, threads just appear as numbers, but I added some code to
> my unikernel to label some them (I didn't annotate any of the Mirage
> libraries, though). For example, the "B.read" thread is what the
> unikernel gets back when it calls B.read on the block device, but you
> can see that behind this mirage-block-xen is creating other threads.
>
> The graphs are more fun when used interactively. There's a simple GTK
> viewer here:
>
>   https://github.com/talex5/mirage-tracing
>
> To test:
>
>   $ git clone https://github.com/talex5/mirage-tracing
>   $ cd mirage-tracing
>   $ make
>   $ ./viewer.native .../log-x86.sexp

It has been pointed out to me that these instructions didn't work
(make also tried to build the sim.ml example program, and that
required a modified Lwt). Fixed now!

> Drag to pan; scroll to zoom. As you zoom in, smaller details (e.g.
> thread labels for short-running threads) become visible, while gross
> features (e.g. arrows that span a long time-frame) fade out.
>
> This is very messy code; I just wanted to see if the visualisations
> were useful. What do people think?
>
> My hope is that we can hang other trace data off these diagrams, e.g.
> showing when GC is happening and when interrupts occur vs when Mirage
> starts handling them. If we can synchronise the clocks, it should also
> be possible to combine traces from different machines too (e.g. client
> and server, or mirage and dom0).
>
> Suggestions on better ways to do things welcome...
>
>
> [1] http://roscidus.com/blog/blog/2014/08/15/optimising-the-unikernel/

How should tracing work with existing mirage libraries? We want
libraries to be able to report extra information (thread labels, when
significant events occur, performance counters, etc), but we also want
high performance when tracing is off.

One possibility is a mirage-tracing library whose default
implementation does nothing. I imagine the OCaml compiler would
optimise all calls to the library away, using cross-module inlining.
Then you could opam pin the real version if you wanted tracing on.

Or is it better to make it dynamic, so tracing can be enabled at any
time without recompiling? Or with a functor applied by the mirage
tool? Any suggestions?


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 09 10:25:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 10:25:31 +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 1XcAuT-0000D8-K6; Thu, 09 Oct 2014 10:25:25 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XcAuR-0000C0-Pk
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 10:25:23 +0000
Received: from [85.158.143.35:43888] by server-2.bemta-4.messagelabs.com id
	D8/83-04525-39266345; Thu, 09 Oct 2014 10:25:23 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1412850320!14543455!1
X-Originating-IP: [209.85.213.172]
X-SpamReason: No, hits=0.4 required=7.0 tests=NO_RDNS_DOTCOM_HELO
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23284 invoked from network); 9 Oct 2014 10:25:22 -0000
Received: from mail-ig0-f172.google.com (HELO mail-ig0-f172.google.com)
	(209.85.213.172)
	by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 10:25:22 -0000
Received: by mail-ig0-f172.google.com with SMTP id r2so11897973igi.11
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 03:25:20 -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=2J8rhrFdo9iO5M6HBtTdOMlegEZt4N1WU+C77EVwEec=;
	b=o/2s8PTK9shsQUEQ3Iy1PKufxipTbqDt5KEMkdApWIr289fT/CDaTmjkrlXiHDmeWL
	cnZDLORCT0LzR3yDgMcuF48M1IC4ud4QMt5C2g6CLhniSs7eQ3JxOcb3Epqqwv5UYqDx
	83rKyW3HLAWGzbpxzKUHYbwyrm+tXF0qkgkxMSj+18UoChPg4oPLuSpfCQuTVpqVuaBx
	3U0Y5X3j911CFToY/592H71QuDq85HLhcPvo7xhY6bVq1uUU10nwnshZs4BJ3P5oUCZq
	hjX0BQ2hnqKoK8o/L+JBM58am67p3VIQGWonyDs4JEa8Hx2F/X1M6JG7YwcdzICpswrz
	Cuqw==
X-Received: by 10.43.68.206 with SMTP id xz14mr6539793icb.33.1412850320421;
	Thu, 09 Oct 2014 03:25:20 -0700 (PDT)
Received: from aca80137.ipt.aol.com ([119.82.124.155])
	by mx.google.com with ESMTPSA id
	cj8sm16393177igc.22.2014.10.09.03.25.15 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 09 Oct 2014 03:25:17 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
Date: Thu, 9 Oct 2014 15:55:11 +0530
Message-Id: <5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 working on improving the profiling support in Mirage.
>> Previously [1], I was just graphing stats in libreoffice and looking
>> at call traces, but I've been thinking about how to get more useful
>> data.
>> 
>> Tracing individual functions was too fine-grained, I think, and failed
>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>> created and resolved, and the interactions between them. Graphing the
>> results looks like this:
>> 
>>  http://test.roscidus.com/static/block-read-mirage-x86.png
>> 
>>  ( trace file: http://test.roscidus.com/static/log-x86.sexp )

That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)

> How should tracing work with existing mirage libraries? We want
> libraries to be able to report extra information (thread labels, when
> significant events occur, performance counters, etc), but we also want
> high performance when tracing is off.
> 
> One possibility is a mirage-tracing library whose default
> implementation does nothing. I imagine the OCaml compiler would
> optimise all calls to the library away, using cross-module inlining.
> Then you could opam pin the real version if you wanted tracing on.
> 
> Or is it better to make it dynamic, so tracing can be enabled at any
> time without recompiling? Or with a functor applied by the mirage
> tool? Any suggestions?

I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.

And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)

Thomas

> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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


_______________________________________________
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 Oct 09 10:25:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 10:25:31 +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 1XcAuT-0000D8-K6; Thu, 09 Oct 2014 10:25:25 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XcAuR-0000C0-Pk
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 10:25:23 +0000
Received: from [85.158.143.35:43888] by server-2.bemta-4.messagelabs.com id
	D8/83-04525-39266345; Thu, 09 Oct 2014 10:25:23 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1412850320!14543455!1
X-Originating-IP: [209.85.213.172]
X-SpamReason: No, hits=0.4 required=7.0 tests=NO_RDNS_DOTCOM_HELO
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23284 invoked from network); 9 Oct 2014 10:25:22 -0000
Received: from mail-ig0-f172.google.com (HELO mail-ig0-f172.google.com)
	(209.85.213.172)
	by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 10:25:22 -0000
Received: by mail-ig0-f172.google.com with SMTP id r2so11897973igi.11
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 03:25:20 -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=2J8rhrFdo9iO5M6HBtTdOMlegEZt4N1WU+C77EVwEec=;
	b=o/2s8PTK9shsQUEQ3Iy1PKufxipTbqDt5KEMkdApWIr289fT/CDaTmjkrlXiHDmeWL
	cnZDLORCT0LzR3yDgMcuF48M1IC4ud4QMt5C2g6CLhniSs7eQ3JxOcb3Epqqwv5UYqDx
	83rKyW3HLAWGzbpxzKUHYbwyrm+tXF0qkgkxMSj+18UoChPg4oPLuSpfCQuTVpqVuaBx
	3U0Y5X3j911CFToY/592H71QuDq85HLhcPvo7xhY6bVq1uUU10nwnshZs4BJ3P5oUCZq
	hjX0BQ2hnqKoK8o/L+JBM58am67p3VIQGWonyDs4JEa8Hx2F/X1M6JG7YwcdzICpswrz
	Cuqw==
X-Received: by 10.43.68.206 with SMTP id xz14mr6539793icb.33.1412850320421;
	Thu, 09 Oct 2014 03:25:20 -0700 (PDT)
Received: from aca80137.ipt.aol.com ([119.82.124.155])
	by mx.google.com with ESMTPSA id
	cj8sm16393177igc.22.2014.10.09.03.25.15 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 09 Oct 2014 03:25:17 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
Date: Thu, 9 Oct 2014 15:55:11 +0530
Message-Id: <5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 working on improving the profiling support in Mirage.
>> Previously [1], I was just graphing stats in libreoffice and looking
>> at call traces, but I've been thinking about how to get more useful
>> data.
>> 
>> Tracing individual functions was too fine-grained, I think, and failed
>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>> created and resolved, and the interactions between them. Graphing the
>> results looks like this:
>> 
>>  http://test.roscidus.com/static/block-read-mirage-x86.png
>> 
>>  ( trace file: http://test.roscidus.com/static/log-x86.sexp )

That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)

> How should tracing work with existing mirage libraries? We want
> libraries to be able to report extra information (thread labels, when
> significant events occur, performance counters, etc), but we also want
> high performance when tracing is off.
> 
> One possibility is a mirage-tracing library whose default
> implementation does nothing. I imagine the OCaml compiler would
> optimise all calls to the library away, using cross-module inlining.
> Then you could opam pin the real version if you wanted tracing on.
> 
> Or is it better to make it dynamic, so tracing can be enabled at any
> time without recompiling? Or with a functor applied by the mirage
> tool? Any suggestions?

I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.

And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)

Thomas

> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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


_______________________________________________
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 Oct 09 11:25:07 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 11:25: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 1XcBqD-0003Zp-Ji; Thu, 09 Oct 2014 11:25: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 1XcBqB-0003Ze-Uk
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 11:25:04 +0000
Received: from [85.158.139.211:7780] by server-14.bemta-5.messagelabs.com id
	3A/36-12422-F8076345; Thu, 09 Oct 2014 11:25:03 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1412853901!12935541!1
X-Originating-IP: [209.85.220.172]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16075 invoked from network); 9 Oct 2014 11:25:02 -0000
Received: from mail-vc0-f172.google.com (HELO mail-vc0-f172.google.com)
	(209.85.220.172)
	by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 11:25:02 -0000
Received: by mail-vc0-f172.google.com with SMTP id lf12so778372vcb.3
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 04:25: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:content-transfer-encoding;
	bh=qW8NOCu9lynEPKaKUpPS3RZZpF7Hkgq+wxPuaPZ44Z4=;
	b=Y39QEEMRoHt52t8q+lmpa3rnfiodO3rlUmNOId1q3M/BOTLBnLC7m8jozNct7JmeWF
	EeSp2Fn6qBKWxzOUrvEEIhR7LSzeVcHRMjSl4/wpz1LJBjdMw0hMAKa1C35dX1GsHe6Z
	IvajdRAbCh/F9a+HHXoRjdXzIjGg5F4VvPTWJU/NmJSE8q9W/wavmQqhE+OvcRRRJ9+v
	YlhyyjRn2U/00qFTKKi+PY2u3QHKyh8rnXPiHBiysp17WXQNwn7ZEYIfrLIK2oZw4WBn
	NpXx3pwL2Pg9QmAVv0H80QWMhPeFNDOe7oAALkELZnhuzR+5fpjq4hEQpHwqjzhXrpNT
	1scw==
MIME-Version: 1.0
X-Received: by 10.52.119.239 with SMTP id kx15mr14949021vdb.70.1412853901019; 
	Thu, 09 Oct 2014 04:25:01 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 9 Oct 2014 04:25:00 -0700 (PDT)
In-Reply-To: <5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
Date: Thu, 9 Oct 2014 12:25:00 +0100
Message-ID: <CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>> I'm currently working on improving the profiling support in Mirage.
>>> Previously [1], I was just graphing stats in libreoffice and looking
>>> at call traces, but I've been thinking about how to get more useful
>>> data.
>>>
>>> Tracing individual functions was too fine-grained, I think, and failed
>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>> created and resolved, and the interactions between them. Graphing the
>>> results looks like this:
>>>
>>>  http://test.roscidus.com/static/block-read-mirage-x86.png
>>>
>>>  ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>
> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)

It's using cairo for rendering, so producing png or svg output should
be easy. My javascript skills aren't up to making it zoom smoothly in
a browser though...

>> How should tracing work with existing mirage libraries? We want
>> libraries to be able to report extra information (thread labels, when
>> significant events occur, performance counters, etc), but we also want
>> high performance when tracing is off.
>>
>> One possibility is a mirage-tracing library whose default
>> implementation does nothing. I imagine the OCaml compiler would
>> optimise all calls to the library away, using cross-module inlining.
>> Then you could opam pin the real version if you wanted tracing on.
>>
>> Or is it better to make it dynamic, so tracing can be enabled at any
>> time without recompiling? Or with a functor applied by the mirage
>> tool? Any suggestions?
>
> I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.

Cool, I'll make a static tracing module for now then.

> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 09 11:25:07 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 11:25: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 1XcBqD-0003Zp-Ji; Thu, 09 Oct 2014 11:25: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 1XcBqB-0003Ze-Uk
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 11:25:04 +0000
Received: from [85.158.139.211:7780] by server-14.bemta-5.messagelabs.com id
	3A/36-12422-F8076345; Thu, 09 Oct 2014 11:25:03 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1412853901!12935541!1
X-Originating-IP: [209.85.220.172]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16075 invoked from network); 9 Oct 2014 11:25:02 -0000
Received: from mail-vc0-f172.google.com (HELO mail-vc0-f172.google.com)
	(209.85.220.172)
	by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 11:25:02 -0000
Received: by mail-vc0-f172.google.com with SMTP id lf12so778372vcb.3
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 04:25: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:content-transfer-encoding;
	bh=qW8NOCu9lynEPKaKUpPS3RZZpF7Hkgq+wxPuaPZ44Z4=;
	b=Y39QEEMRoHt52t8q+lmpa3rnfiodO3rlUmNOId1q3M/BOTLBnLC7m8jozNct7JmeWF
	EeSp2Fn6qBKWxzOUrvEEIhR7LSzeVcHRMjSl4/wpz1LJBjdMw0hMAKa1C35dX1GsHe6Z
	IvajdRAbCh/F9a+HHXoRjdXzIjGg5F4VvPTWJU/NmJSE8q9W/wavmQqhE+OvcRRRJ9+v
	YlhyyjRn2U/00qFTKKi+PY2u3QHKyh8rnXPiHBiysp17WXQNwn7ZEYIfrLIK2oZw4WBn
	NpXx3pwL2Pg9QmAVv0H80QWMhPeFNDOe7oAALkELZnhuzR+5fpjq4hEQpHwqjzhXrpNT
	1scw==
MIME-Version: 1.0
X-Received: by 10.52.119.239 with SMTP id kx15mr14949021vdb.70.1412853901019; 
	Thu, 09 Oct 2014 04:25:01 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 9 Oct 2014 04:25:00 -0700 (PDT)
In-Reply-To: <5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
Date: Thu, 9 Oct 2014 12:25:00 +0100
Message-ID: <CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>> I'm currently working on improving the profiling support in Mirage.
>>> Previously [1], I was just graphing stats in libreoffice and looking
>>> at call traces, but I've been thinking about how to get more useful
>>> data.
>>>
>>> Tracing individual functions was too fine-grained, I think, and failed
>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>> created and resolved, and the interactions between them. Graphing the
>>> results looks like this:
>>>
>>>  http://test.roscidus.com/static/block-read-mirage-x86.png
>>>
>>>  ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>
> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)

It's using cairo for rendering, so producing png or svg output should
be easy. My javascript skills aren't up to making it zoom smoothly in
a browser though...

>> How should tracing work with existing mirage libraries? We want
>> libraries to be able to report extra information (thread labels, when
>> significant events occur, performance counters, etc), but we also want
>> high performance when tracing is off.
>>
>> One possibility is a mirage-tracing library whose default
>> implementation does nothing. I imagine the OCaml compiler would
>> optimise all calls to the library away, using cross-module inlining.
>> Then you could opam pin the real version if you wanted tracing on.
>>
>> Or is it better to make it dynamic, so tracing can be enabled at any
>> time without recompiling? Or with a functor applied by the mirage
>> tool? Any suggestions?
>
> I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.

Cool, I'll make a static tracing module for now then.

> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 09 11:30:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 11:30: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 1XcBvm-0003ls-3r; Thu, 09 Oct 2014 11:30: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 1XcBvk-0003lZ-V8
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 11:30:49 +0000
Received: from [193.109.254.147:2665] by server-3.bemta-14.messagelabs.com id
	8A/1B-23707-8E176345; Thu, 09 Oct 2014 11:30:48 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-27.messagelabs.com!1412854247!11684604!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19161 invoked from network); 9 Oct 2014 11:30:47 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 11:30:47 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 4581d73e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 12:32:48 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
Date: Thu, 9 Oct 2014 12:30:47 +0100
Message-Id: <A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 Oct 2014, at 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

> I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.
> 
> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)

Yes -- this is one area where the camlp4/ppt pa_lwt syntax extension comes in quite useful.   We could have a different switch for profile-enabled or disabled libraries, and perform the additional logging registration there.  See the logging support that pa_lwt already has...

-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 Oct 09 11:30:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 11:30: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 1XcBvm-0003ls-3r; Thu, 09 Oct 2014 11:30: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 1XcBvk-0003lZ-V8
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 11:30:49 +0000
Received: from [193.109.254.147:2665] by server-3.bemta-14.messagelabs.com id
	8A/1B-23707-8E176345; Thu, 09 Oct 2014 11:30:48 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-27.messagelabs.com!1412854247!11684604!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19161 invoked from network); 9 Oct 2014 11:30:47 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 11:30:47 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 4581d73e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 12:32:48 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
Date: Thu, 9 Oct 2014 12:30:47 +0100
Message-Id: <A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 Oct 2014, at 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

> I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.
> 
> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)

Yes -- this is one area where the camlp4/ppt pa_lwt syntax extension comes in quite useful.   We could have a different switch for profile-enabled or disabled libraries, and perform the additional logging registration there.  See the logging support that pa_lwt already has...

-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 Oct 09 11:48:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 11:48: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 1XcCDB-0004H0-J1; Thu, 09 Oct 2014 11:48:49 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XcCDA-0004Gv-Bl
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 11:48:48 +0000
Received: from [85.158.143.35:22502] by server-2.bemta-4.messagelabs.com id
	89/14-04525-F1676345; Thu, 09 Oct 2014 11:48:47 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1412855325!11786015!1
X-Originating-IP: [209.85.213.174]
X-SpamReason: No, hits=0.4 required=7.0 tests=NO_RDNS_DOTCOM_HELO
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3236 invoked from network); 9 Oct 2014 11:48:47 -0000
Received: from mail-ig0-f174.google.com (HELO mail-ig0-f174.google.com)
	(209.85.213.174)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 11:48:47 -0000
Received: by mail-ig0-f174.google.com with SMTP id a13so6724313igq.7
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 04:48:45 -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=IdYsP3qNd3ocMP0d2CyrGtt4vfFBOHvOXmJqk7pO1bY=;
	b=Z9bh9CZ3P1Q/4jRL/XZJhphxM/eWU75QMd/Oy/R6TG6Ag00Kbggd9qB/zUhYg6QAX1
	1v2KRbHOYceY4+LPCNo/1XFZW0ufx7waufpQXq13BrVSD4YuzM8+c9KkRt0UwlLCVn2t
	6/doH5/+rVTjK8b6dojYwfqjN73z+7HLlVae98ycWaC2ugG2ANuIzHNSOm06iXCVYnUA
	fZu++r6p+ZtcxMQj1yTDZKz9JELYAPSf+iiBrSKv1rp6CRpMIBPaOpdTdlhKKgd/sfhO
	Uo1ST63aWB8X5s1dOO0PRJDm2RGVoqWIU/ZFOmo1Pvy72/7pw7ofH+9F6lHb0ZHjiNti
	h4Ow==
X-Received: by 10.50.138.134 with SMTP id qq6mr8874252igb.0.1412855325405;
	Thu, 09 Oct 2014 04:48:45 -0700 (PDT)
Received: from aca80137.ipt.aol.com ([119.82.124.155])
	by mx.google.com with ESMTPSA id z3sm8375184ign.22.2014.10.09.04.48.43
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 09 Oct 2014 04:48:44 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
Date: Thu, 9 Oct 2014 17:18:39 +0530
Message-Id: <DC8A98CE-0800-4887-BB14-DA36FD261EF1@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.
>> 
>> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)
> 
> Yes -- this is one area where the camlp4/ppt pa_lwt syntax extension comes in quite useful.   We could have a different switch for profile-enabled or disabled libraries, and perform the additional logging registration there.  See the logging support that pa_lwt already has...

maybe it's a good time to resurrect the extreme tracing pa_trace stuff as well: https://searchcode.com/codesearch/view/25096556/

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 Thu Oct 09 11:48:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 11:48: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 1XcCDB-0004H0-J1; Thu, 09 Oct 2014 11:48:49 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XcCDA-0004Gv-Bl
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 11:48:48 +0000
Received: from [85.158.143.35:22502] by server-2.bemta-4.messagelabs.com id
	89/14-04525-F1676345; Thu, 09 Oct 2014 11:48:47 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1412855325!11786015!1
X-Originating-IP: [209.85.213.174]
X-SpamReason: No, hits=0.4 required=7.0 tests=NO_RDNS_DOTCOM_HELO
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3236 invoked from network); 9 Oct 2014 11:48:47 -0000
Received: from mail-ig0-f174.google.com (HELO mail-ig0-f174.google.com)
	(209.85.213.174)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 11:48:47 -0000
Received: by mail-ig0-f174.google.com with SMTP id a13so6724313igq.7
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 04:48:45 -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=IdYsP3qNd3ocMP0d2CyrGtt4vfFBOHvOXmJqk7pO1bY=;
	b=Z9bh9CZ3P1Q/4jRL/XZJhphxM/eWU75QMd/Oy/R6TG6Ag00Kbggd9qB/zUhYg6QAX1
	1v2KRbHOYceY4+LPCNo/1XFZW0ufx7waufpQXq13BrVSD4YuzM8+c9KkRt0UwlLCVn2t
	6/doH5/+rVTjK8b6dojYwfqjN73z+7HLlVae98ycWaC2ugG2ANuIzHNSOm06iXCVYnUA
	fZu++r6p+ZtcxMQj1yTDZKz9JELYAPSf+iiBrSKv1rp6CRpMIBPaOpdTdlhKKgd/sfhO
	Uo1ST63aWB8X5s1dOO0PRJDm2RGVoqWIU/ZFOmo1Pvy72/7pw7ofH+9F6lHb0ZHjiNti
	h4Ow==
X-Received: by 10.50.138.134 with SMTP id qq6mr8874252igb.0.1412855325405;
	Thu, 09 Oct 2014 04:48:45 -0700 (PDT)
Received: from aca80137.ipt.aol.com ([119.82.124.155])
	by mx.google.com with ESMTPSA id z3sm8375184ign.22.2014.10.09.04.48.43
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 09 Oct 2014 04:48:44 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
Date: Thu, 9 Oct 2014 17:18:39 +0530
Message-Id: <DC8A98CE-0800-4887-BB14-DA36FD261EF1@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.
>> 
>> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)
> 
> Yes -- this is one area where the camlp4/ppt pa_lwt syntax extension comes in quite useful.   We could have a different switch for profile-enabled or disabled libraries, and perform the additional logging registration there.  See the logging support that pa_lwt already has...

maybe it's a good time to resurrect the extreme tracing pa_trace stuff as well: https://searchcode.com/codesearch/view/25096556/

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 Thu Oct 09 12:25:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:25: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 1XcCmb-0004sH-9m; Thu, 09 Oct 2014 12:25:25 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XcCma-0004sC-KI
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:25:24 +0000
Received: from [85.158.143.35:5963] by server-2.bemta-4.messagelabs.com id
	7A/6A-04525-3BE76345; Thu, 09 Oct 2014 12:25:23 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-21.messagelabs.com!1412857523!11834729!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5042 invoked from network); 9 Oct 2014 12:25:23 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 12:25:23 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 7b198cd6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 13:27:23 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <DC8A98CE-0800-4887-BB14-DA36FD261EF1@gazagnaire.org>
Date: Thu, 9 Oct 2014 13:25:23 +0100
Message-Id: <CF8277BB-FC04-41CF-8666-F0053CABDD5E@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
	<DC8A98CE-0800-4887-BB14-DA36FD261EF1@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 Oct 2014, at 12:48, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

>>> I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.
>>> 
>>> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)
>> 
>> Yes -- this is one area where the camlp4/ppt pa_lwt syntax extension comes in quite useful.   We could have a different switch for profile-enabled or disabled libraries, and perform the additional logging registration there.  See the logging support that pa_lwt already has...
> 
> maybe it's a good time to resurrect the extreme tracing pa_trace stuff as well: https://searchcode.com/codesearch/view/25096556/

The resurrection may be simplified by:

https://github.com/avsm/ocaml-fbt-trace

This is a very simple extraction that introduces a function boundary logger
via camlp4, and the application links against a logging library that does
something with the result.  There's an example in lib_test of how it works.

More broadly, this is precisely why the ongoing Assemblage project description
library by Thomas and Daniel is so important.  It would be great to have the
ability to quickly swap in a profiling variant of a particular module or
library, and it's currently very hard to do this without finer control over
the build systems.

-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 Oct 09 12:25:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:25: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 1XcCmb-0004sH-9m; Thu, 09 Oct 2014 12:25:25 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XcCma-0004sC-KI
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:25:24 +0000
Received: from [85.158.143.35:5963] by server-2.bemta-4.messagelabs.com id
	7A/6A-04525-3BE76345; Thu, 09 Oct 2014 12:25:23 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-21.messagelabs.com!1412857523!11834729!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5042 invoked from network); 9 Oct 2014 12:25:23 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 12:25:23 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 7b198cd6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 13:27:23 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <DC8A98CE-0800-4887-BB14-DA36FD261EF1@gazagnaire.org>
Date: Thu, 9 Oct 2014 13:25:23 +0100
Message-Id: <CF8277BB-FC04-41CF-8666-F0053CABDD5E@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<A596BC47-6D16-4FCE-9687-61DD30FF488E@recoil.org>
	<DC8A98CE-0800-4887-BB14-DA36FD261EF1@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 Oct 2014, at 12:48, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

>>> I think we were discussing having a special "Tracer" (or "Profiler") module type, similar to the "Console" one. Or to extend the "Console" one with more structured kinds of debug statement. Not sure what is the most practical, but we should certainly do something to support what you have started to do at a larger scale.
>>> 
>>> And yes, having a dummy Profiler where no-op are optimised away is a good idea. Hopefully, Pierre Chambart's patches for improving the inliner will be in OCaml before Mirage 3.0 :-)
>> 
>> Yes -- this is one area where the camlp4/ppt pa_lwt syntax extension comes in quite useful.   We could have a different switch for profile-enabled or disabled libraries, and perform the additional logging registration there.  See the logging support that pa_lwt already has...
> 
> maybe it's a good time to resurrect the extreme tracing pa_trace stuff as well: https://searchcode.com/codesearch/view/25096556/

The resurrection may be simplified by:

https://github.com/avsm/ocaml-fbt-trace

This is a very simple extraction that introduces a function boundary logger
via camlp4, and the application links against a logging library that does
something with the result.  There's an example in lib_test of how it works.

More broadly, this is precisely why the ongoing Assemblage project description
library by Thomas and Daniel is so important.  It would be great to have the
ability to quickly swap in a profiling variant of a particular module or
library, and it's currently very hard to do this without finer control over
the build systems.

-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 Oct 09 12:31:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:31: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 1XcCsh-0004vv-SO; Thu, 09 Oct 2014 12:31:43 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XcCsg-0004vq-LB
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:31:42 +0000
Received: from [193.109.254.147:25010] by server-11.bemta-14.messagelabs.com
	id 8F/89-14213-D2086345; Thu, 09 Oct 2014 12:31:41 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1412857900!7095513!1
X-Originating-IP: [209.85.220.169]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28125 invoked from network); 9 Oct 2014 12:31:41 -0000
Received: from mail-vc0-f169.google.com (HELO mail-vc0-f169.google.com)
	(209.85.220.169)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 12:31:41 -0000
Received: by mail-vc0-f169.google.com with SMTP id hy4so870392vcb.14
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 05:31:39 -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=pg8e01OcZuM46kX8fEH41AwVdR8fr8ykpN5cYyHCm/8=;
	b=AetbETaOlYsyWcYT0+vEoyYkSxwD4Ss+3Lhv42FbHWobRJcha/+yh75eLpUl2bOs6Y
	4no3TzuLHwljhu2X9tnk35OQnEVxVj+N6r3maxXTCgKPIj7xauqV7kQXYvO/cgsCRQ+f
	IQ9VCOqsrcdk6LXeW56KYyJ/M50PrDlatehe6uHf1dzP8JHUaJZ2KYNtGQ/qzP8Z+iFN
	vGnWySKOM9zbcB2l0zpUd9XgcsCz7eQXfpojOrPwUmXi499SytQ5J7W+Tu0nSMSGLG/w
	QEteR+s6If6ntseC9FLXsysPuaqqGbDryN1fMtOvZJAZKlz16y2CgyYgnxuq9K8a25P6
	/fmQ==
X-Gm-Message-State: ALoCoQmaEnAO+/8MrHwC9pC9kpGR3WGNJk0B65/gvU69ZmY9yNAmnSoijlUBo8vHOf3ixTd7DxoG
MIME-Version: 1.0
X-Received: by 10.220.142.196 with SMTP id r4mr18106783vcu.63.1412857899699;
	Thu, 09 Oct 2014 05:31:39 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 9 Oct 2014 05:31:39 -0700 (PDT)
In-Reply-To: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
Date: Thu, 9 Oct 2014 08:31:39 -0400
Message-ID: <CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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,

This looks like a good start.  I've created similar specialized tools for
post-processing and visualization in the past, and they are usually
worth the investment.

On Tue, Oct 7, 2014 at 11:09 AM, Thomas Leonard <talex5@gmail.com> wrote:
> By default, threads just appear as numbers, but I added some code to
> my unikernel to label some them (I didn't annotate any of the Mirage
> libraries, though). For example, the "B.read" thread is what the
> unikernel gets back when it calls B.read on the block device, but you
> can see that behind this mirage-block-xen is creating other threads.

Looking at your example, threads 930 and 945 are ostensibly created
from the same line of code, during separate iterations through the
read loop.

Would it be practical to capture the caller's PC during thread creation,
and dump that out with the Lwt.current_id?  With that you could label
930 and 945 in a way that makes their common caller more obvious,
ex. 930-0x1234 and 945-0x1234 vs 929-0x4567.

(Or better yet, translate PC to source/line info during post-processing?)

In other words, some amount of automated labeling might be a good
complement to manual labeling.


Once you can recognize common patterns in thread creation, you can
present them more clearly in the visualization.  The resulting data might
also be amenable to flame graph visualization:

http://www.brendangregg.com/flamegraphs.html
http://www.brendangregg.com/Slides/LISA13_Flame_Graphs.pdf


Out of curiosity, what happened to thread 934?  Is that a failure, or
an unread result that gets garbage collected?


--
Len

_______________________________________________
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 Oct 09 12:31:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:31: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 1XcCsh-0004vv-SO; Thu, 09 Oct 2014 12:31:43 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XcCsg-0004vq-LB
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:31:42 +0000
Received: from [193.109.254.147:25010] by server-11.bemta-14.messagelabs.com
	id 8F/89-14213-D2086345; Thu, 09 Oct 2014 12:31:41 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1412857900!7095513!1
X-Originating-IP: [209.85.220.169]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28125 invoked from network); 9 Oct 2014 12:31:41 -0000
Received: from mail-vc0-f169.google.com (HELO mail-vc0-f169.google.com)
	(209.85.220.169)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 12:31:41 -0000
Received: by mail-vc0-f169.google.com with SMTP id hy4so870392vcb.14
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 05:31:39 -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=pg8e01OcZuM46kX8fEH41AwVdR8fr8ykpN5cYyHCm/8=;
	b=AetbETaOlYsyWcYT0+vEoyYkSxwD4Ss+3Lhv42FbHWobRJcha/+yh75eLpUl2bOs6Y
	4no3TzuLHwljhu2X9tnk35OQnEVxVj+N6r3maxXTCgKPIj7xauqV7kQXYvO/cgsCRQ+f
	IQ9VCOqsrcdk6LXeW56KYyJ/M50PrDlatehe6uHf1dzP8JHUaJZ2KYNtGQ/qzP8Z+iFN
	vGnWySKOM9zbcB2l0zpUd9XgcsCz7eQXfpojOrPwUmXi499SytQ5J7W+Tu0nSMSGLG/w
	QEteR+s6If6ntseC9FLXsysPuaqqGbDryN1fMtOvZJAZKlz16y2CgyYgnxuq9K8a25P6
	/fmQ==
X-Gm-Message-State: ALoCoQmaEnAO+/8MrHwC9pC9kpGR3WGNJk0B65/gvU69ZmY9yNAmnSoijlUBo8vHOf3ixTd7DxoG
MIME-Version: 1.0
X-Received: by 10.220.142.196 with SMTP id r4mr18106783vcu.63.1412857899699;
	Thu, 09 Oct 2014 05:31:39 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 9 Oct 2014 05:31:39 -0700 (PDT)
In-Reply-To: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
Date: Thu, 9 Oct 2014 08:31:39 -0400
Message-ID: <CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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,

This looks like a good start.  I've created similar specialized tools for
post-processing and visualization in the past, and they are usually
worth the investment.

On Tue, Oct 7, 2014 at 11:09 AM, Thomas Leonard <talex5@gmail.com> wrote:
> By default, threads just appear as numbers, but I added some code to
> my unikernel to label some them (I didn't annotate any of the Mirage
> libraries, though). For example, the "B.read" thread is what the
> unikernel gets back when it calls B.read on the block device, but you
> can see that behind this mirage-block-xen is creating other threads.

Looking at your example, threads 930 and 945 are ostensibly created
from the same line of code, during separate iterations through the
read loop.

Would it be practical to capture the caller's PC during thread creation,
and dump that out with the Lwt.current_id?  With that you could label
930 and 945 in a way that makes their common caller more obvious,
ex. 930-0x1234 and 945-0x1234 vs 929-0x4567.

(Or better yet, translate PC to source/line info during post-processing?)

In other words, some amount of automated labeling might be a good
complement to manual labeling.


Once you can recognize common patterns in thread creation, you can
present them more clearly in the visualization.  The resulting data might
also be amenable to flame graph visualization:

http://www.brendangregg.com/flamegraphs.html
http://www.brendangregg.com/Slides/LISA13_Flame_Graphs.pdf


Out of curiosity, what happened to thread 934?  Is that a failure, or
an unread result that gets garbage collected?


--
Len

_______________________________________________
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 Oct 09 12:48:56 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:48: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 1XcD9K-00054L-71; Thu, 09 Oct 2014 12:48:54 +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 1XcD9J-00054G-E5
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:48:53 +0000
Received: from [193.109.254.147:15780] by server-16.bemta-14.messagelabs.com
	id 75/09-16990-43486345; Thu, 09 Oct 2014 12:48:52 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1412858932!11647354!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5112 invoked from network); 9 Oct 2014 12:48:52 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 12:48:52 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b5b2277f;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 13:50:52 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
Date: Thu, 9 Oct 2014 13:48:52 +0100
Message-Id: <1808B2F4-75C2-44DC-B17D-7413D9437A74@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 7 Oct 2014, at 16:09, Thomas Leonard <talex5@gmail.com> wrote:

> By default, threads just appear as numbers, but I added some code to
> my unikernel to label some them (I didn't annotate any of the Mirage
> libraries, though). For example, the "B.read" thread is what the
> unikernel gets back when it calls B.read on the block device, but you
> can see that behind this mirage-block-xen is creating other threads.

It is possible to associate per-Lwt-thread values, which can be used
to give threads names: https://gist.github.com/avsm/0fb00c14978a216b7ddb

(* Build with:
    ocamlbuild -use-ocamlfind -pkg lwt.unix -tag annot test.native
 *)

let id_key = Lwt.new_key ()

let log fmt =
  let tid =
    match Lwt.get id_key with
    | None -> "<unknown>"
    | Some id -> id
  in
  Printf.(kprintf (fun (msg:string) -> printf "[%s] %s\n%!" tid msg) fmt)

let in_thread ?id fn =
  Lwt.with_value id_key id fn

let () = Lwt_unix.run (
  let open Lwt in
  log "main function starts";
  in_thread ~id:"thread 1" (fun () -> log "hello");
  in_thread ~id:"thread 1" (fun () -> log "world");
  let rec looper n () =
    match n with
    | 0 -> return_unit
    | n ->
       log "looper %d" n;
       Lwt_unix.sleep (Random.float 1.0)
       >>= looper (n-1)
  in
  join [ 
    in_thread ~id:"foo" (looper 10);
    in_thread ~id:"bar" (looper 5);
    looper 7 ()
  ]
)

We could make this slightly more efficient by using symbolic
variants instead of strings (so that they would compile down to be
integers), but the basic idea would be the same.

-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 Oct 09 12:48:56 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:48: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 1XcD9K-00054L-71; Thu, 09 Oct 2014 12:48:54 +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 1XcD9J-00054G-E5
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:48:53 +0000
Received: from [193.109.254.147:15780] by server-16.bemta-14.messagelabs.com
	id 75/09-16990-43486345; Thu, 09 Oct 2014 12:48:52 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1412858932!11647354!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5112 invoked from network); 9 Oct 2014 12:48:52 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 12:48:52 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b5b2277f;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 13:50:52 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
Date: Thu, 9 Oct 2014 13:48:52 +0100
Message-Id: <1808B2F4-75C2-44DC-B17D-7413D9437A74@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 7 Oct 2014, at 16:09, Thomas Leonard <talex5@gmail.com> wrote:

> By default, threads just appear as numbers, but I added some code to
> my unikernel to label some them (I didn't annotate any of the Mirage
> libraries, though). For example, the "B.read" thread is what the
> unikernel gets back when it calls B.read on the block device, but you
> can see that behind this mirage-block-xen is creating other threads.

It is possible to associate per-Lwt-thread values, which can be used
to give threads names: https://gist.github.com/avsm/0fb00c14978a216b7ddb

(* Build with:
    ocamlbuild -use-ocamlfind -pkg lwt.unix -tag annot test.native
 *)

let id_key = Lwt.new_key ()

let log fmt =
  let tid =
    match Lwt.get id_key with
    | None -> "<unknown>"
    | Some id -> id
  in
  Printf.(kprintf (fun (msg:string) -> printf "[%s] %s\n%!" tid msg) fmt)

let in_thread ?id fn =
  Lwt.with_value id_key id fn

let () = Lwt_unix.run (
  let open Lwt in
  log "main function starts";
  in_thread ~id:"thread 1" (fun () -> log "hello");
  in_thread ~id:"thread 1" (fun () -> log "world");
  let rec looper n () =
    match n with
    | 0 -> return_unit
    | n ->
       log "looper %d" n;
       Lwt_unix.sleep (Random.float 1.0)
       >>= looper (n-1)
  in
  join [ 
    in_thread ~id:"foo" (looper 10);
    in_thread ~id:"bar" (looper 5);
    looper 7 ()
  ]
)

We could make this slightly more efficient by using symbolic
variants instead of strings (so that they would compile down to be
integers), but the basic idea would be the same.

-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 Oct 09 12:54:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:54:34 +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 1XcDEn-0005HN-2y; Thu, 09 Oct 2014 12:54:33 +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 1XcDEl-0005HI-Fw
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:54:31 +0000
Received: from [193.109.254.147:54951] by server-6.bemta-14.messagelabs.com id
	15/78-01867-68586345; Thu, 09 Oct 2014 12:54:30 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-14.tower-27.messagelabs.com!1412859269!11738563!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1541 invoked from network); 9 Oct 2014 12:54:29 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 12:54:29 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id a10e6e78;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 13:56:31 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
Date: Thu, 9 Oct 2014 13:54:30 +0100
Message-Id: <ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:

> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>> I'm currently working on improving the profiling support in Mirage.
>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>> at call traces, but I've been thinking about how to get more useful
>>>> data.
>>>> 
>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>> created and resolved, and the interactions between them. Graphing the
>>>> results looks like this:
>>>> 
>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>> 
>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>> 
>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
> 
> It's using cairo for rendering, so producing png or svg output should
> be easy. My javascript skills aren't up to making it zoom smoothly in
> a browser though...

Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
backend, so this may be a good place to get started on a browser backend
without the trouble of learning HTML/CSS:

  http://erratique.ch/software/vg

I'll send an update on Conduit soon, but Dave Scott has added sufficient
Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
access it via Linux userspace.  In other words: you can use Chrome or Firefox
to access the debugging port without going through TCP, which is pretty
cool :-)

-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 Oct 09 12:54:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 12:54:34 +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 1XcDEn-0005HN-2y; Thu, 09 Oct 2014 12:54:33 +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 1XcDEl-0005HI-Fw
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 12:54:31 +0000
Received: from [193.109.254.147:54951] by server-6.bemta-14.messagelabs.com id
	15/78-01867-68586345; Thu, 09 Oct 2014 12:54:30 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-14.tower-27.messagelabs.com!1412859269!11738563!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1541 invoked from network); 9 Oct 2014 12:54:29 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 9 Oct 2014 12:54:29 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id a10e6e78;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 9 Oct 2014 13:56:31 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
Date: Thu, 9 Oct 2014 13:54:30 +0100
Message-Id: <ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:

> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>> I'm currently working on improving the profiling support in Mirage.
>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>> at call traces, but I've been thinking about how to get more useful
>>>> data.
>>>> 
>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>> created and resolved, and the interactions between them. Graphing the
>>>> results looks like this:
>>>> 
>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>> 
>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>> 
>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
> 
> It's using cairo for rendering, so producing png or svg output should
> be easy. My javascript skills aren't up to making it zoom smoothly in
> a browser though...

Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
backend, so this may be a good place to get started on a browser backend
without the trouble of learning HTML/CSS:

  http://erratique.ch/software/vg

I'll send an update on Conduit soon, but Dave Scott has added sufficient
Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
access it via Linux userspace.  In other words: you can use Chrome or Firefox
to access the debugging port without going through TCP, which is pretty
cool :-)

-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 Oct 09 18:51:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 18:51: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 1XcIo2-0004vK-CJ; Thu, 09 Oct 2014 18:51:18 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XcIo0-0004vF-BT
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 18:51:16 +0000
Received: from [85.158.143.35:26945] by server-3.bemta-4.messagelabs.com id
	7A/02-06192-329D6345; Thu, 09 Oct 2014 18:51:15 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1412880673!4615504!1
X-Originating-IP: [209.85.220.175]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23765 invoked from network); 9 Oct 2014 18:51:14 -0000
Received: from mail-vc0-f175.google.com (HELO mail-vc0-f175.google.com)
	(209.85.220.175)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 18:51:14 -0000
Received: by mail-vc0-f175.google.com with SMTP id id10so1470061vcb.20
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 11:51:13 -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=wk7HwiRy2TJy8d9ej0WpG3OGng9B2ceVF6Z2Eu128D0=;
	b=gFs15cxnGkXgNf5VAvPGPBTiDjZAW7qKNWr8GGdcjU5tmSntqYuEpIO7hyuYd5KNpg
	x0wM8SJglourhvNATrqfIAb3xdRyAs0neqYlIcotFwg/mRbZxnBXI95UfBEkUXhIKuGe
	oZzHlTCANahKqw8tRMR2D2+XA6BSWbGJ5Do1Ypmxb03MC5hB7HQXywqx+Zg2Tmtk+DXd
	QItd95zSgQ2a2Xmolr/lQD43WXEA1Ri2t3IAkApkdCvPAqi/3o/wpDtfC6SL20jvsP1w
	T5rSSOsVWG5dbeq0EVkxFYvMMjUbmMGebygUZuTLCbRiULeQ6UdN2ECX7OQgdQzmOG3a
	/3qA==
MIME-Version: 1.0
X-Received: by 10.220.206.196 with SMTP id fv4mr14738vcb.66.1412880673183;
	Thu, 09 Oct 2014 11:51:13 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 9 Oct 2014 11:51:13 -0700 (PDT)
In-Reply-To: <CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
Date: Thu, 9 Oct 2014 19:51:13 +0100
Message-ID: <CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Len Maxwell <len@lnmx.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 13:31, Len Maxwell <len@lnmx.org> wrote:
> Hello,
>
> This looks like a good start.  I've created similar specialized tools for
> post-processing and visualization in the past, and they are usually
> worth the investment.
>
> On Tue, Oct 7, 2014 at 11:09 AM, Thomas Leonard <talex5@gmail.com> wrote:
>> By default, threads just appear as numbers, but I added some code to
>> my unikernel to label some them (I didn't annotate any of the Mirage
>> libraries, though). For example, the "B.read" thread is what the
>> unikernel gets back when it calls B.read on the block device, but you
>> can see that behind this mirage-block-xen is creating other threads.
>
> Looking at your example, threads 930 and 945 are ostensibly created
> from the same line of code, during separate iterations through the
> read loop.
>
> Would it be practical to capture the caller's PC during thread creation,
> and dump that out with the Lwt.current_id?  With that you could label
> 930 and 945 in a way that makes their common caller more obvious,
> ex. 930-0x1234 and 945-0x1234 vs 929-0x4567.
>
> (Or better yet, translate PC to source/line info during post-processing?)
>
> In other words, some amount of automated labeling might be a good
> complement to manual labeling.

The PC will be somewhere in Lwt, and inlining will likely make walking
the stack unreliable. But something like the camlp4 annotations Anil
mentioned would probably help.

> Once you can recognize common patterns in thread creation, you can
> present them more clearly in the visualization.  The resulting data might
> also be amenable to flame graph visualization:

One problem with using flamegraphs here is that threads run in
parallel (and may outlive their parents, though you can't see it in
this example image). e.g. a thread that spawns 10 parallel sleep
subthreads and then joins on them - how would you account for that?

> http://www.brendangregg.com/flamegraphs.html
> http://www.brendangregg.com/Slides/LISA13_Flame_Graphs.pdf
>
>
> Out of curiosity, what happened to thread 934?  Is that a failure, or
> an unread result that gets garbage collected?

I updated the picture with a new trace, which includes more labels and
lays out "tail-recursive" calls (where a thread merges with a thread
it previously created) horizontally:

http://test.roscidus.com/static/block-read-mirage-x86.png
( updated trace file: http://test.roscidus.com/static/log-x86.sexp )

Unfortunately, I overwrote the originals so I'm not sure exactly which
threads you're referring to. The new layout hopefully makes it clear
that there are two main things going on here:

- the test unikernel's loop reading from the the block device ("Process data")
- the blkfront polling loop, processing responses from dom0 ("blkfront.poll")

I suspect there are some missing arrows. e.g. 425 gets notified by
blkfront and then the Process data thread suddenly resolves 426 for no
obvious reason. Probably just a missing notification somewhere.

Also, I need to add an indication of when we send a request on an
event channel. Here, we only see the replies.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 09 18:51:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 18:51: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 1XcIo2-0004vK-CJ; Thu, 09 Oct 2014 18:51:18 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XcIo0-0004vF-BT
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 18:51:16 +0000
Received: from [85.158.143.35:26945] by server-3.bemta-4.messagelabs.com id
	7A/02-06192-329D6345; Thu, 09 Oct 2014 18:51:15 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1412880673!4615504!1
X-Originating-IP: [209.85.220.175]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23765 invoked from network); 9 Oct 2014 18:51:14 -0000
Received: from mail-vc0-f175.google.com (HELO mail-vc0-f175.google.com)
	(209.85.220.175)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 18:51:14 -0000
Received: by mail-vc0-f175.google.com with SMTP id id10so1470061vcb.20
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 11:51:13 -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=wk7HwiRy2TJy8d9ej0WpG3OGng9B2ceVF6Z2Eu128D0=;
	b=gFs15cxnGkXgNf5VAvPGPBTiDjZAW7qKNWr8GGdcjU5tmSntqYuEpIO7hyuYd5KNpg
	x0wM8SJglourhvNATrqfIAb3xdRyAs0neqYlIcotFwg/mRbZxnBXI95UfBEkUXhIKuGe
	oZzHlTCANahKqw8tRMR2D2+XA6BSWbGJ5Do1Ypmxb03MC5hB7HQXywqx+Zg2Tmtk+DXd
	QItd95zSgQ2a2Xmolr/lQD43WXEA1Ri2t3IAkApkdCvPAqi/3o/wpDtfC6SL20jvsP1w
	T5rSSOsVWG5dbeq0EVkxFYvMMjUbmMGebygUZuTLCbRiULeQ6UdN2ECX7OQgdQzmOG3a
	/3qA==
MIME-Version: 1.0
X-Received: by 10.220.206.196 with SMTP id fv4mr14738vcb.66.1412880673183;
	Thu, 09 Oct 2014 11:51:13 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 9 Oct 2014 11:51:13 -0700 (PDT)
In-Reply-To: <CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
Date: Thu, 9 Oct 2014 19:51:13 +0100
Message-ID: <CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Len Maxwell <len@lnmx.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 13:31, Len Maxwell <len@lnmx.org> wrote:
> Hello,
>
> This looks like a good start.  I've created similar specialized tools for
> post-processing and visualization in the past, and they are usually
> worth the investment.
>
> On Tue, Oct 7, 2014 at 11:09 AM, Thomas Leonard <talex5@gmail.com> wrote:
>> By default, threads just appear as numbers, but I added some code to
>> my unikernel to label some them (I didn't annotate any of the Mirage
>> libraries, though). For example, the "B.read" thread is what the
>> unikernel gets back when it calls B.read on the block device, but you
>> can see that behind this mirage-block-xen is creating other threads.
>
> Looking at your example, threads 930 and 945 are ostensibly created
> from the same line of code, during separate iterations through the
> read loop.
>
> Would it be practical to capture the caller's PC during thread creation,
> and dump that out with the Lwt.current_id?  With that you could label
> 930 and 945 in a way that makes their common caller more obvious,
> ex. 930-0x1234 and 945-0x1234 vs 929-0x4567.
>
> (Or better yet, translate PC to source/line info during post-processing?)
>
> In other words, some amount of automated labeling might be a good
> complement to manual labeling.

The PC will be somewhere in Lwt, and inlining will likely make walking
the stack unreliable. But something like the camlp4 annotations Anil
mentioned would probably help.

> Once you can recognize common patterns in thread creation, you can
> present them more clearly in the visualization.  The resulting data might
> also be amenable to flame graph visualization:

One problem with using flamegraphs here is that threads run in
parallel (and may outlive their parents, though you can't see it in
this example image). e.g. a thread that spawns 10 parallel sleep
subthreads and then joins on them - how would you account for that?

> http://www.brendangregg.com/flamegraphs.html
> http://www.brendangregg.com/Slides/LISA13_Flame_Graphs.pdf
>
>
> Out of curiosity, what happened to thread 934?  Is that a failure, or
> an unread result that gets garbage collected?

I updated the picture with a new trace, which includes more labels and
lays out "tail-recursive" calls (where a thread merges with a thread
it previously created) horizontally:

http://test.roscidus.com/static/block-read-mirage-x86.png
( updated trace file: http://test.roscidus.com/static/log-x86.sexp )

Unfortunately, I overwrote the originals so I'm not sure exactly which
threads you're referring to. The new layout hopefully makes it clear
that there are two main things going on here:

- the test unikernel's loop reading from the the block device ("Process data")
- the blkfront polling loop, processing responses from dom0 ("blkfront.poll")

I suspect there are some missing arrows. e.g. 425 gets notified by
blkfront and then the Process data thread suddenly resolves 426 for no
obvious reason. Probably just a missing notification somewhere.

Also, I need to add an indication of when we send a request on an
event channel. Here, we only see the replies.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 09 21:09:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 21:09: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 1XcKxQ-0005vX-Al; Thu, 09 Oct 2014 21:09:08 +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 1XcKxP-0005vO-4d
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 21:09:07 +0000
Received: from [85.158.139.211:21328] by server-7.bemta-5.messagelabs.com id
	3B/13-30869-279F6345; Thu, 09 Oct 2014 21:09:06 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-5.tower-206.messagelabs.com!1412888944!13059047!1
X-Originating-IP: [209.85.220.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2675 invoked from network); 9 Oct 2014 21:09:05 -0000
Received: from mail-vc0-f179.google.com (HELO mail-vc0-f179.google.com)
	(209.85.220.179)
	by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 21:09:05 -0000
Received: by mail-vc0-f179.google.com with SMTP id im17so1703467vcb.10
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 14:09:04 -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:content-type;
	bh=K/wowGi24rTuXf+nnn/6ASHcNkNZnTFNl2kGg7A5480=;
	b=TQ+2pd20Wi1kVzMRsWelQIxvTNDb8yNDXpD+QmaRTr560mf6fS+Par/52OcJINc1NK
	3Zack0OVXaqrjRuaiXybuS+SliV6//BFh/OmVBb6Wt0iLxyyc/1sAksbkx9+OX+6Sfwq
	CLlK4uTdEcTfiUAKSPLJQaDVtswKjC0enCBQNlcwSDbJbpHV2jWblEA6he2qZt16rJKU
	4KwNsYkmKAsIvHhpVILYmtYeL9utHJm0S9YL6NZiWiWOZynEq+WUuIUdJPSEpAjozlPs
	08h2nAp0j8/lqr1ztVr51liGhOvFBQuygd1vaZFET3lCHSwnNfHcyTNGJyEyewH0oQMN
	6JCA==
X-Gm-Message-State: ALoCoQnnLCV0Y8cq2NieRkAOquHjrOsUCEzcqLNZPb4W9SNdapKbn1t8T3NfbP1tb13tDMHdzbS3
MIME-Version: 1.0
X-Received: by 10.221.66.194 with SMTP id xr2mr766213vcb.27.1412888943935;
	Thu, 09 Oct 2014 14:09:03 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 9 Oct 2014 14:09:03 -0700 (PDT)
In-Reply-To: <CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
	<CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
Date: Thu, 9 Oct 2014 17:09:03 -0400
Message-ID: <CAHwFrZctqQc2u4mc65TKfF-KGvdNpoyMicj7NuoSqP-kFJtOOg@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

[re-send with the correct From address]

On Thu, Oct 9, 2014 at 2:51 PM, Thomas Leonard <talex5@gmail.com> wrote:
>
> The PC will be somewhere in Lwt, and inlining will likely make walking
> the stack unreliable. But something like the camlp4 annotations Anil
> mentioned would probably help.

OK, that makes sense.

>> Once you can recognize common patterns in thread creation, you can
>> present them more clearly in the visualization.  The resulting data might
>> also be amenable to flame graph visualization:
>
> One problem with using flamegraphs here is that threads run in
> parallel (and may outlive their parents, though you can't see it in
> this example image). e.g. a thread that spawns 10 parallel sleep
> subthreads and then joins on them - how would you account for that?

Point taken.  I would focus on threads that spend significant time "blocked"
on I/O or running on-CPU.  Given some time I might try to prototype that.

> I updated the picture with a new trace, which includes more labels and
> lays out "tail-recursive" calls (where a thread merges with a thread
> it previously created) horizontally:
>
> http://test.roscidus.com/static/block-read-mirage-x86.png
> ( updated trace file: http://test.roscidus.com/static/log-x86.sexp )
>
> Unfortunately, I overwrote the originals so I'm not sure exactly which
> threads you're referring to. The new layout hopefully makes it clear
> that there are two main things going on here:
>
> - the test unikernel's loop reading from the the block device ("Process data")
> - the blkfront polling loop, processing responses from dom0 ("blkfront.poll")
>
> I suspect there are some missing arrows. e.g. 425 gets notified by
> blkfront and then the Process data thread suddenly resolves 426 for no
> obvious reason. Probably just a missing notification somewhere.

The thread I was interested in looked similar to 425, so that may explain it.

> Also, I need to add an indication of when we send a request on an
> event channel. Here, we only see the replies.

Reviewing the log with the viewer has helped me get a better idea of how
things fit together at runtime.  It will be interesting to see more data around
the interactions with Xen.


thanks,
--
Len

_______________________________________________
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 Oct 09 21:09:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Oct 2014 21:09: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 1XcKxQ-0005vX-Al; Thu, 09 Oct 2014 21:09:08 +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 1XcKxP-0005vO-4d
	for mirageos-devel@lists.xenproject.org; Thu, 09 Oct 2014 21:09:07 +0000
Received: from [85.158.139.211:21328] by server-7.bemta-5.messagelabs.com id
	3B/13-30869-279F6345; Thu, 09 Oct 2014 21:09:06 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-5.tower-206.messagelabs.com!1412888944!13059047!1
X-Originating-IP: [209.85.220.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2675 invoked from network); 9 Oct 2014 21:09:05 -0000
Received: from mail-vc0-f179.google.com (HELO mail-vc0-f179.google.com)
	(209.85.220.179)
	by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Oct 2014 21:09:05 -0000
Received: by mail-vc0-f179.google.com with SMTP id im17so1703467vcb.10
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 09 Oct 2014 14:09:04 -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:content-type;
	bh=K/wowGi24rTuXf+nnn/6ASHcNkNZnTFNl2kGg7A5480=;
	b=TQ+2pd20Wi1kVzMRsWelQIxvTNDb8yNDXpD+QmaRTr560mf6fS+Par/52OcJINc1NK
	3Zack0OVXaqrjRuaiXybuS+SliV6//BFh/OmVBb6Wt0iLxyyc/1sAksbkx9+OX+6Sfwq
	CLlK4uTdEcTfiUAKSPLJQaDVtswKjC0enCBQNlcwSDbJbpHV2jWblEA6he2qZt16rJKU
	4KwNsYkmKAsIvHhpVILYmtYeL9utHJm0S9YL6NZiWiWOZynEq+WUuIUdJPSEpAjozlPs
	08h2nAp0j8/lqr1ztVr51liGhOvFBQuygd1vaZFET3lCHSwnNfHcyTNGJyEyewH0oQMN
	6JCA==
X-Gm-Message-State: ALoCoQnnLCV0Y8cq2NieRkAOquHjrOsUCEzcqLNZPb4W9SNdapKbn1t8T3NfbP1tb13tDMHdzbS3
MIME-Version: 1.0
X-Received: by 10.221.66.194 with SMTP id xr2mr766213vcb.27.1412888943935;
	Thu, 09 Oct 2014 14:09:03 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 9 Oct 2014 14:09:03 -0700 (PDT)
In-Reply-To: <CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
	<CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
Date: Thu, 9 Oct 2014 17:09:03 -0400
Message-ID: <CAHwFrZctqQc2u4mc65TKfF-KGvdNpoyMicj7NuoSqP-kFJtOOg@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

[re-send with the correct From address]

On Thu, Oct 9, 2014 at 2:51 PM, Thomas Leonard <talex5@gmail.com> wrote:
>
> The PC will be somewhere in Lwt, and inlining will likely make walking
> the stack unreliable. But something like the camlp4 annotations Anil
> mentioned would probably help.

OK, that makes sense.

>> Once you can recognize common patterns in thread creation, you can
>> present them more clearly in the visualization.  The resulting data might
>> also be amenable to flame graph visualization:
>
> One problem with using flamegraphs here is that threads run in
> parallel (and may outlive their parents, though you can't see it in
> this example image). e.g. a thread that spawns 10 parallel sleep
> subthreads and then joins on them - how would you account for that?

Point taken.  I would focus on threads that spend significant time "blocked"
on I/O or running on-CPU.  Given some time I might try to prototype that.

> I updated the picture with a new trace, which includes more labels and
> lays out "tail-recursive" calls (where a thread merges with a thread
> it previously created) horizontally:
>
> http://test.roscidus.com/static/block-read-mirage-x86.png
> ( updated trace file: http://test.roscidus.com/static/log-x86.sexp )
>
> Unfortunately, I overwrote the originals so I'm not sure exactly which
> threads you're referring to. The new layout hopefully makes it clear
> that there are two main things going on here:
>
> - the test unikernel's loop reading from the the block device ("Process data")
> - the blkfront polling loop, processing responses from dom0 ("blkfront.poll")
>
> I suspect there are some missing arrows. e.g. 425 gets notified by
> blkfront and then the Process data thread suddenly resolves 426 for no
> obvious reason. Probably just a missing notification somewhere.

The thread I was interested in looked similar to 425, so that may explain it.

> Also, I need to add an indication of when we send a request on an
> event channel. Here, we only see the replies.

Reviewing the log with the viewer has helped me get a better idea of how
things fit together at runtime.  It will be interesting to see more data around
the interactions with Xen.


thanks,
--
Len

_______________________________________________
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 Oct 10 14:41:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 10 Oct 2014 14:41: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 1XcbOB-00014o-Vq; Fri, 10 Oct 2014 14:41:51 +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 1XcbOA-00014d-ST
	for mirageos-devel@lists.xenproject.org; Fri, 10 Oct 2014 14:41:50 +0000
Received: from [193.109.254.147:11641] by server-4.bemta-14.messagelabs.com id
	D7/A1-01677-E20F7345; Fri, 10 Oct 2014 14:41:50 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1412952108!12032844!1
X-Originating-IP: [209.85.220.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8126 invoked from network); 10 Oct 2014 14:41:49 -0000
Received: from mail-vc0-f182.google.com (HELO mail-vc0-f182.google.com)
	(209.85.220.182)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Oct 2014 14:41:49 -0000
Received: by mail-vc0-f182.google.com with SMTP id la4so2769612vcb.13
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 10 Oct 2014 07:41:48 -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=JHpSNpaDL1ee3o6YzaR2eqW0NdL3lA/3C9Rt9SSCoa0=;
	b=kp+iOoKUxB5bF+TV4Lh9D+NfDdQdLikdIvSfqTKmAWjwnhF8KFgZTYd56SOOcnn+Gr
	5RAecpXEFke9OyQpEw+8w3mPCXfCWdqM4TgXXbqKi4MtG2BHCKiK+mtzserD/USVvsJs
	ypbzT5V38bOI7NADU7m/7jBgifCnY/iauFEtgP/uuj+7O3tEJPWKSTX/6z7IWEKGAXSm
	qiOf/T1bfN9VOuMrlw7amUqSMft0BhDVfa1JTDU669wOAkBS/x54gaBMtTtBm+LWJXFD
	1aZvxD5dHjN0wX8HALzbZ7Ikze4NWs+vo/3/0w6R8yHL6XrvnOzQIMjuzMALGjYIGSe8
	BAAA==
MIME-Version: 1.0
X-Received: by 10.220.100.10 with SMTP id w10mr5514859vcn.2.1412952107935;
	Fri, 10 Oct 2014 07:41:47 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 10 Oct 2014 07:41:47 -0700 (PDT)
In-Reply-To: <CAHwFrZffPfpq7=bWmFLMqLzhJ430O2MVrcoWJ-mJckoLoJi7NQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
	<CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
	<CAHwFrZffPfpq7=bWmFLMqLzhJ430O2MVrcoWJ-mJckoLoJi7NQ@mail.gmail.com>
Date: Fri, 10 Oct 2014 15:41:47 +0100
Message-ID: <CAG4opy-jhoCZCKyrONycmkxF=V9nxO162OL_p10pe=yR5-x-ew@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Len Maxwell <len@inthemail.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 21:03, Len Maxwell <len@inthemail.org> wrote:
> On Thu, Oct 9, 2014 at 2:51 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> The PC will be somewhere in Lwt, and inlining will likely make walking
>> the stack unreliable. But something like the camlp4 annotations Anil
>> mentioned would probably help.
>
> OK, that makes sense.
>
>>> Once you can recognize common patterns in thread creation, you can
>>> present them more clearly in the visualization.  The resulting data might
>>> also be amenable to flame graph visualization:
>>
>> One problem with using flamegraphs here is that threads run in
>> parallel (and may outlive their parents, though you can't see it in
>> this example image). e.g. a thread that spawns 10 parallel sleep
>> subthreads and then joins on them - how would you account for that?
>
> Point taken.  I would focus on threads that spend significant time "blocked"
> on I/O or running on-CPU.  Given some time I might try to prototype that.

I've added notifications of when it switches threads, so you can now
see which thread was active at any time (highlighted in white).

>> I updated the picture with a new trace, which includes more labels and
>> lays out "tail-recursive" calls (where a thread merges with a thread
>> it previously created) horizontally:
>>
>> http://test.roscidus.com/static/block-read-mirage-x86.png
>> ( updated trace file: http://test.roscidus.com/static/log-x86.sexp )
>>
>> Unfortunately, I overwrote the originals so I'm not sure exactly which
>> threads you're referring to. The new layout hopefully makes it clear
>> that there are two main things going on here:
>>
>> - the test unikernel's loop reading from the the block device ("Process data")
>> - the blkfront polling loop, processing responses from dom0 ("blkfront.poll")
>>
>> I suspect there are some missing arrows. e.g. 425 gets notified by
>> blkfront and then the Process data thread suddenly resolves 426 for no
>> obvious reason. Probably just a missing notification somewhere.
>
> The thread I was interested in looked similar to 425, so that may explain it.

I've gone through all the Lwt code again and improved the tracing
(moved lots of duplicated code into a helper function) and it's
looking OK now (screenshot above updated).

>> Also, I need to add an indication of when we send a request on an
>> event channel. Here, we only see the replies.
>
> Reviewing the log with the viewer has helped me get a better idea of how
> things fit together at runtime.  It will be interesting to see more
> data around the
> interactions with Xen.

Yes, the startup process is interesting too, seeing all the xenstore
interactions. I've got it to show the exceptions for failed threads
now, so you can see it getting Xs_protocol.Eagain a few times (is that
supposed to happen?).

Thanks for the patch to stop labels going off the left edge too!


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 10 14:41:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 10 Oct 2014 14:41: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 1XcbOB-00014o-Vq; Fri, 10 Oct 2014 14:41:51 +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 1XcbOA-00014d-ST
	for mirageos-devel@lists.xenproject.org; Fri, 10 Oct 2014 14:41:50 +0000
Received: from [193.109.254.147:11641] by server-4.bemta-14.messagelabs.com id
	D7/A1-01677-E20F7345; Fri, 10 Oct 2014 14:41:50 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1412952108!12032844!1
X-Originating-IP: [209.85.220.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8126 invoked from network); 10 Oct 2014 14:41:49 -0000
Received: from mail-vc0-f182.google.com (HELO mail-vc0-f182.google.com)
	(209.85.220.182)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Oct 2014 14:41:49 -0000
Received: by mail-vc0-f182.google.com with SMTP id la4so2769612vcb.13
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 10 Oct 2014 07:41:48 -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=JHpSNpaDL1ee3o6YzaR2eqW0NdL3lA/3C9Rt9SSCoa0=;
	b=kp+iOoKUxB5bF+TV4Lh9D+NfDdQdLikdIvSfqTKmAWjwnhF8KFgZTYd56SOOcnn+Gr
	5RAecpXEFke9OyQpEw+8w3mPCXfCWdqM4TgXXbqKi4MtG2BHCKiK+mtzserD/USVvsJs
	ypbzT5V38bOI7NADU7m/7jBgifCnY/iauFEtgP/uuj+7O3tEJPWKSTX/6z7IWEKGAXSm
	qiOf/T1bfN9VOuMrlw7amUqSMft0BhDVfa1JTDU669wOAkBS/x54gaBMtTtBm+LWJXFD
	1aZvxD5dHjN0wX8HALzbZ7Ikze4NWs+vo/3/0w6R8yHL6XrvnOzQIMjuzMALGjYIGSe8
	BAAA==
MIME-Version: 1.0
X-Received: by 10.220.100.10 with SMTP id w10mr5514859vcn.2.1412952107935;
	Fri, 10 Oct 2014 07:41:47 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 10 Oct 2014 07:41:47 -0700 (PDT)
In-Reply-To: <CAHwFrZffPfpq7=bWmFLMqLzhJ430O2MVrcoWJ-mJckoLoJi7NQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
	<CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
	<CAHwFrZffPfpq7=bWmFLMqLzhJ430O2MVrcoWJ-mJckoLoJi7NQ@mail.gmail.com>
Date: Fri, 10 Oct 2014 15:41:47 +0100
Message-ID: <CAG4opy-jhoCZCKyrONycmkxF=V9nxO162OL_p10pe=yR5-x-ew@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Len Maxwell <len@inthemail.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 21:03, Len Maxwell <len@inthemail.org> wrote:
> On Thu, Oct 9, 2014 at 2:51 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> The PC will be somewhere in Lwt, and inlining will likely make walking
>> the stack unreliable. But something like the camlp4 annotations Anil
>> mentioned would probably help.
>
> OK, that makes sense.
>
>>> Once you can recognize common patterns in thread creation, you can
>>> present them more clearly in the visualization.  The resulting data might
>>> also be amenable to flame graph visualization:
>>
>> One problem with using flamegraphs here is that threads run in
>> parallel (and may outlive their parents, though you can't see it in
>> this example image). e.g. a thread that spawns 10 parallel sleep
>> subthreads and then joins on them - how would you account for that?
>
> Point taken.  I would focus on threads that spend significant time "blocked"
> on I/O or running on-CPU.  Given some time I might try to prototype that.

I've added notifications of when it switches threads, so you can now
see which thread was active at any time (highlighted in white).

>> I updated the picture with a new trace, which includes more labels and
>> lays out "tail-recursive" calls (where a thread merges with a thread
>> it previously created) horizontally:
>>
>> http://test.roscidus.com/static/block-read-mirage-x86.png
>> ( updated trace file: http://test.roscidus.com/static/log-x86.sexp )
>>
>> Unfortunately, I overwrote the originals so I'm not sure exactly which
>> threads you're referring to. The new layout hopefully makes it clear
>> that there are two main things going on here:
>>
>> - the test unikernel's loop reading from the the block device ("Process data")
>> - the blkfront polling loop, processing responses from dom0 ("blkfront.poll")
>>
>> I suspect there are some missing arrows. e.g. 425 gets notified by
>> blkfront and then the Process data thread suddenly resolves 426 for no
>> obvious reason. Probably just a missing notification somewhere.
>
> The thread I was interested in looked similar to 425, so that may explain it.

I've gone through all the Lwt code again and improved the tracing
(moved lots of duplicated code into a helper function) and it's
looking OK now (screenshot above updated).

>> Also, I need to add an indication of when we send a request on an
>> event channel. Here, we only see the replies.
>
> Reviewing the log with the viewer has helped me get a better idea of how
> things fit together at runtime.  It will be interesting to see more
> data around the
> interactions with Xen.

Yes, the startup process is interesting too, seeing all the xenstore
interactions. I've got it to show the exceptions for failed threads
now, so you can see it getting Xs_protocol.Eagain a few times (is that
supposed to happen?).

Thanks for the patch to stop labels going off the left edge too!


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 10 17:11:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 10 Oct 2014 17:11:34 +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 1Xcdis-0000Xj-Th; Fri, 10 Oct 2014 17:11:22 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1Xcdir-0000XR-B7
	for mirageos-devel@lists.xenproject.org; Fri, 10 Oct 2014 17:11:21 +0000
Received: from [85.158.139.211:37264] by server-12.bemta-5.messagelabs.com id
	47/1F-22251-83318345; Fri, 10 Oct 2014 17:11:20 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1412961078!13262265!1
X-Originating-IP: [209.85.192.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23100 invoked from network); 10 Oct 2014 17:11:19 -0000
Received: from mail-pd0-f170.google.com (HELO mail-pd0-f170.google.com)
	(209.85.192.170)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Oct 2014 17:11:19 -0000
Received: by mail-pd0-f170.google.com with SMTP id p10so2025134pdj.29
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 10 Oct 2014 10:11:18 -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=lNprtwIgLWOWH4WBpGrpwIyntYk+VsM+Q04r2gERob8=;
	b=T26vupGDs31AOfXWEnpS8k1mfK9E4e5/eqxBDtKv0fnT2Qd3XjDqB2Fk9ZCk5dd+Uo
	gIvb7eCYe9FlvOvQxtZ/IxMMr+EP4HnU05RsEUKT6OHAxOgtoKBxN1DJT6iGMxIE3htH
	OWzrEPIBiMjEvbegpDTSHIGsHMebyYReIBnU6oXmwyBUp3aw40b6HyiORFPnnekRP1Ww
	iFGVXeV7fBRaBKOOqKG0AH1pJDBp2j739UITMJ4XJH+PAEg1pqLQmu+uR7ZdSnhMh/4m
	pNZGqRVAfidMOLeEksoWdQ+oxvl3puznlTmgwz/4o3j4lyI9XybIZlBhqdfO6fSOCvUn
	r25A==
X-Received: by 10.70.12.65 with SMTP id w1mr6700574pdb.3.1412961077969;
	Fri, 10 Oct 2014 10:11:17 -0700 (PDT)
Received: from [192.168.169.22] ([122.166.152.101])
	by mx.google.com with ESMTPSA id td4sm4098887pab.19.2014.10.10.10.11.14
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 10 Oct 2014 10:11:17 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy-jhoCZCKyrONycmkxF=V9nxO162OL_p10pe=yR5-x-ew@mail.gmail.com>
Date: Fri, 10 Oct 2014 22:41:10 +0530
Message-Id: <99AA53D0-BC79-46C0-932A-631B9B16D3CB@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
	<CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
	<CAHwFrZffPfpq7=bWmFLMqLzhJ430O2MVrcoWJ-mJckoLoJi7NQ@mail.gmail.com>
	<CAG4opy-jhoCZCKyrONycmkxF=V9nxO162OL_p10pe=yR5-x-ew@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: Len Maxwell <len@inthemail.org>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

> http://test.roscidus.com/static/block-read-mirage-x86.png
> I've gone through all the Lwt code again and improved the tracing
> (moved lots of duplicated code into a helper function) and it's
> looking OK now (screenshot above updated).

That looks pretty nice! Not sure white is the best color though with a gray background though :-)

Any idea why 1009 doesn't run at all (so why it is alive so long?) Also I don't fully understand the control flow there: blkfront.poll creates 4 threads to handle every request, and then the 4 threads are seems sequentially ordered. 

>>> Also, I need to add an indication of when we send a request on an
>>> event channel. Here, we only see the replies.
>> 
>> Reviewing the log with the viewer has helped me get a better idea of how
>> things fit together at runtime.  It will be interesting to see more
>> data around the
>> interactions with Xen.
> 
> Yes, the startup process is interesting too, seeing all the xenstore
> interactions. I've got it to show the exceptions for failed threads
> now, so you can see it getting Xs_protocol.Eagain a few times (is that
> supposed to happen?).

yea, means that there are some conflicts when transactions are committed. Are you using the OCaml or C version? The C version has *a lot* of conflicts usually (very dumb conflict resolution)

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 Fri Oct 10 17:11:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 10 Oct 2014 17:11:34 +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 1Xcdis-0000Xj-Th; Fri, 10 Oct 2014 17:11:22 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1Xcdir-0000XR-B7
	for mirageos-devel@lists.xenproject.org; Fri, 10 Oct 2014 17:11:21 +0000
Received: from [85.158.139.211:37264] by server-12.bemta-5.messagelabs.com id
	47/1F-22251-83318345; Fri, 10 Oct 2014 17:11:20 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1412961078!13262265!1
X-Originating-IP: [209.85.192.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23100 invoked from network); 10 Oct 2014 17:11:19 -0000
Received: from mail-pd0-f170.google.com (HELO mail-pd0-f170.google.com)
	(209.85.192.170)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	10 Oct 2014 17:11:19 -0000
Received: by mail-pd0-f170.google.com with SMTP id p10so2025134pdj.29
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 10 Oct 2014 10:11:18 -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=lNprtwIgLWOWH4WBpGrpwIyntYk+VsM+Q04r2gERob8=;
	b=T26vupGDs31AOfXWEnpS8k1mfK9E4e5/eqxBDtKv0fnT2Qd3XjDqB2Fk9ZCk5dd+Uo
	gIvb7eCYe9FlvOvQxtZ/IxMMr+EP4HnU05RsEUKT6OHAxOgtoKBxN1DJT6iGMxIE3htH
	OWzrEPIBiMjEvbegpDTSHIGsHMebyYReIBnU6oXmwyBUp3aw40b6HyiORFPnnekRP1Ww
	iFGVXeV7fBRaBKOOqKG0AH1pJDBp2j739UITMJ4XJH+PAEg1pqLQmu+uR7ZdSnhMh/4m
	pNZGqRVAfidMOLeEksoWdQ+oxvl3puznlTmgwz/4o3j4lyI9XybIZlBhqdfO6fSOCvUn
	r25A==
X-Received: by 10.70.12.65 with SMTP id w1mr6700574pdb.3.1412961077969;
	Fri, 10 Oct 2014 10:11:17 -0700 (PDT)
Received: from [192.168.169.22] ([122.166.152.101])
	by mx.google.com with ESMTPSA id td4sm4098887pab.19.2014.10.10.10.11.14
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 10 Oct 2014 10:11:17 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy-jhoCZCKyrONycmkxF=V9nxO162OL_p10pe=yR5-x-ew@mail.gmail.com>
Date: Fri, 10 Oct 2014 22:41:10 +0530
Message-Id: <99AA53D0-BC79-46C0-932A-631B9B16D3CB@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAHwFrZfwkJnS+ssgHR_bgX0qOU_H7KJddy857tggTqTjgZaG=g@mail.gmail.com>
	<CAG4opy8ra4daDn9Er1dteJ3r_VBCQJaLFoWUqsGBX9n9bePfyQ@mail.gmail.com>
	<CAHwFrZffPfpq7=bWmFLMqLzhJ430O2MVrcoWJ-mJckoLoJi7NQ@mail.gmail.com>
	<CAG4opy-jhoCZCKyrONycmkxF=V9nxO162OL_p10pe=yR5-x-ew@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: Len Maxwell <len@inthemail.org>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

> http://test.roscidus.com/static/block-read-mirage-x86.png
> I've gone through all the Lwt code again and improved the tracing
> (moved lots of duplicated code into a helper function) and it's
> looking OK now (screenshot above updated).

That looks pretty nice! Not sure white is the best color though with a gray background though :-)

Any idea why 1009 doesn't run at all (so why it is alive so long?) Also I don't fully understand the control flow there: blkfront.poll creates 4 threads to handle every request, and then the 4 threads are seems sequentially ordered. 

>>> Also, I need to add an indication of when we send a request on an
>>> event channel. Here, we only see the replies.
>> 
>> Reviewing the log with the viewer has helped me get a better idea of how
>> things fit together at runtime.  It will be interesting to see more
>> data around the
>> interactions with Xen.
> 
> Yes, the startup process is interesting too, seeing all the xenstore
> interactions. I've got it to show the exceptions for failed threads
> now, so you can see it getting Xs_protocol.Eagain a few times (is that
> supposed to happen?).

yea, means that there are some conflicts when transactions are committed. Are you using the OCaml or C version? The C version has *a lot* of conflicts usually (very dumb conflict resolution)

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 Oct 13 17:49:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 13 Oct 2014 17:49: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 1Xdjjs-0004nV-Vl; Mon, 13 Oct 2014 17:48:56 +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 1Xdjjr-0004nQ-Br
	for mirageos-devel@lists.xenproject.org; Mon, 13 Oct 2014 17:48:55 +0000
Received: from [85.158.137.68:45671] by server-16.bemta-3.messagelabs.com id
	5E/E5-01431-6801C345; Mon, 13 Oct 2014 17:48:54 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-31.messagelabs.com!1413222533!13173094!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15301 invoked from network); 13 Oct 2014 17:48:53 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 13 Oct 2014 17:48:53 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc17-cmbg14-2-0-cust360.5-4.cable.virginm.net
	([86.6.155.105]:51907 helo=[192.168.0.25])
	by ppsw-52.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:AES128-SHA:128)
	id 1Xdjjp-0000s2-Dx (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Mon, 13 Oct 2014 18:48:53 +0100
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <952661BC-73AD-4924-9D12-9B5CDFBE946D@cam.ac.uk>
Date: Mon, 13 Oct 2014 18:48:55 +0100
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
Subject: [MirageOS-devel] Mirage fortnightly call - Tuesday 14th at 4pm BST
	(== GMT + 1)
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 folks, 

The next Mirage call will take place tomorrow afternoon (Tuesday) at 4pm BST.
As always, calls are open to all!  If you have anything you'd like to bring up, please add it to the agenda.

Agenda: https://github.com/mirage/mirage-www/wiki/Call-Agenda

GoToMeeting details are below but if there are any hiccups/delays then I'll switch to a public Google Hangout.  If that happens, I'll post the link here and also in the IRC channel (#mirage on freenode).

Join us at 4pm BST tomorrow!

1.  Please join my meeting.
https://www1.gotomeeting.com/join/591890401

Dial in numbers (ask if you need a specific country):
United Kingdom: +44 (0) 20 3657 6778
United States: +1 (213) 493-0014
Access Code: 591-890-401
Audio PIN: Shown after joining the meeting


Best wishes,
Amir
_______________________________________________
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 Oct 13 17:49:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 13 Oct 2014 17:49: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 1Xdjjs-0004nV-Vl; Mon, 13 Oct 2014 17:48:56 +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 1Xdjjr-0004nQ-Br
	for mirageos-devel@lists.xenproject.org; Mon, 13 Oct 2014 17:48:55 +0000
Received: from [85.158.137.68:45671] by server-16.bemta-3.messagelabs.com id
	5E/E5-01431-6801C345; Mon, 13 Oct 2014 17:48:54 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-31.messagelabs.com!1413222533!13173094!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15301 invoked from network); 13 Oct 2014 17:48:53 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 13 Oct 2014 17:48:53 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc17-cmbg14-2-0-cust360.5-4.cable.virginm.net
	([86.6.155.105]:51907 helo=[192.168.0.25])
	by ppsw-52.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:AES128-SHA:128)
	id 1Xdjjp-0000s2-Dx (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Mon, 13 Oct 2014 18:48:53 +0100
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <952661BC-73AD-4924-9D12-9B5CDFBE946D@cam.ac.uk>
Date: Mon, 13 Oct 2014 18:48:55 +0100
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
Subject: [MirageOS-devel] Mirage fortnightly call - Tuesday 14th at 4pm BST
	(== GMT + 1)
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 folks, 

The next Mirage call will take place tomorrow afternoon (Tuesday) at 4pm BST.
As always, calls are open to all!  If you have anything you'd like to bring up, please add it to the agenda.

Agenda: https://github.com/mirage/mirage-www/wiki/Call-Agenda

GoToMeeting details are below but if there are any hiccups/delays then I'll switch to a public Google Hangout.  If that happens, I'll post the link here and also in the IRC channel (#mirage on freenode).

Join us at 4pm BST tomorrow!

1.  Please join my meeting.
https://www1.gotomeeting.com/join/591890401

Dial in numbers (ask if you need a specific country):
United Kingdom: +44 (0) 20 3657 6778
United States: +1 (213) 493-0014
Access Code: 591-890-401
Audio PIN: Shown after joining the meeting


Best wishes,
Amir
_______________________________________________
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 Oct 14 11:14:18 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 11:14:18 +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 1Xe03P-0003Ab-62; Tue, 14 Oct 2014 11:14:11 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1Xe03O-0003AW-1j
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 11:14:10 +0000
Received: from [85.158.143.35:10342] by server-3.bemta-4.messagelabs.com id
	F6/A7-06192-1850D345; Tue, 14 Oct 2014 11:14:09 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1413285247!12778991!1
X-Originating-IP: [209.85.220.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13441 invoked from network); 14 Oct 2014 11:14:08 -0000
Received: from mail-vc0-f179.google.com (HELO mail-vc0-f179.google.com)
	(209.85.220.179)
	by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 11:14:08 -0000
Received: by mail-vc0-f179.google.com with SMTP id im17so7152256vcb.24
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 04:14:07 -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=qJ49qrC1CYryolsHXpIbAlKLxnjRXYc6L/jZyzMpluo=;
	b=AJEjeRqRM4TT8qMCddH4gSmr/nACk6XLJjf4Kf1EErabl+gSl5Vwxdlc2TKRuZQ5OQ
	wxgzlI1WPqCPwh33BBqoko5UNa4buer+fTZxHrnSblgEd+PQVGR++TQH1AloQepKeWbN
	EF9k4jJNsm7HDJ0JS8XeaKpL7bkoGDqtApybHEXjaDFMyHGmCFbNbFiZxJgZeivn7Fte
	5JmG9SJkunCdW00lcNz1imZ5f+2ujBwCQRzWazJn4N/vJ9MxGFwRKG9nUuWv5JTbzsab
	CiRdRhz+wLTeiRmUFP/xAXYoEWk89B5xPI0J8/fIZPSCpl40Po8PpnthiTaNRGd3WY2Y
	JjjQ==
MIME-Version: 1.0
X-Received: by 10.52.165.68 with SMTP id yw4mr3487596vdb.42.1413285247108;
	Tue, 14 Oct 2014 04:14:07 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Tue, 14 Oct 2014 04:14:07 -0700 (PDT)
In-Reply-To: <ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
Date: Tue, 14 Oct 2014 12:14:07 +0100
Message-ID: <CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 13:54, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>> I'm currently working on improving the profiling support in Mirage.
>>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>>> at call traces, but I've been thinking about how to get more useful
>>>>> data.
>>>>>
>>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>>> created and resolved, and the interactions between them. Graphing the
>>>>> results looks like this:
>>>>>
>>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>>>
>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>
>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>>
>> It's using cairo for rendering, so producing png or svg output should
>> be easy. My javascript skills aren't up to making it zoom smoothly in
>> a browser though...
>
> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
> backend, so this may be a good place to get started on a browser backend
> without the trouble of learning HTML/CSS:
>
>   http://erratique.ch/software/vg

I almost had it working with Vg, but there seemed to be no way to
measure the text, which is needed to place the labels, so I ended up
using HTML canvas directly. As it turned out, that API was a better
fit for me anyway (being more similar to Cairo's API).

You can test it here:

http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574

Scroll to zoom and drag to scroll as usual. Tested on Linux with
Firefox and Chromium; let me know if it works elsewhere.

It doesn't support touch, so won't work on tablets (also, would
probably be very slow).

> I'll send an update on Conduit soon, but Dave Scott has added sufficient
> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
> access it via Linux userspace.  In other words: you can use Chrome or Firefox
> to access the debugging port without going through TCP, which is pretty
> cool :-)

> -anil



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 14 11:14:18 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 11:14:18 +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 1Xe03P-0003Ab-62; Tue, 14 Oct 2014 11:14:11 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1Xe03O-0003AW-1j
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 11:14:10 +0000
Received: from [85.158.143.35:10342] by server-3.bemta-4.messagelabs.com id
	F6/A7-06192-1850D345; Tue, 14 Oct 2014 11:14:09 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1413285247!12778991!1
X-Originating-IP: [209.85.220.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13441 invoked from network); 14 Oct 2014 11:14:08 -0000
Received: from mail-vc0-f179.google.com (HELO mail-vc0-f179.google.com)
	(209.85.220.179)
	by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 11:14:08 -0000
Received: by mail-vc0-f179.google.com with SMTP id im17so7152256vcb.24
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 04:14:07 -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=qJ49qrC1CYryolsHXpIbAlKLxnjRXYc6L/jZyzMpluo=;
	b=AJEjeRqRM4TT8qMCddH4gSmr/nACk6XLJjf4Kf1EErabl+gSl5Vwxdlc2TKRuZQ5OQ
	wxgzlI1WPqCPwh33BBqoko5UNa4buer+fTZxHrnSblgEd+PQVGR++TQH1AloQepKeWbN
	EF9k4jJNsm7HDJ0JS8XeaKpL7bkoGDqtApybHEXjaDFMyHGmCFbNbFiZxJgZeivn7Fte
	5JmG9SJkunCdW00lcNz1imZ5f+2ujBwCQRzWazJn4N/vJ9MxGFwRKG9nUuWv5JTbzsab
	CiRdRhz+wLTeiRmUFP/xAXYoEWk89B5xPI0J8/fIZPSCpl40Po8PpnthiTaNRGd3WY2Y
	JjjQ==
MIME-Version: 1.0
X-Received: by 10.52.165.68 with SMTP id yw4mr3487596vdb.42.1413285247108;
	Tue, 14 Oct 2014 04:14:07 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Tue, 14 Oct 2014 04:14:07 -0700 (PDT)
In-Reply-To: <ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
Date: Tue, 14 Oct 2014 12:14:07 +0100
Message-ID: <CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 9 October 2014 13:54, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>> I'm currently working on improving the profiling support in Mirage.
>>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>>> at call traces, but I've been thinking about how to get more useful
>>>>> data.
>>>>>
>>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>>> created and resolved, and the interactions between them. Graphing the
>>>>> results looks like this:
>>>>>
>>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>>>
>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>
>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>>
>> It's using cairo for rendering, so producing png or svg output should
>> be easy. My javascript skills aren't up to making it zoom smoothly in
>> a browser though...
>
> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
> backend, so this may be a good place to get started on a browser backend
> without the trouble of learning HTML/CSS:
>
>   http://erratique.ch/software/vg

I almost had it working with Vg, but there seemed to be no way to
measure the text, which is needed to place the labels, so I ended up
using HTML canvas directly. As it turned out, that API was a better
fit for me anyway (being more similar to Cairo's API).

You can test it here:

http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574

Scroll to zoom and drag to scroll as usual. Tested on Linux with
Firefox and Chromium; let me know if it works elsewhere.

It doesn't support touch, so won't work on tablets (also, would
probably be very slow).

> I'll send an update on Conduit soon, but Dave Scott has added sufficient
> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
> access it via Linux userspace.  In other words: you can use Chrome or Firefox
> to access the debugging port without going through TCP, which is pretty
> cool :-)

> -anil



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 14 11:56:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 11:56: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 1Xe0iE-0005Fd-IR; Tue, 14 Oct 2014 11:56:22 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <smack815@gmail.com>) id 1Xe0iD-0005FY-Cw
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 11:56:21 +0000
Received: from [85.158.137.68:24998] by server-1.bemta-3.messagelabs.com id
	9B/31-30185-46F0D345; Tue, 14 Oct 2014 11:56:20 +0000
X-Env-Sender: smack815@gmail.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1413287779!13447378!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28389 invoked from network); 14 Oct 2014 11:56:20 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-13.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 11:56:20 -0000
Received: by mail-wi0-f174.google.com with SMTP id h11so6452764wiw.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 04:56:19 -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=2ra7M/zbAmNYjU2P4HIFmQl5Fw8w/22dzjSD/c7pdSE=;
	b=B3BMQ5ziBOZVVkKGGYJAhbtVEEYM5FJmMvklU25xTNj/Ftypb5KAw19nl7no6KGQn3
	tnZ6wnOvhCmv/O/pHYGbuYKuBagpjAdX4mRDhvA60rDy4vV/SP9Wzjfr5oZhMTBpWpxy
	2Got/zb0nWtwjUkVnYVAUmGTohIxwuA9uI7JvHA2hCgyX5KK69BTKv3wVXgZoOaMblH8
	avm4Hrk8WM/lvDlZrQw+h1uBojLyB8ad7BXf/4QPu2r9tN3/nUw+fDEFsJFtNvSN/PIU
	k5mfyiPfDlZ/Vn+CJUOb6j4cQHvMh6hqMJPqA3F9nM04M54VK+mDqLTiIxdwTEQ3rjTi
	qwRw==
MIME-Version: 1.0
X-Received: by 10.180.100.106 with SMTP id ex10mr4962996wib.63.1413287779518; 
	Tue, 14 Oct 2014 04:56:19 -0700 (PDT)
Received: by 10.180.149.205 with HTTP; Tue, 14 Oct 2014 04:56:19 -0700 (PDT)
In-Reply-To: <CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
Date: Tue, 14 Oct 2014 08:56:19 -0300
Message-ID: <CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
From: Stephen Mack <smack815@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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="===============2036978180619376394=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2036978180619376394==
Content-Type: multipart/alternative; boundary=f46d043bdac0104c52050560b471

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

On Tue, Oct 14, 2014 at 8:14 AM, Thomas Leonard <talex5@gmail.com> wrote:

> You can test it here:
>
>
> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>
> Scroll to zoom and drag to scroll as usual. Tested on Linux with
> Firefox and Chromium; let me know if it works elsewhere.
>
> It doesn't support touch, so won't work on tablets (also, would
> probably be very slow).
>

Very nice however on:

   - Windows 7/Chrome 37
   - Windows 7/Firefox 29
   - Windows 7/Internet Explorer 11

 I don't get scroll bars however click and drag does move the content.

--Stephen

--f46d043bdac0104c52050560b471
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 Tue, Oct 14, 2014 at 8:14 AM, Thomas Leonard <span dir=3D"ltr">&lt;<=
a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">You can test it here:<br=
>
<br>
<a href=3D"http://test.roscidus.com/static/html_viewer.html?t_min=3D8249.53=
0963&amp;t_max=3D8249.534574" target=3D"_blank">http://test.roscidus.com/st=
atic/html_viewer.html?t_min=3D8249.530963&amp;t_max=3D8249.534574</a><br>
<br>
Scroll to zoom and drag to scroll as usual. Tested on Linux with<br>
Firefox and Chromium; let me know if it works elsewhere.<br>
<br>
It doesn&#39;t support touch, so won&#39;t work on tablets (also, would<br>
probably be very slow).<br></blockquote><div><br></div><div>Very nice howev=
er on:</div><div><ul><li>Windows 7/Chrome 37</li><li>Windows 7/Firefox 29</=
li><li>Windows 7/Internet Explorer 11</li></ul>=C2=A0I don&#39;t get scroll=
 bars however click and drag does move the content.</div><div><br></div><di=
v>--Stephen=C2=A0<br></div></div></div></div>

--f46d043bdac0104c52050560b471--


--===============2036978180619376394==
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

--===============2036978180619376394==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 14 11:56:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 11:56: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 1Xe0iE-0005Fd-IR; Tue, 14 Oct 2014 11:56:22 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <smack815@gmail.com>) id 1Xe0iD-0005FY-Cw
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 11:56:21 +0000
Received: from [85.158.137.68:24998] by server-1.bemta-3.messagelabs.com id
	9B/31-30185-46F0D345; Tue, 14 Oct 2014 11:56:20 +0000
X-Env-Sender: smack815@gmail.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1413287779!13447378!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28389 invoked from network); 14 Oct 2014 11:56:20 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-13.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 11:56:20 -0000
Received: by mail-wi0-f174.google.com with SMTP id h11so6452764wiw.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 04:56:19 -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=2ra7M/zbAmNYjU2P4HIFmQl5Fw8w/22dzjSD/c7pdSE=;
	b=B3BMQ5ziBOZVVkKGGYJAhbtVEEYM5FJmMvklU25xTNj/Ftypb5KAw19nl7no6KGQn3
	tnZ6wnOvhCmv/O/pHYGbuYKuBagpjAdX4mRDhvA60rDy4vV/SP9Wzjfr5oZhMTBpWpxy
	2Got/zb0nWtwjUkVnYVAUmGTohIxwuA9uI7JvHA2hCgyX5KK69BTKv3wVXgZoOaMblH8
	avm4Hrk8WM/lvDlZrQw+h1uBojLyB8ad7BXf/4QPu2r9tN3/nUw+fDEFsJFtNvSN/PIU
	k5mfyiPfDlZ/Vn+CJUOb6j4cQHvMh6hqMJPqA3F9nM04M54VK+mDqLTiIxdwTEQ3rjTi
	qwRw==
MIME-Version: 1.0
X-Received: by 10.180.100.106 with SMTP id ex10mr4962996wib.63.1413287779518; 
	Tue, 14 Oct 2014 04:56:19 -0700 (PDT)
Received: by 10.180.149.205 with HTTP; Tue, 14 Oct 2014 04:56:19 -0700 (PDT)
In-Reply-To: <CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
Date: Tue, 14 Oct 2014 08:56:19 -0300
Message-ID: <CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
From: Stephen Mack <smack815@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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="===============2036978180619376394=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2036978180619376394==
Content-Type: multipart/alternative; boundary=f46d043bdac0104c52050560b471

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

On Tue, Oct 14, 2014 at 8:14 AM, Thomas Leonard <talex5@gmail.com> wrote:

> You can test it here:
>
>
> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>
> Scroll to zoom and drag to scroll as usual. Tested on Linux with
> Firefox and Chromium; let me know if it works elsewhere.
>
> It doesn't support touch, so won't work on tablets (also, would
> probably be very slow).
>

Very nice however on:

   - Windows 7/Chrome 37
   - Windows 7/Firefox 29
   - Windows 7/Internet Explorer 11

 I don't get scroll bars however click and drag does move the content.

--Stephen

--f46d043bdac0104c52050560b471
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 Tue, Oct 14, 2014 at 8:14 AM, Thomas Leonard <span dir=3D"ltr">&lt;<=
a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">You can test it here:<br=
>
<br>
<a href=3D"http://test.roscidus.com/static/html_viewer.html?t_min=3D8249.53=
0963&amp;t_max=3D8249.534574" target=3D"_blank">http://test.roscidus.com/st=
atic/html_viewer.html?t_min=3D8249.530963&amp;t_max=3D8249.534574</a><br>
<br>
Scroll to zoom and drag to scroll as usual. Tested on Linux with<br>
Firefox and Chromium; let me know if it works elsewhere.<br>
<br>
It doesn&#39;t support touch, so won&#39;t work on tablets (also, would<br>
probably be very slow).<br></blockquote><div><br></div><div>Very nice howev=
er on:</div><div><ul><li>Windows 7/Chrome 37</li><li>Windows 7/Firefox 29</=
li><li>Windows 7/Internet Explorer 11</li></ul>=C2=A0I don&#39;t get scroll=
 bars however click and drag does move the content.</div><div><br></div><di=
v>--Stephen=C2=A0<br></div></div></div></div>

--f46d043bdac0104c52050560b471--


--===============2036978180619376394==
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

--===============2036978180619376394==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 14 12:10:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 12:10: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 1Xe0w2-0005jw-RS; Tue, 14 Oct 2014 12:10:38 +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 1Xe0vz-0005jY-9I
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 12:10:35 +0000
Received: from [85.158.137.68:51493] by server-8.bemta-3.messagelabs.com id
	AA/84-31195-AB21D345; Tue, 14 Oct 2014 12:10:34 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-16.tower-31.messagelabs.com!1413288633!13407515!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21801 invoked from network); 14 Oct 2014 12:10:33 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 12:10:33 -0000
Received: by mail-wi0-f178.google.com with SMTP id h11so6565078wiw.11
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 05:10:33 -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=gONZdhZqvEQdmR2PbgFv2UBGaZrtUQW3hP0bHIIJjI4=;
	b=tm4p5Kh7qph8Pg8Npql8aNiHB4AKgTiZa1jKjPmbuhBH+jE4rFFElihYEllB3C4g0o
	P4MlqLdsN8CyUfM3ihZtgwQtD8aaVz0uHihheDwR+JmA5ws+fpRsvS6iqu9K0RCBPMbg
	xa5BwedhZ2pF3pV6pOoQ850jSzCiXlxnBr5sIqzeYJ21aiRYQsTj1D5rz7Tq1NXIwR2M
	OTanAlHgCq/zWQAqbDmUhshF2jM0iGhpNleLQ5O8ey0WQUyqjJgHrf5Sy9RZ+h8vxzNP
	J+Jj7nIvDhh5Yc3h4+X8acQEUaMKx+BPed19MNcSTAWsu1GueY/smx5yZ2xIkNeg7Mkb
	os/w==
X-Received: by 10.180.188.66 with SMTP id fy2mr4877866wic.27.1413288633134;
	Tue, 14 Oct 2014 05:10:33 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id
	wk5sm20006822wjb.12.2014.10.14.05.10.31 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Tue, 14 Oct 2014 05:10:32 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
Date: Tue, 14 Oct 2014 13:10:31 +0100
Message-Id: <019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

very very interesting, thanks!

We have a lot of small anonymous threads which immediately die after starting: I guess they are related to constant Lwt.return threads ... 

Grepping "return ()" has a few hits in mirage-platform/xen.  Using "return_unit" instead should improve these allocations. Not sure how to propagate this constant threads more automatically/widely though.

Thomas


On 14 Oct 2014, at 12:14, Thomas Leonard <talex5@gmail.com> wrote:

> On 9 October 2014 13:54, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:
>> 
>>> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>>> I'm currently working on improving the profiling support in Mirage.
>>>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>>>> at call traces, but I've been thinking about how to get more useful
>>>>>> data.
>>>>>> 
>>>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>>>> created and resolved, and the interactions between them. Graphing the
>>>>>> results looks like this:
>>>>>> 
>>>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>>>> 
>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>> 
>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>>> 
>>> It's using cairo for rendering, so producing png or svg output should
>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>> a browser though...
>> 
>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>> backend, so this may be a good place to get started on a browser backend
>> without the trouble of learning HTML/CSS:
>> 
>>  http://erratique.ch/software/vg
> 
> I almost had it working with Vg, but there seemed to be no way to
> measure the text, which is needed to place the labels, so I ended up
> using HTML canvas directly. As it turned out, that API was a better
> fit for me anyway (being more similar to Cairo's API).
> 
> You can test it here:
> 
> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
> 
> Scroll to zoom and drag to scroll as usual. Tested on Linux with
> Firefox and Chromium; let me know if it works elsewhere.
> 
> It doesn't support touch, so won't work on tablets (also, would
> probably be very slow).
> 
>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>> to access the debugging port without going through TCP, which is pretty
>> cool :-)
> 
>> -anil
> 
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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 Oct 14 12:10:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 12:10: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 1Xe0w2-0005jw-RS; Tue, 14 Oct 2014 12:10:38 +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 1Xe0vz-0005jY-9I
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 12:10:35 +0000
Received: from [85.158.137.68:51493] by server-8.bemta-3.messagelabs.com id
	AA/84-31195-AB21D345; Tue, 14 Oct 2014 12:10:34 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-16.tower-31.messagelabs.com!1413288633!13407515!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21801 invoked from network); 14 Oct 2014 12:10:33 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 12:10:33 -0000
Received: by mail-wi0-f178.google.com with SMTP id h11so6565078wiw.11
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 05:10:33 -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=gONZdhZqvEQdmR2PbgFv2UBGaZrtUQW3hP0bHIIJjI4=;
	b=tm4p5Kh7qph8Pg8Npql8aNiHB4AKgTiZa1jKjPmbuhBH+jE4rFFElihYEllB3C4g0o
	P4MlqLdsN8CyUfM3ihZtgwQtD8aaVz0uHihheDwR+JmA5ws+fpRsvS6iqu9K0RCBPMbg
	xa5BwedhZ2pF3pV6pOoQ850jSzCiXlxnBr5sIqzeYJ21aiRYQsTj1D5rz7Tq1NXIwR2M
	OTanAlHgCq/zWQAqbDmUhshF2jM0iGhpNleLQ5O8ey0WQUyqjJgHrf5Sy9RZ+h8vxzNP
	J+Jj7nIvDhh5Yc3h4+X8acQEUaMKx+BPed19MNcSTAWsu1GueY/smx5yZ2xIkNeg7Mkb
	os/w==
X-Received: by 10.180.188.66 with SMTP id fy2mr4877866wic.27.1413288633134;
	Tue, 14 Oct 2014 05:10:33 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id
	wk5sm20006822wjb.12.2014.10.14.05.10.31 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Tue, 14 Oct 2014 05:10:32 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
Date: Tue, 14 Oct 2014 13:10:31 +0100
Message-Id: <019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

very very interesting, thanks!

We have a lot of small anonymous threads which immediately die after starting: I guess they are related to constant Lwt.return threads ... 

Grepping "return ()" has a few hits in mirage-platform/xen.  Using "return_unit" instead should improve these allocations. Not sure how to propagate this constant threads more automatically/widely though.

Thomas


On 14 Oct 2014, at 12:14, Thomas Leonard <talex5@gmail.com> wrote:

> On 9 October 2014 13:54, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:
>> 
>>> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>>> I'm currently working on improving the profiling support in Mirage.
>>>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>>>> at call traces, but I've been thinking about how to get more useful
>>>>>> data.
>>>>>> 
>>>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>>>> created and resolved, and the interactions between them. Graphing the
>>>>>> results looks like this:
>>>>>> 
>>>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>>>> 
>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>> 
>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>>> 
>>> It's using cairo for rendering, so producing png or svg output should
>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>> a browser though...
>> 
>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>> backend, so this may be a good place to get started on a browser backend
>> without the trouble of learning HTML/CSS:
>> 
>>  http://erratique.ch/software/vg
> 
> I almost had it working with Vg, but there seemed to be no way to
> measure the text, which is needed to place the labels, so I ended up
> using HTML canvas directly. As it turned out, that API was a better
> fit for me anyway (being more similar to Cairo's API).
> 
> You can test it here:
> 
> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
> 
> Scroll to zoom and drag to scroll as usual. Tested on Linux with
> Firefox and Chromium; let me know if it works elsewhere.
> 
> It doesn't support touch, so won't work on tablets (also, would
> probably be very slow).
> 
>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>> to access the debugging port without going through TCP, which is pretty
>> cool :-)
> 
>> -anil
> 
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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 Oct 14 14:49:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 14:49: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 1Xe3PZ-0006d6-2h; Tue, 14 Oct 2014 14:49:17 +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 1Xe3PX-0006d1-DR
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 14:49:15 +0000
Received: from [193.109.254.147:48683] by server-13.bemta-14.messagelabs.com
	id D1/CB-19311-AE73D345; Tue, 14 Oct 2014 14:49:14 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1413298152!12690524!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1385 invoked from network); 14 Oct 2014 14:49:13 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 14:49:13 -0000
Received: by mail-vc0-f173.google.com with SMTP id ij19so7643562vcb.32
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 07:49:10 -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=+hOvpZyFsH3musMCQqN5SI6pyo1/TbFxndaw7QZpoDo=;
	b=mluOv5COzdpfEtNeNS8YtZ/xPqjcM/4sZ1S2oFwwZGlEUfNF92Y2Ns2IVBHsU1RE2M
	Sy3L1cie3hOLrtqywXManACES+SCglzdzyKy5JtfmgEeHqE60pyR1IGouVmjhant8Ttx
	6VXSMyAe8dePGjzjyJ8utpVV+elEMYoOPaqfq4DstwHpK5hNcCnGdbxKAnDH6GUPqa9W
	z9SjDyjDEDFUUdlzSYLx+J1NdtbUx1aIQPveyu1x7Hpmqqx2GPdoUYhIc/FVDvD2ZqfF
	2yUR461vbzjfJ9qfr7GNt6KvSHrzN9l49+s/1lTr//Ro3WS25g5qPB7msLZ4lpC56EvU
	R11g==
MIME-Version: 1.0
X-Received: by 10.221.63.74 with SMTP id xd10mr5668737vcb.26.1413298150268;
	Tue, 14 Oct 2014 07:49:10 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Tue, 14 Oct 2014 07:49:10 -0700 (PDT)
In-Reply-To: <019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
Date: Tue, 14 Oct 2014 15:49:10 +0100
Message-ID: <CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 October 2014 13:10, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> very very interesting, thanks!
>
> We have a lot of small anonymous threads which immediately die after starting: I guess they are related to constant Lwt.return threads ...

Actually, the tracing code in Lwt.return uses the parent's thread ID,
so they don't appear as separate threads (though perhaps they should).

However, each use of >>= does create a new thread.

> Grepping "return ()" has a few hits in mirage-platform/xen.  Using "return_unit" instead should improve these allocations. Not sure how to propagate this constant threads more automatically/widely though.

I haven't seen this cause any problems yet, but using return_unit
might lose useful information when tracing, because if e.g. two
threads return_unit and each has another thread waiting for it, it
will look like they were both waiting for the same thread.


> Thomas
>
>
> On 14 Oct 2014, at 12:14, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 9 October 2014 13:54, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> On 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:
>>>
>>>> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>>>> I'm currently working on improving the profiling support in Mirage.
>>>>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>>>>> at call traces, but I've been thinking about how to get more useful
>>>>>>> data.
>>>>>>>
>>>>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>>>>> created and resolved, and the interactions between them. Graphing the
>>>>>>> results looks like this:
>>>>>>>
>>>>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>>>>>
>>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>>>
>>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>>>>
>>>> It's using cairo for rendering, so producing png or svg output should
>>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>>> a browser though...
>>>
>>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>>> backend, so this may be a good place to get started on a browser backend
>>> without the trouble of learning HTML/CSS:
>>>
>>>  http://erratique.ch/software/vg
>>
>> I almost had it working with Vg, but there seemed to be no way to
>> measure the text, which is needed to place the labels, so I ended up
>> using HTML canvas directly. As it turned out, that API was a better
>> fit for me anyway (being more similar to Cairo's API).
>>
>> You can test it here:
>>
>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>
>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>> Firefox and Chromium; let me know if it works elsewhere.
>>
>> It doesn't support touch, so won't work on tablets (also, would
>> probably be very slow).
>>
>>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>>> to access the debugging port without going through TCP, which is pretty
>>> cool :-)
>>
>>> -anil
>>
>>
>>
>> --
>> Dr Thomas Leonard        http://0install.net/
>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 14 14:49:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 14:49: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 1Xe3PZ-0006d6-2h; Tue, 14 Oct 2014 14:49:17 +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 1Xe3PX-0006d1-DR
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 14:49:15 +0000
Received: from [193.109.254.147:48683] by server-13.bemta-14.messagelabs.com
	id D1/CB-19311-AE73D345; Tue, 14 Oct 2014 14:49:14 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1413298152!12690524!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1385 invoked from network); 14 Oct 2014 14:49:13 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 14:49:13 -0000
Received: by mail-vc0-f173.google.com with SMTP id ij19so7643562vcb.32
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 07:49:10 -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=+hOvpZyFsH3musMCQqN5SI6pyo1/TbFxndaw7QZpoDo=;
	b=mluOv5COzdpfEtNeNS8YtZ/xPqjcM/4sZ1S2oFwwZGlEUfNF92Y2Ns2IVBHsU1RE2M
	Sy3L1cie3hOLrtqywXManACES+SCglzdzyKy5JtfmgEeHqE60pyR1IGouVmjhant8Ttx
	6VXSMyAe8dePGjzjyJ8utpVV+elEMYoOPaqfq4DstwHpK5hNcCnGdbxKAnDH6GUPqa9W
	z9SjDyjDEDFUUdlzSYLx+J1NdtbUx1aIQPveyu1x7Hpmqqx2GPdoUYhIc/FVDvD2ZqfF
	2yUR461vbzjfJ9qfr7GNt6KvSHrzN9l49+s/1lTr//Ro3WS25g5qPB7msLZ4lpC56EvU
	R11g==
MIME-Version: 1.0
X-Received: by 10.221.63.74 with SMTP id xd10mr5668737vcb.26.1413298150268;
	Tue, 14 Oct 2014 07:49:10 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Tue, 14 Oct 2014 07:49:10 -0700 (PDT)
In-Reply-To: <019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
Date: Tue, 14 Oct 2014 15:49:10 +0100
Message-ID: <CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 October 2014 13:10, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> very very interesting, thanks!
>
> We have a lot of small anonymous threads which immediately die after starting: I guess they are related to constant Lwt.return threads ...

Actually, the tracing code in Lwt.return uses the parent's thread ID,
so they don't appear as separate threads (though perhaps they should).

However, each use of >>= does create a new thread.

> Grepping "return ()" has a few hits in mirage-platform/xen.  Using "return_unit" instead should improve these allocations. Not sure how to propagate this constant threads more automatically/widely though.

I haven't seen this cause any problems yet, but using return_unit
might lose useful information when tracing, because if e.g. two
threads return_unit and each has another thread waiting for it, it
will look like they were both waiting for the same thread.


> Thomas
>
>
> On 14 Oct 2014, at 12:14, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 9 October 2014 13:54, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> On 9 Oct 2014, at 12:25, Thomas Leonard <talex5@gmail.com> wrote:
>>>
>>>> On 9 October 2014 11:25, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>>>> I'm currently working on improving the profiling support in Mirage.
>>>>>>> Previously [1], I was just graphing stats in libreoffice and looking
>>>>>>> at call traces, but I've been thinking about how to get more useful
>>>>>>> data.
>>>>>>>
>>>>>>> Tracing individual functions was too fine-grained, I think, and failed
>>>>>>> to follow Lwt threads, so I intrumented Lwt to record when threads are
>>>>>>> created and resolved, and the interactions between them. Graphing the
>>>>>>> results looks like this:
>>>>>>>
>>>>>>> http://test.roscidus.com/static/block-read-mirage-x86.png
>>>>>>>
>>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>>>
>>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>>>>
>>>> It's using cairo for rendering, so producing png or svg output should
>>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>>> a browser though...
>>>
>>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>>> backend, so this may be a good place to get started on a browser backend
>>> without the trouble of learning HTML/CSS:
>>>
>>>  http://erratique.ch/software/vg
>>
>> I almost had it working with Vg, but there seemed to be no way to
>> measure the text, which is needed to place the labels, so I ended up
>> using HTML canvas directly. As it turned out, that API was a better
>> fit for me anyway (being more similar to Cairo's API).
>>
>> You can test it here:
>>
>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>
>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>> Firefox and Chromium; let me know if it works elsewhere.
>>
>> It doesn't support touch, so won't work on tablets (also, would
>> probably be very slow).
>>
>>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>>> to access the debugging port without going through TCP, which is pretty
>>> cool :-)
>>
>>> -anil
>>
>>
>>
>> --
>> Dr Thomas Leonard        http://0install.net/
>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 14 15:14:54 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 15:14: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 1Xe3oL-0007hg-5I; Tue, 14 Oct 2014 15:14:53 +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 1Xe3oJ-0007hH-TS; Tue, 14 Oct 2014 15:14:52 +0000
Received: from [85.158.139.211:7248] by server-11.bemta-5.messagelabs.com id
	8D/EF-11011-9ED3D345; Tue, 14 Oct 2014 15:14:49 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1413299688!8278513!1
X-Originating-IP: [209.85.215.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4040 invoked from network); 14 Oct 2014 15:14:49 -0000
Received: from mail-la0-f48.google.com (HELO mail-la0-f48.google.com)
	(209.85.215.48)
	by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 15:14:49 -0000
Received: by mail-la0-f48.google.com with SMTP id gi9so8594584lab.21
	for <multiple recipients>; Tue, 14 Oct 2014 08:14:48 -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=jGLVh3gLCCEHqQ9+6P3LLzgGVtldPmL5xhXDBXfiBIE=;
	b=a88/HlaikE5yF54MgpbG/7VtsREzUFR4bw9CCK/6Ja47il5J/X7AcNDvUpXxEndNPR
	FIICWqIw3INN+oq8lx9hjmw/nv065dK8psPlUZ04Bh4/2YvaozUiUr11P8C+qbQ821A/
	CepyOFdHy/XrZ1HOJ8+Voioyay0v35WHurSEF5ysp4BCHno2raBVvG8HCUu9MCgSJtCB
	G7wHDt01aepLWFtNWViNfKTSgLXYgyNWJvhVkwfG5+TAgP6TSwo76upTt/m/Rhnx/9YF
	IKo5n7+ay29EeQSGfyMKYreu8t79XDSkouspCgplSxsCmi8FCkyBy0hgxVnEcmntRnRt
	NUDQ==
X-Received: by 10.112.144.228 with SMTP id sp4mr5936490lbb.58.1413299688438;
	Tue, 14 Oct 2014 08:14:48 -0700 (PDT)
Received: from [10.150.166.229] ([62.156.150.204])
	by mx.google.com with ESMTPSA id n7sm233676lae.11.2014.10.14.08.14.46
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Tue, 14 Oct 2014 08:14:47 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Tue, 14 Oct 2014 17:14:44 +0200
Message-Id: <9EEF637E-5177-42FE-BAB0-DB78C1D2568F@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	Xen API mailing list <xen-api@lists.xen.org>,
	mirageos-devel@lists.xenproject.org, Win-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Cc: Russ Pavlicek <russell.pavlicek@xenproject.org>
Subject: [MirageOS-devel] [Update] Location of next Xen Project Developer
	Summit /	User Summit
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

a quick update on the location of next year=92s Developer / User summit. As=
 I mentioned earlier, LinuxCon US will be in Seattle Aug 17-19 and Linux Pl=
umbers will be hosted from Aug 19 - 21st in Seattle. =


I provisionally booked space with the Linux Foundation for the Xen Project =
from Aug 17-19. It seems that there was enough space after all. Which is go=
od, because it means there isn=92t really a clash with Linux Plumbers.

The final go/no-go decision will depend on cost and Advisory Board approval=
. =


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 Oct 14 15:14:54 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 15:14: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 1Xe3oL-0007hg-5I; Tue, 14 Oct 2014 15:14:53 +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 1Xe3oJ-0007hH-TS; Tue, 14 Oct 2014 15:14:52 +0000
Received: from [85.158.139.211:7248] by server-11.bemta-5.messagelabs.com id
	8D/EF-11011-9ED3D345; Tue, 14 Oct 2014 15:14:49 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1413299688!8278513!1
X-Originating-IP: [209.85.215.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4040 invoked from network); 14 Oct 2014 15:14:49 -0000
Received: from mail-la0-f48.google.com (HELO mail-la0-f48.google.com)
	(209.85.215.48)
	by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	14 Oct 2014 15:14:49 -0000
Received: by mail-la0-f48.google.com with SMTP id gi9so8594584lab.21
	for <multiple recipients>; Tue, 14 Oct 2014 08:14:48 -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=jGLVh3gLCCEHqQ9+6P3LLzgGVtldPmL5xhXDBXfiBIE=;
	b=a88/HlaikE5yF54MgpbG/7VtsREzUFR4bw9CCK/6Ja47il5J/X7AcNDvUpXxEndNPR
	FIICWqIw3INN+oq8lx9hjmw/nv065dK8psPlUZ04Bh4/2YvaozUiUr11P8C+qbQ821A/
	CepyOFdHy/XrZ1HOJ8+Voioyay0v35WHurSEF5ysp4BCHno2raBVvG8HCUu9MCgSJtCB
	G7wHDt01aepLWFtNWViNfKTSgLXYgyNWJvhVkwfG5+TAgP6TSwo76upTt/m/Rhnx/9YF
	IKo5n7+ay29EeQSGfyMKYreu8t79XDSkouspCgplSxsCmi8FCkyBy0hgxVnEcmntRnRt
	NUDQ==
X-Received: by 10.112.144.228 with SMTP id sp4mr5936490lbb.58.1413299688438;
	Tue, 14 Oct 2014 08:14:48 -0700 (PDT)
Received: from [10.150.166.229] ([62.156.150.204])
	by mx.google.com with ESMTPSA id n7sm233676lae.11.2014.10.14.08.14.46
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Tue, 14 Oct 2014 08:14:47 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Tue, 14 Oct 2014 17:14:44 +0200
Message-Id: <9EEF637E-5177-42FE-BAB0-DB78C1D2568F@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	Xen API mailing list <xen-api@lists.xen.org>,
	mirageos-devel@lists.xenproject.org, Win-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Cc: Russ Pavlicek <russell.pavlicek@xenproject.org>
Subject: [MirageOS-devel] [Update] Location of next Xen Project Developer
	Summit /	User Summit
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

a quick update on the location of next year=92s Developer / User summit. As=
 I mentioned earlier, LinuxCon US will be in Seattle Aug 17-19 and Linux Pl=
umbers will be hosted from Aug 19 - 21st in Seattle. =


I provisionally booked space with the Linux Foundation for the Xen Project =
from Aug 17-19. It seems that there was enough space after all. Which is go=
od, because it means there isn=92t really a clash with Linux Plumbers.

The final go/no-go decision will depend on cost and Advisory Board approval=
. =


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 Oct 14 15:49:04 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 15: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 1Xe4LJ-00016i-IC; Tue, 14 Oct 2014 15:48:57 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4LI-00016Y-Uj
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 15:48:57 +0000
Received: from [193.109.254.147:40747] by server-1.bemta-14.messagelabs.com id
	8E/A0-24760-8E54D345; Tue, 14 Oct 2014 15:48:56 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-16.tower-27.messagelabs.com!1413301735!7312451!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6235 invoked from network); 14 Oct 2014 15:48:55 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-16.tower-27.messagelabs.com with SMTP;
	14 Oct 2014 15:48:55 -0000
Received: (qmail 28994 invoked from network); 14 Oct 2014 15:48:47 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 14 Oct 2014 15:48:47 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 27890-05 for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 16:48:40 +0100 (BST)
Received: (qmail 28685 invoked by uid 599); 14 Oct 2014 15:48:39 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 14 Oct 2014 16:48:39 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4L7-0002de-Ta
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 16:48:45 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Tue, 14 Oct 2014 16:48:44 +0100
Thread-Topic: magpie reference
Thread-Index: Ac/nxlYswjH/5KC3S46vede8QAahiw==
Message-ID: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] magpie reference
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="===============7961087643515781928=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7961087643515781928==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

from call:

http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf

http://dl.acm.org/citation.cfm?id=1251272



-- 
Cheers,

R.





--Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUPUXcAAoJEOLF27JWwSg35Q0P/RKhx+1sf5jTqZCWtUHVpsbQ
kV3cvn0LvkzBgFDukdBuA035VLlwKu7YUQDr9z8zoJXAiZ2o6Na3hCLIzoDx4Py4
HyTdCQwHbMR6kj+1dfQtw/Zzh9aH/JHGBa2pWyQOggQ4LNl1odWOQhnrV/eYuJl5
+o1I4QITqjPrA3xmMLI1OnBZKRF6i6UnEPG3rsaJ7t6LAdrxskIsyaVYjjYjjAX4
WBr0XvlqhJAWILf96ztR5OlrMfPS3Ihiq7pToD+Xcgj5w+Sar1QaI1q4BJrH5xxD
4OL3wFvUsQM9ajO2NQkFSKqmTxkGM2VXsxdBHGQhW43ohdNF0XxLHeifNLZG2Nwp
JQ+qJtKyHYkZi0fZlXDoYgyLvz0Ynqir+bnZRst62VYwrSVxTLg7mPxo/WsxqtT6
lEGuy50Npux9Y5FTK3U1q+fZq03dnbkULZx2rYp90SCGKAnGvnkx3fel0QD/cowm
LdwmmJShSBH0Ry4uO+PO5Y/GRMIeauYEtqMnL/xCzQk5hvOVnUUaL0QlFwUws9HY
rb6cXZOBtYOsxODpYFRkNVFfEoJZj2sknkV/iZIOgug+bJEGpTFNqLWc28mifbFh
8KB6QtxGnCi73tKSHqqpH8beD+A+adoCIcKbNjH3JEoIDx4nXa3MA3u2nNThuwT5
2PpP4zMm5+2vRDVtrTgg
=rGCS
-----END PGP SIGNATURE-----

--Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072--


--===============7961087643515781928==
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

--===============7961087643515781928==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 14 15:49:04 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 15: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 1Xe4LJ-00016i-IC; Tue, 14 Oct 2014 15:48:57 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4LI-00016Y-Uj
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 15:48:57 +0000
Received: from [193.109.254.147:40747] by server-1.bemta-14.messagelabs.com id
	8E/A0-24760-8E54D345; Tue, 14 Oct 2014 15:48:56 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-16.tower-27.messagelabs.com!1413301735!7312451!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6235 invoked from network); 14 Oct 2014 15:48:55 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-16.tower-27.messagelabs.com with SMTP;
	14 Oct 2014 15:48:55 -0000
Received: (qmail 28994 invoked from network); 14 Oct 2014 15:48:47 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 14 Oct 2014 15:48:47 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 27890-05 for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 16:48:40 +0100 (BST)
Received: (qmail 28685 invoked by uid 599); 14 Oct 2014 15:48:39 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 14 Oct 2014 16:48:39 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4L7-0002de-Ta
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 16:48:45 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Tue, 14 Oct 2014 16:48:44 +0100
Thread-Topic: magpie reference
Thread-Index: Ac/nxlYswjH/5KC3S46vede8QAahiw==
Message-ID: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] magpie reference
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="===============7961087643515781928=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7961087643515781928==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

from call:

http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf

http://dl.acm.org/citation.cfm?id=1251272



-- 
Cheers,

R.





--Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUPUXcAAoJEOLF27JWwSg35Q0P/RKhx+1sf5jTqZCWtUHVpsbQ
kV3cvn0LvkzBgFDukdBuA035VLlwKu7YUQDr9z8zoJXAiZ2o6Na3hCLIzoDx4Py4
HyTdCQwHbMR6kj+1dfQtw/Zzh9aH/JHGBa2pWyQOggQ4LNl1odWOQhnrV/eYuJl5
+o1I4QITqjPrA3xmMLI1OnBZKRF6i6UnEPG3rsaJ7t6LAdrxskIsyaVYjjYjjAX4
WBr0XvlqhJAWILf96ztR5OlrMfPS3Ihiq7pToD+Xcgj5w+Sar1QaI1q4BJrH5xxD
4OL3wFvUsQM9ajO2NQkFSKqmTxkGM2VXsxdBHGQhW43ohdNF0XxLHeifNLZG2Nwp
JQ+qJtKyHYkZi0fZlXDoYgyLvz0Ynqir+bnZRst62VYwrSVxTLg7mPxo/WsxqtT6
lEGuy50Npux9Y5FTK3U1q+fZq03dnbkULZx2rYp90SCGKAnGvnkx3fel0QD/cowm
LdwmmJShSBH0Ry4uO+PO5Y/GRMIeauYEtqMnL/xCzQk5hvOVnUUaL0QlFwUws9HY
rb6cXZOBtYOsxODpYFRkNVFfEoJZj2sknkV/iZIOgug+bJEGpTFNqLWc28mifbFh
8KB6QtxGnCi73tKSHqqpH8beD+A+adoCIcKbNjH3JEoIDx4nXa3MA3u2nNThuwT5
2PpP4zMm5+2vRDVtrTgg
=rGCS
-----END PGP SIGNATURE-----

--Apple-Mail=_A375BB50-DF2B-48BA-B1C4-548686AC5072--


--===============7961087643515781928==
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

--===============7961087643515781928==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 14 16:29:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 16:29:31 +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 1Xe4yY-00049h-Hm; Tue, 14 Oct 2014 16:29:30 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4yX-00049S-Bz
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 16:29:29 +0000
Received: from [193.109.254.147:45655] by server-9.bemta-14.messagelabs.com id
	6E/FF-31535-86F4D345; Tue, 14 Oct 2014 16:29:28 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-12.tower-27.messagelabs.com!1413304167!12741630!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28413 invoked from network); 14 Oct 2014 16:29:27 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-12.tower-27.messagelabs.com with SMTP;
	14 Oct 2014 16:29:27 -0000
Received: (qmail 16023 invoked from network); 14 Oct 2014 16:29:26 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 14 Oct 2014 16:29:26 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 13568-10 for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 17:29:19 +0100 (BST)
Received: (qmail 15840 invoked by uid 599); 14 Oct 2014 16:29:19 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 14 Oct 2014 17:29:19 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4yM-0002wg-HS
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 17:29:18 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Tue, 14 Oct 2014 17:29:16 +0100
Thread-Topic: magpie reference
Thread-Index: Ac/nzAAsHZOGANbMQOiZRed/aMO/Xw==
Message-ID: <7ECB0634-73EA-4A89-9684-F738D535AF49@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
In-Reply-To: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: Re: [MirageOS-devel] magpie reference
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="===============3966155062541795549=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3966155062541795549==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 14 Oct 2014, at 16:48, Mortier Richard =
<pszrmm@exmail.nottingham.ac.uk> wrote:

> from call:
>=20
> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>=20
> http://dl.acm.org/citation.cfm?id=3D1251272

apologies for the self-follow up-- the other magpie paper that might be =
of interest is

http://www.cs.nott.ac.uk/~rmm/papers/pdf/sigopsew04-magpie.pdf

http://doi.acm.org/10.1145/1133572.1133608

which talks more about the specifics of how we processed the traces.
(hand coded parser, in C, with extensive, nay excessive, use of =
macros... :)

--=20
Cheers,

R.





--Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUPU9cAAoJEOLF27JWwSg3A9oP/3856rxbIb9+jeyiEwdRD6ua
4Gg/Z67TlC0Q1BQmJ1KmQ2tosZA3HXxEkeCTcBgY7IKnO7z/5UEXgyxHrGvJDZ5r
8kzU1ZeLCk7Q6bvneZRqM0uFGozvrXOWChs5I98pe1skviV6uYUq5KjHbCeoXtcP
QdtB+tBAPnfrEh4uI0tIm4I15/aN3iycLANZX6g961Sm1kcUdX616WMn+RYWFVJ/
d1egj00mqVt0tydeYDMozDHC1SgaDL+VX7Eu60ecBpS8Bm87vNCxi33bvHVi1au/
TEDp6/GoRMR2FFfWDdDHVgPKkIVdzt8B5Sl6Iowzb1xQL++G5OnjBvzWJvRrAcAz
6NsLgARuDul6zuthWhAcBfy6LEUZlu2QAVLZKjmgE/nWKxSJYozi71E3Ah2gbC8e
gXkBesxRtoF+tkWpdcz0QxmiJbeQ2IEc4ccUooG2oqT9kz+7KdzINXP4fXLdwIzu
zcTAjQILXlNZWYGYP+nYO0W9iZ5BEQhiQ2iandhkhSyIC/XGzCR0bPz1w7bQv791
7d0FTXoYA8FtiEU4/exLdW+QNfR/I2TBAlTFIFKInTOYtB1Jn7SOZXpIs/utPoB9
VOFAOlXmqhbpNFv4+T6V10UhIQiB7TAh8qrxsRpIobROrd0a7IO33lHREN4xC+j8
U90HkuITmhh/4HN2265R
=iyLp
-----END PGP SIGNATURE-----

--Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F--


--===============3966155062541795549==
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

--===============3966155062541795549==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 14 16:29:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Oct 2014 16:29:31 +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 1Xe4yY-00049h-Hm; Tue, 14 Oct 2014 16:29:30 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4yX-00049S-Bz
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 16:29:29 +0000
Received: from [193.109.254.147:45655] by server-9.bemta-14.messagelabs.com id
	6E/FF-31535-86F4D345; Tue, 14 Oct 2014 16:29:28 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-12.tower-27.messagelabs.com!1413304167!12741630!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28413 invoked from network); 14 Oct 2014 16:29:27 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-12.tower-27.messagelabs.com with SMTP;
	14 Oct 2014 16:29:27 -0000
Received: (qmail 16023 invoked from network); 14 Oct 2014 16:29:26 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 14 Oct 2014 16:29:26 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 13568-10 for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 17:29:19 +0100 (BST)
Received: (qmail 15840 invoked by uid 599); 14 Oct 2014 16:29:19 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 14 Oct 2014 17:29:19 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xe4yM-0002wg-HS
	for mirageos-devel@lists.xenproject.org; Tue, 14 Oct 2014 17:29:18 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Tue, 14 Oct 2014 17:29:16 +0100
Thread-Topic: magpie reference
Thread-Index: Ac/nzAAsHZOGANbMQOiZRed/aMO/Xw==
Message-ID: <7ECB0634-73EA-4A89-9684-F738D535AF49@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
In-Reply-To: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: Re: [MirageOS-devel] magpie reference
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="===============3966155062541795549=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3966155062541795549==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 14 Oct 2014, at 16:48, Mortier Richard =
<pszrmm@exmail.nottingham.ac.uk> wrote:

> from call:
>=20
> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>=20
> http://dl.acm.org/citation.cfm?id=3D1251272

apologies for the self-follow up-- the other magpie paper that might be =
of interest is

http://www.cs.nott.ac.uk/~rmm/papers/pdf/sigopsew04-magpie.pdf

http://doi.acm.org/10.1145/1133572.1133608

which talks more about the specifics of how we processed the traces.
(hand coded parser, in C, with extensive, nay excessive, use of =
macros... :)

--=20
Cheers,

R.





--Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUPU9cAAoJEOLF27JWwSg3A9oP/3856rxbIb9+jeyiEwdRD6ua
4Gg/Z67TlC0Q1BQmJ1KmQ2tosZA3HXxEkeCTcBgY7IKnO7z/5UEXgyxHrGvJDZ5r
8kzU1ZeLCk7Q6bvneZRqM0uFGozvrXOWChs5I98pe1skviV6uYUq5KjHbCeoXtcP
QdtB+tBAPnfrEh4uI0tIm4I15/aN3iycLANZX6g961Sm1kcUdX616WMn+RYWFVJ/
d1egj00mqVt0tydeYDMozDHC1SgaDL+VX7Eu60ecBpS8Bm87vNCxi33bvHVi1au/
TEDp6/GoRMR2FFfWDdDHVgPKkIVdzt8B5Sl6Iowzb1xQL++G5OnjBvzWJvRrAcAz
6NsLgARuDul6zuthWhAcBfy6LEUZlu2QAVLZKjmgE/nWKxSJYozi71E3Ah2gbC8e
gXkBesxRtoF+tkWpdcz0QxmiJbeQ2IEc4ccUooG2oqT9kz+7KdzINXP4fXLdwIzu
zcTAjQILXlNZWYGYP+nYO0W9iZ5BEQhiQ2iandhkhSyIC/XGzCR0bPz1w7bQv791
7d0FTXoYA8FtiEU4/exLdW+QNfR/I2TBAlTFIFKInTOYtB1Jn7SOZXpIs/utPoB9
VOFAOlXmqhbpNFv4+T6V10UhIQiB7TAh8qrxsRpIobROrd0a7IO33lHREN4xC+j8
U90HkuITmhh/4HN2265R
=iyLp
-----END PGP SIGNATURE-----

--Apple-Mail=_253691CE-0EFA-4F41-97E2-02BA619BD70F--


--===============3966155062541795549==
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

--===============3966155062541795549==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 15 02:38:08 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 02:38:08 +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 1XeETR-0002lD-LO; Wed, 15 Oct 2014 02:38:01 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <smack815@gmail.com>) id 1XeETQ-0002l1-Eb
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 02:38:00 +0000
Received: from [85.158.137.68:22008] by server-14.bemta-3.messagelabs.com id
	95/77-01575-70EDD345; Wed, 15 Oct 2014 02:37:59 +0000
X-Env-Sender: smack815@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1413340678!13511296!1
X-Originating-IP: [209.85.212.173]
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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11435 invoked from network); 15 Oct 2014 02:37:58 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 02:37:58 -0000
Received: by mail-wi0-f173.google.com with SMTP id fb4so11728126wid.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 19:37:58 -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=Mx3MG5xEaiFiGTON2k7uQfTxu3M95AgqmmZyzrzQW5c=;
	b=jP0rEt7PWUkM2GNcteheQxYkfrfXBw/iMuXAbHxmFIu2ODRfYmVt+YfB5yyuq7+c4Q
	464uXGMmL3ZLwA3QBBuW4+aMRoEXhp264PDyhV3pt0njYJDtj7v5V+Pq3OUW6Xs8B5aF
	f1TqZmRUm0mXfAwOp/pzsfJXC3Sc9GA7DC9OCT9jhzKZAf3eQWsCwxhO0DiCLlWTFWRz
	NlIAcoz1Oe6wgPKgcM9QHEYKYuDyy+ypyZpxBQP9zzWu5+l8MRtOJIwTwLGA3Guye+Dr
	YeIrmEwgyUlkUS8NF1/oqbZCRktuL4qjW0IeJ6zps++r55s2zTDNVgqUZ8/cmfbqhZdm
	5jjg==
MIME-Version: 1.0
X-Received: by 10.194.216.232 with SMTP id ot8mr9161059wjc.74.1413340678519;
	Tue, 14 Oct 2014 19:37:58 -0700 (PDT)
Received: by 10.180.149.205 with HTTP; Tue, 14 Oct 2014 19:37:58 -0700 (PDT)
Date: Tue, 14 Oct 2014 23:37:58 -0300
Message-ID: <CA+kMmLB+P8V3=GHP4Erni5ovhRe7JV7y7EEs3s_7MY19CVs9rA@mail.gmail.com>
From: Stephen Mack <smack815@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] SSLv3 POODLE vulnerability
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="===============1479078882131225335=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1479078882131225335==
Content-Type: multipart/alternative; boundary=001a11c1b6ca17010305056d0541

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

Hi everyone,

Another SSL vulnerability has been found and announced by Google.  If I am
reading correctly, ocaml-TLS does not support the SSLv3 protocol and
therefore is not vulnerable to the POODLE exploit.

https://www.openssl.org/~bodo/ssl-poodle.pdf

--Stephen

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

<div dir=3D"ltr">Hi everyone,<div><br></div><div>Another SSL vulnerability =
has been found and=C2=A0announced by Google.=C2=A0 If I am reading correctl=
y, ocaml-TLS does not support the SSLv3 protocol and therefore is not vulne=
rable to the POODLE exploit.</div><div><br></div><div><a href=3D"https://ww=
w.openssl.org/~bodo/ssl-poodle.pdf">https://www.openssl.org/~bodo/ssl-poodl=
e.pdf</a><br></div><div><br></div><div>--Stephen</div></div>

--001a11c1b6ca17010305056d0541--


--===============1479078882131225335==
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

--===============1479078882131225335==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 15 02:38:08 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 02:38:08 +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 1XeETR-0002lD-LO; Wed, 15 Oct 2014 02:38:01 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <smack815@gmail.com>) id 1XeETQ-0002l1-Eb
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 02:38:00 +0000
Received: from [85.158.137.68:22008] by server-14.bemta-3.messagelabs.com id
	95/77-01575-70EDD345; Wed, 15 Oct 2014 02:37:59 +0000
X-Env-Sender: smack815@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1413340678!13511296!1
X-Originating-IP: [209.85.212.173]
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.12.2; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11435 invoked from network); 15 Oct 2014 02:37:58 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 02:37:58 -0000
Received: by mail-wi0-f173.google.com with SMTP id fb4so11728126wid.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 14 Oct 2014 19:37:58 -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=Mx3MG5xEaiFiGTON2k7uQfTxu3M95AgqmmZyzrzQW5c=;
	b=jP0rEt7PWUkM2GNcteheQxYkfrfXBw/iMuXAbHxmFIu2ODRfYmVt+YfB5yyuq7+c4Q
	464uXGMmL3ZLwA3QBBuW4+aMRoEXhp264PDyhV3pt0njYJDtj7v5V+Pq3OUW6Xs8B5aF
	f1TqZmRUm0mXfAwOp/pzsfJXC3Sc9GA7DC9OCT9jhzKZAf3eQWsCwxhO0DiCLlWTFWRz
	NlIAcoz1Oe6wgPKgcM9QHEYKYuDyy+ypyZpxBQP9zzWu5+l8MRtOJIwTwLGA3Guye+Dr
	YeIrmEwgyUlkUS8NF1/oqbZCRktuL4qjW0IeJ6zps++r55s2zTDNVgqUZ8/cmfbqhZdm
	5jjg==
MIME-Version: 1.0
X-Received: by 10.194.216.232 with SMTP id ot8mr9161059wjc.74.1413340678519;
	Tue, 14 Oct 2014 19:37:58 -0700 (PDT)
Received: by 10.180.149.205 with HTTP; Tue, 14 Oct 2014 19:37:58 -0700 (PDT)
Date: Tue, 14 Oct 2014 23:37:58 -0300
Message-ID: <CA+kMmLB+P8V3=GHP4Erni5ovhRe7JV7y7EEs3s_7MY19CVs9rA@mail.gmail.com>
From: Stephen Mack <smack815@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] SSLv3 POODLE vulnerability
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="===============1479078882131225335=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1479078882131225335==
Content-Type: multipart/alternative; boundary=001a11c1b6ca17010305056d0541

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

Hi everyone,

Another SSL vulnerability has been found and announced by Google.  If I am
reading correctly, ocaml-TLS does not support the SSLv3 protocol and
therefore is not vulnerable to the POODLE exploit.

https://www.openssl.org/~bodo/ssl-poodle.pdf

--Stephen

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

<div dir=3D"ltr">Hi everyone,<div><br></div><div>Another SSL vulnerability =
has been found and=C2=A0announced by Google.=C2=A0 If I am reading correctl=
y, ocaml-TLS does not support the SSLv3 protocol and therefore is not vulne=
rable to the POODLE exploit.</div><div><br></div><div><a href=3D"https://ww=
w.openssl.org/~bodo/ssl-poodle.pdf">https://www.openssl.org/~bodo/ssl-poodl=
e.pdf</a><br></div><div><br></div><div>--Stephen</div></div>

--001a11c1b6ca17010305056d0541--


--===============1479078882131225335==
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

--===============1479078882131225335==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 15 07:06:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 07:06: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 1XeIfH-0007fE-7O; Wed, 15 Oct 2014 07:06:31 +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 1XeIfF-0007f9-H9
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 07:06:29 +0000
Received: from [85.158.137.68:6995] by server-16.bemta-3.messagelabs.com id
	EF/4B-01431-4FC1E345; Wed, 15 Oct 2014 07:06:28 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-7.tower-31.messagelabs.com!1413356787!10763042!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10785 invoked from network); 15 Oct 2014 07:06:27 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-7.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 15 Oct 2014 07:06:27 -0000
Received: from [192.168.1.100] (unknown [88.130.143.207])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 7EAC826BE
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 09:06:26 +0200 (CEST)
Message-ID: <543E1CCB.2030704@mehnert.org>
Date: Wed, 15 Oct 2014 09:05:47 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CA+kMmLB+P8V3=GHP4Erni5ovhRe7JV7y7EEs3s_7MY19CVs9rA@mail.gmail.com>
In-Reply-To: <CA+kMmLB+P8V3=GHP4Erni5ovhRe7JV7y7EEs3s_7MY19CVs9rA@mail.gmail.com>
Subject: Re: [MirageOS-devel] SSLv3 POODLE vulnerability
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 PGP SIGNED MESSAGE-----
Hash: SHA384

Hi,

On 10/15/2014 04:37, Stephen Mack wrote:
> Another SSL vulnerability has been found and announced by Google.
> If I am reading correctly, ocaml-TLS does not support the SSLv3
> protocol and therefore is not vulnerable to the POODLE exploit.

Exactly. When we started to develop OCaml-TLS we looked at statistics
what is spoken out there, and SSLv3 only clients were a really small
amount - thus we decided to focus on properly specified RFCs :)


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

iQIcBAEBCQAGBQJUPhzLAAoJELyJZYjffCju78IP/2WDq0fw/Ny3a56Qr4f52AZs
y8zOATmxhoVE+h1ChNZoXFvh8rzYBY/cWl9tbtRXTgMKfUgFj7CT2ppEmulLavzw
FkvSvPrmyLF0rJrwIDz9zz/5THGXpN/p1elVimMdF/VwR3lkVI5Byj5IZ7qU8xx1
9OFQFc1wyz6P7R/+oAeCDWMu4j4F7iGoRYbqX5q2jWg8jG8CzTbYxhgTE/JQ4Ir3
hkiEz0YZqplO65lSwWdFhqp51BGOjmhN/9f5CQbRDokh/aREoqPtrXdLBbO5Cm9U
8hfmyaXNjo1H0Bsc079mGEuK8mxNrE1dcq6fAsl9oakclg6SORtDAsixTbWF3fk2
ZlGJZH+KdftNupVIRbeJu10xyyociU4mQRgVMWTUs/0/yBbJzW12pyoYnxBuLuuV
KqFmEjGBXyzYNlby7UIzxA816AX3We+306BtabWaxWX6/6qdeHC/+OiDSpbd9sbo
Trm9ABytu+cwLEYnQe5W0Mvehle3RRvcNYLnPA9dwbhZLSkfq2mu5qByOD1TD17O
nsoapVTaB8X7D4NUgf1KIqcJuWoyhG20rCm25qCoRGzQ5+2YhLjvufGZaBPg0/s0
fiLecTRyXTgR4lGdSHfXcB/eXHev+NLlFAMIYRGerNEQKXUKgnBBcJreDeYCsN+h
59124mOJjZfy+RwdrVNJ
=stUp
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 15 07:06:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 07:06: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 1XeIfH-0007fE-7O; Wed, 15 Oct 2014 07:06:31 +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 1XeIfF-0007f9-H9
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 07:06:29 +0000
Received: from [85.158.137.68:6995] by server-16.bemta-3.messagelabs.com id
	EF/4B-01431-4FC1E345; Wed, 15 Oct 2014 07:06:28 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-7.tower-31.messagelabs.com!1413356787!10763042!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10785 invoked from network); 15 Oct 2014 07:06:27 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-7.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 15 Oct 2014 07:06:27 -0000
Received: from [192.168.1.100] (unknown [88.130.143.207])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 7EAC826BE
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 09:06:26 +0200 (CEST)
Message-ID: <543E1CCB.2030704@mehnert.org>
Date: Wed, 15 Oct 2014 09:05:47 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CA+kMmLB+P8V3=GHP4Erni5ovhRe7JV7y7EEs3s_7MY19CVs9rA@mail.gmail.com>
In-Reply-To: <CA+kMmLB+P8V3=GHP4Erni5ovhRe7JV7y7EEs3s_7MY19CVs9rA@mail.gmail.com>
Subject: Re: [MirageOS-devel] SSLv3 POODLE vulnerability
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 PGP SIGNED MESSAGE-----
Hash: SHA384

Hi,

On 10/15/2014 04:37, Stephen Mack wrote:
> Another SSL vulnerability has been found and announced by Google.
> If I am reading correctly, ocaml-TLS does not support the SSLv3
> protocol and therefore is not vulnerable to the POODLE exploit.

Exactly. When we started to develop OCaml-TLS we looked at statistics
what is spoken out there, and SSLv3 only clients were a really small
amount - thus we decided to focus on properly specified RFCs :)


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

iQIcBAEBCQAGBQJUPhzLAAoJELyJZYjffCju78IP/2WDq0fw/Ny3a56Qr4f52AZs
y8zOATmxhoVE+h1ChNZoXFvh8rzYBY/cWl9tbtRXTgMKfUgFj7CT2ppEmulLavzw
FkvSvPrmyLF0rJrwIDz9zz/5THGXpN/p1elVimMdF/VwR3lkVI5Byj5IZ7qU8xx1
9OFQFc1wyz6P7R/+oAeCDWMu4j4F7iGoRYbqX5q2jWg8jG8CzTbYxhgTE/JQ4Ir3
hkiEz0YZqplO65lSwWdFhqp51BGOjmhN/9f5CQbRDokh/aREoqPtrXdLBbO5Cm9U
8hfmyaXNjo1H0Bsc079mGEuK8mxNrE1dcq6fAsl9oakclg6SORtDAsixTbWF3fk2
ZlGJZH+KdftNupVIRbeJu10xyyociU4mQRgVMWTUs/0/yBbJzW12pyoYnxBuLuuV
KqFmEjGBXyzYNlby7UIzxA816AX3We+306BtabWaxWX6/6qdeHC/+OiDSpbd9sbo
Trm9ABytu+cwLEYnQe5W0Mvehle3RRvcNYLnPA9dwbhZLSkfq2mu5qByOD1TD17O
nsoapVTaB8X7D4NUgf1KIqcJuWoyhG20rCm25qCoRGzQ5+2YhLjvufGZaBPg0/s0
fiLecTRyXTgR4lGdSHfXcB/eXHev+NLlFAMIYRGerNEQKXUKgnBBcJreDeYCsN+h
59124mOJjZfy+RwdrVNJ
=stUp
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 15 09:41:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 09:41:02 +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 1XeL4e-0003MX-Ld; Wed, 15 Oct 2014 09:40:52 +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 1XeL4d-0003MS-Fu
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 09:40:51 +0000
Received: from [193.109.254.147:13791] by server-5.bemta-14.messagelabs.com id
	9A/84-28255-2214E345; Wed, 15 Oct 2014 09:40:50 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1413366049!12884929!1
X-Originating-IP: [74.125.82.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15137 invoked from network); 15 Oct 2014 09:40:49 -0000
Received: from mail-wg0-f48.google.com (HELO mail-wg0-f48.google.com)
	(74.125.82.48)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 09:40:49 -0000
Received: by mail-wg0-f48.google.com with SMTP id k14so890043wgh.31
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 02:40:49 -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=xzcbP8QjEjYYFQhRHc7mXegfjPeznm+OkZDSp/r0w5o=;
	b=XHJimT7qcSry6Yaw3vFWAs738wwQQ3F4q98cKE32Q4+u/0dksoc7ROUtFYENruBBGc
	Ztgve/0iWvwN4VeSHhfGeajEjFdWBbLD8fX4Xv5C5+TnMr/C3rA8b0a+yU3a3l/kJMri
	EyFuLZ6vYMkL4oCVnDKkbyyfpwp8jcfe2IR6W+/jPQLwoKO9DoXRYQHV7PS7WjO0orIz
	XepTSTcTpX5ls2Jvuc3VkQwLRiqUFVAQs8EblCu8YWEuwv+sJAnCw2kdjq1uPeeyCCsX
	HPH+dPx/ebrhba3Z7TWLoD4LwAS8qfJg+uF1s+B6HIWjYYXedetnkw/q+HdHfhtuNHU5
	VSog==
X-Received: by 10.181.11.138 with SMTP id ei10mr10795845wid.65.1413366049392; 
	Wed, 15 Oct 2014 02:40:49 -0700 (PDT)
Received: from ?IPv6:2001:630:212:248:b027:ae0c:b895:e4f7?
	([2001:630:212:248:b027:ae0c:b895:e4f7])
	by mx.google.com with ESMTPSA id u2sm23216048wjz.11.2014.10.15.02.40.48
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 15 Oct 2014 02:40:48 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
Date: Wed, 15 Oct 2014 10:40:47 +0100
Message-Id: <A46B1710-F9B5-460A-8AA8-C27DF73A3D74@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
	<CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

>>>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>>>> 
>>>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)

To continue on this, how do you generate the sexp currently? Is there a way to have a continuous profiling trace? Would be very cool to profile running unikernels ...

Thomas



>>>>> 
>>>>> It's using cairo for rendering, so producing png or svg output should
>>>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>>>> a browser though...
>>>> 
>>>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>>>> backend, so this may be a good place to get started on a browser backend
>>>> without the trouble of learning HTML/CSS:
>>>> 
>>>> http://erratique.ch/software/vg
>>> 
>>> I almost had it working with Vg, but there seemed to be no way to
>>> measure the text, which is needed to place the labels, so I ended up
>>> using HTML canvas directly. As it turned out, that API was a better
>>> fit for me anyway (being more similar to Cairo's API).
>>> 
>>> You can test it here:
>>> 
>>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>> 
>>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>>> Firefox and Chromium; let me know if it works elsewhere.
>>> 
>>> It doesn't support touch, so won't work on tablets (also, would
>>> probably be very slow).
>>> 
>>>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>>>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>>>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>>>> to access the debugging port without going through TCP, which is pretty
>>>> cool :-)
>>> 
>>>> -anil
>>> 
>>> 
>>> 
>>> --
>>> Dr Thomas Leonard        http://0install.net/
>>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>> 
> 
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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 Oct 15 09:41:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 09:41:02 +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 1XeL4e-0003MX-Ld; Wed, 15 Oct 2014 09:40:52 +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 1XeL4d-0003MS-Fu
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 09:40:51 +0000
Received: from [193.109.254.147:13791] by server-5.bemta-14.messagelabs.com id
	9A/84-28255-2214E345; Wed, 15 Oct 2014 09:40:50 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1413366049!12884929!1
X-Originating-IP: [74.125.82.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15137 invoked from network); 15 Oct 2014 09:40:49 -0000
Received: from mail-wg0-f48.google.com (HELO mail-wg0-f48.google.com)
	(74.125.82.48)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 09:40:49 -0000
Received: by mail-wg0-f48.google.com with SMTP id k14so890043wgh.31
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 02:40:49 -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=xzcbP8QjEjYYFQhRHc7mXegfjPeznm+OkZDSp/r0w5o=;
	b=XHJimT7qcSry6Yaw3vFWAs738wwQQ3F4q98cKE32Q4+u/0dksoc7ROUtFYENruBBGc
	Ztgve/0iWvwN4VeSHhfGeajEjFdWBbLD8fX4Xv5C5+TnMr/C3rA8b0a+yU3a3l/kJMri
	EyFuLZ6vYMkL4oCVnDKkbyyfpwp8jcfe2IR6W+/jPQLwoKO9DoXRYQHV7PS7WjO0orIz
	XepTSTcTpX5ls2Jvuc3VkQwLRiqUFVAQs8EblCu8YWEuwv+sJAnCw2kdjq1uPeeyCCsX
	HPH+dPx/ebrhba3Z7TWLoD4LwAS8qfJg+uF1s+B6HIWjYYXedetnkw/q+HdHfhtuNHU5
	VSog==
X-Received: by 10.181.11.138 with SMTP id ei10mr10795845wid.65.1413366049392; 
	Wed, 15 Oct 2014 02:40:49 -0700 (PDT)
Received: from ?IPv6:2001:630:212:248:b027:ae0c:b895:e4f7?
	([2001:630:212:248:b027:ae0c:b895:e4f7])
	by mx.google.com with ESMTPSA id u2sm23216048wjz.11.2014.10.15.02.40.48
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 15 Oct 2014 02:40:48 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
Date: Wed, 15 Oct 2014 10:40:47 +0100
Message-Id: <A46B1710-F9B5-460A-8AA8-C27DF73A3D74@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
	<CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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

>>>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>>>> 
>>>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)

To continue on this, how do you generate the sexp currently? Is there a way to have a continuous profiling trace? Would be very cool to profile running unikernels ...

Thomas



>>>>> 
>>>>> It's using cairo for rendering, so producing png or svg output should
>>>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>>>> a browser though...
>>>> 
>>>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>>>> backend, so this may be a good place to get started on a browser backend
>>>> without the trouble of learning HTML/CSS:
>>>> 
>>>> http://erratique.ch/software/vg
>>> 
>>> I almost had it working with Vg, but there seemed to be no way to
>>> measure the text, which is needed to place the labels, so I ended up
>>> using HTML canvas directly. As it turned out, that API was a better
>>> fit for me anyway (being more similar to Cairo's API).
>>> 
>>> You can test it here:
>>> 
>>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>> 
>>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>>> Firefox and Chromium; let me know if it works elsewhere.
>>> 
>>> It doesn't support touch, so won't work on tablets (also, would
>>> probably be very slow).
>>> 
>>>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>>>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>>>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>>>> to access the debugging port without going through TCP, which is pretty
>>>> cool :-)
>>> 
>>>> -anil
>>> 
>>> 
>>> 
>>> --
>>> Dr Thomas Leonard        http://0install.net/
>>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>> 
> 
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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 Oct 15 10:14:19 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 10:14: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 1XeLaz-0004Ca-3B; Wed, 15 Oct 2014 10:14:17 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XeLay-0004CV-C6
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 10:14:16 +0000
Received: from [85.158.143.35:28622] by server-3.bemta-4.messagelabs.com id
	5A/6D-06192-7F84E345; Wed, 15 Oct 2014 10:14:15 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1413368053!13020431!1
X-Originating-IP: [209.85.220.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7005 invoked from network); 15 Oct 2014 10:14:14 -0000
Received: from mail-vc0-f176.google.com (HELO mail-vc0-f176.google.com)
	(209.85.220.176)
	by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 10:14:14 -0000
Received: by mail-vc0-f176.google.com with SMTP id hq11so662918vcb.7
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 03:14:13 -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=sZoOhz11/7lfoABkCISPJfp67nIXB1DUmjMlpltrqD4=;
	b=Roj16+TKn8DqcpvFjBrAX4sTxiN+PLn5jz+cEHycqJJNdXv9aF5KXMVvA1JNweoQ/r
	RP3mxcNuV8loyjIAiMyOD5DHOtg9A5mY0UvjxUBllPNb+QJ8U8LrbHNZyHH7Iqla4gVY
	620Kh52p9ElFmnME7NQlUUM+umQ/SvBZ/Y7MmJ72+Ty6FoekD11ydd6hk1R7l8C7kkOS
	Hincx++b6PxnmpgnErSzG1NyVnSXApLxwSERvcZzSblkL9FwzNpyDnHX+FXVRzdadojb
	7CLmuEDxk0y3QzVIoieWaeSOl8DVLHP/ESpbV8MHV4ueRXN4yYY8Y7l0fe8PzivsOew8
	BDmA==
MIME-Version: 1.0
X-Received: by 10.52.146.167 with SMTP id td7mr8902803vdb.39.1413368053374;
	Wed, 15 Oct 2014 03:14:13 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Wed, 15 Oct 2014 03:14:13 -0700 (PDT)
In-Reply-To: <A46B1710-F9B5-460A-8AA8-C27DF73A3D74@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
	<CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
	<A46B1710-F9B5-460A-8AA8-C27DF73A3D74@gazagnaire.org>
Date: Wed, 15 Oct 2014 11:14:13 +0100
Message-ID: <CAG4opy_MPoeX-_+36xE6X3R4K4Rxr3x4qFYffaOA2oAX+X55CQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 October 2014 10:40, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>>>>>
>>>>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>
> To continue on this, how do you generate the sexp currently? Is there a way to have a continuous profiling trace? Would be very cool to profile running unikernels ...

Currently, I have a modified Lwt that lets you register a tracing
handler. My unikernel registers one, adds every event it gets to a
list, and dumps the list to the console at the end.

But this is just a temporary hack. My current plan is to make a
Profile module and have Lwt call that directly. By default, the
profile module will just be stubs and the compiler will optimise out
all the profiling. Other Mirage libraries can then depend on the
profile library and add extra debugging information in the same way,
without any cost when profiling isn't used.

It should be possible to view a trace at any time (it's an append-only
log), although the layout algorithm may need to adjust earlier threads
as new information arrives (layout is done right-to-left).

[1] https://github.com/talex5/lwt/commits/tracing

> Thomas
>
>
>
>>>>>>
>>>>>> It's using cairo for rendering, so producing png or svg output should
>>>>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>>>>> a browser though...
>>>>>
>>>>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>>>>> backend, so this may be a good place to get started on a browser backend
>>>>> without the trouble of learning HTML/CSS:
>>>>>
>>>>> http://erratique.ch/software/vg
>>>>
>>>> I almost had it working with Vg, but there seemed to be no way to
>>>> measure the text, which is needed to place the labels, so I ended up
>>>> using HTML canvas directly. As it turned out, that API was a better
>>>> fit for me anyway (being more similar to Cairo's API).
>>>>
>>>> You can test it here:
>>>>
>>>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>>>
>>>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>>>> Firefox and Chromium; let me know if it works elsewhere.
>>>>
>>>> It doesn't support touch, so won't work on tablets (also, would
>>>> probably be very slow).
>>>>
>>>>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>>>>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>>>>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>>>>> to access the debugging port without going through TCP, which is pretty
>>>>> cool :-)
>>>>
>>>>> -anil
>>>>
>>>>
>>>>
>>>> --
>>>> Dr Thomas Leonard        http://0install.net/
>>>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>>>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>>>
>>
>>
>>
>> --
>> Dr Thomas Leonard        http://0install.net/
>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 15 10:14:19 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 10:14: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 1XeLaz-0004Ca-3B; Wed, 15 Oct 2014 10:14:17 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XeLay-0004CV-C6
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 10:14:16 +0000
Received: from [85.158.143.35:28622] by server-3.bemta-4.messagelabs.com id
	5A/6D-06192-7F84E345; Wed, 15 Oct 2014 10:14:15 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1413368053!13020431!1
X-Originating-IP: [209.85.220.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7005 invoked from network); 15 Oct 2014 10:14:14 -0000
Received: from mail-vc0-f176.google.com (HELO mail-vc0-f176.google.com)
	(209.85.220.176)
	by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 10:14:14 -0000
Received: by mail-vc0-f176.google.com with SMTP id hq11so662918vcb.7
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 03:14:13 -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=sZoOhz11/7lfoABkCISPJfp67nIXB1DUmjMlpltrqD4=;
	b=Roj16+TKn8DqcpvFjBrAX4sTxiN+PLn5jz+cEHycqJJNdXv9aF5KXMVvA1JNweoQ/r
	RP3mxcNuV8loyjIAiMyOD5DHOtg9A5mY0UvjxUBllPNb+QJ8U8LrbHNZyHH7Iqla4gVY
	620Kh52p9ElFmnME7NQlUUM+umQ/SvBZ/Y7MmJ72+Ty6FoekD11ydd6hk1R7l8C7kkOS
	Hincx++b6PxnmpgnErSzG1NyVnSXApLxwSERvcZzSblkL9FwzNpyDnHX+FXVRzdadojb
	7CLmuEDxk0y3QzVIoieWaeSOl8DVLHP/ESpbV8MHV4ueRXN4yYY8Y7l0fe8PzivsOew8
	BDmA==
MIME-Version: 1.0
X-Received: by 10.52.146.167 with SMTP id td7mr8902803vdb.39.1413368053374;
	Wed, 15 Oct 2014 03:14:13 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Wed, 15 Oct 2014 03:14:13 -0700 (PDT)
In-Reply-To: <A46B1710-F9B5-460A-8AA8-C27DF73A3D74@gazagnaire.org>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<019B5084-BE4F-4093-8705-68950D131347@gazagnaire.org>
	<CAG4opy_qMTfsRRnvrGLGFHEqj+3ei2VWRTS=iNsF3M1iEGAQkw@mail.gmail.com>
	<A46B1710-F9B5-460A-8AA8-C27DF73A3D74@gazagnaire.org>
Date: Wed, 15 Oct 2014 11:14:13 +0100
Message-ID: <CAG4opy_MPoeX-_+36xE6X3R4K4Rxr3x4qFYffaOA2oAX+X55CQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 October 2014 10:40, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>>>>>>>> ( trace file: http://test.roscidus.com/static/log-x86.sexp )
>>>>>>>
>>>>>>> That's pretty cool! That would be even cooler to have a HTML/CSS/javascript output on a "debug" port for any unikernel :-)
>
> To continue on this, how do you generate the sexp currently? Is there a way to have a continuous profiling trace? Would be very cool to profile running unikernels ...

Currently, I have a modified Lwt that lets you register a tracing
handler. My unikernel registers one, adds every event it gets to a
list, and dumps the list to the console at the end.

But this is just a temporary hack. My current plan is to make a
Profile module and have Lwt call that directly. By default, the
profile module will just be stubs and the compiler will optimise out
all the profiling. Other Mirage libraries can then depend on the
profile library and add extra debugging information in the same way,
without any cost when profiling isn't used.

It should be possible to view a trace at any time (it's an append-only
log), although the layout algorithm may need to adjust earlier threads
as new information arrives (layout is done right-to-left).

[1] https://github.com/talex5/lwt/commits/tracing

> Thomas
>
>
>
>>>>>>
>>>>>> It's using cairo for rendering, so producing png or svg output should
>>>>>> be easy. My javascript skills aren't up to making it zoom smoothly in
>>>>>> a browser though...
>>>>>
>>>>> Regarding rendering, Daniel Buenzli's Vz library does have a js_of_ocaml
>>>>> backend, so this may be a good place to get started on a browser backend
>>>>> without the trouble of learning HTML/CSS:
>>>>>
>>>>> http://erratique.ch/software/vg
>>>>
>>>> I almost had it working with Vg, but there seemed to be no way to
>>>> measure the text, which is needed to place the labels, so I ended up
>>>> using HTML canvas directly. As it turned out, that API was a better
>>>> fit for me anyway (being more similar to Cairo's API).
>>>>
>>>> You can test it here:
>>>>
>>>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>>>
>>>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>>>> Firefox and Chromium; let me know if it works elsewhere.
>>>>
>>>> It doesn't support touch, so won't work on tablets (also, would
>>>> probably be very slow).
>>>>
>>>>> I'll send an update on Conduit soon, but Dave Scott has added sufficient
>>>>> Cohttp support that we could expose a Cohttp/Vchan from a unikernel and
>>>>> access it via Linux userspace.  In other words: you can use Chrome or Firefox
>>>>> to access the debugging port without going through TCP, which is pretty
>>>>> cool :-)
>>>>
>>>>> -anil
>>>>
>>>>
>>>>
>>>> --
>>>> Dr Thomas Leonard        http://0install.net/
>>>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>>>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>>>
>>
>>
>>
>> --
>> Dr Thomas Leonard        http://0install.net/
>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 15 10:18:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 10:18: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 1XeLez-0004EP-F1; Wed, 15 Oct 2014 10:18:25 +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 1XeLey-0004EK-7f
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 10:18:24 +0000
Received: from [85.158.137.68:6396] by server-15.bemta-3.messagelabs.com id
	32/B2-01573-FE94E345; Wed, 15 Oct 2014 10:18:23 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1413368301!10840100!1
X-Originating-IP: [209.85.220.174]
X-SpamReason: No, hits=0.6 required=7.0 tests=MAILTO_TO_SPAM_ADDR, RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12299 invoked from network); 15 Oct 2014 10:18:23 -0000
Received: from mail-vc0-f174.google.com (HELO mail-vc0-f174.google.com)
	(209.85.220.174)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 10:18:23 -0000
Received: by mail-vc0-f174.google.com with SMTP id hq12so682922vcb.19
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 03:18:21 -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=FpikFZH0nlwaoX6zwCccp6eb3ijh2i8yIcxHm459DuU=;
	b=Z82V61ny5Fl63bTBB5lt1GdEv39qI7GcVHQRkHv1FmTiCyoLsd2DgSPfhqVUB3BXu+
	5RWYchGrd4D1LjHiLcIC1Rvlgi7U25XNx4RgYFlJBgSrxh4xqCuFzHrp9eWyZgs7iz8s
	0RYd87eosAYFOyeY++gm1i5aMZihqNSPTq7GADzNMcxLmr+zkusPtfpPiP3MVO8ABcI3
	zAPEjK56D3Kylr9kbis9AD6r/+MESXk9Z1DBPexAJIEivtnjwOrTQsHxSeOTjMRrU0J2
	AB6mHpDG1JY1G26Gn1UfOYRbAzUfAR2j3/1MBQ1oxsTgDMG9djm0Rk073O/X6JxLB/CT
	bwpw==
MIME-Version: 1.0
X-Received: by 10.221.28.137 with SMTP id ru9mr10639654vcb.19.1413368301572;
	Wed, 15 Oct 2014 03:18:21 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Wed, 15 Oct 2014 03:18:21 -0700 (PDT)
In-Reply-To: <CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
Date: Wed, 15 Oct 2014 11:18:21 +0100
Message-ID: <CAG4opy_9Km8wGR-nFgC+QWivVb=kcg4UmZ1bru7cqyd7DfLgBg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Stephen Mack <smack815@gmail.com>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 October 2014 12:56, Stephen Mack <smack815@gmail.com> wrote:
>
>
> On Tue, Oct 14, 2014 at 8:14 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> You can test it here:
>>
>>
>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>
>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>> Firefox and Chromium; let me know if it works elsewhere.
>>
>> It doesn't support touch, so won't work on tablets (also, would
>> probably be very slow).
>
>
> Very nice however on:
>
> Windows 7/Chrome 37
> Windows 7/Firefox 29
> Windows 7/Internet Explorer 11
>
>  I don't get scroll bars however click and drag does move the content.

Yes, there aren't any scrollbars at the moment. Given that it's quite
common to be zoomed in with a scale factor of 1,000,000 or more, using
a scroll bar to move around isn't very practical, but it can be useful
to see where you are. Possibly we could just have some small position
indicators instead, like they have on tablets.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 15 10:18:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 10:18: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 1XeLez-0004EP-F1; Wed, 15 Oct 2014 10:18:25 +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 1XeLey-0004EK-7f
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 10:18:24 +0000
Received: from [85.158.137.68:6396] by server-15.bemta-3.messagelabs.com id
	32/B2-01573-FE94E345; Wed, 15 Oct 2014 10:18:23 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1413368301!10840100!1
X-Originating-IP: [209.85.220.174]
X-SpamReason: No, hits=0.6 required=7.0 tests=MAILTO_TO_SPAM_ADDR, RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12299 invoked from network); 15 Oct 2014 10:18:23 -0000
Received: from mail-vc0-f174.google.com (HELO mail-vc0-f174.google.com)
	(209.85.220.174)
	by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 10:18:23 -0000
Received: by mail-vc0-f174.google.com with SMTP id hq12so682922vcb.19
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 03:18:21 -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=FpikFZH0nlwaoX6zwCccp6eb3ijh2i8yIcxHm459DuU=;
	b=Z82V61ny5Fl63bTBB5lt1GdEv39qI7GcVHQRkHv1FmTiCyoLsd2DgSPfhqVUB3BXu+
	5RWYchGrd4D1LjHiLcIC1Rvlgi7U25XNx4RgYFlJBgSrxh4xqCuFzHrp9eWyZgs7iz8s
	0RYd87eosAYFOyeY++gm1i5aMZihqNSPTq7GADzNMcxLmr+zkusPtfpPiP3MVO8ABcI3
	zAPEjK56D3Kylr9kbis9AD6r/+MESXk9Z1DBPexAJIEivtnjwOrTQsHxSeOTjMRrU0J2
	AB6mHpDG1JY1G26Gn1UfOYRbAzUfAR2j3/1MBQ1oxsTgDMG9djm0Rk073O/X6JxLB/CT
	bwpw==
MIME-Version: 1.0
X-Received: by 10.221.28.137 with SMTP id ru9mr10639654vcb.19.1413368301572;
	Wed, 15 Oct 2014 03:18:21 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Wed, 15 Oct 2014 03:18:21 -0700 (PDT)
In-Reply-To: <CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
Date: Wed, 15 Oct 2014 11:18:21 +0100
Message-ID: <CAG4opy_9Km8wGR-nFgC+QWivVb=kcg4UmZ1bru7cqyd7DfLgBg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Stephen Mack <smack815@gmail.com>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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 October 2014 12:56, Stephen Mack <smack815@gmail.com> wrote:
>
>
> On Tue, Oct 14, 2014 at 8:14 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> You can test it here:
>>
>>
>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
>>
>> Scroll to zoom and drag to scroll as usual. Tested on Linux with
>> Firefox and Chromium; let me know if it works elsewhere.
>>
>> It doesn't support touch, so won't work on tablets (also, would
>> probably be very slow).
>
>
> Very nice however on:
>
> Windows 7/Chrome 37
> Windows 7/Firefox 29
> Windows 7/Internet Explorer 11
>
>  I don't get scroll bars however click and drag does move the content.

Yes, there aren't any scrollbars at the moment. Given that it's quite
common to be zoomed in with a scale factor of 1,000,000 or more, using
a scroll bar to move around isn't very practical, but it can be useful
to see where you are. Possibly we could just have some small position
indicators instead, like they have on tablets.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 15 10:45:06 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 10:45: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 1XeM4i-000519-Mk; Wed, 15 Oct 2014 10:45:00 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <smack815@gmail.com>) id 1XeM4h-000513-G1
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 10:44:59 +0000
Received: from [85.158.137.68:35537] by server-10.bemta-3.messagelabs.com id
	F9/43-01456-A205E345; Wed, 15 Oct 2014 10:44:58 +0000
X-Env-Sender: smack815@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1413369897!8382847!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3332 invoked from network); 15 Oct 2014 10:44:57 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 10:44:57 -0000
Received: by mail-wi0-f173.google.com with SMTP id fb4so12577209wid.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 03:44:56 -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=UsfdamBz9yVlp3Kbckgzy7qB2ZzWHeUFICQL/p9e8cI=;
	b=UNcQmddGFtzKdPHkNho383mNJFRkeOb8JffjYFAW6+1T/GBKY2ApyvFS7OA3pa9V3Y
	xjpDQC+z4QPz23YIx9ruJeGrQoenydu42ZV2sKc1lfSqK6caFsQhxnvcl+ciJeKHHhKY
	jY0JIBrRr3eGcI3baUGAxeed3Vtm7Lj5tzLSNKPcCukhPL2D1GYW754CIQQhPfkwUTrt
	evKTZ3o2CD4CYQ5V0ecHRxTjiAp2Ala7VplSn8GShNjw1FnfdKh9+fhQX4he3m3pNc+6
	RYifEq7ibqTrMSh2n4DuYi3XxPTdAnC8i3TW3AJKsHq4U/50gaVi5M4CATKU+yy0qhRW
	hTVA==
MIME-Version: 1.0
X-Received: by 10.180.219.106 with SMTP id pn10mr11560311wic.63.1413369896757; 
	Wed, 15 Oct 2014 03:44:56 -0700 (PDT)
Received: by 10.180.149.205 with HTTP; Wed, 15 Oct 2014 03:44:56 -0700 (PDT)
In-Reply-To: <CAG4opy_9Km8wGR-nFgC+QWivVb=kcg4UmZ1bru7cqyd7DfLgBg@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
	<CAG4opy_9Km8wGR-nFgC+QWivVb=kcg4UmZ1bru7cqyd7DfLgBg@mail.gmail.com>
Date: Wed, 15 Oct 2014 07:44:56 -0300
Message-ID: <CA+kMmLBZN4zFXd50xjWerK36Ys+npA7LiaLN8xFzGFACdNkT7g@mail.gmail.com>
From: Stephen Mack <smack815@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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="===============7160111134584393769=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7160111134584393769==
Content-Type: multipart/alternative; boundary=001a11346a70a1f09a050573d297

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

On Wed, Oct 15, 2014 at 7:18 AM, Thomas Leonard <talex5@gmail.com> wrote:
>
> >>
> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
> >>
> >> Scroll to zoom and drag to scroll as usual.
>


> Yes, there aren't any scrollbars at the moment. Given that it's quite
> common to be zoomed in with a scale factor of 1,000,000 or more, using
> a scroll bar to move around isn't very practical, but it can be useful
> to see where you are. Possibly we could just have some small position
> indicators instead, like they have on tablets.


Ok I think I just now understand what you meant by Scroll to zoom... mouse
scroll.  I am using a laptop that does not have a scroll mouse so at first
I was looking for the scroll bars.

--001a11346a70a1f09a050573d297
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, Oct 15, 2014 at 7:18 AM, Thomas Leonard <span dir=3D"ltr">&lt;<=
a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&g=
t;</span> wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div c=
lass=3D"h5">
&gt;&gt; <a href=3D"http://test.roscidus.com/static/html_viewer.html?t_min=
=3D8249.530963&amp;t_max=3D8249.534574" target=3D"_blank">http://test.rosci=
dus.com/static/html_viewer.html?t_min=3D8249.530963&amp;t_max=3D8249.534574=
</a><br>
&gt;&gt;<br>
&gt;&gt; Scroll to zoom and drag to scroll as usual.<br></div></div></block=
quote><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"=
><div class=3D"h5">
</div></div>Yes, there aren&#39;t any scrollbars at the moment. Given that =
it&#39;s quite<br>
common to be zoomed in with a scale factor of 1,000,000 or more, using<br>
a scroll bar to move around isn&#39;t very practical, but it can be useful<=
br>
to see where you are. Possibly we could just have some small position<br>
indicators instead, like they have on tablets.</blockquote><div><br></div><=
div>Ok I think I just now understand what you meant by Scroll to zoom... mo=
use scroll.=C2=A0 I am using a laptop that does not have a scroll mouse so =
at first I was looking for the scroll bars.=C2=A0</div></div></div></div>

--001a11346a70a1f09a050573d297--


--===============7160111134584393769==
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

--===============7160111134584393769==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 15 10:45:06 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 10:45: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 1XeM4i-000519-Mk; Wed, 15 Oct 2014 10:45:00 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <smack815@gmail.com>) id 1XeM4h-000513-G1
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 10:44:59 +0000
Received: from [85.158.137.68:35537] by server-10.bemta-3.messagelabs.com id
	F9/43-01456-A205E345; Wed, 15 Oct 2014 10:44:58 +0000
X-Env-Sender: smack815@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1413369897!8382847!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3332 invoked from network); 15 Oct 2014 10:44:57 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 10:44:57 -0000
Received: by mail-wi0-f173.google.com with SMTP id fb4so12577209wid.0
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 03:44:56 -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=UsfdamBz9yVlp3Kbckgzy7qB2ZzWHeUFICQL/p9e8cI=;
	b=UNcQmddGFtzKdPHkNho383mNJFRkeOb8JffjYFAW6+1T/GBKY2ApyvFS7OA3pa9V3Y
	xjpDQC+z4QPz23YIx9ruJeGrQoenydu42ZV2sKc1lfSqK6caFsQhxnvcl+ciJeKHHhKY
	jY0JIBrRr3eGcI3baUGAxeed3Vtm7Lj5tzLSNKPcCukhPL2D1GYW754CIQQhPfkwUTrt
	evKTZ3o2CD4CYQ5V0ecHRxTjiAp2Ala7VplSn8GShNjw1FnfdKh9+fhQX4he3m3pNc+6
	RYifEq7ibqTrMSh2n4DuYi3XxPTdAnC8i3TW3AJKsHq4U/50gaVi5M4CATKU+yy0qhRW
	hTVA==
MIME-Version: 1.0
X-Received: by 10.180.219.106 with SMTP id pn10mr11560311wic.63.1413369896757; 
	Wed, 15 Oct 2014 03:44:56 -0700 (PDT)
Received: by 10.180.149.205 with HTTP; Wed, 15 Oct 2014 03:44:56 -0700 (PDT)
In-Reply-To: <CAG4opy_9Km8wGR-nFgC+QWivVb=kcg4UmZ1bru7cqyd7DfLgBg@mail.gmail.com>
References: <CAG4opy_xqS-4DxNcB8VX65cLE_MJfBMT2T-4=d+Osh8sgDut5A@mail.gmail.com>
	<CAG4opy9sXi5k+D2F+fH5RvG=TZ0Q+ZbgfWFrW1CQ7-ofgF_1YQ@mail.gmail.com>
	<5A55F621-6377-4036-BEA5-A4875D116437@gazagnaire.org>
	<CAG4opy8Q3L1yZYVsuScnPPnGMAj=Og3Xg5wsqSPW3eXVwT2XXQ@mail.gmail.com>
	<ADFC1904-234D-4F35-A8D8-D0E5E69AB916@recoil.org>
	<CAG4opy_kOmqXGsj3Owj7J89zVaJN0qsJLrRf7o-nDbyfdqE_OQ@mail.gmail.com>
	<CA+kMmLDVFtHggyJgrVjkoJdUkmR9Ws88SobfCXyFkkXwU+r_CQ@mail.gmail.com>
	<CAG4opy_9Km8wGR-nFgC+QWivVb=kcg4UmZ1bru7cqyd7DfLgBg@mail.gmail.com>
Date: Wed, 15 Oct 2014 07:44:56 -0300
Message-ID: <CA+kMmLBZN4zFXd50xjWerK36Ys+npA7LiaLN8xFzGFACdNkT7g@mail.gmail.com>
From: Stephen Mack <smack815@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: Thomas Gazagnaire <thomas@gazagnaire.org>,
	"mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Mirage tracing
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="===============7160111134584393769=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7160111134584393769==
Content-Type: multipart/alternative; boundary=001a11346a70a1f09a050573d297

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

On Wed, Oct 15, 2014 at 7:18 AM, Thomas Leonard <talex5@gmail.com> wrote:
>
> >>
> http://test.roscidus.com/static/html_viewer.html?t_min=8249.530963&t_max=8249.534574
> >>
> >> Scroll to zoom and drag to scroll as usual.
>


> Yes, there aren't any scrollbars at the moment. Given that it's quite
> common to be zoomed in with a scale factor of 1,000,000 or more, using
> a scroll bar to move around isn't very practical, but it can be useful
> to see where you are. Possibly we could just have some small position
> indicators instead, like they have on tablets.


Ok I think I just now understand what you meant by Scroll to zoom... mouse
scroll.  I am using a laptop that does not have a scroll mouse so at first
I was looking for the scroll bars.

--001a11346a70a1f09a050573d297
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, Oct 15, 2014 at 7:18 AM, Thomas Leonard <span dir=3D"ltr">&lt;<=
a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&g=
t;</span> wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div c=
lass=3D"h5">
&gt;&gt; <a href=3D"http://test.roscidus.com/static/html_viewer.html?t_min=
=3D8249.530963&amp;t_max=3D8249.534574" target=3D"_blank">http://test.rosci=
dus.com/static/html_viewer.html?t_min=3D8249.530963&amp;t_max=3D8249.534574=
</a><br>
&gt;&gt;<br>
&gt;&gt; Scroll to zoom and drag to scroll as usual.<br></div></div></block=
quote><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"=
><div class=3D"h5">
</div></div>Yes, there aren&#39;t any scrollbars at the moment. Given that =
it&#39;s quite<br>
common to be zoomed in with a scale factor of 1,000,000 or more, using<br>
a scroll bar to move around isn&#39;t very practical, but it can be useful<=
br>
to see where you are. Possibly we could just have some small position<br>
indicators instead, like they have on tablets.</blockquote><div><br></div><=
div>Ok I think I just now understand what you meant by Scroll to zoom... mo=
use scroll.=C2=A0 I am using a laptop that does not have a scroll mouse so =
at first I was looking for the scroll bars.=C2=A0</div></div></div></div>

--001a11346a70a1f09a050573d297--


--===============7160111134584393769==
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

--===============7160111134584393769==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 15 11:08:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 11:08:31 +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 1XeMRR-0005pl-96; Wed, 15 Oct 2014 11:08:29 +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 1XeMRP-0005pg-MT
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 11:08:27 +0000
Received: from [85.158.137.68:28848] by server-5.bemta-3.messagelabs.com id
	FF/06-30889-BA55E345; Wed, 15 Oct 2014 11:08:27 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1413371304!10830182!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12238 invoked from network); 15 Oct 2014 11:08:25 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 11:08:25 -0000
Received: by mail-vc0-f173.google.com with SMTP id ij19so739361vcb.32
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 04:08:24 -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=HBgwrM6ItCP3ydViuewJjzybMCQCUuzxWCtqOq+sbkc=;
	b=LCHgrNcKPo2GSwFTVtwQuUZQN5a3L5YGPBx7NjPPyTzQsqO1TUmudAXPnftjD1r7D9
	jbFy8KWB+yVJ6+rM4AOBY45iPwg31Msn/TkOY6V71Y/eS2PBIzks6ViWTv6BADLWRVne
	+V7nKeEW/jX26ydzbPxLDahCFpfqzg1zatHFYFEE9661ZzLaGgwqDRcrB4TprU3RxUj7
	fNy0j+PV8HTXK9/hZ+O9omA1MG/TFlnmqrNBseI1D1MjCWj9ero+JwVnamZVDzaXTlLO
	00DKKGjc4nTC4ipM+RJEw6KkivDHuodmv8byZWUUvpT8xfwi8lLjj18DHrl4amLEdM24
	XZ5A==
MIME-Version: 1.0
X-Received: by 10.52.26.140 with SMTP id l12mr9332312vdg.12.1413371304363;
	Wed, 15 Oct 2014 04:08:24 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Wed, 15 Oct 2014 04:08:24 -0700 (PDT)
In-Reply-To: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
Date: Wed, 15 Oct 2014 12:08:24 +0100
Message-ID: <CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] magpie reference
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 October 2014 16:48, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
> from call:
>
> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>
> http://dl.acm.org/citation.cfm?id=1251272

Thanks for the reference. Being able to highlight all threads related
to a particular input event could be useful, indeed. In the current
system, we can see that e.g. the blkfront.poll thread gets woken up
for each read response and notifies the main thread waiting for the
data:

http://test.roscidus.com/static/html_viewer.html?t_min=8249.586333&t_max=8249.588562

But we don't link it back to the original request. In this case just
marking the request on the diagram would make it obvious what's
happening, but in more complicated cases some visual indication of the
original source could be useful.

You could probably do your clustering analysis on these traces if you
wanted to. Instrumenting Lwt gets you a lot of information
automatically that you would otherwise have to write schemas for, but
you do still need to handle the multiplexing problem.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 15 11:08:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 11:08:31 +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 1XeMRR-0005pl-96; Wed, 15 Oct 2014 11:08:29 +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 1XeMRP-0005pg-MT
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 11:08:27 +0000
Received: from [85.158.137.68:28848] by server-5.bemta-3.messagelabs.com id
	FF/06-30889-BA55E345; Wed, 15 Oct 2014 11:08:27 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1413371304!10830182!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12238 invoked from network); 15 Oct 2014 11:08:25 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Oct 2014 11:08:25 -0000
Received: by mail-vc0-f173.google.com with SMTP id ij19so739361vcb.32
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 04:08:24 -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=HBgwrM6ItCP3ydViuewJjzybMCQCUuzxWCtqOq+sbkc=;
	b=LCHgrNcKPo2GSwFTVtwQuUZQN5a3L5YGPBx7NjPPyTzQsqO1TUmudAXPnftjD1r7D9
	jbFy8KWB+yVJ6+rM4AOBY45iPwg31Msn/TkOY6V71Y/eS2PBIzks6ViWTv6BADLWRVne
	+V7nKeEW/jX26ydzbPxLDahCFpfqzg1zatHFYFEE9661ZzLaGgwqDRcrB4TprU3RxUj7
	fNy0j+PV8HTXK9/hZ+O9omA1MG/TFlnmqrNBseI1D1MjCWj9ero+JwVnamZVDzaXTlLO
	00DKKGjc4nTC4ipM+RJEw6KkivDHuodmv8byZWUUvpT8xfwi8lLjj18DHrl4amLEdM24
	XZ5A==
MIME-Version: 1.0
X-Received: by 10.52.26.140 with SMTP id l12mr9332312vdg.12.1413371304363;
	Wed, 15 Oct 2014 04:08:24 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Wed, 15 Oct 2014 04:08:24 -0700 (PDT)
In-Reply-To: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
Date: Wed, 15 Oct 2014 12:08:24 +0100
Message-ID: <CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] magpie reference
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 October 2014 16:48, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
> from call:
>
> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>
> http://dl.acm.org/citation.cfm?id=1251272

Thanks for the reference. Being able to highlight all threads related
to a particular input event could be useful, indeed. In the current
system, we can see that e.g. the blkfront.poll thread gets woken up
for each read response and notifies the main thread waiting for the
data:

http://test.roscidus.com/static/html_viewer.html?t_min=8249.586333&t_max=8249.588562

But we don't link it back to the original request. In this case just
marking the request on the diagram would make it obvious what's
happening, but in more complicated cases some visual indication of the
original source could be useful.

You could probably do your clustering analysis on these traces if you
wanted to. Instrumenting Lwt gets you a lot of information
automatically that you would otherwise have to write schemas for, but
you do still need to handle the multiplexing problem.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 15 22:11:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 22:11: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 1XeWn0-0008B6-On; Wed, 15 Oct 2014 22:11:26 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XeWmz-0008B1-MS
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 22:11:25 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	10/11-10419-D01FE345; Wed, 15 Oct 2014 22:11:25 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-10.tower-21.messagelabs.com!1413411084!13218299!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32595 invoked from network); 15 Oct 2014 22:11:24 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-10.tower-21.messagelabs.com with SMTP;
	15 Oct 2014 22:11:24 -0000
Received: (qmail 14357 invoked from network); 15 Oct 2014 22:11:23 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 15 Oct 2014 22:11:23 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 13590-02 for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 23:11:15 +0100 (BST)
Received: (qmail 14283 invoked by uid 599); 15 Oct 2014 22:11:15 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Wed, 15 Oct 2014 23:11:15 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XeWmp-0002f9-1L; Wed, 15 Oct 2014 23:11:15 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Leonard <talex5@gmail.com>
Date: Wed, 15 Oct 2014 23:11:13 +0100
Thread-Topic: [MirageOS-devel] magpie reference
Thread-Index: Ac/oxO9GpNFiZlAJSICYRvly8oLzIw==
Message-ID: <92320AE9-FA30-4455-B56B-941F091A500F@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
	<CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
In-Reply-To: <CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] magpie reference
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="===============7839761951537356755=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7839761951537356755==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 15 Oct 2014, at 12:08, Thomas Leonard <talex5@gmail.com> wrote:

> On 14 October 2014 16:48, Richard Mortier
> <Richard.Mortier@nottingham.ac.uk> wrote:
>> from call:
>>=20
>> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>>=20
>> http://dl.acm.org/citation.cfm?id=3D1251272
>=20
> Thanks for the reference. Being able to highlight all threads related
> to a particular input event could be useful, indeed.

yes; both to see system structure and also to understand performance in =
detail. eg., could your Lwt monitoring changes also sample cycle counter =
(or whatever would be appropriate in a domU?) so as to annotate segments =
with resources consumed?

> In the current
> system, we can see that e.g. the blkfront.poll thread gets woken up
> for each read response and notifies the main thread waiting for the
> data:
>=20
> =
http://test.roscidus.com/static/html_viewer.html?t_min=3D8249.586333&t_max=
=3D8249.588562
>=20
> But we don't link it back to the original request. In this case just
> marking the request on the diagram would make it obvious what's
> happening, but in more complicated cases some visual indication of the
> original source could be useful.

note that one of the key issues we had when parsing events was the =
brittleness of the parser to events being reordered or dropped -- making =
it remarkably easy to end up in a state where nearly all events were =
either assigned to the same request or to no request.

> You could probably do your clustering analysis on these traces if you
> wanted to. Instrumenting Lwt gets you a lot of information
> automatically that you would otherwise have to write schemas for, but
> you do still need to handle the multiplexing problem.

not sure what you mean by the multiplexing problem?  if simply the need =
to trace the impact of input requests, the two solutions that were =
followed at the time were to assign each request a unique id, or to =
maintain mapping tables at every "module" boundary so things could be =
stitched together. we strongly believed (and i still strongly believe) =
that the latter is preferable-- it makes the tracing infrastructure much =
more general and usable, with little extra overhead and obviates the =
need to generate unique ids for inputs (which becomes fiddly in a =
distributed system).

--=20
Cheers,

R.





--Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUPvECAAoJEOLF27JWwSg3sTAQAMd7cX8WgfUK73Xh5dn9HIoZ
ISBPHDz1A9lgDbVVGmfks1LJ7ifbl3uy7ApnSPvM56Kk54RcAUZZRzI092wVrxKy
tAn28/G6U+rJM3MGzMlRQREoBQD210ZjgWsqzSqE/sozpvoXSDXb+KW3jdoQy51o
/y+rTxEfoAPtw+Ywh3yKl4db5myge3xBnXpcBDIycRcq/PpgErCI32lEPJe4f+y1
cPOiVlbIc4TrLDvFAmojgvbK4hYLAcmjuSQMSSaQJ8VKqOuksO2N8KEyRyQd8KBx
h7sPAZAf9aXp/SQ4/0L3TQqvf3GWAKGhwqyEUQ0MsElkr5m3HAnHk3bjFz5L+c2M
Os34Ah1Z9G5jPsdIDmDIbDtSEAjzKaCmPWn+6HoYEJo1ycwfhwvuCQv+1lwu4Vuy
Rsd73usVAk69WHx5xculoYb1dbAZ6iKJcp4sNjcJDEb4N/OsQ/cssnmuHlttHlwP
VG3EjIH92xk53WhxMhYz4o2WVUoDtRtD2QD5Fu5NR9SZvBjzNAfD376kdsGypkhZ
gHrA+TA51MlDA2tpddnayHWH/Gkqiac5Zgcds3iLRtBDyh7/KJo3nkxhy0GnoJ+d
8ToVfn3ENwDLKEYZNdMThWqaEpOfbjJHBB1eYF43phP+PX3ajeU722UORgzaf2SS
qJ75Cnqc/ydUWqCLukRk
=tbpP
-----END PGP SIGNATURE-----

--Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03--


--===============7839761951537356755==
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

--===============7839761951537356755==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 15 22:11:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 15 Oct 2014 22:11: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 1XeWn0-0008B6-On; Wed, 15 Oct 2014 22:11:26 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XeWmz-0008B1-MS
	for mirageos-devel@lists.xenproject.org; Wed, 15 Oct 2014 22:11:25 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	10/11-10419-D01FE345; Wed, 15 Oct 2014 22:11:25 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-10.tower-21.messagelabs.com!1413411084!13218299!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32595 invoked from network); 15 Oct 2014 22:11:24 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-10.tower-21.messagelabs.com with SMTP;
	15 Oct 2014 22:11:24 -0000
Received: (qmail 14357 invoked from network); 15 Oct 2014 22:11:23 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 15 Oct 2014 22:11:23 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 13590-02 for <mirageos-devel@lists.xenproject.org>;
	Wed, 15 Oct 2014 23:11:15 +0100 (BST)
Received: (qmail 14283 invoked by uid 599); 15 Oct 2014 22:11:15 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Wed, 15 Oct 2014 23:11:15 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XeWmp-0002f9-1L; Wed, 15 Oct 2014 23:11:15 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Leonard <talex5@gmail.com>
Date: Wed, 15 Oct 2014 23:11:13 +0100
Thread-Topic: [MirageOS-devel] magpie reference
Thread-Index: Ac/oxO9GpNFiZlAJSICYRvly8oLzIw==
Message-ID: <92320AE9-FA30-4455-B56B-941F091A500F@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
	<CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
In-Reply-To: <CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] magpie reference
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="===============7839761951537356755=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7839761951537356755==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 15 Oct 2014, at 12:08, Thomas Leonard <talex5@gmail.com> wrote:

> On 14 October 2014 16:48, Richard Mortier
> <Richard.Mortier@nottingham.ac.uk> wrote:
>> from call:
>>=20
>> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>>=20
>> http://dl.acm.org/citation.cfm?id=3D1251272
>=20
> Thanks for the reference. Being able to highlight all threads related
> to a particular input event could be useful, indeed.

yes; both to see system structure and also to understand performance in =
detail. eg., could your Lwt monitoring changes also sample cycle counter =
(or whatever would be appropriate in a domU?) so as to annotate segments =
with resources consumed?

> In the current
> system, we can see that e.g. the blkfront.poll thread gets woken up
> for each read response and notifies the main thread waiting for the
> data:
>=20
> =
http://test.roscidus.com/static/html_viewer.html?t_min=3D8249.586333&t_max=
=3D8249.588562
>=20
> But we don't link it back to the original request. In this case just
> marking the request on the diagram would make it obvious what's
> happening, but in more complicated cases some visual indication of the
> original source could be useful.

note that one of the key issues we had when parsing events was the =
brittleness of the parser to events being reordered or dropped -- making =
it remarkably easy to end up in a state where nearly all events were =
either assigned to the same request or to no request.

> You could probably do your clustering analysis on these traces if you
> wanted to. Instrumenting Lwt gets you a lot of information
> automatically that you would otherwise have to write schemas for, but
> you do still need to handle the multiplexing problem.

not sure what you mean by the multiplexing problem?  if simply the need =
to trace the impact of input requests, the two solutions that were =
followed at the time were to assign each request a unique id, or to =
maintain mapping tables at every "module" boundary so things could be =
stitched together. we strongly believed (and i still strongly believe) =
that the latter is preferable-- it makes the tracing infrastructure much =
more general and usable, with little extra overhead and obviates the =
need to generate unique ids for inputs (which becomes fiddly in a =
distributed system).

--=20
Cheers,

R.





--Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUPvECAAoJEOLF27JWwSg3sTAQAMd7cX8WgfUK73Xh5dn9HIoZ
ISBPHDz1A9lgDbVVGmfks1LJ7ifbl3uy7ApnSPvM56Kk54RcAUZZRzI092wVrxKy
tAn28/G6U+rJM3MGzMlRQREoBQD210ZjgWsqzSqE/sozpvoXSDXb+KW3jdoQy51o
/y+rTxEfoAPtw+Ywh3yKl4db5myge3xBnXpcBDIycRcq/PpgErCI32lEPJe4f+y1
cPOiVlbIc4TrLDvFAmojgvbK4hYLAcmjuSQMSSaQJ8VKqOuksO2N8KEyRyQd8KBx
h7sPAZAf9aXp/SQ4/0L3TQqvf3GWAKGhwqyEUQ0MsElkr5m3HAnHk3bjFz5L+c2M
Os34Ah1Z9G5jPsdIDmDIbDtSEAjzKaCmPWn+6HoYEJo1ycwfhwvuCQv+1lwu4Vuy
Rsd73usVAk69WHx5xculoYb1dbAZ6iKJcp4sNjcJDEb4N/OsQ/cssnmuHlttHlwP
VG3EjIH92xk53WhxMhYz4o2WVUoDtRtD2QD5Fu5NR9SZvBjzNAfD376kdsGypkhZ
gHrA+TA51MlDA2tpddnayHWH/Gkqiac5Zgcds3iLRtBDyh7/KJo3nkxhy0GnoJ+d
8ToVfn3ENwDLKEYZNdMThWqaEpOfbjJHBB1eYF43phP+PX3ajeU722UORgzaf2SS
qJ75Cnqc/ydUWqCLukRk
=tbpP
-----END PGP SIGNATURE-----

--Apple-Mail=_F214440D-7529-4FEC-B66A-ADAFEBA68E03--


--===============7839761951537356755==
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

--===============7839761951537356755==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 17 05:02:43 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 17 Oct 2014 05:02: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 1XezgR-0002L9-94; Fri, 17 Oct 2014 05:02:35 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <bbrietzke@gmail.com>) id 1XepVp-0005PL-CT
	for mirageos-devel@lists.xenproject.org; Thu, 16 Oct 2014 18:10:57 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	C3/38-02952-03A00445; Thu, 16 Oct 2014 18:10:56 +0000
X-Env-Sender: bbrietzke@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1413483055!13487062!1
X-Originating-IP: [209.85.217.174]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_10_20,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21268 invoked from network); 16 Oct 2014 18:10:55 -0000
Received: from mail-lb0-f174.google.com (HELO mail-lb0-f174.google.com)
	(209.85.217.174)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Oct 2014 18:10:55 -0000
Received: by mail-lb0-f174.google.com with SMTP id p9so3251993lbv.5
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 16 Oct 2014 11:10:55 -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=EzduwmH3dJ1kVTQHT9MWBjQ2HzzsCwJphekB66F2RWc=;
	b=t/nd5nVIH7SmXg2Yi/oNQtJmRqCtL30GAq6q6HRXZLw38UmCPTVd1cODfSm9gaPo+h
	a2yqZYyMgusp98k6fpqstUi4sk6Ns3YvEE1TjAmNECHIOvHIZi7KdZUausKtavRgLmKg
	d5pMTNpB9kGQgSCFUgOuJ4AuAjiN0/mpatVTD2Qx7bD/+sOFWz+8OBiklpTSKI4o8UvQ
	Q9tiQtZSco54BL/qfLQw4hHkrITtLHGi+r/ZMVaXpWTlfbbNcdNpUUDpnymJ/EM74u59
	84iPB9/d5sIrvFb/A3ZhabMt62TTw7z9MD25SLHlSsC7J7S6M6bu1UQjKPMwhPgOyfTI
	MCiA==
MIME-Version: 1.0
X-Received: by 10.112.200.9 with SMTP id jo9mr3452941lbc.82.1413483054886;
	Thu, 16 Oct 2014 11:10:54 -0700 (PDT)
Received: by 10.112.236.100 with HTTP; Thu, 16 Oct 2014 11:10:54 -0700 (PDT)
Date: Thu, 16 Oct 2014 13:10:54 -0500
Message-ID: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
From: Brian Brietzke <bbrietzke@gmail.com>
To: mirageos-devel@lists.xenproject.org
X-Mailman-Approved-At: Fri, 17 Oct 2014 05:02:33 +0000
Subject: [MirageOS-devel] Really fascinating
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="===============6728791890099986547=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6728791890099986547==
Content-Type: multipart/alternative; boundary=001a11c371c261f67305058e2b34

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

I was told about the project from a friend and I must say that I agree with
him: wow!  I'm truly impressed with what is going on and the potential of
what is happening.  Just, wow.

I would love to being exploring some of these ideas and concepts, along
with learning OCaml, so I've picked a few books, setup a sandbox that I can
play with ( both Xen and dev side ), but have run into some things that I
would like to get a little clarification on.

Forgive me if this is the wrong place to ask these questions.  If you will
let me know the correct place, I'll send them there.

I notice that both the Xen page and the open mirage site says that 2.0 is
available, but I can only see 1.2 in the OPAM repositories that are
installed by default.  Is there a different repository that I should be
connecting to in order to get the lastest and greatest?

One of the easier scenario's for bringing these ideas into my workplace is
setting a small REST or REST/SPA application as a proof of concept ( our
CTO loves POCs ), but I don't find much in the way of documentation.  The
article at http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/,
which is incredibly helpful by the way, only shows how to handle requests
with non-parameterized URLs.  Using cohttp, can we do parameterized URLs
such as /resource/{id} or /blog/{articleId}/comments?

Using the https://github.com/mirage/mirage-skeleton as a point of
exploration, the static_website fails to build with an error in the
config.ml on line 41 ( conduit_direct ).  Is there a package missing or
something else that will resolve the build failure? Or is it related to
having the 1.2 packages instead of the 2.0 packages?

How do you handle configuration?  For instance, you build an application
that generates one xen image per person, would you copy over the specific
user information prior to the build, or is there a better way?  I can see
that https://github.com/MagnusS/jitsu would be the way to start the
application on demand and also clean it up when it is no longer being used.

I notice that there is a lot of talk of using the cubieboards for running
the images.  How do you handle talking with the hardware components such as
the GPIOs or I2C?

Keep up the great work guys!

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

<div dir=3D"ltr">I was told about the project from a friend and I must say =
that I agree with him: wow!=C2=A0 I&#39;m truly impressed with what is goin=
g on and the potential of what is happening.=C2=A0 Just, wow.<div><br></div=
><div>I would love to being exploring some of these ideas and concepts, alo=
ng with learning OCaml, so I&#39;ve picked a few books, setup a sandbox tha=
t I can play with ( both Xen and dev side ), but have run into some things =
that I would like to get a little clarification on.</div><div><br></div><di=
v>Forgive me if this is the wrong place to ask these questions.=C2=A0 If yo=
u will let me know the correct place, I&#39;ll send them there.</div><div><=
br></div><div>I notice that both the Xen page and the open mirage site says=
 that 2.0 is available, but I can only see 1.2 in the OPAM repositories tha=
t are installed by default.=C2=A0 Is there a different repository that I sh=
ould be connecting to in order to get the lastest and greatest?</div><div><=
br></div><div>One of the easier scenario&#39;s for bringing these ideas int=
o my workplace is setting a small REST or REST/SPA application as a proof o=
f concept ( our CTO loves POCs ), but I don&#39;t find much in the way of d=
ocumentation.=C2=A0 The article at=C2=A0<a href=3D"http://roscidus.com/blog=
/blog/2014/07/28/my-first-unikernel/">http://roscidus.com/blog/blog/2014/07=
/28/my-first-unikernel/</a>, which is incredibly helpful by the way, only s=
hows how to handle requests with non-parameterized URLs.=C2=A0 Using cohttp=
, can we do parameterized URLs such as /resource/{id} or /blog/{articleId}/=
comments?</div><div><br></div><div>Using the=C2=A0<a href=3D"https://github=
.com/mirage/mirage-skeleton">https://github.com/mirage/mirage-skeleton</a> =
as a point of exploration, the static_website fails to build with an error =
in the <a href=3D"http://config.ml">config.ml</a> on line 41 ( conduit_dire=
ct ).=C2=A0 Is there a package missing or something else that will resolve =
the build failure? Or is it related to having the 1.2 packages instead of t=
he 2.0 packages?</div><div><br></div><div>How do you handle configuration?=
=C2=A0 For instance, you build an application that generates one xen image =
per person, would you copy over the specific user information prior to the =
build, or is there a better way?=C2=A0 I can see that=C2=A0<a href=3D"https=
://github.com/MagnusS/jitsu">https://github.com/MagnusS/jitsu</a> would be =
the way to start the application on demand and also clean it up when it is =
no longer being used.</div><div><br></div><div>I notice that there is a lot=
 of talk of using the cubieboards for running the images.=C2=A0 How do you =
handle talking with the hardware components such as the GPIOs or I2C?</div>=
<div><br></div><div>Keep up the great work guys! =C2=A0</div><div><br></div=
></div>

--001a11c371c261f67305058e2b34--


--===============6728791890099986547==
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

--===============6728791890099986547==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 17 05:02:43 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 17 Oct 2014 05:02: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 1XezgR-0002L9-94; Fri, 17 Oct 2014 05:02:35 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <bbrietzke@gmail.com>) id 1XepVp-0005PL-CT
	for mirageos-devel@lists.xenproject.org; Thu, 16 Oct 2014 18:10:57 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	C3/38-02952-03A00445; Thu, 16 Oct 2014 18:10:56 +0000
X-Env-Sender: bbrietzke@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1413483055!13487062!1
X-Originating-IP: [209.85.217.174]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_10_20,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21268 invoked from network); 16 Oct 2014 18:10:55 -0000
Received: from mail-lb0-f174.google.com (HELO mail-lb0-f174.google.com)
	(209.85.217.174)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	16 Oct 2014 18:10:55 -0000
Received: by mail-lb0-f174.google.com with SMTP id p9so3251993lbv.5
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 16 Oct 2014 11:10:55 -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=EzduwmH3dJ1kVTQHT9MWBjQ2HzzsCwJphekB66F2RWc=;
	b=t/nd5nVIH7SmXg2Yi/oNQtJmRqCtL30GAq6q6HRXZLw38UmCPTVd1cODfSm9gaPo+h
	a2yqZYyMgusp98k6fpqstUi4sk6Ns3YvEE1TjAmNECHIOvHIZi7KdZUausKtavRgLmKg
	d5pMTNpB9kGQgSCFUgOuJ4AuAjiN0/mpatVTD2Qx7bD/+sOFWz+8OBiklpTSKI4o8UvQ
	Q9tiQtZSco54BL/qfLQw4hHkrITtLHGi+r/ZMVaXpWTlfbbNcdNpUUDpnymJ/EM74u59
	84iPB9/d5sIrvFb/A3ZhabMt62TTw7z9MD25SLHlSsC7J7S6M6bu1UQjKPMwhPgOyfTI
	MCiA==
MIME-Version: 1.0
X-Received: by 10.112.200.9 with SMTP id jo9mr3452941lbc.82.1413483054886;
	Thu, 16 Oct 2014 11:10:54 -0700 (PDT)
Received: by 10.112.236.100 with HTTP; Thu, 16 Oct 2014 11:10:54 -0700 (PDT)
Date: Thu, 16 Oct 2014 13:10:54 -0500
Message-ID: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
From: Brian Brietzke <bbrietzke@gmail.com>
To: mirageos-devel@lists.xenproject.org
X-Mailman-Approved-At: Fri, 17 Oct 2014 05:02:33 +0000
Subject: [MirageOS-devel] Really fascinating
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="===============6728791890099986547=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6728791890099986547==
Content-Type: multipart/alternative; boundary=001a11c371c261f67305058e2b34

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

I was told about the project from a friend and I must say that I agree with
him: wow!  I'm truly impressed with what is going on and the potential of
what is happening.  Just, wow.

I would love to being exploring some of these ideas and concepts, along
with learning OCaml, so I've picked a few books, setup a sandbox that I can
play with ( both Xen and dev side ), but have run into some things that I
would like to get a little clarification on.

Forgive me if this is the wrong place to ask these questions.  If you will
let me know the correct place, I'll send them there.

I notice that both the Xen page and the open mirage site says that 2.0 is
available, but I can only see 1.2 in the OPAM repositories that are
installed by default.  Is there a different repository that I should be
connecting to in order to get the lastest and greatest?

One of the easier scenario's for bringing these ideas into my workplace is
setting a small REST or REST/SPA application as a proof of concept ( our
CTO loves POCs ), but I don't find much in the way of documentation.  The
article at http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/,
which is incredibly helpful by the way, only shows how to handle requests
with non-parameterized URLs.  Using cohttp, can we do parameterized URLs
such as /resource/{id} or /blog/{articleId}/comments?

Using the https://github.com/mirage/mirage-skeleton as a point of
exploration, the static_website fails to build with an error in the
config.ml on line 41 ( conduit_direct ).  Is there a package missing or
something else that will resolve the build failure? Or is it related to
having the 1.2 packages instead of the 2.0 packages?

How do you handle configuration?  For instance, you build an application
that generates one xen image per person, would you copy over the specific
user information prior to the build, or is there a better way?  I can see
that https://github.com/MagnusS/jitsu would be the way to start the
application on demand and also clean it up when it is no longer being used.

I notice that there is a lot of talk of using the cubieboards for running
the images.  How do you handle talking with the hardware components such as
the GPIOs or I2C?

Keep up the great work guys!

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

<div dir=3D"ltr">I was told about the project from a friend and I must say =
that I agree with him: wow!=C2=A0 I&#39;m truly impressed with what is goin=
g on and the potential of what is happening.=C2=A0 Just, wow.<div><br></div=
><div>I would love to being exploring some of these ideas and concepts, alo=
ng with learning OCaml, so I&#39;ve picked a few books, setup a sandbox tha=
t I can play with ( both Xen and dev side ), but have run into some things =
that I would like to get a little clarification on.</div><div><br></div><di=
v>Forgive me if this is the wrong place to ask these questions.=C2=A0 If yo=
u will let me know the correct place, I&#39;ll send them there.</div><div><=
br></div><div>I notice that both the Xen page and the open mirage site says=
 that 2.0 is available, but I can only see 1.2 in the OPAM repositories tha=
t are installed by default.=C2=A0 Is there a different repository that I sh=
ould be connecting to in order to get the lastest and greatest?</div><div><=
br></div><div>One of the easier scenario&#39;s for bringing these ideas int=
o my workplace is setting a small REST or REST/SPA application as a proof o=
f concept ( our CTO loves POCs ), but I don&#39;t find much in the way of d=
ocumentation.=C2=A0 The article at=C2=A0<a href=3D"http://roscidus.com/blog=
/blog/2014/07/28/my-first-unikernel/">http://roscidus.com/blog/blog/2014/07=
/28/my-first-unikernel/</a>, which is incredibly helpful by the way, only s=
hows how to handle requests with non-parameterized URLs.=C2=A0 Using cohttp=
, can we do parameterized URLs such as /resource/{id} or /blog/{articleId}/=
comments?</div><div><br></div><div>Using the=C2=A0<a href=3D"https://github=
.com/mirage/mirage-skeleton">https://github.com/mirage/mirage-skeleton</a> =
as a point of exploration, the static_website fails to build with an error =
in the <a href=3D"http://config.ml">config.ml</a> on line 41 ( conduit_dire=
ct ).=C2=A0 Is there a package missing or something else that will resolve =
the build failure? Or is it related to having the 1.2 packages instead of t=
he 2.0 packages?</div><div><br></div><div>How do you handle configuration?=
=C2=A0 For instance, you build an application that generates one xen image =
per person, would you copy over the specific user information prior to the =
build, or is there a better way?=C2=A0 I can see that=C2=A0<a href=3D"https=
://github.com/MagnusS/jitsu">https://github.com/MagnusS/jitsu</a> would be =
the way to start the application on demand and also clean it up when it is =
no longer being used.</div><div><br></div><div>I notice that there is a lot=
 of talk of using the cubieboards for running the images.=C2=A0 How do you =
handle talking with the hardware components such as the GPIOs or I2C?</div>=
<div><br></div><div>Keep up the great work guys! =C2=A0</div><div><br></div=
></div>

--001a11c371c261f67305058e2b34--


--===============6728791890099986547==
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

--===============6728791890099986547==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 17 07:20:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 17 Oct 2014 07:20: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 1Xf1pm-0005bI-4y; Fri, 17 Oct 2014 07:20:22 +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 1Xf1pk-0005bD-TK
	for mirageos-devel@lists.xenproject.org; Fri, 17 Oct 2014 07:20:21 +0000
Received: from [85.158.139.211:22332] by server-3.bemta-5.messagelabs.com id
	18/BA-00307-433C0445; Fri, 17 Oct 2014 07:20:20 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1413530418!11730552!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5154 invoked from network); 17 Oct 2014 07:20:18 -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; 17 Oct 2014 07:20:18 -0000
Received: from [10.100.7.132] (12.35.79.254 [12.35.79.254]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 71480062;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 17 Oct 2014 08:22:45 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
Date: Fri, 17 Oct 2014 00:20:11 -0700
Message-Id: <F4762258-35B3-43D7-AD26-85CA3984239D@recoil.org>
References: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
To: Brian Brietzke <bbrietzke@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Really fascinating
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="===============9143864504832699699=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============9143864504832699699==
Content-Type: multipart/alternative; boundary="Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C"


--Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 16 Oct 2014, at 11:10, Brian Brietzke <bbrietzke@gmail.com> wrote:

> I was told about the project from a friend and I must say that I agree =
with him: wow!  I'm truly impressed with what is going on and the =
potential of what is happening.  Just, wow.
>=20
> I would love to being exploring some of these ideas and concepts, =
along with learning OCaml, so I've picked a few books, setup a sandbox =
that I can play with ( both Xen and dev side ), but have run into some =
things that I would like to get a little clarification on.
>=20
> Forgive me if this is the wrong place to ask these questions.  If you =
will let me know the correct place, I'll send them there.
>=20
> I notice that both the Xen page and the open mirage site says that 2.0 =
is available, but I can only see 1.2 in the OPAM repositories that are =
installed by default.  Is there a different repository that I should be =
connecting to in order to get the lastest and greatest?

We're just about to release the 2.0 series as a stable branch; in the =
meanwhile, there's an opam remote:

opam remote add mirage git://github.com/mirage/mirage-dev

that will get you the mirage 2.0 series of repositories.  There may be =
some teething troubles in the next couple of days as we rearrange things =
for release into stable OPAM, but it should settle down quickly.

>=20
> One of the easier scenario's for bringing these ideas into my =
workplace is setting a small REST or REST/SPA application as a proof of =
concept ( our CTO loves POCs ), but I don't find much in the way of =
documentation.  The article at =
http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/, which is =
incredibly helpful by the way, only shows how to handle requests with =
non-parameterized URLs.  Using cohttp, can we do parameterized URLs such =
as /resource/{id} or /blog/{articleId}/comments?

Yes; that's all independent of Mirage - the Cohttp library can do that =
sort of thing.  It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to Cohttp_mirage.

> Using the https://github.com/mirage/mirage-skeleton as a point of =
exploration, the static_website fails to build with an error in the =
config.ml on line 41 ( conduit_direct ).  Is there a package missing or =
something else that will resolve the build failure? Or is it related to =
having the 1.2 packages instead of the 2.0 packages?

If you do have a build failure, we'd appreciate seeing the build logs, =
as it's hard to answer the question without seeing more details.  You =
can file them on https://github.com/mirage/mirage/issues

>=20
> How do you handle configuration?  For instance, you build an =
application that generates one xen image per person, would you copy over =
the specific user information prior to the build, or is there a better =
way?  I can see that https://github.com/MagnusS/jitsu would be the way =
to start the application on demand and also clean it up when it is no =
longer being used.

I don't quite understand the question -- are you asking about how to =
launch the unikernel?=20

> I notice that there is a lot of talk of using the cubieboards for =
running the images.  How do you handle talking with the hardware =
components such as the GPIOs or I2C?

Our use of the Cubieboard2 doesn't require any use of GPIO or I2C; we =
just use the network and block interfaces.  If necessary, this is =
handled via a Xen/Linux dom0 device driver in the same way as network or =
block storage.

-anil=

--Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C
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;"><br><div><div>On 16 Oct 2014, at 11:10, Brian =
Brietzke &lt;<a =
href=3D"mailto:bbrietzke@gmail.com">bbrietzke@gmail.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">I was told about the project from a =
friend and I must say that I agree with him: wow!&nbsp; I'm truly =
impressed with what is going on and the potential of what is =
happening.&nbsp; Just, wow.<div><br></div><div>I would love to being =
exploring some of these ideas and concepts, along with learning OCaml, =
so I've picked a few books, setup a sandbox that I can play with ( both =
Xen and dev side ), but have run into some things that I would like to =
get a little clarification on.</div><div><br></div><div>Forgive me if =
this is the wrong place to ask these questions.&nbsp; If you will let me =
know the correct place, I'll send them there.</div><div><br></div><div>I =
notice that both the Xen page and the open mirage site says that 2.0 is =
available, but I can only see 1.2 in the OPAM repositories that are =
installed by default.&nbsp; Is there a different repository that I =
should be connecting to in order to get the lastest and =
greatest?</div></div></blockquote><div><br></div>We're just about to =
release the 2.0 series as a stable branch; in the meanwhile, there's an =
opam remote:</div><div><br></div><div>opam remote add mirage <a =
href=3D"git://github.com/mirage/mirage-dev">git://github.com/mirage/mirage=
-dev</a></div><div><br></div><div>that will get you the mirage 2.0 =
series of repositories. &nbsp;There may be some teething troubles in the =
next couple of days as we rearrange things for release into stable OPAM, =
but it should settle down quickly.</div><div><br><blockquote =
type=3D"cite"><div dir=3D"ltr"><div><br></div><div>One of the easier =
scenario's for bringing these ideas into my workplace is setting a small =
REST or REST/SPA application as a proof of concept ( our CTO loves POCs =
), but I don't find much in the way of documentation.&nbsp; The article =
at&nbsp;<a =
href=3D"http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/">http=
://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/</a>, which is =
incredibly helpful by the way, only shows how to handle requests with =
non-parameterized URLs.&nbsp; Using cohttp, can we do parameterized URLs =
such as /resource/{id} or =
/blog/{articleId}/comments?</div></div></blockquote><div><br></div>Yes; =
that's all independent of Mirage - the Cohttp library can do that sort =
of thing. &nbsp;It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to =
Cohttp_mirage.</div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div>Using the&nbsp;<a =
href=3D"https://github.com/mirage/mirage-skeleton">https://github.com/mira=
ge/mirage-skeleton</a> as a point of exploration, the static_website =
fails to build with an error in the <a =
href=3D"http://config.ml/">config.ml</a> on line 41 ( conduit_direct =
).&nbsp; Is there a package missing or something else that will resolve =
the build failure? Or is it related to having the 1.2 packages instead =
of the 2.0 packages?</div></div></blockquote><div><br></div>If you do =
have a build failure, we'd appreciate seeing the build logs, as it's =
hard to answer the question without seeing more details. &nbsp;You can =
file them on <a =
href=3D"https://github.com/mirage/mirage/issues">https://github.com/mirage=
/mirage/issues</a></div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>How do you handle configuration?&nbsp; =
For instance, you build an application that generates one xen image per =
person, would you copy over the specific user information prior to the =
build, or is there a better way?&nbsp; I can see that&nbsp;<a =
href=3D"https://github.com/MagnusS/jitsu">https://github.com/MagnusS/jitsu=
</a> would be the way to start the application on demand and also clean =
it up when it is no longer being =
used.</div></div></blockquote><div><br></div>I don't quite understand =
the question -- are you asking about how to launch the =
unikernel?&nbsp;</div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div>I notice that there is a lot of talk of using the =
cubieboards for running the images.&nbsp; How do you handle talking with =
the hardware components such as the GPIOs or =
I2C?</div></div></blockquote><div><br></div>Our use of the Cubieboard2 =
doesn't require any use of GPIO or I2C; we just use the network and =
block interfaces. &nbsp;If necessary, this is handled via a Xen/Linux =
dom0 device driver in the same way as network or block =
storage.</div><div><br></div><div>-anil</div></body></html>=

--Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C--


--===============9143864504832699699==
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

--===============9143864504832699699==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 17 07:20:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 17 Oct 2014 07:20: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 1Xf1pm-0005bI-4y; Fri, 17 Oct 2014 07:20:22 +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 1Xf1pk-0005bD-TK
	for mirageos-devel@lists.xenproject.org; Fri, 17 Oct 2014 07:20:21 +0000
Received: from [85.158.139.211:22332] by server-3.bemta-5.messagelabs.com id
	18/BA-00307-433C0445; Fri, 17 Oct 2014 07:20:20 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1413530418!11730552!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5154 invoked from network); 17 Oct 2014 07:20:18 -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; 17 Oct 2014 07:20:18 -0000
Received: from [10.100.7.132] (12.35.79.254 [12.35.79.254]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 71480062;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 17 Oct 2014 08:22:45 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
Date: Fri, 17 Oct 2014 00:20:11 -0700
Message-Id: <F4762258-35B3-43D7-AD26-85CA3984239D@recoil.org>
References: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
To: Brian Brietzke <bbrietzke@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Really fascinating
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="===============9143864504832699699=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============9143864504832699699==
Content-Type: multipart/alternative; boundary="Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C"


--Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 16 Oct 2014, at 11:10, Brian Brietzke <bbrietzke@gmail.com> wrote:

> I was told about the project from a friend and I must say that I agree =
with him: wow!  I'm truly impressed with what is going on and the =
potential of what is happening.  Just, wow.
>=20
> I would love to being exploring some of these ideas and concepts, =
along with learning OCaml, so I've picked a few books, setup a sandbox =
that I can play with ( both Xen and dev side ), but have run into some =
things that I would like to get a little clarification on.
>=20
> Forgive me if this is the wrong place to ask these questions.  If you =
will let me know the correct place, I'll send them there.
>=20
> I notice that both the Xen page and the open mirage site says that 2.0 =
is available, but I can only see 1.2 in the OPAM repositories that are =
installed by default.  Is there a different repository that I should be =
connecting to in order to get the lastest and greatest?

We're just about to release the 2.0 series as a stable branch; in the =
meanwhile, there's an opam remote:

opam remote add mirage git://github.com/mirage/mirage-dev

that will get you the mirage 2.0 series of repositories.  There may be =
some teething troubles in the next couple of days as we rearrange things =
for release into stable OPAM, but it should settle down quickly.

>=20
> One of the easier scenario's for bringing these ideas into my =
workplace is setting a small REST or REST/SPA application as a proof of =
concept ( our CTO loves POCs ), but I don't find much in the way of =
documentation.  The article at =
http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/, which is =
incredibly helpful by the way, only shows how to handle requests with =
non-parameterized URLs.  Using cohttp, can we do parameterized URLs such =
as /resource/{id} or /blog/{articleId}/comments?

Yes; that's all independent of Mirage - the Cohttp library can do that =
sort of thing.  It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to Cohttp_mirage.

> Using the https://github.com/mirage/mirage-skeleton as a point of =
exploration, the static_website fails to build with an error in the =
config.ml on line 41 ( conduit_direct ).  Is there a package missing or =
something else that will resolve the build failure? Or is it related to =
having the 1.2 packages instead of the 2.0 packages?

If you do have a build failure, we'd appreciate seeing the build logs, =
as it's hard to answer the question without seeing more details.  You =
can file them on https://github.com/mirage/mirage/issues

>=20
> How do you handle configuration?  For instance, you build an =
application that generates one xen image per person, would you copy over =
the specific user information prior to the build, or is there a better =
way?  I can see that https://github.com/MagnusS/jitsu would be the way =
to start the application on demand and also clean it up when it is no =
longer being used.

I don't quite understand the question -- are you asking about how to =
launch the unikernel?=20

> I notice that there is a lot of talk of using the cubieboards for =
running the images.  How do you handle talking with the hardware =
components such as the GPIOs or I2C?

Our use of the Cubieboard2 doesn't require any use of GPIO or I2C; we =
just use the network and block interfaces.  If necessary, this is =
handled via a Xen/Linux dom0 device driver in the same way as network or =
block storage.

-anil=

--Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C
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;"><br><div><div>On 16 Oct 2014, at 11:10, Brian =
Brietzke &lt;<a =
href=3D"mailto:bbrietzke@gmail.com">bbrietzke@gmail.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">I was told about the project from a =
friend and I must say that I agree with him: wow!&nbsp; I'm truly =
impressed with what is going on and the potential of what is =
happening.&nbsp; Just, wow.<div><br></div><div>I would love to being =
exploring some of these ideas and concepts, along with learning OCaml, =
so I've picked a few books, setup a sandbox that I can play with ( both =
Xen and dev side ), but have run into some things that I would like to =
get a little clarification on.</div><div><br></div><div>Forgive me if =
this is the wrong place to ask these questions.&nbsp; If you will let me =
know the correct place, I'll send them there.</div><div><br></div><div>I =
notice that both the Xen page and the open mirage site says that 2.0 is =
available, but I can only see 1.2 in the OPAM repositories that are =
installed by default.&nbsp; Is there a different repository that I =
should be connecting to in order to get the lastest and =
greatest?</div></div></blockquote><div><br></div>We're just about to =
release the 2.0 series as a stable branch; in the meanwhile, there's an =
opam remote:</div><div><br></div><div>opam remote add mirage <a =
href=3D"git://github.com/mirage/mirage-dev">git://github.com/mirage/mirage=
-dev</a></div><div><br></div><div>that will get you the mirage 2.0 =
series of repositories. &nbsp;There may be some teething troubles in the =
next couple of days as we rearrange things for release into stable OPAM, =
but it should settle down quickly.</div><div><br><blockquote =
type=3D"cite"><div dir=3D"ltr"><div><br></div><div>One of the easier =
scenario's for bringing these ideas into my workplace is setting a small =
REST or REST/SPA application as a proof of concept ( our CTO loves POCs =
), but I don't find much in the way of documentation.&nbsp; The article =
at&nbsp;<a =
href=3D"http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/">http=
://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/</a>, which is =
incredibly helpful by the way, only shows how to handle requests with =
non-parameterized URLs.&nbsp; Using cohttp, can we do parameterized URLs =
such as /resource/{id} or =
/blog/{articleId}/comments?</div></div></blockquote><div><br></div>Yes; =
that's all independent of Mirage - the Cohttp library can do that sort =
of thing. &nbsp;It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to =
Cohttp_mirage.</div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div>Using the&nbsp;<a =
href=3D"https://github.com/mirage/mirage-skeleton">https://github.com/mira=
ge/mirage-skeleton</a> as a point of exploration, the static_website =
fails to build with an error in the <a =
href=3D"http://config.ml/">config.ml</a> on line 41 ( conduit_direct =
).&nbsp; Is there a package missing or something else that will resolve =
the build failure? Or is it related to having the 1.2 packages instead =
of the 2.0 packages?</div></div></blockquote><div><br></div>If you do =
have a build failure, we'd appreciate seeing the build logs, as it's =
hard to answer the question without seeing more details. &nbsp;You can =
file them on <a =
href=3D"https://github.com/mirage/mirage/issues">https://github.com/mirage=
/mirage/issues</a></div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>How do you handle configuration?&nbsp; =
For instance, you build an application that generates one xen image per =
person, would you copy over the specific user information prior to the =
build, or is there a better way?&nbsp; I can see that&nbsp;<a =
href=3D"https://github.com/MagnusS/jitsu">https://github.com/MagnusS/jitsu=
</a> would be the way to start the application on demand and also clean =
it up when it is no longer being =
used.</div></div></blockquote><div><br></div>I don't quite understand =
the question -- are you asking about how to launch the =
unikernel?&nbsp;</div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div>I notice that there is a lot of talk of using the =
cubieboards for running the images.&nbsp; How do you handle talking with =
the hardware components such as the GPIOs or =
I2C?</div></div></blockquote><div><br></div>Our use of the Cubieboard2 =
doesn't require any use of GPIO or I2C; we just use the network and =
block interfaces. &nbsp;If necessary, this is handled via a Xen/Linux =
dom0 device driver in the same way as network or block =
storage.</div><div><br></div><div>-anil</div></body></html>=

--Apple-Mail=_A72F4C26-7D37-4985-836A-924E2B482B6C--


--===============9143864504832699699==
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

--===============9143864504832699699==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 17 23:13:30 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 17 Oct 2014 23:13: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 1XfGi3-0000u1-0y; Fri, 17 Oct 2014 23:13:23 +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 1XfGi2-0000tw-2O
	for mirageos-devel@lists.xenproject.org; Fri, 17 Oct 2014 23:13:22 +0000
Received: from [193.109.254.147:44320] by server-11.bemta-14.messagelabs.com
	id BE/1D-14213-192A1445; Fri, 17 Oct 2014 23:13:21 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-9.tower-27.messagelabs.com!1413587599!13504292!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25259 invoked from network); 17 Oct 2014 23:13:19 -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; 17 Oct 2014 23:13:19 -0000
Received: from [192.168.2.40] (107.192.194.116 [107.192.194.116]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 1ec2051d;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sat, 18 Oct 2014 00:15:42 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CABOgvBfbuRczTHM7tg-EZ=2nLFYoXKV83uH8rsBwNkWpNLoR=w@mail.gmail.com>
Date: Fri, 17 Oct 2014 16:13:00 -0700
Message-Id: <4958954E-0E3E-4CFC-B60F-5B6A2B4633D5@recoil.org>
References: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
	<F4762258-35B3-43D7-AD26-85CA3984239D@recoil.org>
	<CABOgvBfbuRczTHM7tg-EZ=2nLFYoXKV83uH8rsBwNkWpNLoR=w@mail.gmail.com>
To: Brian Brietzke <bbrietzke@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Really fascinating
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="===============5683959298514680084=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5683959298514680084==
Content-Type: multipart/alternative; boundary="Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8"


--Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 17 Oct 2014, at 11:08, Brian Brietzke <bbrietzke@gmail.com> wrote:

> Thank you for the reply.=20

No problem -- please keep the list CCed.  It's also often better to =
create a separate thread for different questions to keep track of =
things.  "Really fascinating" is not a useful mailing list subject ;-)

>=20
> I created https://github.com/mirage/mirage-skeleton/issues/53 for the =
issues that I am seeing with mirage-skeleton.
>=20
> With regard to the configuration question: Imagine if you wanted to =
build an personalized email client that talks to different providers.  =
One person may use only gmail, while another would use both gmail and =
hotmail.  When deploy the xen image, each person will have their own =
personalized URI that they will talk to.
>=20
> Prior to actually creating the image, would you build a personalized =
config.ml with personalized oauth keys ( for instance ) or other tokens =
specific to the image that your are building or is there another way to =
handle that situation?  I know it's possible to customize the config.xl =
( for MAC or IP address ), so you would follow a similar idea for the =
application image specific things?
>=20
> Another example would be a generic worker process that handles =
messages from an AMPQ server.  You will have a different AMQP server in =
production and a different one in dev/QA.  How would you handle the =
differences in configuration, while keeping the application logic the =
same?

You would just run different config.ml logic.  If the key in question is =
genuinely dynamic, you can just make the unikernel do a dynamic lookup =
so the config stays the same.  For example, see the xen/ subdirectory in =
mirage-skeleton for a website that looks up its IP address from =
XenStore, so it can have the same config.ml even if it doesnt do DHCP.


> As for cohttp, are there an worked examples of having parameterized =
resource URIs?
>=20

Not sure -- Thomas (Leonard) may have one as he worked on his blog.

> Just thinking out loud, has anyone tried loading an image onto a =
Raspberry PI?  I have one at home that I may try a quick test on just =
for giggles.

Sure, it works fine in Unix mode.=20

-anil

>=20
> Thank you for the help
>=20
>=20
> On Fri, Oct 17, 2014 at 2:20 AM, Anil Madhavapeddy <anil@recoil.org> =
wrote:
>=20
> On 16 Oct 2014, at 11:10, Brian Brietzke <bbrietzke@gmail.com> wrote:
>=20
>> I was told about the project from a friend and I must say that I =
agree with him: wow!  I'm truly impressed with what is going on and the =
potential of what is happening.  Just, wow.
>>=20
>> I would love to being exploring some of these ideas and concepts, =
along with learning OCaml, so I've picked a few books, setup a sandbox =
that I can play with ( both Xen and dev side ), but have run into some =
things that I would like to get a little clarification on.
>>=20
>> Forgive me if this is the wrong place to ask these questions.  If you =
will let me know the correct place, I'll send them there.
>>=20
>> I notice that both the Xen page and the open mirage site says that =
2.0 is available, but I can only see 1.2 in the OPAM repositories that =
are installed by default.  Is there a different repository that I should =
be connecting to in order to get the lastest and greatest?
>=20
> We're just about to release the 2.0 series as a stable branch; in the =
meanwhile, there's an opam remote:
>=20
> opam remote add mirage git://github.com/mirage/mirage-dev
>=20
> that will get you the mirage 2.0 series of repositories.  There may be =
some teething troubles in the next couple of days as we rearrange things =
for release into stable OPAM, but it should settle down quickly.
>=20
>>=20
>> One of the easier scenario's for bringing these ideas into my =
workplace is setting a small REST or REST/SPA application as a proof of =
concept ( our CTO loves POCs ), but I don't find much in the way of =
documentation.  The article at =
http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/, which is =
incredibly helpful by the way, only shows how to handle requests with =
non-parameterized URLs.  Using cohttp, can we do parameterized URLs such =
as /resource/{id} or /blog/{articleId}/comments?
>=20
> Yes; that's all independent of Mirage - the Cohttp library can do that =
sort of thing.  It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to Cohttp_mirage.
>=20
>> Using the https://github.com/mirage/mirage-skeleton as a point of =
exploration, the static_website fails to build with an error in the =
config.ml on line 41 ( conduit_direct ).  Is there a package missing or =
something else that will resolve the build failure? Or is it related to =
having the 1.2 packages instead of the 2.0 packages?
>=20
> If you do have a build failure, we'd appreciate seeing the build logs, =
as it's hard to answer the question without seeing more details.  You =
can file them on https://github.com/mirage/mirage/issues
>=20
>>=20
>> How do you handle configuration?  For instance, you build an =
application that generates one xen image per person, would you copy over =
the specific user information prior to the build, or is there a better =
way?  I can see that https://github.com/MagnusS/jitsu would be the way =
to start the application on demand and also clean it up when it is no =
longer being used.
>=20
> I don't quite understand the question -- are you asking about how to =
launch the unikernel?=20
>=20
>> I notice that there is a lot of talk of using the cubieboards for =
running the images.  How do you handle talking with the hardware =
components such as the GPIOs or I2C?
>=20
> Our use of the Cubieboard2 doesn't require any use of GPIO or I2C; we =
just use the network and block interfaces.  If necessary, this is =
handled via a Xen/Linux dom0 device driver in the same way as network or =
block storage.
>=20
> -anil
>=20


--Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8
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;">On 17 =
Oct 2014, at 11:08, Brian Brietzke &lt;<a =
href=3D"mailto:bbrietzke@gmail.com">bbrietzke@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thank you for the =
reply.&nbsp;</div></blockquote><div><br></div>No problem -- please keep =
the list CCed. &nbsp;It's also often better to create a separate thread =
for different questions to keep track of things. &nbsp;"Really =
fascinating" is not a useful mailing list subject =
;-)</div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>I created&nbsp;<a =
href=3D"https://github.com/mirage/mirage-skeleton/issues/53">https://githu=
b.com/mirage/mirage-skeleton/issues/53</a> for the issues that I am =
seeing with mirage-skeleton.</div><div><br></div><div>With regard to the =
configuration question: Imagine if you wanted to build an personalized =
email client that talks to different providers.&nbsp; One person may use =
only gmail, while another would use both gmail and hotmail.&nbsp; When =
deploy the xen image, each person will have their own personalized URI =
that they will talk to.</div><div><br></div><div>Prior to actually =
creating the image, would you build a personalized <a =
href=3D"http://config.ml/">config.ml</a> with personalized oauth keys ( =
for instance ) or other tokens specific to the image that your are =
building or is there another way to handle that situation?&nbsp; I know =
it's possible to customize the config.xl ( for MAC or IP address ), so =
you would follow a similar idea for the application image specific =
things?</div><div><br></div><div>Another example would be a generic =
worker process that handles messages from an AMPQ server.&nbsp; You will =
have a different AMQP server in production and a different one in =
dev/QA.&nbsp; How would you handle the differences in configuration, =
while keeping the application logic the =
same?</div></div></blockquote><div><br></div>You would just run =
different config.ml logic. &nbsp;If the key in question is genuinely =
dynamic, you can just make the unikernel do a dynamic lookup so the =
config stays the same. &nbsp;For example, see the xen/ subdirectory in =
mirage-skeleton for a website that looks up its IP address from =
XenStore, so it can have the same config.ml even if it doesnt do =
DHCP.</div><div><br></div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div>As for cohttp, are there an worked examples of having =
parameterized resource =
URIs?</div><div><br></div></div></blockquote><div><br></div>Not sure -- =
Thomas (Leonard) may have one as he worked on his =
blog.</div><div><br><blockquote type=3D"cite"><div dir=3D"ltr"><div>Just =
thinking out loud, has anyone tried loading an image onto a Raspberry =
PI?&nbsp; I have one at home that I may try a quick test on just for =
giggles.</div></div></blockquote><div><br></div>Sure, it works fine in =
Unix =
mode.&nbsp;</div><div><br></div><div>-anil</div><div><br><blockquote =
type=3D"cite"><div dir=3D"ltr"><div><br></div><div>Thank you for the =
help</div><div><br></div></div><div class=3D"gmail_extra"><br><div =
class=3D"gmail_quote">On Fri, Oct 17, 2014 at 2:20 AM, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><br><div><span=
 class=3D""><div>On 16 Oct 2014, at 11:10, Brian Brietzke &lt;<a =
href=3D"mailto:bbrietzke@gmail.com" =
target=3D"_blank">bbrietzke@gmail.com</a>&gt; =
wrote:</div><br><blockquote type=3D"cite"><div dir=3D"ltr">I was told =
about the project from a friend and I must say that I agree with him: =
wow!&nbsp; I'm truly impressed with what is going on and the potential =
of what is happening.&nbsp; Just, wow.<div><br></div><div>I would love =
to being exploring some of these ideas and concepts, along with learning =
OCaml, so I've picked a few books, setup a sandbox that I can play with =
( both Xen and dev side ), but have run into some things that I would =
like to get a little clarification on.</div><div><br></div><div>Forgive =
me if this is the wrong place to ask these questions.&nbsp; If you will =
let me know the correct place, I'll send them =
there.</div><div><br></div><div>I notice that both the Xen page and the =
open mirage site says that 2.0 is available, but I can only see 1.2 in =
the OPAM repositories that are installed by default.&nbsp; Is there a =
different repository that I should be connecting to in order to get the =
lastest and =
greatest?</div></div></blockquote><div><br></div></span>We're just about =
to release the 2.0 series as a stable branch; in the meanwhile, there's =
an opam remote:</div><div><br></div><div>opam remote add mirage =
<a>git://github.com/mirage/mirage-dev</a></div><div><br></div><div>that =
will get you the mirage 2.0 series of repositories.&nbsp; There may be =
some teething troubles in the next couple of days as we rearrange things =
for release into stable OPAM, but it should settle down =
quickly.</div><div><span class=3D""><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>One of the easier scenario's for =
bringing these ideas into my workplace is setting a small REST or =
REST/SPA application as a proof of concept ( our CTO loves POCs ), but I =
don't find much in the way of documentation.&nbsp; The article =
at&nbsp;<a =
href=3D"http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/" =
target=3D"_blank">http://roscidus.com/blog/blog/2014/07/28/my-first-uniker=
nel/</a>, which is incredibly helpful by the way, only shows how to =
handle requests with non-parameterized URLs.&nbsp; Using cohttp, can we =
do parameterized URLs such as /resource/{id} or =
/blog/{articleId}/comments?</div></div></blockquote><div><br></div></span>=
Yes; that's all independent of Mirage - the Cohttp library can do that =
sort of thing.&nbsp; It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to =
Cohttp_mirage.</div><div><span class=3D""><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Using the&nbsp;<a =
href=3D"https://github.com/mirage/mirage-skeleton" =
target=3D"_blank">https://github.com/mirage/mirage-skeleton</a> as a =
point of exploration, the static_website fails to build with an error in =
the <a href=3D"http://config.ml/" target=3D"_blank">config.ml</a> on =
line 41 ( conduit_direct ).&nbsp; Is there a package missing or =
something else that will resolve the build failure? Or is it related to =
having the 1.2 packages instead of the 2.0 =
packages?</div></blockquote><div><br></div></span>If you do have a build =
failure, we'd appreciate seeing the build logs, as it's hard to answer =
the question without seeing more details.&nbsp; You can file them on <a =
href=3D"https://github.com/mirage/mirage/issues" =
target=3D"_blank">https://github.com/mirage/mirage/issues</a></div><div><s=
pan class=3D""><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>How do you handle configuration?&nbsp; =
For instance, you build an application that generates one xen image per =
person, would you copy over the specific user information prior to the =
build, or is there a better way?&nbsp; I can see that&nbsp;<a =
href=3D"https://github.com/MagnusS/jitsu" =
target=3D"_blank">https://github.com/MagnusS/jitsu</a> would be the way =
to start the application on demand and also clean it up when it is no =
longer being used.</div></div></blockquote><div><br></div></span>I don't =
quite understand the question -- are you asking about how to launch the =
unikernel?&nbsp;</div><div><span class=3D""><br><blockquote =
type=3D"cite"><div dir=3D"ltr">I notice that there is a lot of talk of =
using the cubieboards for running the images.&nbsp; How do you handle =
talking with the hardware components such as the GPIOs or =
I2C?</div></blockquote><div><br></div></span>Our use of the Cubieboard2 =
doesn't require any use of GPIO or I2C; we just use the network and =
block interfaces.&nbsp; If necessary, this is handled via a Xen/Linux =
dom0 device driver in the same way as network or block =
storage.</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
</blockquote></div><br></body></html>=

--Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8--


--===============5683959298514680084==
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

--===============5683959298514680084==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 17 23:13:30 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 17 Oct 2014 23:13: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 1XfGi3-0000u1-0y; Fri, 17 Oct 2014 23:13:23 +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 1XfGi2-0000tw-2O
	for mirageos-devel@lists.xenproject.org; Fri, 17 Oct 2014 23:13:22 +0000
Received: from [193.109.254.147:44320] by server-11.bemta-14.messagelabs.com
	id BE/1D-14213-192A1445; Fri, 17 Oct 2014 23:13:21 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-9.tower-27.messagelabs.com!1413587599!13504292!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25259 invoked from network); 17 Oct 2014 23:13:19 -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; 17 Oct 2014 23:13:19 -0000
Received: from [192.168.2.40] (107.192.194.116 [107.192.194.116]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 1ec2051d;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sat, 18 Oct 2014 00:15:42 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CABOgvBfbuRczTHM7tg-EZ=2nLFYoXKV83uH8rsBwNkWpNLoR=w@mail.gmail.com>
Date: Fri, 17 Oct 2014 16:13:00 -0700
Message-Id: <4958954E-0E3E-4CFC-B60F-5B6A2B4633D5@recoil.org>
References: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
	<F4762258-35B3-43D7-AD26-85CA3984239D@recoil.org>
	<CABOgvBfbuRczTHM7tg-EZ=2nLFYoXKV83uH8rsBwNkWpNLoR=w@mail.gmail.com>
To: Brian Brietzke <bbrietzke@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Really fascinating
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="===============5683959298514680084=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5683959298514680084==
Content-Type: multipart/alternative; boundary="Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8"


--Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 17 Oct 2014, at 11:08, Brian Brietzke <bbrietzke@gmail.com> wrote:

> Thank you for the reply.=20

No problem -- please keep the list CCed.  It's also often better to =
create a separate thread for different questions to keep track of =
things.  "Really fascinating" is not a useful mailing list subject ;-)

>=20
> I created https://github.com/mirage/mirage-skeleton/issues/53 for the =
issues that I am seeing with mirage-skeleton.
>=20
> With regard to the configuration question: Imagine if you wanted to =
build an personalized email client that talks to different providers.  =
One person may use only gmail, while another would use both gmail and =
hotmail.  When deploy the xen image, each person will have their own =
personalized URI that they will talk to.
>=20
> Prior to actually creating the image, would you build a personalized =
config.ml with personalized oauth keys ( for instance ) or other tokens =
specific to the image that your are building or is there another way to =
handle that situation?  I know it's possible to customize the config.xl =
( for MAC or IP address ), so you would follow a similar idea for the =
application image specific things?
>=20
> Another example would be a generic worker process that handles =
messages from an AMPQ server.  You will have a different AMQP server in =
production and a different one in dev/QA.  How would you handle the =
differences in configuration, while keeping the application logic the =
same?

You would just run different config.ml logic.  If the key in question is =
genuinely dynamic, you can just make the unikernel do a dynamic lookup =
so the config stays the same.  For example, see the xen/ subdirectory in =
mirage-skeleton for a website that looks up its IP address from =
XenStore, so it can have the same config.ml even if it doesnt do DHCP.


> As for cohttp, are there an worked examples of having parameterized =
resource URIs?
>=20

Not sure -- Thomas (Leonard) may have one as he worked on his blog.

> Just thinking out loud, has anyone tried loading an image onto a =
Raspberry PI?  I have one at home that I may try a quick test on just =
for giggles.

Sure, it works fine in Unix mode.=20

-anil

>=20
> Thank you for the help
>=20
>=20
> On Fri, Oct 17, 2014 at 2:20 AM, Anil Madhavapeddy <anil@recoil.org> =
wrote:
>=20
> On 16 Oct 2014, at 11:10, Brian Brietzke <bbrietzke@gmail.com> wrote:
>=20
>> I was told about the project from a friend and I must say that I =
agree with him: wow!  I'm truly impressed with what is going on and the =
potential of what is happening.  Just, wow.
>>=20
>> I would love to being exploring some of these ideas and concepts, =
along with learning OCaml, so I've picked a few books, setup a sandbox =
that I can play with ( both Xen and dev side ), but have run into some =
things that I would like to get a little clarification on.
>>=20
>> Forgive me if this is the wrong place to ask these questions.  If you =
will let me know the correct place, I'll send them there.
>>=20
>> I notice that both the Xen page and the open mirage site says that =
2.0 is available, but I can only see 1.2 in the OPAM repositories that =
are installed by default.  Is there a different repository that I should =
be connecting to in order to get the lastest and greatest?
>=20
> We're just about to release the 2.0 series as a stable branch; in the =
meanwhile, there's an opam remote:
>=20
> opam remote add mirage git://github.com/mirage/mirage-dev
>=20
> that will get you the mirage 2.0 series of repositories.  There may be =
some teething troubles in the next couple of days as we rearrange things =
for release into stable OPAM, but it should settle down quickly.
>=20
>>=20
>> One of the easier scenario's for bringing these ideas into my =
workplace is setting a small REST or REST/SPA application as a proof of =
concept ( our CTO loves POCs ), but I don't find much in the way of =
documentation.  The article at =
http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/, which is =
incredibly helpful by the way, only shows how to handle requests with =
non-parameterized URLs.  Using cohttp, can we do parameterized URLs such =
as /resource/{id} or /blog/{articleId}/comments?
>=20
> Yes; that's all independent of Mirage - the Cohttp library can do that =
sort of thing.  It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to Cohttp_mirage.
>=20
>> Using the https://github.com/mirage/mirage-skeleton as a point of =
exploration, the static_website fails to build with an error in the =
config.ml on line 41 ( conduit_direct ).  Is there a package missing or =
something else that will resolve the build failure? Or is it related to =
having the 1.2 packages instead of the 2.0 packages?
>=20
> If you do have a build failure, we'd appreciate seeing the build logs, =
as it's hard to answer the question without seeing more details.  You =
can file them on https://github.com/mirage/mirage/issues
>=20
>>=20
>> How do you handle configuration?  For instance, you build an =
application that generates one xen image per person, would you copy over =
the specific user information prior to the build, or is there a better =
way?  I can see that https://github.com/MagnusS/jitsu would be the way =
to start the application on demand and also clean it up when it is no =
longer being used.
>=20
> I don't quite understand the question -- are you asking about how to =
launch the unikernel?=20
>=20
>> I notice that there is a lot of talk of using the cubieboards for =
running the images.  How do you handle talking with the hardware =
components such as the GPIOs or I2C?
>=20
> Our use of the Cubieboard2 doesn't require any use of GPIO or I2C; we =
just use the network and block interfaces.  If necessary, this is =
handled via a Xen/Linux dom0 device driver in the same way as network or =
block storage.
>=20
> -anil
>=20


--Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8
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;">On 17 =
Oct 2014, at 11:08, Brian Brietzke &lt;<a =
href=3D"mailto:bbrietzke@gmail.com">bbrietzke@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thank you for the =
reply.&nbsp;</div></blockquote><div><br></div>No problem -- please keep =
the list CCed. &nbsp;It's also often better to create a separate thread =
for different questions to keep track of things. &nbsp;"Really =
fascinating" is not a useful mailing list subject =
;-)</div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>I created&nbsp;<a =
href=3D"https://github.com/mirage/mirage-skeleton/issues/53">https://githu=
b.com/mirage/mirage-skeleton/issues/53</a> for the issues that I am =
seeing with mirage-skeleton.</div><div><br></div><div>With regard to the =
configuration question: Imagine if you wanted to build an personalized =
email client that talks to different providers.&nbsp; One person may use =
only gmail, while another would use both gmail and hotmail.&nbsp; When =
deploy the xen image, each person will have their own personalized URI =
that they will talk to.</div><div><br></div><div>Prior to actually =
creating the image, would you build a personalized <a =
href=3D"http://config.ml/">config.ml</a> with personalized oauth keys ( =
for instance ) or other tokens specific to the image that your are =
building or is there another way to handle that situation?&nbsp; I know =
it's possible to customize the config.xl ( for MAC or IP address ), so =
you would follow a similar idea for the application image specific =
things?</div><div><br></div><div>Another example would be a generic =
worker process that handles messages from an AMPQ server.&nbsp; You will =
have a different AMQP server in production and a different one in =
dev/QA.&nbsp; How would you handle the differences in configuration, =
while keeping the application logic the =
same?</div></div></blockquote><div><br></div>You would just run =
different config.ml logic. &nbsp;If the key in question is genuinely =
dynamic, you can just make the unikernel do a dynamic lookup so the =
config stays the same. &nbsp;For example, see the xen/ subdirectory in =
mirage-skeleton for a website that looks up its IP address from =
XenStore, so it can have the same config.ml even if it doesnt do =
DHCP.</div><div><br></div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div>As for cohttp, are there an worked examples of having =
parameterized resource =
URIs?</div><div><br></div></div></blockquote><div><br></div>Not sure -- =
Thomas (Leonard) may have one as he worked on his =
blog.</div><div><br><blockquote type=3D"cite"><div dir=3D"ltr"><div>Just =
thinking out loud, has anyone tried loading an image onto a Raspberry =
PI?&nbsp; I have one at home that I may try a quick test on just for =
giggles.</div></div></blockquote><div><br></div>Sure, it works fine in =
Unix =
mode.&nbsp;</div><div><br></div><div>-anil</div><div><br><blockquote =
type=3D"cite"><div dir=3D"ltr"><div><br></div><div>Thank you for the =
help</div><div><br></div></div><div class=3D"gmail_extra"><br><div =
class=3D"gmail_quote">On Fri, Oct 17, 2014 at 2:20 AM, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><br><div><span=
 class=3D""><div>On 16 Oct 2014, at 11:10, Brian Brietzke &lt;<a =
href=3D"mailto:bbrietzke@gmail.com" =
target=3D"_blank">bbrietzke@gmail.com</a>&gt; =
wrote:</div><br><blockquote type=3D"cite"><div dir=3D"ltr">I was told =
about the project from a friend and I must say that I agree with him: =
wow!&nbsp; I'm truly impressed with what is going on and the potential =
of what is happening.&nbsp; Just, wow.<div><br></div><div>I would love =
to being exploring some of these ideas and concepts, along with learning =
OCaml, so I've picked a few books, setup a sandbox that I can play with =
( both Xen and dev side ), but have run into some things that I would =
like to get a little clarification on.</div><div><br></div><div>Forgive =
me if this is the wrong place to ask these questions.&nbsp; If you will =
let me know the correct place, I'll send them =
there.</div><div><br></div><div>I notice that both the Xen page and the =
open mirage site says that 2.0 is available, but I can only see 1.2 in =
the OPAM repositories that are installed by default.&nbsp; Is there a =
different repository that I should be connecting to in order to get the =
lastest and =
greatest?</div></div></blockquote><div><br></div></span>We're just about =
to release the 2.0 series as a stable branch; in the meanwhile, there's =
an opam remote:</div><div><br></div><div>opam remote add mirage =
<a>git://github.com/mirage/mirage-dev</a></div><div><br></div><div>that =
will get you the mirage 2.0 series of repositories.&nbsp; There may be =
some teething troubles in the next couple of days as we rearrange things =
for release into stable OPAM, but it should settle down =
quickly.</div><div><span class=3D""><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>One of the easier scenario's for =
bringing these ideas into my workplace is setting a small REST or =
REST/SPA application as a proof of concept ( our CTO loves POCs ), but I =
don't find much in the way of documentation.&nbsp; The article =
at&nbsp;<a =
href=3D"http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/" =
target=3D"_blank">http://roscidus.com/blog/blog/2014/07/28/my-first-uniker=
nel/</a>, which is incredibly helpful by the way, only shows how to =
handle requests with non-parameterized URLs.&nbsp; Using cohttp, can we =
do parameterized URLs such as /resource/{id} or =
/blog/{articleId}/comments?</div></div></blockquote><div><br></div></span>=
Yes; that's all independent of Mirage - the Cohttp library can do that =
sort of thing.&nbsp; It's often easier to prototype the web logic using =
Cohttp_lwt_unix and then swap the same code over to =
Cohttp_mirage.</div><div><span class=3D""><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Using the&nbsp;<a =
href=3D"https://github.com/mirage/mirage-skeleton" =
target=3D"_blank">https://github.com/mirage/mirage-skeleton</a> as a =
point of exploration, the static_website fails to build with an error in =
the <a href=3D"http://config.ml/" target=3D"_blank">config.ml</a> on =
line 41 ( conduit_direct ).&nbsp; Is there a package missing or =
something else that will resolve the build failure? Or is it related to =
having the 1.2 packages instead of the 2.0 =
packages?</div></blockquote><div><br></div></span>If you do have a build =
failure, we'd appreciate seeing the build logs, as it's hard to answer =
the question without seeing more details.&nbsp; You can file them on <a =
href=3D"https://github.com/mirage/mirage/issues" =
target=3D"_blank">https://github.com/mirage/mirage/issues</a></div><div><s=
pan class=3D""><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>How do you handle configuration?&nbsp; =
For instance, you build an application that generates one xen image per =
person, would you copy over the specific user information prior to the =
build, or is there a better way?&nbsp; I can see that&nbsp;<a =
href=3D"https://github.com/MagnusS/jitsu" =
target=3D"_blank">https://github.com/MagnusS/jitsu</a> would be the way =
to start the application on demand and also clean it up when it is no =
longer being used.</div></div></blockquote><div><br></div></span>I don't =
quite understand the question -- are you asking about how to launch the =
unikernel?&nbsp;</div><div><span class=3D""><br><blockquote =
type=3D"cite"><div dir=3D"ltr">I notice that there is a lot of talk of =
using the cubieboards for running the images.&nbsp; How do you handle =
talking with the hardware components such as the GPIOs or =
I2C?</div></blockquote><div><br></div></span>Our use of the Cubieboard2 =
doesn't require any use of GPIO or I2C; we just use the network and =
block interfaces.&nbsp; If necessary, this is handled via a Xen/Linux =
dom0 device driver in the same way as network or block =
storage.</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
</blockquote></div><br></body></html>=

--Apple-Mail=_597B616A-0F23-46AB-BDD8-CE69F8B5D3C8--


--===============5683959298514680084==
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

--===============5683959298514680084==--


From mirageos-devel-bounces@lists.xenproject.org Sat Oct 18 11:13:50 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 18 Oct 2014 11:13: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 1XfRx8-0003tz-1u; Sat, 18 Oct 2014 11:13:42 +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 1XfRx6-0003tu-FY
	for mirageos-devel@lists.xenproject.org; Sat, 18 Oct 2014 11:13:40 +0000
Received: from [85.158.139.211:5160] by server-7.bemta-5.messagelabs.com id
	98/36-30869-36B42445; Sat, 18 Oct 2014 11:13:39 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1413630817!8614691!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5533 invoked from network); 18 Oct 2014 11:13:38 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	18 Oct 2014 11:13:38 -0000
Received: by mail-vc0-f180.google.com with SMTP id le20so1655711vcb.25
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 18 Oct 2014 04:13:37 -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=2MddPaeUxWv9oLgaIxnZ1fL7HhnJKTSsNnb0PceJ0As=;
	b=AtXhunNqeg9CpWmlZtOYC73VwUz+BBCq6iCxODXNEyGcfYWXwn7GsT3xoRFuGJJysh
	k1FbRyoJCqrT9cLeFbbZbeir3KcpgQbH6r4DqjS08Cpa/fK/xC7J1VpuS/Kj5+UVl5/L
	0tBi+9ge/jUXv7TAJ4Xrqm/phyElJ4nHkele3Gnab33Bu2N9xZ4pdB1SJIgF8AOkJX+T
	ZQXHO20EL+uVErIsXjGT+JHIVBzfR9hMuzub8JD7QEqfX9TCTTa/9X/7hucsObea9ZA5
	pT39jn8TVvZhnUg86AIPzDg0o/9fIzR+RbSmJD7sepSNvtmhQwsh09rSo/9fVBxqhkRO
	Beww==
MIME-Version: 1.0
X-Received: by 10.52.75.200 with SMTP id e8mr10386129vdw.32.1413630817356;
	Sat, 18 Oct 2014 04:13:37 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Sat, 18 Oct 2014 04:13:37 -0700 (PDT)
In-Reply-To: <4958954E-0E3E-4CFC-B60F-5B6A2B4633D5@recoil.org>
References: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
	<F4762258-35B3-43D7-AD26-85CA3984239D@recoil.org>
	<CABOgvBfbuRczTHM7tg-EZ=2nLFYoXKV83uH8rsBwNkWpNLoR=w@mail.gmail.com>
	<4958954E-0E3E-4CFC-B60F-5B6A2B4633D5@recoil.org>
Date: Sat, 18 Oct 2014 12:13:37 +0100
Message-ID: <CAG4opy-8XDyjCEA4Ar-36Ptg4G2gfBtgBhdD8X4tvfmc95XLdw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: Brian Brietzke <bbrietzke@gmail.com>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Really fascinating
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 18 October 2014 00:13, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 17 Oct 2014, at 11:08, Brian Brietzke <bbrietzke@gmail.com> wrote:
[...]
>> As for cohttp, are there an worked examples of having parameterized resource
>> URIs?
>
> Not sure -- Thomas (Leonard) may have one as he worked on his blog.

My example just matches on fixed URLs, but I imagine you can process
the URL string with any suitable library to extract query parameters,
e.g.

https://github.com/mirage/ocaml-uri


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 18 11:13:50 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 18 Oct 2014 11:13: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 1XfRx8-0003tz-1u; Sat, 18 Oct 2014 11:13:42 +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 1XfRx6-0003tu-FY
	for mirageos-devel@lists.xenproject.org; Sat, 18 Oct 2014 11:13:40 +0000
Received: from [85.158.139.211:5160] by server-7.bemta-5.messagelabs.com id
	98/36-30869-36B42445; Sat, 18 Oct 2014 11:13:39 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1413630817!8614691!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5533 invoked from network); 18 Oct 2014 11:13:38 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	18 Oct 2014 11:13:38 -0000
Received: by mail-vc0-f180.google.com with SMTP id le20so1655711vcb.25
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 18 Oct 2014 04:13:37 -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=2MddPaeUxWv9oLgaIxnZ1fL7HhnJKTSsNnb0PceJ0As=;
	b=AtXhunNqeg9CpWmlZtOYC73VwUz+BBCq6iCxODXNEyGcfYWXwn7GsT3xoRFuGJJysh
	k1FbRyoJCqrT9cLeFbbZbeir3KcpgQbH6r4DqjS08Cpa/fK/xC7J1VpuS/Kj5+UVl5/L
	0tBi+9ge/jUXv7TAJ4Xrqm/phyElJ4nHkele3Gnab33Bu2N9xZ4pdB1SJIgF8AOkJX+T
	ZQXHO20EL+uVErIsXjGT+JHIVBzfR9hMuzub8JD7QEqfX9TCTTa/9X/7hucsObea9ZA5
	pT39jn8TVvZhnUg86AIPzDg0o/9fIzR+RbSmJD7sepSNvtmhQwsh09rSo/9fVBxqhkRO
	Beww==
MIME-Version: 1.0
X-Received: by 10.52.75.200 with SMTP id e8mr10386129vdw.32.1413630817356;
	Sat, 18 Oct 2014 04:13:37 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Sat, 18 Oct 2014 04:13:37 -0700 (PDT)
In-Reply-To: <4958954E-0E3E-4CFC-B60F-5B6A2B4633D5@recoil.org>
References: <CABOgvBcWtF5o1WebpNosXD7cnUYJbe1ZgR054T6b==2TU_N_Mg@mail.gmail.com>
	<F4762258-35B3-43D7-AD26-85CA3984239D@recoil.org>
	<CABOgvBfbuRczTHM7tg-EZ=2nLFYoXKV83uH8rsBwNkWpNLoR=w@mail.gmail.com>
	<4958954E-0E3E-4CFC-B60F-5B6A2B4633D5@recoil.org>
Date: Sat, 18 Oct 2014 12:13:37 +0100
Message-ID: <CAG4opy-8XDyjCEA4Ar-36Ptg4G2gfBtgBhdD8X4tvfmc95XLdw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: Brian Brietzke <bbrietzke@gmail.com>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Really fascinating
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 18 October 2014 00:13, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 17 Oct 2014, at 11:08, Brian Brietzke <bbrietzke@gmail.com> wrote:
[...]
>> As for cohttp, are there an worked examples of having parameterized resource
>> URIs?
>
> Not sure -- Thomas (Leonard) may have one as he worked on his blog.

My example just matches on fixed URLs, but I imagine you can process
the URL string with any suitable library to extract query parameters,
e.g.

https://github.com/mirage/ocaml-uri


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 18 13:43:35 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 18 Oct 2014 13:43:35 +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 1XfUI6-0004rx-1D; Sat, 18 Oct 2014 13:43:30 +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 1XfUI4-0004rs-N3
	for mirageos-devel@lists.xenproject.org; Sat, 18 Oct 2014 13:43:28 +0000
Received: from [85.158.137.68:23735] by server-9.bemta-3.messagelabs.com id
	9F/67-30790-F7E62445; Sat, 18 Oct 2014 13:43:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-15.tower-31.messagelabs.com!1413639806!11378036!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22338 invoked from network); 18 Oct 2014 13:43:27 -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; 18 Oct 2014 13:43:27 -0000
Received: from [192.168.1.136] (c-98-210-179-111.hsd1.ca.comcast.net
	[98.210.179.111]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 029a1bf7;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 18 Oct 2014 14:45:58 +0100 (BST)
From: Anil Madhavapeddy <anil@recoil.org>
Message-Id: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
Date: Sat, 18 Oct 2014 06:43:21 -0700
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Subject: [MirageOS-devel] linking hack considered harmful
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

Dave and I have just untangled several build issues with mirage-console.  What was happening previously is that we had two packages: mirage-console-unix and mirage-console-xen, which both provided a Console module.  Since we never need to have both a Xen and a Unix console, we just selected the right ocamlfind package at link time to supply the correct one (aka the "linking hack").

When the console support became more sophisticated (support for multiple consoles), Dave factored out some functionality into a common package.  At this point, the linking hack became unworkable due to dependency issues.

What we've done in mirage-dev is to go back to a unified mirage-console package that provides these ocamlfind packages:
 - mirage-console       (module types)
 - mirage-console.proto (xen protocol)
 - mirage-console.unix  (Console_unix console with lwt.unix)
 - mirage-console.xen   (Console_xen console with xenstore/etc)

The mirage.2.0.0 frontend now aliases Console to Console_unix or Console_xen when generating main.ml, which seems a lot simpler than depending on which link-time module to use.

Any more build problems, let me or Dave know!

-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 Sat Oct 18 13:43:35 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 18 Oct 2014 13:43:35 +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 1XfUI6-0004rx-1D; Sat, 18 Oct 2014 13:43:30 +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 1XfUI4-0004rs-N3
	for mirageos-devel@lists.xenproject.org; Sat, 18 Oct 2014 13:43:28 +0000
Received: from [85.158.137.68:23735] by server-9.bemta-3.messagelabs.com id
	9F/67-30790-F7E62445; Sat, 18 Oct 2014 13:43:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-15.tower-31.messagelabs.com!1413639806!11378036!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22338 invoked from network); 18 Oct 2014 13:43:27 -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; 18 Oct 2014 13:43:27 -0000
Received: from [192.168.1.136] (c-98-210-179-111.hsd1.ca.comcast.net
	[98.210.179.111]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 029a1bf7;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 18 Oct 2014 14:45:58 +0100 (BST)
From: Anil Madhavapeddy <anil@recoil.org>
Message-Id: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
Date: Sat, 18 Oct 2014 06:43:21 -0700
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Subject: [MirageOS-devel] linking hack considered harmful
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

Dave and I have just untangled several build issues with mirage-console.  What was happening previously is that we had two packages: mirage-console-unix and mirage-console-xen, which both provided a Console module.  Since we never need to have both a Xen and a Unix console, we just selected the right ocamlfind package at link time to supply the correct one (aka the "linking hack").

When the console support became more sophisticated (support for multiple consoles), Dave factored out some functionality into a common package.  At this point, the linking hack became unworkable due to dependency issues.

What we've done in mirage-dev is to go back to a unified mirage-console package that provides these ocamlfind packages:
 - mirage-console       (module types)
 - mirage-console.proto (xen protocol)
 - mirage-console.unix  (Console_unix console with lwt.unix)
 - mirage-console.xen   (Console_xen console with xenstore/etc)

The mirage.2.0.0 frontend now aliases Console to Console_unix or Console_xen when generating main.ml, which seems a lot simpler than depending on which link-time module to use.

Any more build problems, let me or Dave know!

-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 Sun Oct 19 10:17:16 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 19 Oct 2014 10:17: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 1XfnXx-0003Ly-5C; Sun, 19 Oct 2014 10:17:09 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lukedunstan81@gmail.com>) id 1XfnXv-0003Lq-41
	for mirageos-devel@lists.xenproject.org; Sun, 19 Oct 2014 10:17:07 +0000
Received: from [85.158.137.68:37100] by server-12.bemta-3.messagelabs.com id
	2F/E9-01574-2AF83445; Sun, 19 Oct 2014 10:17:06 +0000
X-Env-Sender: lukedunstan81@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1413713824!11581619!1
X-Originating-IP: [209.85.215.44]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18860 invoked from network); 19 Oct 2014 10:17:04 -0000
Received: from mail-la0-f44.google.com (HELO mail-la0-f44.google.com)
	(209.85.215.44)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Oct 2014 10:17:04 -0000
Received: by mail-la0-f44.google.com with SMTP id hs14so2604244lab.3
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 19 Oct 2014 03:17:04 -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=eUKoAPaxv0i94q5oa0gsATsGfkCbjDtSGqVXEHIyMQo=;
	b=EjQFqDC6PEkxfjJGuCeI0t6neIm0VnWfC/yKDY2R5JAJ3QLv7ODnAxgggRKNLOar7A
	FHBDfjlIeYXzhS+1GRt22k+hwOemGI8qQysXg3a88Sn1uX8KFcwDgBWOyiaDmUwB0NDY
	5wrocPZMbUx91AlOVjVNpP314iY58qh1Wu7cB8hxJwAEWTkcF5yKqPnUMm1bzp9LOtSx
	MgeD2j8ypvZmlVl/hYTjhIwF8s1LWyHVgJeeUShZIrVzqxaHGQfbVeDfa7XfjYRffhEX
	DhRcrTFAXswjTqupQeq6nnYI+CKJDpr1Q8HVZedOUmSWXVbx2lf2L1Drgs4kalFed1rq
	wHtg==
MIME-Version: 1.0
X-Received: by 10.112.183.233 with SMTP id ep9mr20342204lbc.62.1413713823735; 
	Sun, 19 Oct 2014 03:17:03 -0700 (PDT)
Received: by 10.112.52.104 with HTTP; Sun, 19 Oct 2014 03:17:03 -0700 (PDT)
Date: Sun, 19 Oct 2014 18:17:03 +0800
Message-ID: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
From: Luke Dunstan <lukedunstan81@gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Building mirage-www fails
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="===============5348742204670164793=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5348742204670164793==
Content-Type: multipart/alternative; boundary=001a113486ca4726a20505c3e6a7

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

Hi,

I tried to build mirage-www as per http://openmirage.org/wiki/mirage-www

$ env NET=socket FS=crunch mirage configure --unix
(success)

$ make depend
(success*)

$ make
camlbuild -classic-display -use-ocamlfind -pkgs
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-socket
-tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g
-lflags -g,-linkpkg main.native
ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
-package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
-package mirage-http -package mirage-fs-unix -package mirage-console.unix
-package lwt -package io-page.unix -package io-page -package cstruct
-package cowabloga -package cow.syntax -package conduit.mirage -package
lwt.syntax -syntax camlp4o -o main.cmo main.ml
+ ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
-package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
-package mirage-http -package mirage-fs-unix -package mirage-console.unix
-package lwt -package io-page.unix -package io-page -package cstruct
-package cowabloga -package cow.syntax -package conduit.mirage -package
lwt.syntax -syntax camlp4o -o main.cmo main.ml
File "main.ml", line 98, characters 2-13:
Error: Unbound module OS
Command exited with code 2.
make: *** [main.native] Error 10


To try to ensure that this was reproducible I also tried starting from the
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same
error. However, I had to change the ounit package URL because
forge.ocamlcore.org is apparently down.

Also, I had to "apt-get install libssl-dev" to get past the "configure" /
"make depend" step because it was apparently required to compile ssl-0.4.7,
so maybe that is related to the problem?

Log: http://pastebin.com/ZgfLPNeP

Caveats: I am very new to OCaml and Docker.

Luke

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

<div dir=3D"ltr">Hi,<div><br></div><div>I tried to build mirage-www as per=
=C2=A0<a href=3D"http://openmirage.org/wiki/mirage-www" target=3D"_blank">h=
ttp://openmirage.org/wiki/mirage-www</a></div><div><br></div><div>$ env NET=
=3Dsocket FS=3Dcrunch mirage configure --unix</div><div>(success)</div><div=
><br></div><div>$ make depend</div><div>(success*)</div><div><br></div><div=
>$ make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs lwt.=
syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt=
,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.l=
wt,tcpip.stack-socket -tags &quot;syntax(camlp4o),annot,bin_annot,strict_se=
quence,principal&quot; -cflag -g -lflags -g,-linkpkg main.native</div><div>=
ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence -packa=
ge tcpip.stack-socket -package mirage-types.lwt -package mirage-types -pack=
age mirage-http -package mirage-fs-unix -package mirage-console.unix -packa=
ge lwt -package io-page.unix -package io-page -package cstruct -package cow=
abloga -package cow.syntax -package conduit.mirage -package lwt.syntax -syn=
tax camlp4o -o main.cmo <a href=3D"http://main.ml" target=3D"_blank">main.m=
l</a></div><div>+ ocamlfind ocamlc -c -g -annot -bin-annot -principal -stri=
ct-sequence -package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package mirage-c=
onsole.unix -package lwt -package io-page.unix -package io-page -package cs=
truct -package cowabloga -package cow.syntax -package conduit.mirage -packa=
ge lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml" target=
=3D"_blank">main.ml</a></div><div>File &quot;<a href=3D"http://main.ml" tar=
get=3D"_blank">main.ml</a>&quot;, line 98, characters 2-13:</div><div>Error=
: Unbound module OS</div><div>Command exited with code 2.</div><div>make: *=
** [main.native] Error 10</div></div><div><br></div><div><br></div><div>To =
try to ensure that this was reproducible I also tried starting from the &qu=
ot;avsm/docker-opam:ubuntu-trusty-4.01.0&quot; Docker image and got the sam=
e error. However, I had to change the ounit package URL because <a href=3D"=
http://forge.ocamlcore.org" target=3D"_blank">forge.ocamlcore.org</a> is ap=
parently down.</div><div><br></div><div>Also, I had to &quot;apt-get instal=
l libssl-dev&quot; to get past the &quot;configure&quot; / &quot;make depen=
d&quot; step because it was apparently required to compile ssl-0.4.7, so ma=
ybe that is related to the problem?</div><div><br></div><div>Log:=C2=A0<a h=
ref=3D"http://pastebin.com/ZgfLPNeP">http://pastebin.com/ZgfLPNeP</a></div>=
<div><br></div><div>Caveats: I am very new to OCaml and Docker.</div><div><=
br></div><div>Luke</div><div><br></div></div>

--001a113486ca4726a20505c3e6a7--


--===============5348742204670164793==
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

--===============5348742204670164793==--


From mirageos-devel-bounces@lists.xenproject.org Sun Oct 19 10:17:16 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 19 Oct 2014 10:17: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 1XfnXx-0003Ly-5C; Sun, 19 Oct 2014 10:17:09 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lukedunstan81@gmail.com>) id 1XfnXv-0003Lq-41
	for mirageos-devel@lists.xenproject.org; Sun, 19 Oct 2014 10:17:07 +0000
Received: from [85.158.137.68:37100] by server-12.bemta-3.messagelabs.com id
	2F/E9-01574-2AF83445; Sun, 19 Oct 2014 10:17:06 +0000
X-Env-Sender: lukedunstan81@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1413713824!11581619!1
X-Originating-IP: [209.85.215.44]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18860 invoked from network); 19 Oct 2014 10:17:04 -0000
Received: from mail-la0-f44.google.com (HELO mail-la0-f44.google.com)
	(209.85.215.44)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	19 Oct 2014 10:17:04 -0000
Received: by mail-la0-f44.google.com with SMTP id hs14so2604244lab.3
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 19 Oct 2014 03:17:04 -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=eUKoAPaxv0i94q5oa0gsATsGfkCbjDtSGqVXEHIyMQo=;
	b=EjQFqDC6PEkxfjJGuCeI0t6neIm0VnWfC/yKDY2R5JAJ3QLv7ODnAxgggRKNLOar7A
	FHBDfjlIeYXzhS+1GRt22k+hwOemGI8qQysXg3a88Sn1uX8KFcwDgBWOyiaDmUwB0NDY
	5wrocPZMbUx91AlOVjVNpP314iY58qh1Wu7cB8hxJwAEWTkcF5yKqPnUMm1bzp9LOtSx
	MgeD2j8ypvZmlVl/hYTjhIwF8s1LWyHVgJeeUShZIrVzqxaHGQfbVeDfa7XfjYRffhEX
	DhRcrTFAXswjTqupQeq6nnYI+CKJDpr1Q8HVZedOUmSWXVbx2lf2L1Drgs4kalFed1rq
	wHtg==
MIME-Version: 1.0
X-Received: by 10.112.183.233 with SMTP id ep9mr20342204lbc.62.1413713823735; 
	Sun, 19 Oct 2014 03:17:03 -0700 (PDT)
Received: by 10.112.52.104 with HTTP; Sun, 19 Oct 2014 03:17:03 -0700 (PDT)
Date: Sun, 19 Oct 2014 18:17:03 +0800
Message-ID: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
From: Luke Dunstan <lukedunstan81@gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Building mirage-www fails
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="===============5348742204670164793=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5348742204670164793==
Content-Type: multipart/alternative; boundary=001a113486ca4726a20505c3e6a7

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

Hi,

I tried to build mirage-www as per http://openmirage.org/wiki/mirage-www

$ env NET=socket FS=crunch mirage configure --unix
(success)

$ make depend
(success*)

$ make
camlbuild -classic-display -use-ocamlfind -pkgs
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-socket
-tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g
-lflags -g,-linkpkg main.native
ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
-package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
-package mirage-http -package mirage-fs-unix -package mirage-console.unix
-package lwt -package io-page.unix -package io-page -package cstruct
-package cowabloga -package cow.syntax -package conduit.mirage -package
lwt.syntax -syntax camlp4o -o main.cmo main.ml
+ ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
-package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
-package mirage-http -package mirage-fs-unix -package mirage-console.unix
-package lwt -package io-page.unix -package io-page -package cstruct
-package cowabloga -package cow.syntax -package conduit.mirage -package
lwt.syntax -syntax camlp4o -o main.cmo main.ml
File "main.ml", line 98, characters 2-13:
Error: Unbound module OS
Command exited with code 2.
make: *** [main.native] Error 10


To try to ensure that this was reproducible I also tried starting from the
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same
error. However, I had to change the ounit package URL because
forge.ocamlcore.org is apparently down.

Also, I had to "apt-get install libssl-dev" to get past the "configure" /
"make depend" step because it was apparently required to compile ssl-0.4.7,
so maybe that is related to the problem?

Log: http://pastebin.com/ZgfLPNeP

Caveats: I am very new to OCaml and Docker.

Luke

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

<div dir=3D"ltr">Hi,<div><br></div><div>I tried to build mirage-www as per=
=C2=A0<a href=3D"http://openmirage.org/wiki/mirage-www" target=3D"_blank">h=
ttp://openmirage.org/wiki/mirage-www</a></div><div><br></div><div>$ env NET=
=3Dsocket FS=3Dcrunch mirage configure --unix</div><div>(success)</div><div=
><br></div><div>$ make depend</div><div>(success*)</div><div><br></div><div=
>$ make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs lwt.=
syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt=
,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.l=
wt,tcpip.stack-socket -tags &quot;syntax(camlp4o),annot,bin_annot,strict_se=
quence,principal&quot; -cflag -g -lflags -g,-linkpkg main.native</div><div>=
ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence -packa=
ge tcpip.stack-socket -package mirage-types.lwt -package mirage-types -pack=
age mirage-http -package mirage-fs-unix -package mirage-console.unix -packa=
ge lwt -package io-page.unix -package io-page -package cstruct -package cow=
abloga -package cow.syntax -package conduit.mirage -package lwt.syntax -syn=
tax camlp4o -o main.cmo <a href=3D"http://main.ml" target=3D"_blank">main.m=
l</a></div><div>+ ocamlfind ocamlc -c -g -annot -bin-annot -principal -stri=
ct-sequence -package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package mirage-c=
onsole.unix -package lwt -package io-page.unix -package io-page -package cs=
truct -package cowabloga -package cow.syntax -package conduit.mirage -packa=
ge lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml" target=
=3D"_blank">main.ml</a></div><div>File &quot;<a href=3D"http://main.ml" tar=
get=3D"_blank">main.ml</a>&quot;, line 98, characters 2-13:</div><div>Error=
: Unbound module OS</div><div>Command exited with code 2.</div><div>make: *=
** [main.native] Error 10</div></div><div><br></div><div><br></div><div>To =
try to ensure that this was reproducible I also tried starting from the &qu=
ot;avsm/docker-opam:ubuntu-trusty-4.01.0&quot; Docker image and got the sam=
e error. However, I had to change the ounit package URL because <a href=3D"=
http://forge.ocamlcore.org" target=3D"_blank">forge.ocamlcore.org</a> is ap=
parently down.</div><div><br></div><div>Also, I had to &quot;apt-get instal=
l libssl-dev&quot; to get past the &quot;configure&quot; / &quot;make depen=
d&quot; step because it was apparently required to compile ssl-0.4.7, so ma=
ybe that is related to the problem?</div><div><br></div><div>Log:=C2=A0<a h=
ref=3D"http://pastebin.com/ZgfLPNeP">http://pastebin.com/ZgfLPNeP</a></div>=
<div><br></div><div>Caveats: I am very new to OCaml and Docker.</div><div><=
br></div><div>Luke</div><div><br></div></div>

--001a113486ca4726a20505c3e6a7--


--===============5348742204670164793==
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

--===============5348742204670164793==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 01:28:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 01:28: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 1Xg1m8-00011y-LV; Mon, 20 Oct 2014 01:28:44 +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 1Xg1m7-00011r-Dd
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 01:28:43 +0000
Received: from [85.158.139.211:7660] by server-2.bemta-5.messagelabs.com id
	3C/E0-31832-A4564445; Mon, 20 Oct 2014 01:28:42 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1413768521!12074030!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.4 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 977 invoked from network); 20 Oct 2014 01:28:41 -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; 20 Oct 2014 01:28:41 -0000
Received: from [10.1.1.194] (216.9.108.189 [216.9.108.189]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 7f15e6c5;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 20 Oct 2014 02:31:17 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
Date: Sun, 19 Oct 2014 18:28:32 -0700
Message-Id: <2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
To: Luke Dunstan <lukedunstan81@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============8239533238759460640=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============8239533238759460640==
Content-Type: multipart/alternative; boundary="Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64"


--Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> wrote:

> Hi,
>=20
> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>=20
> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
> (success)
>=20
> $ make depend
> (success*)
>=20
> $ make
> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
> + ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
> File "main.ml", line 98, characters 2-13:
> Error: Unbound module OS
> Command exited with code 2.
> make: *** [main.native] Error 10
>=20
>=20
> To try to ensure that this was reproducible I also tried starting from =
the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the =
same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>=20
> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?

Hi Luke,

Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.

In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs

- The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.01 =
and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
https://github.com/avsm/docker-opam has the sources

- https://github.com/mirage/is-mirage-broken runs as a cronjob (cron.sh) =
on blobs.openmirage.org daily and pushes the logs to the logs/ directory =
in this repo.  When that's completed running (and we've fixed the build =
breakages!), it should be easy to get it on the website as a badge so we =
can see the status of repos at a glance.

About to hop on a flight now, so I've left the cron job running and will =
check it out tomorrow.  If anyone else can test out the Docker images in =
the meanwhile, feel free...

-anil=

--Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64
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;">On 19 =
Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out. &nbsp;I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on. &nbsp;I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/">https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam">https://github.com/avsm/docke=
r-opam</a> has the sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken">https://github.com/mir=
age/is-mirage-broken</a> runs as a cronjob (cron.sh) on <a =
href=3D"http://blobs.openmirage.org">blobs.openmirage.org</a> daily and =
pushes the logs to the logs/ directory in this repo. &nbsp;When that's =
completed running (and we've fixed the build breakages!), it should be =
easy to get it on the website as a badge so we can see the status of =
repos at a glance.</div><div><br></div><div>About to hop on a flight =
now, so I've left the cron job running and will check it out tomorrow. =
&nbsp;If anyone else can test out the Docker images in the meanwhile, =
feel free...</div><div><br></div><div>-anil</div></body></html>=

--Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64--


--===============8239533238759460640==
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

--===============8239533238759460640==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 01:28:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 01:28: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 1Xg1m8-00011y-LV; Mon, 20 Oct 2014 01:28:44 +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 1Xg1m7-00011r-Dd
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 01:28:43 +0000
Received: from [85.158.139.211:7660] by server-2.bemta-5.messagelabs.com id
	3C/E0-31832-A4564445; Mon, 20 Oct 2014 01:28:42 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1413768521!12074030!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.4 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 977 invoked from network); 20 Oct 2014 01:28:41 -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; 20 Oct 2014 01:28:41 -0000
Received: from [10.1.1.194] (216.9.108.189 [216.9.108.189]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 7f15e6c5;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 20 Oct 2014 02:31:17 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
Date: Sun, 19 Oct 2014 18:28:32 -0700
Message-Id: <2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
To: Luke Dunstan <lukedunstan81@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============8239533238759460640=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============8239533238759460640==
Content-Type: multipart/alternative; boundary="Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64"


--Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> wrote:

> Hi,
>=20
> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>=20
> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
> (success)
>=20
> $ make depend
> (success*)
>=20
> $ make
> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
> + ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
> File "main.ml", line 98, characters 2-13:
> Error: Unbound module OS
> Command exited with code 2.
> make: *** [main.native] Error 10
>=20
>=20
> To try to ensure that this was reproducible I also tried starting from =
the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the =
same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>=20
> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?

Hi Luke,

Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.

In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs

- The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.01 =
and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
https://github.com/avsm/docker-opam has the sources

- https://github.com/mirage/is-mirage-broken runs as a cronjob (cron.sh) =
on blobs.openmirage.org daily and pushes the logs to the logs/ directory =
in this repo.  When that's completed running (and we've fixed the build =
breakages!), it should be easy to get it on the website as a badge so we =
can see the status of repos at a glance.

About to hop on a flight now, so I've left the cron job running and will =
check it out tomorrow.  If anyone else can test out the Docker images in =
the meanwhile, feel free...

-anil=

--Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64
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;">On 19 =
Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out. &nbsp;I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on. &nbsp;I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/">https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam">https://github.com/avsm/docke=
r-opam</a> has the sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken">https://github.com/mir=
age/is-mirage-broken</a> runs as a cronjob (cron.sh) on <a =
href=3D"http://blobs.openmirage.org">blobs.openmirage.org</a> daily and =
pushes the logs to the logs/ directory in this repo. &nbsp;When that's =
completed running (and we've fixed the build breakages!), it should be =
easy to get it on the website as a badge so we can see the status of =
repos at a glance.</div><div><br></div><div>About to hop on a flight =
now, so I've left the cron job running and will check it out tomorrow. =
&nbsp;If anyone else can test out the Docker images in the meanwhile, =
feel free...</div><div><br></div><div>-anil</div></body></html>=

--Apple-Mail=_19BD2C0D-CD60-48CE-8B0A-6A7CCD6F8D64--


--===============8239533238759460640==
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

--===============8239533238759460640==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 11:12:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 11:12: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 1XgAsg-0008H7-1r; Mon, 20 Oct 2014 11:12:06 +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 1XgAse-0008G9-AD; Mon, 20 Oct 2014 11:12:04 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	D2/60-02704-30EE4445; Mon, 20 Oct 2014 11:12:03 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1413803522!10815593!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_60_70,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27705 invoked from network); 20 Oct 2014 11:12:02 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Oct 2014 11:12:02 -0000
Received: by mail-wi0-f176.google.com with SMTP id hi2so6781058wib.3
	for <multiple recipients>; Mon, 20 Oct 2014 04:12:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:subject:message-id:date:to:mime-version;
	bh=uHNNr+fTjHRVlRgCIBIV7tDeYkWN+AgcBrK/uOyc6zw=;
	b=uHHGdb2ypw+dLhk0JorAAI0shz96Zz0FmZf1UWoxNRpQ4gr60uIhyed2TVAAizLf0+
	NpgMXJP8uiODJKY1YFARWdfdT/kZpCnTy0m/hjuE9Ox7igTHxIV4HEy2qSLi4eIAx0ZX
	ydWT0WIckxRkJHFeA0yJD37l229IqPcWIl8Wfv75q9Ty9MYmuMEXSADm1EyaT11JwCSC
	YJv9/dXduXvMPxcOrP6SM2mLwP0qWx05rfxROF36ljQT0diUEcyboIZtQ/ehSYPsISz6
	nJnFHxRlE7cVl5GMbOs9QA2HaT/xbZbnWZQ5UQXJc+ljcmmxo3BjGrKUcrfQ/yA3VveI
	sZ8Q==
X-Received: by 10.180.91.234 with SMTP id ch10mr19433763wib.60.1413803521959; 
	Mon, 20 Oct 2014 04:12:01 -0700 (PDT)
Received: from [192.168.0.25] (97e553ce.skybroadband.com. [151.229.83.206])
	by mx.google.com with ESMTPSA id
	kw2sm11494293wjb.34.2014.10.20.04.11.59 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 20 Oct 2014 04:12:01 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Message-Id: <C35237A3-B594-4228-AB5B-94FCBB6CF52C@gmail.com>
Date: Mon, 20 Oct 2014 12:11:57 +0100
To: xen-devel <xen-devel@lists.xenproject.org>,
	Xen API mailing list <xen-api@lists.xen.org>,
	mirageos-devel@lists.xenproject.org, Win-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Subject: [MirageOS-devel] September Advisory Board Minutes + Off-Line Votes
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="===============6455491421166285453=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6455491421166285453==
Content-Type: multipart/alternative; boundary="Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8"


--Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

See
* http://wiki.xenproject.org/wiki/AB_Meeting/September_2014_Minutes
* http://wiki.xenproject.org/wiki/AB_Votes/2014_Xen_Project_Summit_in_Seattle
* http://wiki.xenproject.org/wiki/AB_Votes/Post_XSA_108_PR_-_Clarification
* http://wiki.xenproject.org/wiki/AB_Votes/STARTUP_membership_class

Regards
Lars
--Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">See<div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Meeting/September_2014_Minutes">http://wiki.xenproject.org/wiki/AB_Meeting/September_2014_Minutes</a></div><div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Votes/2014_Xen_Project_Summit_in_Seattle">http://wiki.xenproject.org/wiki/AB_Votes/2014_Xen_Project_Summit_in_Seattle</a></div><div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Votes/Post_XSA_108_PR_-_Clarification">http://wiki.xenproject.org/wiki/AB_Votes/Post_XSA_108_PR_-_Clarification</a></div><div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Votes/STARTUP_membership_class">http://wiki.xenproject.org/wiki/AB_Votes/STARTUP_membership_class</a></div><div><br></div><div>Regards</div><div>Lars</div></body></html>
--Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8--


--===============6455491421166285453==
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

--===============6455491421166285453==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 11:12:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 11:12: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 1XgAsg-0008H7-1r; Mon, 20 Oct 2014 11:12:06 +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 1XgAse-0008G9-AD; Mon, 20 Oct 2014 11:12:04 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	D2/60-02704-30EE4445; Mon, 20 Oct 2014 11:12:03 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1413803522!10815593!1
X-Originating-IP: [209.85.212.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_60_70,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27705 invoked from network); 20 Oct 2014 11:12:02 -0000
Received: from mail-wi0-f176.google.com (HELO mail-wi0-f176.google.com)
	(209.85.212.176)
	by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Oct 2014 11:12:02 -0000
Received: by mail-wi0-f176.google.com with SMTP id hi2so6781058wib.3
	for <multiple recipients>; Mon, 20 Oct 2014 04:12:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:subject:message-id:date:to:mime-version;
	bh=uHNNr+fTjHRVlRgCIBIV7tDeYkWN+AgcBrK/uOyc6zw=;
	b=uHHGdb2ypw+dLhk0JorAAI0shz96Zz0FmZf1UWoxNRpQ4gr60uIhyed2TVAAizLf0+
	NpgMXJP8uiODJKY1YFARWdfdT/kZpCnTy0m/hjuE9Ox7igTHxIV4HEy2qSLi4eIAx0ZX
	ydWT0WIckxRkJHFeA0yJD37l229IqPcWIl8Wfv75q9Ty9MYmuMEXSADm1EyaT11JwCSC
	YJv9/dXduXvMPxcOrP6SM2mLwP0qWx05rfxROF36ljQT0diUEcyboIZtQ/ehSYPsISz6
	nJnFHxRlE7cVl5GMbOs9QA2HaT/xbZbnWZQ5UQXJc+ljcmmxo3BjGrKUcrfQ/yA3VveI
	sZ8Q==
X-Received: by 10.180.91.234 with SMTP id ch10mr19433763wib.60.1413803521959; 
	Mon, 20 Oct 2014 04:12:01 -0700 (PDT)
Received: from [192.168.0.25] (97e553ce.skybroadband.com. [151.229.83.206])
	by mx.google.com with ESMTPSA id
	kw2sm11494293wjb.34.2014.10.20.04.11.59 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Mon, 20 Oct 2014 04:12:01 -0700 (PDT)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Message-Id: <C35237A3-B594-4228-AB5B-94FCBB6CF52C@gmail.com>
Date: Mon, 20 Oct 2014 12:11:57 +0100
To: xen-devel <xen-devel@lists.xenproject.org>,
	Xen API mailing list <xen-api@lists.xen.org>,
	mirageos-devel@lists.xenproject.org, Win-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Subject: [MirageOS-devel] September Advisory Board Minutes + Off-Line Votes
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="===============6455491421166285453=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6455491421166285453==
Content-Type: multipart/alternative; boundary="Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8"


--Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

See
* http://wiki.xenproject.org/wiki/AB_Meeting/September_2014_Minutes
* http://wiki.xenproject.org/wiki/AB_Votes/2014_Xen_Project_Summit_in_Seattle
* http://wiki.xenproject.org/wiki/AB_Votes/Post_XSA_108_PR_-_Clarification
* http://wiki.xenproject.org/wiki/AB_Votes/STARTUP_membership_class

Regards
Lars
--Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">See<div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Meeting/September_2014_Minutes">http://wiki.xenproject.org/wiki/AB_Meeting/September_2014_Minutes</a></div><div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Votes/2014_Xen_Project_Summit_in_Seattle">http://wiki.xenproject.org/wiki/AB_Votes/2014_Xen_Project_Summit_in_Seattle</a></div><div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Votes/Post_XSA_108_PR_-_Clarification">http://wiki.xenproject.org/wiki/AB_Votes/Post_XSA_108_PR_-_Clarification</a></div><div>*&nbsp;<a href="http://wiki.xenproject.org/wiki/AB_Votes/STARTUP_membership_class">http://wiki.xenproject.org/wiki/AB_Votes/STARTUP_membership_class</a></div><div><br></div><div>Regards</div><div>Lars</div></body></html>
--Apple-Mail=_2B052B73-56A5-4969-8561-49487E6B7AF8--


--===============6455491421166285453==
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

--===============6455491421166285453==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 11:48:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 11:48: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 1XgBRv-0000XM-8u; Mon, 20 Oct 2014 11:48:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgBRt-0000XH-3x
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 11:48:29 +0000
Received: from [193.109.254.147:4808] by server-3.bemta-14.messagelabs.com id
	B9/0B-23707-C86F4445; Mon, 20 Oct 2014 11:48:28 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-14.tower-27.messagelabs.com!1413805625!11797479!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22101 invoked from network); 20 Oct 2014 11:47:05 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-14.tower-27.messagelabs.com with SMTP;
	20 Oct 2014 11:47:05 -0000
Received: (qmail 11204 invoked from network); 20 Oct 2014 11:47:04 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 20 Oct 2014 11:47:04 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 09508-04 for <mirageos-devel@lists.xenproject.org>;
	Mon, 20 Oct 2014 12:46:57 +0100 (BST)
Received: (qmail 10196 invoked by uid 599); 20 Oct 2014 11:46:38 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 20 Oct 2014 12:46:38 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgBQ5-00017d-IB; Mon, 20 Oct 2014 12:46:37 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 20 Oct 2014 12:46:35 +0100
Thread-Topic: [MirageOS-devel] linking hack considered harmful
Thread-Index: Ac/sW4C9vIHKsw5wTseYxJxrH4J5Ew==
Message-ID: <36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
References: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
In-Reply-To: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] linking hack considered harmful
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="===============7271689096322513969=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7271689096322513969==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

cool!=20

are there any other (core) modules where this linking hack was also =
being applied that will also need untangling like this?

On 18 Oct 2014, at 14:43, Anil Madhavapeddy <anil@recoil.org> wrote:

> Dave and I have just untangled several build issues with =
mirage-console.  What was happening previously is that we had two =
packages: mirage-console-unix and mirage-console-xen, which both =
provided a Console module.  Since we never need to have both a Xen and a =
Unix console, we just selected the right ocamlfind package at link time =
to supply the correct one (aka the "linking hack").
>=20
> When the console support became more sophisticated (support for =
multiple consoles), Dave factored out some functionality into a common =
package.  At this point, the linking hack became unworkable due to =
dependency issues.
>=20
> What we've done in mirage-dev is to go back to a unified =
mirage-console package that provides these ocamlfind packages:
> - mirage-console       (module types)
> - mirage-console.proto (xen protocol)
> - mirage-console.unix  (Console_unix console with lwt.unix)
> - mirage-console.xen   (Console_xen console with xenstore/etc)
>=20
> The mirage.2.0.0 frontend now aliases Console to Console_unix or =
Console_xen when generating main.ml, which seems a lot simpler than =
depending on which link-time module to use.
>=20
> Any more build problems, let me or Dave know!
>=20
> -anil
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURPYcAAoJEOLF27JWwSg3agkQAMQN4aTHl4BCeJ6WY5sDrQ0J
xVTgvL6R1O+5zzHzuYWfAfR61nVFKVg67vW6oBFssF4vewLrPdQvYW3Jw9W4kjaK
+YQZGY581+nQ6k9DQknpcoFVzYJDpCAQdeKLOovVc/NtbTAy8n9FpAcpLRyeWTZQ
Ogm+LRv+mwdLmwOC7UxF4aHo1jpW+BukmrdtTxjYS4m5++PbEUQ3bjEHCBUNBkWC
57YPD6TWg1ouv1tHSTIxPHhbmgOpTGSdSjQgGvj8x2ZfpZ0sFG8ijNggxff8L2xy
nROoYflLRk99xuD5nhgxYKDceG8lM9OIreRorlfh/l9nBfYtfA0gfX0kF+HMcbVQ
SQkWSDc9cKt08W+dMwr7nkeTRZUIYGHGNM2cnwkF5NyhgL3i3lfOI9rNd6lN8MgK
I3PgpFDJSpXW380YRDZa6b8kX7vMvLK4U0hgRqB/DEs6s8RaJsVU6jIJDvEgCc8F
cZK26OUg0rljXHgFaasSDE6kK7CfefCBJ8TR95OsuwXuDCrK0U/QJhJn3l09wpV4
D/v1r5uFabT9l6RX+GK5gZ6ikitu5LRlz8XxlJZQxxOT/vgEJOndykyKzY6lg/9b
OfgPfbgtcOoJ/8mh/fY+jn5w/yP0Hu1M0cCSMRMWLdN9F/Z9mWoGjHvZS+gBb/a5
Ywl4QGCPkaZ1JdgIhdQX
=OK08
-----END PGP SIGNATURE-----

--Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730--


--===============7271689096322513969==
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

--===============7271689096322513969==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 11:48:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 11:48: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 1XgBRv-0000XM-8u; Mon, 20 Oct 2014 11:48:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgBRt-0000XH-3x
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 11:48:29 +0000
Received: from [193.109.254.147:4808] by server-3.bemta-14.messagelabs.com id
	B9/0B-23707-C86F4445; Mon, 20 Oct 2014 11:48:28 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-14.tower-27.messagelabs.com!1413805625!11797479!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22101 invoked from network); 20 Oct 2014 11:47:05 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-14.tower-27.messagelabs.com with SMTP;
	20 Oct 2014 11:47:05 -0000
Received: (qmail 11204 invoked from network); 20 Oct 2014 11:47:04 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 20 Oct 2014 11:47:04 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 09508-04 for <mirageos-devel@lists.xenproject.org>;
	Mon, 20 Oct 2014 12:46:57 +0100 (BST)
Received: (qmail 10196 invoked by uid 599); 20 Oct 2014 11:46:38 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 20 Oct 2014 12:46:38 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgBQ5-00017d-IB; Mon, 20 Oct 2014 12:46:37 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 20 Oct 2014 12:46:35 +0100
Thread-Topic: [MirageOS-devel] linking hack considered harmful
Thread-Index: Ac/sW4C9vIHKsw5wTseYxJxrH4J5Ew==
Message-ID: <36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
References: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
In-Reply-To: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] linking hack considered harmful
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="===============7271689096322513969=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7271689096322513969==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

cool!=20

are there any other (core) modules where this linking hack was also =
being applied that will also need untangling like this?

On 18 Oct 2014, at 14:43, Anil Madhavapeddy <anil@recoil.org> wrote:

> Dave and I have just untangled several build issues with =
mirage-console.  What was happening previously is that we had two =
packages: mirage-console-unix and mirage-console-xen, which both =
provided a Console module.  Since we never need to have both a Xen and a =
Unix console, we just selected the right ocamlfind package at link time =
to supply the correct one (aka the "linking hack").
>=20
> When the console support became more sophisticated (support for =
multiple consoles), Dave factored out some functionality into a common =
package.  At this point, the linking hack became unworkable due to =
dependency issues.
>=20
> What we've done in mirage-dev is to go back to a unified =
mirage-console package that provides these ocamlfind packages:
> - mirage-console       (module types)
> - mirage-console.proto (xen protocol)
> - mirage-console.unix  (Console_unix console with lwt.unix)
> - mirage-console.xen   (Console_xen console with xenstore/etc)
>=20
> The mirage.2.0.0 frontend now aliases Console to Console_unix or =
Console_xen when generating main.ml, which seems a lot simpler than =
depending on which link-time module to use.
>=20
> Any more build problems, let me or Dave know!
>=20
> -anil
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURPYcAAoJEOLF27JWwSg3agkQAMQN4aTHl4BCeJ6WY5sDrQ0J
xVTgvL6R1O+5zzHzuYWfAfR61nVFKVg67vW6oBFssF4vewLrPdQvYW3Jw9W4kjaK
+YQZGY581+nQ6k9DQknpcoFVzYJDpCAQdeKLOovVc/NtbTAy8n9FpAcpLRyeWTZQ
Ogm+LRv+mwdLmwOC7UxF4aHo1jpW+BukmrdtTxjYS4m5++PbEUQ3bjEHCBUNBkWC
57YPD6TWg1ouv1tHSTIxPHhbmgOpTGSdSjQgGvj8x2ZfpZ0sFG8ijNggxff8L2xy
nROoYflLRk99xuD5nhgxYKDceG8lM9OIreRorlfh/l9nBfYtfA0gfX0kF+HMcbVQ
SQkWSDc9cKt08W+dMwr7nkeTRZUIYGHGNM2cnwkF5NyhgL3i3lfOI9rNd6lN8MgK
I3PgpFDJSpXW380YRDZa6b8kX7vMvLK4U0hgRqB/DEs6s8RaJsVU6jIJDvEgCc8F
cZK26OUg0rljXHgFaasSDE6kK7CfefCBJ8TR95OsuwXuDCrK0U/QJhJn3l09wpV4
D/v1r5uFabT9l6RX+GK5gZ6ikitu5LRlz8XxlJZQxxOT/vgEJOndykyKzY6lg/9b
OfgPfbgtcOoJ/8mh/fY+jn5w/yP0Hu1M0cCSMRMWLdN9F/Z9mWoGjHvZS+gBb/a5
Ywl4QGCPkaZ1JdgIhdQX
=OK08
-----END PGP SIGNATURE-----

--Apple-Mail=_ADA5962D-67C2-43F3-8D7E-97F20CC95730--


--===============7271689096322513969==
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

--===============7271689096322513969==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 12:27:47 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 12:27: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 1XgC3q-0001ta-E3; Mon, 20 Oct 2014 12:27:42 +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 1XgC3o-0001tK-OI
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 12:27:40 +0000
Received: from [193.109.254.147:41286] by server-4.bemta-14.messagelabs.com id
	ED/DA-01677-CBFF4445; Mon, 20 Oct 2014 12:27:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1413808059!11792995!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.4 required=7.0 tests=MIME_QP_LONG_LINE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24580 invoked from network); 20 Oct 2014 12:27:39 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 20 Oct 2014 12:27:39 -0000
Received: from [10.32.178.61] (31-221-87-87.cust-31.exponential-e.net
	[31.221.87.87]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8631bcd0;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 20 Oct 2014 13:30:17 +0100 (BST)
References: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
	<36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
Mime-Version: 1.0 (1.0)
In-Reply-To: <36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
Message-Id: <0E9431E7-7282-4510-8D72-025C13DF78BC@recoil.org>
X-Mailer: iPhone Mail (12A405)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 20 Oct 2014 13:27:34 +0100
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] linking hack considered harmful
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

Clock and Io_page, at least.

Anil



> On 20 Oct 2014, at 12:46, Richard Mortier <Richard.Mortier@nottingham.ac.uk> wrote:
> 
> cool! 
> 
> are there any other (core) modules where this linking hack was also being applied that will also need untangling like this?
> 
>> On 18 Oct 2014, at 14:43, Anil Madhavapeddy <anil@recoil.org> wrote:
>> 
>> Dave and I have just untangled several build issues with mirage-console.  What was happening previously is that we had two packages: mirage-console-unix and mirage-console-xen, which both provided a Console module.  Since we never need to have both a Xen and a Unix console, we just selected the right ocamlfind package at link time to supply the correct one (aka the "linking hack").
>> 
>> When the console support became more sophisticated (support for multiple consoles), Dave factored out some functionality into a common package.  At this point, the linking hack became unworkable due to dependency issues.
>> 
>> What we've done in mirage-dev is to go back to a unified mirage-console package that provides these ocamlfind packages:
>> - mirage-console       (module types)
>> - mirage-console.proto (xen protocol)
>> - mirage-console.unix  (Console_unix console with lwt.unix)
>> - mirage-console.xen   (Console_xen console with xenstore/etc)
>> 
>> The mirage.2.0.0 frontend now aliases Console to Console_unix or Console_xen when generating main.ml, which seems a lot simpler than depending on which link-time module to use.
>> 
>> Any more build problems, let me or Dave know!
>> 
>> -anil
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> 
> 
> -- 
> Cheers,
> 
> R.
> 
> 
> 
> 

_______________________________________________
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 Oct 20 12:27:47 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 12:27: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 1XgC3q-0001ta-E3; Mon, 20 Oct 2014 12:27:42 +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 1XgC3o-0001tK-OI
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 12:27:40 +0000
Received: from [193.109.254.147:41286] by server-4.bemta-14.messagelabs.com id
	ED/DA-01677-CBFF4445; Mon, 20 Oct 2014 12:27:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1413808059!11792995!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.4 required=7.0 tests=MIME_QP_LONG_LINE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24580 invoked from network); 20 Oct 2014 12:27:39 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 20 Oct 2014 12:27:39 -0000
Received: from [10.32.178.61] (31-221-87-87.cust-31.exponential-e.net
	[31.221.87.87]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8631bcd0;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 20 Oct 2014 13:30:17 +0100 (BST)
References: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
	<36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
Mime-Version: 1.0 (1.0)
In-Reply-To: <36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
Message-Id: <0E9431E7-7282-4510-8D72-025C13DF78BC@recoil.org>
X-Mailer: iPhone Mail (12A405)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Mon, 20 Oct 2014 13:27:34 +0100
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] linking hack considered harmful
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

Clock and Io_page, at least.

Anil



> On 20 Oct 2014, at 12:46, Richard Mortier <Richard.Mortier@nottingham.ac.uk> wrote:
> 
> cool! 
> 
> are there any other (core) modules where this linking hack was also being applied that will also need untangling like this?
> 
>> On 18 Oct 2014, at 14:43, Anil Madhavapeddy <anil@recoil.org> wrote:
>> 
>> Dave and I have just untangled several build issues with mirage-console.  What was happening previously is that we had two packages: mirage-console-unix and mirage-console-xen, which both provided a Console module.  Since we never need to have both a Xen and a Unix console, we just selected the right ocamlfind package at link time to supply the correct one (aka the "linking hack").
>> 
>> When the console support became more sophisticated (support for multiple consoles), Dave factored out some functionality into a common package.  At this point, the linking hack became unworkable due to dependency issues.
>> 
>> What we've done in mirage-dev is to go back to a unified mirage-console package that provides these ocamlfind packages:
>> - mirage-console       (module types)
>> - mirage-console.proto (xen protocol)
>> - mirage-console.unix  (Console_unix console with lwt.unix)
>> - mirage-console.xen   (Console_xen console with xenstore/etc)
>> 
>> The mirage.2.0.0 frontend now aliases Console to Console_unix or Console_xen when generating main.ml, which seems a lot simpler than depending on which link-time module to use.
>> 
>> Any more build problems, let me or Dave know!
>> 
>> -anil
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> 
> 
> -- 
> Cheers,
> 
> R.
> 
> 
> 
> 

_______________________________________________
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 Oct 20 14:10:17 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 14:10: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 1XgDf1-0008DU-RP; Mon, 20 Oct 2014 14:10:11 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lukedunstan81@gmail.com>) id 1XgDes-0008DJ-ME
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 14:10:09 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	8E/D6-02699-AB715445; Mon, 20 Oct 2014 14:10:02 +0000
X-Env-Sender: lukedunstan81@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1413814199!11982419!1
X-Originating-IP: [209.85.215.42]
X-SpamReason: No, hits=0.7 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31469 invoked from network); 20 Oct 2014 14:10:00 -0000
Received: from mail-la0-f42.google.com (HELO mail-la0-f42.google.com)
	(209.85.215.42)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Oct 2014 14:10:00 -0000
Received: by mail-la0-f42.google.com with SMTP id gf13so4491173lab.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 20 Oct 2014 07:09: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=vpGVUU/2c8d+mqcBp07Lwab9Ik+sYZs5xWJi/91BH1g=;
	b=wxunCe6wdphU+6NSK9VQlEJIGpPlVFM4mqfQ6rICh7vXuIbfKmqwfSZi6eFttc0ly7
	rHcP+0EnUdVUAkb2cJBfxwCN5b8f5LpkLm5ivKTigYu3Eh8gK9bvlpIJvvxz4G42dUNK
	0/aQH5TM5ks725ESGmEJ713X3fqX8Z6aYNc8dWxUBt1/6NfGjcT0D6CQNCu9MaSzkYqx
	DvPwnpzr8vFYIFhXo5T/Zr+I8fclHr+RA1p3K7xfYEGBIUOudifwwy8NXqBdjXGg5wOf
	w4NbP+dOPtWuY5JsnS4R3AzF02EiAfF6aYQvD9ckAnwwNOK+WUNWN5D4yvA5Nj9gMrXg
	j9TA==
MIME-Version: 1.0
X-Received: by 10.152.88.105 with SMTP id bf9mr27959937lab.30.1413814199330;
	Mon, 20 Oct 2014 07:09:59 -0700 (PDT)
Received: by 10.112.52.104 with HTTP; Mon, 20 Oct 2014 07:09:59 -0700 (PDT)
In-Reply-To: <2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
Date: Mon, 20 Oct 2014 22:09:59 +0800
Message-ID: <CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
From: Luke Dunstan <lukedunstan81@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4909932369537320205=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4909932369537320205==
Content-Type: multipart/alternative; boundary=001a11c36722212b4a0505db4502

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

Thanks, I was able to compile and run mirage-www on a Docker image with
4.01.

Luke


On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:

> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> wrote:
>
> Hi,
>
> I tried to build mirage-www as per http://openmirage.org/wiki/mirage-www
>
> $ env NET=socket FS=crunch mirage configure --unix
> (success)
>
> $ make depend
> (success*)
>
> $ make
> camlbuild -classic-display -use-ocamlfind -pkgs
> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-socket
> -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g
> -lflags -g,-linkpkg main.native
> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
> -package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
> -package mirage-http -package mirage-fs-unix -package mirage-console.unix
> -package lwt -package io-page.unix -package io-page -package cstruct
> -package cowabloga -package cow.syntax -package conduit.mirage -package
> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> + ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
> -package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
> -package mirage-http -package mirage-fs-unix -package mirage-console.unix
> -package lwt -package io-page.unix -package io-page -package cstruct
> -package cowabloga -package cow.syntax -package conduit.mirage -package
> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> File "main.ml", line 98, characters 2-13:
> Error: Unbound module OS
> Command exited with code 2.
> make: *** [main.native] Error 10
>
>
> To try to ensure that this was reproducible I also tried starting from the
> "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same
> error. However, I had to change the ounit package URL because
> forge.ocamlcore.org is apparently down.
>
> Also, I had to "apt-get install libssl-dev" to get past the "configure" /
> "make depend" step because it was apparently required to compile ssl-0.4.7,
> so maybe that is related to the problem?
>
>
> Hi Luke,
>
> Thanks for the bug report, and bonus points for trying the Docker
> repository out.  I've fixed the underlying issue that was causing the
> unbound OS module to show up -- it's because of some recent shuffling of
> dependencies in console handling, and this resulted in mirage-unix no
> longer being implicitly depended on.  I've modified the mirage tool to
> explicitly add the dependency in.
>
> In order to help keep things working across the increasing number of
> distributions, I've also created a couple of cron jobs that automatically
> build things and publish the logs
>
> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.01
> and 4.02:
> https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
> https://github.com/avsm/docker-opam has the sources
>
> - https://github.com/mirage/is-mirage-broken runs as a cronjob (cron.sh)
> on blobs.openmirage.org daily and pushes the logs to the logs/ directory
> in this repo.  When that's completed running (and we've fixed the build
> breakages!), it should be easy to get it on the website as a badge so we
> can see the status of repos at a glance.
>
> About to hop on a flight now, so I've left the cron job running and will
> check it out tomorrow.  If anyone else can test out the Docker images in
> the meanwhile, feel free...
>
> -anil
>

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

<div dir=3D"ltr">Thanks, I was able to compile and run mirage-www on a Dock=
er image with 4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 09:=
28, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"mailto:anil@recoil.o=
rg" 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"><div><div class=3D"h=
5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a href=3D"mailto:lukedunstan=
81@gmail.com" target=3D"_blank">lukedunstan81@gmail.com</a>&gt; wrote:<br><=
/div></div><div><div><div class=3D"h5"><br><blockquote type=3D"cite"><div d=
ir=3D"ltr">Hi,<div><br></div><div>I tried to build mirage-www as per=C2=A0<=
a href=3D"http://openmirage.org/wiki/mirage-www" target=3D"_blank">http://o=
penmirage.org/wiki/mirage-www</a></div><div><br></div><div>$ env NET=3Dsock=
et FS=3Dcrunch mirage configure --unix</div><div>(success)</div><div><br></=
div><div>$ make depend</div><div>(success*)</div><div><br></div><div>$ make=
</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,=
conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage=
-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpi=
p.stack-socket -tags &quot;syntax(camlp4o),annot,bin_annot,strict_sequence,=
principal&quot; -cflag -g -lflags -g,-linkpkg main.native</div><div>ocamlfi=
nd ocamlc -c -g -annot -bin-annot -principal -strict-sequence -package tcpi=
p.stack-socket -package mirage-types.lwt -package mirage-types -package mir=
age-http -package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package cowabloga =
-package cow.syntax -package conduit.mirage -package lwt.syntax -syntax cam=
lp4o -o main.cmo <a href=3D"http://main.ml/" target=3D"_blank">main.ml</a><=
/div><div>+ ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-seq=
uence -package tcpip.stack-socket -package mirage-types.lwt -package mirage=
-types -package mirage-http -package mirage-fs-unix -package mirage-console=
.unix -package lwt -package io-page.unix -package io-page -package cstruct =
-package cowabloga -package cow.syntax -package conduit.mirage -package lwt=
.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" target=3D"_=
blank">main.ml</a></div><div>File &quot;<a href=3D"http://main.ml/" target=
=3D"_blank">main.ml</a>&quot;, line 98, characters 2-13:</div><div>Error: U=
nbound module OS</div><div>Command exited with code 2.</div><div>make: *** =
[main.native] Error 10</div></div><div><br></div><div><br></div><div>To try=
 to ensure that this was reproducible I also tried starting from the &quot;=
avsm/docker-opam:ubuntu-trusty-4.01.0&quot; Docker image and got the same e=
rror. However, I had to change the ounit package URL because <a href=3D"htt=
p://forge.ocamlcore.org/" target=3D"_blank">forge.ocamlcore.org</a> is appa=
rently down.</div><div><br></div><div>Also, I had to &quot;apt-get install =
libssl-dev&quot; to get past the &quot;configure&quot; / &quot;make depend&=
quot; step because it was apparently required to compile ssl-0.4.7, so mayb=
e that is related to the problem?</div></div></blockquote><div><br></div></=
div></div>Hi Luke,</div><div><br></div><div>Thanks for the bug report, and =
bonus points for trying the Docker repository out.=C2=A0 I&#39;ve fixed the=
 underlying issue that was causing the unbound OS module to show up -- it&#=
39;s because of some recent shuffling of dependencies in console handling, =
and this resulted in mirage-unix no longer being implicitly depended on.=C2=
=A0 I&#39;ve modified the mirage tool to explicitly add the dependency in.<=
/div><div><br></div><div>In order to help keep things working across the in=
creasing number of distributions, I&#39;ve also created a couple of cron jo=
bs that automatically build things and publish the logs</div><div><br></div=
><div>- The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.=
01 and 4.02: =C2=A0<a href=3D"https://registry.hub.docker.com/u/avsm/docker=
-opam/builds_history/15669/" target=3D"_blank">https://registry.hub.docker.=
com/u/avsm/docker-opam/builds_history/15669/</a></div><div><a href=3D"https=
://github.com/avsm/docker-opam" target=3D"_blank">https://github.com/avsm/d=
ocker-opam</a> has the sources</div><div><br></div><div>- <a href=3D"https:=
//github.com/mirage/is-mirage-broken" target=3D"_blank">https://github.com/=
mirage/is-mirage-broken</a> runs as a cronjob (cron.sh) on <a href=3D"http:=
//blobs.openmirage.org" target=3D"_blank">blobs.openmirage.org</a> daily an=
d pushes the logs to the logs/ directory in this repo.=C2=A0 When that&#39;=
s completed running (and we&#39;ve fixed the build breakages!), it should b=
e easy to get it on the website as a badge so we can see the status of repo=
s at a glance.</div><div><br></div><div>About to hop on a flight now, so I&=
#39;ve left the cron job running and will check it out tomorrow.=C2=A0 If a=
nyone else can test out the Docker images in the meanwhile, feel free...</d=
iv><span class=3D"HOEnZb"><font color=3D"#888888"><div><br></div><div>-anil=
</div></font></span></div></blockquote></div><br></div>

--001a11c36722212b4a0505db4502--


--===============4909932369537320205==
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

--===============4909932369537320205==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 20 14:10:17 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 20 Oct 2014 14:10: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 1XgDf1-0008DU-RP; Mon, 20 Oct 2014 14:10:11 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lukedunstan81@gmail.com>) id 1XgDes-0008DJ-ME
	for mirageos-devel@lists.xenproject.org; Mon, 20 Oct 2014 14:10:09 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	8E/D6-02699-AB715445; Mon, 20 Oct 2014 14:10:02 +0000
X-Env-Sender: lukedunstan81@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1413814199!11982419!1
X-Originating-IP: [209.85.215.42]
X-SpamReason: No, hits=0.7 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31469 invoked from network); 20 Oct 2014 14:10:00 -0000
Received: from mail-la0-f42.google.com (HELO mail-la0-f42.google.com)
	(209.85.215.42)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	20 Oct 2014 14:10:00 -0000
Received: by mail-la0-f42.google.com with SMTP id gf13so4491173lab.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 20 Oct 2014 07:09: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=vpGVUU/2c8d+mqcBp07Lwab9Ik+sYZs5xWJi/91BH1g=;
	b=wxunCe6wdphU+6NSK9VQlEJIGpPlVFM4mqfQ6rICh7vXuIbfKmqwfSZi6eFttc0ly7
	rHcP+0EnUdVUAkb2cJBfxwCN5b8f5LpkLm5ivKTigYu3Eh8gK9bvlpIJvvxz4G42dUNK
	0/aQH5TM5ks725ESGmEJ713X3fqX8Z6aYNc8dWxUBt1/6NfGjcT0D6CQNCu9MaSzkYqx
	DvPwnpzr8vFYIFhXo5T/Zr+I8fclHr+RA1p3K7xfYEGBIUOudifwwy8NXqBdjXGg5wOf
	w4NbP+dOPtWuY5JsnS4R3AzF02EiAfF6aYQvD9ckAnwwNOK+WUNWN5D4yvA5Nj9gMrXg
	j9TA==
MIME-Version: 1.0
X-Received: by 10.152.88.105 with SMTP id bf9mr27959937lab.30.1413814199330;
	Mon, 20 Oct 2014 07:09:59 -0700 (PDT)
Received: by 10.112.52.104 with HTTP; Mon, 20 Oct 2014 07:09:59 -0700 (PDT)
In-Reply-To: <2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
Date: Mon, 20 Oct 2014 22:09:59 +0800
Message-ID: <CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
From: Luke Dunstan <lukedunstan81@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4909932369537320205=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4909932369537320205==
Content-Type: multipart/alternative; boundary=001a11c36722212b4a0505db4502

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

Thanks, I was able to compile and run mirage-www on a Docker image with
4.01.

Luke


On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:

> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> wrote:
>
> Hi,
>
> I tried to build mirage-www as per http://openmirage.org/wiki/mirage-www
>
> $ env NET=socket FS=crunch mirage configure --unix
> (success)
>
> $ make depend
> (success*)
>
> $ make
> camlbuild -classic-display -use-ocamlfind -pkgs
> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-socket
> -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g
> -lflags -g,-linkpkg main.native
> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
> -package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
> -package mirage-http -package mirage-fs-unix -package mirage-console.unix
> -package lwt -package io-page.unix -package io-page -package cstruct
> -package cowabloga -package cow.syntax -package conduit.mirage -package
> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> + ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence
> -package tcpip.stack-socket -package mirage-types.lwt -package mirage-types
> -package mirage-http -package mirage-fs-unix -package mirage-console.unix
> -package lwt -package io-page.unix -package io-page -package cstruct
> -package cowabloga -package cow.syntax -package conduit.mirage -package
> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> File "main.ml", line 98, characters 2-13:
> Error: Unbound module OS
> Command exited with code 2.
> make: *** [main.native] Error 10
>
>
> To try to ensure that this was reproducible I also tried starting from the
> "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same
> error. However, I had to change the ounit package URL because
> forge.ocamlcore.org is apparently down.
>
> Also, I had to "apt-get install libssl-dev" to get past the "configure" /
> "make depend" step because it was apparently required to compile ssl-0.4.7,
> so maybe that is related to the problem?
>
>
> Hi Luke,
>
> Thanks for the bug report, and bonus points for trying the Docker
> repository out.  I've fixed the underlying issue that was causing the
> unbound OS module to show up -- it's because of some recent shuffling of
> dependencies in console handling, and this resulted in mirage-unix no
> longer being implicitly depended on.  I've modified the mirage tool to
> explicitly add the dependency in.
>
> In order to help keep things working across the increasing number of
> distributions, I've also created a couple of cron jobs that automatically
> build things and publish the logs
>
> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.01
> and 4.02:
> https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
> https://github.com/avsm/docker-opam has the sources
>
> - https://github.com/mirage/is-mirage-broken runs as a cronjob (cron.sh)
> on blobs.openmirage.org daily and pushes the logs to the logs/ directory
> in this repo.  When that's completed running (and we've fixed the build
> breakages!), it should be easy to get it on the website as a badge so we
> can see the status of repos at a glance.
>
> About to hop on a flight now, so I've left the cron job running and will
> check it out tomorrow.  If anyone else can test out the Docker images in
> the meanwhile, feel free...
>
> -anil
>

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

<div dir=3D"ltr">Thanks, I was able to compile and run mirage-www on a Dock=
er image with 4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 09:=
28, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"mailto:anil@recoil.o=
rg" 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"><div><div class=3D"h=
5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a href=3D"mailto:lukedunstan=
81@gmail.com" target=3D"_blank">lukedunstan81@gmail.com</a>&gt; wrote:<br><=
/div></div><div><div><div class=3D"h5"><br><blockquote type=3D"cite"><div d=
ir=3D"ltr">Hi,<div><br></div><div>I tried to build mirage-www as per=C2=A0<=
a href=3D"http://openmirage.org/wiki/mirage-www" target=3D"_blank">http://o=
penmirage.org/wiki/mirage-www</a></div><div><br></div><div>$ env NET=3Dsock=
et FS=3Dcrunch mirage configure --unix</div><div>(success)</div><div><br></=
div><div>$ make depend</div><div>(success*)</div><div><br></div><div>$ make=
</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,=
conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage=
-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpi=
p.stack-socket -tags &quot;syntax(camlp4o),annot,bin_annot,strict_sequence,=
principal&quot; -cflag -g -lflags -g,-linkpkg main.native</div><div>ocamlfi=
nd ocamlc -c -g -annot -bin-annot -principal -strict-sequence -package tcpi=
p.stack-socket -package mirage-types.lwt -package mirage-types -package mir=
age-http -package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package cowabloga =
-package cow.syntax -package conduit.mirage -package lwt.syntax -syntax cam=
lp4o -o main.cmo <a href=3D"http://main.ml/" target=3D"_blank">main.ml</a><=
/div><div>+ ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-seq=
uence -package tcpip.stack-socket -package mirage-types.lwt -package mirage=
-types -package mirage-http -package mirage-fs-unix -package mirage-console=
.unix -package lwt -package io-page.unix -package io-page -package cstruct =
-package cowabloga -package cow.syntax -package conduit.mirage -package lwt=
.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" target=3D"_=
blank">main.ml</a></div><div>File &quot;<a href=3D"http://main.ml/" target=
=3D"_blank">main.ml</a>&quot;, line 98, characters 2-13:</div><div>Error: U=
nbound module OS</div><div>Command exited with code 2.</div><div>make: *** =
[main.native] Error 10</div></div><div><br></div><div><br></div><div>To try=
 to ensure that this was reproducible I also tried starting from the &quot;=
avsm/docker-opam:ubuntu-trusty-4.01.0&quot; Docker image and got the same e=
rror. However, I had to change the ounit package URL because <a href=3D"htt=
p://forge.ocamlcore.org/" target=3D"_blank">forge.ocamlcore.org</a> is appa=
rently down.</div><div><br></div><div>Also, I had to &quot;apt-get install =
libssl-dev&quot; to get past the &quot;configure&quot; / &quot;make depend&=
quot; step because it was apparently required to compile ssl-0.4.7, so mayb=
e that is related to the problem?</div></div></blockquote><div><br></div></=
div></div>Hi Luke,</div><div><br></div><div>Thanks for the bug report, and =
bonus points for trying the Docker repository out.=C2=A0 I&#39;ve fixed the=
 underlying issue that was causing the unbound OS module to show up -- it&#=
39;s because of some recent shuffling of dependencies in console handling, =
and this resulted in mirage-unix no longer being implicitly depended on.=C2=
=A0 I&#39;ve modified the mirage tool to explicitly add the dependency in.<=
/div><div><br></div><div>In order to help keep things working across the in=
creasing number of distributions, I&#39;ve also created a couple of cron jo=
bs that automatically build things and publish the logs</div><div><br></div=
><div>- The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.=
01 and 4.02: =C2=A0<a href=3D"https://registry.hub.docker.com/u/avsm/docker=
-opam/builds_history/15669/" target=3D"_blank">https://registry.hub.docker.=
com/u/avsm/docker-opam/builds_history/15669/</a></div><div><a href=3D"https=
://github.com/avsm/docker-opam" target=3D"_blank">https://github.com/avsm/d=
ocker-opam</a> has the sources</div><div><br></div><div>- <a href=3D"https:=
//github.com/mirage/is-mirage-broken" target=3D"_blank">https://github.com/=
mirage/is-mirage-broken</a> runs as a cronjob (cron.sh) on <a href=3D"http:=
//blobs.openmirage.org" target=3D"_blank">blobs.openmirage.org</a> daily an=
d pushes the logs to the logs/ directory in this repo.=C2=A0 When that&#39;=
s completed running (and we&#39;ve fixed the build breakages!), it should b=
e easy to get it on the website as a badge so we can see the status of repo=
s at a glance.</div><div><br></div><div>About to hop on a flight now, so I&=
#39;ve left the cron job running and will check it out tomorrow.=C2=A0 If a=
nyone else can test out the Docker images in the meanwhile, feel free...</d=
iv><span class=3D"HOEnZb"><font color=3D"#888888"><div><br></div><div>-anil=
</div></font></span></div></blockquote></div><br></div>

--001a11c36722212b4a0505db4502--


--===============4909932369537320205==
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

--===============4909932369537320205==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 02:21:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 02:21:02 +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 1XgP49-00007l-OI; Tue, 21 Oct 2014 02:20:53 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>) id 1XgP47-00007R-9Q
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 02:20:51 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	C6/39-13389-203C5445; Tue, 21 Oct 2014 02:20:50 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1413858049!6844542!1
X-Originating-IP: [209.85.217.181]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13117 invoked from network); 21 Oct 2014 02:20:49 -0000
Received: from mail-lb0-f181.google.com (HELO mail-lb0-f181.google.com)
	(209.85.217.181)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	21 Oct 2014 02:20:49 -0000
Received: by mail-lb0-f181.google.com with SMTP id l4so191769lbv.26
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 20 Oct 2014 19:20:49 -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=0wh73z2QpBSqx2OElpz8r5vCvITKKtGNkR0L506hSfg=;
	b=yFzmzXCk1c1sr8mc2UGk2PdjaISeg4acGqGv9u8SKBCJIgLAFqtFaW4AXeGu8mvT1A
	tFpg8QfeiwUazUcTMQx+rfg495S5yXxxCouDlrjALyT20s81qxOSbOx8hpYX5Wu7NZnp
	mqOGZq0pX0X5AD2biBsXFRaYI4wwlV+Tn7CuoEZwxPifnEWUPE0n6nyhtqXcdzfls0DV
	+W/IeC9VhZbmSZ/Pec8JfXJILyzM/dQ9cUCExEm4Ye1hnITbsUvCPyg5iks5nKakj714
	oCedUAUrvezGLJjl/nzLZNZM+hvvPitO3iOQVm294Tqr/88mgO1n6d9FbX9vC5rG+WfL
	KHLw==
MIME-Version: 1.0
X-Received: by 10.152.27.38 with SMTP id q6mr35544lag.92.1413858048834; Mon,
	20 Oct 2014 19:20:48 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Mon, 20 Oct 2014 19:20:48 -0700 (PDT)
Date: Mon, 20 Oct 2014 22:20:48 -0400
X-Google-Sender-Auth: -9EJRnmoay90tbr-j5vLfRG2d9I
Message-ID: <CAHehzX0X3pcsTxk8_GsSj_a1h4uiKR=YC378GZYF-OaE5wPjxA@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-devel@lists.xen.org, 
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org, 
	xen-api@lists.xen.org
Subject: [MirageOS-devel] Integration is the theme for Xen Project Document
	Day on October 29
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

In the era of clouds, integration is the key to success for
hypervisors.  This month, I am suggesting that we focus on integration
for our Xen Project Document Day.

We have new pages for OpenStack, CloudStack, OpenNebula, Ceph,
GlusterFS, Cloud Operating Systems (aka unikernels like MirageOS) on
our wiki.  What we lack is more information on how Xen Project
integrates with these and other projects.

Also, we need more info on using Xen Project with libvirt.  Many
clouds are built using the libvirt interface, yet we have very little
libvirt-specific information on our Wiki,  We need more particulars on
using Xen Project with a libvirt interface.

We'd welcome links to external information, as well as new content
explaining how Xen Project can work with these (and other) projects.

All the information you need to participate in Document Day is here:

http://wiki.xenproject.org/wiki/Xen_Document_Days

If you get a few moments before Wednesday, please take a look at the
current TODO list to see other items which need attention:

http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO

So 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 Oct 21 02:21:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 02:21:02 +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 1XgP49-00007l-OI; Tue, 21 Oct 2014 02:20:53 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>) id 1XgP47-00007R-9Q
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 02:20:51 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	C6/39-13389-203C5445; Tue, 21 Oct 2014 02:20:50 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1413858049!6844542!1
X-Originating-IP: [209.85.217.181]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13117 invoked from network); 21 Oct 2014 02:20:49 -0000
Received: from mail-lb0-f181.google.com (HELO mail-lb0-f181.google.com)
	(209.85.217.181)
	by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	21 Oct 2014 02:20:49 -0000
Received: by mail-lb0-f181.google.com with SMTP id l4so191769lbv.26
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 20 Oct 2014 19:20:49 -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=0wh73z2QpBSqx2OElpz8r5vCvITKKtGNkR0L506hSfg=;
	b=yFzmzXCk1c1sr8mc2UGk2PdjaISeg4acGqGv9u8SKBCJIgLAFqtFaW4AXeGu8mvT1A
	tFpg8QfeiwUazUcTMQx+rfg495S5yXxxCouDlrjALyT20s81qxOSbOx8hpYX5Wu7NZnp
	mqOGZq0pX0X5AD2biBsXFRaYI4wwlV+Tn7CuoEZwxPifnEWUPE0n6nyhtqXcdzfls0DV
	+W/IeC9VhZbmSZ/Pec8JfXJILyzM/dQ9cUCExEm4Ye1hnITbsUvCPyg5iks5nKakj714
	oCedUAUrvezGLJjl/nzLZNZM+hvvPitO3iOQVm294Tqr/88mgO1n6d9FbX9vC5rG+WfL
	KHLw==
MIME-Version: 1.0
X-Received: by 10.152.27.38 with SMTP id q6mr35544lag.92.1413858048834; Mon,
	20 Oct 2014 19:20:48 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Mon, 20 Oct 2014 19:20:48 -0700 (PDT)
Date: Mon, 20 Oct 2014 22:20:48 -0400
X-Google-Sender-Auth: -9EJRnmoay90tbr-j5vLfRG2d9I
Message-ID: <CAHehzX0X3pcsTxk8_GsSj_a1h4uiKR=YC378GZYF-OaE5wPjxA@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-devel@lists.xen.org, 
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org, 
	xen-api@lists.xen.org
Subject: [MirageOS-devel] Integration is the theme for Xen Project Document
	Day on October 29
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

In the era of clouds, integration is the key to success for
hypervisors.  This month, I am suggesting that we focus on integration
for our Xen Project Document Day.

We have new pages for OpenStack, CloudStack, OpenNebula, Ceph,
GlusterFS, Cloud Operating Systems (aka unikernels like MirageOS) on
our wiki.  What we lack is more information on how Xen Project
integrates with these and other projects.

Also, we need more info on using Xen Project with libvirt.  Many
clouds are built using the libvirt interface, yet we have very little
libvirt-specific information on our Wiki,  We need more particulars on
using Xen Project with a libvirt interface.

We'd welcome links to external information, as well as new content
explaining how Xen Project can work with these (and other) projects.

All the information you need to participate in Document Day is here:

http://wiki.xenproject.org/wiki/Xen_Document_Days

If you get a few moments before Wednesday, please take a look at the
current TODO list to see other items which need attention:

http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO

So 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 Oct 21 13:31:16 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 13:31: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 1XgZWo-0005Dh-2V; Tue, 21 Oct 2014 13:31:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XgZWn-0005D4-8F
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 13:31:09 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	A4/67-10419-B1066445; Tue, 21 Oct 2014 13:31:07 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-21.messagelabs.com!1413898265!8758304!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29029 invoked from network); 21 Oct 2014 13:31:05 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 13:31:05 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 4b36f508;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 21 Oct 2014 14:33:46 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
Date: Tue, 21 Oct 2014 14:31:01 +0100
Message-Id: <1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
To: Luke Dunstan <lukedunstan81@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4376878454061561391=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============4376878454061561391==
Content-Type: multipart/alternative; boundary="Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A"


--Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with =
the internal one (CentOS builds):

https://github.com/mirage/is-mirage-broken/tree/master/logs

This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.

More mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)

-anil

On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> wrote:

> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>=20
> Luke
>=20
>=20
> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>=20
>> Hi,
>>=20
>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>=20
>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>> (success)
>>=20
>> $ make depend
>> (success*)
>>=20
>> $ make
>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>> File "main.ml", line 98, characters 2-13:
>> Error: Unbound module OS
>> Command exited with code 2.
>> make: *** [main.native] Error 10
>>=20
>>=20
>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>=20
>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>=20
> Hi Luke,
>=20
> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>=20
> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>=20
> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
> https://github.com/avsm/docker-opam has the sources
>=20
> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>=20
> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>=20
> -anil
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A
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;"><div>Great! &nbsp;For the rest of the list, it looks =
like mirage-dev is working with the external OPAM solver (aspcud, on =
Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br></body></html>=

--Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A--


--===============4376878454061561391==
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

--===============4376878454061561391==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 13:31:16 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 13:31: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 1XgZWo-0005Dh-2V; Tue, 21 Oct 2014 13:31:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XgZWn-0005D4-8F
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 13:31:09 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	A4/67-10419-B1066445; Tue, 21 Oct 2014 13:31:07 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-21.messagelabs.com!1413898265!8758304!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29029 invoked from network); 21 Oct 2014 13:31:05 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 13:31:05 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 4b36f508;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 21 Oct 2014 14:33:46 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
Date: Tue, 21 Oct 2014 14:31:01 +0100
Message-Id: <1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
To: Luke Dunstan <lukedunstan81@gmail.com>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4376878454061561391=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============4376878454061561391==
Content-Type: multipart/alternative; boundary="Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A"


--Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with =
the internal one (CentOS builds):

https://github.com/mirage/is-mirage-broken/tree/master/logs

This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.

More mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)

-anil

On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> wrote:

> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>=20
> Luke
>=20
>=20
> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>=20
>> Hi,
>>=20
>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>=20
>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>> (success)
>>=20
>> $ make depend
>> (success*)
>>=20
>> $ make
>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>> File "main.ml", line 98, characters 2-13:
>> Error: Unbound module OS
>> Command exited with code 2.
>> make: *** [main.native] Error 10
>>=20
>>=20
>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>=20
>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>=20
> Hi Luke,
>=20
> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>=20
> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>=20
> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
> https://github.com/avsm/docker-opam has the sources
>=20
> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>=20
> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>=20
> -anil
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A
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;"><div>Great! &nbsp;For the rest of the list, it looks =
like mirage-dev is working with the external OPAM solver (aspcud, on =
Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br></body></html>=

--Apple-Mail=_BB591D81-90E6-461A-B8C1-785573A96B6A--


--===============4376878454061561391==
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

--===============4376878454061561391==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 14:15:38 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:15: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 1XgaDp-0007UM-An; Tue, 21 Oct 2014 14:15:37 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgaDn-0007UB-Og
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:15:36 +0000
Received: from [85.158.137.68:65150] by server-14.bemta-3.messagelabs.com id
	ED/3A-01575-78A66445; Tue, 21 Oct 2014 14:15:35 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-6.tower-31.messagelabs.com!1413900932!6717430!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6262 invoked from network); 21 Oct 2014 14:15:32 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-6.tower-31.messagelabs.com with SMTP;
	21 Oct 2014 14:15:32 -0000
Received: (qmail 17783 invoked from network); 21 Oct 2014 14:13:14 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 21 Oct 2014 14:13:14 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 16539-04 for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 15:13:14 +0100 (BST)
Received: (qmail 8101 invoked by uid 599); 21 Oct 2014 14:11:00 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 21 Oct 2014 15:11:00 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xga17-0005Qr-CG; Tue, 21 Oct 2014 15:02:29 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 21 Oct 2014 15:02:26 +0100
Thread-Topic: [MirageOS-devel] Building mirage-www fails
Thread-Index: Ac/tN6ZHfZpsAAGWTTKoWnDFODx8zw==
Message-ID: <7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
In-Reply-To: <1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4336878962741619234=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4336878962741619234==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D"


--Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

not sure precisely where the script being executed actually is but could =
it be because it's a command in a multi-command pipeline?

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html

-e
When this option is on, when any command fails (for any of the reasons =
listed in Consequences of Shell Errors or by returning an exit status =
greater than zero), the shell immediately shall exit with the following =
exceptions:
The failure of any individual command in a multi-command pipeline shall =
not cause the shell to exit. Only the failure of the pipeline itself =
shall be considered.

The -e setting shall be ignored when executing the compound list =
following the while, until, if, or elif reserved word, a pipeline =
beginning with the ! reserved word, or any command of an AND-OR list =
other than the last.

If the exit status of a compound command other than a subshell command =
was the result of a failure while -e was being ignored, then -e shall =
not apply to this command.

This requirement applies to the shell environment and each subshell =
environment separately. For example, in:

set -e; (false; echo one) | cat; echo two

the false command causes the subshell to exit without executing echo =
one; however, echo two is executed because the exit status of the =
pipeline (false; echo one) | cat is zero.



On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:

> Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with =
the internal one (CentOS builds):
>=20
> https://github.com/mirage/is-mirage-broken/tree/master/logs
>=20
> This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.
>=20
> More mysteriously, the `set -e` in the shell script isn't causing it =
to terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)
>=20
> -anil
>=20
> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>=20
>> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>>=20
>> Luke
>>=20
>>=20
>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>=20
>>> Hi,
>>>=20
>>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>>=20
>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>> (success)
>>>=20
>>> $ make depend
>>> (success*)
>>>=20
>>> $ make
>>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>> File "main.ml", line 98, characters 2-13:
>>> Error: Unbound module OS
>>> Command exited with code 2.
>>> make: *** [main.native] Error 10
>>>=20
>>>=20
>>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>>=20
>>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>>=20
>> Hi Luke,
>>=20
>> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>>=20
>> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>>=20
>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>> https://github.com/avsm/docker-opam has the sources
>>=20
>> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>>=20
>> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>>=20
>> -anil
>>=20
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D
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;"><div>not sure precisely where the script being =
executed actually is but could it be because it's a command in a =
multi-command pipeline?</div><div><br></div><div><a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html</a></div><div><br></div><div><dt style=3D"font-family: Verdana, =
Arial, Helvetica, sans-serif; background-color: rgb(255, 255, =
255);"><b>-e</b></dt><dd style=3D"font-family: Verdana, Arial, =
Helvetica, sans-serif; background-color: rgb(255, 255, 255);">When this =
option is on, when any command fails (for any of the reasons listed =
in&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html#tag_18_08_01" style=3D"color: rgb(102, 102, 255);">Consequences =
of Shell Errors</a>&nbsp;or by returning an exit status greater than =
zero), the shell immediately shall exit with the following =
exceptions:<ol><li style=3D"font-size: 10pt;"><p>The failure of any =
individual command in a multi-command pipeline shall not cause the shell =
to exit. Only the failure of the pipeline itself shall be =
considered.</p></li><li style=3D"font-size: =
10pt;"><p>The&nbsp;<b>-e</b>&nbsp;setting shall be ignored when =
executing the compound list following =
the&nbsp;<b>while</b>,&nbsp;<b>until</b>,&nbsp;<b>if</b>, =
or&nbsp;<b>elif</b>&nbsp;reserved word, a pipeline beginning with =
the&nbsp;<b>!</b>&nbsp;reserved word, or any command of an AND-OR list =
other than the last.</p></li><li style=3D"font-size: 10pt;"><p>If the =
exit status of a compound command other than a subshell command was the =
result of a failure while&nbsp;<b>-e</b>&nbsp;was being ignored, =
then&nbsp;<b>-e</b>&nbsp;shall not apply to this =
command.</p></li></ol><p>This requirement applies to the shell =
environment and each subshell environment separately. For example, =
in:</p><pre style=3D"font-size: 11pt;"><tt>set -e; (false; echo one) | =
cat; echo two
</tt>
</pre><p>the&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.ht=
ml" style=3D"color: rgb(102, 102, 255);"><i>false</i></a>&nbsp;command =
causes the subshell to exit without executing&nbsp;<tt>echo one</tt>; =
however,&nbsp;<tt>echo two</tt>&nbsp;is executed because the exit status =
of the pipeline&nbsp;<tt>(false; echo one) | cat</tt>&nbsp;is =
zero.</p></dd><div><br></div></div><div><br><div><div>On 21 Oct 2014, at =
14:31, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>Great! &nbsp;For the rest =
of the list, it looks like mirage-dev is working with the external OPAM =
solver (aspcud, on Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div>_________________________________________=
______<br>MirageOS-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; border-spacing: 0px;"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: =
rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: =
normal; font-weight: normal; letter-spacing: normal; line-height: =
normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: =
0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><div style=3D"word-wrap: =
break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space; "><div><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; "><br =
class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
<br></div></body></html>=

--Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D--

--Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURmdzAAoJEOLF27JWwSg3/jUP/2MsR+xTCrbmUnFZmYbCPMN+
55iusE39LvHfT8lvQP70LFehjN5zcaz6mZ6g0CaWxhRi1K/Fcg9X3h+Ja0boYcKM
xv+/xdJIVA+pGb0yxnnHoQgLkrcMQ6qJJBSGG+mh/3FEYNXEDR3EX3LcMytc0wS4
3IVp8spJP9IjF95CE2txcSzDrnnv2v6sHIDQDBwti/Y96UmKE5p8IHhJmDbNDrOg
btMaeWQN/kvlVTT+J3xf6GnnuBCGgd3UcVsJbAQmn1wl9vrfgbRjlJZUkMlks2d+
OsK4KRYJm8lfLlMHPVYhncsCkb04pgzRPfRq7XglLZAM7nFPFC4kTPi+jEoMnGYu
XgWMChf1on1jTRES9OL5/gn4wq/2HOjEVlu3xNWwQicOHoegT/ZEQysaMXCmvR8x
8oOh0DAngpLWP/zmHIofaoBExOCSUxjRwWA/nl1NKlvpiNX9yFmAxMhuTVtcBpVC
dcXiFDPRTKJmKYHvtXydob67fKWFIL2+93OY/PbeEPtFFQBxVgyBmGW9KPQhZi52
OX82Xrp3/WsZFuwnwkdFFOC4rxgWywFgi9eP6l3b98CA/XAoSDAOgqoybYZbRgmO
LG3l4VJ8cGThw9RVjTv+Jtjr1S+1KYAHC6KCFY6557kISBXUCZHY+4zQ5+Rg8bBb
W0utos9HaUkagHYt/BcD
=LByz
-----END PGP SIGNATURE-----

--Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA--


--===============4336878962741619234==
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

--===============4336878962741619234==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 14:15:38 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:15: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 1XgaDp-0007UM-An; Tue, 21 Oct 2014 14:15:37 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgaDn-0007UB-Og
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:15:36 +0000
Received: from [85.158.137.68:65150] by server-14.bemta-3.messagelabs.com id
	ED/3A-01575-78A66445; Tue, 21 Oct 2014 14:15:35 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-6.tower-31.messagelabs.com!1413900932!6717430!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6262 invoked from network); 21 Oct 2014 14:15:32 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-6.tower-31.messagelabs.com with SMTP;
	21 Oct 2014 14:15:32 -0000
Received: (qmail 17783 invoked from network); 21 Oct 2014 14:13:14 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 21 Oct 2014 14:13:14 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 16539-04 for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 15:13:14 +0100 (BST)
Received: (qmail 8101 invoked by uid 599); 21 Oct 2014 14:11:00 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 21 Oct 2014 15:11:00 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xga17-0005Qr-CG; Tue, 21 Oct 2014 15:02:29 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 21 Oct 2014 15:02:26 +0100
Thread-Topic: [MirageOS-devel] Building mirage-www fails
Thread-Index: Ac/tN6ZHfZpsAAGWTTKoWnDFODx8zw==
Message-ID: <7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
In-Reply-To: <1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4336878962741619234=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4336878962741619234==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D"


--Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

not sure precisely where the script being executed actually is but could =
it be because it's a command in a multi-command pipeline?

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html

-e
When this option is on, when any command fails (for any of the reasons =
listed in Consequences of Shell Errors or by returning an exit status =
greater than zero), the shell immediately shall exit with the following =
exceptions:
The failure of any individual command in a multi-command pipeline shall =
not cause the shell to exit. Only the failure of the pipeline itself =
shall be considered.

The -e setting shall be ignored when executing the compound list =
following the while, until, if, or elif reserved word, a pipeline =
beginning with the ! reserved word, or any command of an AND-OR list =
other than the last.

If the exit status of a compound command other than a subshell command =
was the result of a failure while -e was being ignored, then -e shall =
not apply to this command.

This requirement applies to the shell environment and each subshell =
environment separately. For example, in:

set -e; (false; echo one) | cat; echo two

the false command causes the subshell to exit without executing echo =
one; however, echo two is executed because the exit status of the =
pipeline (false; echo one) | cat is zero.



On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:

> Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with =
the internal one (CentOS builds):
>=20
> https://github.com/mirage/is-mirage-broken/tree/master/logs
>=20
> This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.
>=20
> More mysteriously, the `set -e` in the shell script isn't causing it =
to terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)
>=20
> -anil
>=20
> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>=20
>> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>>=20
>> Luke
>>=20
>>=20
>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>=20
>>> Hi,
>>>=20
>>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>>=20
>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>> (success)
>>>=20
>>> $ make depend
>>> (success*)
>>>=20
>>> $ make
>>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence =
-package tcpip.stack-socket -package mirage-types.lwt -package =
mirage-types -package mirage-http -package mirage-fs-unix -package =
mirage-console.unix -package lwt -package io-page.unix -package io-page =
-package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>> File "main.ml", line 98, characters 2-13:
>>> Error: Unbound module OS
>>> Command exited with code 2.
>>> make: *** [main.native] Error 10
>>>=20
>>>=20
>>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>>=20
>>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>>=20
>> Hi Luke,
>>=20
>> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>>=20
>> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>>=20
>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>> https://github.com/avsm/docker-opam has the sources
>>=20
>> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>>=20
>> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>>=20
>> -anil
>>=20
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D
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;"><div>not sure precisely where the script being =
executed actually is but could it be because it's a command in a =
multi-command pipeline?</div><div><br></div><div><a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html</a></div><div><br></div><div><dt style=3D"font-family: Verdana, =
Arial, Helvetica, sans-serif; background-color: rgb(255, 255, =
255);"><b>-e</b></dt><dd style=3D"font-family: Verdana, Arial, =
Helvetica, sans-serif; background-color: rgb(255, 255, 255);">When this =
option is on, when any command fails (for any of the reasons listed =
in&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html#tag_18_08_01" style=3D"color: rgb(102, 102, 255);">Consequences =
of Shell Errors</a>&nbsp;or by returning an exit status greater than =
zero), the shell immediately shall exit with the following =
exceptions:<ol><li style=3D"font-size: 10pt;"><p>The failure of any =
individual command in a multi-command pipeline shall not cause the shell =
to exit. Only the failure of the pipeline itself shall be =
considered.</p></li><li style=3D"font-size: =
10pt;"><p>The&nbsp;<b>-e</b>&nbsp;setting shall be ignored when =
executing the compound list following =
the&nbsp;<b>while</b>,&nbsp;<b>until</b>,&nbsp;<b>if</b>, =
or&nbsp;<b>elif</b>&nbsp;reserved word, a pipeline beginning with =
the&nbsp;<b>!</b>&nbsp;reserved word, or any command of an AND-OR list =
other than the last.</p></li><li style=3D"font-size: 10pt;"><p>If the =
exit status of a compound command other than a subshell command was the =
result of a failure while&nbsp;<b>-e</b>&nbsp;was being ignored, =
then&nbsp;<b>-e</b>&nbsp;shall not apply to this =
command.</p></li></ol><p>This requirement applies to the shell =
environment and each subshell environment separately. For example, =
in:</p><pre style=3D"font-size: 11pt;"><tt>set -e; (false; echo one) | =
cat; echo two
</tt>
</pre><p>the&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.ht=
ml" style=3D"color: rgb(102, 102, 255);"><i>false</i></a>&nbsp;command =
causes the subshell to exit without executing&nbsp;<tt>echo one</tt>; =
however,&nbsp;<tt>echo two</tt>&nbsp;is executed because the exit status =
of the pipeline&nbsp;<tt>(false; echo one) | cat</tt>&nbsp;is =
zero.</p></dd><div><br></div></div><div><br><div><div>On 21 Oct 2014, at =
14:31, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>Great! &nbsp;For the rest =
of the list, it looks like mirage-dev is working with the external OPAM =
solver (aspcud, on Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div>_________________________________________=
______<br>MirageOS-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; border-spacing: 0px;"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: =
rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: =
normal; font-weight: normal; letter-spacing: normal; line-height: =
normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: =
0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><div style=3D"word-wrap: =
break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space; "><div><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; "><br =
class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
<br></div></body></html>=

--Apple-Mail=_A92E5EEE-E6C3-441C-9E06-FBB46677241D--

--Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURmdzAAoJEOLF27JWwSg3/jUP/2MsR+xTCrbmUnFZmYbCPMN+
55iusE39LvHfT8lvQP70LFehjN5zcaz6mZ6g0CaWxhRi1K/Fcg9X3h+Ja0boYcKM
xv+/xdJIVA+pGb0yxnnHoQgLkrcMQ6qJJBSGG+mh/3FEYNXEDR3EX3LcMytc0wS4
3IVp8spJP9IjF95CE2txcSzDrnnv2v6sHIDQDBwti/Y96UmKE5p8IHhJmDbNDrOg
btMaeWQN/kvlVTT+J3xf6GnnuBCGgd3UcVsJbAQmn1wl9vrfgbRjlJZUkMlks2d+
OsK4KRYJm8lfLlMHPVYhncsCkb04pgzRPfRq7XglLZAM7nFPFC4kTPi+jEoMnGYu
XgWMChf1on1jTRES9OL5/gn4wq/2HOjEVlu3xNWwQicOHoegT/ZEQysaMXCmvR8x
8oOh0DAngpLWP/zmHIofaoBExOCSUxjRwWA/nl1NKlvpiNX9yFmAxMhuTVtcBpVC
dcXiFDPRTKJmKYHvtXydob67fKWFIL2+93OY/PbeEPtFFQBxVgyBmGW9KPQhZi52
OX82Xrp3/WsZFuwnwkdFFOC4rxgWywFgi9eP6l3b98CA/XAoSDAOgqoybYZbRgmO
LG3l4VJ8cGThw9RVjTv+Jtjr1S+1KYAHC6KCFY6557kISBXUCZHY+4zQ5+Rg8bBb
W0utos9HaUkagHYt/BcD
=LByz
-----END PGP SIGNATURE-----

--Apple-Mail=_B093CC96-6DF0-434F-8073-61CB3EE11CEA--


--===============4336878962741619234==
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

--===============4336878962741619234==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 14:18:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:18: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 1XgaGV-0007Zg-1L; Tue, 21 Oct 2014 14:18:23 +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 1XgaGU-0007ZZ-6U
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:18:22 +0000
Received: from [85.158.137.68:5744] by server-6.bemta-3.messagelabs.com id
	56/62-29521-D2B66445; Tue, 21 Oct 2014 14:18:21 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-9.tower-31.messagelabs.com!1413901098!7427693!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20467 invoked from network); 21 Oct 2014 14:18:19 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-9.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 14:18:19 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0ceca48d;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 21 Oct 2014 15:21:01 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
Date: Tue, 21 Oct 2014 15:18:16 +0100
Message-Id: <2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============3083913494708793830=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============3083913494708793830==
Content-Type: multipart/alternative; boundary="Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7"


--Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

It's here:
=
https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www

And the `make` invocations do seem to exit with a non-zero exit code.

-ani

On 21 Oct 2014, at 15:02, Richard Mortier =
<Richard.Mortier@nottingham.ac.uk> wrote:

> not sure precisely where the script being executed actually is but =
could it be because it's a command in a multi-command pipeline?
>=20
> =
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>=20
> -e
> When this option is on, when any command fails (for any of the reasons =
listed in Consequences of Shell Errors or by returning an exit status =
greater than zero), the shell immediately shall exit with the following =
exceptions:
> The failure of any individual command in a multi-command pipeline =
shall not cause the shell to exit. Only the failure of the pipeline =
itself shall be considered.
>=20
> The -e setting shall be ignored when executing the compound list =
following the while, until, if, or elif reserved word, a pipeline =
beginning with the ! reserved word, or any command of an AND-OR list =
other than the last.
>=20
> If the exit status of a compound command other than a subshell command =
was the result of a failure while -e was being ignored, then -e shall =
not apply to this command.
>=20
> This requirement applies to the shell environment and each subshell =
environment separately. For example, in:
>=20
> set -e; (false; echo one) | cat; echo two
>=20
> the false command causes the subshell to exit without executing echo =
one; however, echo two is executed because the exit status of the =
pipeline (false; echo one) | cat is zero.
>=20
>=20
>=20
> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>=20
>> Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with =
the internal one (CentOS builds):
>>=20
>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>=20
>> This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.
>>=20
>> More mysteriously, the `set -e` in the shell script isn't causing it =
to terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)
>>=20
>> -anil
>>=20
>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>=20
>>> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>>>=20
>>> Luke
>>>=20
>>>=20
>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>>=20
>>>> Hi,
>>>>=20
>>>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>>>=20
>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>> (success)
>>>>=20
>>>> $ make depend
>>>> (success*)
>>>>=20
>>>> $ make
>>>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>> File "main.ml", line 98, characters 2-13:
>>>> Error: Unbound module OS
>>>> Command exited with code 2.
>>>> make: *** [main.native] Error 10
>>>>=20
>>>>=20
>>>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>>>=20
>>>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>>>=20
>>> Hi Luke,
>>>=20
>>> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>>>=20
>>> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>>>=20
>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>>> https://github.com/avsm/docker-opam has the sources
>>>=20
>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>>>=20
>>> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>>>=20
>>> -anil
>>>=20
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>=20
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
>=20
> --=20
> Cheers,
>=20
> R.
>=20
>=20
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7
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;">It's =
here:<div><a =
href=3D"https://github.com/mirage/is-mirage-broken/blob/master/scripts/mir=
age-www">https://github.com/mirage/is-mirage-broken/blob/master/scripts/mi=
rage-www</a></div><div><br></div><div>And the `make` invocations do seem =
to exit with a non-zero exit =
code.</div><div><br></div><div>-ani</div><div><br><div><div>On 21 Oct =
2014, at 15:02, Richard Mortier &lt;<a =
href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Richard.Mortier@nottingha=
m.ac.uk</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>not sure precisely where =
the script being executed actually is but could it be because it's a =
command in a multi-command pipeline?</div><div><br></div><div><a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html</a></div><div><br></div><div><dt style=3D"font-family: Verdana, =
Arial, Helvetica, sans-serif; background-color: rgb(255, 255, =
255);"><b>-e</b></dt><dd style=3D"font-family: Verdana, Arial, =
Helvetica, sans-serif; background-color: rgb(255, 255, 255);">When this =
option is on, when any command fails (for any of the reasons listed =
in&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html#tag_18_08_01" style=3D"color: rgb(102, 102, 255);">Consequences =
of Shell Errors</a>&nbsp;or by returning an exit status greater than =
zero), the shell immediately shall exit with the following =
exceptions:<ol><li style=3D"font-size: 10pt;"><p>The failure of any =
individual command in a multi-command pipeline shall not cause the shell =
to exit. Only the failure of the pipeline itself shall be =
considered.</p></li><li style=3D"font-size: =
10pt;"><p>The&nbsp;<b>-e</b>&nbsp;setting shall be ignored when =
executing the compound list following =
the&nbsp;<b>while</b>,&nbsp;<b>until</b>,&nbsp;<b>if</b>, =
or&nbsp;<b>elif</b>&nbsp;reserved word, a pipeline beginning with =
the&nbsp;<b>!</b>&nbsp;reserved word, or any command of an AND-OR list =
other than the last.</p></li><li style=3D"font-size: 10pt;"><p>If the =
exit status of a compound command other than a subshell command was the =
result of a failure while&nbsp;<b>-e</b>&nbsp;was being ignored, =
then&nbsp;<b>-e</b>&nbsp;shall not apply to this =
command.</p></li></ol><p>This requirement applies to the shell =
environment and each subshell environment separately. For example, =
in:</p><pre style=3D"font-size: 11pt;"><tt>set -e; (false; echo one) | =
cat; echo two
</tt>
</pre><p>the&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.ht=
ml" style=3D"color: rgb(102, 102, 255);"><i>false</i></a>&nbsp;command =
causes the subshell to exit without executing&nbsp;<tt>echo one</tt>; =
however,&nbsp;<tt>echo two</tt>&nbsp;is executed because the exit status =
of the pipeline&nbsp;<tt>(false; echo one) | cat</tt>&nbsp;is =
zero.</p></dd><div><br></div></div><div><br><div><div>On 21 Oct 2014, at =
14:31, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>Great! &nbsp;For the rest =
of the list, it looks like mirage-dev is working with the external OPAM =
solver (aspcud, on Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div>_________________________________________=
______<br>MirageOS-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; border-spacing: 0px;"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: =
none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: =
0px; -webkit-text-decorations-in-effect: none; =
-webkit-text-stroke-width: 0px;"><div style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><div><span class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
=
<br></div></div>_______________________________________________<br>MirageO=
S-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br></div></body></html>=

--Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7--


--===============3083913494708793830==
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

--===============3083913494708793830==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 14:18:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:18: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 1XgaGV-0007Zg-1L; Tue, 21 Oct 2014 14:18:23 +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 1XgaGU-0007ZZ-6U
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:18:22 +0000
Received: from [85.158.137.68:5744] by server-6.bemta-3.messagelabs.com id
	56/62-29521-D2B66445; Tue, 21 Oct 2014 14:18:21 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-9.tower-31.messagelabs.com!1413901098!7427693!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20467 invoked from network); 21 Oct 2014 14:18:19 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-9.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 14:18:19 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0ceca48d;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 21 Oct 2014 15:21:01 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
Date: Tue, 21 Oct 2014 15:18:16 +0100
Message-Id: <2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============3083913494708793830=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============3083913494708793830==
Content-Type: multipart/alternative; boundary="Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7"


--Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

It's here:
=
https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www

And the `make` invocations do seem to exit with a non-zero exit code.

-ani

On 21 Oct 2014, at 15:02, Richard Mortier =
<Richard.Mortier@nottingham.ac.uk> wrote:

> not sure precisely where the script being executed actually is but =
could it be because it's a command in a multi-command pipeline?
>=20
> =
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>=20
> -e
> When this option is on, when any command fails (for any of the reasons =
listed in Consequences of Shell Errors or by returning an exit status =
greater than zero), the shell immediately shall exit with the following =
exceptions:
> The failure of any individual command in a multi-command pipeline =
shall not cause the shell to exit. Only the failure of the pipeline =
itself shall be considered.
>=20
> The -e setting shall be ignored when executing the compound list =
following the while, until, if, or elif reserved word, a pipeline =
beginning with the ! reserved word, or any command of an AND-OR list =
other than the last.
>=20
> If the exit status of a compound command other than a subshell command =
was the result of a failure while -e was being ignored, then -e shall =
not apply to this command.
>=20
> This requirement applies to the shell environment and each subshell =
environment separately. For example, in:
>=20
> set -e; (false; echo one) | cat; echo two
>=20
> the false command causes the subshell to exit without executing echo =
one; however, echo two is executed because the exit status of the =
pipeline (false; echo one) | cat is zero.
>=20
>=20
>=20
> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>=20
>> Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with =
the internal one (CentOS builds):
>>=20
>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>=20
>> This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.
>>=20
>> More mysteriously, the `set -e` in the shell script isn't causing it =
to terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)
>>=20
>> -anil
>>=20
>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>=20
>>> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>>>=20
>>> Luke
>>>=20
>>>=20
>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>>=20
>>>> Hi,
>>>>=20
>>>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>>>=20
>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>> (success)
>>>>=20
>>>> $ make depend
>>>> (success*)
>>>>=20
>>>> $ make
>>>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>> File "main.ml", line 98, characters 2-13:
>>>> Error: Unbound module OS
>>>> Command exited with code 2.
>>>> make: *** [main.native] Error 10
>>>>=20
>>>>=20
>>>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>>>=20
>>>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>>>=20
>>> Hi Luke,
>>>=20
>>> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>>>=20
>>> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>>>=20
>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>>> https://github.com/avsm/docker-opam has the sources
>>>=20
>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>>>=20
>>> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>>>=20
>>> -anil
>>>=20
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>=20
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
>=20
> --=20
> Cheers,
>=20
> R.
>=20
>=20
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7
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;">It's =
here:<div><a =
href=3D"https://github.com/mirage/is-mirage-broken/blob/master/scripts/mir=
age-www">https://github.com/mirage/is-mirage-broken/blob/master/scripts/mi=
rage-www</a></div><div><br></div><div>And the `make` invocations do seem =
to exit with a non-zero exit =
code.</div><div><br></div><div>-ani</div><div><br><div><div>On 21 Oct =
2014, at 15:02, Richard Mortier &lt;<a =
href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Richard.Mortier@nottingha=
m.ac.uk</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>not sure precisely where =
the script being executed actually is but could it be because it's a =
command in a multi-command pipeline?</div><div><br></div><div><a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html</a></div><div><br></div><div><dt style=3D"font-family: Verdana, =
Arial, Helvetica, sans-serif; background-color: rgb(255, 255, =
255);"><b>-e</b></dt><dd style=3D"font-family: Verdana, Arial, =
Helvetica, sans-serif; background-color: rgb(255, 255, 255);">When this =
option is on, when any command fails (for any of the reasons listed =
in&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html#tag_18_08_01" style=3D"color: rgb(102, 102, 255);">Consequences =
of Shell Errors</a>&nbsp;or by returning an exit status greater than =
zero), the shell immediately shall exit with the following =
exceptions:<ol><li style=3D"font-size: 10pt;"><p>The failure of any =
individual command in a multi-command pipeline shall not cause the shell =
to exit. Only the failure of the pipeline itself shall be =
considered.</p></li><li style=3D"font-size: =
10pt;"><p>The&nbsp;<b>-e</b>&nbsp;setting shall be ignored when =
executing the compound list following =
the&nbsp;<b>while</b>,&nbsp;<b>until</b>,&nbsp;<b>if</b>, =
or&nbsp;<b>elif</b>&nbsp;reserved word, a pipeline beginning with =
the&nbsp;<b>!</b>&nbsp;reserved word, or any command of an AND-OR list =
other than the last.</p></li><li style=3D"font-size: 10pt;"><p>If the =
exit status of a compound command other than a subshell command was the =
result of a failure while&nbsp;<b>-e</b>&nbsp;was being ignored, =
then&nbsp;<b>-e</b>&nbsp;shall not apply to this =
command.</p></li></ol><p>This requirement applies to the shell =
environment and each subshell environment separately. For example, =
in:</p><pre style=3D"font-size: 11pt;"><tt>set -e; (false; echo one) | =
cat; echo two
</tt>
</pre><p>the&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.ht=
ml" style=3D"color: rgb(102, 102, 255);"><i>false</i></a>&nbsp;command =
causes the subshell to exit without executing&nbsp;<tt>echo one</tt>; =
however,&nbsp;<tt>echo two</tt>&nbsp;is executed because the exit status =
of the pipeline&nbsp;<tt>(false; echo one) | cat</tt>&nbsp;is =
zero.</p></dd><div><br></div></div><div><br><div><div>On 21 Oct 2014, at =
14:31, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>Great! &nbsp;For the rest =
of the list, it looks like mirage-dev is working with the external OPAM =
solver (aspcud, on Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div>_________________________________________=
______<br>MirageOS-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; border-spacing: 0px;"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: =
none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: =
0px; -webkit-text-decorations-in-effect: none; =
-webkit-text-stroke-width: 0px;"><div style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><div><span class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
=
<br></div></div>_______________________________________________<br>MirageO=
S-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br>http://lists.xenproject.org/cgi-bin/mailman/listinfo/=
mirageos-devel<br></blockquote></div><br></div></body></html>=

--Apple-Mail=_3FA847F8-A1B8-470B-AB5E-8EB7762671C7--


--===============3083913494708793830==
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

--===============3083913494708793830==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 14:42:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:42: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 1Xgae9-00019n-SN; Tue, 21 Oct 2014 14:42:49 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xgae7-00019S-IT
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:42:47 +0000
Received: from [85.158.137.68:59836] by server-9.bemta-3.messagelabs.com id
	CC/53-30790-6E076445; Tue, 21 Oct 2014 14:42:46 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-14.tower-31.messagelabs.com!1413902564!8723117!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5570 invoked from network); 21 Oct 2014 14:42:44 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-14.tower-31.messagelabs.com with SMTP;
	21 Oct 2014 14:42:44 -0000
Received: (qmail 6324 invoked from network); 21 Oct 2014 14:42:43 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 21 Oct 2014 14:42:43 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 05892-03 for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 15:42:36 +0100 (BST)
Received: (qmail 26897 invoked by uid 599); 21 Oct 2014 14:37:03 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 21 Oct 2014 15:37:03 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgaYZ-0002d9-0q; Tue, 21 Oct 2014 15:37:03 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 21 Oct 2014 15:37:00 +0100
Thread-Topic: [MirageOS-devel] Building mirage-www fails
Thread-Index: Ac/tPHn4ryDRbpzQTeen+oLDWR7c1g==
Message-ID: <367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
In-Reply-To: <2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4550238512981830254=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4550238512981830254==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101"


--Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

but isn't it the "make depend" step that's failing as far as the =
is-mirage-broken/scripts/mirage-www script is concerned -- hence it =
won't exit according to point 2. below (-e is ignored if it's any =
command of an AND-OR list other than the last).

with -e on, seems expected practice is to issue the commands =
individually i.e.

make depend
make configure
make build

...and let the -e fail them if required. (assuming you don't want to =
accumulate info about failures of depend/configure on other platforms =
before bailing out.)

On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:

> It's here:
> =
https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
>=20
> And the `make` invocations do seem to exit with a non-zero exit code.
>=20
> -ani
>=20
> On 21 Oct 2014, at 15:02, Richard Mortier =
<Richard.Mortier@nottingham.ac.uk> wrote:
>=20
>> not sure precisely where the script being executed actually is but =
could it be because it's a command in a multi-command pipeline?
>>=20
>> =
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>=20
>> -e
>> When this option is on, when any command fails (for any of the =
reasons listed in Consequences of Shell Errors or by returning an exit =
status greater than zero), the shell immediately shall exit with the =
following exceptions:
>> The failure of any individual command in a multi-command pipeline =
shall not cause the shell to exit. Only the failure of the pipeline =
itself shall be considered.
>>=20
>> The -e setting shall be ignored when executing the compound list =
following the while, until, if, or elif reserved word, a pipeline =
beginning with the ! reserved word, or any command of an AND-OR list =
other than the last.
>>=20
>> If the exit status of a compound command other than a subshell =
command was the result of a failure while -e was being ignored, then -e =
shall not apply to this command.
>>=20
>> This requirement applies to the shell environment and each subshell =
environment separately. For example, in:
>>=20
>> set -e; (false; echo one) | cat; echo two
>>=20
>> the false command causes the subshell to exit without executing echo =
one; however, echo two is executed because the exit status of the =
pipeline (false; echo one) | cat is zero.
>>=20
>>=20
>>=20
>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>=20
>>> Great!  For the rest of the list, it looks like mirage-dev is =
working with the external OPAM solver (aspcud, on Ubuntu-trusty), but =
not with the internal one (CentOS builds):
>>>=20
>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>=20
>>> This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.
>>>=20
>>> More mysteriously, the `set -e` in the shell script isn't causing it =
to terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)
>>>=20
>>> -anil
>>>=20
>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>>=20
>>>> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>>>>=20
>>>> Luke
>>>>=20
>>>>=20
>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> =
wrote:
>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>>>=20
>>>>> Hi,
>>>>>=20
>>>>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>>>>=20
>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>> (success)
>>>>>=20
>>>>> $ make depend
>>>>> (success*)
>>>>>=20
>>>>> $ make
>>>>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>> File "main.ml", line 98, characters 2-13:
>>>>> Error: Unbound module OS
>>>>> Command exited with code 2.
>>>>> make: *** [main.native] Error 10
>>>>>=20
>>>>>=20
>>>>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>>>>=20
>>>>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>>>>=20
>>>> Hi Luke,
>>>>=20
>>>> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>>>>=20
>>>> In order to help keep things working across the increasing number =
of distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>>>>=20
>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>>>> https://github.com/avsm/docker-opam has the sources
>>>>=20
>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>>>>=20
>>>> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>>>>=20
>>>> -anil
>>>>=20
>>>> _______________________________________________
>>>> MirageOS-devel mailing list
>>>> MirageOS-devel@lists.xenproject.org
>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>=20
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>=20
>>=20
>> --=20
>> Cheers,
>>=20
>> R.
>>=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
Cheers,

R.





--Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101
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;">but =
isn't it the "make depend" step that's failing as far as the =
is-mirage-broken/scripts/mirage-www script is concerned -- hence it =
won't exit according to point 2. below (-e is ignored if it's any =
command of an AND-OR list other than the last).<div><br></div><div>with =
-e on, seems expected practice is to issue the commands individually =
i.e.</div><div><br></div><div>make depend</div><div>make =
configure</div><div>make build</div><div><br></div><div>...and let the =
-e fail them if required. (assuming you don't want to accumulate info =
about failures of depend/configure on other platforms before bailing =
out.)</div><div><div><br><div><div>On 21 Oct 2014, at 15:18, Anil =
Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;">It's here:<div><a =
href=3D"https://github.com/mirage/is-mirage-broken/blob/master/scripts/mir=
age-www">https://github.com/mirage/is-mirage-broken/blob/master/scripts/mi=
rage-www</a></div><div><br></div><div>And the `make` invocations do seem =
to exit with a non-zero exit =
code.</div><div><br></div><div>-ani</div><div><br><div><div>On 21 Oct =
2014, at 15:02, Richard Mortier &lt;<a =
href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Richard.Mortier@nottingha=
m.ac.uk</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>not sure precisely where =
the script being executed actually is but could it be because it's a =
command in a multi-command pipeline?</div><div><br></div><div><a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html</a></div><div><br></div><div><dt style=3D"font-family: Verdana, =
Arial, Helvetica, sans-serif; background-color: rgb(255, 255, =
255);"><b>-e</b></dt><dd style=3D"font-family: Verdana, Arial, =
Helvetica, sans-serif; background-color: rgb(255, 255, 255);">When this =
option is on, when any command fails (for any of the reasons listed =
in&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html#tag_18_08_01" style=3D"color: rgb(102, 102, 255);">Consequences =
of Shell Errors</a>&nbsp;or by returning an exit status greater than =
zero), the shell immediately shall exit with the following =
exceptions:<ol><li style=3D"font-size: 10pt;"><p>The failure of any =
individual command in a multi-command pipeline shall not cause the shell =
to exit. Only the failure of the pipeline itself shall be =
considered.</p></li><li style=3D"font-size: =
10pt;"><p>The&nbsp;<b>-e</b>&nbsp;setting shall be ignored when =
executing the compound list following =
the&nbsp;<b>while</b>,&nbsp;<b>until</b>,&nbsp;<b>if</b>, =
or&nbsp;<b>elif</b>&nbsp;reserved word, a pipeline beginning with =
the&nbsp;<b>!</b>&nbsp;reserved word, or any command of an AND-OR list =
other than the last.</p></li><li style=3D"font-size: 10pt;"><p>If the =
exit status of a compound command other than a subshell command was the =
result of a failure while&nbsp;<b>-e</b>&nbsp;was being ignored, =
then&nbsp;<b>-e</b>&nbsp;shall not apply to this =
command.</p></li></ol><p>This requirement applies to the shell =
environment and each subshell environment separately. For example, =
in:</p><pre style=3D"font-size: 11pt;"><tt>set -e; (false; echo one) | =
cat; echo two
</tt>
</pre><p>the&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.ht=
ml" style=3D"color: rgb(102, 102, 255);"><i>false</i></a>&nbsp;command =
causes the subshell to exit without executing&nbsp;<tt>echo one</tt>; =
however,&nbsp;<tt>echo two</tt>&nbsp;is executed because the exit status =
of the pipeline&nbsp;<tt>(false; echo one) | cat</tt>&nbsp;is =
zero.</p></dd><div><br></div></div><div><br><div><div>On 21 Oct 2014, at =
14:31, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>Great! &nbsp;For the rest =
of the list, it looks like mirage-dev is working with the external OPAM =
solver (aspcud, on Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div>_________________________________________=
______<br>MirageOS-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; border-spacing: 0px;"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: =
none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: =
0px; -webkit-text-decorations-in-effect: none; =
-webkit-text-stroke-width: 0px;"><div style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><div><span class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
=
<br></div></div>_______________________________________________<br>MirageO=
S-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div></div></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><span class=3D"Apple-style-span" =
style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: =
Verdana; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: =
0px; -webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><div style=3D"word-wrap: =
break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space; "><div><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; "><br =
class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
<br></div></div></body></html>=

--Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101--

--Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURm+MAAoJEOLF27JWwSg3ZUYP/iKAUTaJWIw2/A+oRL98786z
Yagdrqc3DCM5175xC8yYQqFdVj/jzVUY5Ngy/t8shiOMUtVjE61A8SAdoljrV/pX
i6qO611/ELTm21LnijrWIfoCMU66hKg2i31Y1wCaMEsI2jK1CY309UDayaqUY7y1
rs9ZhHi/YLdqiFUnwgWuu7WLFtUM3766ZwxL+taKBcccDY3Avr9E+Y+3cB/rF6PG
H8rrzEArWllXqwZPqZNkDcnkWYFKAB3B7JZrvEW8/OQrCS5IsWh+yp9VojzExUeS
H2pfbD8Dgxx78FdqKmQqhssJvAWsA0HrdQpPF/6opBLuGzaKUtwnKxUQiQC//qF8
2uxvZv+SL/v1Ka1lMSSK4N5xeApueX5VmRAl5prJuBLkpUbb8LSNNZif9KrKO7VI
h9cX7PzGzOyAyAzRRphKw1xwJd0PtxYDIXfRfgqGdOgSIS+xQh0Pm9TCVIIfUw0M
wTEKjmvnJzXYW0mJQK4PynsXIFiZBzG3tuYb1R+PYuPpGRy3YBA/HcEgGDFmk9nL
nZu09smGt4YrtxoXSSrDgojb24MFxm/9liBSkJwCzFJFgLp4w7pigulORLrTUZnc
5qCgIHxgJsuaVSLsDtSP8qPzx7/Tt9uL7YfOmu10Dd3ZGv7Y6J9myMp+Vae0a6ZI
WkuODffVw0EprGVVNPxd
=KDAi
-----END PGP SIGNATURE-----

--Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC--


--===============4550238512981830254==
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

--===============4550238512981830254==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 14:42:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:42: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 1Xgae9-00019n-SN; Tue, 21 Oct 2014 14:42:49 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xgae7-00019S-IT
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:42:47 +0000
Received: from [85.158.137.68:59836] by server-9.bemta-3.messagelabs.com id
	CC/53-30790-6E076445; Tue, 21 Oct 2014 14:42:46 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-14.tower-31.messagelabs.com!1413902564!8723117!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5570 invoked from network); 21 Oct 2014 14:42:44 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-14.tower-31.messagelabs.com with SMTP;
	21 Oct 2014 14:42:44 -0000
Received: (qmail 6324 invoked from network); 21 Oct 2014 14:42:43 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 21 Oct 2014 14:42:43 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 05892-03 for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 15:42:36 +0100 (BST)
Received: (qmail 26897 invoked by uid 599); 21 Oct 2014 14:37:03 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 21 Oct 2014 15:37:03 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgaYZ-0002d9-0q; Tue, 21 Oct 2014 15:37:03 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 21 Oct 2014 15:37:00 +0100
Thread-Topic: [MirageOS-devel] Building mirage-www fails
Thread-Index: Ac/tPHn4ryDRbpzQTeen+oLDWR7c1g==
Message-ID: <367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
In-Reply-To: <2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============4550238512981830254=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4550238512981830254==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101"


--Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

but isn't it the "make depend" step that's failing as far as the =
is-mirage-broken/scripts/mirage-www script is concerned -- hence it =
won't exit according to point 2. below (-e is ignored if it's any =
command of an AND-OR list other than the last).

with -e on, seems expected practice is to issue the commands =
individually i.e.

make depend
make configure
make build

...and let the -e fail them if required. (assuming you don't want to =
accumulate info about failures of depend/configure on other platforms =
before bailing out.)

On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:

> It's here:
> =
https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
>=20
> And the `make` invocations do seem to exit with a non-zero exit code.
>=20
> -ani
>=20
> On 21 Oct 2014, at 15:02, Richard Mortier =
<Richard.Mortier@nottingham.ac.uk> wrote:
>=20
>> not sure precisely where the script being executed actually is but =
could it be because it's a command in a multi-command pipeline?
>>=20
>> =
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>=20
>> -e
>> When this option is on, when any command fails (for any of the =
reasons listed in Consequences of Shell Errors or by returning an exit =
status greater than zero), the shell immediately shall exit with the =
following exceptions:
>> The failure of any individual command in a multi-command pipeline =
shall not cause the shell to exit. Only the failure of the pipeline =
itself shall be considered.
>>=20
>> The -e setting shall be ignored when executing the compound list =
following the while, until, if, or elif reserved word, a pipeline =
beginning with the ! reserved word, or any command of an AND-OR list =
other than the last.
>>=20
>> If the exit status of a compound command other than a subshell =
command was the result of a failure while -e was being ignored, then -e =
shall not apply to this command.
>>=20
>> This requirement applies to the shell environment and each subshell =
environment separately. For example, in:
>>=20
>> set -e; (false; echo one) | cat; echo two
>>=20
>> the false command causes the subshell to exit without executing echo =
one; however, echo two is executed because the exit status of the =
pipeline (false; echo one) | cat is zero.
>>=20
>>=20
>>=20
>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>=20
>>> Great!  For the rest of the list, it looks like mirage-dev is =
working with the external OPAM solver (aspcud, on Ubuntu-trusty), but =
not with the internal one (CentOS builds):
>>>=20
>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>=20
>>> This is probably due to our excessive use of depopts; I will replace =
those with explicit virtual packages (e.g. dns-mirage) that encode all =
the dependencies they need.
>>>=20
>>> More mysteriously, the `set -e` in the shell script isn't causing it =
to terminate early, so the `MIRAGE WORKS` string is always printed.  We =
need a is-mirage-working-working script to fix our is-mirage-working =
script :-)
>>>=20
>>> -anil
>>>=20
>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>>=20
>>>> Thanks, I was able to compile and run mirage-www on a Docker image =
with 4.01.
>>>>=20
>>>> Luke
>>>>=20
>>>>=20
>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> =
wrote:
>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> =
wrote:
>>>>=20
>>>>> Hi,
>>>>>=20
>>>>> I tried to build mirage-www as per =
http://openmirage.org/wiki/mirage-www
>>>>>=20
>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>> (success)
>>>>>=20
>>>>> $ make depend
>>>>> (success*)
>>>>>=20
>>>>> $ make
>>>>> camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native
>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal =
-strict-sequence -package tcpip.stack-socket -package mirage-types.lwt =
-package mirage-types -package mirage-http -package mirage-fs-unix =
-package mirage-console.unix -package lwt -package io-page.unix -package =
io-page -package cstruct -package cowabloga -package cow.syntax -package =
conduit.mirage -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>> File "main.ml", line 98, characters 2-13:
>>>>> Error: Unbound module OS
>>>>> Command exited with code 2.
>>>>> make: *** [main.native] Error 10
>>>>>=20
>>>>>=20
>>>>> To try to ensure that this was reproducible I also tried starting =
from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got =
the same error. However, I had to change the ounit package URL because =
forge.ocamlcore.org is apparently down.
>>>>>=20
>>>>> Also, I had to "apt-get install libssl-dev" to get past the =
"configure" / "make depend" step because it was apparently required to =
compile ssl-0.4.7, so maybe that is related to the problem?
>>>>=20
>>>> Hi Luke,
>>>>=20
>>>> Thanks for the bug report, and bonus points for trying the Docker =
repository out.  I've fixed the underlying issue that was causing the =
unbound OS module to show up -- it's because of some recent shuffling of =
dependencies in console handling, and this resulted in mirage-unix no =
longer being implicitly depended on.  I've modified the mirage tool to =
explicitly add the dependency in.
>>>>=20
>>>> In order to help keep things working across the increasing number =
of distributions, I've also created a couple of cron jobs that =
automatically build things and publish the logs
>>>>=20
>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml =
4.01 and 4.02:  =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>>>> https://github.com/avsm/docker-opam has the sources
>>>>=20
>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob =
(cron.sh) on blobs.openmirage.org daily and pushes the logs to the logs/ =
directory in this repo.  When that's completed running (and we've fixed =
the build breakages!), it should be easy to get it on the website as a =
badge so we can see the status of repos at a glance.
>>>>=20
>>>> About to hop on a flight now, so I've left the cron job running and =
will check it out tomorrow.  If anyone else can test out the Docker =
images in the meanwhile, feel free...
>>>>=20
>>>> -anil
>>>>=20
>>>> _______________________________________________
>>>> MirageOS-devel mailing list
>>>> MirageOS-devel@lists.xenproject.org
>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>=20
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>=20
>>=20
>> --=20
>> Cheers,
>>=20
>> R.
>>=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
Cheers,

R.





--Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101
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;">but =
isn't it the "make depend" step that's failing as far as the =
is-mirage-broken/scripts/mirage-www script is concerned -- hence it =
won't exit according to point 2. below (-e is ignored if it's any =
command of an AND-OR list other than the last).<div><br></div><div>with =
-e on, seems expected practice is to issue the commands individually =
i.e.</div><div><br></div><div>make depend</div><div>make =
configure</div><div>make build</div><div><br></div><div>...and let the =
-e fail them if required. (assuming you don't want to accumulate info =
about failures of depend/configure on other platforms before bailing =
out.)</div><div><div><br><div><div>On 21 Oct 2014, at 15:18, Anil =
Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;">It's here:<div><a =
href=3D"https://github.com/mirage/is-mirage-broken/blob/master/scripts/mir=
age-www">https://github.com/mirage/is-mirage-broken/blob/master/scripts/mi=
rage-www</a></div><div><br></div><div>And the `make` invocations do seem =
to exit with a non-zero exit =
code.</div><div><br></div><div>-ani</div><div><br><div><div>On 21 Oct =
2014, at 15:02, Richard Mortier &lt;<a =
href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Richard.Mortier@nottingha=
m.ac.uk</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>not sure precisely where =
the script being executed actually is but could it be because it's a =
command in a multi-command pipeline?</div><div><br></div><div><a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html</a></div><div><br></div><div><dt style=3D"font-family: Verdana, =
Arial, Helvetica, sans-serif; background-color: rgb(255, 255, =
255);"><b>-e</b></dt><dd style=3D"font-family: Verdana, Arial, =
Helvetica, sans-serif; background-color: rgb(255, 255, 255);">When this =
option is on, when any command fails (for any of the reasons listed =
in&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap0=
2.html#tag_18_08_01" style=3D"color: rgb(102, 102, 255);">Consequences =
of Shell Errors</a>&nbsp;or by returning an exit status greater than =
zero), the shell immediately shall exit with the following =
exceptions:<ol><li style=3D"font-size: 10pt;"><p>The failure of any =
individual command in a multi-command pipeline shall not cause the shell =
to exit. Only the failure of the pipeline itself shall be =
considered.</p></li><li style=3D"font-size: =
10pt;"><p>The&nbsp;<b>-e</b>&nbsp;setting shall be ignored when =
executing the compound list following =
the&nbsp;<b>while</b>,&nbsp;<b>until</b>,&nbsp;<b>if</b>, =
or&nbsp;<b>elif</b>&nbsp;reserved word, a pipeline beginning with =
the&nbsp;<b>!</b>&nbsp;reserved word, or any command of an AND-OR list =
other than the last.</p></li><li style=3D"font-size: 10pt;"><p>If the =
exit status of a compound command other than a subshell command was the =
result of a failure while&nbsp;<b>-e</b>&nbsp;was being ignored, =
then&nbsp;<b>-e</b>&nbsp;shall not apply to this =
command.</p></li></ol><p>This requirement applies to the shell =
environment and each subshell environment separately. For example, =
in:</p><pre style=3D"font-size: 11pt;"><tt>set -e; (false; echo one) | =
cat; echo two
</tt>
</pre><p>the&nbsp;<a =
href=3D"http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.ht=
ml" style=3D"color: rgb(102, 102, 255);"><i>false</i></a>&nbsp;command =
causes the subshell to exit without executing&nbsp;<tt>echo one</tt>; =
however,&nbsp;<tt>echo two</tt>&nbsp;is executed because the exit status =
of the pipeline&nbsp;<tt>(false; echo one) | cat</tt>&nbsp;is =
zero.</p></dd><div><br></div></div><div><br><div><div>On 21 Oct 2014, at =
14:31, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><meta =
http-equiv=3D"Content-Type" content=3D"text/html charset=3Dus-ascii"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space;"><div>Great! &nbsp;For the rest =
of the list, it looks like mirage-dev is working with the external OPAM =
solver (aspcud, on Ubuntu-trusty), but not with the internal one (CentOS =
builds):</div><div><br></div><div><a =
href=3D"https://github.com/mirage/is-mirage-broken/tree/master/logs">https=
://github.com/mirage/is-mirage-broken/tree/master/logs</a></div><div><br><=
/div><div>This is probably due to our excessive use of depopts; I will =
replace those with explicit virtual packages (e.g. dns-mirage) that =
encode all the dependencies they need.</div><div><br></div><div>More =
mysteriously, the `set -e` in the shell script isn't causing it to =
terminate early, so the `MIRAGE WORKS` string is always printed. =
&nbsp;We need a is-mirage-working-working script to fix our =
is-mirage-working script =
:-)</div><div><br></div><div>-anil</div><div><br></div>On 20 Oct 2014, =
at 15:09, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks, I was able to compile and run =
mirage-www on a Docker image with =
4.01.<div><br></div><div>Luke</div><div><br></div></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 20 October 2014 =
09:28, 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:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><div =
class=3D"h5">On 19 Oct 2014, at 03:17, Luke Dunstan &lt;<a =
href=3D"mailto:lukedunstan81@gmail.com" =
target=3D"_blank">lukedunstan81@gmail.com</a>&gt; =
wrote:<br></div></div><div><div><div class=3D"h5"><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Hi,<div><br></div><div>I tried to build =
mirage-www as per&nbsp;<a href=3D"http://openmirage.org/wiki/mirage-www" =
target=3D"_blank">http://openmirage.org/wiki/mirage-www</a></div><div><br>=
</div><div>$ env NET=3Dsocket FS=3Dcrunch mirage configure =
--unix</div><div>(success)</div><div><br></div><div>$ make =
depend</div><div>(success*)</div><div><br></div><div>$ =
make</div><div><div>camlbuild -classic-display -use-ocamlfind -pkgs =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cflag -g =
-lflags -g,-linkpkg main.native</div><div>ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>+ ocamlfind ocamlc -c -g -annot =
-bin-annot -principal -strict-sequence -package tcpip.stack-socket =
-package mirage-types.lwt -package mirage-types -package mirage-http =
-package mirage-fs-unix -package mirage-console.unix -package lwt =
-package io-page.unix -package io-page -package cstruct -package =
cowabloga -package cow.syntax -package conduit.mirage -package =
lwt.syntax -syntax camlp4o -o main.cmo <a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a></div><div>File "<a href=3D"http://main.ml/" =
target=3D"_blank">main.ml</a>", line 98, characters =
2-13:</div><div>Error: Unbound module OS</div><div>Command exited with =
code 2.</div><div>make: *** [main.native] Error =
10</div></div><div><br></div><div><br></div><div>To try to ensure that =
this was reproducible I also tried starting from the =
"avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the same =
error. However, I had to change the ounit package URL because <a =
href=3D"http://forge.ocamlcore.org/" =
target=3D"_blank">forge.ocamlcore.org</a> is apparently =
down.</div><div><br></div><div>Also, I had to "apt-get install =
libssl-dev" to get past the "configure" / "make depend" step because it =
was apparently required to compile ssl-0.4.7, so maybe that is related =
to the problem?</div></div></blockquote><div><br></div></div></div>Hi =
Luke,</div><div><br></div><div>Thanks for the bug report, and bonus =
points for trying the Docker repository out.&nbsp; I've fixed the =
underlying issue that was causing the unbound OS module to show up -- =
it's because of some recent shuffling of dependencies in console =
handling, and this resulted in mirage-unix no longer being implicitly =
depended on.&nbsp; I've modified the mirage tool to explicitly add the =
dependency in.</div><div><br></div><div>In order to help keep things =
working across the increasing number of distributions, I've also created =
a couple of cron jobs that automatically build things and publish the =
logs</div><div><br></div><div>- The Docker registry now has OPAM tags =
for Ubuntu/CentOS on OCaml 4.01 and 4.02: &nbsp;<a =
href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/=
15669/" =
target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/build=
s_history/15669/</a></div><div><a =
href=3D"https://github.com/avsm/docker-opam" =
target=3D"_blank">https://github.com/avsm/docker-opam</a> has the =
sources</div><div><br></div><div>- <a =
href=3D"https://github.com/mirage/is-mirage-broken" =
target=3D"_blank">https://github.com/mirage/is-mirage-broken</a> runs as =
a cronjob (cron.sh) on <a href=3D"http://blobs.openmirage.org/" =
target=3D"_blank">blobs.openmirage.org</a> daily and pushes the logs to =
the logs/ directory in this repo.&nbsp; When that's completed running =
(and we've fixed the build breakages!), it should be easy to get it on =
the website as a badge so we can see the status of repos at a =
glance.</div><div><br></div><div>About to hop on a flight now, so I've =
left the cron job running and will check it out tomorrow.&nbsp; If =
anyone else can test out the Docker images in the meanwhile, feel =
free...</div><span class=3D"HOEnZb"><font =
color=3D"#888888"><div><br></div><div>-anil</div></font></span></div></blo=
ckquote></div><br></div>
_______________________________________________<br>MirageOS-devel =
mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div>_________________________________________=
______<br>MirageOS-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; border-spacing: 0px;"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Verdana; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: =
none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: =
0px; -webkit-text-decorations-in-effect: none; =
-webkit-text-stroke-width: 0px;"><div style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><div><span class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
=
<br></div></div>_______________________________________________<br>MirageO=
S-devel mailing list<br><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br></blockquote></div><br></div></div></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><span class=3D"Apple-style-span" =
style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: =
Verdana; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: =
0px; -webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><div style=3D"word-wrap: =
break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space; "><div><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; "><br =
class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
<br></div></div></body></html>=

--Apple-Mail=_5F7856F5-83D3-4D9B-A27E-99F6E58BE101--

--Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURm+MAAoJEOLF27JWwSg3ZUYP/iKAUTaJWIw2/A+oRL98786z
Yagdrqc3DCM5175xC8yYQqFdVj/jzVUY5Ngy/t8shiOMUtVjE61A8SAdoljrV/pX
i6qO611/ELTm21LnijrWIfoCMU66hKg2i31Y1wCaMEsI2jK1CY309UDayaqUY7y1
rs9ZhHi/YLdqiFUnwgWuu7WLFtUM3766ZwxL+taKBcccDY3Avr9E+Y+3cB/rF6PG
H8rrzEArWllXqwZPqZNkDcnkWYFKAB3B7JZrvEW8/OQrCS5IsWh+yp9VojzExUeS
H2pfbD8Dgxx78FdqKmQqhssJvAWsA0HrdQpPF/6opBLuGzaKUtwnKxUQiQC//qF8
2uxvZv+SL/v1Ka1lMSSK4N5xeApueX5VmRAl5prJuBLkpUbb8LSNNZif9KrKO7VI
h9cX7PzGzOyAyAzRRphKw1xwJd0PtxYDIXfRfgqGdOgSIS+xQh0Pm9TCVIIfUw0M
wTEKjmvnJzXYW0mJQK4PynsXIFiZBzG3tuYb1R+PYuPpGRy3YBA/HcEgGDFmk9nL
nZu09smGt4YrtxoXSSrDgojb24MFxm/9liBSkJwCzFJFgLp4w7pigulORLrTUZnc
5qCgIHxgJsuaVSLsDtSP8qPzx7/Tt9uL7YfOmu10Dd3ZGv7Y6J9myMp+Vae0a6ZI
WkuODffVw0EprGVVNPxd
=KDAi
-----END PGP SIGNATURE-----

--Apple-Mail=_48FDBE2F-A352-4898-9123-798622F2D7BC--


--===============4550238512981830254==
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

--===============4550238512981830254==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 14:49:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:49:34 +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 1Xgakf-0001M1-G2; Tue, 21 Oct 2014 14:49:33 +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 1Xgake-0001Lq-Cq
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:49:32 +0000
Received: from [85.158.137.68:31771] by server-2.bemta-3.messagelabs.com id
	8D/32-09149-B7276445; Tue, 21 Oct 2014 14:49:31 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1413902969!11111119!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7011 invoked from network); 21 Oct 2014 14:49:30 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 14:49:30 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d4cf6b21;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 21 Oct 2014 15:52:12 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
Date: Tue, 21 Oct 2014 15:49:27 +0100
Message-Id: <F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

The && should catch that failure.  Consider:

#!/bin/sh -ex

exit 1 && echo hello
echo world

Executing that:

$ ./test.sh =

+ exit 1

If the make depend fails, I'd expect the && to fail, and the resulting non-=
zero exit code to cause the whole shell to exit.

-anil

On 21 Oct 2014, at 15:37, Richard Mortier <Richard.Mortier@nottingham.ac.uk=
> wrote:

> but isn't it the "make depend" step that's failing as far as the is-mirag=
e-broken/scripts/mirage-www script is concerned -- hence it won't exit acco=
rding to point 2. below (-e is ignored if it's any command of an AND-OR lis=
t other than the last).
> =

> with -e on, seems expected practice is to issue the commands individually=
 i.e.
> =

> make depend
> make configure
> make build
> =

> ...and let the -e fail them if required. (assuming you don't want to accu=
mulate info about failures of depend/configure on other platforms before ba=
iling out.)
> =

> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
> =

>> It's here:
>> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
>> =

>> And the `make` invocations do seem to exit with a non-zero exit code.
>> =

>> -ani
>> =

>> On 21 Oct 2014, at 15:02, Richard Mortier <Richard.Mortier@nottingham.ac=
.uk> wrote:
>> =

>>> not sure precisely where the script being executed actually is but coul=
d it be because it's a command in a multi-command pipeline?
>>> =

>>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>> =

>>> -e
>>> When this option is on, when any command fails (for any of the reasons =
listed in Consequences of Shell Errors or by returning an exit status great=
er than zero), the shell immediately shall exit with the following exceptio=
ns:
>>> 	=95 The failure of any individual command in a multi-command pipeline =
shall not cause the shell to exit. Only the failure of the pipeline itself =
shall be considered.
>>> =

>>> 	=95 The -e setting shall be ignored when executing the compound list f=
ollowing the while, until, if, or elif reserved word, a pipeline beginning =
with the ! reserved word, or any command of an AND-OR list other than the l=
ast.
>>> =

>>> 	=95 If the exit status of a compound command other than a subshell com=
mand was the result of a failure while -e was being ignored, then -e shall =
not apply to this command.
>>> =

>>> This requirement applies to the shell environment and each subshell env=
ironment separately. For example, in:
>>> =

>>> set -e; (false; echo one) | cat; echo two
>>> =

>>> =

>>> the false command causes the subshell to exit without executing echo on=
e; however, echo two is executed because the exit status of the pipeline (f=
alse; echo one) | cat is zero.
>>> =

>>> =

>>> =

>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> =

>>>> Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with the =
internal one (CentOS builds):
>>>> =

>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>> =

>>>> This is probably due to our excessive use of depopts; I will replace t=
hose with explicit virtual packages (e.g. dns-mirage) that encode all the d=
ependencies they need.
>>>> =

>>>> More mysteriously, the `set -e` in the shell script isn't causing it t=
o terminate early, so the `MIRAGE WORKS` string is always printed.  We need=
 a is-mirage-working-working script to fix our is-mirage-working script :-)
>>>> =

>>>> -anil
>>>> =

>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> wrote:
>>>> =

>>>>> Thanks, I was able to compile and run mirage-www on a Docker image wi=
th 4.01.
>>>>> =

>>>>> Luke
>>>>> =

>>>>> =

>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> wrot=
e:
>>>>> =

>>>>>> Hi,
>>>>>> =

>>>>>> I tried to build mirage-www as per http://openmirage.org/wiki/mirage=
-www
>>>>>> =

>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>> (success)
>>>>>> =

>>>>>> $ make depend
>>>>>> (success*)
>>>>>> =

>>>>>> $ make
>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,conduit.m=
irage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.=
unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-s=
ocket -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cf=
lag -g -lflags -g,-linkpkg main.native
>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence=
 -package tcpip.stack-socket -package mirage-types.lwt -package mirage-type=
s -package mirage-http -package mirage-fs-unix -package mirage-console.unix=
 -package lwt -package io-page.unix -package io-page -package cstruct -pack=
age cowabloga -package cow.syntax -package conduit.mirage -package lwt.synt=
ax -syntax camlp4o -o main.cmo main.ml
>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequen=
ce -package tcpip.stack-socket -package mirage-types.lwt -package mirage-ty=
pes -package mirage-http -package mirage-fs-unix -package mirage-console.un=
ix -package lwt -package io-page.unix -package io-page -package cstruct -pa=
ckage cowabloga -package cow.syntax -package conduit.mirage -package lwt.sy=
ntax -syntax camlp4o -o main.cmo main.ml
>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>> Error: Unbound module OS
>>>>>> Command exited with code 2.
>>>>>> make: *** [main.native] Error 10
>>>>>> =

>>>>>> =

>>>>>> To try to ensure that this was reproducible I also tried starting fr=
om the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the sam=
e error. However, I had to change the ounit package URL because forge.ocaml=
core.org is apparently down.
>>>>>> =

>>>>>> Also, I had to "apt-get install libssl-dev" to get past the "configu=
re" / "make depend" step because it was apparently required to compile ssl-=
0.4.7, so maybe that is related to the problem?
>>>>> =

>>>>> Hi Luke,
>>>>> =

>>>>> Thanks for the bug report, and bonus points for trying the Docker rep=
ository out.  I've fixed the underlying issue that was causing the unbound =
OS module to show up -- it's because of some recent shuffling of dependenci=
es in console handling, and this resulted in mirage-unix no longer being im=
plicitly depended on.  I've modified the mirage tool to explicitly add the =
dependency in.
>>>>> =

>>>>> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that automatically b=
uild things and publish the logs
>>>>> =

>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.=
01 and 4.02:  https://registry.hub.docker.com/u/avsm/docker-opam/builds_his=
tory/15669/
>>>>> https://github.com/avsm/docker-opam has the sources
>>>>> =

>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob (cron.=
sh) on blobs.openmirage.org daily and pushes the logs to the logs/ director=
y in this repo.  When that's completed running (and we've fixed the build b=
reakages!), it should be easy to get it on the website as a badge so we can=
 see the status of repos at a glance.
>>>>> =

>>>>> About to hop on a flight now, so I've left the cron job running and w=
ill check it out tomorrow.  If anyone else can test out the Docker images i=
n the meanwhile, feel free...
>>>>> =

>>>>> -anil
>>>>> =

>>>>> _______________________________________________
>>>>> 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
>>> =

>>> =

>>> -- =

>>> Cheers,
>>> =

>>> R.
>>> =

>>> =

>>> =

>>> =

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

> =

> =

> -- =

> Cheers,
> =

> R.
> =

> =

> =

> =

> _______________________________________________
> 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 Tue Oct 21 14:49:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 14:49:34 +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 1Xgakf-0001M1-G2; Tue, 21 Oct 2014 14:49:33 +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 1Xgake-0001Lq-Cq
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 14:49:32 +0000
Received: from [85.158.137.68:31771] by server-2.bemta-3.messagelabs.com id
	8D/32-09149-B7276445; Tue, 21 Oct 2014 14:49:31 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1413902969!11111119!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7011 invoked from network); 21 Oct 2014 14:49:30 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 14:49:30 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d4cf6b21;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 21 Oct 2014 15:52:12 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
Date: Tue, 21 Oct 2014 15:49:27 +0100
Message-Id: <F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

The && should catch that failure.  Consider:

#!/bin/sh -ex

exit 1 && echo hello
echo world

Executing that:

$ ./test.sh =

+ exit 1

If the make depend fails, I'd expect the && to fail, and the resulting non-=
zero exit code to cause the whole shell to exit.

-anil

On 21 Oct 2014, at 15:37, Richard Mortier <Richard.Mortier@nottingham.ac.uk=
> wrote:

> but isn't it the "make depend" step that's failing as far as the is-mirag=
e-broken/scripts/mirage-www script is concerned -- hence it won't exit acco=
rding to point 2. below (-e is ignored if it's any command of an AND-OR lis=
t other than the last).
> =

> with -e on, seems expected practice is to issue the commands individually=
 i.e.
> =

> make depend
> make configure
> make build
> =

> ...and let the -e fail them if required. (assuming you don't want to accu=
mulate info about failures of depend/configure on other platforms before ba=
iling out.)
> =

> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
> =

>> It's here:
>> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
>> =

>> And the `make` invocations do seem to exit with a non-zero exit code.
>> =

>> -ani
>> =

>> On 21 Oct 2014, at 15:02, Richard Mortier <Richard.Mortier@nottingham.ac=
.uk> wrote:
>> =

>>> not sure precisely where the script being executed actually is but coul=
d it be because it's a command in a multi-command pipeline?
>>> =

>>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>> =

>>> -e
>>> When this option is on, when any command fails (for any of the reasons =
listed in Consequences of Shell Errors or by returning an exit status great=
er than zero), the shell immediately shall exit with the following exceptio=
ns:
>>> 	=95 The failure of any individual command in a multi-command pipeline =
shall not cause the shell to exit. Only the failure of the pipeline itself =
shall be considered.
>>> =

>>> 	=95 The -e setting shall be ignored when executing the compound list f=
ollowing the while, until, if, or elif reserved word, a pipeline beginning =
with the ! reserved word, or any command of an AND-OR list other than the l=
ast.
>>> =

>>> 	=95 If the exit status of a compound command other than a subshell com=
mand was the result of a failure while -e was being ignored, then -e shall =
not apply to this command.
>>> =

>>> This requirement applies to the shell environment and each subshell env=
ironment separately. For example, in:
>>> =

>>> set -e; (false; echo one) | cat; echo two
>>> =

>>> =

>>> the false command causes the subshell to exit without executing echo on=
e; however, echo two is executed because the exit status of the pipeline (f=
alse; echo one) | cat is zero.
>>> =

>>> =

>>> =

>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> =

>>>> Great!  For the rest of the list, it looks like mirage-dev is working =
with the external OPAM solver (aspcud, on Ubuntu-trusty), but not with the =
internal one (CentOS builds):
>>>> =

>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>> =

>>>> This is probably due to our excessive use of depopts; I will replace t=
hose with explicit virtual packages (e.g. dns-mirage) that encode all the d=
ependencies they need.
>>>> =

>>>> More mysteriously, the `set -e` in the shell script isn't causing it t=
o terminate early, so the `MIRAGE WORKS` string is always printed.  We need=
 a is-mirage-working-working script to fix our is-mirage-working script :-)
>>>> =

>>>> -anil
>>>> =

>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com> wrote:
>>>> =

>>>>> Thanks, I was able to compile and run mirage-www on a Docker image wi=
th 4.01.
>>>>> =

>>>>> Luke
>>>>> =

>>>>> =

>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com> wrot=
e:
>>>>> =

>>>>>> Hi,
>>>>>> =

>>>>>> I tried to build mirage-www as per http://openmirage.org/wiki/mirage=
-www
>>>>>> =

>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>> (success)
>>>>>> =

>>>>>> $ make depend
>>>>>> (success*)
>>>>>> =

>>>>>> $ make
>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,conduit.m=
irage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.=
unix,mirage-fs-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-s=
ocket -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -cf=
lag -g -lflags -g,-linkpkg main.native
>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence=
 -package tcpip.stack-socket -package mirage-types.lwt -package mirage-type=
s -package mirage-http -package mirage-fs-unix -package mirage-console.unix=
 -package lwt -package io-page.unix -package io-page -package cstruct -pack=
age cowabloga -package cow.syntax -package conduit.mirage -package lwt.synt=
ax -syntax camlp4o -o main.cmo main.ml
>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequen=
ce -package tcpip.stack-socket -package mirage-types.lwt -package mirage-ty=
pes -package mirage-http -package mirage-fs-unix -package mirage-console.un=
ix -package lwt -package io-page.unix -package io-page -package cstruct -pa=
ckage cowabloga -package cow.syntax -package conduit.mirage -package lwt.sy=
ntax -syntax camlp4o -o main.cmo main.ml
>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>> Error: Unbound module OS
>>>>>> Command exited with code 2.
>>>>>> make: *** [main.native] Error 10
>>>>>> =

>>>>>> =

>>>>>> To try to ensure that this was reproducible I also tried starting fr=
om the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and got the sam=
e error. However, I had to change the ounit package URL because forge.ocaml=
core.org is apparently down.
>>>>>> =

>>>>>> Also, I had to "apt-get install libssl-dev" to get past the "configu=
re" / "make depend" step because it was apparently required to compile ssl-=
0.4.7, so maybe that is related to the problem?
>>>>> =

>>>>> Hi Luke,
>>>>> =

>>>>> Thanks for the bug report, and bonus points for trying the Docker rep=
ository out.  I've fixed the underlying issue that was causing the unbound =
OS module to show up -- it's because of some recent shuffling of dependenci=
es in console handling, and this resulted in mirage-unix no longer being im=
plicitly depended on.  I've modified the mirage tool to explicitly add the =
dependency in.
>>>>> =

>>>>> In order to help keep things working across the increasing number of =
distributions, I've also created a couple of cron jobs that automatically b=
uild things and publish the logs
>>>>> =

>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml 4.=
01 and 4.02:  https://registry.hub.docker.com/u/avsm/docker-opam/builds_his=
tory/15669/
>>>>> https://github.com/avsm/docker-opam has the sources
>>>>> =

>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob (cron.=
sh) on blobs.openmirage.org daily and pushes the logs to the logs/ director=
y in this repo.  When that's completed running (and we've fixed the build b=
reakages!), it should be easy to get it on the website as a badge so we can=
 see the status of repos at a glance.
>>>>> =

>>>>> About to hop on a flight now, so I've left the cron job running and w=
ill check it out tomorrow.  If anyone else can test out the Docker images i=
n the meanwhile, feel free...
>>>>> =

>>>>> -anil
>>>>> =

>>>>> _______________________________________________
>>>>> 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
>>> =

>>> =

>>> -- =

>>> Cheers,
>>> =

>>> R.
>>> =

>>> =

>>> =

>>> =

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

> =

> =

> -- =

> Cheers,
> =

> R.
> =

> =

> =

> =

> _______________________________________________
> 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 Tue Oct 21 15:01:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 15:01: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 1XgawC-0001ss-Gw; Tue, 21 Oct 2014 15:01:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XgawA-0001si-Sa
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 15:01:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	C9/4D-10419-64576445; Tue, 21 Oct 2014 15:01:26 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-11.tower-21.messagelabs.com!1413903684!12205596!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23242 invoked from network); 21 Oct 2014 15:01:25 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 15:01:25 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:32892)
	by ppsw-51.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
	with esmtp id 1Xgaw8-00042z-Xl (Exim 4.82_3-c0e5623)
	(return-path <ns441@cam.ac.uk>); Tue, 21 Oct 2014 16:01:24 +0100
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1Xgaw8-0009tb-DL (Exim
	4.80_167-5a66dd3)
	(return-path <ns441@cam.ac.uk>); Tue, 21 Oct 2014 16:01:24 +0100
Received: from lusankya.mac.cl.cam.ac.uk ([128.232.56.51])
	by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Tue, 21 Oct 2014 16:01:24 +0100
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Tue, 21 Oct 2014 16:01:24 +0100
From: Nik Sultana <ns441@cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
Message-ID: <8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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

SSB0aGluayBSaWNoYXJkIG1pZ2h0IGJlIHJpZ2h0LiBUaGUgc2VtYW50aWNzIG9mICYmIHNlZW1z
IHRvIGJlIGEgYml0IApjb3VudGVyaW50dWl0aXZlIGluIHRoaXMgY2FzZS4gQ29uc2lkZXIgdGhp
cyBzY3JpcHQ6CgojIS9iaW4vc2gKc2V0IC1lICNsaW5lMQpmYWxzZSAmJiBlY2hvIGhlbGxvICNs
aW5lMgplY2hvIGhlbGxvMgpmYWxzZSAjbGluZTQKZWNobyB3b3JsZAoKSXQgZ2l2ZXMgdGhlIG91
dHB1dDoKaGVsbG8yCgp3aGljaCBpcyBvZGQsIGJlY2F1c2Ugd2UgZXhwZWN0IHRoZSBzY3JpcHQg
dG8gYmUgdGVybWluYXRlZCBhdCBsaW5lMiAtLSAKdGhlIGxpbmUgImVjaG8gaGVsbG8yIiBzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZC4gSW5zdGVhZCwgdGhlIHNjcmlwdCAKY29udGludWVzIG9uIGFu
ZCBpcyBvbmx5IHRlcm1pbmF0ZWQgYXQgbGluZTQuCgpKdXN0IHRvIHRlc3QgdGhlIGVmZmVjdCBv
ZiAic2V0IC1lIiwgY29tbWVudGluZyBsaW5lMSBhbmQgcnVubmluZyB0aGUgCnNjcmlwdCBnaXZl
cyB0aGUgb3V0cHV0OgpoZWxsbzIKd29ybGQKCk9uIDIwMTQtMTAtMjEgMTU6NDksIEFuaWwgTWFk
aGF2YXBlZGR5IHdyb3RlOgo+IFRoZSAmJiBzaG91bGQgY2F0Y2ggdGhhdCBmYWlsdXJlLiAgQ29u
c2lkZXI6Cj4gCj4gIyEvYmluL3NoIC1leAo+IAo+IGV4aXQgMSAmJiBlY2hvIGhlbGxvCj4gZWNo
byB3b3JsZAo+IAo+IEV4ZWN1dGluZyB0aGF0Ogo+IAo+ICQgLi90ZXN0LnNoCj4gKyBleGl0IDEK
PiAKPiBJZiB0aGUgbWFrZSBkZXBlbmQgZmFpbHMsIEknZCBleHBlY3QgdGhlICYmIHRvIGZhaWws
IGFuZCB0aGUgcmVzdWx0aW5nCj4gbm9uLXplcm8gZXhpdCBjb2RlIHRvIGNhdXNlIHRoZSB3aG9s
ZSBzaGVsbCB0byBleGl0Lgo+IAo+IC1hbmlsCj4gCj4gT24gMjEgT2N0IDIwMTQsIGF0IDE1OjM3
LCBSaWNoYXJkIE1vcnRpZXIKPiA8UmljaGFyZC5Nb3J0aWVyQG5vdHRpbmdoYW0uYWMudWs+IHdy
b3RlOgo+IAo+PiBidXQgaXNuJ3QgaXQgdGhlICJtYWtlIGRlcGVuZCIgc3RlcCB0aGF0J3MgZmFp
bGluZyBhcyBmYXIgYXMgdGhlIAo+PiBpcy1taXJhZ2UtYnJva2VuL3NjcmlwdHMvbWlyYWdlLXd3
dyBzY3JpcHQgaXMgY29uY2VybmVkIC0tIGhlbmNlIGl0IAo+PiB3b24ndCBleGl0IGFjY29yZGlu
ZyB0byBwb2ludCAyLiBiZWxvdyAoLWUgaXMgaWdub3JlZCBpZiBpdCdzIGFueSAKPj4gY29tbWFu
ZCBvZiBhbiBBTkQtT1IgbGlzdCBvdGhlciB0aGFuIHRoZSBsYXN0KS4KPj4gCj4+IHdpdGggLWUg
b24sIHNlZW1zIGV4cGVjdGVkIHByYWN0aWNlIGlzIHRvIGlzc3VlIHRoZSBjb21tYW5kcyAKPj4g
aW5kaXZpZHVhbGx5IGkuZS4KPj4gCj4+IG1ha2UgZGVwZW5kCj4+IG1ha2UgY29uZmlndXJlCj4+
IG1ha2UgYnVpbGQKPj4gCj4+IC4uLmFuZCBsZXQgdGhlIC1lIGZhaWwgdGhlbSBpZiByZXF1aXJl
ZC4gKGFzc3VtaW5nIHlvdSBkb24ndCB3YW50IHRvIAo+PiBhY2N1bXVsYXRlIGluZm8gYWJvdXQg
ZmFpbHVyZXMgb2YgZGVwZW5kL2NvbmZpZ3VyZSBvbiBvdGhlciBwbGF0Zm9ybXMgCj4+IGJlZm9y
ZSBiYWlsaW5nIG91dC4pCj4+IAo+PiBPbiAyMSBPY3QgMjAxNCwgYXQgMTU6MTgsIEFuaWwgTWFk
aGF2YXBlZGR5IDxhbmlsQHJlY29pbC5vcmc+IHdyb3RlOgo+PiAKPj4+IEl0J3MgaGVyZToKPj4+
IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvaXMtbWlyYWdlLWJyb2tlbi9ibG9iL21hc3Rlci9z
Y3JpcHRzL21pcmFnZS13d3cKPj4+IAo+Pj4gQW5kIHRoZSBgbWFrZWAgaW52b2NhdGlvbnMgZG8g
c2VlbSB0byBleGl0IHdpdGggYSBub24temVybyBleGl0IGNvZGUuCj4+PiAKPj4+IC1hbmkKPj4+
IAo+Pj4gT24gMjEgT2N0IDIwMTQsIGF0IDE1OjAyLCBSaWNoYXJkIE1vcnRpZXIgCj4+PiA8Umlj
aGFyZC5Nb3J0aWVyQG5vdHRpbmdoYW0uYWMudWs+IHdyb3RlOgo+Pj4gCj4+Pj4gbm90IHN1cmUg
cHJlY2lzZWx5IHdoZXJlIHRoZSBzY3JpcHQgYmVpbmcgZXhlY3V0ZWQgYWN0dWFsbHkgaXMgYnV0
IAo+Pj4+IGNvdWxkIGl0IGJlIGJlY2F1c2UgaXQncyBhIGNvbW1hbmQgaW4gYSBtdWx0aS1jb21t
YW5kIHBpcGVsaW5lPwo+Pj4+IAo+Pj4+IGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5l
cHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9WM19jaGFwMDIuaHRtbAo+Pj4+IAo+Pj4+IC1lCj4+
Pj4gV2hlbiB0aGlzIG9wdGlvbiBpcyBvbiwgd2hlbiBhbnkgY29tbWFuZCBmYWlscyAoZm9yIGFu
eSBvZiB0aGUgCj4+Pj4gcmVhc29ucyBsaXN0ZWQgaW4gQ29uc2VxdWVuY2VzIG9mIFNoZWxsIEVy
cm9ycyBvciBieSByZXR1cm5pbmcgYW4gCj4+Pj4gZXhpdCBzdGF0dXMgZ3JlYXRlciB0aGFuIHpl
cm8pLCB0aGUgc2hlbGwgaW1tZWRpYXRlbHkgc2hhbGwgZXhpdCAKPj4+PiB3aXRoIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uczoKPj4+PiAJ4oCiIFRoZSBmYWlsdXJlIG9mIGFueSBpbmRpdmlkdWFs
IGNvbW1hbmQgaW4gYSBtdWx0aS1jb21tYW5kIHBpcGVsaW5lIAo+Pj4+IHNoYWxsIG5vdCBjYXVz
ZSB0aGUgc2hlbGwgdG8gZXhpdC4gT25seSB0aGUgZmFpbHVyZSBvZiB0aGUgcGlwZWxpbmUgCj4+
Pj4gaXRzZWxmIHNoYWxsIGJlIGNvbnNpZGVyZWQuCj4+Pj4gCj4+Pj4gCeKAoiBUaGUgLWUgc2V0
dGluZyBzaGFsbCBiZSBpZ25vcmVkIHdoZW4gZXhlY3V0aW5nIHRoZSBjb21wb3VuZCBsaXN0IAo+
Pj4+IGZvbGxvd2luZyB0aGUgd2hpbGUsIHVudGlsLCBpZiwgb3IgZWxpZiByZXNlcnZlZCB3b3Jk
LCBhIHBpcGVsaW5lIAo+Pj4+IGJlZ2lubmluZyB3aXRoIHRoZSAhIHJlc2VydmVkIHdvcmQsIG9y
IGFueSBjb21tYW5kIG9mIGFuIEFORC1PUiBsaXN0IAo+Pj4+IG90aGVyIHRoYW4gdGhlIGxhc3Qu
Cj4+Pj4gCj4+Pj4gCeKAoiBJZiB0aGUgZXhpdCBzdGF0dXMgb2YgYSBjb21wb3VuZCBjb21tYW5k
IG90aGVyIHRoYW4gYSBzdWJzaGVsbCAKPj4+PiBjb21tYW5kIHdhcyB0aGUgcmVzdWx0IG9mIGEg
ZmFpbHVyZSB3aGlsZSAtZSB3YXMgYmVpbmcgaWdub3JlZCwgdGhlbiAKPj4+PiAtZSBzaGFsbCBu
b3QgYXBwbHkgdG8gdGhpcyBjb21tYW5kLgo+Pj4+IAo+Pj4+IFRoaXMgcmVxdWlyZW1lbnQgYXBw
bGllcyB0byB0aGUgc2hlbGwgZW52aXJvbm1lbnQgYW5kIGVhY2ggc3Vic2hlbGwgCj4+Pj4gZW52
aXJvbm1lbnQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGluOgo+Pj4+IAo+Pj4+IHNldCAtZTsg
KGZhbHNlOyBlY2hvIG9uZSkgfCBjYXQ7IGVjaG8gdHdvCj4+Pj4gCj4+Pj4gCj4+Pj4gdGhlIGZh
bHNlIGNvbW1hbmQgY2F1c2VzIHRoZSBzdWJzaGVsbCB0byBleGl0IHdpdGhvdXQgZXhlY3V0aW5n
IGVjaG8gCj4+Pj4gb25lOyBob3dldmVyLCBlY2hvIHR3byBpcyBleGVjdXRlZCBiZWNhdXNlIHRo
ZSBleGl0IHN0YXR1cyBvZiB0aGUgCj4+Pj4gcGlwZWxpbmUgKGZhbHNlOyBlY2hvIG9uZSkgfCBj
YXQgaXMgemVyby4KPj4+PiAKPj4+PiAKPj4+PiAKPj4+PiBPbiAyMSBPY3QgMjAxNCwgYXQgMTQ6
MzEsIEFuaWwgTWFkaGF2YXBlZGR5IDxhbmlsQHJlY29pbC5vcmc+IHdyb3RlOgo+Pj4+IAo+Pj4+
PiBHcmVhdCEgIEZvciB0aGUgcmVzdCBvZiB0aGUgbGlzdCwgaXQgbG9va3MgbGlrZSBtaXJhZ2Ut
ZGV2IGlzIAo+Pj4+PiB3b3JraW5nIHdpdGggdGhlIGV4dGVybmFsIE9QQU0gc29sdmVyIChhc3Bj
dWQsIG9uIFVidW50dS10cnVzdHkpLCAKPj4+Pj4gYnV0IG5vdCB3aXRoIHRoZSBpbnRlcm5hbCBv
bmUgKENlbnRPUyBidWlsZHMpOgo+Pj4+PiAKPj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL21pcmFn
ZS9pcy1taXJhZ2UtYnJva2VuL3RyZWUvbWFzdGVyL2xvZ3MKPj4+Pj4gCj4+Pj4+IFRoaXMgaXMg
cHJvYmFibHkgZHVlIHRvIG91ciBleGNlc3NpdmUgdXNlIG9mIGRlcG9wdHM7IEkgd2lsbCAKPj4+
Pj4gcmVwbGFjZSB0aG9zZSB3aXRoIGV4cGxpY2l0IHZpcnR1YWwgcGFja2FnZXMgKGUuZy4gZG5z
LW1pcmFnZSkgdGhhdCAKPj4+Pj4gZW5jb2RlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHRoZXkgbmVl
ZC4KPj4+Pj4gCj4+Pj4+IE1vcmUgbXlzdGVyaW91c2x5LCB0aGUgYHNldCAtZWAgaW4gdGhlIHNo
ZWxsIHNjcmlwdCBpc24ndCBjYXVzaW5nIAo+Pj4+PiBpdCB0byB0ZXJtaW5hdGUgZWFybHksIHNv
IHRoZSBgTUlSQUdFIFdPUktTYCBzdHJpbmcgaXMgYWx3YXlzIAo+Pj4+PiBwcmludGVkLiAgV2Ug
bmVlZCBhIGlzLW1pcmFnZS13b3JraW5nLXdvcmtpbmcgc2NyaXB0IHRvIGZpeCBvdXIgCj4+Pj4+
IGlzLW1pcmFnZS13b3JraW5nIHNjcmlwdCA6LSkKPj4+Pj4gCj4+Pj4+IC1hbmlsCj4+Pj4+IAo+
Pj4+PiBPbiAyMCBPY3QgMjAxNCwgYXQgMTU6MDksIEx1a2UgRHVuc3RhbiA8bHVrZWR1bnN0YW44
MUBnbWFpbC5jb20+IAo+Pj4+PiB3cm90ZToKPj4+Pj4gCj4+Pj4+PiBUaGFua3MsIEkgd2FzIGFi
bGUgdG8gY29tcGlsZSBhbmQgcnVuIG1pcmFnZS13d3cgb24gYSBEb2NrZXIgaW1hZ2UgCj4+Pj4+
PiB3aXRoIDQuMDEuCj4+Pj4+PiAKPj4+Pj4+IEx1a2UKPj4+Pj4+IAo+Pj4+Pj4gCj4+Pj4+PiBP
biAyMCBPY3RvYmVyIDIwMTQgMDk6MjgsIEFuaWwgTWFkaGF2YXBlZGR5IDxhbmlsQHJlY29pbC5v
cmc+IAo+Pj4+Pj4gd3JvdGU6Cj4+Pj4+PiBPbiAxOSBPY3QgMjAxNCwgYXQgMDM6MTcsIEx1a2Ug
RHVuc3RhbiA8bHVrZWR1bnN0YW44MUBnbWFpbC5jb20+IAo+Pj4+Pj4gd3JvdGU6Cj4+Pj4+PiAK
Pj4+Pj4+PiBIaSwKPj4+Pj4+PiAKPj4+Pj4+PiBJIHRyaWVkIHRvIGJ1aWxkIG1pcmFnZS13d3cg
YXMgcGVyIAo+Pj4+Pj4+IGh0dHA6Ly9vcGVubWlyYWdlLm9yZy93aWtpL21pcmFnZS13d3cKPj4+
Pj4+PiAKPj4+Pj4+PiAkIGVudiBORVQ9c29ja2V0IEZTPWNydW5jaCBtaXJhZ2UgY29uZmlndXJl
IC0tdW5peAo+Pj4+Pj4+IChzdWNjZXNzKQo+Pj4+Pj4+IAo+Pj4+Pj4+ICQgbWFrZSBkZXBlbmQK
Pj4+Pj4+PiAoc3VjY2VzcyopCj4+Pj4+Pj4gCj4+Pj4+Pj4gJCBtYWtlCj4+Pj4+Pj4gY2FtbGJ1
aWxkIC1jbGFzc2ljLWRpc3BsYXkgLXVzZS1vY2FtbGZpbmQgLXBrZ3MgCj4+Pj4+Pj4gbHd0LnN5
bnRheCxjb25kdWl0Lm1pcmFnZSxjb3cuc3ludGF4LGNvd2FibG9nYSxjc3RydWN0LGlvLXBhZ2Us
aW8tcGFnZS51bml4LGx3dCxtaXJhZ2UtY29uc29sZS51bml4LG1pcmFnZS1mcy11bml4LG1pcmFn
ZS1odHRwLG1pcmFnZS10eXBlcyxtaXJhZ2UtdHlwZXMubHd0LHRjcGlwLnN0YWNrLXNvY2tldCAK
Pj4+Pj4+PiAtdGFncyAic3ludGF4KGNhbWxwNG8pLGFubm90LGJpbl9hbm5vdCxzdHJpY3Rfc2Vx
dWVuY2UscHJpbmNpcGFsIiAKPj4+Pj4+PiAtY2ZsYWcgLWcgLWxmbGFncyAtZywtbGlua3BrZyBt
YWluLm5hdGl2ZQo+Pj4+Pj4+IG9jYW1sZmluZCBvY2FtbGMgLWMgLWcgLWFubm90IC1iaW4tYW5u
b3QgLXByaW5jaXBhbCAKPj4+Pj4+PiAtc3RyaWN0LXNlcXVlbmNlIC1wYWNrYWdlIHRjcGlwLnN0
YWNrLXNvY2tldCAtcGFja2FnZSAKPj4+Pj4+PiBtaXJhZ2UtdHlwZXMubHd0IC1wYWNrYWdlIG1p
cmFnZS10eXBlcyAtcGFja2FnZSBtaXJhZ2UtaHR0cCAKPj4+Pj4+PiAtcGFja2FnZSBtaXJhZ2Ut
ZnMtdW5peCAtcGFja2FnZSBtaXJhZ2UtY29uc29sZS51bml4IC1wYWNrYWdlIGx3dCAKPj4+Pj4+
PiAtcGFja2FnZSBpby1wYWdlLnVuaXggLXBhY2thZ2UgaW8tcGFnZSAtcGFja2FnZSBjc3RydWN0
IC1wYWNrYWdlIAo+Pj4+Pj4+IGNvd2FibG9nYSAtcGFja2FnZSBjb3cuc3ludGF4IC1wYWNrYWdl
IGNvbmR1aXQubWlyYWdlIC1wYWNrYWdlIAo+Pj4+Pj4+IGx3dC5zeW50YXggLXN5bnRheCBjYW1s
cDRvIC1vIG1haW4uY21vIG1haW4ubWwKPj4+Pj4+PiArIG9jYW1sZmluZCBvY2FtbGMgLWMgLWcg
LWFubm90IC1iaW4tYW5ub3QgLXByaW5jaXBhbCAKPj4+Pj4+PiAtc3RyaWN0LXNlcXVlbmNlIC1w
YWNrYWdlIHRjcGlwLnN0YWNrLXNvY2tldCAtcGFja2FnZSAKPj4+Pj4+PiBtaXJhZ2UtdHlwZXMu
bHd0IC1wYWNrYWdlIG1pcmFnZS10eXBlcyAtcGFja2FnZSBtaXJhZ2UtaHR0cCAKPj4+Pj4+PiAt
cGFja2FnZSBtaXJhZ2UtZnMtdW5peCAtcGFja2FnZSBtaXJhZ2UtY29uc29sZS51bml4IC1wYWNr
YWdlIGx3dCAKPj4+Pj4+PiAtcGFja2FnZSBpby1wYWdlLnVuaXggLXBhY2thZ2UgaW8tcGFnZSAt
cGFja2FnZSBjc3RydWN0IC1wYWNrYWdlIAo+Pj4+Pj4+IGNvd2FibG9nYSAtcGFja2FnZSBjb3cu
c3ludGF4IC1wYWNrYWdlIGNvbmR1aXQubWlyYWdlIC1wYWNrYWdlIAo+Pj4+Pj4+IGx3dC5zeW50
YXggLXN5bnRheCBjYW1scDRvIC1vIG1haW4uY21vIG1haW4ubWwKPj4+Pj4+PiBGaWxlICJtYWlu
Lm1sIiwgbGluZSA5OCwgY2hhcmFjdGVycyAyLTEzOgo+Pj4+Pj4+IEVycm9yOiBVbmJvdW5kIG1v
ZHVsZSBPUwo+Pj4+Pj4+IENvbW1hbmQgZXhpdGVkIHdpdGggY29kZSAyLgo+Pj4+Pj4+IG1ha2U6
ICoqKiBbbWFpbi5uYXRpdmVdIEVycm9yIDEwCj4+Pj4+Pj4gCj4+Pj4+Pj4gCj4+Pj4+Pj4gVG8g
dHJ5IHRvIGVuc3VyZSB0aGF0IHRoaXMgd2FzIHJlcHJvZHVjaWJsZSBJIGFsc28gdHJpZWQgc3Rh
cnRpbmcgCj4+Pj4+Pj4gZnJvbSB0aGUgImF2c20vZG9ja2VyLW9wYW06dWJ1bnR1LXRydXN0eS00
LjAxLjAiIERvY2tlciBpbWFnZSBhbmQgCj4+Pj4+Pj4gZ290IHRoZSBzYW1lIGVycm9yLiBIb3dl
dmVyLCBJIGhhZCB0byBjaGFuZ2UgdGhlIG91bml0IHBhY2thZ2UgCj4+Pj4+Pj4gVVJMIGJlY2F1
c2UgZm9yZ2Uub2NhbWxjb3JlLm9yZyBpcyBhcHBhcmVudGx5IGRvd24uCj4+Pj4+Pj4gCj4+Pj4+
Pj4gQWxzbywgSSBoYWQgdG8gImFwdC1nZXQgaW5zdGFsbCBsaWJzc2wtZGV2IiB0byBnZXQgcGFz
dCB0aGUgCj4+Pj4+Pj4gImNvbmZpZ3VyZSIgLyAibWFrZSBkZXBlbmQiIHN0ZXAgYmVjYXVzZSBp
dCB3YXMgYXBwYXJlbnRseSAKPj4+Pj4+PiByZXF1aXJlZCB0byBjb21waWxlIHNzbC0wLjQuNywg
c28gbWF5YmUgdGhhdCBpcyByZWxhdGVkIHRvIHRoZSAKPj4+Pj4+PiBwcm9ibGVtPwo+Pj4+Pj4g
Cj4+Pj4+PiBIaSBMdWtlLAo+Pj4+Pj4gCj4+Pj4+PiBUaGFua3MgZm9yIHRoZSBidWcgcmVwb3J0
LCBhbmQgYm9udXMgcG9pbnRzIGZvciB0cnlpbmcgdGhlIERvY2tlciAKPj4+Pj4+IHJlcG9zaXRv
cnkgb3V0LiAgSSd2ZSBmaXhlZCB0aGUgdW5kZXJseWluZyBpc3N1ZSB0aGF0IHdhcyBjYXVzaW5n
IAo+Pj4+Pj4gdGhlIHVuYm91bmQgT1MgbW9kdWxlIHRvIHNob3cgdXAgLS0gaXQncyBiZWNhdXNl
IG9mIHNvbWUgcmVjZW50IAo+Pj4+Pj4gc2h1ZmZsaW5nIG9mIGRlcGVuZGVuY2llcyBpbiBjb25z
b2xlIGhhbmRsaW5nLCBhbmQgdGhpcyByZXN1bHRlZCAKPj4+Pj4+IGluIG1pcmFnZS11bml4IG5v
IGxvbmdlciBiZWluZyBpbXBsaWNpdGx5IGRlcGVuZGVkIG9uLiAgSSd2ZSAKPj4+Pj4+IG1vZGlm
aWVkIHRoZSBtaXJhZ2UgdG9vbCB0byBleHBsaWNpdGx5IGFkZCB0aGUgZGVwZW5kZW5jeSBpbi4K
Pj4+Pj4+IAo+Pj4+Pj4gSW4gb3JkZXIgdG8gaGVscCBrZWVwIHRoaW5ncyB3b3JraW5nIGFjcm9z
cyB0aGUgaW5jcmVhc2luZyBudW1iZXIgCj4+Pj4+PiBvZiBkaXN0cmlidXRpb25zLCBJJ3ZlIGFs
c28gY3JlYXRlZCBhIGNvdXBsZSBvZiBjcm9uIGpvYnMgdGhhdCAKPj4+Pj4+IGF1dG9tYXRpY2Fs
bHkgYnVpbGQgdGhpbmdzIGFuZCBwdWJsaXNoIHRoZSBsb2dzCj4+Pj4+PiAKPj4+Pj4+IC0gVGhl
IERvY2tlciByZWdpc3RyeSBub3cgaGFzIE9QQU0gdGFncyBmb3IgVWJ1bnR1L0NlbnRPUyBvbiBP
Q2FtbCAKPj4+Pj4+IDQuMDEgYW5kIDQuMDI6ICAKPj4+Pj4+IGh0dHBzOi8vcmVnaXN0cnkuaHVi
LmRvY2tlci5jb20vdS9hdnNtL2RvY2tlci1vcGFtL2J1aWxkc19oaXN0b3J5LzE1NjY5Lwo+Pj4+
Pj4gaHR0cHM6Ly9naXRodWIuY29tL2F2c20vZG9ja2VyLW9wYW0gaGFzIHRoZSBzb3VyY2VzCj4+
Pj4+PiAKPj4+Pj4+IC0gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9pcy1taXJhZ2UtYnJva2Vu
IHJ1bnMgYXMgYSBjcm9uam9iIAo+Pj4+Pj4gKGNyb24uc2gpIG9uIGJsb2JzLm9wZW5taXJhZ2Uu
b3JnIGRhaWx5IGFuZCBwdXNoZXMgdGhlIGxvZ3MgdG8gdGhlIAo+Pj4+Pj4gbG9ncy8gZGlyZWN0
b3J5IGluIHRoaXMgcmVwby4gIFdoZW4gdGhhdCdzIGNvbXBsZXRlZCBydW5uaW5nIChhbmQgCj4+
Pj4+PiB3ZSd2ZSBmaXhlZCB0aGUgYnVpbGQgYnJlYWthZ2VzISksIGl0IHNob3VsZCBiZSBlYXN5
IHRvIGdldCBpdCBvbiAKPj4+Pj4+IHRoZSB3ZWJzaXRlIGFzIGEgYmFkZ2Ugc28gd2UgY2FuIHNl
ZSB0aGUgc3RhdHVzIG9mIHJlcG9zIGF0IGEgCj4+Pj4+PiBnbGFuY2UuCj4+Pj4+PiAKPj4+Pj4+
IEFib3V0IHRvIGhvcCBvbiBhIGZsaWdodCBub3csIHNvIEkndmUgbGVmdCB0aGUgY3JvbiBqb2Ig
cnVubmluZyAKPj4+Pj4+IGFuZCB3aWxsIGNoZWNrIGl0IG91dCB0b21vcnJvdy4gIElmIGFueW9u
ZSBlbHNlIGNhbiB0ZXN0IG91dCB0aGUgCj4+Pj4+PiBEb2NrZXIgaW1hZ2VzIGluIHRoZSBtZWFu
d2hpbGUsIGZlZWwgZnJlZS4uLgo+Pj4+Pj4gCj4+Pj4+PiAtYW5pbAo+Pj4+Pj4gCj4+Pj4+PiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4gTWly
YWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4+PiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwo+Pj4+Pj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+Pj4+PiAKPj4+Pj4gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4gTWlyYWdlT1MtZGV2ZWwgbWFp
bGluZyBsaXN0Cj4+Pj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4+Pj4+
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWly
YWdlb3MtZGV2ZWwKPj4+PiAKPj4+PiAKPj4+PiAtLQo+Pj4+IENoZWVycywKPj4+PiAKPj4+PiBS
Lgo+Pj4+IAo+Pj4+IAo+Pj4+IAo+Pj4+IAo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCj4+Pj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+
Pj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPj4+PiBodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+
PiAKPj4gCj4+IAo+PiAtLQo+PiBDaGVlcnMsCj4+IAo+PiBSLgo+PiAKPj4gCj4+IAo+PiAKPj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gTWlyYWdl
T1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCj4+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vbWlyYWdlb3MtZGV2ZWwKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwo+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pcmFnZU9T
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBs
aXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 15:01:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 15:01: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 1XgawC-0001ss-Gw; Tue, 21 Oct 2014 15:01:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XgawA-0001si-Sa
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 15:01:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	C9/4D-10419-64576445; Tue, 21 Oct 2014 15:01:26 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-11.tower-21.messagelabs.com!1413903684!12205596!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23242 invoked from network); 21 Oct 2014 15:01:25 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 21 Oct 2014 15:01:25 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:32892)
	by ppsw-51.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
	with esmtp id 1Xgaw8-00042z-Xl (Exim 4.82_3-c0e5623)
	(return-path <ns441@cam.ac.uk>); Tue, 21 Oct 2014 16:01:24 +0100
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1Xgaw8-0009tb-DL (Exim
	4.80_167-5a66dd3)
	(return-path <ns441@cam.ac.uk>); Tue, 21 Oct 2014 16:01:24 +0100
Received: from lusankya.mac.cl.cam.ac.uk ([128.232.56.51])
	by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Tue, 21 Oct 2014 16:01:24 +0100
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Tue, 21 Oct 2014 16:01:24 +0100
From: Nik Sultana <ns441@cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
Message-ID: <8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Building mirage-www fails
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

SSB0aGluayBSaWNoYXJkIG1pZ2h0IGJlIHJpZ2h0LiBUaGUgc2VtYW50aWNzIG9mICYmIHNlZW1z
IHRvIGJlIGEgYml0IApjb3VudGVyaW50dWl0aXZlIGluIHRoaXMgY2FzZS4gQ29uc2lkZXIgdGhp
cyBzY3JpcHQ6CgojIS9iaW4vc2gKc2V0IC1lICNsaW5lMQpmYWxzZSAmJiBlY2hvIGhlbGxvICNs
aW5lMgplY2hvIGhlbGxvMgpmYWxzZSAjbGluZTQKZWNobyB3b3JsZAoKSXQgZ2l2ZXMgdGhlIG91
dHB1dDoKaGVsbG8yCgp3aGljaCBpcyBvZGQsIGJlY2F1c2Ugd2UgZXhwZWN0IHRoZSBzY3JpcHQg
dG8gYmUgdGVybWluYXRlZCBhdCBsaW5lMiAtLSAKdGhlIGxpbmUgImVjaG8gaGVsbG8yIiBzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZC4gSW5zdGVhZCwgdGhlIHNjcmlwdCAKY29udGludWVzIG9uIGFu
ZCBpcyBvbmx5IHRlcm1pbmF0ZWQgYXQgbGluZTQuCgpKdXN0IHRvIHRlc3QgdGhlIGVmZmVjdCBv
ZiAic2V0IC1lIiwgY29tbWVudGluZyBsaW5lMSBhbmQgcnVubmluZyB0aGUgCnNjcmlwdCBnaXZl
cyB0aGUgb3V0cHV0OgpoZWxsbzIKd29ybGQKCk9uIDIwMTQtMTAtMjEgMTU6NDksIEFuaWwgTWFk
aGF2YXBlZGR5IHdyb3RlOgo+IFRoZSAmJiBzaG91bGQgY2F0Y2ggdGhhdCBmYWlsdXJlLiAgQ29u
c2lkZXI6Cj4gCj4gIyEvYmluL3NoIC1leAo+IAo+IGV4aXQgMSAmJiBlY2hvIGhlbGxvCj4gZWNo
byB3b3JsZAo+IAo+IEV4ZWN1dGluZyB0aGF0Ogo+IAo+ICQgLi90ZXN0LnNoCj4gKyBleGl0IDEK
PiAKPiBJZiB0aGUgbWFrZSBkZXBlbmQgZmFpbHMsIEknZCBleHBlY3QgdGhlICYmIHRvIGZhaWws
IGFuZCB0aGUgcmVzdWx0aW5nCj4gbm9uLXplcm8gZXhpdCBjb2RlIHRvIGNhdXNlIHRoZSB3aG9s
ZSBzaGVsbCB0byBleGl0Lgo+IAo+IC1hbmlsCj4gCj4gT24gMjEgT2N0IDIwMTQsIGF0IDE1OjM3
LCBSaWNoYXJkIE1vcnRpZXIKPiA8UmljaGFyZC5Nb3J0aWVyQG5vdHRpbmdoYW0uYWMudWs+IHdy
b3RlOgo+IAo+PiBidXQgaXNuJ3QgaXQgdGhlICJtYWtlIGRlcGVuZCIgc3RlcCB0aGF0J3MgZmFp
bGluZyBhcyBmYXIgYXMgdGhlIAo+PiBpcy1taXJhZ2UtYnJva2VuL3NjcmlwdHMvbWlyYWdlLXd3
dyBzY3JpcHQgaXMgY29uY2VybmVkIC0tIGhlbmNlIGl0IAo+PiB3b24ndCBleGl0IGFjY29yZGlu
ZyB0byBwb2ludCAyLiBiZWxvdyAoLWUgaXMgaWdub3JlZCBpZiBpdCdzIGFueSAKPj4gY29tbWFu
ZCBvZiBhbiBBTkQtT1IgbGlzdCBvdGhlciB0aGFuIHRoZSBsYXN0KS4KPj4gCj4+IHdpdGggLWUg
b24sIHNlZW1zIGV4cGVjdGVkIHByYWN0aWNlIGlzIHRvIGlzc3VlIHRoZSBjb21tYW5kcyAKPj4g
aW5kaXZpZHVhbGx5IGkuZS4KPj4gCj4+IG1ha2UgZGVwZW5kCj4+IG1ha2UgY29uZmlndXJlCj4+
IG1ha2UgYnVpbGQKPj4gCj4+IC4uLmFuZCBsZXQgdGhlIC1lIGZhaWwgdGhlbSBpZiByZXF1aXJl
ZC4gKGFzc3VtaW5nIHlvdSBkb24ndCB3YW50IHRvIAo+PiBhY2N1bXVsYXRlIGluZm8gYWJvdXQg
ZmFpbHVyZXMgb2YgZGVwZW5kL2NvbmZpZ3VyZSBvbiBvdGhlciBwbGF0Zm9ybXMgCj4+IGJlZm9y
ZSBiYWlsaW5nIG91dC4pCj4+IAo+PiBPbiAyMSBPY3QgMjAxNCwgYXQgMTU6MTgsIEFuaWwgTWFk
aGF2YXBlZGR5IDxhbmlsQHJlY29pbC5vcmc+IHdyb3RlOgo+PiAKPj4+IEl0J3MgaGVyZToKPj4+
IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvaXMtbWlyYWdlLWJyb2tlbi9ibG9iL21hc3Rlci9z
Y3JpcHRzL21pcmFnZS13d3cKPj4+IAo+Pj4gQW5kIHRoZSBgbWFrZWAgaW52b2NhdGlvbnMgZG8g
c2VlbSB0byBleGl0IHdpdGggYSBub24temVybyBleGl0IGNvZGUuCj4+PiAKPj4+IC1hbmkKPj4+
IAo+Pj4gT24gMjEgT2N0IDIwMTQsIGF0IDE1OjAyLCBSaWNoYXJkIE1vcnRpZXIgCj4+PiA8Umlj
aGFyZC5Nb3J0aWVyQG5vdHRpbmdoYW0uYWMudWs+IHdyb3RlOgo+Pj4gCj4+Pj4gbm90IHN1cmUg
cHJlY2lzZWx5IHdoZXJlIHRoZSBzY3JpcHQgYmVpbmcgZXhlY3V0ZWQgYWN0dWFsbHkgaXMgYnV0
IAo+Pj4+IGNvdWxkIGl0IGJlIGJlY2F1c2UgaXQncyBhIGNvbW1hbmQgaW4gYSBtdWx0aS1jb21t
YW5kIHBpcGVsaW5lPwo+Pj4+IAo+Pj4+IGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5l
cHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9WM19jaGFwMDIuaHRtbAo+Pj4+IAo+Pj4+IC1lCj4+
Pj4gV2hlbiB0aGlzIG9wdGlvbiBpcyBvbiwgd2hlbiBhbnkgY29tbWFuZCBmYWlscyAoZm9yIGFu
eSBvZiB0aGUgCj4+Pj4gcmVhc29ucyBsaXN0ZWQgaW4gQ29uc2VxdWVuY2VzIG9mIFNoZWxsIEVy
cm9ycyBvciBieSByZXR1cm5pbmcgYW4gCj4+Pj4gZXhpdCBzdGF0dXMgZ3JlYXRlciB0aGFuIHpl
cm8pLCB0aGUgc2hlbGwgaW1tZWRpYXRlbHkgc2hhbGwgZXhpdCAKPj4+PiB3aXRoIHRoZSBmb2xs
b3dpbmcgZXhjZXB0aW9uczoKPj4+PiAJ4oCiIFRoZSBmYWlsdXJlIG9mIGFueSBpbmRpdmlkdWFs
IGNvbW1hbmQgaW4gYSBtdWx0aS1jb21tYW5kIHBpcGVsaW5lIAo+Pj4+IHNoYWxsIG5vdCBjYXVz
ZSB0aGUgc2hlbGwgdG8gZXhpdC4gT25seSB0aGUgZmFpbHVyZSBvZiB0aGUgcGlwZWxpbmUgCj4+
Pj4gaXRzZWxmIHNoYWxsIGJlIGNvbnNpZGVyZWQuCj4+Pj4gCj4+Pj4gCeKAoiBUaGUgLWUgc2V0
dGluZyBzaGFsbCBiZSBpZ25vcmVkIHdoZW4gZXhlY3V0aW5nIHRoZSBjb21wb3VuZCBsaXN0IAo+
Pj4+IGZvbGxvd2luZyB0aGUgd2hpbGUsIHVudGlsLCBpZiwgb3IgZWxpZiByZXNlcnZlZCB3b3Jk
LCBhIHBpcGVsaW5lIAo+Pj4+IGJlZ2lubmluZyB3aXRoIHRoZSAhIHJlc2VydmVkIHdvcmQsIG9y
IGFueSBjb21tYW5kIG9mIGFuIEFORC1PUiBsaXN0IAo+Pj4+IG90aGVyIHRoYW4gdGhlIGxhc3Qu
Cj4+Pj4gCj4+Pj4gCeKAoiBJZiB0aGUgZXhpdCBzdGF0dXMgb2YgYSBjb21wb3VuZCBjb21tYW5k
IG90aGVyIHRoYW4gYSBzdWJzaGVsbCAKPj4+PiBjb21tYW5kIHdhcyB0aGUgcmVzdWx0IG9mIGEg
ZmFpbHVyZSB3aGlsZSAtZSB3YXMgYmVpbmcgaWdub3JlZCwgdGhlbiAKPj4+PiAtZSBzaGFsbCBu
b3QgYXBwbHkgdG8gdGhpcyBjb21tYW5kLgo+Pj4+IAo+Pj4+IFRoaXMgcmVxdWlyZW1lbnQgYXBw
bGllcyB0byB0aGUgc2hlbGwgZW52aXJvbm1lbnQgYW5kIGVhY2ggc3Vic2hlbGwgCj4+Pj4gZW52
aXJvbm1lbnQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGluOgo+Pj4+IAo+Pj4+IHNldCAtZTsg
KGZhbHNlOyBlY2hvIG9uZSkgfCBjYXQ7IGVjaG8gdHdvCj4+Pj4gCj4+Pj4gCj4+Pj4gdGhlIGZh
bHNlIGNvbW1hbmQgY2F1c2VzIHRoZSBzdWJzaGVsbCB0byBleGl0IHdpdGhvdXQgZXhlY3V0aW5n
IGVjaG8gCj4+Pj4gb25lOyBob3dldmVyLCBlY2hvIHR3byBpcyBleGVjdXRlZCBiZWNhdXNlIHRo
ZSBleGl0IHN0YXR1cyBvZiB0aGUgCj4+Pj4gcGlwZWxpbmUgKGZhbHNlOyBlY2hvIG9uZSkgfCBj
YXQgaXMgemVyby4KPj4+PiAKPj4+PiAKPj4+PiAKPj4+PiBPbiAyMSBPY3QgMjAxNCwgYXQgMTQ6
MzEsIEFuaWwgTWFkaGF2YXBlZGR5IDxhbmlsQHJlY29pbC5vcmc+IHdyb3RlOgo+Pj4+IAo+Pj4+
PiBHcmVhdCEgIEZvciB0aGUgcmVzdCBvZiB0aGUgbGlzdCwgaXQgbG9va3MgbGlrZSBtaXJhZ2Ut
ZGV2IGlzIAo+Pj4+PiB3b3JraW5nIHdpdGggdGhlIGV4dGVybmFsIE9QQU0gc29sdmVyIChhc3Bj
dWQsIG9uIFVidW50dS10cnVzdHkpLCAKPj4+Pj4gYnV0IG5vdCB3aXRoIHRoZSBpbnRlcm5hbCBv
bmUgKENlbnRPUyBidWlsZHMpOgo+Pj4+PiAKPj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL21pcmFn
ZS9pcy1taXJhZ2UtYnJva2VuL3RyZWUvbWFzdGVyL2xvZ3MKPj4+Pj4gCj4+Pj4+IFRoaXMgaXMg
cHJvYmFibHkgZHVlIHRvIG91ciBleGNlc3NpdmUgdXNlIG9mIGRlcG9wdHM7IEkgd2lsbCAKPj4+
Pj4gcmVwbGFjZSB0aG9zZSB3aXRoIGV4cGxpY2l0IHZpcnR1YWwgcGFja2FnZXMgKGUuZy4gZG5z
LW1pcmFnZSkgdGhhdCAKPj4+Pj4gZW5jb2RlIGFsbCB0aGUgZGVwZW5kZW5jaWVzIHRoZXkgbmVl
ZC4KPj4+Pj4gCj4+Pj4+IE1vcmUgbXlzdGVyaW91c2x5LCB0aGUgYHNldCAtZWAgaW4gdGhlIHNo
ZWxsIHNjcmlwdCBpc24ndCBjYXVzaW5nIAo+Pj4+PiBpdCB0byB0ZXJtaW5hdGUgZWFybHksIHNv
IHRoZSBgTUlSQUdFIFdPUktTYCBzdHJpbmcgaXMgYWx3YXlzIAo+Pj4+PiBwcmludGVkLiAgV2Ug
bmVlZCBhIGlzLW1pcmFnZS13b3JraW5nLXdvcmtpbmcgc2NyaXB0IHRvIGZpeCBvdXIgCj4+Pj4+
IGlzLW1pcmFnZS13b3JraW5nIHNjcmlwdCA6LSkKPj4+Pj4gCj4+Pj4+IC1hbmlsCj4+Pj4+IAo+
Pj4+PiBPbiAyMCBPY3QgMjAxNCwgYXQgMTU6MDksIEx1a2UgRHVuc3RhbiA8bHVrZWR1bnN0YW44
MUBnbWFpbC5jb20+IAo+Pj4+PiB3cm90ZToKPj4+Pj4gCj4+Pj4+PiBUaGFua3MsIEkgd2FzIGFi
bGUgdG8gY29tcGlsZSBhbmQgcnVuIG1pcmFnZS13d3cgb24gYSBEb2NrZXIgaW1hZ2UgCj4+Pj4+
PiB3aXRoIDQuMDEuCj4+Pj4+PiAKPj4+Pj4+IEx1a2UKPj4+Pj4+IAo+Pj4+Pj4gCj4+Pj4+PiBP
biAyMCBPY3RvYmVyIDIwMTQgMDk6MjgsIEFuaWwgTWFkaGF2YXBlZGR5IDxhbmlsQHJlY29pbC5v
cmc+IAo+Pj4+Pj4gd3JvdGU6Cj4+Pj4+PiBPbiAxOSBPY3QgMjAxNCwgYXQgMDM6MTcsIEx1a2Ug
RHVuc3RhbiA8bHVrZWR1bnN0YW44MUBnbWFpbC5jb20+IAo+Pj4+Pj4gd3JvdGU6Cj4+Pj4+PiAK
Pj4+Pj4+PiBIaSwKPj4+Pj4+PiAKPj4+Pj4+PiBJIHRyaWVkIHRvIGJ1aWxkIG1pcmFnZS13d3cg
YXMgcGVyIAo+Pj4+Pj4+IGh0dHA6Ly9vcGVubWlyYWdlLm9yZy93aWtpL21pcmFnZS13d3cKPj4+
Pj4+PiAKPj4+Pj4+PiAkIGVudiBORVQ9c29ja2V0IEZTPWNydW5jaCBtaXJhZ2UgY29uZmlndXJl
IC0tdW5peAo+Pj4+Pj4+IChzdWNjZXNzKQo+Pj4+Pj4+IAo+Pj4+Pj4+ICQgbWFrZSBkZXBlbmQK
Pj4+Pj4+PiAoc3VjY2VzcyopCj4+Pj4+Pj4gCj4+Pj4+Pj4gJCBtYWtlCj4+Pj4+Pj4gY2FtbGJ1
aWxkIC1jbGFzc2ljLWRpc3BsYXkgLXVzZS1vY2FtbGZpbmQgLXBrZ3MgCj4+Pj4+Pj4gbHd0LnN5
bnRheCxjb25kdWl0Lm1pcmFnZSxjb3cuc3ludGF4LGNvd2FibG9nYSxjc3RydWN0LGlvLXBhZ2Us
aW8tcGFnZS51bml4LGx3dCxtaXJhZ2UtY29uc29sZS51bml4LG1pcmFnZS1mcy11bml4LG1pcmFn
ZS1odHRwLG1pcmFnZS10eXBlcyxtaXJhZ2UtdHlwZXMubHd0LHRjcGlwLnN0YWNrLXNvY2tldCAK
Pj4+Pj4+PiAtdGFncyAic3ludGF4KGNhbWxwNG8pLGFubm90LGJpbl9hbm5vdCxzdHJpY3Rfc2Vx
dWVuY2UscHJpbmNpcGFsIiAKPj4+Pj4+PiAtY2ZsYWcgLWcgLWxmbGFncyAtZywtbGlua3BrZyBt
YWluLm5hdGl2ZQo+Pj4+Pj4+IG9jYW1sZmluZCBvY2FtbGMgLWMgLWcgLWFubm90IC1iaW4tYW5u
b3QgLXByaW5jaXBhbCAKPj4+Pj4+PiAtc3RyaWN0LXNlcXVlbmNlIC1wYWNrYWdlIHRjcGlwLnN0
YWNrLXNvY2tldCAtcGFja2FnZSAKPj4+Pj4+PiBtaXJhZ2UtdHlwZXMubHd0IC1wYWNrYWdlIG1p
cmFnZS10eXBlcyAtcGFja2FnZSBtaXJhZ2UtaHR0cCAKPj4+Pj4+PiAtcGFja2FnZSBtaXJhZ2Ut
ZnMtdW5peCAtcGFja2FnZSBtaXJhZ2UtY29uc29sZS51bml4IC1wYWNrYWdlIGx3dCAKPj4+Pj4+
PiAtcGFja2FnZSBpby1wYWdlLnVuaXggLXBhY2thZ2UgaW8tcGFnZSAtcGFja2FnZSBjc3RydWN0
IC1wYWNrYWdlIAo+Pj4+Pj4+IGNvd2FibG9nYSAtcGFja2FnZSBjb3cuc3ludGF4IC1wYWNrYWdl
IGNvbmR1aXQubWlyYWdlIC1wYWNrYWdlIAo+Pj4+Pj4+IGx3dC5zeW50YXggLXN5bnRheCBjYW1s
cDRvIC1vIG1haW4uY21vIG1haW4ubWwKPj4+Pj4+PiArIG9jYW1sZmluZCBvY2FtbGMgLWMgLWcg
LWFubm90IC1iaW4tYW5ub3QgLXByaW5jaXBhbCAKPj4+Pj4+PiAtc3RyaWN0LXNlcXVlbmNlIC1w
YWNrYWdlIHRjcGlwLnN0YWNrLXNvY2tldCAtcGFja2FnZSAKPj4+Pj4+PiBtaXJhZ2UtdHlwZXMu
bHd0IC1wYWNrYWdlIG1pcmFnZS10eXBlcyAtcGFja2FnZSBtaXJhZ2UtaHR0cCAKPj4+Pj4+PiAt
cGFja2FnZSBtaXJhZ2UtZnMtdW5peCAtcGFja2FnZSBtaXJhZ2UtY29uc29sZS51bml4IC1wYWNr
YWdlIGx3dCAKPj4+Pj4+PiAtcGFja2FnZSBpby1wYWdlLnVuaXggLXBhY2thZ2UgaW8tcGFnZSAt
cGFja2FnZSBjc3RydWN0IC1wYWNrYWdlIAo+Pj4+Pj4+IGNvd2FibG9nYSAtcGFja2FnZSBjb3cu
c3ludGF4IC1wYWNrYWdlIGNvbmR1aXQubWlyYWdlIC1wYWNrYWdlIAo+Pj4+Pj4+IGx3dC5zeW50
YXggLXN5bnRheCBjYW1scDRvIC1vIG1haW4uY21vIG1haW4ubWwKPj4+Pj4+PiBGaWxlICJtYWlu
Lm1sIiwgbGluZSA5OCwgY2hhcmFjdGVycyAyLTEzOgo+Pj4+Pj4+IEVycm9yOiBVbmJvdW5kIG1v
ZHVsZSBPUwo+Pj4+Pj4+IENvbW1hbmQgZXhpdGVkIHdpdGggY29kZSAyLgo+Pj4+Pj4+IG1ha2U6
ICoqKiBbbWFpbi5uYXRpdmVdIEVycm9yIDEwCj4+Pj4+Pj4gCj4+Pj4+Pj4gCj4+Pj4+Pj4gVG8g
dHJ5IHRvIGVuc3VyZSB0aGF0IHRoaXMgd2FzIHJlcHJvZHVjaWJsZSBJIGFsc28gdHJpZWQgc3Rh
cnRpbmcgCj4+Pj4+Pj4gZnJvbSB0aGUgImF2c20vZG9ja2VyLW9wYW06dWJ1bnR1LXRydXN0eS00
LjAxLjAiIERvY2tlciBpbWFnZSBhbmQgCj4+Pj4+Pj4gZ290IHRoZSBzYW1lIGVycm9yLiBIb3dl
dmVyLCBJIGhhZCB0byBjaGFuZ2UgdGhlIG91bml0IHBhY2thZ2UgCj4+Pj4+Pj4gVVJMIGJlY2F1
c2UgZm9yZ2Uub2NhbWxjb3JlLm9yZyBpcyBhcHBhcmVudGx5IGRvd24uCj4+Pj4+Pj4gCj4+Pj4+
Pj4gQWxzbywgSSBoYWQgdG8gImFwdC1nZXQgaW5zdGFsbCBsaWJzc2wtZGV2IiB0byBnZXQgcGFz
dCB0aGUgCj4+Pj4+Pj4gImNvbmZpZ3VyZSIgLyAibWFrZSBkZXBlbmQiIHN0ZXAgYmVjYXVzZSBp
dCB3YXMgYXBwYXJlbnRseSAKPj4+Pj4+PiByZXF1aXJlZCB0byBjb21waWxlIHNzbC0wLjQuNywg
c28gbWF5YmUgdGhhdCBpcyByZWxhdGVkIHRvIHRoZSAKPj4+Pj4+PiBwcm9ibGVtPwo+Pj4+Pj4g
Cj4+Pj4+PiBIaSBMdWtlLAo+Pj4+Pj4gCj4+Pj4+PiBUaGFua3MgZm9yIHRoZSBidWcgcmVwb3J0
LCBhbmQgYm9udXMgcG9pbnRzIGZvciB0cnlpbmcgdGhlIERvY2tlciAKPj4+Pj4+IHJlcG9zaXRv
cnkgb3V0LiAgSSd2ZSBmaXhlZCB0aGUgdW5kZXJseWluZyBpc3N1ZSB0aGF0IHdhcyBjYXVzaW5n
IAo+Pj4+Pj4gdGhlIHVuYm91bmQgT1MgbW9kdWxlIHRvIHNob3cgdXAgLS0gaXQncyBiZWNhdXNl
IG9mIHNvbWUgcmVjZW50IAo+Pj4+Pj4gc2h1ZmZsaW5nIG9mIGRlcGVuZGVuY2llcyBpbiBjb25z
b2xlIGhhbmRsaW5nLCBhbmQgdGhpcyByZXN1bHRlZCAKPj4+Pj4+IGluIG1pcmFnZS11bml4IG5v
IGxvbmdlciBiZWluZyBpbXBsaWNpdGx5IGRlcGVuZGVkIG9uLiAgSSd2ZSAKPj4+Pj4+IG1vZGlm
aWVkIHRoZSBtaXJhZ2UgdG9vbCB0byBleHBsaWNpdGx5IGFkZCB0aGUgZGVwZW5kZW5jeSBpbi4K
Pj4+Pj4+IAo+Pj4+Pj4gSW4gb3JkZXIgdG8gaGVscCBrZWVwIHRoaW5ncyB3b3JraW5nIGFjcm9z
cyB0aGUgaW5jcmVhc2luZyBudW1iZXIgCj4+Pj4+PiBvZiBkaXN0cmlidXRpb25zLCBJJ3ZlIGFs
c28gY3JlYXRlZCBhIGNvdXBsZSBvZiBjcm9uIGpvYnMgdGhhdCAKPj4+Pj4+IGF1dG9tYXRpY2Fs
bHkgYnVpbGQgdGhpbmdzIGFuZCBwdWJsaXNoIHRoZSBsb2dzCj4+Pj4+PiAKPj4+Pj4+IC0gVGhl
IERvY2tlciByZWdpc3RyeSBub3cgaGFzIE9QQU0gdGFncyBmb3IgVWJ1bnR1L0NlbnRPUyBvbiBP
Q2FtbCAKPj4+Pj4+IDQuMDEgYW5kIDQuMDI6ICAKPj4+Pj4+IGh0dHBzOi8vcmVnaXN0cnkuaHVi
LmRvY2tlci5jb20vdS9hdnNtL2RvY2tlci1vcGFtL2J1aWxkc19oaXN0b3J5LzE1NjY5Lwo+Pj4+
Pj4gaHR0cHM6Ly9naXRodWIuY29tL2F2c20vZG9ja2VyLW9wYW0gaGFzIHRoZSBzb3VyY2VzCj4+
Pj4+PiAKPj4+Pj4+IC0gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9pcy1taXJhZ2UtYnJva2Vu
IHJ1bnMgYXMgYSBjcm9uam9iIAo+Pj4+Pj4gKGNyb24uc2gpIG9uIGJsb2JzLm9wZW5taXJhZ2Uu
b3JnIGRhaWx5IGFuZCBwdXNoZXMgdGhlIGxvZ3MgdG8gdGhlIAo+Pj4+Pj4gbG9ncy8gZGlyZWN0
b3J5IGluIHRoaXMgcmVwby4gIFdoZW4gdGhhdCdzIGNvbXBsZXRlZCBydW5uaW5nIChhbmQgCj4+
Pj4+PiB3ZSd2ZSBmaXhlZCB0aGUgYnVpbGQgYnJlYWthZ2VzISksIGl0IHNob3VsZCBiZSBlYXN5
IHRvIGdldCBpdCBvbiAKPj4+Pj4+IHRoZSB3ZWJzaXRlIGFzIGEgYmFkZ2Ugc28gd2UgY2FuIHNl
ZSB0aGUgc3RhdHVzIG9mIHJlcG9zIGF0IGEgCj4+Pj4+PiBnbGFuY2UuCj4+Pj4+PiAKPj4+Pj4+
IEFib3V0IHRvIGhvcCBvbiBhIGZsaWdodCBub3csIHNvIEkndmUgbGVmdCB0aGUgY3JvbiBqb2Ig
cnVubmluZyAKPj4+Pj4+IGFuZCB3aWxsIGNoZWNrIGl0IG91dCB0b21vcnJvdy4gIElmIGFueW9u
ZSBlbHNlIGNhbiB0ZXN0IG91dCB0aGUgCj4+Pj4+PiBEb2NrZXIgaW1hZ2VzIGluIHRoZSBtZWFu
d2hpbGUsIGZlZWwgZnJlZS4uLgo+Pj4+Pj4gCj4+Pj4+PiAtYW5pbAo+Pj4+Pj4gCj4+Pj4+PiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4gTWly
YWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4+PiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwo+Pj4+Pj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+Pj4+PiAKPj4+Pj4gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4gTWlyYWdlT1MtZGV2ZWwgbWFp
bGluZyBsaXN0Cj4+Pj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4+Pj4+
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWly
YWdlb3MtZGV2ZWwKPj4+PiAKPj4+PiAKPj4+PiAtLQo+Pj4+IENoZWVycywKPj4+PiAKPj4+PiBS
Lgo+Pj4+IAo+Pj4+IAo+Pj4+IAo+Pj4+IAo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCj4+Pj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+
Pj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPj4+PiBodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+
PiAKPj4gCj4+IAo+PiAtLQo+PiBDaGVlcnMsCj4+IAo+PiBSLgo+PiAKPj4gCj4+IAo+PiAKPj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gTWlyYWdl
T1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCj4+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vbWlyYWdlb3MtZGV2ZWwKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwo+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pcmFnZU9T
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBs
aXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 15:21:10 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 15:21: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 1XgbFE-0003kC-HX; Tue, 21 Oct 2014 15:21:08 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgbFD-0003jz-BY
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 15:21:07 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	A0/1D-13389-2E976445; Tue, 21 Oct 2014 15:21:06 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-5.tower-206.messagelabs.com!1413904865!10887676!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18209 invoked from network); 21 Oct 2014 15:21:05 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-5.tower-206.messagelabs.com with SMTP;
	21 Oct 2014 15:21:05 -0000
Received: (qmail 18022 invoked from network); 21 Oct 2014 15:20:04 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 21 Oct 2014 15:20:04 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 15295-10 for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 16:20:00 +0100 (BST)
Received: (qmail 16255 invoked by uid 599); 21 Oct 2014 15:19:43 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 21 Oct 2014 16:19:43 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgbD0-0006hx-PV; Tue, 21 Oct 2014 16:18:50 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>, Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 21 Oct 2014 16:18:49 +0100
Thread-Topic: [MirageOS-devel] Building mirage-www fails
Thread-Index: Ac/tQlDtStqIyFA0RK+uS2uhNlWqCA==
Message-ID: <73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
In-Reply-To: <8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============3680487788912735221=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3680487788912735221==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

if you read the docs i quoted, that's exactly as documented:

>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list=20
>>>>> following the while, until, if, or elif reserved word, a pipeline=20=

>>>>> beginning with the ! reserved word, or any command of an AND-OR =
list=20
>>>>> other than the last.

it might be rather counter-intuitive and of dubious merit, but it's the =
documented behaviour...

On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:

> I think Richard might be right. The semantics of && seems to be a bit=20=

> counterintuitive in this case. Consider this script:
>=20
> #!/bin/sh
> set -e #line1
> false && echo hello #line2
> echo hello2
> false #line4
> echo world
>=20
> It gives the output:
> hello2
>=20
> which is odd, because we expect the script to be terminated at line2 =
--=20
> the line "echo hello2" should never be reached. Instead, the script=20
> continues on and is only terminated at line4.
>=20
> Just to test the effect of "set -e", commenting line1 and running the=20=

> script gives the output:
> hello2
> world
>=20
> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
>> The && should catch that failure.  Consider:
>>=20
>> #!/bin/sh -ex
>>=20
>> exit 1 && echo hello
>> echo world
>>=20
>> Executing that:
>>=20
>> $ ./test.sh
>> + exit 1
>>=20
>> If the make depend fails, I'd expect the && to fail, and the =
resulting
>> non-zero exit code to cause the whole shell to exit.
>>=20
>> -anil
>>=20
>> On 21 Oct 2014, at 15:37, Richard Mortier
>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>=20
>>> but isn't it the "make depend" step that's failing as far as the=20
>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it=20=

>>> won't exit according to point 2. below (-e is ignored if it's any=20
>>> command of an AND-OR list other than the last).
>>>=20
>>> with -e on, seems expected practice is to issue the commands=20
>>> individually i.e.
>>>=20
>>> make depend
>>> make configure
>>> make build
>>>=20
>>> ...and let the -e fail them if required. (assuming you don't want to=20=

>>> accumulate info about failures of depend/configure on other =
platforms=20
>>> before bailing out.)
>>>=20
>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>=20
>>>> It's here:
>>>> =
https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
>>>>=20
>>>> And the `make` invocations do seem to exit with a non-zero exit =
code.
>>>>=20
>>>> -ani
>>>>=20
>>>> On 21 Oct 2014, at 15:02, Richard Mortier=20
>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>=20
>>>>> not sure precisely where the script being executed actually is but=20=

>>>>> could it be because it's a command in a multi-command pipeline?
>>>>>=20
>>>>> =
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>>>>=20
>>>>> -e
>>>>> When this option is on, when any command fails (for any of the=20
>>>>> reasons listed in Consequences of Shell Errors or by returning an=20=

>>>>> exit status greater than zero), the shell immediately shall exit=20=

>>>>> with the following exceptions:
>>>>> 	=95 The failure of any individual command in a multi-command =
pipeline=20
>>>>> shall not cause the shell to exit. Only the failure of the =
pipeline=20
>>>>> itself shall be considered.
>>>>>=20
>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list=20
>>>>> following the while, until, if, or elif reserved word, a pipeline=20=

>>>>> beginning with the ! reserved word, or any command of an AND-OR =
list=20
>>>>> other than the last.
>>>>>=20
>>>>> 	=95 If the exit status of a compound command other than a =
subshell=20
>>>>> command was the result of a failure while -e was being ignored, =
then=20
>>>>> -e shall not apply to this command.
>>>>>=20
>>>>> This requirement applies to the shell environment and each =
subshell=20
>>>>> environment separately. For example, in:
>>>>>=20
>>>>> set -e; (false; echo one) | cat; echo two
>>>>>=20
>>>>>=20
>>>>> the false command causes the subshell to exit without executing =
echo=20
>>>>> one; however, echo two is executed because the exit status of the=20=

>>>>> pipeline (false; echo one) | cat is zero.
>>>>>=20
>>>>>=20
>>>>>=20
>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> =
wrote:
>>>>>=20
>>>>>> Great!  For the rest of the list, it looks like mirage-dev is=20
>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty),=20=

>>>>>> but not with the internal one (CentOS builds):
>>>>>>=20
>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>>>>=20
>>>>>> This is probably due to our excessive use of depopts; I will=20
>>>>>> replace those with explicit virtual packages (e.g. dns-mirage) =
that=20
>>>>>> encode all the dependencies they need.
>>>>>>=20
>>>>>> More mysteriously, the `set -e` in the shell script isn't causing=20=

>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always=20
>>>>>> printed.  We need a is-mirage-working-working script to fix our=20=

>>>>>> is-mirage-working script :-)
>>>>>>=20
>>>>>> -anil
>>>>>>=20
>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>=20=

>>>>>> wrote:
>>>>>>=20
>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker =
image=20
>>>>>>> with 4.01.
>>>>>>>=20
>>>>>>> Luke
>>>>>>>=20
>>>>>>>=20
>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>=20
>>>>>>> wrote:
>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com>=20=

>>>>>>> wrote:
>>>>>>>=20
>>>>>>>> Hi,
>>>>>>>>=20
>>>>>>>> I tried to build mirage-www as per=20
>>>>>>>> http://openmirage.org/wiki/mirage-www
>>>>>>>>=20
>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>>>> (success)
>>>>>>>>=20
>>>>>>>> $ make depend
>>>>>>>> (success*)
>>>>>>>>=20
>>>>>>>> $ make
>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs=20
>>>>>>>> =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket=20
>>>>>>>> -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal"=20
>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal=20
>>>>>>>> -strict-sequence -package tcpip.stack-socket -package=20
>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http=20
>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt=20
>>>>>>>> -package io-page.unix -package io-page -package cstruct =
-package=20
>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package=20=

>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal=20
>>>>>>>> -strict-sequence -package tcpip.stack-socket -package=20
>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http=20
>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt=20
>>>>>>>> -package io-page.unix -package io-page -package cstruct =
-package=20
>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package=20=

>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>>>> Error: Unbound module OS
>>>>>>>> Command exited with code 2.
>>>>>>>> make: *** [main.native] Error 10
>>>>>>>>=20
>>>>>>>>=20
>>>>>>>> To try to ensure that this was reproducible I also tried =
starting=20
>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image =
and=20
>>>>>>>> got the same error. However, I had to change the ounit package=20=

>>>>>>>> URL because forge.ocamlcore.org is apparently down.
>>>>>>>>=20
>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the=20
>>>>>>>> "configure" / "make depend" step because it was apparently=20
>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the=20=

>>>>>>>> problem?
>>>>>>>=20
>>>>>>> Hi Luke,
>>>>>>>=20
>>>>>>> Thanks for the bug report, and bonus points for trying the =
Docker=20
>>>>>>> repository out.  I've fixed the underlying issue that was =
causing=20
>>>>>>> the unbound OS module to show up -- it's because of some recent=20=

>>>>>>> shuffling of dependencies in console handling, and this resulted=20=

>>>>>>> in mirage-unix no longer being implicitly depended on.  I've=20
>>>>>>> modified the mirage tool to explicitly add the dependency in.
>>>>>>>=20
>>>>>>> In order to help keep things working across the increasing =
number=20
>>>>>>> of distributions, I've also created a couple of cron jobs that=20=

>>>>>>> automatically build things and publish the logs
>>>>>>>=20
>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on =
OCaml=20
>>>>>>> 4.01 and 4.02: =20
>>>>>>> =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>>>>>>> https://github.com/avsm/docker-opam has the sources
>>>>>>>=20
>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob=20=

>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to =
the=20
>>>>>>> logs/ directory in this repo.  When that's completed running =
(and=20
>>>>>>> we've fixed the build breakages!), it should be easy to get it =
on=20
>>>>>>> the website as a badge so we can see the status of repos at a=20
>>>>>>> glance.
>>>>>>>=20
>>>>>>> About to hop on a flight now, so I've left the cron job running=20=

>>>>>>> and will check it out tomorrow.  If anyone else can test out the=20=

>>>>>>> Docker images in the meanwhile, feel free...
>>>>>>>=20
>>>>>>> -anil
>>>>>>>=20
>>>>>>> _______________________________________________
>>>>>>> MirageOS-devel mailing list
>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>> =
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> MirageOS-devel mailing list
>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>> =
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>>=20
>>>>>=20
>>>>> --
>>>>> Cheers,
>>>>>=20
>>>>> R.
>>>>>=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
>>>=20
>>> --
>>> Cheers,
>>>=20
>>> R.
>>>=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
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURnlZAAoJEOLF27JWwSg32loP+gNT5rP7tpXQ0qC3GnzlrPq1
IiFJtF80kkwZERTXXP4RC2SLnETuP/pRc6GtJBiluPopmWyQz7/A3OfHX9YKAyBJ
j1BmakOfPvTMUAu3D2drfBCpJChGskCADlBm8H6HR3mObhr3FYUf1w3znbk/o+Nu
4z0JAxp6vLl194cYyWFQAH8uEjkxjEfPLsuALxYe7onqZokurv5/ZM4OWc3LzMFc
144ypH2anpMFkVHYzQqnXp2I9XR0oLTuG5vfsLHTfZ9HiQHXqcXzTmYMciMrC9rL
iz3rxKZDbzMwHbqoBr5FhJdblFqXojZbMI0fPPLW/zIonsQA9pfVZLl2qwMSW2IL
m88Y9w74MouarnoKJJEvadgOgbxaNWNUxgzaS33pSaAt7+M8SZfooahoA1KMV73h
Zm6ky8bkxHyguwxdsfEOd0mh3RzZhcufjCn7aPCg/rmXwerYpQf11CVTA/8FlrsN
s2D//JOWKvr6rN2eIGSb9AMZz2BRAR8pauktKTCc+M5ZwISvtA3zslidXjzgNjD0
YQI+cZAmM+1y86PTRH3Posztdjh1XR0XOXEPL8PKaUL2BJfV9HX5F+tQgBKBmddo
uEnC7aqQKmYUcI7WywGVMQmBYLlwBFElX4eJlbMNPbWasHPGkwiau/dJTUn5E479
8kc+nhb9J9POqPCevhpu
=R7J/
-----END PGP SIGNATURE-----

--Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199--


--===============3680487788912735221==
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

--===============3680487788912735221==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 15:21:10 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 15:21: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 1XgbFE-0003kC-HX; Tue, 21 Oct 2014 15:21:08 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgbFD-0003jz-BY
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 15:21:07 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	A0/1D-13389-2E976445; Tue, 21 Oct 2014 15:21:06 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-5.tower-206.messagelabs.com!1413904865!10887676!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18209 invoked from network); 21 Oct 2014 15:21:05 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-5.tower-206.messagelabs.com with SMTP;
	21 Oct 2014 15:21:05 -0000
Received: (qmail 18022 invoked from network); 21 Oct 2014 15:20:04 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 21 Oct 2014 15:20:04 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 15295-10 for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 16:20:00 +0100 (BST)
Received: (qmail 16255 invoked by uid 599); 21 Oct 2014 15:19:43 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 21 Oct 2014 16:19:43 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XgbD0-0006hx-PV; Tue, 21 Oct 2014 16:18:50 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>, Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 21 Oct 2014 16:18:49 +0100
Thread-Topic: [MirageOS-devel] Building mirage-www fails
Thread-Index: Ac/tQlDtStqIyFA0RK+uS2uhNlWqCA==
Message-ID: <73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
In-Reply-To: <8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============3680487788912735221=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3680487788912735221==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

if you read the docs i quoted, that's exactly as documented:

>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list=20
>>>>> following the while, until, if, or elif reserved word, a pipeline=20=

>>>>> beginning with the ! reserved word, or any command of an AND-OR =
list=20
>>>>> other than the last.

it might be rather counter-intuitive and of dubious merit, but it's the =
documented behaviour...

On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:

> I think Richard might be right. The semantics of && seems to be a bit=20=

> counterintuitive in this case. Consider this script:
>=20
> #!/bin/sh
> set -e #line1
> false && echo hello #line2
> echo hello2
> false #line4
> echo world
>=20
> It gives the output:
> hello2
>=20
> which is odd, because we expect the script to be terminated at line2 =
--=20
> the line "echo hello2" should never be reached. Instead, the script=20
> continues on and is only terminated at line4.
>=20
> Just to test the effect of "set -e", commenting line1 and running the=20=

> script gives the output:
> hello2
> world
>=20
> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
>> The && should catch that failure.  Consider:
>>=20
>> #!/bin/sh -ex
>>=20
>> exit 1 && echo hello
>> echo world
>>=20
>> Executing that:
>>=20
>> $ ./test.sh
>> + exit 1
>>=20
>> If the make depend fails, I'd expect the && to fail, and the =
resulting
>> non-zero exit code to cause the whole shell to exit.
>>=20
>> -anil
>>=20
>> On 21 Oct 2014, at 15:37, Richard Mortier
>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>=20
>>> but isn't it the "make depend" step that's failing as far as the=20
>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it=20=

>>> won't exit according to point 2. below (-e is ignored if it's any=20
>>> command of an AND-OR list other than the last).
>>>=20
>>> with -e on, seems expected practice is to issue the commands=20
>>> individually i.e.
>>>=20
>>> make depend
>>> make configure
>>> make build
>>>=20
>>> ...and let the -e fail them if required. (assuming you don't want to=20=

>>> accumulate info about failures of depend/configure on other =
platforms=20
>>> before bailing out.)
>>>=20
>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>=20
>>>> It's here:
>>>> =
https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
>>>>=20
>>>> And the `make` invocations do seem to exit with a non-zero exit =
code.
>>>>=20
>>>> -ani
>>>>=20
>>>> On 21 Oct 2014, at 15:02, Richard Mortier=20
>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>=20
>>>>> not sure precisely where the script being executed actually is but=20=

>>>>> could it be because it's a command in a multi-command pipeline?
>>>>>=20
>>>>> =
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
>>>>>=20
>>>>> -e
>>>>> When this option is on, when any command fails (for any of the=20
>>>>> reasons listed in Consequences of Shell Errors or by returning an=20=

>>>>> exit status greater than zero), the shell immediately shall exit=20=

>>>>> with the following exceptions:
>>>>> 	=95 The failure of any individual command in a multi-command =
pipeline=20
>>>>> shall not cause the shell to exit. Only the failure of the =
pipeline=20
>>>>> itself shall be considered.
>>>>>=20
>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list=20
>>>>> following the while, until, if, or elif reserved word, a pipeline=20=

>>>>> beginning with the ! reserved word, or any command of an AND-OR =
list=20
>>>>> other than the last.
>>>>>=20
>>>>> 	=95 If the exit status of a compound command other than a =
subshell=20
>>>>> command was the result of a failure while -e was being ignored, =
then=20
>>>>> -e shall not apply to this command.
>>>>>=20
>>>>> This requirement applies to the shell environment and each =
subshell=20
>>>>> environment separately. For example, in:
>>>>>=20
>>>>> set -e; (false; echo one) | cat; echo two
>>>>>=20
>>>>>=20
>>>>> the false command causes the subshell to exit without executing =
echo=20
>>>>> one; however, echo two is executed because the exit status of the=20=

>>>>> pipeline (false; echo one) | cat is zero.
>>>>>=20
>>>>>=20
>>>>>=20
>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> =
wrote:
>>>>>=20
>>>>>> Great!  For the rest of the list, it looks like mirage-dev is=20
>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty),=20=

>>>>>> but not with the internal one (CentOS builds):
>>>>>>=20
>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>>>>=20
>>>>>> This is probably due to our excessive use of depopts; I will=20
>>>>>> replace those with explicit virtual packages (e.g. dns-mirage) =
that=20
>>>>>> encode all the dependencies they need.
>>>>>>=20
>>>>>> More mysteriously, the `set -e` in the shell script isn't causing=20=

>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always=20
>>>>>> printed.  We need a is-mirage-working-working script to fix our=20=

>>>>>> is-mirage-working script :-)
>>>>>>=20
>>>>>> -anil
>>>>>>=20
>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>=20=

>>>>>> wrote:
>>>>>>=20
>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker =
image=20
>>>>>>> with 4.01.
>>>>>>>=20
>>>>>>> Luke
>>>>>>>=20
>>>>>>>=20
>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>=20
>>>>>>> wrote:
>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com>=20=

>>>>>>> wrote:
>>>>>>>=20
>>>>>>>> Hi,
>>>>>>>>=20
>>>>>>>> I tried to build mirage-www as per=20
>>>>>>>> http://openmirage.org/wiki/mirage-www
>>>>>>>>=20
>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>>>> (success)
>>>>>>>>=20
>>>>>>>> $ make depend
>>>>>>>> (success*)
>>>>>>>>=20
>>>>>>>> $ make
>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs=20
>>>>>>>> =
lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.uni=
x,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket=20
>>>>>>>> -tags =
"syntax(camlp4o),annot,bin_annot,strict_sequence,principal"=20
>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal=20
>>>>>>>> -strict-sequence -package tcpip.stack-socket -package=20
>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http=20
>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt=20
>>>>>>>> -package io-page.unix -package io-page -package cstruct =
-package=20
>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package=20=

>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal=20
>>>>>>>> -strict-sequence -package tcpip.stack-socket -package=20
>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http=20
>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt=20
>>>>>>>> -package io-page.unix -package io-page -package cstruct =
-package=20
>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package=20=

>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>>>> Error: Unbound module OS
>>>>>>>> Command exited with code 2.
>>>>>>>> make: *** [main.native] Error 10
>>>>>>>>=20
>>>>>>>>=20
>>>>>>>> To try to ensure that this was reproducible I also tried =
starting=20
>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image =
and=20
>>>>>>>> got the same error. However, I had to change the ounit package=20=

>>>>>>>> URL because forge.ocamlcore.org is apparently down.
>>>>>>>>=20
>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the=20
>>>>>>>> "configure" / "make depend" step because it was apparently=20
>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the=20=

>>>>>>>> problem?
>>>>>>>=20
>>>>>>> Hi Luke,
>>>>>>>=20
>>>>>>> Thanks for the bug report, and bonus points for trying the =
Docker=20
>>>>>>> repository out.  I've fixed the underlying issue that was =
causing=20
>>>>>>> the unbound OS module to show up -- it's because of some recent=20=

>>>>>>> shuffling of dependencies in console handling, and this resulted=20=

>>>>>>> in mirage-unix no longer being implicitly depended on.  I've=20
>>>>>>> modified the mirage tool to explicitly add the dependency in.
>>>>>>>=20
>>>>>>> In order to help keep things working across the increasing =
number=20
>>>>>>> of distributions, I've also created a couple of cron jobs that=20=

>>>>>>> automatically build things and publish the logs
>>>>>>>=20
>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on =
OCaml=20
>>>>>>> 4.01 and 4.02: =20
>>>>>>> =
https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
>>>>>>> https://github.com/avsm/docker-opam has the sources
>>>>>>>=20
>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob=20=

>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to =
the=20
>>>>>>> logs/ directory in this repo.  When that's completed running =
(and=20
>>>>>>> we've fixed the build breakages!), it should be easy to get it =
on=20
>>>>>>> the website as a badge so we can see the status of repos at a=20
>>>>>>> glance.
>>>>>>>=20
>>>>>>> About to hop on a flight now, so I've left the cron job running=20=

>>>>>>> and will check it out tomorrow.  If anyone else can test out the=20=

>>>>>>> Docker images in the meanwhile, feel free...
>>>>>>>=20
>>>>>>> -anil
>>>>>>>=20
>>>>>>> _______________________________________________
>>>>>>> MirageOS-devel mailing list
>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>> =
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> MirageOS-devel mailing list
>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>> =
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>>=20
>>>>>=20
>>>>> --
>>>>> Cheers,
>>>>>=20
>>>>> R.
>>>>>=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
>>>=20
>>> --
>>> Cheers,
>>>=20
>>> R.
>>>=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
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJURnlZAAoJEOLF27JWwSg32loP+gNT5rP7tpXQ0qC3GnzlrPq1
IiFJtF80kkwZERTXXP4RC2SLnETuP/pRc6GtJBiluPopmWyQz7/A3OfHX9YKAyBJ
j1BmakOfPvTMUAu3D2drfBCpJChGskCADlBm8H6HR3mObhr3FYUf1w3znbk/o+Nu
4z0JAxp6vLl194cYyWFQAH8uEjkxjEfPLsuALxYe7onqZokurv5/ZM4OWc3LzMFc
144ypH2anpMFkVHYzQqnXp2I9XR0oLTuG5vfsLHTfZ9HiQHXqcXzTmYMciMrC9rL
iz3rxKZDbzMwHbqoBr5FhJdblFqXojZbMI0fPPLW/zIonsQA9pfVZLl2qwMSW2IL
m88Y9w74MouarnoKJJEvadgOgbxaNWNUxgzaS33pSaAt7+M8SZfooahoA1KMV73h
Zm6ky8bkxHyguwxdsfEOd0mh3RzZhcufjCn7aPCg/rmXwerYpQf11CVTA/8FlrsN
s2D//JOWKvr6rN2eIGSb9AMZz2BRAR8pauktKTCc+M5ZwISvtA3zslidXjzgNjD0
YQI+cZAmM+1y86PTRH3Posztdjh1XR0XOXEPL8PKaUL2BJfV9HX5F+tQgBKBmddo
uEnC7aqQKmYUcI7WywGVMQmBYLlwBFElX4eJlbMNPbWasHPGkwiau/dJTUn5E479
8kc+nhb9J9POqPCevhpu
=R7J/
-----END PGP SIGNATURE-----

--Apple-Mail=_0AFBE595-6315-41D3-9C5C-926234137199--


--===============3680487788912735221==
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

--===============3680487788912735221==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 23:13:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 23:13: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 1Xgicb-0002XX-Ot; Tue, 21 Oct 2014 23:13:45 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <piffio@piffio.org>) id 1Xgica-0002XS-KP
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 23:13:44 +0000
Received: from [193.109.254.147:33750] by server-15.bemta-14.messagelabs.com
	id 84/36-30948-7A8E6445; Tue, 21 Oct 2014 23:13:43 +0000
X-Env-Sender: piffio@piffio.org
X-Msg-Ref: server-12.tower-27.messagelabs.com!1413933221!12189655!1
X-Originating-IP: [209.85.217.177]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_10_20,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30312 invoked from network); 21 Oct 2014 23:13:42 -0000
Received: from mail-lb0-f177.google.com (HELO mail-lb0-f177.google.com)
	(209.85.217.177)
	by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	21 Oct 2014 23:13:42 -0000
Received: by mail-lb0-f177.google.com with SMTP id w7so1863807lbi.8
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 16:13:41 -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=XpRH4XIVJJEmkyDO4W/s9dC9OWbnfCy8hZQI8c7iuVs=;
	b=LTQT/NOZhksiFz+Us0aCRTffctT1opje/tlZPu76JB96m5GCCFUpLyQjUkkIyXm6za
	fnpW7QVcaQiXmuNZ7K+FJUurvC1bAGdZKKIbC2MRsCxNrefEBNMYOSNDw4Ha02U2hKIq
	34JWMwD+p/l0oG8AimbbS/iqVYhsS8KmcHPvfzQFbe5Df6TxxABNkHEAa2NvK6Ok/OXC
	RfGGIFQ4DomzjyW/g1dyF/o9liamUwQTGbAALMo6NDcNxQkFQk/2ewHDIsN+IWrXj8kz
	frYzl/bEUENOmqQiynIMTKol56GSQQDR5cT4rxX0B7JWFkUcKFZsjaWxz/L9yBhHemUj
	ADcg==
X-Gm-Message-State: ALoCoQnkaAy7QAYVw31OQ/7zgRnWx25VinQH3X5/FN+fj53MsbcnAFPyFMhbDZ4foYg0DuMY6DN3
MIME-Version: 1.0
X-Received: by 10.152.22.194 with SMTP id g2mr37881216laf.33.1413933221317;
	Tue, 21 Oct 2014 16:13:41 -0700 (PDT)
Received: by 10.112.26.210 with HTTP; Tue, 21 Oct 2014 16:13:41 -0700 (PDT)
X-Originating-IP: [189.209.113.26]
Date: Tue, 21 Oct 2014 18:13:41 -0500
Message-ID: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
From: Sergio Visinoni <piffio@piffio.org>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
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="===============8629213446764899456=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8629213446764899456==
Content-Type: multipart/alternative; boundary=089e0158b61c64a11f0505f6fbeb

--089e0158b61c64a11f0505f6fbeb
Content-Type: text/plain; charset=UTF-8

Hi all,

First of all, sorry if this is not the right place for this post. Feel free
to redirect me somewhere else if this is the case.

I've been playing with MirageOS recently, and even if I've been hitting a
bunch of issues - mostly related to the current "unstable"-ish status of
the mirage-dev reposotiry - I finally managed to move forward an build both
Unix processes and Xen Unikernels, with a lot of support from both Anil and
Dave through GitHub.

Still, a couple of issues are preventing me to be able to deploy "for real"
a unikernel running Octopress that I've been building.

1st problem (workaround exists)

When you have installed all the packages from mirage-dev in order to build
MirageOS 2.0, it's not possibe to build the xe-unikernel-upload module, due
to some incompatibilities between xen-api-client and the latest Cohttp.
Since the xen-api-client [1] doesn't seem to allow for issue reporting in
GitHub, I'm reporting here. The workaround I found has bin to build both xe
and xe-unikernel-upload on my laptop with the mirage 1.2 modules installed,
saved the binaries in a safe location, and moved forward with mirage-dev.

    # File "lib/xen_api.ml", line 40, characters 9-20:
    # Error: Unbound module Cohttp.IO
    # Command exited with code 2.

Should I report this bug on a different list? If so, which one?



2nd problem (still unresolved):

I've been succesfully deployng the generated unikernels on dev machines
running both XenServer 6.2 and Creedence. These servers are stand-alone
(not in a pool) and using only local storage.
When I tried to deploy the same unikernels to a pre-production environment
(XenServer 6.2, in a pool, using shared iSCASI storage), I systematically
get the following error:

    Uploading VDI containing unikernel
    Caught: Ssl.Write_error(5), cleaning up
    xe-unikernel-upload: internal error, uncaught exception:
                     Ssl.Write_error(5)


and on the XenServer logs I can see the following message:

Oct 21 18:10:38 xenqadev1 xapi: [error|xenqadev1.segundamano.infra|29289224
INET 0.0.0.0:80|VDI.import D:3985726b7fc7|xapi] Attach_helpers.with_vbds
new VBD has leaked: OpaqueRef:0dc75aa7-fdef-630d-b5a8-2a059390ac2c

Does anyone have any pointer in order for me to know where to start looking
into? A redirect to a more appropriate mailing list would also be
appreciated.

Thanks in advance
s

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

<div dir=3D"ltr">Hi all,<div><br></div><div>First of all, sorry if this is =
not the right place for this post. Feel free to redirect me somewhere else =
if this is the case.</div><div><br></div><div>I&#39;ve been playing with Mi=
rageOS recently, and even if I&#39;ve been hitting a bunch of issues - most=
ly related to the current &quot;unstable&quot;-ish status of the mirage-dev=
 reposotiry - I finally managed to move forward an build both Unix processe=
s and Xen Unikernels, with a lot of support from both Anil and Dave through=
 GitHub.</div><div><br></div><div>Still, a couple of issues are preventing =
me to be able to deploy &quot;for real&quot; a unikernel running Octopress =
that I&#39;ve been building.</div><div><br></div><div>1st problem (workarou=
nd exists)</div><div><br></div><div>When you have installed all the package=
s from mirage-dev in order to build MirageOS 2.0, it&#39;s not possibe to b=
uild the=C2=A0xe-unikernel-upload module, due to some incompatibilities bet=
ween xen-api-client and the latest Cohttp. Since the xen-api-client [1] doe=
sn&#39;t seem to allow for issue reporting in GitHub, I&#39;m reporting her=
e. The workaround I found has bin to build both xe and xe-unikernel-upload =
on my laptop with the mirage 1.2 modules installed, saved the binaries in a=
 safe location, and moved forward with mirage-dev.</div><div><br></div><div=
>=C2=A0 =C2=A0 # File &quot;lib/<a href=3D"http://xen_api.ml">xen_api.ml</a=
>&quot;, line 40, characters 9-20:</div><div>=C2=A0 =C2=A0 # Error: Unbound=
 module Cohttp.IO</div><div>=C2=A0 =C2=A0 # Command exited with code 2.</di=
v><div><br></div><div>Should I report this bug on a different list? If so, =
which one?</div><div><br></div><div><br></div><div><br></div><div>2nd probl=
em (still unresolved):</div><div><br></div><div>I&#39;ve been succesfully d=
eployng the generated unikernels on dev machines running both XenServer 6.2=
 and Creedence. These servers are stand-alone (not in a pool) and using onl=
y local storage.</div><div>When I tried to deploy the same unikernels to a =
pre-production environment (XenServer 6.2, in a pool, using shared iSCASI s=
torage), I systematically get the following error:</div><div><br></div><div=
>=C2=A0 =C2=A0 Uploading VDI containing unikernel</div><div>=C2=A0 =C2=A0 C=
aught: Ssl.Write_error(5), cleaning up</div><div>=C2=A0 =C2=A0 xe-unikernel=
-upload: internal error, uncaught exception:</div><div>=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Ssl.Write_error(5)<=
/div><div><br></div><div><br></div><div>and on the XenServer logs I can see=
 the following message:</div><div><br></div><div><div>Oct 21 18:10:38 xenqa=
dev1 xapi: [error|xenqadev1.segundamano.infra|29289224 INET 0.0.0.0:80|VDI.=
import D:3985726b7fc7|xapi] Attach_helpers.with_vbds new VBD has leaked: Op=
aqueRef:0dc75aa7-fdef-630d-b5a8-2a059390ac2c</div></div><div><br></div><div=
>Does anyone have any pointer in order for me to know where to start lookin=
g into? A redirect to a more appropriate mailing list would also be appreci=
ated.</div><div><br></div><div>Thanks in advance</div><div>s</div></div>

--089e0158b61c64a11f0505f6fbeb--


--===============8629213446764899456==
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

--===============8629213446764899456==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 23:13:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 23:13: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 1Xgicb-0002XX-Ot; Tue, 21 Oct 2014 23:13:45 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <piffio@piffio.org>) id 1Xgica-0002XS-KP
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 23:13:44 +0000
Received: from [193.109.254.147:33750] by server-15.bemta-14.messagelabs.com
	id 84/36-30948-7A8E6445; Tue, 21 Oct 2014 23:13:43 +0000
X-Env-Sender: piffio@piffio.org
X-Msg-Ref: server-12.tower-27.messagelabs.com!1413933221!12189655!1
X-Originating-IP: [209.85.217.177]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_10_20,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30312 invoked from network); 21 Oct 2014 23:13:42 -0000
Received: from mail-lb0-f177.google.com (HELO mail-lb0-f177.google.com)
	(209.85.217.177)
	by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	21 Oct 2014 23:13:42 -0000
Received: by mail-lb0-f177.google.com with SMTP id w7so1863807lbi.8
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 16:13:41 -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=XpRH4XIVJJEmkyDO4W/s9dC9OWbnfCy8hZQI8c7iuVs=;
	b=LTQT/NOZhksiFz+Us0aCRTffctT1opje/tlZPu76JB96m5GCCFUpLyQjUkkIyXm6za
	fnpW7QVcaQiXmuNZ7K+FJUurvC1bAGdZKKIbC2MRsCxNrefEBNMYOSNDw4Ha02U2hKIq
	34JWMwD+p/l0oG8AimbbS/iqVYhsS8KmcHPvfzQFbe5Df6TxxABNkHEAa2NvK6Ok/OXC
	RfGGIFQ4DomzjyW/g1dyF/o9liamUwQTGbAALMo6NDcNxQkFQk/2ewHDIsN+IWrXj8kz
	frYzl/bEUENOmqQiynIMTKol56GSQQDR5cT4rxX0B7JWFkUcKFZsjaWxz/L9yBhHemUj
	ADcg==
X-Gm-Message-State: ALoCoQnkaAy7QAYVw31OQ/7zgRnWx25VinQH3X5/FN+fj53MsbcnAFPyFMhbDZ4foYg0DuMY6DN3
MIME-Version: 1.0
X-Received: by 10.152.22.194 with SMTP id g2mr37881216laf.33.1413933221317;
	Tue, 21 Oct 2014 16:13:41 -0700 (PDT)
Received: by 10.112.26.210 with HTTP; Tue, 21 Oct 2014 16:13:41 -0700 (PDT)
X-Originating-IP: [189.209.113.26]
Date: Tue, 21 Oct 2014 18:13:41 -0500
Message-ID: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
From: Sergio Visinoni <piffio@piffio.org>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
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="===============8629213446764899456=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8629213446764899456==
Content-Type: multipart/alternative; boundary=089e0158b61c64a11f0505f6fbeb

--089e0158b61c64a11f0505f6fbeb
Content-Type: text/plain; charset=UTF-8

Hi all,

First of all, sorry if this is not the right place for this post. Feel free
to redirect me somewhere else if this is the case.

I've been playing with MirageOS recently, and even if I've been hitting a
bunch of issues - mostly related to the current "unstable"-ish status of
the mirage-dev reposotiry - I finally managed to move forward an build both
Unix processes and Xen Unikernels, with a lot of support from both Anil and
Dave through GitHub.

Still, a couple of issues are preventing me to be able to deploy "for real"
a unikernel running Octopress that I've been building.

1st problem (workaround exists)

When you have installed all the packages from mirage-dev in order to build
MirageOS 2.0, it's not possibe to build the xe-unikernel-upload module, due
to some incompatibilities between xen-api-client and the latest Cohttp.
Since the xen-api-client [1] doesn't seem to allow for issue reporting in
GitHub, I'm reporting here. The workaround I found has bin to build both xe
and xe-unikernel-upload on my laptop with the mirage 1.2 modules installed,
saved the binaries in a safe location, and moved forward with mirage-dev.

    # File "lib/xen_api.ml", line 40, characters 9-20:
    # Error: Unbound module Cohttp.IO
    # Command exited with code 2.

Should I report this bug on a different list? If so, which one?



2nd problem (still unresolved):

I've been succesfully deployng the generated unikernels on dev machines
running both XenServer 6.2 and Creedence. These servers are stand-alone
(not in a pool) and using only local storage.
When I tried to deploy the same unikernels to a pre-production environment
(XenServer 6.2, in a pool, using shared iSCASI storage), I systematically
get the following error:

    Uploading VDI containing unikernel
    Caught: Ssl.Write_error(5), cleaning up
    xe-unikernel-upload: internal error, uncaught exception:
                     Ssl.Write_error(5)


and on the XenServer logs I can see the following message:

Oct 21 18:10:38 xenqadev1 xapi: [error|xenqadev1.segundamano.infra|29289224
INET 0.0.0.0:80|VDI.import D:3985726b7fc7|xapi] Attach_helpers.with_vbds
new VBD has leaked: OpaqueRef:0dc75aa7-fdef-630d-b5a8-2a059390ac2c

Does anyone have any pointer in order for me to know where to start looking
into? A redirect to a more appropriate mailing list would also be
appreciated.

Thanks in advance
s

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

<div dir=3D"ltr">Hi all,<div><br></div><div>First of all, sorry if this is =
not the right place for this post. Feel free to redirect me somewhere else =
if this is the case.</div><div><br></div><div>I&#39;ve been playing with Mi=
rageOS recently, and even if I&#39;ve been hitting a bunch of issues - most=
ly related to the current &quot;unstable&quot;-ish status of the mirage-dev=
 reposotiry - I finally managed to move forward an build both Unix processe=
s and Xen Unikernels, with a lot of support from both Anil and Dave through=
 GitHub.</div><div><br></div><div>Still, a couple of issues are preventing =
me to be able to deploy &quot;for real&quot; a unikernel running Octopress =
that I&#39;ve been building.</div><div><br></div><div>1st problem (workarou=
nd exists)</div><div><br></div><div>When you have installed all the package=
s from mirage-dev in order to build MirageOS 2.0, it&#39;s not possibe to b=
uild the=C2=A0xe-unikernel-upload module, due to some incompatibilities bet=
ween xen-api-client and the latest Cohttp. Since the xen-api-client [1] doe=
sn&#39;t seem to allow for issue reporting in GitHub, I&#39;m reporting her=
e. The workaround I found has bin to build both xe and xe-unikernel-upload =
on my laptop with the mirage 1.2 modules installed, saved the binaries in a=
 safe location, and moved forward with mirage-dev.</div><div><br></div><div=
>=C2=A0 =C2=A0 # File &quot;lib/<a href=3D"http://xen_api.ml">xen_api.ml</a=
>&quot;, line 40, characters 9-20:</div><div>=C2=A0 =C2=A0 # Error: Unbound=
 module Cohttp.IO</div><div>=C2=A0 =C2=A0 # Command exited with code 2.</di=
v><div><br></div><div>Should I report this bug on a different list? If so, =
which one?</div><div><br></div><div><br></div><div><br></div><div>2nd probl=
em (still unresolved):</div><div><br></div><div>I&#39;ve been succesfully d=
eployng the generated unikernels on dev machines running both XenServer 6.2=
 and Creedence. These servers are stand-alone (not in a pool) and using onl=
y local storage.</div><div>When I tried to deploy the same unikernels to a =
pre-production environment (XenServer 6.2, in a pool, using shared iSCASI s=
torage), I systematically get the following error:</div><div><br></div><div=
>=C2=A0 =C2=A0 Uploading VDI containing unikernel</div><div>=C2=A0 =C2=A0 C=
aught: Ssl.Write_error(5), cleaning up</div><div>=C2=A0 =C2=A0 xe-unikernel=
-upload: internal error, uncaught exception:</div><div>=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Ssl.Write_error(5)<=
/div><div><br></div><div><br></div><div>and on the XenServer logs I can see=
 the following message:</div><div><br></div><div><div>Oct 21 18:10:38 xenqa=
dev1 xapi: [error|xenqadev1.segundamano.infra|29289224 INET 0.0.0.0:80|VDI.=
import D:3985726b7fc7|xapi] Attach_helpers.with_vbds new VBD has leaked: Op=
aqueRef:0dc75aa7-fdef-630d-b5a8-2a059390ac2c</div></div><div><br></div><div=
>Does anyone have any pointer in order for me to know where to start lookin=
g into? A redirect to a more appropriate mailing list would also be appreci=
ated.</div><div><br></div><div>Thanks in advance</div><div>s</div></div>

--089e0158b61c64a11f0505f6fbeb--


--===============8629213446764899456==
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

--===============8629213446764899456==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 23:57:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 23:57: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 1XgjIt-0002qT-32; Tue, 21 Oct 2014 23:57:27 +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 1XgjIq-0002qO-TN
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 23:57:25 +0000
Received: from [85.158.139.211] by server-8.bemta-5.messagelabs.com id
	22/3E-03671-4E2F6445; Tue, 21 Oct 2014 23:57:24 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-10.tower-206.messagelabs.com!1413935842!5677023!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18053 invoked from network); 21 Oct 2014 23:57:23 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 21 Oct 2014 23:57:23 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc16-cmbg14-2-0-cust188.5-4.cable.virginm.net
	([86.6.156.189]:54428 helo=[192.168.1.110])
	by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1:DHE-RSA-AES256-SHA:256)
	id 1XgjIo-0004Iv-Xb (Exim 4.82_3-c0e5623)
	(return-path <jjl25@cam.ac.uk>); Wed, 22 Oct 2014 00:57:22 +0100
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
Mime-Version: 1.0 (1.0)
In-Reply-To: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
Message-Id: <9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
X-Mailer: iPad Mail (12A405)
From: Jon Ludlam <jjl25@cam.ac.uk>
Date: Wed, 22 Oct 2014 00:57:22 +0100
To: Sergio Visinoni <piffio@piffio.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
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="===============6907053696385547485=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6907053696385547485==
Content-Type: multipart/alternative;
	boundary=Apple-Mail-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194
Content-Transfer-Encoding: 7bit


--Apple-Mail-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: quoted-printable

This is probably as good a place as any to report these issues.

For issue #1, the cohttp library moves at a fast pace, and we need to upgrad=
e quite a few components simultaneously to support the new API. It's on the l=
ong list of things to do...

For issue #2, the log line you posted is probably a failure in the cleanup f=
ollowing the actual root cause. We can try to repro locally tomorrow, but it=
 may be worth taking a bugtool (http://support.citrix.com/article/CTX125372)=
 which could help diagnose it.

In the meantime, for a single host pool, you could just copy the unikernel d=
irectly onto the XenServer. Something like:

ssh root@xenserver mkdir /boot/guest
scp unikernel.xen root@xenserver:/boot/guest

And then on the xenserver itself:

xe vm-create name-label=3Dunikernel
xe vm-param-set uuid=3D<uuid> PV-kernel=3D/boot/guest/unikernel.xen

Then add VIFs/VBDs as necessary and start it.

Jon



Sent from my iPad

> On 22 Oct 2014, at 00:13, Sergio Visinoni <piffio@piffio.org> wrote:
>=20
> Hi all,
>=20
> First of all, sorry if this is not the right place for this post. Feel fre=
e to redirect me somewhere else if this is the case.
>=20
> I've been playing with MirageOS recently, and even if I've been hitting a b=
unch of issues - mostly related to the current "unstable"-ish status of the m=
irage-dev reposotiry - I finally managed to move forward an build both Unix p=
rocesses and Xen Unikernels, with a lot of support from both Anil and Dave t=
hrough GitHub.
>=20
> Still, a couple of issues are preventing me to be able to deploy "for real=
" a unikernel running Octopress that I've been building.
>=20
> 1st problem (workaround exists)
>=20
> When you have installed all the packages from mirage-dev in order to build=
 MirageOS 2.0, it's not possibe to build the xe-unikernel-upload module, due=
 to some incompatibilities between xen-api-client and the latest Cohttp. Sin=
ce the xen-api-client [1] doesn't seem to allow for issue reporting in GitHu=
b, I'm reporting here. The workaround I found has bin to build both xe and x=
e-unikernel-upload on my laptop with the mirage 1.2 modules installed, saved=
 the binaries in a safe location, and moved forward with mirage-dev.
>=20
>     # File "lib/xen_api.ml", line 40, characters 9-20:
>     # Error: Unbound module Cohttp.IO
>     # Command exited with code 2.
>=20
> Should I report this bug on a different list? If so, which one?
>=20
>=20
>=20
> 2nd problem (still unresolved):
>=20
> I've been succesfully deployng the generated unikernels on dev machines ru=
nning both XenServer 6.2 and Creedence. These servers are stand-alone (not i=
n a pool) and using only local storage.
> When I tried to deploy the same unikernels to a pre-production environment=
 (XenServer 6.2, in a pool, using shared iSCASI storage), I systematically g=
et the following error:
>=20
>     Uploading VDI containing unikernel
>     Caught: Ssl.Write_error(5), cleaning up
>     xe-unikernel-upload: internal error, uncaught exception:
>                      Ssl.Write_error(5)
>=20
>=20
> and on the XenServer logs I can see the following message:
>=20
> Oct 21 18:10:38 xenqadev1 xapi: [error|xenqadev1.segundamano.infra|2928922=
4 INET 0.0.0.0:80|VDI.import D:3985726b7fc7|xapi] Attach_helpers.with_vbds n=
ew VBD has leaked: OpaqueRef:0dc75aa7-fdef-630d-b5a8-2a059390ac2c
>=20
> Does anyone have any pointer in order for me to know where to start lookin=
g into? A redirect to a more appropriate mailing list would also be apprecia=
ted.
>=20
> Thanks in advance
> s
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--Apple-Mail-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194
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>This is probably as good a place as an=
y to report these issues.</div><div><br></div><div>For issue #1, the cohttp l=
ibrary moves at a fast pace, and we need to upgrade quite a few components s=
imultaneously to support the new API. It's on the long list of things to do.=
..</div><div><br></div><div>For issue #2, the log line you posted is probabl=
y a failure in the cleanup following the actual root cause. We can try to re=
pro locally tomorrow, but it may be worth taking a bugtool (<a href=3D"http:=
//support.citrix.com/article/CTX125372">http://support.citrix.com/article/CT=
X125372</a>) which could help diagnose it.</div><div><br></div><div>In the m=
eantime, for a single host pool, you could just copy the unikernel directly o=
nto the XenServer. Something like:</div><div><br></div><div>ssh root@xenserv=
er mkdir /boot/guest</div><div>scp unikernel.xen root@xenserver:/boot/guest<=
/div><div><br></div><div>And then on the xenserver itself:</div><div><br></d=
iv><div>xe vm-create name-label=3Dunikernel</div><div>xe vm-param-set uuid=3D=
&lt;uuid&gt; PV-kernel=3D/boot/guest/unikernel.xen</div><div><br></div><div>=
Then add VIFs/VBDs as necessary and start it.</div><div><br></div><div>Jon</=
div><div><br></div><div><br><br>Sent from my iPad</div><div><br>On 22 Oct 20=
14, at 00:13, Sergio Visinoni &lt;<a href=3D"mailto:piffio@piffio.org">piffi=
o@piffio.org</a>&gt; wrote:<br><br></div><blockquote type=3D"cite"><div><div=
 dir=3D"ltr">Hi all,<div><br></div><div>First of all, sorry if this is not t=
he right place for this post. Feel free to redirect me somewhere else if thi=
s is the case.</div><div><br></div><div>I've been playing with MirageOS rece=
ntly, and even if I've been hitting a bunch of issues - mostly related to th=
e current "unstable"-ish status of the mirage-dev reposotiry - I finally man=
aged to move forward an build both Unix processes and Xen Unikernels, with a=
 lot of support from both Anil and Dave through GitHub.</div><div><br></div>=
<div>Still, a couple of issues are preventing me to be able to deploy "for r=
eal" a unikernel running Octopress that I've been building.</div><div><br></=
div><div>1st problem (workaround exists)</div><div><br></div><div>When you h=
ave installed all the packages from mirage-dev in order to build MirageOS 2.=
0, it's not possibe to build the&nbsp;xe-unikernel-upload module, due to som=
e incompatibilities between xen-api-client and the latest Cohttp. Since the x=
en-api-client [1] doesn't seem to allow for issue reporting in GitHub, I'm r=
eporting here. The workaround I found has bin to build both xe and xe-uniker=
nel-upload on my laptop with the mirage 1.2 modules installed, saved the bin=
aries in a safe location, and moved forward with mirage-dev.</div><div><br><=
/div><div>&nbsp; &nbsp; # File "lib/<a href=3D"http://xen_api.ml">xen_api.ml=
</a>", line 40, characters 9-20:</div><div>&nbsp; &nbsp; # Error: Unbound mo=
dule Cohttp.IO</div><div>&nbsp; &nbsp; # Command exited with code 2.</div><d=
iv><br></div><div>Should I report this bug on a different list? If so, which=
 one?</div><div><br></div><div><br></div><div><br></div><div>2nd problem (st=
ill unresolved):</div><div><br></div><div>I've been succesfully deployng the=
 generated unikernels on dev machines running both XenServer 6.2 and Creeden=
ce. These servers are stand-alone (not in a pool) and using only local stora=
ge.</div><div>When I tried to deploy the same unikernels to a pre-production=
 environment (XenServer 6.2, in a pool, using shared iSCASI storage), I syst=
ematically get the following error:</div><div><br></div><div>&nbsp; &nbsp; U=
ploading VDI containing unikernel</div><div>&nbsp; &nbsp; Caught: Ssl.Write_=
error(5), cleaning up</div><div>&nbsp; &nbsp; xe-unikernel-upload: internal e=
rror, uncaught exception:</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ssl.Write_error(5)</div><div><br></div><=
div><br></div><div>and on the XenServer logs I can see the following message=
:</div><div><br></div><div><div>Oct 21 18:10:38 xenqadev1 xapi: [error|xenqa=
dev1.segundamano.infra|29289224 INET 0.0.0.0:80|VDI.import D:3985726b7fc7|xa=
pi] Attach_helpers.with_vbds new VBD has leaked: OpaqueRef:0dc75aa7-fdef-630=
d-b5a8-2a059390ac2c</div></div><div><br></div><div>Does anyone have any poin=
ter in order for me to know where to start looking into? A redirect to a mor=
e appropriate mailing list would also be appreciated.</div><div><br></div><d=
iv>Thanks in advance</div><div>s</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-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194--


--===============6907053696385547485==
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

--===============6907053696385547485==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 21 23:57:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 Oct 2014 23:57: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 1XgjIt-0002qT-32; Tue, 21 Oct 2014 23:57:27 +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 1XgjIq-0002qO-TN
	for mirageos-devel@lists.xenproject.org; Tue, 21 Oct 2014 23:57:25 +0000
Received: from [85.158.139.211] by server-8.bemta-5.messagelabs.com id
	22/3E-03671-4E2F6445; Tue, 21 Oct 2014 23:57:24 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-10.tower-206.messagelabs.com!1413935842!5677023!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18053 invoked from network); 21 Oct 2014 23:57:23 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 21 Oct 2014 23:57:23 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc16-cmbg14-2-0-cust188.5-4.cable.virginm.net
	([86.6.156.189]:54428 helo=[192.168.1.110])
	by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1:DHE-RSA-AES256-SHA:256)
	id 1XgjIo-0004Iv-Xb (Exim 4.82_3-c0e5623)
	(return-path <jjl25@cam.ac.uk>); Wed, 22 Oct 2014 00:57:22 +0100
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
Mime-Version: 1.0 (1.0)
In-Reply-To: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
Message-Id: <9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
X-Mailer: iPad Mail (12A405)
From: Jon Ludlam <jjl25@cam.ac.uk>
Date: Wed, 22 Oct 2014 00:57:22 +0100
To: Sergio Visinoni <piffio@piffio.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
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="===============6907053696385547485=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6907053696385547485==
Content-Type: multipart/alternative;
	boundary=Apple-Mail-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194
Content-Transfer-Encoding: 7bit


--Apple-Mail-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: quoted-printable

This is probably as good a place as any to report these issues.

For issue #1, the cohttp library moves at a fast pace, and we need to upgrad=
e quite a few components simultaneously to support the new API. It's on the l=
ong list of things to do...

For issue #2, the log line you posted is probably a failure in the cleanup f=
ollowing the actual root cause. We can try to repro locally tomorrow, but it=
 may be worth taking a bugtool (http://support.citrix.com/article/CTX125372)=
 which could help diagnose it.

In the meantime, for a single host pool, you could just copy the unikernel d=
irectly onto the XenServer. Something like:

ssh root@xenserver mkdir /boot/guest
scp unikernel.xen root@xenserver:/boot/guest

And then on the xenserver itself:

xe vm-create name-label=3Dunikernel
xe vm-param-set uuid=3D<uuid> PV-kernel=3D/boot/guest/unikernel.xen

Then add VIFs/VBDs as necessary and start it.

Jon



Sent from my iPad

> On 22 Oct 2014, at 00:13, Sergio Visinoni <piffio@piffio.org> wrote:
>=20
> Hi all,
>=20
> First of all, sorry if this is not the right place for this post. Feel fre=
e to redirect me somewhere else if this is the case.
>=20
> I've been playing with MirageOS recently, and even if I've been hitting a b=
unch of issues - mostly related to the current "unstable"-ish status of the m=
irage-dev reposotiry - I finally managed to move forward an build both Unix p=
rocesses and Xen Unikernels, with a lot of support from both Anil and Dave t=
hrough GitHub.
>=20
> Still, a couple of issues are preventing me to be able to deploy "for real=
" a unikernel running Octopress that I've been building.
>=20
> 1st problem (workaround exists)
>=20
> When you have installed all the packages from mirage-dev in order to build=
 MirageOS 2.0, it's not possibe to build the xe-unikernel-upload module, due=
 to some incompatibilities between xen-api-client and the latest Cohttp. Sin=
ce the xen-api-client [1] doesn't seem to allow for issue reporting in GitHu=
b, I'm reporting here. The workaround I found has bin to build both xe and x=
e-unikernel-upload on my laptop with the mirage 1.2 modules installed, saved=
 the binaries in a safe location, and moved forward with mirage-dev.
>=20
>     # File "lib/xen_api.ml", line 40, characters 9-20:
>     # Error: Unbound module Cohttp.IO
>     # Command exited with code 2.
>=20
> Should I report this bug on a different list? If so, which one?
>=20
>=20
>=20
> 2nd problem (still unresolved):
>=20
> I've been succesfully deployng the generated unikernels on dev machines ru=
nning both XenServer 6.2 and Creedence. These servers are stand-alone (not i=
n a pool) and using only local storage.
> When I tried to deploy the same unikernels to a pre-production environment=
 (XenServer 6.2, in a pool, using shared iSCASI storage), I systematically g=
et the following error:
>=20
>     Uploading VDI containing unikernel
>     Caught: Ssl.Write_error(5), cleaning up
>     xe-unikernel-upload: internal error, uncaught exception:
>                      Ssl.Write_error(5)
>=20
>=20
> and on the XenServer logs I can see the following message:
>=20
> Oct 21 18:10:38 xenqadev1 xapi: [error|xenqadev1.segundamano.infra|2928922=
4 INET 0.0.0.0:80|VDI.import D:3985726b7fc7|xapi] Attach_helpers.with_vbds n=
ew VBD has leaked: OpaqueRef:0dc75aa7-fdef-630d-b5a8-2a059390ac2c
>=20
> Does anyone have any pointer in order for me to know where to start lookin=
g into? A redirect to a more appropriate mailing list would also be apprecia=
ted.
>=20
> Thanks in advance
> s
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--Apple-Mail-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194
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>This is probably as good a place as an=
y to report these issues.</div><div><br></div><div>For issue #1, the cohttp l=
ibrary moves at a fast pace, and we need to upgrade quite a few components s=
imultaneously to support the new API. It's on the long list of things to do.=
..</div><div><br></div><div>For issue #2, the log line you posted is probabl=
y a failure in the cleanup following the actual root cause. We can try to re=
pro locally tomorrow, but it may be worth taking a bugtool (<a href=3D"http:=
//support.citrix.com/article/CTX125372">http://support.citrix.com/article/CT=
X125372</a>) which could help diagnose it.</div><div><br></div><div>In the m=
eantime, for a single host pool, you could just copy the unikernel directly o=
nto the XenServer. Something like:</div><div><br></div><div>ssh root@xenserv=
er mkdir /boot/guest</div><div>scp unikernel.xen root@xenserver:/boot/guest<=
/div><div><br></div><div>And then on the xenserver itself:</div><div><br></d=
iv><div>xe vm-create name-label=3Dunikernel</div><div>xe vm-param-set uuid=3D=
&lt;uuid&gt; PV-kernel=3D/boot/guest/unikernel.xen</div><div><br></div><div>=
Then add VIFs/VBDs as necessary and start it.</div><div><br></div><div>Jon</=
div><div><br></div><div><br><br>Sent from my iPad</div><div><br>On 22 Oct 20=
14, at 00:13, Sergio Visinoni &lt;<a href=3D"mailto:piffio@piffio.org">piffi=
o@piffio.org</a>&gt; wrote:<br><br></div><blockquote type=3D"cite"><div><div=
 dir=3D"ltr">Hi all,<div><br></div><div>First of all, sorry if this is not t=
he right place for this post. Feel free to redirect me somewhere else if thi=
s is the case.</div><div><br></div><div>I've been playing with MirageOS rece=
ntly, and even if I've been hitting a bunch of issues - mostly related to th=
e current "unstable"-ish status of the mirage-dev reposotiry - I finally man=
aged to move forward an build both Unix processes and Xen Unikernels, with a=
 lot of support from both Anil and Dave through GitHub.</div><div><br></div>=
<div>Still, a couple of issues are preventing me to be able to deploy "for r=
eal" a unikernel running Octopress that I've been building.</div><div><br></=
div><div>1st problem (workaround exists)</div><div><br></div><div>When you h=
ave installed all the packages from mirage-dev in order to build MirageOS 2.=
0, it's not possibe to build the&nbsp;xe-unikernel-upload module, due to som=
e incompatibilities between xen-api-client and the latest Cohttp. Since the x=
en-api-client [1] doesn't seem to allow for issue reporting in GitHub, I'm r=
eporting here. The workaround I found has bin to build both xe and xe-uniker=
nel-upload on my laptop with the mirage 1.2 modules installed, saved the bin=
aries in a safe location, and moved forward with mirage-dev.</div><div><br><=
/div><div>&nbsp; &nbsp; # File "lib/<a href=3D"http://xen_api.ml">xen_api.ml=
</a>", line 40, characters 9-20:</div><div>&nbsp; &nbsp; # Error: Unbound mo=
dule Cohttp.IO</div><div>&nbsp; &nbsp; # Command exited with code 2.</div><d=
iv><br></div><div>Should I report this bug on a different list? If so, which=
 one?</div><div><br></div><div><br></div><div><br></div><div>2nd problem (st=
ill unresolved):</div><div><br></div><div>I've been succesfully deployng the=
 generated unikernels on dev machines running both XenServer 6.2 and Creeden=
ce. These servers are stand-alone (not in a pool) and using only local stora=
ge.</div><div>When I tried to deploy the same unikernels to a pre-production=
 environment (XenServer 6.2, in a pool, using shared iSCASI storage), I syst=
ematically get the following error:</div><div><br></div><div>&nbsp; &nbsp; U=
ploading VDI containing unikernel</div><div>&nbsp; &nbsp; Caught: Ssl.Write_=
error(5), cleaning up</div><div>&nbsp; &nbsp; xe-unikernel-upload: internal e=
rror, uncaught exception:</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ssl.Write_error(5)</div><div><br></div><=
div><br></div><div>and on the XenServer logs I can see the following message=
:</div><div><br></div><div><div>Oct 21 18:10:38 xenqadev1 xapi: [error|xenqa=
dev1.segundamano.infra|29289224 INET 0.0.0.0:80|VDI.import D:3985726b7fc7|xa=
pi] Attach_helpers.with_vbds new VBD has leaked: OpaqueRef:0dc75aa7-fdef-630=
d-b5a8-2a059390ac2c</div></div><div><br></div><div>Does anyone have any poin=
ter in order for me to know where to start looking into? A redirect to a mor=
e appropriate mailing list would also be appreciated.</div><div><br></div><d=
iv>Thanks in advance</div><div>s</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-945428D0-9AF4-4CC4-8BD6-6F0C6DE0C194--


--===============6907053696385547485==
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

--===============6907053696385547485==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 02:13:59 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 02:13: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 1XglQu-0000UQ-Kg; Wed, 22 Oct 2014 02:13:52 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <piffio@piffio.org>) id 1XglQt-0000UL-DM
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 02:13:51 +0000
Received: from [85.158.137.68:39238] by server-16.bemta-3.messagelabs.com id
	80/48-01431-ED217445; Wed, 22 Oct 2014 02:13:50 +0000
X-Env-Sender: piffio@piffio.org
X-Msg-Ref: server-4.tower-31.messagelabs.com!1413944029!11202845!1
X-Originating-IP: [209.85.217.177]
X-SpamReason: No, hits=0.7 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16381 invoked from network); 22 Oct 2014 02:13:49 -0000
Received: from mail-lb0-f177.google.com (HELO mail-lb0-f177.google.com)
	(209.85.217.177)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 02:13:49 -0000
Received: by mail-lb0-f177.google.com with SMTP id w7so2027005lbi.22
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 19:13:48 -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:content-type;
	bh=J0glN/ArY60s8c/ttMOSmp37w0eTcfFpEcEihNEV2tI=;
	b=PBVYcCoSD9LfeztAN3j6/+MbhU54s6awYiNbIIVC1iKx2QStfrTPAKSPAxgpachRvv
	D/wZX5EY65CNID2d4QDCrCIjpFSP8SJ1PU7HLs7FeMzfvq8aDb25DYVlsVSW8aJrKVVh
	3SKrpAhRPPSICuoc6CU0FqJf4ggSEpPkUHJPzuv99WhIdPb5CngIb3lE6A9jvshP2lIA
	eXK5ttoBFoYi8uRIHi0Jc5RqCa3RPrMvFLRoSr1LPng7kDzb5U3s7NAWAeDW077Si13a
	/4J0iTOMDH6LNcRgQJs1DTzcNsBvYzI08QJKb3StpQ9BLN2w7qySFHkcHG9nUm6AUq6n
	7nDQ==
X-Gm-Message-State: ALoCoQkPTpA+j+G4WqhUW86CVld9E9eLq/SuO4lBpYLpzugryz52pA5b+ybK7x2AC0U7TySZ/wxJ
MIME-Version: 1.0
X-Received: by 10.152.243.39 with SMTP id wv7mr37688558lac.48.1413944028516;
	Tue, 21 Oct 2014 19:13:48 -0700 (PDT)
Received: by 10.112.26.210 with HTTP; Tue, 21 Oct 2014 19:13:48 -0700 (PDT)
X-Originating-IP: [189.209.113.26]
In-Reply-To: <9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
Date: Tue, 21 Oct 2014 21:13:48 -0500
Message-ID: <CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
From: Sergio Visinoni <piffio@piffio.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="===============5888551338949926543=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5888551338949926543==
Content-Type: multipart/alternative; boundary=001a113433c88d68420505f97f4c

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

Hi Jon,

On 21 October 2014 18:57, Jon Ludlam <jjl25@cam.ac.uk> wrote:

> This is probably as good a place as any to report these issues.
>

This is good to know.


> For issue #1, the cohttp library moves at a fast pace, and we need to
> upgrade quite a few components simultaneously to support the new API. It's
> on the long list of things to do...
>

I see, and totally undestand. I'm completely new to oCaml and MirageOS, but
I'd like to be able to help out more in the future. So far I'm only
reporting bugs through multiple channels. If there is any "newcomers todo
list" or similar repository of all the outstanding issues where you could
use some help from the community, feel free to point me at it.

For issue #2, the log line you posted is probably a failure in the cleanup
> following the actual root cause. We can try to repro locally tomorrow, but
> it may be worth taking a bugtool (
> http://support.citrix.com/article/CTX125372) which could help diagnose it.
>

I see, thanks for clarifying. It's totally non trivial to understand XAPI
log messages for someone that is not familiar with the internals, that I've
just naively looked for "error" lines.
I've generated the report, and it's almost 57MB. Is there a way I can send
it to you without using the ML? I have both size and confidentiality issues
with doing so. I'm in CDT timezone, I will probably be in IRC/#mirage in
the afternoon CET. Feel free to contact me there for details.


>
> In the meantime, for a single host pool, you could just copy the unikernel
> directly onto the XenServer. Something like:
>
> ssh root@xenserver mkdir /boot/guest
> scp unikernel.xen root@xenserver:/boot/guest
>

Just to clarify: the single host pool scenario is working perfectly both in
6.2 (with latest patches) and Creedence beta 3.
The problem only shows up in a multi-host pool running 6.2 (hotfixes up to
SP1).

Thanks for your help
Best regards
s

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

<div dir=3D"ltr">Hi Jon,<div><div class=3D"gmail_extra"><br><div class=3D"g=
mail_quote">On 21 October 2014 18:57, Jon Ludlam <span dir=3D"ltr">&lt;<a h=
ref=3D"mailto:jjl25@cam.ac.uk" target=3D"_blank">jjl25@cam.ac.uk</a>&gt;</s=
pan> 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>This i=
s probably as good a place as any to report these issues.</div></div></bloc=
kquote><div><br></div><div>This is good to know.</div><div>=C2=A0</div><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>For issue #1, the cohttp =
library moves at a fast pace, and we need to upgrade quite a few components=
 simultaneously to support the new API. It&#39;s on the long list of things=
 to do...</div></div></blockquote><div><br></div><div>I see, and totally un=
destand. I&#39;m completely new to oCaml and MirageOS, but I&#39;d like to =
be able to help out more in the future. So far I&#39;m only reporting bugs =
through multiple channels. If there is any &quot;newcomers todo list&quot; =
or similar repository of all the outstanding issues where you could use som=
e help from the community, feel free to point me at it.</div><div><br></div=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><div dir=3D"auto"><div>For issue #2, the lo=
g line you posted is probably a failure in the cleanup following the actual=
 root cause. We can try to repro locally tomorrow, but it may be worth taki=
ng a bugtool (<a href=3D"http://support.citrix.com/article/CTX125372" targe=
t=3D"_blank">http://support.citrix.com/article/CTX125372</a>) which could h=
elp diagnose it.<br></div></div></blockquote><div><br></div><div>I see, tha=
nks for clarifying. It&#39;s totally non trivial to understand XAPI log mes=
sages for someone that is not familiar with the internals, that I&#39;ve ju=
st naively looked for &quot;error&quot; lines.</div><div>I&#39;ve generated=
 the report, and it&#39;s almost 57MB. Is there a way I can send it to you =
without using the ML? I have both size and confidentiality issues with doin=
g so. I&#39;m in CDT timezone, I will probably be in IRC/#mirage in the aft=
ernoon CET. Feel free to contact me there for details.</div><div>=C2=A0</di=
v><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></div><div><br></di=
v><div>In the meantime, for a single host pool, you could just copy the uni=
kernel directly onto the XenServer. Something like:</div><div><br></div><di=
v>ssh root@xenserver mkdir /boot/guest</div><div>scp unikernel.xen root@xen=
server:/boot/guest</div></div></blockquote><div><br></div><div>Just to clar=
ify: the single host pool scenario is working perfectly both in 6.2 (with l=
atest patches) and Creedence beta 3.</div><div>The problem only shows up in=
 a multi-host pool running 6.2 (hotfixes up to SP1).</div><div><br></div><d=
iv>Thanks for your help</div><div>Best regards</div><div>s</div><div><br></=
div></div></div></div></div>

--001a113433c88d68420505f97f4c--


--===============5888551338949926543==
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

--===============5888551338949926543==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 02:13:59 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 02:13: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 1XglQu-0000UQ-Kg; Wed, 22 Oct 2014 02:13:52 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <piffio@piffio.org>) id 1XglQt-0000UL-DM
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 02:13:51 +0000
Received: from [85.158.137.68:39238] by server-16.bemta-3.messagelabs.com id
	80/48-01431-ED217445; Wed, 22 Oct 2014 02:13:50 +0000
X-Env-Sender: piffio@piffio.org
X-Msg-Ref: server-4.tower-31.messagelabs.com!1413944029!11202845!1
X-Originating-IP: [209.85.217.177]
X-SpamReason: No, hits=0.7 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16381 invoked from network); 22 Oct 2014 02:13:49 -0000
Received: from mail-lb0-f177.google.com (HELO mail-lb0-f177.google.com)
	(209.85.217.177)
	by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 02:13:49 -0000
Received: by mail-lb0-f177.google.com with SMTP id w7so2027005lbi.22
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 21 Oct 2014 19:13:48 -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:content-type;
	bh=J0glN/ArY60s8c/ttMOSmp37w0eTcfFpEcEihNEV2tI=;
	b=PBVYcCoSD9LfeztAN3j6/+MbhU54s6awYiNbIIVC1iKx2QStfrTPAKSPAxgpachRvv
	D/wZX5EY65CNID2d4QDCrCIjpFSP8SJ1PU7HLs7FeMzfvq8aDb25DYVlsVSW8aJrKVVh
	3SKrpAhRPPSICuoc6CU0FqJf4ggSEpPkUHJPzuv99WhIdPb5CngIb3lE6A9jvshP2lIA
	eXK5ttoBFoYi8uRIHi0Jc5RqCa3RPrMvFLRoSr1LPng7kDzb5U3s7NAWAeDW077Si13a
	/4J0iTOMDH6LNcRgQJs1DTzcNsBvYzI08QJKb3StpQ9BLN2w7qySFHkcHG9nUm6AUq6n
	7nDQ==
X-Gm-Message-State: ALoCoQkPTpA+j+G4WqhUW86CVld9E9eLq/SuO4lBpYLpzugryz52pA5b+ybK7x2AC0U7TySZ/wxJ
MIME-Version: 1.0
X-Received: by 10.152.243.39 with SMTP id wv7mr37688558lac.48.1413944028516;
	Tue, 21 Oct 2014 19:13:48 -0700 (PDT)
Received: by 10.112.26.210 with HTTP; Tue, 21 Oct 2014 19:13:48 -0700 (PDT)
X-Originating-IP: [189.209.113.26]
In-Reply-To: <9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
Date: Tue, 21 Oct 2014 21:13:48 -0500
Message-ID: <CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
From: Sergio Visinoni <piffio@piffio.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="===============5888551338949926543=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5888551338949926543==
Content-Type: multipart/alternative; boundary=001a113433c88d68420505f97f4c

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

Hi Jon,

On 21 October 2014 18:57, Jon Ludlam <jjl25@cam.ac.uk> wrote:

> This is probably as good a place as any to report these issues.
>

This is good to know.


> For issue #1, the cohttp library moves at a fast pace, and we need to
> upgrade quite a few components simultaneously to support the new API. It's
> on the long list of things to do...
>

I see, and totally undestand. I'm completely new to oCaml and MirageOS, but
I'd like to be able to help out more in the future. So far I'm only
reporting bugs through multiple channels. If there is any "newcomers todo
list" or similar repository of all the outstanding issues where you could
use some help from the community, feel free to point me at it.

For issue #2, the log line you posted is probably a failure in the cleanup
> following the actual root cause. We can try to repro locally tomorrow, but
> it may be worth taking a bugtool (
> http://support.citrix.com/article/CTX125372) which could help diagnose it.
>

I see, thanks for clarifying. It's totally non trivial to understand XAPI
log messages for someone that is not familiar with the internals, that I've
just naively looked for "error" lines.
I've generated the report, and it's almost 57MB. Is there a way I can send
it to you without using the ML? I have both size and confidentiality issues
with doing so. I'm in CDT timezone, I will probably be in IRC/#mirage in
the afternoon CET. Feel free to contact me there for details.


>
> In the meantime, for a single host pool, you could just copy the unikernel
> directly onto the XenServer. Something like:
>
> ssh root@xenserver mkdir /boot/guest
> scp unikernel.xen root@xenserver:/boot/guest
>

Just to clarify: the single host pool scenario is working perfectly both in
6.2 (with latest patches) and Creedence beta 3.
The problem only shows up in a multi-host pool running 6.2 (hotfixes up to
SP1).

Thanks for your help
Best regards
s

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

<div dir=3D"ltr">Hi Jon,<div><div class=3D"gmail_extra"><br><div class=3D"g=
mail_quote">On 21 October 2014 18:57, Jon Ludlam <span dir=3D"ltr">&lt;<a h=
ref=3D"mailto:jjl25@cam.ac.uk" target=3D"_blank">jjl25@cam.ac.uk</a>&gt;</s=
pan> 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>This i=
s probably as good a place as any to report these issues.</div></div></bloc=
kquote><div><br></div><div>This is good to know.</div><div>=C2=A0</div><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>For issue #1, the cohttp =
library moves at a fast pace, and we need to upgrade quite a few components=
 simultaneously to support the new API. It&#39;s on the long list of things=
 to do...</div></div></blockquote><div><br></div><div>I see, and totally un=
destand. I&#39;m completely new to oCaml and MirageOS, but I&#39;d like to =
be able to help out more in the future. So far I&#39;m only reporting bugs =
through multiple channels. If there is any &quot;newcomers todo list&quot; =
or similar repository of all the outstanding issues where you could use som=
e help from the community, feel free to point me at it.</div><div><br></div=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><div dir=3D"auto"><div>For issue #2, the lo=
g line you posted is probably a failure in the cleanup following the actual=
 root cause. We can try to repro locally tomorrow, but it may be worth taki=
ng a bugtool (<a href=3D"http://support.citrix.com/article/CTX125372" targe=
t=3D"_blank">http://support.citrix.com/article/CTX125372</a>) which could h=
elp diagnose it.<br></div></div></blockquote><div><br></div><div>I see, tha=
nks for clarifying. It&#39;s totally non trivial to understand XAPI log mes=
sages for someone that is not familiar with the internals, that I&#39;ve ju=
st naively looked for &quot;error&quot; lines.</div><div>I&#39;ve generated=
 the report, and it&#39;s almost 57MB. Is there a way I can send it to you =
without using the ML? I have both size and confidentiality issues with doin=
g so. I&#39;m in CDT timezone, I will probably be in IRC/#mirage in the aft=
ernoon CET. Feel free to contact me there for details.</div><div>=C2=A0</di=
v><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></div><div><br></di=
v><div>In the meantime, for a single host pool, you could just copy the uni=
kernel directly onto the XenServer. Something like:</div><div><br></div><di=
v>ssh root@xenserver mkdir /boot/guest</div><div>scp unikernel.xen root@xen=
server:/boot/guest</div></div></blockquote><div><br></div><div>Just to clar=
ify: the single host pool scenario is working perfectly both in 6.2 (with l=
atest patches) and Creedence beta 3.</div><div>The problem only shows up in=
 a multi-host pool running 6.2 (hotfixes up to SP1).</div><div><br></div><d=
iv>Thanks for your help</div><div>Best regards</div><div>s</div><div><br></=
div></div></div></div></div>

--001a113433c88d68420505f97f4c--


--===============5888551338949926543==
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

--===============5888551338949926543==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 13:03:41 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:03: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 1XgvZf-0001bH-91; Wed, 22 Oct 2014 13:03:35 +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 1XgvZe-0001bC-ES
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:03:34 +0000
Received: from [193.109.254.147:53667] by server-16.bemta-14.messagelabs.com
	id 6D/14-16990-52BA7445; Wed, 22 Oct 2014 13:03:33 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-6.tower-27.messagelabs.com!1413983011!11813913!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13054 invoked from network); 22 Oct 2014 13:03:32 -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 Oct 2014 13:03:32 -0000
Received: from [192.168.15.18] (no-dns-yet.demon.co.uk [62.49.66.12]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 62f24705;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 22 Oct 2014 14:06:16 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
Date: Wed, 22 Oct 2014 14:03:26 +0100
Message-Id: <6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

CCing the devel list so everyone knows how this works.

If you have a Linux box with Docker installed, you can clone the
precise environment by:

$ sudo docker pull avsm/docker

This gives you access to a number of 'tags' (which are predefined
builds of OPAM/OCaml on various filesystems). Full list of tags are:

https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/

You can use a tag directly via:

$ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 <cmd>

The scripts referenced below already do this, and are all in:
https://github.com/mirage/is-mirage-broken

The cron.sh is the one that's run regularly and sync with the
Docker registry and builds every combination.

To recreate one of them, just run build.sh directly; e.g.

./build.sh ubuntu-trusty-4.01.0 mirage-skeleton

If you already have a suitable environment with OPAM and OCaml
installed system-wide, you can just run the shell scripts in
is-mirage-broken/scripts/ directly to fix them.

-anil

On 22 Oct 2014, at 13:55, Nik Sultana <ns441@cam.ac.uk> wrote:

> Hi Anil, is this something I can try locally to see if the modified scrip=
t works, or do I need to run the script on a build server somewhere? Feel f=
ree to point me to any "BUILD" notes i could use for this, in case I can te=
st it and make a PR, if it's still an open issue.
> Best,
> Nik
> =

> On 2014-10-21 16:18, Richard Mortier wrote:
>> if you read the docs i quoted, that's exactly as documented:
>>>>>>> 	=95 The -e setting shall be ignored when executing the compound li=
st
>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>> beginning with the ! reserved word, or any command of an AND-OR list
>>>>>>> other than the last.
>> it might be rather counter-intuitive and of dubious merit, but it's
>> the documented behaviour...
>> On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:
>>> I think Richard might be right. The semantics of && seems to be a bit
>>> counterintuitive in this case. Consider this script:
>>> #!/bin/sh
>>> set -e #line1
>>> false && echo hello #line2
>>> echo hello2
>>> false #line4
>>> echo world
>>> It gives the output:
>>> hello2
>>> which is odd, because we expect the script to be terminated at line2 --
>>> the line "echo hello2" should never be reached. Instead, the script
>>> continues on and is only terminated at line4.
>>> Just to test the effect of "set -e", commenting line1 and running the
>>> script gives the output:
>>> hello2
>>> world
>>> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
>>>> The && should catch that failure.  Consider:
>>>> #!/bin/sh -ex
>>>> exit 1 && echo hello
>>>> echo world
>>>> Executing that:
>>>> $ ./test.sh
>>>> + exit 1
>>>> If the make depend fails, I'd expect the && to fail, and the resulting
>>>> non-zero exit code to cause the whole shell to exit.
>>>> -anil
>>>> On 21 Oct 2014, at 15:37, Richard Mortier
>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>> but isn't it the "make depend" step that's failing as far as the
>>>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it
>>>>> won't exit according to point 2. below (-e is ignored if it's any
>>>>> command of an AND-OR list other than the last).
>>>>> with -e on, seems expected practice is to issue the commands
>>>>> individually i.e.
>>>>> make depend
>>>>> make configure
>>>>> make build
>>>>> ...and let the -e fail them if required. (assuming you don't want to
>>>>> accumulate info about failures of depend/configure on other platforms
>>>>> before bailing out.)
>>>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>>> It's here:
>>>>>> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirag=
e-www
>>>>>> And the `make` invocations do seem to exit with a non-zero exit code.
>>>>>> -ani
>>>>>> On 21 Oct 2014, at 15:02, Richard Mortier
>>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>>>> not sure precisely where the script being executed actually is but
>>>>>>> could it be because it's a command in a multi-command pipeline?
>>>>>>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02=
.html
>>>>>>> -e
>>>>>>> When this option is on, when any command fails (for any of the
>>>>>>> reasons listed in Consequences of Shell Errors or by returning an
>>>>>>> exit status greater than zero), the shell immediately shall exit
>>>>>>> with the following exceptions:
>>>>>>> 	=95 The failure of any individual command in a multi-command pipel=
ine
>>>>>>> shall not cause the shell to exit. Only the failure of the pipeline
>>>>>>> itself shall be considered.
>>>>>>> 	=95 The -e setting shall be ignored when executing the compound li=
st
>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>> beginning with the ! reserved word, or any command of an AND-OR list
>>>>>>> other than the last.
>>>>>>> 	=95 If the exit status of a compound command other than a subshell
>>>>>>> command was the result of a failure while -e was being ignored, then
>>>>>>> -e shall not apply to this command.
>>>>>>> This requirement applies to the shell environment and each subshell
>>>>>>> environment separately. For example, in:
>>>>>>> set -e; (false; echo one) | cat; echo two
>>>>>>> the false command causes the subshell to exit without executing echo
>>>>>>> one; however, echo two is executed because the exit status of the
>>>>>>> pipeline (false; echo one) | cat is zero.
>>>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>>>>> Great!  For the rest of the list, it looks like mirage-dev is
>>>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty),
>>>>>>>> but not with the internal one (CentOS builds):
>>>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>>>>>> This is probably due to our excessive use of depopts; I will
>>>>>>>> replace those with explicit virtual packages (e.g. dns-mirage) that
>>>>>>>> encode all the dependencies they need.
>>>>>>>> More mysteriously, the `set -e` in the shell script isn't causing
>>>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always
>>>>>>>> printed.  We need a is-mirage-working-working script to fix our
>>>>>>>> is-mirage-working script :-)
>>>>>>>> -anil
>>>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>> wrote:
>>>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker image
>>>>>>>>> with 4.01.
>>>>>>>>> Luke
>>>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>
>>>>>>>>> wrote:
>>>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>> Hi,
>>>>>>>>>> I tried to build mirage-www as per
>>>>>>>>>> http://openmirage.org/wiki/mirage-www
>>>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>>>>>> (success)
>>>>>>>>>> $ make depend
>>>>>>>>>> (success*)
>>>>>>>>>> $ make
>>>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs
>>>>>>>>>> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,i=
o-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types=
,mirage-types.lwt,tcpip.stack-socket
>>>>>>>>>> -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal"
>>>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
>>>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package lwt
>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -package
>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package lwt
>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -package
>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>>>>>> Error: Unbound module OS
>>>>>>>>>> Command exited with code 2.
>>>>>>>>>> make: *** [main.native] Error 10
>>>>>>>>>> To try to ensure that this was reproducible I also tried starting
>>>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and
>>>>>>>>>> got the same error. However, I had to change the ounit package
>>>>>>>>>> URL because forge.ocamlcore.org is apparently down.
>>>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the
>>>>>>>>>> "configure" / "make depend" step because it was apparently
>>>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the
>>>>>>>>>> problem?
>>>>>>>>> Hi Luke,
>>>>>>>>> Thanks for the bug report, and bonus points for trying the Docker
>>>>>>>>> repository out.  I've fixed the underlying issue that was causing
>>>>>>>>> the unbound OS module to show up -- it's because of some recent
>>>>>>>>> shuffling of dependencies in console handling, and this resulted
>>>>>>>>> in mirage-unix no longer being implicitly depended on.  I've
>>>>>>>>> modified the mirage tool to explicitly add the dependency in.
>>>>>>>>> In order to help keep things working across the increasing number
>>>>>>>>> of distributions, I've also created a couple of cron jobs that
>>>>>>>>> automatically build things and publish the logs
>>>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml
>>>>>>>>> 4.01 and 4.02:
>>>>>>>>> https://registry.hub.docker.com/u/avsm/docker-opam/builds_history=
/15669/
>>>>>>>>> https://github.com/avsm/docker-opam has the sources
>>>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob
>>>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to the
>>>>>>>>> logs/ directory in this repo.  When that's completed running (and
>>>>>>>>> we've fixed the build breakages!), it should be easy to get it on
>>>>>>>>> the website as a badge so we can see the status of repos at a
>>>>>>>>> glance.
>>>>>>>>> About to hop on a flight now, so I've left the cron job running
>>>>>>>>> and will check it out tomorrow.  If anyone else can test out the
>>>>>>>>> Docker images in the meanwhile, feel free...
>>>>>>>>> -anil
>>>>>>>>> _______________________________________________
>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-dev=
el
>>>>>>>> _______________________________________________
>>>>>>>> MirageOS-devel mailing list
>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>>>> --
>>>>>>> Cheers,
>>>>>>> R.
>>>>>>> _______________________________________________
>>>>>>> MirageOS-devel mailing list
>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>> --
>>>>> Cheers,
>>>>> R.
>>>>> _______________________________________________
>>>>> 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
> =



_______________________________________________
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 Oct 22 13:03:41 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:03: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 1XgvZf-0001bH-91; Wed, 22 Oct 2014 13:03:35 +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 1XgvZe-0001bC-ES
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:03:34 +0000
Received: from [193.109.254.147:53667] by server-16.bemta-14.messagelabs.com
	id 6D/14-16990-52BA7445; Wed, 22 Oct 2014 13:03:33 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-6.tower-27.messagelabs.com!1413983011!11813913!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13054 invoked from network); 22 Oct 2014 13:03:32 -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 Oct 2014 13:03:32 -0000
Received: from [192.168.15.18] (no-dns-yet.demon.co.uk [62.49.66.12]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 62f24705;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 22 Oct 2014 14:06:16 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
Date: Wed, 22 Oct 2014 14:03:26 +0100
Message-Id: <6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

CCing the devel list so everyone knows how this works.

If you have a Linux box with Docker installed, you can clone the
precise environment by:

$ sudo docker pull avsm/docker

This gives you access to a number of 'tags' (which are predefined
builds of OPAM/OCaml on various filesystems). Full list of tags are:

https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/

You can use a tag directly via:

$ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 <cmd>

The scripts referenced below already do this, and are all in:
https://github.com/mirage/is-mirage-broken

The cron.sh is the one that's run regularly and sync with the
Docker registry and builds every combination.

To recreate one of them, just run build.sh directly; e.g.

./build.sh ubuntu-trusty-4.01.0 mirage-skeleton

If you already have a suitable environment with OPAM and OCaml
installed system-wide, you can just run the shell scripts in
is-mirage-broken/scripts/ directly to fix them.

-anil

On 22 Oct 2014, at 13:55, Nik Sultana <ns441@cam.ac.uk> wrote:

> Hi Anil, is this something I can try locally to see if the modified scrip=
t works, or do I need to run the script on a build server somewhere? Feel f=
ree to point me to any "BUILD" notes i could use for this, in case I can te=
st it and make a PR, if it's still an open issue.
> Best,
> Nik
> =

> On 2014-10-21 16:18, Richard Mortier wrote:
>> if you read the docs i quoted, that's exactly as documented:
>>>>>>> 	=95 The -e setting shall be ignored when executing the compound li=
st
>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>> beginning with the ! reserved word, or any command of an AND-OR list
>>>>>>> other than the last.
>> it might be rather counter-intuitive and of dubious merit, but it's
>> the documented behaviour...
>> On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:
>>> I think Richard might be right. The semantics of && seems to be a bit
>>> counterintuitive in this case. Consider this script:
>>> #!/bin/sh
>>> set -e #line1
>>> false && echo hello #line2
>>> echo hello2
>>> false #line4
>>> echo world
>>> It gives the output:
>>> hello2
>>> which is odd, because we expect the script to be terminated at line2 --
>>> the line "echo hello2" should never be reached. Instead, the script
>>> continues on and is only terminated at line4.
>>> Just to test the effect of "set -e", commenting line1 and running the
>>> script gives the output:
>>> hello2
>>> world
>>> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
>>>> The && should catch that failure.  Consider:
>>>> #!/bin/sh -ex
>>>> exit 1 && echo hello
>>>> echo world
>>>> Executing that:
>>>> $ ./test.sh
>>>> + exit 1
>>>> If the make depend fails, I'd expect the && to fail, and the resulting
>>>> non-zero exit code to cause the whole shell to exit.
>>>> -anil
>>>> On 21 Oct 2014, at 15:37, Richard Mortier
>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>> but isn't it the "make depend" step that's failing as far as the
>>>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it
>>>>> won't exit according to point 2. below (-e is ignored if it's any
>>>>> command of an AND-OR list other than the last).
>>>>> with -e on, seems expected practice is to issue the commands
>>>>> individually i.e.
>>>>> make depend
>>>>> make configure
>>>>> make build
>>>>> ...and let the -e fail them if required. (assuming you don't want to
>>>>> accumulate info about failures of depend/configure on other platforms
>>>>> before bailing out.)
>>>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>>> It's here:
>>>>>> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirag=
e-www
>>>>>> And the `make` invocations do seem to exit with a non-zero exit code.
>>>>>> -ani
>>>>>> On 21 Oct 2014, at 15:02, Richard Mortier
>>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>>>> not sure precisely where the script being executed actually is but
>>>>>>> could it be because it's a command in a multi-command pipeline?
>>>>>>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02=
.html
>>>>>>> -e
>>>>>>> When this option is on, when any command fails (for any of the
>>>>>>> reasons listed in Consequences of Shell Errors or by returning an
>>>>>>> exit status greater than zero), the shell immediately shall exit
>>>>>>> with the following exceptions:
>>>>>>> 	=95 The failure of any individual command in a multi-command pipel=
ine
>>>>>>> shall not cause the shell to exit. Only the failure of the pipeline
>>>>>>> itself shall be considered.
>>>>>>> 	=95 The -e setting shall be ignored when executing the compound li=
st
>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>> beginning with the ! reserved word, or any command of an AND-OR list
>>>>>>> other than the last.
>>>>>>> 	=95 If the exit status of a compound command other than a subshell
>>>>>>> command was the result of a failure while -e was being ignored, then
>>>>>>> -e shall not apply to this command.
>>>>>>> This requirement applies to the shell environment and each subshell
>>>>>>> environment separately. For example, in:
>>>>>>> set -e; (false; echo one) | cat; echo two
>>>>>>> the false command causes the subshell to exit without executing echo
>>>>>>> one; however, echo two is executed because the exit status of the
>>>>>>> pipeline (false; echo one) | cat is zero.
>>>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>>>>> Great!  For the rest of the list, it looks like mirage-dev is
>>>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty),
>>>>>>>> but not with the internal one (CentOS builds):
>>>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>>>>>> This is probably due to our excessive use of depopts; I will
>>>>>>>> replace those with explicit virtual packages (e.g. dns-mirage) that
>>>>>>>> encode all the dependencies they need.
>>>>>>>> More mysteriously, the `set -e` in the shell script isn't causing
>>>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always
>>>>>>>> printed.  We need a is-mirage-working-working script to fix our
>>>>>>>> is-mirage-working script :-)
>>>>>>>> -anil
>>>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>> wrote:
>>>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker image
>>>>>>>>> with 4.01.
>>>>>>>>> Luke
>>>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>
>>>>>>>>> wrote:
>>>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>> Hi,
>>>>>>>>>> I tried to build mirage-www as per
>>>>>>>>>> http://openmirage.org/wiki/mirage-www
>>>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>>>>>> (success)
>>>>>>>>>> $ make depend
>>>>>>>>>> (success*)
>>>>>>>>>> $ make
>>>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs
>>>>>>>>>> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,i=
o-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types=
,mirage-types.lwt,tcpip.stack-socket
>>>>>>>>>> -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal"
>>>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
>>>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package lwt
>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -package
>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package lwt
>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -package
>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>>>>>> Error: Unbound module OS
>>>>>>>>>> Command exited with code 2.
>>>>>>>>>> make: *** [main.native] Error 10
>>>>>>>>>> To try to ensure that this was reproducible I also tried starting
>>>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image and
>>>>>>>>>> got the same error. However, I had to change the ounit package
>>>>>>>>>> URL because forge.ocamlcore.org is apparently down.
>>>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the
>>>>>>>>>> "configure" / "make depend" step because it was apparently
>>>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the
>>>>>>>>>> problem?
>>>>>>>>> Hi Luke,
>>>>>>>>> Thanks for the bug report, and bonus points for trying the Docker
>>>>>>>>> repository out.  I've fixed the underlying issue that was causing
>>>>>>>>> the unbound OS module to show up -- it's because of some recent
>>>>>>>>> shuffling of dependencies in console handling, and this resulted
>>>>>>>>> in mirage-unix no longer being implicitly depended on.  I've
>>>>>>>>> modified the mirage tool to explicitly add the dependency in.
>>>>>>>>> In order to help keep things working across the increasing number
>>>>>>>>> of distributions, I've also created a couple of cron jobs that
>>>>>>>>> automatically build things and publish the logs
>>>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OCaml
>>>>>>>>> 4.01 and 4.02:
>>>>>>>>> https://registry.hub.docker.com/u/avsm/docker-opam/builds_history=
/15669/
>>>>>>>>> https://github.com/avsm/docker-opam has the sources
>>>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob
>>>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to the
>>>>>>>>> logs/ directory in this repo.  When that's completed running (and
>>>>>>>>> we've fixed the build breakages!), it should be easy to get it on
>>>>>>>>> the website as a badge so we can see the status of repos at a
>>>>>>>>> glance.
>>>>>>>>> About to hop on a flight now, so I've left the cron job running
>>>>>>>>> and will check it out tomorrow.  If anyone else can test out the
>>>>>>>>> Docker images in the meanwhile, feel free...
>>>>>>>>> -anil
>>>>>>>>> _______________________________________________
>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-dev=
el
>>>>>>>> _______________________________________________
>>>>>>>> MirageOS-devel mailing list
>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>>>> --
>>>>>>> Cheers,
>>>>>>> R.
>>>>>>> _______________________________________________
>>>>>>> MirageOS-devel mailing list
>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>>>> --
>>>>> Cheers,
>>>>> R.
>>>>> _______________________________________________
>>>>> 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
> =



_______________________________________________
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 Oct 22 13:09:56 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:09: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 1Xgvfo-0002HQ-1r; Wed, 22 Oct 2014 13:09:56 +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 1Xgvfm-0002Gk-I3
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:09:54 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	6A/A8-03246-1ACA7445; Wed, 22 Oct 2014 13:09:53 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-2.tower-31.messagelabs.com!1413983392!10875824!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12582 invoked from network); 22 Oct 2014 13:09:53 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-2.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 13:09:53 -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=8576 helo=[10.80.3.75])
	by ppsw-52.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Xgvfk-0008CV-Et (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <jjl25@cam.ac.uk>); Wed, 22 Oct 2014 14:09:52 +0100
Message-ID: <5447AC9F.10800@cam.ac.uk>
Date: Wed, 22 Oct 2014 14:09:51 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
In-Reply-To: <CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="===============0192848477775028245=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

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

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

On 22/10/14 03:13, Sergio Visinoni wrote:

>     For issue #2, the log line you posted is probably a failure in the
>     cleanup following the actual root cause. We can try to repro
>     locally tomorrow, but it may be worth taking a bugtool
>     (http://support.citrix.com/article/CTX125372) which could help
>     diagnose it.
>
>
> I see, thanks for clarifying. It's totally non trivial to understand
> XAPI log messages for someone that is not familiar with the internals,
> that I've just naively looked for "error" lines.
> I've generated the report, and it's almost 57MB. Is there a way I can
> send it to you without using the ML? I have both size and
> confidentiality issues with doing so. I'm in CDT timezone, I will
> probably be in IRC/#mirage in the afternoon CET. Feel free to contact
> me there for details.
OK, will try to be around later.
>  
>
>
>     In the meantime, for a single host pool, you could just copy the
>     unikernel directly onto the XenServer. Something like:
>
>     ssh root@xenserver mkdir /boot/guest
>     scp unikernel.xen root@xenserver:/boot/guest
>
>
> Just to clarify: the single host pool scenario is working perfectly
> both in 6.2 (with latest patches) and Creedence beta 3.
> The problem only shows up in a multi-host pool running 6.2 (hotfixes
> up to SP1).
>

Apologies, I misunderstood. The workaround will be fine in a pool so
long as you copy the kernel onto each host into /boot/guest/.

We'll try to repro today to see what the problem may be.

Jon


--------------020108010101080202020206
Content-Type: text/html; charset=windows-1252
Content-Length: 3875
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">
    <div class=3D"moz-cite-prefix">On 22/10/14 03:13, Sergio Visinoni
      wrote:<br>
    </div>
    <br>
    <blockquote
cite=3D"mid:CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div class=3D"gmail_extra">
            <div class=3D"gmail_quote">
              <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>For issue #2, the log line you posted is probably
                    a failure in the cleanup following the actual root
                    cause. We can try to repro locally tomorrow, but it
                    may be worth taking a bugtool (<a
                      moz-do-not-send=3D"true"
                      href=3D"http://support.citrix.com/article/CTX125372"
                      target=3D"_blank">http://support.citrix.com/article/CTX125372</a>)
                    which could help diagnose it.<br>
                  </div>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div>I see, thanks for clarifying. It's totally non
                trivial to understand XAPI log messages for someone that
                is not familiar with the internals, that I've just
                naively looked for "error" lines.</div>
              <div>I've generated the report, and it's almost 57MB. Is
                there a way I can send it to you without using the ML=3F I
                have both size and confidentiality issues with doing so.
                I'm in CDT timezone, I will probably be in IRC/#mirage
                in the afternoon CET. Feel free to contact me there for
                details.</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    OK, will try to be around later.<br>
    <blockquote
cite=3D"mid:CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div class=3D"gmail_extra">
            <div class=3D"gmail_quote">
              <div>=A0</div>
              <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><br>
                  </div>
                  <div>In the meantime, for a single host pool, you
                    could just copy the unikernel directly onto the
                    XenServer. Something like:</div>
                  <div><br>
                  </div>
                  <div>ssh root@xenserver mkdir /boot/guest</div>
                  <div>scp unikernel.xen root@xenserver:/boot/guest</div>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div>Just to clarify: the single host pool scenario is
                working perfectly both in 6.2 (with latest patches) and
                Creedence beta 3.</div>
              <div>The problem only shows up in a multi-host pool
                running 6.2 (hotfixes up to SP1).</div>
              <div><br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Apologies, I misunderstood. The workaround will be fine in a pool so
    long as you copy the kernel onto each host into /boot/guest/.<br>
    <br>
    We'll try to repro today to see what the problem may be.<br>
    <br>
    Jon<br>
    <br>
  </body>
</html>

--------------020108010101080202020206--


--===============0192848477775028245==
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

--===============0192848477775028245==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 13:09:56 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:09: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 1Xgvfo-0002HQ-1r; Wed, 22 Oct 2014 13:09:56 +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 1Xgvfm-0002Gk-I3
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:09:54 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	6A/A8-03246-1ACA7445; Wed, 22 Oct 2014 13:09:53 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-2.tower-31.messagelabs.com!1413983392!10875824!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12582 invoked from network); 22 Oct 2014 13:09:53 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-2.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 13:09:53 -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=8576 helo=[10.80.3.75])
	by ppsw-52.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Xgvfk-0008CV-Et (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <jjl25@cam.ac.uk>); Wed, 22 Oct 2014 14:09:52 +0100
Message-ID: <5447AC9F.10800@cam.ac.uk>
Date: Wed, 22 Oct 2014 14:09:51 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
In-Reply-To: <CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="===============0192848477775028245=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

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

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

On 22/10/14 03:13, Sergio Visinoni wrote:

>     For issue #2, the log line you posted is probably a failure in the
>     cleanup following the actual root cause. We can try to repro
>     locally tomorrow, but it may be worth taking a bugtool
>     (http://support.citrix.com/article/CTX125372) which could help
>     diagnose it.
>
>
> I see, thanks for clarifying. It's totally non trivial to understand
> XAPI log messages for someone that is not familiar with the internals,
> that I've just naively looked for "error" lines.
> I've generated the report, and it's almost 57MB. Is there a way I can
> send it to you without using the ML? I have both size and
> confidentiality issues with doing so. I'm in CDT timezone, I will
> probably be in IRC/#mirage in the afternoon CET. Feel free to contact
> me there for details.
OK, will try to be around later.
>  
>
>
>     In the meantime, for a single host pool, you could just copy the
>     unikernel directly onto the XenServer. Something like:
>
>     ssh root@xenserver mkdir /boot/guest
>     scp unikernel.xen root@xenserver:/boot/guest
>
>
> Just to clarify: the single host pool scenario is working perfectly
> both in 6.2 (with latest patches) and Creedence beta 3.
> The problem only shows up in a multi-host pool running 6.2 (hotfixes
> up to SP1).
>

Apologies, I misunderstood. The workaround will be fine in a pool so
long as you copy the kernel onto each host into /boot/guest/.

We'll try to repro today to see what the problem may be.

Jon


--------------020108010101080202020206
Content-Type: text/html; charset=windows-1252
Content-Length: 3875
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">
    <div class=3D"moz-cite-prefix">On 22/10/14 03:13, Sergio Visinoni
      wrote:<br>
    </div>
    <br>
    <blockquote
cite=3D"mid:CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div class=3D"gmail_extra">
            <div class=3D"gmail_quote">
              <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>For issue #2, the log line you posted is probably
                    a failure in the cleanup following the actual root
                    cause. We can try to repro locally tomorrow, but it
                    may be worth taking a bugtool (<a
                      moz-do-not-send=3D"true"
                      href=3D"http://support.citrix.com/article/CTX125372"
                      target=3D"_blank">http://support.citrix.com/article/CTX125372</a>)
                    which could help diagnose it.<br>
                  </div>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div>I see, thanks for clarifying. It's totally non
                trivial to understand XAPI log messages for someone that
                is not familiar with the internals, that I've just
                naively looked for "error" lines.</div>
              <div>I've generated the report, and it's almost 57MB. Is
                there a way I can send it to you without using the ML=3F I
                have both size and confidentiality issues with doing so.
                I'm in CDT timezone, I will probably be in IRC/#mirage
                in the afternoon CET. Feel free to contact me there for
                details.</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    OK, will try to be around later.<br>
    <blockquote
cite=3D"mid:CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div class=3D"gmail_extra">
            <div class=3D"gmail_quote">
              <div>=A0</div>
              <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><br>
                  </div>
                  <div>In the meantime, for a single host pool, you
                    could just copy the unikernel directly onto the
                    XenServer. Something like:</div>
                  <div><br>
                  </div>
                  <div>ssh root@xenserver mkdir /boot/guest</div>
                  <div>scp unikernel.xen root@xenserver:/boot/guest</div>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div>Just to clarify: the single host pool scenario is
                working perfectly both in 6.2 (with latest patches) and
                Creedence beta 3.</div>
              <div>The problem only shows up in a multi-host pool
                running 6.2 (hotfixes up to SP1).</div>
              <div><br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Apologies, I misunderstood. The workaround will be fine in a pool so
    long as you copy the kernel onto each host into /boot/guest/.<br>
    <br>
    We'll try to repro today to see what the problem may be.<br>
    <br>
    Jon<br>
    <br>
  </body>
</html>

--------------020108010101080202020206--


--===============0192848477775028245==
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

--===============0192848477775028245==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 13:13:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:13: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 1XgvjN-0002vn-7o; Wed, 22 Oct 2014 13:13:37 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Dave.Scott@citrix.com>) id 1XgvjL-0002vW-VG
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:13:36 +0000
Received: from [85.158.137.68] by server-11.bemta-3.messagelabs.com id
	52/95-02834-F7DA7445; Wed, 22 Oct 2014 13:13:35 +0000
X-Env-Sender: Dave.Scott@citrix.com
X-Msg-Ref: server-9.tower-31.messagelabs.com!1413983614!7157262!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14883 invoked from network); 22 Oct 2014 13:13:34 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 13:13:34 -0000
X-IronPort-AV: E=Sophos;i="5.04,769,1406592000"; d="scan'208";a="26162768"
From: Dave Scott <Dave.Scott@citrix.com>
To: Jon Ludlam <jjl25@cam.ac.uk>
Thread-Topic: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
Thread-Index: AQHP7Z3cZ1xsvzAfGk2ZkF8okwF7hZw79iqAgAABCYA=
Date: Wed, 22 Oct 2014 13:13:33 +0000
Message-ID: <B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
	<5447AC9F.10800@cam.ac.uk>
In-Reply-To: <5447AC9F.10800@cam.ac.uk>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <730E0D6C8C0BBD48B141C88F98329834@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 22 Oct 2014, at 14:09, Jon Ludlam <jjl25@cam.ac.uk> wrote:
> =

> On 22/10/14 03:13, Sergio Visinoni wrote:
> =

>> For issue #2, the log line you posted is probably a failure in the clean=
up following the actual root cause. We can try to repro locally tomorrow, b=
ut it may be worth taking a bugtool (http://support.citrix.com/article/CTX1=
25372) which could help diagnose it.
>> =

>> I see, thanks for clarifying. It's totally non trivial to understand XAP=
I log messages for someone that is not familiar with the internals, that I'=
ve just naively looked for "error" lines.
>> I've generated the report, and it's almost 57MB. Is there a way I can se=
nd it to you without using the ML? I have both size and confidentiality iss=
ues with doing so. I'm in CDT timezone, I will probably be in IRC/#mirage i=
n the afternoon CET. Feel free to contact me there for details.
> OK, will try to be around later.
>>  =

>> =

>> In the meantime, for a single host pool, you could just copy the unikern=
el directly onto the XenServer. Something like:
>> =

>> ssh root@xenserver mkdir /boot/guest
>> scp unikernel.xen root@xenserver:/boot/guest
>> =

>> Just to clarify: the single host pool scenario is working perfectly both=
 in 6.2 (with latest patches) and Creedence beta 3.
>> The problem only shows up in a multi-host pool running 6.2 (hotfixes up =
to SP1).
>> =

> =

> Apologies, I misunderstood. The workaround will be fine in a pool so long=
 as you copy the kernel onto each host into /boot/guest/.
> =

> We'll try to repro today to see what the problem may be.

>From the description of the symptom (works single host but not in a pool) m=
y guess would be that xe-unikernel-upload is failing to respond to an HTTP =
redirect from xapi.

Perhaps rather than looking at the logs, it would be better to run somethin=
g like

  strace -s 1000 xe-unikernel-upload =85

=97 this should capture the network traffic. Or use plain http and capture =
with tcpdump/wireshark.

Cheers,
Dave
_______________________________________________
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 Oct 22 13:13:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:13: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 1XgvjN-0002vn-7o; Wed, 22 Oct 2014 13:13:37 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Dave.Scott@citrix.com>) id 1XgvjL-0002vW-VG
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:13:36 +0000
Received: from [85.158.137.68] by server-11.bemta-3.messagelabs.com id
	52/95-02834-F7DA7445; Wed, 22 Oct 2014 13:13:35 +0000
X-Env-Sender: Dave.Scott@citrix.com
X-Msg-Ref: server-9.tower-31.messagelabs.com!1413983614!7157262!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14883 invoked from network); 22 Oct 2014 13:13:34 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 13:13:34 -0000
X-IronPort-AV: E=Sophos;i="5.04,769,1406592000"; d="scan'208";a="26162768"
From: Dave Scott <Dave.Scott@citrix.com>
To: Jon Ludlam <jjl25@cam.ac.uk>
Thread-Topic: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
Thread-Index: AQHP7Z3cZ1xsvzAfGk2ZkF8okwF7hZw79iqAgAABCYA=
Date: Wed, 22 Oct 2014 13:13:33 +0000
Message-ID: <B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
	<5447AC9F.10800@cam.ac.uk>
In-Reply-To: <5447AC9F.10800@cam.ac.uk>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <730E0D6C8C0BBD48B141C88F98329834@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 22 Oct 2014, at 14:09, Jon Ludlam <jjl25@cam.ac.uk> wrote:
> =

> On 22/10/14 03:13, Sergio Visinoni wrote:
> =

>> For issue #2, the log line you posted is probably a failure in the clean=
up following the actual root cause. We can try to repro locally tomorrow, b=
ut it may be worth taking a bugtool (http://support.citrix.com/article/CTX1=
25372) which could help diagnose it.
>> =

>> I see, thanks for clarifying. It's totally non trivial to understand XAP=
I log messages for someone that is not familiar with the internals, that I'=
ve just naively looked for "error" lines.
>> I've generated the report, and it's almost 57MB. Is there a way I can se=
nd it to you without using the ML? I have both size and confidentiality iss=
ues with doing so. I'm in CDT timezone, I will probably be in IRC/#mirage i=
n the afternoon CET. Feel free to contact me there for details.
> OK, will try to be around later.
>>  =

>> =

>> In the meantime, for a single host pool, you could just copy the unikern=
el directly onto the XenServer. Something like:
>> =

>> ssh root@xenserver mkdir /boot/guest
>> scp unikernel.xen root@xenserver:/boot/guest
>> =

>> Just to clarify: the single host pool scenario is working perfectly both=
 in 6.2 (with latest patches) and Creedence beta 3.
>> The problem only shows up in a multi-host pool running 6.2 (hotfixes up =
to SP1).
>> =

> =

> Apologies, I misunderstood. The workaround will be fine in a pool so long=
 as you copy the kernel onto each host into /boot/guest/.
> =

> We'll try to repro today to see what the problem may be.

>From the description of the symptom (works single host but not in a pool) m=
y guess would be that xe-unikernel-upload is failing to respond to an HTTP =
redirect from xapi.

Perhaps rather than looking at the logs, it would be better to run somethin=
g like

  strace -s 1000 xe-unikernel-upload =85

=97 this should capture the network traffic. Or use plain http and capture =
with tcpdump/wireshark.

Cheers,
Dave
_______________________________________________
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 Oct 22 13:15:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:15: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 1Xgvkw-00035x-TY; Wed, 22 Oct 2014 13:15:14 +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 1Xgvkv-00035i-I1
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:15:13 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	AB/C7-03123-0EDA7445; Wed, 22 Oct 2014 13:15:12 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-16.tower-206.messagelabs.com!1413983712!8234578!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32059 invoked from network); 22 Oct 2014 13:15:12 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-16.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 22 Oct 2014 13:15:12 -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=58185 helo=[10.80.3.75])
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Xgvkt-000707-sC (Exim 4.82_3-c0e5623)
	(return-path <jjl25@cam.ac.uk>); Wed, 22 Oct 2014 14:15:11 +0100
Message-ID: <5447ADDF.8080602@cam.ac.uk>
Date: Wed, 22 Oct 2014 14:15:11 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: Dave Scott <Dave.Scott@citrix.com>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
	<5447AC9F.10800@cam.ac.uk>
	<B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
In-Reply-To: <B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
Content-Length: 2334
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 22/10/14 14:13, Dave Scott wrote:
>> On 22 Oct 2014, at 14:09, Jon Ludlam <jjl25@cam.ac.uk> wrote:
>>
>> On 22/10/14 03:13, Sergio Visinoni wrote:
>>
>>> For issue #2, the log line you posted is probably a failure in the clea=
nup following the actual root cause. We can try to repro locally tomorrow, =
but it may be worth taking a bugtool (http://support.citrix.com/article/CTX=
125372) which could help diagnose it.
>>>
>>> I see, thanks for clarifying. It's totally non trivial to understand XA=
PI log messages for someone that is not familiar with the internals, that I=
've just naively looked for "error" lines.
>>> I've generated the report, and it's almost 57MB. Is there a way I can s=
end it to you without using the ML? I have both size and confidentiality is=
sues with doing so. I'm in CDT timezone, I will probably be in IRC/#mirage =
in the afternoon CET. Feel free to contact me there for details.
>> OK, will try to be around later.
>>>  =

>>>
>>> In the meantime, for a single host pool, you could just copy the uniker=
nel directly onto the XenServer. Something like:
>>>
>>> ssh root@xenserver mkdir /boot/guest
>>> scp unikernel.xen root@xenserver:/boot/guest
>>>
>>> Just to clarify: the single host pool scenario is working perfectly bot=
h in 6.2 (with latest patches) and Creedence beta 3.
>>> The problem only shows up in a multi-host pool running 6.2 (hotfixes up=
 to SP1).
>>>
>> Apologies, I misunderstood. The workaround will be fine in a pool so lon=
g as you copy the kernel onto each host into /boot/guest/.
>>
>> We'll try to repro today to see what the problem may be.
> From the description of the symptom (works single host but not in a pool)=
 my guess would be that xe-unikernel-upload is failing to respond to an HTT=
P redirect from xapi.
>
> Perhaps rather than looking at the logs, it would be better to run someth=
ing like
>
>   strace -s 1000 xe-unikernel-upload =85
>
> =97 this should capture the network traffic. Or use plain http and captur=
e with tcpdump/wireshark.
>
> Cheers,
> Dave
The error mentioned SSL write error - is there an option to have SSL
turned off for ease of debugging?

Jon


_______________________________________________
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 Oct 22 13:15:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:15: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 1Xgvkw-00035x-TY; Wed, 22 Oct 2014 13:15:14 +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 1Xgvkv-00035i-I1
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:15:13 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	AB/C7-03123-0EDA7445; Wed, 22 Oct 2014 13:15:12 +0000
X-Env-Sender: jjl25@cam.ac.uk
X-Msg-Ref: server-16.tower-206.messagelabs.com!1413983712!8234578!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32059 invoked from network); 22 Oct 2014 13:15:12 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-16.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 22 Oct 2014 13:15:12 -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=58185 helo=[10.80.3.75])
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:jjl25) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Xgvkt-000707-sC (Exim 4.82_3-c0e5623)
	(return-path <jjl25@cam.ac.uk>); Wed, 22 Oct 2014 14:15:11 +0100
Message-ID: <5447ADDF.8080602@cam.ac.uk>
Date: Wed, 22 Oct 2014 14:15:11 +0100
From: Jon Ludlam <jjl25@cam.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: Dave Scott <Dave.Scott@citrix.com>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
	<5447AC9F.10800@cam.ac.uk>
	<B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
In-Reply-To: <B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
Content-Length: 2334
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 22/10/14 14:13, Dave Scott wrote:
>> On 22 Oct 2014, at 14:09, Jon Ludlam <jjl25@cam.ac.uk> wrote:
>>
>> On 22/10/14 03:13, Sergio Visinoni wrote:
>>
>>> For issue #2, the log line you posted is probably a failure in the clea=
nup following the actual root cause. We can try to repro locally tomorrow, =
but it may be worth taking a bugtool (http://support.citrix.com/article/CTX=
125372) which could help diagnose it.
>>>
>>> I see, thanks for clarifying. It's totally non trivial to understand XA=
PI log messages for someone that is not familiar with the internals, that I=
've just naively looked for "error" lines.
>>> I've generated the report, and it's almost 57MB. Is there a way I can s=
end it to you without using the ML? I have both size and confidentiality is=
sues with doing so. I'm in CDT timezone, I will probably be in IRC/#mirage =
in the afternoon CET. Feel free to contact me there for details.
>> OK, will try to be around later.
>>>  =

>>>
>>> In the meantime, for a single host pool, you could just copy the uniker=
nel directly onto the XenServer. Something like:
>>>
>>> ssh root@xenserver mkdir /boot/guest
>>> scp unikernel.xen root@xenserver:/boot/guest
>>>
>>> Just to clarify: the single host pool scenario is working perfectly bot=
h in 6.2 (with latest patches) and Creedence beta 3.
>>> The problem only shows up in a multi-host pool running 6.2 (hotfixes up=
 to SP1).
>>>
>> Apologies, I misunderstood. The workaround will be fine in a pool so lon=
g as you copy the kernel onto each host into /boot/guest/.
>>
>> We'll try to repro today to see what the problem may be.
> From the description of the symptom (works single host but not in a pool)=
 my guess would be that xe-unikernel-upload is failing to respond to an HTT=
P redirect from xapi.
>
> Perhaps rather than looking at the logs, it would be better to run someth=
ing like
>
>   strace -s 1000 xe-unikernel-upload =85
>
> =97 this should capture the network traffic. Or use plain http and captur=
e with tcpdump/wireshark.
>
> Cheers,
> Dave
The error mentioned SSL write error - is there an option to have SSL
turned off for ease of debugging?

Jon


_______________________________________________
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 Oct 22 13:16:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:16: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 1XgvmP-0003EF-5V; Wed, 22 Oct 2014 13:16:45 +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 1XgvmN-0003E1-Or
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:16:43 +0000
Received: from [193.109.254.147:46887] by server-10.bemta-14.messagelabs.com
	id 0C/5D-01463-B3EA7445; Wed, 22 Oct 2014 13:16:43 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1413983801!11827294!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=HTML_MESSAGE,
  RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5984 invoked from network); 22 Oct 2014 13:16:41 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 13:16:41 -0000
Received: from [192.168.15.18] (no-dns-yet.demon.co.uk [62.49.66.12]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 99c320e8;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 22 Oct 2014 14:19:27 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
Date: Wed, 22 Oct 2014 14:16:39 +0100
Message-Id: <253641E5-44A1-4AA2-92E4-B8E358F00C6A@recoil.org>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
To: Sergio Visinoni <piffio@piffio.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
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="===============2263818402532039253=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============2263818402532039253==
Content-Type: multipart/alternative; boundary="Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071"


--Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 22 Oct 2014, at 00:13, Sergio Visinoni <piffio@piffio.org> wrote:

> When you have installed all the packages from mirage-dev in order to =
build MirageOS 2.0, it's not possibe to build the xe-unikernel-upload =
module, due to some incompatibilities between xen-api-client and the =
latest Cohttp. Since the xen-api-client [1] doesn't seem to allow for =
issue reporting in GitHub, I'm reporting here. The workaround I found =
has bin to build both xe and xe-unikernel-upload on my laptop with the =
mirage 1.2 modules installed, saved the binaries in a safe location, and =
moved forward with mirage-dev.
>=20
>     # File "lib/xen_api.ml", line 40, characters 9-20:
>     # Error: Unbound module Cohttp.IO
>     # Command exited with code 2.
>=20
> Should I report this bug on a different list? If so, which one?

If you could report this on https://github.com/mirage/mirage/issues it =
should be fine.  The patch should just be changing Cohttp.IO to =
Cohttp.S.IO in the short term.

In the medium term, it would be good to move the POSIX Cohttp backend =
out of the XenAPI code and into Cohttp, where it can be maintained along =
with the rest of the library...

-anil


--Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071
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;">On 22 =
Oct 2014, at 00:13, Sergio Visinoni &lt;<a =
href=3D"mailto:piffio@piffio.org">piffio@piffio.org</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">When =
you have installed all the packages from mirage-dev in order to build =
MirageOS 2.0, it's not possibe to build the&nbsp;xe-unikernel-upload =
module, due to some incompatibilities between xen-api-client and the =
latest Cohttp. Since the xen-api-client [1] doesn't seem to allow for =
issue reporting in GitHub, I'm reporting here. The workaround I found =
has bin to build both xe and xe-unikernel-upload on my laptop with the =
mirage 1.2 modules installed, saved the binaries in a safe location, and =
moved forward with mirage-dev.</div><div style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><br></div><div style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;">&nbsp; &nbsp; # File "lib/<a =
href=3D"http://xen_api.ml/">xen_api.ml</a>", line 40, characters =
9-20:</div><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">&nbsp; =
&nbsp; # Error: Unbound module Cohttp.IO</div><div style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;">&nbsp; &nbsp; # Command exited with =
code 2.</div><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px;"><br></div><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Should =
I report this bug on a different list? If so, which =
one?</div></blockquote><br></div><div>If you could report this on <a =
href=3D"https://github.com/mirage/mirage/issues">https://github.com/mirage=
/mirage/issues</a> it should be fine. &nbsp;The patch should just be =
changing Cohttp.IO to Cohttp.S.IO in the short =
term.</div><div><br></div><div>In the medium term, it would be good to =
move the POSIX Cohttp backend out of the XenAPI code and into Cohttp, =
where it can be maintained along with the rest of the =
library...</div><div><br></div><div>-anil</div><br></body></html>=

--Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071--


--===============2263818402532039253==
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

--===============2263818402532039253==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 13:16:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 13:16: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 1XgvmP-0003EF-5V; Wed, 22 Oct 2014 13:16:45 +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 1XgvmN-0003E1-Or
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 13:16:43 +0000
Received: from [193.109.254.147:46887] by server-10.bemta-14.messagelabs.com
	id 0C/5D-01463-B3EA7445; Wed, 22 Oct 2014 13:16:43 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1413983801!11827294!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=HTML_MESSAGE,
  RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5984 invoked from network); 22 Oct 2014 13:16:41 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 13:16:41 -0000
Received: from [192.168.15.18] (no-dns-yet.demon.co.uk [62.49.66.12]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 99c320e8;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 22 Oct 2014 14:19:27 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
Date: Wed, 22 Oct 2014 14:16:39 +0100
Message-Id: <253641E5-44A1-4AA2-92E4-B8E358F00C6A@recoil.org>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
To: Sergio Visinoni <piffio@piffio.org>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
	running XS 6.2
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="===============2263818402532039253=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============2263818402532039253==
Content-Type: multipart/alternative; boundary="Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071"


--Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 22 Oct 2014, at 00:13, Sergio Visinoni <piffio@piffio.org> wrote:

> When you have installed all the packages from mirage-dev in order to =
build MirageOS 2.0, it's not possibe to build the xe-unikernel-upload =
module, due to some incompatibilities between xen-api-client and the =
latest Cohttp. Since the xen-api-client [1] doesn't seem to allow for =
issue reporting in GitHub, I'm reporting here. The workaround I found =
has bin to build both xe and xe-unikernel-upload on my laptop with the =
mirage 1.2 modules installed, saved the binaries in a safe location, and =
moved forward with mirage-dev.
>=20
>     # File "lib/xen_api.ml", line 40, characters 9-20:
>     # Error: Unbound module Cohttp.IO
>     # Command exited with code 2.
>=20
> Should I report this bug on a different list? If so, which one?

If you could report this on https://github.com/mirage/mirage/issues it =
should be fine.  The patch should just be changing Cohttp.IO to =
Cohttp.S.IO in the short term.

In the medium term, it would be good to move the POSIX Cohttp backend =
out of the XenAPI code and into Cohttp, where it can be maintained along =
with the rest of the library...

-anil


--Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071
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;">On 22 =
Oct 2014, at 00:13, Sergio Visinoni &lt;<a =
href=3D"mailto:piffio@piffio.org">piffio@piffio.org</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">When =
you have installed all the packages from mirage-dev in order to build =
MirageOS 2.0, it's not possibe to build the&nbsp;xe-unikernel-upload =
module, due to some incompatibilities between xen-api-client and the =
latest Cohttp. Since the xen-api-client [1] doesn't seem to allow for =
issue reporting in GitHub, I'm reporting here. The workaround I found =
has bin to build both xe and xe-unikernel-upload on my laptop with the =
mirage 1.2 modules installed, saved the binaries in a safe location, and =
moved forward with mirage-dev.</div><div style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><br></div><div style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;">&nbsp; &nbsp; # File "lib/<a =
href=3D"http://xen_api.ml/">xen_api.ml</a>", line 40, characters =
9-20:</div><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">&nbsp; =
&nbsp; # Error: Unbound module Cohttp.IO</div><div style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;">&nbsp; &nbsp; # Command exited with =
code 2.</div><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px;"><br></div><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Should =
I report this bug on a different list? If so, which =
one?</div></blockquote><br></div><div>If you could report this on <a =
href=3D"https://github.com/mirage/mirage/issues">https://github.com/mirage=
/mirage/issues</a> it should be fine. &nbsp;The patch should just be =
changing Cohttp.IO to Cohttp.S.IO in the short =
term.</div><div><br></div><div>In the medium term, it would be good to =
move the POSIX Cohttp backend out of the XenAPI code and into Cohttp, =
where it can be maintained along with the rest of the =
library...</div><div><br></div><div>-anil</div><br></body></html>=

--Apple-Mail=_6969B261-7CA7-4E38-948F-F573306E1071--


--===============2263818402532039253==
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

--===============2263818402532039253==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 16:54:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 16:54: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 1XgzBM-0005Qk-F4; Wed, 22 Oct 2014 16:54:44 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lukedunstan81@gmail.com>) id 1XgzBL-0005Qf-39
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 16:54:43 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	BE/91-02952-251E7445; Wed, 22 Oct 2014 16:54:42 +0000
X-Env-Sender: lukedunstan81@gmail.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1413996879!12017733!1
X-Originating-IP: [209.85.217.176]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22210 invoked from network); 22 Oct 2014 16:54:40 -0000
Received: from mail-lb0-f176.google.com (HELO mail-lb0-f176.google.com)
	(209.85.217.176)
	by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 16:54:40 -0000
Received: by mail-lb0-f176.google.com with SMTP id p9so3122422lbv.7
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 22 Oct 2014 09:54:39 -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=PaTB2eD6MqGDGC92YTMKmlL2U810ZuvZlD3mTvqLTjk=;
	b=ks5aDs7GPOiFWZqkLb9jRFnHl5t+wZ7EiLBwzaped6A7wIqtkAMMuQ2n8RCmc+P8Up
	TCdg7CPQKxk3xWg6SZrDcpltbYbv1YIhVtJW07CxZ1EKXyWfwzgqba7NJixfdMnk6eHx
	wcJyEKWJOlCbDjC7UCtGvYEdZalH87dA3jbMjaQzMeST555ikUFlJPxrEINV2kq/HNt4
	T65/hbgm81jc2WNs1ZS2dg1/kejNsVAfv1vXLmTMFN4I4XCGC9EdO/H4RWOVds/9ZGOa
	Cu0vgP7QBaFCuU9wqOZD0UBbPq04TwlbywGiEB4HDkC55Ucymbmxae9CUKloj5wpcvXy
	0E2Q==
MIME-Version: 1.0
X-Received: by 10.152.234.199 with SMTP id ug7mr43095796lac.26.1413996879414; 
	Wed, 22 Oct 2014 09:54:39 -0700 (PDT)
Received: by 10.112.52.104 with HTTP; Wed, 22 Oct 2014 09:54:39 -0700 (PDT)
In-Reply-To: <6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
	<6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
Date: Thu, 23 Oct 2014 00:54:39 +0800
Message-ID: <CAEui0wXQWv-SDunJmXKDozJBzJptgMbn=+1kxOSkysuRADqv2g@mail.gmail.com>
From: Luke Dunstan <lukedunstan81@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============5061598911843364957=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5061598911843364957==
Content-Type: multipart/alternative; boundary=001a113494f4b60a05050605cd57

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

Minor correction: sudo docker pull avsm/docker-opam

The only point I would add is that if you only want an image for one OS
then you can save time and disk space by pulling just one tag, e.g. docker
pull avsm/docker-opam:ubuntu-trusty-4.01.0

Luke


On 22 October 2014 21:03, Anil Madhavapeddy <anil@recoil.org> wrote:

> CCing the devel list so everyone knows how this works.
>
> If you have a Linux box with Docker installed, you can clone the
> precise environment by:
>
> $ sudo docker pull avsm/docker
>
> This gives you access to a number of 'tags' (which are predefined
> builds of OPAM/OCaml on various filesystems). Full list of tags are:
>
> https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/
>
> You can use a tag directly via:
>
> $ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 <cmd>
>
> The scripts referenced below already do this, and are all in:
> https://github.com/mirage/is-mirage-broken
>
> The cron.sh is the one that's run regularly and sync with the
> Docker registry and builds every combination.
>
> To recreate one of them, just run build.sh directly; e.g.
>
> ./build.sh ubuntu-trusty-4.01.0 mirage-skeleton
>
> If you already have a suitable environment with OPAM and OCaml
> installed system-wide, you can just run the shell scripts in
> is-mirage-broken/scripts/ directly to fix them.
>
> -anil
>
> On 22 Oct 2014, at 13:55, Nik Sultana <ns441@cam.ac.uk> wrote:
>
> > Hi Anil, is this something I can try locally to see if the modified
> script works, or do I need to run the script on a build server somewhere?
> Feel free to point me to any "BUILD" notes i could use for this, in case =
I
> can test it and make a PR, if it's still an open issue.
> > Best,
> > Nik
> >
> > On 2014-10-21 16:18, Richard Mortier wrote:
> >> if you read the docs i quoted, that's exactly as documented:
> >>>>>>>         =E2=80=A2 The -e setting shall be ignored when executing =
the
> compound list
> >>>>>>> following the while, until, if, or elif reserved word, a pipeline
> >>>>>>> beginning with the ! reserved word, or any command of an AND-OR
> list
> >>>>>>> other than the last.
> >> it might be rather counter-intuitive and of dubious merit, but it's
> >> the documented behaviour...
> >> On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:
> >>> I think Richard might be right. The semantics of && seems to be a bit
> >>> counterintuitive in this case. Consider this script:
> >>> #!/bin/sh
> >>> set -e #line1
> >>> false && echo hello #line2
> >>> echo hello2
> >>> false #line4
> >>> echo world
> >>> It gives the output:
> >>> hello2
> >>> which is odd, because we expect the script to be terminated at line2 =
--
> >>> the line "echo hello2" should never be reached. Instead, the script
> >>> continues on and is only terminated at line4.
> >>> Just to test the effect of "set -e", commenting line1 and running the
> >>> script gives the output:
> >>> hello2
> >>> world
> >>> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
> >>>> The && should catch that failure.  Consider:
> >>>> #!/bin/sh -ex
> >>>> exit 1 && echo hello
> >>>> echo world
> >>>> Executing that:
> >>>> $ ./test.sh
> >>>> + exit 1
> >>>> If the make depend fails, I'd expect the && to fail, and the resulti=
ng
> >>>> non-zero exit code to cause the whole shell to exit.
> >>>> -anil
> >>>> On 21 Oct 2014, at 15:37, Richard Mortier
> >>>> <Richard.Mortier@nottingham.ac.uk> wrote:
> >>>>> but isn't it the "make depend" step that's failing as far as the
> >>>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it
> >>>>> won't exit according to point 2. below (-e is ignored if it's any
> >>>>> command of an AND-OR list other than the last).
> >>>>> with -e on, seems expected practice is to issue the commands
> >>>>> individually i.e.
> >>>>> make depend
> >>>>> make configure
> >>>>> make build
> >>>>> ...and let the -e fail them if required. (assuming you don't want t=
o
> >>>>> accumulate info about failures of depend/configure on other platfor=
ms
> >>>>> before bailing out.)
> >>>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote=
:
> >>>>>> It's here:
> >>>>>>
> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
> >>>>>> And the `make` invocations do seem to exit with a non-zero exit
> code.
> >>>>>> -ani
> >>>>>> On 21 Oct 2014, at 15:02, Richard Mortier
> >>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
> >>>>>>> not sure precisely where the script being executed actually is bu=
t
> >>>>>>> could it be because it's a command in a multi-command pipeline?
> >>>>>>>
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
> >>>>>>> -e
> >>>>>>> When this option is on, when any command fails (for any of the
> >>>>>>> reasons listed in Consequences of Shell Errors or by returning an
> >>>>>>> exit status greater than zero), the shell immediately shall exit
> >>>>>>> with the following exceptions:
> >>>>>>>         =E2=80=A2 The failure of any individual command in a mult=
i-command
> pipeline
> >>>>>>> shall not cause the shell to exit. Only the failure of the pipeli=
ne
> >>>>>>> itself shall be considered.
> >>>>>>>         =E2=80=A2 The -e setting shall be ignored when executing =
the
> compound list
> >>>>>>> following the while, until, if, or elif reserved word, a pipeline
> >>>>>>> beginning with the ! reserved word, or any command of an AND-OR
> list
> >>>>>>> other than the last.
> >>>>>>>         =E2=80=A2 If the exit status of a compound command other =
than a
> subshell
> >>>>>>> command was the result of a failure while -e was being ignored,
> then
> >>>>>>> -e shall not apply to this command.
> >>>>>>> This requirement applies to the shell environment and each subshe=
ll
> >>>>>>> environment separately. For example, in:
> >>>>>>> set -e; (false; echo one) | cat; echo two
> >>>>>>> the false command causes the subshell to exit without executing
> echo
> >>>>>>> one; however, echo two is executed because the exit status of the
> >>>>>>> pipeline (false; echo one) | cat is zero.
> >>>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org>
> wrote:
> >>>>>>>> Great!  For the rest of the list, it looks like mirage-dev is
> >>>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty)=
,
> >>>>>>>> but not with the internal one (CentOS builds):
> >>>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
> >>>>>>>> This is probably due to our excessive use of depopts; I will
> >>>>>>>> replace those with explicit virtual packages (e.g. dns-mirage)
> that
> >>>>>>>> encode all the dependencies they need.
> >>>>>>>> More mysteriously, the `set -e` in the shell script isn't causin=
g
> >>>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always
> >>>>>>>> printed.  We need a is-mirage-working-working script to fix our
> >>>>>>>> is-mirage-working script :-)
> >>>>>>>> -anil
> >>>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker
> image
> >>>>>>>>> with 4.01.
> >>>>>>>>> Luke
> >>>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>
> >>>>>>>>> wrote:
> >>>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com=
>
> >>>>>>>>> wrote:
> >>>>>>>>>> Hi,
> >>>>>>>>>> I tried to build mirage-www as per
> >>>>>>>>>> http://openmirage.org/wiki/mirage-www
> >>>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
> >>>>>>>>>> (success)
> >>>>>>>>>> $ make depend
> >>>>>>>>>> (success*)
> >>>>>>>>>> $ make
> >>>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs
> >>>>>>>>>>
> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.un=
ix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket
> >>>>>>>>>> -tags
> "syntax(camlp4o),annot,bin_annot,strict_sequence,principal"
> >>>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
> >>>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal
> >>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
> >>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
> >>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package
> lwt
> >>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
> >>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
> >>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> >>>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal
> >>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
> >>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
> >>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package
> lwt
> >>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
> >>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
> >>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> >>>>>>>>>> File "main.ml", line 98, characters 2-13:
> >>>>>>>>>> Error: Unbound module OS
> >>>>>>>>>> Command exited with code 2.
> >>>>>>>>>> make: *** [main.native] Error 10
> >>>>>>>>>> To try to ensure that this was reproducible I also tried
> starting
> >>>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image
> and
> >>>>>>>>>> got the same error. However, I had to change the ounit package
> >>>>>>>>>> URL because forge.ocamlcore.org is apparently down.
> >>>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the
> >>>>>>>>>> "configure" / "make depend" step because it was apparently
> >>>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the
> >>>>>>>>>> problem?
> >>>>>>>>> Hi Luke,
> >>>>>>>>> Thanks for the bug report, and bonus points for trying the Dock=
er
> >>>>>>>>> repository out.  I've fixed the underlying issue that was causi=
ng
> >>>>>>>>> the unbound OS module to show up -- it's because of some recent
> >>>>>>>>> shuffling of dependencies in console handling, and this resulte=
d
> >>>>>>>>> in mirage-unix no longer being implicitly depended on.  I've
> >>>>>>>>> modified the mirage tool to explicitly add the dependency in.
> >>>>>>>>> In order to help keep things working across the increasing numb=
er
> >>>>>>>>> of distributions, I've also created a couple of cron jobs that
> >>>>>>>>> automatically build things and publish the logs
> >>>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on
> OCaml
> >>>>>>>>> 4.01 and 4.02:
> >>>>>>>>>
> https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
> >>>>>>>>> https://github.com/avsm/docker-opam has the sources
> >>>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob
> >>>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to
> the
> >>>>>>>>> logs/ directory in this repo.  When that's completed running (a=
nd
> >>>>>>>>> we've fixed the build breakages!), it should be easy to get it =
on
> >>>>>>>>> the website as a badge so we can see the status of repos at a
> >>>>>>>>> glance.
> >>>>>>>>> About to hop on a flight now, so I've left the cron job running
> >>>>>>>>> and will check it out tomorrow.  If anyone else can test out th=
e
> >>>>>>>>> Docker images in the meanwhile, feel free...
> >>>>>>>>> -anil
> >>>>>>>>> _______________________________________________
> >>>>>>>>> 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
> >>>>>>> --
> >>>>>>> Cheers,
> >>>>>>> R.
> >>>>>>> _______________________________________________
> >>>>>>> MirageOS-devel mailing list
> >>>>>>> MirageOS-devel@lists.xenproject.org
> >>>>>>>
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> >>>>> --
> >>>>> Cheers,
> >>>>> R.
> >>>>> _______________________________________________
> >>>>> 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
> >
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

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

<div dir=3D"ltr">Minor correction:=C2=A0<span style=3D"font-family:arial,sa=
ns-serif;font-size:12.8000001907349px">sudo docker pull avsm/docker-opam</s=
pan><div><font face=3D"arial, sans-serif"><br></font><div>The only point I =
would add is that if you only want an image for one OS then you can save ti=
me and disk space by pulling just one tag, e.g.=C2=A0docker pull avsm/docke=
r-opam:ubuntu-trusty-4.01.0<div><br></div><div>Luke</div><div><br></div></d=
iv></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On=
 22 October 2014 21:03, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"=
mailto:anil@recoil.org" target=3D"_blank">anil@recoil.org</a>&gt;</span> wr=
ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex">CCing the devel list so everyone kno=
ws how this works.<br>
<br>
If you have a Linux box with Docker installed, you can clone the<br>
precise environment by:<br>
<br>
$ sudo docker pull avsm/docker<br>
<br>
This gives you access to a number of &#39;tags&#39; (which are predefined<b=
r>
builds of OPAM/OCaml on various filesystems). Full list of tags are:<br>
<br>
<a href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/"=
 target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/tags/=
manage/</a><br>
<br>
You can use a tag directly via:<br>
<br>
$ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 &lt;cmd&gt;<br>
<br>
The scripts referenced below already do this, and are all in:<br>
<a href=3D"https://github.com/mirage/is-mirage-broken" target=3D"_blank">ht=
tps://github.com/mirage/is-mirage-broken</a><br>
<br>
The cron.sh is the one that&#39;s run regularly and sync with the<br>
Docker registry and builds every combination.<br>
<br>
To recreate one of them, just run build.sh directly; e.g.<br>
<br>
./build.sh ubuntu-trusty-4.01.0 mirage-skeleton<br>
<br>
If you already have a suitable environment with OPAM and OCaml<br>
installed system-wide, you can just run the shell scripts in<br>
is-mirage-broken/scripts/ directly to fix them.<br>
<br>
-anil<br>
<br>
On 22 Oct 2014, at 13:55, Nik Sultana &lt;<a href=3D"mailto:ns441@cam.ac.uk=
">ns441@cam.ac.uk</a>&gt; wrote:<br>
<br>
&gt; Hi Anil, is this something I can try locally to see if the modified sc=
ript works, or do I need to run the script on a build server somewhere? Fee=
l free to point me to any &quot;BUILD&quot; notes i could use for this, in =
case I can test it and make a PR, if it&#39;s still an open issue.<br>
&gt; Best,<br>
&gt; Nik<br>
&gt;<br>
&gt; On 2014-10-21 16:18, Richard Mortier wrote:<br>
&gt;&gt; if you read the docs i quoted, that&#39;s exactly as documented:<b=
r>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 The=
 -e setting shall be ignored when executing the compound list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; following the while, until, if, or elif reserv=
ed word, a pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; beginning with the ! reserved word, or any com=
mand of an AND-OR list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; other than the last.<br>
&gt;&gt; it might be rather counter-intuitive and of dubious merit, but it&=
#39;s<br>
&gt;&gt; the documented behaviour...<br>
&gt;&gt; On 21 Oct 2014, at 16:01, Nik Sultana &lt;<a href=3D"mailto:ns441@=
cam.ac.uk">ns441@cam.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt; I think Richard might be right. The semantics of &amp;&amp; se=
ems to be a bit<br>
&gt;&gt;&gt; counterintuitive in this case. Consider this script:<br>
&gt;&gt;&gt; #!/bin/sh<br>
&gt;&gt;&gt; set -e #line1<br>
&gt;&gt;&gt; false &amp;&amp; echo hello #line2<br>
&gt;&gt;&gt; echo hello2<br>
&gt;&gt;&gt; false #line4<br>
&gt;&gt;&gt; echo world<br>
&gt;&gt;&gt; It gives the output:<br>
&gt;&gt;&gt; hello2<br>
&gt;&gt;&gt; which is odd, because we expect the script to be terminated at=
 line2 --<br>
&gt;&gt;&gt; the line &quot;echo hello2&quot; should never be reached. Inst=
ead, the script<br>
&gt;&gt;&gt; continues on and is only terminated at line4.<br>
&gt;&gt;&gt; Just to test the effect of &quot;set -e&quot;, commenting line=
1 and running the<br>
&gt;&gt;&gt; script gives the output:<br>
&gt;&gt;&gt; hello2<br>
&gt;&gt;&gt; world<br>
&gt;&gt;&gt; On 2014-10-21 15:49, Anil Madhavapeddy wrote:<br>
&gt;&gt;&gt;&gt; The &amp;&amp; should catch that failure.=C2=A0 Consider:<=
br>
&gt;&gt;&gt;&gt; #!/bin/sh -ex<br>
&gt;&gt;&gt;&gt; exit 1 &amp;&amp; echo hello<br>
&gt;&gt;&gt;&gt; echo world<br>
&gt;&gt;&gt;&gt; Executing that:<br>
&gt;&gt;&gt;&gt; $ ./test.sh<br>
&gt;&gt;&gt;&gt; + exit 1<br>
&gt;&gt;&gt;&gt; If the make depend fails, I&#39;d expect the &amp;&amp; to=
 fail, and the resulting<br>
&gt;&gt;&gt;&gt; non-zero exit code to cause the whole shell to exit.<br>
&gt;&gt;&gt;&gt; -anil<br>
&gt;&gt;&gt;&gt; On 21 Oct 2014, at 15:37, Richard Mortier<br>
&gt;&gt;&gt;&gt; &lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Ri=
chard.Mortier@nottingham.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt; but isn&#39;t it the &quot;make depend&quot; step that=
&#39;s failing as far as the<br>
&gt;&gt;&gt;&gt;&gt; is-mirage-broken/scripts/mirage-www script is concerne=
d -- hence it<br>
&gt;&gt;&gt;&gt;&gt; won&#39;t exit according to point 2. below (-e is igno=
red if it&#39;s any<br>
&gt;&gt;&gt;&gt;&gt; command of an AND-OR list other than the last).<br>
&gt;&gt;&gt;&gt;&gt; with -e on, seems expected practice is to issue the co=
mmands<br>
&gt;&gt;&gt;&gt;&gt; individually i.e.<br>
&gt;&gt;&gt;&gt;&gt; make depend<br>
&gt;&gt;&gt;&gt;&gt; make configure<br>
&gt;&gt;&gt;&gt;&gt; make build<br>
&gt;&gt;&gt;&gt;&gt; ...and let the -e fail them if required. (assuming you=
 don&#39;t want to<br>
&gt;&gt;&gt;&gt;&gt; accumulate info about failures of depend/configure on =
other platforms<br>
&gt;&gt;&gt;&gt;&gt; before bailing out.)<br>
&gt;&gt;&gt;&gt;&gt; On 21 Oct 2014, at 15:18, Anil Madhavapeddy &lt;<a hre=
f=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt; It&#39;s here:<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://github.com/mirage/is-mirage-bro=
ken/blob/master/scripts/mirage-www" target=3D"_blank">https://github.com/mi=
rage/is-mirage-broken/blob/master/scripts/mirage-www</a><br>
&gt;&gt;&gt;&gt;&gt;&gt; And the `make` invocations do seem to exit with a =
non-zero exit code.<br>
&gt;&gt;&gt;&gt;&gt;&gt; -ani<br>
&gt;&gt;&gt;&gt;&gt;&gt; On 21 Oct 2014, at 15:02, Richard Mortier<br>
&gt;&gt;&gt;&gt;&gt;&gt; &lt;<a href=3D"mailto:Richard.Mortier@nottingham.a=
c.uk">Richard.Mortier@nottingham.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; not sure precisely where the script being exec=
uted actually is but<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; could it be because it&#39;s a command in a mu=
lti-command pipeline?<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://pubs.opengroup.org/onlinepub=
s/9699919799/utilities/V3_chap02.html" target=3D"_blank">http://pubs.opengr=
oup.org/onlinepubs/9699919799/utilities/V3_chap02.html</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; -e<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; When this option is on, when any command fails=
 (for any of the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; reasons listed in Consequences of Shell Errors=
 or by returning an<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; exit status greater than zero), the shell imme=
diately shall exit<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; with the following exceptions:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 The=
 failure of any individual command in a multi-command pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; shall not cause the shell to exit. Only the fa=
ilure of the pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; itself shall be considered.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 The=
 -e setting shall be ignored when executing the compound list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; following the while, until, if, or elif reserv=
ed word, a pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; beginning with the ! reserved word, or any com=
mand of an AND-OR list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; other than the last.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 If =
the exit status of a compound command other than a subshell<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; command was the result of a failure while -e w=
as being ignored, then<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; -e shall not apply to this command.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; This requirement applies to the shell environm=
ent and each subshell<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; environment separately. For example, in:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; set -e; (false; echo one) | cat; echo two<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; the false command causes the subshell to exit =
without executing echo<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; one; however, echo two is executed because the=
 exit status of the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; pipeline (false; echo one) | cat is zero.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 21 Oct 2014, at 14:31, Anil Madhavapeddy &l=
t;<a href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Great!=C2=A0 For the rest of the list, it =
looks like mirage-dev is<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; working with the external OPAM solver (asp=
cud, on Ubuntu-trusty),<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; but not with the internal one (CentOS buil=
ds):<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://github.com/mirage/is-mi=
rage-broken/tree/master/logs" target=3D"_blank">https://github.com/mirage/i=
s-mirage-broken/tree/master/logs</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; This is probably due to our excessive use =
of depopts; I will<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; replace those with explicit virtual packag=
es (e.g. dns-mirage) that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; encode all the dependencies they need.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; More mysteriously, the `set -e` in the she=
ll script isn&#39;t causing<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; it to terminate early, so the `MIRAGE WORK=
S` string is always<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; printed.=C2=A0 We need a is-mirage-working=
-working script to fix our<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; is-mirage-working script :-)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -anil<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 20 Oct 2014, at 15:09, Luke Dunstan &lt=
;<a href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt;=
<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks, I was able to compile and run =
mirage-www on a Docker image<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; with 4.01.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Luke<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 20 October 2014 09:28, Anil Madhava=
peddy &lt;<a href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 19 Oct 2014, at 03:17, Luke Dunstan=
 &lt;<a href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>=
&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I tried to build mirage-www as per=
<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://openmirage.org/w=
iki/mirage-www" target=3D"_blank">http://openmirage.org/wiki/mirage-www</a>=
<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; $ env NET=3Dsocket FS=3Dcrunch mir=
age configure --unix<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (success)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; $ make depend<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (success*)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; $ make<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; camlbuild -classic-display -use-oc=
amlfind -pkgs<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; lwt.syntax,conduit.mirage,cow.synt=
ax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.unix,mirage-fs=
-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-socket<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -tags &quot;syntax(camlp4o),annot,=
bin_annot,strict_sequence,principal&quot;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -cflag -g -lflags -g,-linkpkg main=
.native<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ocamlfind ocamlc -c -g -annot -bin=
-annot -principal<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -strict-sequence -package tcpip.st=
ack-socket -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; mirage-types.lwt -package mirage-t=
ypes -package mirage-http<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package mirage-fs-unix -package m=
irage-console.unix -package lwt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package io-page.unix -package io-=
page -package cstruct -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; cowabloga -package cow.syntax -pac=
kage conduit.mirage -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; lwt.syntax -syntax camlp4o -o main=
.cmo <a href=3D"http://main.ml" target=3D"_blank">main.ml</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; + ocamlfind ocamlc -c -g -annot -b=
in-annot -principal<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -strict-sequence -package tcpip.st=
ack-socket -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; mirage-types.lwt -package mirage-t=
ypes -package mirage-http<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package mirage-fs-unix -package m=
irage-console.unix -package lwt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package io-page.unix -package io-=
page -package cstruct -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; cowabloga -package cow.syntax -pac=
kage conduit.mirage -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; lwt.syntax -syntax camlp4o -o main=
.cmo <a href=3D"http://main.ml" target=3D"_blank">main.ml</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; File &quot;<a href=3D"http://main.=
ml" target=3D"_blank">main.ml</a>&quot;, line 98, characters 2-13:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Error: Unbound module OS<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Command exited with code 2.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; make: *** [main.native] Error 10<b=
r>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; To try to ensure that this was rep=
roducible I also tried starting<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; from the &quot;avsm/docker-opam:ub=
untu-trusty-4.01.0&quot; Docker image and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; got the same error. However, I had=
 to change the ounit package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; URL because <a href=3D"http://forg=
e.ocamlcore.org" target=3D"_blank">forge.ocamlcore.org</a> is apparently do=
wn.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Also, I had to &quot;apt-get insta=
ll libssl-dev&quot; to get past the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &quot;configure&quot; / &quot;make=
 depend&quot; step because it was apparently<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; required to compile ssl-0.4.7, so =
maybe that is related to the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; problem?<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi Luke,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks for the bug report, and bonus p=
oints for trying the Docker<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; repository out.=C2=A0 I&#39;ve fixed t=
he underlying issue that was causing<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; the unbound OS module to show up -- it=
&#39;s because of some recent<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; shuffling of dependencies in console h=
andling, and this resulted<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; in mirage-unix no longer being implici=
tly depended on.=C2=A0 I&#39;ve<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; modified the mirage tool to explicitly=
 add the dependency in.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; In order to help keep things working a=
cross the increasing number<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; of distributions, I&#39;ve also create=
d a couple of cron jobs that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; automatically build things and publish=
 the logs<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; - The Docker registry now has OPAM tag=
s for Ubuntu/CentOS on OCaml<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 4.01 and 4.02:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://registry.hub.docker=
.com/u/avsm/docker-opam/builds_history/15669/" target=3D"_blank">https://re=
gistry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://github.com/avsm/doc=
ker-opam" target=3D"_blank">https://github.com/avsm/docker-opam</a> has the=
 sources<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; - <a href=3D"https://github.com/mirage=
/is-mirage-broken" target=3D"_blank">https://github.com/mirage/is-mirage-br=
oken</a> runs as a cronjob<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (cron.sh) on <a href=3D"http://blobs.o=
penmirage.org" target=3D"_blank">blobs.openmirage.org</a> daily and pushes =
the logs to the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; logs/ directory in this repo.=C2=A0 Wh=
en that&#39;s completed running (and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; we&#39;ve fixed the build breakages!),=
 it should be easy to get it on<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; the website as a badge so we can see t=
he status of repos at a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; glance.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; About to hop on a flight now, so I&#39=
;ve left the cron job running<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; and will check it out tomorrow.=C2=A0 =
If anyone else can test out the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Docker images in the meanwhile, feel f=
ree...<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -anil<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ______________________________________=
_________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists=
.xenproject.org">MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org=
/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists.xe=
nproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; __________________________________________=
_____<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xen=
project.org">MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi=
-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenpro=
ject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; R.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; ______________________________________________=
_<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproj=
ect.org">MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin=
/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject=
.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;&gt;&gt; R.<br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org"=
>MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman=
/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi=
-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">Mir=
ageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/lis=
tinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin=
/mailman/listinfo/mirageos-devel</a><br>
&gt;<br>
<br>
<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" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a><br>
</blockquote></div><br></div>

--001a113494f4b60a05050605cd57--


--===============5061598911843364957==
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

--===============5061598911843364957==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 16:54:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 16:54: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 1XgzBM-0005Qk-F4; Wed, 22 Oct 2014 16:54:44 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lukedunstan81@gmail.com>) id 1XgzBL-0005Qf-39
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 16:54:43 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	BE/91-02952-251E7445; Wed, 22 Oct 2014 16:54:42 +0000
X-Env-Sender: lukedunstan81@gmail.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1413996879!12017733!1
X-Originating-IP: [209.85.217.176]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22210 invoked from network); 22 Oct 2014 16:54:40 -0000
Received: from mail-lb0-f176.google.com (HELO mail-lb0-f176.google.com)
	(209.85.217.176)
	by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 16:54:40 -0000
Received: by mail-lb0-f176.google.com with SMTP id p9so3122422lbv.7
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 22 Oct 2014 09:54:39 -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=PaTB2eD6MqGDGC92YTMKmlL2U810ZuvZlD3mTvqLTjk=;
	b=ks5aDs7GPOiFWZqkLb9jRFnHl5t+wZ7EiLBwzaped6A7wIqtkAMMuQ2n8RCmc+P8Up
	TCdg7CPQKxk3xWg6SZrDcpltbYbv1YIhVtJW07CxZ1EKXyWfwzgqba7NJixfdMnk6eHx
	wcJyEKWJOlCbDjC7UCtGvYEdZalH87dA3jbMjaQzMeST555ikUFlJPxrEINV2kq/HNt4
	T65/hbgm81jc2WNs1ZS2dg1/kejNsVAfv1vXLmTMFN4I4XCGC9EdO/H4RWOVds/9ZGOa
	Cu0vgP7QBaFCuU9wqOZD0UBbPq04TwlbywGiEB4HDkC55Ucymbmxae9CUKloj5wpcvXy
	0E2Q==
MIME-Version: 1.0
X-Received: by 10.152.234.199 with SMTP id ug7mr43095796lac.26.1413996879414; 
	Wed, 22 Oct 2014 09:54:39 -0700 (PDT)
Received: by 10.112.52.104 with HTTP; Wed, 22 Oct 2014 09:54:39 -0700 (PDT)
In-Reply-To: <6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
	<6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
Date: Thu, 23 Oct 2014 00:54:39 +0800
Message-ID: <CAEui0wXQWv-SDunJmXKDozJBzJptgMbn=+1kxOSkysuRADqv2g@mail.gmail.com>
From: Luke Dunstan <lukedunstan81@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="===============5061598911843364957=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5061598911843364957==
Content-Type: multipart/alternative; boundary=001a113494f4b60a05050605cd57

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

Minor correction: sudo docker pull avsm/docker-opam

The only point I would add is that if you only want an image for one OS
then you can save time and disk space by pulling just one tag, e.g. docker
pull avsm/docker-opam:ubuntu-trusty-4.01.0

Luke


On 22 October 2014 21:03, Anil Madhavapeddy <anil@recoil.org> wrote:

> CCing the devel list so everyone knows how this works.
>
> If you have a Linux box with Docker installed, you can clone the
> precise environment by:
>
> $ sudo docker pull avsm/docker
>
> This gives you access to a number of 'tags' (which are predefined
> builds of OPAM/OCaml on various filesystems). Full list of tags are:
>
> https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/
>
> You can use a tag directly via:
>
> $ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 <cmd>
>
> The scripts referenced below already do this, and are all in:
> https://github.com/mirage/is-mirage-broken
>
> The cron.sh is the one that's run regularly and sync with the
> Docker registry and builds every combination.
>
> To recreate one of them, just run build.sh directly; e.g.
>
> ./build.sh ubuntu-trusty-4.01.0 mirage-skeleton
>
> If you already have a suitable environment with OPAM and OCaml
> installed system-wide, you can just run the shell scripts in
> is-mirage-broken/scripts/ directly to fix them.
>
> -anil
>
> On 22 Oct 2014, at 13:55, Nik Sultana <ns441@cam.ac.uk> wrote:
>
> > Hi Anil, is this something I can try locally to see if the modified
> script works, or do I need to run the script on a build server somewhere?
> Feel free to point me to any "BUILD" notes i could use for this, in case =
I
> can test it and make a PR, if it's still an open issue.
> > Best,
> > Nik
> >
> > On 2014-10-21 16:18, Richard Mortier wrote:
> >> if you read the docs i quoted, that's exactly as documented:
> >>>>>>>         =E2=80=A2 The -e setting shall be ignored when executing =
the
> compound list
> >>>>>>> following the while, until, if, or elif reserved word, a pipeline
> >>>>>>> beginning with the ! reserved word, or any command of an AND-OR
> list
> >>>>>>> other than the last.
> >> it might be rather counter-intuitive and of dubious merit, but it's
> >> the documented behaviour...
> >> On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:
> >>> I think Richard might be right. The semantics of && seems to be a bit
> >>> counterintuitive in this case. Consider this script:
> >>> #!/bin/sh
> >>> set -e #line1
> >>> false && echo hello #line2
> >>> echo hello2
> >>> false #line4
> >>> echo world
> >>> It gives the output:
> >>> hello2
> >>> which is odd, because we expect the script to be terminated at line2 =
--
> >>> the line "echo hello2" should never be reached. Instead, the script
> >>> continues on and is only terminated at line4.
> >>> Just to test the effect of "set -e", commenting line1 and running the
> >>> script gives the output:
> >>> hello2
> >>> world
> >>> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
> >>>> The && should catch that failure.  Consider:
> >>>> #!/bin/sh -ex
> >>>> exit 1 && echo hello
> >>>> echo world
> >>>> Executing that:
> >>>> $ ./test.sh
> >>>> + exit 1
> >>>> If the make depend fails, I'd expect the && to fail, and the resulti=
ng
> >>>> non-zero exit code to cause the whole shell to exit.
> >>>> -anil
> >>>> On 21 Oct 2014, at 15:37, Richard Mortier
> >>>> <Richard.Mortier@nottingham.ac.uk> wrote:
> >>>>> but isn't it the "make depend" step that's failing as far as the
> >>>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it
> >>>>> won't exit according to point 2. below (-e is ignored if it's any
> >>>>> command of an AND-OR list other than the last).
> >>>>> with -e on, seems expected practice is to issue the commands
> >>>>> individually i.e.
> >>>>> make depend
> >>>>> make configure
> >>>>> make build
> >>>>> ...and let the -e fail them if required. (assuming you don't want t=
o
> >>>>> accumulate info about failures of depend/configure on other platfor=
ms
> >>>>> before bailing out.)
> >>>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote=
:
> >>>>>> It's here:
> >>>>>>
> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mirage-www
> >>>>>> And the `make` invocations do seem to exit with a non-zero exit
> code.
> >>>>>> -ani
> >>>>>> On 21 Oct 2014, at 15:02, Richard Mortier
> >>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
> >>>>>>> not sure precisely where the script being executed actually is bu=
t
> >>>>>>> could it be because it's a command in a multi-command pipeline?
> >>>>>>>
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
> >>>>>>> -e
> >>>>>>> When this option is on, when any command fails (for any of the
> >>>>>>> reasons listed in Consequences of Shell Errors or by returning an
> >>>>>>> exit status greater than zero), the shell immediately shall exit
> >>>>>>> with the following exceptions:
> >>>>>>>         =E2=80=A2 The failure of any individual command in a mult=
i-command
> pipeline
> >>>>>>> shall not cause the shell to exit. Only the failure of the pipeli=
ne
> >>>>>>> itself shall be considered.
> >>>>>>>         =E2=80=A2 The -e setting shall be ignored when executing =
the
> compound list
> >>>>>>> following the while, until, if, or elif reserved word, a pipeline
> >>>>>>> beginning with the ! reserved word, or any command of an AND-OR
> list
> >>>>>>> other than the last.
> >>>>>>>         =E2=80=A2 If the exit status of a compound command other =
than a
> subshell
> >>>>>>> command was the result of a failure while -e was being ignored,
> then
> >>>>>>> -e shall not apply to this command.
> >>>>>>> This requirement applies to the shell environment and each subshe=
ll
> >>>>>>> environment separately. For example, in:
> >>>>>>> set -e; (false; echo one) | cat; echo two
> >>>>>>> the false command causes the subshell to exit without executing
> echo
> >>>>>>> one; however, echo two is executed because the exit status of the
> >>>>>>> pipeline (false; echo one) | cat is zero.
> >>>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org>
> wrote:
> >>>>>>>> Great!  For the rest of the list, it looks like mirage-dev is
> >>>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty)=
,
> >>>>>>>> but not with the internal one (CentOS builds):
> >>>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
> >>>>>>>> This is probably due to our excessive use of depopts; I will
> >>>>>>>> replace those with explicit virtual packages (e.g. dns-mirage)
> that
> >>>>>>>> encode all the dependencies they need.
> >>>>>>>> More mysteriously, the `set -e` in the shell script isn't causin=
g
> >>>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always
> >>>>>>>> printed.  We need a is-mirage-working-working script to fix our
> >>>>>>>> is-mirage-working script :-)
> >>>>>>>> -anil
> >>>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker
> image
> >>>>>>>>> with 4.01.
> >>>>>>>>> Luke
> >>>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>
> >>>>>>>>> wrote:
> >>>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com=
>
> >>>>>>>>> wrote:
> >>>>>>>>>> Hi,
> >>>>>>>>>> I tried to build mirage-www as per
> >>>>>>>>>> http://openmirage.org/wiki/mirage-www
> >>>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
> >>>>>>>>>> (success)
> >>>>>>>>>> $ make depend
> >>>>>>>>>> (success*)
> >>>>>>>>>> $ make
> >>>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs
> >>>>>>>>>>
> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.un=
ix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-types,mirage-t=
ypes.lwt,tcpip.stack-socket
> >>>>>>>>>> -tags
> "syntax(camlp4o),annot,bin_annot,strict_sequence,principal"
> >>>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
> >>>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal
> >>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
> >>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
> >>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package
> lwt
> >>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
> >>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
> >>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> >>>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal
> >>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
> >>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
> >>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package
> lwt
> >>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
> >>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
> >>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
> >>>>>>>>>> File "main.ml", line 98, characters 2-13:
> >>>>>>>>>> Error: Unbound module OS
> >>>>>>>>>> Command exited with code 2.
> >>>>>>>>>> make: *** [main.native] Error 10
> >>>>>>>>>> To try to ensure that this was reproducible I also tried
> starting
> >>>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image
> and
> >>>>>>>>>> got the same error. However, I had to change the ounit package
> >>>>>>>>>> URL because forge.ocamlcore.org is apparently down.
> >>>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the
> >>>>>>>>>> "configure" / "make depend" step because it was apparently
> >>>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the
> >>>>>>>>>> problem?
> >>>>>>>>> Hi Luke,
> >>>>>>>>> Thanks for the bug report, and bonus points for trying the Dock=
er
> >>>>>>>>> repository out.  I've fixed the underlying issue that was causi=
ng
> >>>>>>>>> the unbound OS module to show up -- it's because of some recent
> >>>>>>>>> shuffling of dependencies in console handling, and this resulte=
d
> >>>>>>>>> in mirage-unix no longer being implicitly depended on.  I've
> >>>>>>>>> modified the mirage tool to explicitly add the dependency in.
> >>>>>>>>> In order to help keep things working across the increasing numb=
er
> >>>>>>>>> of distributions, I've also created a couple of cron jobs that
> >>>>>>>>> automatically build things and publish the logs
> >>>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on
> OCaml
> >>>>>>>>> 4.01 and 4.02:
> >>>>>>>>>
> https://registry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/
> >>>>>>>>> https://github.com/avsm/docker-opam has the sources
> >>>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob
> >>>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to
> the
> >>>>>>>>> logs/ directory in this repo.  When that's completed running (a=
nd
> >>>>>>>>> we've fixed the build breakages!), it should be easy to get it =
on
> >>>>>>>>> the website as a badge so we can see the status of repos at a
> >>>>>>>>> glance.
> >>>>>>>>> About to hop on a flight now, so I've left the cron job running
> >>>>>>>>> and will check it out tomorrow.  If anyone else can test out th=
e
> >>>>>>>>> Docker images in the meanwhile, feel free...
> >>>>>>>>> -anil
> >>>>>>>>> _______________________________________________
> >>>>>>>>> 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
> >>>>>>> --
> >>>>>>> Cheers,
> >>>>>>> R.
> >>>>>>> _______________________________________________
> >>>>>>> MirageOS-devel mailing list
> >>>>>>> MirageOS-devel@lists.xenproject.org
> >>>>>>>
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> >>>>> --
> >>>>> Cheers,
> >>>>> R.
> >>>>> _______________________________________________
> >>>>> 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
> >
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

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

<div dir=3D"ltr">Minor correction:=C2=A0<span style=3D"font-family:arial,sa=
ns-serif;font-size:12.8000001907349px">sudo docker pull avsm/docker-opam</s=
pan><div><font face=3D"arial, sans-serif"><br></font><div>The only point I =
would add is that if you only want an image for one OS then you can save ti=
me and disk space by pulling just one tag, e.g.=C2=A0docker pull avsm/docke=
r-opam:ubuntu-trusty-4.01.0<div><br></div><div>Luke</div><div><br></div></d=
iv></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On=
 22 October 2014 21:03, Anil Madhavapeddy <span dir=3D"ltr">&lt;<a href=3D"=
mailto:anil@recoil.org" target=3D"_blank">anil@recoil.org</a>&gt;</span> wr=
ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex">CCing the devel list so everyone kno=
ws how this works.<br>
<br>
If you have a Linux box with Docker installed, you can clone the<br>
precise environment by:<br>
<br>
$ sudo docker pull avsm/docker<br>
<br>
This gives you access to a number of &#39;tags&#39; (which are predefined<b=
r>
builds of OPAM/OCaml on various filesystems). Full list of tags are:<br>
<br>
<a href=3D"https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/"=
 target=3D"_blank">https://registry.hub.docker.com/u/avsm/docker-opam/tags/=
manage/</a><br>
<br>
You can use a tag directly via:<br>
<br>
$ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 &lt;cmd&gt;<br>
<br>
The scripts referenced below already do this, and are all in:<br>
<a href=3D"https://github.com/mirage/is-mirage-broken" target=3D"_blank">ht=
tps://github.com/mirage/is-mirage-broken</a><br>
<br>
The cron.sh is the one that&#39;s run regularly and sync with the<br>
Docker registry and builds every combination.<br>
<br>
To recreate one of them, just run build.sh directly; e.g.<br>
<br>
./build.sh ubuntu-trusty-4.01.0 mirage-skeleton<br>
<br>
If you already have a suitable environment with OPAM and OCaml<br>
installed system-wide, you can just run the shell scripts in<br>
is-mirage-broken/scripts/ directly to fix them.<br>
<br>
-anil<br>
<br>
On 22 Oct 2014, at 13:55, Nik Sultana &lt;<a href=3D"mailto:ns441@cam.ac.uk=
">ns441@cam.ac.uk</a>&gt; wrote:<br>
<br>
&gt; Hi Anil, is this something I can try locally to see if the modified sc=
ript works, or do I need to run the script on a build server somewhere? Fee=
l free to point me to any &quot;BUILD&quot; notes i could use for this, in =
case I can test it and make a PR, if it&#39;s still an open issue.<br>
&gt; Best,<br>
&gt; Nik<br>
&gt;<br>
&gt; On 2014-10-21 16:18, Richard Mortier wrote:<br>
&gt;&gt; if you read the docs i quoted, that&#39;s exactly as documented:<b=
r>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 The=
 -e setting shall be ignored when executing the compound list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; following the while, until, if, or elif reserv=
ed word, a pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; beginning with the ! reserved word, or any com=
mand of an AND-OR list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; other than the last.<br>
&gt;&gt; it might be rather counter-intuitive and of dubious merit, but it&=
#39;s<br>
&gt;&gt; the documented behaviour...<br>
&gt;&gt; On 21 Oct 2014, at 16:01, Nik Sultana &lt;<a href=3D"mailto:ns441@=
cam.ac.uk">ns441@cam.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt; I think Richard might be right. The semantics of &amp;&amp; se=
ems to be a bit<br>
&gt;&gt;&gt; counterintuitive in this case. Consider this script:<br>
&gt;&gt;&gt; #!/bin/sh<br>
&gt;&gt;&gt; set -e #line1<br>
&gt;&gt;&gt; false &amp;&amp; echo hello #line2<br>
&gt;&gt;&gt; echo hello2<br>
&gt;&gt;&gt; false #line4<br>
&gt;&gt;&gt; echo world<br>
&gt;&gt;&gt; It gives the output:<br>
&gt;&gt;&gt; hello2<br>
&gt;&gt;&gt; which is odd, because we expect the script to be terminated at=
 line2 --<br>
&gt;&gt;&gt; the line &quot;echo hello2&quot; should never be reached. Inst=
ead, the script<br>
&gt;&gt;&gt; continues on and is only terminated at line4.<br>
&gt;&gt;&gt; Just to test the effect of &quot;set -e&quot;, commenting line=
1 and running the<br>
&gt;&gt;&gt; script gives the output:<br>
&gt;&gt;&gt; hello2<br>
&gt;&gt;&gt; world<br>
&gt;&gt;&gt; On 2014-10-21 15:49, Anil Madhavapeddy wrote:<br>
&gt;&gt;&gt;&gt; The &amp;&amp; should catch that failure.=C2=A0 Consider:<=
br>
&gt;&gt;&gt;&gt; #!/bin/sh -ex<br>
&gt;&gt;&gt;&gt; exit 1 &amp;&amp; echo hello<br>
&gt;&gt;&gt;&gt; echo world<br>
&gt;&gt;&gt;&gt; Executing that:<br>
&gt;&gt;&gt;&gt; $ ./test.sh<br>
&gt;&gt;&gt;&gt; + exit 1<br>
&gt;&gt;&gt;&gt; If the make depend fails, I&#39;d expect the &amp;&amp; to=
 fail, and the resulting<br>
&gt;&gt;&gt;&gt; non-zero exit code to cause the whole shell to exit.<br>
&gt;&gt;&gt;&gt; -anil<br>
&gt;&gt;&gt;&gt; On 21 Oct 2014, at 15:37, Richard Mortier<br>
&gt;&gt;&gt;&gt; &lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Ri=
chard.Mortier@nottingham.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt; but isn&#39;t it the &quot;make depend&quot; step that=
&#39;s failing as far as the<br>
&gt;&gt;&gt;&gt;&gt; is-mirage-broken/scripts/mirage-www script is concerne=
d -- hence it<br>
&gt;&gt;&gt;&gt;&gt; won&#39;t exit according to point 2. below (-e is igno=
red if it&#39;s any<br>
&gt;&gt;&gt;&gt;&gt; command of an AND-OR list other than the last).<br>
&gt;&gt;&gt;&gt;&gt; with -e on, seems expected practice is to issue the co=
mmands<br>
&gt;&gt;&gt;&gt;&gt; individually i.e.<br>
&gt;&gt;&gt;&gt;&gt; make depend<br>
&gt;&gt;&gt;&gt;&gt; make configure<br>
&gt;&gt;&gt;&gt;&gt; make build<br>
&gt;&gt;&gt;&gt;&gt; ...and let the -e fail them if required. (assuming you=
 don&#39;t want to<br>
&gt;&gt;&gt;&gt;&gt; accumulate info about failures of depend/configure on =
other platforms<br>
&gt;&gt;&gt;&gt;&gt; before bailing out.)<br>
&gt;&gt;&gt;&gt;&gt; On 21 Oct 2014, at 15:18, Anil Madhavapeddy &lt;<a hre=
f=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt; It&#39;s here:<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://github.com/mirage/is-mirage-bro=
ken/blob/master/scripts/mirage-www" target=3D"_blank">https://github.com/mi=
rage/is-mirage-broken/blob/master/scripts/mirage-www</a><br>
&gt;&gt;&gt;&gt;&gt;&gt; And the `make` invocations do seem to exit with a =
non-zero exit code.<br>
&gt;&gt;&gt;&gt;&gt;&gt; -ani<br>
&gt;&gt;&gt;&gt;&gt;&gt; On 21 Oct 2014, at 15:02, Richard Mortier<br>
&gt;&gt;&gt;&gt;&gt;&gt; &lt;<a href=3D"mailto:Richard.Mortier@nottingham.a=
c.uk">Richard.Mortier@nottingham.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; not sure precisely where the script being exec=
uted actually is but<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; could it be because it&#39;s a command in a mu=
lti-command pipeline?<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://pubs.opengroup.org/onlinepub=
s/9699919799/utilities/V3_chap02.html" target=3D"_blank">http://pubs.opengr=
oup.org/onlinepubs/9699919799/utilities/V3_chap02.html</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; -e<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; When this option is on, when any command fails=
 (for any of the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; reasons listed in Consequences of Shell Errors=
 or by returning an<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; exit status greater than zero), the shell imme=
diately shall exit<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; with the following exceptions:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 The=
 failure of any individual command in a multi-command pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; shall not cause the shell to exit. Only the fa=
ilure of the pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; itself shall be considered.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 The=
 -e setting shall be ignored when executing the compound list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; following the while, until, if, or elif reserv=
ed word, a pipeline<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; beginning with the ! reserved word, or any com=
mand of an AND-OR list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; other than the last.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A2 If =
the exit status of a compound command other than a subshell<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; command was the result of a failure while -e w=
as being ignored, then<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; -e shall not apply to this command.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; This requirement applies to the shell environm=
ent and each subshell<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; environment separately. For example, in:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; set -e; (false; echo one) | cat; echo two<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; the false command causes the subshell to exit =
without executing echo<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; one; however, echo two is executed because the=
 exit status of the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; pipeline (false; echo one) | cat is zero.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 21 Oct 2014, at 14:31, Anil Madhavapeddy &l=
t;<a href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Great!=C2=A0 For the rest of the list, it =
looks like mirage-dev is<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; working with the external OPAM solver (asp=
cud, on Ubuntu-trusty),<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; but not with the internal one (CentOS buil=
ds):<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://github.com/mirage/is-mi=
rage-broken/tree/master/logs" target=3D"_blank">https://github.com/mirage/i=
s-mirage-broken/tree/master/logs</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; This is probably due to our excessive use =
of depopts; I will<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; replace those with explicit virtual packag=
es (e.g. dns-mirage) that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; encode all the dependencies they need.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; More mysteriously, the `set -e` in the she=
ll script isn&#39;t causing<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; it to terminate early, so the `MIRAGE WORK=
S` string is always<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; printed.=C2=A0 We need a is-mirage-working=
-working script to fix our<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; is-mirage-working script :-)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -anil<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 20 Oct 2014, at 15:09, Luke Dunstan &lt=
;<a href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>&gt;=
<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks, I was able to compile and run =
mirage-www on a Docker image<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; with 4.01.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Luke<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 20 October 2014 09:28, Anil Madhava=
peddy &lt;<a href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 19 Oct 2014, at 03:17, Luke Dunstan=
 &lt;<a href=3D"mailto:lukedunstan81@gmail.com">lukedunstan81@gmail.com</a>=
&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I tried to build mirage-www as per=
<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://openmirage.org/w=
iki/mirage-www" target=3D"_blank">http://openmirage.org/wiki/mirage-www</a>=
<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; $ env NET=3Dsocket FS=3Dcrunch mir=
age configure --unix<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (success)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; $ make depend<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (success*)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; $ make<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; camlbuild -classic-display -use-oc=
amlfind -pkgs<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; lwt.syntax,conduit.mirage,cow.synt=
ax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-console.unix,mirage-fs=
-unix,mirage-http,mirage-types,mirage-types.lwt,tcpip.stack-socket<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -tags &quot;syntax(camlp4o),annot,=
bin_annot,strict_sequence,principal&quot;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -cflag -g -lflags -g,-linkpkg main=
.native<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ocamlfind ocamlc -c -g -annot -bin=
-annot -principal<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -strict-sequence -package tcpip.st=
ack-socket -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; mirage-types.lwt -package mirage-t=
ypes -package mirage-http<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package mirage-fs-unix -package m=
irage-console.unix -package lwt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package io-page.unix -package io-=
page -package cstruct -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; cowabloga -package cow.syntax -pac=
kage conduit.mirage -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; lwt.syntax -syntax camlp4o -o main=
.cmo <a href=3D"http://main.ml" target=3D"_blank">main.ml</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; + ocamlfind ocamlc -c -g -annot -b=
in-annot -principal<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -strict-sequence -package tcpip.st=
ack-socket -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; mirage-types.lwt -package mirage-t=
ypes -package mirage-http<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package mirage-fs-unix -package m=
irage-console.unix -package lwt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -package io-page.unix -package io-=
page -package cstruct -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; cowabloga -package cow.syntax -pac=
kage conduit.mirage -package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; lwt.syntax -syntax camlp4o -o main=
.cmo <a href=3D"http://main.ml" target=3D"_blank">main.ml</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; File &quot;<a href=3D"http://main.=
ml" target=3D"_blank">main.ml</a>&quot;, line 98, characters 2-13:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Error: Unbound module OS<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Command exited with code 2.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; make: *** [main.native] Error 10<b=
r>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; To try to ensure that this was rep=
roducible I also tried starting<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; from the &quot;avsm/docker-opam:ub=
untu-trusty-4.01.0&quot; Docker image and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; got the same error. However, I had=
 to change the ounit package<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; URL because <a href=3D"http://forg=
e.ocamlcore.org" target=3D"_blank">forge.ocamlcore.org</a> is apparently do=
wn.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Also, I had to &quot;apt-get insta=
ll libssl-dev&quot; to get past the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &quot;configure&quot; / &quot;make=
 depend&quot; step because it was apparently<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; required to compile ssl-0.4.7, so =
maybe that is related to the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; problem?<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi Luke,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks for the bug report, and bonus p=
oints for trying the Docker<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; repository out.=C2=A0 I&#39;ve fixed t=
he underlying issue that was causing<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; the unbound OS module to show up -- it=
&#39;s because of some recent<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; shuffling of dependencies in console h=
andling, and this resulted<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; in mirage-unix no longer being implici=
tly depended on.=C2=A0 I&#39;ve<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; modified the mirage tool to explicitly=
 add the dependency in.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; In order to help keep things working a=
cross the increasing number<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; of distributions, I&#39;ve also create=
d a couple of cron jobs that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; automatically build things and publish=
 the logs<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; - The Docker registry now has OPAM tag=
s for Ubuntu/CentOS on OCaml<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 4.01 and 4.02:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://registry.hub.docker=
.com/u/avsm/docker-opam/builds_history/15669/" target=3D"_blank">https://re=
gistry.hub.docker.com/u/avsm/docker-opam/builds_history/15669/</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"https://github.com/avsm/doc=
ker-opam" target=3D"_blank">https://github.com/avsm/docker-opam</a> has the=
 sources<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; - <a href=3D"https://github.com/mirage=
/is-mirage-broken" target=3D"_blank">https://github.com/mirage/is-mirage-br=
oken</a> runs as a cronjob<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (cron.sh) on <a href=3D"http://blobs.o=
penmirage.org" target=3D"_blank">blobs.openmirage.org</a> daily and pushes =
the logs to the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; logs/ directory in this repo.=C2=A0 Wh=
en that&#39;s completed running (and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; we&#39;ve fixed the build breakages!),=
 it should be easy to get it on<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; the website as a badge so we can see t=
he status of repos at a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; glance.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; About to hop on a flight now, so I&#39=
;ve left the cron job running<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; and will check it out tomorrow.=C2=A0 =
If anyone else can test out the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Docker images in the meanwhile, feel f=
ree...<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -anil<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ______________________________________=
_________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists=
.xenproject.org">MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org=
/cgi-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists.xe=
nproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; __________________________________________=
_____<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xen=
project.org">MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi=
-bin/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenpro=
ject.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; R.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; ______________________________________________=
_<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproj=
ect.org">MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin=
/mailman/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject=
.org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;&gt;&gt; R.<br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org"=
>MirageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman=
/listinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi=
-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt;&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">Mir=
ageOS-devel@lists.xenproject.org</a><br>
&gt;&gt;&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/lis=
tinfo/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin=
/mailman/listinfo/mirageos-devel</a><br>
&gt;<br>
<br>
<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" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a><br>
</blockquote></div><br></div>

--001a113494f4b60a05050605cd57--


--===============5061598911843364957==
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

--===============5061598911843364957==--


From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 17:13:20 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 17:13: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 1XgzTL-0005lx-Cf; Wed, 22 Oct 2014 17:13:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XgzTK-0005lr-Hr
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 17:13:18 +0000
Received: from [193.109.254.147:19385] by server-3.bemta-14.messagelabs.com id
	E4/EC-23707-DA5E7445; Wed, 22 Oct 2014 17:13:17 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-14.tower-27.messagelabs.com!1413997996!11889780!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21172 invoked from network); 22 Oct 2014 17:13:16 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 17:13:16 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:49272)
	by ppsw-52.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
	with esmtp id 1XgzTG-0001bN-F9 (Exim 4.82_3-c0e5623)
	(return-path <ns441@cam.ac.uk>); Wed, 22 Oct 2014 18:13:14 +0100
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1XgzTG-000rge-Ld (Exim
	4.80_167-5a66dd3)
	(return-path <ns441@cam.ac.uk>); Wed, 22 Oct 2014 18:13:14 +0100
Received: from lusankya.mac.cl.cam.ac.uk ([128.232.56.51])
	by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Wed, 22 Oct 2014 18:13:14 +0100
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Wed, 22 Oct 2014 18:13:14 +0100
From: Nik Sultana <ns441@cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
	<6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
Message-ID: <3448199d59c8944225dd2d3d9ca184ad@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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

VGhhbmtzIEFuaWwsIEkgY291bGQgYnVpbGQgdGhlIFVidW50dSAxNC4wNCAoVHJ1c3R5KSBjb250
YWluZXIgZm9sbG93aW5nIAp5b3VyIGluc3RydWN0aW9ucywgd2l0aCBvbmUgbW9kaWZpY2F0aW9u
OiByZWZlcmVuY2luZyAiYXZzbS9kb2NrZXItb3BhbSIgCmluc3RlYWQgb2YgImF2c20vZG9ja2Vy
Ii4KCkkgaGF2ZW4ndCB0ZXN0ZWQgdGhlIG90aGVyIGNvbnRhaW5lcnMgc2luY2UgSSBkb24ndCBo
YXZlIHJlYWR5IGFjY2VzcyB0byAKYSBDZW50T1MgYm94LiBUaGlzIHBhdGNoIHdpbGwgd29yayBp
ZiB0aGUgb3RoZXIgZGlzdHJpYnV0aW9ucyB1c2UgYSAKdmVyc2lvbiBvZiBzaCB0aGF0J3MgY29t
cGF0aWJsZSB0byB0aGF0IHVzZWQgaW4gVHJ1c3R5LgoKSSB0ZXN0ZWQgdGhlIHByb2JsZW0gd2l0
aCB0aGUgc2VtYW50aWNzIG9mICYmIHVuZGVyIC1lIGJ5IHJlcGxhY2luZyB0aGUgCmxpbmUKICAg
bWFrZSBjb25maWd1cmUgJiYgbWFrZSBkZXBlbmQgJiYgbWFrZSBidWlsZAp3aXRoCiAgIGZhbHNl
ICYmIG1ha2UgY29uZmlndXJlICYmIG1ha2UgZGVwZW5kICYmIG1ha2UgYnVpbGQKYW5kIHZlcmlm
aWVkIHRoYXQgSSBzdGlsbCBnb3QgIk1JUkFHRSBXT1JLUyIgcHJpbnRlZCBhdCB0aGUgZW5kIGFm
dGVyIApydW5uaW5nCiAgIC4vYnVpbGQuc2ggdWJ1bnR1LXRydXN0eS00LjAxLjAgbWlyYWdlLXNr
ZWxldG9uCgpUaGVuIEkgdW5mb2xkZWQKICAgZmFsc2UgJiYgbWFrZSBjb25maWd1cmUgJiYgbWFr
ZSBkZXBlbmQgJiYgbWFrZSBidWlsZAppbnRvCiAgIGZhbHNlCiAgIG1ha2UgY29uZmlndXJlCiAg
IG1ha2UgZGVwZW5kCiAgIG1ha2UgYnVpbGQKYW5kIHJlcmFuLCBhbmQgdmVyaWZpZWQgdGhhdCBJ
IGRpZCBOT1QgZ2V0ICJNSVJBR0UgV09SS1MiIHByaW50ZWQgYXQgdGhlIAplbmQuCgpGaW5hbGx5
IEkgcmVtb3ZlZCAiZmFsc2UiLCBhbmQgcmVyYW4uCkkgZGlkIGdldCAiTUlSQUdFIFdPUktTIiBw
cmludGVkIGF0IHRoZSBlbmQuCgpBdCB0aGUgcmlzayBvZiBhc2tpbmcgYW4gb3Zlci1hc2tlZCBx
dWVzdGlvbjogd2hhdCdzIHRoZSBwcm9jZWR1cmUgZm9yIAp0aGUgUFIsIGRvIEkgbmVlZCB0byBx
dW90ZSBhbiBpc3N1ZSBudW1iZXIgZXRjLCBvciBjYW4gSSBqdXN0IGdvIGFoZWFkIAphbmQgY3Jl
YXRlIGEgUFIgZnJvbSBhIGZvcms/CgpOaWsKCk9uIDIwMTQtMTAtMjIgMTQ6MDMsIEFuaWwgTWFk
aGF2YXBlZGR5IHdyb3RlOgo+IENDaW5nIHRoZSBkZXZlbCBsaXN0IHNvIGV2ZXJ5b25lIGtub3dz
IGhvdyB0aGlzIHdvcmtzLgo+IAo+IElmIHlvdSBoYXZlIGEgTGludXggYm94IHdpdGggRG9ja2Vy
IGluc3RhbGxlZCwgeW91IGNhbiBjbG9uZSB0aGUKPiBwcmVjaXNlIGVudmlyb25tZW50IGJ5Ogo+
IAo+ICQgc3VkbyBkb2NrZXIgcHVsbCBhdnNtL2RvY2tlcgo+IAo+IFRoaXMgZ2l2ZXMgeW91IGFj
Y2VzcyB0byBhIG51bWJlciBvZiAndGFncycgKHdoaWNoIGFyZSBwcmVkZWZpbmVkCj4gYnVpbGRz
IG9mIE9QQU0vT0NhbWwgb24gdmFyaW91cyBmaWxlc3lzdGVtcykuIEZ1bGwgbGlzdCBvZiB0YWdz
IGFyZToKPiAKPiBodHRwczovL3JlZ2lzdHJ5Lmh1Yi5kb2NrZXIuY29tL3UvYXZzbS9kb2NrZXIt
b3BhbS90YWdzL21hbmFnZS8KPiAKPiBZb3UgY2FuIHVzZSBhIHRhZyBkaXJlY3RseSB2aWE6Cj4g
Cj4gJCBzdWRvIGRvY2tlciBidWlsZCAtdCBhdnNtL2RvY2tlcjp1YnVudHUtdHJ1c3R5LTQuMDEu
MCA8Y21kPgo+IAo+IFRoZSBzY3JpcHRzIHJlZmVyZW5jZWQgYmVsb3cgYWxyZWFkeSBkbyB0aGlz
LCBhbmQgYXJlIGFsbCBpbjoKPiBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL2lzLW1pcmFnZS1i
cm9rZW4KPiAKPiBUaGUgY3Jvbi5zaCBpcyB0aGUgb25lIHRoYXQncyBydW4gcmVndWxhcmx5IGFu
ZCBzeW5jIHdpdGggdGhlCj4gRG9ja2VyIHJlZ2lzdHJ5IGFuZCBidWlsZHMgZXZlcnkgY29tYmlu
YXRpb24uCj4gCj4gVG8gcmVjcmVhdGUgb25lIG9mIHRoZW0sIGp1c3QgcnVuIGJ1aWxkLnNoIGRp
cmVjdGx5OyBlLmcuCj4gCj4gLi9idWlsZC5zaCB1YnVudHUtdHJ1c3R5LTQuMDEuMCBtaXJhZ2Ut
c2tlbGV0b24KPiAKPiBJZiB5b3UgYWxyZWFkeSBoYXZlIGEgc3VpdGFibGUgZW52aXJvbm1lbnQg
d2l0aCBPUEFNIGFuZCBPQ2FtbAo+IGluc3RhbGxlZCBzeXN0ZW0td2lkZSwgeW91IGNhbiBqdXN0
IHJ1biB0aGUgc2hlbGwgc2NyaXB0cyBpbgo+IGlzLW1pcmFnZS1icm9rZW4vc2NyaXB0cy8gZGly
ZWN0bHkgdG8gZml4IHRoZW0uCj4gCj4gLWFuaWwKPiAKPiBPbiAyMiBPY3QgMjAxNCwgYXQgMTM6
NTUsIE5payBTdWx0YW5hIDxuczQ0MUBjYW0uYWMudWs+IHdyb3RlOgo+IAo+PiBIaSBBbmlsLCBp
cyB0aGlzIHNvbWV0aGluZyBJIGNhbiB0cnkgbG9jYWxseSB0byBzZWUgaWYgdGhlIG1vZGlmaWVk
IAo+PiBzY3JpcHQgd29ya3MsIG9yIGRvIEkgbmVlZCB0byBydW4gdGhlIHNjcmlwdCBvbiBhIGJ1
aWxkIHNlcnZlciAKPj4gc29tZXdoZXJlPyBGZWVsIGZyZWUgdG8gcG9pbnQgbWUgdG8gYW55ICJC
VUlMRCIgbm90ZXMgaSBjb3VsZCB1c2UgZm9yIAo+PiB0aGlzLCBpbiBjYXNlIEkgY2FuIHRlc3Qg
aXQgYW5kIG1ha2UgYSBQUiwgaWYgaXQncyBzdGlsbCBhbiBvcGVuIAo+PiBpc3N1ZS4KPj4gQmVz
dCwKPj4gTmlrCj4+IAo+PiBPbiAyMDE0LTEwLTIxIDE2OjE4LCBSaWNoYXJkIE1vcnRpZXIgd3Jv
dGU6Cj4+PiBpZiB5b3UgcmVhZCB0aGUgZG9jcyBpIHF1b3RlZCwgdGhhdCdzIGV4YWN0bHkgYXMg
ZG9jdW1lbnRlZDoKPj4+Pj4+Pj4gCeKAoiBUaGUgLWUgc2V0dGluZyBzaGFsbCBiZSBpZ25vcmVk
IHdoZW4gZXhlY3V0aW5nIHRoZSBjb21wb3VuZCAKPj4+Pj4+Pj4gbGlzdAo+Pj4+Pj4+PiBmb2xs
b3dpbmcgdGhlIHdoaWxlLCB1bnRpbCwgaWYsIG9yIGVsaWYgcmVzZXJ2ZWQgd29yZCwgYSAKPj4+
Pj4+Pj4gcGlwZWxpbmUKPj4+Pj4+Pj4gYmVnaW5uaW5nIHdpdGggdGhlICEgcmVzZXJ2ZWQgd29y
ZCwgb3IgYW55IGNvbW1hbmQgb2YgYW4gQU5ELU9SIAo+Pj4+Pj4+PiBsaXN0Cj4+Pj4+Pj4+IG90
aGVyIHRoYW4gdGhlIGxhc3QuCj4+PiBpdCBtaWdodCBiZSByYXRoZXIgY291bnRlci1pbnR1aXRp
dmUgYW5kIG9mIGR1YmlvdXMgbWVyaXQsIGJ1dCBpdCdzCj4+PiB0aGUgZG9jdW1lbnRlZCBiZWhh
dmlvdXIuLi4KPj4+IE9uIDIxIE9jdCAyMDE0LCBhdCAxNjowMSwgTmlrIFN1bHRhbmEgPG5zNDQx
QGNhbS5hYy51az4gd3JvdGU6Cj4+Pj4gSSB0aGluayBSaWNoYXJkIG1pZ2h0IGJlIHJpZ2h0LiBU
aGUgc2VtYW50aWNzIG9mICYmIHNlZW1zIHRvIGJlIGEgCj4+Pj4gYml0Cj4+Pj4gY291bnRlcmlu
dHVpdGl2ZSBpbiB0aGlzIGNhc2UuIENvbnNpZGVyIHRoaXMgc2NyaXB0Ogo+Pj4+ICMhL2Jpbi9z
aAo+Pj4+IHNldCAtZSAjbGluZTEKPj4+PiBmYWxzZSAmJiBlY2hvIGhlbGxvICNsaW5lMgo+Pj4+
IGVjaG8gaGVsbG8yCj4+Pj4gZmFsc2UgI2xpbmU0Cj4+Pj4gZWNobyB3b3JsZAo+Pj4+IEl0IGdp
dmVzIHRoZSBvdXRwdXQ6Cj4+Pj4gaGVsbG8yCj4+Pj4gd2hpY2ggaXMgb2RkLCBiZWNhdXNlIHdl
IGV4cGVjdCB0aGUgc2NyaXB0IHRvIGJlIHRlcm1pbmF0ZWQgYXQgbGluZTIgCj4+Pj4gLS0KPj4+
PiB0aGUgbGluZSAiZWNobyBoZWxsbzIiIHNob3VsZCBuZXZlciBiZSByZWFjaGVkLiBJbnN0ZWFk
LCB0aGUgc2NyaXB0Cj4+Pj4gY29udGludWVzIG9uIGFuZCBpcyBvbmx5IHRlcm1pbmF0ZWQgYXQg
bGluZTQuCj4+Pj4gSnVzdCB0byB0ZXN0IHRoZSBlZmZlY3Qgb2YgInNldCAtZSIsIGNvbW1lbnRp
bmcgbGluZTEgYW5kIHJ1bm5pbmcgCj4+Pj4gdGhlCj4+Pj4gc2NyaXB0IGdpdmVzIHRoZSBvdXRw
dXQ6Cj4+Pj4gaGVsbG8yCj4+Pj4gd29ybGQKPj4+PiBPbiAyMDE0LTEwLTIxIDE1OjQ5LCBBbmls
IE1hZGhhdmFwZWRkeSB3cm90ZToKPj4+Pj4gVGhlICYmIHNob3VsZCBjYXRjaCB0aGF0IGZhaWx1
cmUuICBDb25zaWRlcjoKPj4+Pj4gIyEvYmluL3NoIC1leAo+Pj4+PiBleGl0IDEgJiYgZWNobyBo
ZWxsbwo+Pj4+PiBlY2hvIHdvcmxkCj4+Pj4+IEV4ZWN1dGluZyB0aGF0Ogo+Pj4+PiAkIC4vdGVz
dC5zaAo+Pj4+PiArIGV4aXQgMQo+Pj4+PiBJZiB0aGUgbWFrZSBkZXBlbmQgZmFpbHMsIEknZCBl
eHBlY3QgdGhlICYmIHRvIGZhaWwsIGFuZCB0aGUgCj4+Pj4+IHJlc3VsdGluZwo+Pj4+PiBub24t
emVybyBleGl0IGNvZGUgdG8gY2F1c2UgdGhlIHdob2xlIHNoZWxsIHRvIGV4aXQuCj4+Pj4+IC1h
bmlsCj4+Pj4+IE9uIDIxIE9jdCAyMDE0LCBhdCAxNTozNywgUmljaGFyZCBNb3J0aWVyCj4+Pj4+
IDxSaWNoYXJkLk1vcnRpZXJAbm90dGluZ2hhbS5hYy51az4gd3JvdGU6Cj4+Pj4+PiBidXQgaXNu
J3QgaXQgdGhlICJtYWtlIGRlcGVuZCIgc3RlcCB0aGF0J3MgZmFpbGluZyBhcyBmYXIgYXMgdGhl
Cj4+Pj4+PiBpcy1taXJhZ2UtYnJva2VuL3NjcmlwdHMvbWlyYWdlLXd3dyBzY3JpcHQgaXMgY29u
Y2VybmVkIC0tIGhlbmNlIAo+Pj4+Pj4gaXQKPj4+Pj4+IHdvbid0IGV4aXQgYWNjb3JkaW5nIHRv
IHBvaW50IDIuIGJlbG93ICgtZSBpcyBpZ25vcmVkIGlmIGl0J3MgYW55Cj4+Pj4+PiBjb21tYW5k
IG9mIGFuIEFORC1PUiBsaXN0IG90aGVyIHRoYW4gdGhlIGxhc3QpLgo+Pj4+Pj4gd2l0aCAtZSBv
biwgc2VlbXMgZXhwZWN0ZWQgcHJhY3RpY2UgaXMgdG8gaXNzdWUgdGhlIGNvbW1hbmRzCj4+Pj4+
PiBpbmRpdmlkdWFsbHkgaS5lLgo+Pj4+Pj4gbWFrZSBkZXBlbmQKPj4+Pj4+IG1ha2UgY29uZmln
dXJlCj4+Pj4+PiBtYWtlIGJ1aWxkCj4+Pj4+PiAuLi5hbmQgbGV0IHRoZSAtZSBmYWlsIHRoZW0g
aWYgcmVxdWlyZWQuIChhc3N1bWluZyB5b3UgZG9uJ3Qgd2FudCAKPj4+Pj4+IHRvCj4+Pj4+PiBh
Y2N1bXVsYXRlIGluZm8gYWJvdXQgZmFpbHVyZXMgb2YgZGVwZW5kL2NvbmZpZ3VyZSBvbiBvdGhl
ciAKPj4+Pj4+IHBsYXRmb3Jtcwo+Pj4+Pj4gYmVmb3JlIGJhaWxpbmcgb3V0LikKPj4+Pj4+IE9u
IDIxIE9jdCAyMDE0LCBhdCAxNToxOCwgQW5pbCBNYWRoYXZhcGVkZHkgPGFuaWxAcmVjb2lsLm9y
Zz4gCj4+Pj4+PiB3cm90ZToKPj4+Pj4+PiBJdCdzIGhlcmU6Cj4+Pj4+Pj4gaHR0cHM6Ly9naXRo
dWIuY29tL21pcmFnZS9pcy1taXJhZ2UtYnJva2VuL2Jsb2IvbWFzdGVyL3NjcmlwdHMvbWlyYWdl
LXd3dwo+Pj4+Pj4+IEFuZCB0aGUgYG1ha2VgIGludm9jYXRpb25zIGRvIHNlZW0gdG8gZXhpdCB3
aXRoIGEgbm9uLXplcm8gZXhpdCAKPj4+Pj4+PiBjb2RlLgo+Pj4+Pj4+IC1hbmkKPj4+Pj4+PiBP
biAyMSBPY3QgMjAxNCwgYXQgMTU6MDIsIFJpY2hhcmQgTW9ydGllcgo+Pj4+Pj4+IDxSaWNoYXJk
Lk1vcnRpZXJAbm90dGluZ2hhbS5hYy51az4gd3JvdGU6Cj4+Pj4+Pj4+IG5vdCBzdXJlIHByZWNp
c2VseSB3aGVyZSB0aGUgc2NyaXB0IGJlaW5nIGV4ZWN1dGVkIGFjdHVhbGx5IGlzIAo+Pj4+Pj4+
PiBidXQKPj4+Pj4+Pj4gY291bGQgaXQgYmUgYmVjYXVzZSBpdCdzIGEgY29tbWFuZCBpbiBhIG11
bHRpLWNvbW1hbmQgcGlwZWxpbmU/Cj4+Pj4+Pj4+IGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcv
b25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9WM19jaGFwMDIuaHRtbAo+Pj4+Pj4+PiAt
ZQo+Pj4+Pj4+PiBXaGVuIHRoaXMgb3B0aW9uIGlzIG9uLCB3aGVuIGFueSBjb21tYW5kIGZhaWxz
IChmb3IgYW55IG9mIHRoZQo+Pj4+Pj4+PiByZWFzb25zIGxpc3RlZCBpbiBDb25zZXF1ZW5jZXMg
b2YgU2hlbGwgRXJyb3JzIG9yIGJ5IHJldHVybmluZyAKPj4+Pj4+Pj4gYW4KPj4+Pj4+Pj4gZXhp
dCBzdGF0dXMgZ3JlYXRlciB0aGFuIHplcm8pLCB0aGUgc2hlbGwgaW1tZWRpYXRlbHkgc2hhbGwg
ZXhpdAo+Pj4+Pj4+PiB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uczoKPj4+Pj4+Pj4gCeKA
oiBUaGUgZmFpbHVyZSBvZiBhbnkgaW5kaXZpZHVhbCBjb21tYW5kIGluIGEgbXVsdGktY29tbWFu
ZCAKPj4+Pj4+Pj4gcGlwZWxpbmUKPj4+Pj4+Pj4gc2hhbGwgbm90IGNhdXNlIHRoZSBzaGVsbCB0
byBleGl0LiBPbmx5IHRoZSBmYWlsdXJlIG9mIHRoZSAKPj4+Pj4+Pj4gcGlwZWxpbmUKPj4+Pj4+
Pj4gaXRzZWxmIHNoYWxsIGJlIGNvbnNpZGVyZWQuCj4+Pj4+Pj4+IAnigKIgVGhlIC1lIHNldHRp
bmcgc2hhbGwgYmUgaWdub3JlZCB3aGVuIGV4ZWN1dGluZyB0aGUgY29tcG91bmQgCj4+Pj4+Pj4+
IGxpc3QKPj4+Pj4+Pj4gZm9sbG93aW5nIHRoZSB3aGlsZSwgdW50aWwsIGlmLCBvciBlbGlmIHJl
c2VydmVkIHdvcmQsIGEgCj4+Pj4+Pj4+IHBpcGVsaW5lCj4+Pj4+Pj4+IGJlZ2lubmluZyB3aXRo
IHRoZSAhIHJlc2VydmVkIHdvcmQsIG9yIGFueSBjb21tYW5kIG9mIGFuIEFORC1PUiAKPj4+Pj4+
Pj4gbGlzdAo+Pj4+Pj4+PiBvdGhlciB0aGFuIHRoZSBsYXN0Lgo+Pj4+Pj4+PiAJ4oCiIElmIHRo
ZSBleGl0IHN0YXR1cyBvZiBhIGNvbXBvdW5kIGNvbW1hbmQgb3RoZXIgdGhhbiBhIAo+Pj4+Pj4+
PiBzdWJzaGVsbAo+Pj4+Pj4+PiBjb21tYW5kIHdhcyB0aGUgcmVzdWx0IG9mIGEgZmFpbHVyZSB3
aGlsZSAtZSB3YXMgYmVpbmcgaWdub3JlZCwgCj4+Pj4+Pj4+IHRoZW4KPj4+Pj4+Pj4gLWUgc2hh
bGwgbm90IGFwcGx5IHRvIHRoaXMgY29tbWFuZC4KPj4+Pj4+Pj4gVGhpcyByZXF1aXJlbWVudCBh
cHBsaWVzIHRvIHRoZSBzaGVsbCBlbnZpcm9ubWVudCBhbmQgZWFjaCAKPj4+Pj4+Pj4gc3Vic2hl
bGwKPj4+Pj4+Pj4gZW52aXJvbm1lbnQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGluOgo+Pj4+
Pj4+PiBzZXQgLWU7IChmYWxzZTsgZWNobyBvbmUpIHwgY2F0OyBlY2hvIHR3bwo+Pj4+Pj4+PiB0
aGUgZmFsc2UgY29tbWFuZCBjYXVzZXMgdGhlIHN1YnNoZWxsIHRvIGV4aXQgd2l0aG91dCBleGVj
dXRpbmcgCj4+Pj4+Pj4+IGVjaG8KPj4+Pj4+Pj4gb25lOyBob3dldmVyLCBlY2hvIHR3byBpcyBl
eGVjdXRlZCBiZWNhdXNlIHRoZSBleGl0IHN0YXR1cyBvZiAKPj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+
IHBpcGVsaW5lIChmYWxzZTsgZWNobyBvbmUpIHwgY2F0IGlzIHplcm8uCj4+Pj4+Pj4+IE9uIDIx
IE9jdCAyMDE0LCBhdCAxNDozMSwgQW5pbCBNYWRoYXZhcGVkZHkgPGFuaWxAcmVjb2lsLm9yZz4g
Cj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4gR3JlYXQhICBGb3IgdGhlIHJlc3Qgb2YgdGhlIGxp
c3QsIGl0IGxvb2tzIGxpa2UgbWlyYWdlLWRldiBpcwo+Pj4+Pj4+Pj4gd29ya2luZyB3aXRoIHRo
ZSBleHRlcm5hbCBPUEFNIHNvbHZlciAoYXNwY3VkLCBvbiAKPj4+Pj4+Pj4+IFVidW50dS10cnVz
dHkpLAo+Pj4+Pj4+Pj4gYnV0IG5vdCB3aXRoIHRoZSBpbnRlcm5hbCBvbmUgKENlbnRPUyBidWls
ZHMpOgo+Pj4+Pj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9pcy1taXJhZ2UtYnJva2Vu
L3RyZWUvbWFzdGVyL2xvZ3MKPj4+Pj4+Pj4+IFRoaXMgaXMgcHJvYmFibHkgZHVlIHRvIG91ciBl
eGNlc3NpdmUgdXNlIG9mIGRlcG9wdHM7IEkgd2lsbAo+Pj4+Pj4+Pj4gcmVwbGFjZSB0aG9zZSB3
aXRoIGV4cGxpY2l0IHZpcnR1YWwgcGFja2FnZXMgKGUuZy4gZG5zLW1pcmFnZSkgCj4+Pj4+Pj4+
PiB0aGF0Cj4+Pj4+Pj4+PiBlbmNvZGUgYWxsIHRoZSBkZXBlbmRlbmNpZXMgdGhleSBuZWVkLgo+
Pj4+Pj4+Pj4gTW9yZSBteXN0ZXJpb3VzbHksIHRoZSBgc2V0IC1lYCBpbiB0aGUgc2hlbGwgc2Ny
aXB0IGlzbid0IAo+Pj4+Pj4+Pj4gY2F1c2luZwo+Pj4+Pj4+Pj4gaXQgdG8gdGVybWluYXRlIGVh
cmx5LCBzbyB0aGUgYE1JUkFHRSBXT1JLU2Agc3RyaW5nIGlzIGFsd2F5cwo+Pj4+Pj4+Pj4gcHJp
bnRlZC4gIFdlIG5lZWQgYSBpcy1taXJhZ2Utd29ya2luZy13b3JraW5nIHNjcmlwdCB0byBmaXgg
b3VyCj4+Pj4+Pj4+PiBpcy1taXJhZ2Utd29ya2luZyBzY3JpcHQgOi0pCj4+Pj4+Pj4+PiAtYW5p
bAo+Pj4+Pj4+Pj4gT24gMjAgT2N0IDIwMTQsIGF0IDE1OjA5LCBMdWtlIER1bnN0YW4gCj4+Pj4+
Pj4+PiA8bHVrZWR1bnN0YW44MUBnbWFpbC5jb20+Cj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+
PiBUaGFua3MsIEkgd2FzIGFibGUgdG8gY29tcGlsZSBhbmQgcnVuIG1pcmFnZS13d3cgb24gYSBE
b2NrZXIgCj4+Pj4+Pj4+Pj4gaW1hZ2UKPj4+Pj4+Pj4+PiB3aXRoIDQuMDEuCj4+Pj4+Pj4+Pj4g
THVrZQo+Pj4+Pj4+Pj4+IE9uIDIwIE9jdG9iZXIgMjAxNCAwOToyOCwgQW5pbCBNYWRoYXZhcGVk
ZHkgPGFuaWxAcmVjb2lsLm9yZz4KPj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+PiBPbiAxOSBP
Y3QgMjAxNCwgYXQgMDM6MTcsIEx1a2UgRHVuc3RhbiAKPj4+Pj4+Pj4+PiA8bHVrZWR1bnN0YW44
MUBnbWFpbC5jb20+Cj4+Pj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+IEhpLAo+Pj4+Pj4+Pj4+
PiBJIHRyaWVkIHRvIGJ1aWxkIG1pcmFnZS13d3cgYXMgcGVyCj4+Pj4+Pj4+Pj4+IGh0dHA6Ly9v
cGVubWlyYWdlLm9yZy93aWtpL21pcmFnZS13d3cKPj4+Pj4+Pj4+Pj4gJCBlbnYgTkVUPXNvY2tl
dCBGUz1jcnVuY2ggbWlyYWdlIGNvbmZpZ3VyZSAtLXVuaXgKPj4+Pj4+Pj4+Pj4gKHN1Y2Nlc3Mp
Cj4+Pj4+Pj4+Pj4+ICQgbWFrZSBkZXBlbmQKPj4+Pj4+Pj4+Pj4gKHN1Y2Nlc3MqKQo+Pj4+Pj4+
Pj4+PiAkIG1ha2UKPj4+Pj4+Pj4+Pj4gY2FtbGJ1aWxkIC1jbGFzc2ljLWRpc3BsYXkgLXVzZS1v
Y2FtbGZpbmQgLXBrZ3MKPj4+Pj4+Pj4+Pj4gbHd0LnN5bnRheCxjb25kdWl0Lm1pcmFnZSxjb3cu
c3ludGF4LGNvd2FibG9nYSxjc3RydWN0LGlvLXBhZ2UsaW8tcGFnZS51bml4LGx3dCxtaXJhZ2Ut
Y29uc29sZS51bml4LG1pcmFnZS1mcy11bml4LG1pcmFnZS1odHRwLG1pcmFnZS10eXBlcyxtaXJh
Z2UtdHlwZXMubHd0LHRjcGlwLnN0YWNrLXNvY2tldAo+Pj4+Pj4+Pj4+PiAtdGFncyAKPj4+Pj4+
Pj4+Pj4gInN5bnRheChjYW1scDRvKSxhbm5vdCxiaW5fYW5ub3Qsc3RyaWN0X3NlcXVlbmNlLHBy
aW5jaXBhbCIKPj4+Pj4+Pj4+Pj4gLWNmbGFnIC1nIC1sZmxhZ3MgLWcsLWxpbmtwa2cgbWFpbi5u
YXRpdmUKPj4+Pj4+Pj4+Pj4gb2NhbWxmaW5kIG9jYW1sYyAtYyAtZyAtYW5ub3QgLWJpbi1hbm5v
dCAtcHJpbmNpcGFsCj4+Pj4+Pj4+Pj4+IC1zdHJpY3Qtc2VxdWVuY2UgLXBhY2thZ2UgdGNwaXAu
c3RhY2stc29ja2V0IC1wYWNrYWdlCj4+Pj4+Pj4+Pj4+IG1pcmFnZS10eXBlcy5sd3QgLXBhY2th
Z2UgbWlyYWdlLXR5cGVzIC1wYWNrYWdlIG1pcmFnZS1odHRwCj4+Pj4+Pj4+Pj4+IC1wYWNrYWdl
IG1pcmFnZS1mcy11bml4IC1wYWNrYWdlIG1pcmFnZS1jb25zb2xlLnVuaXggLXBhY2thZ2UgCj4+
Pj4+Pj4+Pj4+IGx3dAo+Pj4+Pj4+Pj4+PiAtcGFja2FnZSBpby1wYWdlLnVuaXggLXBhY2thZ2Ug
aW8tcGFnZSAtcGFja2FnZSBjc3RydWN0IAo+Pj4+Pj4+Pj4+PiAtcGFja2FnZQo+Pj4+Pj4+Pj4+
PiBjb3dhYmxvZ2EgLXBhY2thZ2UgY293LnN5bnRheCAtcGFja2FnZSBjb25kdWl0Lm1pcmFnZSAK
Pj4+Pj4+Pj4+Pj4gLXBhY2thZ2UKPj4+Pj4+Pj4+Pj4gbHd0LnN5bnRheCAtc3ludGF4IGNhbWxw
NG8gLW8gbWFpbi5jbW8gbWFpbi5tbAo+Pj4+Pj4+Pj4+PiArIG9jYW1sZmluZCBvY2FtbGMgLWMg
LWcgLWFubm90IC1iaW4tYW5ub3QgLXByaW5jaXBhbAo+Pj4+Pj4+Pj4+PiAtc3RyaWN0LXNlcXVl
bmNlIC1wYWNrYWdlIHRjcGlwLnN0YWNrLXNvY2tldCAtcGFja2FnZQo+Pj4+Pj4+Pj4+PiBtaXJh
Z2UtdHlwZXMubHd0IC1wYWNrYWdlIG1pcmFnZS10eXBlcyAtcGFja2FnZSBtaXJhZ2UtaHR0cAo+
Pj4+Pj4+Pj4+PiAtcGFja2FnZSBtaXJhZ2UtZnMtdW5peCAtcGFja2FnZSBtaXJhZ2UtY29uc29s
ZS51bml4IC1wYWNrYWdlIAo+Pj4+Pj4+Pj4+PiBsd3QKPj4+Pj4+Pj4+Pj4gLXBhY2thZ2UgaW8t
cGFnZS51bml4IC1wYWNrYWdlIGlvLXBhZ2UgLXBhY2thZ2UgY3N0cnVjdCAKPj4+Pj4+Pj4+Pj4g
LXBhY2thZ2UKPj4+Pj4+Pj4+Pj4gY293YWJsb2dhIC1wYWNrYWdlIGNvdy5zeW50YXggLXBhY2th
Z2UgY29uZHVpdC5taXJhZ2UgCj4+Pj4+Pj4+Pj4+IC1wYWNrYWdlCj4+Pj4+Pj4+Pj4+IGx3dC5z
eW50YXggLXN5bnRheCBjYW1scDRvIC1vIG1haW4uY21vIG1haW4ubWwKPj4+Pj4+Pj4+Pj4gRmls
ZSAibWFpbi5tbCIsIGxpbmUgOTgsIGNoYXJhY3RlcnMgMi0xMzoKPj4+Pj4+Pj4+Pj4gRXJyb3I6
IFVuYm91bmQgbW9kdWxlIE9TCj4+Pj4+Pj4+Pj4+IENvbW1hbmQgZXhpdGVkIHdpdGggY29kZSAy
Lgo+Pj4+Pj4+Pj4+PiBtYWtlOiAqKiogW21haW4ubmF0aXZlXSBFcnJvciAxMAo+Pj4+Pj4+Pj4+
PiBUbyB0cnkgdG8gZW5zdXJlIHRoYXQgdGhpcyB3YXMgcmVwcm9kdWNpYmxlIEkgYWxzbyB0cmll
ZCAKPj4+Pj4+Pj4+Pj4gc3RhcnRpbmcKPj4+Pj4+Pj4+Pj4gZnJvbSB0aGUgImF2c20vZG9ja2Vy
LW9wYW06dWJ1bnR1LXRydXN0eS00LjAxLjAiIERvY2tlciBpbWFnZSAKPj4+Pj4+Pj4+Pj4gYW5k
Cj4+Pj4+Pj4+Pj4+IGdvdCB0aGUgc2FtZSBlcnJvci4gSG93ZXZlciwgSSBoYWQgdG8gY2hhbmdl
IHRoZSBvdW5pdCAKPj4+Pj4+Pj4+Pj4gcGFja2FnZQo+Pj4+Pj4+Pj4+PiBVUkwgYmVjYXVzZSBm
b3JnZS5vY2FtbGNvcmUub3JnIGlzIGFwcGFyZW50bHkgZG93bi4KPj4+Pj4+Pj4+Pj4gQWxzbywg
SSBoYWQgdG8gImFwdC1nZXQgaW5zdGFsbCBsaWJzc2wtZGV2IiB0byBnZXQgcGFzdCB0aGUKPj4+
Pj4+Pj4+Pj4gImNvbmZpZ3VyZSIgLyAibWFrZSBkZXBlbmQiIHN0ZXAgYmVjYXVzZSBpdCB3YXMg
YXBwYXJlbnRseQo+Pj4+Pj4+Pj4+PiByZXF1aXJlZCB0byBjb21waWxlIHNzbC0wLjQuNywgc28g
bWF5YmUgdGhhdCBpcyByZWxhdGVkIHRvIAo+Pj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+Pj4gcHJv
YmxlbT8KPj4+Pj4+Pj4+PiBIaSBMdWtlLAo+Pj4+Pj4+Pj4+IFRoYW5rcyBmb3IgdGhlIGJ1ZyBy
ZXBvcnQsIGFuZCBib251cyBwb2ludHMgZm9yIHRyeWluZyB0aGUgCj4+Pj4+Pj4+Pj4gRG9ja2Vy
Cj4+Pj4+Pj4+Pj4gcmVwb3NpdG9yeSBvdXQuICBJJ3ZlIGZpeGVkIHRoZSB1bmRlcmx5aW5nIGlz
c3VlIHRoYXQgd2FzIAo+Pj4+Pj4+Pj4+IGNhdXNpbmcKPj4+Pj4+Pj4+PiB0aGUgdW5ib3VuZCBP
UyBtb2R1bGUgdG8gc2hvdyB1cCAtLSBpdCdzIGJlY2F1c2Ugb2Ygc29tZSAKPj4+Pj4+Pj4+PiBy
ZWNlbnQKPj4+Pj4+Pj4+PiBzaHVmZmxpbmcgb2YgZGVwZW5kZW5jaWVzIGluIGNvbnNvbGUgaGFu
ZGxpbmcsIGFuZCB0aGlzIAo+Pj4+Pj4+Pj4+IHJlc3VsdGVkCj4+Pj4+Pj4+Pj4gaW4gbWlyYWdl
LXVuaXggbm8gbG9uZ2VyIGJlaW5nIGltcGxpY2l0bHkgZGVwZW5kZWQgb24uICBJJ3ZlCj4+Pj4+
Pj4+Pj4gbW9kaWZpZWQgdGhlIG1pcmFnZSB0b29sIHRvIGV4cGxpY2l0bHkgYWRkIHRoZSBkZXBl
bmRlbmN5IGluLgo+Pj4+Pj4+Pj4+IEluIG9yZGVyIHRvIGhlbHAga2VlcCB0aGluZ3Mgd29ya2lu
ZyBhY3Jvc3MgdGhlIGluY3JlYXNpbmcgCj4+Pj4+Pj4+Pj4gbnVtYmVyCj4+Pj4+Pj4+Pj4gb2Yg
ZGlzdHJpYnV0aW9ucywgSSd2ZSBhbHNvIGNyZWF0ZWQgYSBjb3VwbGUgb2YgY3JvbiBqb2JzIHRo
YXQKPj4+Pj4+Pj4+PiBhdXRvbWF0aWNhbGx5IGJ1aWxkIHRoaW5ncyBhbmQgcHVibGlzaCB0aGUg
bG9ncwo+Pj4+Pj4+Pj4+IC0gVGhlIERvY2tlciByZWdpc3RyeSBub3cgaGFzIE9QQU0gdGFncyBm
b3IgVWJ1bnR1L0NlbnRPUyBvbiAKPj4+Pj4+Pj4+PiBPQ2FtbAo+Pj4+Pj4+Pj4+IDQuMDEgYW5k
IDQuMDI6Cj4+Pj4+Pj4+Pj4gaHR0cHM6Ly9yZWdpc3RyeS5odWIuZG9ja2VyLmNvbS91L2F2c20v
ZG9ja2VyLW9wYW0vYnVpbGRzX2hpc3RvcnkvMTU2NjkvCj4+Pj4+Pj4+Pj4gaHR0cHM6Ly9naXRo
dWIuY29tL2F2c20vZG9ja2VyLW9wYW0gaGFzIHRoZSBzb3VyY2VzCj4+Pj4+Pj4+Pj4gLSBodHRw
czovL2dpdGh1Yi5jb20vbWlyYWdlL2lzLW1pcmFnZS1icm9rZW4gcnVucyBhcyBhIGNyb25qb2IK
Pj4+Pj4+Pj4+PiAoY3Jvbi5zaCkgb24gYmxvYnMub3Blbm1pcmFnZS5vcmcgZGFpbHkgYW5kIHB1
c2hlcyB0aGUgbG9ncyB0byAKPj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+PiBsb2dzLyBkaXJlY3Rv
cnkgaW4gdGhpcyByZXBvLiAgV2hlbiB0aGF0J3MgY29tcGxldGVkIHJ1bm5pbmcgCj4+Pj4+Pj4+
Pj4gKGFuZAo+Pj4+Pj4+Pj4+IHdlJ3ZlIGZpeGVkIHRoZSBidWlsZCBicmVha2FnZXMhKSwgaXQg
c2hvdWxkIGJlIGVhc3kgdG8gZ2V0IGl0IAo+Pj4+Pj4+Pj4+IG9uCj4+Pj4+Pj4+Pj4gdGhlIHdl
YnNpdGUgYXMgYSBiYWRnZSBzbyB3ZSBjYW4gc2VlIHRoZSBzdGF0dXMgb2YgcmVwb3MgYXQgYQo+
Pj4+Pj4+Pj4+IGdsYW5jZS4KPj4+Pj4+Pj4+PiBBYm91dCB0byBob3Agb24gYSBmbGlnaHQgbm93
LCBzbyBJJ3ZlIGxlZnQgdGhlIGNyb24gam9iIAo+Pj4+Pj4+Pj4+IHJ1bm5pbmcKPj4+Pj4+Pj4+
PiBhbmQgd2lsbCBjaGVjayBpdCBvdXQgdG9tb3Jyb3cuICBJZiBhbnlvbmUgZWxzZSBjYW4gdGVz
dCBvdXQgCj4+Pj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4gRG9ja2VyIGltYWdlcyBpbiB0aGUgbWVh
bndoaWxlLCBmZWVsIGZyZWUuLi4KPj4+Pj4+Pj4+PiAtYW5pbAo+Pj4+Pj4+Pj4+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+Pj4+Pj4gTWlyYWdl
T1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+Pj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKPj4+Pj4+Pj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+Pj4+Pj4+PiBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+Pj4gTWlyYWdlT1MtZGV2
ZWwgbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+PiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwo+Pj4+Pj4+Pj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+Pj4+Pj4+PiAtLQo+Pj4+Pj4+PiBDaGVlcnMsCj4+
Pj4+Pj4+IFIuCj4+Pj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4+Pj4+Pj4+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4+Pj4+PiBN
aXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+Pj4+Pj4+PiBodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+
Pj4+PiAtLQo+Pj4+Pj4gQ2hlZXJzLAo+Pj4+Pj4gUi4KPj4+Pj4+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+PiBNaXJhZ2VPUy1kZXZlbCBtYWls
aW5nIGxpc3QKPj4+Pj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4+Pj4+
PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21p
cmFnZW9zLWRldmVsCj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4+Pj4+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4+PiBNaXJhZ2VP
Uy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+Pj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+IAoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwg
bWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2
ZWwK

From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 17:13:20 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 17:13: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 1XgzTL-0005lx-Cf; Wed, 22 Oct 2014 17:13:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XgzTK-0005lr-Hr
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 17:13:18 +0000
Received: from [193.109.254.147:19385] by server-3.bemta-14.messagelabs.com id
	E4/EC-23707-DA5E7445; Wed, 22 Oct 2014 17:13:17 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-14.tower-27.messagelabs.com!1413997996!11889780!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21172 invoked from network); 22 Oct 2014 17:13:16 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 17:13:16 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:49272)
	by ppsw-52.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
	with esmtp id 1XgzTG-0001bN-F9 (Exim 4.82_3-c0e5623)
	(return-path <ns441@cam.ac.uk>); Wed, 22 Oct 2014 18:13:14 +0100
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1XgzTG-000rge-Ld (Exim
	4.80_167-5a66dd3)
	(return-path <ns441@cam.ac.uk>); Wed, 22 Oct 2014 18:13:14 +0100
Received: from lusankya.mac.cl.cam.ac.uk ([128.232.56.51])
	by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Wed, 22 Oct 2014 18:13:14 +0100
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Wed, 22 Oct 2014 18:13:14 +0100
From: Nik Sultana <ns441@cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
	<6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
Message-ID: <3448199d59c8944225dd2d3d9ca184ad@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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

VGhhbmtzIEFuaWwsIEkgY291bGQgYnVpbGQgdGhlIFVidW50dSAxNC4wNCAoVHJ1c3R5KSBjb250
YWluZXIgZm9sbG93aW5nIAp5b3VyIGluc3RydWN0aW9ucywgd2l0aCBvbmUgbW9kaWZpY2F0aW9u
OiByZWZlcmVuY2luZyAiYXZzbS9kb2NrZXItb3BhbSIgCmluc3RlYWQgb2YgImF2c20vZG9ja2Vy
Ii4KCkkgaGF2ZW4ndCB0ZXN0ZWQgdGhlIG90aGVyIGNvbnRhaW5lcnMgc2luY2UgSSBkb24ndCBo
YXZlIHJlYWR5IGFjY2VzcyB0byAKYSBDZW50T1MgYm94LiBUaGlzIHBhdGNoIHdpbGwgd29yayBp
ZiB0aGUgb3RoZXIgZGlzdHJpYnV0aW9ucyB1c2UgYSAKdmVyc2lvbiBvZiBzaCB0aGF0J3MgY29t
cGF0aWJsZSB0byB0aGF0IHVzZWQgaW4gVHJ1c3R5LgoKSSB0ZXN0ZWQgdGhlIHByb2JsZW0gd2l0
aCB0aGUgc2VtYW50aWNzIG9mICYmIHVuZGVyIC1lIGJ5IHJlcGxhY2luZyB0aGUgCmxpbmUKICAg
bWFrZSBjb25maWd1cmUgJiYgbWFrZSBkZXBlbmQgJiYgbWFrZSBidWlsZAp3aXRoCiAgIGZhbHNl
ICYmIG1ha2UgY29uZmlndXJlICYmIG1ha2UgZGVwZW5kICYmIG1ha2UgYnVpbGQKYW5kIHZlcmlm
aWVkIHRoYXQgSSBzdGlsbCBnb3QgIk1JUkFHRSBXT1JLUyIgcHJpbnRlZCBhdCB0aGUgZW5kIGFm
dGVyIApydW5uaW5nCiAgIC4vYnVpbGQuc2ggdWJ1bnR1LXRydXN0eS00LjAxLjAgbWlyYWdlLXNr
ZWxldG9uCgpUaGVuIEkgdW5mb2xkZWQKICAgZmFsc2UgJiYgbWFrZSBjb25maWd1cmUgJiYgbWFr
ZSBkZXBlbmQgJiYgbWFrZSBidWlsZAppbnRvCiAgIGZhbHNlCiAgIG1ha2UgY29uZmlndXJlCiAg
IG1ha2UgZGVwZW5kCiAgIG1ha2UgYnVpbGQKYW5kIHJlcmFuLCBhbmQgdmVyaWZpZWQgdGhhdCBJ
IGRpZCBOT1QgZ2V0ICJNSVJBR0UgV09SS1MiIHByaW50ZWQgYXQgdGhlIAplbmQuCgpGaW5hbGx5
IEkgcmVtb3ZlZCAiZmFsc2UiLCBhbmQgcmVyYW4uCkkgZGlkIGdldCAiTUlSQUdFIFdPUktTIiBw
cmludGVkIGF0IHRoZSBlbmQuCgpBdCB0aGUgcmlzayBvZiBhc2tpbmcgYW4gb3Zlci1hc2tlZCBx
dWVzdGlvbjogd2hhdCdzIHRoZSBwcm9jZWR1cmUgZm9yIAp0aGUgUFIsIGRvIEkgbmVlZCB0byBx
dW90ZSBhbiBpc3N1ZSBudW1iZXIgZXRjLCBvciBjYW4gSSBqdXN0IGdvIGFoZWFkIAphbmQgY3Jl
YXRlIGEgUFIgZnJvbSBhIGZvcms/CgpOaWsKCk9uIDIwMTQtMTAtMjIgMTQ6MDMsIEFuaWwgTWFk
aGF2YXBlZGR5IHdyb3RlOgo+IENDaW5nIHRoZSBkZXZlbCBsaXN0IHNvIGV2ZXJ5b25lIGtub3dz
IGhvdyB0aGlzIHdvcmtzLgo+IAo+IElmIHlvdSBoYXZlIGEgTGludXggYm94IHdpdGggRG9ja2Vy
IGluc3RhbGxlZCwgeW91IGNhbiBjbG9uZSB0aGUKPiBwcmVjaXNlIGVudmlyb25tZW50IGJ5Ogo+
IAo+ICQgc3VkbyBkb2NrZXIgcHVsbCBhdnNtL2RvY2tlcgo+IAo+IFRoaXMgZ2l2ZXMgeW91IGFj
Y2VzcyB0byBhIG51bWJlciBvZiAndGFncycgKHdoaWNoIGFyZSBwcmVkZWZpbmVkCj4gYnVpbGRz
IG9mIE9QQU0vT0NhbWwgb24gdmFyaW91cyBmaWxlc3lzdGVtcykuIEZ1bGwgbGlzdCBvZiB0YWdz
IGFyZToKPiAKPiBodHRwczovL3JlZ2lzdHJ5Lmh1Yi5kb2NrZXIuY29tL3UvYXZzbS9kb2NrZXIt
b3BhbS90YWdzL21hbmFnZS8KPiAKPiBZb3UgY2FuIHVzZSBhIHRhZyBkaXJlY3RseSB2aWE6Cj4g
Cj4gJCBzdWRvIGRvY2tlciBidWlsZCAtdCBhdnNtL2RvY2tlcjp1YnVudHUtdHJ1c3R5LTQuMDEu
MCA8Y21kPgo+IAo+IFRoZSBzY3JpcHRzIHJlZmVyZW5jZWQgYmVsb3cgYWxyZWFkeSBkbyB0aGlz
LCBhbmQgYXJlIGFsbCBpbjoKPiBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL2lzLW1pcmFnZS1i
cm9rZW4KPiAKPiBUaGUgY3Jvbi5zaCBpcyB0aGUgb25lIHRoYXQncyBydW4gcmVndWxhcmx5IGFu
ZCBzeW5jIHdpdGggdGhlCj4gRG9ja2VyIHJlZ2lzdHJ5IGFuZCBidWlsZHMgZXZlcnkgY29tYmlu
YXRpb24uCj4gCj4gVG8gcmVjcmVhdGUgb25lIG9mIHRoZW0sIGp1c3QgcnVuIGJ1aWxkLnNoIGRp
cmVjdGx5OyBlLmcuCj4gCj4gLi9idWlsZC5zaCB1YnVudHUtdHJ1c3R5LTQuMDEuMCBtaXJhZ2Ut
c2tlbGV0b24KPiAKPiBJZiB5b3UgYWxyZWFkeSBoYXZlIGEgc3VpdGFibGUgZW52aXJvbm1lbnQg
d2l0aCBPUEFNIGFuZCBPQ2FtbAo+IGluc3RhbGxlZCBzeXN0ZW0td2lkZSwgeW91IGNhbiBqdXN0
IHJ1biB0aGUgc2hlbGwgc2NyaXB0cyBpbgo+IGlzLW1pcmFnZS1icm9rZW4vc2NyaXB0cy8gZGly
ZWN0bHkgdG8gZml4IHRoZW0uCj4gCj4gLWFuaWwKPiAKPiBPbiAyMiBPY3QgMjAxNCwgYXQgMTM6
NTUsIE5payBTdWx0YW5hIDxuczQ0MUBjYW0uYWMudWs+IHdyb3RlOgo+IAo+PiBIaSBBbmlsLCBp
cyB0aGlzIHNvbWV0aGluZyBJIGNhbiB0cnkgbG9jYWxseSB0byBzZWUgaWYgdGhlIG1vZGlmaWVk
IAo+PiBzY3JpcHQgd29ya3MsIG9yIGRvIEkgbmVlZCB0byBydW4gdGhlIHNjcmlwdCBvbiBhIGJ1
aWxkIHNlcnZlciAKPj4gc29tZXdoZXJlPyBGZWVsIGZyZWUgdG8gcG9pbnQgbWUgdG8gYW55ICJC
VUlMRCIgbm90ZXMgaSBjb3VsZCB1c2UgZm9yIAo+PiB0aGlzLCBpbiBjYXNlIEkgY2FuIHRlc3Qg
aXQgYW5kIG1ha2UgYSBQUiwgaWYgaXQncyBzdGlsbCBhbiBvcGVuIAo+PiBpc3N1ZS4KPj4gQmVz
dCwKPj4gTmlrCj4+IAo+PiBPbiAyMDE0LTEwLTIxIDE2OjE4LCBSaWNoYXJkIE1vcnRpZXIgd3Jv
dGU6Cj4+PiBpZiB5b3UgcmVhZCB0aGUgZG9jcyBpIHF1b3RlZCwgdGhhdCdzIGV4YWN0bHkgYXMg
ZG9jdW1lbnRlZDoKPj4+Pj4+Pj4gCeKAoiBUaGUgLWUgc2V0dGluZyBzaGFsbCBiZSBpZ25vcmVk
IHdoZW4gZXhlY3V0aW5nIHRoZSBjb21wb3VuZCAKPj4+Pj4+Pj4gbGlzdAo+Pj4+Pj4+PiBmb2xs
b3dpbmcgdGhlIHdoaWxlLCB1bnRpbCwgaWYsIG9yIGVsaWYgcmVzZXJ2ZWQgd29yZCwgYSAKPj4+
Pj4+Pj4gcGlwZWxpbmUKPj4+Pj4+Pj4gYmVnaW5uaW5nIHdpdGggdGhlICEgcmVzZXJ2ZWQgd29y
ZCwgb3IgYW55IGNvbW1hbmQgb2YgYW4gQU5ELU9SIAo+Pj4+Pj4+PiBsaXN0Cj4+Pj4+Pj4+IG90
aGVyIHRoYW4gdGhlIGxhc3QuCj4+PiBpdCBtaWdodCBiZSByYXRoZXIgY291bnRlci1pbnR1aXRp
dmUgYW5kIG9mIGR1YmlvdXMgbWVyaXQsIGJ1dCBpdCdzCj4+PiB0aGUgZG9jdW1lbnRlZCBiZWhh
dmlvdXIuLi4KPj4+IE9uIDIxIE9jdCAyMDE0LCBhdCAxNjowMSwgTmlrIFN1bHRhbmEgPG5zNDQx
QGNhbS5hYy51az4gd3JvdGU6Cj4+Pj4gSSB0aGluayBSaWNoYXJkIG1pZ2h0IGJlIHJpZ2h0LiBU
aGUgc2VtYW50aWNzIG9mICYmIHNlZW1zIHRvIGJlIGEgCj4+Pj4gYml0Cj4+Pj4gY291bnRlcmlu
dHVpdGl2ZSBpbiB0aGlzIGNhc2UuIENvbnNpZGVyIHRoaXMgc2NyaXB0Ogo+Pj4+ICMhL2Jpbi9z
aAo+Pj4+IHNldCAtZSAjbGluZTEKPj4+PiBmYWxzZSAmJiBlY2hvIGhlbGxvICNsaW5lMgo+Pj4+
IGVjaG8gaGVsbG8yCj4+Pj4gZmFsc2UgI2xpbmU0Cj4+Pj4gZWNobyB3b3JsZAo+Pj4+IEl0IGdp
dmVzIHRoZSBvdXRwdXQ6Cj4+Pj4gaGVsbG8yCj4+Pj4gd2hpY2ggaXMgb2RkLCBiZWNhdXNlIHdl
IGV4cGVjdCB0aGUgc2NyaXB0IHRvIGJlIHRlcm1pbmF0ZWQgYXQgbGluZTIgCj4+Pj4gLS0KPj4+
PiB0aGUgbGluZSAiZWNobyBoZWxsbzIiIHNob3VsZCBuZXZlciBiZSByZWFjaGVkLiBJbnN0ZWFk
LCB0aGUgc2NyaXB0Cj4+Pj4gY29udGludWVzIG9uIGFuZCBpcyBvbmx5IHRlcm1pbmF0ZWQgYXQg
bGluZTQuCj4+Pj4gSnVzdCB0byB0ZXN0IHRoZSBlZmZlY3Qgb2YgInNldCAtZSIsIGNvbW1lbnRp
bmcgbGluZTEgYW5kIHJ1bm5pbmcgCj4+Pj4gdGhlCj4+Pj4gc2NyaXB0IGdpdmVzIHRoZSBvdXRw
dXQ6Cj4+Pj4gaGVsbG8yCj4+Pj4gd29ybGQKPj4+PiBPbiAyMDE0LTEwLTIxIDE1OjQ5LCBBbmls
IE1hZGhhdmFwZWRkeSB3cm90ZToKPj4+Pj4gVGhlICYmIHNob3VsZCBjYXRjaCB0aGF0IGZhaWx1
cmUuICBDb25zaWRlcjoKPj4+Pj4gIyEvYmluL3NoIC1leAo+Pj4+PiBleGl0IDEgJiYgZWNobyBo
ZWxsbwo+Pj4+PiBlY2hvIHdvcmxkCj4+Pj4+IEV4ZWN1dGluZyB0aGF0Ogo+Pj4+PiAkIC4vdGVz
dC5zaAo+Pj4+PiArIGV4aXQgMQo+Pj4+PiBJZiB0aGUgbWFrZSBkZXBlbmQgZmFpbHMsIEknZCBl
eHBlY3QgdGhlICYmIHRvIGZhaWwsIGFuZCB0aGUgCj4+Pj4+IHJlc3VsdGluZwo+Pj4+PiBub24t
emVybyBleGl0IGNvZGUgdG8gY2F1c2UgdGhlIHdob2xlIHNoZWxsIHRvIGV4aXQuCj4+Pj4+IC1h
bmlsCj4+Pj4+IE9uIDIxIE9jdCAyMDE0LCBhdCAxNTozNywgUmljaGFyZCBNb3J0aWVyCj4+Pj4+
IDxSaWNoYXJkLk1vcnRpZXJAbm90dGluZ2hhbS5hYy51az4gd3JvdGU6Cj4+Pj4+PiBidXQgaXNu
J3QgaXQgdGhlICJtYWtlIGRlcGVuZCIgc3RlcCB0aGF0J3MgZmFpbGluZyBhcyBmYXIgYXMgdGhl
Cj4+Pj4+PiBpcy1taXJhZ2UtYnJva2VuL3NjcmlwdHMvbWlyYWdlLXd3dyBzY3JpcHQgaXMgY29u
Y2VybmVkIC0tIGhlbmNlIAo+Pj4+Pj4gaXQKPj4+Pj4+IHdvbid0IGV4aXQgYWNjb3JkaW5nIHRv
IHBvaW50IDIuIGJlbG93ICgtZSBpcyBpZ25vcmVkIGlmIGl0J3MgYW55Cj4+Pj4+PiBjb21tYW5k
IG9mIGFuIEFORC1PUiBsaXN0IG90aGVyIHRoYW4gdGhlIGxhc3QpLgo+Pj4+Pj4gd2l0aCAtZSBv
biwgc2VlbXMgZXhwZWN0ZWQgcHJhY3RpY2UgaXMgdG8gaXNzdWUgdGhlIGNvbW1hbmRzCj4+Pj4+
PiBpbmRpdmlkdWFsbHkgaS5lLgo+Pj4+Pj4gbWFrZSBkZXBlbmQKPj4+Pj4+IG1ha2UgY29uZmln
dXJlCj4+Pj4+PiBtYWtlIGJ1aWxkCj4+Pj4+PiAuLi5hbmQgbGV0IHRoZSAtZSBmYWlsIHRoZW0g
aWYgcmVxdWlyZWQuIChhc3N1bWluZyB5b3UgZG9uJ3Qgd2FudCAKPj4+Pj4+IHRvCj4+Pj4+PiBh
Y2N1bXVsYXRlIGluZm8gYWJvdXQgZmFpbHVyZXMgb2YgZGVwZW5kL2NvbmZpZ3VyZSBvbiBvdGhl
ciAKPj4+Pj4+IHBsYXRmb3Jtcwo+Pj4+Pj4gYmVmb3JlIGJhaWxpbmcgb3V0LikKPj4+Pj4+IE9u
IDIxIE9jdCAyMDE0LCBhdCAxNToxOCwgQW5pbCBNYWRoYXZhcGVkZHkgPGFuaWxAcmVjb2lsLm9y
Zz4gCj4+Pj4+PiB3cm90ZToKPj4+Pj4+PiBJdCdzIGhlcmU6Cj4+Pj4+Pj4gaHR0cHM6Ly9naXRo
dWIuY29tL21pcmFnZS9pcy1taXJhZ2UtYnJva2VuL2Jsb2IvbWFzdGVyL3NjcmlwdHMvbWlyYWdl
LXd3dwo+Pj4+Pj4+IEFuZCB0aGUgYG1ha2VgIGludm9jYXRpb25zIGRvIHNlZW0gdG8gZXhpdCB3
aXRoIGEgbm9uLXplcm8gZXhpdCAKPj4+Pj4+PiBjb2RlLgo+Pj4+Pj4+IC1hbmkKPj4+Pj4+PiBP
biAyMSBPY3QgMjAxNCwgYXQgMTU6MDIsIFJpY2hhcmQgTW9ydGllcgo+Pj4+Pj4+IDxSaWNoYXJk
Lk1vcnRpZXJAbm90dGluZ2hhbS5hYy51az4gd3JvdGU6Cj4+Pj4+Pj4+IG5vdCBzdXJlIHByZWNp
c2VseSB3aGVyZSB0aGUgc2NyaXB0IGJlaW5nIGV4ZWN1dGVkIGFjdHVhbGx5IGlzIAo+Pj4+Pj4+
PiBidXQKPj4+Pj4+Pj4gY291bGQgaXQgYmUgYmVjYXVzZSBpdCdzIGEgY29tbWFuZCBpbiBhIG11
bHRpLWNvbW1hbmQgcGlwZWxpbmU/Cj4+Pj4+Pj4+IGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcv
b25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9WM19jaGFwMDIuaHRtbAo+Pj4+Pj4+PiAt
ZQo+Pj4+Pj4+PiBXaGVuIHRoaXMgb3B0aW9uIGlzIG9uLCB3aGVuIGFueSBjb21tYW5kIGZhaWxz
IChmb3IgYW55IG9mIHRoZQo+Pj4+Pj4+PiByZWFzb25zIGxpc3RlZCBpbiBDb25zZXF1ZW5jZXMg
b2YgU2hlbGwgRXJyb3JzIG9yIGJ5IHJldHVybmluZyAKPj4+Pj4+Pj4gYW4KPj4+Pj4+Pj4gZXhp
dCBzdGF0dXMgZ3JlYXRlciB0aGFuIHplcm8pLCB0aGUgc2hlbGwgaW1tZWRpYXRlbHkgc2hhbGwg
ZXhpdAo+Pj4+Pj4+PiB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uczoKPj4+Pj4+Pj4gCeKA
oiBUaGUgZmFpbHVyZSBvZiBhbnkgaW5kaXZpZHVhbCBjb21tYW5kIGluIGEgbXVsdGktY29tbWFu
ZCAKPj4+Pj4+Pj4gcGlwZWxpbmUKPj4+Pj4+Pj4gc2hhbGwgbm90IGNhdXNlIHRoZSBzaGVsbCB0
byBleGl0LiBPbmx5IHRoZSBmYWlsdXJlIG9mIHRoZSAKPj4+Pj4+Pj4gcGlwZWxpbmUKPj4+Pj4+
Pj4gaXRzZWxmIHNoYWxsIGJlIGNvbnNpZGVyZWQuCj4+Pj4+Pj4+IAnigKIgVGhlIC1lIHNldHRp
bmcgc2hhbGwgYmUgaWdub3JlZCB3aGVuIGV4ZWN1dGluZyB0aGUgY29tcG91bmQgCj4+Pj4+Pj4+
IGxpc3QKPj4+Pj4+Pj4gZm9sbG93aW5nIHRoZSB3aGlsZSwgdW50aWwsIGlmLCBvciBlbGlmIHJl
c2VydmVkIHdvcmQsIGEgCj4+Pj4+Pj4+IHBpcGVsaW5lCj4+Pj4+Pj4+IGJlZ2lubmluZyB3aXRo
IHRoZSAhIHJlc2VydmVkIHdvcmQsIG9yIGFueSBjb21tYW5kIG9mIGFuIEFORC1PUiAKPj4+Pj4+
Pj4gbGlzdAo+Pj4+Pj4+PiBvdGhlciB0aGFuIHRoZSBsYXN0Lgo+Pj4+Pj4+PiAJ4oCiIElmIHRo
ZSBleGl0IHN0YXR1cyBvZiBhIGNvbXBvdW5kIGNvbW1hbmQgb3RoZXIgdGhhbiBhIAo+Pj4+Pj4+
PiBzdWJzaGVsbAo+Pj4+Pj4+PiBjb21tYW5kIHdhcyB0aGUgcmVzdWx0IG9mIGEgZmFpbHVyZSB3
aGlsZSAtZSB3YXMgYmVpbmcgaWdub3JlZCwgCj4+Pj4+Pj4+IHRoZW4KPj4+Pj4+Pj4gLWUgc2hh
bGwgbm90IGFwcGx5IHRvIHRoaXMgY29tbWFuZC4KPj4+Pj4+Pj4gVGhpcyByZXF1aXJlbWVudCBh
cHBsaWVzIHRvIHRoZSBzaGVsbCBlbnZpcm9ubWVudCBhbmQgZWFjaCAKPj4+Pj4+Pj4gc3Vic2hl
bGwKPj4+Pj4+Pj4gZW52aXJvbm1lbnQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGluOgo+Pj4+
Pj4+PiBzZXQgLWU7IChmYWxzZTsgZWNobyBvbmUpIHwgY2F0OyBlY2hvIHR3bwo+Pj4+Pj4+PiB0
aGUgZmFsc2UgY29tbWFuZCBjYXVzZXMgdGhlIHN1YnNoZWxsIHRvIGV4aXQgd2l0aG91dCBleGVj
dXRpbmcgCj4+Pj4+Pj4+IGVjaG8KPj4+Pj4+Pj4gb25lOyBob3dldmVyLCBlY2hvIHR3byBpcyBl
eGVjdXRlZCBiZWNhdXNlIHRoZSBleGl0IHN0YXR1cyBvZiAKPj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+
IHBpcGVsaW5lIChmYWxzZTsgZWNobyBvbmUpIHwgY2F0IGlzIHplcm8uCj4+Pj4+Pj4+IE9uIDIx
IE9jdCAyMDE0LCBhdCAxNDozMSwgQW5pbCBNYWRoYXZhcGVkZHkgPGFuaWxAcmVjb2lsLm9yZz4g
Cj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4gR3JlYXQhICBGb3IgdGhlIHJlc3Qgb2YgdGhlIGxp
c3QsIGl0IGxvb2tzIGxpa2UgbWlyYWdlLWRldiBpcwo+Pj4+Pj4+Pj4gd29ya2luZyB3aXRoIHRo
ZSBleHRlcm5hbCBPUEFNIHNvbHZlciAoYXNwY3VkLCBvbiAKPj4+Pj4+Pj4+IFVidW50dS10cnVz
dHkpLAo+Pj4+Pj4+Pj4gYnV0IG5vdCB3aXRoIHRoZSBpbnRlcm5hbCBvbmUgKENlbnRPUyBidWls
ZHMpOgo+Pj4+Pj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9pcy1taXJhZ2UtYnJva2Vu
L3RyZWUvbWFzdGVyL2xvZ3MKPj4+Pj4+Pj4+IFRoaXMgaXMgcHJvYmFibHkgZHVlIHRvIG91ciBl
eGNlc3NpdmUgdXNlIG9mIGRlcG9wdHM7IEkgd2lsbAo+Pj4+Pj4+Pj4gcmVwbGFjZSB0aG9zZSB3
aXRoIGV4cGxpY2l0IHZpcnR1YWwgcGFja2FnZXMgKGUuZy4gZG5zLW1pcmFnZSkgCj4+Pj4+Pj4+
PiB0aGF0Cj4+Pj4+Pj4+PiBlbmNvZGUgYWxsIHRoZSBkZXBlbmRlbmNpZXMgdGhleSBuZWVkLgo+
Pj4+Pj4+Pj4gTW9yZSBteXN0ZXJpb3VzbHksIHRoZSBgc2V0IC1lYCBpbiB0aGUgc2hlbGwgc2Ny
aXB0IGlzbid0IAo+Pj4+Pj4+Pj4gY2F1c2luZwo+Pj4+Pj4+Pj4gaXQgdG8gdGVybWluYXRlIGVh
cmx5LCBzbyB0aGUgYE1JUkFHRSBXT1JLU2Agc3RyaW5nIGlzIGFsd2F5cwo+Pj4+Pj4+Pj4gcHJp
bnRlZC4gIFdlIG5lZWQgYSBpcy1taXJhZ2Utd29ya2luZy13b3JraW5nIHNjcmlwdCB0byBmaXgg
b3VyCj4+Pj4+Pj4+PiBpcy1taXJhZ2Utd29ya2luZyBzY3JpcHQgOi0pCj4+Pj4+Pj4+PiAtYW5p
bAo+Pj4+Pj4+Pj4gT24gMjAgT2N0IDIwMTQsIGF0IDE1OjA5LCBMdWtlIER1bnN0YW4gCj4+Pj4+
Pj4+PiA8bHVrZWR1bnN0YW44MUBnbWFpbC5jb20+Cj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+
PiBUaGFua3MsIEkgd2FzIGFibGUgdG8gY29tcGlsZSBhbmQgcnVuIG1pcmFnZS13d3cgb24gYSBE
b2NrZXIgCj4+Pj4+Pj4+Pj4gaW1hZ2UKPj4+Pj4+Pj4+PiB3aXRoIDQuMDEuCj4+Pj4+Pj4+Pj4g
THVrZQo+Pj4+Pj4+Pj4+IE9uIDIwIE9jdG9iZXIgMjAxNCAwOToyOCwgQW5pbCBNYWRoYXZhcGVk
ZHkgPGFuaWxAcmVjb2lsLm9yZz4KPj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+PiBPbiAxOSBP
Y3QgMjAxNCwgYXQgMDM6MTcsIEx1a2UgRHVuc3RhbiAKPj4+Pj4+Pj4+PiA8bHVrZWR1bnN0YW44
MUBnbWFpbC5jb20+Cj4+Pj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+IEhpLAo+Pj4+Pj4+Pj4+
PiBJIHRyaWVkIHRvIGJ1aWxkIG1pcmFnZS13d3cgYXMgcGVyCj4+Pj4+Pj4+Pj4+IGh0dHA6Ly9v
cGVubWlyYWdlLm9yZy93aWtpL21pcmFnZS13d3cKPj4+Pj4+Pj4+Pj4gJCBlbnYgTkVUPXNvY2tl
dCBGUz1jcnVuY2ggbWlyYWdlIGNvbmZpZ3VyZSAtLXVuaXgKPj4+Pj4+Pj4+Pj4gKHN1Y2Nlc3Mp
Cj4+Pj4+Pj4+Pj4+ICQgbWFrZSBkZXBlbmQKPj4+Pj4+Pj4+Pj4gKHN1Y2Nlc3MqKQo+Pj4+Pj4+
Pj4+PiAkIG1ha2UKPj4+Pj4+Pj4+Pj4gY2FtbGJ1aWxkIC1jbGFzc2ljLWRpc3BsYXkgLXVzZS1v
Y2FtbGZpbmQgLXBrZ3MKPj4+Pj4+Pj4+Pj4gbHd0LnN5bnRheCxjb25kdWl0Lm1pcmFnZSxjb3cu
c3ludGF4LGNvd2FibG9nYSxjc3RydWN0LGlvLXBhZ2UsaW8tcGFnZS51bml4LGx3dCxtaXJhZ2Ut
Y29uc29sZS51bml4LG1pcmFnZS1mcy11bml4LG1pcmFnZS1odHRwLG1pcmFnZS10eXBlcyxtaXJh
Z2UtdHlwZXMubHd0LHRjcGlwLnN0YWNrLXNvY2tldAo+Pj4+Pj4+Pj4+PiAtdGFncyAKPj4+Pj4+
Pj4+Pj4gInN5bnRheChjYW1scDRvKSxhbm5vdCxiaW5fYW5ub3Qsc3RyaWN0X3NlcXVlbmNlLHBy
aW5jaXBhbCIKPj4+Pj4+Pj4+Pj4gLWNmbGFnIC1nIC1sZmxhZ3MgLWcsLWxpbmtwa2cgbWFpbi5u
YXRpdmUKPj4+Pj4+Pj4+Pj4gb2NhbWxmaW5kIG9jYW1sYyAtYyAtZyAtYW5ub3QgLWJpbi1hbm5v
dCAtcHJpbmNpcGFsCj4+Pj4+Pj4+Pj4+IC1zdHJpY3Qtc2VxdWVuY2UgLXBhY2thZ2UgdGNwaXAu
c3RhY2stc29ja2V0IC1wYWNrYWdlCj4+Pj4+Pj4+Pj4+IG1pcmFnZS10eXBlcy5sd3QgLXBhY2th
Z2UgbWlyYWdlLXR5cGVzIC1wYWNrYWdlIG1pcmFnZS1odHRwCj4+Pj4+Pj4+Pj4+IC1wYWNrYWdl
IG1pcmFnZS1mcy11bml4IC1wYWNrYWdlIG1pcmFnZS1jb25zb2xlLnVuaXggLXBhY2thZ2UgCj4+
Pj4+Pj4+Pj4+IGx3dAo+Pj4+Pj4+Pj4+PiAtcGFja2FnZSBpby1wYWdlLnVuaXggLXBhY2thZ2Ug
aW8tcGFnZSAtcGFja2FnZSBjc3RydWN0IAo+Pj4+Pj4+Pj4+PiAtcGFja2FnZQo+Pj4+Pj4+Pj4+
PiBjb3dhYmxvZ2EgLXBhY2thZ2UgY293LnN5bnRheCAtcGFja2FnZSBjb25kdWl0Lm1pcmFnZSAK
Pj4+Pj4+Pj4+Pj4gLXBhY2thZ2UKPj4+Pj4+Pj4+Pj4gbHd0LnN5bnRheCAtc3ludGF4IGNhbWxw
NG8gLW8gbWFpbi5jbW8gbWFpbi5tbAo+Pj4+Pj4+Pj4+PiArIG9jYW1sZmluZCBvY2FtbGMgLWMg
LWcgLWFubm90IC1iaW4tYW5ub3QgLXByaW5jaXBhbAo+Pj4+Pj4+Pj4+PiAtc3RyaWN0LXNlcXVl
bmNlIC1wYWNrYWdlIHRjcGlwLnN0YWNrLXNvY2tldCAtcGFja2FnZQo+Pj4+Pj4+Pj4+PiBtaXJh
Z2UtdHlwZXMubHd0IC1wYWNrYWdlIG1pcmFnZS10eXBlcyAtcGFja2FnZSBtaXJhZ2UtaHR0cAo+
Pj4+Pj4+Pj4+PiAtcGFja2FnZSBtaXJhZ2UtZnMtdW5peCAtcGFja2FnZSBtaXJhZ2UtY29uc29s
ZS51bml4IC1wYWNrYWdlIAo+Pj4+Pj4+Pj4+PiBsd3QKPj4+Pj4+Pj4+Pj4gLXBhY2thZ2UgaW8t
cGFnZS51bml4IC1wYWNrYWdlIGlvLXBhZ2UgLXBhY2thZ2UgY3N0cnVjdCAKPj4+Pj4+Pj4+Pj4g
LXBhY2thZ2UKPj4+Pj4+Pj4+Pj4gY293YWJsb2dhIC1wYWNrYWdlIGNvdy5zeW50YXggLXBhY2th
Z2UgY29uZHVpdC5taXJhZ2UgCj4+Pj4+Pj4+Pj4+IC1wYWNrYWdlCj4+Pj4+Pj4+Pj4+IGx3dC5z
eW50YXggLXN5bnRheCBjYW1scDRvIC1vIG1haW4uY21vIG1haW4ubWwKPj4+Pj4+Pj4+Pj4gRmls
ZSAibWFpbi5tbCIsIGxpbmUgOTgsIGNoYXJhY3RlcnMgMi0xMzoKPj4+Pj4+Pj4+Pj4gRXJyb3I6
IFVuYm91bmQgbW9kdWxlIE9TCj4+Pj4+Pj4+Pj4+IENvbW1hbmQgZXhpdGVkIHdpdGggY29kZSAy
Lgo+Pj4+Pj4+Pj4+PiBtYWtlOiAqKiogW21haW4ubmF0aXZlXSBFcnJvciAxMAo+Pj4+Pj4+Pj4+
PiBUbyB0cnkgdG8gZW5zdXJlIHRoYXQgdGhpcyB3YXMgcmVwcm9kdWNpYmxlIEkgYWxzbyB0cmll
ZCAKPj4+Pj4+Pj4+Pj4gc3RhcnRpbmcKPj4+Pj4+Pj4+Pj4gZnJvbSB0aGUgImF2c20vZG9ja2Vy
LW9wYW06dWJ1bnR1LXRydXN0eS00LjAxLjAiIERvY2tlciBpbWFnZSAKPj4+Pj4+Pj4+Pj4gYW5k
Cj4+Pj4+Pj4+Pj4+IGdvdCB0aGUgc2FtZSBlcnJvci4gSG93ZXZlciwgSSBoYWQgdG8gY2hhbmdl
IHRoZSBvdW5pdCAKPj4+Pj4+Pj4+Pj4gcGFja2FnZQo+Pj4+Pj4+Pj4+PiBVUkwgYmVjYXVzZSBm
b3JnZS5vY2FtbGNvcmUub3JnIGlzIGFwcGFyZW50bHkgZG93bi4KPj4+Pj4+Pj4+Pj4gQWxzbywg
SSBoYWQgdG8gImFwdC1nZXQgaW5zdGFsbCBsaWJzc2wtZGV2IiB0byBnZXQgcGFzdCB0aGUKPj4+
Pj4+Pj4+Pj4gImNvbmZpZ3VyZSIgLyAibWFrZSBkZXBlbmQiIHN0ZXAgYmVjYXVzZSBpdCB3YXMg
YXBwYXJlbnRseQo+Pj4+Pj4+Pj4+PiByZXF1aXJlZCB0byBjb21waWxlIHNzbC0wLjQuNywgc28g
bWF5YmUgdGhhdCBpcyByZWxhdGVkIHRvIAo+Pj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+Pj4gcHJv
YmxlbT8KPj4+Pj4+Pj4+PiBIaSBMdWtlLAo+Pj4+Pj4+Pj4+IFRoYW5rcyBmb3IgdGhlIGJ1ZyBy
ZXBvcnQsIGFuZCBib251cyBwb2ludHMgZm9yIHRyeWluZyB0aGUgCj4+Pj4+Pj4+Pj4gRG9ja2Vy
Cj4+Pj4+Pj4+Pj4gcmVwb3NpdG9yeSBvdXQuICBJJ3ZlIGZpeGVkIHRoZSB1bmRlcmx5aW5nIGlz
c3VlIHRoYXQgd2FzIAo+Pj4+Pj4+Pj4+IGNhdXNpbmcKPj4+Pj4+Pj4+PiB0aGUgdW5ib3VuZCBP
UyBtb2R1bGUgdG8gc2hvdyB1cCAtLSBpdCdzIGJlY2F1c2Ugb2Ygc29tZSAKPj4+Pj4+Pj4+PiBy
ZWNlbnQKPj4+Pj4+Pj4+PiBzaHVmZmxpbmcgb2YgZGVwZW5kZW5jaWVzIGluIGNvbnNvbGUgaGFu
ZGxpbmcsIGFuZCB0aGlzIAo+Pj4+Pj4+Pj4+IHJlc3VsdGVkCj4+Pj4+Pj4+Pj4gaW4gbWlyYWdl
LXVuaXggbm8gbG9uZ2VyIGJlaW5nIGltcGxpY2l0bHkgZGVwZW5kZWQgb24uICBJJ3ZlCj4+Pj4+
Pj4+Pj4gbW9kaWZpZWQgdGhlIG1pcmFnZSB0b29sIHRvIGV4cGxpY2l0bHkgYWRkIHRoZSBkZXBl
bmRlbmN5IGluLgo+Pj4+Pj4+Pj4+IEluIG9yZGVyIHRvIGhlbHAga2VlcCB0aGluZ3Mgd29ya2lu
ZyBhY3Jvc3MgdGhlIGluY3JlYXNpbmcgCj4+Pj4+Pj4+Pj4gbnVtYmVyCj4+Pj4+Pj4+Pj4gb2Yg
ZGlzdHJpYnV0aW9ucywgSSd2ZSBhbHNvIGNyZWF0ZWQgYSBjb3VwbGUgb2YgY3JvbiBqb2JzIHRo
YXQKPj4+Pj4+Pj4+PiBhdXRvbWF0aWNhbGx5IGJ1aWxkIHRoaW5ncyBhbmQgcHVibGlzaCB0aGUg
bG9ncwo+Pj4+Pj4+Pj4+IC0gVGhlIERvY2tlciByZWdpc3RyeSBub3cgaGFzIE9QQU0gdGFncyBm
b3IgVWJ1bnR1L0NlbnRPUyBvbiAKPj4+Pj4+Pj4+PiBPQ2FtbAo+Pj4+Pj4+Pj4+IDQuMDEgYW5k
IDQuMDI6Cj4+Pj4+Pj4+Pj4gaHR0cHM6Ly9yZWdpc3RyeS5odWIuZG9ja2VyLmNvbS91L2F2c20v
ZG9ja2VyLW9wYW0vYnVpbGRzX2hpc3RvcnkvMTU2NjkvCj4+Pj4+Pj4+Pj4gaHR0cHM6Ly9naXRo
dWIuY29tL2F2c20vZG9ja2VyLW9wYW0gaGFzIHRoZSBzb3VyY2VzCj4+Pj4+Pj4+Pj4gLSBodHRw
czovL2dpdGh1Yi5jb20vbWlyYWdlL2lzLW1pcmFnZS1icm9rZW4gcnVucyBhcyBhIGNyb25qb2IK
Pj4+Pj4+Pj4+PiAoY3Jvbi5zaCkgb24gYmxvYnMub3Blbm1pcmFnZS5vcmcgZGFpbHkgYW5kIHB1
c2hlcyB0aGUgbG9ncyB0byAKPj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+PiBsb2dzLyBkaXJlY3Rv
cnkgaW4gdGhpcyByZXBvLiAgV2hlbiB0aGF0J3MgY29tcGxldGVkIHJ1bm5pbmcgCj4+Pj4+Pj4+
Pj4gKGFuZAo+Pj4+Pj4+Pj4+IHdlJ3ZlIGZpeGVkIHRoZSBidWlsZCBicmVha2FnZXMhKSwgaXQg
c2hvdWxkIGJlIGVhc3kgdG8gZ2V0IGl0IAo+Pj4+Pj4+Pj4+IG9uCj4+Pj4+Pj4+Pj4gdGhlIHdl
YnNpdGUgYXMgYSBiYWRnZSBzbyB3ZSBjYW4gc2VlIHRoZSBzdGF0dXMgb2YgcmVwb3MgYXQgYQo+
Pj4+Pj4+Pj4+IGdsYW5jZS4KPj4+Pj4+Pj4+PiBBYm91dCB0byBob3Agb24gYSBmbGlnaHQgbm93
LCBzbyBJJ3ZlIGxlZnQgdGhlIGNyb24gam9iIAo+Pj4+Pj4+Pj4+IHJ1bm5pbmcKPj4+Pj4+Pj4+
PiBhbmQgd2lsbCBjaGVjayBpdCBvdXQgdG9tb3Jyb3cuICBJZiBhbnlvbmUgZWxzZSBjYW4gdGVz
dCBvdXQgCj4+Pj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4gRG9ja2VyIGltYWdlcyBpbiB0aGUgbWVh
bndoaWxlLCBmZWVsIGZyZWUuLi4KPj4+Pj4+Pj4+PiAtYW5pbAo+Pj4+Pj4+Pj4+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+Pj4+Pj4gTWlyYWdl
T1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+Pj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKPj4+Pj4+Pj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+Pj4+Pj4+PiBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+Pj4gTWlyYWdlT1MtZGV2
ZWwgbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+PiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwo+Pj4+Pj4+Pj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+Pj4+Pj4+PiAtLQo+Pj4+Pj4+PiBDaGVlcnMsCj4+
Pj4+Pj4+IFIuCj4+Pj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4+Pj4+Pj4+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4+Pj4+PiBN
aXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+Pj4+Pj4+PiBodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+
Pj4+PiAtLQo+Pj4+Pj4gQ2hlZXJzLAo+Pj4+Pj4gUi4KPj4+Pj4+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+PiBNaXJhZ2VPUy1kZXZlbCBtYWls
aW5nIGxpc3QKPj4+Pj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4+Pj4+
PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21p
cmFnZW9zLWRldmVsCj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4+Pj4+IE1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4+PiBNaXJhZ2VP
Uy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+Pj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+IAoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwg
bWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2
ZWwK

From mirageos-devel-bounces@lists.xenproject.org Wed Oct 22 20:46:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 20:46: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 1Xh2o0-0000k1-O6; Wed, 22 Oct 2014 20:46:52 +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 1Xh2nz-0000jw-Vl
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 20:46:52 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	6F/5F-11509-AB718445; Wed, 22 Oct 2014 20:46:50 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-4.tower-206.messagelabs.com!1414010809!11209468!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14204 invoked from network); 22 Oct 2014 20:46:49 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-4.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 20:46:49 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0410713e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 22 Oct 2014 21:49:35 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <3448199d59c8944225dd2d3d9ca184ad@cam.ac.uk>
Date: Wed, 22 Oct 2014 21:46:45 +0100
Message-Id: <D5FBA4F5-043A-42DC-8C67-EF4270B8A4AB@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
	<6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
	<3448199d59c8944225dd2d3d9ca184ad@cam.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 22 Oct 2014, at 18:13, Nik Sultana <ns441@cam.ac.uk> wrote:

> Thanks Anil, I could build the Ubuntu 14.04 (Trusty) container following =
your instructions, with one modification: referencing "avsm/docker-opam" in=
stead of "avsm/docker".

Sorry, my typo.

> =

> I haven't tested the other containers since I don't have ready access to =
a CentOS box. This patch will work if the other distributions use a version=
 of sh that's compatible to that used in Trusty.
> =


To be clear: the point of the Docker container is to give you a CentOS envi=
ronment.  You can just use the CentOS tag, even from an Ubuntu host.

> I tested the problem with the semantics of && under -e by replacing the l=
ine
>  make configure && make depend && make build
> with
>  false && make configure && make depend && make build
> and verified that I still got "MIRAGE WORKS" printed at the end after run=
ning
>  ./build.sh ubuntu-trusty-4.01.0 mirage-skeleton
> =

> Then I unfolded
>  false && make configure && make depend && make build
> into
>  false
>  make configure
>  make depend
>  make build
> and reran, and verified that I did NOT get "MIRAGE WORKS" printed at the =
end.
> =

> Finally I removed "false", and reran.
> I did get "MIRAGE WORKS" printed at the end.
> =

> At the risk of asking an over-asked question: what's the procedure for th=
e PR, do I need to quote an issue number etc, or can I just go ahead and cr=
eate a PR from a fork?

Just go ahead and send a pull request to the mirage/is-mirage-broken repo f=
rom your fork.  Getting the code fixed always takes priority over the form =
of the patch :-)

thanks!
Anil


> =

> Nik
> =

> On 2014-10-22 14:03, Anil Madhavapeddy wrote:
>> CCing the devel list so everyone knows how this works.
>> If you have a Linux box with Docker installed, you can clone the
>> precise environment by:
>> $ sudo docker pull avsm/docker
>> This gives you access to a number of 'tags' (which are predefined
>> builds of OPAM/OCaml on various filesystems). Full list of tags are:
>> https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/
>> You can use a tag directly via:
>> $ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 <cmd>
>> The scripts referenced below already do this, and are all in:
>> https://github.com/mirage/is-mirage-broken
>> The cron.sh is the one that's run regularly and sync with the
>> Docker registry and builds every combination.
>> To recreate one of them, just run build.sh directly; e.g.
>> ./build.sh ubuntu-trusty-4.01.0 mirage-skeleton
>> If you already have a suitable environment with OPAM and OCaml
>> installed system-wide, you can just run the shell scripts in
>> is-mirage-broken/scripts/ directly to fix them.
>> -anil
>> On 22 Oct 2014, at 13:55, Nik Sultana <ns441@cam.ac.uk> wrote:
>>> Hi Anil, is this something I can try locally to see if the modified scr=
ipt works, or do I need to run the script on a build server somewhere? Feel=
 free to point me to any "BUILD" notes i could use for this, in case I can =
test it and make a PR, if it's still an open issue.
>>> Best,
>>> Nik
>>> On 2014-10-21 16:18, Richard Mortier wrote:
>>>> if you read the docs i quoted, that's exactly as documented:
>>>>>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list
>>>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>>>> beginning with the ! reserved word, or any command of an AND-OR l=
ist
>>>>>>>>> other than the last.
>>>> it might be rather counter-intuitive and of dubious merit, but it's
>>>> the documented behaviour...
>>>> On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:
>>>>> I think Richard might be right. The semantics of && seems to be a bit
>>>>> counterintuitive in this case. Consider this script:
>>>>> #!/bin/sh
>>>>> set -e #line1
>>>>> false && echo hello #line2
>>>>> echo hello2
>>>>> false #line4
>>>>> echo world
>>>>> It gives the output:
>>>>> hello2
>>>>> which is odd, because we expect the script to be terminated at line2 =
--
>>>>> the line "echo hello2" should never be reached. Instead, the script
>>>>> continues on and is only terminated at line4.
>>>>> Just to test the effect of "set -e", commenting line1 and running the
>>>>> script gives the output:
>>>>> hello2
>>>>> world
>>>>> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
>>>>>> The && should catch that failure.  Consider:
>>>>>> #!/bin/sh -ex
>>>>>> exit 1 && echo hello
>>>>>> echo world
>>>>>> Executing that:
>>>>>> $ ./test.sh
>>>>>> + exit 1
>>>>>> If the make depend fails, I'd expect the && to fail, and the resulti=
ng
>>>>>> non-zero exit code to cause the whole shell to exit.
>>>>>> -anil
>>>>>> On 21 Oct 2014, at 15:37, Richard Mortier
>>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>>>> but isn't it the "make depend" step that's failing as far as the
>>>>>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it
>>>>>>> won't exit according to point 2. below (-e is ignored if it's any
>>>>>>> command of an AND-OR list other than the last).
>>>>>>> with -e on, seems expected practice is to issue the commands
>>>>>>> individually i.e.
>>>>>>> make depend
>>>>>>> make configure
>>>>>>> make build
>>>>>>> ...and let the -e fail them if required. (assuming you don't want to
>>>>>>> accumulate info about failures of depend/configure on other platfor=
ms
>>>>>>> before bailing out.)
>>>>>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>>>>> It's here:
>>>>>>>> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mir=
age-www
>>>>>>>> And the `make` invocations do seem to exit with a non-zero exit co=
de.
>>>>>>>> -ani
>>>>>>>> On 21 Oct 2014, at 15:02, Richard Mortier
>>>>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>>>>>> not sure precisely where the script being executed actually is but
>>>>>>>>> could it be because it's a command in a multi-command pipeline?
>>>>>>>>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap=
02.html
>>>>>>>>> -e
>>>>>>>>> When this option is on, when any command fails (for any of the
>>>>>>>>> reasons listed in Consequences of Shell Errors or by returning an
>>>>>>>>> exit status greater than zero), the shell immediately shall exit
>>>>>>>>> with the following exceptions:
>>>>>>>>> 	=95 The failure of any individual command in a multi-command pip=
eline
>>>>>>>>> shall not cause the shell to exit. Only the failure of the pipeli=
ne
>>>>>>>>> itself shall be considered.
>>>>>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list
>>>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>>>> beginning with the ! reserved word, or any command of an AND-OR l=
ist
>>>>>>>>> other than the last.
>>>>>>>>> 	=95 If the exit status of a compound command other than a subshe=
ll
>>>>>>>>> command was the result of a failure while -e was being ignored, t=
hen
>>>>>>>>> -e shall not apply to this command.
>>>>>>>>> This requirement applies to the shell environment and each subshe=
ll
>>>>>>>>> environment separately. For example, in:
>>>>>>>>> set -e; (false; echo one) | cat; echo two
>>>>>>>>> the false command causes the subshell to exit without executing e=
cho
>>>>>>>>> one; however, echo two is executed because the exit status of the
>>>>>>>>> pipeline (false; echo one) | cat is zero.
>>>>>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wro=
te:
>>>>>>>>>> Great!  For the rest of the list, it looks like mirage-dev is
>>>>>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty),
>>>>>>>>>> but not with the internal one (CentOS builds):
>>>>>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>>>>>>>> This is probably due to our excessive use of depopts; I will
>>>>>>>>>> replace those with explicit virtual packages (e.g. dns-mirage) t=
hat
>>>>>>>>>> encode all the dependencies they need.
>>>>>>>>>> More mysteriously, the `set -e` in the shell script isn't causing
>>>>>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always
>>>>>>>>>> printed.  We need a is-mirage-working-working script to fix our
>>>>>>>>>> is-mirage-working script :-)
>>>>>>>>>> -anil
>>>>>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker im=
age
>>>>>>>>>>> with 4.01.
>>>>>>>>>>> Luke
>>>>>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> I tried to build mirage-www as per
>>>>>>>>>>>> http://openmirage.org/wiki/mirage-www
>>>>>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>>>>>>>> (success)
>>>>>>>>>>>> $ make depend
>>>>>>>>>>>> (success*)
>>>>>>>>>>>> $ make
>>>>>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs
>>>>>>>>>>>> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page=
,io-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-typ=
es,mirage-types.lwt,tcpip.stack-socket
>>>>>>>>>>>> -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,princip=
al"
>>>>>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
>>>>>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt
>>>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
>>>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt
>>>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
>>>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>>>>>>>> Error: Unbound module OS
>>>>>>>>>>>> Command exited with code 2.
>>>>>>>>>>>> make: *** [main.native] Error 10
>>>>>>>>>>>> To try to ensure that this was reproducible I also tried start=
ing
>>>>>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image =
and
>>>>>>>>>>>> got the same error. However, I had to change the ounit package
>>>>>>>>>>>> URL because forge.ocamlcore.org is apparently down.
>>>>>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the
>>>>>>>>>>>> "configure" / "make depend" step because it was apparently
>>>>>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the
>>>>>>>>>>>> problem?
>>>>>>>>>>> Hi Luke,
>>>>>>>>>>> Thanks for the bug report, and bonus points for trying the Dock=
er
>>>>>>>>>>> repository out.  I've fixed the underlying issue that was causi=
ng
>>>>>>>>>>> the unbound OS module to show up -- it's because of some recent
>>>>>>>>>>> shuffling of dependencies in console handling, and this resulted
>>>>>>>>>>> in mirage-unix no longer being implicitly depended on.  I've
>>>>>>>>>>> modified the mirage tool to explicitly add the dependency in.
>>>>>>>>>>> In order to help keep things working across the increasing numb=
er
>>>>>>>>>>> of distributions, I've also created a couple of cron jobs that
>>>>>>>>>>> automatically build things and publish the logs
>>>>>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OC=
aml
>>>>>>>>>>> 4.01 and 4.02:
>>>>>>>>>>> https://registry.hub.docker.com/u/avsm/docker-opam/builds_histo=
ry/15669/
>>>>>>>>>>> https://github.com/avsm/docker-opam has the sources
>>>>>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob
>>>>>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to =
the
>>>>>>>>>>> logs/ directory in this repo.  When that's completed running (a=
nd
>>>>>>>>>>> we've fixed the build breakages!), it should be easy to get it =
on
>>>>>>>>>>> the website as a badge so we can see the status of repos at a
>>>>>>>>>>> glance.
>>>>>>>>>>> About to hop on a flight now, so I've left the cron job running
>>>>>>>>>>> and will check it out tomorrow.  If anyone else can test out the
>>>>>>>>>>> Docker images in the meanwhile, feel free...
>>>>>>>>>>> -anil
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel
>>>>>>>>>> _______________________________________________
>>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel
>>>>>>>>> --
>>>>>>>>> Cheers,
>>>>>>>>> R.
>>>>>>>>> _______________________________________________
>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-dev=
el
>>>>>>> --
>>>>>>> Cheers,
>>>>>>> R.
>>>>>>> _______________________________________________
>>>>>>> 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
> =



_______________________________________________
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 Oct 22 20:46:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 20:46: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 1Xh2o0-0000k1-O6; Wed, 22 Oct 2014 20:46:52 +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 1Xh2nz-0000jw-Vl
	for mirageos-devel@lists.xenproject.org; Wed, 22 Oct 2014 20:46:52 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	6F/5F-11509-AB718445; Wed, 22 Oct 2014 20:46:50 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-4.tower-206.messagelabs.com!1414010809!11209468!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14204 invoked from network); 22 Oct 2014 20:46:49 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-4.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 22 Oct 2014 20:46:49 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0410713e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 22 Oct 2014 21:49:35 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <3448199d59c8944225dd2d3d9ca184ad@cam.ac.uk>
Date: Wed, 22 Oct 2014 21:46:45 +0100
Message-Id: <D5FBA4F5-043A-42DC-8C67-EF4270B8A4AB@recoil.org>
References: <CAEui0wXdCB+WrjkGesXne-DkfcqHvL_NEVKyg0D02x8Rjw3r3w@mail.gmail.com>
	<2933B549-52FE-4C4F-9679-39685D18541B@recoil.org>
	<CAEui0wXbwLXN76vaP1dmauHW_45Bk90JetgRb-VPDfT0THRkKA@mail.gmail.com>
	<1455913E-0F7C-4980-B50B-45BE2554A27B@recoil.org>
	<7098EE0F-554B-466E-B90B-347B6385DD07@nottingham.ac.uk>
	<2F003AD4-B136-470C-9ABE-0E80F5A0B29D@recoil.org>
	<367BE241-5724-4961-966E-35F9DE034D45@nottingham.ac.uk>
	<F8E75BFC-6948-4F42-88AE-F45CE56BDD75@recoil.org>
	<8d6ff0aa63bdc94fe08cac36a3014d0e@cam.ac.uk>
	<73645514-68C9-4631-92E1-64EC6BC78C36@nottingham.ac.uk>
	<81c14daac6f99ca25c8d7e4b2686476f@cam.ac.uk>
	<6C84F758-BAB9-4079-906C-303C9D320D6E@recoil.org>
	<3448199d59c8944225dd2d3d9ca184ad@cam.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Building mirage-www fails
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="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 22 Oct 2014, at 18:13, Nik Sultana <ns441@cam.ac.uk> wrote:

> Thanks Anil, I could build the Ubuntu 14.04 (Trusty) container following =
your instructions, with one modification: referencing "avsm/docker-opam" in=
stead of "avsm/docker".

Sorry, my typo.

> =

> I haven't tested the other containers since I don't have ready access to =
a CentOS box. This patch will work if the other distributions use a version=
 of sh that's compatible to that used in Trusty.
> =


To be clear: the point of the Docker container is to give you a CentOS envi=
ronment.  You can just use the CentOS tag, even from an Ubuntu host.

> I tested the problem with the semantics of && under -e by replacing the l=
ine
>  make configure && make depend && make build
> with
>  false && make configure && make depend && make build
> and verified that I still got "MIRAGE WORKS" printed at the end after run=
ning
>  ./build.sh ubuntu-trusty-4.01.0 mirage-skeleton
> =

> Then I unfolded
>  false && make configure && make depend && make build
> into
>  false
>  make configure
>  make depend
>  make build
> and reran, and verified that I did NOT get "MIRAGE WORKS" printed at the =
end.
> =

> Finally I removed "false", and reran.
> I did get "MIRAGE WORKS" printed at the end.
> =

> At the risk of asking an over-asked question: what's the procedure for th=
e PR, do I need to quote an issue number etc, or can I just go ahead and cr=
eate a PR from a fork?

Just go ahead and send a pull request to the mirage/is-mirage-broken repo f=
rom your fork.  Getting the code fixed always takes priority over the form =
of the patch :-)

thanks!
Anil


> =

> Nik
> =

> On 2014-10-22 14:03, Anil Madhavapeddy wrote:
>> CCing the devel list so everyone knows how this works.
>> If you have a Linux box with Docker installed, you can clone the
>> precise environment by:
>> $ sudo docker pull avsm/docker
>> This gives you access to a number of 'tags' (which are predefined
>> builds of OPAM/OCaml on various filesystems). Full list of tags are:
>> https://registry.hub.docker.com/u/avsm/docker-opam/tags/manage/
>> You can use a tag directly via:
>> $ sudo docker build -t avsm/docker:ubuntu-trusty-4.01.0 <cmd>
>> The scripts referenced below already do this, and are all in:
>> https://github.com/mirage/is-mirage-broken
>> The cron.sh is the one that's run regularly and sync with the
>> Docker registry and builds every combination.
>> To recreate one of them, just run build.sh directly; e.g.
>> ./build.sh ubuntu-trusty-4.01.0 mirage-skeleton
>> If you already have a suitable environment with OPAM and OCaml
>> installed system-wide, you can just run the shell scripts in
>> is-mirage-broken/scripts/ directly to fix them.
>> -anil
>> On 22 Oct 2014, at 13:55, Nik Sultana <ns441@cam.ac.uk> wrote:
>>> Hi Anil, is this something I can try locally to see if the modified scr=
ipt works, or do I need to run the script on a build server somewhere? Feel=
 free to point me to any "BUILD" notes i could use for this, in case I can =
test it and make a PR, if it's still an open issue.
>>> Best,
>>> Nik
>>> On 2014-10-21 16:18, Richard Mortier wrote:
>>>> if you read the docs i quoted, that's exactly as documented:
>>>>>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list
>>>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>>>> beginning with the ! reserved word, or any command of an AND-OR l=
ist
>>>>>>>>> other than the last.
>>>> it might be rather counter-intuitive and of dubious merit, but it's
>>>> the documented behaviour...
>>>> On 21 Oct 2014, at 16:01, Nik Sultana <ns441@cam.ac.uk> wrote:
>>>>> I think Richard might be right. The semantics of && seems to be a bit
>>>>> counterintuitive in this case. Consider this script:
>>>>> #!/bin/sh
>>>>> set -e #line1
>>>>> false && echo hello #line2
>>>>> echo hello2
>>>>> false #line4
>>>>> echo world
>>>>> It gives the output:
>>>>> hello2
>>>>> which is odd, because we expect the script to be terminated at line2 =
--
>>>>> the line "echo hello2" should never be reached. Instead, the script
>>>>> continues on and is only terminated at line4.
>>>>> Just to test the effect of "set -e", commenting line1 and running the
>>>>> script gives the output:
>>>>> hello2
>>>>> world
>>>>> On 2014-10-21 15:49, Anil Madhavapeddy wrote:
>>>>>> The && should catch that failure.  Consider:
>>>>>> #!/bin/sh -ex
>>>>>> exit 1 && echo hello
>>>>>> echo world
>>>>>> Executing that:
>>>>>> $ ./test.sh
>>>>>> + exit 1
>>>>>> If the make depend fails, I'd expect the && to fail, and the resulti=
ng
>>>>>> non-zero exit code to cause the whole shell to exit.
>>>>>> -anil
>>>>>> On 21 Oct 2014, at 15:37, Richard Mortier
>>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>>>> but isn't it the "make depend" step that's failing as far as the
>>>>>>> is-mirage-broken/scripts/mirage-www script is concerned -- hence it
>>>>>>> won't exit according to point 2. below (-e is ignored if it's any
>>>>>>> command of an AND-OR list other than the last).
>>>>>>> with -e on, seems expected practice is to issue the commands
>>>>>>> individually i.e.
>>>>>>> make depend
>>>>>>> make configure
>>>>>>> make build
>>>>>>> ...and let the -e fail them if required. (assuming you don't want to
>>>>>>> accumulate info about failures of depend/configure on other platfor=
ms
>>>>>>> before bailing out.)
>>>>>>> On 21 Oct 2014, at 15:18, Anil Madhavapeddy <anil@recoil.org> wrote:
>>>>>>>> It's here:
>>>>>>>> https://github.com/mirage/is-mirage-broken/blob/master/scripts/mir=
age-www
>>>>>>>> And the `make` invocations do seem to exit with a non-zero exit co=
de.
>>>>>>>> -ani
>>>>>>>> On 21 Oct 2014, at 15:02, Richard Mortier
>>>>>>>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>>>>>>> not sure precisely where the script being executed actually is but
>>>>>>>>> could it be because it's a command in a multi-command pipeline?
>>>>>>>>> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap=
02.html
>>>>>>>>> -e
>>>>>>>>> When this option is on, when any command fails (for any of the
>>>>>>>>> reasons listed in Consequences of Shell Errors or by returning an
>>>>>>>>> exit status greater than zero), the shell immediately shall exit
>>>>>>>>> with the following exceptions:
>>>>>>>>> 	=95 The failure of any individual command in a multi-command pip=
eline
>>>>>>>>> shall not cause the shell to exit. Only the failure of the pipeli=
ne
>>>>>>>>> itself shall be considered.
>>>>>>>>> 	=95 The -e setting shall be ignored when executing the compound =
list
>>>>>>>>> following the while, until, if, or elif reserved word, a pipeline
>>>>>>>>> beginning with the ! reserved word, or any command of an AND-OR l=
ist
>>>>>>>>> other than the last.
>>>>>>>>> 	=95 If the exit status of a compound command other than a subshe=
ll
>>>>>>>>> command was the result of a failure while -e was being ignored, t=
hen
>>>>>>>>> -e shall not apply to this command.
>>>>>>>>> This requirement applies to the shell environment and each subshe=
ll
>>>>>>>>> environment separately. For example, in:
>>>>>>>>> set -e; (false; echo one) | cat; echo two
>>>>>>>>> the false command causes the subshell to exit without executing e=
cho
>>>>>>>>> one; however, echo two is executed because the exit status of the
>>>>>>>>> pipeline (false; echo one) | cat is zero.
>>>>>>>>> On 21 Oct 2014, at 14:31, Anil Madhavapeddy <anil@recoil.org> wro=
te:
>>>>>>>>>> Great!  For the rest of the list, it looks like mirage-dev is
>>>>>>>>>> working with the external OPAM solver (aspcud, on Ubuntu-trusty),
>>>>>>>>>> but not with the internal one (CentOS builds):
>>>>>>>>>> https://github.com/mirage/is-mirage-broken/tree/master/logs
>>>>>>>>>> This is probably due to our excessive use of depopts; I will
>>>>>>>>>> replace those with explicit virtual packages (e.g. dns-mirage) t=
hat
>>>>>>>>>> encode all the dependencies they need.
>>>>>>>>>> More mysteriously, the `set -e` in the shell script isn't causing
>>>>>>>>>> it to terminate early, so the `MIRAGE WORKS` string is always
>>>>>>>>>> printed.  We need a is-mirage-working-working script to fix our
>>>>>>>>>> is-mirage-working script :-)
>>>>>>>>>> -anil
>>>>>>>>>> On 20 Oct 2014, at 15:09, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>> Thanks, I was able to compile and run mirage-www on a Docker im=
age
>>>>>>>>>>> with 4.01.
>>>>>>>>>>> Luke
>>>>>>>>>>> On 20 October 2014 09:28, Anil Madhavapeddy <anil@recoil.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>> On 19 Oct 2014, at 03:17, Luke Dunstan <lukedunstan81@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> I tried to build mirage-www as per
>>>>>>>>>>>> http://openmirage.org/wiki/mirage-www
>>>>>>>>>>>> $ env NET=3Dsocket FS=3Dcrunch mirage configure --unix
>>>>>>>>>>>> (success)
>>>>>>>>>>>> $ make depend
>>>>>>>>>>>> (success*)
>>>>>>>>>>>> $ make
>>>>>>>>>>>> camlbuild -classic-display -use-ocamlfind -pkgs
>>>>>>>>>>>> lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page=
,io-page.unix,lwt,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-typ=
es,mirage-types.lwt,tcpip.stack-socket
>>>>>>>>>>>> -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,princip=
al"
>>>>>>>>>>>> -cflag -g -lflags -g,-linkpkg main.native
>>>>>>>>>>>> ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt
>>>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
>>>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>>>> + ocamlfind ocamlc -c -g -annot -bin-annot -principal
>>>>>>>>>>>> -strict-sequence -package tcpip.stack-socket -package
>>>>>>>>>>>> mirage-types.lwt -package mirage-types -package mirage-http
>>>>>>>>>>>> -package mirage-fs-unix -package mirage-console.unix -package =
lwt
>>>>>>>>>>>> -package io-page.unix -package io-page -package cstruct -packa=
ge
>>>>>>>>>>>> cowabloga -package cow.syntax -package conduit.mirage -package
>>>>>>>>>>>> lwt.syntax -syntax camlp4o -o main.cmo main.ml
>>>>>>>>>>>> File "main.ml", line 98, characters 2-13:
>>>>>>>>>>>> Error: Unbound module OS
>>>>>>>>>>>> Command exited with code 2.
>>>>>>>>>>>> make: *** [main.native] Error 10
>>>>>>>>>>>> To try to ensure that this was reproducible I also tried start=
ing
>>>>>>>>>>>> from the "avsm/docker-opam:ubuntu-trusty-4.01.0" Docker image =
and
>>>>>>>>>>>> got the same error. However, I had to change the ounit package
>>>>>>>>>>>> URL because forge.ocamlcore.org is apparently down.
>>>>>>>>>>>> Also, I had to "apt-get install libssl-dev" to get past the
>>>>>>>>>>>> "configure" / "make depend" step because it was apparently
>>>>>>>>>>>> required to compile ssl-0.4.7, so maybe that is related to the
>>>>>>>>>>>> problem?
>>>>>>>>>>> Hi Luke,
>>>>>>>>>>> Thanks for the bug report, and bonus points for trying the Dock=
er
>>>>>>>>>>> repository out.  I've fixed the underlying issue that was causi=
ng
>>>>>>>>>>> the unbound OS module to show up -- it's because of some recent
>>>>>>>>>>> shuffling of dependencies in console handling, and this resulted
>>>>>>>>>>> in mirage-unix no longer being implicitly depended on.  I've
>>>>>>>>>>> modified the mirage tool to explicitly add the dependency in.
>>>>>>>>>>> In order to help keep things working across the increasing numb=
er
>>>>>>>>>>> of distributions, I've also created a couple of cron jobs that
>>>>>>>>>>> automatically build things and publish the logs
>>>>>>>>>>> - The Docker registry now has OPAM tags for Ubuntu/CentOS on OC=
aml
>>>>>>>>>>> 4.01 and 4.02:
>>>>>>>>>>> https://registry.hub.docker.com/u/avsm/docker-opam/builds_histo=
ry/15669/
>>>>>>>>>>> https://github.com/avsm/docker-opam has the sources
>>>>>>>>>>> - https://github.com/mirage/is-mirage-broken runs as a cronjob
>>>>>>>>>>> (cron.sh) on blobs.openmirage.org daily and pushes the logs to =
the
>>>>>>>>>>> logs/ directory in this repo.  When that's completed running (a=
nd
>>>>>>>>>>> we've fixed the build breakages!), it should be easy to get it =
on
>>>>>>>>>>> the website as a badge so we can see the status of repos at a
>>>>>>>>>>> glance.
>>>>>>>>>>> About to hop on a flight now, so I've left the cron job running
>>>>>>>>>>> and will check it out tomorrow.  If anyone else can test out the
>>>>>>>>>>> Docker images in the meanwhile, feel free...
>>>>>>>>>>> -anil
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-d=
evel
>>>>>>>>>> _______________________________________________
>>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel
>>>>>>>>> --
>>>>>>>>> Cheers,
>>>>>>>>> R.
>>>>>>>>> _______________________________________________
>>>>>>>>> MirageOS-devel mailing list
>>>>>>>>> MirageOS-devel@lists.xenproject.org
>>>>>>>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-dev=
el
>>>>>>> --
>>>>>>> Cheers,
>>>>>>> R.
>>>>>>> _______________________________________________
>>>>>>> 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
> =



_______________________________________________
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 Oct 22 22:21:46 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 22:21: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 1Xh4Hl-0001QW-FQ; Wed, 22 Oct 2014 22:21:41 +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 1Xh4Hj-0001QD-RD; Wed, 22 Oct 2014 22:21:40 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	26/AF-03135-2FD28445; Wed, 22 Oct 2014 22:21:38 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1414016497!10972525!1
X-Originating-IP: [209.85.217.178]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27971 invoked from network); 22 Oct 2014 22:21:38 -0000
Received: from mail-lb0-f178.google.com (HELO mail-lb0-f178.google.com)
	(209.85.217.178)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 22:21:38 -0000
Received: by mail-lb0-f178.google.com with SMTP id w7so3642350lbi.23
	for <multiple recipients>; Wed, 22 Oct 2014 15:21:37 -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=xN3fWcBjNleuLudCT3zZP1qbffvey+6zdeVR/ZLeSCE=;
	b=iwxo96DYfvsedCgcNKx52/RcsV8qIpcjaeqIerxZF46l+4Tih3Bc3nnR8rNkZQS2rm
	a49vDu8NLM+lkVAPZnJIAXksxaPXiwIUGOZtM8bLDI4wN+Q8oIBtg85vZnMRNydsF2gZ
	6GdzwMAPKWs+70rR9PO44Mjr0l3VI+qdU1TycxT8/dcUXxnKsqDCJMOucGI68gCUSBbN
	HHPjuqzFmW1xv9O4qceyf7hjsrEqJHhkFErwNu3ZVlty7Vo0WET3hzkuRNjnEV0ru/+u
	AxbOC0rcN9YobgQV1iy9VWENiHHqCQq+Yk9MVZVzBNnbNtFaSRqfLmFDa7obm6vi6goe
	LTrA==
MIME-Version: 1.0
X-Received: by 10.112.173.199 with SMTP id bm7mr939453lbc.54.1414016497119;
	Wed, 22 Oct 2014 15:21:37 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Wed, 22 Oct 2014 15:21:37 -0700 (PDT)
Date: Wed, 22 Oct 2014 18:21:37 -0400
X-Google-Sender-Auth: e__CbQ7RehGR8VTQnUnZH91oLz0
Message-ID: <CAHehzX3YOT1AyWPhdJUZFT2_dG7DGUyM9TEK7FkQVm4qVGzwsw@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-devel@lists.xen.org, xen-api@lists.xen.org, 
	xen-announce@lists.xenproject.org, mirageos-devel@lists.xenproject.org, 
	xs-devel@lists.xenserver.org
Subject: [MirageOS-devel] Announcing Xen Project Test Day for 4.5 RC1 on Oct
	29
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

Folks,

Next Wednesday, October 29, is our first Test Day for the 4.5 release
cycle. Release Candidate 1 will be available for assessment.  Now is
the time to see if the upcoming release of the Xen Project Hypervisor
will work in your environment.

Information about testing this release can be found here:
http://wiki.xenproject.org/wiki/Xen_4.5_RC1_test_instructions

To learn more about Test Days, check out:
http://wiki.xenproject.org/wiki/Xen_Project_Test_Days

Also, to facilitate this Test Day, the Document Day originally
scheduled for this date will be postponed one week until November 5.
Join us on that day to help document how Xen Project can be integrated
into other solutions.

See you in #xentest on IRC next Wednesday for Test Day.

Russ

_______________________________________________
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 Oct 22 22:21:46 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Oct 2014 22:21: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 1Xh4Hl-0001QW-FQ; Wed, 22 Oct 2014 22:21:41 +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 1Xh4Hj-0001QD-RD; Wed, 22 Oct 2014 22:21:40 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	26/AF-03135-2FD28445; Wed, 22 Oct 2014 22:21:38 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1414016497!10972525!1
X-Originating-IP: [209.85.217.178]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27971 invoked from network); 22 Oct 2014 22:21:38 -0000
Received: from mail-lb0-f178.google.com (HELO mail-lb0-f178.google.com)
	(209.85.217.178)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	22 Oct 2014 22:21:38 -0000
Received: by mail-lb0-f178.google.com with SMTP id w7so3642350lbi.23
	for <multiple recipients>; Wed, 22 Oct 2014 15:21:37 -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=xN3fWcBjNleuLudCT3zZP1qbffvey+6zdeVR/ZLeSCE=;
	b=iwxo96DYfvsedCgcNKx52/RcsV8qIpcjaeqIerxZF46l+4Tih3Bc3nnR8rNkZQS2rm
	a49vDu8NLM+lkVAPZnJIAXksxaPXiwIUGOZtM8bLDI4wN+Q8oIBtg85vZnMRNydsF2gZ
	6GdzwMAPKWs+70rR9PO44Mjr0l3VI+qdU1TycxT8/dcUXxnKsqDCJMOucGI68gCUSBbN
	HHPjuqzFmW1xv9O4qceyf7hjsrEqJHhkFErwNu3ZVlty7Vo0WET3hzkuRNjnEV0ru/+u
	AxbOC0rcN9YobgQV1iy9VWENiHHqCQq+Yk9MVZVzBNnbNtFaSRqfLmFDa7obm6vi6goe
	LTrA==
MIME-Version: 1.0
X-Received: by 10.112.173.199 with SMTP id bm7mr939453lbc.54.1414016497119;
	Wed, 22 Oct 2014 15:21:37 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Wed, 22 Oct 2014 15:21:37 -0700 (PDT)
Date: Wed, 22 Oct 2014 18:21:37 -0400
X-Google-Sender-Auth: e__CbQ7RehGR8VTQnUnZH91oLz0
Message-ID: <CAHehzX3YOT1AyWPhdJUZFT2_dG7DGUyM9TEK7FkQVm4qVGzwsw@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-devel@lists.xen.org, xen-api@lists.xen.org, 
	xen-announce@lists.xenproject.org, mirageos-devel@lists.xenproject.org, 
	xs-devel@lists.xenserver.org
Subject: [MirageOS-devel] Announcing Xen Project Test Day for 4.5 RC1 on Oct
	29
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

Folks,

Next Wednesday, October 29, is our first Test Day for the 4.5 release
cycle. Release Candidate 1 will be available for assessment.  Now is
the time to see if the upcoming release of the Xen Project Hypervisor
will work in your environment.

Information about testing this release can be found here:
http://wiki.xenproject.org/wiki/Xen_4.5_RC1_test_instructions

To learn more about Test Days, check out:
http://wiki.xenproject.org/wiki/Xen_Project_Test_Days

Also, to facilitate this Test Day, the Document Day originally
scheduled for this date will be postponed one week until November 5.
Join us on that day to help document how Xen Project can be integrated
into other solutions.

See you in #xentest on IRC next Wednesday for Test Day.

Russ

_______________________________________________
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 Oct 23 12:53:46 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 23 Oct 2014 12:53: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 1XhHtb-0006pT-Dz; Thu, 23 Oct 2014 12:53:39 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <piffio@piffio.org>) id 1XhHta-0006pO-Ck
	for mirageos-devel@lists.xenproject.org; Thu, 23 Oct 2014 12:53:38 +0000
Received: from [193.109.254.147:23152] by server-12.bemta-14.messagelabs.com
	id AB/E6-01461-15AF8445; Thu, 23 Oct 2014 12:53:37 +0000
X-Env-Sender: piffio@piffio.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1414068816!12084144!1
X-Originating-IP: [209.85.215.45]
X-SpamReason: No, hits=0.7 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11122 invoked from network); 23 Oct 2014 12:53:36 -0000
Received: from mail-la0-f45.google.com (HELO mail-la0-f45.google.com)
	(209.85.215.45)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Oct 2014 12:53:36 -0000
Received: by mail-la0-f45.google.com with SMTP id q1so788565lam.18
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 23 Oct 2014 05:53:35 -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=VtdunQV/KvNLgMLL6Og943ckrWzNk8KUaFXjzzAHfkY=;
	b=jo1JCPJHUhR6zrnhMcZXR/8gWLCxUavvmpXNcpyWdNrGtqlqKbhNvgWGL/MkEQa73N
	1wvbR9FTT4s+e1T0htj/yDKOFkynKCNAfc7kOdxtZRvhkpIQaAPo0yEp8v5tIn4XiXHD
	of7vN677VykWlVDAPJmiCAfdy47hE+KHfeW5N+jVuJmVFDlQag6exOMeeekO7gUSSzwx
	hFhvwE67m2GWVDlJ/doTkM2XFifcwXWvn9eNv7E9Cv3lMAHRdcoav5LsSVbLtLWKoZL6
	BW9TPwYYLe/hTFuzTThU4MWGcFRSJZnllPOznSPqVbvnUHur89dojH8SKJBJlzGNxO6l
	XURg==
X-Gm-Message-State: ALoCoQl3VlDr21kk0523jktWJ2Uj0+9O/7STYoJPNW6ZdDLyr0PNg1i2do18bEkPMEcs1+AYvphZ
MIME-Version: 1.0
X-Received: by 10.112.140.8 with SMTP id rc8mr4934774lbb.2.1414068815731; Thu,
	23 Oct 2014 05:53:35 -0700 (PDT)
Received: by 10.112.26.210 with HTTP; Thu, 23 Oct 2014 05:53:35 -0700 (PDT)
X-Originating-IP: [200.52.87.183]
In-Reply-To: <5447ADDF.8080602@cam.ac.uk>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
	<5447AC9F.10800@cam.ac.uk>
	<B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
	<5447ADDF.8080602@cam.ac.uk>
Date: Thu, 23 Oct 2014 07:53:35 -0500
Message-ID: <CAJFK9Hifzb1cH--1Obbjpkry5rVfpSFWfVZAKjgd4wjKymWX9Q@mail.gmail.com>
From: Sergio Visinoni <piffio@piffio.org>
To: Jon Ludlam <jjl25@cam.ac.uk>
Cc: Dave Scott <Dave.Scott@citrix.com>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="===============0157851212397621419=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0157851212397621419==
Content-Type: multipart/alternative; boundary=001a11c260067337e20506168de9

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

Hi all,

On 22 October 2014 08:15, Jon Ludlam <jjl25@cam.ac.uk> wrote:

> > From the description of the symptom (works single host but not in a
> pool) my guess would be that xe-unikernel-upload is failing to respond to
> an HTTP redirect from xapi.
> >
> > Perhaps rather than looking at the logs, it would be better to run
> something like
> >
> >   strace -s 1000 xe-unikernel-upload =E2=80=A6
> >
> > =E2=80=94 this should capture the network traffic. Or use plain http an=
d capture
> with tcpdump/wireshark.
>

I've been inspecting the http communication, which seemed just fine in both
cases, beside an apparently additional write() that happens on the client
side on the failing scenario.
After further investigation, I found out something that could very much be
the cause of this issue.

As I mentioned before, all the multihost pools don't have the lates
hotfixes installed, and the most up-to-date one is running XS6.2SP1.

While comparing the logs with the host that is successfully creating the
VM, I found a call to /opt/xensource/libexec/vhd-tool that is not present
in the failing pool. After investigation, it turns out that the
vhd-tool RPM is NOT installed on any of the failing pools. I guess this
package was introduced in a hotfix > SP1 - even though I could not find any
confirmation of this while reading Hotfixes descriptions - and I tend to
believe that this is basically the cause of the problem.
If I get more time during the week I'll check the Xapi code to look for
confirmation of this theory.
Also, I'll try again as soon as we'll be able to update all the multi-host
pools to the latest HotFixes (should happen soon-ish).

In the meantime I found a dirty workaround: I've deployed my Unikernel in
the single-host pool with proper IP setup, did a snapshot, exported the
snapshot and then imported the VM into the multi-host pool. Of course this
is far away from the workflow I want to implement in the long run, but at
least I was able to test the unikernel in a production environment!


> >
> > Cheers,
> > Dave
>


> The error mentioned SSL write error - is there an option to have SSL
> turned off for ease of debugging?
>

After looking at the code and at the README.md file in the
xe-unikernel-upload repository I found out that you can override the server
setting from your ~/.xe file with the --uri parameter, specifying an HTTP
uri.

Thanks everyone for your support.
s

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

<div dir=3D"ltr">Hi all,<div class=3D"gmail_extra"><br><div class=3D"gmail_=
quote">On 22 October 2014 08:15, Jon Ludlam <span dir=3D"ltr">&lt;<a href=
=3D"mailto:jjl25@cam.ac.uk" target=3D"_blank">jjl25@cam.ac.uk</a>&gt;</span=
> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-s=
tyle:solid;padding-left:1ex"><div class=3D""><div class=3D"h5">&gt; From th=
e description of the symptom (works single host but not in a pool) my guess=
 would be that xe-unikernel-upload is failing to respond to an HTTP redirec=
t from xapi.<br>
&gt;<br>
&gt; Perhaps rather than looking at the logs, it would be better to run som=
ething like<br>
&gt;<br>
&gt;=C2=A0 =C2=A0strace -s 1000 xe-unikernel-upload =E2=80=A6<br>
&gt;<br>
&gt; =E2=80=94 this should capture the network traffic. Or use plain http a=
nd capture with tcpdump/wireshark.<br></div></div></blockquote><div><br></d=
iv><div>I&#39;ve been inspecting the http communication, which seemed just =
fine in both cases, beside an apparently additional write() that happens on=
 the client side on the failing scenario.</div><div>After further investiga=
tion, I found out something that could very much be the cause of this issue=
.</div><div><br></div><div>As I mentioned before, all the multihost pools d=
on&#39;t have the lates hotfixes installed, and the most up-to-date one is =
running XS6.2SP1.</div><div><br></div><div>While comparing the logs with th=
e host that is successfully creating the VM, I found a call to /opt/xensour=
ce/libexec/vhd-tool that is not present in the failing pool. After investig=
ation, it turns out that the</div><div>vhd-tool RPM is NOT installed on any=
 of the failing pools. I guess this package was introduced in a hotfix &gt;=
 SP1 - even though I could not find any confirmation of this while reading =
Hotfixes descriptions - and I tend to believe that this is basically the ca=
use of the problem.</div><div>If I get more time during the week I&#39;ll c=
heck the Xapi code to look for confirmation of this theory.</div><div>Also,=
 I&#39;ll try again as soon as we&#39;ll be able to update all the multi-ho=
st pools to the latest HotFixes (should happen soon-ish).</div><div><br></d=
iv><div>In the meantime I found a dirty workaround: I&#39;ve deployed my Un=
ikernel in the single-host pool with proper IP setup, did a snapshot, expor=
ted the snapshot and then imported the VM into the multi-host pool. Of cour=
se this is far away from the workflow I want to implement in the long run, =
but at least I was able to test the unikernel in a production environment!=
=C2=A0</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,2=
04);border-left-style:solid;padding-left:1ex"><div class=3D""><div class=3D=
"h5">
&gt;<br>
&gt; Cheers,<br>
&gt; Dave<br></div></div></blockquote><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;borde=
r-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><di=
v class=3D""><div class=3D"h5">
</div></div>The error mentioned SSL write error - is there an option to hav=
e SSL<br>
turned off for ease of debugging?<br></blockquote><div><br></div><div>After=
 looking at the code and at the README.md file in the xe-unikernel-upload r=
epository I found out that you can override the server setting from your ~/=
.xe file with the --uri parameter, specifying an HTTP uri.</div><div><br></=
div><div>Thanks everyone for your support.</div><div>s</div></div></div></d=
iv>

--001a11c260067337e20506168de9--


--===============0157851212397621419==
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

--===============0157851212397621419==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 23 12:53:46 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 23 Oct 2014 12:53: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 1XhHtb-0006pT-Dz; Thu, 23 Oct 2014 12:53:39 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <piffio@piffio.org>) id 1XhHta-0006pO-Ck
	for mirageos-devel@lists.xenproject.org; Thu, 23 Oct 2014 12:53:38 +0000
Received: from [193.109.254.147:23152] by server-12.bemta-14.messagelabs.com
	id AB/E6-01461-15AF8445; Thu, 23 Oct 2014 12:53:37 +0000
X-Env-Sender: piffio@piffio.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1414068816!12084144!1
X-Originating-IP: [209.85.215.45]
X-SpamReason: No, hits=0.7 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11122 invoked from network); 23 Oct 2014 12:53:36 -0000
Received: from mail-la0-f45.google.com (HELO mail-la0-f45.google.com)
	(209.85.215.45)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Oct 2014 12:53:36 -0000
Received: by mail-la0-f45.google.com with SMTP id q1so788565lam.18
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 23 Oct 2014 05:53:35 -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=VtdunQV/KvNLgMLL6Og943ckrWzNk8KUaFXjzzAHfkY=;
	b=jo1JCPJHUhR6zrnhMcZXR/8gWLCxUavvmpXNcpyWdNrGtqlqKbhNvgWGL/MkEQa73N
	1wvbR9FTT4s+e1T0htj/yDKOFkynKCNAfc7kOdxtZRvhkpIQaAPo0yEp8v5tIn4XiXHD
	of7vN677VykWlVDAPJmiCAfdy47hE+KHfeW5N+jVuJmVFDlQag6exOMeeekO7gUSSzwx
	hFhvwE67m2GWVDlJ/doTkM2XFifcwXWvn9eNv7E9Cv3lMAHRdcoav5LsSVbLtLWKoZL6
	BW9TPwYYLe/hTFuzTThU4MWGcFRSJZnllPOznSPqVbvnUHur89dojH8SKJBJlzGNxO6l
	XURg==
X-Gm-Message-State: ALoCoQl3VlDr21kk0523jktWJ2Uj0+9O/7STYoJPNW6ZdDLyr0PNg1i2do18bEkPMEcs1+AYvphZ
MIME-Version: 1.0
X-Received: by 10.112.140.8 with SMTP id rc8mr4934774lbb.2.1414068815731; Thu,
	23 Oct 2014 05:53:35 -0700 (PDT)
Received: by 10.112.26.210 with HTTP; Thu, 23 Oct 2014 05:53:35 -0700 (PDT)
X-Originating-IP: [200.52.87.183]
In-Reply-To: <5447ADDF.8080602@cam.ac.uk>
References: <CAJFK9Hj8BwAu9H1QuSEFiAz9kziM_DmzU2pXA54uBWp9T9e5Aw@mail.gmail.com>
	<9EE4EB48-E8D4-4679-93EF-1B4B41E34E5D@cam.ac.uk>
	<CAJFK9HhzgiLbWOfoSSMfaVwHWQie4_mNYCWPV-xUL5zLanP2Vw@mail.gmail.com>
	<5447AC9F.10800@cam.ac.uk>
	<B04730E9-1509-44CD-A825-3E0774224ADE@citrix.com>
	<5447ADDF.8080602@cam.ac.uk>
Date: Thu, 23 Oct 2014 07:53:35 -0500
Message-ID: <CAJFK9Hifzb1cH--1Obbjpkry5rVfpSFWfVZAKjgd4wjKymWX9Q@mail.gmail.com>
From: Sergio Visinoni <piffio@piffio.org>
To: Jon Ludlam <jjl25@cam.ac.uk>
Cc: Dave Scott <Dave.Scott@citrix.com>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Cannot deploy a Unikernel to a XenServer pool
 running XS 6.2
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="===============0157851212397621419=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0157851212397621419==
Content-Type: multipart/alternative; boundary=001a11c260067337e20506168de9

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

Hi all,

On 22 October 2014 08:15, Jon Ludlam <jjl25@cam.ac.uk> wrote:

> > From the description of the symptom (works single host but not in a
> pool) my guess would be that xe-unikernel-upload is failing to respond to
> an HTTP redirect from xapi.
> >
> > Perhaps rather than looking at the logs, it would be better to run
> something like
> >
> >   strace -s 1000 xe-unikernel-upload =E2=80=A6
> >
> > =E2=80=94 this should capture the network traffic. Or use plain http an=
d capture
> with tcpdump/wireshark.
>

I've been inspecting the http communication, which seemed just fine in both
cases, beside an apparently additional write() that happens on the client
side on the failing scenario.
After further investigation, I found out something that could very much be
the cause of this issue.

As I mentioned before, all the multihost pools don't have the lates
hotfixes installed, and the most up-to-date one is running XS6.2SP1.

While comparing the logs with the host that is successfully creating the
VM, I found a call to /opt/xensource/libexec/vhd-tool that is not present
in the failing pool. After investigation, it turns out that the
vhd-tool RPM is NOT installed on any of the failing pools. I guess this
package was introduced in a hotfix > SP1 - even though I could not find any
confirmation of this while reading Hotfixes descriptions - and I tend to
believe that this is basically the cause of the problem.
If I get more time during the week I'll check the Xapi code to look for
confirmation of this theory.
Also, I'll try again as soon as we'll be able to update all the multi-host
pools to the latest HotFixes (should happen soon-ish).

In the meantime I found a dirty workaround: I've deployed my Unikernel in
the single-host pool with proper IP setup, did a snapshot, exported the
snapshot and then imported the VM into the multi-host pool. Of course this
is far away from the workflow I want to implement in the long run, but at
least I was able to test the unikernel in a production environment!


> >
> > Cheers,
> > Dave
>


> The error mentioned SSL write error - is there an option to have SSL
> turned off for ease of debugging?
>

After looking at the code and at the README.md file in the
xe-unikernel-upload repository I found out that you can override the server
setting from your ~/.xe file with the --uri parameter, specifying an HTTP
uri.

Thanks everyone for your support.
s

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

<div dir=3D"ltr">Hi all,<div class=3D"gmail_extra"><br><div class=3D"gmail_=
quote">On 22 October 2014 08:15, Jon Ludlam <span dir=3D"ltr">&lt;<a href=
=3D"mailto:jjl25@cam.ac.uk" target=3D"_blank">jjl25@cam.ac.uk</a>&gt;</span=
> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-s=
tyle:solid;padding-left:1ex"><div class=3D""><div class=3D"h5">&gt; From th=
e description of the symptom (works single host but not in a pool) my guess=
 would be that xe-unikernel-upload is failing to respond to an HTTP redirec=
t from xapi.<br>
&gt;<br>
&gt; Perhaps rather than looking at the logs, it would be better to run som=
ething like<br>
&gt;<br>
&gt;=C2=A0 =C2=A0strace -s 1000 xe-unikernel-upload =E2=80=A6<br>
&gt;<br>
&gt; =E2=80=94 this should capture the network traffic. Or use plain http a=
nd capture with tcpdump/wireshark.<br></div></div></blockquote><div><br></d=
iv><div>I&#39;ve been inspecting the http communication, which seemed just =
fine in both cases, beside an apparently additional write() that happens on=
 the client side on the failing scenario.</div><div>After further investiga=
tion, I found out something that could very much be the cause of this issue=
.</div><div><br></div><div>As I mentioned before, all the multihost pools d=
on&#39;t have the lates hotfixes installed, and the most up-to-date one is =
running XS6.2SP1.</div><div><br></div><div>While comparing the logs with th=
e host that is successfully creating the VM, I found a call to /opt/xensour=
ce/libexec/vhd-tool that is not present in the failing pool. After investig=
ation, it turns out that the</div><div>vhd-tool RPM is NOT installed on any=
 of the failing pools. I guess this package was introduced in a hotfix &gt;=
 SP1 - even though I could not find any confirmation of this while reading =
Hotfixes descriptions - and I tend to believe that this is basically the ca=
use of the problem.</div><div>If I get more time during the week I&#39;ll c=
heck the Xapi code to look for confirmation of this theory.</div><div>Also,=
 I&#39;ll try again as soon as we&#39;ll be able to update all the multi-ho=
st pools to the latest HotFixes (should happen soon-ish).</div><div><br></d=
iv><div>In the meantime I found a dirty workaround: I&#39;ve deployed my Un=
ikernel in the single-host pool with proper IP setup, did a snapshot, expor=
ted the snapshot and then imported the VM into the multi-host pool. Of cour=
se this is far away from the workflow I want to implement in the long run, =
but at least I was able to test the unikernel in a production environment!=
=C2=A0</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,2=
04);border-left-style:solid;padding-left:1ex"><div class=3D""><div class=3D=
"h5">
&gt;<br>
&gt; Cheers,<br>
&gt; Dave<br></div></div></blockquote><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;borde=
r-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><di=
v class=3D""><div class=3D"h5">
</div></div>The error mentioned SSL write error - is there an option to hav=
e SSL<br>
turned off for ease of debugging?<br></blockquote><div><br></div><div>After=
 looking at the code and at the README.md file in the xe-unikernel-upload r=
epository I found out that you can override the server setting from your ~/=
.xe file with the --uri parameter, specifying an HTTP uri.</div><div><br></=
div><div>Thanks everyone for your support.</div><div>s</div></div></div></d=
iv>

--001a11c260067337e20506168de9--


--===============0157851212397621419==
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

--===============0157851212397621419==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 13:30:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13: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 1Xhewf-00085V-Gp; Fri, 24 Oct 2014 13:30:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ania.skorupa@yahoo.com>) id 1Xhewd-00085Q-Uf
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:30:20 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	9A/ED-11509-B645A445; Fri, 24 Oct 2014 13:30:19 +0000
X-Env-Sender: ania.skorupa@yahoo.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1414157416!10855086!1
X-Originating-IP: [67.195.87.180]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
	FORGED_YAHOO_RCVD,HTML_60_70,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30647 invoked from network); 24 Oct 2014 13:30:18 -0000
Received: from nm47-vm2.bullet.mail.gq1.yahoo.com (HELO
	nm47-vm2.bullet.mail.gq1.yahoo.com) (67.195.87.180)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 13:30:18 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
	t=1414157416; bh=7YqnGSOhjMQ/WaOzgtphkQ3K4f2Df5aRdF+rNH+PN/I=;
	h=Date:From:Reply-To:To:Subject:From:Subject;
	b=dA81JXkOrSpCNv/21R2mNVDdixJCFHQKiCrX7FpYnTYgqFvTkqSNhsfdkdIQ6OoR1dLRttR49cZTlfUGNzszF/EqeTe6VbGQCYlN/D8HL//4RWkN0rZdM40oRbjYzkbarvmgvucK/353s2WL6LqpZUgqHoXtK5aEbc+s+WcMpsBy2JrLfI2sljvHHxSK+NVyfiPyegM9PGrXNh/leedk9s1i4y+lXNCxEhopeQlQAIWsLPHUu3l4Qq7P3wsOYS10RoCu8uF+0Km/pyAO+sLeLb1K6H7fzh/bA6MfpaApMdbD53e7sAPF5L1SNx4KhCxOBHi2o+fwhws8yU7+XLzdLQ==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com;
	b=Zzn5QeOclLSQnwQfsavv8WQaofE+p9q+YpbvxDngW0Il3czr2CmfDu+yIsy93WlvxMZAiXUMBv1s28wm3kOIVKEnLuXbb9EONUtqCvuVvhLMSGfa6SgmCGCCAqF4iNtthA0mDONuyU3aAJOoG3Ov19flrwTR7/1UHseJIivGcwYFBJU6kJUM5szuIAxibTwFGcoNSMMKhAB/WpVVNEp78QLwZgU+udP/x3WYs5iaVD99Z3ATqTAw1yoor0zrJCiCHBl6EEa8cRop1XBWrLbjx/9TYPURhNQsr/4BABzClA3vj7SJ3PUfcZnO6t+r01bZA3NE9i6SBQMjGWIs2anBrA==;
Received: from [127.0.0.1] by nm47.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 13:30:16 -0000
Received: from [98.137.12.57] by nm47.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
Received: from [66.196.81.170] by tm2.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
Received: from [98.139.212.230] by tm16.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
Received: from [127.0.0.1] by omp1039.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
X-Yahoo-Newman-Property: ymail-4
X-Yahoo-Newman-Id: 457280.32274.bm@omp1039.mail.bf1.yahoo.com
X-YMail-OSG: KwgdafMVM1nV_VUIX12kNUhsk2N6saXl6si3y.EOc3x2FqM5NYPsKBleXY5LQtl
	Sejn4GURfMArQZGUP7z18kQzlIMCrNg39h4RtHAiuKpxQNbXAkInSREiv_lsNsHN_9rOeg7Wm7Ix
	RYGpgYJ03mQGwoje7HXvWRyLAyrG8lPdxRa0wJ3BmvmX0uu4ZCJ9igaKsto8RXfIaROuRaX5D4pU
	Sq10DIDN81XHd9VUnsnGa4MtirWmGUoRSPPFAyyGswSsxxZcmQLMCQajS.TYw3Ebn_eeVL1xgqoE
	0DxG0_bnIe30RsiRxy6KD_6CrnKLa_Bz7rnWACfw74UahGpktlRMXBNLhruINwV_pAJaBT7lSsZs
	E7LDHKNo5RRDpgWaYtNz2Wy3CEFKYVpGnEVC.Lyi5fPsLyk9b6bgPTjh.Hlj936zrbaKAH5.lXB1
	xdBlEzpC4MqGdTBVsQdfFDLR2_JgKtq9CZp5BuCT.X4CLk0GPazEyXdUtjEqinbHEwHOCBlqLxwh
	031E3.dzaTX7tIbWDsvZP3r_i8iEE9Q--
Received: by 66.196.80.148; Fri, 24 Oct 2014 13:27:15 +0000 
Date: Fri, 24 Oct 2014 13:27:14 +0000 (UTC)
From: Ania Skorupa <ania.skorupa@yahoo.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Message-ID: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
MIME-Version: 1.0
Content-Length: 1632
Subject: [MirageOS-devel] mirage-www configure error
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: Ania Skorupa <ania.skorupa@yahoo.com>
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="===============4057565493404681114=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4057565493404681114==
Content-Type: multipart/alternative; 
	boundary="----=_Part_347278_1540335153.1414157234408"
Content-Length: 1090

------=_Part_347278_1540335153.1414157234408
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

running mirage-configure --unix (or --xen) on mirage-www produces the error:
File "config.ml", line 57, characters 2-16:
Error: Unbound value conduit_direct
Command exited with code 2.

any fix please?

------=_Part_347278_1540335153.1414157234408
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div dir="ltr" id="yui_3_16_0_1_1414157003546_3538">running mirage-configure --unix (or --xen) on mirage-www produces the error:</div><div id="yui_3_16_0_1_1414157003546_3618" dir="ltr"><br></div>File "config.ml", line 57, characters 2-16:<br style="" class="">Error: Unbound value conduit_direct<br style="" class="">Command exited with code 2.<br style="" class=""><div><br></div><div dir="ltr">any fix please?<br></div></div></body></html>
------=_Part_347278_1540335153.1414157234408--


--===============4057565493404681114==
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

--===============4057565493404681114==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 13:30:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13: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 1Xhewf-00085V-Gp; Fri, 24 Oct 2014 13:30:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ania.skorupa@yahoo.com>) id 1Xhewd-00085Q-Uf
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:30:20 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	9A/ED-11509-B645A445; Fri, 24 Oct 2014 13:30:19 +0000
X-Env-Sender: ania.skorupa@yahoo.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1414157416!10855086!1
X-Originating-IP: [67.195.87.180]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
	FORGED_YAHOO_RCVD,HTML_60_70,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30647 invoked from network); 24 Oct 2014 13:30:18 -0000
Received: from nm47-vm2.bullet.mail.gq1.yahoo.com (HELO
	nm47-vm2.bullet.mail.gq1.yahoo.com) (67.195.87.180)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 13:30:18 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
	t=1414157416; bh=7YqnGSOhjMQ/WaOzgtphkQ3K4f2Df5aRdF+rNH+PN/I=;
	h=Date:From:Reply-To:To:Subject:From:Subject;
	b=dA81JXkOrSpCNv/21R2mNVDdixJCFHQKiCrX7FpYnTYgqFvTkqSNhsfdkdIQ6OoR1dLRttR49cZTlfUGNzszF/EqeTe6VbGQCYlN/D8HL//4RWkN0rZdM40oRbjYzkbarvmgvucK/353s2WL6LqpZUgqHoXtK5aEbc+s+WcMpsBy2JrLfI2sljvHHxSK+NVyfiPyegM9PGrXNh/leedk9s1i4y+lXNCxEhopeQlQAIWsLPHUu3l4Qq7P3wsOYS10RoCu8uF+0Km/pyAO+sLeLb1K6H7fzh/bA6MfpaApMdbD53e7sAPF5L1SNx4KhCxOBHi2o+fwhws8yU7+XLzdLQ==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com;
	b=Zzn5QeOclLSQnwQfsavv8WQaofE+p9q+YpbvxDngW0Il3czr2CmfDu+yIsy93WlvxMZAiXUMBv1s28wm3kOIVKEnLuXbb9EONUtqCvuVvhLMSGfa6SgmCGCCAqF4iNtthA0mDONuyU3aAJOoG3Ov19flrwTR7/1UHseJIivGcwYFBJU6kJUM5szuIAxibTwFGcoNSMMKhAB/WpVVNEp78QLwZgU+udP/x3WYs5iaVD99Z3ATqTAw1yoor0zrJCiCHBl6EEa8cRop1XBWrLbjx/9TYPURhNQsr/4BABzClA3vj7SJ3PUfcZnO6t+r01bZA3NE9i6SBQMjGWIs2anBrA==;
Received: from [127.0.0.1] by nm47.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 13:30:16 -0000
Received: from [98.137.12.57] by nm47.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
Received: from [66.196.81.170] by tm2.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
Received: from [98.139.212.230] by tm16.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
Received: from [127.0.0.1] by omp1039.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 13:27:15 -0000
X-Yahoo-Newman-Property: ymail-4
X-Yahoo-Newman-Id: 457280.32274.bm@omp1039.mail.bf1.yahoo.com
X-YMail-OSG: KwgdafMVM1nV_VUIX12kNUhsk2N6saXl6si3y.EOc3x2FqM5NYPsKBleXY5LQtl
	Sejn4GURfMArQZGUP7z18kQzlIMCrNg39h4RtHAiuKpxQNbXAkInSREiv_lsNsHN_9rOeg7Wm7Ix
	RYGpgYJ03mQGwoje7HXvWRyLAyrG8lPdxRa0wJ3BmvmX0uu4ZCJ9igaKsto8RXfIaROuRaX5D4pU
	Sq10DIDN81XHd9VUnsnGa4MtirWmGUoRSPPFAyyGswSsxxZcmQLMCQajS.TYw3Ebn_eeVL1xgqoE
	0DxG0_bnIe30RsiRxy6KD_6CrnKLa_Bz7rnWACfw74UahGpktlRMXBNLhruINwV_pAJaBT7lSsZs
	E7LDHKNo5RRDpgWaYtNz2Wy3CEFKYVpGnEVC.Lyi5fPsLyk9b6bgPTjh.Hlj936zrbaKAH5.lXB1
	xdBlEzpC4MqGdTBVsQdfFDLR2_JgKtq9CZp5BuCT.X4CLk0GPazEyXdUtjEqinbHEwHOCBlqLxwh
	031E3.dzaTX7tIbWDsvZP3r_i8iEE9Q--
Received: by 66.196.80.148; Fri, 24 Oct 2014 13:27:15 +0000 
Date: Fri, 24 Oct 2014 13:27:14 +0000 (UTC)
From: Ania Skorupa <ania.skorupa@yahoo.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Message-ID: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
MIME-Version: 1.0
Content-Length: 1632
Subject: [MirageOS-devel] mirage-www configure error
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: Ania Skorupa <ania.skorupa@yahoo.com>
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="===============4057565493404681114=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4057565493404681114==
Content-Type: multipart/alternative; 
	boundary="----=_Part_347278_1540335153.1414157234408"
Content-Length: 1090

------=_Part_347278_1540335153.1414157234408
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

running mirage-configure --unix (or --xen) on mirage-www produces the error:
File "config.ml", line 57, characters 2-16:
Error: Unbound value conduit_direct
Command exited with code 2.

any fix please?

------=_Part_347278_1540335153.1414157234408
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div dir="ltr" id="yui_3_16_0_1_1414157003546_3538">running mirage-configure --unix (or --xen) on mirage-www produces the error:</div><div id="yui_3_16_0_1_1414157003546_3618" dir="ltr"><br></div>File "config.ml", line 57, characters 2-16:<br style="" class="">Error: Unbound value conduit_direct<br style="" class="">Command exited with code 2.<br style="" class=""><div><br></div><div dir="ltr">any fix please?<br></div></div></body></html>
------=_Part_347278_1540335153.1414157234408--


--===============4057565493404681114==
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

--===============4057565493404681114==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 13:35:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13:35: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 1Xhf25-0008C9-2P; Fri, 24 Oct 2014 13:35:57 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xhf23-0008C4-NE
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:35:55 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	77/0D-02699-BB55A445; Fri, 24 Oct 2014 13:35:55 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-21.messagelabs.com!1414157754!12387806!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1155 invoked from network); 24 Oct 2014 13:35:54 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 13:35:54 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id e61b3fb2;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 24 Oct 2014 14:38:46 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
Date: Fri, 24 Oct 2014 14:35:52 +0100
Message-Id: <D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
References: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
To: Ania Skorupa <ania.skorupa@yahoo.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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 Ania,

Do you have the mirage-dev opam remote activated, with the latest libraries?  Just run:

$ opam remote

And if you don't see it in the list, add it via

$ opam remote add mirage git://github.com/mirage/mirage-www

This should recompile your installed libraries so that you have the mirage 2 stream.

-anil

> On 24 Oct 2014, at 14:27, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
> 
> running mirage-configure --unix (or --xen) on mirage-www produces the error:
> 
> File "config.ml", line 57, characters 2-16:
> Error: Unbound value conduit_direct
> Command exited with code 2.
> 
> any fix please?
> _______________________________________________
> 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 Fri Oct 24 13:35:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13:35: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 1Xhf25-0008C9-2P; Fri, 24 Oct 2014 13:35:57 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xhf23-0008C4-NE
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:35:55 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	77/0D-02699-BB55A445; Fri, 24 Oct 2014 13:35:55 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-21.messagelabs.com!1414157754!12387806!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1155 invoked from network); 24 Oct 2014 13:35:54 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 13:35:54 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id e61b3fb2;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 24 Oct 2014 14:38:46 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
Date: Fri, 24 Oct 2014 14:35:52 +0100
Message-Id: <D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
References: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
To: Ania Skorupa <ania.skorupa@yahoo.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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 Ania,

Do you have the mirage-dev opam remote activated, with the latest libraries?  Just run:

$ opam remote

And if you don't see it in the list, add it via

$ opam remote add mirage git://github.com/mirage/mirage-www

This should recompile your installed libraries so that you have the mirage 2 stream.

-anil

> On 24 Oct 2014, at 14:27, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
> 
> running mirage-configure --unix (or --xen) on mirage-www produces the error:
> 
> File "config.ml", line 57, characters 2-16:
> Error: Unbound value conduit_direct
> Command exited with code 2.
> 
> any fix please?
> _______________________________________________
> 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 Fri Oct 24 13:39:57 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13:39: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 1Xhf5x-0008IT-E2; Fri, 24 Oct 2014 13:39:57 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1Xhf5v-0008IO-OL
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:39:55 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	19/22-02696-AA65A445; Fri, 24 Oct 2014 13:39:54 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1414157993!11567666!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9368 invoked from network); 24 Oct 2014 13:39:54 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 13:39:54 -0000
Received: from [192.168.1.100] (unknown [88.130.131.25])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 743CB149B
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 15:39:53 +0200 (CEST)
Message-ID: <544A567A.2010301@mehnert.org>
Date: Fri, 24 Oct 2014 15:39:06 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
	<D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
In-Reply-To: <D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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 PGP SIGNED MESSAGE-----
Hash: SHA384

On 10/24/2014 15:35, Anil Madhavapeddy wrote:
> Do you have the mirage-dev opam remote activated, with the latest
> libraries?  Just run:
> 
> $ opam remote
> 
> And if you don't see it in the list, add it via
> 
> $ opam remote add mirage git://github.com/mirage/mirage-www

it should have been git://github.com/mirage/mirage-dev ;)


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

iQIcBAEBCQAGBQJUSlZ6AAoJELyJZYjffCjuF1kQALuugUb1D0nWWd7uwExIcQhp
lw84GfQxCLy/ahmy2LQP2UfPKq2XTQcrVh5RCIb1G4F3no3kLeqnjlnouyEnFT39
vlx3cmOEVQymst7hwYP+rCszTsSrF/b6Y6XFfQSf0qeTdV6okfbfXsKs2tOHZK77
PkOmAmQGYCfuzEfOIt5azgSpErKpLIXf+XjTE+NwBF5kXw79RVfNjXt7M6tKLFc5
PUYu9a+oWQwYggHtvCAPnoOH7ws88MLYzav/t8QccL7y+ij9mSYXcPGyO4duHONG
0uQ3BMZCDlQFgU5EVpOFHSp1oIG9fgxoqurG31GLHtV58RfmhUgA1aXdb+gSsuSC
8mRRJyjRMLMLC2uKGG8KmM9mBkZdTAZ9h4c7baU3VGAPMAyqEn7/n1PZJv/7O16X
0OGFlXvsvWUNvESbEu9B1zTNHrKO8B6actBZhU/Wz3mNxsy6myMSEA1udNocvmxV
9mJmmOehTBBEMFpkFUHkp9qIBBliG44xQJcN9WTmM7ColekxX0n0i9NNAvZ7Rc5V
zVxww7+NUoejS8+G5O+Di5oNT+UowjTGA99hXvbcEld5qLlar3Vzc0+Gr35U3bEh
9TPClZbGEuZistjuEidFI/+rTGIkDAyzr/dunKrjX6aWcVybtCiJ3hMbLHSnuz5Z
ybRBl1G21aRAailpqUmX
=LBrJ
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 24 13:39:57 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13:39: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 1Xhf5x-0008IT-E2; Fri, 24 Oct 2014 13:39:57 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1Xhf5v-0008IO-OL
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:39:55 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	19/22-02696-AA65A445; Fri, 24 Oct 2014 13:39:54 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-8.tower-206.messagelabs.com!1414157993!11567666!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9368 invoked from network); 24 Oct 2014 13:39:54 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 13:39:54 -0000
Received: from [192.168.1.100] (unknown [88.130.131.25])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 743CB149B
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 15:39:53 +0200 (CEST)
Message-ID: <544A567A.2010301@mehnert.org>
Date: Fri, 24 Oct 2014 15:39:06 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
	<D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
In-Reply-To: <D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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 PGP SIGNED MESSAGE-----
Hash: SHA384

On 10/24/2014 15:35, Anil Madhavapeddy wrote:
> Do you have the mirage-dev opam remote activated, with the latest
> libraries?  Just run:
> 
> $ opam remote
> 
> And if you don't see it in the list, add it via
> 
> $ opam remote add mirage git://github.com/mirage/mirage-www

it should have been git://github.com/mirage/mirage-dev ;)


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

iQIcBAEBCQAGBQJUSlZ6AAoJELyJZYjffCjuF1kQALuugUb1D0nWWd7uwExIcQhp
lw84GfQxCLy/ahmy2LQP2UfPKq2XTQcrVh5RCIb1G4F3no3kLeqnjlnouyEnFT39
vlx3cmOEVQymst7hwYP+rCszTsSrF/b6Y6XFfQSf0qeTdV6okfbfXsKs2tOHZK77
PkOmAmQGYCfuzEfOIt5azgSpErKpLIXf+XjTE+NwBF5kXw79RVfNjXt7M6tKLFc5
PUYu9a+oWQwYggHtvCAPnoOH7ws88MLYzav/t8QccL7y+ij9mSYXcPGyO4duHONG
0uQ3BMZCDlQFgU5EVpOFHSp1oIG9fgxoqurG31GLHtV58RfmhUgA1aXdb+gSsuSC
8mRRJyjRMLMLC2uKGG8KmM9mBkZdTAZ9h4c7baU3VGAPMAyqEn7/n1PZJv/7O16X
0OGFlXvsvWUNvESbEu9B1zTNHrKO8B6actBZhU/Wz3mNxsy6myMSEA1udNocvmxV
9mJmmOehTBBEMFpkFUHkp9qIBBliG44xQJcN9WTmM7ColekxX0n0i9NNAvZ7Rc5V
zVxww7+NUoejS8+G5O+Di5oNT+UowjTGA99hXvbcEld5qLlar3Vzc0+Gr35U3bEh
9TPClZbGEuZistjuEidFI/+rTGIkDAyzr/dunKrjX6aWcVybtCiJ3hMbLHSnuz5Z
ybRBl1G21aRAailpqUmX
=LBrJ
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 24 13:41:41 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13:41: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 1Xhf7c-0008KB-Kh; Fri, 24 Oct 2014 13:41:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xhf7b-0008K6-DM
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:41:39 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	6A/04-02952-2175A445; Fri, 24 Oct 2014 13:41:38 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-21.messagelabs.com!1414158097!12389572!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17378 invoked from network); 24 Oct 2014 13:41:38 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 13:41:38 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 418113a6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 24 Oct 2014 14:44:30 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544A567A.2010301@mehnert.org>
Date: Fri, 24 Oct 2014 14:41:36 +0100
Message-Id: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
References: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
	<D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
	<544A567A.2010301@mehnert.org>
To: Hannes Mehnert <hannes@mehnert.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] mirage-www configure error
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 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org> wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
> 
> On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> Do you have the mirage-dev opam remote activated, with the latest
>> libraries?  Just run:
>> 
>> $ opam remote
>> 
>> And if you don't see it in the list, add it via
>> 
>> $ opam remote add mirage git://github.com/mirage/mirage-www
> 
> it should have been git://github.com/mirage/mirage-dev ;)

I need to take myself away from my keyboard today :-)

-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 Fri Oct 24 13:41:41 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 13:41: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 1Xhf7c-0008KB-Kh; Fri, 24 Oct 2014 13:41:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xhf7b-0008K6-DM
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 13:41:39 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	6A/04-02952-2175A445; Fri, 24 Oct 2014 13:41:38 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-21.messagelabs.com!1414158097!12389572!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17378 invoked from network); 24 Oct 2014 13:41:38 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 13:41:38 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 418113a6;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 24 Oct 2014 14:44:30 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544A567A.2010301@mehnert.org>
Date: Fri, 24 Oct 2014 14:41:36 +0100
Message-Id: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
References: <1802142048.347279.1414157234410.JavaMail.yahoo@jws10625.mail.bf1.yahoo.com>
	<D7461E19-F5C1-47E6-86A0-912FB69B04D4@recoil.org>
	<544A567A.2010301@mehnert.org>
To: Hannes Mehnert <hannes@mehnert.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] mirage-www configure error
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 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org> wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
> 
> On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> Do you have the mirage-dev opam remote activated, with the latest
>> libraries?  Just run:
>> 
>> $ opam remote
>> 
>> And if you don't see it in the list, add it via
>> 
>> $ opam remote add mirage git://github.com/mirage/mirage-www
> 
> it should have been git://github.com/mirage/mirage-dev ;)

I need to take myself away from my keyboard today :-)

-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 Fri Oct 24 14:01:19 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 14:01: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 1XhfQc-0000RS-3Z; Fri, 24 Oct 2014 14:01:18 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1XhfQa-0000RN-I0
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 14:01:16 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	C5/65-13367-BAB5A445; Fri, 24 Oct 2014 14:01:15 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414159274!11592145!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24204 invoked from network); 24 Oct 2014 14:01:15 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-2.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 14:01:15 -0000
Received: from [192.168.1.100] (unknown [88.130.131.25])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 346441B1A
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 16:01:14 +0200 (CEST)
Message-ID: <544A5B80.6030107@mehnert.org>
Date: Fri, 24 Oct 2014 16:00:32 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <54196812.5080701@mehnert.org>
In-Reply-To: <54196812.5080701@mehnert.org>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 PGP SIGNED MESSAGE-----
Hash: SHA384

Some minor updates:

On 09/17/2014 12:53, Hannes Mehnert wrote:
> gmp (the GNU multi-precision arithmetic library) 
> ------------------------------------------------
> 
> Configure (esp. config.guess) gets confused by an arm dualcore: 
> http://berlin.ccc.de/~hannes/gmp-6a.diff fixes this.

Submitted upstream
https://gmplib.org/list-archives/gmp-bugs/2014-October/003563.html

> zarith ------

Actually, lots of symbols (fflush, exit, printf, stdout) are only
needed for tracing/debugging. I submitted a patch upstream as well:
https://forge.ocamlcore.org/tracker/?func=detail&atid=1096&aid=1434&group_id=243


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

iQIcBAEBCQAGBQJUSluAAAoJELyJZYjffCjus+8QAK/FJYE2TNzDbsaFf/98LJZz
G+PQW7m/75g3uAskSMx1YEpNoIsWTAxKU5mo1ULfuRpKA4Ml3KkXqPpTEBB2a9A0
BYq4J1UmOzaTmA+H3yyeQVGtNdBuyd62/I+viPLj9IJGgkYRr049Pf8Fr5gxtFf2
rGcphbofP6mSyQijlMJ0QYVoxlxVDxJugd1J8bjh/WBxj5vKOsVXnGxJVRZweqLg
D0VkWWN1JAmY01XRMPFBeNPascq1SmQC/FRYh3sOs61bbKAc0a5iwH+e4acXkQwU
SUU+QRG8LLEbslccb+sNCcDZkDmxcKgzoyiYsBEBOkS7xmC4d11cmxNUP4XLiL3b
kEG9dCPxa2moYLw5PuAM2L3iddiPwYJMfWsZiQVbr2JnOO/LSu7EsFKEtvDoOdmL
5+ZowKa5stDq+l7v4Xs4kQLjXADWbGfoqJuhtod+tIWEOH1S4BblNK8Q9F7ZUZYZ
LLamhLXKJ1UCZf3fSJ8gabfSoczLGL1KTfY4cx8U3dpvdPDH6gtJT9dlKA9dRoiE
dXwHDb2KLFzxFEvCM9YsVOMw8eq7h4K17PYssPjWyEkZ7Hb2wPtdIzhSiZHwYOvR
BnSwdWT7IvMlBeFoi+DPbqj3AgM6NxtNNrWckfpKHDzh5ubHE2pi6Wb6sV1Cbc9X
jKrLQT8SyHC9LI+c/xcb
=Ucmn
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 24 14:01:19 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 14:01: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 1XhfQc-0000RS-3Z; Fri, 24 Oct 2014 14:01:18 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1XhfQa-0000RN-I0
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 14:01:16 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	C5/65-13367-BAB5A445; Fri, 24 Oct 2014 14:01:15 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414159274!11592145!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24204 invoked from network); 24 Oct 2014 14:01:15 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-2.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 24 Oct 2014 14:01:15 -0000
Received: from [192.168.1.100] (unknown [88.130.131.25])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (verified OK))
	by mail.mehnert.org (Postfix) with ESMTPS id 346441B1A
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 16:01:14 +0200 (CEST)
Message-ID: <544A5B80.6030107@mehnert.org>
Date: Fri, 24 Oct 2014 16:00:32 +0200
From: Hannes Mehnert <hannes@mehnert.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <54196812.5080701@mehnert.org>
In-Reply-To: <54196812.5080701@mehnert.org>
Subject: Re: [MirageOS-devel] OCaml-TLS directly on Xen
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 PGP SIGNED MESSAGE-----
Hash: SHA384

Some minor updates:

On 09/17/2014 12:53, Hannes Mehnert wrote:
> gmp (the GNU multi-precision arithmetic library) 
> ------------------------------------------------
> 
> Configure (esp. config.guess) gets confused by an arm dualcore: 
> http://berlin.ccc.de/~hannes/gmp-6a.diff fixes this.

Submitted upstream
https://gmplib.org/list-archives/gmp-bugs/2014-October/003563.html

> zarith ------

Actually, lots of symbols (fflush, exit, printf, stdout) are only
needed for tracing/debugging. I submitted a patch upstream as well:
https://forge.ocamlcore.org/tracker/?func=detail&atid=1096&aid=1434&group_id=243


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

iQIcBAEBCQAGBQJUSluAAAoJELyJZYjffCjus+8QAK/FJYE2TNzDbsaFf/98LJZz
G+PQW7m/75g3uAskSMx1YEpNoIsWTAxKU5mo1ULfuRpKA4Ml3KkXqPpTEBB2a9A0
BYq4J1UmOzaTmA+H3yyeQVGtNdBuyd62/I+viPLj9IJGgkYRr049Pf8Fr5gxtFf2
rGcphbofP6mSyQijlMJ0QYVoxlxVDxJugd1J8bjh/WBxj5vKOsVXnGxJVRZweqLg
D0VkWWN1JAmY01XRMPFBeNPascq1SmQC/FRYh3sOs61bbKAc0a5iwH+e4acXkQwU
SUU+QRG8LLEbslccb+sNCcDZkDmxcKgzoyiYsBEBOkS7xmC4d11cmxNUP4XLiL3b
kEG9dCPxa2moYLw5PuAM2L3iddiPwYJMfWsZiQVbr2JnOO/LSu7EsFKEtvDoOdmL
5+ZowKa5stDq+l7v4Xs4kQLjXADWbGfoqJuhtod+tIWEOH1S4BblNK8Q9F7ZUZYZ
LLamhLXKJ1UCZf3fSJ8gabfSoczLGL1KTfY4cx8U3dpvdPDH6gtJT9dlKA9dRoiE
dXwHDb2KLFzxFEvCM9YsVOMw8eq7h4K17PYssPjWyEkZ7Hb2wPtdIzhSiZHwYOvR
BnSwdWT7IvMlBeFoi+DPbqj3AgM6NxtNNrWckfpKHDzh5ubHE2pi6Wb6sV1Cbc9X
jKrLQT8SyHC9LI+c/xcb
=Ucmn
-----END PGP SIGNATURE-----

_______________________________________________
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 Oct 24 14:18:42 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 14:18:42 +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 1XhfhR-0001WD-TR; Fri, 24 Oct 2014 14:18:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ania.skorupa@yahoo.com>) id 1XhfhQ-0001VS-4R
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 14:18:40 +0000
Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id
	1A/9F-02693-FBF5A445; Fri, 24 Oct 2014 14:18:39 +0000
X-Env-Sender: ania.skorupa@yahoo.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1414160316!8257026!1
X-Originating-IP: [98.136.216.155]
X-SpamReason: No, hits=1.2 required=7.0 tests=FORGED_YAHOO_RCVD,
	HTML_60_70,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7167 invoked from network); 24 Oct 2014 14:18:38 -0000
Received: from nm35-vm10.bullet.mail.gq1.yahoo.com (HELO
	nm35-vm10.bullet.mail.gq1.yahoo.com) (98.136.216.155)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 14:18:38 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
	t=1414160313; bh=CWgGRkC6/l+lAHhOcuWgMlXbgF/5LUHUkJCWzkV1LBI=;
	h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject;
	b=aSkxiQK40C6+UV/OKy0J0SMcQ8hpG2RQY2opiBN7pBhQx+edAlqA6Bfixzdv/1DIe9Si6jMSJK7g2MGdCrcTInMSOkgktdjrC1SUaUdb/paTWa+CJXoIJXO9/eFRguRzt9z47Mkmlnyrnha9K3QMIfT7jiHSezsfswXduI1MuYVuog3NEUbHHNXt0g91fCupn55NP65GYncbeq7sKAqf96v4ayYCQN9RSQsdZiEDsejNFmswU1lu8ujNniwuuHH7bdxnNjpuS9a6Ra8s1JytanDjSVSFGqayWINoAzyDVVnib3pgQPAV+UxbN2Bts2lqZ5+H7zzxZz2iiq0y9E7YsQ==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com;
	b=piLBnj6rjbQBBWn9aC0ZBSa5sSu/3KDM42IoLIfivdvTAye7/nF32sC1jHsU5FxEWYrvUC4Ft/PvcZhlKdz1IVDlicisMRtaJ356Rpq6K0kR19bW1L6/rf8SMddnrfztKcksmT2haaOhDpjWTTIe5Ixiyx1nduK89o7AejVroCe9aMr66M9tBrKyQBMFtmZStFfvHi8srwJmarShoGBLLy7P4vcRHqCb1BtRzl0oqEQCCj2g6n53VCgs0Oq/LSWK18AypR6Q0gMyLoW4U+GpR6ZfntInetF6PhfcDvsDnAA7tunF0xh9grRukyOVXlY58/8ZO2MQ87J2Werrgwt+Nw==;
Received: from [127.0.0.1] by nm35.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 14:18:33 -0000
Received: from [98.137.12.63] by nm35.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
Received: from [98.139.214.32] by tm8.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
Received: from [98.139.212.241] by tm15.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
Received: from [127.0.0.1] by omp1050.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
X-Yahoo-Newman-Property: ymail-4
X-Yahoo-Newman-Id: 674862.37687.bm@omp1050.mail.bf1.yahoo.com
X-YMail-OSG: YIECCIwVM1mmzrLaJa0GkDapUuBGgoWANeZDTziB28I8on_gl5uVyWo8S727tdX
	5KUPqiSj7fGQk8KFygloBU0XKcV3GrUcadiASMLoDBykNiC40PaDGwMw0u5fRZiTa_ULZJwUMH1Z
	Lw1aFrHHs6WoeLcOacDJcXOWO9kF3RkfJubXsT9An0TWBnZAE2hsSwlAKTHvZD1f_D.OfG2FSogE
	z9ulbyftc7fxe8xIfQZt9bbx9ETiUOQHxY5ES7hhbaDj99lId.JInuODETWWO2VIaf09_u6UlUmj
	_zLDU2M.r2_g35OgKm.VkrOInatiTT4e5QZq9CBJO3oP9RC7jj8sPPZcCrvubC8UZr2zRboJuPCr
	gxSGrma89zc47xVaJENinMqdtTjb2Kyo4LzSbVGDQqpEufdD8oaYBbUfVYy7sMkRzAyDgUfKmrpw
	H7p9vJuEP.UIMiN.FVA_TlcjeljagCp0r_7hUBUMEiTIQWYOBoIwvwmKVM209YnYfN2Vd33im_hW
	M.G2N.AX0AFpnu_7GBi6nJJmV2yJ6pQdHMwFob3TKDagTqLqFfSIDiSUeJPuUUV1hXxXW
Received: by 76.13.26.143; Fri, 24 Oct 2014 14:15:33 +0000 
Date: Fri, 24 Oct 2014 14:15:25 +0000 (UTC)
From: Ania Skorupa <ania.skorupa@yahoo.com>
To: Anil Madhavapeddy <anil@recoil.org>, Hannes Mehnert <hannes@mehnert.org>
Message-ID: <460831976.355129.1414160125070.JavaMail.yahoo@jws10627.mail.bf1.yahoo.com>
In-Reply-To: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
References: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
MIME-Version: 1.0
Content-Length: 5907
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: Ania Skorupa <ania.skorupa@yahoo.com>
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="===============3216906605952308317=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3216906605952308317==
Content-Type: multipart/alternative; 
	boundary="----=_Part_355128_487498200.1414160125066"
Content-Length: 5366

------=_Part_355128_487498200.1414160125066
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thanks.
I still receive error:
[ERROR]=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The command "opam install --yes condu=
it cow cowabloga crunch cstruct io-page lwt mirage-clock-xen mirage-console=
 mirage-http mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn =
xen-gnt xenstore" exited with code 1.
when I run this command on terminal, I will have:
[ERROR] mirage-xen is not available because it requires OCaml >=3D 4.00.0 &=
 < 4.02.0.
Do I have to downgrade my ocaml, which is 4.02.0?
=20

     On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy <anil@recoil.or=
g> wrote:
  =20

 On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org> wrote:
>=20
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
>=20
> On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> Do you have the mirage-dev opam remote activated, with the latest
>> libraries?=C2=A0 Just run:
>>=20
>> $ opam remote
>>=20
>> And if you don't see it in the list, add it via
>>=20
>> $ opam remote add mirage git://github.com/mirage/mirage-www
>=20
> it should have been git://github.com/mirage/mirage-dev ;)

I need to take myself away from my keyboard today :-)

-anil

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


   
------=_Part_355128_487498200.1414160125066
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"color:#000; background-color:#fff; font-family:He=
lveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;fo=
nt-size:16px"><div id=3D"yui_3_16_0_1_1414157003546_8812">Thanks.</div><div=
 id=3D"yui_3_16_0_1_1414157003546_8469"><br></div><div id=3D"yui_3_16_0_1_1=
414157003546_8635" dir=3D"ltr">I still receive error:</div><div id=3D"yui_3=
_16_0_1_1414157003546_8811" dir=3D"ltr"><br></div><div id=3D"yui_3_16_0_1_1=
414157003546_9295" dir=3D"ltr">[ERROR]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The co=
mmand "opam install --yes conduit cow cowabloga crunch cstruct io-page lwt =
mirage-clock-xen mirage-console mirage-http mirage-net-xen mirage-types mir=
age-xen tcpip vchan xen-evtchn xen-gnt xenstore" exited with code 1.</div><=
div id=3D"yui_3_16_0_1_1414157003546_9300" dir=3D"ltr"><br></div><div id=3D=
"yui_3_16_0_1_1414157003546_9299" dir=3D"ltr">when I run this command on te=
rminal, I will have:</div><div id=3D"yui_3_16_0_1_1414157003546_9298" dir=
=3D"ltr"><br></div><div id=3D"yui_3_16_0_1_1414157003546_10233" dir=3D"ltr"=
>[ERROR] mirage-xen is not available because it requires OCaml &gt;=3D 4.00=
.0 &amp; &lt; 4.02.0.</div><div id=3D"yui_3_16_0_1_1414157003546_10234" dir=
=3D"ltr"><br></div><div id=3D"yui_3_16_0_1_1414157003546_10235" dir=3D"ltr"=
>Do I have to downgrade my ocaml, which is 4.02.0?<br></div><div id=3D"yui_=
3_16_0_1_1414157003546_10236"><span></span></div> <div class=3D"qtdSeparate=
BR"><br><br></div><div style=3D"display: block;" class=3D"yahoo_quoted"> <d=
iv style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, L=
ucida Grande, sans-serif; font-size: 16px;"> <div style=3D"font-family: Hel=
veticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; fo=
nt-size: 16px;"> <div dir=3D"ltr"> <font face=3D"Arial" size=3D"2"> On Frid=
ay, October 24, 2014 1:42 PM, Anil Madhavapeddy &lt;anil@recoil.org&gt; wro=
te:<br> </font> </div>  <br><br> <div class=3D"y_msg_container">On 24 Oct 2=
014, at 14:39, Hannes Mehnert &lt;<a shape=3D"rect" ymailto=3D"mailto:hanne=
s@mehnert.org" href=3D"mailto:hannes@mehnert.org">hannes@mehnert.org</a>&gt=
; wrote:<br clear=3D"none">&gt; <br clear=3D"none">&gt; -----BEGIN PGP SIGN=
ED MESSAGE-----<br clear=3D"none">&gt; Hash: SHA384<br clear=3D"none">&gt; =
<br clear=3D"none">&gt; On 10/24/2014 15:35, Anil Madhavapeddy wrote:<br cl=
ear=3D"none">&gt;&gt; Do you have the mirage-dev opam remote activated, wit=
h the latest<br clear=3D"none">&gt;&gt; libraries?&nbsp; Just run:<br clear=
=3D"none">&gt;&gt; <br clear=3D"none">&gt;&gt; $ opam remote<br clear=3D"no=
ne">&gt;&gt; <br clear=3D"none">&gt;&gt; And if you don't see it in the lis=
t, add it via<br clear=3D"none">&gt;&gt; <br clear=3D"none">&gt;&gt; $ opam=
 remote add mirage git://github.com/mirage/mirage-www<br clear=3D"none">&gt=
; <br clear=3D"none">&gt; it should have been git://github.com/mirage/mirag=
e-dev ;)<br clear=3D"none"><br clear=3D"none">I need to take myself away fr=
om my keyboard today :-)<br clear=3D"none"><br clear=3D"none">-anil<div cla=
ss=3D"yqt9420874674" id=3D"yqtfd94814"><br clear=3D"none"><br clear=3D"none=
">_______________________________________________<br clear=3D"none">MirageO=
S-devel mailing list<br clear=3D"none"><a shape=3D"rect" ymailto=3D"mailto:=
MirageOS-devel@lists.xenproject.org" href=3D"mailto:MirageOS-devel@lists.xe=
nproject.org">MirageOS-devel@lists.xenproject.org</a><br clear=3D"none"><a =
shape=3D"rect" href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mail=
man/listinfo/mirageos-devel</a><br clear=3D"none"></div><br><br></div>  </d=
iv> </div>  </div> </div></body></html>
------=_Part_355128_487498200.1414160125066--


--===============3216906605952308317==
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

--===============3216906605952308317==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 14:18:42 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 14:18:42 +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 1XhfhR-0001WD-TR; Fri, 24 Oct 2014 14:18:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ania.skorupa@yahoo.com>) id 1XhfhQ-0001VS-4R
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 14:18:40 +0000
Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id
	1A/9F-02693-FBF5A445; Fri, 24 Oct 2014 14:18:39 +0000
X-Env-Sender: ania.skorupa@yahoo.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1414160316!8257026!1
X-Originating-IP: [98.136.216.155]
X-SpamReason: No, hits=1.2 required=7.0 tests=FORGED_YAHOO_RCVD,
	HTML_60_70,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7167 invoked from network); 24 Oct 2014 14:18:38 -0000
Received: from nm35-vm10.bullet.mail.gq1.yahoo.com (HELO
	nm35-vm10.bullet.mail.gq1.yahoo.com) (98.136.216.155)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 14:18:38 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
	t=1414160313; bh=CWgGRkC6/l+lAHhOcuWgMlXbgF/5LUHUkJCWzkV1LBI=;
	h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject;
	b=aSkxiQK40C6+UV/OKy0J0SMcQ8hpG2RQY2opiBN7pBhQx+edAlqA6Bfixzdv/1DIe9Si6jMSJK7g2MGdCrcTInMSOkgktdjrC1SUaUdb/paTWa+CJXoIJXO9/eFRguRzt9z47Mkmlnyrnha9K3QMIfT7jiHSezsfswXduI1MuYVuog3NEUbHHNXt0g91fCupn55NP65GYncbeq7sKAqf96v4ayYCQN9RSQsdZiEDsejNFmswU1lu8ujNniwuuHH7bdxnNjpuS9a6Ra8s1JytanDjSVSFGqayWINoAzyDVVnib3pgQPAV+UxbN2Bts2lqZ5+H7zzxZz2iiq0y9E7YsQ==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com;
	b=piLBnj6rjbQBBWn9aC0ZBSa5sSu/3KDM42IoLIfivdvTAye7/nF32sC1jHsU5FxEWYrvUC4Ft/PvcZhlKdz1IVDlicisMRtaJ356Rpq6K0kR19bW1L6/rf8SMddnrfztKcksmT2haaOhDpjWTTIe5Ixiyx1nduK89o7AejVroCe9aMr66M9tBrKyQBMFtmZStFfvHi8srwJmarShoGBLLy7P4vcRHqCb1BtRzl0oqEQCCj2g6n53VCgs0Oq/LSWK18AypR6Q0gMyLoW4U+GpR6ZfntInetF6PhfcDvsDnAA7tunF0xh9grRukyOVXlY58/8ZO2MQ87J2Werrgwt+Nw==;
Received: from [127.0.0.1] by nm35.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 14:18:33 -0000
Received: from [98.137.12.63] by nm35.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
Received: from [98.139.214.32] by tm8.bullet.mail.gq1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
Received: from [98.139.212.241] by tm15.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
Received: from [127.0.0.1] by omp1050.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 14:15:33 -0000
X-Yahoo-Newman-Property: ymail-4
X-Yahoo-Newman-Id: 674862.37687.bm@omp1050.mail.bf1.yahoo.com
X-YMail-OSG: YIECCIwVM1mmzrLaJa0GkDapUuBGgoWANeZDTziB28I8on_gl5uVyWo8S727tdX
	5KUPqiSj7fGQk8KFygloBU0XKcV3GrUcadiASMLoDBykNiC40PaDGwMw0u5fRZiTa_ULZJwUMH1Z
	Lw1aFrHHs6WoeLcOacDJcXOWO9kF3RkfJubXsT9An0TWBnZAE2hsSwlAKTHvZD1f_D.OfG2FSogE
	z9ulbyftc7fxe8xIfQZt9bbx9ETiUOQHxY5ES7hhbaDj99lId.JInuODETWWO2VIaf09_u6UlUmj
	_zLDU2M.r2_g35OgKm.VkrOInatiTT4e5QZq9CBJO3oP9RC7jj8sPPZcCrvubC8UZr2zRboJuPCr
	gxSGrma89zc47xVaJENinMqdtTjb2Kyo4LzSbVGDQqpEufdD8oaYBbUfVYy7sMkRzAyDgUfKmrpw
	H7p9vJuEP.UIMiN.FVA_TlcjeljagCp0r_7hUBUMEiTIQWYOBoIwvwmKVM209YnYfN2Vd33im_hW
	M.G2N.AX0AFpnu_7GBi6nJJmV2yJ6pQdHMwFob3TKDagTqLqFfSIDiSUeJPuUUV1hXxXW
Received: by 76.13.26.143; Fri, 24 Oct 2014 14:15:33 +0000 
Date: Fri, 24 Oct 2014 14:15:25 +0000 (UTC)
From: Ania Skorupa <ania.skorupa@yahoo.com>
To: Anil Madhavapeddy <anil@recoil.org>, Hannes Mehnert <hannes@mehnert.org>
Message-ID: <460831976.355129.1414160125070.JavaMail.yahoo@jws10627.mail.bf1.yahoo.com>
In-Reply-To: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
References: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
MIME-Version: 1.0
Content-Length: 5907
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: Ania Skorupa <ania.skorupa@yahoo.com>
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="===============3216906605952308317=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3216906605952308317==
Content-Type: multipart/alternative; 
	boundary="----=_Part_355128_487498200.1414160125066"
Content-Length: 5366

------=_Part_355128_487498200.1414160125066
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thanks.
I still receive error:
[ERROR]=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The command "opam install --yes condu=
it cow cowabloga crunch cstruct io-page lwt mirage-clock-xen mirage-console=
 mirage-http mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn =
xen-gnt xenstore" exited with code 1.
when I run this command on terminal, I will have:
[ERROR] mirage-xen is not available because it requires OCaml >=3D 4.00.0 &=
 < 4.02.0.
Do I have to downgrade my ocaml, which is 4.02.0?
=20

     On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy <anil@recoil.or=
g> wrote:
  =20

 On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org> wrote:
>=20
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
>=20
> On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> Do you have the mirage-dev opam remote activated, with the latest
>> libraries?=C2=A0 Just run:
>>=20
>> $ opam remote
>>=20
>> And if you don't see it in the list, add it via
>>=20
>> $ opam remote add mirage git://github.com/mirage/mirage-www
>=20
> it should have been git://github.com/mirage/mirage-dev ;)

I need to take myself away from my keyboard today :-)

-anil

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


   
------=_Part_355128_487498200.1414160125066
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"color:#000; background-color:#fff; font-family:He=
lveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;fo=
nt-size:16px"><div id=3D"yui_3_16_0_1_1414157003546_8812">Thanks.</div><div=
 id=3D"yui_3_16_0_1_1414157003546_8469"><br></div><div id=3D"yui_3_16_0_1_1=
414157003546_8635" dir=3D"ltr">I still receive error:</div><div id=3D"yui_3=
_16_0_1_1414157003546_8811" dir=3D"ltr"><br></div><div id=3D"yui_3_16_0_1_1=
414157003546_9295" dir=3D"ltr">[ERROR]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The co=
mmand "opam install --yes conduit cow cowabloga crunch cstruct io-page lwt =
mirage-clock-xen mirage-console mirage-http mirage-net-xen mirage-types mir=
age-xen tcpip vchan xen-evtchn xen-gnt xenstore" exited with code 1.</div><=
div id=3D"yui_3_16_0_1_1414157003546_9300" dir=3D"ltr"><br></div><div id=3D=
"yui_3_16_0_1_1414157003546_9299" dir=3D"ltr">when I run this command on te=
rminal, I will have:</div><div id=3D"yui_3_16_0_1_1414157003546_9298" dir=
=3D"ltr"><br></div><div id=3D"yui_3_16_0_1_1414157003546_10233" dir=3D"ltr"=
>[ERROR] mirage-xen is not available because it requires OCaml &gt;=3D 4.00=
.0 &amp; &lt; 4.02.0.</div><div id=3D"yui_3_16_0_1_1414157003546_10234" dir=
=3D"ltr"><br></div><div id=3D"yui_3_16_0_1_1414157003546_10235" dir=3D"ltr"=
>Do I have to downgrade my ocaml, which is 4.02.0?<br></div><div id=3D"yui_=
3_16_0_1_1414157003546_10236"><span></span></div> <div class=3D"qtdSeparate=
BR"><br><br></div><div style=3D"display: block;" class=3D"yahoo_quoted"> <d=
iv style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, L=
ucida Grande, sans-serif; font-size: 16px;"> <div style=3D"font-family: Hel=
veticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; fo=
nt-size: 16px;"> <div dir=3D"ltr"> <font face=3D"Arial" size=3D"2"> On Frid=
ay, October 24, 2014 1:42 PM, Anil Madhavapeddy &lt;anil@recoil.org&gt; wro=
te:<br> </font> </div>  <br><br> <div class=3D"y_msg_container">On 24 Oct 2=
014, at 14:39, Hannes Mehnert &lt;<a shape=3D"rect" ymailto=3D"mailto:hanne=
s@mehnert.org" href=3D"mailto:hannes@mehnert.org">hannes@mehnert.org</a>&gt=
; wrote:<br clear=3D"none">&gt; <br clear=3D"none">&gt; -----BEGIN PGP SIGN=
ED MESSAGE-----<br clear=3D"none">&gt; Hash: SHA384<br clear=3D"none">&gt; =
<br clear=3D"none">&gt; On 10/24/2014 15:35, Anil Madhavapeddy wrote:<br cl=
ear=3D"none">&gt;&gt; Do you have the mirage-dev opam remote activated, wit=
h the latest<br clear=3D"none">&gt;&gt; libraries?&nbsp; Just run:<br clear=
=3D"none">&gt;&gt; <br clear=3D"none">&gt;&gt; $ opam remote<br clear=3D"no=
ne">&gt;&gt; <br clear=3D"none">&gt;&gt; And if you don't see it in the lis=
t, add it via<br clear=3D"none">&gt;&gt; <br clear=3D"none">&gt;&gt; $ opam=
 remote add mirage git://github.com/mirage/mirage-www<br clear=3D"none">&gt=
; <br clear=3D"none">&gt; it should have been git://github.com/mirage/mirag=
e-dev ;)<br clear=3D"none"><br clear=3D"none">I need to take myself away fr=
om my keyboard today :-)<br clear=3D"none"><br clear=3D"none">-anil<div cla=
ss=3D"yqt9420874674" id=3D"yqtfd94814"><br clear=3D"none"><br clear=3D"none=
">_______________________________________________<br clear=3D"none">MirageO=
S-devel mailing list<br clear=3D"none"><a shape=3D"rect" ymailto=3D"mailto:=
MirageOS-devel@lists.xenproject.org" href=3D"mailto:MirageOS-devel@lists.xe=
nproject.org">MirageOS-devel@lists.xenproject.org</a><br clear=3D"none"><a =
shape=3D"rect" href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mail=
man/listinfo/mirageos-devel</a><br clear=3D"none"></div><br><br></div>  </d=
iv> </div>  </div> </div></body></html>
------=_Part_355128_487498200.1414160125066--


--===============3216906605952308317==
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

--===============3216906605952308317==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 15:05:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 15:05: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 1XhgQx-0004UZ-HW; Fri, 24 Oct 2014 15:05:43 +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 1XhgQv-0004US-OU
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 15:05:41 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	8E/86-02953-5CA6A445; Fri, 24 Oct 2014 15:05:41 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1414163139!11428703!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17785 invoked from network); 24 Oct 2014 15:05:39 -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; 24 Oct 2014 15:05:39 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id bc16aa30;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 24 Oct 2014 16:08:31 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <460831976.355129.1414160125070.JavaMail.yahoo@jws10627.mail.bf1.yahoo.com>
Date: Fri, 24 Oct 2014 16:05:36 +0100
Message-Id: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
References: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
	<460831976.355129.1414160125070.JavaMail.yahoo@jws10627.mail.bf1.yahoo.com>
To: Ania Skorupa <ania.skorupa@yahoo.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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="===============5578739342133845316=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5578739342133845316==
Content-Type: multipart/alternative; boundary="Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C"


--Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Yes -- you need OCaml 4.01.0 at the moment.   I've been meaning to take =
a look at OCaml 4.02 support but haven't gotten around to it yet =
(merging Conduit patches first).  It shouldn't take long, but isn't =
committed yet.

-anil

> On 24 Oct 2014, at 15:15, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
>=20
> Thanks.
>=20
> I still receive error:
>=20
> [ERROR]      The command "opam install --yes conduit cow cowabloga =
crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-http =
mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt =
xenstore" exited with code 1.
>=20
> when I run this command on terminal, I will have:
>=20
> [ERROR] mirage-xen is not available because it requires OCaml >=3D =
4.00.0 & < 4.02.0.
>=20
> Do I have to downgrade my ocaml, which is 4.02.0?
>=20
>=20
> On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy =
<anil@recoil.org> wrote:
>=20
>=20
> On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org =
<mailto:hannes@mehnert.org>> wrote:
> >=20
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA384
> >=20
> > On 10/24/2014 15:35, Anil Madhavapeddy wrote:
> >> Do you have the mirage-dev opam remote activated, with the latest
> >> libraries?  Just run:
> >>=20
> >> $ opam remote
> >>=20
> >> And if you don't see it in the list, add it via
> >>=20
> >> $ opam remote add mirage git://github.com/mirage/mirage-www
> >=20
> > it should have been git://github.com/mirage/mirage-dev ;)
>=20
> I need to take myself away from my keyboard today :-)
>=20
> -anil
>=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


--Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C
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"">Yes -- you need OCaml 4.01.0 at the moment. &nbsp; I've been =
meaning to take a look at OCaml 4.02 support but haven't gotten around =
to it yet (merging Conduit patches first). &nbsp;It shouldn't take long, =
but isn't committed yet.<div class=3D""><br class=3D""></div><div =
class=3D"">-anil<br class=3D""><div class=3D""><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
24 Oct 2014, at 15:15, Ania Skorupa &lt;<a =
href=3D"mailto:ania.skorupa@yahoo.com" =
class=3D"">ania.skorupa@yahoo.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D""><div =
style=3D"background-color: rgb(255, 255, 255); font-family: =
HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', =
sans-serif; font-size: 16px;" class=3D""><div =
id=3D"yui_3_16_0_1_1414157003546_8812" class=3D"">Thanks.</div><div =
id=3D"yui_3_16_0_1_1414157003546_8469" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_8635" dir=3D"ltr" =
class=3D"">I still receive error:</div><div =
id=3D"yui_3_16_0_1_1414157003546_8811" dir=3D"ltr" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_9295" dir=3D"ltr" =
class=3D"">[ERROR]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The command "opam =
install --yes conduit cow cowabloga crunch cstruct io-page lwt =
mirage-clock-xen mirage-console mirage-http mirage-net-xen mirage-types =
mirage-xen tcpip vchan xen-evtchn xen-gnt xenstore" exited with code =
1.</div><div id=3D"yui_3_16_0_1_1414157003546_9300" dir=3D"ltr" =
class=3D""><br class=3D""></div><div =
id=3D"yui_3_16_0_1_1414157003546_9299" dir=3D"ltr" class=3D"">when I run =
this command on terminal, I will have:</div><div =
id=3D"yui_3_16_0_1_1414157003546_9298" dir=3D"ltr" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_10233" dir=3D"ltr" =
class=3D"">[ERROR] mirage-xen is not available because it requires OCaml =
&gt;=3D 4.00.0 &amp; &lt; 4.02.0.</div><div =
id=3D"yui_3_16_0_1_1414157003546_10234" dir=3D"ltr" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_10235" dir=3D"ltr" =
class=3D"">Do I have to downgrade my ocaml, which is 4.02.0?<br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_10236" =
class=3D""><span class=3D""></span></div> <div class=3D"qtdSeparateBR"><br=
 class=3D""><br class=3D""></div><div style=3D"display: block;" =
class=3D"yahoo_quoted"> <div style=3D"font-family: HelveticaNeue, =
Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: =
16px;" class=3D""> <div style=3D"font-family: HelveticaNeue, Helvetica =
Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" =
class=3D""> <div dir=3D"ltr" class=3D""> <font face=3D"Arial" size=3D"2" =
class=3D""> On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy =
&lt;<a href=3D"mailto:anil@recoil.org" class=3D"">anil@recoil.org</a>&gt; =
wrote:<br class=3D""> </font> </div>  <br class=3D""><br class=3D""> =
<div class=3D"y_msg_container">On 24 Oct 2014, at 14:39, Hannes Mehnert =
&lt;<a shape=3D"rect" ymailto=3D"mailto:hannes@mehnert.org" =
href=3D"mailto:hannes@mehnert.org" class=3D"">hannes@mehnert.org</a>&gt; =
wrote:<br clear=3D"none" class=3D"">&gt; <br clear=3D"none" =
class=3D"">&gt; -----BEGIN PGP SIGNED MESSAGE-----<br clear=3D"none" =
class=3D"">&gt; Hash: SHA384<br clear=3D"none" class=3D"">&gt; <br =
clear=3D"none" class=3D"">&gt; On 10/24/2014 15:35, Anil Madhavapeddy =
wrote:<br clear=3D"none" class=3D"">&gt;&gt; Do you have the mirage-dev =
opam remote activated, with the latest<br clear=3D"none" =
class=3D"">&gt;&gt; libraries?&nbsp; Just run:<br clear=3D"none" =
class=3D"">&gt;&gt; <br clear=3D"none" class=3D"">&gt;&gt; $ opam =
remote<br clear=3D"none" class=3D"">&gt;&gt; <br clear=3D"none" =
class=3D"">&gt;&gt; And if you don't see it in the list, add it via<br =
clear=3D"none" class=3D"">&gt;&gt; <br clear=3D"none" class=3D"">&gt;&gt; =
$ opam remote add mirage <a href=3D"git://github.com/mirage/mirage-www" =
class=3D"">git://github.com/mirage/mirage-www</a><br clear=3D"none" =
class=3D"">&gt; <br clear=3D"none" class=3D"">&gt; it should have been =
<a href=3D"git://github.com/mirage/mirage-dev" =
class=3D"">git://github.com/mirage/mirage-dev</a> ;)<br clear=3D"none" =
class=3D""><br clear=3D"none" class=3D"">I need to take myself away from =
my keyboard today :-)<br clear=3D"none" class=3D""><br clear=3D"none" =
class=3D"">-anil<div class=3D"yqt9420874674" id=3D"yqtfd94814"><br =
clear=3D"none" class=3D""><br clear=3D"none" =
class=3D"">_______________________________________________<br =
clear=3D"none" class=3D"">MirageOS-devel mailing list<br clear=3D"none" =
class=3D""><a shape=3D"rect" =
ymailto=3D"mailto:MirageOS-devel@lists.xenproject.org" =
href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
class=3D"">MirageOS-devel@lists.xenproject.org</a><br clear=3D"none" =
class=3D""><a shape=3D"rect" =
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><br clear=3D"none" class=3D""></div><br class=3D""><br =
class=3D""></div>  </div> </div>  </div> =
</div></div></div></blockquote></div><br =
class=3D""></div></div></body></html>=

--Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C--


--===============5578739342133845316==
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

--===============5578739342133845316==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 15:05:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 15:05: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 1XhgQx-0004UZ-HW; Fri, 24 Oct 2014 15:05:43 +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 1XhgQv-0004US-OU
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 15:05:41 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	8E/86-02953-5CA6A445; Fri, 24 Oct 2014 15:05:41 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1414163139!11428703!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17785 invoked from network); 24 Oct 2014 15:05:39 -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; 24 Oct 2014 15:05:39 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id bc16aa30;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 24 Oct 2014 16:08:31 +0100 (BST)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <460831976.355129.1414160125070.JavaMail.yahoo@jws10627.mail.bf1.yahoo.com>
Date: Fri, 24 Oct 2014 16:05:36 +0100
Message-Id: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
References: <F0EE48CA-5A28-45ED-B7B0-2C4566AF36A0@recoil.org>
	<460831976.355129.1414160125070.JavaMail.yahoo@jws10627.mail.bf1.yahoo.com>
To: Ania Skorupa <ania.skorupa@yahoo.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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="===============5578739342133845316=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5578739342133845316==
Content-Type: multipart/alternative; boundary="Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C"


--Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Yes -- you need OCaml 4.01.0 at the moment.   I've been meaning to take =
a look at OCaml 4.02 support but haven't gotten around to it yet =
(merging Conduit patches first).  It shouldn't take long, but isn't =
committed yet.

-anil

> On 24 Oct 2014, at 15:15, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
>=20
> Thanks.
>=20
> I still receive error:
>=20
> [ERROR]      The command "opam install --yes conduit cow cowabloga =
crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-http =
mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt =
xenstore" exited with code 1.
>=20
> when I run this command on terminal, I will have:
>=20
> [ERROR] mirage-xen is not available because it requires OCaml >=3D =
4.00.0 & < 4.02.0.
>=20
> Do I have to downgrade my ocaml, which is 4.02.0?
>=20
>=20
> On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy =
<anil@recoil.org> wrote:
>=20
>=20
> On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org =
<mailto:hannes@mehnert.org>> wrote:
> >=20
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA384
> >=20
> > On 10/24/2014 15:35, Anil Madhavapeddy wrote:
> >> Do you have the mirage-dev opam remote activated, with the latest
> >> libraries?  Just run:
> >>=20
> >> $ opam remote
> >>=20
> >> And if you don't see it in the list, add it via
> >>=20
> >> $ opam remote add mirage git://github.com/mirage/mirage-www
> >=20
> > it should have been git://github.com/mirage/mirage-dev ;)
>=20
> I need to take myself away from my keyboard today :-)
>=20
> -anil
>=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


--Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C
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"">Yes -- you need OCaml 4.01.0 at the moment. &nbsp; I've been =
meaning to take a look at OCaml 4.02 support but haven't gotten around =
to it yet (merging Conduit patches first). &nbsp;It shouldn't take long, =
but isn't committed yet.<div class=3D""><br class=3D""></div><div =
class=3D"">-anil<br class=3D""><div class=3D""><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
24 Oct 2014, at 15:15, Ania Skorupa &lt;<a =
href=3D"mailto:ania.skorupa@yahoo.com" =
class=3D"">ania.skorupa@yahoo.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D""><div =
style=3D"background-color: rgb(255, 255, 255); font-family: =
HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', =
sans-serif; font-size: 16px;" class=3D""><div =
id=3D"yui_3_16_0_1_1414157003546_8812" class=3D"">Thanks.</div><div =
id=3D"yui_3_16_0_1_1414157003546_8469" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_8635" dir=3D"ltr" =
class=3D"">I still receive error:</div><div =
id=3D"yui_3_16_0_1_1414157003546_8811" dir=3D"ltr" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_9295" dir=3D"ltr" =
class=3D"">[ERROR]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The command "opam =
install --yes conduit cow cowabloga crunch cstruct io-page lwt =
mirage-clock-xen mirage-console mirage-http mirage-net-xen mirage-types =
mirage-xen tcpip vchan xen-evtchn xen-gnt xenstore" exited with code =
1.</div><div id=3D"yui_3_16_0_1_1414157003546_9300" dir=3D"ltr" =
class=3D""><br class=3D""></div><div =
id=3D"yui_3_16_0_1_1414157003546_9299" dir=3D"ltr" class=3D"">when I run =
this command on terminal, I will have:</div><div =
id=3D"yui_3_16_0_1_1414157003546_9298" dir=3D"ltr" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_10233" dir=3D"ltr" =
class=3D"">[ERROR] mirage-xen is not available because it requires OCaml =
&gt;=3D 4.00.0 &amp; &lt; 4.02.0.</div><div =
id=3D"yui_3_16_0_1_1414157003546_10234" dir=3D"ltr" class=3D""><br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_10235" dir=3D"ltr" =
class=3D"">Do I have to downgrade my ocaml, which is 4.02.0?<br =
class=3D""></div><div id=3D"yui_3_16_0_1_1414157003546_10236" =
class=3D""><span class=3D""></span></div> <div class=3D"qtdSeparateBR"><br=
 class=3D""><br class=3D""></div><div style=3D"display: block;" =
class=3D"yahoo_quoted"> <div style=3D"font-family: HelveticaNeue, =
Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: =
16px;" class=3D""> <div style=3D"font-family: HelveticaNeue, Helvetica =
Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" =
class=3D""> <div dir=3D"ltr" class=3D""> <font face=3D"Arial" size=3D"2" =
class=3D""> On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy =
&lt;<a href=3D"mailto:anil@recoil.org" class=3D"">anil@recoil.org</a>&gt; =
wrote:<br class=3D""> </font> </div>  <br class=3D""><br class=3D""> =
<div class=3D"y_msg_container">On 24 Oct 2014, at 14:39, Hannes Mehnert =
&lt;<a shape=3D"rect" ymailto=3D"mailto:hannes@mehnert.org" =
href=3D"mailto:hannes@mehnert.org" class=3D"">hannes@mehnert.org</a>&gt; =
wrote:<br clear=3D"none" class=3D"">&gt; <br clear=3D"none" =
class=3D"">&gt; -----BEGIN PGP SIGNED MESSAGE-----<br clear=3D"none" =
class=3D"">&gt; Hash: SHA384<br clear=3D"none" class=3D"">&gt; <br =
clear=3D"none" class=3D"">&gt; On 10/24/2014 15:35, Anil Madhavapeddy =
wrote:<br clear=3D"none" class=3D"">&gt;&gt; Do you have the mirage-dev =
opam remote activated, with the latest<br clear=3D"none" =
class=3D"">&gt;&gt; libraries?&nbsp; Just run:<br clear=3D"none" =
class=3D"">&gt;&gt; <br clear=3D"none" class=3D"">&gt;&gt; $ opam =
remote<br clear=3D"none" class=3D"">&gt;&gt; <br clear=3D"none" =
class=3D"">&gt;&gt; And if you don't see it in the list, add it via<br =
clear=3D"none" class=3D"">&gt;&gt; <br clear=3D"none" class=3D"">&gt;&gt; =
$ opam remote add mirage <a href=3D"git://github.com/mirage/mirage-www" =
class=3D"">git://github.com/mirage/mirage-www</a><br clear=3D"none" =
class=3D"">&gt; <br clear=3D"none" class=3D"">&gt; it should have been =
<a href=3D"git://github.com/mirage/mirage-dev" =
class=3D"">git://github.com/mirage/mirage-dev</a> ;)<br clear=3D"none" =
class=3D""><br clear=3D"none" class=3D"">I need to take myself away from =
my keyboard today :-)<br clear=3D"none" class=3D""><br clear=3D"none" =
class=3D"">-anil<div class=3D"yqt9420874674" id=3D"yqtfd94814"><br =
clear=3D"none" class=3D""><br clear=3D"none" =
class=3D"">_______________________________________________<br =
clear=3D"none" class=3D"">MirageOS-devel mailing list<br clear=3D"none" =
class=3D""><a shape=3D"rect" =
ymailto=3D"mailto:MirageOS-devel@lists.xenproject.org" =
href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
class=3D"">MirageOS-devel@lists.xenproject.org</a><br clear=3D"none" =
class=3D""><a shape=3D"rect" =
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><br clear=3D"none" class=3D""></div><br class=3D""><br =
class=3D""></div>  </div> </div>  </div> =
</div></div></div></blockquote></div><br =
class=3D""></div></div></body></html>=

--Apple-Mail=_25D0468C-74E5-4909-912E-1F00803A0C1C--


--===============5578739342133845316==
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

--===============5578739342133845316==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 15:55:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 15:55: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 1XhhDT-0006EP-JL; Fri, 24 Oct 2014 15:55:51 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ania.skorupa@yahoo.com>) id 1XhhDS-0006E9-EP
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 15:55:50 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	77/07-10419-5867A445; Fri, 24 Oct 2014 15:55:49 +0000
X-Env-Sender: ania.skorupa@yahoo.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1414166147!9060065!1
X-Originating-IP: [98.139.213.150]
X-SpamReason: No, hits=0.9 required=7.0 tests=FORGED_YAHOO_RCVD,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6042 invoked from network); 24 Oct 2014 15:55:48 -0000
Received: from nm5-vm0.bullet.mail.bf1.yahoo.com (HELO
	nm5-vm0.bullet.mail.bf1.yahoo.com) (98.139.213.150)
	by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 15:55:48 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
	t=1414166147; bh=RzrlBcf7h4hzRiqQ+07dlml7G4EX2S3xHO4MxYyR33Q=;
	h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject;
	b=B7Bg3feFQZjx3PUrnMNseXCSLncvxux7v4jbbsu5ryPHENu40skXuSlK/KSbwQ9cl8jp8qkPY4bc/al/oTV6dNgKdKWPdWAoE7QnaDwpW4kI9Yg2uE3q3xtdqLnVilqq0QGGPJrM49dN/NEhzmyWDkKut38b5IYLH6nzoBe8nkqRq3Sct7R5Y5NjQ5Duam7FshcAAGIQrHgPJrt999KhOPfO0GJqJShaWwSfp5XAqBhM2bhJeJW4XuG50H+HYa0vPyZinZBPw2/MzWN55OOGhcnxEYttv0pG+A5YJ/6QHQeL28TU88z202q5i5TBHcjaZHx6BdtqZWivABIwYaw5pw==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com;
	b=fEN5u3YmP8jXbXOT2liN/IA0P/vUEq3o6ZaWiI6zsGgkpH2TesJHj++06+54boj2zqHyfkc+eWsVjVEgPKMjxV3bExuGQZwP/wwLOCOw/voxl+KcndrlP1kCsuAtMgg67SCbyFf0NF9CKwSUeeg1GsLh549Ddrv0Gp4m0oLaPEeJjlzX7xAP/bvXegoEXyohA06G09wP/PlgBj8JZoKUHLkrKvESH6zi53O1+DHfMZFE+8GmiiCmqgL70wDz5GdVDA6CAiKdQpfmW0rRA14CGXCxYosRvVzB3qMx88MGHkPOHehP/lcjSIYWl+MeaHtnaFgY+ZibSCTvSmGKNMR74Q==;
Received: from [66.196.81.171] by nm5.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 15:55:47 -0000
Received: from [98.139.212.249] by tm17.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 15:55:47 -0000
Received: from [127.0.0.1] by omp1058.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 15:55:47 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 554758.92107.bm@omp1058.mail.bf1.yahoo.com
Received: by 76.13.27.6; Fri, 24 Oct 2014 15:54:07 +0000 
Date: Fri, 24 Oct 2014 15:54:06 +0000 (UTC)
From: Ania Skorupa <ania.skorupa@yahoo.com>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <184425002.381741.1414166046722.JavaMail.yahoo@jws10607.mail.bf1.yahoo.com>
In-Reply-To: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
References: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
MIME-Version: 1.0
Content-Length: 10720
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: Ania Skorupa <ania.skorupa@yahoo.com>
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="===============9096599012995814812=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============9096599012995814812==
Content-Type: multipart/alternative; 
	boundary="----=_Part_381740_1284002902.1414166046712"
Content-Length: 10177

------=_Part_381740_1284002902.1414166046712
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thanks. How I can configure web server to obtain ip from dhcp server?
=20

     On Friday, October 24, 2014 3:05 PM, Anil Madhavapeddy <anil@recoil.or=
g> wrote:
  =20

 Yes -- you need OCaml 4.01.0 at the moment. =C2=A0 I've been meaning to ta=
ke a look at OCaml 4.02 support but haven't gotten around to it yet (mergin=
g Conduit patches first). =C2=A0It shouldn't take long, but isn't committed=
 yet.
-anil


On 24 Oct 2014, at 15:15, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
Thanks.
I still receive error:
[ERROR]=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The command "opam install --yes condu=
it cow cowabloga crunch cstruct io-page lwt mirage-clock-xen mirage-console=
 mirage-http mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn =
xen-gnt xenstore" exited with code 1.
when I run this command on terminal, I will have:
[ERROR] mirage-xen is not available because it requires OCaml >=3D 4.00.0 &=
 < 4.02.0.
Do I have to downgrade my ocaml, which is 4.02.0?
=20

     On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy <anil@recoil.or=
g> wrote:
  =20

 On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org> wrote:
>=20
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
>=20
> On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> Do you have the mirage-dev opam remote activated, with the latest
>> libraries?=C2=A0 Just run:
>>=20
>> $ opam remote
>>=20
>> And if you don't see it in the list, add it via
>>=20
>> $ opam remote add mirage git://github.com/mirage/mirage-www
>=20
> it should have been git://github.com/mirage/mirage-dev ;)

I need to take myself away from my keyboard today :-)

-anil

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


   =20



   
------=_Part_381740_1284002902.1414166046712
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"color:#000; background-color:#fff; font-family:He=
lveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;fo=
nt-size:16px">Thanks. How I can configure web server to obtain ip from dhcp=
 server?<br><div id=3D"yui_3_16_0_1_1414157003546_13162"><span></span></div=
> <div class=3D"qtdSeparateBR"><br><br></div><div style=3D"display: block;"=
 class=3D"yahoo_quoted"> <div style=3D"font-family: HelveticaNeue, Helvetic=
a Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <di=
v style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lu=
cida Grande, sans-serif; font-size: 16px;"> <div dir=3D"ltr"> <font face=3D=
"Arial" size=3D"2"> On Friday, October 24, 2014 3:05 PM, Anil Madhavapeddy =
&lt;anil@recoil.org&gt; wrote:<br> </font> </div>  <br><br> <div class=3D"y=
_msg_container"><div id=3D"yiv7912568129"><div>Yes -- you need OCaml 4.01.0=
 at the moment. &nbsp; I've been meaning to take a look at OCaml 4.02 suppo=
rt but haven't gotten around to it yet (merging Conduit patches first). &nb=
sp;It shouldn't take long, but isn't committed yet.<div class=3D"yiv7912568=
129"><br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912=
568129">-anil<br class=3D"yiv7912568129" clear=3D"none"><div class=3D"yiv79=
12568129yqt1805631163" id=3D"yiv7912568129yqt76948"><div class=3D"yiv791256=
8129"><br class=3D"yiv7912568129" clear=3D"none"><div><blockquote class=3D"=
yiv7912568129" type=3D"cite"><div class=3D"yiv7912568129">On 24 Oct 2014, a=
t 15:15, Ania Skorupa &lt;<a rel=3D"nofollow" shape=3D"rect" class=3D"yiv79=
12568129" ymailto=3D"mailto:ania.skorupa@yahoo.com" target=3D"_blank" href=
=3D"mailto:ania.skorupa@yahoo.com">ania.skorupa@yahoo.com</a>&gt; wrote:</d=
iv><br class=3D"yiv7912568129Apple-interchange-newline" clear=3D"none"><div=
 class=3D"yiv7912568129"><div class=3D"yiv7912568129"><div class=3D"yiv7912=
568129" style=3D"background-color:rgb(255, 255, 255);font-family:HelveticaN=
eue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-s=
ize:16px;"><div class=3D"yiv7912568129" id=3D"yiv7912568129yui_3_16_0_1_141=
4157003546_8812">Thanks.</div><div class=3D"yiv7912568129" id=3D"yiv7912568=
129yui_3_16_0_1_1414157003546_8469"><br class=3D"yiv7912568129" clear=3D"no=
ne"></div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yiv7912568129yui_3=
_16_0_1_1414157003546_8635">I still receive error:</div><div class=3D"yiv79=
12568129" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8811"><=
br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129=
" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9295">[ERROR]&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; The command "opam install --yes conduit cow co=
wabloga crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-h=
ttp mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt x=
enstore" exited with code 1.</div><div class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9300"><br class=3D"yiv7912568=
129" clear=3D"none"></div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yi=
v7912568129yui_3_16_0_1_1414157003546_9299">when I run this command on term=
inal, I will have:</div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yiv7=
912568129yui_3_16_0_1_1414157003546_9298"><br class=3D"yiv7912568129" clear=
=3D"none"></div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yiv791256812=
9yui_3_16_0_1_1414157003546_10233">[ERROR] mirage-xen is not available beca=
use it requires OCaml &gt;=3D 4.00.0 &amp; &lt; 4.02.0.</div><div class=3D"=
yiv7912568129" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10=
234"><br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912=
568129" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10235">Do=
 I have to downgrade my ocaml, which is 4.02.0?<br class=3D"yiv7912568129" =
clear=3D"none"></div><div class=3D"yiv7912568129" id=3D"yiv7912568129yui_3_=
16_0_1_1414157003546_10236"><span class=3D"yiv7912568129"></span></div> <di=
v class=3D"yiv7912568129qtdSeparateBR"><br class=3D"yiv7912568129" clear=3D=
"none"><br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv79=
12568129yahoo_quoted" style=3D"display:block;"> <div class=3D"yiv7912568129=
" style=3D"font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Luc=
ida Grande, sans-serif;font-size:16px;"> <div class=3D"yiv7912568129" style=
=3D"font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Gra=
nde, sans-serif;font-size:16px;"> <div class=3D"yiv7912568129" dir=3D"ltr">=
 <font class=3D"yiv7912568129" face=3D"Arial" size=3D"2"> On Friday, Octobe=
r 24, 2014 1:42 PM, Anil Madhavapeddy &lt;<a rel=3D"nofollow" shape=3D"rect=
" class=3D"yiv7912568129" ymailto=3D"mailto:anil@recoil.org" target=3D"_bla=
nk" href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:<br class=
=3D"yiv7912568129" clear=3D"none"> </font> </div>  <br class=3D"yiv79125681=
29" clear=3D"none"><br class=3D"yiv7912568129" clear=3D"none"> <div class=
=3D"yiv7912568129y_msg_container">On 24 Oct 2014, at 14:39, Hannes Mehnert =
&lt;<a rel=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129" ymailto=3D"m=
ailto:hannes@mehnert.org" target=3D"_blank" href=3D"mailto:hannes@mehnert.o=
rg">hannes@mehnert.org</a>&gt; wrote:<br class=3D"yiv7912568129" clear=3D"n=
one">&gt; <br class=3D"yiv7912568129" clear=3D"none">&gt; -----BEGIN PGP SI=
GNED MESSAGE-----<br class=3D"yiv7912568129" clear=3D"none">&gt; Hash: SHA3=
84<br class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv791256812=
9" clear=3D"none">&gt; On 10/24/2014 15:35, Anil Madhavapeddy wrote:<br cla=
ss=3D"yiv7912568129" clear=3D"none">&gt;&gt; Do you have the mirage-dev opa=
m remote activated, with the latest<br class=3D"yiv7912568129" clear=3D"non=
e">&gt;&gt; libraries?&nbsp; Just run:<br class=3D"yiv7912568129" clear=3D"=
none">&gt;&gt; <br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; $ opam r=
emote<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br class=3D"yiv79=
12568129" clear=3D"none">&gt;&gt; And if you don't see it in the list, add =
it via<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br class=3D"yiv7=
912568129" clear=3D"none">&gt;&gt; $ opam remote add mirage <a href=3D"" re=
l=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129">git://github.com/mira=
ge/mirage-www</a><br class=3D"yiv7912568129" clear=3D"none">&gt; <br class=
=3D"yiv7912568129" clear=3D"none">&gt; it should have been <a href=3D"" rel=
=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129">git://github.com/mirag=
e/mirage-dev</a> ;)<br class=3D"yiv7912568129" clear=3D"none"><br class=3D"=
yiv7912568129" clear=3D"none">I need to take myself away from my keyboard t=
oday :-)<br class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv79125681=
29" clear=3D"none">-anil<div class=3D"yiv7912568129yqt9420874674" id=3D"yiv=
7912568129yqtfd94814"><br class=3D"yiv7912568129" clear=3D"none"><br class=
=3D"yiv7912568129" clear=3D"none">_________________________________________=
______<br class=3D"yiv7912568129" clear=3D"none">MirageOS-devel mailing lis=
t<br class=3D"yiv7912568129" clear=3D"none"><a rel=3D"nofollow" shape=3D"re=
ct" class=3D"yiv7912568129" ymailto=3D"mailto:MirageOS-devel@lists.xenproje=
ct.org" target=3D"_blank" href=3D"mailto:MirageOS-devel@lists.xenproject.or=
g">MirageOS-devel@lists.xenproject.org</a><br class=3D"yiv7912568129" clear=
=3D"none"><a rel=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129" target=
=3D"_blank" href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mi=
rageos-devel">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos=
-devel</a><br class=3D"yiv7912568129" clear=3D"none"></div><br class=3D"yiv=
7912568129" clear=3D"none"><br class=3D"yiv7912568129" clear=3D"none"></div=
>  </div> </div>  </div> </div></div></div></blockquote></div><br class=3D"=
yiv7912568129" clear=3D"none"></div></div></div></div></div><br><br></div> =
 </div> </div>  </div> </div></body></html>
------=_Part_381740_1284002902.1414166046712--


--===============9096599012995814812==
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

--===============9096599012995814812==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 15:55:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 15:55: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 1XhhDT-0006EP-JL; Fri, 24 Oct 2014 15:55:51 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ania.skorupa@yahoo.com>) id 1XhhDS-0006E9-EP
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 15:55:50 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	77/07-10419-5867A445; Fri, 24 Oct 2014 15:55:49 +0000
X-Env-Sender: ania.skorupa@yahoo.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1414166147!9060065!1
X-Originating-IP: [98.139.213.150]
X-SpamReason: No, hits=0.9 required=7.0 tests=FORGED_YAHOO_RCVD,
	HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6042 invoked from network); 24 Oct 2014 15:55:48 -0000
Received: from nm5-vm0.bullet.mail.bf1.yahoo.com (HELO
	nm5-vm0.bullet.mail.bf1.yahoo.com) (98.139.213.150)
	by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 15:55:48 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
	t=1414166147; bh=RzrlBcf7h4hzRiqQ+07dlml7G4EX2S3xHO4MxYyR33Q=;
	h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject;
	b=B7Bg3feFQZjx3PUrnMNseXCSLncvxux7v4jbbsu5ryPHENu40skXuSlK/KSbwQ9cl8jp8qkPY4bc/al/oTV6dNgKdKWPdWAoE7QnaDwpW4kI9Yg2uE3q3xtdqLnVilqq0QGGPJrM49dN/NEhzmyWDkKut38b5IYLH6nzoBe8nkqRq3Sct7R5Y5NjQ5Duam7FshcAAGIQrHgPJrt999KhOPfO0GJqJShaWwSfp5XAqBhM2bhJeJW4XuG50H+HYa0vPyZinZBPw2/MzWN55OOGhcnxEYttv0pG+A5YJ/6QHQeL28TU88z202q5i5TBHcjaZHx6BdtqZWivABIwYaw5pw==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com;
	b=fEN5u3YmP8jXbXOT2liN/IA0P/vUEq3o6ZaWiI6zsGgkpH2TesJHj++06+54boj2zqHyfkc+eWsVjVEgPKMjxV3bExuGQZwP/wwLOCOw/voxl+KcndrlP1kCsuAtMgg67SCbyFf0NF9CKwSUeeg1GsLh549Ddrv0Gp4m0oLaPEeJjlzX7xAP/bvXegoEXyohA06G09wP/PlgBj8JZoKUHLkrKvESH6zi53O1+DHfMZFE+8GmiiCmqgL70wDz5GdVDA6CAiKdQpfmW0rRA14CGXCxYosRvVzB3qMx88MGHkPOHehP/lcjSIYWl+MeaHtnaFgY+ZibSCTvSmGKNMR74Q==;
Received: from [66.196.81.171] by nm5.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 15:55:47 -0000
Received: from [98.139.212.249] by tm17.bullet.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 15:55:47 -0000
Received: from [127.0.0.1] by omp1058.mail.bf1.yahoo.com with NNFMP;
	24 Oct 2014 15:55:47 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 554758.92107.bm@omp1058.mail.bf1.yahoo.com
Received: by 76.13.27.6; Fri, 24 Oct 2014 15:54:07 +0000 
Date: Fri, 24 Oct 2014 15:54:06 +0000 (UTC)
From: Ania Skorupa <ania.skorupa@yahoo.com>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <184425002.381741.1414166046722.JavaMail.yahoo@jws10607.mail.bf1.yahoo.com>
In-Reply-To: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
References: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
MIME-Version: 1.0
Content-Length: 10720
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: Ania Skorupa <ania.skorupa@yahoo.com>
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="===============9096599012995814812=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============9096599012995814812==
Content-Type: multipart/alternative; 
	boundary="----=_Part_381740_1284002902.1414166046712"
Content-Length: 10177

------=_Part_381740_1284002902.1414166046712
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thanks. How I can configure web server to obtain ip from dhcp server?
=20

     On Friday, October 24, 2014 3:05 PM, Anil Madhavapeddy <anil@recoil.or=
g> wrote:
  =20

 Yes -- you need OCaml 4.01.0 at the moment. =C2=A0 I've been meaning to ta=
ke a look at OCaml 4.02 support but haven't gotten around to it yet (mergin=
g Conduit patches first). =C2=A0It shouldn't take long, but isn't committed=
 yet.
-anil


On 24 Oct 2014, at 15:15, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
Thanks.
I still receive error:
[ERROR]=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The command "opam install --yes condu=
it cow cowabloga crunch cstruct io-page lwt mirage-clock-xen mirage-console=
 mirage-http mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn =
xen-gnt xenstore" exited with code 1.
when I run this command on terminal, I will have:
[ERROR] mirage-xen is not available because it requires OCaml >=3D 4.00.0 &=
 < 4.02.0.
Do I have to downgrade my ocaml, which is 4.02.0?
=20

     On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy <anil@recoil.or=
g> wrote:
  =20

 On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org> wrote:
>=20
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
>=20
> On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> Do you have the mirage-dev opam remote activated, with the latest
>> libraries?=C2=A0 Just run:
>>=20
>> $ opam remote
>>=20
>> And if you don't see it in the list, add it via
>>=20
>> $ opam remote add mirage git://github.com/mirage/mirage-www
>=20
> it should have been git://github.com/mirage/mirage-dev ;)

I need to take myself away from my keyboard today :-)

-anil

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


   =20



   
------=_Part_381740_1284002902.1414166046712
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"color:#000; background-color:#fff; font-family:He=
lveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;fo=
nt-size:16px">Thanks. How I can configure web server to obtain ip from dhcp=
 server?<br><div id=3D"yui_3_16_0_1_1414157003546_13162"><span></span></div=
> <div class=3D"qtdSeparateBR"><br><br></div><div style=3D"display: block;"=
 class=3D"yahoo_quoted"> <div style=3D"font-family: HelveticaNeue, Helvetic=
a Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <di=
v style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lu=
cida Grande, sans-serif; font-size: 16px;"> <div dir=3D"ltr"> <font face=3D=
"Arial" size=3D"2"> On Friday, October 24, 2014 3:05 PM, Anil Madhavapeddy =
&lt;anil@recoil.org&gt; wrote:<br> </font> </div>  <br><br> <div class=3D"y=
_msg_container"><div id=3D"yiv7912568129"><div>Yes -- you need OCaml 4.01.0=
 at the moment. &nbsp; I've been meaning to take a look at OCaml 4.02 suppo=
rt but haven't gotten around to it yet (merging Conduit patches first). &nb=
sp;It shouldn't take long, but isn't committed yet.<div class=3D"yiv7912568=
129"><br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912=
568129">-anil<br class=3D"yiv7912568129" clear=3D"none"><div class=3D"yiv79=
12568129yqt1805631163" id=3D"yiv7912568129yqt76948"><div class=3D"yiv791256=
8129"><br class=3D"yiv7912568129" clear=3D"none"><div><blockquote class=3D"=
yiv7912568129" type=3D"cite"><div class=3D"yiv7912568129">On 24 Oct 2014, a=
t 15:15, Ania Skorupa &lt;<a rel=3D"nofollow" shape=3D"rect" class=3D"yiv79=
12568129" ymailto=3D"mailto:ania.skorupa@yahoo.com" target=3D"_blank" href=
=3D"mailto:ania.skorupa@yahoo.com">ania.skorupa@yahoo.com</a>&gt; wrote:</d=
iv><br class=3D"yiv7912568129Apple-interchange-newline" clear=3D"none"><div=
 class=3D"yiv7912568129"><div class=3D"yiv7912568129"><div class=3D"yiv7912=
568129" style=3D"background-color:rgb(255, 255, 255);font-family:HelveticaN=
eue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-s=
ize:16px;"><div class=3D"yiv7912568129" id=3D"yiv7912568129yui_3_16_0_1_141=
4157003546_8812">Thanks.</div><div class=3D"yiv7912568129" id=3D"yiv7912568=
129yui_3_16_0_1_1414157003546_8469"><br class=3D"yiv7912568129" clear=3D"no=
ne"></div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yiv7912568129yui_3=
_16_0_1_1414157003546_8635">I still receive error:</div><div class=3D"yiv79=
12568129" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8811"><=
br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129=
" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9295">[ERROR]&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; The command "opam install --yes conduit cow co=
wabloga crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-h=
ttp mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt x=
enstore" exited with code 1.</div><div class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9300"><br class=3D"yiv7912568=
129" clear=3D"none"></div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yi=
v7912568129yui_3_16_0_1_1414157003546_9299">when I run this command on term=
inal, I will have:</div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yiv7=
912568129yui_3_16_0_1_1414157003546_9298"><br class=3D"yiv7912568129" clear=
=3D"none"></div><div class=3D"yiv7912568129" dir=3D"ltr" id=3D"yiv791256812=
9yui_3_16_0_1_1414157003546_10233">[ERROR] mirage-xen is not available beca=
use it requires OCaml &gt;=3D 4.00.0 &amp; &lt; 4.02.0.</div><div class=3D"=
yiv7912568129" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10=
234"><br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912=
568129" dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10235">Do=
 I have to downgrade my ocaml, which is 4.02.0?<br class=3D"yiv7912568129" =
clear=3D"none"></div><div class=3D"yiv7912568129" id=3D"yiv7912568129yui_3_=
16_0_1_1414157003546_10236"><span class=3D"yiv7912568129"></span></div> <di=
v class=3D"yiv7912568129qtdSeparateBR"><br class=3D"yiv7912568129" clear=3D=
"none"><br class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv79=
12568129yahoo_quoted" style=3D"display:block;"> <div class=3D"yiv7912568129=
" style=3D"font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Luc=
ida Grande, sans-serif;font-size:16px;"> <div class=3D"yiv7912568129" style=
=3D"font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Gra=
nde, sans-serif;font-size:16px;"> <div class=3D"yiv7912568129" dir=3D"ltr">=
 <font class=3D"yiv7912568129" face=3D"Arial" size=3D"2"> On Friday, Octobe=
r 24, 2014 1:42 PM, Anil Madhavapeddy &lt;<a rel=3D"nofollow" shape=3D"rect=
" class=3D"yiv7912568129" ymailto=3D"mailto:anil@recoil.org" target=3D"_bla=
nk" href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; wrote:<br class=
=3D"yiv7912568129" clear=3D"none"> </font> </div>  <br class=3D"yiv79125681=
29" clear=3D"none"><br class=3D"yiv7912568129" clear=3D"none"> <div class=
=3D"yiv7912568129y_msg_container">On 24 Oct 2014, at 14:39, Hannes Mehnert =
&lt;<a rel=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129" ymailto=3D"m=
ailto:hannes@mehnert.org" target=3D"_blank" href=3D"mailto:hannes@mehnert.o=
rg">hannes@mehnert.org</a>&gt; wrote:<br class=3D"yiv7912568129" clear=3D"n=
one">&gt; <br class=3D"yiv7912568129" clear=3D"none">&gt; -----BEGIN PGP SI=
GNED MESSAGE-----<br class=3D"yiv7912568129" clear=3D"none">&gt; Hash: SHA3=
84<br class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv791256812=
9" clear=3D"none">&gt; On 10/24/2014 15:35, Anil Madhavapeddy wrote:<br cla=
ss=3D"yiv7912568129" clear=3D"none">&gt;&gt; Do you have the mirage-dev opa=
m remote activated, with the latest<br class=3D"yiv7912568129" clear=3D"non=
e">&gt;&gt; libraries?&nbsp; Just run:<br class=3D"yiv7912568129" clear=3D"=
none">&gt;&gt; <br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; $ opam r=
emote<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br class=3D"yiv79=
12568129" clear=3D"none">&gt;&gt; And if you don't see it in the list, add =
it via<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br class=3D"yiv7=
912568129" clear=3D"none">&gt;&gt; $ opam remote add mirage <a href=3D"" re=
l=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129">git://github.com/mira=
ge/mirage-www</a><br class=3D"yiv7912568129" clear=3D"none">&gt; <br class=
=3D"yiv7912568129" clear=3D"none">&gt; it should have been <a href=3D"" rel=
=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129">git://github.com/mirag=
e/mirage-dev</a> ;)<br class=3D"yiv7912568129" clear=3D"none"><br class=3D"=
yiv7912568129" clear=3D"none">I need to take myself away from my keyboard t=
oday :-)<br class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv79125681=
29" clear=3D"none">-anil<div class=3D"yiv7912568129yqt9420874674" id=3D"yiv=
7912568129yqtfd94814"><br class=3D"yiv7912568129" clear=3D"none"><br class=
=3D"yiv7912568129" clear=3D"none">_________________________________________=
______<br class=3D"yiv7912568129" clear=3D"none">MirageOS-devel mailing lis=
t<br class=3D"yiv7912568129" clear=3D"none"><a rel=3D"nofollow" shape=3D"re=
ct" class=3D"yiv7912568129" ymailto=3D"mailto:MirageOS-devel@lists.xenproje=
ct.org" target=3D"_blank" href=3D"mailto:MirageOS-devel@lists.xenproject.or=
g">MirageOS-devel@lists.xenproject.org</a><br class=3D"yiv7912568129" clear=
=3D"none"><a rel=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129" target=
=3D"_blank" href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mi=
rageos-devel">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos=
-devel</a><br class=3D"yiv7912568129" clear=3D"none"></div><br class=3D"yiv=
7912568129" clear=3D"none"><br class=3D"yiv7912568129" clear=3D"none"></div=
>  </div> </div>  </div> </div></div></div></blockquote></div><br class=3D"=
yiv7912568129" clear=3D"none"></div></div></div></div></div><br><br></div> =
 </div> </div>  </div> </div></body></html>
------=_Part_381740_1284002902.1414166046712--


--===============9096599012995814812==
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

--===============9096599012995814812==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 16:57:43 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 16:57: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 1XhiBF-0008N1-5c; Fri, 24 Oct 2014 16:57: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 1XhiBD-0008Mu-5F
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 16:57:35 +0000
Received: from [193.109.254.147:37011] by server-10.bemta-14.messagelabs.com
	id 66/07-01463-EF48A445; Fri, 24 Oct 2014 16:57:34 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1414169853!12353447!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19843 invoked from network); 24 Oct 2014 16:57:33 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 16:57:33 -0000
Received: by mail-wi0-f175.google.com with SMTP id d1so1742019wiv.2
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 09:57:33 -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=9+jQSMgZbmDN1PnAgFqar8WwI00vMAMyqFsNUka2f18=;
	b=BN4L4t5fAeTdZ66fwDV9IJ0pX5bAFxol5P19xNg1Y5fIw0oi46jbOv7feYxUilza1V
	I/fK/ag1Q2s/sIcmp7mqJYBH8Rl2wcr0mDhWLQkRbnKD0uIMTZoQfR/0ygQz5PK5vFJH
	IyhbVkLYxW2BLC+q4rlbuHV0DCpax8Bv9NfU/CfIKVxoYZVENIGPu4Afdeb1Ge2QmLO4
	kDc46BZqOcv3e/0kFkV1MZvfznbyoZkAG5IcLw/zLpzhTAZMUAkxbPci0ZOtDMyn0RVc
	92VXCqFo+wsxEbIuBtgoxrr8e2ufXOzHTvICC8IomzPgtm5gT88nNlwQyv0RALoK9SEl
	am/g==
X-Received: by 10.180.94.138 with SMTP id dc10mr5413103wib.31.1414169853122;
	Fri, 24 Oct 2014 09:57:33 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id b6sm2591637wiy.22.2014.10.24.09.57.31
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 09:57:32 -0700 (PDT)
From: Thomas Gazagnaire <thomas@gazagnaire.org>
Message-Id: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
Date: Fri, 24 Oct 2014 18:57:31 +0200
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Subject: [MirageOS-devel] new libraries of the week
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've started pulling small libraries out of Irmin as I though they can be useful to others.

https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.

https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.

The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p

Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 

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 Fri Oct 24 16:57:43 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 16:57: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 1XhiBF-0008N1-5c; Fri, 24 Oct 2014 16:57: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 1XhiBD-0008Mu-5F
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 16:57:35 +0000
Received: from [193.109.254.147:37011] by server-10.bemta-14.messagelabs.com
	id 66/07-01463-EF48A445; Fri, 24 Oct 2014 16:57:34 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1414169853!12353447!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19843 invoked from network); 24 Oct 2014 16:57:33 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 16:57:33 -0000
Received: by mail-wi0-f175.google.com with SMTP id d1so1742019wiv.2
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 09:57:33 -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=9+jQSMgZbmDN1PnAgFqar8WwI00vMAMyqFsNUka2f18=;
	b=BN4L4t5fAeTdZ66fwDV9IJ0pX5bAFxol5P19xNg1Y5fIw0oi46jbOv7feYxUilza1V
	I/fK/ag1Q2s/sIcmp7mqJYBH8Rl2wcr0mDhWLQkRbnKD0uIMTZoQfR/0ygQz5PK5vFJH
	IyhbVkLYxW2BLC+q4rlbuHV0DCpax8Bv9NfU/CfIKVxoYZVENIGPu4Afdeb1Ge2QmLO4
	kDc46BZqOcv3e/0kFkV1MZvfznbyoZkAG5IcLw/zLpzhTAZMUAkxbPci0ZOtDMyn0RVc
	92VXCqFo+wsxEbIuBtgoxrr8e2ufXOzHTvICC8IomzPgtm5gT88nNlwQyv0RALoK9SEl
	am/g==
X-Received: by 10.180.94.138 with SMTP id dc10mr5413103wib.31.1414169853122;
	Fri, 24 Oct 2014 09:57:33 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id b6sm2591637wiy.22.2014.10.24.09.57.31
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 09:57:32 -0700 (PDT)
From: Thomas Gazagnaire <thomas@gazagnaire.org>
Message-Id: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
Date: Fri, 24 Oct 2014 18:57:31 +0200
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Subject: [MirageOS-devel] new libraries of the week
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've started pulling small libraries out of Irmin as I though they can be useful to others.

https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.

https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.

The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p

Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 

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 Fri Oct 24 18:38:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 18:38: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 1Xhjkr-0002rR-2D; Fri, 24 Oct 2014 18:38:29 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1Xhjkq-0002rK-73
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 18:38:28 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	7D/A9-02707-3AC9A445; Fri, 24 Oct 2014 18:38:27 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414175906!11636384!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7033 invoked from network); 24 Oct 2014 18:38:26 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 18:38:26 -0000
Received: by mail-wi0-f178.google.com with SMTP id q5so1992383wiv.11
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 11:38:26 -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
	:content-transfer-encoding:message-id:references:to;
	bh=80dlnKkge5Bh0H76dCS8GDoa5mgdYm7POULN5Anl3d8=;
	b=xlC9lP3kLH4YbjKRn/MyibH549MyvRYDKUsaYl8dykOVs6ygi8syX7Gq7mGJ9qPP0H
	yQvX+M1llh3sjjG4xLBP+U+YOVEmJEXQcT6v/b5WW6HzMf7QUOmsZIbSaAgoiXobUmOs
	N0u12282lN64dQll99ZcJy/2TGyuZDoybOGxPKo/RO8b+4cWIhANwCUudxcuKGNaarWi
	MxqsyHRM6b9t2OzLSjkWwnrF52BAY5JoOocWBHBCEydBrVfuVyAyRPpySdsjS72gRWsp
	isuQeqs0NCeQT0fDfQFoaWr0oSCxykp5NpCdw42tOQ1K56LxwV/bro/okYaZA0n9lIfa
	wZdA==
X-Received: by 10.180.101.230 with SMTP id fj6mr5753053wib.70.1414175906294;
	Fri, 24 Oct 2014 11:38:26 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id u8sm2857063wiz.14.2014.10.24.11.38.25
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 11:38:25 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
Date: Fri, 24 Oct 2014 20:38:24 +0200
Message-Id: <4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.1878.6)
Subject: Re: [MirageOS-devel] new libraries of the week
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

And I've created https://github.com/samoht/ocaml-travisci-skeleton to host my Travis CI skeleton (it uses the latest features in opam 1.2)

Thomas

On 24 Oct 2014, at 18:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

> Hi all,
> 
> I've started pulling small libraries out of Irmin as I though they can be useful to others.
> 
> https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.
> 
> https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.
> 
> The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p
> 
> Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 
> 
> 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 Fri Oct 24 18:38:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 18:38: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 1Xhjkr-0002rR-2D; Fri, 24 Oct 2014 18:38:29 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1Xhjkq-0002rK-73
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 18:38:28 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	7D/A9-02707-3AC9A445; Fri, 24 Oct 2014 18:38:27 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414175906!11636384!1
X-Originating-IP: [209.85.212.178]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7033 invoked from network); 24 Oct 2014 18:38:26 -0000
Received: from mail-wi0-f178.google.com (HELO mail-wi0-f178.google.com)
	(209.85.212.178)
	by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 18:38:26 -0000
Received: by mail-wi0-f178.google.com with SMTP id q5so1992383wiv.11
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 11:38:26 -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
	:content-transfer-encoding:message-id:references:to;
	bh=80dlnKkge5Bh0H76dCS8GDoa5mgdYm7POULN5Anl3d8=;
	b=xlC9lP3kLH4YbjKRn/MyibH549MyvRYDKUsaYl8dykOVs6ygi8syX7Gq7mGJ9qPP0H
	yQvX+M1llh3sjjG4xLBP+U+YOVEmJEXQcT6v/b5WW6HzMf7QUOmsZIbSaAgoiXobUmOs
	N0u12282lN64dQll99ZcJy/2TGyuZDoybOGxPKo/RO8b+4cWIhANwCUudxcuKGNaarWi
	MxqsyHRM6b9t2OzLSjkWwnrF52BAY5JoOocWBHBCEydBrVfuVyAyRPpySdsjS72gRWsp
	isuQeqs0NCeQT0fDfQFoaWr0oSCxykp5NpCdw42tOQ1K56LxwV/bro/okYaZA0n9lIfa
	wZdA==
X-Received: by 10.180.101.230 with SMTP id fj6mr5753053wib.70.1414175906294;
	Fri, 24 Oct 2014 11:38:26 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id u8sm2857063wiz.14.2014.10.24.11.38.25
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 11:38:25 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
Date: Fri, 24 Oct 2014 20:38:24 +0200
Message-Id: <4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.1878.6)
Subject: Re: [MirageOS-devel] new libraries of the week
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

And I've created https://github.com/samoht/ocaml-travisci-skeleton to host my Travis CI skeleton (it uses the latest features in opam 1.2)

Thomas

On 24 Oct 2014, at 18:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:

> Hi all,
> 
> I've started pulling small libraries out of Irmin as I though they can be useful to others.
> 
> https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.
> 
> https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.
> 
> The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p
> 
> Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 
> 
> 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 Fri Oct 24 18:45:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 18:45: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 1Xhjro-00033o-2d; Fri, 24 Oct 2014 18:45:40 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xhjrm-00033a-1U
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 18:45:38 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	6E/7E-13367-15E9A445; Fri, 24 Oct 2014 18:45:37 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414176336!11637099!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG,
	MIME_QP_LONG_LINE
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22644 invoked from network); 24 Oct 2014 18:45:36 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-2.tower-206.messagelabs.com with SMTP;
	24 Oct 2014 18:45:36 -0000
Received: (qmail 21945 invoked from network); 24 Oct 2014 18:45:36 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 24 Oct 2014 18:45:36 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 21710-06 for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 19:45:28 +0100 (BST)
Received: (qmail 21811 invoked by uid 599); 24 Oct 2014 18:45:18 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 24 Oct 2014 19:45:18 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XhjrQ-0002QV-AW; Fri, 24 Oct 2014 19:45:16 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Date: Fri, 24 Oct 2014 19:45:15 +0100
Thread-Topic: [MirageOS-devel] new libraries of the week
Thread-Index: Ac/vuqa3e295lDf1RgWjjjfOOkS+fg==
Message-ID: <CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
In-Reply-To: <4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
Accept-Language: en-US, en-GB
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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

Many travis scripts seem nearly identical. Would it be possible to have a travis stub script that pulled he actually script from a repo? Might heLp keep hints up to date as opam and repos update...

--  
Cheers,

R.



> On 24 Oct 2014, at 19:38, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
> And I've created https://github.com/samoht/ocaml-travisci-skeleton to host my Travis CI skeleton (it uses the latest features in opam 1.2)
> 
> Thomas
> 
>> On 24 Oct 2014, at 18:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>> 
>> Hi all,
>> 
>> I've started pulling small libraries out of Irmin as I though they can be useful to others.
>> 
>> https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.
>> 
>> https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.
>> 
>> The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p
>> 
>> Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 
>> 
>> Best,
>> Thomas
> 
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 24 18:45:40 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 18:45: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 1Xhjro-00033o-2d; Fri, 24 Oct 2014 18:45:40 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xhjrm-00033a-1U
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 18:45:38 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	6E/7E-13367-15E9A445; Fri, 24 Oct 2014 18:45:37 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414176336!11637099!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG,
	MIME_QP_LONG_LINE
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22644 invoked from network); 24 Oct 2014 18:45:36 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-2.tower-206.messagelabs.com with SMTP;
	24 Oct 2014 18:45:36 -0000
Received: (qmail 21945 invoked from network); 24 Oct 2014 18:45:36 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 24 Oct 2014 18:45:36 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 21710-06 for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 19:45:28 +0100 (BST)
Received: (qmail 21811 invoked by uid 599); 24 Oct 2014 18:45:18 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 24 Oct 2014 19:45:18 +0100
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XhjrQ-0002QV-AW; Fri, 24 Oct 2014 19:45:16 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Date: Fri, 24 Oct 2014 19:45:15 +0100
Thread-Topic: [MirageOS-devel] new libraries of the week
Thread-Index: Ac/vuqa3e295lDf1RgWjjjfOOkS+fg==
Message-ID: <CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
In-Reply-To: <4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
Accept-Language: en-US, en-GB
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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

Many travis scripts seem nearly identical. Would it be possible to have a travis stub script that pulled he actually script from a repo? Might heLp keep hints up to date as opam and repos update...

--  
Cheers,

R.



> On 24 Oct 2014, at 19:38, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
> And I've created https://github.com/samoht/ocaml-travisci-skeleton to host my Travis CI skeleton (it uses the latest features in opam 1.2)
> 
> Thomas
> 
>> On 24 Oct 2014, at 18:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>> 
>> Hi all,
>> 
>> I've started pulling small libraries out of Irmin as I though they can be useful to others.
>> 
>> https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.
>> 
>> https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.
>> 
>> The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p
>> 
>> Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 
>> 
>> Best,
>> Thomas
> 
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 24 18:50:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 18:50: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 1Xhjwk-0003Hd-HZ; Fri, 24 Oct 2014 18:50:46 +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 1Xhjwj-0003HY-Kt
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 18:50:45 +0000
Received: from [193.109.254.147:35161] by server-14.bemta-14.messagelabs.com
	id 75/DE-18345-48F9A445; Fri, 24 Oct 2014 18:50:44 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1414176643!12385378!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9637 invoked from network); 24 Oct 2014 18:50:44 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 18:50:44 -0000
Received: by mail-wi0-f172.google.com with SMTP id bs8so1945571wib.11
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 11:50:43 -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=bknikyboDGiJW77FioOrGJBC7Vb+/papimQwpmHdkTA=;
	b=MUqcaJC3/GsBskuGhB2V6VX563x+VbN8f6XGyQGOkFWqcAYTRAN977n3Zpo3x3+Ipv
	OSEGuDJ4/cVxE7B2pD1EACtuDH1HmEG07YV8FL1k+jDc2QIzWPQOyDS8zG+6XajyeDno
	bpia16USSQjkZQ1i7fh5Sbbyrz+esZzwpWL1jRJJQ0QTedeFC9NJrqPMLKAv3Ef8b9nl
	exblPdzwJqAWHDSUCrUstXximuXE0MXzQUCaV0BCR8ySgL76niJ7EHcH8Eqwcpu180k/
	L3sNcxSZj7dO/SSUQ07HAnUe7Bq122kPFo7YOI6Zayhw5qvnm40HkxPyc1jFKjjRC1mj
	6Aiw==
X-Received: by 10.194.175.67 with SMTP id by3mr6633106wjc.32.1414176643701;
	Fri, 24 Oct 2014 11:50:43 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id da10sm2909474wib.0.2014.10.24.11.50.42
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 11:50:43 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
Date: Fri, 24 Oct 2014 20:50:41 +0200
Message-Id: <9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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

> Many travis scripts seem nearly identical. Would it be possible to have a travis stub script that pulled he actually script from a repo? Might heLp keep hints up to date as opam and repos update...

well this one doesn't change at all (it get all the metadata it needs from the opam file), so yes that should be doable to just download and run https://github.com/samoht/ocaml-travisci-skeleton/blob/master/.travis-ci.sh

Thomas


> 
> --  
> Cheers,
> 
> R.
> 
> 
> 
>> On 24 Oct 2014, at 19:38, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>> 
>> And I've created https://github.com/samoht/ocaml-travisci-skeleton to host my Travis CI skeleton (it uses the latest features in opam 1.2)
>> 
>> Thomas
>> 
>>> On 24 Oct 2014, at 18:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>> 
>>> Hi all,
>>> 
>>> I've started pulling small libraries out of Irmin as I though they can be useful to others.
>>> 
>>> https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.
>>> 
>>> https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.
>>> 
>>> The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p
>>> 
>>> Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 
>>> 
>>> Best,
>>> Thomas
>> 
>> 
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.
> 
> This message has been checked for viruses but the contents of an attachment
> may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.
> 
> 
> 
> 


_______________________________________________
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 Oct 24 18:50:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 18:50: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 1Xhjwk-0003Hd-HZ; Fri, 24 Oct 2014 18:50:46 +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 1Xhjwj-0003HY-Kt
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 18:50:45 +0000
Received: from [193.109.254.147:35161] by server-14.bemta-14.messagelabs.com
	id 75/DE-18345-48F9A445; Fri, 24 Oct 2014 18:50:44 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1414176643!12385378!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9637 invoked from network); 24 Oct 2014 18:50:44 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 18:50:44 -0000
Received: by mail-wi0-f172.google.com with SMTP id bs8so1945571wib.11
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 11:50:43 -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=bknikyboDGiJW77FioOrGJBC7Vb+/papimQwpmHdkTA=;
	b=MUqcaJC3/GsBskuGhB2V6VX563x+VbN8f6XGyQGOkFWqcAYTRAN977n3Zpo3x3+Ipv
	OSEGuDJ4/cVxE7B2pD1EACtuDH1HmEG07YV8FL1k+jDc2QIzWPQOyDS8zG+6XajyeDno
	bpia16USSQjkZQ1i7fh5Sbbyrz+esZzwpWL1jRJJQ0QTedeFC9NJrqPMLKAv3Ef8b9nl
	exblPdzwJqAWHDSUCrUstXximuXE0MXzQUCaV0BCR8ySgL76niJ7EHcH8Eqwcpu180k/
	L3sNcxSZj7dO/SSUQ07HAnUe7Bq122kPFo7YOI6Zayhw5qvnm40HkxPyc1jFKjjRC1mj
	6Aiw==
X-Received: by 10.194.175.67 with SMTP id by3mr6633106wjc.32.1414176643701;
	Fri, 24 Oct 2014 11:50:43 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id da10sm2909474wib.0.2014.10.24.11.50.42
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 11:50:43 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
Date: Fri, 24 Oct 2014 20:50:41 +0200
Message-Id: <9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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

> Many travis scripts seem nearly identical. Would it be possible to have a travis stub script that pulled he actually script from a repo? Might heLp keep hints up to date as opam and repos update...

well this one doesn't change at all (it get all the metadata it needs from the opam file), so yes that should be doable to just download and run https://github.com/samoht/ocaml-travisci-skeleton/blob/master/.travis-ci.sh

Thomas


> 
> --  
> Cheers,
> 
> R.
> 
> 
> 
>> On 24 Oct 2014, at 19:38, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>> 
>> And I've created https://github.com/samoht/ocaml-travisci-skeleton to host my Travis CI skeleton (it uses the latest features in opam 1.2)
>> 
>> Thomas
>> 
>>> On 24 Oct 2014, at 18:57, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
>>> 
>>> Hi all,
>>> 
>>> I've started pulling small libraries out of Irmin as I though they can be useful to others.
>>> 
>>> https://github.com/mirage/ocaml-hex: Hexa converter. Very simple.
>>> 
>>> https://github.com/mirage/mirage-tc Type-classes library,  more complex (and not sure totally useful, though, but it captures a design pattern I have with few of my mirage libraries). Useful for Irmin apps and libs. That's a collection of combinators to facilitate the definition of pretty-printers (using S-expression), REST APIs (using Ezjsonm.t) and binary formats (using Cstruct.t). They are functor combinators and generators for custom autogen/deriving extensions. Feedback appreciated on this.
>>> 
>>> The new ocaml-git release is blocked, waiting for a new version of nocrypto which works on 4.02 (trunk works, but not 0.1.0). Nothing urgent, but that would be nice to have at one point :p
>>> 
>>> Irmin refactoring is still progressing slowly: the core library compiles but I'm not totally happy with the exposed interface, so I'm trying to make it simpler for the user. 
>>> 
>>> Best,
>>> Thomas
>> 
>> 
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.
> 
> This message has been checked for viruses but the contents of an attachment
> may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.
> 
> 
> 
> 


_______________________________________________
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 Oct 24 19:06:16 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 19:06: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 1XhkBi-0003SA-Pq; Fri, 24 Oct 2014 19:06:14 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XhkBi-0003S5-8y
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 19:06:14 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	21/D3-02699-523AA445; Fri, 24 Oct 2014 19:06:13 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-8.tower-21.messagelabs.com!1414177572!12542614!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15433 invoked from network); 24 Oct 2014 19:06:12 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-8.tower-21.messagelabs.com with SMTP;
	24 Oct 2014 19:06:12 -0000
Received: (qmail 32061 invoked from network); 24 Oct 2014 19:03:04 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 24 Oct 2014 19:03:04 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 30535-04 for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 20:02:56 +0100 (BST)
Received: (qmail 31998 invoked by uid 599); 24 Oct 2014 19:02:56 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 24 Oct 2014 20:02:56 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xhk8Z-0004ZB-3l; Fri, 24 Oct 2014 20:02:59 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Date: Fri, 24 Oct 2014 20:02:57 +0100
Thread-Topic: [MirageOS-devel] new libraries of the week
Thread-Index: Ac/vvSA18ZgZJCXmTzOxUMvuLgdYqQ==
Message-ID: <118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
In-Reply-To: <9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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="===============8931191018320307597=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8931191018320307597==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 24 Oct 2014, at 19:50, Thomas Gazagnaire <thomas@gazagnaire.org> =
wrote:

>> Many travis scripts seem nearly identical. Would it be possible to =
have a travis stub script that pulled he actually script from a repo? =
Might heLp keep hints up to date as opam and repos update...
>=20
> well this one doesn't change at all (it get all the metadata it needs =
from the opam file), so yes that should be doable to just download and =
run =
https://github.com/samoht/ocaml-travisci-skeleton/blob/master/.travis-ci.s=
h

cool. wonder how many others could be similarly replaced... :)

--=20
Cheers,

R.





--Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUSqJhAAoJEOLF27JWwSg36bQP/RFflMYKokOEvHoxxkBNKHQH
ER/TCTP1cp2eIF2vB9jj8L9BMBAwzZlCcjo/k/08mJ7hH5uB39b+86jJo8DnGekL
5LK610KSDoX8fqIH34p8HIPbtpOss4ItRxuBQgI+R7+tufnlZ/nDbegVuMqn+roV
i7MFsFRHNxke20H6r/DV0n1suCPbHHBosfpTShAHboAnT6unNPbEzOZkebtoN2CV
lbNKum2ovUizuhP/DjY42yD+cT38nNhX2gYdh5gm7gDnw7zMe2ixe9wKwcNYrZLE
Q+6jkBtpcZc5eycxwm6vnjYBCE/z/Ah+93QuWzzzbVcgxlLqIBuqqEkMoiH3nR7L
B3Qz4/i3lYYNqseRVylstQEfKp5cEEVhx+copNdUMsbBl4lh4vDjvfRFLsjU6M1K
ADY8nAUG3dIwhonInYiR/lfDdhWZ3Hmtek1hq/4jiwwxTpapJ4aQNeb+9sgzhlAE
vkIL/uina8EQc/00nmdhaH3og+XN5mc9+3NjWAs3Lp8AOeCkIdTYurw4npLzs0zx
nF91VY7bnnlizRxZUEpbCJ2X/ZmM90rCb/aBJxSsgRAhp2gwI8TUY7+g3EON9gdY
yk2DOmUcV9KRB01TsHzZ+ROlPdnlU9lx73RpGLlGlNAQuWbbP7Y2y4x6DeSIwoG7
Zk1dLVJl+VHqN8mnG8ZR
=EElO
-----END PGP SIGNATURE-----

--Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4--


--===============8931191018320307597==
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

--===============8931191018320307597==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 19:06:16 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 19:06: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 1XhkBi-0003SA-Pq; Fri, 24 Oct 2014 19:06:14 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XhkBi-0003S5-8y
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 19:06:14 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	21/D3-02699-523AA445; Fri, 24 Oct 2014 19:06:13 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-8.tower-21.messagelabs.com!1414177572!12542614!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15433 invoked from network); 24 Oct 2014 19:06:12 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-8.tower-21.messagelabs.com with SMTP;
	24 Oct 2014 19:06:12 -0000
Received: (qmail 32061 invoked from network); 24 Oct 2014 19:03:04 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 24 Oct 2014 19:03:04 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 30535-04 for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 20:02:56 +0100 (BST)
Received: (qmail 31998 invoked by uid 599); 24 Oct 2014 19:02:56 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 24 Oct 2014 20:02:56 +0100
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xhk8Z-0004ZB-3l; Fri, 24 Oct 2014 20:02:59 +0100
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Date: Fri, 24 Oct 2014 20:02:57 +0100
Thread-Topic: [MirageOS-devel] new libraries of the week
Thread-Index: Ac/vvSA18ZgZJCXmTzOxUMvuLgdYqQ==
Message-ID: <118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
In-Reply-To: <9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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="===============8931191018320307597=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8931191018320307597==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 24 Oct 2014, at 19:50, Thomas Gazagnaire <thomas@gazagnaire.org> =
wrote:

>> Many travis scripts seem nearly identical. Would it be possible to =
have a travis stub script that pulled he actually script from a repo? =
Might heLp keep hints up to date as opam and repos update...
>=20
> well this one doesn't change at all (it get all the metadata it needs =
from the opam file), so yes that should be doable to just download and =
run =
https://github.com/samoht/ocaml-travisci-skeleton/blob/master/.travis-ci.s=
h

cool. wonder how many others could be similarly replaced... :)

--=20
Cheers,

R.





--Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUSqJhAAoJEOLF27JWwSg36bQP/RFflMYKokOEvHoxxkBNKHQH
ER/TCTP1cp2eIF2vB9jj8L9BMBAwzZlCcjo/k/08mJ7hH5uB39b+86jJo8DnGekL
5LK610KSDoX8fqIH34p8HIPbtpOss4ItRxuBQgI+R7+tufnlZ/nDbegVuMqn+roV
i7MFsFRHNxke20H6r/DV0n1suCPbHHBosfpTShAHboAnT6unNPbEzOZkebtoN2CV
lbNKum2ovUizuhP/DjY42yD+cT38nNhX2gYdh5gm7gDnw7zMe2ixe9wKwcNYrZLE
Q+6jkBtpcZc5eycxwm6vnjYBCE/z/Ah+93QuWzzzbVcgxlLqIBuqqEkMoiH3nR7L
B3Qz4/i3lYYNqseRVylstQEfKp5cEEVhx+copNdUMsbBl4lh4vDjvfRFLsjU6M1K
ADY8nAUG3dIwhonInYiR/lfDdhWZ3Hmtek1hq/4jiwwxTpapJ4aQNeb+9sgzhlAE
vkIL/uina8EQc/00nmdhaH3og+XN5mc9+3NjWAs3Lp8AOeCkIdTYurw4npLzs0zx
nF91VY7bnnlizRxZUEpbCJ2X/ZmM90rCb/aBJxSsgRAhp2gwI8TUY7+g3EON9gdY
yk2DOmUcV9KRB01TsHzZ+ROlPdnlU9lx73RpGLlGlNAQuWbbP7Y2y4x6DeSIwoG7
Zk1dLVJl+VHqN8mnG8ZR
=EElO
-----END PGP SIGNATURE-----

--Apple-Mail=_44A8DC21-03E4-4665-9E32-DAFE69E2AFA4--


--===============8931191018320307597==
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

--===============8931191018320307597==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 24 19:09:55 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 19:09: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 1XhkFH-0003Vv-IQ; Fri, 24 Oct 2014 19:09:55 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XhkFG-0003Vj-GU
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 19:09:54 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	32/C5-02699-104AA445; Fri, 24 Oct 2014 19:09:53 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414177791!12554297!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22583 invoked from network); 24 Oct 2014 19:09:52 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 19:09:52 -0000
Received: by mail-vc0-f180.google.com with SMTP id le20so615050vcb.39
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 12:09:51 -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=8uDINJbJvTcIaV+1b1b3BuSq+V+ie9kAXJfhjF488eo=;
	b=eRVZmuWQfAUt7D5UZNQqC/anZXrxoFztru42uVIFi57Z78z1shAyNfmBie4aMMra7L
	bav9Vei+nb6iUoqUII2zXuHtmC/EaxcXfSnT0pm8X8dupRKsvONeJ1Tzo/VLIYQ+nVmD
	BjLrr6rn5yq3P6IfqSV8k+IC4yI+0wlgvh+Qy6ToaKYzc1oO5lH6BAq7wDLWZz7ISscS
	jfZ2OpyEVX6mgdHDOvjpTBU3pwed9Ud7HeGQg7QGMNI8WjGVxG0s2Sklb9pENwJlMnc5
	zWTxDHlNy5mIsuckjX6CMItE4B0CcYAMx/0WsfIJGzBvB/XCnusFOfJVOFLDTpniDsst
	pvBw==
X-Gm-Message-State: ALoCoQl2iCI4qOGp6F+rW/ULG1aeJMucOcv8Wkzy/QKdc2UDbFKdeIlkuY51ZU5+6sul/P6JXhDe
MIME-Version: 1.0
X-Received: by 10.221.51.8 with SMTP id vg8mr4164213vcb.0.1414177791280; Fri,
	24 Oct 2014 12:09:51 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Fri, 24 Oct 2014 12:09:51 -0700 (PDT)
Date: Fri, 24 Oct 2014 15:09:51 -0400
Message-ID: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] problem with NET=socket and multiple connections?
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,

I am seeing some unexpected behavior with --unix and NET=socket on
Linux: it looks like the TCP server is not dealing well with multiple
connections.

The simplest repro. is with mirage-skeleton/stackv4: configure with
--unix and NET=socket.  Start the server, then open two separate
telnet connections to 8080.  The first connection is acknowledged by
the server in a log message: "new tcp from 127.0.0.1 21234", but the
second is not.  If you send a line of data via the first telnet, the
first connection is closed (as expected)... and only then does the
server log "new tcp from 127.0.0.1 24567" to acknowledge the second
connection.

Output from strace shows that when the server reads from the first
connection, the underlying select(2) does not include the listener
socket in the read set (i.e. it will not be notified of new
connections).  It's only after the first connection is completed that
I see accept(2)/select(2) on the listener socket again.

If I modify the stackv4 example to write to each client before
reading, then both connections are accepted and acknowledged
immediately (good), the writes go through (good), but data from the
clients is never received (bad).

Originally I noticed this issue in a local build of mirage-www: with
unix/socket mode, the home page may fail to load if the browser uses
concurrent connections to fetch css/images/etc.  That did not happen a
few weeks ago.


Any advice?

thanks
--
Len

_______________________________________________
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 Oct 24 19:09:55 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 19:09: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 1XhkFH-0003Vv-IQ; Fri, 24 Oct 2014 19:09:55 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XhkFG-0003Vj-GU
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 19:09:54 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	32/C5-02699-104AA445; Fri, 24 Oct 2014 19:09:53 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414177791!12554297!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22583 invoked from network); 24 Oct 2014 19:09:52 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 19:09:52 -0000
Received: by mail-vc0-f180.google.com with SMTP id le20so615050vcb.39
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 12:09:51 -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=8uDINJbJvTcIaV+1b1b3BuSq+V+ie9kAXJfhjF488eo=;
	b=eRVZmuWQfAUt7D5UZNQqC/anZXrxoFztru42uVIFi57Z78z1shAyNfmBie4aMMra7L
	bav9Vei+nb6iUoqUII2zXuHtmC/EaxcXfSnT0pm8X8dupRKsvONeJ1Tzo/VLIYQ+nVmD
	BjLrr6rn5yq3P6IfqSV8k+IC4yI+0wlgvh+Qy6ToaKYzc1oO5lH6BAq7wDLWZz7ISscS
	jfZ2OpyEVX6mgdHDOvjpTBU3pwed9Ud7HeGQg7QGMNI8WjGVxG0s2Sklb9pENwJlMnc5
	zWTxDHlNy5mIsuckjX6CMItE4B0CcYAMx/0WsfIJGzBvB/XCnusFOfJVOFLDTpniDsst
	pvBw==
X-Gm-Message-State: ALoCoQl2iCI4qOGp6F+rW/ULG1aeJMucOcv8Wkzy/QKdc2UDbFKdeIlkuY51ZU5+6sul/P6JXhDe
MIME-Version: 1.0
X-Received: by 10.221.51.8 with SMTP id vg8mr4164213vcb.0.1414177791280; Fri,
	24 Oct 2014 12:09:51 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Fri, 24 Oct 2014 12:09:51 -0700 (PDT)
Date: Fri, 24 Oct 2014 15:09:51 -0400
Message-ID: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] problem with NET=socket and multiple connections?
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,

I am seeing some unexpected behavior with --unix and NET=socket on
Linux: it looks like the TCP server is not dealing well with multiple
connections.

The simplest repro. is with mirage-skeleton/stackv4: configure with
--unix and NET=socket.  Start the server, then open two separate
telnet connections to 8080.  The first connection is acknowledged by
the server in a log message: "new tcp from 127.0.0.1 21234", but the
second is not.  If you send a line of data via the first telnet, the
first connection is closed (as expected)... and only then does the
server log "new tcp from 127.0.0.1 24567" to acknowledge the second
connection.

Output from strace shows that when the server reads from the first
connection, the underlying select(2) does not include the listener
socket in the read set (i.e. it will not be notified of new
connections).  It's only after the first connection is completed that
I see accept(2)/select(2) on the listener socket again.

If I modify the stackv4 example to write to each client before
reading, then both connections are accepted and acknowledged
immediately (good), the writes go through (good), but data from the
clients is never received (bad).

Originally I noticed this issue in a local build of mirage-www: with
unix/socket mode, the home page may fail to load if the browser uses
concurrent connections to fetch css/images/etc.  That did not happen a
few weeks ago.


Any advice?

thanks
--
Len

_______________________________________________
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 Oct 24 19:17:21 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 19:17: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 1XhkMR-0003jl-5z; Fri, 24 Oct 2014 19:17:19 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XhkMP-0003jg-Lg
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 19:17:17 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	01/21-02953-CB5AA445; Fri, 24 Oct 2014 19:17:16 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1414178235!11694222!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29397 invoked from network); 24 Oct 2014 19:17:16 -0000
Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
	(74.125.82.51)
	by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 19:17:16 -0000
Received: by mail-wg0-f51.google.com with SMTP id b13so1769116wgh.10
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 12:17:15 -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=+viyVzpFIUDWrIRzAuEhzCQbkwu+ShzccjZmDR72JVc=;
	b=rYX7ibTpDcmdA+VCzkhsu0CgNbur52bkap/f0I1loFcu6JatenIuoq+39AfEU7Uhqm
	9oT5HBTcfN0HdLgSzE3vDN4r6hTZYl3mMOD2drdxOHHt/Zb7HGaCPk0NVaX3c1lhW11e
	QrGmMSIV7IOQGBGPCUwITSm/v5+1LZjmIU7dGFZmCDazdCBRmyVRCqZwjKPrLHJmvkDX
	qYUgMrLPEVdFVb1aXoO8fPWjL24LYUpF7MMRaxmzU3xxY5p9JkjFCv98+w/1/9tYcUlU
	JGQkEnKFNKCRkIuCHckn40NrwCvQjk6RiwWrW/PyG+x7/4QbVg//WG7C3aMIAU/JHqJ+
	YszQ==
X-Received: by 10.194.93.194 with SMTP id cw2mr4886216wjb.112.1414178235681;
	Fri, 24 Oct 2014 12:17:15 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id ht9sm2962889wib.8.2014.10.24.12.17.14
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 12:17:14 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
Date: Fri, 24 Oct 2014 21:17:12 +0200
Message-Id: <ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
	<118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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

>>> Many travis scripts seem nearly identical. Would it be possible to have a travis stub script that pulled he actually script from a repo? Might heLp keep hints up to date as opam and repos update...
>> 
>> well this one doesn't change at all (it get all the metadata it needs from the opam file), so yes that should be doable to just download and run https://github.com/samoht/ocaml-travisci-skeleton/blob/master/.travis-ci.sh
> 
> cool. wonder how many others could be similarly replaced... :)

I've updated the script to download and run the template to set-up the environment, and the run some project specific commands (which can be customised by each libs).

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 Fri Oct 24 19:17:21 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 24 Oct 2014 19:17: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 1XhkMR-0003jl-5z; Fri, 24 Oct 2014 19:17:19 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XhkMP-0003jg-Lg
	for mirageos-devel@lists.xenproject.org; Fri, 24 Oct 2014 19:17:17 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	01/21-02953-CB5AA445; Fri, 24 Oct 2014 19:17:16 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1414178235!11694222!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29397 invoked from network); 24 Oct 2014 19:17:16 -0000
Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
	(74.125.82.51)
	by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	24 Oct 2014 19:17:16 -0000
Received: by mail-wg0-f51.google.com with SMTP id b13so1769116wgh.10
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 24 Oct 2014 12:17:15 -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=+viyVzpFIUDWrIRzAuEhzCQbkwu+ShzccjZmDR72JVc=;
	b=rYX7ibTpDcmdA+VCzkhsu0CgNbur52bkap/f0I1loFcu6JatenIuoq+39AfEU7Uhqm
	9oT5HBTcfN0HdLgSzE3vDN4r6hTZYl3mMOD2drdxOHHt/Zb7HGaCPk0NVaX3c1lhW11e
	QrGmMSIV7IOQGBGPCUwITSm/v5+1LZjmIU7dGFZmCDazdCBRmyVRCqZwjKPrLHJmvkDX
	qYUgMrLPEVdFVb1aXoO8fPWjL24LYUpF7MMRaxmzU3xxY5p9JkjFCv98+w/1/9tYcUlU
	JGQkEnKFNKCRkIuCHckn40NrwCvQjk6RiwWrW/PyG+x7/4QbVg//WG7C3aMIAU/JHqJ+
	YszQ==
X-Received: by 10.194.93.194 with SMTP id cw2mr4886216wjb.112.1414178235681;
	Fri, 24 Oct 2014 12:17:15 -0700 (PDT)
Received: from [192.168.1.44] (car06-8-83-155-104-81.fbx.proxad.net.
	[83.155.104.81])
	by mx.google.com with ESMTPSA id ht9sm2962889wib.8.2014.10.24.12.17.14
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 24 Oct 2014 12:17:14 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
Date: Fri, 24 Oct 2014 21:17:12 +0200
Message-Id: <ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
	<118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1878.6)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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

>>> Many travis scripts seem nearly identical. Would it be possible to have a travis stub script that pulled he actually script from a repo? Might heLp keep hints up to date as opam and repos update...
>> 
>> well this one doesn't change at all (it get all the metadata it needs from the opam file), so yes that should be doable to just download and run https://github.com/samoht/ocaml-travisci-skeleton/blob/master/.travis-ci.sh
> 
> cool. wonder how many others could be similarly replaced... :)

I've updated the script to download and run the template to set-up the environment, and the run some project specific commands (which can be customised by each libs).

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 Sat Oct 25 10:36:32 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 25 Oct 2014 10:36: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 1Xhyht-0005Sp-Sq; Sat, 25 Oct 2014 10:36:25 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pszmk1@nottingham.ac.uk>) id 1Xhyhs-0005Sk-UD
	for mirageos-devel@lists.xenproject.org; Sat, 25 Oct 2014 10:36:25 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	FF/66-11509-82D7B445; Sat, 25 Oct 2014 10:36:24 +0000
X-Env-Sender: pszmk1@nottingham.ac.uk
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414233383!4127065!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11857 invoked from network); 25 Oct 2014 10:36:23 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-3.tower-206.messagelabs.com with SMTP;
	25 Oct 2014 10:36:23 -0000
Received: (qmail 16303 invoked from network); 25 Oct 2014 10:36:22 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 25 Oct 2014 10:36:22 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 14711-03 for <mirageos-devel@lists.xenproject.org>;
	Sat, 25 Oct 2014 11:36:14 +0100 (BST)
Received: (qmail 16231 invoked by uid 599); 25 Oct 2014 10:36:14 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Sat, 25 Oct 2014 11:36:14 +0100
Received: from 88-105-189-205.dynamic.dsl.as9105.com ([88.105.189.205]
	helo=[192.168.1.5])
	by smtp3.nottingham.ac.uk with esmtpsa (UNKNOWN:AES128-SHA:128)
	(Exim 4.77) (envelope-from <pszmk1@nottingham.ac.uk>)
	id 1Xhyhi-0006Ga-1f
	for mirageos-devel@lists.xenproject.org; Sat, 25 Oct 2014 11:36:14 +0100
Message-ID: <544B7D1D.2000003@nottingham.ac.uk>
Date: Sat, 25 Oct 2014 11:36:13 +0100
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] Xen VIF configuration for tap devices
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I have a switch with three tap devices tap0 (for the controller 
connection), tap1, and tap 2 running on Xen.

What would be the right VIF configuration for Xen?

Thanks.


This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 25 10:36:32 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 25 Oct 2014 10:36: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 1Xhyht-0005Sp-Sq; Sat, 25 Oct 2014 10:36:25 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pszmk1@nottingham.ac.uk>) id 1Xhyhs-0005Sk-UD
	for mirageos-devel@lists.xenproject.org; Sat, 25 Oct 2014 10:36:25 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	FF/66-11509-82D7B445; Sat, 25 Oct 2014 10:36:24 +0000
X-Env-Sender: pszmk1@nottingham.ac.uk
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414233383!4127065!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11857 invoked from network); 25 Oct 2014 10:36:23 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-3.tower-206.messagelabs.com with SMTP;
	25 Oct 2014 10:36:23 -0000
Received: (qmail 16303 invoked from network); 25 Oct 2014 10:36:22 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 25 Oct 2014 10:36:22 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 14711-03 for <mirageos-devel@lists.xenproject.org>;
	Sat, 25 Oct 2014 11:36:14 +0100 (BST)
Received: (qmail 16231 invoked by uid 599); 25 Oct 2014 10:36:14 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Sat, 25 Oct 2014 11:36:14 +0100
Received: from 88-105-189-205.dynamic.dsl.as9105.com ([88.105.189.205]
	helo=[192.168.1.5])
	by smtp3.nottingham.ac.uk with esmtpsa (UNKNOWN:AES128-SHA:128)
	(Exim 4.77) (envelope-from <pszmk1@nottingham.ac.uk>)
	id 1Xhyhi-0006Ga-1f
	for mirageos-devel@lists.xenproject.org; Sat, 25 Oct 2014 11:36:14 +0100
Message-ID: <544B7D1D.2000003@nottingham.ac.uk>
Date: Sat, 25 Oct 2014 11:36:13 +0100
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] Xen VIF configuration for tap devices
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I have a switch with three tap devices tap0 (for the controller 
connection), tap1, and tap 2 running on Xen.

What would be the right VIF configuration for Xen?

Thanks.


This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 26 09:32:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 09:32:31 +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 1XiKBS-0004Um-Th; Sun, 26 Oct 2014 09:32:22 +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 1XiKBQ-0004Uh-Q9
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 09:32:20 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	0C/A2-02972-3AFBC445; Sun, 26 Oct 2014 09:32:19 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1414315935!11602613!1
X-Originating-IP: [209.85.220.172]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3052 invoked from network); 26 Oct 2014 09:32:16 -0000
Received: from mail-vc0-f172.google.com (HELO mail-vc0-f172.google.com)
	(209.85.220.172)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	26 Oct 2014 09:32:16 -0000
Received: by mail-vc0-f172.google.com with SMTP id lf12so1577753vcb.3
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 26 Oct 2014 02:32:14 -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=SvSpwtlGkQ26CRWxsINL3ZUUv25UfcIA3kmrRWrqTX4=;
	b=C02IYSqgdVjTOoEgDKFv++qaeEY9Q2d7H7TqJpG8IEfyPkloXzu8jLkACTQwKHh3Ma
	DZYOzJPl3OqnkpNoYh8UT34yiKKeXFNPrJxMVgQXXfTFXOKqkZhvK9BXscaYDxr3gyIE
	UMPfALNaQnKYFlLBAfqGSR4hM1UYzDjhOoVR4OVLbNL6kiQZ6JjhgeFfiB7fGb9xwD4N
	Ej/5BVlO0wUnHSlRtf9/rcGwrWMM+AnvFJSva87ILMHv8PfWxydevIGnpebMUIb+IqfO
	00zuN8S9Dq5fudXSX81KFcCo3YBQGYPE5nYH1Kx4PG9fUfyKAXwKaSWevfDnDKpuwGGq
	UuvA==
MIME-Version: 1.0
X-Received: by 10.221.56.201 with SMTP id wd9mr11435399vcb.16.1414315934725;
	Sun, 26 Oct 2014 02:32:14 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Sun, 26 Oct 2014 02:32:14 -0700 (PDT)
In-Reply-To: <92320AE9-FA30-4455-B56B-941F091A500F@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
	<CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
	<92320AE9-FA30-4455-B56B-941F091A500F@nottingham.ac.uk>
Date: Sun, 26 Oct 2014 09:32:14 +0000
Message-ID: <CAG4opy_YA2pxyDaM89+Le3PPMyJde10_Lj481yojET8iBDv6og@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] magpie reference
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 October 2014 23:11, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
>
> On 15 Oct 2014, at 12:08, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 14 October 2014 16:48, Richard Mortier
>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>> from call:
>>>
>>> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>>>
>>> http://dl.acm.org/citation.cfm?id=1251272
>>
>> Thanks for the reference. Being able to highlight all threads related
>> to a particular input event could be useful, indeed.
>
> yes; both to see system structure and also to understand performance in detail. eg., could your Lwt monitoring changes also sample cycle counter (or whatever would be appropriate in a domU?) so as to annotate segments with resources consumed?

Could do. If you pin the domU to its own CPU then the clock times
should be a good estimate anyway, though.

>> In the current
>> system, we can see that e.g. the blkfront.poll thread gets woken up
>> for each read response and notifies the main thread waiting for the
>> data:
>>
>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.586333&t_max=8249.588562
>>
>> But we don't link it back to the original request. In this case just
>> marking the request on the diagram would make it obvious what's
>> happening, but in more complicated cases some visual indication of the
>> original source could be useful.
>
> note that one of the key issues we had when parsing events was the brittleness of the parser to events being reordered or dropped -- making it remarkably easy to end up in a state where nearly all events were either assigned to the same request or to no request.
>
>> You could probably do your clustering analysis on these traces if you
>> wanted to. Instrumenting Lwt gets you a lot of information
>> automatically that you would otherwise have to write schemas for, but
>> you do still need to handle the multiplexing problem.
>
> not sure what you mean by the multiplexing problem?

For example, you may have many components being notified by the
blkfront polling thread when their disk operations complete, but they
shouldn't all be linked together. So (as your paper notes) you need to
add some extra code in places to handle this.

>  if simply the need to trace the impact of input requests, the two solutions that were followed at the time were to assign each request a unique id, or to maintain mapping tables at every "module" boundary so things could be stitched together. we strongly believed (and i still strongly believe) that the latter is preferable-- it makes the tracing infrastructure much more general and usable, with little extra overhead and obviates the need to generate unique ids for inputs (which becomes fiddly in a distributed system).

Makes sense.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 26 09:32:31 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 09:32:31 +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 1XiKBS-0004Um-Th; Sun, 26 Oct 2014 09:32:22 +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 1XiKBQ-0004Uh-Q9
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 09:32:20 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	0C/A2-02972-3AFBC445; Sun, 26 Oct 2014 09:32:19 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1414315935!11602613!1
X-Originating-IP: [209.85.220.172]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3052 invoked from network); 26 Oct 2014 09:32:16 -0000
Received: from mail-vc0-f172.google.com (HELO mail-vc0-f172.google.com)
	(209.85.220.172)
	by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	26 Oct 2014 09:32:16 -0000
Received: by mail-vc0-f172.google.com with SMTP id lf12so1577753vcb.3
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 26 Oct 2014 02:32:14 -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=SvSpwtlGkQ26CRWxsINL3ZUUv25UfcIA3kmrRWrqTX4=;
	b=C02IYSqgdVjTOoEgDKFv++qaeEY9Q2d7H7TqJpG8IEfyPkloXzu8jLkACTQwKHh3Ma
	DZYOzJPl3OqnkpNoYh8UT34yiKKeXFNPrJxMVgQXXfTFXOKqkZhvK9BXscaYDxr3gyIE
	UMPfALNaQnKYFlLBAfqGSR4hM1UYzDjhOoVR4OVLbNL6kiQZ6JjhgeFfiB7fGb9xwD4N
	Ej/5BVlO0wUnHSlRtf9/rcGwrWMM+AnvFJSva87ILMHv8PfWxydevIGnpebMUIb+IqfO
	00zuN8S9Dq5fudXSX81KFcCo3YBQGYPE5nYH1Kx4PG9fUfyKAXwKaSWevfDnDKpuwGGq
	UuvA==
MIME-Version: 1.0
X-Received: by 10.221.56.201 with SMTP id wd9mr11435399vcb.16.1414315934725;
	Sun, 26 Oct 2014 02:32:14 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Sun, 26 Oct 2014 02:32:14 -0700 (PDT)
In-Reply-To: <92320AE9-FA30-4455-B56B-941F091A500F@nottingham.ac.uk>
References: <A7C2D3F9-6C02-4DB1-9E3F-A626071258B2@nottingham.ac.uk>
	<CAG4opy9gVVStWXZ+YTG4nMbCqGq670-bgQ1FPSi4yytodOin3A@mail.gmail.com>
	<92320AE9-FA30-4455-B56B-941F091A500F@nottingham.ac.uk>
Date: Sun, 26 Oct 2014 09:32:14 +0000
Message-ID: <CAG4opy_YA2pxyDaM89+Le3PPMyJde10_Lj481yojET8iBDv6og@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] magpie reference
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 October 2014 23:11, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
>
> On 15 Oct 2014, at 12:08, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 14 October 2014 16:48, Richard Mortier
>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>> from call:
>>>
>>> http://www.cs.nott.ac.uk/~rmm/papers/pdf/osdi04-magpie.pdf
>>>
>>> http://dl.acm.org/citation.cfm?id=1251272
>>
>> Thanks for the reference. Being able to highlight all threads related
>> to a particular input event could be useful, indeed.
>
> yes; both to see system structure and also to understand performance in detail. eg., could your Lwt monitoring changes also sample cycle counter (or whatever would be appropriate in a domU?) so as to annotate segments with resources consumed?

Could do. If you pin the domU to its own CPU then the clock times
should be a good estimate anyway, though.

>> In the current
>> system, we can see that e.g. the blkfront.poll thread gets woken up
>> for each read response and notifies the main thread waiting for the
>> data:
>>
>> http://test.roscidus.com/static/html_viewer.html?t_min=8249.586333&t_max=8249.588562
>>
>> But we don't link it back to the original request. In this case just
>> marking the request on the diagram would make it obvious what's
>> happening, but in more complicated cases some visual indication of the
>> original source could be useful.
>
> note that one of the key issues we had when parsing events was the brittleness of the parser to events being reordered or dropped -- making it remarkably easy to end up in a state where nearly all events were either assigned to the same request or to no request.
>
>> You could probably do your clustering analysis on these traces if you
>> wanted to. Instrumenting Lwt gets you a lot of information
>> automatically that you would otherwise have to write schemas for, but
>> you do still need to handle the multiplexing problem.
>
> not sure what you mean by the multiplexing problem?

For example, you may have many components being notified by the
blkfront polling thread when their disk operations complete, but they
shouldn't all be linked together. So (as your paper notes) you need to
add some extra code in places to handle this.

>  if simply the need to trace the impact of input requests, the two solutions that were followed at the time were to assign each request a unique id, or to maintain mapping tables at every "module" boundary so things could be stitched together. we strongly believed (and i still strongly believe) that the latter is preferable-- it makes the tracing infrastructure much more general and usable, with little extra overhead and obviates the need to generate unique ids for inputs (which becomes fiddly in a distributed system).

Makes sense.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 26 18:21:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 18:21: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 1XiSRi-0001L6-Ru; Sun, 26 Oct 2014 18:21:42 +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 1XiSRh-0001L1-9I
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 18:21:41 +0000
Received: from [193.109.254.147:46550] by server-12.bemta-14.messagelabs.com
	id 9F/06-01461-4BB3D445; Sun, 26 Oct 2014 18:21:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1414347694!12478653!2
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.0 required=7.0 tests=DATE_IN_PAST_06_12,
	HTML_MESSAGE,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21714 invoked from network); 26 Oct 2014 18:21:39 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 26 Oct 2014 18:21:39 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 3afe8262;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 26 Oct 2014 18:24:38 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <184425002.381741.1414166046722.JavaMail.yahoo@jws10607.mail.bf1.yahoo.com>
Date: Sun, 26 Oct 2014 12:03:50 +0000
Message-Id: <A3C806D1-73CE-454B-BADC-0F31378ECB2D@recoil.org>
References: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
	<184425002.381741.1414166046722.JavaMail.yahoo@jws10607.mail.bf1.yahoo.com>
To: Ania Skorupa <ania.skorupa@yahoo.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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="===============7555031259601326398=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============7555031259601326398==
Content-Type: multipart/alternative; boundary="Apple-Mail=_7A435B22-92E9-4F27-8AF0-813300E2F252"


--Apple-Mail=_7A435B22-92E9-4F27-8AF0-813300E2F252
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

You can set DHCP=3D1 on the environment when configuring it.

e.g.

$ env DHCP=3D1 mirage configure --xen # or --unix

See mirage-www/src/config.ml for the various Unix environment variables =
that you can set (or .travis-www.ml for the version used by the live =
site).

-anil

> On 24 Oct 2014, at 16:54, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
>=20
> Thanks. How I can configure web server to obtain ip from dhcp server?
>=20
>=20
> On Friday, October 24, 2014 3:05 PM, Anil Madhavapeddy =
<anil@recoil.org> wrote:
>=20
>=20
> Yes -- you need OCaml 4.01.0 at the moment.   I've been meaning to =
take a look at OCaml 4.02 support but haven't gotten around to it yet =
(merging Conduit patches first).  It shouldn't take long, but isn't =
committed yet.
>=20
> -anil
>=20
>> On 24 Oct 2014, at 15:15, Ania Skorupa <ania.skorupa@yahoo.com =
<mailto:ania.skorupa@yahoo.com>> wrote:
>>=20
>> Thanks.
>>=20
>> I still receive error:
>>=20
>> [ERROR]      The command "opam install --yes conduit cow cowabloga =
crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-http =
mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt =
xenstore" exited with code 1.
>>=20
>> when I run this command on terminal, I will have:
>>=20
>> [ERROR] mirage-xen is not available because it requires OCaml >=3D =
4.00.0 & < 4.02.0.
>>=20
>> Do I have to downgrade my ocaml, which is 4.02.0?
>>=20
>>=20
>> On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy =
<anil@recoil.org <mailto:anil@recoil.org>> wrote:
>>=20
>>=20
>> On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org =
<mailto:hannes@mehnert.org>> wrote:
>> >=20
>> > -----BEGIN PGP SIGNED MESSAGE-----
>> > Hash: SHA384
>> >=20
>> > On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> >> Do you have the mirage-dev opam remote activated, with the latest
>> >> libraries?  Just run:
>> >>=20
>> >> $ opam remote
>> >>=20
>> >> And if you don't see it in the list, add it via
>> >>=20
>> >> $ opam remote add mirage git://github.com/mirage/mirage-www =
<applewebdata://F1F76FD2-6A45-4295-9579-BF4604333A7B>
>> >=20
>> > it should have been git://github.com/mirage/mirage-dev =
<applewebdata://F1F76FD2-6A45-4295-9579-BF4604333A7B> ;)
>>=20
>> I need to take myself away from my keyboard today :-)
>>=20
>> -anil
>>=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
>=20
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_7A435B22-92E9-4F27-8AF0-813300E2F252
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"">You can set DHCP=3D1 on the environment when configuring =
it.<div class=3D""><br class=3D""></div><div class=3D"">e.g.</div><div =
class=3D""><br class=3D""></div><div class=3D"">$ env DHCP=3D1 mirage =
configure --xen # or --unix</div><div class=3D""><br class=3D""></div><div=
 class=3D"">See mirage-www/src/config.ml for the various Unix =
environment variables that you can set (or .travis-www.ml for the =
version used by the live site).</div><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 =
24 Oct 2014, at 16:54, Ania Skorupa &lt;<a =
href=3D"mailto:ania.skorupa@yahoo.com" =
class=3D"">ania.skorupa@yahoo.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D""><div =
style=3D"background-color: rgb(255, 255, 255); font-family: =
HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', =
sans-serif; font-size: 16px;" class=3D"">Thanks. How I can configure web =
server to obtain ip from dhcp server?<br class=3D""><div =
id=3D"yui_3_16_0_1_1414157003546_13162" class=3D""><span =
class=3D""></span></div> <div class=3D"qtdSeparateBR"><br class=3D""><br =
class=3D""></div><div style=3D"display: block;" class=3D"yahoo_quoted"> =
<div style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, =
Arial, Lucida Grande, sans-serif; font-size: 16px;" class=3D""> <div =
style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, =
Lucida Grande, sans-serif; font-size: 16px;" class=3D""> <div dir=3D"ltr" =
class=3D""> <font face=3D"Arial" size=3D"2" class=3D""> On Friday, =
October 24, 2014 3:05 PM, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org" class=3D"">anil@recoil.org</a>&gt; =
wrote:<br class=3D""> </font> </div>  <br class=3D""><br class=3D""> =
<div class=3D"y_msg_container"><div id=3D"yiv7912568129" class=3D""><div =
class=3D"">Yes -- you need OCaml 4.01.0 at the moment. &nbsp; I've been =
meaning to take a look at OCaml 4.02 support but haven't gotten around =
to it yet (merging Conduit patches first). &nbsp;It shouldn't take long, =
but isn't committed yet.<div class=3D"yiv7912568129"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div =
class=3D"yiv7912568129">-anil<br class=3D"yiv7912568129" =
clear=3D"none"><div class=3D"yiv7912568129yqt1805631163" =
id=3D"yiv7912568129yqt76948"><div class=3D"yiv7912568129"><br =
class=3D"yiv7912568129" clear=3D"none"><div class=3D""><blockquote =
class=3D"yiv7912568129" type=3D"cite"><div class=3D"yiv7912568129">On 24 =
Oct 2014, at 15:15, Ania Skorupa &lt;<a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" ymailto=3D"mailto:ania.skorupa@yahoo.com" =
target=3D"_blank" =
href=3D"mailto:ania.skorupa@yahoo.com">ania.skorupa@yahoo.com</a>&gt; =
wrote:</div><br class=3D"yiv7912568129Apple-interchange-newline" =
clear=3D"none"><div class=3D"yiv7912568129"><div =
class=3D"yiv7912568129"><div class=3D"yiv7912568129" =
style=3D"background-color:rgb(255, 255, 255);font-family:HelveticaNeue, =
'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', =
sans-serif;font-size:16px;"><div class=3D"yiv7912568129" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8812">Thanks.</div><div =
class=3D"yiv7912568129" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8469"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8635">I still =
receive error:</div><div class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8811"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9295">[ERROR]&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; The command "opam install --yes conduit cow cowabloga =
crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-http =
mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt =
xenstore" exited with code 1.</div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9300"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9299">when I =
run this command on terminal, I will have:</div><div =
class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9298"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10233">[ERROR] =
mirage-xen is not available because it requires OCaml &gt;=3D 4.00.0 =
&amp; &lt; 4.02.0.</div><div class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10234"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10235">Do I =
have to downgrade my ocaml, which is 4.02.0?<br class=3D"yiv7912568129" =
clear=3D"none"></div><div class=3D"yiv7912568129" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10236"><span =
class=3D"yiv7912568129"></span></div> <div =
class=3D"yiv7912568129qtdSeparateBR"><br class=3D"yiv7912568129" =
clear=3D"none"><br class=3D"yiv7912568129" clear=3D"none"></div><div =
class=3D"yiv7912568129yahoo_quoted" style=3D"display:block;"> <div =
class=3D"yiv7912568129" style=3D"font-family:HelveticaNeue, Helvetica =
Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div =
class=3D"yiv7912568129" style=3D"font-family:HelveticaNeue, Helvetica =
Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div =
class=3D"yiv7912568129" dir=3D"ltr"> <font class=3D"yiv7912568129" =
face=3D"Arial" size=3D"2"> On Friday, October 24, 2014 1:42 PM, Anil =
Madhavapeddy &lt;<a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" ymailto=3D"mailto:anil@recoil.org" =
target=3D"_blank" href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; =
wrote:<br class=3D"yiv7912568129" clear=3D"none"> </font> </div>  <br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none"> <div class=3D"yiv7912568129y_msg_container">On 24 Oct =
2014, at 14:39, Hannes Mehnert &lt;<a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" ymailto=3D"mailto:hannes@mehnert.org" =
target=3D"_blank" =
href=3D"mailto:hannes@mehnert.org">hannes@mehnert.org</a>&gt; wrote:<br =
class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv7912568129" =
clear=3D"none">&gt; -----BEGIN PGP SIGNED MESSAGE-----<br =
class=3D"yiv7912568129" clear=3D"none">&gt; Hash: SHA384<br =
class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv7912568129" =
clear=3D"none">&gt; On 10/24/2014 15:35, Anil Madhavapeddy wrote:<br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; Do you have the =
mirage-dev opam remote activated, with the latest<br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; libraries?&nbsp; Just =
run:<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; $ opam remote<br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; And if you don't see it =
in the list, add it via<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt;=
 <br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; $ opam remote add =
mirage <a href=3D"" rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129">git://github.com/mirage/mirage-www</a><br =
class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv7912568129" =
clear=3D"none">&gt; it should have been <a href=3D"" rel=3D"nofollow" =
shape=3D"rect" =
class=3D"yiv7912568129">git://github.com/mirage/mirage-dev</a> ;)<br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none">I need to take myself away from my keyboard today :-)<br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none">-anil<div class=3D"yiv7912568129yqt9420874674" =
id=3D"yiv7912568129yqtfd94814"><br class=3D"yiv7912568129" =
clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none">_______________________________________________<br =
class=3D"yiv7912568129" clear=3D"none">MirageOS-devel mailing list<br =
class=3D"yiv7912568129" clear=3D"none"><a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" =
ymailto=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank" =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br class=3D"yiv7912568129" clear=3D"none"><a =
rel=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129" target=3D"_blank" =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br class=3D"yiv7912568129" clear=3D"none"></div><br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none"></div>  </div> </div>  </div> =
</div></div></div></blockquote></div><br class=3D"yiv7912568129" =
clear=3D"none"></div></div></div></div></div><br class=3D""><br =
class=3D""></div>  </div> </div>  </div> =
</div></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=_7A435B22-92E9-4F27-8AF0-813300E2F252--


--===============7555031259601326398==
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

--===============7555031259601326398==--


From mirageos-devel-bounces@lists.xenproject.org Sun Oct 26 18:21:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 18:21: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 1XiSRd-0001Kt-OE; Sun, 26 Oct 2014 18:21:37 +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 1XiSRc-0001Ko-PO
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 18:21:36 +0000
Received: from [193.109.254.147:35955] by server-1.bemta-14.messagelabs.com id
	50/C4-24760-FAB3D445; Sun, 26 Oct 2014 18:21:35 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1414347694!12478653!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.0 required=7.0 tests=DATE_IN_PAST_06_12,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21625 invoked from network); 26 Oct 2014 18:21:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 26 Oct 2014 18:21:35 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id f8cc2c83;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 26 Oct 2014 18:24:34 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544B7D1D.2000003@nottingham.ac.uk>
Date: Sun, 26 Oct 2014 11:43:05 +0000
Message-Id: <D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
References: <544B7D1D.2000003@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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 Oct 2014, at 11:36, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
> 
> Hi all,
> 
> I have a switch with three tap devices tap0 (for the controller connection), tap1, and tap 2 running on Xen.
> 
> What would be the right VIF configuration for Xen?

It would be pretty much the same configuration as your tap setup.  The Xen networking model is to expose a VIF ('virtual interface') in the guest and dom0.  Everything else from there is host setup and can be customised -- most commonly by adding a bridge to the outside world and adding the VIFs from the guests to that bridge so they can communication externally.

The xl setup fragment looks like:

    vif = [ 'bridge=xenbr0' ]
or
    vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]

-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 Sun Oct 26 18:21:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 18:21: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 1XiSRd-0001Kt-OE; Sun, 26 Oct 2014 18:21:37 +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 1XiSRc-0001Ko-PO
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 18:21:36 +0000
Received: from [193.109.254.147:35955] by server-1.bemta-14.messagelabs.com id
	50/C4-24760-FAB3D445; Sun, 26 Oct 2014 18:21:35 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1414347694!12478653!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.0 required=7.0 tests=DATE_IN_PAST_06_12,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21625 invoked from network); 26 Oct 2014 18:21:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 26 Oct 2014 18:21:35 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id f8cc2c83;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 26 Oct 2014 18:24:34 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544B7D1D.2000003@nottingham.ac.uk>
Date: Sun, 26 Oct 2014 11:43:05 +0000
Message-Id: <D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
References: <544B7D1D.2000003@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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 Oct 2014, at 11:36, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
> 
> Hi all,
> 
> I have a switch with three tap devices tap0 (for the controller connection), tap1, and tap 2 running on Xen.
> 
> What would be the right VIF configuration for Xen?

It would be pretty much the same configuration as your tap setup.  The Xen networking model is to expose a VIF ('virtual interface') in the guest and dom0.  Everything else from there is host setup and can be customised -- most commonly by adding a bridge to the outside world and adding the VIFs from the guests to that bridge so they can communication externally.

The xl setup fragment looks like:

    vif = [ 'bridge=xenbr0' ]
or
    vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]

-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 Sun Oct 26 18:21:45 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 18:21: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 1XiSRi-0001L6-Ru; Sun, 26 Oct 2014 18:21:42 +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 1XiSRh-0001L1-9I
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 18:21:41 +0000
Received: from [193.109.254.147:46550] by server-12.bemta-14.messagelabs.com
	id 9F/06-01461-4BB3D445; Sun, 26 Oct 2014 18:21:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1414347694!12478653!2
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.0 required=7.0 tests=DATE_IN_PAST_06_12,
	HTML_MESSAGE,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21714 invoked from network); 26 Oct 2014 18:21:39 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 26 Oct 2014 18:21:39 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 3afe8262;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sun, 26 Oct 2014 18:24:38 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <184425002.381741.1414166046722.JavaMail.yahoo@jws10607.mail.bf1.yahoo.com>
Date: Sun, 26 Oct 2014 12:03:50 +0000
Message-Id: <A3C806D1-73CE-454B-BADC-0F31378ECB2D@recoil.org>
References: <C9C21749-13D5-43E8-90FA-AFF23C2D74D7@recoil.org>
	<184425002.381741.1414166046722.JavaMail.yahoo@jws10607.mail.bf1.yahoo.com>
To: Ania Skorupa <ania.skorupa@yahoo.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-www configure error
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="===============7555031259601326398=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============7555031259601326398==
Content-Type: multipart/alternative; boundary="Apple-Mail=_7A435B22-92E9-4F27-8AF0-813300E2F252"


--Apple-Mail=_7A435B22-92E9-4F27-8AF0-813300E2F252
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

You can set DHCP=3D1 on the environment when configuring it.

e.g.

$ env DHCP=3D1 mirage configure --xen # or --unix

See mirage-www/src/config.ml for the various Unix environment variables =
that you can set (or .travis-www.ml for the version used by the live =
site).

-anil

> On 24 Oct 2014, at 16:54, Ania Skorupa <ania.skorupa@yahoo.com> wrote:
>=20
> Thanks. How I can configure web server to obtain ip from dhcp server?
>=20
>=20
> On Friday, October 24, 2014 3:05 PM, Anil Madhavapeddy =
<anil@recoil.org> wrote:
>=20
>=20
> Yes -- you need OCaml 4.01.0 at the moment.   I've been meaning to =
take a look at OCaml 4.02 support but haven't gotten around to it yet =
(merging Conduit patches first).  It shouldn't take long, but isn't =
committed yet.
>=20
> -anil
>=20
>> On 24 Oct 2014, at 15:15, Ania Skorupa <ania.skorupa@yahoo.com =
<mailto:ania.skorupa@yahoo.com>> wrote:
>>=20
>> Thanks.
>>=20
>> I still receive error:
>>=20
>> [ERROR]      The command "opam install --yes conduit cow cowabloga =
crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-http =
mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt =
xenstore" exited with code 1.
>>=20
>> when I run this command on terminal, I will have:
>>=20
>> [ERROR] mirage-xen is not available because it requires OCaml >=3D =
4.00.0 & < 4.02.0.
>>=20
>> Do I have to downgrade my ocaml, which is 4.02.0?
>>=20
>>=20
>> On Friday, October 24, 2014 1:42 PM, Anil Madhavapeddy =
<anil@recoil.org <mailto:anil@recoil.org>> wrote:
>>=20
>>=20
>> On 24 Oct 2014, at 14:39, Hannes Mehnert <hannes@mehnert.org =
<mailto:hannes@mehnert.org>> wrote:
>> >=20
>> > -----BEGIN PGP SIGNED MESSAGE-----
>> > Hash: SHA384
>> >=20
>> > On 10/24/2014 15:35, Anil Madhavapeddy wrote:
>> >> Do you have the mirage-dev opam remote activated, with the latest
>> >> libraries?  Just run:
>> >>=20
>> >> $ opam remote
>> >>=20
>> >> And if you don't see it in the list, add it via
>> >>=20
>> >> $ opam remote add mirage git://github.com/mirage/mirage-www =
<applewebdata://F1F76FD2-6A45-4295-9579-BF4604333A7B>
>> >=20
>> > it should have been git://github.com/mirage/mirage-dev =
<applewebdata://F1F76FD2-6A45-4295-9579-BF4604333A7B> ;)
>>=20
>> I need to take myself away from my keyboard today :-)
>>=20
>> -anil
>>=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
>=20
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_7A435B22-92E9-4F27-8AF0-813300E2F252
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"">You can set DHCP=3D1 on the environment when configuring =
it.<div class=3D""><br class=3D""></div><div class=3D"">e.g.</div><div =
class=3D""><br class=3D""></div><div class=3D"">$ env DHCP=3D1 mirage =
configure --xen # or --unix</div><div class=3D""><br class=3D""></div><div=
 class=3D"">See mirage-www/src/config.ml for the various Unix =
environment variables that you can set (or .travis-www.ml for the =
version used by the live site).</div><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 =
24 Oct 2014, at 16:54, Ania Skorupa &lt;<a =
href=3D"mailto:ania.skorupa@yahoo.com" =
class=3D"">ania.skorupa@yahoo.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D""><div =
style=3D"background-color: rgb(255, 255, 255); font-family: =
HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', =
sans-serif; font-size: 16px;" class=3D"">Thanks. How I can configure web =
server to obtain ip from dhcp server?<br class=3D""><div =
id=3D"yui_3_16_0_1_1414157003546_13162" class=3D""><span =
class=3D""></span></div> <div class=3D"qtdSeparateBR"><br class=3D""><br =
class=3D""></div><div style=3D"display: block;" class=3D"yahoo_quoted"> =
<div style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, =
Arial, Lucida Grande, sans-serif; font-size: 16px;" class=3D""> <div =
style=3D"font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, =
Lucida Grande, sans-serif; font-size: 16px;" class=3D""> <div dir=3D"ltr" =
class=3D""> <font face=3D"Arial" size=3D"2" class=3D""> On Friday, =
October 24, 2014 3:05 PM, Anil Madhavapeddy &lt;<a =
href=3D"mailto:anil@recoil.org" class=3D"">anil@recoil.org</a>&gt; =
wrote:<br class=3D""> </font> </div>  <br class=3D""><br class=3D""> =
<div class=3D"y_msg_container"><div id=3D"yiv7912568129" class=3D""><div =
class=3D"">Yes -- you need OCaml 4.01.0 at the moment. &nbsp; I've been =
meaning to take a look at OCaml 4.02 support but haven't gotten around =
to it yet (merging Conduit patches first). &nbsp;It shouldn't take long, =
but isn't committed yet.<div class=3D"yiv7912568129"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div =
class=3D"yiv7912568129">-anil<br class=3D"yiv7912568129" =
clear=3D"none"><div class=3D"yiv7912568129yqt1805631163" =
id=3D"yiv7912568129yqt76948"><div class=3D"yiv7912568129"><br =
class=3D"yiv7912568129" clear=3D"none"><div class=3D""><blockquote =
class=3D"yiv7912568129" type=3D"cite"><div class=3D"yiv7912568129">On 24 =
Oct 2014, at 15:15, Ania Skorupa &lt;<a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" ymailto=3D"mailto:ania.skorupa@yahoo.com" =
target=3D"_blank" =
href=3D"mailto:ania.skorupa@yahoo.com">ania.skorupa@yahoo.com</a>&gt; =
wrote:</div><br class=3D"yiv7912568129Apple-interchange-newline" =
clear=3D"none"><div class=3D"yiv7912568129"><div =
class=3D"yiv7912568129"><div class=3D"yiv7912568129" =
style=3D"background-color:rgb(255, 255, 255);font-family:HelveticaNeue, =
'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', =
sans-serif;font-size:16px;"><div class=3D"yiv7912568129" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8812">Thanks.</div><div =
class=3D"yiv7912568129" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8469"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8635">I still =
receive error:</div><div class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_8811"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9295">[ERROR]&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; The command "opam install --yes conduit cow cowabloga =
crunch cstruct io-page lwt mirage-clock-xen mirage-console mirage-http =
mirage-net-xen mirage-types mirage-xen tcpip vchan xen-evtchn xen-gnt =
xenstore" exited with code 1.</div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9300"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9299">when I =
run this command on terminal, I will have:</div><div =
class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_9298"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10233">[ERROR] =
mirage-xen is not available because it requires OCaml &gt;=3D 4.00.0 =
&amp; &lt; 4.02.0.</div><div class=3D"yiv7912568129" dir=3D"ltr" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10234"><br =
class=3D"yiv7912568129" clear=3D"none"></div><div class=3D"yiv7912568129" =
dir=3D"ltr" id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10235">Do I =
have to downgrade my ocaml, which is 4.02.0?<br class=3D"yiv7912568129" =
clear=3D"none"></div><div class=3D"yiv7912568129" =
id=3D"yiv7912568129yui_3_16_0_1_1414157003546_10236"><span =
class=3D"yiv7912568129"></span></div> <div =
class=3D"yiv7912568129qtdSeparateBR"><br class=3D"yiv7912568129" =
clear=3D"none"><br class=3D"yiv7912568129" clear=3D"none"></div><div =
class=3D"yiv7912568129yahoo_quoted" style=3D"display:block;"> <div =
class=3D"yiv7912568129" style=3D"font-family:HelveticaNeue, Helvetica =
Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div =
class=3D"yiv7912568129" style=3D"font-family:HelveticaNeue, Helvetica =
Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div =
class=3D"yiv7912568129" dir=3D"ltr"> <font class=3D"yiv7912568129" =
face=3D"Arial" size=3D"2"> On Friday, October 24, 2014 1:42 PM, Anil =
Madhavapeddy &lt;<a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" ymailto=3D"mailto:anil@recoil.org" =
target=3D"_blank" href=3D"mailto:anil@recoil.org">anil@recoil.org</a>&gt; =
wrote:<br class=3D"yiv7912568129" clear=3D"none"> </font> </div>  <br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none"> <div class=3D"yiv7912568129y_msg_container">On 24 Oct =
2014, at 14:39, Hannes Mehnert &lt;<a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" ymailto=3D"mailto:hannes@mehnert.org" =
target=3D"_blank" =
href=3D"mailto:hannes@mehnert.org">hannes@mehnert.org</a>&gt; wrote:<br =
class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv7912568129" =
clear=3D"none">&gt; -----BEGIN PGP SIGNED MESSAGE-----<br =
class=3D"yiv7912568129" clear=3D"none">&gt; Hash: SHA384<br =
class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv7912568129" =
clear=3D"none">&gt; On 10/24/2014 15:35, Anil Madhavapeddy wrote:<br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; Do you have the =
mirage-dev opam remote activated, with the latest<br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; libraries?&nbsp; Just =
run:<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; $ opam remote<br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; <br =
class=3D"yiv7912568129" clear=3D"none">&gt;&gt; And if you don't see it =
in the list, add it via<br class=3D"yiv7912568129" clear=3D"none">&gt;&gt;=
 <br class=3D"yiv7912568129" clear=3D"none">&gt;&gt; $ opam remote add =
mirage <a href=3D"" rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129">git://github.com/mirage/mirage-www</a><br =
class=3D"yiv7912568129" clear=3D"none">&gt; <br class=3D"yiv7912568129" =
clear=3D"none">&gt; it should have been <a href=3D"" rel=3D"nofollow" =
shape=3D"rect" =
class=3D"yiv7912568129">git://github.com/mirage/mirage-dev</a> ;)<br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none">I need to take myself away from my keyboard today :-)<br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none">-anil<div class=3D"yiv7912568129yqt9420874674" =
id=3D"yiv7912568129yqtfd94814"><br class=3D"yiv7912568129" =
clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none">_______________________________________________<br =
class=3D"yiv7912568129" clear=3D"none">MirageOS-devel mailing list<br =
class=3D"yiv7912568129" clear=3D"none"><a rel=3D"nofollow" shape=3D"rect" =
class=3D"yiv7912568129" =
ymailto=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blank" =
href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists.x=
enproject.org</a><br class=3D"yiv7912568129" clear=3D"none"><a =
rel=3D"nofollow" shape=3D"rect" class=3D"yiv7912568129" target=3D"_blank" =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel</a>=
<br class=3D"yiv7912568129" clear=3D"none"></div><br =
class=3D"yiv7912568129" clear=3D"none"><br class=3D"yiv7912568129" =
clear=3D"none"></div>  </div> </div>  </div> =
</div></div></div></blockquote></div><br class=3D"yiv7912568129" =
clear=3D"none"></div></div></div></div></div><br class=3D""><br =
class=3D""></div>  </div> </div>  </div> =
</div></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=_7A435B22-92E9-4F27-8AF0-813300E2F252--


--===============7555031259601326398==
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

--===============7555031259601326398==--


From mirageos-devel-bounces@lists.xenproject.org Sun Oct 26 19:07:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 19:07: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 1XiT9v-0001kt-Ou; Sun, 26 Oct 2014 19:07:23 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pszmk1@nottingham.ac.uk>) id 1XiT9u-0001ko-7C
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 19:07:22 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	47/3A-02725-9664D445; Sun, 26 Oct 2014 19:07:21 +0000
X-Env-Sender: pszmk1@nottingham.ac.uk
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414350440!4251120!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15187 invoked from network); 26 Oct 2014 19:07:20 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-3.tower-206.messagelabs.com with SMTP;
	26 Oct 2014 19:07:20 -0000
Received: (qmail 21605 invoked from network); 26 Oct 2014 19:07:18 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 26 Oct 2014 19:07:18 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 20764-01 for <mirageos-devel@lists.xenproject.org>;
	Sun, 26 Oct 2014 19:06:57 +0000 (GMT)
Received: (qmail 21324 invoked by uid 599); 26 Oct 2014 19:06:57 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Sun, 26 Oct 2014 19:06:57 +0000
Received: from 88-105-189-205.dynamic.dsl.as9105.com ([88.105.189.205]
	helo=[192.168.1.5])
	by smtp3.nottingham.ac.uk with esmtpsa (UNKNOWN:AES128-SHA:128)
	(Exim 4.77) (envelope-from <pszmk1@nottingham.ac.uk>)
	id 1XiT9V-00025z-4Y; Sun, 26 Oct 2014 19:06:57 +0000
Message-ID: <544D464D.7070305@nottingham.ac.uk>
Date: Sun, 26 Oct 2014 19:06:53 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
In-Reply-To: <D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


I have defined 3 vifs with 3 different mac addresses for the 3 tap 
devices that I am using, and switch shows the same mac address (mac 
address of the first defined vif) assigned to both tap2 and tap3.

Another issue that I faced is, although I can ping switch vm, nothing 
appears on vifs and xenbr0 when switch starts a TCP connection to a 
remote controller (using TCPV4 create_connection function). This 
function works well for unix config.

On 26/10/14 11:43, Anil Madhavapeddy wrote:
> On 25 Oct 2014, at 11:36, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>> Hi all,
>>
>> I have a switch with three tap devices tap0 (for the controller connection), tap1, and tap 2 running on Xen.
>>
>> What would be the right VIF configuration for Xen?
> It would be pretty much the same configuration as your tap setup.  The Xen networking model is to expose a VIF ('virtual interface') in the guest and dom0.  Everything else from there is host setup and can be customised -- most commonly by adding a bridge to the outside world and adding the VIFs from the guests to that bridge so they can communication externally.
>
> The xl setup fragment looks like:
>
>      vif = [ 'bridge=xenbr0' ]
> or
>      vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]
>
> -anil

This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 26 19:07:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 26 Oct 2014 19:07: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 1XiT9v-0001kt-Ou; Sun, 26 Oct 2014 19:07:23 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pszmk1@nottingham.ac.uk>) id 1XiT9u-0001ko-7C
	for mirageos-devel@lists.xenproject.org; Sun, 26 Oct 2014 19:07:22 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	47/3A-02725-9664D445; Sun, 26 Oct 2014 19:07:21 +0000
X-Env-Sender: pszmk1@nottingham.ac.uk
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414350440!4251120!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15187 invoked from network); 26 Oct 2014 19:07:20 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-3.tower-206.messagelabs.com with SMTP;
	26 Oct 2014 19:07:20 -0000
Received: (qmail 21605 invoked from network); 26 Oct 2014 19:07:18 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 26 Oct 2014 19:07:18 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 20764-01 for <mirageos-devel@lists.xenproject.org>;
	Sun, 26 Oct 2014 19:06:57 +0000 (GMT)
Received: (qmail 21324 invoked by uid 599); 26 Oct 2014 19:06:57 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Sun, 26 Oct 2014 19:06:57 +0000
Received: from 88-105-189-205.dynamic.dsl.as9105.com ([88.105.189.205]
	helo=[192.168.1.5])
	by smtp3.nottingham.ac.uk with esmtpsa (UNKNOWN:AES128-SHA:128)
	(Exim 4.77) (envelope-from <pszmk1@nottingham.ac.uk>)
	id 1XiT9V-00025z-4Y; Sun, 26 Oct 2014 19:06:57 +0000
Message-ID: <544D464D.7070305@nottingham.ac.uk>
Date: Sun, 26 Oct 2014 19:06:53 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
In-Reply-To: <D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


I have defined 3 vifs with 3 different mac addresses for the 3 tap 
devices that I am using, and switch shows the same mac address (mac 
address of the first defined vif) assigned to both tap2 and tap3.

Another issue that I faced is, although I can ping switch vm, nothing 
appears on vifs and xenbr0 when switch starts a TCP connection to a 
remote controller (using TCPV4 create_connection function). This 
function works well for unix config.

On 26/10/14 11:43, Anil Madhavapeddy wrote:
> On 25 Oct 2014, at 11:36, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>> Hi all,
>>
>> I have a switch with three tap devices tap0 (for the controller connection), tap1, and tap 2 running on Xen.
>>
>> What would be the right VIF configuration for Xen?
> It would be pretty much the same configuration as your tap setup.  The Xen networking model is to expose a VIF ('virtual interface') in the guest and dom0.  Everything else from there is host setup and can be customised -- most commonly by adding a bridge to the outside world and adding the VIFs from the guests to that bridge so they can communication externally.
>
> The xl setup fragment looks like:
>
>      vif = [ 'bridge=xenbr0' ]
> or
>      vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]
>
> -anil

This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 27 10:42:47 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 10:42: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 1Xihl1-0004eu-Vv; Mon, 27 Oct 2014 10:42:39 +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 1Xihl0-0004en-QZ
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 10:42:38 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
	D1/9A-02830-E912E445; Mon, 27 Oct 2014 10:42:38 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1414406556!11769154!1
X-Originating-IP: [209.85.220.171]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5996 invoked from network); 27 Oct 2014 10:42:37 -0000
Received: from mail-vc0-f171.google.com (HELO mail-vc0-f171.google.com)
	(209.85.220.171)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 10:42:37 -0000
Received: by mail-vc0-f171.google.com with SMTP id im17so1599970vcb.16
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 03:42:36 -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=azZAFHAlchpbTqvMtDOnD5yKn/84DapDHd5ZVYn4NrU=;
	b=HQlAikPPFlFa1Urvj/3IvSTc4+5TeH6GRAglkdyb7wFDXIT6+8qElQvqbsCTSHu8lQ
	WOdSQQ3pAFygtgejIaiOe5hSM2p+hMhepw+rEzin3phGfd/rEF2cGOXx56g2HdustYGL
	AN2lTQ4ByQR5IxNQhfX6ViLKmBKsu0s5O7cw9RE5AmnWRDQCgZQMAlvja6u9cjhWB3gb
	8eFo3Hk6c3gybfKLC7k2vLlgbu5jICjSQxhRYuxyO/z/5Y9Od+CfJadxdYkuEu/CVTS8
	diXpPxRuFBFPHComPpqCAt7dtmJdnkC/tGLIvEg5DOL9VLSkyjaZDZKmzUQ7el3x8Vvh
	SwPw==
MIME-Version: 1.0
X-Received: by 10.52.78.5 with SMTP id x5mr13463627vdw.18.1414406556125; Mon,
	27 Oct 2014 03:42:36 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 03:42:36 -0700 (PDT)
Date: Mon, 27 Oct 2014 10:42:36 +0000
Message-ID: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Tracing and profiling blog post
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've put up a blog post describing the tracing work:

http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/

It explains how to read the diagrams, what the various arrows mean and
how to instrument your own programs. There are examples from tracing
some Mirage unikernels. The viewer should now also work on tablets
(pinch to zoom) - though probably very slowly! Let me know if there
are any browser compatibility problems...


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 10:42:47 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 10:42: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 1Xihl1-0004eu-Vv; Mon, 27 Oct 2014 10:42:39 +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 1Xihl0-0004en-QZ
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 10:42:38 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
	D1/9A-02830-E912E445; Mon, 27 Oct 2014 10:42:38 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1414406556!11769154!1
X-Originating-IP: [209.85.220.171]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5996 invoked from network); 27 Oct 2014 10:42:37 -0000
Received: from mail-vc0-f171.google.com (HELO mail-vc0-f171.google.com)
	(209.85.220.171)
	by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 10:42:37 -0000
Received: by mail-vc0-f171.google.com with SMTP id im17so1599970vcb.16
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 03:42:36 -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=azZAFHAlchpbTqvMtDOnD5yKn/84DapDHd5ZVYn4NrU=;
	b=HQlAikPPFlFa1Urvj/3IvSTc4+5TeH6GRAglkdyb7wFDXIT6+8qElQvqbsCTSHu8lQ
	WOdSQQ3pAFygtgejIaiOe5hSM2p+hMhepw+rEzin3phGfd/rEF2cGOXx56g2HdustYGL
	AN2lTQ4ByQR5IxNQhfX6ViLKmBKsu0s5O7cw9RE5AmnWRDQCgZQMAlvja6u9cjhWB3gb
	8eFo3Hk6c3gybfKLC7k2vLlgbu5jICjSQxhRYuxyO/z/5Y9Od+CfJadxdYkuEu/CVTS8
	diXpPxRuFBFPHComPpqCAt7dtmJdnkC/tGLIvEg5DOL9VLSkyjaZDZKmzUQ7el3x8Vvh
	SwPw==
MIME-Version: 1.0
X-Received: by 10.52.78.5 with SMTP id x5mr13463627vdw.18.1414406556125; Mon,
	27 Oct 2014 03:42:36 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 03:42:36 -0700 (PDT)
Date: Mon, 27 Oct 2014 10:42:36 +0000
Message-ID: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Tracing and profiling blog post
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've put up a blog post describing the tracing work:

http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/

It explains how to read the diagrams, what the various arrows mean and
how to instrument your own programs. There are examples from tracing
some Mirage unikernels. The viewer should now also work on tablets
(pinch to zoom) - though probably very slowly! Let me know if there
are any browser compatibility problems...


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 10:47:13 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 10:47: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 1XihpR-0004vs-G8; Mon, 27 Oct 2014 10:47:13 +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 1XihpP-0004vi-W0
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 10:47:12 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	3D/80-02694-FA22E445; Mon, 27 Oct 2014 10:47:11 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-4.tower-31.messagelabs.com!1414406830!11711267!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8638 invoked from network); 27 Oct 2014 10:47:10 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-4.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 10:47:10 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 3813e5b2;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 10:50:12 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
Date: Mon, 27 Oct 2014 10:47:08 +0000
Message-Id: <D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
> 
> I've put up a blog post describing the tracing work:
> 
> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
> 
> It explains how to read the diagrams, what the various arrows mean and
> how to instrument your own programs. There are examples from tracing
> some Mirage unikernels. The viewer should now also work on tablets
> (pinch to zoom) - though probably very slowly! Let me know if there
> are any browser compatibility problems...

Great post as always!  My first reaction was wincing at the inefficiency
of scatter-gather IO.  Perhaps we should indeed expose a copying API to
minimise the guest VM <-> backend ring traffic...

What are the next steps to get the profiling modules into mirage-dev
so that we can start sprinkling this in all of our libraries?

-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 Oct 27 10:47:13 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 10:47: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 1XihpR-0004vs-G8; Mon, 27 Oct 2014 10:47:13 +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 1XihpP-0004vi-W0
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 10:47:12 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	3D/80-02694-FA22E445; Mon, 27 Oct 2014 10:47:11 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-4.tower-31.messagelabs.com!1414406830!11711267!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8638 invoked from network); 27 Oct 2014 10:47:10 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-4.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 10:47:10 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 3813e5b2;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 10:50:12 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
Date: Mon, 27 Oct 2014 10:47:08 +0000
Message-Id: <D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
> 
> I've put up a blog post describing the tracing work:
> 
> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
> 
> It explains how to read the diagrams, what the various arrows mean and
> how to instrument your own programs. There are examples from tracing
> some Mirage unikernels. The viewer should now also work on tablets
> (pinch to zoom) - though probably very slowly! Let me know if there
> are any browser compatibility problems...

Great post as always!  My first reaction was wincing at the inefficiency
of scatter-gather IO.  Perhaps we should indeed expose a copying API to
minimise the guest VM <-> backend ring traffic...

What are the next steps to get the profiling modules into mirage-dev
so that we can start sprinkling this in all of our libraries?

-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 Oct 27 11:02:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:02: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 1Xii4A-00067W-Ml; Mon, 27 Oct 2014 11:02:26 +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 1Xii48-000670-UA
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:02:25 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	90/2A-02954-0462E445; Mon, 27 Oct 2014 11:02:24 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1414407742!12702768!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 904 invoked from network); 27 Oct 2014 11:02:23 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 11:02:23 -0000
Received: by mail-vc0-f170.google.com with SMTP id lf12so1662173vcb.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 04:02:22 -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=QZsz4eZ5YMxlkKm+Eny1Hes3QI6Ej4KUJ8ji1kc0tcQ=;
	b=u4bWJ4ZxvDPnbL2CTr3SHn1hA2ZF0zMahrP3uO8lzSxVyleNHKIBUQjcgoIVFHNDin
	OLl5UH/G9OtgGWVseGs1SOL69X15l3NanTWPCia3Q3vXQmhxgRdebg8onsBDjs/2ySHl
	eh8zk7EZ/EiTMTN0zgWqYTvLrCqbLCdAnjIXAMUEaisUcH4s33H+vbQL1b61YfLPS15B
	/wNqvKemVq1CJYnI4yYr+5NHfFaLpxezaQ4hBi9Jm2QLqnPv+rlDnRZnZhfzezeBh53E
	G32FN69ToOBR8ag5Dg4FRx7e5SYrxT2aSB5UdKtb98Yhjg3NciaMqtOUHfGPRApvl3gI
	p/Qw==
MIME-Version: 1.0
X-Received: by 10.52.161.232 with SMTP id xv8mr8805166vdb.30.1414407742224;
	Mon, 27 Oct 2014 04:02:22 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 04:02:22 -0700 (PDT)
In-Reply-To: <D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
Date: Mon, 27 Oct 2014 11:02:22 +0000
Message-ID: <CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 October 2014 10:47, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> I've put up a blog post describing the tracing work:
>>
>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>
>> It explains how to read the diagrams, what the various arrows mean and
>> how to instrument your own programs. There are examples from tracing
>> some Mirage unikernels. The viewer should now also work on tablets
>> (pinch to zoom) - though probably very slowly! Let me know if there
>> are any browser compatibility problems...
>
> Great post as always!  My first reaction was wincing at the inefficiency
> of scatter-gather IO.  Perhaps we should indeed expose a copying API to
> minimise the guest VM <-> backend ring traffic...

Wow - impressive speed-reading skills there!

> What are the next steps to get the profiling modules into mirage-dev
> so that we can start sprinkling this in all of our libraries?

I need to make mirage-profile detect whether lwt.tracing is installed
and compile null-op functions if it isn't. The API needs a little
cleaning up too (e.g. note_increase should probably take a counter
object rather than a string), but that shouldn't be much work -
libraries don't need to use many calls to provide useful trace
information.

The API for controlling tracing and the trace format may continue to
change, but that shouldn't break libraries that are just providing
trace data.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 11:02:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:02: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 1Xii4A-00067W-Ml; Mon, 27 Oct 2014 11:02:26 +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 1Xii48-000670-UA
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:02:25 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	90/2A-02954-0462E445; Mon, 27 Oct 2014 11:02:24 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1414407742!12702768!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 904 invoked from network); 27 Oct 2014 11:02:23 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 11:02:23 -0000
Received: by mail-vc0-f170.google.com with SMTP id lf12so1662173vcb.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 04:02:22 -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=QZsz4eZ5YMxlkKm+Eny1Hes3QI6Ej4KUJ8ji1kc0tcQ=;
	b=u4bWJ4ZxvDPnbL2CTr3SHn1hA2ZF0zMahrP3uO8lzSxVyleNHKIBUQjcgoIVFHNDin
	OLl5UH/G9OtgGWVseGs1SOL69X15l3NanTWPCia3Q3vXQmhxgRdebg8onsBDjs/2ySHl
	eh8zk7EZ/EiTMTN0zgWqYTvLrCqbLCdAnjIXAMUEaisUcH4s33H+vbQL1b61YfLPS15B
	/wNqvKemVq1CJYnI4yYr+5NHfFaLpxezaQ4hBi9Jm2QLqnPv+rlDnRZnZhfzezeBh53E
	G32FN69ToOBR8ag5Dg4FRx7e5SYrxT2aSB5UdKtb98Yhjg3NciaMqtOUHfGPRApvl3gI
	p/Qw==
MIME-Version: 1.0
X-Received: by 10.52.161.232 with SMTP id xv8mr8805166vdb.30.1414407742224;
	Mon, 27 Oct 2014 04:02:22 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 04:02:22 -0700 (PDT)
In-Reply-To: <D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
Date: Mon, 27 Oct 2014 11:02:22 +0000
Message-ID: <CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 October 2014 10:47, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> I've put up a blog post describing the tracing work:
>>
>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>
>> It explains how to read the diagrams, what the various arrows mean and
>> how to instrument your own programs. There are examples from tracing
>> some Mirage unikernels. The viewer should now also work on tablets
>> (pinch to zoom) - though probably very slowly! Let me know if there
>> are any browser compatibility problems...
>
> Great post as always!  My first reaction was wincing at the inefficiency
> of scatter-gather IO.  Perhaps we should indeed expose a copying API to
> minimise the guest VM <-> backend ring traffic...

Wow - impressive speed-reading skills there!

> What are the next steps to get the profiling modules into mirage-dev
> so that we can start sprinkling this in all of our libraries?

I need to make mirage-profile detect whether lwt.tracing is installed
and compile null-op functions if it isn't. The API needs a little
cleaning up too (e.g. note_increase should probably take a counter
object rather than a string), but that shouldn't be much work -
libraries don't need to use many calls to provide useful trace
information.

The API for controlling tracing and the trace format may continue to
change, but that shouldn't break libraries that are just providing
trace data.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 11:07:38 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:07: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 1Xii9C-0006JS-7J; Mon, 27 Oct 2014 11:07:38 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xii9A-0006JN-Ub
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:07:37 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	60/78-02699-8772E445; Mon, 27 Oct 2014 11:07:36 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-15.tower-21.messagelabs.com!1414408055!12800486!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20504 invoked from network); 27 Oct 2014 11:07:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 11:07:35 -0000
Received: from [10.0.0.108] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8caccdcd;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 11:10:37 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
Date: Mon, 27 Oct 2014 11:07:34 +0000
Message-Id: <1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 11:02, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 27 October 2014 10:47, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> I've put up a blog post describing the tracing work:
>>> 
>>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>> 
>>> It explains how to read the diagrams, what the various arrows mean and
>>> how to instrument your own programs. There are examples from tracing
>>> some Mirage unikernels. The viewer should now also work on tablets
>>> (pinch to zoom) - though probably very slowly! Let me know if there
>>> are any browser compatibility problems...
>> 
>> Great post as always!  My first reaction was wincing at the inefficiency
>> of scatter-gather IO.  Perhaps we should indeed expose a copying API to
>> minimise the guest VM <-> backend ring traffic...
> 
> Wow - impressive speed-reading skills there!

Admittedly, I started reading when you posted on Twitter :-)

> 
>> What are the next steps to get the profiling modules into mirage-dev
>> so that we can start sprinkling this in all of our libraries?
> 
> I need to make mirage-profile detect whether lwt.tracing is installed
> and compile null-op functions if it isn't. The API needs a little
> cleaning up too (e.g. note_increase should probably take a counter
> object rather than a string), but that shouldn't be much work -
> libraries don't need to use many calls to provide useful trace
> information.
> 
> The API for controlling tracing and the trace format may continue to
> change, but that shouldn't break libraries that are just providing
> trace data.
> 

Makes sense -- the longest path is likely to be the patches to
upstream Lwt to get lwt.tracing in.  It's a core enough dependency
that requiring people to pin it all the time is probably impractical
outside of mirage-dev.

-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 Oct 27 11:07:38 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:07: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 1Xii9C-0006JS-7J; Mon, 27 Oct 2014 11:07:38 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xii9A-0006JN-Ub
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:07:37 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	60/78-02699-8772E445; Mon, 27 Oct 2014 11:07:36 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-15.tower-21.messagelabs.com!1414408055!12800486!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20504 invoked from network); 27 Oct 2014 11:07:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 11:07:35 -0000
Received: from [10.0.0.108] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8caccdcd;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 11:10:37 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
Date: Mon, 27 Oct 2014 11:07:34 +0000
Message-Id: <1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 11:02, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 27 October 2014 10:47, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> I've put up a blog post describing the tracing work:
>>> 
>>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>> 
>>> It explains how to read the diagrams, what the various arrows mean and
>>> how to instrument your own programs. There are examples from tracing
>>> some Mirage unikernels. The viewer should now also work on tablets
>>> (pinch to zoom) - though probably very slowly! Let me know if there
>>> are any browser compatibility problems...
>> 
>> Great post as always!  My first reaction was wincing at the inefficiency
>> of scatter-gather IO.  Perhaps we should indeed expose a copying API to
>> minimise the guest VM <-> backend ring traffic...
> 
> Wow - impressive speed-reading skills there!

Admittedly, I started reading when you posted on Twitter :-)

> 
>> What are the next steps to get the profiling modules into mirage-dev
>> so that we can start sprinkling this in all of our libraries?
> 
> I need to make mirage-profile detect whether lwt.tracing is installed
> and compile null-op functions if it isn't. The API needs a little
> cleaning up too (e.g. note_increase should probably take a counter
> object rather than a string), but that shouldn't be much work -
> libraries don't need to use many calls to provide useful trace
> information.
> 
> The API for controlling tracing and the trace format may continue to
> change, but that shouldn't break libraries that are just providing
> trace data.
> 

Makes sense -- the longest path is likely to be the patches to
upstream Lwt to get lwt.tracing in.  It's a core enough dependency
that requiring people to pin it all the time is probably impractical
outside of mirage-dev.

-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 Oct 27 11:17:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:17: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 1XiiJB-0007FX-IH; Mon, 27 Oct 2014 11:17:57 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XiiJA-0007FR-9r
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:17:56 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	1B/6C-10419-3E92E445; Mon, 27 Oct 2014 11:17:55 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1414408673!12901881!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28487 invoked from network); 27 Oct 2014 11:17:54 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 11:17:54 -0000
Received: by mail-vc0-f170.google.com with SMTP id lf12so1681724vcb.29
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 04:17:53 -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=GSkGbO/W6uk5G2G4ZkDHTeaoNJEblOOS9h2y+fUeBFk=;
	b=uKcU5t2dqo1K46IzcoH/DVCwNddN+c27f7zcVj4oILF3Z7+yd7EY3q7X51suTIokY4
	IgNrP1M9zKFkA0uXXwpDzykQlKPkUh+e+S/5coW2RpfwrYUmuyJMOCjkYfw+mGuZGbs/
	TbQQxjuBGCXiEH5qtBuTHH7cUYgvqe1XSg8LRYx76BzM7BEIncdsqelZY2+GN5uXRnlK
	Fp7IrsM/ZI/+fXJLXLu+jnKISExn/LftxZsUiRyiaFUr1dhagvy1EDN4hoUQSPCCFbC+
	Q5pUcHcxGJBH8536BW0gOh/uqnP4grdkXhXDiWqwDg0y8OvXiRHHRSax8NKJ8PeVi/55
	2bYg==
MIME-Version: 1.0
X-Received: by 10.221.36.73 with SMTP id sz9mr16185336vcb.17.1414408673465;
	Mon, 27 Oct 2014 04:17:53 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 04:17:53 -0700 (PDT)
In-Reply-To: <1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
Date: Mon, 27 Oct 2014 11:17:53 +0000
Message-ID: <CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 October 2014 11:07, Anil Madhavapeddy <anil@recoil.org> wrote:
>
>> On 27 Oct 2014, at 11:02, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 27 October 2014 10:47, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>>>
>>>> I've put up a blog post describing the tracing work:
>>>>
>>>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>>>
>>>> It explains how to read the diagrams, what the various arrows mean and
>>>> how to instrument your own programs. There are examples from tracing
>>>> some Mirage unikernels. The viewer should now also work on tablets
>>>> (pinch to zoom) - though probably very slowly! Let me know if there
>>>> are any browser compatibility problems...
>>>
>>> Great post as always!  My first reaction was wincing at the inefficiency
>>> of scatter-gather IO.  Perhaps we should indeed expose a copying API to
>>> minimise the guest VM <-> backend ring traffic...
>>
>> Wow - impressive speed-reading skills there!
>
> Admittedly, I started reading when you posted on Twitter :-)
>
>>
>>> What are the next steps to get the profiling modules into mirage-dev
>>> so that we can start sprinkling this in all of our libraries?
>>
>> I need to make mirage-profile detect whether lwt.tracing is installed
>> and compile null-op functions if it isn't. The API needs a little
>> cleaning up too (e.g. note_increase should probably take a counter
>> object rather than a string), but that shouldn't be much work -
>> libraries don't need to use many calls to provide useful trace
>> information.
>>
>> The API for controlling tracing and the trace format may continue to
>> change, but that shouldn't break libraries that are just providing
>> trace data.
>>
>
> Makes sense -- the longest path is likely to be the patches to
> upstream Lwt to get lwt.tracing in.  It's a core enough dependency
> that requiring people to pin it all the time is probably impractical
> outside of mirage-dev.

Note that everything should (in future) compile with an unmodified
Lwt. Pinning the tracing version of Lwt is what will trigger
everything to recompile with profiling support. So, getting this
upstream shouldn't block anything (and might indeed be difficult),
although if upstream wants to add a flag for it that would be great
too.

This is a change to my previous plan of having Lwt depend on
mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
use any extended feature of Lwt you should go via profiling. e.g. in
mirage-platform we have:

let ports = Array.init nr_events (fun port -> {
  counter = program_start;
  c = Profile.named_condition ("after-chn-" ^ string_of_int port)
})

If Lwt.tracing is installed then Profile.named_condition is:

let named_condition label =
  Lwt_condition.create ~label ()

Without, it will be:

let named_condition _label = Lwt_condition.create ()


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 11:17:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:17: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 1XiiJB-0007FX-IH; Mon, 27 Oct 2014 11:17:57 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XiiJA-0007FR-9r
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:17:56 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	1B/6C-10419-3E92E445; Mon, 27 Oct 2014 11:17:55 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1414408673!12901881!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28487 invoked from network); 27 Oct 2014 11:17:54 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 11:17:54 -0000
Received: by mail-vc0-f170.google.com with SMTP id lf12so1681724vcb.29
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 04:17:53 -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=GSkGbO/W6uk5G2G4ZkDHTeaoNJEblOOS9h2y+fUeBFk=;
	b=uKcU5t2dqo1K46IzcoH/DVCwNddN+c27f7zcVj4oILF3Z7+yd7EY3q7X51suTIokY4
	IgNrP1M9zKFkA0uXXwpDzykQlKPkUh+e+S/5coW2RpfwrYUmuyJMOCjkYfw+mGuZGbs/
	TbQQxjuBGCXiEH5qtBuTHH7cUYgvqe1XSg8LRYx76BzM7BEIncdsqelZY2+GN5uXRnlK
	Fp7IrsM/ZI/+fXJLXLu+jnKISExn/LftxZsUiRyiaFUr1dhagvy1EDN4hoUQSPCCFbC+
	Q5pUcHcxGJBH8536BW0gOh/uqnP4grdkXhXDiWqwDg0y8OvXiRHHRSax8NKJ8PeVi/55
	2bYg==
MIME-Version: 1.0
X-Received: by 10.221.36.73 with SMTP id sz9mr16185336vcb.17.1414408673465;
	Mon, 27 Oct 2014 04:17:53 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 04:17:53 -0700 (PDT)
In-Reply-To: <1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
Date: Mon, 27 Oct 2014 11:17:53 +0000
Message-ID: <CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 October 2014 11:07, Anil Madhavapeddy <anil@recoil.org> wrote:
>
>> On 27 Oct 2014, at 11:02, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 27 October 2014 10:47, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>>>
>>>> I've put up a blog post describing the tracing work:
>>>>
>>>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>>>
>>>> It explains how to read the diagrams, what the various arrows mean and
>>>> how to instrument your own programs. There are examples from tracing
>>>> some Mirage unikernels. The viewer should now also work on tablets
>>>> (pinch to zoom) - though probably very slowly! Let me know if there
>>>> are any browser compatibility problems...
>>>
>>> Great post as always!  My first reaction was wincing at the inefficiency
>>> of scatter-gather IO.  Perhaps we should indeed expose a copying API to
>>> minimise the guest VM <-> backend ring traffic...
>>
>> Wow - impressive speed-reading skills there!
>
> Admittedly, I started reading when you posted on Twitter :-)
>
>>
>>> What are the next steps to get the profiling modules into mirage-dev
>>> so that we can start sprinkling this in all of our libraries?
>>
>> I need to make mirage-profile detect whether lwt.tracing is installed
>> and compile null-op functions if it isn't. The API needs a little
>> cleaning up too (e.g. note_increase should probably take a counter
>> object rather than a string), but that shouldn't be much work -
>> libraries don't need to use many calls to provide useful trace
>> information.
>>
>> The API for controlling tracing and the trace format may continue to
>> change, but that shouldn't break libraries that are just providing
>> trace data.
>>
>
> Makes sense -- the longest path is likely to be the patches to
> upstream Lwt to get lwt.tracing in.  It's a core enough dependency
> that requiring people to pin it all the time is probably impractical
> outside of mirage-dev.

Note that everything should (in future) compile with an unmodified
Lwt. Pinning the tracing version of Lwt is what will trigger
everything to recompile with profiling support. So, getting this
upstream shouldn't block anything (and might indeed be difficult),
although if upstream wants to add a flag for it that would be great
too.

This is a change to my previous plan of having Lwt depend on
mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
use any extended feature of Lwt you should go via profiling. e.g. in
mirage-platform we have:

let ports = Array.init nr_events (fun port -> {
  counter = program_start;
  c = Profile.named_condition ("after-chn-" ^ string_of_int port)
})

If Lwt.tracing is installed then Profile.named_condition is:

let named_condition label =
  Lwt_condition.create ~label ()

Without, it will be:

let named_condition _label = Lwt_condition.create ()


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 11:22:11 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:22: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 1XiiNG-0007PR-UY; Mon, 27 Oct 2014 11:22:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XiiNF-0007PM-I5
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:22:09 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	BC/1C-02952-0EA2E445; Mon, 27 Oct 2014 11:22:08 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-21.messagelabs.com!1414408928!12873136!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8570 invoked from network); 27 Oct 2014 11:22:08 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 11:22:08 -0000
Received: from [10.0.0.108] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 5f8f15ec;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 11:25:11 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
Date: Mon, 27 Oct 2014 11:22:07 +0000
Message-Id: <AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 11:17, Thomas Leonard <talex5@gmail.com> wrote:
> 
> Note that everything should (in future) compile with an unmodified
> Lwt. Pinning the tracing version of Lwt is what will trigger
> everything to recompile with profiling support. So, getting this
> upstream shouldn't block anything (and might indeed be difficult),
> although if upstream wants to add a flag for it that would be great
> too.
> 
> This is a change to my previous plan of having Lwt depend on
> mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
> use any extended feature of Lwt you should go via profiling. e.g. in
> mirage-platform we have:
> 
> let ports = Array.init nr_events (fun port -> {
>  counter = program_start;
>  c = Profile.named_condition ("after-chn-" ^ string_of_int port)
> })
> 
> If Lwt.tracing is installed then Profile.named_condition is:
> 
> let named_condition label =
>  Lwt_condition.create ~label ()
> 
> Without, it will be:
> 
> let named_condition _label = Lwt_condition.create ()

This also sounds like the right order, and permits other tracing
strategies in the future for Lwt.  Are you doing the mirage-platform
conditional compilation via optcomp?

_______________________________________________
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 Oct 27 11:22:11 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:22: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 1XiiNG-0007PR-UY; Mon, 27 Oct 2014 11:22:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XiiNF-0007PM-I5
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:22:09 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	BC/1C-02952-0EA2E445; Mon, 27 Oct 2014 11:22:08 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-8.tower-21.messagelabs.com!1414408928!12873136!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8570 invoked from network); 27 Oct 2014 11:22:08 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-8.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 11:22:08 -0000
Received: from [10.0.0.108] (host81-149-102-120.in-addr.btopenworld.com
	[81.149.102.120]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 5f8f15ec;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 11:25:11 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
Date: Mon, 27 Oct 2014 11:22:07 +0000
Message-Id: <AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 11:17, Thomas Leonard <talex5@gmail.com> wrote:
> 
> Note that everything should (in future) compile with an unmodified
> Lwt. Pinning the tracing version of Lwt is what will trigger
> everything to recompile with profiling support. So, getting this
> upstream shouldn't block anything (and might indeed be difficult),
> although if upstream wants to add a flag for it that would be great
> too.
> 
> This is a change to my previous plan of having Lwt depend on
> mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
> use any extended feature of Lwt you should go via profiling. e.g. in
> mirage-platform we have:
> 
> let ports = Array.init nr_events (fun port -> {
>  counter = program_start;
>  c = Profile.named_condition ("after-chn-" ^ string_of_int port)
> })
> 
> If Lwt.tracing is installed then Profile.named_condition is:
> 
> let named_condition label =
>  Lwt_condition.create ~label ()
> 
> Without, it will be:
> 
> let named_condition _label = Lwt_condition.create ()

This also sounds like the right order, and permits other tracing
strategies in the future for Lwt.  Are you doing the mirage-platform
conditional compilation via optcomp?

_______________________________________________
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 Oct 27 11:31:21 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:31: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 1XiiW8-0007fg-FV; Mon, 27 Oct 2014 11:31:20 +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 1XiiW7-0007fa-PV
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:31:19 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
	86/86-02702-70D2E445; Mon, 27 Oct 2014 11:31:19 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1414409477!12706798!1
X-Originating-IP: [209.85.220.177]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16776 invoked from network); 27 Oct 2014 11:31:18 -0000
Received: from mail-vc0-f177.google.com (HELO mail-vc0-f177.google.com)
	(209.85.220.177)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 11:31:18 -0000
Received: by mail-vc0-f177.google.com with SMTP id hq11so2225966vcb.36
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 04:31:17 -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=IJj+MRBHNBX8ivPJrEq/m8G6ydSsZnjFmm1pS+Yidtg=;
	b=nHMbICzq9YyplnyKwwsULFYDVn7yUlxu8y4UeqJIJ/deyFjVpA2Yem1xOk+uGXfLwq
	C4s/CAbVS4ejR6MSnNj189iN8tfDqTHjB5QG0pCDdpK5XXu7y5DMfmcW93Xo24kOUnN4
	+yKgcI5Fva4NSvMH8Jq71t1GR3YmZ9/+sG5Mi4kGXVvcjBPhmEqLNJcZjf1VQ64v0MZN
	mSdgQwwUuH1qVQ65L/8Mqut5TO8AmbkOK2URIfUtiZ+i8UR5K85ZMolt97KX7rDoGbGk
	bixxlHUL+vmua04izp9pLZM5N6WE8roQS2yfMQGv/oVXOJetb4+vmTGyamcaaa9zCb+T
	Yxeg==
MIME-Version: 1.0
X-Received: by 10.221.29.134 with SMTP id ry6mr16431029vcb.26.1414409477018;
	Mon, 27 Oct 2014 04:31:17 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 04:31:16 -0700 (PDT)
In-Reply-To: <AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
Date: Mon, 27 Oct 2014 11:31:16 +0000
Message-ID: <CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 October 2014 11:22, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 27 Oct 2014, at 11:17, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> Note that everything should (in future) compile with an unmodified
>> Lwt. Pinning the tracing version of Lwt is what will trigger
>> everything to recompile with profiling support. So, getting this
>> upstream shouldn't block anything (and might indeed be difficult),
>> although if upstream wants to add a flag for it that would be great
>> too.
>>
>> This is a change to my previous plan of having Lwt depend on
>> mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
>> use any extended feature of Lwt you should go via profiling. e.g. in
>> mirage-platform we have:
>>
>> let ports = Array.init nr_events (fun port -> {
>>  counter = program_start;
>>  c = Profile.named_condition ("after-chn-" ^ string_of_int port)
>> })
>>
>> If Lwt.tracing is installed then Profile.named_condition is:
>>
>> let named_condition label =
>>  Lwt_condition.create ~label ()
>>
>> Without, it will be:
>>
>> let named_condition _label = Lwt_condition.create ()
>
> This also sounds like the right order, and permits other tracing
> strategies in the future for Lwt.  Are you doing the mirage-platform
> conditional compilation via optcomp?

My plan is that only mirage-profile will use conditional compilation
and everything else will always depend on mirage-profile, but get the
calls optimised out by the compiler when tracing isn't being used.

Currently though I haven't implemented anything. I was thinking of
having two versions of profile.ml and only compiling the appropriate
one.

mirage-profile is currently using assemblage, so any suggestions on
the best way to do that are welcome. My current thought is to have a
flag saying whether you want profiling, and have OPAM set the flag
depending on the availablilty of the lwt.tracing ocamlfind package
(which the modified Lwt installs). Or should the build detect this
somehow?

If assemblage is too experimental for mirage-dev, I could also convert to oasis.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 11:31:21 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 11:31: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 1XiiW8-0007fg-FV; Mon, 27 Oct 2014 11:31:20 +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 1XiiW7-0007fa-PV
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 11:31:19 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
	86/86-02702-70D2E445; Mon, 27 Oct 2014 11:31:19 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1414409477!12706798!1
X-Originating-IP: [209.85.220.177]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16776 invoked from network); 27 Oct 2014 11:31:18 -0000
Received: from mail-vc0-f177.google.com (HELO mail-vc0-f177.google.com)
	(209.85.220.177)
	by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 11:31:18 -0000
Received: by mail-vc0-f177.google.com with SMTP id hq11so2225966vcb.36
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 04:31:17 -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=IJj+MRBHNBX8ivPJrEq/m8G6ydSsZnjFmm1pS+Yidtg=;
	b=nHMbICzq9YyplnyKwwsULFYDVn7yUlxu8y4UeqJIJ/deyFjVpA2Yem1xOk+uGXfLwq
	C4s/CAbVS4ejR6MSnNj189iN8tfDqTHjB5QG0pCDdpK5XXu7y5DMfmcW93Xo24kOUnN4
	+yKgcI5Fva4NSvMH8Jq71t1GR3YmZ9/+sG5Mi4kGXVvcjBPhmEqLNJcZjf1VQ64v0MZN
	mSdgQwwUuH1qVQ65L/8Mqut5TO8AmbkOK2URIfUtiZ+i8UR5K85ZMolt97KX7rDoGbGk
	bixxlHUL+vmua04izp9pLZM5N6WE8roQS2yfMQGv/oVXOJetb4+vmTGyamcaaa9zCb+T
	Yxeg==
MIME-Version: 1.0
X-Received: by 10.221.29.134 with SMTP id ry6mr16431029vcb.26.1414409477018;
	Mon, 27 Oct 2014 04:31:17 -0700 (PDT)
Received: by 10.31.130.144 with HTTP; Mon, 27 Oct 2014 04:31:16 -0700 (PDT)
In-Reply-To: <AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
Date: Mon, 27 Oct 2014 11:31:16 +0000
Message-ID: <CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 October 2014 11:22, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 27 Oct 2014, at 11:17, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> Note that everything should (in future) compile with an unmodified
>> Lwt. Pinning the tracing version of Lwt is what will trigger
>> everything to recompile with profiling support. So, getting this
>> upstream shouldn't block anything (and might indeed be difficult),
>> although if upstream wants to add a flag for it that would be great
>> too.
>>
>> This is a change to my previous plan of having Lwt depend on
>> mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
>> use any extended feature of Lwt you should go via profiling. e.g. in
>> mirage-platform we have:
>>
>> let ports = Array.init nr_events (fun port -> {
>>  counter = program_start;
>>  c = Profile.named_condition ("after-chn-" ^ string_of_int port)
>> })
>>
>> If Lwt.tracing is installed then Profile.named_condition is:
>>
>> let named_condition label =
>>  Lwt_condition.create ~label ()
>>
>> Without, it will be:
>>
>> let named_condition _label = Lwt_condition.create ()
>
> This also sounds like the right order, and permits other tracing
> strategies in the future for Lwt.  Are you doing the mirage-platform
> conditional compilation via optcomp?

My plan is that only mirage-profile will use conditional compilation
and everything else will always depend on mirage-profile, but get the
calls optimised out by the compiler when tracing isn't being used.

Currently though I haven't implemented anything. I was thinking of
having two versions of profile.ml and only compiling the appropriate
one.

mirage-profile is currently using assemblage, so any suggestions on
the best way to do that are welcome. My current thought is to have a
flag saying whether you want profiling, and have OPAM set the flag
depending on the availablilty of the lwt.tracing ocamlfind package
(which the modified Lwt installs). Or should the build detect this
somehow?

If assemblage is too experimental for mirage-dev, I could also convert to oasis.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 27 15:37:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 15:37: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 1XimMD-0004Xj-5j; Mon, 27 Oct 2014 15:37:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XimMC-0004Xe-1c
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 15:37:20 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	94/AB-02696-FA66E445; Mon, 27 Oct 2014 15:37:19 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-15.tower-206.messagelabs.com!1414424238!8673996!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18908 invoked from network); 27 Oct 2014 15:37:18 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-15.tower-206.messagelabs.com with SMTP;
	27 Oct 2014 15:37:18 -0000
Received: (qmail 11247 invoked from network); 27 Oct 2014 15:37:17 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 27 Oct 2014 15:37:17 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 07826-09 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 15:37:15 +0000 (GMT)
Received: (qmail 11121 invoked by uid 599); 27 Oct 2014 15:37:15 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 15:37:15 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp3.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XimM4-0000wv-Se
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 15:37:13 +0000
Message-ID: <544E66A9.1060203@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 15:37:13 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I am looking for advices on debugging a Mirage unikernel with multiple 
tap devices for the following problems:

1. The same MAC address is assigned to all tap devices.
2. Calling TCPV4 create_connection function produces no traffic on 
virtual interfaces.

Program works fine for unix configuration.

Thanks.




This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 27 15:37:29 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 15:37: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 1XimMD-0004Xj-5j; Mon, 27 Oct 2014 15:37:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XimMC-0004Xe-1c
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 15:37:20 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	94/AB-02696-FA66E445; Mon, 27 Oct 2014 15:37:19 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-15.tower-206.messagelabs.com!1414424238!8673996!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18908 invoked from network); 27 Oct 2014 15:37:18 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-15.tower-206.messagelabs.com with SMTP;
	27 Oct 2014 15:37:18 -0000
Received: (qmail 11247 invoked from network); 27 Oct 2014 15:37:17 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 27 Oct 2014 15:37:17 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 07826-09 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 15:37:15 +0000 (GMT)
Received: (qmail 11121 invoked by uid 599); 27 Oct 2014 15:37:15 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 15:37:15 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp3.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XimM4-0000wv-Se
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 15:37:13 +0000
Message-ID: <544E66A9.1060203@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 15:37:13 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Subject: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I am looking for advices on debugging a Mirage unikernel with multiple 
tap devices for the following problems:

1. The same MAC address is assigned to all tap devices.
2. Calling TCPV4 create_connection function produces no traffic on 
virtual interfaces.

Program works fine for unix configuration.

Thanks.




This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 27 16:50:21 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 16:50: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 1XinUm-0000p7-E8; Mon, 27 Oct 2014 16:50:16 +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 1XinUl-0000p2-4V
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 16:50:15 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	61/DA-02683-6C77E445; Mon, 27 Oct 2014 16:50:14 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1414428613!11882649!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30357 invoked from network); 27 Oct 2014 16:50:14 -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; 27 Oct 2014 16:50:14 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b0cb369e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 16:53:16 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544E66A9.1060203@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 16:50:12 +0000
Message-Id: <8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
> 
> Hi all,
> 
> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
> 
> 1. The same MAC address is assigned to all tap devices.

Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file? 

> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.

A small reproducible program demonstrating the problem would help here.

thanks!
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 Oct 27 16:50:21 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 16:50: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 1XinUm-0000p7-E8; Mon, 27 Oct 2014 16:50:16 +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 1XinUl-0000p2-4V
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 16:50:15 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	61/DA-02683-6C77E445; Mon, 27 Oct 2014 16:50:14 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-31.messagelabs.com!1414428613!11882649!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30357 invoked from network); 27 Oct 2014 16:50:14 -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; 27 Oct 2014 16:50:14 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b0cb369e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 16:53:16 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544E66A9.1060203@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 16:50:12 +0000
Message-Id: <8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
> 
> Hi all,
> 
> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
> 
> 1. The same MAC address is assigned to all tap devices.

Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file? 

> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.

A small reproducible program demonstrating the problem would help here.

thanks!
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 Oct 27 19:02:11 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:02: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 1XipYN-00069I-48; Mon, 27 Oct 2014 19:02:07 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XipYL-00069D-HL
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:02:05 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	BC/12-02694-CA69E445; Mon, 27 Oct 2014 19:02:04 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-9.tower-31.messagelabs.com!1414436522!8168183!1
X-Originating-IP: [209.85.220.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19411 invoked from network); 27 Oct 2014 19:02:04 -0000
Received: from mail-vc0-f176.google.com (HELO mail-vc0-f176.google.com)
	(209.85.220.176)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 19:02:04 -0000
Received: by mail-vc0-f176.google.com with SMTP id hq11so2696438vcb.7
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 12:02:02 -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:content-type;
	bh=nNo0cWbqL1XGLIVlH7ZjP90I+6qknRWIKzRR+Yn/cdw=;
	b=IFd4ZYLkXf1btjYaw2dZSGLpB0lQTCbalvSmY3EuwN8Dvof8RURdFchEKW9MC3+1B6
	ewnBRR+YuaoELUyaF/uidaAxWRjtKUXytt3WGo8GbNYLtQwQEOQe94h9AZhj+x93KbaF
	rkobjQX5ciIc42mdCHMKJYN5GsHq7aE8viJvJGsnQh7hC6XR1+dPW97jqNBbjOE+eS+y
	GHAn6hsNjIp/CsTbEg0OD5EiwQBL2qEo9uS+oXZy0n5WglN9QwGpWhUwxj6FbKnsF2mm
	DmVOXqhphhfoLUOsHvSZy+kkbgwG05IzZYwe9bctcd/0Z54CYk5IF8Pjay84Ch0EInJx
	TUgQ==
X-Gm-Message-State: ALoCoQmMwSKnp9PZnUOORrBkYr+BvB//HlB2DeEfmzWRE3OCLI9FEYJ8J1dZNylFTwo5Bwo7iMS1
MIME-Version: 1.0
X-Received: by 10.53.5.37 with SMTP id cj5mr1176438vdd.50.1414436522462; Mon,
	27 Oct 2014 12:02:02 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Mon, 27 Oct 2014 12:02:02 -0700 (PDT)
In-Reply-To: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
References: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
Date: Mon, 27 Oct 2014 15:02:02 -0400
Message-ID: <CAHwFrZeZYQsF0QrYnRkP6RyL8-+kC1u7xj1fhGNQnOpJK+JMvg@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] problem with NET=socket and multiple
	connections?
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, Oct 24, 2014 at 3:09 PM, Len Maxwell <len@lnmx.org> wrote:
> Hello,
>
> I am seeing some unexpected behavior with --unix and NET=socket on
> Linux: it looks like the TCP server is not dealing well with multiple
> connections.
>

Looking at the code in mirage-tcpip/unix/tcpip_stack_socket.ml, the
listener loop does not accept the next connection until the previous
client callback has completed.  This did not look right to me, so I
tried the following:

--- a/unix/tcpip_stack_socket.ml
+++ b/unix/tcpip_stack_socket.ml
@@ -106,9 +106,12 @@ module Make(Console:V1_LWT.CONSOLE) = struct
         if true then loop () else return_unit in
       Lwt_unix.accept fd
       >>= fun (afd, _) ->
-      Lwt.catch
-        (fun () -> callback afd)
-        (fun _ -> return_unit)
+      Lwt.async (fun () ->
+        Lwt.catch
+          (fun () -> callback afd)
+          (fun _ -> return_unit)
+        );
+        return_unit
       >>= fun () ->
       continue ();

With this change, the client callback is handled in an async "thread",
while the listener immediately loops back to accept the next
connection.  My issues with mirage-skeleton/stackv4 and mirage-www (on
unix/socket) seem to be resolved.

However, I'm new to OCaml/Lwt/Mirage, and not too confident this is
the right fix.  I'd appreciate any input.

thanks

--
Len

_______________________________________________
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 Oct 27 19:02:11 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:02: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 1XipYN-00069I-48; Mon, 27 Oct 2014 19:02:07 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XipYL-00069D-HL
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:02:05 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	BC/12-02694-CA69E445; Mon, 27 Oct 2014 19:02:04 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-9.tower-31.messagelabs.com!1414436522!8168183!1
X-Originating-IP: [209.85.220.176]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19411 invoked from network); 27 Oct 2014 19:02:04 -0000
Received: from mail-vc0-f176.google.com (HELO mail-vc0-f176.google.com)
	(209.85.220.176)
	by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	27 Oct 2014 19:02:04 -0000
Received: by mail-vc0-f176.google.com with SMTP id hq11so2696438vcb.7
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 12:02:02 -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:content-type;
	bh=nNo0cWbqL1XGLIVlH7ZjP90I+6qknRWIKzRR+Yn/cdw=;
	b=IFd4ZYLkXf1btjYaw2dZSGLpB0lQTCbalvSmY3EuwN8Dvof8RURdFchEKW9MC3+1B6
	ewnBRR+YuaoELUyaF/uidaAxWRjtKUXytt3WGo8GbNYLtQwQEOQe94h9AZhj+x93KbaF
	rkobjQX5ciIc42mdCHMKJYN5GsHq7aE8viJvJGsnQh7hC6XR1+dPW97jqNBbjOE+eS+y
	GHAn6hsNjIp/CsTbEg0OD5EiwQBL2qEo9uS+oXZy0n5WglN9QwGpWhUwxj6FbKnsF2mm
	DmVOXqhphhfoLUOsHvSZy+kkbgwG05IzZYwe9bctcd/0Z54CYk5IF8Pjay84Ch0EInJx
	TUgQ==
X-Gm-Message-State: ALoCoQmMwSKnp9PZnUOORrBkYr+BvB//HlB2DeEfmzWRE3OCLI9FEYJ8J1dZNylFTwo5Bwo7iMS1
MIME-Version: 1.0
X-Received: by 10.53.5.37 with SMTP id cj5mr1176438vdd.50.1414436522462; Mon,
	27 Oct 2014 12:02:02 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Mon, 27 Oct 2014 12:02:02 -0700 (PDT)
In-Reply-To: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
References: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
Date: Mon, 27 Oct 2014 15:02:02 -0400
Message-ID: <CAHwFrZeZYQsF0QrYnRkP6RyL8-+kC1u7xj1fhGNQnOpJK+JMvg@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] problem with NET=socket and multiple
	connections?
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, Oct 24, 2014 at 3:09 PM, Len Maxwell <len@lnmx.org> wrote:
> Hello,
>
> I am seeing some unexpected behavior with --unix and NET=socket on
> Linux: it looks like the TCP server is not dealing well with multiple
> connections.
>

Looking at the code in mirage-tcpip/unix/tcpip_stack_socket.ml, the
listener loop does not accept the next connection until the previous
client callback has completed.  This did not look right to me, so I
tried the following:

--- a/unix/tcpip_stack_socket.ml
+++ b/unix/tcpip_stack_socket.ml
@@ -106,9 +106,12 @@ module Make(Console:V1_LWT.CONSOLE) = struct
         if true then loop () else return_unit in
       Lwt_unix.accept fd
       >>= fun (afd, _) ->
-      Lwt.catch
-        (fun () -> callback afd)
-        (fun _ -> return_unit)
+      Lwt.async (fun () ->
+        Lwt.catch
+          (fun () -> callback afd)
+          (fun _ -> return_unit)
+        );
+        return_unit
       >>= fun () ->
       continue ();

With this change, the client callback is handled in an async "thread",
while the listener immediately loops back to accept the next
connection.  My issues with mirage-skeleton/stackv4 and mirage-www (on
unix/socket) seem to be resolved.

However, I'm new to OCaml/Lwt/Mirage, and not too confident this is
the right fix.  I'd appreciate any input.

thanks

--
Len

_______________________________________________
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 Oct 27 19:04:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:04: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 1Xipb2-0006BG-F2; Mon, 27 Oct 2014 19:04:52 +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 1Xipb1-0006BB-Ev
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:04:51 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	C4/66-02696-2579E445; Mon, 27 Oct 2014 19:04:50 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414436689!4469547!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18519 invoked from network); 27 Oct 2014 19:04:49 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 19:04:49 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 42e78f59;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 19:07:52 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAHwFrZeZYQsF0QrYnRkP6RyL8-+kC1u7xj1fhGNQnOpJK+JMvg@mail.gmail.com>
Date: Mon, 27 Oct 2014 19:04:48 +0000
Message-Id: <C9106537-34B7-479F-99F8-39C2B37CBD92@recoil.org>
References: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
	<CAHwFrZeZYQsF0QrYnRkP6RyL8-+kC1u7xj1fhGNQnOpJK+JMvg@mail.gmail.com>
To: Len Maxwell <len@lnmx.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] problem with NET=socket and multiple
	connections?
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 27 Oct 2014, at 19:02, Len Maxwell <len@lnmx.org> wrote:
> 
> On Fri, Oct 24, 2014 at 3:09 PM, Len Maxwell <len@lnmx.org> wrote:
>> Hello,
>> 
>> I am seeing some unexpected behavior with --unix and NET=socket on
>> Linux: it looks like the TCP server is not dealing well with multiple
>> connections.
>> 
> 
> Looking at the code in mirage-tcpip/unix/tcpip_stack_socket.ml, the
> listener loop does not accept the next connection until the previous
> client callback has completed.  This did not look right to me, so I
> tried the following:
> 
> --- a/unix/tcpip_stack_socket.ml
> +++ b/unix/tcpip_stack_socket.ml
> @@ -106,9 +106,12 @@ module Make(Console:V1_LWT.CONSOLE) = struct
>         if true then loop () else return_unit in
>       Lwt_unix.accept fd
>>> = fun (afd, _) ->
> -      Lwt.catch
> -        (fun () -> callback afd)
> -        (fun _ -> return_unit)
> +      Lwt.async (fun () ->
> +        Lwt.catch
> +          (fun () -> callback afd)
> +          (fun _ -> return_unit)
> +        );
> +        return_unit
>>> = fun () ->
>       continue ();
> 
> With this change, the client callback is handled in an async "thread",
> while the listener immediately loops back to accept the next
> connection.  My issues with mirage-skeleton/stackv4 and mirage-www (on
> unix/socket) seem to be resolved.
> 
> However, I'm new to OCaml/Lwt/Mirage, and not too confident this is
> the right fix.  I'd appreciate any input.

Good detective work!  That does indeed look like the right fix to me.
(The socket backend is rarely used outside of debugging, but there's
no real reason it shouldn't be -- so fixes like this are most welcome).

If you submit a pull request to mirage/mirage-tcpip I'll test and merge
it.

Welcome to OCaml/Lwt/Mirage :-)

-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 Oct 27 19:04:52 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:04: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 1Xipb2-0006BG-F2; Mon, 27 Oct 2014 19:04:52 +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 1Xipb1-0006BB-Ev
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:04:51 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	C4/66-02696-2579E445; Mon, 27 Oct 2014 19:04:50 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414436689!4469547!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18519 invoked from network); 27 Oct 2014 19:04:49 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 19:04:49 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 42e78f59;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 19:07:52 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAHwFrZeZYQsF0QrYnRkP6RyL8-+kC1u7xj1fhGNQnOpJK+JMvg@mail.gmail.com>
Date: Mon, 27 Oct 2014 19:04:48 +0000
Message-Id: <C9106537-34B7-479F-99F8-39C2B37CBD92@recoil.org>
References: <CAHwFrZfHsboP2MktC0qx_hXW30_M2dDvSTiSRe3cks0Xf8f0gA@mail.gmail.com>
	<CAHwFrZeZYQsF0QrYnRkP6RyL8-+kC1u7xj1fhGNQnOpJK+JMvg@mail.gmail.com>
To: Len Maxwell <len@lnmx.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] problem with NET=socket and multiple
	connections?
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 27 Oct 2014, at 19:02, Len Maxwell <len@lnmx.org> wrote:
> 
> On Fri, Oct 24, 2014 at 3:09 PM, Len Maxwell <len@lnmx.org> wrote:
>> Hello,
>> 
>> I am seeing some unexpected behavior with --unix and NET=socket on
>> Linux: it looks like the TCP server is not dealing well with multiple
>> connections.
>> 
> 
> Looking at the code in mirage-tcpip/unix/tcpip_stack_socket.ml, the
> listener loop does not accept the next connection until the previous
> client callback has completed.  This did not look right to me, so I
> tried the following:
> 
> --- a/unix/tcpip_stack_socket.ml
> +++ b/unix/tcpip_stack_socket.ml
> @@ -106,9 +106,12 @@ module Make(Console:V1_LWT.CONSOLE) = struct
>         if true then loop () else return_unit in
>       Lwt_unix.accept fd
>>> = fun (afd, _) ->
> -      Lwt.catch
> -        (fun () -> callback afd)
> -        (fun _ -> return_unit)
> +      Lwt.async (fun () ->
> +        Lwt.catch
> +          (fun () -> callback afd)
> +          (fun _ -> return_unit)
> +        );
> +        return_unit
>>> = fun () ->
>       continue ();
> 
> With this change, the client callback is handled in an async "thread",
> while the listener immediately loops back to accept the next
> connection.  My issues with mirage-skeleton/stackv4 and mirage-www (on
> unix/socket) seem to be resolved.
> 
> However, I'm new to OCaml/Lwt/Mirage, and not too confident this is
> the right fix.  I'd appreciate any input.

Good detective work!  That does indeed look like the right fix to me.
(The socket backend is rarely used outside of debugging, but there's
no real reason it shouldn't be -- so fixes like this are most welcome).

If you submit a pull request to mirage/mirage-tcpip I'll test and merge
it.

Welcome to OCaml/Lwt/Mirage :-)

-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 Oct 27 19:29:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:29:02 +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 1XipyP-00071S-FO; Mon, 27 Oct 2014 19:29:01 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XipyO-00071N-Hj
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:29:00 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	FA/3C-02954-BFC9E445; Mon, 27 Oct 2014 19:28:59 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-12.tower-206.messagelabs.com!1414438139!12018488!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15098 invoked from network); 27 Oct 2014 19:28:59 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-12.tower-206.messagelabs.com with SMTP;
	27 Oct 2014 19:28:59 -0000
Received: (qmail 13416 invoked from network); 27 Oct 2014 19:28:57 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 27 Oct 2014 19:28:57 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11113-10 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 19:28:53 +0000 (GMT)
Received: (qmail 13397 invoked by uid 599); 27 Oct 2014 19:28:53 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 19:28:53 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp3.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1XipyH-0006nb-Rk; Mon, 27 Oct 2014 19:28:53 +0000
Message-ID: <544E9CF5.3000907@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 19:28:53 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
In-Reply-To: <8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


On 27/10/14 16:50, Anil Madhavapeddy wrote:
> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>> Hi all,
>>
>> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
>>
>> 1. The same MAC address is assigned to all tap devices.
> Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file?

vif = [ 
'mac=00:86:3E:51:27:4B,bridge=xenbr0','mac=00:86:3E:51:27:4C,bridge=tapbr1','mac=00:86:3E:51:27:4D,bridge=tapbr2' 
]

A one-to-one assignments of tap devices to vifs is necessary for the 
proper operation.

>
>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
> A small reproducible program demonstrating the problem would help here.

I found that this happens when NETWORK "listen" function is called on 
tap1 and tap2 devices. It looks to be a consequence of the first problem.
This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 27 19:29:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:29:02 +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 1XipyP-00071S-FO; Mon, 27 Oct 2014 19:29:01 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XipyO-00071N-Hj
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:29:00 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	FA/3C-02954-BFC9E445; Mon, 27 Oct 2014 19:28:59 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-12.tower-206.messagelabs.com!1414438139!12018488!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15098 invoked from network); 27 Oct 2014 19:28:59 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-12.tower-206.messagelabs.com with SMTP;
	27 Oct 2014 19:28:59 -0000
Received: (qmail 13416 invoked from network); 27 Oct 2014 19:28:57 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 27 Oct 2014 19:28:57 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11113-10 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 19:28:53 +0000 (GMT)
Received: (qmail 13397 invoked by uid 599); 27 Oct 2014 19:28:53 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 19:28:53 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp3.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1XipyH-0006nb-Rk; Mon, 27 Oct 2014 19:28:53 +0000
Message-ID: <544E9CF5.3000907@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 19:28:53 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
In-Reply-To: <8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


On 27/10/14 16:50, Anil Madhavapeddy wrote:
> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>> Hi all,
>>
>> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
>>
>> 1. The same MAC address is assigned to all tap devices.
> Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file?

vif = [ 
'mac=00:86:3E:51:27:4B,bridge=xenbr0','mac=00:86:3E:51:27:4C,bridge=tapbr1','mac=00:86:3E:51:27:4D,bridge=tapbr2' 
]

A one-to-one assignments of tap devices to vifs is necessary for the 
proper operation.

>
>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
> A small reproducible program demonstrating the problem would help here.

I found that this happens when NETWORK "listen" function is called on 
tap1 and tap2 devices. It looks to be a consequence of the first problem.
This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 27 19:30:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19: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 1Xipzn-00073B-M1; Mon, 27 Oct 2014 19:30:27 +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 1Xipzm-000736-6H
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:30:26 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	77/0E-03246-15D9E445; Mon, 27 Oct 2014 19:30:25 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1414438223!11835209!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.9 required=7.0 tests=BODY_RANDOM_LONG,
	MIME_QP_LONG_LINE,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9716 invoked from network); 27 Oct 2014 19:30:24 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 19:30:24 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id cab37672;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 19:33:26 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544E9CF5.3000907@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 19:30:21 +0000
Message-Id: <BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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 27 Oct 2014, at 19:28, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
> 
> 
> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>> Hi all,
>>> 
>>> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
>>> 
>>> 1. The same MAC address is assigned to all tap devices.
>> Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file?
> 
> vif = [ 'mac=00:86:3E:51:27:4B,bridge=xenbr0','mac=00:86:3E:51:27:4C,bridge=tapbr1','mac=00:86:3E:51:27:4D,bridge=tapbr2' ]
> 
> A one-to-one assignments of tap devices to vifs is necessary for the proper operation.
> 
>> 
>>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
>> A small reproducible program demonstrating the problem would help here.
> 
> I found that this happens when NETWORK "listen" function is called on tap1 and tap2 devices. It looks to be a consequence of the first problem.

So it doesn't happen with one VIF, and only when you have multiple network interfaces attached to the VM? 

-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 Oct 27 19:30:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19: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 1Xipzn-00073B-M1; Mon, 27 Oct 2014 19:30:27 +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 1Xipzm-000736-6H
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:30:26 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	77/0E-03246-15D9E445; Mon, 27 Oct 2014 19:30:25 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1414438223!11835209!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.9 required=7.0 tests=BODY_RANDOM_LONG,
	MIME_QP_LONG_LINE,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9716 invoked from network); 27 Oct 2014 19:30:24 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 19:30:24 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id cab37672;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 27 Oct 2014 19:33:26 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <544E9CF5.3000907@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 19:30:21 +0000
Message-Id: <BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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 27 Oct 2014, at 19:28, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
> 
> 
> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>> Hi all,
>>> 
>>> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
>>> 
>>> 1. The same MAC address is assigned to all tap devices.
>> Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file?
> 
> vif = [ 'mac=00:86:3E:51:27:4B,bridge=xenbr0','mac=00:86:3E:51:27:4C,bridge=tapbr1','mac=00:86:3E:51:27:4D,bridge=tapbr2' ]
> 
> A one-to-one assignments of tap devices to vifs is necessary for the proper operation.
> 
>> 
>>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
>> A small reproducible program demonstrating the problem would help here.
> 
> I found that this happens when NETWORK "listen" function is called on tap1 and tap2 devices. It looks to be a consequence of the first problem.

So it doesn't happen with one VIF, and only when you have multiple network interfaces attached to the VM? 

-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 Oct 27 19:40:49 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:40: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 1Xiq9n-0007Ga-5k; Mon, 27 Oct 2014 19:40:47 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1Xiq9m-0007GV-4m
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:40:46 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	EF/98-02984-DBF9E445; Mon, 27 Oct 2014 19:40:45 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-7.tower-27.messagelabs.com!1414438844!12780819!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32654 invoked from network); 27 Oct 2014 19:40:44 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-7.tower-27.messagelabs.com with SMTP;
	27 Oct 2014 19:40:44 -0000
Received: (qmail 21551 invoked from network); 27 Oct 2014 19:40:43 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 27 Oct 2014 19:40:43 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 19852-02 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 19:40:39 +0000 (GMT)
Received: (qmail 21515 invoked by uid 599); 27 Oct 2014 19:40:39 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 19:40:39 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp4.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1Xiq9e-00025U-IB; Mon, 27 Oct 2014 19:40:38 +0000
Message-ID: <544E9FB6.3020304@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 19:40:38 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
	<BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
In-Reply-To: <BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


On 27/10/14 19:30, Anil Madhavapeddy wrote:
>> On 27 Oct 2014, at 19:28, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>
>>
>> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>>> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>> Hi all,
>>>>
>>>> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
>>>>
>>>> 1. The same MAC address is assigned to all tap devices.
>>> Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file?
>> vif = [ 'mac=00:86:3E:51:27:4B,bridge=xenbr0','mac=00:86:3E:51:27:4C,bridge=tapbr1','mac=00:86:3E:51:27:4D,bridge=tapbr2' ]
>>
>> A one-to-one assignments of tap devices to vifs is necessary for the proper operation.
>>
>>>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
>>> A small reproducible program demonstrating the problem would help here.
>> I found that this happens when NETWORK "listen" function is called on tap1 and tap2 devices. It looks to be a consequence of the first problem.
> So it doesn't happen with one VIF, and only when you have multiple network interfaces attached to the VM?

Number of VIFs defined in xl file doesn't matter (if that is what you 
are asking). Switch says MAC address of tap devices are the first MAC 
defined (in my case, I can see tap1 and tap2 both have the MAC 
00:86:3E:51:27:4B.)


This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 27 19:40:49 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 19:40: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 1Xiq9n-0007Ga-5k; Mon, 27 Oct 2014 19:40:47 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1Xiq9m-0007GV-4m
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 19:40:46 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	EF/98-02984-DBF9E445; Mon, 27 Oct 2014 19:40:45 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-7.tower-27.messagelabs.com!1414438844!12780819!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32654 invoked from network); 27 Oct 2014 19:40:44 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-7.tower-27.messagelabs.com with SMTP;
	27 Oct 2014 19:40:44 -0000
Received: (qmail 21551 invoked from network); 27 Oct 2014 19:40:43 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 27 Oct 2014 19:40:43 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 19852-02 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 19:40:39 +0000 (GMT)
Received: (qmail 21515 invoked by uid 599); 27 Oct 2014 19:40:39 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 19:40:39 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp4.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1Xiq9e-00025U-IB; Mon, 27 Oct 2014 19:40:38 +0000
Message-ID: <544E9FB6.3020304@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 19:40:38 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
	<BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
In-Reply-To: <BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


On 27/10/14 19:30, Anil Madhavapeddy wrote:
>> On 27 Oct 2014, at 19:28, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>
>>
>> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>>> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>> Hi all,
>>>>
>>>> I am looking for advices on debugging a Mirage unikernel with multiple tap devices for the following problems:
>>>>
>>>> 1. The same MAC address is assigned to all tap devices.
>>> Could you please provide more details about the xl file you used to create the vif?  Did you set the `mac=xx` in the .xl file?
>> vif = [ 'mac=00:86:3E:51:27:4B,bridge=xenbr0','mac=00:86:3E:51:27:4C,bridge=tapbr1','mac=00:86:3E:51:27:4D,bridge=tapbr2' ]
>>
>> A one-to-one assignments of tap devices to vifs is necessary for the proper operation.
>>
>>>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
>>> A small reproducible program demonstrating the problem would help here.
>> I found that this happens when NETWORK "listen" function is called on tap1 and tap2 devices. It looks to be a consequence of the first problem.
> So it doesn't happen with one VIF, and only when you have multiple network interfaces attached to the VM?

Number of VIFs defined in xl file doesn't matter (if that is what you 
are asking). Switch says MAC address of tap devices are the first MAC 
defined (in my case, I can see tap1 and tap2 both have the MAC 
00:86:3E:51:27:4B.)


This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 27 21:14:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 21:14: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 1XircA-0001xg-Vk; Mon, 27 Oct 2014 21:14:10 +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 1XircA-0001xQ-1r
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 21:14:10 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	E3/6E-02698-1A5BE445; Mon, 27 Oct 2014 21:14:09 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-27.messagelabs.com!1414444448!12811019!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6919 invoked from network); 27 Oct 2014 21:14:08 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 21:14:08 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc17-cmbg14-2-0-cust360.5-4.cable.virginm.net
	([86.6.155.105]:60806 helo=[192.168.0.8])
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:AES128-SHA:128)
	id 1Xirc8-0001cv-qF (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Mon, 27 Oct 2014 21:14:08 +0000
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <2DC37FCB-02E2-40BB-BA7E-B30A4F6A750E@cam.ac.uk>
Date: Mon, 27 Oct 2014 21:14:15 +0000
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
Subject: [MirageOS-devel] Mirage fortnightly call - Tuesday 28th at 4pm GMT
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 folks, 

The next Mirage call will take place on Tuesday afternoon at 4pm GMT -- no more pesky BST, so check your timezones!
Calls are open to all and if you have anything you'd like to bring up, please add it to the agenda.

Agenda: https://github.com/mirage/mirage-www/wiki/Call-Agenda

GoToMeeting details are below but if there are any hiccups/delays then I'll switch to a public Google Hangout.  If that happens, I'll post the link here and also in the IRC channel (#mirage on freenode).

Join us at 4pm GMT tomorrow!

1.  Please join my meeting.
https://www1.gotomeeting.com/join/591890401

Dial in numbers (ask if you need a specific country):
United Kingdom: +44 (0) 20 3657 6778
United States: +1 (213) 493-0014
Access Code: 591-890-401
Audio PIN: Shown after joining the meeting


Best wishes,
Amir
_______________________________________________
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 Oct 27 21:14:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 21:14: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 1XircA-0001xg-Vk; Mon, 27 Oct 2014 21:14:10 +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 1XircA-0001xQ-1r
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 21:14:10 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	E3/6E-02698-1A5BE445; Mon, 27 Oct 2014 21:14:09 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-27.messagelabs.com!1414444448!12811019!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6919 invoked from network); 27 Oct 2014 21:14:08 -0000
Received: from ppsw-50.csi.cam.ac.uk (HELO ppsw-50.csi.cam.ac.uk)
	(131.111.8.150)
	by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 27 Oct 2014 21:14:08 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc17-cmbg14-2-0-cust360.5-4.cable.virginm.net
	([86.6.155.105]:60806 helo=[192.168.0.8])
	by ppsw-50.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:AES128-SHA:128)
	id 1Xirc8-0001cv-qF (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Mon, 27 Oct 2014 21:14:08 +0000
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <2DC37FCB-02E2-40BB-BA7E-B30A4F6A750E@cam.ac.uk>
Date: Mon, 27 Oct 2014 21:14:15 +0000
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
Subject: [MirageOS-devel] Mirage fortnightly call - Tuesday 28th at 4pm GMT
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 folks, 

The next Mirage call will take place on Tuesday afternoon at 4pm GMT -- no more pesky BST, so check your timezones!
Calls are open to all and if you have anything you'd like to bring up, please add it to the agenda.

Agenda: https://github.com/mirage/mirage-www/wiki/Call-Agenda

GoToMeeting details are below but if there are any hiccups/delays then I'll switch to a public Google Hangout.  If that happens, I'll post the link here and also in the IRC channel (#mirage on freenode).

Join us at 4pm GMT tomorrow!

1.  Please join my meeting.
https://www1.gotomeeting.com/join/591890401

Dial in numbers (ask if you need a specific country):
United Kingdom: +44 (0) 20 3657 6778
United States: +1 (213) 493-0014
Access Code: 591-890-401
Audio PIN: Shown after joining the meeting


Best wishes,
Amir
_______________________________________________
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 Oct 27 21:58:43 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 21:58: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 1XisJF-0003H6-CR; Mon, 27 Oct 2014 21:58:41 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XisJE-0003H1-5S
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 21:58:40 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
	EB/95-02830-F00CE445; Mon, 27 Oct 2014 21:58:39 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-3.tower-31.messagelabs.com!1414447116!11958642!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28833 invoked from network); 27 Oct 2014 21:58:37 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-3.tower-31.messagelabs.com with SMTP;
	27 Oct 2014 21:58:37 -0000
Received: (qmail 12043 invoked from network); 27 Oct 2014 21:58:34 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 27 Oct 2014 21:58:34 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11004-02 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 21:58:27 +0000 (GMT)
Received: (qmail 11998 invoked by uid 599); 27 Oct 2014 21:58:27 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 21:58:27 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XisJ2-0004JT-VV; Mon, 27 Oct 2014 21:58:28 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 21:58:27 +0000
Thread-Topic: [MirageOS-devel] Unikernel debugging
Thread-Index: Ac/yMSNU2Vk90lyzQti1MX+/mpBVqg==
Message-ID: <497D615F-E6FB-48E6-8B8A-EB6631A01909@nottingham.ac.uk>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
	<BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
	<544E9FB6.3020304@nottingham.ac.uk>
In-Reply-To: <544E9FB6.3020304@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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="===============8842336581718713898=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8842336581718713898==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 27 Oct 2014, at 20:40, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:

> On 27/10/14 19:30, Anil Madhavapeddy wrote:
>=20
>> On 27 Oct 2014, at 19:28, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>=20
>>> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>>>=20
>>>> On 27 Oct 2014, at 15:37, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>>> ...
>>>>> 2. Calling TCPV4 create_connection function produces no traffic on =
virtual interfaces.
>>>>=20
>>>> A small reproducible program demonstrating the problem would help =
here.
>>>=20
>>> I found that this happens when NETWORK "listen" function is called =
on tap1 and tap2 devices. It looks to be a consequence of the first =
problem.
>>=20
>> So it doesn't happen with one VIF, and only when you have multiple =
network interfaces attached to the VM?
>=20
> Number of VIFs defined in xl file doesn't matter (if that is what you=20=

> are asking). Switch says MAC address of tap devices are the first MAC=20=

> defined (in my case, I can see tap1 and tap2 both have the MAC=20
> 00:86:3E:51:27:4B.)

(might be easier if you could point us at the the github repo(s) for the =
original code and/or the minimal reproduction --cuts out a lot of wasted =
time where list members ask questions about the code you tried, and you =
have to write answers to varying degrees of detail :)

--=20
Cheers,

R.





--Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUTsADAAoJEOLF27JWwSg39Z4P/04WriC5L7Dra5QOEZyVPUjD
Aa6NFaNRfHduHAJu1J2/6yQO3MKu1cqLbemzkqzx1IZQsTYGd99lStxYBwghi8BC
zROcIVCHDjLA0agWMkkL9VHHGVXTQo8UhUkz/iNTSAcaTHbfZWY9EjUIGDtPkOj0
zjT2PrS43gqbGR7vrizP/t7xkg9E7POkvsShjjw1x49UmIwmfG+RLNnTNJzeCXSx
YIO8OsiuiSNoY6a+f29D7QI/mRZ81+ugTyXWKQFKBLH6tXj9/IN3CJ+MzE4F9qA8
/dBAFGXoN6jz7utObTgHVT/KP2enGAsmYcsXp3UrpuCfWYwBw1AIB/s2M+YaawvU
tAkYxkYQvlfQQTzkK56FBuCmTEnYuDZ25iCc9yIAf+Rck04jcub+IsjgUy/2uskS
MnMmZ0DIZrBBqJpnKmzsd9syT9LobsEl0AH5782LJBUnp0BAlztcE0/gqt5FHH+s
/ECtk+NtNSHsZc27/EhjFZ72/F/0S2yhXBFPM5oaiWHB7CyzaxsAxOjUM1YzYw16
ZqkJKH545u5BHU1txfZypd7DmJDdrEh2aMSmCqQW2F1Hm6s+A8TySr4axBJgJELn
SmRnrOu/95ZMZyr7/umRlShsuWl4cmEl0mGMohWzD2crU62RlkeMyHzZLg3nDU0M
1jMl+K/VTEDGHvxpzBdd
=Iwh6
-----END PGP SIGNATURE-----

--Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210--


--===============8842336581718713898==
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

--===============8842336581718713898==--


From mirageos-devel-bounces@lists.xenproject.org Mon Oct 27 21:58:43 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 Oct 2014 21:58: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 1XisJF-0003H6-CR; Mon, 27 Oct 2014 21:58:41 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XisJE-0003H1-5S
	for mirageos-devel@lists.xenproject.org; Mon, 27 Oct 2014 21:58:40 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
	EB/95-02830-F00CE445; Mon, 27 Oct 2014 21:58:39 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-3.tower-31.messagelabs.com!1414447116!11958642!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28833 invoked from network); 27 Oct 2014 21:58:37 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-3.tower-31.messagelabs.com with SMTP;
	27 Oct 2014 21:58:37 -0000
Received: (qmail 12043 invoked from network); 27 Oct 2014 21:58:34 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 27 Oct 2014 21:58:34 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11004-02 for <mirageos-devel@lists.xenproject.org>;
	Mon, 27 Oct 2014 21:58:27 +0000 (GMT)
Received: (qmail 11998 invoked by uid 599); 27 Oct 2014 21:58:27 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Mon, 27 Oct 2014 21:58:27 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XisJ2-0004JT-VV; Mon, 27 Oct 2014 21:58:28 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
Date: Mon, 27 Oct 2014 21:58:27 +0000
Thread-Topic: [MirageOS-devel] Unikernel debugging
Thread-Index: Ac/yMSNU2Vk90lyzQti1MX+/mpBVqg==
Message-ID: <497D615F-E6FB-48E6-8B8A-EB6631A01909@nottingham.ac.uk>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
	<BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
	<544E9FB6.3020304@nottingham.ac.uk>
In-Reply-To: <544E9FB6.3020304@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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="===============8842336581718713898=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============8842336581718713898==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 27 Oct 2014, at 20:40, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:

> On 27/10/14 19:30, Anil Madhavapeddy wrote:
>=20
>> On 27 Oct 2014, at 19:28, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>=20
>>> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>>>=20
>>>> On 27 Oct 2014, at 15:37, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>>> ...
>>>>> 2. Calling TCPV4 create_connection function produces no traffic on =
virtual interfaces.
>>>>=20
>>>> A small reproducible program demonstrating the problem would help =
here.
>>>=20
>>> I found that this happens when NETWORK "listen" function is called =
on tap1 and tap2 devices. It looks to be a consequence of the first =
problem.
>>=20
>> So it doesn't happen with one VIF, and only when you have multiple =
network interfaces attached to the VM?
>=20
> Number of VIFs defined in xl file doesn't matter (if that is what you=20=

> are asking). Switch says MAC address of tap devices are the first MAC=20=

> defined (in my case, I can see tap1 and tap2 both have the MAC=20
> 00:86:3E:51:27:4B.)

(might be easier if you could point us at the the github repo(s) for the =
original code and/or the minimal reproduction --cuts out a lot of wasted =
time where list members ask questions about the code you tried, and you =
have to write answers to varying degrees of detail :)

--=20
Cheers,

R.





--Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUTsADAAoJEOLF27JWwSg39Z4P/04WriC5L7Dra5QOEZyVPUjD
Aa6NFaNRfHduHAJu1J2/6yQO3MKu1cqLbemzkqzx1IZQsTYGd99lStxYBwghi8BC
zROcIVCHDjLA0agWMkkL9VHHGVXTQo8UhUkz/iNTSAcaTHbfZWY9EjUIGDtPkOj0
zjT2PrS43gqbGR7vrizP/t7xkg9E7POkvsShjjw1x49UmIwmfG+RLNnTNJzeCXSx
YIO8OsiuiSNoY6a+f29D7QI/mRZ81+ugTyXWKQFKBLH6tXj9/IN3CJ+MzE4F9qA8
/dBAFGXoN6jz7utObTgHVT/KP2enGAsmYcsXp3UrpuCfWYwBw1AIB/s2M+YaawvU
tAkYxkYQvlfQQTzkK56FBuCmTEnYuDZ25iCc9yIAf+Rck04jcub+IsjgUy/2uskS
MnMmZ0DIZrBBqJpnKmzsd9syT9LobsEl0AH5782LJBUnp0BAlztcE0/gqt5FHH+s
/ECtk+NtNSHsZc27/EhjFZ72/F/0S2yhXBFPM5oaiWHB7CyzaxsAxOjUM1YzYw16
ZqkJKH545u5BHU1txfZypd7DmJDdrEh2aMSmCqQW2F1Hm6s+A8TySr4axBJgJELn
SmRnrOu/95ZMZyr7/umRlShsuWl4cmEl0mGMohWzD2crU62RlkeMyHzZLg3nDU0M
1jMl+K/VTEDGHvxpzBdd
=Iwh6
-----END PGP SIGNATURE-----

--Apple-Mail=_08EDB19A-065B-47E5-8AC3-CEBBED9BE210--


--===============8842336581718713898==
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

--===============8842336581718713898==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 28 10:32:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 10:32: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 1Xj44D-00026u-VZ; Tue, 28 Oct 2014 10:31:57 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1Xj44B-00025z-Vl
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 10:31:56 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	44/24-02699-B907F445; Tue, 28 Oct 2014 10:31:55 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-11.tower-21.messagelabs.com!1414492314!13084603!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12711 invoked from network); 28 Oct 2014 10:31:54 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-11.tower-21.messagelabs.com with SMTP;
	28 Oct 2014 10:31:54 -0000
Received: (qmail 21931 invoked from network); 28 Oct 2014 10:31:52 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 28 Oct 2014 10:31:52 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 18305-09 for <mirageos-devel@lists.xenproject.org>;
	Tue, 28 Oct 2014 10:31:48 +0000 (GMT)
Received: (qmail 21646 invoked by uid 599); 28 Oct 2014 10:31:48 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 28 Oct 2014 10:31:48 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp4.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1Xj444-000363-GX; Tue, 28 Oct 2014 10:31:48 +0000
Message-ID: <544F7096.90603@nottingham.ac.uk>
Date: Tue, 28 Oct 2014 10:31:50 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
	<BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
	<544E9FB6.3020304@nottingham.ac.uk>
	<497D615F-E6FB-48E6-8B8A-EB6631A01909@nottingham.ac.uk>
In-Reply-To: <497D615F-E6FB-48E6-8B8A-EB6631A01909@nottingham.ac.uk>
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I have added a working piece of code that is easier to analyse to the 
following repo:

https://github.com/koleini/ml

Thanks.

On 27/10/14 21:58, Richard Mortier wrote:
> On 27 Oct 2014, at 20:40, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>
>> On 27/10/14 19:30, Anil Madhavapeddy wrote:
>>
>>> On 27 Oct 2014, at 19:28, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>
>>>> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>>>>
>>>>> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>>> ...
>>>>>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
>>>>> A small reproducible program demonstrating the problem would help here.
>>>> I found that this happens when NETWORK "listen" function is called on tap1 and tap2 devices. It looks to be a consequence of the first problem.
>>> So it doesn't happen with one VIF, and only when you have multiple network interfaces attached to the VM?
>> Number of VIFs defined in xl file doesn't matter (if that is what you
>> are asking). Switch says MAC address of tap devices are the first MAC
>> defined (in my case, I can see tap1 and tap2 both have the MAC
>> 00:86:3E:51:27:4B.)
> (might be easier if you could point us at the the github repo(s) for the original code and/or the minimal reproduction --cuts out a lot of wasted time where list members ask questions about the code you tried, and you have to write answers to varying degrees of detail :)
>

This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 28 10:32:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 10:32: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 1Xj44D-00026u-VZ; Tue, 28 Oct 2014 10:31:57 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1Xj44B-00025z-Vl
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 10:31:56 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	44/24-02699-B907F445; Tue, 28 Oct 2014 10:31:55 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-11.tower-21.messagelabs.com!1414492314!13084603!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12711 invoked from network); 28 Oct 2014 10:31:54 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-11.tower-21.messagelabs.com with SMTP;
	28 Oct 2014 10:31:54 -0000
Received: (qmail 21931 invoked from network); 28 Oct 2014 10:31:52 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 28 Oct 2014 10:31:52 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 18305-09 for <mirageos-devel@lists.xenproject.org>;
	Tue, 28 Oct 2014 10:31:48 +0000 (GMT)
Received: (qmail 21646 invoked by uid 599); 28 Oct 2014 10:31:48 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Tue, 28 Oct 2014 10:31:48 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp4.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1Xj444-000363-GX; Tue, 28 Oct 2014 10:31:48 +0000
Message-ID: <544F7096.90603@nottingham.ac.uk>
Date: Tue, 28 Oct 2014 10:31:50 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
References: <544E66A9.1060203@nottingham.ac.uk>
	<8D83ECEE-038A-4000-9C0D-8AF3C986D213@recoil.org>
	<544E9CF5.3000907@nottingham.ac.uk>
	<BB8E570D-1B71-4A10-9854-158EC0FAC48C@recoil.org>
	<544E9FB6.3020304@nottingham.ac.uk>
	<497D615F-E6FB-48E6-8B8A-EB6631A01909@nottingham.ac.uk>
In-Reply-To: <497D615F-E6FB-48E6-8B8A-EB6631A01909@nottingham.ac.uk>
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Unikernel debugging
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I have added a working piece of code that is easier to analyse to the 
following repo:

https://github.com/koleini/ml

Thanks.

On 27/10/14 21:58, Richard Mortier wrote:
> On 27 Oct 2014, at 20:40, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>
>> On 27/10/14 19:30, Anil Madhavapeddy wrote:
>>
>>> On 27 Oct 2014, at 19:28, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>
>>>> On 27/10/14 16:50, Anil Madhavapeddy wrote:
>>>>
>>>>> On 27 Oct 2014, at 15:37, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>>> ...
>>>>>> 2. Calling TCPV4 create_connection function produces no traffic on virtual interfaces.
>>>>> A small reproducible program demonstrating the problem would help here.
>>>> I found that this happens when NETWORK "listen" function is called on tap1 and tap2 devices. It looks to be a consequence of the first problem.
>>> So it doesn't happen with one VIF, and only when you have multiple network interfaces attached to the VM?
>> Number of VIFs defined in xl file doesn't matter (if that is what you
>> are asking). Switch says MAC address of tap devices are the first MAC
>> defined (in my case, I can see tap1 and tap2 both have the MAC
>> 00:86:3E:51:27:4B.)
> (might be easier if you could point us at the the github repo(s) for the original code and/or the minimal reproduction --cuts out a lot of wasted time where list members ask questions about the code you tried, and you have to write answers to varying degrees of detail :)
>

This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 28 11:14:26 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 11:14: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 1Xj4jI-0003Sq-Ko; Tue, 28 Oct 2014 11:14:24 +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 1Xj4jH-0003Sf-3F
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 11:14:23 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	FC/42-02953-E8A7F445; Tue, 28 Oct 2014 11:14:22 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-31.messagelabs.com!1414494861!12000557!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14875 invoked from network); 28 Oct 2014 11:14:21 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 11:14:21 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id c6bea25e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 11:17:26 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <0E9431E7-7282-4510-8D72-025C13DF78BC@recoil.org>
Date: Tue, 28 Oct 2014 11:14:19 +0000
Message-Id: <6BBC9F72-1719-46DA-8FB7-5CF6C7B4915A@recoil.org>
References: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
	<36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
	<0E9431E7-7282-4510-8D72-025C13DF78BC@recoil.org>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] linking hack considered harmful
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

Incidentally, I just noticed one good side-effect to the renaming of the global Console module to Console_unix and Console_xen.

Previously this code would compile:

module Client (C:CONSOLE) (S:STACKV4) = struct

  let start c s =
    Console.log_s c "Starting to resolve in 3s..." >>= fun () -> 
    OS.Time.sleep 3.0 >>= fun () ->
    <etc>

end

See the problem?  It'll now fail to link with a 'module Console not found', and should be

module Client (C:CONSOLE) (S:STACKV4) = struct

  let start c s =
    C.log_s c "Starting to resolve in 3s..." >>= fun () -> 
    OS.Time.sleep 3.0 >>= fun () ->
    <etc>

end

So it is parameterised across the Console functor now, and not a global module.

-anil

> On 20 Oct 2014, at 13:27, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
> Clock and Io_page, at least.
> 
> Anil
> 
> 
> 
>> On 20 Oct 2014, at 12:46, Richard Mortier <Richard.Mortier@nottingham.ac.uk> wrote:
>> 
>> cool! 
>> 
>> are there any other (core) modules where this linking hack was also being applied that will also need untangling like this?
>> 
>>> On 18 Oct 2014, at 14:43, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> 
>>> Dave and I have just untangled several build issues with mirage-console.  What was happening previously is that we had two packages: mirage-console-unix and mirage-console-xen, which both provided a Console module.  Since we never need to have both a Xen and a Unix console, we just selected the right ocamlfind package at link time to supply the correct one (aka the "linking hack").
>>> 
>>> When the console support became more sophisticated (support for multiple consoles), Dave factored out some functionality into a common package.  At this point, the linking hack became unworkable due to dependency issues.
>>> 
>>> What we've done in mirage-dev is to go back to a unified mirage-console package that provides these ocamlfind packages:
>>> - mirage-console       (module types)
>>> - mirage-console.proto (xen protocol)
>>> - mirage-console.unix  (Console_unix console with lwt.unix)
>>> - mirage-console.xen   (Console_xen console with xenstore/etc)
>>> 
>>> The mirage.2.0.0 frontend now aliases Console to Console_unix or Console_xen when generating main.ml, which seems a lot simpler than depending on which link-time module to use.
>>> 
>>> Any more build problems, let me or Dave know!
>>> 
>>> -anil
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>> 
>> 
>> -- 
>> Cheers,
>> 
>> R.
>> 
>> 
>> 
>> 
> 
> _______________________________________________
> 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 Tue Oct 28 11:14:26 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 11:14: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 1Xj4jI-0003Sq-Ko; Tue, 28 Oct 2014 11:14:24 +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 1Xj4jH-0003Sf-3F
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 11:14:23 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	FC/42-02953-E8A7F445; Tue, 28 Oct 2014 11:14:22 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-31.messagelabs.com!1414494861!12000557!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14875 invoked from network); 28 Oct 2014 11:14:21 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 11:14:21 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id c6bea25e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 11:17:26 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <0E9431E7-7282-4510-8D72-025C13DF78BC@recoil.org>
Date: Tue, 28 Oct 2014 11:14:19 +0000
Message-Id: <6BBC9F72-1719-46DA-8FB7-5CF6C7B4915A@recoil.org>
References: <60432F40-0FF0-42B2-9ADB-930DAC172768@recoil.org>
	<36A44A26-2E6E-42BA-ADFE-96C1D101402D@nottingham.ac.uk>
	<0E9431E7-7282-4510-8D72-025C13DF78BC@recoil.org>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] linking hack considered harmful
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

Incidentally, I just noticed one good side-effect to the renaming of the global Console module to Console_unix and Console_xen.

Previously this code would compile:

module Client (C:CONSOLE) (S:STACKV4) = struct

  let start c s =
    Console.log_s c "Starting to resolve in 3s..." >>= fun () -> 
    OS.Time.sleep 3.0 >>= fun () ->
    <etc>

end

See the problem?  It'll now fail to link with a 'module Console not found', and should be

module Client (C:CONSOLE) (S:STACKV4) = struct

  let start c s =
    C.log_s c "Starting to resolve in 3s..." >>= fun () -> 
    OS.Time.sleep 3.0 >>= fun () ->
    <etc>

end

So it is parameterised across the Console functor now, and not a global module.

-anil

> On 20 Oct 2014, at 13:27, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
> Clock and Io_page, at least.
> 
> Anil
> 
> 
> 
>> On 20 Oct 2014, at 12:46, Richard Mortier <Richard.Mortier@nottingham.ac.uk> wrote:
>> 
>> cool! 
>> 
>> are there any other (core) modules where this linking hack was also being applied that will also need untangling like this?
>> 
>>> On 18 Oct 2014, at 14:43, Anil Madhavapeddy <anil@recoil.org> wrote:
>>> 
>>> Dave and I have just untangled several build issues with mirage-console.  What was happening previously is that we had two packages: mirage-console-unix and mirage-console-xen, which both provided a Console module.  Since we never need to have both a Xen and a Unix console, we just selected the right ocamlfind package at link time to supply the correct one (aka the "linking hack").
>>> 
>>> When the console support became more sophisticated (support for multiple consoles), Dave factored out some functionality into a common package.  At this point, the linking hack became unworkable due to dependency issues.
>>> 
>>> What we've done in mirage-dev is to go back to a unified mirage-console package that provides these ocamlfind packages:
>>> - mirage-console       (module types)
>>> - mirage-console.proto (xen protocol)
>>> - mirage-console.unix  (Console_unix console with lwt.unix)
>>> - mirage-console.xen   (Console_xen console with xenstore/etc)
>>> 
>>> The mirage.2.0.0 frontend now aliases Console to Console_unix or Console_xen when generating main.ml, which seems a lot simpler than depending on which link-time module to use.
>>> 
>>> Any more build problems, let me or Dave know!
>>> 
>>> -anil
>>> _______________________________________________
>>> MirageOS-devel mailing list
>>> MirageOS-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>> 
>> 
>> -- 
>> Cheers,
>> 
>> R.
>> 
>> 
>> 
>> 
> 
> _______________________________________________
> 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 Tue Oct 28 21:34:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 21:34:02 +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 1XjEOn-0007zK-Gx; Tue, 28 Oct 2014 21:33:53 +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 1XjEOm-0007zF-Ky
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 21:33:52 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	5E/9F-11509-FBB00545; Tue, 28 Oct 2014 21:33:51 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414532031!10969279!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32184 invoked from network); 28 Oct 2014 21:33:51 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 21:33:51 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8a42a8e2;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 21:36:57 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <53B40088.40303@ocamlpro.com>
Date: Tue, 28 Oct 2014 21:33:49 +0000
Message-Id: <C487F562-F7E4-4E49-B718-1AAC6FDC3A66@recoil.org>
References: <87fvimpzpf.fsf@gmail.com>
	<D42791D0-819E-44E7-8586-CB76182B5A09@recoil.org>
	<53B40088.40303@ocamlpro.com>
To: Pierre Chambart <pierre.chambart@ocamlpro.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Whole Program Optimization in 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 2 Jul 2014, at 13:52, Pierre Chambart <pierre.chambart@ocamlpro.com> wrote:
> 
> On 01/07/2014 10:14, Anil Madhavapeddy wrote:
>> (no pressure, Pierre :-)
> None taken ;)
> 
> By the way, I can't help to remind that I enjoy a lot receiving
> segfaults reports. If any of you have some spare time to prove that my
> branch fail miserably:
> 
> opam repository add -k git chambart
> https://github.com/chambart/opam-compilers-repository.git
> opam switch install 4.01.0+flambda
> opam install ...
> 
> ./your_project
> ... segfault ...
> 
> In fact this is not that unstable (as long as you don't 'export
> EXPERIMENTS=true') anymore.

I don't know if anyone tried this originally, but I'm interested
in trying this out on ARM in particular (where speedups will become
really obvious due to the slower CPU).

Is that OPAM remote still the recommended location to try out -flambda?

-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 Oct 28 21:34:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 21:34:02 +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 1XjEOn-0007zK-Gx; Tue, 28 Oct 2014 21:33:53 +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 1XjEOm-0007zF-Ky
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 21:33:52 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	5E/9F-11509-FBB00545; Tue, 28 Oct 2014 21:33:51 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414532031!10969279!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32184 invoked from network); 28 Oct 2014 21:33:51 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 21:33:51 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8a42a8e2;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 21:36:57 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <53B40088.40303@ocamlpro.com>
Date: Tue, 28 Oct 2014 21:33:49 +0000
Message-Id: <C487F562-F7E4-4E49-B718-1AAC6FDC3A66@recoil.org>
References: <87fvimpzpf.fsf@gmail.com>
	<D42791D0-819E-44E7-8586-CB76182B5A09@recoil.org>
	<53B40088.40303@ocamlpro.com>
To: Pierre Chambart <pierre.chambart@ocamlpro.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Whole Program Optimization in 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 2 Jul 2014, at 13:52, Pierre Chambart <pierre.chambart@ocamlpro.com> wrote:
> 
> On 01/07/2014 10:14, Anil Madhavapeddy wrote:
>> (no pressure, Pierre :-)
> None taken ;)
> 
> By the way, I can't help to remind that I enjoy a lot receiving
> segfaults reports. If any of you have some spare time to prove that my
> branch fail miserably:
> 
> opam repository add -k git chambart
> https://github.com/chambart/opam-compilers-repository.git
> opam switch install 4.01.0+flambda
> opam install ...
> 
> ./your_project
> ... segfault ...
> 
> In fact this is not that unstable (as long as you don't 'export
> EXPERIMENTS=true') anymore.

I don't know if anyone tried this originally, but I'm interested
in trying this out on ARM in particular (where speedups will become
really obvious due to the slower CPU).

Is that OPAM remote still the recommended location to try out -flambda?

-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 Oct 28 21:45:44 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 21:45: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 1XjEaE-00084u-RP; Tue, 28 Oct 2014 21:45:42 +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 1XjEaD-00084p-94
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 21:45:41 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	45/BE-02725-48E00545; Tue, 28 Oct 2014 21:45:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-206.messagelabs.com!1414532739!12279020!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4912 invoked from network); 28 Oct 2014 21:45:39 -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; 28 Oct 2014 21:45:39 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id cd67c1e3;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 21:48:47 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <6D262DFB-EA5C-44CB-A908-FD0E28F7995D@citrix.com>
Date: Tue, 28 Oct 2014 21:45:38 +0000
Message-Id: <25D2AE7E-764E-44AE-B91E-AF0C5482D50B@recoil.org>
References: <DC5E0619-718D-4A85-A240-A0DD3FA0E118@recoil.org>
	<6D262DFB-EA5C-44CB-A908-FD0E28F7995D@citrix.com>
To: David Scott <Dave.Scott@citrix.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] github xen git mirror
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 26 May 2014, at 11:37, Dave Scott <Dave.Scott@citrix.com> wrote:
> 
> 
> On 26 May 2014, at 11:31, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
>> A bunch of us now have our own GitHub mirrors of Xen, so it's a good idea to have a proper mirror repository to fork from instead. 
>> 
>> Dave, I noticed your mirror scripts on mirage/xen have stopped.  Do you mind if I take that over and setup a cron job for it from the bactrian bot?
> 
> Oops, I lost those when I reinstalled the box they were running on.
> 
> Feel free to run cron somewhere else!

This is now running as an hourly cronjob on blobs.openmirage.org and mirroring to:

   https://github.com/mirage/xen

Thomas(L), we could also extend the cron mirroring to split out MiniOS in the future via git-filter-branch, if we need that to split out MiniOS in the future.

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 Oct 28 21:45:44 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 21:45: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 1XjEaE-00084u-RP; Tue, 28 Oct 2014 21:45:42 +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 1XjEaD-00084p-94
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 21:45:41 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	45/BE-02725-48E00545; Tue, 28 Oct 2014 21:45:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-206.messagelabs.com!1414532739!12279020!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4912 invoked from network); 28 Oct 2014 21:45:39 -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; 28 Oct 2014 21:45:39 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id cd67c1e3;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 21:48:47 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <6D262DFB-EA5C-44CB-A908-FD0E28F7995D@citrix.com>
Date: Tue, 28 Oct 2014 21:45:38 +0000
Message-Id: <25D2AE7E-764E-44AE-B91E-AF0C5482D50B@recoil.org>
References: <DC5E0619-718D-4A85-A240-A0DD3FA0E118@recoil.org>
	<6D262DFB-EA5C-44CB-A908-FD0E28F7995D@citrix.com>
To: David Scott <Dave.Scott@citrix.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] github xen git mirror
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 26 May 2014, at 11:37, Dave Scott <Dave.Scott@citrix.com> wrote:
> 
> 
> On 26 May 2014, at 11:31, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
>> A bunch of us now have our own GitHub mirrors of Xen, so it's a good idea to have a proper mirror repository to fork from instead. 
>> 
>> Dave, I noticed your mirror scripts on mirage/xen have stopped.  Do you mind if I take that over and setup a cron job for it from the bactrian bot?
> 
> Oops, I lost those when I reinstalled the box they were running on.
> 
> Feel free to run cron somewhere else!

This is now running as an hourly cronjob on blobs.openmirage.org and mirroring to:

   https://github.com/mirage/xen

Thomas(L), we could also extend the cron mirroring to split out MiniOS in the future via git-filter-branch, if we need that to split out MiniOS in the future.

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 Oct 28 22:21:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 22:21: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 1XjF8b-0000CH-M3; Tue, 28 Oct 2014 22:21:13 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjF8a-0000C1-5u
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 22:21:12 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	9F/4D-02699-7D610545; Tue, 28 Oct 2014 22:21:11 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-21.messagelabs.com!1414534870!9821829!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19389 invoked from network); 28 Oct 2014 22:21:10 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 22:21:10 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id ce6e48c9;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 22:24:17 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
Date: Tue, 28 Oct 2014 22:21:09 +0000
Message-Id: <232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 11:31, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 27 October 2014 11:22, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 27 Oct 2014, at 11:17, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> Note that everything should (in future) compile with an unmodified
>>> Lwt. Pinning the tracing version of Lwt is what will trigger
>>> everything to recompile with profiling support. So, getting this
>>> upstream shouldn't block anything (and might indeed be difficult),
>>> although if upstream wants to add a flag for it that would be great
>>> too.
>>> 
>>> This is a change to my previous plan of having Lwt depend on
>>> mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
>>> use any extended feature of Lwt you should go via profiling. e.g. in
>>> mirage-platform we have:
>>> 
>>> let ports = Array.init nr_events (fun port -> {
>>> counter = program_start;
>>> c = Profile.named_condition ("after-chn-" ^ string_of_int port)
>>> })
>>> 
>>> If Lwt.tracing is installed then Profile.named_condition is:
>>> 
>>> let named_condition label =
>>> Lwt_condition.create ~label ()
>>> 
>>> Without, it will be:
>>> 
>>> let named_condition _label = Lwt_condition.create ()
>> 
>> This also sounds like the right order, and permits other tracing
>> strategies in the future for Lwt.  Are you doing the mirage-platform
>> conditional compilation via optcomp?
> 
> My plan is that only mirage-profile will use conditional compilation
> and everything else will always depend on mirage-profile, but get the
> calls optimised out by the compiler when tracing isn't being used.
> 
> Currently though I haven't implemented anything. I was thinking of
> having two versions of profile.ml and only compiling the appropriate
> one.
> 
> mirage-profile is currently using assemblage, so any suggestions on
> the best way to do that are welcome. My current thought is to have a
> flag saying whether you want profiling, and have OPAM set the flag
> depending on the availablilty of the lwt.tracing ocamlfind package
> (which the modified Lwt installs). Or should the build detect this
> somehow?
> 
> If assemblage is too experimental for mirage-dev, I could also convert to oasis.

Assemblage is still undergoing 'rapid iteration', so I'd suggest
switching to OASIS until we have a more stable version.  ThomasG or
Daniel Buenzli can correct me if that's not accurate.

-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 Oct 28 22:21:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 22:21: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 1XjF8b-0000CH-M3; Tue, 28 Oct 2014 22:21:13 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjF8a-0000C1-5u
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 22:21:12 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	9F/4D-02699-7D610545; Tue, 28 Oct 2014 22:21:11 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-21.messagelabs.com!1414534870!9821829!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19389 invoked from network); 28 Oct 2014 22:21:10 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 22:21:10 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id ce6e48c9;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 22:24:17 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
Date: Tue, 28 Oct 2014 22:21:09 +0000
Message-Id: <232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 27 Oct 2014, at 11:31, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 27 October 2014 11:22, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 27 Oct 2014, at 11:17, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> Note that everything should (in future) compile with an unmodified
>>> Lwt. Pinning the tracing version of Lwt is what will trigger
>>> everything to recompile with profiling support. So, getting this
>>> upstream shouldn't block anything (and might indeed be difficult),
>>> although if upstream wants to add a flag for it that would be great
>>> too.
>>> 
>>> This is a change to my previous plan of having Lwt depend on
>>> mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
>>> use any extended feature of Lwt you should go via profiling. e.g. in
>>> mirage-platform we have:
>>> 
>>> let ports = Array.init nr_events (fun port -> {
>>> counter = program_start;
>>> c = Profile.named_condition ("after-chn-" ^ string_of_int port)
>>> })
>>> 
>>> If Lwt.tracing is installed then Profile.named_condition is:
>>> 
>>> let named_condition label =
>>> Lwt_condition.create ~label ()
>>> 
>>> Without, it will be:
>>> 
>>> let named_condition _label = Lwt_condition.create ()
>> 
>> This also sounds like the right order, and permits other tracing
>> strategies in the future for Lwt.  Are you doing the mirage-platform
>> conditional compilation via optcomp?
> 
> My plan is that only mirage-profile will use conditional compilation
> and everything else will always depend on mirage-profile, but get the
> calls optimised out by the compiler when tracing isn't being used.
> 
> Currently though I haven't implemented anything. I was thinking of
> having two versions of profile.ml and only compiling the appropriate
> one.
> 
> mirage-profile is currently using assemblage, so any suggestions on
> the best way to do that are welcome. My current thought is to have a
> flag saying whether you want profiling, and have OPAM set the flag
> depending on the availablilty of the lwt.tracing ocamlfind package
> (which the modified Lwt installs). Or should the build detect this
> somehow?
> 
> If assemblage is too experimental for mirage-dev, I could also convert to oasis.

Assemblage is still undergoing 'rapid iteration', so I'd suggest
switching to OASIS until we have a more stable version.  ThomasG or
Daniel Buenzli can correct me if that's not accurate.

-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 Oct 28 22:34:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 22:34: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 1XjFLK-0000Us-8J; Tue, 28 Oct 2014 22:34:22 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjFLI-0000Un-RZ
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 22:34:20 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	78/B2-02699-CE910545; Tue, 28 Oct 2014 22:34:20 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414535658!13289750!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6324 invoked from network); 28 Oct 2014 22:34:18 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 22:34:18 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 5e1ce007;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 22:37:25 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG_esB3RsU1HSjU7ymozvTD2neOr4h57h2sB0MSTgNkz7H9yEg@mail.gmail.com>
Date: Tue, 28 Oct 2014 22:34:17 +0000
Message-Id: <4CFFEBD6-2329-4181-81A8-96555473FC6C@recoil.org>
References: <CAG_esB3RsU1HSjU7ymozvTD2neOr4h57h2sB0MSTgNkz7H9yEg@mail.gmail.com>
To: David Scott <scott.dj@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] useful link re: HVM booting 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: multipart/mixed; boundary="===============6346259799701753696=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6346259799701753696==
Content-Type: multipart/alternative; boundary="Apple-Mail=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF"


--Apple-Mail=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

I've opened up a GitHub issue to track HVM booting:
https://github.com/mirage/mirage/issues/313 =
<https://github.com/mirage/mirage/issues/313>

Since it's coming up more frequently now... if anyone is interested =
and/or has more information to put in there, please update the issue.

-anil

> On 7 Oct 2014, at 13:58, David Scott <scott.dj@gmail.com> wrote:
>=20
>=20
> This is a useful intro to booting an HVM x86 kernel via grub:
>=20
> =
http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel=
 =
<http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kerne=
l>
>=20
> =
http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kernel=
-with-keyboard-and =
<http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kerne=
l-with-keyboard-and>
>=20
>=20
> --=20
> Dave Scott
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF
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"">I've opened up a GitHub issue to track HVM booting:<div =
class=3D""><a href=3D"https://github.com/mirage/mirage/issues/313" =
class=3D"">https://github.com/mirage/mirage/issues/313</a></div><div =
class=3D""><br class=3D""></div><div class=3D"">Since it's coming up =
more frequently now... if anyone is interested and/or has more =
information to put in there, please update the issue.</div><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 7 Oct 2014, at 13:58, David Scott &lt;<a =
href=3D"mailto:scott.dj@gmail.com" class=3D"">scott.dj@gmail.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
dir=3D"ltr" class=3D""><div class=3D""><br class=3D""></div>This is a =
useful intro to booting an HVM x86 kernel via grub:<div class=3D""><br =
class=3D""></div><div class=3D""><a =
href=3D"http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-=
a-kernel" =
class=3D"">http://arjunsreedharan.org/post/82710718100/kernel-101-lets-wri=
te-a-kernel</a></div><div class=3D""><br class=3D""></div><div =
class=3D""><a =
href=3D"http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-=
a-kernel-with-keyboard-and" =
class=3D"">http://arjunsreedharan.org/post/99370248137/kernel-201-lets-wri=
te-a-kernel-with-keyboard-and</a></div><div class=3D""><br clear=3D"all" =
class=3D""><div class=3D""><br class=3D""></div>-- <br class=3D"">Dave =
Scott
</div></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=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF--


--===============6346259799701753696==
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

--===============6346259799701753696==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 28 22:34:27 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 22:34: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 1XjFLK-0000Us-8J; Tue, 28 Oct 2014 22:34:22 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjFLI-0000Un-RZ
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 22:34:20 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	78/B2-02699-CE910545; Tue, 28 Oct 2014 22:34:20 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414535658!13289750!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6324 invoked from network); 28 Oct 2014 22:34:18 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 28 Oct 2014 22:34:18 -0000
Received: from [192.168.1.62] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 5e1ce007;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Tue, 28 Oct 2014 22:37:25 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG_esB3RsU1HSjU7ymozvTD2neOr4h57h2sB0MSTgNkz7H9yEg@mail.gmail.com>
Date: Tue, 28 Oct 2014 22:34:17 +0000
Message-Id: <4CFFEBD6-2329-4181-81A8-96555473FC6C@recoil.org>
References: <CAG_esB3RsU1HSjU7ymozvTD2neOr4h57h2sB0MSTgNkz7H9yEg@mail.gmail.com>
To: David Scott <scott.dj@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] useful link re: HVM booting 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: multipart/mixed; boundary="===============6346259799701753696=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6346259799701753696==
Content-Type: multipart/alternative; boundary="Apple-Mail=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF"


--Apple-Mail=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

I've opened up a GitHub issue to track HVM booting:
https://github.com/mirage/mirage/issues/313 =
<https://github.com/mirage/mirage/issues/313>

Since it's coming up more frequently now... if anyone is interested =
and/or has more information to put in there, please update the issue.

-anil

> On 7 Oct 2014, at 13:58, David Scott <scott.dj@gmail.com> wrote:
>=20
>=20
> This is a useful intro to booting an HVM x86 kernel via grub:
>=20
> =
http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel=
 =
<http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kerne=
l>
>=20
> =
http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kernel=
-with-keyboard-and =
<http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kerne=
l-with-keyboard-and>
>=20
>=20
> --=20
> Dave Scott
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--Apple-Mail=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF
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"">I've opened up a GitHub issue to track HVM booting:<div =
class=3D""><a href=3D"https://github.com/mirage/mirage/issues/313" =
class=3D"">https://github.com/mirage/mirage/issues/313</a></div><div =
class=3D""><br class=3D""></div><div class=3D"">Since it's coming up =
more frequently now... if anyone is interested and/or has more =
information to put in there, please update the issue.</div><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 7 Oct 2014, at 13:58, David Scott &lt;<a =
href=3D"mailto:scott.dj@gmail.com" class=3D"">scott.dj@gmail.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
dir=3D"ltr" class=3D""><div class=3D""><br class=3D""></div>This is a =
useful intro to booting an HVM x86 kernel via grub:<div class=3D""><br =
class=3D""></div><div class=3D""><a =
href=3D"http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-=
a-kernel" =
class=3D"">http://arjunsreedharan.org/post/82710718100/kernel-101-lets-wri=
te-a-kernel</a></div><div class=3D""><br class=3D""></div><div =
class=3D""><a =
href=3D"http://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-=
a-kernel-with-keyboard-and" =
class=3D"">http://arjunsreedharan.org/post/99370248137/kernel-201-lets-wri=
te-a-kernel-with-keyboard-and</a></div><div class=3D""><br clear=3D"all" =
class=3D""><div class=3D""><br class=3D""></div>-- <br class=3D"">Dave =
Scott
</div></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=_AF374614-7DC3-4EAA-8202-1FC0FD4C14DF--


--===============6346259799701753696==
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

--===============6346259799701753696==--


From mirageos-devel-bounces@lists.xenproject.org Tue Oct 28 22:37:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 22:37:02 +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 1XjFNu-0000Wh-J3; Tue, 28 Oct 2014 22:37:02 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <daniel.buenzli@erratique.ch>) id 1XjFNt-0000Wc-2N
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 22:37:01 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	3B/15-02954-C8A10545; Tue, 28 Oct 2014 22:37:00 +0000
X-Env-Sender: daniel.buenzli@erratique.ch
X-Msg-Ref: server-7.tower-206.messagelabs.com!1414535819!12363372!1
X-Originating-IP: [74.55.86.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNzQuNTUuODYuNzQgPT4gMzA4NTYz\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26848 invoked from network); 28 Oct 2014 22:36:59 -0000
Received: from mail6.webfaction.com (HELO smtp.webfaction.com) (74.55.86.74)
	by server-7.tower-206.messagelabs.com with SMTP;
	28 Oct 2014 22:36:59 -0000
Received: from [172.20.10.2] (17-236.197-178.cust.bluewin.ch [178.197.236.17])
	by smtp.webfaction.com (Postfix) with ESMTP id 8CF342078C04;
	Tue, 28 Oct 2014 22:36:56 +0000 (UTC)
Date: Tue, 28 Oct 2014 23:36:56 +0100
From: =?utf-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
In-Reply-To: <232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Disposition: inline
Cc: "=?utf-8?Q?mirageos-devel=40lists.xenproject.org?="
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

CgpMZSBtYXJkaSwgMjggb2N0b2JyZSAyMDE0IMOgIDIzOjIxLCBBbmlsIE1hZGhhdmFwZWRkeSBh
IMOpY3JpdCA6Cgo+IEFzc2VtYmxhZ2UgaXMgc3RpbGwgdW5kZXJnb2luZyAncmFwaWQgaXRlcmF0
aW9uJywgc28gSSdkIHN1Z2dlc3QKPiBzd2l0Y2hpbmcgdG8gT0FTSVMgdW50aWwgd2UgaGF2ZSBh
IG1vcmUgc3RhYmxlIHZlcnNpb24uIFRob21hc0cgb3IKPiBEYW5pZWwgQnVlbnpsaSBjYW4gY29y
cmVjdCBtZSBpZiB0aGF0J3Mgbm90IGFjY3VyYXRlLgoKVGhhdCdzIGFjY3VyYXRlLiBJZiB3ZSBh
Z3JlZSB3aXRoIFRob21hcyBvbiB0aGUgUFIgSSdtIGdvaW5nIHRvIG1ha2UgbmV4dCB3ZWVrLCB0
aGUgY3VycmVudCBBUEkgY29tcGxldGVseSBjaGFuZ2VzIGFuZCBhc3NlbWJsZS5tbCBmaWxlcyB3
aWxsIG5lZWQgcmV3cml0aW5nLiBXZSBuZWVkIHRpbWUgdG8gZGVzaWduIGEgZ3JlYXQgc3lzdGVt
IGFuZCBpdCdzIGJldHRlciBpZiB3ZSBkb24ndCBlbmN1bWJlciBvdXJzZWx2ZXMgd2l0aCB1c2Vy
cyBhdCB0aGUgbW9tZW50LgoKRGFuaWVsCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Tue Oct 28 22:37:02 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 28 Oct 2014 22:37:02 +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 1XjFNu-0000Wh-J3; Tue, 28 Oct 2014 22:37:02 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <daniel.buenzli@erratique.ch>) id 1XjFNt-0000Wc-2N
	for mirageos-devel@lists.xenproject.org; Tue, 28 Oct 2014 22:37:01 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	3B/15-02954-C8A10545; Tue, 28 Oct 2014 22:37:00 +0000
X-Env-Sender: daniel.buenzli@erratique.ch
X-Msg-Ref: server-7.tower-206.messagelabs.com!1414535819!12363372!1
X-Originating-IP: [74.55.86.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNzQuNTUuODYuNzQgPT4gMzA4NTYz\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26848 invoked from network); 28 Oct 2014 22:36:59 -0000
Received: from mail6.webfaction.com (HELO smtp.webfaction.com) (74.55.86.74)
	by server-7.tower-206.messagelabs.com with SMTP;
	28 Oct 2014 22:36:59 -0000
Received: from [172.20.10.2] (17-236.197-178.cust.bluewin.ch [178.197.236.17])
	by smtp.webfaction.com (Postfix) with ESMTP id 8CF342078C04;
	Tue, 28 Oct 2014 22:36:56 +0000 (UTC)
Date: Tue, 28 Oct 2014 23:36:56 +0100
From: =?utf-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
In-Reply-To: <232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Disposition: inline
Cc: "=?utf-8?Q?mirageos-devel=40lists.xenproject.org?="
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

CgpMZSBtYXJkaSwgMjggb2N0b2JyZSAyMDE0IMOgIDIzOjIxLCBBbmlsIE1hZGhhdmFwZWRkeSBh
IMOpY3JpdCA6Cgo+IEFzc2VtYmxhZ2UgaXMgc3RpbGwgdW5kZXJnb2luZyAncmFwaWQgaXRlcmF0
aW9uJywgc28gSSdkIHN1Z2dlc3QKPiBzd2l0Y2hpbmcgdG8gT0FTSVMgdW50aWwgd2UgaGF2ZSBh
IG1vcmUgc3RhYmxlIHZlcnNpb24uIFRob21hc0cgb3IKPiBEYW5pZWwgQnVlbnpsaSBjYW4gY29y
cmVjdCBtZSBpZiB0aGF0J3Mgbm90IGFjY3VyYXRlLgoKVGhhdCdzIGFjY3VyYXRlLiBJZiB3ZSBh
Z3JlZSB3aXRoIFRob21hcyBvbiB0aGUgUFIgSSdtIGdvaW5nIHRvIG1ha2UgbmV4dCB3ZWVrLCB0
aGUgY3VycmVudCBBUEkgY29tcGxldGVseSBjaGFuZ2VzIGFuZCBhc3NlbWJsZS5tbCBmaWxlcyB3
aWxsIG5lZWQgcmV3cml0aW5nLiBXZSBuZWVkIHRpbWUgdG8gZGVzaWduIGEgZ3JlYXQgc3lzdGVt
IGFuZCBpdCdzIGJldHRlciBpZiB3ZSBkb24ndCBlbmN1bWJlciBvdXJzZWx2ZXMgd2l0aCB1c2Vy
cyBhdCB0aGUgbW9tZW50LgoKRGFuaWVsCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Oct 29 00:11:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 00: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 1XjGqv-0001SF-LU; Wed, 29 Oct 2014 00:11:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pierre.chambart@ocamlpro.com>) id 1XjGqu-0001SA-Oj
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 00:11:04 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	0F/85-02559-79030545; Wed, 29 Oct 2014 00:11:03 +0000
X-Env-Sender: pierre.chambart@ocamlpro.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1414541463!13091024!1
X-Originating-IP: [138.231.136.39]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31909 invoked from network); 29 Oct 2014 00:11:03 -0000
Received: from redisdead.crans.org (HELO redisdead.crans.org) (138.231.136.39)
	by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 29 Oct 2014 00:11:03 -0000
Received: from [IPv6:2a01:240:fe00:801c:a288:b4ff:fe9c:b988] (unknown
	[IPv6:2a01:240:fe00:801c:a288:b4ff:fe9c:b988])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by redisdead.crans.org (Postfix) with ESMTPSA id 7511FAC;
	Wed, 29 Oct 2014 01:11:02 +0100 (CET)
Message-ID: <54503081.1080602@ocamlpro.com>
Date: Wed, 29 Oct 2014 01:10:41 +0100
From: Pierre Chambart <pierre.chambart@ocamlpro.com>
Organization: OcamlPro
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Icedove/31.1.2
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <87fvimpzpf.fsf@gmail.com>
	<D42791D0-819E-44E7-8586-CB76182B5A09@recoil.org>
	<53B40088.40303@ocamlpro.com>
	<C487F562-F7E4-4E49-B718-1AAC6FDC3A66@recoil.org>
In-Reply-To: <C487F562-F7E4-4E49-B718-1AAC6FDC3A66@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Whole Program Optimization in 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 28/10/2014 22:33, Anil Madhavapeddy wrote:
> On 2 Jul 2014, at 13:52, Pierre Chambart <pierre.chambart@ocamlpro.com> wrote:
>> On 01/07/2014 10:14, Anil Madhavapeddy wrote:
>>> (no pressure, Pierre :-)
>> None taken ;)
>>
>> By the way, I can't help to remind that I enjoy a lot receiving
>> segfaults reports. If any of you have some spare time to prove that my
>> branch fail miserably:
>>
>> opam repository add -k git chambart
>> https://github.com/chambart/opam-compilers-repository.git
>> opam switch install 4.01.0+flambda
>> opam install ...
>>
>> ./your_project
>> ... segfault ...
>>
>> In fact this is not that unstable (as long as you don't 'export
>> EXPERIMENTS=true') anymore.
> I don't know if anyone tried this originally, but I'm interested
> in trying this out on ARM in particular (where speedups will become
> really obvious due to the slower CPU).
>
> Is that OPAM remote still the recommended location to try out -flambda?
>
> -anil
Yes, I'm currently porting the patch set to trunk, but it's not done yet

_______________________________________________
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 Oct 29 00:11:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 00: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 1XjGqv-0001SF-LU; Wed, 29 Oct 2014 00:11:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <pierre.chambart@ocamlpro.com>) id 1XjGqu-0001SA-Oj
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 00:11:04 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	0F/85-02559-79030545; Wed, 29 Oct 2014 00:11:03 +0000
X-Env-Sender: pierre.chambart@ocamlpro.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1414541463!13091024!1
X-Originating-IP: [138.231.136.39]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31909 invoked from network); 29 Oct 2014 00:11:03 -0000
Received: from redisdead.crans.org (HELO redisdead.crans.org) (138.231.136.39)
	by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 29 Oct 2014 00:11:03 -0000
Received: from [IPv6:2a01:240:fe00:801c:a288:b4ff:fe9c:b988] (unknown
	[IPv6:2a01:240:fe00:801c:a288:b4ff:fe9c:b988])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by redisdead.crans.org (Postfix) with ESMTPSA id 7511FAC;
	Wed, 29 Oct 2014 01:11:02 +0100 (CET)
Message-ID: <54503081.1080602@ocamlpro.com>
Date: Wed, 29 Oct 2014 01:10:41 +0100
From: Pierre Chambart <pierre.chambart@ocamlpro.com>
Organization: OcamlPro
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Icedove/31.1.2
MIME-Version: 1.0
To: Anil Madhavapeddy <anil@recoil.org>
References: <87fvimpzpf.fsf@gmail.com>
	<D42791D0-819E-44E7-8586-CB76182B5A09@recoil.org>
	<53B40088.40303@ocamlpro.com>
	<C487F562-F7E4-4E49-B718-1AAC6FDC3A66@recoil.org>
In-Reply-To: <C487F562-F7E4-4E49-B718-1AAC6FDC3A66@recoil.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Whole Program Optimization in 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 28/10/2014 22:33, Anil Madhavapeddy wrote:
> On 2 Jul 2014, at 13:52, Pierre Chambart <pierre.chambart@ocamlpro.com> wrote:
>> On 01/07/2014 10:14, Anil Madhavapeddy wrote:
>>> (no pressure, Pierre :-)
>> None taken ;)
>>
>> By the way, I can't help to remind that I enjoy a lot receiving
>> segfaults reports. If any of you have some spare time to prove that my
>> branch fail miserably:
>>
>> opam repository add -k git chambart
>> https://github.com/chambart/opam-compilers-repository.git
>> opam switch install 4.01.0+flambda
>> opam install ...
>>
>> ./your_project
>> ... segfault ...
>>
>> In fact this is not that unstable (as long as you don't 'export
>> EXPERIMENTS=true') anymore.
> I don't know if anyone tried this originally, but I'm interested
> in trying this out on ARM in particular (where speedups will become
> really obvious due to the slower CPU).
>
> Is that OPAM remote still the recommended location to try out -flambda?
>
> -anil
Yes, I'm currently porting the patch set to trunk, but it's not done yet

_______________________________________________
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 Oct 29 03:06:03 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 03:06: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 1XjJa6-0008TU-SC; Wed, 29 Oct 2014 03:05:54 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>) id 1XjJa5-0008TE-5L
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 03:05:53 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	B7/1D-02704-09950545; Wed, 29 Oct 2014 03:05:52 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1414551951!12316518!1
X-Originating-IP: [209.85.215.46]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25189 invoked from network); 29 Oct 2014 03:05:51 -0000
Received: from mail-la0-f46.google.com (HELO mail-la0-f46.google.com)
	(209.85.215.46)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Oct 2014 03:05:51 -0000
Received: by mail-la0-f46.google.com with SMTP id hs14so1801476lab.33
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 28 Oct 2014 20:05:51 -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=6dKTdJ4/0+95NRxGxfUaNoay3kuxQbj94rHRhYAx2/Y=;
	b=ALvaNcUSHGxBgFNB45LBq03+6xMj+k8mNcNu2K13Grfxa8j655qRjpv4M7NVCYmF1/
	C1HR1j2vjCFFSosgsQ8K+uMze2mek0U1+Gb6Xm8tvvz4Ll3yudrvTu0a6h2lZPBp/2xi
	ZPjsYiDV1MXCdBKVARuU/ElTAIOxjvktX1XkrD/KtBa+awlONIFsVWSMBkZ6ifLxSEVM
	RrdmwmUMRM2aXRtAf81++TlWvcAw9heLDPHmql8Ztp2umKM+cMujE2KVxywbCUf00IjK
	kkUjbXUtYg7PmJQkp/o+dHffyk1E7dVoayvO8k60rmA5oggQCSV5qc80PSHGE591edx3
	/3Fg==
MIME-Version: 1.0
X-Received: by 10.112.247.43 with SMTP id yb11mr8170548lbc.51.1414551950987;
	Tue, 28 Oct 2014 20:05:50 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Tue, 28 Oct 2014 20:05:50 -0700 (PDT)
In-Reply-To: <CAHehzX3YOT1AyWPhdJUZFT2_dG7DGUyM9TEK7FkQVm4qVGzwsw@mail.gmail.com>
References: <CAHehzX3YOT1AyWPhdJUZFT2_dG7DGUyM9TEK7FkQVm4qVGzwsw@mail.gmail.com>
Date: Tue, 28 Oct 2014 23:05:50 -0400
X-Google-Sender-Auth: qtLqBZDQz7jduwvGG4L2-UO-JKU
Message-ID: <CAHehzX0_MP7x62rpO738GcW_egNS-OhKrwb6HUy7TBSp8QQeoA@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: Russ Pavlicek <russell.pavlicek@xenproject.org>
Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>, xen-api@lists.xen.org,
	xs-devel@lists.xenserver.org,
	mirageos-devel@lists.xenproject.org, xen-devel@lists.xen.org
Subject: Re: [MirageOS-devel] Announcing Xen Project Test Day for 4.5 RC1 on
	Oct 29
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

A reminder: Test Day is here!  Join in today, October 29, with testing 4.5 RC1.

Use the links below and join in on #xentest on Freenode IRC.

On Wed, Oct 22, 2014 at 6:21 PM, Russ Pavlicek
<russell.pavlicek@xenproject.org> wrote:
> Folks,
>
> Next Wednesday, October 29, is our first Test Day for the 4.5 release
> cycle. Release Candidate 1 will be available for assessment.  Now is
> the time to see if the upcoming release of the Xen Project Hypervisor
> will work in your environment.
>
> Information about testing this release can be found here:
> http://wiki.xenproject.org/wiki/Xen_4.5_RC1_test_instructions
>
> To learn more about Test Days, check out:
> http://wiki.xenproject.org/wiki/Xen_Project_Test_Days
>
> Also, to facilitate this Test Day, the Document Day originally
> scheduled for this date will be postponed one week until November 5.
> Join us on that day to help document how Xen Project can be integrated
> into other solutions.
>
> See you in #xentest on IRC next Wednesday for Test Day.
>
> Russ

_______________________________________________
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 Oct 29 03:06:03 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 03:06: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 1XjJa6-0008TU-SC; Wed, 29 Oct 2014 03:05:54 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>) id 1XjJa5-0008TE-5L
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 03:05:53 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	B7/1D-02704-09950545; Wed, 29 Oct 2014 03:05:52 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1414551951!12316518!1
X-Originating-IP: [209.85.215.46]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25189 invoked from network); 29 Oct 2014 03:05:51 -0000
Received: from mail-la0-f46.google.com (HELO mail-la0-f46.google.com)
	(209.85.215.46)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Oct 2014 03:05:51 -0000
Received: by mail-la0-f46.google.com with SMTP id hs14so1801476lab.33
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 28 Oct 2014 20:05:51 -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=6dKTdJ4/0+95NRxGxfUaNoay3kuxQbj94rHRhYAx2/Y=;
	b=ALvaNcUSHGxBgFNB45LBq03+6xMj+k8mNcNu2K13Grfxa8j655qRjpv4M7NVCYmF1/
	C1HR1j2vjCFFSosgsQ8K+uMze2mek0U1+Gb6Xm8tvvz4Ll3yudrvTu0a6h2lZPBp/2xi
	ZPjsYiDV1MXCdBKVARuU/ElTAIOxjvktX1XkrD/KtBa+awlONIFsVWSMBkZ6ifLxSEVM
	RrdmwmUMRM2aXRtAf81++TlWvcAw9heLDPHmql8Ztp2umKM+cMujE2KVxywbCUf00IjK
	kkUjbXUtYg7PmJQkp/o+dHffyk1E7dVoayvO8k60rmA5oggQCSV5qc80PSHGE591edx3
	/3Fg==
MIME-Version: 1.0
X-Received: by 10.112.247.43 with SMTP id yb11mr8170548lbc.51.1414551950987;
	Tue, 28 Oct 2014 20:05:50 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Tue, 28 Oct 2014 20:05:50 -0700 (PDT)
In-Reply-To: <CAHehzX3YOT1AyWPhdJUZFT2_dG7DGUyM9TEK7FkQVm4qVGzwsw@mail.gmail.com>
References: <CAHehzX3YOT1AyWPhdJUZFT2_dG7DGUyM9TEK7FkQVm4qVGzwsw@mail.gmail.com>
Date: Tue, 28 Oct 2014 23:05:50 -0400
X-Google-Sender-Auth: qtLqBZDQz7jduwvGG4L2-UO-JKU
Message-ID: <CAHehzX0_MP7x62rpO738GcW_egNS-OhKrwb6HUy7TBSp8QQeoA@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: Russ Pavlicek <russell.pavlicek@xenproject.org>
Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>, xen-api@lists.xen.org,
	xs-devel@lists.xenserver.org,
	mirageos-devel@lists.xenproject.org, xen-devel@lists.xen.org
Subject: Re: [MirageOS-devel] Announcing Xen Project Test Day for 4.5 RC1 on
	Oct 29
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

A reminder: Test Day is here!  Join in today, October 29, with testing 4.5 RC1.

Use the links below and join in on #xentest on Freenode IRC.

On Wed, Oct 22, 2014 at 6:21 PM, Russ Pavlicek
<russell.pavlicek@xenproject.org> wrote:
> Folks,
>
> Next Wednesday, October 29, is our first Test Day for the 4.5 release
> cycle. Release Candidate 1 will be available for assessment.  Now is
> the time to see if the upcoming release of the Xen Project Hypervisor
> will work in your environment.
>
> Information about testing this release can be found here:
> http://wiki.xenproject.org/wiki/Xen_4.5_RC1_test_instructions
>
> To learn more about Test Days, check out:
> http://wiki.xenproject.org/wiki/Xen_Project_Test_Days
>
> Also, to facilitate this Test Day, the Document Day originally
> scheduled for this date will be postponed one week until November 5.
> Join us on that day to help document how Xen Project can be integrated
> into other solutions.
>
> See you in #xentest on IRC next Wednesday for Test Day.
>
> Russ

_______________________________________________
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 Oct 29 09:52:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 09:52: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 1XjPvk-0000d3-K5; Wed, 29 Oct 2014 09:52:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XjPvj-0000cy-Jn
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 09:52:39 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	A6/D3-02952-6E8B0545; Wed, 29 Oct 2014 09:52:38 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414576358!13381230!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_EXCESS_QP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11243 invoked from network); 29 Oct 2014 09:52:38 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Oct 2014 09:52:38 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:58444)
	by ppsw-40.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
	with esmtp id 1XjPvi-0002z8-jH (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <ns441@cam.ac.uk>); Wed, 29 Oct 2014 09:52:38 +0000
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1XjPvh-0011s2-VN (Exim
	4.80_167-5a66dd3)
	for mirageos-devel@lists.xenproject.org (return-path <ns441@cam.ac.uk>);
	Wed, 29 Oct 2014 09:52:38 +0000
Received: from dhcp-172-17-239-235.eduroam.wireless.private.cam.ac.uk
	([172.17.239.235]) by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Wed, 29 Oct 2014 09:52:37 +0000
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Wed, 29 Oct 2014 09:52:37 +0000
From: Nik Sultana <ns441@cam.ac.uk>
To: mirageos-devel@lists.xenproject.org
Message-ID: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Subject: [MirageOS-devel] =?utf-8?q?is=5Fmirage=5Fbroken_on_openmirage=2Eo?=
	=?utf-8?q?rg?=
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all, one of the items discussed in yesterday's call was about having 
a more visible outcome for is_mirage_broken [1] -- the service that 
tries to build a set of mirage applications for different targets.

Currently, it generates a Markdown file summarising the outcome of each 
build attempt [2]. One idea was to use this Markdown on a page served by 
openmirage.com

I experimented with this in a change to mirage-www [2] which, unless I'm 
mistaken, generates the image that serves openmirage.com. The change 
consists of an additional wiki page on openmirage.org that contains the 
Markdown generated by is-mirage-broken, as can be seen from the diff 
[2].

I'm writing to poll the list for your thoughts on whether this is a 
reasonable change.

If I get the go-ahead, I can modify crons.sh (the main script) in 
is-mirage-broken to push the generated Markdown file to our mirage-www 
repo, to update the wiki page. There is some implicit git state that the 
script relies upon (i.e., which repository is being pushed to) that I'd 
need to make explicit (since the script would be dealing with two, not 
one, repositories after this change: is-mirage-broken and mirage-www).

Best wishes,
Nik

[1] https://github.com/mirage/is-mirage-broken/
[2] 
https://github.com/mirage/is-mirage-broken/blob/master/logs/README.md
[3] 
https://github.com/niksu/mirage-www/commit/cf7dc0947d1d356b1aea5ca2ed709042d33d96c9


_______________________________________________
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 Oct 29 09:52:48 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 09:52: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 1XjPvk-0000d3-K5; Wed, 29 Oct 2014 09:52:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XjPvj-0000cy-Jn
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 09:52:39 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	A6/D3-02952-6E8B0545; Wed, 29 Oct 2014 09:52:38 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414576358!13381230!1
X-Originating-IP: [131.111.8.140]
X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_EXCESS_QP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11243 invoked from network); 29 Oct 2014 09:52:38 -0000
Received: from ppsw-40.csi.cam.ac.uk (HELO ppsw-40.csi.cam.ac.uk)
	(131.111.8.140)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Oct 2014 09:52:38 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:58444)
	by ppsw-40.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.136]:25)
	with esmtp id 1XjPvi-0002z8-jH (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <ns441@cam.ac.uk>); Wed, 29 Oct 2014 09:52:38 +0000
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1XjPvh-0011s2-VN (Exim
	4.80_167-5a66dd3)
	for mirageos-devel@lists.xenproject.org (return-path <ns441@cam.ac.uk>);
	Wed, 29 Oct 2014 09:52:38 +0000
Received: from dhcp-172-17-239-235.eduroam.wireless.private.cam.ac.uk
	([172.17.239.235]) by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Wed, 29 Oct 2014 09:52:37 +0000
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Wed, 29 Oct 2014 09:52:37 +0000
From: Nik Sultana <ns441@cam.ac.uk>
To: mirageos-devel@lists.xenproject.org
Message-ID: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Subject: [MirageOS-devel] =?utf-8?q?is=5Fmirage=5Fbroken_on_openmirage=2Eo?=
	=?utf-8?q?rg?=
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all, one of the items discussed in yesterday's call was about having 
a more visible outcome for is_mirage_broken [1] -- the service that 
tries to build a set of mirage applications for different targets.

Currently, it generates a Markdown file summarising the outcome of each 
build attempt [2]. One idea was to use this Markdown on a page served by 
openmirage.com

I experimented with this in a change to mirage-www [2] which, unless I'm 
mistaken, generates the image that serves openmirage.com. The change 
consists of an additional wiki page on openmirage.org that contains the 
Markdown generated by is-mirage-broken, as can be seen from the diff 
[2].

I'm writing to poll the list for your thoughts on whether this is a 
reasonable change.

If I get the go-ahead, I can modify crons.sh (the main script) in 
is-mirage-broken to push the generated Markdown file to our mirage-www 
repo, to update the wiki page. There is some implicit git state that the 
script relies upon (i.e., which repository is being pushed to) that I'd 
need to make explicit (since the script would be dealing with two, not 
one, repositories after this change: is-mirage-broken and mirage-www).

Best wishes,
Nik

[1] https://github.com/mirage/is-mirage-broken/
[2] 
https://github.com/mirage/is-mirage-broken/blob/master/logs/README.md
[3] 
https://github.com/niksu/mirage-www/commit/cf7dc0947d1d356b1aea5ca2ed709042d33d96c9


_______________________________________________
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 Oct 29 10:36:44 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 10:36: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 1XjQcM-0001oU-Qj; Wed, 29 Oct 2014 10:36:42 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjQcL-0001oF-Gb
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 10:36:41 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	10/FF-02699-833C0545; Wed, 29 Oct 2014 10:36:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-14.tower-21.messagelabs.com!1414579000!13387148!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	MIME_QP_LONG_LINE,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28020 invoked from network); 29 Oct 2014 10:36:40 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-14.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Oct 2014 10:36:40 -0000
Received: from [172.17.170.205] (global-1-27.nat.csx.cam.ac.uk
	[131.111.184.27]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d9aa6dbd;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 29 Oct 2014 10:39:48 +0000 (GMT)
References: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
Mime-Version: 1.0 (1.0)
In-Reply-To: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
Message-Id: <CAE18EFB-D9F3-4298-A358-86C979D3DA2F@recoil.org>
X-Mailer: iPhone Mail (12A405)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Wed, 29 Oct 2014 10:36:38 +0000
To: Nik Sultana <ns441@cam.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] is_mirage_broken on openmirage.org
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

That sounds good. If you install the GitHub OPAM package, there is a command line utility that creates a pull request. If one is only created when the status changes, that should be pretty low traffic (I hope).

Anil



> On 29 Oct 2014, at 09:52, Nik Sultana <ns441@cam.ac.uk> wrote:
> 
> Hi all, one of the items discussed in yesterday's call was about having a more visible outcome for is_mirage_broken [1] -- the service that tries to build a set of mirage applications for different targets.
> 
> Currently, it generates a Markdown file summarising the outcome of each build attempt [2]. One idea was to use this Markdown on a page served by openmirage.com
> 
> I experimented with this in a change to mirage-www [2] which, unless I'm mistaken, generates the image that serves openmirage.com. The change consists of an additional wiki page on openmirage.org that contains the Markdown generated by is-mirage-broken, as can be seen from the diff [2].
> 
> I'm writing to poll the list for your thoughts on whether this is a reasonable change.
> 
> If I get the go-ahead, I can modify crons.sh (the main script) in is-mirage-broken to push the generated Markdown file to our mirage-www repo, to update the wiki page. There is some implicit git state that the script relies upon (i.e., which repository is being pushed to) that I'd need to make explicit (since the script would be dealing with two, not one, repositories after this change: is-mirage-broken and mirage-www).
> 
> Best wishes,
> Nik
> 
> [1] https://github.com/mirage/is-mirage-broken/
> [2] https://github.com/mirage/is-mirage-broken/blob/master/logs/README.md
> [3] https://github.com/niksu/mirage-www/commit/cf7dc0947d1d356b1aea5ca2ed709042d33d96c9
> 
> 
> _______________________________________________
> 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 Wed Oct 29 10:36:44 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 10:36: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 1XjQcM-0001oU-Qj; Wed, 29 Oct 2014 10:36:42 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjQcL-0001oF-Gb
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 10:36:41 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	10/FF-02699-833C0545; Wed, 29 Oct 2014 10:36:40 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-14.tower-21.messagelabs.com!1414579000!13387148!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	MIME_QP_LONG_LINE,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28020 invoked from network); 29 Oct 2014 10:36:40 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-14.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Oct 2014 10:36:40 -0000
Received: from [172.17.170.205] (global-1-27.nat.csx.cam.ac.uk
	[131.111.184.27]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d9aa6dbd;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 29 Oct 2014 10:39:48 +0000 (GMT)
References: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
Mime-Version: 1.0 (1.0)
In-Reply-To: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
Message-Id: <CAE18EFB-D9F3-4298-A358-86C979D3DA2F@recoil.org>
X-Mailer: iPhone Mail (12A405)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Wed, 29 Oct 2014 10:36:38 +0000
To: Nik Sultana <ns441@cam.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] is_mirage_broken on openmirage.org
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

That sounds good. If you install the GitHub OPAM package, there is a command line utility that creates a pull request. If one is only created when the status changes, that should be pretty low traffic (I hope).

Anil



> On 29 Oct 2014, at 09:52, Nik Sultana <ns441@cam.ac.uk> wrote:
> 
> Hi all, one of the items discussed in yesterday's call was about having a more visible outcome for is_mirage_broken [1] -- the service that tries to build a set of mirage applications for different targets.
> 
> Currently, it generates a Markdown file summarising the outcome of each build attempt [2]. One idea was to use this Markdown on a page served by openmirage.com
> 
> I experimented with this in a change to mirage-www [2] which, unless I'm mistaken, generates the image that serves openmirage.com. The change consists of an additional wiki page on openmirage.org that contains the Markdown generated by is-mirage-broken, as can be seen from the diff [2].
> 
> I'm writing to poll the list for your thoughts on whether this is a reasonable change.
> 
> If I get the go-ahead, I can modify crons.sh (the main script) in is-mirage-broken to push the generated Markdown file to our mirage-www repo, to update the wiki page. There is some implicit git state that the script relies upon (i.e., which repository is being pushed to) that I'd need to make explicit (since the script would be dealing with two, not one, repositories after this change: is-mirage-broken and mirage-www).
> 
> Best wishes,
> Nik
> 
> [1] https://github.com/mirage/is-mirage-broken/
> [2] https://github.com/mirage/is-mirage-broken/blob/master/logs/README.md
> [3] https://github.com/niksu/mirage-www/commit/cf7dc0947d1d356b1aea5ca2ed709042d33d96c9
> 
> 
> _______________________________________________
> 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 Wed Oct 29 10:51:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 10:51: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 1XjQr8-0005Uc-8X; Wed, 29 Oct 2014 10:51:58 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XjQr7-0005UN-84
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 10:51:57 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	AC/99-03246-CC6C0545; Wed, 29 Oct 2014 10:51:56 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-5.tower-31.messagelabs.com!1414579915!12333019!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22089 invoked from network); 29 Oct 2014 10:51:55 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-5.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Oct 2014 10:51:55 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:52533)
	by ppsw-52.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
	with esmtp id 1XjQr5-0002eO-E3 (Exim 4.82_3-c0e5623)
	(return-path <ns441@cam.ac.uk>); Wed, 29 Oct 2014 10:51:55 +0000
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1XjQr5-000cmr-9f (Exim
	4.80_167-5a66dd3)
	(return-path <ns441@cam.ac.uk>); Wed, 29 Oct 2014 10:51:55 +0000
Received: from lusankya.mac.cl.cam.ac.uk ([128.232.56.51])
	by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Wed, 29 Oct 2014 10:51:55 +0000
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Wed, 29 Oct 2014 10:51:55 +0000
From: Nik Sultana <ns441@cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAE18EFB-D9F3-4298-A358-86C979D3DA2F@recoil.org>
References: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
	<CAE18EFB-D9F3-4298-A358-86C979D3DA2F@recoil.org>
Message-ID: <014366078cb9264562024f537419aa4e@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel]
 =?utf-8?q?is=5Fmirage=5Fbroken_on_openmirage=2Eo?= =?utf-8?q?rg?=
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 2014-10-29 10:36, Anil Madhavapeddy wrote:
> That sounds good. If you install the GitHub OPAM package, there is a
> command line utility that creates a pull request. If one is only
> created when the status changes, that should be pretty low traffic (I
> hope).
> 
> Anil

Currently the status page is changed every time Bactrian runs, since the 
time on the page is updated to indicate that the page is fresh. I could 
set things up to continue updating the page in this way in the 
is-mirage-broken repo, but to avoid generating a PR to mirage-www unless 
the status of some build target has changed.

Nik

> 
> 
> 
>> On 29 Oct 2014, at 09:52, Nik Sultana <ns441@cam.ac.uk> wrote:
>> 
>> Hi all, one of the items discussed in yesterday's call was about 
>> having a more visible outcome for is_mirage_broken [1] -- the service 
>> that tries to build a set of mirage applications for different 
>> targets.
>> 
>> Currently, it generates a Markdown file summarising the outcome of 
>> each build attempt [2]. One idea was to use this Markdown on a page 
>> served by openmirage.com
>> 
>> I experimented with this in a change to mirage-www [2] which, unless 
>> I'm mistaken, generates the image that serves openmirage.com. The 
>> change consists of an additional wiki page on openmirage.org that 
>> contains the Markdown generated by is-mirage-broken, as can be seen 
>> from the diff [2].
>> 
>> I'm writing to poll the list for your thoughts on whether this is a 
>> reasonable change.
>> 
>> If I get the go-ahead, I can modify crons.sh (the main script) in 
>> is-mirage-broken to push the generated Markdown file to our mirage-www 
>> repo, to update the wiki page. There is some implicit git state that 
>> the script relies upon (i.e., which repository is being pushed to) 
>> that I'd need to make explicit (since the script would be dealing with 
>> two, not one, repositories after this change: is-mirage-broken and 
>> mirage-www).
>> 
>> Best wishes,
>> Nik
>> 
>> [1] https://github.com/mirage/is-mirage-broken/
>> [2] 
>> https://github.com/mirage/is-mirage-broken/blob/master/logs/README.md
>> [3] 
>> https://github.com/niksu/mirage-www/commit/cf7dc0947d1d356b1aea5ca2ed709042d33d96c9
>> 
>> 
>> _______________________________________________
>> 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 Wed Oct 29 10:51:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 10:51: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 1XjQr8-0005Uc-8X; Wed, 29 Oct 2014 10:51:58 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ns441@cam.ac.uk>) id 1XjQr7-0005UN-84
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 10:51:57 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
	AC/99-03246-CC6C0545; Wed, 29 Oct 2014 10:51:56 +0000
X-Env-Sender: ns441@cam.ac.uk
X-Msg-Ref: server-5.tower-31.messagelabs.com!1414579915!12333019!1
X-Originating-IP: [131.111.8.152]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMTMxLjExMS44LjE1MiA9PiA4MDU1Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22089 invoked from network); 29 Oct 2014 10:51:55 -0000
Received: from ppsw-52.csi.cam.ac.uk (HELO ppsw-52.csi.cam.ac.uk)
	(131.111.8.152)
	by server-5.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 29 Oct 2014 10:51:55 -0000
X-Cam-AntiVirus: not scanned (internal relaying)
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from webmail-2a.csi.cam.ac.uk ([131.111.9.34]:52533)
	by ppsw-52.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25)
	with esmtp id 1XjQr5-0002eO-E3 (Exim 4.82_3-c0e5623)
	(return-path <ns441@cam.ac.uk>); Wed, 29 Oct 2014 10:51:55 +0000
Received: from [127.0.0.1] (helo=webmail-2.hermes.cam.ac.uk)
	by webmail-2a.csi.cam.ac.uk with esmtp id 1XjQr5-000cmr-9f (Exim
	4.80_167-5a66dd3)
	(return-path <ns441@cam.ac.uk>); Wed, 29 Oct 2014 10:51:55 +0000
Received: from lusankya.mac.cl.cam.ac.uk ([128.232.56.51])
	by webmail-2.hermes.cam.ac.uk
	with HTTP (HTTP/1.1 POST); Wed, 29 Oct 2014 10:51:55 +0000
MIME-Version: 1.0
X-Authenticated-User: ns441
Date: Wed, 29 Oct 2014 10:51:55 +0000
From: Nik Sultana <ns441@cam.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAE18EFB-D9F3-4298-A358-86C979D3DA2F@recoil.org>
References: <bde788644239f75baebc0f5d725ce2b5@cam.ac.uk>
	<CAE18EFB-D9F3-4298-A358-86C979D3DA2F@recoil.org>
Message-ID: <014366078cb9264562024f537419aa4e@cam.ac.uk>
X-Sender: ns441@cam.ac.uk
User-Agent: Roundcube Webmail/1.0.2
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel]
 =?utf-8?q?is=5Fmirage=5Fbroken_on_openmirage=2Eo?= =?utf-8?q?rg?=
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 2014-10-29 10:36, Anil Madhavapeddy wrote:
> That sounds good. If you install the GitHub OPAM package, there is a
> command line utility that creates a pull request. If one is only
> created when the status changes, that should be pretty low traffic (I
> hope).
> 
> Anil

Currently the status page is changed every time Bactrian runs, since the 
time on the page is updated to indicate that the page is fresh. I could 
set things up to continue updating the page in this way in the 
is-mirage-broken repo, but to avoid generating a PR to mirage-www unless 
the status of some build target has changed.

Nik

> 
> 
> 
>> On 29 Oct 2014, at 09:52, Nik Sultana <ns441@cam.ac.uk> wrote:
>> 
>> Hi all, one of the items discussed in yesterday's call was about 
>> having a more visible outcome for is_mirage_broken [1] -- the service 
>> that tries to build a set of mirage applications for different 
>> targets.
>> 
>> Currently, it generates a Markdown file summarising the outcome of 
>> each build attempt [2]. One idea was to use this Markdown on a page 
>> served by openmirage.com
>> 
>> I experimented with this in a change to mirage-www [2] which, unless 
>> I'm mistaken, generates the image that serves openmirage.com. The 
>> change consists of an additional wiki page on openmirage.org that 
>> contains the Markdown generated by is-mirage-broken, as can be seen 
>> from the diff [2].
>> 
>> I'm writing to poll the list for your thoughts on whether this is a 
>> reasonable change.
>> 
>> If I get the go-ahead, I can modify crons.sh (the main script) in 
>> is-mirage-broken to push the generated Markdown file to our mirage-www 
>> repo, to update the wiki page. There is some implicit git state that 
>> the script relies upon (i.e., which repository is being pushed to) 
>> that I'd need to make explicit (since the script would be dealing with 
>> two, not one, repositories after this change: is-mirage-broken and 
>> mirage-www).
>> 
>> Best wishes,
>> Nik
>> 
>> [1] https://github.com/mirage/is-mirage-broken/
>> [2] 
>> https://github.com/mirage/is-mirage-broken/blob/master/logs/README.md
>> [3] 
>> https://github.com/niksu/mirage-www/commit/cf7dc0947d1d356b1aea5ca2ed709042d33d96c9
>> 
>> 
>> _______________________________________________
>> 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 Wed Oct 29 16:48:09 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 16:48: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 1XjWPk-0003hR-6q; Wed, 29 Oct 2014 16:48:04 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XjWPj-0003hJ-Es
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 16:48:03 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	18/37-02952-24A11545; Wed, 29 Oct 2014 16:48:02 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1414601282!13498853!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26669 invoked from network); 29 Oct 2014 16:48:02 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Oct 2014 16:48:02 -0000
Received: by mail-wi0-f175.google.com with SMTP id ex7so2252568wid.14
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 29 Oct 2014 09:48:02 -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=xTVfI/V9ubkZhcI2Gomnxm+tcpAf54zX6QjNCD+5Dzg=;
	b=sdkcUSTv4m0i7X59iMCzNsX6R7mtK/gv4jNBy/WRyjfu7e8L7rh6LlRUxnTwkgMqnb
	GB9B2aCLZlqVCyNQJ/LUXOSxU2gBIeL1IlKBb4TilGsADDPdmLDcMEouwtt1KBFQu8pZ
	r7XcLkGtWSepzXsiMY4dZ6aQYKztH3Em0HofERqZz/HvTW/PQZQHjf5U0FvsGne+hOBJ
	F7tBks4YH8ya4Qx7HEs7hMRT/wiYireRHeE+zQqwn6dKK1MiJC7f2azAFXDO8gKz6sR6
	p6KGnuw33K03Wg48B1Eks0aXzcaeQUO3t3Iesyrk+gAno3FnUXcrc/W3UDx0V09VfSzC
	0dJQ==
X-Received: by 10.194.58.8 with SMTP id m8mr14194982wjq.43.1414601281988;
	Wed, 29 Oct 2014 09:48:01 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id lm9sm5731033wjc.45.2014.10.29.09.48.00
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 29 Oct 2014 09:48:01 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
Date: Wed, 29 Oct 2014 16:48:00 +0000
Message-Id: <B20E2DD4-56F9-48DF-A472-6848D75423DE@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
	<118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
	<ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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've updated the script to download and run the template to set-up the environment, and the run some project specific commands (which can be customised by each libs).
> 

The Travis scrips will now query and install the external dependencies.

https://github.com/samoht/ocaml-travisci-skeleton

Maybe I should create an opam package with a small command-line utility to copy the files in the current 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 Wed Oct 29 16:48:09 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 16:48: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 1XjWPk-0003hR-6q; Wed, 29 Oct 2014 16:48:04 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XjWPj-0003hJ-Es
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 16:48:03 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	18/37-02952-24A11545; Wed, 29 Oct 2014 16:48:02 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1414601282!13498853!1
X-Originating-IP: [209.85.212.175]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26669 invoked from network); 29 Oct 2014 16:48:02 -0000
Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com)
	(209.85.212.175)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	29 Oct 2014 16:48:02 -0000
Received: by mail-wi0-f175.google.com with SMTP id ex7so2252568wid.14
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 29 Oct 2014 09:48:02 -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=xTVfI/V9ubkZhcI2Gomnxm+tcpAf54zX6QjNCD+5Dzg=;
	b=sdkcUSTv4m0i7X59iMCzNsX6R7mtK/gv4jNBy/WRyjfu7e8L7rh6LlRUxnTwkgMqnb
	GB9B2aCLZlqVCyNQJ/LUXOSxU2gBIeL1IlKBb4TilGsADDPdmLDcMEouwtt1KBFQu8pZ
	r7XcLkGtWSepzXsiMY4dZ6aQYKztH3Em0HofERqZz/HvTW/PQZQHjf5U0FvsGne+hOBJ
	F7tBks4YH8ya4Qx7HEs7hMRT/wiYireRHeE+zQqwn6dKK1MiJC7f2azAFXDO8gKz6sR6
	p6KGnuw33K03Wg48B1Eks0aXzcaeQUO3t3Iesyrk+gAno3FnUXcrc/W3UDx0V09VfSzC
	0dJQ==
X-Received: by 10.194.58.8 with SMTP id m8mr14194982wjq.43.1414601281988;
	Wed, 29 Oct 2014 09:48:01 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id lm9sm5731033wjc.45.2014.10.29.09.48.00
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 29 Oct 2014 09:48:01 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
Date: Wed, 29 Oct 2014 16:48:00 +0000
Message-Id: <B20E2DD4-56F9-48DF-A472-6848D75423DE@gazagnaire.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
	<118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
	<ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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've updated the script to download and run the template to set-up the environment, and the run some project specific commands (which can be customised by each libs).
> 

The Travis scrips will now query and install the external dependencies.

https://github.com/samoht/ocaml-travisci-skeleton

Maybe I should create an opam package with a small command-line utility to copy the files in the current 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 Wed Oct 29 16:58:30 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 16:58: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 1XjWZp-0004QF-Ut; Wed, 29 Oct 2014 16:58:29 +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 1XjWZo-0004Q5-AP
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 16:58:28 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	AA/7A-03123-3BC11545; Wed, 29 Oct 2014 16:58:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-206.messagelabs.com!1414601906!8302766!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17729 invoked from network); 29 Oct 2014 16:58:27 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 29 Oct 2014 16:58:27 -0000
Received: from dhcp-172-17-159-186.eduroam.wireless.private.cam.ac.uk
	(global-1-26.nat.csx.cam.ac.uk [131.111.184.26]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 6302d0f1;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 29 Oct 2014 17:01:36 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <B20E2DD4-56F9-48DF-A472-6848D75423DE@gazagnaire.org>
Date: Wed, 29 Oct 2014 16:58:25 +0000
Message-Id: <4D53C498-8E14-496A-B426-47C5EF5C3840@recoil.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
	<118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
	<ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
	<B20E2DD4-56F9-48DF-A472-6848D75423DE@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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 29 Oct 2014, at 16:48, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
> 
>> I've updated the script to download and run the template to set-up the environment, and the run some project specific commands (which can be customised by each libs).
>> 
> 
> The Travis scrips will now query and install the external dependencies.
> 
> https://github.com/samoht/ocaml-travisci-skeleton
> 
> Maybe I should create an opam package with a small command-line utility to copy the files in the current project ...

You could stick that in the Travis-senv package and called it 'opam-travis' or somwthing?  It could automate the GitHub deployment key stuff in the future as well.

-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 Oct 29 16:58:30 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 29 Oct 2014 16:58: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 1XjWZp-0004QF-Ut; Wed, 29 Oct 2014 16:58:29 +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 1XjWZo-0004Q5-AP
	for mirageos-devel@lists.xenproject.org; Wed, 29 Oct 2014 16:58:28 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	AA/7A-03123-3BC11545; Wed, 29 Oct 2014 16:58:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-206.messagelabs.com!1414601906!8302766!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17729 invoked from network); 29 Oct 2014 16:58:27 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 29 Oct 2014 16:58:27 -0000
Received: from dhcp-172-17-159-186.eduroam.wireless.private.cam.ac.uk
	(global-1-26.nat.csx.cam.ac.uk [131.111.184.26]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 6302d0f1;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 29 Oct 2014 17:01:36 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <B20E2DD4-56F9-48DF-A472-6848D75423DE@gazagnaire.org>
Date: Wed, 29 Oct 2014 16:58:25 +0000
Message-Id: <4D53C498-8E14-496A-B426-47C5EF5C3840@recoil.org>
References: <A18A3AE5-4E1F-4742-9E27-4B3007D431AA@gazagnaire.org>
	<4C5F1429-3D8B-40F6-8A31-D52BD2783F45@gazagnaire.org>
	<CB77AE68-3DA6-4486-BF87-F28DD703334F@UniofNottm.mail.onmicrosoft.com>
	<9408B58F-FE04-4879-A851-017014AB8248@gazagnaire.org>
	<118E3474-23A6-4156-9BAF-1D593B970F87@nottingham.ac.uk>
	<ABBCDC54-39A3-47B1-888C-968269121037@gazagnaire.org>
	<B20E2DD4-56F9-48DF-A472-6848D75423DE@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] new libraries of the week
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 29 Oct 2014, at 16:48, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
> 
>> I've updated the script to download and run the template to set-up the environment, and the run some project specific commands (which can be customised by each libs).
>> 
> 
> The Travis scrips will now query and install the external dependencies.
> 
> https://github.com/samoht/ocaml-travisci-skeleton
> 
> Maybe I should create an opam package with a small command-line utility to copy the files in the current project ...

You could stick that in the Travis-senv package and called it 'opam-travis' or somwthing?  It could automate the GitHub deployment key stuff in the future as well.

-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 Oct 30 09:37:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 09:37: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 1XjmA6-0000j2-Ca; Thu, 30 Oct 2014 09:36:58 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XjmA4-0000ix-HP
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 09:36:56 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	24/50-02699-7B602545; Thu, 30 Oct 2014 09:36:55 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1414661811!6323890!1
X-Originating-IP: [209.85.220.181]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32136 invoked from network); 30 Oct 2014 09:36:52 -0000
Received: from mail-vc0-f181.google.com (HELO mail-vc0-f181.google.com)
	(209.85.220.181)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 09:36:52 -0000
Received: by mail-vc0-f181.google.com with SMTP id hy10so2526507vcb.12
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 02:36:51 -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=2XY2XfIwTXQAqp9ejsVsYh+24DEDBUFxDxDdh2xc0WU=;
	b=HO3x2qBEK1Ul5qib3Zp+a7p9errhQgFNQ5WKpZ/skRdWVLidCrCDgxJWupgvhmrNUS
	6TVEXU/ufzAtZa8kI9eOnjSrxCeXBZP8e09B1y7K0CvMFBPsdSs9x9CKZwPRgpclZshT
	f71DI0szpN1uAmL7SAVAtEMSxxCAoSwhhTjGMKqKOwTvk9nTljwo1ixYFFgz99khwU+8
	aGZJ1Lv0btfWRuXU74X3Q29Yp8Ta8m3r3xW+AblWk//rSSJI0cqk0QgRJ/gWvAVsjglW
	BhI7Hq7idFJhKyazlJRtqNb517nb03q5ZVL7q68TTV3wsoaUpgynYFMJobNZ4ozBGNKE
	y4ZA==
MIME-Version: 1.0
X-Received: by 10.52.0.98 with SMTP id 2mr10165221vdd.28.1414661810748; Thu,
	30 Oct 2014 02:36:50 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 02:36:50 -0700 (PDT)
In-Reply-To: <016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
Date: Thu, 30 Oct 2014 09:36:50 +0000
Message-ID: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: =?UTF-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

T24gMjggT2N0b2JlciAyMDE0IDIyOjM2LCBEYW5pZWwgQsO8bnpsaSA8ZGFuaWVsLmJ1ZW56bGlA
ZXJyYXRpcXVlLmNoPiB3cm90ZToKPgo+IExlIG1hcmRpLCAyOCBvY3RvYnJlIDIwMTQgw6AgMjM6
MjEsIEFuaWwgTWFkaGF2YXBlZGR5IGEgw6ljcml0IDoKPgo+PiBBc3NlbWJsYWdlIGlzIHN0aWxs
IHVuZGVyZ29pbmcgJ3JhcGlkIGl0ZXJhdGlvbicsIHNvIEknZCBzdWdnZXN0Cj4+IHN3aXRjaGlu
ZyB0byBPQVNJUyB1bnRpbCB3ZSBoYXZlIGEgbW9yZSBzdGFibGUgdmVyc2lvbi4gVGhvbWFzRyBv
cgo+PiBEYW5pZWwgQnVlbnpsaSBjYW4gY29ycmVjdCBtZSBpZiB0aGF0J3Mgbm90IGFjY3VyYXRl
Lgo+Cj4gVGhhdCdzIGFjY3VyYXRlLiBJZiB3ZSBhZ3JlZSB3aXRoIFRob21hcyBvbiB0aGUgUFIg
SSdtIGdvaW5nIHRvIG1ha2UgbmV4dCB3ZWVrLCB0aGUgY3VycmVudCBBUEkgY29tcGxldGVseSBj
aGFuZ2VzIGFuZCBhc3NlbWJsZS5tbCBmaWxlcyB3aWxsIG5lZWQgcmV3cml0aW5nLiBXZSBuZWVk
IHRpbWUgdG8gZGVzaWduIGEgZ3JlYXQgc3lzdGVtIGFuZCBpdCdzIGJldHRlciBpZiB3ZSBkb24n
dCBlbmN1bWJlciBvdXJzZWx2ZXMgd2l0aCB1c2VycyBhdCB0aGUgbW9tZW50LgoKT0ssIGRvbmUg
KHRoYW5rcyB0byBUaG9tYXMgZm9yIHNvbWUgT1BBTSBoZWxwISkuIEkgdGhpbmsgdGhlIG1haW4K
dGhpbmcgbm93IGlzIHRvIGFncmVlIHRoZSBBUEkgZm9yIGxpYnJhcmllcyB0byByZWNvcmQgdHJh
Y2luZyBldmVudHMuCgpIZXJlJ3Mgd2hhdCBJIGhhdmUgc28gZmFyOgoKaHR0cHM6Ly9naXRodWIu
Y29tL3RhbGV4NS9taXJhZ2UtcHJvZmlsZS9ibG9iL25ldy1hcGkvbGliL3RyYWNlX3N0dWJzLm1s
aQpodHRwczovL2dpdGh1Yi5jb20vdGFsZXg1L21pcmFnZS1wcm9maWxlL2Jsb2IvbmV3LWFwaS9s
aWIvY291bnRlci5tbGkKClRoZXJlJ3Mgbm90IG11Y2ggaGVyZSwgYnV0IGl0IHdvdWxkIGJlIGdv
b2QgdG8ga2VlcCB0aGlzIEFQSSBzdGFibGUgYXMKcHJldHR5IG11Y2ggYWxsIG1pcmFnZSBsaWJy
YXJpZXMgd2lsbCBiZSB1c2luZyBpdC4KClRoZSBBUEkgZm9yIGNvbnRyb2xsaW5nIHRoZSB0cmFj
aW5nLCBkdW1waW5nIG91dCBldmVudHMsIGV0YyBpcyBtdWNoCmxlc3MgY3JpdGljYWwgYW5kIGNh
biBiZSBjaGFuZ2VkIGxhdGVyLCBhcyBpdCBvbmx5IG1hdHRlcnMgdG8gdGhlCmRldmVsb3BlciBw
cm9maWxpbmcgdGhlaXIgdW5pa2VybmVsLgoKQ29tbWVudHMgd2VsY29tZSEKCgotLSAKRHIgVGhv
bWFzIExlb25hcmQgICAgICAgIGh0dHA6Ly8waW5zdGFsbC5uZXQvCkdQRzogOTI0MiA5ODA3IEM5
ODUgM0MwNyA0NEE2ICA4QjlBIEFFMDcgODI4MCA1OUE1IDNDQzEKR1BHOiBEQTk4IDI1QUUgQ0FE
MCA4OTc1IDdDREEgIEJEOEUgMDcxMyAzRjk2IENBNzQgRDhCQQoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0
Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 09:37:05 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 09:37: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 1XjmA6-0000j2-Ca; Thu, 30 Oct 2014 09:36:58 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1XjmA4-0000ix-HP
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 09:36:56 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	24/50-02699-7B602545; Thu, 30 Oct 2014 09:36:55 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1414661811!6323890!1
X-Originating-IP: [209.85.220.181]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32136 invoked from network); 30 Oct 2014 09:36:52 -0000
Received: from mail-vc0-f181.google.com (HELO mail-vc0-f181.google.com)
	(209.85.220.181)
	by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 09:36:52 -0000
Received: by mail-vc0-f181.google.com with SMTP id hy10so2526507vcb.12
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 02:36:51 -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=2XY2XfIwTXQAqp9ejsVsYh+24DEDBUFxDxDdh2xc0WU=;
	b=HO3x2qBEK1Ul5qib3Zp+a7p9errhQgFNQ5WKpZ/skRdWVLidCrCDgxJWupgvhmrNUS
	6TVEXU/ufzAtZa8kI9eOnjSrxCeXBZP8e09B1y7K0CvMFBPsdSs9x9CKZwPRgpclZshT
	f71DI0szpN1uAmL7SAVAtEMSxxCAoSwhhTjGMKqKOwTvk9nTljwo1ixYFFgz99khwU+8
	aGZJ1Lv0btfWRuXU74X3Q29Yp8Ta8m3r3xW+AblWk//rSSJI0cqk0QgRJ/gWvAVsjglW
	BhI7Hq7idFJhKyazlJRtqNb517nb03q5ZVL7q68TTV3wsoaUpgynYFMJobNZ4ozBGNKE
	y4ZA==
MIME-Version: 1.0
X-Received: by 10.52.0.98 with SMTP id 2mr10165221vdd.28.1414661810748; Thu,
	30 Oct 2014 02:36:50 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 02:36:50 -0700 (PDT)
In-Reply-To: <016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
Date: Thu, 30 Oct 2014 09:36:50 +0000
Message-ID: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: =?UTF-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

T24gMjggT2N0b2JlciAyMDE0IDIyOjM2LCBEYW5pZWwgQsO8bnpsaSA8ZGFuaWVsLmJ1ZW56bGlA
ZXJyYXRpcXVlLmNoPiB3cm90ZToKPgo+IExlIG1hcmRpLCAyOCBvY3RvYnJlIDIwMTQgw6AgMjM6
MjEsIEFuaWwgTWFkaGF2YXBlZGR5IGEgw6ljcml0IDoKPgo+PiBBc3NlbWJsYWdlIGlzIHN0aWxs
IHVuZGVyZ29pbmcgJ3JhcGlkIGl0ZXJhdGlvbicsIHNvIEknZCBzdWdnZXN0Cj4+IHN3aXRjaGlu
ZyB0byBPQVNJUyB1bnRpbCB3ZSBoYXZlIGEgbW9yZSBzdGFibGUgdmVyc2lvbi4gVGhvbWFzRyBv
cgo+PiBEYW5pZWwgQnVlbnpsaSBjYW4gY29ycmVjdCBtZSBpZiB0aGF0J3Mgbm90IGFjY3VyYXRl
Lgo+Cj4gVGhhdCdzIGFjY3VyYXRlLiBJZiB3ZSBhZ3JlZSB3aXRoIFRob21hcyBvbiB0aGUgUFIg
SSdtIGdvaW5nIHRvIG1ha2UgbmV4dCB3ZWVrLCB0aGUgY3VycmVudCBBUEkgY29tcGxldGVseSBj
aGFuZ2VzIGFuZCBhc3NlbWJsZS5tbCBmaWxlcyB3aWxsIG5lZWQgcmV3cml0aW5nLiBXZSBuZWVk
IHRpbWUgdG8gZGVzaWduIGEgZ3JlYXQgc3lzdGVtIGFuZCBpdCdzIGJldHRlciBpZiB3ZSBkb24n
dCBlbmN1bWJlciBvdXJzZWx2ZXMgd2l0aCB1c2VycyBhdCB0aGUgbW9tZW50LgoKT0ssIGRvbmUg
KHRoYW5rcyB0byBUaG9tYXMgZm9yIHNvbWUgT1BBTSBoZWxwISkuIEkgdGhpbmsgdGhlIG1haW4K
dGhpbmcgbm93IGlzIHRvIGFncmVlIHRoZSBBUEkgZm9yIGxpYnJhcmllcyB0byByZWNvcmQgdHJh
Y2luZyBldmVudHMuCgpIZXJlJ3Mgd2hhdCBJIGhhdmUgc28gZmFyOgoKaHR0cHM6Ly9naXRodWIu
Y29tL3RhbGV4NS9taXJhZ2UtcHJvZmlsZS9ibG9iL25ldy1hcGkvbGliL3RyYWNlX3N0dWJzLm1s
aQpodHRwczovL2dpdGh1Yi5jb20vdGFsZXg1L21pcmFnZS1wcm9maWxlL2Jsb2IvbmV3LWFwaS9s
aWIvY291bnRlci5tbGkKClRoZXJlJ3Mgbm90IG11Y2ggaGVyZSwgYnV0IGl0IHdvdWxkIGJlIGdv
b2QgdG8ga2VlcCB0aGlzIEFQSSBzdGFibGUgYXMKcHJldHR5IG11Y2ggYWxsIG1pcmFnZSBsaWJy
YXJpZXMgd2lsbCBiZSB1c2luZyBpdC4KClRoZSBBUEkgZm9yIGNvbnRyb2xsaW5nIHRoZSB0cmFj
aW5nLCBkdW1waW5nIG91dCBldmVudHMsIGV0YyBpcyBtdWNoCmxlc3MgY3JpdGljYWwgYW5kIGNh
biBiZSBjaGFuZ2VkIGxhdGVyLCBhcyBpdCBvbmx5IG1hdHRlcnMgdG8gdGhlCmRldmVsb3BlciBw
cm9maWxpbmcgdGhlaXIgdW5pa2VybmVsLgoKQ29tbWVudHMgd2VsY29tZSEKCgotLSAKRHIgVGhv
bWFzIExlb25hcmQgICAgICAgIGh0dHA6Ly8waW5zdGFsbC5uZXQvCkdQRzogOTI0MiA5ODA3IEM5
ODUgM0MwNyA0NEE2ICA4QjlBIEFFMDcgODI4MCA1OUE1IDNDQzEKR1BHOiBEQTk4IDI1QUUgQ0FE
MCA4OTc1IDdDREEgIEJEOEUgMDcxMyAzRjk2IENBNzQgRDhCQQoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0
Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 13:25:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 13:25: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 1Xjpj7-0000oO-BU; Thu, 30 Oct 2014 13:25:21 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjpj6-0000oG-38
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 13:25:20 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	57/5E-02696-F3C32545; Thu, 30 Oct 2014 13:25:19 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-11.tower-27.messagelabs.com!1414675518!10138464!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19095 invoked from network); 30 Oct 2014 13:25:18 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-11.tower-27.messagelabs.com with SMTP;
	30 Oct 2014 13:25:18 -0000
Received: (qmail 14011 invoked from network); 30 Oct 2014 13:20:09 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 13:20:09 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11888-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 13:20:02 +0000 (GMT)
Received: (qmail 13833 invoked by uid 599); 30 Oct 2014 13:20:02 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 13:20:02 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjpdz-000789-8L
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 13:20:03 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Thu, 30 Oct 2014 13:19:10 +0000
Thread-Topic: instrumentation - osquery
Thread-Index: Ac/0RDYjbTy9OgDwRCSeV3X7UVfv5A==
Message-ID: <27F96943-5FBB-49AF-A7CE-F6C3ABD2F0B3@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Subject: [MirageOS-devel] instrumentation - osquery
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="===============6835860163175422011=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6835860163175422011==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

a different take fwiw: =
https://code.facebook.com/posts/844436395567983/introducing-osquery/

(thought it was interesting; a bunch of code on github, maybe there'll =
be useful things in there...)

--=20
Cheers,

R.





--Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUjrOAAoJEOLF27JWwSg30/8P/2KOp1duYhQNAS3znmsKSyYB
1oX/VwFycTOgr/n8mBvS38JB3Wi4vc17+5scbxHgE0mIYhXs3y/afgSvI2x2GIjO
OLFUOFdVwhVhUb/CBAut/g9aKjXoRWg3CNiPV+UqOT7xFi7IRKYiFLut+GRV3TsN
NlKCPydudJ9DE4RgibjJxrOqhEIoBWOxEowK+HKKDkyK1iAZMLqAxANo5ywKcOWQ
AVnlM222ic/Aj8WuX9vjixbkXnVT4AVqjVUu15nlYG0YHifYU9CxK8Snx0HVFr6F
AOHCIysCNPym6aaypjOcHbEeYpfzDsa8HC1qe+PP6caio8b7+Iev8i6AO6w4MX8O
pIo8yrNa2FMfnpZEC0TZoM7H6VsoRghrYHI7yuOTUdBtdxL+HpJOY3+9weebYwQD
6sqCPuSgtejkSR68DcyjYY2fPzeorOEA7y7QaxSjFFUCeFYByNXjp1Ps07yzXhxX
5w75kjYlJoJ4jzbIjpGGyKQjk3swc5E/3tbI5SeEXk4pR07ME2mXK2AJe2aQESiO
qDPMyST7QFqxxha9VM1bEQzKpDOfgC35tXZA5opczqbDf8KixBTRqO30ILRwnbzY
/BRllBqgmGevRFSek5SAV1BdNJSLHBal167lw8q1IS6tTqjw3PmMma7PJ8/6zZ8l
mR6VvsuqR4LUxcvjXt8r
=oZXr
-----END PGP SIGNATURE-----

--Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129--


--===============6835860163175422011==
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

--===============6835860163175422011==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 13:25:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 13:25: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 1Xjpj7-0000oO-BU; Thu, 30 Oct 2014 13:25:21 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjpj6-0000oG-38
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 13:25:20 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	57/5E-02696-F3C32545; Thu, 30 Oct 2014 13:25:19 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-11.tower-27.messagelabs.com!1414675518!10138464!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19095 invoked from network); 30 Oct 2014 13:25:18 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-11.tower-27.messagelabs.com with SMTP;
	30 Oct 2014 13:25:18 -0000
Received: (qmail 14011 invoked from network); 30 Oct 2014 13:20:09 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 13:20:09 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11888-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 13:20:02 +0000 (GMT)
Received: (qmail 13833 invoked by uid 599); 30 Oct 2014 13:20:02 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 13:20:02 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjpdz-000789-8L
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 13:20:03 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Date: Thu, 30 Oct 2014 13:19:10 +0000
Thread-Topic: instrumentation - osquery
Thread-Index: Ac/0RDYjbTy9OgDwRCSeV3X7UVfv5A==
Message-ID: <27F96943-5FBB-49AF-A7CE-F6C3ABD2F0B3@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Subject: [MirageOS-devel] instrumentation - osquery
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="===============6835860163175422011=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6835860163175422011==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

a different take fwiw: =
https://code.facebook.com/posts/844436395567983/introducing-osquery/

(thought it was interesting; a bunch of code on github, maybe there'll =
be useful things in there...)

--=20
Cheers,

R.





--Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUjrOAAoJEOLF27JWwSg30/8P/2KOp1duYhQNAS3znmsKSyYB
1oX/VwFycTOgr/n8mBvS38JB3Wi4vc17+5scbxHgE0mIYhXs3y/afgSvI2x2GIjO
OLFUOFdVwhVhUb/CBAut/g9aKjXoRWg3CNiPV+UqOT7xFi7IRKYiFLut+GRV3TsN
NlKCPydudJ9DE4RgibjJxrOqhEIoBWOxEowK+HKKDkyK1iAZMLqAxANo5ywKcOWQ
AVnlM222ic/Aj8WuX9vjixbkXnVT4AVqjVUu15nlYG0YHifYU9CxK8Snx0HVFr6F
AOHCIysCNPym6aaypjOcHbEeYpfzDsa8HC1qe+PP6caio8b7+Iev8i6AO6w4MX8O
pIo8yrNa2FMfnpZEC0TZoM7H6VsoRghrYHI7yuOTUdBtdxL+HpJOY3+9weebYwQD
6sqCPuSgtejkSR68DcyjYY2fPzeorOEA7y7QaxSjFFUCeFYByNXjp1Ps07yzXhxX
5w75kjYlJoJ4jzbIjpGGyKQjk3swc5E/3tbI5SeEXk4pR07ME2mXK2AJe2aQESiO
qDPMyST7QFqxxha9VM1bEQzKpDOfgC35tXZA5opczqbDf8KixBTRqO30ILRwnbzY
/BRllBqgmGevRFSek5SAV1BdNJSLHBal167lw8q1IS6tTqjw3PmMma7PJ8/6zZ8l
mR6VvsuqR4LUxcvjXt8r
=oZXr
-----END PGP SIGNATURE-----

--Apple-Mail=_6110A7C3-7FA0-42B3-AA0A-1B97F0616129--


--===============6835860163175422011==
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

--===============6835860163175422011==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 13:45:03 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 13:45: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 1Xjq2A-0001J8-NJ; Thu, 30 Oct 2014 13:45:02 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjq29-0001Iy-39
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 13:45:01 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	D8/7A-02696-CD042545; Thu, 30 Oct 2014 13:45:00 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-13.tower-27.messagelabs.com!1414676699!13455662!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2849 invoked from network); 30 Oct 2014 13:44:59 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-13.tower-27.messagelabs.com with SMTP;
	30 Oct 2014 13:44:59 -0000
Received: (qmail 18899 invoked from network); 30 Oct 2014 13:43:06 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 13:43:06 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 15972-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 13:42:59 +0000 (GMT)
Received: (qmail 18727 invoked by uid 599); 30 Oct 2014 13:42:59 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 13:42:59 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjq0B-0004EU-Ag; Thu, 30 Oct 2014 13:42:59 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Masoud Koleini <Masoud.Koleini@nottingham.ac.uk>, Haris Rotsos
	<cr409@cl.cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Date: Thu, 30 Oct 2014 13:42:55 +0000
Thread-Topic: [MirageOS-devel] Xen VIF configuration for tap devices
Thread-Index: Ac/0R2qSnHSYKlrETe6hV08+/m7Z8Q==
Message-ID: <2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
In-Reply-To: <544D464D.7070305@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============0253548508063390073=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0253548508063390073==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

all;

to take a slightly different tack on this -- is there anyone out there =
successfully running mirage unikernels on xen that make use of >1 =
network interface?  how did you configure this? =20

haris-- what did you do for the mirage openflow paper?

more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the =
canonical location for info on how to configure and manage networking on =
xen vms? =20

and presumably all this results in entries in xenstore-- are =
http://wiki.xen.org/wiki/XenStore and =
http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation =
for xenstore and it's use by network devices?

is there any documentation available on how to debug openvswitch =
networking on xen via xenstore (or through some other means)?

On 26 Oct 2014, at 20:06, Masoud Koleini =
<Masoud.Koleini@nottingham.ac.uk> wrote:

>=20
> I have defined 3 vifs with 3 different mac addresses for the 3 tap=20
> devices that I am using, and switch shows the same mac address (mac=20
> address of the first defined vif) assigned to both tap2 and tap3.
>=20
> Another issue that I faced is, although I can ping switch vm, nothing=20=

> appears on vifs and xenbr0 when switch starts a TCP connection to a=20
> remote controller (using TCPV4 create_connection function). This=20
> function works well for unix config.
>=20
> On 26/10/14 11:43, Anil Madhavapeddy wrote:
>> On 25 Oct 2014, at 11:36, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>> Hi all,
>>>=20
>>> I have a switch with three tap devices tap0 (for the controller =
connection), tap1, and tap 2 running on Xen.
>>>=20
>>> What would be the right VIF configuration for Xen?
>> It would be pretty much the same configuration as your tap setup.  =
The Xen networking model is to expose a VIF ('virtual interface') in the =
guest and dom0.  Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.
>>=20
>> The xl setup fragment looks like:
>>=20
>>     vif =3D [ 'bridge=3Dxenbr0' ]
>> or
>>     vif =3D [ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]
>>=20
>> -anil
>=20
> This message and any attachment are intended solely for the addressee =
and may contain confidential information. If you have received this =
message in error, please send it back to me, and immediately delete it.  =
 Please do not use, copy or disclose the information contained in this =
message or in any attachment.  Any views or opinions expressed by the =
author of this email do not necessarily reflect the views of the =
University of Nottingham.
>=20
> This message has been checked for viruses but the contents of an =
attachment
> may still contain software viruses which could damage your computer =
system, you are advised to perform your own checks. Email communications =
with the University of Nottingham may be monitored as permitted by UK =
legislation.
>=20
>=20
>=20
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUkBfAAoJEOLF27JWwSg3bbMQAMETn7dHl3v+upPEhsRFUy9e
V1KUstLLh50o8kVl17QLH6CuL/ph7bV4wpYJgPMMQhUw93zENkzuN9/JV1zUzeTX
qCcbl4sIAzjSyTvpKHZvxxC/EWWfEbxjU0V3Tdu5YYgO+qKNZths+J4C6thhThN5
y7omzfoCQNK0kq1voI751MJi5KsD/cfPn9pMEoWbBh6S5ww89fQre9ishCz2magz
EWUWxxqu8OAuGvfAypUGqe8OMzirVetwT5Vi+pGxCNPNPkL/3DD9QHeqUuO5Vr59
bIKsRism8CkLhwz4EtWIgS8sLla6uGcfOIfB/SRBWOvu9F7ETCgFDiBiPMKAYzCY
jxn/dNUIR2kIZJ8n8JweNu4QlhlsRKuVszKFzq1JkRjwC3L0+uiI2tDR3DmrxVV7
cwJ41jcZOXnQlv+HLnndiMFDsJN28ZU6bMHABbd7opHduk3xudH9pcNkP1y0oarQ
5qvEXyhauosjdSE/Bx98suVE9vuTtHgzSu5SI1xOpE4owEtOPZ/AMz+4MSBasJmR
C1HWJYd/WjA9FoO247MmmUpZ0B/lws9M92J3AzP0KQ55wTBtfsF5LusRaWAM5ae2
yaZiaaoqWTmQ1tbVB0Q6gcyBW+5qcrCkxlbNfaYrHp1eU7p/EqhaQs5CnIaPlKf4
f7zijIyOsCFsuN2wLIdr
=SiLs
-----END PGP SIGNATURE-----

--Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F--


--===============0253548508063390073==
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

--===============0253548508063390073==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 13:45:03 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 13:45: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 1Xjq2A-0001J8-NJ; Thu, 30 Oct 2014 13:45:02 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjq29-0001Iy-39
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 13:45:01 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	D8/7A-02696-CD042545; Thu, 30 Oct 2014 13:45:00 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-13.tower-27.messagelabs.com!1414676699!13455662!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2849 invoked from network); 30 Oct 2014 13:44:59 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-13.tower-27.messagelabs.com with SMTP;
	30 Oct 2014 13:44:59 -0000
Received: (qmail 18899 invoked from network); 30 Oct 2014 13:43:06 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 13:43:06 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 15972-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 13:42:59 +0000 (GMT)
Received: (qmail 18727 invoked by uid 599); 30 Oct 2014 13:42:59 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 13:42:59 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjq0B-0004EU-Ag; Thu, 30 Oct 2014 13:42:59 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Masoud Koleini <Masoud.Koleini@nottingham.ac.uk>, Haris Rotsos
	<cr409@cl.cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Date: Thu, 30 Oct 2014 13:42:55 +0000
Thread-Topic: [MirageOS-devel] Xen VIF configuration for tap devices
Thread-Index: Ac/0R2qSnHSYKlrETe6hV08+/m7Z8Q==
Message-ID: <2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
In-Reply-To: <544D464D.7070305@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============0253548508063390073=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0253548508063390073==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

all;

to take a slightly different tack on this -- is there anyone out there =
successfully running mirage unikernels on xen that make use of >1 =
network interface?  how did you configure this? =20

haris-- what did you do for the mirage openflow paper?

more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the =
canonical location for info on how to configure and manage networking on =
xen vms? =20

and presumably all this results in entries in xenstore-- are =
http://wiki.xen.org/wiki/XenStore and =
http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation =
for xenstore and it's use by network devices?

is there any documentation available on how to debug openvswitch =
networking on xen via xenstore (or through some other means)?

On 26 Oct 2014, at 20:06, Masoud Koleini =
<Masoud.Koleini@nottingham.ac.uk> wrote:

>=20
> I have defined 3 vifs with 3 different mac addresses for the 3 tap=20
> devices that I am using, and switch shows the same mac address (mac=20
> address of the first defined vif) assigned to both tap2 and tap3.
>=20
> Another issue that I faced is, although I can ping switch vm, nothing=20=

> appears on vifs and xenbr0 when switch starts a TCP connection to a=20
> remote controller (using TCPV4 create_connection function). This=20
> function works well for unix config.
>=20
> On 26/10/14 11:43, Anil Madhavapeddy wrote:
>> On 25 Oct 2014, at 11:36, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>> Hi all,
>>>=20
>>> I have a switch with three tap devices tap0 (for the controller =
connection), tap1, and tap 2 running on Xen.
>>>=20
>>> What would be the right VIF configuration for Xen?
>> It would be pretty much the same configuration as your tap setup.  =
The Xen networking model is to expose a VIF ('virtual interface') in the =
guest and dom0.  Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.
>>=20
>> The xl setup fragment looks like:
>>=20
>>     vif =3D [ 'bridge=3Dxenbr0' ]
>> or
>>     vif =3D [ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]
>>=20
>> -anil
>=20
> This message and any attachment are intended solely for the addressee =
and may contain confidential information. If you have received this =
message in error, please send it back to me, and immediately delete it.  =
 Please do not use, copy or disclose the information contained in this =
message or in any attachment.  Any views or opinions expressed by the =
author of this email do not necessarily reflect the views of the =
University of Nottingham.
>=20
> This message has been checked for viruses but the contents of an =
attachment
> may still contain software viruses which could damage your computer =
system, you are advised to perform your own checks. Email communications =
with the University of Nottingham may be monitored as permitted by UK =
legislation.
>=20
>=20
>=20
>=20
>=20
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


--=20
Cheers,

R.





--Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUkBfAAoJEOLF27JWwSg3bbMQAMETn7dHl3v+upPEhsRFUy9e
V1KUstLLh50o8kVl17QLH6CuL/ph7bV4wpYJgPMMQhUw93zENkzuN9/JV1zUzeTX
qCcbl4sIAzjSyTvpKHZvxxC/EWWfEbxjU0V3Tdu5YYgO+qKNZths+J4C6thhThN5
y7omzfoCQNK0kq1voI751MJi5KsD/cfPn9pMEoWbBh6S5ww89fQre9ishCz2magz
EWUWxxqu8OAuGvfAypUGqe8OMzirVetwT5Vi+pGxCNPNPkL/3DD9QHeqUuO5Vr59
bIKsRism8CkLhwz4EtWIgS8sLla6uGcfOIfB/SRBWOvu9F7ETCgFDiBiPMKAYzCY
jxn/dNUIR2kIZJ8n8JweNu4QlhlsRKuVszKFzq1JkRjwC3L0+uiI2tDR3DmrxVV7
cwJ41jcZOXnQlv+HLnndiMFDsJN28ZU6bMHABbd7opHduk3xudH9pcNkP1y0oarQ
5qvEXyhauosjdSE/Bx98suVE9vuTtHgzSu5SI1xOpE4owEtOPZ/AMz+4MSBasJmR
C1HWJYd/WjA9FoO247MmmUpZ0B/lws9M92J3AzP0KQ55wTBtfsF5LusRaWAM5ae2
yaZiaaoqWTmQ1tbVB0Q6gcyBW+5qcrCkxlbNfaYrHp1eU7p/EqhaQs5CnIaPlKf4
f7zijIyOsCFsuN2wLIdr
=SiLs
-----END PGP SIGNATURE-----

--Apple-Mail=_F60B4B03-172C-43F8-9359-C3B0EF06634F--


--===============0253548508063390073==
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

--===============0253548508063390073==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 14:25:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 14:25: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 1Xjqf1-000341-8c; Thu, 30 Oct 2014 14:25:11 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjqes-00032o-AE
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 14:25:02 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	ED/78-02576-D3A42545; Thu, 30 Oct 2014 14:25:01 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-14.tower-27.messagelabs.com!1414679100!13454614!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13168 invoked from network); 30 Oct 2014 14:25:00 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-14.tower-27.messagelabs.com with SMTP;
	30 Oct 2014 14:25:00 -0000
Received: (qmail 11555 invoked from network); 30 Oct 2014 14:25:06 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 30 Oct 2014 14:25:06 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11412-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 14:24:58 +0000 (GMT)
Received: (qmail 10253 invoked by uid 599); 30 Oct 2014 14:20:33 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 14:20:33 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjqaT-00070O-ES; Thu, 30 Oct 2014 14:20:29 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Leonard <talex5@gmail.com>
Date: Thu, 30 Oct 2014 14:20:23 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0TKbQXDSqpZ3XRpi74swHM7rjhA==
Message-ID: <9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
In-Reply-To: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============9173739140899255059=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============9173739140899255059==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 30 Oct 2014, at 09:36, Thomas Leonard <talex5@gmail.com> wrote:

> Here's what I have so far:
>=20
> =
https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>=20
> There's not much here, but it would be good to keep this API stable as
> pretty much all mirage libraries will be using it.

some quick thoughts:

trace_stubs.mli:

would it make sense for note_{suspend,resume} to be string -> unit (or =
some more opaque type than string even, though perhaps of fixed size) so =
that the programmer can indicate reasons for the suspend/resume?

can labels on threads be changed over their lifetime?  can labels =
overlap or are they unique?  if unique, within what context?

trace_enabled.mli:

how do i interact with the buffer other than to snapshot it?

...and what's counter for?  (ie., how general/widely used is it intended =
to be?)

> The API for controlling the tracing, dumping out events, etc is much
> less critical and can be changed later, as it only matters to the
> developer profiling their unikernel.

agree to some extent -- though if some components wish to control =
tracing in other components as a result of observation of their own =
behaviour, the control API may become  more pervasively used than the =
dumping/display api i guess.

--=20
Cheers,

R.





--Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUkknAAoJEOLF27JWwSg39GEP/3m8uAtreNWQz2X2xZHAz3cx
lyqIoPWRzZpmD8ikf6rIYMXdElIWKj0Aft7y5FKCSngtbmvlk6tfR4cjE5qtBIqC
mdgoAErvaQPgVawo9rVGdHB46AaLekpTBLDwICpWYTsSSdjTjTcMCtW/KkBF+5f8
peb2EtfzhoxVDav4FWtGgEkY63qMvXIH1i1yJrXohQAFlvH6uPMti7Wk4mwI80Kz
fxv0cN0HnCk7GR+SNzgGcQPnCo7j6IQUPlC6hq09qc9QyZamJgCRH6fV0AK7bl26
qjTb3ZZ9o0vh/4xLE8fRszFeYxwaDBO/BVfuNYrSeCxYjLMVDLOPIzlQQvc9CeCz
dcjrG6sNxQp05J42zhYUTjA9bcs0QW0rtt1K1xQ2ubXJozQT/bn8fai0LUWeKS9e
Uyw+USDp4sdGXuyF6geQLVGOc8F7/eg3ryHL3dpaekQPIa3qE2EwP9AFZS7OxLxZ
Iaulucyp679FQ+Km+fOgwPZZFZVAjkRjUqAh1sxm1pyeKd58E3GvL39XNRpkn9Ba
c6Nt43wUVkAEoVv7u1c6vLh3j8CaumHzAtWeRNvGoPuuKb/9UH/GZr19P4+j/0Hv
k2NgZWrAbrDL1cGDXeRek7E556zKrHl1juS45LzCxhC35c5uYQ4qEXnEyR0pinqm
2+S2CCV0IcBwUeWenRp+
=1liG
-----END PGP SIGNATURE-----

--Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536--


--===============9173739140899255059==
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

--===============9173739140899255059==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 14:25:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 14:25: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 1Xjqf1-000341-8c; Thu, 30 Oct 2014 14:25:11 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjqes-00032o-AE
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 14:25:02 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	ED/78-02576-D3A42545; Thu, 30 Oct 2014 14:25:01 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-14.tower-27.messagelabs.com!1414679100!13454614!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13168 invoked from network); 30 Oct 2014 14:25:00 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-14.tower-27.messagelabs.com with SMTP;
	30 Oct 2014 14:25:00 -0000
Received: (qmail 11555 invoked from network); 30 Oct 2014 14:25:06 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 30 Oct 2014 14:25:06 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 11412-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 14:24:58 +0000 (GMT)
Received: (qmail 10253 invoked by uid 599); 30 Oct 2014 14:20:33 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 14:20:33 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjqaT-00070O-ES; Thu, 30 Oct 2014 14:20:29 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Leonard <talex5@gmail.com>
Date: Thu, 30 Oct 2014 14:20:23 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0TKbQXDSqpZ3XRpi74swHM7rjhA==
Message-ID: <9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
In-Reply-To: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============9173739140899255059=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============9173739140899255059==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 30 Oct 2014, at 09:36, Thomas Leonard <talex5@gmail.com> wrote:

> Here's what I have so far:
>=20
> =
https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>=20
> There's not much here, but it would be good to keep this API stable as
> pretty much all mirage libraries will be using it.

some quick thoughts:

trace_stubs.mli:

would it make sense for note_{suspend,resume} to be string -> unit (or =
some more opaque type than string even, though perhaps of fixed size) so =
that the programmer can indicate reasons for the suspend/resume?

can labels on threads be changed over their lifetime?  can labels =
overlap or are they unique?  if unique, within what context?

trace_enabled.mli:

how do i interact with the buffer other than to snapshot it?

...and what's counter for?  (ie., how general/widely used is it intended =
to be?)

> The API for controlling the tracing, dumping out events, etc is much
> less critical and can be changed later, as it only matters to the
> developer profiling their unikernel.

agree to some extent -- though if some components wish to control =
tracing in other components as a result of observation of their own =
behaviour, the control API may become  more pervasively used than the =
dumping/display api i guess.

--=20
Cheers,

R.





--Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUkknAAoJEOLF27JWwSg39GEP/3m8uAtreNWQz2X2xZHAz3cx
lyqIoPWRzZpmD8ikf6rIYMXdElIWKj0Aft7y5FKCSngtbmvlk6tfR4cjE5qtBIqC
mdgoAErvaQPgVawo9rVGdHB46AaLekpTBLDwICpWYTsSSdjTjTcMCtW/KkBF+5f8
peb2EtfzhoxVDav4FWtGgEkY63qMvXIH1i1yJrXohQAFlvH6uPMti7Wk4mwI80Kz
fxv0cN0HnCk7GR+SNzgGcQPnCo7j6IQUPlC6hq09qc9QyZamJgCRH6fV0AK7bl26
qjTb3ZZ9o0vh/4xLE8fRszFeYxwaDBO/BVfuNYrSeCxYjLMVDLOPIzlQQvc9CeCz
dcjrG6sNxQp05J42zhYUTjA9bcs0QW0rtt1K1xQ2ubXJozQT/bn8fai0LUWeKS9e
Uyw+USDp4sdGXuyF6geQLVGOc8F7/eg3ryHL3dpaekQPIa3qE2EwP9AFZS7OxLxZ
Iaulucyp679FQ+Km+fOgwPZZFZVAjkRjUqAh1sxm1pyeKd58E3GvL39XNRpkn9Ba
c6Nt43wUVkAEoVv7u1c6vLh3j8CaumHzAtWeRNvGoPuuKb/9UH/GZr19P4+j/0Hv
k2NgZWrAbrDL1cGDXeRek7E556zKrHl1juS45LzCxhC35c5uYQ4qEXnEyR0pinqm
2+S2CCV0IcBwUeWenRp+
=1liG
-----END PGP SIGNATURE-----

--Apple-Mail=_E6D4187A-715F-4199-A5A3-4FA9B2811536--


--===============9173739140899255059==
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

--===============9173739140899255059==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 14:30:36 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 14:30: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 1XjqkC-0003jQ-Jz; Thu, 30 Oct 2014 14:30:32 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XjqkC-0003jK-3j
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 14:30:32 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	BA/9E-24532-78B42545; Thu, 30 Oct 2014 14:30:31 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414679425!13733753!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_8,
	RCVD_BY_IP,spamassassin: 
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31921 invoked from network); 30 Oct 2014 14:30:26 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 14:30:26 -0000
Received: by mail-vc0-f173.google.com with SMTP id le20so2789114vcb.18
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 07:30:24 -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=4gqc98hLaCy6KuNV+huFYj8xY+FJ/M8PaLmXqD4D5fE=;
	b=bo7G3D9JplAoswoGOXOg61tnsLZ5iMVEsyuR8TiHbWA4mm2VIutLH2uGjKt/c7r+aW
	O7sylh2txpHlct5F2CcjaLH0jewN/Uz5TCoOY4FuDYpcp/I0YiDGxo3pB3Tl39Gxdzba
	LU0iwUtJSAAmlVLxyN3g+7JCXR3TWPn/Az+BBQsBX7Nn5d7KuC88JEk6DEwEVa5a+KX0
	dYjV8Hw2SicrBjqlZNucWgEg/jQrwQizvWBqKpo90e8lurmKGxz4gsTDRDsGSEAsJo7o
	n8P2oncoC4iI51R29gldyxdKi+6zNQYpaUMXJrp3KD2vBXkayN6rYcPLFnMKxWdzISmB
	EgwA==
X-Gm-Message-State: ALoCoQmhW2vIf/GnE02Cf5fG6si1tm7drk2bh3d++VM/QUQRt6VxHtV3CwHhuAf0oOGJxSqiLP56
MIME-Version: 1.0
X-Received: by 10.52.65.202 with SMTP id z10mr8285862vds.35.1414679424729;
	Thu, 30 Oct 2014 07:30:24 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 30 Oct 2014 07:30:24 -0700 (PDT)
In-Reply-To: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
Date: Thu, 30 Oct 2014 10:30:24 -0400
Message-ID: <CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>
> Here's what I have so far:
>
> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>
> There's not much here, but it would be good to keep this API stable as
> pretty much all mirage libraries will be using it.
>
> The API for controlling the tracing, dumping out events, etc is much
> less critical and can be changed later, as it only matters to the
> developer profiling their unikernel.
>
> Comments welcome!

Nice blog post; it was interesting to see some of the earlier
performance puzzles re-examined with your new tools.

Recently I found the Google trace-viewer [1] tool; it was built to
analyze performance issues in Chrome [2], is now being used for
Android, and the Go language may adopt it as well [3].  I think it
would be worthwhile to a) review their event types and JSON format [4]
for inspiration, and b) consider trace-viewer as an alternative viewer
for some use cases.

As an experiment, I manually instrumented mirage-www with trace-viewer
JSON output, and the result is here [5].  Download that file, open
about://tracing in Chrome, then Load the .trace file.  (Failing that,
you can get the trace-viewer source [1] and run the dev_server, or
view the self-contained HTML/JS version [6]).  Press '?' for help.

The trace shows a browser loading the mirage-www home page, from the
server's point-of-view.  At the top are some GC counters, captured
once per second; the (hard-to-see) vertical green lines represent Gc
alarm callbacks.  Below that are all of the HTTP requests and related
FS calls, organized by HTTP connection -- in the Cohttp callback, I
store the conn_id in a thread-local, and use that as a "thread ID"
when recording events.

Overall you should see that the browser used 6 concurrent connections
to load all of the resources on the home page, and that generating
index.html requires reading a lot of files.  It would be nice if I
could look deeper into Cohttp and FS with mirage-profile, but use
trace-viewer as the presentation format.  (So far I am using just a
few features of the trace output, there are other examples in the
test_data folder of [1]).

To be clear, I don't think that trace-viewer could present low-level
Lwt scheduling as well as mirage-trace-viewer does.  However, it could
be useful for viewing a unikernel's behavior from other perspectives.

[1] https://github.com/google/trace-viewer
[2] http://dev.chromium.org/developers/how-tos/trace-event-profiling-tool
[3] http://dotgo.sourcegraph.com/post/99652962343/brad-fitzpatrick-on-the-future-of-the-go-programming
(see: GOTRACE)
[4] https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit?usp=sharing
[5] https://s3.amazonaws.com/lnmx-public/mirage-www.trace
[6] https://s3.amazonaws.com/lnmx-public/mirage-www.html

--
Len

_______________________________________________
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 Oct 30 14:30:36 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 14:30: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 1XjqkC-0003jQ-Jz; Thu, 30 Oct 2014 14:30:32 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XjqkC-0003jK-3j
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 14:30:32 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	BA/9E-24532-78B42545; Thu, 30 Oct 2014 14:30:31 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414679425!13733753!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_8,
	RCVD_BY_IP,spamassassin: 
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31921 invoked from network); 30 Oct 2014 14:30:26 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 14:30:26 -0000
Received: by mail-vc0-f173.google.com with SMTP id le20so2789114vcb.18
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 07:30:24 -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=4gqc98hLaCy6KuNV+huFYj8xY+FJ/M8PaLmXqD4D5fE=;
	b=bo7G3D9JplAoswoGOXOg61tnsLZ5iMVEsyuR8TiHbWA4mm2VIutLH2uGjKt/c7r+aW
	O7sylh2txpHlct5F2CcjaLH0jewN/Uz5TCoOY4FuDYpcp/I0YiDGxo3pB3Tl39Gxdzba
	LU0iwUtJSAAmlVLxyN3g+7JCXR3TWPn/Az+BBQsBX7Nn5d7KuC88JEk6DEwEVa5a+KX0
	dYjV8Hw2SicrBjqlZNucWgEg/jQrwQizvWBqKpo90e8lurmKGxz4gsTDRDsGSEAsJo7o
	n8P2oncoC4iI51R29gldyxdKi+6zNQYpaUMXJrp3KD2vBXkayN6rYcPLFnMKxWdzISmB
	EgwA==
X-Gm-Message-State: ALoCoQmhW2vIf/GnE02Cf5fG6si1tm7drk2bh3d++VM/QUQRt6VxHtV3CwHhuAf0oOGJxSqiLP56
MIME-Version: 1.0
X-Received: by 10.52.65.202 with SMTP id z10mr8285862vds.35.1414679424729;
	Thu, 30 Oct 2014 07:30:24 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 30 Oct 2014 07:30:24 -0700 (PDT)
In-Reply-To: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
Date: Thu, 30 Oct 2014 10:30:24 -0400
Message-ID: <CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>
> Here's what I have so far:
>
> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>
> There's not much here, but it would be good to keep this API stable as
> pretty much all mirage libraries will be using it.
>
> The API for controlling the tracing, dumping out events, etc is much
> less critical and can be changed later, as it only matters to the
> developer profiling their unikernel.
>
> Comments welcome!

Nice blog post; it was interesting to see some of the earlier
performance puzzles re-examined with your new tools.

Recently I found the Google trace-viewer [1] tool; it was built to
analyze performance issues in Chrome [2], is now being used for
Android, and the Go language may adopt it as well [3].  I think it
would be worthwhile to a) review their event types and JSON format [4]
for inspiration, and b) consider trace-viewer as an alternative viewer
for some use cases.

As an experiment, I manually instrumented mirage-www with trace-viewer
JSON output, and the result is here [5].  Download that file, open
about://tracing in Chrome, then Load the .trace file.  (Failing that,
you can get the trace-viewer source [1] and run the dev_server, or
view the self-contained HTML/JS version [6]).  Press '?' for help.

The trace shows a browser loading the mirage-www home page, from the
server's point-of-view.  At the top are some GC counters, captured
once per second; the (hard-to-see) vertical green lines represent Gc
alarm callbacks.  Below that are all of the HTTP requests and related
FS calls, organized by HTTP connection -- in the Cohttp callback, I
store the conn_id in a thread-local, and use that as a "thread ID"
when recording events.

Overall you should see that the browser used 6 concurrent connections
to load all of the resources on the home page, and that generating
index.html requires reading a lot of files.  It would be nice if I
could look deeper into Cohttp and FS with mirage-profile, but use
trace-viewer as the presentation format.  (So far I am using just a
few features of the trace output, there are other examples in the
test_data folder of [1]).

To be clear, I don't think that trace-viewer could present low-level
Lwt scheduling as well as mirage-trace-viewer does.  However, it could
be useful for viewing a unikernel's behavior from other perspectives.

[1] https://github.com/google/trace-viewer
[2] http://dev.chromium.org/developers/how-tos/trace-event-profiling-tool
[3] http://dotgo.sourcegraph.com/post/99652962343/brad-fitzpatrick-on-the-future-of-the-go-programming
(see: GOTRACE)
[4] https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit?usp=sharing
[5] https://s3.amazonaws.com/lnmx-public/mirage-www.trace
[6] https://s3.amazonaws.com/lnmx-public/mirage-www.html

--
Len

_______________________________________________
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 Oct 30 15:40:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 15:40: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 1XjrpV-0008BW-EZ; Thu, 30 Oct 2014 15:40:05 +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 1XjrpU-0008BR-36
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 15:40:04 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	1A/FE-02953-3DB52545; Thu, 30 Oct 2014 15:40:03 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1414683601!13463076!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29845 invoked from network); 30 Oct 2014 15:40:01 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Oct 2014 15:40:01 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d885fdb1;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 30 Oct 2014 15:43:14 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
Date: Thu, 30 Oct 2014 15:40:00 +0000
Message-Id: <9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
To: Len Maxwell <len@lnmx.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Oct 2014, at 14:30, Len Maxwell <len@lnmx.org> wrote:
> 
> On Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>> 
>> Here's what I have so far:
>> 
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>> 
>> There's not much here, but it would be good to keep this API stable as
>> pretty much all mirage libraries will be using it.
>> 
>> The API for controlling the tracing, dumping out events, etc is much
>> less critical and can be changed later, as it only matters to the
>> developer profiling their unikernel.
>> 
>> Comments welcome!
> 
> Nice blog post; it was interesting to see some of the earlier
> performance puzzles re-examined with your new tools.
> 
> Recently I found the Google trace-viewer [1] tool; it was built to
> analyze performance issues in Chrome [2], is now being used for
> Android, and the Go language may adopt it as well [3].  I think it
> would be worthwhile to a) review their event types and JSON format [4]
> for inspiration, and b) consider trace-viewer as an alternative viewer
> for some use cases.
> 
> As an experiment, I manually instrumented mirage-www with trace-viewer
> JSON output, and the result is here [5].  Download that file, open
> about://tracing in Chrome, then Load the .trace file.  (Failing that,
> you can get the trace-viewer source [1] and run the dev_server, or
> view the self-contained HTML/JS version [6]).  Press '?' for help.

> The trace shows a browser loading the mirage-www home page, from the
> server's point-of-view.  At the top are some GC counters, captured
> once per second; the (hard-to-see) vertical green lines represent Gc
> alarm callbacks.  Below that are all of the HTTP requests and related
> FS calls, organized by HTTP connection -- in the Cohttp callback, I
> store the conn_id in a thread-local, and use that as a "thread ID"
> when recording events.
> 
> Overall you should see that the browser used 6 concurrent connections
> to load all of the resources on the home page, and that generating
> index.html requires reading a lot of files.  It would be nice if I
> could look deeper into Cohttp and FS with mirage-profile, but use
> trace-viewer as the presentation format.  (So far I am using just a
> few features of the trace output, there are other examples in the
> test_data folder of [1]).
> 
> To be clear, I don't think that trace-viewer could present low-level
> Lwt scheduling as well as mirage-trace-viewer does.  However, it could
> be useful for viewing a unikernel's behavior from other perspectives.


I didn't even know of the existence of this tool, so the trace format
looks useful even if the Chrome tool itself doesn't quite match.  The
HN thread mentioned the LTTng, which doesn't look quite as well used
as this (which is used for actual profiling in Android and Chrome, by
the looks of it).

-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 Oct 30 15:40:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 15:40: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 1XjrpV-0008BW-EZ; Thu, 30 Oct 2014 15:40:05 +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 1XjrpU-0008BR-36
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 15:40:04 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	1A/FE-02953-3DB52545; Thu, 30 Oct 2014 15:40:03 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1414683601!13463076!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29845 invoked from network); 30 Oct 2014 15:40:01 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Oct 2014 15:40:01 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id d885fdb1;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 30 Oct 2014 15:43:14 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
Date: Thu, 30 Oct 2014 15:40:00 +0000
Message-Id: <9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
To: Len Maxwell <len@lnmx.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Oct 2014, at 14:30, Len Maxwell <len@lnmx.org> wrote:
> 
> On Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>> 
>> Here's what I have so far:
>> 
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>> 
>> There's not much here, but it would be good to keep this API stable as
>> pretty much all mirage libraries will be using it.
>> 
>> The API for controlling the tracing, dumping out events, etc is much
>> less critical and can be changed later, as it only matters to the
>> developer profiling their unikernel.
>> 
>> Comments welcome!
> 
> Nice blog post; it was interesting to see some of the earlier
> performance puzzles re-examined with your new tools.
> 
> Recently I found the Google trace-viewer [1] tool; it was built to
> analyze performance issues in Chrome [2], is now being used for
> Android, and the Go language may adopt it as well [3].  I think it
> would be worthwhile to a) review their event types and JSON format [4]
> for inspiration, and b) consider trace-viewer as an alternative viewer
> for some use cases.
> 
> As an experiment, I manually instrumented mirage-www with trace-viewer
> JSON output, and the result is here [5].  Download that file, open
> about://tracing in Chrome, then Load the .trace file.  (Failing that,
> you can get the trace-viewer source [1] and run the dev_server, or
> view the self-contained HTML/JS version [6]).  Press '?' for help.

> The trace shows a browser loading the mirage-www home page, from the
> server's point-of-view.  At the top are some GC counters, captured
> once per second; the (hard-to-see) vertical green lines represent Gc
> alarm callbacks.  Below that are all of the HTTP requests and related
> FS calls, organized by HTTP connection -- in the Cohttp callback, I
> store the conn_id in a thread-local, and use that as a "thread ID"
> when recording events.
> 
> Overall you should see that the browser used 6 concurrent connections
> to load all of the resources on the home page, and that generating
> index.html requires reading a lot of files.  It would be nice if I
> could look deeper into Cohttp and FS with mirage-profile, but use
> trace-viewer as the presentation format.  (So far I am using just a
> few features of the trace output, there are other examples in the
> test_data folder of [1]).
> 
> To be clear, I don't think that trace-viewer could present low-level
> Lwt scheduling as well as mirage-trace-viewer does.  However, it could
> be useful for viewing a unikernel's behavior from other perspectives.


I didn't even know of the existence of this tool, so the trace format
looks useful even if the Chrome tool itself doesn't quite match.  The
HN thread mentioned the LTTng, which doesn't look quite as well used
as this (which is used for actual profiling in Android and Chrome, by
the looks of it).

-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 Oct 30 15:55:39 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 15:55:39 +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 1Xjs4X-0008QV-MT; Thu, 30 Oct 2014 15:55:37 +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 1Xjs4W-0008QQ-G9
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 15:55:36 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	CA/52-02698-77F52545; Thu, 30 Oct 2014 15:55:35 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-27.messagelabs.com!1414684534!8067590!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15751 invoked from network); 30 Oct 2014 15:55:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Oct 2014 15:55:35 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b5820e5e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 30 Oct 2014 15:58:48 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
Date: Thu, 30 Oct 2014 15:55:34 +0000
Message-Id: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

T24gMzAgT2N0IDIwMTQsIGF0IDA5OjM2LCBUaG9tYXMgTGVvbmFyZCA8dGFsZXg1QGdtYWlsLmNv
bT4gd3JvdGU6Cj4gCj4gT24gMjggT2N0b2JlciAyMDE0IDIyOjM2LCBEYW5pZWwgQsO8bnpsaSA8
ZGFuaWVsLmJ1ZW56bGlAZXJyYXRpcXVlLmNoPiB3cm90ZToKPj4gCj4+IExlIG1hcmRpLCAyOCBv
Y3RvYnJlIDIwMTQgw6AgMjM6MjEsIEFuaWwgTWFkaGF2YXBlZGR5IGEgw6ljcml0IDoKPj4gCj4+
PiBBc3NlbWJsYWdlIGlzIHN0aWxsIHVuZGVyZ29pbmcgJ3JhcGlkIGl0ZXJhdGlvbicsIHNvIEkn
ZCBzdWdnZXN0Cj4+PiBzd2l0Y2hpbmcgdG8gT0FTSVMgdW50aWwgd2UgaGF2ZSBhIG1vcmUgc3Rh
YmxlIHZlcnNpb24uIFRob21hc0cgb3IKPj4+IERhbmllbCBCdWVuemxpIGNhbiBjb3JyZWN0IG1l
IGlmIHRoYXQncyBub3QgYWNjdXJhdGUuCj4+IAo+PiBUaGF0J3MgYWNjdXJhdGUuIElmIHdlIGFn
cmVlIHdpdGggVGhvbWFzIG9uIHRoZSBQUiBJJ20gZ29pbmcgdG8gbWFrZSBuZXh0IHdlZWssIHRo
ZSBjdXJyZW50IEFQSSBjb21wbGV0ZWx5IGNoYW5nZXMgYW5kIGFzc2VtYmxlLm1sIGZpbGVzIHdp
bGwgbmVlZCByZXdyaXRpbmcuIFdlIG5lZWQgdGltZSB0byBkZXNpZ24gYSBncmVhdCBzeXN0ZW0g
YW5kIGl0J3MgYmV0dGVyIGlmIHdlIGRvbid0IGVuY3VtYmVyIG91cnNlbHZlcyB3aXRoIHVzZXJz
IGF0IHRoZSBtb21lbnQuCj4gCj4gT0ssIGRvbmUgKHRoYW5rcyB0byBUaG9tYXMgZm9yIHNvbWUg
T1BBTSBoZWxwISkuIEkgdGhpbmsgdGhlIG1haW4KPiB0aGluZyBub3cgaXMgdG8gYWdyZWUgdGhl
IEFQSSBmb3IgbGlicmFyaWVzIHRvIHJlY29yZCB0cmFjaW5nIGV2ZW50cy4KPiAKPiBIZXJlJ3Mg
d2hhdCBJIGhhdmUgc28gZmFyOgo+IAo+IGh0dHBzOi8vZ2l0aHViLmNvbS90YWxleDUvbWlyYWdl
LXByb2ZpbGUvYmxvYi9uZXctYXBpL2xpYi90cmFjZV9zdHVicy5tbGkKPiBodHRwczovL2dpdGh1
Yi5jb20vdGFsZXg1L21pcmFnZS1wcm9maWxlL2Jsb2IvbmV3LWFwaS9saWIvY291bnRlci5tbGkK
CkRvZXMgbm90ZV9zdXNwZW5kL25vdGVfcmVzdW1lIGhlcmUgcmVmZXIgdG8gZHJvcHBpbmcgaW4g
dGhlIHNjaGVkdWxlciAodGhlCmVxdWl2YWxlbnQgb2YgYmxvY2tpbmcgdGhlIGRvbWFpbik/ICBJ
dCBjb3VsZCBlYXNpbHkgYmUgY29uZmxhdGVkIHdpdGgKVk0gc3VzcGVuZC9yZXN1bWUgKHdoaWNo
IGlzIGEgaGlnaGVyLWxldmVsIHByb3RvY29sKS4gIFRoZSBhY3R1YWwgc3RhdGUKdHJhbnNpdGlv
biBpcyAid2FpdGluZyBmb3IgSS9PIiwgc28gcGVyaGFwcyB3ZSBzaG91bGQgbmFtZSBpdCBhZnRl
ciB0aGF0PwoKVG8gZWNobyBNb3J0J3MgY29tbWVudCwgaXN0ciBpbiBYZW5zdG9yZSB0aGF0IHRo
ZXJlIHdhcyBhIHByb2JsZW0gd2l0aCBtYW55CmR1cGxpY2F0ZSBzdHJpbmdzIGZvciBsYWJlbHMs
IHNvIGl0IGhhcyBhIG1vZHVsZSBzb21ld2hlcmUgdGhhdCBjcmVhdGVzCmEgU3ltYm9sLnQgdGhh
dCBkZWR1cHMgc2ltaWxhciBzdHJpbmdzLCBhbmQgYWxzbyBoYXMgdGhlIGJlbmVmaXQgdGhhdApj
b21wYXJpc29uIGNhbiBiZSBkb25lIHZpYSBmYXN0IGVxdWFsaXR5IHJhdGhlciB0aGFuIGJ5dGUt
YnktYnl0ZSBjaGVja2luZy4KSXQgYWxzbyBhbGxvd3MgZXJyb3JzIHRvIGJlIGZsYWdnZWQgdXAg
aWYgKGZvciBleGFtcGxlKSBkdXBsaWNhdGUgc3ltYm9sCm5hbWVzIGFyZSB1c2VkIGluIGRpZmZl
cmVudCBwcm9ncmFtcy4KCkFuaWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 15:55:39 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 15:55:39 +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 1Xjs4X-0008QV-MT; Thu, 30 Oct 2014 15:55:37 +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 1Xjs4W-0008QQ-G9
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 15:55:36 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	CA/52-02698-77F52545; Thu, 30 Oct 2014 15:55:35 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-27.messagelabs.com!1414684534!8067590!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15751 invoked from network); 30 Oct 2014 15:55:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Oct 2014 15:55:35 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id b5820e5e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 30 Oct 2014 15:58:48 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
Date: Thu, 30 Oct 2014 15:55:34 +0000
Message-Id: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

T24gMzAgT2N0IDIwMTQsIGF0IDA5OjM2LCBUaG9tYXMgTGVvbmFyZCA8dGFsZXg1QGdtYWlsLmNv
bT4gd3JvdGU6Cj4gCj4gT24gMjggT2N0b2JlciAyMDE0IDIyOjM2LCBEYW5pZWwgQsO8bnpsaSA8
ZGFuaWVsLmJ1ZW56bGlAZXJyYXRpcXVlLmNoPiB3cm90ZToKPj4gCj4+IExlIG1hcmRpLCAyOCBv
Y3RvYnJlIDIwMTQgw6AgMjM6MjEsIEFuaWwgTWFkaGF2YXBlZGR5IGEgw6ljcml0IDoKPj4gCj4+
PiBBc3NlbWJsYWdlIGlzIHN0aWxsIHVuZGVyZ29pbmcgJ3JhcGlkIGl0ZXJhdGlvbicsIHNvIEkn
ZCBzdWdnZXN0Cj4+PiBzd2l0Y2hpbmcgdG8gT0FTSVMgdW50aWwgd2UgaGF2ZSBhIG1vcmUgc3Rh
YmxlIHZlcnNpb24uIFRob21hc0cgb3IKPj4+IERhbmllbCBCdWVuemxpIGNhbiBjb3JyZWN0IG1l
IGlmIHRoYXQncyBub3QgYWNjdXJhdGUuCj4+IAo+PiBUaGF0J3MgYWNjdXJhdGUuIElmIHdlIGFn
cmVlIHdpdGggVGhvbWFzIG9uIHRoZSBQUiBJJ20gZ29pbmcgdG8gbWFrZSBuZXh0IHdlZWssIHRo
ZSBjdXJyZW50IEFQSSBjb21wbGV0ZWx5IGNoYW5nZXMgYW5kIGFzc2VtYmxlLm1sIGZpbGVzIHdp
bGwgbmVlZCByZXdyaXRpbmcuIFdlIG5lZWQgdGltZSB0byBkZXNpZ24gYSBncmVhdCBzeXN0ZW0g
YW5kIGl0J3MgYmV0dGVyIGlmIHdlIGRvbid0IGVuY3VtYmVyIG91cnNlbHZlcyB3aXRoIHVzZXJz
IGF0IHRoZSBtb21lbnQuCj4gCj4gT0ssIGRvbmUgKHRoYW5rcyB0byBUaG9tYXMgZm9yIHNvbWUg
T1BBTSBoZWxwISkuIEkgdGhpbmsgdGhlIG1haW4KPiB0aGluZyBub3cgaXMgdG8gYWdyZWUgdGhl
IEFQSSBmb3IgbGlicmFyaWVzIHRvIHJlY29yZCB0cmFjaW5nIGV2ZW50cy4KPiAKPiBIZXJlJ3Mg
d2hhdCBJIGhhdmUgc28gZmFyOgo+IAo+IGh0dHBzOi8vZ2l0aHViLmNvbS90YWxleDUvbWlyYWdl
LXByb2ZpbGUvYmxvYi9uZXctYXBpL2xpYi90cmFjZV9zdHVicy5tbGkKPiBodHRwczovL2dpdGh1
Yi5jb20vdGFsZXg1L21pcmFnZS1wcm9maWxlL2Jsb2IvbmV3LWFwaS9saWIvY291bnRlci5tbGkK
CkRvZXMgbm90ZV9zdXNwZW5kL25vdGVfcmVzdW1lIGhlcmUgcmVmZXIgdG8gZHJvcHBpbmcgaW4g
dGhlIHNjaGVkdWxlciAodGhlCmVxdWl2YWxlbnQgb2YgYmxvY2tpbmcgdGhlIGRvbWFpbik/ICBJ
dCBjb3VsZCBlYXNpbHkgYmUgY29uZmxhdGVkIHdpdGgKVk0gc3VzcGVuZC9yZXN1bWUgKHdoaWNo
IGlzIGEgaGlnaGVyLWxldmVsIHByb3RvY29sKS4gIFRoZSBhY3R1YWwgc3RhdGUKdHJhbnNpdGlv
biBpcyAid2FpdGluZyBmb3IgSS9PIiwgc28gcGVyaGFwcyB3ZSBzaG91bGQgbmFtZSBpdCBhZnRl
ciB0aGF0PwoKVG8gZWNobyBNb3J0J3MgY29tbWVudCwgaXN0ciBpbiBYZW5zdG9yZSB0aGF0IHRo
ZXJlIHdhcyBhIHByb2JsZW0gd2l0aCBtYW55CmR1cGxpY2F0ZSBzdHJpbmdzIGZvciBsYWJlbHMs
IHNvIGl0IGhhcyBhIG1vZHVsZSBzb21ld2hlcmUgdGhhdCBjcmVhdGVzCmEgU3ltYm9sLnQgdGhh
dCBkZWR1cHMgc2ltaWxhciBzdHJpbmdzLCBhbmQgYWxzbyBoYXMgdGhlIGJlbmVmaXQgdGhhdApj
b21wYXJpc29uIGNhbiBiZSBkb25lIHZpYSBmYXN0IGVxdWFsaXR5IHJhdGhlciB0aGFuIGJ5dGUt
YnktYnl0ZSBjaGVja2luZy4KSXQgYWxzbyBhbGxvd3MgZXJyb3JzIHRvIGJlIGZsYWdnZWQgdXAg
aWYgKGZvciBleGFtcGxlKSBkdXBsaWNhdGUgc3ltYm9sCm5hbWVzIGFyZSB1c2VkIGluIGRpZmZl
cmVudCBwcm9ncmFtcy4KCkFuaWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 16:12:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:12: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 1XjsKt-0000jU-Qk; Thu, 30 Oct 2014 16:12:31 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XjsKs-0000jP-El
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:12:30 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	3F/16-24532-D6362545; Thu, 30 Oct 2014 16:12:29 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1414685549!13753916!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5231 invoked from network); 30 Oct 2014 16:12:29 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:12:29 -0000
Received: by mail-wi0-f177.google.com with SMTP id ex7so7890204wid.16
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:12:29 -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=joqt3KjBCTIalyozNZ9e/7s/AIzIzfmQnfdKkixSjrg=;
	b=J2FdK6NHnRU4QYoWejaSihzgOQG5pYj157fWQIjAyl9nap1PkNEArvUv6wTMyHlmYu
	7dEfMVxJfhTO/ATtvlVy2SJRfIK7mFcLsNuGCjBZoS0UrgQWoEthEoy9LwJoextGxt4o
	MHWVYK2mpKAMMzzHuEN7zGIhxGtlXh6eFXQZdtmSdgsmdT+xlMCkmxK3+cvMj6OqhVzR
	cwE3PV1hB6ThM3+vO4P9CZVGqLY8MRnexCeL7qo8cLEcmTQlF2z6Jd+Upelb5CgP1Sfn
	uFUpXR8ORp1INFFkKDdfM7ntKNXQ6Gx/JqXE5CXvtvS266rt+uYRDkReImYJqoz0cySu
	k+Bw==
X-Received: by 10.180.85.6 with SMTP id d6mr26798196wiz.82.1414685548926;
	Thu, 30 Oct 2014 09:12:28 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id bi7sm9488472wib.17.2014.10.30.09.12.27
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 30 Oct 2014 09:12:28 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
Date: Thu, 30 Oct 2014 16:12:26 +0000
Message-Id: <8FC47CF0-9172-45DB-B064-73C42EF8865C@gazagnaire.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

> To echo Mort's comment, istr in Xenstore that there was a problem with many
> duplicate strings for labels, so it has a module somewhere that creates
> a Symbol.t that dedups similar strings, and also has the benefit that
> comparison can be done via fast equality rather than byte-by-byte checking.
> It also allows errors to be flagged up if (for example) duplicate symbol
> names are used in different programs.

The downside if that approach is that you need a GC to collect dead symbols regularly. Dave's newer versions removed that cache of symbols to keep things simple.

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 Thu Oct 30 16:12:33 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:12: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 1XjsKt-0000jU-Qk; Thu, 30 Oct 2014 16:12:31 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XjsKs-0000jP-El
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:12:30 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	3F/16-24532-D6362545; Thu, 30 Oct 2014 16:12:29 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1414685549!13753916!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5231 invoked from network); 30 Oct 2014 16:12:29 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:12:29 -0000
Received: by mail-wi0-f177.google.com with SMTP id ex7so7890204wid.16
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:12:29 -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=joqt3KjBCTIalyozNZ9e/7s/AIzIzfmQnfdKkixSjrg=;
	b=J2FdK6NHnRU4QYoWejaSihzgOQG5pYj157fWQIjAyl9nap1PkNEArvUv6wTMyHlmYu
	7dEfMVxJfhTO/ATtvlVy2SJRfIK7mFcLsNuGCjBZoS0UrgQWoEthEoy9LwJoextGxt4o
	MHWVYK2mpKAMMzzHuEN7zGIhxGtlXh6eFXQZdtmSdgsmdT+xlMCkmxK3+cvMj6OqhVzR
	cwE3PV1hB6ThM3+vO4P9CZVGqLY8MRnexCeL7qo8cLEcmTQlF2z6Jd+Upelb5CgP1Sfn
	uFUpXR8ORp1INFFkKDdfM7ntKNXQ6Gx/JqXE5CXvtvS266rt+uYRDkReImYJqoz0cySu
	k+Bw==
X-Received: by 10.180.85.6 with SMTP id d6mr26798196wiz.82.1414685548926;
	Thu, 30 Oct 2014 09:12:28 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id bi7sm9488472wib.17.2014.10.30.09.12.27
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Thu, 30 Oct 2014 09:12:28 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
Date: Thu, 30 Oct 2014 16:12:26 +0000
Message-Id: <8FC47CF0-9172-45DB-B064-73C42EF8865C@gazagnaire.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
To: Anil Madhavapeddy <anil@recoil.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

> To echo Mort's comment, istr in Xenstore that there was a problem with many
> duplicate strings for labels, so it has a module somewhere that creates
> a Symbol.t that dedups similar strings, and also has the benefit that
> comparison can be done via fast equality rather than byte-by-byte checking.
> It also allows errors to be flagged up if (for example) duplicate symbol
> names are used in different programs.

The downside if that approach is that you need a GC to collect dead symbols regularly. Dave's newer versions removed that cache of symbols to keep things simple.

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 Thu Oct 30 16:15:30 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:15: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 1XjsNm-0000lg-3c; Thu, 30 Oct 2014 16:15:30 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjsNk-0000lb-7U
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:15:28 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	B2/EB-09842-F1462545; Thu, 30 Oct 2014 16:15:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414685725!13764166!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19260 invoked from network); 30 Oct 2014 16:15:26 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Oct 2014 16:15:26 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 23fb10c8;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 30 Oct 2014 16:18:38 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <8FC47CF0-9172-45DB-B064-73C42EF8865C@gazagnaire.org>
Date: Thu, 30 Oct 2014 16:15:24 +0000
Message-Id: <2371F013-12E1-480A-953F-511DB094B4BD@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
	<8FC47CF0-9172-45DB-B064-73C42EF8865C@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Oct 2014, at 16:12, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
>> To echo Mort's comment, istr in Xenstore that there was a problem with many
>> duplicate strings for labels, so it has a module somewhere that creates
>> a Symbol.t that dedups similar strings, and also has the benefit that
>> comparison can be done via fast equality rather than byte-by-byte checking.
>> It also allows errors to be flagged up if (for example) duplicate symbol
>> names are used in different programs.
> 
> The downside if that approach is that you need a GC to collect dead symbols regularly. Dave's newer versions removed that cache of symbols to keep things simple.

Ah, I was wondering where that code had gone!  In the case of profiling,
there shouldn't be many dead symbols (but I can see why it's bad for the
Xenstore usecase).

-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 Oct 30 16:15:30 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:15: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 1XjsNm-0000lg-3c; Thu, 30 Oct 2014 16:15:30 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XjsNk-0000lb-7U
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:15:28 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	B2/EB-09842-F1462545; Thu, 30 Oct 2014 16:15:27 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-7.tower-21.messagelabs.com!1414685725!13764166!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.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19260 invoked from network); 30 Oct 2014 16:15:26 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 30 Oct 2014 16:15:26 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 23fb10c8;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Thu, 30 Oct 2014 16:18:38 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <8FC47CF0-9172-45DB-B064-73C42EF8865C@gazagnaire.org>
Date: Thu, 30 Oct 2014 16:15:24 +0000
Message-Id: <2371F013-12E1-480A-953F-511DB094B4BD@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
	<8FC47CF0-9172-45DB-B064-73C42EF8865C@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Oct 2014, at 16:12, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
>> To echo Mort's comment, istr in Xenstore that there was a problem with many
>> duplicate strings for labels, so it has a module somewhere that creates
>> a Symbol.t that dedups similar strings, and also has the benefit that
>> comparison can be done via fast equality rather than byte-by-byte checking.
>> It also allows errors to be flagged up if (for example) duplicate symbol
>> names are used in different programs.
> 
> The downside if that approach is that you need a GC to collect dead symbols regularly. Dave's newer versions removed that cache of symbols to keep things simple.

Ah, I was wondering where that code had gone!  In the case of profiling,
there shouldn't be many dead symbols (but I can see why it's bad for the
Xenstore usecase).

-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 Oct 30 16:29:50 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:29: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 1Xjsbc-0000y5-7c; Thu, 30 Oct 2014 16:29:48 +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 1Xjsba-0000y0-Jk
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:29:46 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	FC/0A-14727-97762545; Thu, 30 Oct 2014 16:29:45 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1414686583!8533009!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22255 invoked from network); 30 Oct 2014 16:29:45 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:29:45 -0000
Received: by mail-vc0-f170.google.com with SMTP id la4so2014394vcb.29
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:29:43 -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=sYcc9xzAFbOe8KpXkDY4DqHmBm0k2vawt+dW/dbmMFE=;
	b=l7xcgQDmqGa7WDTdBFdhNSoT3tbwQvh90fuuw4/EzPD4Gw1HUzi8Mjvyk8VuC1fRsY
	cC36bljqcxpaWznHPSrPDQ5mVV33A9sakJPx1L2lNEz0G8i6dEylpcZsd6H+p88K2L42
	OwtbIeEs1PoFqUHKIi9T5vaSIQVKkDac9rBvUa73MyweMzIl3NagKORWgIJ5AmSnru3X
	iAuVFV0WT8EVPkhN/1NAeIFwGoJxadY/SEKlFuEVxTCdLVa9IcpaC75wQfqzTBm8X3NC
	A7hdn8deI4JYAqlyhybRx8Ot3eqsZV87g3yjdQwmG7RdDQSau3lF+cvTSGRysnc4hKeN
	izqg==
MIME-Version: 1.0
X-Received: by 10.52.156.226 with SMTP id wh2mr33628vdb.83.1414686583630; Thu,
	30 Oct 2014 09:29:43 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 09:29:43 -0700 (PDT)
In-Reply-To: <9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 16:29:43 +0000
Message-ID: <CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 14:20, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
>
> On 30 Oct 2014, at 09:36, Thomas Leonard <talex5@gmail.com> wrote:
>
>> Here's what I have so far:
>>
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>>
>> There's not much here, but it would be good to keep this API stable as
>> pretty much all mirage libraries will be using it.
>
> some quick thoughts:
>
> trace_stubs.mli:
>
> would it make sense for note_{suspend,resume} to be string -> unit (or some more opaque type than string even, though perhaps of fixed size) so that the programmer can indicate reasons for the suspend/resume?

This name is perhaps confusing, but it's for block_domain/poll/select.
On Xen, mirage-platform's main.ml is that only thing that calls it.
The reason for suspending is always that there isn't any work to do
(exactly what we're waiting for is indicated by the sleeping event
channel threads at that moment).

If we had a more general version, it could perhaps be used for GC
pauses too, but there's a separate entry point for that using
Callback, because it's called from C code. Actual suspend-to-disk
could be another reason.

Are there any more types?

> can labels on threads be changed over their lifetime?  can labels overlap or are they unique?  if unique, within what context?

Originally there was one label per thread, but now they're essentially
just log messages that get attached to the active thread. They can be
used to label a thread, but also to note interesting events, so
perhaps a different name would be useful here (Trace.log?
Trace.note?). There should probably be a printf version too.

Actual labelling more often happens with named_wait, named_task, etc now.

> trace_enabled.mli:
>
> how do i interact with the buffer other than to snapshot it?

What kind of interations did you have in mind?

> ...and what's counter for?  (ie., how general/widely used is it intended to be?)

In the examples, I used counters for:

- Number of active grant refs
- Number of block reads completed
- Bytes written to console
- IP packets sent
- TCP bytes submitted
- TCP bytes ack'd

Measuring stuff can get complicated quickly. The last monitoring
system I worked on had many different types of "metric" (instantaneous
measurements, cumulative usage, on-going rates of increase, etc). You
could efficiently query for e.g. average response latecy between any
two points in time, allowing for real-time display of "average latency
over the last 5 min" or "number of requests since midnight", etc.

The counters were also arranged in a hierarchy. For example, you could
have a segments-acked counter for each TCP stream, which would then
also get aggregated as totals for that VM, and then further aggregated
both per-customer (across multiple VMs), and per resource pool. You
could see graphs of aggregated data and then drill down to see what
had contributed to it.

Some of the metrics were shared with customers[*], who treated them as
extra monitoring data for their own (outsourced) resource pools.

I don't know whether we want to go down that route just yet, though.
It took a while to explain everything ;-)

>> The API for controlling the tracing, dumping out events, etc is much
>> less critical and can be changed later, as it only matters to the
>> developer profiling their unikernel.
>
> agree to some extent -- though if some components wish to control tracing in other components as a result of observation of their own behaviour, the control API may become  more pervasively used than the dumping/display api i guess.

Perhaps. I suspect we'd have the libraries just produce events and
have the logic for responding to them in the unikernel config, rather
than having libraries reconfiguring the profiling directly. That
sounds confusing!

[*] This was a research project, so not real customers.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 30 16:29:50 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:29: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 1Xjsbc-0000y5-7c; Thu, 30 Oct 2014 16:29:48 +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 1Xjsba-0000y0-Jk
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:29:46 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	FC/0A-14727-97762545; Thu, 30 Oct 2014 16:29:45 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1414686583!8533009!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22255 invoked from network); 30 Oct 2014 16:29:45 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:29:45 -0000
Received: by mail-vc0-f170.google.com with SMTP id la4so2014394vcb.29
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:29:43 -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=sYcc9xzAFbOe8KpXkDY4DqHmBm0k2vawt+dW/dbmMFE=;
	b=l7xcgQDmqGa7WDTdBFdhNSoT3tbwQvh90fuuw4/EzPD4Gw1HUzi8Mjvyk8VuC1fRsY
	cC36bljqcxpaWznHPSrPDQ5mVV33A9sakJPx1L2lNEz0G8i6dEylpcZsd6H+p88K2L42
	OwtbIeEs1PoFqUHKIi9T5vaSIQVKkDac9rBvUa73MyweMzIl3NagKORWgIJ5AmSnru3X
	iAuVFV0WT8EVPkhN/1NAeIFwGoJxadY/SEKlFuEVxTCdLVa9IcpaC75wQfqzTBm8X3NC
	A7hdn8deI4JYAqlyhybRx8Ot3eqsZV87g3yjdQwmG7RdDQSau3lF+cvTSGRysnc4hKeN
	izqg==
MIME-Version: 1.0
X-Received: by 10.52.156.226 with SMTP id wh2mr33628vdb.83.1414686583630; Thu,
	30 Oct 2014 09:29:43 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 09:29:43 -0700 (PDT)
In-Reply-To: <9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 16:29:43 +0000
Message-ID: <CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 14:20, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
>
> On 30 Oct 2014, at 09:36, Thomas Leonard <talex5@gmail.com> wrote:
>
>> Here's what I have so far:
>>
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>>
>> There's not much here, but it would be good to keep this API stable as
>> pretty much all mirage libraries will be using it.
>
> some quick thoughts:
>
> trace_stubs.mli:
>
> would it make sense for note_{suspend,resume} to be string -> unit (or some more opaque type than string even, though perhaps of fixed size) so that the programmer can indicate reasons for the suspend/resume?

This name is perhaps confusing, but it's for block_domain/poll/select.
On Xen, mirage-platform's main.ml is that only thing that calls it.
The reason for suspending is always that there isn't any work to do
(exactly what we're waiting for is indicated by the sleeping event
channel threads at that moment).

If we had a more general version, it could perhaps be used for GC
pauses too, but there's a separate entry point for that using
Callback, because it's called from C code. Actual suspend-to-disk
could be another reason.

Are there any more types?

> can labels on threads be changed over their lifetime?  can labels overlap or are they unique?  if unique, within what context?

Originally there was one label per thread, but now they're essentially
just log messages that get attached to the active thread. They can be
used to label a thread, but also to note interesting events, so
perhaps a different name would be useful here (Trace.log?
Trace.note?). There should probably be a printf version too.

Actual labelling more often happens with named_wait, named_task, etc now.

> trace_enabled.mli:
>
> how do i interact with the buffer other than to snapshot it?

What kind of interations did you have in mind?

> ...and what's counter for?  (ie., how general/widely used is it intended to be?)

In the examples, I used counters for:

- Number of active grant refs
- Number of block reads completed
- Bytes written to console
- IP packets sent
- TCP bytes submitted
- TCP bytes ack'd

Measuring stuff can get complicated quickly. The last monitoring
system I worked on had many different types of "metric" (instantaneous
measurements, cumulative usage, on-going rates of increase, etc). You
could efficiently query for e.g. average response latecy between any
two points in time, allowing for real-time display of "average latency
over the last 5 min" or "number of requests since midnight", etc.

The counters were also arranged in a hierarchy. For example, you could
have a segments-acked counter for each TCP stream, which would then
also get aggregated as totals for that VM, and then further aggregated
both per-customer (across multiple VMs), and per resource pool. You
could see graphs of aggregated data and then drill down to see what
had contributed to it.

Some of the metrics were shared with customers[*], who treated them as
extra monitoring data for their own (outsourced) resource pools.

I don't know whether we want to go down that route just yet, though.
It took a while to explain everything ;-)

>> The API for controlling the tracing, dumping out events, etc is much
>> less critical and can be changed later, as it only matters to the
>> developer profiling their unikernel.
>
> agree to some extent -- though if some components wish to control tracing in other components as a result of observation of their own behaviour, the control API may become  more pervasively used than the dumping/display api i guess.

Perhaps. I suspect we'd have the libraries just produce events and
have the logic for responding to them in the unikernel config, rather
than having libraries reconfiguring the profiling directly. That
sounds confusing!

[*] This was a research project, so not real customers.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 30 16:52:28 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:52: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 1XjsxS-0001Jq-AQ; Thu, 30 Oct 2014 16:52:22 +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 1XjsxR-0001Jl-6o
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:52:21 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	3D/6C-22819-4CC62545; Thu, 30 Oct 2014 16:52:20 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1414687927!9407556!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_8,
	RCVD_BY_IP,spamassassin: ,async_handler: 
	YXN5bmNfZGVsYXk6IDcwNTQ0OTggKHRpbWVvdXQp\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21163 invoked from network); 30 Oct 2014 16:52:08 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:52:08 -0000
Received: by mail-vc0-f170.google.com with SMTP id la4so2048662vcb.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:52:07 -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=DpYJd0yykNNLbDaeBxEsYV5+/9W3HlUhF+9CLL4Vht0=;
	b=LqipfQA7QdwVgvfcFx40tNfb2OdlLqnx4MR5eIsdj5M/gnYlhM41L0gap23mvUXX1u
	hkDR25lxh9ouZSJoHzbg7p8Qf1yYguGTFDoe/rInE/h5M5YfFBOmSHMJMZLeDoOATPVp
	x1eUSbi4UKirZaFfnP5gnMtXVXvARXX4o8amn2xwBvCr7brZov/AghcN/9jDqH0QpcGn
	hxG2IyvsWHjCq+mUKQqURyZOLStHQd4opewSYVEORXS1BZPt7lPlzusgMlxPUU6RrWx6
	4dWmuT1jlPAgRIgLtlivXi004KFt7LyjdL0KKQs70qO1TSEWE4K3dvTLPGQaBJb7HCsu
	OwJw==
MIME-Version: 1.0
X-Received: by 10.220.162.196 with SMTP id w4mr13653793vcx.30.1414687927109;
	Thu, 30 Oct 2014 09:52:07 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 09:52:07 -0700 (PDT)
In-Reply-To: <CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
Date: Thu, 30 Oct 2014 16:52:07 +0000
Message-ID: <CAG4opy9tPfBEvpUuCqrrq59jY79aQrSBNubVV1P3-xWu+8CCEQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Len Maxwell <len@lnmx.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 14:30, Len Maxwell <len@lnmx.org> wrote:
> On Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> Here's what I have so far:
>>
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>>
>> There's not much here, but it would be good to keep this API stable as
>> pretty much all mirage libraries will be using it.
>>
>> The API for controlling the tracing, dumping out events, etc is much
>> less critical and can be changed later, as it only matters to the
>> developer profiling their unikernel.
>>
>> Comments welcome!
>
> Nice blog post; it was interesting to see some of the earlier
> performance puzzles re-examined with your new tools.
>
> Recently I found the Google trace-viewer [1] tool; it was built to
> analyze performance issues in Chrome [2], is now being used for
> Android, and the Go language may adopt it as well [3].  I think it
> would be worthwhile to a) review their event types and JSON format [4]
> for inspiration, and b) consider trace-viewer as an alternative viewer
> for some use cases.
>
> As an experiment, I manually instrumented mirage-www with trace-viewer
> JSON output, and the result is here [5].  Download that file, open
> about://tracing in Chrome, then Load the .trace file.  (Failing that,
> you can get the trace-viewer source [1] and run the dev_server, or
> view the self-contained HTML/JS version [6]).  Press '?' for help.
>
> The trace shows a browser loading the mirage-www home page, from the
> server's point-of-view.  At the top are some GC counters, captured
> once per second; the (hard-to-see) vertical green lines represent Gc
> alarm callbacks.  Below that are all of the HTTP requests and related
> FS calls, organized by HTTP connection -- in the Cohttp callback, I
> store the conn_id in a thread-local, and use that as a "thread ID"
> when recording events.
>
> Overall you should see that the browser used 6 concurrent connections
> to load all of the resources on the home page, and that generating
> index.html requires reading a lot of files.  It would be nice if I
> could look deeper into Cohttp and FS with mirage-profile, but use
> trace-viewer as the presentation format.  (So far I am using just a
> few features of the trace output, there are other examples in the
> test_data folder of [1]).

It would be good if we could do this sort of thing with the same
tracing framework, indeed.

To get this output with mirage-profile, you'd probably want a
structured way to indicate a new HTTP connection, file read, etc,
rather than the current free-form text in MProf.Trace.label.

It should be fairly easy to recover the TCP connection from the
recorded Lwt thread ID, by following the Creates links. e.g.

- Thread 5 notes that it is handling TCP connection 1
- Thread 5 creates 6
- Thread 6 reads file "index.html"

(you can also correlate things in more complicated ways, as Mort
showed earlier with the Magpie work)

> To be clear, I don't think that trace-viewer could present low-level
> Lwt scheduling as well as mirage-trace-viewer does.  However, it could
> be useful for viewing a unikernel's behavior from other perspectives.

Yes. Although, I suspect in this case you could get a similar simple
output with mirage-trace-viewer if you did some preprocessing on the
input trace (e.g. pruning network driver threads, ring acks and other
low-level details).

> [1] https://github.com/google/trace-viewer
> [2] http://dev.chromium.org/developers/how-tos/trace-event-profiling-tool
> [3] http://dotgo.sourcegraph.com/post/99652962343/brad-fitzpatrick-on-the-future-of-the-go-programming
> (see: GOTRACE)
> [4] https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit?usp=sharing
> [5] https://s3.amazonaws.com/lnmx-public/mirage-www.trace
> [6] https://s3.amazonaws.com/lnmx-public/mirage-www.html



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 30 16:52:28 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:52: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 1XjsxS-0001Jq-AQ; Thu, 30 Oct 2014 16:52:22 +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 1XjsxR-0001Jl-6o
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:52:21 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
	3D/6C-22819-4CC62545; Thu, 30 Oct 2014 16:52:20 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1414687927!9407556!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_8,
	RCVD_BY_IP,spamassassin: ,async_handler: 
	YXN5bmNfZGVsYXk6IDcwNTQ0OTggKHRpbWVvdXQp\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21163 invoked from network); 30 Oct 2014 16:52:08 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:52:08 -0000
Received: by mail-vc0-f170.google.com with SMTP id la4so2048662vcb.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:52:07 -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=DpYJd0yykNNLbDaeBxEsYV5+/9W3HlUhF+9CLL4Vht0=;
	b=LqipfQA7QdwVgvfcFx40tNfb2OdlLqnx4MR5eIsdj5M/gnYlhM41L0gap23mvUXX1u
	hkDR25lxh9ouZSJoHzbg7p8Qf1yYguGTFDoe/rInE/h5M5YfFBOmSHMJMZLeDoOATPVp
	x1eUSbi4UKirZaFfnP5gnMtXVXvARXX4o8amn2xwBvCr7brZov/AghcN/9jDqH0QpcGn
	hxG2IyvsWHjCq+mUKQqURyZOLStHQd4opewSYVEORXS1BZPt7lPlzusgMlxPUU6RrWx6
	4dWmuT1jlPAgRIgLtlivXi004KFt7LyjdL0KKQs70qO1TSEWE4K3dvTLPGQaBJb7HCsu
	OwJw==
MIME-Version: 1.0
X-Received: by 10.220.162.196 with SMTP id w4mr13653793vcx.30.1414687927109;
	Thu, 30 Oct 2014 09:52:07 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 09:52:07 -0700 (PDT)
In-Reply-To: <CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
Date: Thu, 30 Oct 2014 16:52:07 +0000
Message-ID: <CAG4opy9tPfBEvpUuCqrrq59jY79aQrSBNubVV1P3-xWu+8CCEQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Len Maxwell <len@lnmx.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 14:30, Len Maxwell <len@lnmx.org> wrote:
> On Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> Here's what I have so far:
>>
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>>
>> There's not much here, but it would be good to keep this API stable as
>> pretty much all mirage libraries will be using it.
>>
>> The API for controlling the tracing, dumping out events, etc is much
>> less critical and can be changed later, as it only matters to the
>> developer profiling their unikernel.
>>
>> Comments welcome!
>
> Nice blog post; it was interesting to see some of the earlier
> performance puzzles re-examined with your new tools.
>
> Recently I found the Google trace-viewer [1] tool; it was built to
> analyze performance issues in Chrome [2], is now being used for
> Android, and the Go language may adopt it as well [3].  I think it
> would be worthwhile to a) review their event types and JSON format [4]
> for inspiration, and b) consider trace-viewer as an alternative viewer
> for some use cases.
>
> As an experiment, I manually instrumented mirage-www with trace-viewer
> JSON output, and the result is here [5].  Download that file, open
> about://tracing in Chrome, then Load the .trace file.  (Failing that,
> you can get the trace-viewer source [1] and run the dev_server, or
> view the self-contained HTML/JS version [6]).  Press '?' for help.
>
> The trace shows a browser loading the mirage-www home page, from the
> server's point-of-view.  At the top are some GC counters, captured
> once per second; the (hard-to-see) vertical green lines represent Gc
> alarm callbacks.  Below that are all of the HTTP requests and related
> FS calls, organized by HTTP connection -- in the Cohttp callback, I
> store the conn_id in a thread-local, and use that as a "thread ID"
> when recording events.
>
> Overall you should see that the browser used 6 concurrent connections
> to load all of the resources on the home page, and that generating
> index.html requires reading a lot of files.  It would be nice if I
> could look deeper into Cohttp and FS with mirage-profile, but use
> trace-viewer as the presentation format.  (So far I am using just a
> few features of the trace output, there are other examples in the
> test_data folder of [1]).

It would be good if we could do this sort of thing with the same
tracing framework, indeed.

To get this output with mirage-profile, you'd probably want a
structured way to indicate a new HTTP connection, file read, etc,
rather than the current free-form text in MProf.Trace.label.

It should be fairly easy to recover the TCP connection from the
recorded Lwt thread ID, by following the Creates links. e.g.

- Thread 5 notes that it is handling TCP connection 1
- Thread 5 creates 6
- Thread 6 reads file "index.html"

(you can also correlate things in more complicated ways, as Mort
showed earlier with the Magpie work)

> To be clear, I don't think that trace-viewer could present low-level
> Lwt scheduling as well as mirage-trace-viewer does.  However, it could
> be useful for viewing a unikernel's behavior from other perspectives.

Yes. Although, I suspect in this case you could get a similar simple
output with mirage-trace-viewer if you did some preprocessing on the
input trace (e.g. pruning network driver threads, ring acks and other
low-level details).

> [1] https://github.com/google/trace-viewer
> [2] http://dev.chromium.org/developers/how-tos/trace-event-profiling-tool
> [3] http://dotgo.sourcegraph.com/post/99652962343/brad-fitzpatrick-on-the-future-of-the-go-programming
> (see: GOTRACE)
> [4] https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit?usp=sharing
> [5] https://s3.amazonaws.com/lnmx-public/mirage-www.trace
> [6] https://s3.amazonaws.com/lnmx-public/mirage-www.html



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 30 16:57:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:57: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 1Xjt2I-0001Rg-OR; Thu, 30 Oct 2014 16:57:22 +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 1Xjt2H-0001Rb-H9
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:57:21 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	43/F2-02696-0FD62545; Thu, 30 Oct 2014 16:57:20 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1414688238!13500938!1
X-Originating-IP: [209.85.220.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25676 invoked from network); 30 Oct 2014 16:57:19 -0000
Received: from mail-vc0-f179.google.com (HELO mail-vc0-f179.google.com)
	(209.85.220.179)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:57:19 -0000
Received: by mail-vc0-f179.google.com with SMTP id ij19so2990784vcb.10
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:57:18 -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=zo+42ytsawLUqPPxMhCCbjAfv4L74vzzEnyqfTPPiVg=;
	b=tSZd9/Uduy+gZoUQ0ZbwsAXv9YJ3SyA0bASW79vaRnSePLx9klRyuOsulYm0FLWiL0
	Hdr7dSnGBP3MJeW48ZJsAtoRUnJ35/CnRMRDK/Cb0k1cipiU0cZ8aimrvvVC4G0nnGBq
	oBFz9O8bD68TsL0bZLHJLhh8O7ENTDS097VN3Lu+y5Ev56Ct00zFzzHWFRPMZ/Zo5wWP
	s8+QuF0A7gZ6r8RYjjTNdx4yiHWlyouHvHKgCsfewujsRcm/yIeWlkn1m505tVk1FnfY
	1Vf2xhygLk6HGHjJ7gVg/FvmHQ2mv27kKlrJn5Ur4wybRtLo8ham3PHhlWUAdMb5h2e4
	adbA==
MIME-Version: 1.0
X-Received: by 10.52.0.212 with SMTP id 20mr4564647vdg.0.1414688238418; Thu,
	30 Oct 2014 09:57:18 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 09:57:18 -0700 (PDT)
In-Reply-To: <9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
	<9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
Date: Thu, 30 Oct 2014 16:57:18 +0000
Message-ID: <CAG4opy_4uLf6v3QL54GJ1sRXboD-iXqdSczNEn9AJA7PRNtWkw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 15:40, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 30 Oct 2014, at 14:30, Len Maxwell <len@lnmx.org> wrote:
>>
>> On Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>>
>>> Here's what I have so far:
>>>
>>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>>>
>>> There's not much here, but it would be good to keep this API stable as
>>> pretty much all mirage libraries will be using it.
>>>
>>> The API for controlling the tracing, dumping out events, etc is much
>>> less critical and can be changed later, as it only matters to the
>>> developer profiling their unikernel.
>>>
>>> Comments welcome!
>>
>> Nice blog post; it was interesting to see some of the earlier
>> performance puzzles re-examined with your new tools.
>>
>> Recently I found the Google trace-viewer [1] tool; it was built to
>> analyze performance issues in Chrome [2], is now being used for
>> Android, and the Go language may adopt it as well [3].  I think it
>> would be worthwhile to a) review their event types and JSON format [4]
>> for inspiration, and b) consider trace-viewer as an alternative viewer
>> for some use cases.
>>
>> As an experiment, I manually instrumented mirage-www with trace-viewer
>> JSON output, and the result is here [5].  Download that file, open
>> about://tracing in Chrome, then Load the .trace file.  (Failing that,
>> you can get the trace-viewer source [1] and run the dev_server, or
>> view the self-contained HTML/JS version [6]).  Press '?' for help.
>
>> The trace shows a browser loading the mirage-www home page, from the
>> server's point-of-view.  At the top are some GC counters, captured
>> once per second; the (hard-to-see) vertical green lines represent Gc
>> alarm callbacks.  Below that are all of the HTTP requests and related
>> FS calls, organized by HTTP connection -- in the Cohttp callback, I
>> store the conn_id in a thread-local, and use that as a "thread ID"
>> when recording events.
>>
>> Overall you should see that the browser used 6 concurrent connections
>> to load all of the resources on the home page, and that generating
>> index.html requires reading a lot of files.  It would be nice if I
>> could look deeper into Cohttp and FS with mirage-profile, but use
>> trace-viewer as the presentation format.  (So far I am using just a
>> few features of the trace output, there are other examples in the
>> test_data folder of [1]).
>>
>> To be clear, I don't think that trace-viewer could present low-level
>> Lwt scheduling as well as mirage-trace-viewer does.  However, it could
>> be useful for viewing a unikernel's behavior from other perspectives.
>
>
> I didn't even know of the existence of this tool, so the trace format
> looks useful even if the Chrome tool itself doesn't quite match.  The
> HN thread mentioned the LTTng, which doesn't look quite as well used
> as this (which is used for actual profiling in Android and Chrome, by
> the looks of it).

I've been looking at LTT links in that post. Here's the format spec:

  http://www.efficios.com/ctf

I would like to move to a less GC-heavy logging format in
mirage-profile, and this is one candidate.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 30 16:57:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 16:57: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 1Xjt2I-0001Rg-OR; Thu, 30 Oct 2014 16:57:22 +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 1Xjt2H-0001Rb-H9
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 16:57:21 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	43/F2-02696-0FD62545; Thu, 30 Oct 2014 16:57:20 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1414688238!13500938!1
X-Originating-IP: [209.85.220.179]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25676 invoked from network); 30 Oct 2014 16:57:19 -0000
Received: from mail-vc0-f179.google.com (HELO mail-vc0-f179.google.com)
	(209.85.220.179)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 16:57:19 -0000
Received: by mail-vc0-f179.google.com with SMTP id ij19so2990784vcb.10
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 09:57:18 -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=zo+42ytsawLUqPPxMhCCbjAfv4L74vzzEnyqfTPPiVg=;
	b=tSZd9/Uduy+gZoUQ0ZbwsAXv9YJ3SyA0bASW79vaRnSePLx9klRyuOsulYm0FLWiL0
	Hdr7dSnGBP3MJeW48ZJsAtoRUnJ35/CnRMRDK/Cb0k1cipiU0cZ8aimrvvVC4G0nnGBq
	oBFz9O8bD68TsL0bZLHJLhh8O7ENTDS097VN3Lu+y5Ev56Ct00zFzzHWFRPMZ/Zo5wWP
	s8+QuF0A7gZ6r8RYjjTNdx4yiHWlyouHvHKgCsfewujsRcm/yIeWlkn1m505tVk1FnfY
	1Vf2xhygLk6HGHjJ7gVg/FvmHQ2mv27kKlrJn5Ur4wybRtLo8ham3PHhlWUAdMb5h2e4
	adbA==
MIME-Version: 1.0
X-Received: by 10.52.0.212 with SMTP id 20mr4564647vdg.0.1414688238418; Thu,
	30 Oct 2014 09:57:18 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Thu, 30 Oct 2014 09:57:18 -0700 (PDT)
In-Reply-To: <9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
	<9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
Date: Thu, 30 Oct 2014 16:57:18 +0000
Message-ID: <CAG4opy_4uLf6v3QL54GJ1sRXboD-iXqdSczNEn9AJA7PRNtWkw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 15:40, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 30 Oct 2014, at 14:30, Len Maxwell <len@lnmx.org> wrote:
>>
>> On Thu, Oct 30, 2014 at 5:36 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>>
>>> Here's what I have so far:
>>>
>>> https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>>>
>>> There's not much here, but it would be good to keep this API stable as
>>> pretty much all mirage libraries will be using it.
>>>
>>> The API for controlling the tracing, dumping out events, etc is much
>>> less critical and can be changed later, as it only matters to the
>>> developer profiling their unikernel.
>>>
>>> Comments welcome!
>>
>> Nice blog post; it was interesting to see some of the earlier
>> performance puzzles re-examined with your new tools.
>>
>> Recently I found the Google trace-viewer [1] tool; it was built to
>> analyze performance issues in Chrome [2], is now being used for
>> Android, and the Go language may adopt it as well [3].  I think it
>> would be worthwhile to a) review their event types and JSON format [4]
>> for inspiration, and b) consider trace-viewer as an alternative viewer
>> for some use cases.
>>
>> As an experiment, I manually instrumented mirage-www with trace-viewer
>> JSON output, and the result is here [5].  Download that file, open
>> about://tracing in Chrome, then Load the .trace file.  (Failing that,
>> you can get the trace-viewer source [1] and run the dev_server, or
>> view the self-contained HTML/JS version [6]).  Press '?' for help.
>
>> The trace shows a browser loading the mirage-www home page, from the
>> server's point-of-view.  At the top are some GC counters, captured
>> once per second; the (hard-to-see) vertical green lines represent Gc
>> alarm callbacks.  Below that are all of the HTTP requests and related
>> FS calls, organized by HTTP connection -- in the Cohttp callback, I
>> store the conn_id in a thread-local, and use that as a "thread ID"
>> when recording events.
>>
>> Overall you should see that the browser used 6 concurrent connections
>> to load all of the resources on the home page, and that generating
>> index.html requires reading a lot of files.  It would be nice if I
>> could look deeper into Cohttp and FS with mirage-profile, but use
>> trace-viewer as the presentation format.  (So far I am using just a
>> few features of the trace output, there are other examples in the
>> test_data folder of [1]).
>>
>> To be clear, I don't think that trace-viewer could present low-level
>> Lwt scheduling as well as mirage-trace-viewer does.  However, it could
>> be useful for viewing a unikernel's behavior from other perspectives.
>
>
> I didn't even know of the existence of this tool, so the trace format
> looks useful even if the Chrome tool itself doesn't quite match.  The
> HN thread mentioned the LTTng, which doesn't look quite as well used
> as this (which is used for actual profiling in Android and Chrome, by
> the looks of it).

I've been looking at LTT links in that post. Here's the format spec:

  http://www.efficios.com/ctf

I would like to move to a less GC-heavy logging format in
mirage-profile, and this is one candidate.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Thu Oct 30 17:20:39 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 17:20:39 +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 1XjtOn-0001iJ-4o; Thu, 30 Oct 2014 17:20:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XjtOm-0001iE-DD
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 17:20:36 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
	00/6A-02702-36372545; Thu, 30 Oct 2014 17:20:35 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1414689633!8861046!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22948 invoked from network); 30 Oct 2014 17:20:34 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 17:20:34 -0000
Received: by mail-vc0-f180.google.com with SMTP id hy10so3014143vcb.11
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 10:20:33 -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=86ga/N2hyvH90nGVNFvBZPg0BOBXoya33/LNfO+mtmk=;
	b=PIe+DFljhnJls7nPEK+UTCwVgPZJIR8qwcp1KpuoL34khQbp2YTH3iZSKy2A/J2CZ0
	qmYiPMaApFhGXuVRrRU+CfM5bjIB/KgP4DdQOnPWLD3nFsEXuewtx5x33sxI6gVLcYDD
	Izohnp2EhtLaENzef7rfKYdtTKfv+5v50o6hjQpp7t/LFavx/4rtY9uCjsYT/TFWIh1G
	LJ41rcOUTd6N8quDjmeLTkvO9KTZhtHdDTLOGzbZmUMhnWItZCtMjnp/wFJyfQY0jj8C
	rPGDV5CrDQlFiGmxwUyRITBKH4sTy+JMVMIwqAuWVPbt2UAS7oXM43lbyseddISjr62F
	7MrQ==
X-Gm-Message-State: ALoCoQmLpFZ1zeHyVmipZnUY6/Pe56TAlKsaKuIL1zZH2K9sMXDISnEOW2AmOt6lI7uzIb+/2c/l
MIME-Version: 1.0
X-Received: by 10.220.111.6 with SMTP id q6mr13733246vcp.12.1414689633144;
	Thu, 30 Oct 2014 10:20:33 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 30 Oct 2014 10:20:33 -0700 (PDT)
In-Reply-To: <CAG4opy_4uLf6v3QL54GJ1sRXboD-iXqdSczNEn9AJA7PRNtWkw@mail.gmail.com>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
	<9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
	<CAG4opy_4uLf6v3QL54GJ1sRXboD-iXqdSczNEn9AJA7PRNtWkw@mail.gmail.com>
Date: Thu, 30 Oct 2014 13:20:33 -0400
Message-ID: <CAHwFrZdEmcdLx7hvU1L8u3bGvG8k7FBaXPBiajM_YDHLdR4mFA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Thu, Oct 30, 2014 at 12:57 PM, Thomas Leonard <talex5@gmail.com> wrote:
>
> I've been looking at LTT links in that post. Here's the format spec:
>
>   http://www.efficios.com/ctf
>
> I would like to move to a less GC-heavy logging format in
> mirage-profile, and this is one candidate.
>
>
> --
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA


A recent Jane Street blog describes their new Core_profiler library,
with some hints about how they avoid allocation:

https://blogs.janestreet.com/what-the-interns-have-wrought-rpc_parallel-and-core_profiler/

--
Len

_______________________________________________
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 Oct 30 17:20:39 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 17:20:39 +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 1XjtOn-0001iJ-4o; Thu, 30 Oct 2014 17:20:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <len@inthemail.org>) id 1XjtOm-0001iE-DD
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 17:20:36 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
	00/6A-02702-36372545; Thu, 30 Oct 2014 17:20:35 +0000
X-Env-Sender: len@inthemail.org
X-Msg-Ref: server-5.tower-27.messagelabs.com!1414689633!8861046!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22948 invoked from network); 30 Oct 2014 17:20:34 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Oct 2014 17:20:34 -0000
Received: by mail-vc0-f180.google.com with SMTP id hy10so3014143vcb.11
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 10:20:33 -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=86ga/N2hyvH90nGVNFvBZPg0BOBXoya33/LNfO+mtmk=;
	b=PIe+DFljhnJls7nPEK+UTCwVgPZJIR8qwcp1KpuoL34khQbp2YTH3iZSKy2A/J2CZ0
	qmYiPMaApFhGXuVRrRU+CfM5bjIB/KgP4DdQOnPWLD3nFsEXuewtx5x33sxI6gVLcYDD
	Izohnp2EhtLaENzef7rfKYdtTKfv+5v50o6hjQpp7t/LFavx/4rtY9uCjsYT/TFWIh1G
	LJ41rcOUTd6N8quDjmeLTkvO9KTZhtHdDTLOGzbZmUMhnWItZCtMjnp/wFJyfQY0jj8C
	rPGDV5CrDQlFiGmxwUyRITBKH4sTy+JMVMIwqAuWVPbt2UAS7oXM43lbyseddISjr62F
	7MrQ==
X-Gm-Message-State: ALoCoQmLpFZ1zeHyVmipZnUY6/Pe56TAlKsaKuIL1zZH2K9sMXDISnEOW2AmOt6lI7uzIb+/2c/l
MIME-Version: 1.0
X-Received: by 10.220.111.6 with SMTP id q6mr13733246vcp.12.1414689633144;
	Thu, 30 Oct 2014 10:20:33 -0700 (PDT)
Received: by 10.31.58.74 with HTTP; Thu, 30 Oct 2014 10:20:33 -0700 (PDT)
In-Reply-To: <CAG4opy_4uLf6v3QL54GJ1sRXboD-iXqdSczNEn9AJA7PRNtWkw@mail.gmail.com>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
	<9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
	<CAG4opy_4uLf6v3QL54GJ1sRXboD-iXqdSczNEn9AJA7PRNtWkw@mail.gmail.com>
Date: Thu, 30 Oct 2014 13:20:33 -0400
Message-ID: <CAHwFrZdEmcdLx7hvU1L8u3bGvG8k7FBaXPBiajM_YDHLdR4mFA@mail.gmail.com>
From: Len Maxwell <len@lnmx.org>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 Thu, Oct 30, 2014 at 12:57 PM, Thomas Leonard <talex5@gmail.com> wrote:
>
> I've been looking at LTT links in that post. Here's the format spec:
>
>   http://www.efficios.com/ctf
>
> I would like to move to a less GC-heavy logging format in
> mirage-profile, and this is one candidate.
>
>
> --
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA


A recent Jane Street blog describes their new Core_profiler library,
with some hints about how they avoid allocation:

https://blogs.janestreet.com/what-the-interns-have-wrought-rpc_parallel-and-core_profiler/

--
Len

_______________________________________________
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 Oct 30 17:56:00 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 17:56: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 1Xjtww-0002C8-Ii; Thu, 30 Oct 2014 17:55:54 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjtwv-0002C3-Cg
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 17:55:53 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	F2/02-09936-8AB72545; Thu, 30 Oct 2014 17:55:52 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-13.tower-21.messagelabs.com!1414691751!6443702!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3327 invoked from network); 30 Oct 2014 17:55:51 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-13.tower-21.messagelabs.com with SMTP;
	30 Oct 2014 17:55:51 -0000
Received: (qmail 10685 invoked from network); 30 Oct 2014 17:55:50 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 17:55:50 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 09527-04 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 17:55:43 +0000 (GMT)
Received: (qmail 10567 invoked by uid 599); 30 Oct 2014 17:55:43 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 17:55:43 +0000
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjtwl-00063s-0W; Thu, 30 Oct 2014 17:55:43 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 17:55:43 +0000
Thread-Topic: [MirageOS-devel] Xen VIF configuration for tap devices
Thread-Index: Ac/0arkMoSVyHTNWSzCJa13jveuYjw==
Message-ID: <9A06289D-4366-480C-B541-0868F526DD85@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
	<54527B2F.6030006@nottingham.ac.uk>
In-Reply-To: <54527B2F.6030006@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: Haris Rotsos <cr409@cl.cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============2323039514153417668=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2323039514153417668==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

excellent :)

On 30 Oct 2014, at 17:53, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:

> Solved.
>=20
> Although Netif.connect accepts alphanumeric device ids in unix=20
> configuration, Xen version only accepts integer ids. Otherwise, it=20
> always assigns the first defined vif to the device. So, "tap1" has to =
be=20
> "1", and so on.
>=20
> Thanks everyone.
>=20
> On 30/10/14 13:42, Richard Mortier wrote:
>> all;
>>=20
>> to take a slightly different tack on this -- is there anyone out =
there successfully running mirage unikernels on xen that make use of >1 =
network interface?  how did you configure this?
>>=20
>> haris-- what did you do for the mirage openflow paper?
>>=20
>> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking =
the canonical location for info on how to configure and manage =
networking on xen vms?
>>=20
>> and presumably all this results in entries in xenstore-- are =
http://wiki.xen.org/wiki/XenStore and =
http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation =
for xenstore and it's use by network devices?
>>=20
>> is there any documentation available on how to debug openvswitch =
networking on xen via xenstore (or through some other means)?
>>=20
>> On 26 Oct 2014, at 20:06, Masoud Koleini =
<Masoud.Koleini@nottingham.ac.uk> wrote:
>>=20
>>> I have defined 3 vifs with 3 different mac addresses for the 3 tap
>>> devices that I am using, and switch shows the same mac address (mac
>>> address of the first defined vif) assigned to both tap2 and tap3.
>>>=20
>>> Another issue that I faced is, although I can ping switch vm, =
nothing
>>> appears on vifs and xenbr0 when switch starts a TCP connection to a
>>> remote controller (using TCPV4 create_connection function). This
>>> function works well for unix config.
>>>=20
>>> On 26/10/14 11:43, Anil Madhavapeddy wrote:
>>>> On 25 Oct 2014, at 11:36, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>>>> Hi all,
>>>>>=20
>>>>> I have a switch with three tap devices tap0 (for the controller =
connection), tap1, and tap 2 running on Xen.
>>>>>=20
>>>>> What would be the right VIF configuration for Xen?
>>>> It would be pretty much the same configuration as your tap setup.  =
The Xen networking model is to expose a VIF ('virtual interface') in the =
guest and dom0.  Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.
>>>>=20
>>>> The xl setup fragment looks like:
>>>>=20
>>>>     vif =3D [ 'bridge=3Dxenbr0' ]
>>>> or
>>>>     vif =3D [ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]
>>>>=20
>>>> -anil
>>> This message and any attachment are intended solely for the =
addressee and may contain confidential information. If you have received =
this message in error, please send it back to me, and immediately delete =
it.   Please do not use, copy or disclose the information contained in =
this message or in any attachment.  Any views or opinions expressed by =
the author of this email do not necessarily reflect the views of the =
University of Nottingham.
>>>=20
>>> This message has been checked for viruses but the contents of an =
attachment
>>> may still contain software viruses which could damage your computer =
system, you are advised to perform your own checks. Email communications =
with the University of Nottingham may be monitored as permitted by UK =
legislation.
>>>=20
>>>=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


--=20
Cheers,

R.





--Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUnufAAoJEOLF27JWwSg3L0YQAMY1hc//3vBme4qORvBrUod6
B28VtMrUC5aru1+VSyOByHOJoUhXFSHe4P4SyA8ygyTDjq4VHJcIqwgElawDm7iT
5OJbYaN98gUjTsMxq5KRaeuLo0D9i/NEd0jOOUlVDrEPya5PTeTg2bCW6WmqKqFo
BQfR4FZc0RJNtBpcOhPQ0M+CEr87nLFM97NOqwseG/G2cDf0fAAtpao6R6iR8g+H
Y82k3zYINdamWdtjYKks4NYv/3O8BnAKDP1aLWh/5dbv4OqinRUUWwu4s/qQzT6G
StBxgt/K72Vep/Xp1yo1iVx8cm7mxckCt7pgYh4CE+zQgvt+lGqZV2YLk7fw825R
HsbNNffbnMN7SqrgyxtCpK0iKMjA40ZkyeR8dyAu6q0pAgDmg4KEF9zY3U8FO1Lf
pv9eZznguq9gLNBFTTPbrIojdbAasE19LtdzaxqVyOwM2CVPqjExRtIVQ1Wb9a9f
RJIZ1oNv5ikkrjzXaeCW3gadFdpC1mIF/KMcYYnLk3HkV85pm6UlRyG9mr+k1lao
EdPEh1BAVZadkJANK8gph0J4X5YGRxsNKFTny6WnkrhuzIHH+m1qKVnydg6tjUUv
L+ri1YylVkuGVqj/9U6/Ci9HafltIU2aAGpWL75On2Hqqr3XIP7USSikcv4O3AeV
YzklmH96I/ebs/mSUgX8
=h1BA
-----END PGP SIGNATURE-----

--Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA--


--===============2323039514153417668==
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

--===============2323039514153417668==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 17:56:00 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 17:56: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 1Xjtww-0002C8-Ii; Thu, 30 Oct 2014 17:55:54 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjtwv-0002C3-Cg
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 17:55:53 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	F2/02-09936-8AB72545; Thu, 30 Oct 2014 17:55:52 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-13.tower-21.messagelabs.com!1414691751!6443702!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3327 invoked from network); 30 Oct 2014 17:55:51 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-13.tower-21.messagelabs.com with SMTP;
	30 Oct 2014 17:55:51 -0000
Received: (qmail 10685 invoked from network); 30 Oct 2014 17:55:50 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 17:55:50 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 09527-04 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 17:55:43 +0000 (GMT)
Received: (qmail 10567 invoked by uid 599); 30 Oct 2014 17:55:43 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 17:55:43 +0000
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1Xjtwl-00063s-0W; Thu, 30 Oct 2014 17:55:43 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 17:55:43 +0000
Thread-Topic: [MirageOS-devel] Xen VIF configuration for tap devices
Thread-Index: Ac/0arkMoSVyHTNWSzCJa13jveuYjw==
Message-ID: <9A06289D-4366-480C-B541-0868F526DD85@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
	<54527B2F.6030006@nottingham.ac.uk>
In-Reply-To: <54527B2F.6030006@nottingham.ac.uk>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: Haris Rotsos <cr409@cl.cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============2323039514153417668=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2323039514153417668==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

excellent :)

On 30 Oct 2014, at 17:53, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:

> Solved.
>=20
> Although Netif.connect accepts alphanumeric device ids in unix=20
> configuration, Xen version only accepts integer ids. Otherwise, it=20
> always assigns the first defined vif to the device. So, "tap1" has to =
be=20
> "1", and so on.
>=20
> Thanks everyone.
>=20
> On 30/10/14 13:42, Richard Mortier wrote:
>> all;
>>=20
>> to take a slightly different tack on this -- is there anyone out =
there successfully running mirage unikernels on xen that make use of >1 =
network interface?  how did you configure this?
>>=20
>> haris-- what did you do for the mirage openflow paper?
>>=20
>> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking =
the canonical location for info on how to configure and manage =
networking on xen vms?
>>=20
>> and presumably all this results in entries in xenstore-- are =
http://wiki.xen.org/wiki/XenStore and =
http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation =
for xenstore and it's use by network devices?
>>=20
>> is there any documentation available on how to debug openvswitch =
networking on xen via xenstore (or through some other means)?
>>=20
>> On 26 Oct 2014, at 20:06, Masoud Koleini =
<Masoud.Koleini@nottingham.ac.uk> wrote:
>>=20
>>> I have defined 3 vifs with 3 different mac addresses for the 3 tap
>>> devices that I am using, and switch shows the same mac address (mac
>>> address of the first defined vif) assigned to both tap2 and tap3.
>>>=20
>>> Another issue that I faced is, although I can ping switch vm, =
nothing
>>> appears on vifs and xenbr0 when switch starts a TCP connection to a
>>> remote controller (using TCPV4 create_connection function). This
>>> function works well for unix config.
>>>=20
>>> On 26/10/14 11:43, Anil Madhavapeddy wrote:
>>>> On 25 Oct 2014, at 11:36, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
>>>>> Hi all,
>>>>>=20
>>>>> I have a switch with three tap devices tap0 (for the controller =
connection), tap1, and tap 2 running on Xen.
>>>>>=20
>>>>> What would be the right VIF configuration for Xen?
>>>> It would be pretty much the same configuration as your tap setup.  =
The Xen networking model is to expose a VIF ('virtual interface') in the =
guest and dom0.  Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.
>>>>=20
>>>> The xl setup fragment looks like:
>>>>=20
>>>>     vif =3D [ 'bridge=3Dxenbr0' ]
>>>> or
>>>>     vif =3D [ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]
>>>>=20
>>>> -anil
>>> This message and any attachment are intended solely for the =
addressee and may contain confidential information. If you have received =
this message in error, please send it back to me, and immediately delete =
it.   Please do not use, copy or disclose the information contained in =
this message or in any attachment.  Any views or opinions expressed by =
the author of this email do not necessarily reflect the views of the =
University of Nottingham.
>>>=20
>>> This message has been checked for viruses but the contents of an =
attachment
>>> may still contain software viruses which could damage your computer =
system, you are advised to perform your own checks. Email communications =
with the University of Nottingham may be monitored as permitted by UK =
legislation.
>>>=20
>>>=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


--=20
Cheers,

R.





--Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUnufAAoJEOLF27JWwSg3L0YQAMY1hc//3vBme4qORvBrUod6
B28VtMrUC5aru1+VSyOByHOJoUhXFSHe4P4SyA8ygyTDjq4VHJcIqwgElawDm7iT
5OJbYaN98gUjTsMxq5KRaeuLo0D9i/NEd0jOOUlVDrEPya5PTeTg2bCW6WmqKqFo
BQfR4FZc0RJNtBpcOhPQ0M+CEr87nLFM97NOqwseG/G2cDf0fAAtpao6R6iR8g+H
Y82k3zYINdamWdtjYKks4NYv/3O8BnAKDP1aLWh/5dbv4OqinRUUWwu4s/qQzT6G
StBxgt/K72Vep/Xp1yo1iVx8cm7mxckCt7pgYh4CE+zQgvt+lGqZV2YLk7fw825R
HsbNNffbnMN7SqrgyxtCpK0iKMjA40ZkyeR8dyAu6q0pAgDmg4KEF9zY3U8FO1Lf
pv9eZznguq9gLNBFTTPbrIojdbAasE19LtdzaxqVyOwM2CVPqjExRtIVQ1Wb9a9f
RJIZ1oNv5ikkrjzXaeCW3gadFdpC1mIF/KMcYYnLk3HkV85pm6UlRyG9mr+k1lao
EdPEh1BAVZadkJANK8gph0J4X5YGRxsNKFTny6WnkrhuzIHH+m1qKVnydg6tjUUv
L+ri1YylVkuGVqj/9U6/Ci9HafltIU2aAGpWL75On2Hqqr3XIP7USSikcv4O3AeV
YzklmH96I/ebs/mSUgX8
=h1BA
-----END PGP SIGNATURE-----

--Apple-Mail=_ECFA022F-BE2B-4790-A974-4098BFB6BCFA--


--===============2323039514153417668==
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

--===============2323039514153417668==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 17:57:24 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 17:57: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 1XjtyN-0002Ek-Oa; Thu, 30 Oct 2014 17:57:23 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XjtyL-0002Ef-Ll
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 17:57:21 +0000
Received: from [85.158.139.211] by server-8.bemta-5.messagelabs.com id
	AF/85-11581-00C72545; Thu, 30 Oct 2014 17:57:20 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-13.tower-206.messagelabs.com!1414691839!12030352!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15365 invoked from network); 30 Oct 2014 17:57:20 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-13.tower-206.messagelabs.com with SMTP;
	30 Oct 2014 17:57:20 -0000
Received: (qmail 12327 invoked from network); 30 Oct 2014 17:54:52 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 30 Oct 2014 17:54:52 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 12289-02 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 17:54:51 +0000 (GMT)
Received: (qmail 11317 invoked by uid 599); 30 Oct 2014 17:53:50 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 17:53:49 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp3.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1Xjtux-000600-RZ; Thu, 30 Oct 2014 17:53:51 +0000
Message-ID: <54527B2F.6030006@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 17:53:51 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>, 
	Haris Rotsos <cr409@cl.cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
In-Reply-To: <2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Solved.

Although Netif.connect accepts alphanumeric device ids in unix 
configuration, Xen version only accepts integer ids. Otherwise, it 
always assigns the first defined vif to the device. So, "tap1" has to be 
"1", and so on.

Thanks everyone.

On 30/10/14 13:42, Richard Mortier wrote:
> all;
>
> to take a slightly different tack on this -- is there anyone out there successfully running mirage unikernels on xen that make use of >1 network interface?  how did you configure this?
>
> haris-- what did you do for the mirage openflow paper?
>
> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the canonical location for info on how to configure and manage networking on xen vms?
>
> and presumably all this results in entries in xenstore-- are http://wiki.xen.org/wiki/XenStore and http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation for xenstore and it's use by network devices?
>
> is there any documentation available on how to debug openvswitch networking on xen via xenstore (or through some other means)?
>
> On 26 Oct 2014, at 20:06, Masoud Koleini <Masoud.Koleini@nottingham.ac.uk> wrote:
>
>> I have defined 3 vifs with 3 different mac addresses for the 3 tap
>> devices that I am using, and switch shows the same mac address (mac
>> address of the first defined vif) assigned to both tap2 and tap3.
>>
>> Another issue that I faced is, although I can ping switch vm, nothing
>> appears on vifs and xenbr0 when switch starts a TCP connection to a
>> remote controller (using TCPV4 create_connection function). This
>> function works well for unix config.
>>
>> On 26/10/14 11:43, Anil Madhavapeddy wrote:
>>> On 25 Oct 2014, at 11:36, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>> Hi all,
>>>>
>>>> I have a switch with three tap devices tap0 (for the controller connection), tap1, and tap 2 running on Xen.
>>>>
>>>> What would be the right VIF configuration for Xen?
>>> It would be pretty much the same configuration as your tap setup.  The Xen networking model is to expose a VIF ('virtual interface') in the guest and dom0.  Everything else from there is host setup and can be customised -- most commonly by adding a bridge to the outside world and adding the VIFs from the guests to that bridge so they can communication externally.
>>>
>>> The xl setup fragment looks like:
>>>
>>>      vif = [ 'bridge=xenbr0' ]
>>> or
>>>      vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]
>>>
>>> -anil
>> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.
>>
>> This message has been checked for viruses but the contents of an attachment
>> may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.
>>
>>
>>
>>
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 30 17:57:24 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 17:57: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 1XjtyN-0002Ek-Oa; Thu, 30 Oct 2014 17:57:23 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <masoud.koleini@nottingham.ac.uk>) id 1XjtyL-0002Ef-Ll
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 17:57:21 +0000
Received: from [85.158.139.211] by server-8.bemta-5.messagelabs.com id
	AF/85-11581-00C72545; Thu, 30 Oct 2014 17:57:20 +0000
X-Env-Sender: masoud.koleini@nottingham.ac.uk
X-Msg-Ref: server-13.tower-206.messagelabs.com!1414691839!12030352!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15365 invoked from network); 30 Oct 2014 17:57:20 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-13.tower-206.messagelabs.com with SMTP;
	30 Oct 2014 17:57:20 -0000
Received: (qmail 12327 invoked from network); 30 Oct 2014 17:54:52 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 30 Oct 2014 17:54:52 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 12289-02 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 17:54:51 +0000 (GMT)
Received: (qmail 11317 invoked by uid 599); 30 Oct 2014 17:53:50 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 17:53:49 +0000
Received: from cirrus.cs.nott.ac.uk ([128.243.23.185])
	by smtp3.nottingham.ac.uk with esmtp (Exim 4.77)
	(envelope-from <masoud.koleini@nottingham.ac.uk>)
	id 1Xjtux-000600-RZ; Thu, 30 Oct 2014 17:53:51 +0000
Message-ID: <54527B2F.6030006@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 17:53:51 +0000
From: Masoud Koleini <masoud.koleini@nottingham.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>, 
	Haris Rotsos <cr409@cl.cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
In-Reply-To: <2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Solved.

Although Netif.connect accepts alphanumeric device ids in unix 
configuration, Xen version only accepts integer ids. Otherwise, it 
always assigns the first defined vif to the device. So, "tap1" has to be 
"1", and so on.

Thanks everyone.

On 30/10/14 13:42, Richard Mortier wrote:
> all;
>
> to take a slightly different tack on this -- is there anyone out there successfully running mirage unikernels on xen that make use of >1 network interface?  how did you configure this?
>
> haris-- what did you do for the mirage openflow paper?
>
> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the canonical location for info on how to configure and manage networking on xen vms?
>
> and presumably all this results in entries in xenstore-- are http://wiki.xen.org/wiki/XenStore and http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation for xenstore and it's use by network devices?
>
> is there any documentation available on how to debug openvswitch networking on xen via xenstore (or through some other means)?
>
> On 26 Oct 2014, at 20:06, Masoud Koleini <Masoud.Koleini@nottingham.ac.uk> wrote:
>
>> I have defined 3 vifs with 3 different mac addresses for the 3 tap
>> devices that I am using, and switch shows the same mac address (mac
>> address of the first defined vif) assigned to both tap2 and tap3.
>>
>> Another issue that I faced is, although I can ping switch vm, nothing
>> appears on vifs and xenbr0 when switch starts a TCP connection to a
>> remote controller (using TCPV4 create_connection function). This
>> function works well for unix config.
>>
>> On 26/10/14 11:43, Anil Madhavapeddy wrote:
>>> On 25 Oct 2014, at 11:36, Masoud Koleini <masoud.koleini@nottingham.ac.uk> wrote:
>>>> Hi all,
>>>>
>>>> I have a switch with three tap devices tap0 (for the controller connection), tap1, and tap 2 running on Xen.
>>>>
>>>> What would be the right VIF configuration for Xen?
>>> It would be pretty much the same configuration as your tap setup.  The Xen networking model is to expose a VIF ('virtual interface') in the guest and dom0.  Everything else from there is host setup and can be customised -- most commonly by adding a bridge to the outside world and adding the VIFs from the guests to that bridge so they can communication externally.
>>>
>>> The xl setup fragment looks like:
>>>
>>>      vif = [ 'bridge=xenbr0' ]
>>> or
>>>      vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]
>>>
>>> -anil
>> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.
>>
>> This message has been checked for viruses but the contents of an attachment
>> may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.
>>
>>
>>
>>
>>
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.





_______________________________________________
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 Oct 30 18:18:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 18:18: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 1XjuIb-00036i-2U; Thu, 30 Oct 2014 18:18:17 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuIa-00036Y-Dj
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 18:18:16 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	80/6B-11608-7E082545; Thu, 30 Oct 2014 18:18:15 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-6.tower-31.messagelabs.com!1414693094!8234113!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10042 invoked from network); 30 Oct 2014 18:18:15 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-6.tower-31.messagelabs.com with SMTP;
	30 Oct 2014 18:18:15 -0000
Received: (qmail 31535 invoked from network); 30 Oct 2014 18:15:05 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 30 Oct 2014 18:15:05 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 29962-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 18:14:57 +0000 (GMT)
Received: (qmail 31388 invoked by uid 599); 30 Oct 2014 18:14:57 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 18:14:57 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuFO-0008Bc-W4; Thu, 30 Oct 2014 18:14:59 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Thu, 30 Oct 2014 18:14:57 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0bWoH37Uyby9cRDGhJ/SkgiLjww==
Message-ID: <3D9B9FB4-1D56-4904-A40A-DB62BBF03594@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
	<9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
In-Reply-To: <9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============9071821560161084966=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============9071821560161084966==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 30 Oct 2014, at 15:40, Anil Madhavapeddy <anil@recoil.org> wrote:

> On 30 Oct 2014, at 14:30, Len Maxwell <len@lnmx.org> wrote:
>>=20
>> ...Recently I found the Google trace-viewer [1] tool; it was built to
>> analyze performance issues in Chrome [2], is now being used for
>> Android, and the Go language may adopt it as well [3].  I think it
>> would be worthwhile to a) review their event types and JSON format =
[4]
>> for inspiration, and b) consider trace-viewer as an alternative =
viewer
>> for some use cases.
>>=20
>> As an experiment, I manually instrumented mirage-www with =
trace-viewer
>> JSON output, and the result is here [5].  Download that file, open
>> about://tracing in Chrome, then Load the .trace file.  (Failing that,
>> you can get the trace-viewer source [1] and run the dev_server, or
>> view the self-contained HTML/JS version [6]).  Press '?' for help
...
>=20
> I didn't even know of the existence of this tool, so the trace format
> looks useful even if the Chrome tool itself doesn't quite match.  The
> HN thread mentioned the LTTng, which doesn't look quite as well used
> as this (which is used for actual profiling in Android and Chrome, by
> the looks of it).

distinguishing the particulars of that viewer from the tracing =
infrastructure, it's worth thinking up front about how far down the =
tracing infrastructure will go.

for magpie we used event tracing for windows[etw][] which is a =
reasonably compact extensible binary format, and so can be used to =
instrument every context switch. probably wouldn't want to be inserting =
json blobs into a buffer at the same rate.

[etw]: =
http://msdn.microsoft.com/en-us/library/windows/desktop/bb968803(v=3Dvs.85=
).aspx

seems there might be a couple of options here:

+ uniform instrumentation throughout mirage -- probably requires compact =
representation, maybe permits per-unikernel rather than per-subsystem =
buffers, probably simplifies parsing.

+ heterogeneous instrumentation -- may need compact representation(s) =
for low layer things like tracking lwt threads but more trivially =
extensible things like json for higher layer app things. probably more =
complex to parse and integrate across though. different formats =
presumably need different buffers to be written into though and probably =
end up needing some care as to how events at different layers are to be =
linked up.

--=20
Cheers,

R.





--Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUoAhAAoJEOLF27JWwSg32nYP/2SOVwqdu/rxR7cOG8UNGM1l
ACqN59YqgsdW8PIxEq2pm3xw2y1fAdRT+uDI5GjgxLNl0a0eG8iQjDCqrPDdiW+s
rdkb11h3orXX35spLF6Fbrhc20IXpx72Vft7HgPuLSBfXir1m4yCmraTZfoH0FIq
Sna6cD12avXV7oTWmpoLxvAthK8f7HHtzOKSXVM4sSgqRAqH1+XN2jGLAbgF7bSf
bDMOSbMfTRbZDUodhYawNegLZOZ0W4BC+24LXmQjgs+QKqLM8P8wDEIURhDp0qNP
I3t9f9YSL7nDMXsuCsx/h/OKsoQsUZcvqWLPVZn64QuM+EvHNgfqBrIcTXQ+yu/i
5z33wv1LCC1JwdPUBp47Mdw387jSv2HDG+o+plHS9U7DCXBHA0nZUZSP94byqpdQ
Ip7VgcEfqE6J6Hf4hKp5fqfd9BrG3DSILejvLb0VtNeQTzkQN1VfiLlj9uLPmCpP
GVOebd88h8ixqTdlM9yiB0PQWO9xLM/jjj1HLz2dtTlowVuIoPqEf+ehqxNsNRCs
0TbyJzGRlCVl0lhkWqecJudOmN8o//fFw62yvK+q4q1A7vpn2I6wsD/jJQKKA/m6
PfnbA8lpUQnlnFyPWWfHvwyn9BNNfxRTuVkbfslLIDpyUF5nYctUzzcev2vD9QRz
mMQyjWLq8m2H4XKDqoCp
=kRcX
-----END PGP SIGNATURE-----

--Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767--


--===============9071821560161084966==
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

--===============9071821560161084966==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 18:18:23 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 18:18: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 1XjuIb-00036i-2U; Thu, 30 Oct 2014 18:18:17 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuIa-00036Y-Dj
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 18:18:16 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	80/6B-11608-7E082545; Thu, 30 Oct 2014 18:18:15 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-6.tower-31.messagelabs.com!1414693094!8234113!1
X-Originating-IP: [93.159.202.52]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10042 invoked from network); 30 Oct 2014 18:18:15 -0000
Received: from engine03-20433-10.icritical.com (HELO
	engine03-20433-10.icritical.com) (93.159.202.52)
	by server-6.tower-31.messagelabs.com with SMTP;
	30 Oct 2014 18:18:15 -0000
Received: (qmail 31535 invoked from network); 30 Oct 2014 18:15:05 -0000
Received: from localhost (127.0.0.1)
	by engine03-20433-10.icritical.com with SMTP; 30 Oct 2014 18:15:05 -0000
Received: from engine03-20433-10.icritical.com ([127.0.0.1])
	by localhost (engine03-20433-10.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 29962-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 18:14:57 +0000 (GMT)
Received: (qmail 31388 invoked by uid 599); 30 Oct 2014 18:14:57 -0000
Received: from unknown (HELO smtp4.nottingham.ac.uk) (128.243.220.65)
	by engine03-20433-10.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 18:14:57 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp4.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuFO-0008Bc-W4; Thu, 30 Oct 2014 18:14:59 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Thu, 30 Oct 2014 18:14:57 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0bWoH37Uyby9cRDGhJ/SkgiLjww==
Message-ID: <3D9B9FB4-1D56-4904-A40A-DB62BBF03594@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<CAHwFrZfbi82Ot-EjLOY+5UYMpe23CaBTz9A667CVJYyz5ThtDA@mail.gmail.com>
	<9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
In-Reply-To: <9D2CAEF5-3E46-44FD-96B9-8845D6229CE8@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine03-20433-10.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============9071821560161084966=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============9071821560161084966==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 30 Oct 2014, at 15:40, Anil Madhavapeddy <anil@recoil.org> wrote:

> On 30 Oct 2014, at 14:30, Len Maxwell <len@lnmx.org> wrote:
>>=20
>> ...Recently I found the Google trace-viewer [1] tool; it was built to
>> analyze performance issues in Chrome [2], is now being used for
>> Android, and the Go language may adopt it as well [3].  I think it
>> would be worthwhile to a) review their event types and JSON format =
[4]
>> for inspiration, and b) consider trace-viewer as an alternative =
viewer
>> for some use cases.
>>=20
>> As an experiment, I manually instrumented mirage-www with =
trace-viewer
>> JSON output, and the result is here [5].  Download that file, open
>> about://tracing in Chrome, then Load the .trace file.  (Failing that,
>> you can get the trace-viewer source [1] and run the dev_server, or
>> view the self-contained HTML/JS version [6]).  Press '?' for help
...
>=20
> I didn't even know of the existence of this tool, so the trace format
> looks useful even if the Chrome tool itself doesn't quite match.  The
> HN thread mentioned the LTTng, which doesn't look quite as well used
> as this (which is used for actual profiling in Android and Chrome, by
> the looks of it).

distinguishing the particulars of that viewer from the tracing =
infrastructure, it's worth thinking up front about how far down the =
tracing infrastructure will go.

for magpie we used event tracing for windows[etw][] which is a =
reasonably compact extensible binary format, and so can be used to =
instrument every context switch. probably wouldn't want to be inserting =
json blobs into a buffer at the same rate.

[etw]: =
http://msdn.microsoft.com/en-us/library/windows/desktop/bb968803(v=3Dvs.85=
).aspx

seems there might be a couple of options here:

+ uniform instrumentation throughout mirage -- probably requires compact =
representation, maybe permits per-unikernel rather than per-subsystem =
buffers, probably simplifies parsing.

+ heterogeneous instrumentation -- may need compact representation(s) =
for low layer things like tracking lwt threads but more trivially =
extensible things like json for higher layer app things. probably more =
complex to parse and integrate across though. different formats =
presumably need different buffers to be written into though and probably =
end up needing some care as to how events at different layers are to be =
linked up.

--=20
Cheers,

R.





--Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUoAhAAoJEOLF27JWwSg32nYP/2SOVwqdu/rxR7cOG8UNGM1l
ACqN59YqgsdW8PIxEq2pm3xw2y1fAdRT+uDI5GjgxLNl0a0eG8iQjDCqrPDdiW+s
rdkb11h3orXX35spLF6Fbrhc20IXpx72Vft7HgPuLSBfXir1m4yCmraTZfoH0FIq
Sna6cD12avXV7oTWmpoLxvAthK8f7HHtzOKSXVM4sSgqRAqH1+XN2jGLAbgF7bSf
bDMOSbMfTRbZDUodhYawNegLZOZ0W4BC+24LXmQjgs+QKqLM8P8wDEIURhDp0qNP
I3t9f9YSL7nDMXsuCsx/h/OKsoQsUZcvqWLPVZn64QuM+EvHNgfqBrIcTXQ+yu/i
5z33wv1LCC1JwdPUBp47Mdw387jSv2HDG+o+plHS9U7DCXBHA0nZUZSP94byqpdQ
Ip7VgcEfqE6J6Hf4hKp5fqfd9BrG3DSILejvLb0VtNeQTzkQN1VfiLlj9uLPmCpP
GVOebd88h8ixqTdlM9yiB0PQWO9xLM/jjj1HLz2dtTlowVuIoPqEf+ehqxNsNRCs
0TbyJzGRlCVl0lhkWqecJudOmN8o//fFw62yvK+q4q1A7vpn2I6wsD/jJQKKA/m6
PfnbA8lpUQnlnFyPWWfHvwyn9BNNfxRTuVkbfslLIDpyUF5nYctUzzcev2vD9QRz
mMQyjWLq8m2H4XKDqoCp
=kRcX
-----END PGP SIGNATURE-----

--Apple-Mail=_2E051386-D3AB-4D67-B159-91FF8FD9D767--


--===============9071821560161084966==
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

--===============9071821560161084966==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 18:20:07 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 18:20: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 1XjuKN-000392-9R; Thu, 30 Oct 2014 18:20:07 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuKM-00038v-3J
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 18:20:06 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	3B/8B-22777-55182545; Thu, 30 Oct 2014 18:20:05 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-6.tower-206.messagelabs.com!1414693204!12088719!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11727 invoked from network); 30 Oct 2014 18:20:04 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-6.tower-206.messagelabs.com with SMTP;
	30 Oct 2014 18:20:04 -0000
Received: (qmail 7732 invoked from network); 30 Oct 2014 18:19:29 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 18:19:29 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 05629-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 18:19:20 +0000 (GMT)
Received: (qmail 7600 invoked by uid 599); 30 Oct 2014 18:19:20 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 18:19:20 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuJa-0006hL-Hx; Thu, 30 Oct 2014 18:19:18 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Thu, 30 Oct 2014 18:19:17 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0bgTPGQ+W7bSdTtSMC3sBCqQbIQ==
Message-ID: <0BFF45CB-4462-4F31-8BBD-126CD4A37E66@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
In-Reply-To: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============7453183788995680740=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7453183788995680740==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1


On 30 Oct 2014, at 15:55, Anil Madhavapeddy <anil@recoil.org> wrote:

> On 30 Oct 2014, at 09:36, Thomas Leonard <talex5@gmail.com> wrote:
>>=20
>> On 28 October 2014 22:36, Daniel B=FCnzli =
<daniel.buenzli@erratique.ch> wrote:
>>>=20
>>> Le mardi, 28 octobre 2014 =E0 23:21, Anil Madhavapeddy a =E9crit :
>>>=20
>>>> Assemblage is still undergoing 'rapid iteration', so I'd suggest
>>>> switching to OASIS until we have a more stable version. ThomasG or
>>>> Daniel Buenzli can correct me if that's not accurate.
>>>=20
>>> That's accurate. If we agree with Thomas on the PR I'm going to make =
next week, the current API completely changes and assemble.ml files will =
need rewriting. We need time to design a great system and it's better if =
we don't encumber ourselves with users at the moment.
>>=20
>> OK, done (thanks to Thomas for some OPAM help!). I think the main
>> thing now is to agree the API for libraries to record tracing events.
>>=20
>> Here's what I have so far:
>>=20
>> =
https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>=20
> Does note_suspend/note_resume here refer to dropping in the scheduler =
(the
> equivalent of blocking the domain)?  It could easily be conflated with
> VM suspend/resume (which is a higher-level protocol).  The actual =
state
> transition is "waiting for I/O", so perhaps we should name it after =
that?

would've thought having a single parameterised function is better than =
being too specific?

> To echo Mort's comment, istr in Xenstore that there was a problem with =
many
> duplicate strings for labels, so it has a module somewhere that =
creates
> a Symbol.t that dedups similar strings, and also has the benefit that
> comparison can be done via fast equality rather than byte-by-byte =
checking.
> It also allows errors to be flagged up if (for example) duplicate =
symbol
> names are used in different programs.

yes; another point on similar lines is that it's good to keep things =
like labels as unique as possible as long as possible -- let the event =
consumer express any reconciliation between events of different types/in =
different subsystems that they want. (this was what allowed us in magpie =
to use identical sqlserver and iis instrumentation to produce =
performance models for both TPC-W and TPC-C workloads.)


--=20
Cheers,

R.





--Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUoElAAoJEOLF27JWwSg3VFwP/2hgEvIWUEni7eMmuetfKTX4
gwslsWBZPVVbVVsdUAQZuh155j79MjuMceCJPExNWOtCcFHyYi2F9Xcr7ejelKXO
xNhRnMzpxVwKCIZN6wsdvN8PfiYoZPvyWHUGXoOQSQAqJeM2EDhkJ247nLR6B3ED
2Afihs4U6dYMvhhhnzVp7SlhVDjJQqRSQuBG9s0XKmhTPm3u1V755uMuk7vgtUHr
37bKgeaXcLpvg4p0LgbgBFvgt+SGttJChQG1vL9rco0fYWDnvPIrXJpyqEclJlEh
yR47MVLw7ItXn03VB0Bm76d0ACleUjXXRxHBl8wTMvgP559vXEYmADqiCjWHqX0L
TVuVE8K+pq/umXMuUoxMJAM9Y4uHW8z9NH30ojF6lOmxDf9+Xcp6NURrry+SNRBB
6qIWTdDTsqEpEhnVk9XgB+Mdc0fKLgInwvlkQd4KkteKMHYGCEOgNkh8/CHF3Ift
Xec843LHYIz7qKitkebwhhMEH3f2gMyRlJyG0ReTalmsNqS5EhLw2DdvKzpcSdYw
JKeGiCaTGFyjo90BetZgI1PN3nxMGt+0i0VDXfPV1B1taA7Jf+w5L5aoxMWYO50G
cnVqWBHBH3AeLmLle47ozxHUvCreHRyhGdui+LmLdj+QhmpsOe7mVL9RgRUHBrMy
qF2swziKqqVqwnCH7+xb
=sc3C
-----END PGP SIGNATURE-----

--Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5--


--===============7453183788995680740==
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

--===============7453183788995680740==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 18:20:07 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 18:20: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 1XjuKN-000392-9R; Thu, 30 Oct 2014 18:20:07 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuKM-00038v-3J
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 18:20:06 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	3B/8B-22777-55182545; Thu, 30 Oct 2014 18:20:05 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-6.tower-206.messagelabs.com!1414693204!12088719!1
X-Originating-IP: [151.236.209.33]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11727 invoked from network); 30 Oct 2014 18:20:04 -0000
Received: from engine01-20433-7.icritical.com (HELO
	engine01-20433-7.icritical.com) (151.236.209.33)
	by server-6.tower-206.messagelabs.com with SMTP;
	30 Oct 2014 18:20:04 -0000
Received: (qmail 7732 invoked from network); 30 Oct 2014 18:19:29 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-7.icritical.com with SMTP; 30 Oct 2014 18:19:29 -0000
Received: from engine01-20433-7.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-7.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 05629-05 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 18:19:20 +0000 (GMT)
Received: (qmail 7600 invoked by uid 599); 30 Oct 2014 18:19:20 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-7.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 18:19:20 +0000
Received: from uiwexhub02.ad.nottingham.ac.uk ([128.243.15.132])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuJa-0006hL-Hx; Thu, 30 Oct 2014 18:19:18 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Anil Madhavapeddy <anil@recoil.org>
Date: Thu, 30 Oct 2014 18:19:17 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0bgTPGQ+W7bSdTtSMC3sBCqQbIQ==
Message-ID: <0BFF45CB-4462-4F31-8BBD-126CD4A37E66@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
In-Reply-To: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-7.icritical.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============7453183788995680740=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7453183788995680740==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1


On 30 Oct 2014, at 15:55, Anil Madhavapeddy <anil@recoil.org> wrote:

> On 30 Oct 2014, at 09:36, Thomas Leonard <talex5@gmail.com> wrote:
>>=20
>> On 28 October 2014 22:36, Daniel B=FCnzli =
<daniel.buenzli@erratique.ch> wrote:
>>>=20
>>> Le mardi, 28 octobre 2014 =E0 23:21, Anil Madhavapeddy a =E9crit :
>>>=20
>>>> Assemblage is still undergoing 'rapid iteration', so I'd suggest
>>>> switching to OASIS until we have a more stable version. ThomasG or
>>>> Daniel Buenzli can correct me if that's not accurate.
>>>=20
>>> That's accurate. If we agree with Thomas on the PR I'm going to make =
next week, the current API completely changes and assemble.ml files will =
need rewriting. We need time to design a great system and it's better if =
we don't encumber ourselves with users at the moment.
>>=20
>> OK, done (thanks to Thomas for some OPAM help!). I think the main
>> thing now is to agree the API for libraries to record tracing events.
>>=20
>> Here's what I have so far:
>>=20
>> =
https://github.com/talex5/mirage-profile/blob/new-api/lib/trace_stubs.mli
>> https://github.com/talex5/mirage-profile/blob/new-api/lib/counter.mli
>=20
> Does note_suspend/note_resume here refer to dropping in the scheduler =
(the
> equivalent of blocking the domain)?  It could easily be conflated with
> VM suspend/resume (which is a higher-level protocol).  The actual =
state
> transition is "waiting for I/O", so perhaps we should name it after =
that?

would've thought having a single parameterised function is better than =
being too specific?

> To echo Mort's comment, istr in Xenstore that there was a problem with =
many
> duplicate strings for labels, so it has a module somewhere that =
creates
> a Symbol.t that dedups similar strings, and also has the benefit that
> comparison can be done via fast equality rather than byte-by-byte =
checking.
> It also allows errors to be flagged up if (for example) duplicate =
symbol
> names are used in different programs.

yes; another point on similar lines is that it's good to keep things =
like labels as unique as possible as long as possible -- let the event =
consumer express any reconciliation between events of different types/in =
different subsystems that they want. (this was what allowed us in magpie =
to use identical sqlserver and iis instrumentation to produce =
performance models for both TPC-W and TPC-C workloads.)


--=20
Cheers,

R.





--Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUoElAAoJEOLF27JWwSg3VFwP/2hgEvIWUEni7eMmuetfKTX4
gwslsWBZPVVbVVsdUAQZuh155j79MjuMceCJPExNWOtCcFHyYi2F9Xcr7ejelKXO
xNhRnMzpxVwKCIZN6wsdvN8PfiYoZPvyWHUGXoOQSQAqJeM2EDhkJ247nLR6B3ED
2Afihs4U6dYMvhhhnzVp7SlhVDjJQqRSQuBG9s0XKmhTPm3u1V755uMuk7vgtUHr
37bKgeaXcLpvg4p0LgbgBFvgt+SGttJChQG1vL9rco0fYWDnvPIrXJpyqEclJlEh
yR47MVLw7ItXn03VB0Bm76d0ACleUjXXRxHBl8wTMvgP559vXEYmADqiCjWHqX0L
TVuVE8K+pq/umXMuUoxMJAM9Y4uHW8z9NH30ojF6lOmxDf9+Xcp6NURrry+SNRBB
6qIWTdDTsqEpEhnVk9XgB+Mdc0fKLgInwvlkQd4KkteKMHYGCEOgNkh8/CHF3Ift
Xec843LHYIz7qKitkebwhhMEH3f2gMyRlJyG0ReTalmsNqS5EhLw2DdvKzpcSdYw
JKeGiCaTGFyjo90BetZgI1PN3nxMGt+0i0VDXfPV1B1taA7Jf+w5L5aoxMWYO50G
cnVqWBHBH3AeLmLle47ozxHUvCreHRyhGdui+LmLdj+QhmpsOe7mVL9RgRUHBrMy
qF2swziKqqVqwnCH7+xb
=sc3C
-----END PGP SIGNATURE-----

--Apple-Mail=_17C549EF-5F9E-430D-A8AC-04F7B7CBDEA5--


--===============7453183788995680740==
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

--===============7453183788995680740==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 18:29:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 18:29:34 +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 1XjuTV-0003IQ-7T; Thu, 30 Oct 2014 18:29:33 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuTT-0003IL-QO
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 18:29:32 +0000
Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id
	6D/94-29352-B8382545; Thu, 30 Oct 2014 18:29:31 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-5.tower-206.messagelabs.com!1414693770!12747844!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21514 invoked from network); 30 Oct 2014 18:29:30 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-5.tower-206.messagelabs.com with SMTP;
	30 Oct 2014 18:29:30 -0000
Received: (qmail 29020 invoked from network); 30 Oct 2014 18:29:30 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 30 Oct 2014 18:29:30 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 28628-09 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 18:29:22 +0000 (GMT)
Received: (qmail 27564 invoked by uid 599); 30 Oct 2014 18:26:43 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 18:26:43 +0000
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuQk-0006rb-NQ; Thu, 30 Oct 2014 18:26:42 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Leonard <talex5@gmail.com>
Date: Thu, 30 Oct 2014 18:26:41 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0bw0Iz+wM/bUGT0Cn8P+Hi9IKlA==
Message-ID: <EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
In-Reply-To: <CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============2484252489924462455=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2484252489924462455==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 30 Oct 2014, at 16:29, Thomas Leonard <talex5@gmail.com> wrote:

> On 30 October 2014 14:20, Richard Mortier
> <Richard.Mortier@nottingham.ac.uk> wrote:
>>=20
>> would it make sense for note_{suspend,resume} to be string -> unit =
(or some more opaque type than string even, though perhaps of fixed =
size) so that the programmer can indicate reasons for the =
suspend/resume?
>=20
> This name is perhaps confusing, but it's for block_domain/poll/select.
> On Xen, mirage-platform's main.ml is that only thing that calls it.
> The reason for suspending is always that there isn't any work to do
> (exactly what we're waiting for is indicated by the sleeping event
> channel threads at that moment).
>=20
> If we had a more general version, it could perhaps be used for GC
> pauses too, but there's a separate entry point for that using
> Callback, because it's called from C code. Actual suspend-to-disk
> could be another reason.
>=20
> Are there any more types?

ah-- see comment to other mail i guess. seems likely to be better to =
parameterise this rather than bake it into the api, doesn't it?  (i may =
be missing something obvious about types and ocaml here :)

>> can labels on threads be changed over their lifetime?  can labels =
overlap or are they unique?  if unique, within what context?
>=20
> Originally there was one label per thread, but now they're essentially
> just log messages that get attached to the active thread. They can be
> used to label a thread, but also to note interesting events, so
> perhaps a different name would be useful here (Trace.log?
> Trace.note?). There should probably be a printf version too.
>=20
> Actual labelling more often happens with named_wait, named_task, etc =
now.

ah right; i guess i'm talking about an api that subsumes lwt tracing and =
supports more general tracing throughout many libraries.

>=20
>> trace_enabled.mli:
>>=20
>> how do i interact with the buffer other than to snapshot it?
>=20
> What kind of interations did you have in mind?

one thing ETW allowed which was nice was to have real-time consumers of =
the tracing buffers. would allow this kind of infrastructure to plugin =
to something that was doing more dynamic resource management for =
unikernels across (e.g.) a datacenter.

>> ...and what's counter for?  (ie., how general/widely used is it =
intended to be?)
>=20
> In the examples, I used counters for:
>=20
> - Number of active grant refs
> - Number of block reads completed
> - Bytes written to console
> - IP packets sent
> - TCP bytes submitted
> - TCP bytes ack'd
>=20
> Measuring stuff can get complicated quickly. The last monitoring
> system I worked on had many different types of "metric" (instantaneous
> measurements, cumulative usage, on-going rates of increase, etc). You
> could efficiently query for e.g. average response latecy between any
> two points in time, allowing for real-time display of "average latency
> over the last 5 min" or "number of requests since midnight", etc.
>=20
> The counters were also arranged in a hierarchy. For example, you could
> have a segments-acked counter for each TCP stream, which would then
> also get aggregated as totals for that VM, and then further aggregated
> both per-customer (across multiple VMs), and per resource pool. You
> could see graphs of aggregated data and then drill down to see what
> had contributed to it.
>=20
> Some of the metrics were shared with customers[*], who treated them as
> extra monitoring data for their own (outsourced) resource pools.
>=20
> I don't know whether we want to go down that route just yet, though.
> It took a while to explain everything ;-)

:)

i guess there are two orthogonal things here.

metrics as you describe above, which to my mind sound like (e.g.) SNMP =
MIBs. most useful for understanding aggregate performance of a system.

event tracing as i've been implicitly assuming, which permits more =
detailed cuts through system performance at the cost of added complexity =
(per magpie).

both are useful i think, though you ought to be able to build the former =
on the latter (though that might be more complex than seems reasonable).

>> agree to some extent -- though if some components wish to control =
tracing in other components as a result of observation of their own =
behaviour, the control API may become  more pervasively used than the =
dumping/display api i guess.
>=20
> Perhaps. I suspect we'd have the libraries just produce events and
> have the logic for responding to them in the unikernel config, rather
> than having libraries reconfiguring the profiling directly. That
> sounds confusing!

heh-- having dynamic control of tracing was something we discussed with =
magpie but never implemented. the idea would've been something like a =
datacenter operator could notice an issue, and then "turn up" the =
tracing to get more detailed models, to the point where they could =
diagnose the problems.

but as i said, we never actually did that. (though ETW does allow =
dynamic control over tracing levels from a command line tool.)


--=20
Cheers,

R.





--Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUoLhAAoJEOLF27JWwSg3rY4P/25ZzW4RSc1ZOuWCP2fBGEzM
stNQuXHNxakz3yseHzVUbzW0IKpXdQotJHkBonsyLQ1FqmewQ6Eb4/scsjL9JLHX
rRf2+FITOM5hOF2uzilSR7zVY7Nmn7UvIe2pBFjC9BAc06+ZTH/S/BxNXiYljVsK
k8AI9x2pEz2Awfa7fravfye+QH92+OVOayWI715Sgk9kfGuL1sR9E+Z+5k22wof4
o1p9nQWiYWVC1rdn8UgEKBSQKPQ0jBDdk6RuSEUcJ5oK8Dca72M44qrlbmOtImuv
X3do9te+h8R0nUStFfmZteuNEVCC4cFvYImQToAfZ3yf+pDcmCD12rBW+lFNydPK
kC5pq0k+CjYSorpFL2Dz3YJynsFzfJIOOyXIX4f1PwXjYnDpwfcCBAMNNQUq10sp
4L32S6sK/grphIbF1FuI2ey4uzeDolnrNImLhCX/LpEzh1FdaCOo0WUAH4GRMahH
TcW0jPJLAgnW1qY34OK4V+1M7nPq0Ham9v62MDXYxvYdV/K3/8PMCiCvesb2hGV4
TvrSOx8ZYhphyXa7b5Z+JOr00LK3Y3j2xBnn8H8CQpm9BVzxXloLnF/cJ60nUkI5
WugYlvpAKXK2+s+ZLXlwmOb3mnBbpit8TLBu5gn2C14206utJF4nxbwEW7qc87Vm
MKv+ZgW9AhOn09D3ym92
=5dq5
-----END PGP SIGNATURE-----

--Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5--


--===============2484252489924462455==
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

--===============2484252489924462455==--


From mirageos-devel-bounces@lists.xenproject.org Thu Oct 30 18:29:34 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Oct 2014 18:29:34 +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 1XjuTV-0003IQ-7T; Thu, 30 Oct 2014 18:29:33 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuTT-0003IL-QO
	for mirageos-devel@lists.xenproject.org; Thu, 30 Oct 2014 18:29:32 +0000
Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id
	6D/94-29352-B8382545; Thu, 30 Oct 2014 18:29:31 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-5.tower-206.messagelabs.com!1414693770!12747844!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21514 invoked from network); 30 Oct 2014 18:29:30 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-5.tower-206.messagelabs.com with SMTP;
	30 Oct 2014 18:29:30 -0000
Received: (qmail 29020 invoked from network); 30 Oct 2014 18:29:30 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 30 Oct 2014 18:29:30 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 28628-09 for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 18:29:22 +0000 (GMT)
Received: (qmail 27564 invoked by uid 599); 30 Oct 2014 18:26:43 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Thu, 30 Oct 2014 18:26:43 +0000
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XjuQk-0006rb-NQ; Thu, 30 Oct 2014 18:26:42 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Thomas Leonard <talex5@gmail.com>
Date: Thu, 30 Oct 2014 18:26:41 +0000
Thread-Topic: [MirageOS-devel] Tracing and profiling blog post
Thread-Index: Ac/0bw0Iz+wM/bUGT0Cn8P+Hi9IKlA==
Message-ID: <EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
In-Reply-To: <CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============2484252489924462455=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2484252489924462455==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On 30 Oct 2014, at 16:29, Thomas Leonard <talex5@gmail.com> wrote:

> On 30 October 2014 14:20, Richard Mortier
> <Richard.Mortier@nottingham.ac.uk> wrote:
>>=20
>> would it make sense for note_{suspend,resume} to be string -> unit =
(or some more opaque type than string even, though perhaps of fixed =
size) so that the programmer can indicate reasons for the =
suspend/resume?
>=20
> This name is perhaps confusing, but it's for block_domain/poll/select.
> On Xen, mirage-platform's main.ml is that only thing that calls it.
> The reason for suspending is always that there isn't any work to do
> (exactly what we're waiting for is indicated by the sleeping event
> channel threads at that moment).
>=20
> If we had a more general version, it could perhaps be used for GC
> pauses too, but there's a separate entry point for that using
> Callback, because it's called from C code. Actual suspend-to-disk
> could be another reason.
>=20
> Are there any more types?

ah-- see comment to other mail i guess. seems likely to be better to =
parameterise this rather than bake it into the api, doesn't it?  (i may =
be missing something obvious about types and ocaml here :)

>> can labels on threads be changed over their lifetime?  can labels =
overlap or are they unique?  if unique, within what context?
>=20
> Originally there was one label per thread, but now they're essentially
> just log messages that get attached to the active thread. They can be
> used to label a thread, but also to note interesting events, so
> perhaps a different name would be useful here (Trace.log?
> Trace.note?). There should probably be a printf version too.
>=20
> Actual labelling more often happens with named_wait, named_task, etc =
now.

ah right; i guess i'm talking about an api that subsumes lwt tracing and =
supports more general tracing throughout many libraries.

>=20
>> trace_enabled.mli:
>>=20
>> how do i interact with the buffer other than to snapshot it?
>=20
> What kind of interations did you have in mind?

one thing ETW allowed which was nice was to have real-time consumers of =
the tracing buffers. would allow this kind of infrastructure to plugin =
to something that was doing more dynamic resource management for =
unikernels across (e.g.) a datacenter.

>> ...and what's counter for?  (ie., how general/widely used is it =
intended to be?)
>=20
> In the examples, I used counters for:
>=20
> - Number of active grant refs
> - Number of block reads completed
> - Bytes written to console
> - IP packets sent
> - TCP bytes submitted
> - TCP bytes ack'd
>=20
> Measuring stuff can get complicated quickly. The last monitoring
> system I worked on had many different types of "metric" (instantaneous
> measurements, cumulative usage, on-going rates of increase, etc). You
> could efficiently query for e.g. average response latecy between any
> two points in time, allowing for real-time display of "average latency
> over the last 5 min" or "number of requests since midnight", etc.
>=20
> The counters were also arranged in a hierarchy. For example, you could
> have a segments-acked counter for each TCP stream, which would then
> also get aggregated as totals for that VM, and then further aggregated
> both per-customer (across multiple VMs), and per resource pool. You
> could see graphs of aggregated data and then drill down to see what
> had contributed to it.
>=20
> Some of the metrics were shared with customers[*], who treated them as
> extra monitoring data for their own (outsourced) resource pools.
>=20
> I don't know whether we want to go down that route just yet, though.
> It took a while to explain everything ;-)

:)

i guess there are two orthogonal things here.

metrics as you describe above, which to my mind sound like (e.g.) SNMP =
MIBs. most useful for understanding aggregate performance of a system.

event tracing as i've been implicitly assuming, which permits more =
detailed cuts through system performance at the cost of added complexity =
(per magpie).

both are useful i think, though you ought to be able to build the former =
on the latter (though that might be more complex than seems reasonable).

>> agree to some extent -- though if some components wish to control =
tracing in other components as a result of observation of their own =
behaviour, the control API may become  more pervasively used than the =
dumping/display api i guess.
>=20
> Perhaps. I suspect we'd have the libraries just produce events and
> have the logic for responding to them in the unikernel config, rather
> than having libraries reconfiguring the profiling directly. That
> sounds confusing!

heh-- having dynamic control of tracing was something we discussed with =
magpie but never implemented. the idea would've been something like a =
datacenter operator could notice an issue, and then "turn up" the =
tracing to get more detailed models, to the point where they could =
diagnose the problems.

but as i said, we never actually did that. (though ETW does allow =
dynamic control over tracing levels from a command line tool.)


--=20
Cheers,

R.





--Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUUoLhAAoJEOLF27JWwSg3rY4P/25ZzW4RSc1ZOuWCP2fBGEzM
stNQuXHNxakz3yseHzVUbzW0IKpXdQotJHkBonsyLQ1FqmewQ6Eb4/scsjL9JLHX
rRf2+FITOM5hOF2uzilSR7zVY7Nmn7UvIe2pBFjC9BAc06+ZTH/S/BxNXiYljVsK
k8AI9x2pEz2Awfa7fravfye+QH92+OVOayWI715Sgk9kfGuL1sR9E+Z+5k22wof4
o1p9nQWiYWVC1rdn8UgEKBSQKPQ0jBDdk6RuSEUcJ5oK8Dca72M44qrlbmOtImuv
X3do9te+h8R0nUStFfmZteuNEVCC4cFvYImQToAfZ3yf+pDcmCD12rBW+lFNydPK
kC5pq0k+CjYSorpFL2Dz3YJynsFzfJIOOyXIX4f1PwXjYnDpwfcCBAMNNQUq10sp
4L32S6sK/grphIbF1FuI2ey4uzeDolnrNImLhCX/LpEzh1FdaCOo0WUAH4GRMahH
TcW0jPJLAgnW1qY34OK4V+1M7nPq0Ham9v62MDXYxvYdV/K3/8PMCiCvesb2hGV4
TvrSOx8ZYhphyXa7b5Z+JOr00LK3Y3j2xBnn8H8CQpm9BVzxXloLnF/cJ60nUkI5
WugYlvpAKXK2+s+ZLXlwmOb3mnBbpit8TLBu5gn2C14206utJF4nxbwEW7qc87Vm
MKv+ZgW9AhOn09D3ym92
=5dq5
-----END PGP SIGNATURE-----

--Apple-Mail=_1BE1EF0C-437F-4CE9-832C-0BA824E57EB5--


--===============2484252489924462455==
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

--===============2484252489924462455==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 00:19:20 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 00:19: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 1Xjzvq-0000vD-NS; Fri, 31 Oct 2014 00:19:10 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mthurman@gmail.com>) id 1Xjzvo-0000v8-QK
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 00:19:09 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	55/44-28865-B75D2545; Fri, 31 Oct 2014 00:19:07 +0000
X-Env-Sender: mthurman@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1414714736!12075524!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_20_30, HTML_MESSAGE, ML_RADAR_SPEW_LINKS_8, RCVD_BY_IP,
	spamassassin: , 
	async_handler: YXN5bmNfZGVsYXk6IDcwNjI5ODQgKHRpbWVvdXQp\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14552 invoked from network); 31 Oct 2014 00:18:56 -0000
Received: from mail-wg0-f42.google.com (HELO mail-wg0-f42.google.com)
	(74.125.82.42)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 00:18:56 -0000
Received: by mail-wg0-f42.google.com with SMTP id k14so5450116wgh.29
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 17:18:56 -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=XuyXcfH3yqIcJHBPwoz6YPl46kALb9rlPNr0OykytrU=;
	b=Fh4pehij72L0wKMqa2tUqaOecsIcjwmmaMuXR9nyCVIZhyPJKtfWB1I2uLcamtV5As
	IFrkPeLJKm8UzYwJfW/XzQnxoUytcw90K+x9xtXwbIV6jrxoNPivamcD5jD9i0XjCFzf
	SfX639K1B7Yho82fPxnlexwvoca38Z4wZ6Q/d75kMYNcbifZiXHhyPzZvJvhbj1P/BFR
	OTM6fhAriEIQ86KXfTorukvSLjd+Grf/Z8yzKO0IJSG4Tjwmk/5Q5u4m0yRxZ0NSWnZH
	omN5dUG4MsVR6pV34wvvlgOHETBXVDe+u+UYmsUgsOlNekQLYMBzeb9Gm5NHbLgQVgEu
	+CZQ==
MIME-Version: 1.0
X-Received: by 10.180.83.37 with SMTP id n5mr153626wiy.7.1414714736501; Thu,
	30 Oct 2014 17:18:56 -0700 (PDT)
Received: by 10.216.61.145 with HTTP; Thu, 30 Oct 2014 17:18:56 -0700 (PDT)
In-Reply-To: <EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
	<EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 17:18:56 -0700
Message-ID: <CAG+370LSCk9Zbw9iW6-xB7gt55Yo9g+g9EUwikvqhFbijN1_uw@mail.gmail.com>
From: Mark Thurman <mthurman@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============2707811625621584146=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2707811625621584146==
Content-Type: multipart/alternative; boundary=f46d0442841a53e99f0506acf1e1

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

Here's more information about Go's use of the Chromium trace viewer:
https://docs.google.com/document/d/1FP5apqzBgr7ahCCgFO-yoVhk4YZrNIDNf9RybngBc14/pub
.

That link doesn't seem like it adds a ton of information, but it may be
interesting to some.

--Mark

Mark Thurman
mthurman@gmail.com

On Thu, Oct 30, 2014 at 11:26 AM, Richard Mortier <
Richard.Mortier@nottingham.ac.uk> wrote:

>
> On 30 Oct 2014, at 16:29, Thomas Leonard <talex5@gmail.com> wrote:
>
> > On 30 October 2014 14:20, Richard Mortier
> > <Richard.Mortier@nottingham.ac.uk> wrote:
> >>
> >> would it make sense for note_{suspend,resume} to be string -> unit (or
> some more opaque type than string even, though perhaps of fixed size) so
> that the programmer can indicate reasons for the suspend/resume?
> >
> > This name is perhaps confusing, but it's for block_domain/poll/select.
> > On Xen, mirage-platform's main.ml is that only thing that calls it.
> > The reason for suspending is always that there isn't any work to do
> > (exactly what we're waiting for is indicated by the sleeping event
> > channel threads at that moment).
> >
> > If we had a more general version, it could perhaps be used for GC
> > pauses too, but there's a separate entry point for that using
> > Callback, because it's called from C code. Actual suspend-to-disk
> > could be another reason.
> >
> > Are there any more types?
>
> ah-- see comment to other mail i guess. seems likely to be better to
> parameterise this rather than bake it into the api, doesn't it?  (i may be
> missing something obvious about types and ocaml here :)
>
> >> can labels on threads be changed over their lifetime?  can labels
> overlap or are they unique?  if unique, within what context?
> >
> > Originally there was one label per thread, but now they're essentially
> > just log messages that get attached to the active thread. They can be
> > used to label a thread, but also to note interesting events, so
> > perhaps a different name would be useful here (Trace.log?
> > Trace.note?). There should probably be a printf version too.
> >
> > Actual labelling more often happens with named_wait, named_task, etc now.
>
> ah right; i guess i'm talking about an api that subsumes lwt tracing and
> supports more general tracing throughout many libraries.
>
> >
> >> trace_enabled.mli:
> >>
> >> how do i interact with the buffer other than to snapshot it?
> >
> > What kind of interations did you have in mind?
>
> one thing ETW allowed which was nice was to have real-time consumers of
> the tracing buffers. would allow this kind of infrastructure to plugin to
> something that was doing more dynamic resource management for unikernels
> across (e.g.) a datacenter.
>
> >> ...and what's counter for?  (ie., how general/widely used is it
> intended to be?)
> >
> > In the examples, I used counters for:
> >
> > - Number of active grant refs
> > - Number of block reads completed
> > - Bytes written to console
> > - IP packets sent
> > - TCP bytes submitted
> > - TCP bytes ack'd
> >
> > Measuring stuff can get complicated quickly. The last monitoring
> > system I worked on had many different types of "metric" (instantaneous
> > measurements, cumulative usage, on-going rates of increase, etc). You
> > could efficiently query for e.g. average response latecy between any
> > two points in time, allowing for real-time display of "average latency
> > over the last 5 min" or "number of requests since midnight", etc.
> >
> > The counters were also arranged in a hierarchy. For example, you could
> > have a segments-acked counter for each TCP stream, which would then
> > also get aggregated as totals for that VM, and then further aggregated
> > both per-customer (across multiple VMs), and per resource pool. You
> > could see graphs of aggregated data and then drill down to see what
> > had contributed to it.
> >
> > Some of the metrics were shared with customers[*], who treated them as
> > extra monitoring data for their own (outsourced) resource pools.
> >
> > I don't know whether we want to go down that route just yet, though.
> > It took a while to explain everything ;-)
>
> :)
>
> i guess there are two orthogonal things here.
>
> metrics as you describe above, which to my mind sound like (e.g.) SNMP
> MIBs. most useful for understanding aggregate performance of a system.
>
> event tracing as i've been implicitly assuming, which permits more
> detailed cuts through system performance at the cost of added complexity
> (per magpie).
>
> both are useful i think, though you ought to be able to build the former
> on the latter (though that might be more complex than seems reasonable).
>
> >> agree to some extent -- though if some components wish to control
> tracing in other components as a result of observation of their own
> behaviour, the control API may become  more pervasively used than the
> dumping/display api i guess.
> >
> > Perhaps. I suspect we'd have the libraries just produce events and
> > have the logic for responding to them in the unikernel config, rather
> > than having libraries reconfiguring the profiling directly. That
> > sounds confusing!
>
> heh-- having dynamic control of tracing was something we discussed with
> magpie but never implemented. the idea would've been something like a
> datacenter operator could notice an issue, and then "turn up" the tracing
> to get more detailed models, to the point where they could diagnose the
> problems.
>
> but as i said, we never actually did that. (though ETW does allow dynamic
> control over tracing levels from a command line tool.)
>
>
> --
> Cheers,
>
> R.
>
>
>
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>

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

<div dir=3D"ltr">Here&#39;s more information about Go&#39;s use of the Chro=
mium trace viewer:=C2=A0<a href=3D"https://docs.google.com/document/d/1FP5a=
pqzBgr7ahCCgFO-yoVhk4YZrNIDNf9RybngBc14/pub">https://docs.google.com/docume=
nt/d/1FP5apqzBgr7ahCCgFO-yoVhk4YZrNIDNf9RybngBc14/pub</a>.<div><br></div><d=
iv>That link doesn&#39;t seem like it adds a ton of information, but it may=
 be interesting to some.</div><div><br></div><div>--Mark</div></div><div cl=
ass=3D"gmail_extra"><br clear=3D"all"><div><div class=3D"gmail_signature">M=
ark Thurman<br><a href=3D"mailto:mthurman@gmail.com">mthurman@gmail.com</a>=
</div></div>
<br><div class=3D"gmail_quote">On Thu, Oct 30, 2014 at 11:26 AM, Richard Mo=
rtier <span dir=3D"ltr">&lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac=
.uk" target=3D"_blank">Richard.Mortier@nottingham.ac.uk</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"><span class=3D""><br>
On 30 Oct 2014, at 16:29, Thomas Leonard &lt;<a href=3D"mailto:talex5@gmail=
.com">talex5@gmail.com</a>&gt; wrote:<br>
<br>
&gt; On 30 October 2014 14:20, Richard Mortier<br>
&gt; &lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Richard.Mortie=
r@nottingham.ac.uk</a>&gt; wrote:<br>
&gt;&gt;<br>
</span><span class=3D"">&gt;&gt; would it make sense for note_{suspend,resu=
me} to be string -&gt; unit (or some more opaque type than string even, tho=
ugh perhaps of fixed size) so that the programmer can indicate reasons for =
the suspend/resume?<br>
&gt;<br>
&gt; This name is perhaps confusing, but it&#39;s for block_domain/poll/sel=
ect.<br>
&gt; On Xen, mirage-platform&#39;s <a href=3D"http://main.ml" target=3D"_bl=
ank">main.ml</a> is that only thing that calls it.<br>
&gt; The reason for suspending is always that there isn&#39;t any work to d=
o<br>
&gt; (exactly what we&#39;re waiting for is indicated by the sleeping event=
<br>
&gt; channel threads at that moment).<br>
&gt;<br>
&gt; If we had a more general version, it could perhaps be used for GC<br>
&gt; pauses too, but there&#39;s a separate entry point for that using<br>
&gt; Callback, because it&#39;s called from C code. Actual suspend-to-disk<=
br>
&gt; could be another reason.<br>
&gt;<br>
&gt; Are there any more types?<br>
<br>
</span>ah-- see comment to other mail i guess. seems likely to be better to=
 parameterise this rather than bake it into the api, doesn&#39;t it?=C2=A0 =
(i may be missing something obvious about types and ocaml here :)<br>
<span class=3D""><br>
&gt;&gt; can labels on threads be changed over their lifetime?=C2=A0 can la=
bels overlap or are they unique?=C2=A0 if unique, within what context?<br>
&gt;<br>
&gt; Originally there was one label per thread, but now they&#39;re essenti=
ally<br>
&gt; just log messages that get attached to the active thread. They can be<=
br>
&gt; used to label a thread, but also to note interesting events, so<br>
&gt; perhaps a different name would be useful here (Trace.log?<br>
&gt; Trace.note?). There should probably be a printf version too.<br>
&gt;<br>
&gt; Actual labelling more often happens with named_wait, named_task, etc n=
ow.<br>
<br>
</span>ah right; i guess i&#39;m talking about an api that subsumes lwt tra=
cing and supports more general tracing throughout many libraries.<br>
<span class=3D""><br>
&gt;<br>
&gt;&gt; trace_enabled.mli:<br>
&gt;&gt;<br>
&gt;&gt; how do i interact with the buffer other than to snapshot it?<br>
&gt;<br>
&gt; What kind of interations did you have in mind?<br>
<br>
</span>one thing ETW allowed which was nice was to have real-time consumers=
 of the tracing buffers. would allow this kind of infrastructure to plugin =
to something that was doing more dynamic resource management for unikernels=
 across (e.g.) a datacenter.<br>
<span class=3D""><br>
&gt;&gt; ...and what&#39;s counter for?=C2=A0 (ie., how general/widely used=
 is it intended to be?)<br>
&gt;<br>
&gt; In the examples, I used counters for:<br>
&gt;<br>
&gt; - Number of active grant refs<br>
&gt; - Number of block reads completed<br>
&gt; - Bytes written to console<br>
&gt; - IP packets sent<br>
&gt; - TCP bytes submitted<br>
&gt; - TCP bytes ack&#39;d<br>
&gt;<br>
&gt; Measuring stuff can get complicated quickly. The last monitoring<br>
&gt; system I worked on had many different types of &quot;metric&quot; (ins=
tantaneous<br>
&gt; measurements, cumulative usage, on-going rates of increase, etc). You<=
br>
&gt; could efficiently query for e.g. average response latecy between any<b=
r>
&gt; two points in time, allowing for real-time display of &quot;average la=
tency<br>
&gt; over the last 5 min&quot; or &quot;number of requests since midnight&q=
uot;, etc.<br>
&gt;<br>
&gt; The counters were also arranged in a hierarchy. For example, you could=
<br>
&gt; have a segments-acked counter for each TCP stream, which would then<br=
>
&gt; also get aggregated as totals for that VM, and then further aggregated=
<br>
&gt; both per-customer (across multiple VMs), and per resource pool. You<br=
>
&gt; could see graphs of aggregated data and then drill down to see what<br=
>
&gt; had contributed to it.<br>
&gt;<br>
&gt; Some of the metrics were shared with customers[*], who treated them as=
<br>
&gt; extra monitoring data for their own (outsourced) resource pools.<br>
&gt;<br>
&gt; I don&#39;t know whether we want to go down that route just yet, thoug=
h.<br>
&gt; It took a while to explain everything ;-)<br>
<br>
</span>:)<br>
<br>
i guess there are two orthogonal things here.<br>
<br>
metrics as you describe above, which to my mind sound like (e.g.) SNMP MIBs=
. most useful for understanding aggregate performance of a system.<br>
<br>
event tracing as i&#39;ve been implicitly assuming, which permits more deta=
iled cuts through system performance at the cost of added complexity (per m=
agpie).<br>
<br>
both are useful i think, though you ought to be able to build the former on=
 the latter (though that might be more complex than seems reasonable).<br>
<span class=3D""><br>
&gt;&gt; agree to some extent -- though if some components wish to control =
tracing in other components as a result of observation of their own behavio=
ur, the control API may become=C2=A0 more pervasively used than the dumping=
/display api i guess.<br>
&gt;<br>
&gt; Perhaps. I suspect we&#39;d have the libraries just produce events and=
<br>
&gt; have the logic for responding to them in the unikernel config, rather<=
br>
&gt; than having libraries reconfiguring the profiling directly. That<br>
&gt; sounds confusing!<br>
<br>
</span>heh-- having dynamic control of tracing was something we discussed w=
ith magpie but never implemented. the idea would&#39;ve been something like=
 a datacenter operator could notice an issue, and then &quot;turn up&quot; =
the tracing to get more detailed models, to the point where they could diag=
nose the problems.<br>
<br>
but as i said, we never actually did that. (though ETW does allow dynamic c=
ontrol over tracing levels from a command line tool.)<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
--<br>
Cheers,<br>
<br>
R.<br>
<br>
<br>
<br>
<br>
</font></span><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" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a><br>
<br></blockquote></div><br></div>

--f46d0442841a53e99f0506acf1e1--


--===============2707811625621584146==
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

--===============2707811625621584146==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 00:19:20 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 00:19: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 1Xjzvq-0000vD-NS; Fri, 31 Oct 2014 00:19:10 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mthurman@gmail.com>) id 1Xjzvo-0000v8-QK
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 00:19:09 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	55/44-28865-B75D2545; Fri, 31 Oct 2014 00:19:07 +0000
X-Env-Sender: mthurman@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1414714736!12075524!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_20_30, HTML_MESSAGE, ML_RADAR_SPEW_LINKS_8, RCVD_BY_IP,
	spamassassin: , 
	async_handler: YXN5bmNfZGVsYXk6IDcwNjI5ODQgKHRpbWVvdXQp\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14552 invoked from network); 31 Oct 2014 00:18:56 -0000
Received: from mail-wg0-f42.google.com (HELO mail-wg0-f42.google.com)
	(74.125.82.42)
	by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 00:18:56 -0000
Received: by mail-wg0-f42.google.com with SMTP id k14so5450116wgh.29
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 17:18:56 -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=XuyXcfH3yqIcJHBPwoz6YPl46kALb9rlPNr0OykytrU=;
	b=Fh4pehij72L0wKMqa2tUqaOecsIcjwmmaMuXR9nyCVIZhyPJKtfWB1I2uLcamtV5As
	IFrkPeLJKm8UzYwJfW/XzQnxoUytcw90K+x9xtXwbIV6jrxoNPivamcD5jD9i0XjCFzf
	SfX639K1B7Yho82fPxnlexwvoca38Z4wZ6Q/d75kMYNcbifZiXHhyPzZvJvhbj1P/BFR
	OTM6fhAriEIQ86KXfTorukvSLjd+Grf/Z8yzKO0IJSG4Tjwmk/5Q5u4m0yRxZ0NSWnZH
	omN5dUG4MsVR6pV34wvvlgOHETBXVDe+u+UYmsUgsOlNekQLYMBzeb9Gm5NHbLgQVgEu
	+CZQ==
MIME-Version: 1.0
X-Received: by 10.180.83.37 with SMTP id n5mr153626wiy.7.1414714736501; Thu,
	30 Oct 2014 17:18:56 -0700 (PDT)
Received: by 10.216.61.145 with HTTP; Thu, 30 Oct 2014 17:18:56 -0700 (PDT)
In-Reply-To: <EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
	<EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
Date: Thu, 30 Oct 2014 17:18:56 -0700
Message-ID: <CAG+370LSCk9Zbw9iW6-xB7gt55Yo9g+g9EUwikvqhFbijN1_uw@mail.gmail.com>
From: Mark Thurman <mthurman@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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="===============2707811625621584146=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2707811625621584146==
Content-Type: multipart/alternative; boundary=f46d0442841a53e99f0506acf1e1

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

Here's more information about Go's use of the Chromium trace viewer:
https://docs.google.com/document/d/1FP5apqzBgr7ahCCgFO-yoVhk4YZrNIDNf9RybngBc14/pub
.

That link doesn't seem like it adds a ton of information, but it may be
interesting to some.

--Mark

Mark Thurman
mthurman@gmail.com

On Thu, Oct 30, 2014 at 11:26 AM, Richard Mortier <
Richard.Mortier@nottingham.ac.uk> wrote:

>
> On 30 Oct 2014, at 16:29, Thomas Leonard <talex5@gmail.com> wrote:
>
> > On 30 October 2014 14:20, Richard Mortier
> > <Richard.Mortier@nottingham.ac.uk> wrote:
> >>
> >> would it make sense for note_{suspend,resume} to be string -> unit (or
> some more opaque type than string even, though perhaps of fixed size) so
> that the programmer can indicate reasons for the suspend/resume?
> >
> > This name is perhaps confusing, but it's for block_domain/poll/select.
> > On Xen, mirage-platform's main.ml is that only thing that calls it.
> > The reason for suspending is always that there isn't any work to do
> > (exactly what we're waiting for is indicated by the sleeping event
> > channel threads at that moment).
> >
> > If we had a more general version, it could perhaps be used for GC
> > pauses too, but there's a separate entry point for that using
> > Callback, because it's called from C code. Actual suspend-to-disk
> > could be another reason.
> >
> > Are there any more types?
>
> ah-- see comment to other mail i guess. seems likely to be better to
> parameterise this rather than bake it into the api, doesn't it?  (i may be
> missing something obvious about types and ocaml here :)
>
> >> can labels on threads be changed over their lifetime?  can labels
> overlap or are they unique?  if unique, within what context?
> >
> > Originally there was one label per thread, but now they're essentially
> > just log messages that get attached to the active thread. They can be
> > used to label a thread, but also to note interesting events, so
> > perhaps a different name would be useful here (Trace.log?
> > Trace.note?). There should probably be a printf version too.
> >
> > Actual labelling more often happens with named_wait, named_task, etc now.
>
> ah right; i guess i'm talking about an api that subsumes lwt tracing and
> supports more general tracing throughout many libraries.
>
> >
> >> trace_enabled.mli:
> >>
> >> how do i interact with the buffer other than to snapshot it?
> >
> > What kind of interations did you have in mind?
>
> one thing ETW allowed which was nice was to have real-time consumers of
> the tracing buffers. would allow this kind of infrastructure to plugin to
> something that was doing more dynamic resource management for unikernels
> across (e.g.) a datacenter.
>
> >> ...and what's counter for?  (ie., how general/widely used is it
> intended to be?)
> >
> > In the examples, I used counters for:
> >
> > - Number of active grant refs
> > - Number of block reads completed
> > - Bytes written to console
> > - IP packets sent
> > - TCP bytes submitted
> > - TCP bytes ack'd
> >
> > Measuring stuff can get complicated quickly. The last monitoring
> > system I worked on had many different types of "metric" (instantaneous
> > measurements, cumulative usage, on-going rates of increase, etc). You
> > could efficiently query for e.g. average response latecy between any
> > two points in time, allowing for real-time display of "average latency
> > over the last 5 min" or "number of requests since midnight", etc.
> >
> > The counters were also arranged in a hierarchy. For example, you could
> > have a segments-acked counter for each TCP stream, which would then
> > also get aggregated as totals for that VM, and then further aggregated
> > both per-customer (across multiple VMs), and per resource pool. You
> > could see graphs of aggregated data and then drill down to see what
> > had contributed to it.
> >
> > Some of the metrics were shared with customers[*], who treated them as
> > extra monitoring data for their own (outsourced) resource pools.
> >
> > I don't know whether we want to go down that route just yet, though.
> > It took a while to explain everything ;-)
>
> :)
>
> i guess there are two orthogonal things here.
>
> metrics as you describe above, which to my mind sound like (e.g.) SNMP
> MIBs. most useful for understanding aggregate performance of a system.
>
> event tracing as i've been implicitly assuming, which permits more
> detailed cuts through system performance at the cost of added complexity
> (per magpie).
>
> both are useful i think, though you ought to be able to build the former
> on the latter (though that might be more complex than seems reasonable).
>
> >> agree to some extent -- though if some components wish to control
> tracing in other components as a result of observation of their own
> behaviour, the control API may become  more pervasively used than the
> dumping/display api i guess.
> >
> > Perhaps. I suspect we'd have the libraries just produce events and
> > have the logic for responding to them in the unikernel config, rather
> > than having libraries reconfiguring the profiling directly. That
> > sounds confusing!
>
> heh-- having dynamic control of tracing was something we discussed with
> magpie but never implemented. the idea would've been something like a
> datacenter operator could notice an issue, and then "turn up" the tracing
> to get more detailed models, to the point where they could diagnose the
> problems.
>
> but as i said, we never actually did that. (though ETW does allow dynamic
> control over tracing levels from a command line tool.)
>
>
> --
> Cheers,
>
> R.
>
>
>
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>

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

<div dir=3D"ltr">Here&#39;s more information about Go&#39;s use of the Chro=
mium trace viewer:=C2=A0<a href=3D"https://docs.google.com/document/d/1FP5a=
pqzBgr7ahCCgFO-yoVhk4YZrNIDNf9RybngBc14/pub">https://docs.google.com/docume=
nt/d/1FP5apqzBgr7ahCCgFO-yoVhk4YZrNIDNf9RybngBc14/pub</a>.<div><br></div><d=
iv>That link doesn&#39;t seem like it adds a ton of information, but it may=
 be interesting to some.</div><div><br></div><div>--Mark</div></div><div cl=
ass=3D"gmail_extra"><br clear=3D"all"><div><div class=3D"gmail_signature">M=
ark Thurman<br><a href=3D"mailto:mthurman@gmail.com">mthurman@gmail.com</a>=
</div></div>
<br><div class=3D"gmail_quote">On Thu, Oct 30, 2014 at 11:26 AM, Richard Mo=
rtier <span dir=3D"ltr">&lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac=
.uk" target=3D"_blank">Richard.Mortier@nottingham.ac.uk</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"><span class=3D""><br>
On 30 Oct 2014, at 16:29, Thomas Leonard &lt;<a href=3D"mailto:talex5@gmail=
.com">talex5@gmail.com</a>&gt; wrote:<br>
<br>
&gt; On 30 October 2014 14:20, Richard Mortier<br>
&gt; &lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac.uk">Richard.Mortie=
r@nottingham.ac.uk</a>&gt; wrote:<br>
&gt;&gt;<br>
</span><span class=3D"">&gt;&gt; would it make sense for note_{suspend,resu=
me} to be string -&gt; unit (or some more opaque type than string even, tho=
ugh perhaps of fixed size) so that the programmer can indicate reasons for =
the suspend/resume?<br>
&gt;<br>
&gt; This name is perhaps confusing, but it&#39;s for block_domain/poll/sel=
ect.<br>
&gt; On Xen, mirage-platform&#39;s <a href=3D"http://main.ml" target=3D"_bl=
ank">main.ml</a> is that only thing that calls it.<br>
&gt; The reason for suspending is always that there isn&#39;t any work to d=
o<br>
&gt; (exactly what we&#39;re waiting for is indicated by the sleeping event=
<br>
&gt; channel threads at that moment).<br>
&gt;<br>
&gt; If we had a more general version, it could perhaps be used for GC<br>
&gt; pauses too, but there&#39;s a separate entry point for that using<br>
&gt; Callback, because it&#39;s called from C code. Actual suspend-to-disk<=
br>
&gt; could be another reason.<br>
&gt;<br>
&gt; Are there any more types?<br>
<br>
</span>ah-- see comment to other mail i guess. seems likely to be better to=
 parameterise this rather than bake it into the api, doesn&#39;t it?=C2=A0 =
(i may be missing something obvious about types and ocaml here :)<br>
<span class=3D""><br>
&gt;&gt; can labels on threads be changed over their lifetime?=C2=A0 can la=
bels overlap or are they unique?=C2=A0 if unique, within what context?<br>
&gt;<br>
&gt; Originally there was one label per thread, but now they&#39;re essenti=
ally<br>
&gt; just log messages that get attached to the active thread. They can be<=
br>
&gt; used to label a thread, but also to note interesting events, so<br>
&gt; perhaps a different name would be useful here (Trace.log?<br>
&gt; Trace.note?). There should probably be a printf version too.<br>
&gt;<br>
&gt; Actual labelling more often happens with named_wait, named_task, etc n=
ow.<br>
<br>
</span>ah right; i guess i&#39;m talking about an api that subsumes lwt tra=
cing and supports more general tracing throughout many libraries.<br>
<span class=3D""><br>
&gt;<br>
&gt;&gt; trace_enabled.mli:<br>
&gt;&gt;<br>
&gt;&gt; how do i interact with the buffer other than to snapshot it?<br>
&gt;<br>
&gt; What kind of interations did you have in mind?<br>
<br>
</span>one thing ETW allowed which was nice was to have real-time consumers=
 of the tracing buffers. would allow this kind of infrastructure to plugin =
to something that was doing more dynamic resource management for unikernels=
 across (e.g.) a datacenter.<br>
<span class=3D""><br>
&gt;&gt; ...and what&#39;s counter for?=C2=A0 (ie., how general/widely used=
 is it intended to be?)<br>
&gt;<br>
&gt; In the examples, I used counters for:<br>
&gt;<br>
&gt; - Number of active grant refs<br>
&gt; - Number of block reads completed<br>
&gt; - Bytes written to console<br>
&gt; - IP packets sent<br>
&gt; - TCP bytes submitted<br>
&gt; - TCP bytes ack&#39;d<br>
&gt;<br>
&gt; Measuring stuff can get complicated quickly. The last monitoring<br>
&gt; system I worked on had many different types of &quot;metric&quot; (ins=
tantaneous<br>
&gt; measurements, cumulative usage, on-going rates of increase, etc). You<=
br>
&gt; could efficiently query for e.g. average response latecy between any<b=
r>
&gt; two points in time, allowing for real-time display of &quot;average la=
tency<br>
&gt; over the last 5 min&quot; or &quot;number of requests since midnight&q=
uot;, etc.<br>
&gt;<br>
&gt; The counters were also arranged in a hierarchy. For example, you could=
<br>
&gt; have a segments-acked counter for each TCP stream, which would then<br=
>
&gt; also get aggregated as totals for that VM, and then further aggregated=
<br>
&gt; both per-customer (across multiple VMs), and per resource pool. You<br=
>
&gt; could see graphs of aggregated data and then drill down to see what<br=
>
&gt; had contributed to it.<br>
&gt;<br>
&gt; Some of the metrics were shared with customers[*], who treated them as=
<br>
&gt; extra monitoring data for their own (outsourced) resource pools.<br>
&gt;<br>
&gt; I don&#39;t know whether we want to go down that route just yet, thoug=
h.<br>
&gt; It took a while to explain everything ;-)<br>
<br>
</span>:)<br>
<br>
i guess there are two orthogonal things here.<br>
<br>
metrics as you describe above, which to my mind sound like (e.g.) SNMP MIBs=
. most useful for understanding aggregate performance of a system.<br>
<br>
event tracing as i&#39;ve been implicitly assuming, which permits more deta=
iled cuts through system performance at the cost of added complexity (per m=
agpie).<br>
<br>
both are useful i think, though you ought to be able to build the former on=
 the latter (though that might be more complex than seems reasonable).<br>
<span class=3D""><br>
&gt;&gt; agree to some extent -- though if some components wish to control =
tracing in other components as a result of observation of their own behavio=
ur, the control API may become=C2=A0 more pervasively used than the dumping=
/display api i guess.<br>
&gt;<br>
&gt; Perhaps. I suspect we&#39;d have the libraries just produce events and=
<br>
&gt; have the logic for responding to them in the unikernel config, rather<=
br>
&gt; than having libraries reconfiguring the profiling directly. That<br>
&gt; sounds confusing!<br>
<br>
</span>heh-- having dynamic control of tracing was something we discussed w=
ith magpie but never implemented. the idea would&#39;ve been something like=
 a datacenter operator could notice an issue, and then &quot;turn up&quot; =
the tracing to get more detailed models, to the point where they could diag=
nose the problems.<br>
<br>
but as i said, we never actually did that. (though ETW does allow dynamic c=
ontrol over tracing levels from a command line tool.)<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
--<br>
Cheers,<br>
<br>
R.<br>
<br>
<br>
<br>
<br>
</font></span><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" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a><br>
<br></blockquote></div><br></div>

--f46d0442841a53e99f0506acf1e1--


--===============2707811625621584146==
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

--===============2707811625621584146==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 01:03:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 01:03: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 1Xk0cQ-00059y-2E; Fri, 31 Oct 2014 01:03:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xk0cO-00059t-EK
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 01:03:08 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	C7/62-09842-BCFD2545; Fri, 31 Oct 2014 01:03:07 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-21.messagelabs.com!1414717375!13773027!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG,
	ML_RADAR_SPEW_LINKS_8,RCVD_ILLEGAL_IP,spamassassin: ,async_handler: 
	YXN5bmNfZGVsYXk6IDcwNTQ4NDIgKHRpbWVvdXQp\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27278 invoked from network); 31 Oct 2014 01:02:55 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 01:02:55 -0000
Received: from [192.168.1.110] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 2136005e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 01:06:10 +0000 (GMT)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Fri, 31 Oct 2014 01:02:55 +0000
References: <5452AA89.5010800@mehnert.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-Id: <A2F34BAD-444F-4ACD-9F4F-CE0DD304F450@recoil.org>
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
X-Mailer: Apple Mail (2.1990.1)
Subject: [MirageOS-devel] Fwd: [Caml-list] [ANN]: tls-0.2, nocrypto-0.2,
	x509-0.2, asn1-combinators-0.1.1
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

For those not on the Caml list.

> Begin forwarded message:
> 
> Date: 30 October 2014 21:15:53 GMT
> From: Hannes Mehnert <hannes@mehnert.org>
> To: "caml-list@inria.fr >> Caml-list" <caml-list@inria.fr>
> Subject: [Caml-list] [ANN]: tls-0.2, nocrypto-0.2, x509-0.2, asn1-combinators-0.1.1
> Reply-To: Hannes Mehnert <hannes@mehnert.org>
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
> 
> Dear OCaml hackers,
> 
> More than 3 months ago we announced the 0.1 release of our TLS library
> pack (BSD licensed). Since then we fixed bugs based on user feedback
> and also implemented new features.
> 
> Now we prepared a pre-halloween special release :)
> 
> Highlights (more details are in CHANGES.md of each repository):
> - - nocrypto-0.2: uses ctypes, DSA, CCM, compiles on 4.02
> - - tls-0.2: epoch exposes information about negotiated session, enum
> cleanups (ciphersuites, protocol versions, hash algorithms)
> - - asn1-0.1.1: stricter decoding of integers in tags and OIDs,
> performance improvements
> - - x509-0.2: information about used trust anchor, more utility
> functions exported
> 
> Read our blog series about the initial release at
> http://openmirage.org/blog/introducing-ocaml-tls
> An https server in OCaml visualising the TLS handshake
> https://tls.openmirage.org
> 
> The updated packages are already in opam, opam update && opam upgrade
> (or opam install tls/nocrypto/x509/asn1-combinators) should be all you
> need to do.
> 
> If you encounter any issues, please report these on GitHub
> https://github.com/mirleft in the appropriate project.
> 
> We're also still looking for code feedback and code reviews.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
> 
> iQIcBAEBCQAGBQJUUqqJAAoJELyJZYjffCjuw+UP/jEUlvTxD70kGFU9BwUo2INP
> CcvtqSlu+Tn8giKgHx0FwxUEPLw3ugSuADNYsRKyYR4BoJVqMszKdyyN8zZZ6/JT
> 2vJJjuK8p8N7u8eXuRqS2X4fLsa3k7zKPnnM4y9DL91Z4FJRb6z31TXeQ1Y+u2Zv
> aKfyqm68fNUDiN3AKpljDJSAa9WqSAUQD9KV1Uovmr9utl9LsJUCpmxHw73PsvTq
> B1EuE+Mu87ZU48r3T1ScxC7WyuMjVmmV6BuwRbZK2yHG0QDUkVT2bA/HxqLKNr7D
> lerbCQMVsEGx3rxmPUmnWzIRRB2P31A0aLu1SKYkN7Ex+Y9kp/yQxSc2/+wzrvoK
> yBUrt9JJCU55dMsHe4bBvATz3KWLl3Iu2BvuIN9gy8XCKrZM3C0TM2+G5i7vRZCY
> DLWbpLMW7uAWVQnl++QMjeP30mqgP4oh3MQGNEVlVWl/rmkuaPmIxJYe9CGVHKwW
> JCGA8Go+v/W2hITSmfheG/X/0Uo1I+C318wptMNrAIKb7YZTKxAqbCMGwLCLyVv2
> kz7D+RTxVgZLkq4PgCiG1CYhHNf1/8+H0nDbd9eaZaCqfz6RMFguVIElnPqKw2dc
> JLirZKbQYq+VxGgqpkDrEE7VIxpFSCJ/3GqCzFFhSC91Ij/IBzxOyqvgGurIIAdN
> roNJMHWOi1s4xuiPZcmC
> =iL9n
> -----END PGP SIGNATURE-----
> 
> -- 
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
> 


_______________________________________________
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 Oct 31 01:03:12 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 01:03: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 1Xk0cQ-00059y-2E; Fri, 31 Oct 2014 01:03:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1Xk0cO-00059t-EK
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 01:03:08 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	C7/62-09842-BCFD2545; Fri, 31 Oct 2014 01:03:07 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-21.messagelabs.com!1414717375!13773027!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.7 required=7.0 tests=BODY_RANDOM_LONG,
	ML_RADAR_SPEW_LINKS_8,RCVD_ILLEGAL_IP,spamassassin: ,async_handler: 
	YXN5bmNfZGVsYXk6IDcwNTQ4NDIgKHRpbWVvdXQp\n
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27278 invoked from network); 31 Oct 2014 01:02:55 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 01:02:55 -0000
Received: from [192.168.1.110] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 2136005e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 01:06:10 +0000 (GMT)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Fri, 31 Oct 2014 01:02:55 +0000
References: <5452AA89.5010800@mehnert.org>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-Id: <A2F34BAD-444F-4ACD-9F4F-CE0DD304F450@recoil.org>
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
X-Mailer: Apple Mail (2.1990.1)
Subject: [MirageOS-devel] Fwd: [Caml-list] [ANN]: tls-0.2, nocrypto-0.2,
	x509-0.2, asn1-combinators-0.1.1
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

For those not on the Caml list.

> Begin forwarded message:
> 
> Date: 30 October 2014 21:15:53 GMT
> From: Hannes Mehnert <hannes@mehnert.org>
> To: "caml-list@inria.fr >> Caml-list" <caml-list@inria.fr>
> Subject: [Caml-list] [ANN]: tls-0.2, nocrypto-0.2, x509-0.2, asn1-combinators-0.1.1
> Reply-To: Hannes Mehnert <hannes@mehnert.org>
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA384
> 
> Dear OCaml hackers,
> 
> More than 3 months ago we announced the 0.1 release of our TLS library
> pack (BSD licensed). Since then we fixed bugs based on user feedback
> and also implemented new features.
> 
> Now we prepared a pre-halloween special release :)
> 
> Highlights (more details are in CHANGES.md of each repository):
> - - nocrypto-0.2: uses ctypes, DSA, CCM, compiles on 4.02
> - - tls-0.2: epoch exposes information about negotiated session, enum
> cleanups (ciphersuites, protocol versions, hash algorithms)
> - - asn1-0.1.1: stricter decoding of integers in tags and OIDs,
> performance improvements
> - - x509-0.2: information about used trust anchor, more utility
> functions exported
> 
> Read our blog series about the initial release at
> http://openmirage.org/blog/introducing-ocaml-tls
> An https server in OCaml visualising the TLS handshake
> https://tls.openmirage.org
> 
> The updated packages are already in opam, opam update && opam upgrade
> (or opam install tls/nocrypto/x509/asn1-combinators) should be all you
> need to do.
> 
> If you encounter any issues, please report these on GitHub
> https://github.com/mirleft in the appropriate project.
> 
> We're also still looking for code feedback and code reviews.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
> 
> iQIcBAEBCQAGBQJUUqqJAAoJELyJZYjffCjuw+UP/jEUlvTxD70kGFU9BwUo2INP
> CcvtqSlu+Tn8giKgHx0FwxUEPLw3ugSuADNYsRKyYR4BoJVqMszKdyyN8zZZ6/JT
> 2vJJjuK8p8N7u8eXuRqS2X4fLsa3k7zKPnnM4y9DL91Z4FJRb6z31TXeQ1Y+u2Zv
> aKfyqm68fNUDiN3AKpljDJSAa9WqSAUQD9KV1Uovmr9utl9LsJUCpmxHw73PsvTq
> B1EuE+Mu87ZU48r3T1ScxC7WyuMjVmmV6BuwRbZK2yHG0QDUkVT2bA/HxqLKNr7D
> lerbCQMVsEGx3rxmPUmnWzIRRB2P31A0aLu1SKYkN7Ex+Y9kp/yQxSc2/+wzrvoK
> yBUrt9JJCU55dMsHe4bBvATz3KWLl3Iu2BvuIN9gy8XCKrZM3C0TM2+G5i7vRZCY
> DLWbpLMW7uAWVQnl++QMjeP30mqgP4oh3MQGNEVlVWl/rmkuaPmIxJYe9CGVHKwW
> JCGA8Go+v/W2hITSmfheG/X/0Uo1I+C318wptMNrAIKb7YZTKxAqbCMGwLCLyVv2
> kz7D+RTxVgZLkq4PgCiG1CYhHNf1/8+H0nDbd9eaZaCqfz6RMFguVIElnPqKw2dc
> JLirZKbQYq+VxGgqpkDrEE7VIxpFSCJ/3GqCzFFhSC91Ij/IBzxOyqvgGurIIAdN
> roNJMHWOi1s4xuiPZcmC
> =iL9n
> -----END PGP SIGNATURE-----
> 
> -- 
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
> 


_______________________________________________
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 Oct 31 02:41:53 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 02:41: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 1Xk29t-0006qi-FI; Fri, 31 Oct 2014 02:41:49 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>) id 1Xk29p-0006qK-Uv
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 02:41:47 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	99/27-22777-8E6F2545; Fri, 31 Oct 2014 02:41:44 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1414723299!8608495!1
X-Originating-IP: [209.85.215.51]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8896 invoked from network); 31 Oct 2014 02:41:39 -0000
Received: from mail-la0-f51.google.com (HELO mail-la0-f51.google.com)
	(209.85.215.51)
	by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 02:41:39 -0000
Received: by mail-la0-f51.google.com with SMTP id q1so5477819lam.38
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 19:41:38 -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=2J+/B9be8S5CCFmZyNIbYUYcO1ailADJ4q4+5KHnD24=;
	b=DR41avrWUjunQ6RUzHA1sydx6BB2eOQ7VuVwqeUMsWeBPRZgft1dA0V4aIqkfkb0eH
	EHcQikIVPdo7c9+mGLn1i/pGNVg4qgFhxiymo0N+VpVFD1Pqvu+vgOO8Dq3T69Yf9SC4
	gOyklXI149OBuL3xYCWBSoOzpjYQIjVcSFFLbVq7sIsUAdBrVVOggd4AtUGtKDxgnGM6
	/qj20ipKizuprdOEUOH1phV1d6rbmTw0gaijlKhlvbxFGlRkqmPI3ChPRhnyJKototE4
	4IM05Et92p1lhRv5YO/G2Cr79GLDdbsd5hlHLtjnvORnruK9k2wYIlve3NxVyKY17iB9
	CaAA==
MIME-Version: 1.0
X-Received: by 10.112.132.34 with SMTP id or2mr23098361lbb.75.1414723298392;
	Thu, 30 Oct 2014 19:41:38 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Thu, 30 Oct 2014 19:41:37 -0700 (PDT)
Date: Thu, 30 Oct 2014 22:41:37 -0400
X-Google-Sender-Auth: A1myDnOiSErBcvlpW3b5FNe4n84
Message-ID: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: mirageos-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary=047d7b3a8238a85c120506aeef66
Subject: [MirageOS-devel] Unikernel talk deck
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

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

Mirage-ites,

Attached is the deck I intend to use on a talk about Unikernels this
weekend at CPOSC.  I liberated a few slides from you folks.  If you
want me to replace them or include additional attribution, let me
know.  I will probably replace them eventually, but frankly I'd rather
not do that the day before the talk, if possible.

Please let me know if you see any issues or have any suggestions.

Thanks,

Russ

--047d7b3a8238a85c120506aeef66
Content-Type: application/pdf; 
	name="CPOSC2014-Next Generation Cloud-Rise of the Unikernel.pdf"
Content-Disposition: attachment; 
	filename="CPOSC2014-Next Generation Cloud-Rise of the Unikernel.pdf"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i1wxoo2h0

JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURl
Y29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9C
vRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9
/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WV
v3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salip
auuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0Zj
nKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiF
HKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16mluG8NI6PQJjGyVN3UC9JX
zC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16wNF3vwg71L1WzgMlR/Rc0
9UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbVa4T/GiLlWBpUM8625Ige
gEw0nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+Hoga/+8/7RBLK99OORK6+sqaugbp/PZiAC5L
w2UJ8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhGcimtRq7v78ZdYNKo/1b07oNhXtTRcl4fFk6Y
ZcT+Qlm+tdIcJzaYV3JpKEWmtsqmuJ6buh9VjbJG5qp/HoMJaHzVMFUSEp/5/GajKWcbV0fm+8cK
IIVmyIHSoiy0SSWomaoBIIQCmSXtQosm3Bh+Njy3AT6P8vr7qQHeL638OpVU/qrlO98J/YXOV4yF
/RqHUn0T9guSdGrG6kzyhzrst40LxdWfV9NXR+j39OcE2LdILk2OyPXtpukujmGqihYkKUQQXOUS
7wvkGk1d2C9V0hQnNuxXsqam/qMs7Vv2iOKWoqvRT4Igv5Jm4JWWZFPjH/SHsMxuzBfjG3sjn/V9
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
2JvW/qWfoPycgD73fEv5moH78aB1fOknKO/fUvbZbdPib8rXFJRF4qL1bO3XFNyfU9BHqu6z20r5
uOagLBo35fSlH1M+tm8pszXaJuemm+L8cjx0Rl9aKc4vvgq6Pmt1n5BWwpfK6CgPUuWbbu7uf5fw
/KqYcrko1wet+k0/d/8XZQ5x3UevB+V6UW4PWu2bfu7+v1L2AelBuV2UH1PuS6tdlNuDsg9x3YeZ
TV9CU74OoMdjyn1pXQfQYz2A+jYef8yrL61xPT6ejPG1aMfrf2JsfkjN2H5RfsyrL639orzflLG9
EGPJja/l+Dax/G63f9Pdrzf99X/kFobK8X5+vv3h332293/43+9/Efkhm1GTx9PnW7R2KypoDWkB
SpcFaWPkj9bb8zcK2azXOxqFHxSh68vzh7U4Nxf/8+2//wsGmEorVQPU5vejF3nE4sHOKPs9yu39
Yy4E9/uV/2Vi/MM//tv/sL//t//z/oe//vOA3N/U6TZ//9Nf3woW5ddu6q//5f0Pf54J9N//+l//
uKXf/vo/3v7xr28/3y8/0b/3wP8Pv2tXkYa60tM0af+Yff2nV2db3spWX3/b9pqmv32kP277dvz2
n//6779jWhWCib0OUhuE/vVv5Y/bn357Pf5v5n/abx/5j9s//Jbd/sftz/qXljb9Q0pxa8rzP2U2
dctrZW7XDe0ljdc/df5pzP/s8z8HxH7L26vntdv0r38TiT8tbPDwv/EjvzMyUkLM8JH6dWhw/mVs
aY5NTKY6r/5RN90DusfXf6/Lopc8q/aeu8zA8hqFhvui+ycNZcoAWvT/+m9+yez1z39+/VubPKQ/
5ina108vXn53kHOty/Jce/aY02/1j3SURN6dvP71NZ6POoWY/5gzo8qzrz/f9+Xy4qPw8Ou3ql9u
ridz6U+zgz//LmeuQdn/32SR/wWyqH/MXUymGF+eT+TfGdEk2Rhuyq+hXAz/5f2XC0TavEIcrBD/
F2uv/dYKZW5kc3RyZWFtCmVuZG9iagoKMyAwIG9iago1MTc0NwplbmRvYmoKCjQgMCBvYmoKPDwv
VHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNzkzNC9IZWlnaHQgNDcvQml0c1BlckNv
bXBvbmVudCA4L0xlbmd0aCAxMSAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9Db2xvclNwYWNlL0Rl
dmljZVJHQgovU01hc2sgMTIgMCBSCj4+CnN0cmVhbQp4nO3BMUvUARwAUNqaWnJoM7iGBoeWUzgc
WjT/NEi4nB4hNEgniBwEXjjoYB5NhwjncEKghw26eCCJQ6ihOQidEGiCpCANBoaLDXbVh/it772O
jo5bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhUKhpaXlNgAAAAAAAAAAAAAAAAAAAAAAAAAAAABA
QGdnZ2tr6x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICurq5UKnUXAAAAAAAAAAAAAAAAAAAAAAAA
AAAAACCgp6cnlUrdAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISJKkra3tPgAAAAAAAAAAAAAAAAAA
AAAAAAAAAABAQG9vb3t7+wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICBgYF0Ov0QAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACAgm81mMplHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuVyuu7s7DQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAQMDQ0lCRJBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIJ/PJ0nyGAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAgIJ/P9/X1PQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgUCrlc
7ikAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECxWOzv738GAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAw
NjY2ODiYBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGB8fHx4efg4AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAEDA1NTUyMvICAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgVCqNjo6+BAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAIKJVKxWJxFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoFwuT0xMvAIAAAAAAAAAAAAA
AAAAAAAAAAAAAAAACKhUKpOTk68BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALm5uamp6cnAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACqtVquVx+AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQsLi4ODMz8xYA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAIKBWq83OzpYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKWlpbm
5+crAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKysrCwsLVQAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
gNXV1Vqt9g4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKBery8vL78HAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAhYX1+v1+srAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm5uba2trqwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAdvb2xsbGx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2dna2trY+AgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAE7O/v7+7ufgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGg0Gnt7e58BAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAIODg4ajcYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAo6Ojw8PD
rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAScnJ8fHx98AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO
zs5OT0+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEnJ+f/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
iLm4uPgJAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBzeXn5CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg
5urq6vr6+jcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQMzNzc0fAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AICYZrP5FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoNls/gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
CPsPNol0lwplbmRzdHJlYW0KZW5kb2JqCgoxMSAwIG9iagoxNTE0CmVuZG9iagoKMTIgMCBvYmoK
PDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNzkzNC9IZWlnaHQgNDcvQml0c1Bl
ckNvbXBvbmVudCA4L0xlbmd0aCAxMyAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9Db2xvclNwYWNl
L0RldmljZUdyYXkKL0RlY29kZSBbIDEgMCBdCj4+CnN0cmVhbQp4nO3BTUsTAAAG4N/WyUMHBS/F
OojgQRHBw2iBdvCjwIMKM4RFKDRBUERBBT8KESaUEDWUiJJiIgtJQvKg4Mzf8cLzPH0PAAAAAAAA
ACDcTEcbAAAAAAAAAIQbePQQAAAAAAAAAMIVn7QDAAAAAAAAQLhSoRMAAAAAAAAAwpW6HwMAAAAA
AABAuKG+AgAAAAAAAACEG+3tAgAAAAAAAIBwI/09AAAAAAAAABBuvNgLAAAAAAAAAOEmS/0AAAAA
AAAAEG766SAAAAAAAAAAhJt6XgQAAAAAAACAcK9GnwEAAAAAAABAuMrYMAAAAAAAAACEq7wcAQAA
AAAAAIBwb6ZeAAAAAAAAAEC4t+UJAAAAAAAAAAi3MDMJAAAAAAAAAOEWKmUAAAAAAAAACLc0NwsA
AAAAAAAA4VbnXwMAAAAAAABAuLXqPAAAAAAAAACEW1+qAgAAAAAAAEC47ZVFAAAAAAAAAAi3u7oM
AAAAAAAAAOHeba4BAAAAAAAAQLj97Q0AAAAAAAAACFfb2QIAAAAAAACAcAd77wEAAAAAAAAg3OHB
PgAAAAAAAACE+/yhBgAAAAAAAADh6ocfAQAAAAAAACDc0ZdPAAAAAAAAABDu23EdAAAAAAAAAML9
+HoMAAAAAAAAAOFOvgMAAAAAAABAusavnwAAAAAAAAAQ7uy0AQAAAAAAAADhmr+bAAAAAAAAABDu
/OIPAAAAAAAAAIT7CwAAAAAAAADxLv8BAAAAAAAAQLqr6xsAAAAAAAAASHfbAgAAAAAAAIBwt607
AAAAAAAAAAjX+g8AAAAAAAAA8e4Ba1FcbQplbmRzdHJlYW0KZW5kb2JqCgoxMyAwIG9iago2MTQK
ZW5kb2JqCgo2IDAgb2JqCjw8L1R5cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDk3NDkg
L0hlaWdodCA1MSAvQml0c1BlckNvbXBvbmVudCA4IC9Db2xvclNwYWNlL0RldmljZUdyYXkvRmls
dGVyL0RDVERlY29kZS9MZW5ndGggMzQ4NSAvU01hc2sgMTQgMCBSID4+CnN0cmVhbQr/2P/gABBK
RklGAAEBAAABAAEAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhAN
DhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/CAAsIADMmFQEBEQD/xAAVAAEBAAAAAAAAAAAAAAAA
AAAACP/aAAgBAQAAAAGqQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/
xAAUEAEAAAAAAAAAAAAAAAAAAADQ/9oACAEBAAEFAgVX/8QAFBABAAAAAAAAAAAAAAAAAAAA0P/a
AAgBAQAGPwIFV//EABQQAQAAAAAAAAAAAAAAAAAAAND/2gAIAQEAAT8hBVf/2gAIAQEAAAAQ/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP/EABQQAQAAAAAAAAAAAAAAAAAAAND/2gAIAQEAAT8QBVf/
2QplbmRzdHJlYW0KZW5kb2JqCgoxNCAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFn
ZS9XaWR0aCA5NzQ5L0hlaWdodCA1MS9CaXRzUGVyQ29tcG9uZW50IDgvTGVuZ3RoIDE1IDAgUgov
RmlsdGVyL0ZsYXRlRGVjb2RlL0NvbG9yU3BhY2UvRGV2aWNlR3JheQovRGVjb2RlIFsgMSAwIF0K
Pj4Kc3RyZWFtCnic7cGBAAAAAMMgf+od4QJVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHAHWJ
CjMKZW5kc3RyZWFtCmVuZG9iagoKMTUgMCBvYmoKNTA1CmVuZG9iagoKNSAwIG9iago8PC9UeXBl
L1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxNTkzIC9IZWlnaHQgMzE0IC9CaXRzUGVyQ29t
cG9uZW50IDggL0NvbG9yU3BhY2UvRGV2aWNlR3JheS9GaWx0ZXIvRENURGVjb2RlL0xlbmd0aCA0
MTY3IC9TTWFzayAxNiAwIFIgPj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwADAgID
AgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgS
FBUU/8IACwgBOgY5AQERAP/EABcAAQEBAQAAAAAAAAAAAAAAAAABAgj/2gAIAQEAAAAB6bgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAN5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN5gAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAN5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANyAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAA3kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWQAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAANZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWQAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAANZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//8QAFxAB
AQEBAAAAAAAAAAAAAAAAEQCgwP/aAAgBAQABBQLncCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi
IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi
IiIiIiIiIiIiIiIiIiIiIjYV/8QAFBABAAAAAAAAAAAAAAAAAAAAwP/aAAgBAQAGPwJ6B//EABgQ
AQEBAQEAAAAAAAAAAAAAABEAkKCw/9oACAEBAAE/Id5zFkiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIiIiIiIiI6QiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiPIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYT/9oACAEBAAAAEH//AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wB//wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8Af/8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AH//AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wB//wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP7/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD+
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/v8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP4AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP7/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD+/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/v8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP7/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD+AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP7/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAeEAEBAQEBAQEBAAMA
AAAAAAAAEQFxMXCQIVGAoP/aAAgBAQABPxDffpG+/SN9+kb79I3MqYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJjpvv0jffpG+/SN/r6OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/f8a336Rvv0jf
fpG+/wCx8/5eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACampqampqampqampqampqampqampqam
pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqam
pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqam
pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqam
pqampqan6QxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERM/Fnp06dO
nTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06d
OnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06
dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTr8
Wk1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N
TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N
TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N
TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N/en/2QplbmRzdHJlYW0KZW5kb2JqCgoxNiAw
IG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxNTkzL0hlaWdodCAzMTQv
Qml0c1BlckNvbXBvbmVudCA4L0xlbmd0aCAxNyAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9Db2xv
clNwYWNlL0RldmljZUdyYXkKL0RlY29kZSBbIDEgMCBdCj4+CnN0cmVhbQp4nO3X11IWCBaF0fd/
hOlphRYFlZyDIEgOCggIKEGUoCBKg91qx5pX+M8FdeZUrfUE392u3fQfAGhce1N2AQCltN/NLgCg
lEc/AUDAnbvZBQCU0tacXQBAKR13sgsAKOX+z/8FgMY1/ZJdAEApnYYDgIjOnwEgoKkpuwCAUlrv
ZRcAUEpnc3YBAKU8vAMAAc0t2QUAlNJlOACI6Gq6CwCNu9ecXQBAKa33swsAKKW7JbsAgFI6mgEg
oOVBdgEApXS3ZhcAUErvvV8AoHFtLdkFAJTS1pZdAEApfa3ZBQCU0nMPAAIetGYXAFBKd1t2AQCl
9D3ILgCglMf3WwCgcW0PswsAKKXfcAAQ0X8fAALa2rILACil+1F2AQClDHgcAER0PQCAgIePswsA
KGXQcAAQMdgGAAHtj7ILACiluyO7AIBShtuzCwAopf8hAAS0d2QXAFDKYGd2AQClDD9+BACN62rP
LgCglJ6u7AIAShnpzC4AoJShxwAQ0NGVXQBAKUPd2QUAlDLa0Q4Ajes1HABE9PRkFwBQypjhACBi
tAMAArq6swsAKGWoN7sAgFKedHcCQOMGuwAgoLc/uwCAUsYNBwAR490AENDXm10AQCnDA9kFAJQy
0ZddAEApoz0AENA3kF0AQCkTg9kFAJTytK8XABo32J9dAEApI0PZBQCUMjmYXQBAKeN9ABAwMJRd
AEApE8PZBQCUMjXQDwCNGzUcAESMDGcXAFDKlOEAIGJyEAAChkeyCwAo5elodgEApUwPZxcAUMrE
8BAANG50LLsAgFJmDAcAETPDABAwOppdAEApk0+yCwAoZWYsuwCAUqZGACBgbDy7AIBSZg0HABGz
owAQMP4kuwCAUiYnsgsAKGVuPLsAgFKmxwAgYHwiuwCAUmafZhcAUMr8+BMAaNyk4QAgYmoyuwCA
UhYMBwAR8xMAEDA5lV0AQCnzz7ILAChlcfIpADRuxnAAEPFsOrsAgFKWDAcAEYuTABAw9Sy7AIBS
5meyCwAoZXk6uwCAUuanACBgeja7AIBSVgwHABErzwAgYGYmuwCAUhbmsgsAKOX5bHYBAKUsTQNA
wOxcdgEApazMZxcAUMqLWQAIWJjLLgCglMWF7AIASlk1HABEPJ8DgID5xewCAEp5YTgAiFhbmAeA
xi0bDgAilpayCwAoZd1wABCxtgAAAYtL2QUAlLK6nF0AQCkvPQ4AIl4sAkDA8kp2AQClbBgOACI2
lgAgYGUluwCAUtaeZxcAUMrmyjIANG59BQACnq9mFwBQyqbhACBi6zkABKy9yC4AoJT1tewCAEp5
tZpdAEApmy8AIGB1LbsAgFK21rMLAChlexUAAjbWsgsAKOXly+wCAErZMRwARGyvAUDA+svsAgBK
ebWRXQBAKTseBwARW+sAELCxmV0AQCm7hgOAiN0NAAjY3MwuAKCUnVfZBQCU8mYruwCAUnY2ASBg
azu7AIBS9gwHABF7WwAQsP0quwCAUnZ3sgsAKGV/O7sAgFLevAKAgO2d7AIAStkzHABE7G8DQMDu
TnYBAKW83s0uAKCUA8MBQMT+DgAE7L7OLgCglH3DAUDE4etdAGjc3msACNizHABEHBkOACLevgGA
gL297AIASjnczy4AoJR3HgcAEW/3ACBg/yC7AIBS3hkOACLe7QNAwMFBdgEApbw9zC4AoJT3hgOA
iKMDAAg4fJtdAEAp7w0HABHHhwAQcPQ2uwCAUo6OsgsAKOXEcAAQcXwEABHvsgMAKOXkfXYBAKWc
vgOAgOPsAABqObYcAEScGQ4AIs7eA0DA8XF2AQClnJ1kFwBQygePA4CI02MACDixHABEfDQcAER8
PAGAgNPT7AIASvlwll0AQCnnHgcAER9OASDg7Cy7AIBSzl0OACIuPgBAwMfsAABqObccAER8MhwA
RFx8BICI8+wAAEr5ZDgAiLg8B4CAi+wAAGq5sBwARHw2HABEXF4AQMSn7AAASvlsOACI+GI4AIi4
/AQAAZeWA4CIK8MBQMTVJQBEfM4OAKCUL4YDgIirzwAQ8AUAQq6yAwAo5dpwABBxfQUAAHBbrn/N
LgCglBvDAUDE9a8AEGE5AIi4MRwARHw1HABE3FwDQMCN5QAg4qvhACDi6w0ARFgOACJ+MxwARPz2
FQAA4Na4HABE/G44AIj4HQAA4NZ8+5ZdAEAp3w0HABHfvwFAhOUAIOKH4QAg4sd3AACA2+JxABBi
OAAI+QEAAHBr/sgOAKCWPwAAAADg/8Of2QEA1PInAADArfkrOwCAWv4CgJC/AQAAbss/2QEA1PIP
AAAAAABARf8CAAAAAAAU9D8vbU9kCmVuZHN0cmVhbQplbmRvYmoKCjE3IDAgb2JqCjE3NDQKZW5k
b2JqCgo3IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1
IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1
ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRz
dHJlYW0KZW5kb2JqCgo4IDAgb2JqCjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgo5
IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3
LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0
aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRv
YmoKCjEwIDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKMTkgMCBvYmoKPDwv
TGVuZ3RoIDIwIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4
ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041XN7rz+Emv//Xvv17H63385Nc4y09/
tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8vvivvf0Yh6wt//X///d//8e//eP3X
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
ePwxrz61xvX4eDLG16Idr/+JsfkhNWP7Rfkxrz619ovyflPG9kKMJTe+luPbxPK73f5dd7/e9Nf/
kVsYKsf7+f3tT//pe3v/5//5/i8iP2QzavJ4+v4Wrd2KClpDWoDSZUHaGPmj9fb8jUI26/WORuEb
Rej68vxhLc7Nxb++/Z//jgGm0krVALX5/ehFHrF4sDPKfo9ye/+YC8H9fuV/nxj/9Nf/+J9zfv8/
/u/3P/3t316fExH8u7rd5h2//u2tYFN+7af+9l/f//TbTKH//rf//uct/fK3/+vtr397+/F+eYr+
0QP/fzheuyJiM1c6mjbtb7Or/+3PeeT9l4/059TSmH+337b2+v9fdf2X13VJPemOfGwt/1Mq22+/
fOQ/by1tr9//kv6qO1v65/zr/P2Xj/LneYJNCWq//O9/+1++GrvqjZKEUSyV96kU/SNpjWKH5WsQ
Lzg0hL/88uK//vJR//zq9XU5Xv/Z/jrbW1Mj/aqG7svm/tf5BZjX+TUO/m3bXzfkf+Y/85e/zsvf
IJTnjyKRN3VVXpdli398USxQ+WN25lNTnvnP6bfUntS23y42X3dWEX/9p/8ZBtMuwp9vTa8P+h9K
ucgC/o9IuciW/JRyyb/UYKS/uPhtFWlaWdyaOGeoUwIv/jR47paY9Iw455ff/M89/TW93iOJpPE8
0JRX7/nXu6OkjrbKu4uYg+6N6C/teL3hv4TsfrvoLlLP28/kp7DEf0h+Sib26S39p1/EaTB5vzrI
7zXEGN8y7Dp556ERt8K7XxMPRBLoyECvDBReOP06Z7Tu+Qt30dvvjlhVEb4aQCm8zn+5Oiz1l7oO
SSvFQjfx1Xlfab7W47lI/z/u9H/9j6/P4cf0WPj+rs2mrv/1/T//wFiTw/KPjGld+h0wmgPyfhzM
ln/JXgv8Pvi9+pW1IkT1xWhWon8wGkVq/O5oZkDI8TVny+zJVTxppWnLksI78usfv7XyNvuH3lqV
ivsH39pSeRH1T1rk5qzmjdP7HMvAfJ9ZrjwQvZgmzWwuXXfNLucHKF/v+B+tqJoi3O6Xsow/FEyW
3/o/Ipg8+ue5sP+SN7/07YeVexkT/3K/UfOLyr2/fvr5L6+5mu9v1W/+4phYu8X76yep/X9ZN9Lx
+ytAy6oY+8OYc/nFa0ve7ylf+IReH9MKksXrz68L/Kluv7Hgf+7+mlpX138wsZJOL787s0BMFVQ+
TSx/Qq4X8d+9xq5fmb+8xsAnePnsvQa8fB1/u76SWll+vdbktdvfvhr/wvsfCGB+j/LvC4CXPP2j
3/ycvvjmH3OIw0NMHtc1eL+qLcD3zvGWSvzA13fZif3GYqKXIc8dZ786Kv/EG5Tul3XZMcyXf1kH
27pa/w40r2f+chNgC1C13t8jeL3A95QyTbHbNz+gX15v9x+tLElZhv4Roc8qT5/n2euJuu5m1u2V
Bv3bvW/SnPSY7onGJLy3ar+3BWCdWQHL6Zf8aYeV9e5fK13O/PwSoImWa/XRx4FFvyNPvTOx4fWK
du35NM66vA+vBUJLXPnLH4tZCa3+ITGrvOoXy8FzF8trrv3/Xy8J6Quom1kG+N54FUfofVmZ98eH
7g92yfm39bvw2/KO6iASx49tfOYEBuCCxSXVC5PHS/3rtS3mU6J3Yf34wMsl6395//kJuMYJuHAC
/n8BP71M+AplbmRzdHJlYW0KZW5kb2JqCgoyMCAwIG9iago1MjQ2MgplbmRvYmoKCjIxIDAgb2Jq
Cjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41
IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGgg
OAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2Jq
CgoyMiAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMjMgMCBvYmoKPDwv
VHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91
cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRl
ci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMjQgMCBv
YmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgoyNiAwIG9iago8PC9MZW5ndGggMjcg
MCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ
+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
+Zc9vY5GMRC9Z9v9Av4ZXohfSpSv4rdcYx1cpM9fXjKA67/+nmLcEtzrTa+/mYFLTPNruzBriZsC
9OJFXBC2IIHCkGW/qRLwd2Ktmq08sIj277yyM2tS+3e+skrO/lVmecxXNjN23rr5YjyAitevLW/f
8dsloDoXiv6bh9XSXz2AF7yL5K9vQNUie1wSLX+JNeR67f8aS1a64ND77XdzLnCBav1tvkIXNb/d
E/2U9F7GG8lUYGtQows9pLt6jDcGSSceiudUXbi7Hy3rxNz/odc3T7eyn17fsoBgKBihPw5T3ofl
DETHJXVL9nqBmF+PV/O7xeebqShJz1fWY0+xMixvwOs1/ss6vXW7OoFHd5Xj09G+LBF6qa6Fb7nt
9bscH4C7s2fXk8GqJb8mwRxv0i+ELh/Bn4TOO7yuqn/EHC43ovnPib9mY5J/1L9rNqYxbehfuZnD
2jWsfs2y74R0rzXLigOA+Q8t7ctD92srHNeVkevU7puZTZrF/NZbFb+PgBPfCM3K137uem1Y5v2J
8Ou6fKRiMbg/U6yNrB9t/nrEHPh74m7bv1PYqt/zVdil3Gs/7Jd73fJ7vEhmrlrVqCxj/vrd0xrz
l2UqpVWM17v8x/IB0ezpsZbpc/jX9Tt1TdYaWIf4/56QVNfj3ycmBc3+tKnhG7+NZYrEKF5HwPuV
XWbiz+v49Tv9u67ZsZKF9K+1pa0f3mWs//L+S71BSdYblA29wf8HFEiN7QplbmRzdHJlYW0KZW5k
b2JqCgoyNyAwIG9iago1MjU2NQplbmRvYmoKCjI4IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3Vi
dHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3Bh
cmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2JqCgoyOSAwIG9iago8PC9DQSAwLjkx
CiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMzAgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBl
L0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NT
L0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMzEgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAw
LjUKPj4KZW5kb2JqCgozMyAwIG9iago8PC9MZW5ndGggMzQgMCBSL0ZpbHRlci9GbGF0ZURlY29k
ZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJP
iqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/
Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nm
t2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuh
v5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0ZjnKCd
n39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiFHKgs
SkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16mluG8NI6PQJjGyVN3UC9JXzC8I
dcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16wNF3vwg71L1WzgMlR/Rc09UOL
9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbVa4T/GiLlWBpUM8625IgegEw0
nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+Hoga/+8/7RBLK99OORK6+sqaugbp/PZiAC5Lw2UJ
8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhGcimtRq7v78ZdYNKo/1b07oNhXtTRcl4fFk6YZcT+
Qlm+tdIcJzaYV3JpKEWmtsqmuJ6buh9VjbJG5qp/HoMJaHzVMFUSEp/5/GajKWcbV0fm+8cKIIVm
yIHSoiy0SSWomaoBIIQCmSXtQosm3Bh+Njy3AT6P8vr7qQHeL638OpVU/qrlO98J/YXOV4yF/RqH
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
uig/JtyXVroopwdlnyG6T4EPyvmi/JhwX1r5opy/p8x57UG5XJQfM+5Lq1yUy5MyZ4iLshY7U64X
5ceU+9KqF+X6LWUfCh+Urwm4P3a8X1rXBNyfE9Cnk+6z26Z11JT7RXk8aI0v/QTl/j1lzm4PytcE
lCn2prV/6ScoPyegzz3fUr5m4H48aB1f+gnK+7eUfXbbtPib8jUFZZG4aD1b+zUF9+cU9JGq++y2
Uj6uOSiLxk05fenHlI/tW8psjbbJuemmOL8cD53Rl1aK84uvgq7PWt0npJXwpTI6yoNU+aabu/s/
JDy/KqZcLsr1Qat+08/d/0WZQ1z30etBuV6U24NW+6afu/+vlH1AelBuF+XHlPvSahfl9qDsQ1z3
YWbTl9CUrwPo8ZhyX1rXAfRYD6C+jccf8+pLa1yPjydjfC3a8fpPjM0PqRnbL8qPefWltV+U95sy
thdiLLnxtRzfJpY/7Pbvuvv1pr/+R25hqBzv5+fbn/7LZ3v/l//5/m8iP2QzavJ4+nyL1m5FBa0h
LUDpsiBtjPzRenv+jUI26/WORuEHRej68vxhLc7NxX9/+3/+AwNMpZWqAWrz+9GLPGLxYGeU/R7l
9v4xF4L7/cr/MTH+6V//l/+t9Pf/+/97/9Pf/r1YbH9Xt9u84/e/vRVsyq/91N/+z/c//XWm0H//
2//15y399rf/9+1f//b28/3yFP1HD/wzHK9dJRIW5EpP06j9Y/b1v/95+8/b79tffvtIf97a9i/b
X7Z/1fVft5a27S8p8bfXobRsf/3tI//5tXC2lHx/Sq/lSH8faf/t//jb//rdMFVatL6+k+p6lpn7
8Y/lMhTgqPRf5rZk8/pbabOvPDkQL/qZ64uXv26/z+vJ7+vfln7Pm+7Jaeg3f/3tfqAkbuKXLRpB
YXu9UHq2QWHe9K+67P5V0b97+v2PBq3dU1F4nIetKK057PwHw379/RjzazSn6nvCUe21Iv/t9Qr/
dWaY1vMvKVT4fOEwfqsvnn77KC9eGMRv6c95f/02xPBqv1AsL0YnSvV1nX8r/j14NjUSD+Xf5xCL
8Z2/LyldtNufy6bf6cHXAfr1TK6W+j8UhGoa/FOCKFMB+bMoXgx9iKNLEJ2hpyyG018mw80j/esU
z+/z3pyq7k787vgtMcCXeF6/3v7yotumhHlruPUerSQzXhJ4TY/XaxZv3UvK+kccpfwSY9wrCQou
SVgEs1kXB3NaIdV/KMgs4/s/I8is4mJfBZn/M6+1RiCG5psC79ev5pi4GPkfv/gzi0r759jUqvGV
zZp5jQ3D7zeTL9RfWH2I7w4E4IlU//JbvM+/X2gJuLmYvCbEa2bMgZVfSF8fzn9qWKr08tNrvG+s
UfMF2cbF/nxzb9brNt+amuao7jvy7/eclkxejxixayj/9v7rT9sen7bBp+3/B0C0j74KZW5kc3Ry
ZWFtCmVuZG9iagoKMzQgMCBvYmoKNTE5NjYKZW5kb2JqCgozNSAwIG9iago8PC9UeXBlL1hPYmpl
Y3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8L1Mv
VHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMzYgMCBvYmoKPDwv
Q0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjM3IDAgb2JqCjw8L1R5cGUvWE9iamVjdAov
U3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFy
ZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjM4IDAgb2JqCjw8L0NBIDAuNQog
ICAvY2EgMC41Cj4+CmVuZG9iagoKNDAgMCBvYmoKPDwvTGVuZ3RoIDQxIDAgUi9GaWx0ZXIvRmxh
dGVEZWNvZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9g
ZKG/Qr0ST4qk041XN7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//Pv
WH94/f5bPxr6/p8vvivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6Tz
nD/1lb955rdkUmmk73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/
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
rd2KClpDWoDSZUHaGPmj9fb8jUI26/WORuEHRej68vxhLc7Nxf94++//jgGm0krVALX5/ehFHrF4
sDPKfo9ye/+YC8H9fuV/nxj/6V/+t//jtfb8t//3/Z/+9m81Q/Dv6nabd/zlb28Fm/JrP/W3/+v9
n/46U+i//+3//tOW/vy3/+ftX/729vP98hT9owf+/3C8dkV96FzpaNq0f8yu/suftv+4/WX77c8f
6U9b2/55+63U19+6/fXPH/lPaaTf/pyOP6Xf0rG18jpM5m3emf5F9/+W8tZqed2fUtO/p+2vqejq
tbpC9XWa/cuf/8+//e/fjV+OjFUJusTWLFbwkuAfiUwe5SQG8EgU4zpHUtOfP8qfZv/l4lDXf/nz
R32NLu2ztf2W/6J/7X9+MdfmZUnzhrLxcxKZ7a+vYfF4gUCqUyRz0H84HBwr/qHhFIUtfh3OVuHK
A+oCZDItFj7aHNFvDCC17a8eVdZtdY7tGsf8p7wzytdD3eP4q9q/LY+pp1yXx3MVkTblWd1zDtK/
XXJ83QAjv72kBiPNYv/rH0tLsaz/mLSUaO6rtPJvC0t/0Ytn2CfDZeMXMH7xpmFcElmG8xri/vj7
Ei1j2/wU960vkV4Mz4xiof/mR2DiLwZxIfA6gV9SXSAwKwap/Z7wJImslfKrJOjS/JXJlrr4IxTI
efIPoZCVMO8fQyHtvFlMp395Cv+Siv/+sfA9HSY5RngL3n2pd7+LxRPmxhQ+LX5TGFB4yWy/X+wY
yh+Kbyv/mPCS3E1+Au4/LsIr9+vV413VPPuNmRqz6zHav/o3ROUlnDdBopziimXu3zEuCgT+YyOr
+3crc1ZvzBNWlL+sb328BWnAXY4pGOtcS4a1apZ5pferlb/QigXofgnXRehf33/9lW/xla985f8/
FQfKcAplbmRzdHJlYW0KZW5kb2JqCgo0MSAwIG9iago1MTk3MAplbmRvYmoKCjQyIDAgb2JqCjw8
L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0K
L0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAov
RmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2JqCgo0
MyAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKNDQgMCBvYmoKPDwvVHlw
ZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8
L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKNDUgMCBvYmoK
PDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgo0NyAwIG9iago8PC9MZW5ndGggNDggMCBS
L0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKo
bKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X
//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw
/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmt
n55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsy
I9o7jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZV
CQ052/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16ml
uG8NI6PQJjGyVN3UC9JXzC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16w
NF3vwg71L1WzgMlR/Rc09UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbV
a4T/GiLlWBpUM8625IgegEw0nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+Hoga/+8/7RBLK99O
ORK6+sqaugbp/PZiAC5Lw2UJ8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhGcimtRq7v78ZdYNKo
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
qVNCf73/IHm9hCzxL3RrlbT/Nh9o7v2vCH9rIT7/FhLzTbsQzBeh1y9el/2PZaiiKf9BGSr36E8y
zIKweWi/XbLc/pbqIt7+GhRCqvPNe/3mJeuJ+ZSlRm0aLf31kg0P/nYLL+9/YR7VPwe17W8vRH5n
rEnO4jPircRgp3PHH82mWYG7K3/EPdasGfhf/5x/m12X+aoPgcVUbxY9QxCG8duXcNpcCwocpz7f
nu4/jjn8LgDrXBb0y9/UQfOT81fbvtGb//VTulv9pd+iv8wcuiDhNUvRhR5kJl+/+aO3ZGb1+Y/O
tDyutWt9S2p0muPNH8gn4Pw1jFkZOP5DMGYVhPsK44uZEICX7BFia3qhXn+eOKVrlbLMaBWJumYJ
81/07zafzMULW7qesMQB7reLWgKsTX/sBhEe9t+HxFK438x/WgqK8fxeCn8zS31O0DnuKqba8h79
q37z4joD1PLiJQ8pL69UESV/TFY5T0GYpGbRIufru3KJrN2fJ0lFE+h183jJmc+PRNj+WFhp1P+Y
qJIi+n6a9+MSFcj9NsVxo+Z1IC2iA+LtX75KM76Grz/3bRK+vtBzx3ALxy9m8ffY87vkm9692+h+
NtYL8ZHnl2Ur/u2EY/fq9JtFrAHUeq9WFvbfFjCTX2cIXL+Mt+Y3I6jl6PeQQLBKW/5VsF9fkV9P
xfLz6pd4/tsFkcH9dZ1/+lVqLJU/r5r1Ruvi4PXjF8ulXzcVe/+PvXAqgfGTXLSgvL4CIF35CJrd
uqwzy/fGg/QwFikxkgHe//xrFK84feoVrWmhy0qx/TVeiuveBzvr987byeV7980q8XuvwCX4v7//
+oCRfcBoiQPG/wd+2b4uCmVuZHN0cmVhbQplbmRvYmoKCjQ4IDAgb2JqCjUyMzEyCmVuZG9iagoK
NDkgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzky
LjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4K
L0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVh
bQplbmRvYmoKCjUwIDAgb2JqCjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgo1MSAw
IG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMzk3IDggMzk3IDU4Ny4x
IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGgg
OAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2Jq
Cgo1MiAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+PgplbmRvYmoKCjU0IDAgb2JqCjw8L0xl
bmd0aCA1NSAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicdL1Ljis9k7Q5P6vQuAAl
gnfGMnrUCxD6MqhsoGryb/8X7TGPYGShv0K9Ek+KpNONVze68/hJr//1779ex+t9/OTXOMtPf7Wz
fb//9//17//8j9f/9y+91v/99//z71h/eP3+Wz8a+v6fL74r739GIesLf/1///3f//Hv/3j9112u
s/f/3yz3L1d2CXD81PNI5+vv51ek85w/9ZW/eea3ZFJppO9/z1G+5fbx/c+ZxvfP7zJ/ztfnNXv+
/vmdalNd7fXOOa2fnmOJlef68+dfP9JqWKlq66G/lW/J/VXOruKU+Lzy7F8dOpnOHHlO/XMUtxrp
it59rpKXAO+UqzIj2juN8yuQhH7no35/RmOcoJ2ff07W1NUSZWr5+LkK7LlLNqoaJX//uySYx6pI
ks2x/uHzb0l8llUJDTnb+VPcRr5/3HxS6IUcqCxKQptUgZKpGPWHSOCCtOBFM3YkPw9c3Y0W6jWl
199P9YJxaefXqaW4bw0jo9AmMbJU3dQL0lfMLwh1yXmWBc7xFXA1aSVmkhyrtU2ISgnr67e18+4D
K0EfyJH8avSHXrA0Xe/CDvUvVbOAyVH9FzT1Q4v2BXQuham6L9Juir7uPUCKy/HzpdEcRS1lZ+Of
BUN+rWoXOJZq9tVrhP8aIuVYGlQzzrbkiB6ATDSeFDohB+qKspYeqQL1UjGKD5FABGlBimbsGH4e
iBr/7z/tEEsr3045Err6ypq6Bun89mIALkvDZQnybSS6/0rcF/ALk2SABdaSdLWyAGPaIU6GuEZy
Ka1Gru/vxl1g0qj/VvTug2Fe1NFyXh8WTphlxP5CWb610hwnNphXcmkoRaa2yqa4npu6H1WNskbm
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
nseD1vjST/D8nH5/VDk36EF5f9Dav+nn7v8XdZiDHIQfe4Qvrf0ivP9Dwi7qHeREWEmDL1LP1rg2
DON4Ev6+KnyQg/Bjvn1pbUHYVz8R5iu1aUUy5XRRfky4L610UU4Pyj5DdJ8CH5TzRfkx4b608kU5
f0+Z89qDcrkoP2bcl1a5KJcnZc4QF2UtdqZcL8qPKfelVS/K9VvKPhQ+KF8TcH/seL+0rgm4Pyeg
TyfdZ7dN66gp94vyeNAaX/oJyv17ypzdHpSvCShT7E1r/9JPUH5OQJ97vqV8zcD9eNA6vvQTlPdv
KfvstmnxN+VrCsoicdF6tvZrCu7PKegjVffZbaV8XHNQFo2bcvrSjykf27eU2Rptk3PTTXF+OR46
oy+tFOcXXwVdn7W6T0gr4UtldJQHqfJNN3f3f0h4flVMuVyU64NW/aafu/+LMoe47qPXg3K9KLcH
rfZNP3f/Xyn7gPSg3C7Kjyn3pdUuyu1B2Ye47sPMpi+hKV8H0OMx5b60rgPosR5AfRuPP+bVl9a4
Hh9PxvhatOP1PzE2P6RmbL8oP+bVl9Z+Ud5vytheiLHkxtdyfJtY/rDbv+vu15v++j9yC0PleD8/
3/70nz/b+7/8z/d/Ffkhm1GTx9PnW7R2KypoDWkBSpcFaWPkj9bb8zcK2azXOxqFHxSh68vzh7U4
Nxf//e3//ncMMJVWqgaoze9HL/KIxYOdUfZ7lNv7x1wI7vcr//vE+Ke//C//Wxvv/9f/+/6nv/1b
M8G/q9tt3vHPf3sr2JRf+6m//R/vf/rrTKH//rf/87ct/f63/+ftL397+/l+eYr+owf+/3C8dkXe
lFzpaNq0f8yu/utv2z9t/7z9+feP9NvW0r+klOrvH/m39JftzynrKr2uuq6Orf3exm95zP++7v4n
nkvltZ9pW/JdLQ39665/aynNVt64N//z9tff//e//a/fSUMVSOvrcyoWZzW6H/9YfENxkMoS5lGV
rDHV7fdWf5sjKGny9OL1n+ffsv3+YrCIzf5i9x8xMn0f/4OsFB1YfsXKFMSr/z//nl9C+nOqeVO7
vu7hjn8soCJ16X+Mr/xrAdUmLga8/F5+M1t/MdN/nZJrNPIO0Pz3F/xmBXz9h/jNStH65DjDWUq7
Af2r/iLL/GLuNZCRf8uvd7RuGYj/6ffUf6v993RcbwAP5M0DzbTr+MdDUAzef2wIeRrhvwg93W+f
pH69nDG2anHfo/Ir8We/soyhrW+xh+D2/nzLtr+8aPLQX6do5oMVmsa3p4FIr3+vVx91cpSvzvzL
n/37H0hMw0/yKnsOf3sRKb9tdfIBwdeblMx9ujrdWHUyr1fOr1cxQGMcWyslJbMvyfl9LNtf/U7m
1/jzTSKeX9/Uf33/9WJ/xGK/s9j/f9VlXg0KZW5kc3RyZWFtCmVuZG9iagoKNTUgMCBvYmoKNTE4
NTYKZW5kb2JqCgo1NiAwIG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsg
MC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJH
Qi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAA
AAEKZW5kc3RyZWFtCmVuZG9iagoKNTcgMCBvYmoKPDwvQ0EgMC45MQogICAvY2EgMC45MQo+Pgpl
bmRvYmoKCjU4IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcg
OCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVl
Pj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0
cmVhbQplbmRvYmoKCjU5IDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKNjEg
MCBvYmoKPDwvTGVuZ3RoIDYyIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJx0vUuO
Kz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041XN7rz+Emv//Xvv17H
63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8vvivvf0Yh6wt//X//
/d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb955rdkUmmk73/PUb7l9vH9z5nG
98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrrob+Vb8n9Vc6u4pT4vPLsXx06
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
8vxhLc7Nxf94++//jgGm0krVALX5/ehFHrF4sDPKfo9ye/+YC8H9fuV/nxj/9M//5//9OuP8t//v
/U9//bdeIPg3dbvNO/7hr28Fm/JrP/XX//L+p/9jptB//+t//fOW/vLX//ftn//69vv98hT9ew/8
73C8dpUIi8iVnqZR+9fs6//5c/qnlFL9y0f+c/rn7R//8pH+/DqApu0fU5//trW/tPHnPPI/zF/y
P8zDaSq63jb9Wzq29lpL6+uXkuv8l+0ft7aVrf7lP//1/4phs+RMfqg6muS7kkg4AkTXm/gzDCNg
MK7/P+GbbYEKZW5kc3RyZWFtCmVuZG9iagoKNjIgMCBvYmoKNTE1NDIKZW5kb2JqCgo2NSAwIG9i
ago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA1NTQgL0hlaWdodCAyNzYgL0Jp
dHNQZXJDb21wb25lbnQgOCAvQ29sb3JTcGFjZS9EZXZpY2VSR0IvRmlsdGVyL0RDVERlY29kZS9M
ZW5ndGggMzA5NzI+PgpzdHJlYW0K/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwME
AwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBD
AQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBQUFBT/wgARCAEUAioDASIAAhEBAxEB/8QAHAABAAMBAAMBAAAAAAAAAAAAAAUGBwQCAwgB
/8QAGgEBAAIDAQAAAAAAAAAAAAAAAAEEAgMFBv/aAAwDAQACEAMQAAAB+qFCtxIPRFE44vAkEZ7z
sR8EW1D9J3oGVOn8rsYXZD+RLIvxJZA9hJIuLLQiJY/VWkiXRnoJpFxhZ3qqRcf2uZ6bKqs0SCF6
zvQ/EWVyV8taL4SxM7sBZHB6CWQPUSji7QAAAAAAADP4DQZcw+wahxmS2uRshT4u9cRSo7VPMzji
03pKX2XIU2n6z7DOeDTOkzKWuHYYPbtB5yv81x8TPbLLTBlsRq3gVehbpmxHNM9h24VukaVWmbZ6
jNo/V/EzmP1nxKh+XrjKlUdCmyn03WO4zrpuXmY3eLr7DJvfp8cR9r4+wAAAAAAAAAAAAAAAAAAA
en3ZGSttwHmPpDkwb8Nas2AzBtX58q6gaz55Vl59O+OC1833opmWn05y0jMzZrHgsgbg+bLKa/01
/MjeuL5unzY5T571ou/JmOfG3WP5r0I1bi+epM+heTOYs1OG+etCNBteFRJv3Bg2znPY8VlDRZ/5
etRvnZSLsfoAAAAAAAAAAHP0CJ9M4OXjlvyIifGYSz2594jqfoKFZjLyIz9khD+cqIPt7xE9HcPT
GzCUHnGx/qeHmlxGeiaEP29Yhc12QcjrEJ7ZYcfl1CCnP0Qch2CI6u0RMr+gAAAAADKYnovJQl99
5na0CsNB9ZQvy8ewobQJEy5L95WYfV+tHynYKXZvXef7nC3a+5wjuWXzrbau9/o3YHj5zH48OSXc
4Ux3OEfT8zCTfjvRBhmAAAAAAAAAAAAAAABjd+z7yLjDxYkI9+HrtlX/AE8pGMElbKCLxS/WOq50
KMMUs1Ys/sPOhu1O/g8onRvVnvlU36hGUP2Gmqlz6dvdUff6L1UNmAH07Nwk3430ga8wAAAAAAAA
AAAAAAAMa1DMNRHuwmdNW/MZ6TYfHMo819lnvL71ZnXTc2U/pqsNVrmfHtmrNm9h50N2ryuNWuNb
fXvXZZjVnRfdLT8KJI2iLxyq35dIHdrqot1wPp2bhJvxvpA15gAAAAAAAAAAAAAAAY3q2S8ptVWo
Y0aWyMap7MnGte7HxrflkQ1xkY0z3ZbGmQWasWf2HnSa3nRs+bPL6SVd/wA3eP0mPmyZ3pE/Nv59
Jso+bvH6TQ+a30pg9rRBi7W+nZuJlvGekDDMAAAAAAAAAAAAAAADG9WynVSM6c/9RonuwC8mj+jH
/QbzmttohpfNnPcXL2UCUL1y57oR8eWas2b2HnbB9MfM/wBMcXpByegAAAA+avpX5q6vPrg9DyPq
SUi5TxnpAwzAAAAAAAAAAAAAAAOPxMnm5LyOD9lfaVnrnhXvVZvwg0r7yDTogk5+kFFXKIPm+2ad
qnV5/wA8/Q/4p2f0Vt4AAA50e/5rs1B7/J5B1+f9Ryvz3svlu7PilaAAAAAAAAAAAAAAAjvDz8Dk
6uXqOjDdz4ij/lqkzP8A327oM89GqcpnvReOAodoku4nYSahSjapleqD8/QAAAABXfnj6prXRpfN
n726z3OZ7dLfvl+4GrYAAAAAAAAAAAAAABHV6w4aax313sPCLukUV2M1XyKRUdgph+1TYPYUSK1D
8MxlL15GNTOoQpRdVyvVADEcyt1X63P9Kd4L1bhTHoI52dCIt1/suNOckTX+/t65xh9PzS20Lfs0
+c+W+T0Pr8AAAAAAAAAAAAAAENhu9YCbdk2s5CbRmOieRm3Bq3MSGdaLElXi9SiihenV+UzKTvXU
TcLFfhW9UyvVAD5yiZCq93lXWbxqXu1rqzj3TF/9me85o/HU4rKL37atGZRpPRnfp1zOWPPr3Qt/
Rfxz9lfHfC6v2Kp3nK3KNUzZWd+JozP+c0gAAAAAAAAAAEdjGx/P5umGbDmprH6shWeTopRf4am2
8nIeJ7Cw8da9hYuuc9hSPO6QpRNVyvVAD5tqtvqnf5MZ3XjvuVsu9tskcsaF6b16pVXg0yNxmrcN
8/Zil+u9xGUVq71W3c659FfF/wBl/HnB631ZXL+KXEaWKL7bqKFLWcAAAAAAAAAAAU6k6fVTu9M1
7Du7qXGF556XElp6uCmlx7+GoF2loCINR9mVyxfoTL549GqZVqoB841W38vTowXvl1ytDWLmYZ8c
bOssYn2SX6RnrlxE/kulWbdz9lOxoWHa3oHMvTQAAAAAAAAAAAAAAI7w8/A5Orl6jpr1hy80TvwW
cNj/AHCes1SVyG1HbY81pZ9CROaeZsELNwpRdUyvVADEduxHbgB+forkb6Iot8tltiL4ABiO3Yib
cAAAAAAAAAAAAAAADn/OkZzMy1ILR7akLaqQtqpC2qkLaqQtqpC2xESPTqkdIgGB2bS+IoK/Cgr8
KCvwoK/Cgr8KCvwoNb2LuOoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//EAC8Q
AAEDAwEGBQQDAQEAAAAAAAQCAwUAAQYVBxMUFhc1EBESNlAgMTJAMDM0IWD/2gAIAQEAAQUC/wDD
IkJOUNYf8qQ+25d2cjmLOmjjoDkBpBBsmJHUgwdxb0gKPRmUxoga5gFsVB4zjFp6NU0OS0YyzIOO
TpksSFAiywZburg7wSUDPVaTFdcFkLNxTEkISOFJiSNGZIABIky4ITtBZLHnmDy4Jb15MRL781Hi
vmSgcfUhkYMatt1Dzc/kg0SFaQU0W3mrmkhy7bMemQGWxebj0jIPGWwPMAl1E5CFM0+WwLY+dZtC
LkGBhS58ESLlcuGaDRMDiBuHjMtKlgkMqno1CDJQOOtY0e6v0ZeOBdcLkXdLdaMhW3yUtujIbcjw
bNKzGbDWmQOJs/FNRtpeOkjeNhpJN+bDoqwsSsEe+bYqmzaRl2TmDns2SbESTGvjxWJiKXfLcRHa
TDM+vTLwFn2oM5258m2zzXFcDesS3vLQjw0aXchb8hjw7V5KyxLbPm0PuZM5GNRo6PT6EqEts+ET
ZeUpHa6cSjS05adF2EipRlaMtPikjRJo7TOV4illA2Roaclp2zajD5OyKRbfQsm0MscOwycqjmW3
1kjNLzAMAbTbCucLGlhSI/6LsBGvPusNvtOModu9GiEESkA2e8IEwC0ZEAyDk0GSZHrihHQ0xgiB
FQoCxURojTG4b3zTDbNOx4z5Ng2LNCRQUeqwbCWBowMOmmG2EKjxVitw4LQwceLHIMjhZCxEOAW5
S4sNwtiIBFpthtm8tjxEo4VFBn2djRHxWmUDtqhgFEJGaQ5wI3DGADSDbccK0wYANINojRGmFMNq
dbjRGSpmGtLFMR4ow+iR/CoCHaSxEAioMiw5GuFZrcN3esKylJEJHlUoNhTnxDryB228qsXlLU0A
+S1JCPjvTkcO3NZA4CcbKhxtLkRG0hSYkkkyUDj61EXcMTQBVWm49T4s2+/lkNKPOijzIBTPMUZd
lnKWpWCHkLMxTcuC6K3LBOl5JJuw8IPKN2iRZAU5lidjiXoKQJLYDmAZBy5bCSVywTaJWdteKckR
xaFkBjmGJ6NJffKZFsNKhGvJnI5ZF8tj7TY80pqQdMYYdamgHycmlHYaDmMgIj8S1oNpiZlltxDJ
zLropjBrf7G0m/lFy1w+ZIWPbPClxCI2UdESNljoyIYey413NA7NqExxIys6yiUYvPf8vgMwkC+Q
kIjVYaGS0PtHX7VkpOEjIBDbJmRRfAdO5Xd7iX4fiTI0WOfzr2pKEilImVIQYvSdZY3vIGLXhNxM
FMgbQmhh5tuTkrG4lNhMn7QSEKDjV6VrO0tPqgyQxoXPJWQYko55iNH2hsRFpswBZeRMQscg8LN2
lP4rNzwJuCARQ5ucq/5s7zuynJ3GS45nHf2Hx2imhokIOm4KOZJWMy48bEhSV3ogEgcmGAMTP4zq
pYYA0e2TGiGryfGdWjXYIZqNxvGB4YF2LDfKtGBpHYhgBmWYoIa7UHHM2dAGfFbiAWRVgjOU8ygh
pMMAkRUY2JHR2JmrmGQRh2g4gGPWZGCSNOwse/a0OBYVQjCiSAEoHjsTNXMEiMGIUIwsjQ46iokI
51oRhhxgVkWzcFHMk0zBxw5CQ2EEaQDw7YQ7LqYgFtv/AMntKPIj8bbwWQW3yFIVyFIVyFIVyFIV
yFIVyFIVyFIVyFIVyFIVyFIVyFIVyFIVyFIVJYCYOHBShb8bxxFccRXHEVxxFccRXHEVxxFccRXH
EVxxFccRXHEVxxFccRXHEVxxFccRUMq64v4Pat7YlJS8VGCNyzTzGQgEumZmC1Hxc/ezAmRgHK5m
A83srjWW05AOt1OSx6x4+VHk7Azz5MqNknqJvk0dYeYXZyDxztX0kxLbME3ENogXg7+uwJCnViPN
vOAEtU+K8L9UJ2n4Pat7YkYu0tFthy5FmsaMVT+JOug5NHOCsREY8cNC48uLJdw80hw3GCpO5GMm
SNBRihZOPhuDs7hLjobuKlugyaFNY9jnavoBGuYYwawVKMEXkhHyLsEq4p6Kv5rmgzkOlyZTqgvp
hO0/B7WVWRizO1GES11Tg66pwddU4Or7UoK9rbUoO1dU4OuqcHXVODrqnB11Tg66pwddU4OuqcHU
ntNhSI3HO0/QlV03pK1JreKvSCHG0xki2OmVPQU+6+4/f6YTtPwe1b2wOGPuEshrc4MeljCtoQOK
5bgx6uKMm3Bj1wY9FLjgaQwI5bgx64MeuDHqaEYtD452nxSm61PNBw1XaclSNKK3ukF2WFEOkl6a
8yUkZq0e7FkssuRhLTP0Qnafg9q3thZKA46GIMAmLZMci654wmIFmXxG5nICotlcuU4HfJS7Iamz
+IzCylTsNJKEGtPnC2EyCQkUHTElHyU12XHO1eIrtmCpKJckDGRFLiDCbDAEuXuD5uFPg2sFYR9p
oI90tKsiJu5IfRCdp+D2re2ENIfDcHbebj8cZCZiIEeMj7x4ym9HCujSxPVeNFuRwbNFxwx9Wjxk
pcjhnbNRwzF0xd7zU32bHO0/R6r+SVXT4sn7mN873vV1qvb6YTtPwe1m174s1A5bdrQcvrQMvrQM
vrQMvrQMvrQMvrQcvrQcvrQMvrQMvrQMvrQMvrQMvqTg8rRHY52moZlBEpy7HVy7HVy5HVy5HVy5
HVy5HVy5HVy5HVy5HVy5HVy5HVy5HVNsoHlfCKt5Rvwe1b2wle7CiZax0NeYCswuaBbZ1MX0NyYj
ykTILjbBDZLULlpB5OqCWb10C7Lc6K6rmCOrURuJm+zY52moDvP8mRd68Ivtvwe1b2xZF3AQQZwa
EAxkxt2XD084uFNJo+INBSBGKlI+ABVHgxGIPQyXMakVMu4s+sd7HTzGDcZU9Q2MlMS032bHO1VA
d5/kyLvXhF9t+D2sKsnFmdoOPJZ6h47XUPHaezfFiFdQscpe0DG3Es51i4yeoeO11Dx2uoeO11Dx
2uoeO11Dx2uoeO1LZ9j78Xi4BD8NpZdQccS3LfyZF3rwi+2/A3cva+9vWSxTM/HJxyLslvG4pV+W
4fy5Yia5Yia5Yia5aiPPQYOrY1EKrliJrliJq+MxFrcsRNcsRNTGNxbcTsx9m/yPpWpo7I5aOIKJ
WYR4D5XINNw/GrG+AV+VFf12+zX3DeU9LB5SWW9aflNNdystlABjx2QuwYF8xi5EmOIvlJ6ACcmP
HjpqaLlI2ImiCJSpvsuzH2b/ACzMM1LjmhOgEVa3nfGca4W3wKvyon+u32a+6ogRYzGNRwz2mDcO
RAglIGiRRF3DZuZpIvkqHEWFyzHbp/F40lseFDELqb7Nsx9m/wA03CtS45YboRGMY1uLfBK/JmcC
fJ4po0W/r9Jt5Sy51eS8XBryfjTV5jxcQuf4L1ZxTy5/Qkqzf1Ty8h84peWcdLLyzj4BeQetSs39
Ra5vlHZj7M8do+QyMO7r+U1r+U1r+U1r+U1r+U1r+U1r+U1r+U1r+U1r+U1r+U09IZCQ9r+U1r+U
1s3yCQmqyzaWZjU5ieVDZZH/ALyvyJjrSUgBGaWE5OAMPb6zLN55FseaIQ8niG/S4UhI0blfGOcS
z5KdQhO9RZW+bq7zdk7xPqqb7Nsx9m+O1XuaU3WqRjbgO3EfSpgBbjqhHN7w7vpUC61dQ7qEuDOs
2ZCRw7jCbuoFdW6THuMkXt5Vsn/1ysaxIg7FnfRM/vFeu6HFiumP/wBLxF2Zbd78bh5NWPkQZ2pM
4+SuPWA2PGi4ikbGTIHhVIhTGElQhTkuqDJuouFPeFFiCmJupvsuzH2b47Ve5xr7YpLcmk2miW7S
GostWXIsP3aOHaDckmOLdkGfI2QQQhp5gkMd4Ya6pBhdrSbG8Lc3xOyf/W5bzb2PX9OU/vK/Ja9w
WR/Sao3UEyA4ljZ6PjXQp+OkXnsoiR3RZkE5nm+FpcyC2FbLYa9zpoGMoXJIs18rI4sF8CaBk73y
6GteUlgycb2Y+zfHa26lg9LiVttzYinXi+GsNKDGOFHMhWFNZNSTKDCOMvIfbvNBpcW4lpDEuIS6
SW0G2LIMG0VIjhK2RuJefqdjzNnWWYtkrOUxpWRNC1fKmuNfyb0SSsyZQa5mbaHHcwYaGFmrzEv+
sr8m30syBH/Wior1FWixTLSGORkq8BjUZFvv4hDEvBQQEcxyRBUuCAcj7YVBpvIQEfLUHisSAQZi
sTIER0BHxN74VBqvJQwQmM7MfZvjtZbS7IJRZKUxgqFuNJeQyCOMp8VomzAzQ1ngByFttpZReMFu
tSLLQ1HDMLeHbISwGyNT4TBN9kiLNkU3vNpOdREMJBCE4txJiccTZKcJY8hMddFLYxtLLTmL29Ic
Nw0h+s8uzVnCgHpGSkGRo6e9Orw6S0IrKXFNY8A9cFcXlyg49GSuOmrzZC2GcjJdlG823gz+VFj0
2veI8JvsuzH2b47Ve50IofRnbNFCLAYbumCQp5MSzduB/wB5wqSi2YxpQd4wdtDwDVr3hW1unhtD
eGyf/W7/AFbG0+eSfvT5y48AsJ6Ns7GioARjwTYI6fR4GiNniPxjJCuUgk1eEaGJjMaS1DN4wGy4
3iYbbL0IM/SE2Qnwm+zbMfZvjtV7nV313YQa823Yx2zokxbd3kltKZfWwpo55lLkkQ6hEi+hThrz
tuOf9RJrpfhsn/15HmsXBN7FRVrP/eIZQQhGLhocK/qv6/QYqVsvIHMlSZAOZOo453MrGQy5+4G+
zqn1z+gIezj1ZCvIE3iHMtvITDmWWkMdXkClqezj1FKmr4dsw9m+O08FySmulsnXS2TrpbJ10tk6
6WyddLZOulsnXS2TrpbJ10tk66WyddLZOulsnXS2TrZaGuPkZzZtGT8rEQ4sGH+8r8qJ/rt9mfvC
ZILOWjJJEkFchqzl1ptXqt5yUo1GhoXZdAz3HloIadRdVrVGSbcmJU32bZj7N8c292fSNJqfmx8l
Y37k2O262Wy899OB+4vgFflRP9dvsz9xccJTFaJI8Dy7dySZx2aedHiC0O8uOcv40GQBYcR5WQJg
yUQrARPGY3EmxxlTfZdmPs3xzb3Z9JYB4c0DjJKD2saOYbxeDex9H04H7i+Au1533NZpL3x2HbnI
xTaZ2LTXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZUzPRq4jZj7N8dohjUdP8A
U/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47Wzcps+X+ClIoWa
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
shpz24qSWOCNJZOu6oAW8tLGtnAiK+1CrGAA3zvL/wCKa7WZoJGnRNa8cUrf/JL7eM+Cvulvvor7
pb76K+6W++ivulvvor7pb76K+6W++ivulvvor7pb76K+6W++ivulvvor7pb76K+6W++ivulvvoq5
uf8A5Deu0cbPjtwKiaS5kZu0tXx8npV8fJ6VfHyelXx8npV8fJ6VfHyelXx8npV8fJ6VfHyelXx8
npV8fJ6VfHyelXx8npV8fJ6VfHyelXx8npV8fJ6VWpJydA/EifrMf96gdE2k0pWKNTwLGle6uLd4
flqq4000cdwCwBPDj5KuJ4GMrpHrVdJ6VSyX9xFgKrjSpBAbwYrEMurol+rjcONRDakmRVdQF8B4
VcMZs7AZYaTSHaqkDQ7XLghuNTTCfoRY15BBFPsGzoOGBGCKuonvIY1iuHjEGjpEDx1EZnjW2a0E
5de3OKE3OOiW0dU5z5KvmHA27/VNRef+vvo5/wAI3M35p4VNcy90bmUdgpVijkzo1MCK2QhfafNx
WyaJhJ83G+hrhdcnAyKG1jaPPDPvrX9GPxIn6zH/AHqKLWYpE0yRyD5LCmivLi35uyFG2KnU26rW
O4nh2FoCItmmGO7G+rSAToDDaNbk445xv+ipJVOWm2MasP8AbK/KNRXFni3ZFkgfbZbXk9YVHI0q
yabVLfcPCCd/01K0t3ExeFotWD87IpHuLiISLDo+DXdkNqH9Knkup4RO6LGuyU6cBs1eXRcFZwgC
9mBir3VoZp5nlDY4aqghNwuYrZIQcfKVs/uoxg2kU5fVrRW3buPlq7R21sLZwW7ejUXn/r72KEfL
bFXscxxalMeZa5UPDUY1UdgzXK06bjGixLVpzfU7Ssdq4458dXy506IdG1+ZSQhzcPBA2ktu1PSx
PamFdeoMxJPvrX9GPxIpPAXKf3pAec7h/wAJr8J9Sa/CfUmvwn1Jrfzk/wD4DW7nPqDX4T6k1+E+
pNfhPqTX4T6k1+E+pNfhPqTX4T6k1+E+pNXcSc51PEyjMJ7Ki8/9fe5UkHxe1uYij0jv47+NFVkZ
VPgBqbWzpM/++u81E0WQyLgycCx7a+Edn8p99a/ox+JE/WY/71H8BH1R8kUyCOEuvWXSN1fER+gK
LNFEqjeSVFdGKFvIor4iP0BWTDEB+aK+Ij9EV8RH6Apecc3h1cNeBmlKxwsG3jAG+viI/QFfER+g
K+Ij9AVfYhj+If5I+aai8/8AX3gA3k0I5Iud3WMtk9FaYwW6xgDgvAU8exOtBkilXYnpbwfBUsD/
AATRqWOahSSItrO4A9ar+XZ4O0EaA8VravEQnh8VbV4iI8A58vvbX9GPxIn6zH/etvIcJHHqP7qi
5SurWWGK/YrNIx6O/qfZRmM8Mqm5kgFsF6QAzg/RTLPPFci7sZJCI1wYt3hqZItnEzTxQ7ZxuXMQ
OTUWi9huJFXW+hOuNWPNXLLzXUUojl0pBp4DIp7kTQKkc2x5mR02GcUJmlU2/Pja7LT4N+/NckBG
t1OibfddT5NWsMYUm3guvhOIJXG8eKoxcXUf+ot1mV9n1TnGKsYUlSOaSaaF30/N8OKi5O6Ms1zp
2MoXcPn5/wDfDV9+rv8AVNRef+vvIZDvCOGp7m3kjeGXpai3Cp7a2YSTCfp6TxGKnCSAypFHAWB8
Phrku2EnW6Tb+01yzsenuCDHhqzgmcGaMvMRnqjHCrQykaZLrW3mq6+BhEcnRMnzhmmjD5jjAUAc
Pe2v6MfiRP1mP+9Ikih0KjINbN0DJ801cbkeaV5G2uneNRqO32aM2z0O+nr06GBCj9YY40q81j0q
MAaaZubx6mGCdPGhObePbfP076+KXra+Hyu2l5xAk2nhrGcUqiBAFBUDHAHjQDwIwC6RkeCgY4EQ
g5GB4ae/lfXiPZxJ8ztq/wD0En1TUXn/AK+941uJHk9uaBciSRwdXirOfa4n31r+jH4kXScHnKf3
pMcuRAYH+3Xf2L1dd/YvV139i9XXf2L1dd/YvV139i9XXf2L1dd/YvV139i9XXf2L1dd/YvV139i
9XXf2L1dXTS8txPGImLLs+IxUXn/AK+1bxyLqRm3iu5EruVK7lSu5UruVK7lSu5UruVK7lSu5Uru
VK7lSriONdKK24D27X9GPxIn6zH/AHoP82PP0VBfzaYQ6a237hSzc6j2THAfVuJpJWu4ljfqsW41
I23XTGQGPYTw/rUipcRsY+uA3CnkW6iZE6zauFCSJxIh4MpqzSeCJUu9ez2bZI09tK+3TQxIB7cc
amlF1GUiXU5B4CsrLGbfZ7Ta6q7si46et4aFvt49ufkat9X/AOgf6pqLz/19q1/P/wC7dfn+3a/o
x/T8SJ+sx/3rSOJjx9FJydzS26CaRIZM581Q7ZI9ml6bjGrPR0kf1p4px8EDJJIFx8WZNShc+HyV
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
0Ay85ZYmWW6tFNztkyZMmJpz7L/eJ/BhJfRzk4p3zpzuyJE7KOFHi0xvBKALScYxZaLDICXyavbE
P3YgUN06JvbG9FgiTfW01I9dZfIOVjBY0kXWHtSaQ4FrIMkQmL9/RQiYqavAW3AZCPaghbWuSON3
IEUJCjKRPXCamGC3DpUMBVNEkmHP7YJgScYbYkOcoRCjpzjFUNQeg1BFZ1euVx8MK4eUKdwPEf8A
wZjNSbUlugmv0vGe98f4FQArfhD7mB7Ro7YQIMdhNmGISkzX+PNm7XM5f4MzOZF/izJ0nlg8IkbI
ohAcldTEMmilPiLMIARGPCDx4zxmDxGTxGTxGTxGB7zBq5ZPEYAurB4jB4jJ4jJ4jJTqwOmfTFQd
+Ca8f4OtDSw3QTYlfr+/YkCECBAgQIECBAgQLGA6CF8tr57filx7Vo4TylNZ7o9M90eme6PTPdHp
nuj0z3R6Z7o9M90eme6PTPdHpnuj0z3R6Z7o9M90emTK4ELuw2/+d//ZCmVuZHN0cmVhbQplbmRv
YmoKCjYzIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1
IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1
ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRz
dHJlYW0KZW5kb2JqCgo2NCAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoK
NjYgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1
ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVu
Z3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVu
ZG9iagoKNjcgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgo2OSAwIG9iago8
PC9MZW5ndGggNzAgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r
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
Vorzi6+Crs9a3SeklfClMjrKg1T5ppu7+z8kPL8qplwuyvVBq37Tz93/RZlDXPfR60G5XpTbg1b7
pp+7/6+UfUB6UG4X5ceU+9JqF+X2oOxDXPdhZtOX0JSvA+jxmHJfWtcB9FgPoL6Nxx/z6ktrXI+P
J2N8Ldrx+k+MzQ+pGdsvyo959aW1X5T3mzK2F2IsufG1HN8mlj/s9m+6+/Wmv/6P3MJQOd7Pz7c/
/cfP9v5P/+v9X0R+yGbU5PH0+Rat3YoKWkNagNJlQdoY+aP19vyNQjbr9Y5G4RdF6Pry/GEtzs3F
/3j77/+OAabSStUAtfn96EUesXiwM8p+j3J7/5gLwf1+5X+fGP/0z//n//06L/y3/+/9T3/9t5Eg
+Dd1u807/uGvbwWb8ms/9df/8v6n/2Om0H//63/985b+8tf/9+2f//r2+/3yFP17D/zvcLx2lQiL
yJWeplH71+zr//lz+qeUUv3LR/5z+uftH//ykf78OoCm7R9Tn/+2tb+08ec88j/MX/I/zMNpKrre
Nv1bOrb2Wkvr65eS6/yX7R+3tpWt/uU///X/imGz5Ex+ssIv0xaJzAFolEDoZxBagFB55v8HBrBt
FAplbmRzdHJlYW0KZW5kb2JqCgo3MCAwIG9iago1MTU0MgplbmRvYmoKCjczIDAgb2JqCjw8L1R5
cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDU2MiAvSGVpZ2h0IDI3MiAvQml0c1BlckNv
bXBvbmVudCA4IC9Db2xvclNwYWNlL0RldmljZVJHQi9GaWx0ZXIvRENURGVjb2RlL0xlbmd0aCAy
OTYyMD4+CnN0cmVhbQr/2P/gABBKRklGAAEBAAABAAEAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUF
BAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQF
CQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FP/CABEIARACMgMBIgACEQEDEQH/xAAdAAEAAwADAQEBAAAAAAAAAAAABQYHAwQIAgEJ/8QAGgEB
AAIDAQAAAAAAAAAAAAAAAAEFAgMGBP/aAAwDAQACEAMQAAAB9RxkX1y6stshbmfxZqiKrBfGd/po
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
X0rvPs/9I4H7sozXXvPfP7nu39z3b+57t/c92/ue7f3Pdv7nu39z3b+57t/c92/ue7f3Pdv7nv39
wHJVuHK9+Z3vrfqd71eEwt2RszL4aGtFcQy21z2LPaM9oz2jPaM9oz2jPaM9oz2jPaM9oz2jHohr
C1O2yv8A57//2gAMAwEAAgADAAAAEOGPMOMMHKPDMMPPPMPEOOPCPEOPPPPPPPPPPLLDJNLHPDPL
LPPGNFLDDIJPCBLPHPPPOPPPPPPPPPPPPPPPPHOELBGCJIHMGHIDFPFIHMDDPPPPPPPPOMMMMMMT
jTTTTTXTUPLLDPPPPPPPPPPPPPPLAIEIOCFNf/hlucP/ANfzzzzzzzzzzzzzzzzzyjxzywywz3/x
+6B3/wDX888888888888888888o8kI8Y081/7A6zSd/X888888888888888888sYgAEAMA9q6y35
yn8S888888888888888888ow0A4gYAdpA888888D88888888888888888U48EAAIEM9pA888oj/N
e8888888888888888Uo0488c0YdpM2+++4XF88888888888888888Q0cgEkAEU1p4w/23urxg888
8888888888888UUwYQQA441p0r3KJ1bpGo80g888888888888A8IogQU48VppatFGrap+8s8Mc88
888888888EsgEE0oIA1pndMOCOOZM8888888888888888Us84UAEoAVpo88gs08o888888888888
88888McM88888qMD+MMMMMMMc88888888888/8QAJxEAAgEDBAEEAgMAAAAAAAAAAAERITFxEEBB
sVEgYYGRMFBgoeH/2gAIAQMBAT8Q/nLoNaJ/hbbbfnhK3dvGqVyvfAxNoJrhCdPV27u3jRJtwih0
U6GxLZRaT6G0X69u7t40XO3A97JKhJc8D5Nx3ITG5enbu7eND+YzGUl8mYX2aLRac7u3g6PV/T0s
53dvB0ep+hLc6MKOnnd28HR6mhEoQ5TkXd328HQO5E+SiaF6XYTJihD8hEKgzRw+STm7t4OgWXqK
jVPjkZE5SalXPgRF/wAxPbr34EYTjHIyyD+93bwdB2C/MJIJiR8iClAgJjFv77u3g6NE+Y99jrm2
ZzOZxRmpu7eDo/R8mzmvtf/EACgRAAIBAwMFAAICAwAAAAAAAAABESFhoTFAQRBRcZGxIIFQYOHw
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
dyur6Y9e2CCKejCj5uSqRxUSTgCHUwf5XHAIB+Zf53wf8GDkPGQ8GBJIhnUABHtfH+eS9evXr169
evXr179k84K3YFVv0wymY/u2FBSC0FTcMFQQByUl/fLABrxoVXnPlnvnwT3z4J758E98+Ce+fBPf
PgnvnwT3z4J758E98+Ce+fBPfPgnvlp3r2iiPMU3rebpsa8wn/S5/D75fXJvO/8Aj//ZCmVuZHN0
cmVhbQplbmRvYmoKCjcxIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94
WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNl
UkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMA
AAAAAQplbmRzdHJlYW0KZW5kb2JqCgo3MiAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+
CmVuZG9iagoKNzQgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5
NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRy
dWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5k
c3RyZWFtCmVuZG9iagoKNzUgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgo3
NyAwIG9iago8PC9MZW5ndGggNzggMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9
S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/
Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9
f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3P
mcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxf
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
6Pry/GEtzs3F/3j77/+OAabSStUAtfn96EUesXiwM8p+j3J7/5gLwf1+5X+fGP/0z//n/71v7//t
/3v/01//bRwQ/Ju63eYd//DXt4JN+bWf+ut/ef/T/zFT6L//9b/+eUt/+ev/+/bPf337/X55iv69
B/53OF67SoRF5EpP06j9a/b1//w5/VNKqf7lI/85/fP2j3/5SH9+HUDT9o+pz3/b2l/a+HMe+R/m
L/kf5uE0FV1vm/4tHVt7raX19UvJdf7L9o9b28pW//Kf//p/xbCbUk1MfnDcT4VCU0rNIIj2FBj9
DEMxDK8Nn575/wHkl210CmVuZHN0cmVhbQplbmRvYmoKCjc4IDAgb2JqCjUxNTQ3CmVuZG9iagoK
ODEgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNTU4IC9IZWlnaHQg
MzIxIC9CaXRzUGVyQ29tcG9uZW50IDggL0NvbG9yU3BhY2UvRGV2aWNlUkdCL0ZpbHRlci9EQ1RE
ZWNvZGUvTGVuZ3RoIDMxOTI5Pj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwADAgID
AgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgS
FBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBQUFBQUFBQUFBQU/8IAEQgBQQIuAwEiAAIRAQMRAf/EABwAAQACAwEBAQAAAAAAAAAAAAAG
BwMEBQgCAf/EABoBAQACAwEAAAAAAAAAAAAAAAADBQEEBgL/2gAMAwEAAhADEAAAAfT+rHMRPFcd
YmKvuYWo4PGJuhHOLIU70yz1SyAmX5EtwkWxU22WcrrcJftQeLlwK86hL1c9cl6ut8myud0nKq/0
tNBNw7/zU/SLG6VI98s9VmQs9VOQtJqVsWZsQbSLG5te8Qu9ANMstW34WUh8nNkAAAAAAAHF5MwF
eaVoCueLbvwa8Wm/wVjvznZKxkspFdyGRiNYJYK92J0Kll8rER1JyK8lfYFddaXiKxyzRANiXaRV
ljdrKRT4lOyVlKpHpkN6spEB6spEG+J4OZWVu88ifNtHRI3yp38kPzTgRnWl4gE22QcnpGQABrZT
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
+GNdI8BBGQeYNbu3hSCP+GNdI8AS4hjnUHUFkUMM/kjFPEk0R5pIuRRFrbRW+rnu0Az8QypHZ3cw
RtJaOPIrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/
AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrq7Lv2PzRpoegzxSAZ0ycK8mb215M3tryZ/bXkz+2
vJn9teTP7a8mf215M/tryZ/bXkz+2vJn9teTP7a8mf215M/tryZ/bXkz+2vJn9tSBYzHo7/iXaPD
/wCset3NcRRv/CaDLpZTxBFchQtmmjE7ckPOuQrkK5CtTaVXvNchXIUnSZUh1+Lq7a3u9j3eAc+g
1yFchV18wn3D8bREutsZpYo11OeAFSAofgzhvR+Suvo+Jdo/zj1PHtF4Y74SNv8Af82OfTU0UF9H
s63hhV4cr+d9tXNwJja7izjudzp5sc5FXt00u9Zr6Jeuo4ZxW0ZEnIW2V9ShBhWDcMd/CrvolyrK
iW+kjiAWfBpVG0TJMq70qyL1hqrbbyX4lZX+Dt2A5cONSTdLRJY590uz9PFxnHrrpDXGYun9G3Gk
Y01sVYHRJPhuLrqHJa2hbylG0W1ucquOO8NNmeGJFdo+jyEZAHI99XC3E+/mibDaQNP0EVdfMJ9w
/Ga7bnJIIh6u2jIw+Elm3cQ/454mr2TWw13W70jkae2jlfVH1nc8lFNNb7zUJBGC551cxuZnlt11
NjgDQikJEpXO81jCnu/Guvo+Jdo/zj0HkgjkYdrLml1wo+nlleVHKKcjB4c6I0Lx48qWff61UMNO
nxs/xd9YWFAO4LXwkSP8oZoncpkjGdNb3dJvP4tPGvEXnq5dtBiASOR7qJZFJPA5FbzcpvP4tPGs
RRrGP+IxV18wn3D8a2gRSixD2mre4l4iLT1fVUXwRwLgztx51cyyITFcAhgOYzVvYWsbDMuolz41
TmGdljixqjZMfb21v5Y5OkFcEKeqT+NdeofEt9LZbYewjFywMajme+v0mm92v0mm92v0mm92v0mm
92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92riG8uzezCEEyt2
8vxdESF29Fa5Hi+SHyfxM8VNQq7uySnCZPOnjbxlOD+NdeofEu0f5x6t1ii37Mdco/gjHM1EZ7hY
96MpntpEe8jBYBhx7DU1qRHoWZYlOeeU1VKouoyYuL+ioD0pSJmKpjvFTNcTRxKkhjHHnUUrXKaJ
c6CvHViri/tysoSFpU7jwqcStaTCO26RvICdK/8AFqWKW4VJjp6vdnlUsS3KGSIFnXuAoCO5U5IU
eknlT7pw+htDY76uvmE+4fixvF1XuXIdhzwOyo4S2NXM1LuIjEYnUZz4wJxV5AqOqwqW3meWKhmj
UwkzbvnnIqe03WmRE6soPcK2UOOdG9fjS3Nxod52Jw76cDNXcz5njSULHpPOmKDSueA/EuvUPiXa
P849XV1tAs4YbuJY3IwlbKtE3Vw8UM6oZeWjK4z6avdnRGGTVaRrJJIPFyW8WklEqmNZ0k488CPR
T2UfRdKriOfHWPHtpJ1MDOlw0oVyTwYU17EYJJd67bqTxSGx9vCrSeVo20vLI6KOAL9gqbZhdd60
ToG7ONaZOi22m1eAbjPXJGOtW0RqTVcRxKh7tOK30ksTfBzRdvJuXCktiB0kBI4tH/V/ZqC2zqZR
1mP7Tdpq6+YT7h+KbeaIXFuTnSew1C9vbJCsZ5fxUotrbdpr3jgtnVV51ctcDGe6tn2enASXVnvq
66NBollJDSs2fZW93Y4Q7kDuqOG5g3278QhsV0dYwi7wycPxbr1D4lvoL2YxyNdOwAXPCvKm+rNZ
6S2fmzWektn5s15U31ZrypvqzXlTfVmvKm+rNeVN9Wa8qb6s15U31ZrypvqzXlTfVmuNyx/7Zryp
vqzVxd2bl4WhUAkY7vCk0e70OMjLV+696v3XvV+696v3XvV+696tS7tT3h6/d+9X7r3q/de9X7r3
q/de9Qln0aScdU+G69Q+JdoNLDHI3S34sua0dHg1c8aRmvJIfcFeSQ+4K8kh9wV5JD7grySH3BXk
kPuCgjxWyMeQYAZryWH3BXkkPuCvJYfcFeSQ+4K8kh9wV5JD7gq6SNAi7heCj0Dw2vyfykfzo+4+
G69Q+Jdo/wA49Xmpsf7SPn6zQtwYZbZy6jQpypUd/bVtcTCGUXNs0yqikaMY58ePOrR591u5rvch
liKal0k54+qrmSNoH3E0g3egksgfHfw9dC1iSMRBuuu7Ytp051Z5VG8kCC0mBKkcCv28fZTiKyS9
P4PPBj4nWPWFWUCTLND0Ay709rLUtyDAI7eKKR1KcX1c+2tsbx4HtoHjVISnHjpPPPpq6aEwCGC6
S30shydQXjz9NdB0xS3e/aIShOrgKDy1D+LvqKW4jEUx8ZQcjNXXzCfcPDa/J/KJ86PuPhuh/wAR
8S7R/nHre3VnDPLjGp1yaEi2UIcHIOihbwLHAUXSnV5L2r6jU1vfaLmFn1JBxKx+rNaTYwFePDQO
2ukxXCxpvdeV1ainYmM4xT3MNrFHO3N1XjXSN2u+06NeOOO6lVrOFlUlgNPInnTxi2jCOArLp5gc
qM0lpE8pGksV44pxuE67iRuHNhyP2U6z2sUodtbal5nvpYoUEca8lXkKuvmE+4eG1+T+UX50f18N
18kfEfOudXnQLiKxhNwx0XCcT6eVedrL3P8AFedLP3P8V50svc/xXnSy9z/FedLL3P8AFedLL3P8
V50svc/xXnSy9z/FedLL3P8AFedLL3P8V50svc/xXnSy9z/FedLL3P8AFedLL3P8VcLtSaOe73Iy
8YwMcMeG1+T+UHzg/r4bkf8AEfEQ8LevwW8c+FikR3MhPi6cf3oXN1GLFXPUEr8SOzNBXnjRjjgW
FGOK4ikfnpVwTVzcxlLgwDrIr0buGziuLdVDNqn0N7NJq2j2jbwWgn1EOtxqAAA71HfQZ7iJARkE
uOIoosyFxxKhuIp5ukRbpPGfWMCrorLEIYpd0su8GH6oP9fDdfMJ9w8Nr8n8p/3B4bn5A+Ih4W9f
gsd4vwEaSZcHBVjp0keyoel2638cCNFlJAmvP7XH7aeW4t00C2ijTU2sqRntqwCIkMy74SSLzGrl
VzD0LdXG43W834Ik4jsx99TWsIzMyqACfSK2XI0ayQwK4fV6QKsDeQI8cNu8ZBwcHVw+ypM2Syyr
vdNw03UfPLK4zVyTbIoaSKYRalCvp5rwqecbNRJ3uN5GrSqQvUUdYYwRwpc4zjs8F18wn3Dw2vyf
yn/cHhn+R8RDwt661FwAOJNdO6XH0Plvs9WvO1t79RPd3kVusviFz41JBBtKCWVzhUVuJo293fww
TLzR2400dlexXLqMkRnNFW2pbhhwI1VJeQ3kUlrH48oPAV52tvfqK7nu4o7aXxJWPBqWNNqW7Oxw
AG5mlivb2K2kYagrnHCtxaX8NxMRnQjcavd24fTEqHHYRjI8Nr8n8ofljwz/ACPiIVavbaBGdW8M
iFh2YHCo4NysaMvFWzvAccTju7Kb11pKAg8DXQ+iR9E57n9j2V5ptfqxUa3VnHcLH4glGrT6qWaH
ZtvFKnFXRMEUZrrZ8NxMecki6jRezsorVyMFohpJos2yrVmPEkx09rFaRx2z+NEowrfRXmi1+rFR
201pHLbx+JE/FV+ildNl2yupyGCcqEl5ZRXLgYDSjUQK31rYQ28vLXEuk1eCNAmqJWOO0nGT4bX5
P5PpFlO2B40WPurdTzl07seEtBIYmPMrWuS7lW2Xmc+N6PiEVa6ZpjErMsqWt0sLZ+kjPqoSDpLH
lqvMGT2ioSt1DaLJJpaSZNf2ZFF2u7a862NdsMD7zW0kLHHR4iF9tbWlSLpCm90apHISMae04NGC
GxM8cbKkroWJye7C4x6yKkbo0UdokkkWveHXlTjlitoRRWdxdTdHTdPFNuxC3f4wq5SWCOWOwCie
XedZuoDwGKztCyWFXiM0W5l15x2HgMHjUclzYxiadwkKRyl88M9bC5H0A1aF9n7neuUdp3ZEHHsO
nt9OK2ibi1WJbQZ0bz4Ru7hjkfQTU0zbLIZCuDlxHpPaSUzw9ANRTHT11z1G1D2+C6+YT7h4bX5P
5Rru0X0vGPv8OT1bdfGbv9FLHGoRF4AD4hFWuZrTcMraobmAsD6ciiyG0KtIxAsh1B9gq2dZZop1
dmTcxq3DtznsqdJZUlkjkwSkW7/qaSWUSJMowJYJWjfHdlaW0EbpCCT8HKyls88kHj9NLMsbxsMc
IpWRWxyyAcGmSFdCs5kPHtJyalu1X4eVQrNnsFXR3QbpX50NxDcMU/wTS6kMfw0rSYXuGTwFNARM
8ZII13DsUxy0nPV+ikjcTuqnPWuJDq7etx4/TUzmJpN6m7YSSM409wBPD6KaIG5wccelSahjuOrh
UdvAuiKMaVXwXXzCfcPDa/J/Ktd2i8Obxj7xXasC+O9LFEuhF5D4iFWM0bSQkagZ44jJp+UvdRMd
z0vU7M0mjRx9XZVtB0KK8gZjnM27cH0Gpwlqtr1zoDya2b0scmjgWv4Xz/28ZrxdmfbVr+CRa7zH
w2/5fRUPThs/omfhN3nVin/BQseh4GnfZ1empPwyLTcaer0fnmn3S7N3eernPKrjpYtfwn+60eJ9
NeLsz7atuhC1/CP77eeJ9FRb5dm7nUNenOcUn4HFnuNHW6Rz1UPwqLLomDncZ1Zq/wCkac6Opp/g
7PDa/JonuqZ4JbRIw5UBkryiy9yvKLL3K8osvcryiy9yvKLL3K8osvcryiy9yvKLL3K8osvcryiy
9yvz9l7laY5LFBzwsdeUWXuVG80to0ZcKQsdXN5GgeWOIyBT2nFJFtKwWGJjgyRk9X6DQZTlTxB/
XhVtPFIREjdZBPusnI9Iz6qMlxzkcsi6tWlewZqGffiHdswPwu7LKeYBp4rVjA0r6xbyLpx6u/wz
28Wz7mVYH0PMpTSP/LP2UtsEkVzCJusMcM1z8GpmAHea51jIzXA5/EuvmE+4eG1+TT+qp/nmqZ1I
G7GeP7XorgpNZ0nHfSSax1k14+nFDqnjTEI2F58OVADrZGeFdVSfUKWJBl2OAKYdMUyr2BTj21nH
DvqWbBVEXVnHPjj+tZxUXzy0nyRVhdLGqy7woWA4kVstycncL+vCo2/CFj8H1dxdJkLn01u2S1az
di6tBIernsAxU9olvqZpiUupFBSNP71Ml6OkNbzYimkjwWHf4drXMqzq7S5i0zOqt1e4HBqDdxSh
1sYkkxwY4brL66AhttoNpm1pBIvV5csZyB6at7SNjHBPGk93Fq8XTy9vD2VtOEWNxIhdJFaU4duv
krzweFRMLW9jtNyBAkI60Tenjwq/leCUzG7hMbZ46MIG/wD6raUaxmO2M+YR2Y0jOPpz+JdfMJ9w
8Nr8mn9VT/PNVvHFEkxHwjM2R1quHguujRmcHPHu5VBOJtzBrcmHB64zWjPHdBdOP+efuoSdPbdZ
JVAD1OH/ALyqdVuzGZETrDVzHOtEdz0eTQnwuD2DiOFT7mRlkZ4+sOGrAOTTXMfWi1k/RTOl4COa
poOqi3SPgTFp6JpPPHsqd9/weJUW3weHEfR2URHKhQkER4bK/wBPZUXzy0nyRVk3YJ/6VszH/Tx+
vCrmF9nve28sjSCSEBs57GFFZI9wGkZkhz+bU8hTeuslwAK6Z0qLov8A1dXVrzpa/WCo2uruKBZP
ELtjNLFDtC3klbgqrIMmjDc30EEo5o74NTy2VxDPcyAbwxvqOBRVtp2wYcCN4Ke6iuont08aUNwF
edLX60VHcy3UUcEniyM3A0qJtK2ZmOABIKEd3eQ27kZCyPjhW5tr6CeXnpR8mrzQ4bTCqnHYeHht
fk0/qq4i1Deb1jpob2QR55ZoiKXXHnjpPbQiluFXTyVjyoOh1KeRFad+mrljNFmOFHHNaI5kdu4G
tUrhF5ZNHdSLJjnpNYllWM9xNa42Dr3iijzorDmCa1Z4c81Escyu29XgDUfyRU9mCFl8aNj/ABCv
wDtK1ZsS6UKHiuTTXLKXwVGkduTirlTBJIYXjj6nNmfsFRLoltJul7h0Ok8l1H6MVvpRLcaBqklz
wDMeqnr41vOjO8vSBb7qJg2SRngaCNYTxDfi3dzpwrkcudGBE+D1OiyahzXnw7uBqylmdnkkTeEt
6eP6sPC3roqUyDwNdA6KnQ+e57K82Q/bUSXdqk6xeIG7KSeDZ8UcqHKsOymuLuxjnmPN2ppLKzjt
3YYJWmdtmwlick8als4rVI7WXx4xyNea4ftqK0ntUktovEjPIUsibNhV1OQe40st7Zx3EijSGbuo
T2ljHBMBjWtXu7QLqiDnHeefhtfk0/qq4m0/Cb1l1ejNDfRiTHLNFYU0A8eFa5YQ7d9BEGlRyFa9
wNWc5oowyp4EUJIoQjjtrRMmteeDTbmMR6ueKDTRByOHGhHEuhB2UXeAMx5mtP7OMYqJ4oQjb1eN
R/JFSyQNonmbdI3dUW179Dc3Mra01HxcHnRt94YusrhgM4IORWt7qSZzdC6ZmHMhcYov0hgTLLN4
va4x9lCGCdoY9K6lC8C68n9dWbz3Rma3lMvCMKCdOP60gMxOLxrw8OZOeH2/ZVxBHeMttIH0x7sZ
XVnt+moYF8WNAg/Vh4W9fgtjYSnXHbGQwE9WXrcqkvcybqKzy8Har68Yx30zps/TNvUQB26pDemm
hubXF0sgDRo2epjx/VRisbPpBOpkJfSGQHGfbVvFaWeuWVHYq76dJVsEVdWOkyztcuzam4RpUE5W
WaxiDb6KCQo/yuHPFRWtrALi0FoJ968nWI4/2q4DW3+4jkSJY45AwYty41C11CySPb6UtkkyGfVw
pS4AfHEDwXXzCfcPDa/Jp/VU/wA81WwIyDIOB9dBwgMjuU3BHBfTSEsI13JkyB/yqVopidILDKd1
RqJsyM+jGnhSFZRIG+yoc7opuGJj09cnvFWvXxvgx9WM0vw3wrRb3Tp7KuFjk1lIgx1L6RUuq4Pw
WNXU76bXOqLq0qT20R3VF88tJ8kVY/P/ANK2X8yD+vDwtpOePZ4Fu8HfKm7z6KubhoBvLhN3L/yF
Pbs88qsQcvKSRjlilkaPeSCHca3OSVq3jQPBuF0I8L6W091QvCmgxIY149hOTW9Cssu932sHjk8/
opTK8yEDT8FIVyO41HlXTRFuMRuRlO41KpErbzTkl+I08iKO83lxlDHmV8nGaSMMzBRjLHJ8F18w
n3Dw2vyaf1VP881JIvjKcit+Pzmc1jI8Td/RnNKgxoGezsPOkeFvhkI3enPVHpoalRcfwLioCGwY
eC11dAxnHV5ZpTnxU3Y9VFTp4roJxxI/9FS6j+cxqps6HBOcMucHwRfPLW/mbRFGmpmPYKs7TZ8v
SNDFmYDh6K2dBIMOkKgj6PiG6gttmw3MUkxkDvKK8y2v1wrzLbfXCvMtt9cK8y231wrzLbfXCvMt
t9cK8y231wrzLbfXCvMtt9cK8y231wrzLbfXCvMtt9cK8y231wrzLbfXCp9pbRghsdUYTAfVmvKI
/tryiP7ahgYhigxkU/qqe4tL+G3i3zLocdtedrb3T/avO1t7p/tXna290/2rztbe6f7V52tvdP8A
avO1t7p/tXna290/2rztbe6f7V52tvdP9q87W3un+1edrb3T/avO1t7p/tXna290/wBqiuLu/huI
t8q6EHHNPaS5Ec0WhtNJcLHJPInFd82QD8av6quf5p/xp4Z4Cu0EbSlsD+dzyI9FRC4dIZnHiau2
tzv03ucaM8fxov5mOk+SPjZ/VVz/ADT/AIz7UlcQ7TjP+2TOVRf4T66a5ktd8s0aDQJVG5Yf+9lX
UgiTfNfpOj5GdAxnj7fxov5mOk+SPjZ/VVxBeXawy9IdtJ7q84pXnFK84pXnFK84pXnFK84pXnFK
84pXnFK84pXnFK84pUVvZ3azS9IRtI7qj+SPjZ/VVxJc2kUz9JcanXNebrf3K83W/uV5vtvcFebr
f3K83W3uV5ut/cFebrf3K83W/uV5ut/crzdb+5Xm639yvN1v7lebrf3Kilt7SKGTpKDUi4qP5I+N
n9VXP80/gjgMAk6RwgOf2v8Al3VfyhHk6OYc3COQLblnh2013dRSNBJObSCQN1Vx/wAfTitimCNp
m3z/AAYbGrq1vJrXouizYhJJOqetUUMVtGbhpnhPW6vBc5q7jVYoUtpIUlOo6ixZc49tdGlt/hY5
iJsfsRdj/aKS96PHuGy6hn6xjzgED7av7g26dDs2dXOrrHAqRbi0NvhQyt2EeCL+ZjpPkj42f1Vc
/wA0/glkni3jyJoJbsHooSyRlm4Z63B8cs99dLEXwmdWM9UN34qCWRcvASyHuotPHrJTd8+zOaE8
cZ3oYvkt24xW+ljOskFtLY1Y5ZqeSSEM80W5c960qyRdVY91hTjq91TQrHmOYkuG46qbcB+tw6zk
8PBF/Mx0nyR8bEd9TW9ktm0DSs4Ltx41+b2f7a/N7P8AbX5vZ/tr83s/21+b2f7a/N7P9tfm9n+2
vzez/bX5vZ/tr83s/wBtfm9n+2vzez/bX5vZ/tqO2vFslgEiuSjceFKO4f8A25//xAArEAEAAgIB
AgQGAwEBAQAAAAABABEhMUFRYXGBofAQkbHB0fEgMFBA4WD/2gAIAQEAAT8h1sCAvNg64tctq61/
aBRgShTQW8riBRYKGbQ21KPV0rZ2Gkx3/gvmchs4FtX9x7fmAlVkwtmO8CFsB5JthW1rfZL53rP9
FRqVVRdDhpH43+7xINNhsz/z05JQBXYvGSy5bDWIQoVLeaRrMyBeZlp4+nJNVgeblImMBjK5lwtw
8la8CPVpgoYbxFohcHDXPMz4fgpvbWaNtcEFRKykFTt2NjnMNQoVR3QmFeZl/JJqo6/OWHNQ14kM
F10LNVWCpauYGupvcUl0QMOwAmQwPtWl81LF9CJFiVavNGvhH66i7wPEO3gQ7ZSn0CUwZzvtBO2G
ZRAJs1x17TBVABMMB1XNFPERqoYlDSL4ffiYTdMlewd0O8XwlJF0OWySlOYWLyNFStXYqUjVwW0S
UXXdFaUzM68OEDZycIZI0lXQ45JbA6zIURrIauE115lMKaPh6DJ4pd+YLmGkpzVPj2liG3rOtVlW
98IY378DKiQBTniPeQGkAInWCJOtKmXXYW1oOYziGKPQhY3zxEPYxWwjcINmcMrknC0x+Ob1VYgp
yA6yKSyNasOZauYGupvcUl0RWMjSa2poYXh6+Fq5ga6m9xSXRMpmQi5diuHXeJ9K2ZV6DswlVmX2
BA6sLgoYbxFohcHDXPM4R4Qvki5GVihHLs0cEvcOkFlHUFnjCCtZZ1ZtMOAam1Maau2lwjYzIt3s
LT1ljo11YgQAQZDb5IWTiGuu8NhZXkaeJh5vP1ccK+Gdz5rq08mavr/w7QBuN1Vu43AKLYJCwCxe
nE3owBk8RFflFc8QI2wXVJWHTErXaii37QyNqOlTeLBjsQE0W29og4ZZDObQur4mbcYbLFWxXWuJ
eRoZuCeFDHeWMNF5fYayza6lzE8Am7BjaKHUrh6KGnisJmi0bxblp6RLctLoGnXrUfiA0jUKmrqK
yOv+kpZyuo22+NO5hr5kfTsXEHTVNcuYebkwao6NDocSmysrImMaylrhlmjkaqq64NdVFIodJidE
oePjgjRQU6bgcNQpUCwaLkKUqKmhKGqlnUVLDJBZXSVrFBt5Cg0+CDaZv9a+RnPcTVVcYKHTqm6i
B8EEKwDkXpzKv5hoBetzbx8UMk7yq1Ep5DTJdoNK5Zl/DXh4BFeNMu3GUinTeLA84uo0693c7tVV
UOY28pbgbBrIhZKHUrh6KGnisvwmMlbZDWx4yh1K4eihp4rGMj3QsWavjeJqTPYIhaemcYMRpd9T
eLBjsQE0W29pQfxk8dE5L0hGnoUrKU1u9r6xrYSpCwwOnJMwqzF2HA2Eecxww09YJDgCglZEtMGC
7q6x0gCa4OCdOrzUouHfoGPDeKuGhXNlwXIqhg0TSzgbaeTNXq/+UAxqBYkIRosE0AaPgZRClFjN
Fgg8MH/JSECsvNFrjaQkIVBBrK741MQvi/DBGAMVoDas1M6vOrCfEUJUYWi3nGv5gGNQLEhLZcCB
R0fBuIUUL6Z9DvpNY1Rau5KsKou0tt/mqFKFJng35dYCNxewdI/xyk+L8csMAh2wdI8/Grw9APBa
wMpgiUdOdZsgVqOUHSPT/vRKgte0VTQuyKx5F65lnPQZtvOv11zanvoaQrxazd4x3hc1Yjh/kdNM
Yly01rqM8+jNmkwpEqxuhWdvbLSpMENILdy3UQ6tjqYU8iJbKZBWljmtxpUmCGkFu5bqUqkYiReZ
xH4RXtRze0rt0mDNauhFywuOkZi0EwhQvv064ZTnnvWVb31j5MfBZBY9C9ZmpkqPgbPV9GXGCqbq
ME6TGvO0L0FbeVX8Nzb1ZIflTebNYiy2vqqYHJQFB3j0LE0q3yuqTF7lbaS0GAWuq4844kIAMOCd
W7iiWRKlfHIy1XEX7YsSU4LwdQsWg/bFW3poOY16E8NGQpjnDp7RmLQTCFC+/TrhlFj8bgQybNVU
5kn9vULZzN4PCbBsKzZL1es/Png+misN7PepUoxffQ0Zq6lzieTK5a41cyiVC9ukuOP1L1kdoyxq
Qnmh9X/gnMeMkQGTOPpNPT3DVvVWHJzzHGETeFtl3teOn/aLtmo7TLCYgyJxQQvfNXqXod+myq68
m9Ru3WQUMbrUoIsCypzng9c5g6UFySF11qqNLfWKplwA1ecuHrnMNjqJ6EvsHzENkaUHQVgesxWK
qrdp2fM7Q2OonoS+wfMTRzrQnQ5unynThiqILzz6E6Sv1ZFeBf8AlQO3N8N0gZjNpMLptoHf0MRd
tGRezSq2cyii1NnwclFBvMvcPLMpGK6vYhUUIlFLo0RhUENazrz4qyykqdBC9lVWXMtPhiVEIVnt
0j84hXVLNt5eSXOTGBezweuZlSnu3pljXe745jLxDtFuttuoG86ybLob4uKK/wCCsxdWc1AO3N8N
0gZltaDtgOSqrLmMvEO0U6WmrmP2KqNLbpxywVhYb6A5Q1qboURUha+xusTGEkmaKHRXyRSo9Ktu
quNP7lHtbwdijmtRxNdggjZBdgmOBBWt5c1qr2u60S46GPgrZcpaVOghWiqrDmNVrlOrbhtqv+/u
jWdEnsNfEAxqBYnSFCVUNa9j4AGNQLE6QoSqhrXsfAUJQYGmnnv/AFaFSg/kwNf92Vb/AMF42mqJ
PYn2nsT7T2J9p7E+09ifaexPtPYn2nsT7T2J9p7E+09ifaexPtPYn2ngeCH2mdJ3Lr496V5+Rn6j
P1GfqM/UZ+oz9Rn6jP1GfqM/UZ+oz9Rn6jP0GVG6Le7v/FUkPUPCdSepk8ekdLjgkSfopv8AXItP
0U/RT9FEqlbpAgxZV4T9FNyKlHDdfOCnrh8lDXdgSyrwn6KEolfyhw8Ew6G4+BdGCmNiGF3/AKvQ
/f8A4vtHaOAZxlxk5FaqL0ojS5dHQaozNBs5SwS81iYRHBVRo+DU1Qq34C3sWaigWTeiysE6YWlL
4YxHgHFPL1JuswQjSDi7dyZExLmQfMF87sqV5EjHOhHmrJ7onyxqH65ghHDXQPSHzFSgsvqD+fgS
DLvdbmOo1cIehiIcimncz848UDjaZPGBcBiVfmpTiFadkQHey0aliNwWHT+Pofv/AMX3DtNMMion
gimfJOq0sYdGLqwrUN8PjEM8UI86ocs9WAMNkGKIUI4TqVii06RFTnTFPOeynd4y1Sdhm3SCJUQG
w1FE1RWL1R6gNodn+fhFR7t2uWFlZoHj8pSgmHcKPSJbRrB0QCepH+mJyShR4PA7xIGQKAKv+Xsv
f/FsQ1wIPdPzPdPzPdPzPdPzPdPzPdPzPdPzPdPzPdPzPdPzPdPzPdPzPdPzPdPzCa9lSEQeX8TL
nwJn2XVb5P8AATCjkdM4jg6V1K8rVWrP5ey9/wDF9w7QNq3YI9c9YG72Rry48ScYD5OhvVMGSTaE
6HVg+TaHAGnPjLxFIrey8YiNKgao7VvwlfFK11lV0jSuC9diYDyfPnkaccQnkWySnZ4vvDQZBzsP
eu0ThqKQBYGuaYDRUTidn8vCa8LIlZR6oJemBb9IYivbeYd4s6Ezq2Am9zrpt+MySwc1zGqmxi7r
HL9ovPXaOUdWX7wR+t1fvUUi6Vbo/gve9f8AF9w7QiIgiRka6tsRCxavoAKl1aFqyCO1teUtoCNq
1523FmGUOu4davPWCp9gIRF6lTBOeL9KCE61VVRQ9ConBxkt6+sshUidKK6FQo3hOYtfyjRCLgjA
eFVR95NFKEseDnwuBBXO8mU8W/5eMZsL09QYzWinLYptiOM9gI0X0hirYLdVsoNt9uTf2iRnRBS5
7LmOQ2roq5U3tykHNM60XHXR5fx9v6v+K3+iPwDFC6mnJKHnMLm/qMMMMMMMMMrMQ2XifgZvINUA
HHxCrgAfpO1838TtfN/E7XzfxO1838TtfN/EAKHSBPSKN18/8TtfN/E7XzfxO1838TtfN/E0WLyt
/Lt8fb+/+KRkECXEHQrlsYeH84IIIIINou0vAfzYgIgggMF3xD4npf8AZYvT4h7v3/xfcO0rcOG1
TRarDtlN6XUDEtz6dTva1Kv5RjFXpYUHeUS+3AkyLYDDlcF04ULr0F6CVJWwSOBb+lUy5lV3htZT
dYjm3Tc1D9kT2RRwKDpvEFT8BHUvA7IcOG4Gw6Gc3znM2PkcPAwsBUcAeKX6/wAPHp/97zzM/X/F
9w7Q6dUno6XKTPiLGquXbnel5opAAamPNkAwVVq9/OHRigqsrfnN3tKgCl0RRriXYVrBXvMVs+Zr
vLpcZuEjWwPGC7uArUPYhQZh1DR6HyiZFMQ6lncp8pUcOA4at3oCEt+jUH8PHp/9nhFfT4vYer/h
Ds1OynZQi2yH9FrE/Q5/X5/XZ/XZ/XZ/XZ/XZ/XZ/XZ/XZ/XZ/XZ/XZ/XZ39g006Bx8fT/7Pd+nx
eIvrf4t6xDZCfodvQVzctii/nJWql6Zjh6Act6+cGgyxgdalskw13YU7rcZKEsCoUZWzNwJBWowy
7MVSzSGiztBufQEOqTAE1KeOwGIrA7gPyV2g2fx8en/2Cx2+i/H2Dr/i3rENkN9nrksAVFkyKwrF
Q01gfKIqiHdNl0xmWVHoUBtfOaZkxNmV1hHRbgHtWAWI58oeeZo0gMeTGJeiKXwgAL6aU2gWXYIs
Cw7rQVQaOvkXG2AHcpyEW74xCcggTQe38fHp/wDZ7Xx+Kx8V+v8Aix1X1R4I7DoiozDblXW/GDsQ
siurB2+ZMqqwU7QJPDSASz0mUJToI2/bGYyxYOT8d+CqmKYG7JTAd6z1NEz8YjPVCTYCxQ3Eoi89
IeR8fT/7Cb+Pu/H2vf8Aw7DBOztLmi5qcKwhCGwar5iAtUPBVQmyZhcbV2u+3cqnCWyqR5mtRDaU
BXUSF80LJDBlmOYIQ6KRD40BVn15r8tH4DV5SoYGqWCDRwLFGkZ4Rn0wthMfKVE5yQLx0WSTu/H0
/wDrRCHiDjrhFdj3cGfl8TaxXIIQO7DVXRBQHT/BqnjzoZWbY7uZvgEIIvWSzziKupKYxQ+ZxElJ
Q7wUck3VOnG7oQEKrrsZCgvGq61BhVCQDd1i8sS+cy0qJMVNdYEdU6hdNeStDqNp87HbO421lITa
DMPTfqGrO8I7m+ssmECAFLYQShZdyxSUnPISd0rk6CCK9G7EbA6M8ojnClXf9KFn8XHp/wDY443S
+j45tv8AxEPuFF/hRWFpbcZA173MNZkL3RsTwgM7wygMTDY5nb486Es7nWePndBTCnaLT0C9wQ35
s3DG+XpYsp7koHlLN3jPdlWG5zOgrXMG6wFjg9XsBHK3oqH3deAVDOeLK2JengmCSZtPzPujSRgR
TlgHyS5F8tbajIGXBBomAboP4uPT/wCxzPp9J7NSjIp/4HeAvFQf4dX0zfDWAMrrZqCbp2ou5CWH
o4gh2q+cuf6XkrqTPeLtgmfYIWF0+P5RC43bsqK+qYKuV8hCWrvFrbzuNVHqXmzmh8tui48c2a36
a+qftfyiNpxpbhn5p3NEbOa8ozfOtbnXaqiK/vHYTtm/JZ96q/j6fOy65nBHlKZ7j+Phn95n7zP3
mfvM/eZ+8z95nvP4lnu/SN7PcCXzxPefxNj6ZG2DaGZQLViHaRa3c8HnC3FAcn/fCJTRuwu0BQln
mUVlDLRyDDjpFIk0kKWg5aOniQ6+PYVXEY2LDXwoHs5Sr0hYeIsJCcZIpN3iYrpUp1i4P2lBMA0z
rMRs7S5cAHUf5uPT56z9J7f1g+2kcm6eQwxwG6NQauh0YjDozw3vT0npBjcZC2T1Iv1xxuL41EEX
MOSeahAShfM3V6Ec/wDCxHlW544qDAxIHSm57r1nsnSU6KsKVgvkxyTAr2K/77MMLa1Rah3jmJHY
+ByEaectRfcvpOpMVBbYS5BoV3SyGvhclyqSlNTJ1I8z4nkKDfDvMiCUpNMhcN7YYdMCpXiB7i3i
iVARUTSvTakrcyO/3Ct0rbWW5c8aceI06rKoWzDVy+WfzHHp89Z+k9/6xMB6SXBSaKInam4d2ah/
5iN5UJ2JRjPfrHHJtrd0QswYCvEao6RbfJ2AQuLzZmNwK3n4bRe4O/QpX6wNMF/FKKtWP1ghyijK
6OK9ZmpgdDF6s3dwNZ0LWW8YZczXfWdnfCPdes9k6QQGgvTOIvD0lP8Avny5KrbUJrzjCkFCovo4
gbIVZ0KuiWCqNNeV1vxg8IOmWGPDFO7ZidiE/MQwHJiPL4wIUYvB4RDG2LhmuT9vjs9ofea2dSX5
wwcJFpXglfk8G9WYcUBB6PCLpdj3QBHufH0+es/SN6yNmr3BWVyauAuzxYQnvlS5QdI70GNhzupu
AEJZaCD0nV5gdmcmi55vyKhx9LKWIFWdPYxfNVkScMx8iWbrZTue8dIWJVqDRfjk84KrsRV1OaS2
4CEB3Ih9ZWcH0aSg7XMV9WFyWNpamTMHmcPaOK9Dw5ir694XlBpKIAqrK82FOGrmWItMpra9mgvS
GQWnbxej/wBMN1bpDxDoeSLrtNss7v6wFxf7dYBv6u/LnsTIf8dr5walhYtoo5mdIT7T5y8m4bPz
nMHpeb8p7H8pSdvLw6qCqMe7DI7mfAEbOjfeOkgLbp3zD7vPRCvP4+nz1n6Q1B8adCEEjrMQm7rH
VFzriyyue6DiNy68O/nKR3sck1MYNwKAmnUnBMbMw2DUbQSOgY467Rcs436BKVlKLq57h0jwhAbv
tPIYmt9vQwdypeZeQ6nDwclkobLzquOjmaT7w4vnhNUPWaFI0YZ6wW5mwCJRqrdZbY985XwlYAmz
Yrm60LV9Y4duD0Cv+m9Yhsh9PKawV36MArdGlhZwtRL9TpmxhKb7S+PFTXZt0TC8Ru0F6hrwlIPS
qc58b1Hh04P4w+OAIynI8ao2HA4uEih1VUN/VK8UpBl9E5vwjDW3DK5a82NKQW2D4/xcenz1n6T2
/rDbGULEpOcEgLN+CZy48nCKZnNeAEFtvDKtU1iNbUeTwgNnghhR1JSdFON5pKvGOYYLcO9rEyWs
DRTefKatkvpdPzm9N4+GlQOeid0jb02TKA2qye69Z7J0jxcWmhpV/Mf99UqJ4kY2uDJFHYRbF29R
m7DGjZade8JarXNbOKg7J/NbsXmZK/4LqJsiD8vLgWdVTccdNiudS+rpFMKWQ90bIqG4EcvjGWVQ
AE7NpwkILyjrlt9b1KWylo8X+Lj0+es/Se/9YgIDu6kCOUzpi4scQWnKz1lwWhm7wJVlvgNJoOOm
omsgaC73lbI2h3vPzhIyDxd4PnBgLXBz/c1O8dcDb5Iygek3WoGmojFFWREXbPdesfh4kAMscZbb
LJQOvMvefXD/AN6pUo+7KW/OeyPvPcn3nuT7z3J957k+89yfee5PvPcn3nuT7z3J957k+89yfee5
PvPcn3jGgQQpRxfSfofwn6H8JbFO0M4W7/SA6TkrRy6/u6dOnTp06dOnTp06Z+yRLHDqPDYBU0lY
iQX8wCqJVf6nqP0nvPX+WWb/AE8l6uvGYdamQ8h1ndexculfy9m7z3zp/res/Se09f4pBovtMOS+
B7yc55YjNNW7GUcXm4f7H6GhhDX8fdu8986f63rP0iXv3iZ7lnuWe5Z7lnuWe5Z7lnuWe5Z7lnuW
e5Z7lnWU1NLtnvHT/W9Z+kxXeiqvU/T5+nxUCS8QyVl6ViDkPLMlZekv0+IbPyz9Pn6fP0+fp8/T
5id5FVnE9w6f63rP0ntPX4VbOGruCdDN3DUgESyr49+c8w4Z1dSWYy4h11l9aI22uVNTKOvuZEO6
RIZErWA+DgZ7yg2gjWDyX68GiqgHjoEg3xUWNSjzhIQPtdxnk+Hu3ee+dP8AW9Z+k9p6/A0JDF0Z
8Gc2QTMCb9i9FSxcx7eBXS+8ynNLZKfSWzlbh+4EAxGMc7H5EWZEQCV0c1RB4yWZz49ZqVukSNes
bIlN+REayhpI0F6+Hu3ee+dP9bsmSWJ4JK391a1rWta1rWtan4UhaMjsD/5z/9oADAMBAAIAAwAA
ABBzjTzjDCDjDDDTjzzBTDjTTDzzDjzzzzzzzywzzySxxxzwzxwyBgxwwzzyhwywzzzzjzjTzzzz
zzzzzzzzzzhRxAQghwRQSRzgSiAwCADTzzzzzzjzzzzzzmEAGFEMEEN3zzzzzzzzzzzzzzzzyizz
yRAxRb/+T/Xb/wDU88888888888888888o8Ms88MsW/6ceoU/wD/ADzzzzzzzzzzzzzzzzygCiyC
hyRb+ieFN1/9/wA8888888888888888oUsMMEEM290+4U+r/AN/PPPPPPPPPPPPPPPPKCOMFFKMF
qlPPPPO/V/PPPPPPPPPPPPPPPHOLMPPOMPFqlPPPPP8A1bzzzzzzzzzzzzzzzzyzgAAAhhh6pTzz
zzj9PzzzzzzzzzzzzzzzziSwAjzTyTapTzzyqH9vXzzzzzzzzzzzzzzyzziDySihDSo3LPPPIxd7
TzzzzzzzzzzzzzzwyjjwRhTxaoM0GuyEinjzzTzTzzzzzzzzzzzyzByyDQTyr9OZ+Tg2/wAg8IA8
88888888884goYUAUUUWqB/MPuskq0c88888888888888MMs88888ohXIOMIIMMM088888888888
888888888888888QwwQgQwkU88888888888888888888888888E484kw44U88888888888888888
888888888UssMcscoc888888888888888888888888888888888888888888888//8QAKREAAgEC
BAYBBQEAAAAAAAAAAAERITFAQWGhECBRcZGxgTBgcMHR4f/aAAgBAwEBPxD72dChk/optttyLlYq
5xQrNxN9CZATXQjMa1/gk2hDmKLbEjlscxNV0GvVjdc4KZy4lDUHkTCUKX/RKTiZ/YmpSTpuO+Ml
8b8k7h3CDqSdTuE2VMZLhsubamZ72Kvmy5tjws/OKumy5tmZFn5xV82XM6zGqnhCOaCxN82QjlhG
lNKaU0ppREhSzQ1C3bFXDZHsEikqsysnIKv/AAO4EpOzqJFwlWmuKvmyITk6E+hSVTmW6tSjifY6
k+xUVwZ0maYq4bI9wsSazLwqEBpKkPKt/hSohPcMbvFQrqOm0qxZBKNH4NH4NH4NH4NH4NH4GEon
t+GP/8QAKREAAQICCgIDAQEAAAAAAAAAAQARITEQQEFRYXGRobHwIMGB0eFgcP/aAAgBAgEBPxD+
2AcwUXYfC7mXcy7mXUy7mXcy7moxuBiK1JzNIRJSxInojwD3L7RDEg3cfafrtPB4rUnM0ABDuBxH
eaACDboJRAX6lRZhTweK1JzNDCHYuRf2aErmEA0cYvmEHeUMbGjuhgAQGtNrN72RRYkz+GfoQDQF
HH4rUnMqf2ShgaLI0RPdogO7RZGiZ1Ym6ji8VqTmVufXlvhQOzxWpOZW59eW/FHC4rUnMrc+vLdi
jhVqTmVufXkGDPYWHflZJ2GJzLO37WpGZW59JsblYhYhYhYxYhFzhNhuCHEnEoVmTmVufS4iiSUA
y4s1QYwY9sRgtyvyQlYeyRKScAQJB9YFFMAYiL/r8TSCBrUjMrc+lA4VFG2t00cFxpqCYcFGwcFk
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
459h/wAZ9h/xn2H/ABn2H/GfYf8AGfYf8Z9h/wAZ9h/xn2H/ABn2H/GfYf8AGfYf8Z9h/wAZprOT
sdDjZi+V/Q/VvYfLDUMsxiUl1vPbf9Z7b/rOKrSs/SbxAI1s5f8AGBBRdDV/jNDhr9hntv8ArBVC
8pn/AJntv+s9t/1ntv8ArPbf9Z7b/rORnHjaoOGGe4eH6t7D5Z7P4fgjdn+XauGB6U5x4DsUzWIQ
NjdesIPrI3CUtIseg0YvZ4ePErCHO8SMCzibCAvKXXrnARmspwFRCXEVuIBUw47EUcKiLCy8q+y8
cAOaVWpHg7QKFuCORrIZzm0DXvG08dReQOIs1sn4e1ec+2eH6t7D5Z7P4fgn7ACdB5fUKHjIq7s6
FExAFfGChp77CqYYpp3mw3ZC+3rUmbWLqViCd2D6ZqBgS28XlI+mB8zL9IbEoKdGafGAho36t+h4
x7sE4rRhyCCY6wDgD3vIDjYgpJYxpgvB+HtXnPtnh+rKUxFfFJguPJIpvs1NZ9hZ9hZ9hZ9hZ9hZ
9hZ9hZ9hZ9hZ9hZ9hZ9hZ9hYCUaqE45pF1inCtTyE/8Azn//2QplbmRzdHJlYW0KZW5kb2JqCgo3
OSAwIG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIu
OCA1MDcuNSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+Pgov
TGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFt
CmVuZG9iagoKODAgMCBvYmoKPDwvQ0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjgyIDAg
b2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEg
XQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4
Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoK
CjgzIDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKODUgMCBvYmoKPDwvTGVu
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
OWMkRL0N8XZkD6E03ribv7++/3LLcWyx5TjYcvy/fiPncgplbmRzdHJlYW0KZW5kb2JqCgo4NiAw
IG9iago1MTk3OQplbmRvYmoKCjg3IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3Jt
Ci9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1Mv
RGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2JqCgo4OCAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAw
LjkxCj4+CmVuZG9iagoKODkgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JC
b3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJH
Qi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAA
AAEKZW5kc3RyZWFtCmVuZG9iagoKOTAgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5k
b2JqCgo5MiAwIG9iago8PC9MZW5ndGggOTMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVh
bQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4
Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/
RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89R
vuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7i
lPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq
+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1
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
b3/529vP98tT9B898P+H47UrDHUtV3qaRu0fs6//+vuyb3/8w0f6fSrbX7f2h4/8+/I6NW7t1dK/
b3/aWvq37U+Ju0bq857tr7S3lv+Umn5p6S/Xv9R5T/rL9qf5L3X/w//+t//1OwEo31BVPKPYmqWn
XqP7RzJT2ugqh2CPRKEJcyQ1/eGj/v7V94uZ/IeP/hpSrvOf5hD+8FF+v5U/fLTfbxU29S9/0u9/
QQDzumzzv/mPItX/kHyLR3/81kgGER5TLRgj6T8AM//GSA6qs05rbYwkg0gWU3+ejPYXo/77J8b1
+s9fGZTH+RL08brpmLwes5n/PC9b+ct8rP6C5T49Pf41lqW6+sLy/ockFmf3u7p/cj25/OsyhEND
aPXfXo3yZ71Rx7/AtZLN/Wtc5wubi+utGOtk1lN6XeZ/m29Gen1nJ2+8QK93+r6pXKNIalce0zvP
uOO5VDdhlbftjxr1fOte79gcataoyz83ak2UrM/2vzRRspy4vk6U/KdS9Pb/WUxumhVtvvn7nCt/
1fjBTIPKm17+f2YKzBPvv4RLVq2DJy4vOczZO+WfGqvNXI9S9QRNvFYI8/Xv7WqkP24Lmv110GqC
R8ikcWGc9vuuzOuqf9Edr/8mrQN5jvkfjlZeev/aeJUV8zneXDRevVJ9LkPxJrKMNl61pHUqJr7G
9BJei5cx3j8Y100SFRLULSXxMqc5wPRHesr1FsXr/axTfpnXlHWkqqtfvJtJxbf+pXczKTrg67u5
JT4wWsb94vFduRbv9quXMNV/eXlI9Zvl4c+XuJnGpS7CfH3d2us1Clknv56vqa7mH71u/PFe/5pH
FBD+kZu+rB91/pb/soL5uuP1KqfoXa/CpMw39q/1z371/0QH/1A0CiD810SjWJUvM/TfzOzkhen6
9c273tz1zbuXxe2PHuHBvIsZzDsb0tvvF1iT/K/XnK9Xb9dw//391xu4ERs47wj/P7YmMfAKZW5k
c3RyZWFtCmVuZG9iagoKOTMgMCBvYmoKNTIxNDkKZW5kb2JqCgo5NCAwIG9iago8PC9UeXBlL1hP
YmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8
L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKOTUgMCBvYmoK
PDwvQ0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjk2IDAgb2JqCjw8L1R5cGUvWE9iamVj
dAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5z
cGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjk3IDAgb2JqCjw8L0NBIDAu
NQogICAvY2EgMC41Cj4+CmVuZG9iagoKOTkgMCBvYmoKPDwvTGVuZ3RoIDEwMCAwIFIvRmlsdGVy
L0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicdL1Ljis9k7Q5P6vQuAAlgnfGMnrUCxD6MqhsoGryb/8X
7TGPYGShv0K9Ek+KpNONVze68/hJr//1779ex+t9/OTXOMtPf7Wzfb//9//17//8j9f/9y+91v/9
9//z71h/eP3+Wz8a+v6fL74r739GIesLf/1///3f//Hv/3j9112us/f/3yz3L1d2CXD81PNI5+vv
51ek85w/9ZW/eea3ZFJppO9/z1G+5fbx/c+ZxvfP7zJ/ztfnNXv+/vmdalNd7fXOOa2fnmOJlef6
8+dfP9JqWKlq66G/lW/J/VXOruKU+Lzy7F8dOpnOHHlO/XMUtxrpit59rpKXAO+UqzIj2juN8yuQ
hH7no35/RmOcoJ2ff07W1NUSZWr5+LkK7LlLNqoaJX//uySYx6pIks2x/uHzb0l8llUJDTnb+VPc
Rr5/3HxS6IUcqCxKQptUgZKpGPWHSOCCtOBFM3YkPw9c3Y0W6jWl199P9YJxaefXqaW4bw0jo9Am
MbJU3dQL0lfMLwh1yXmWBc7xFXA1aSVmkhyrtU2ISgnr67e18+4DK0EfyJH8avSHXrA0Xe/CDvUv
VbOAyVH9FzT1Q4v2BXQuham6L9Juir7uPUCKy/HzpdEcRS1lZ+OfBUN+rWoXOJZq9tVrhP8aIuVY
GlQzzrbkiB6ATDSeFDohB+qKspYeqQL1UjGKD5FABGlBimbsGH4eiBr/7z/tEEsr3045Err6ypq6
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
1tXvS2sLwr76RdElyAXhx7L6pXVt58ZjO/e7BbygF5TLg1b50k9Qzt9TfpaDg1wQrg9S9Us3Qfg5
/36nliDkgvBjW/+ldU2/Ub8n/KUuZdCDcn/Q6t/0c/f/q1Kn0Auex4PW+NJP8Pycfr9XOTfoQXl/
0Nq/6efu/xd1mIMchB97hC+t/SK8/0PCLuod5ERYSYMvUs/WuDYM43gS/r4qfJCD8GO+fWltQdhX
PxHmK7VpRTLldFF+TLgvrXRRTg/KPkN0nwIflPNF+THhvrTyRTl/T5nz2oNyuSg/ZtyXVrkolydl
zhAXZS12plwvyo8p96VVL8r1W8o+FD4oXxNwf+x4v7SuCbg/J6BPJ91nt03rqCn3i/J40Bpf+gnK
/XvKnN0elK8JKFPsTWv/0k9Qfk5An3u+pXzNwP140Dq+9BOU928p++y2afE35WsKyiJx0Xq29msK
7s8p6CNV99ltpXxcc1AWjZty+tKPKR/bt5TZGm2Tc9NNcX45HjqjL60U5xdfBV2ftbpPSCvhS2V0
lAep8k03d/e/S3h+VUy5XJTrg1b9pp+7/4syh7juo9eDcr0otwet9k0/d/9fKfuA9KDcLsqPKfel
1S7K7UHZh7juw8ymL6EpXwfQ4zHlvrSuA+ixHkB9G48/5tWX1rgeH0/G+Fq04/UfMTY/pGZsvyg/
5tWX1n5R3m/K2F6IseTG13J8m1h+t9u/6+7Xm/76L7mFoXK8n59vf/hPn+39X/7X+19Ffshm1OTx
9PkWrd2KClpDWoDSZUHaGPmj9fb8jUI26/WORuEHRej68vxhLc7Nxf94++//jgGm0krVALX5/ehF
HrF4sDPKfo9ye/+YC8H9fuV/nxj/8K//2/+Rtvz+3/7f9z/87d9eOy5I/l0db/OeP//trWBVfu2o
/vZ/vf/ht5lE//1v//cft/Snv/0/b//6t7ef75ev6D964P8Pz2tXKZO0tNLTNGv/mH39lz+Wfftz
Kn/6SH/cfqs1/VlXbStpbL9t7U/p+OP2Hzf+9S8pb395/dtH/mP6j396/V+dl7luf95+m1evx/4l
vdCo+5/+z7/979+NWHVG6+ujKS5mzbkf/1hEQ9GOygVmxksW2zWJgddxucCEGPgLbLx+2l7/XP64
vfraWvrLPFWX7cXfby9efVNOXKVk3vO8S8Qyv+RNv/w2ybVSuDFvaejvrocLt6SW8j8c9PSm/CeH
XXQE+jLsTK/5L38a+Y9VDEoUMc4pFQ1iDvf1noq/9PpspIntP+RQqth/jsP8FZYswZXyehG2CcBk
a7L0l5Bt2STNDF9it5vJdANZfrvGwT+X3xa4/tEoskLM/qlRZCWFfY5jS8jtT+X1kvEepH8V1I/3
anL5HNj2LxpF2fxWIZAXYLwu/xiCrHi/f475PA3+X5g3j+m3+ZL8LqcpXg39HQkOK693+vPrDrBI
bv8GAHr8FwOZ+Y7rPzeQpPQOX94mWEmwxvRFnLFWScQ5WF6ma9w6Fyxk7zldGeUENt3v19wQ8nNu
87/36P76/u/4MNTrw1D4MPx/C9Bn4AplbmRzdHJlYW0KZW5kb2JqCgoxMDAgMCBvYmoKNTE4NzAK
ZW5kb2JqCgoxMDEgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDAu
OSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0Iv
SyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAAB
CmVuZHN0cmVhbQplbmRvYmoKCjEwMiAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVu
ZG9iagoKMTAzIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcg
OCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVl
Pj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0
cmVhbQplbmRvYmoKCjEwNCAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+PgplbmRvYmoKCjEw
NiAwIG9iago8PC9MZW5ndGggMTA3IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJx0
vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041XN7rz+Emv//Xv
v17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8vvivvf0Yh6wt/
/X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb955rdkUmmk73/PUb7l9vH9
z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrrob+Vb8n9Vc6u4pT4vPLs
Xx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9GY5ygnZ9/TtbU1RJlavn4uQrs
uUs2qholf/+7JJjHqkiSzbH+4fNvSXyWVQkNOdv5U9xGvn/cfFLohRyoLEpCm1SBkqkY9YdI4IK0
4EUzdiQ/D1zdjRbqNaXX30/1gnFp59eppbhvDSOj0CYxslTd1AvSV8wvCHXJeZYFzvEVcDVpJWaS
HKu1TYhKCevrt7Xz7gMrQR/Ikfxq9IdesDRd78IO9S9Vs4DJUf0XNPVDi/YFdC6Fqbov0m6Kvu49
QIrL8fOl0RxFLWVn458FQ36tahc4lmr21WuE/xoi5VgaVDPOtuSIHoBMNJ4UOiEH6oqylh6pAvVS
MYoPkUAEaUGKZuwYfh6IGv/vP+0QSyvfTjkSuvrKmroG6fz2YgAuS8NlCfJtJLr/StwX8AuTZIAF
1pJ0tbIAY9ohToa4RnIprUau7+/GXWDSqP9W9O6DYV7U0XJeHxZOmGXE/kJZvrXSHCc2mFdyaShF
prbKpriem7ofVY2yRuaqfx6DCWh81TBVEhKf+fxmoylnG1dH5vvHCiCFZsiB0qIstEklqJmqASCE
Apkl7UKLJtwYfjY8twE+j/L6+6kB3i+t/DqVVP6q5TvfCf2FzleMhf0ah1J9E/YLknRqxupM8oc6
7LeNC8XVn1fTV0fo9/TnBNi3SC5Njsj17abpLo5hqooWJClEEFzlEu8L5BpNXdgvVdIUJzbsV7Km
pv6jLO1b9ojilqKr0U+CIL+SZuCVlmRT4x/0h7DMbswX4xt7I5/1femEX6KsKAM9UjgKpsql+BAF
NJASlBB/x+/zQPMa3O1q+q9TSyvfrOOQrla/TI0hKFCWDBrgWQNcq3VOmjlPzYv5uy4yhx8Adngl
X5j3e45zAph7JJfKzsh1Mhe7wBwVvbsyIMIXFXYMiPdFbBUuwb9QrqbQICc2mFdy6WlGpqXAFgV+
dSuQV1WDafqLQqfzfdHWOgHEX23lJTsNOdtSQ4DM7EvzSaEXcqCyKAttUglqpmIAQCBwQVLwogk7
kp8Hrtcwb9/NW3/9/dQwr5dmfp1KY3W7s58oc63jlXl59YHGeKjabZyayhc0q+9q2CzIkvuA1vHv
NvPQAlD6Pf05QQ8YkUxnYWk4lqbnXVhmmGsF7z2qF1zJggnIhMBCOLshTjzQz1LdiExLpzmK67ky
Z3TQ/2bVENeoWlLN3j3BF03Xw+v4F63WtnW8eR1fjSeFTsiBuqIsNEklqJiqUX2IBCZIC1Y0Y0fx
88D0Guz1UsGvU0s7WUXml5aZVZfmY+0alxTaL2lbcWp6z2low9YYm9Pbds0KpayperUWdDegDTNd
QCDX+P05mTcoSoOaSt5dlVD9Fxk6k/fYaTRmKE3h6080xokN6pVcOmqRqaV5F7j0qplDlY3vFPwd
OQuBLw6WbQGUDfZazYebcrYFSUANPDSeFFpZv0ddUQ6apAJUTLUoPwQCFWQFLRqx4/h5oLoN9Tbn
6++nhnq5dPPr1FLbt1WdCWmN+lSYkDV3ze/uswNCVR8ogkdNEmwjpvuF59Sa7uF8T4ROrD5w/SVx
ICXPyZB1Yeocq5IvKFH1O6WT7sMeOw2NilPr/bnGBA1x4sKfZGURI9PS6YgCey6cAjvof7ega5+u
o56kmuoYoP/FKGsVnWug1xt7I8+/Ll3wO5TkEqw9ikatVIjCLcg/kEBGEEL4HbvPI7XhfgL3/SHQ
86WQX6eSzgOnZlztr74yfHXLHnLJpl3UsYb9PBn2XRu5ypQ8NCU36fYL4SpmtV/dZgl7wc4O5asv
1v+VXIo8I9c59wLLXdW7c0iTEMLqFlA4ZgQXwMkNcuIBfpL+cmRaiq1RYNe57ePKRl6YFI3NdZ6X
bLPXa6ZfK33TSs96XraVvnilZw+g07a0Qw4UF2WhUypB2VS9QAiRwAZpwYxm7Gh+Hthe83y+VPDr
1NJOV5HS2qqJoxTwzDYY48fSwjwZfk19ozIwu8bAalIHuqS2rjL6PQs6AeA5kunE3KJc58m0QYGV
6US7sM6RTUJ88dEYtYBf7ArT0xJTw5ImObEBPj1gUmRqbBkocGlXR0FVtrT+7R4alEVTq0Zr9Wyv
PpAXZDTnbPnnHvOyMFkJpNAOOVBclIVOqQRlUzUwhFDgg7zgRkN2RD8PfO+Rn8pYxobnpwZ/epjq
kkx1q9OcvaPSb69OOgmVRl/4KqucGvqTxbip2wjEPDQE1RO04nev+CshpV49gXl1qa5Gcun0ykVf
igIrJwmN1K4FACEEXLJwb0Tv/MEWp6wt/MOQ4WRNlVNc1lAad3E9Z5/hiwb+gkTT8qH9/KkTWPG8
X7WKVzflbLc5ku8fK4AUmlm/R2VRDtqkgqVkKkX1IQ6YIClY0YQdxc8D02vQHw9b3GHNLLPj0q/s
J6suba29udPxemm5Cmptr6s2d8zDo12zvIbvOlSslmbgTDvUyVC3SC619ch1nhwLXCAHBv29g56E
+GJDATW2eKunS3QBmtwkJx5gJ2lqRqbGBpICl3Y5sq/Klt6/P9BWWzuf05bTabDXEC4s8jqyH1en
5vvHSiCFdsiB4qIsdEolKJuqgSGEAh/kBTcasiP6eeC7DfrR6+vvpwb9sfeF15oIk2rKS53fNieZ
Qws7zdkwdsge/pVa4Kgxax0YVfvydk5W7cpav3C+p0Mn6APX3xLbBfKkA2t8lMd4r0KlRO1fxDgk
1DjOL9vKYEmQBZW2OLF1ge7BMiLTUmmNAr/adgf4nqplE28a7ekSbKEW0/5atWUUmljgb8Mk39UD
/B298HtUFiUtTVIDCqZeVI88IIKgCyfkv9H7bEjeqH8nSZ3fH58L9Xnu5jqlkuz+Z69o8Vv9wS6a
yXkJVtH9mgOwt6TyA/qa7oun+8lorlr4GzvxnZfpwcsMNv/wMo2ZY+Vaau53ifA0quvdZcJBCgFW
Lgm/YB7MX1rsm+Y1WQhIbD2geey0yLQUm6LAnpPJmVXZwuK7Csi0JjOBhFtmVaZ8Lbs5een/YlI3
fqYGPyNzgFLohxyoLspCq9SCuqkbIEIqEEJgkKMlO6afB8Ix8c+5m/CUWgpafENBcafq0nEbEqax
Kpah4Y4tNbGuysiaNcQAXdkWSKu1wnknYnoQMYMOARHTwG/lWno97xIxA6uuhUMOKb4YaT6whMIv
I/sC1i3S1x1wKanGz1uSUBTVRfp9XM3IaxWSXVVAIxb2VOAuAi+5KWed9xqv7x8rgBSaIQdKi7LQ
J7WgaOoGgpAKbBAYzGjJjubnge02/Fs9X38/Nfzn3g9e7H5XTd/2y2R8TGZjmJpWmXaHhv6FTFGD
NPFn7/nZf5Ws5b8xve9cTQ+u5kokzEPkSYc4oShvRD3vfjDsPU97rjBVI3Jr0Ee0A6M9Tmy9oHqw
5MjUYKQosOfDG71Dw37925r4D4u1cMvuA8ssd4iSXThvPE0NnkZIKoVW+D0Ki5LQ5aoBFVMnyg9p
QAVBF1bIfyP42dC8Bvp4zO7DKlnHuoyqqmpZu7MMIdMKm6vViAFZmpOs22ZnRvLszvgty9C2Wrmw
azsl04KS8V4cSoYZQbmWNvtdolcSzeudDVzx6NQEbQm/iC21wLZjYKFNTmwwFw+SFJka6wQFdgHx
cWUjr13cEA11ahZKGo7nNbsvS6csfWrQF9IbagPd9B3N8FuUFqWgT8pH0dQKBCEP2CAqmNGGHc3P
A9ttoJ81vf5+aqD3x5TfrbV1pEto87tgmTfP3uExf+rcNab3XsxeUDgjecpn+RbHtNQgI8HO2rRg
bSYGGVibHnnSke/SZtTybpzciyHDAJS9x4MuZw8gPoXWOLH1gSxrd40szQStilsa18yhqoYuZHx1
IRvOEmrZWZjs1x5sipAVvVU3vqYGXyODm1JohBwoK0pCj9SAgqkV1Yc8YIKoYLVasGP4eSB6Dfe2
kzJKLbWcKnCtaN962Conb+Uys6mOe7NhWJGF+/T8e3gjz4G8HF7VBeNOy7SgZVj+G7QM5z7l+upz
L3FiL5J5vmGQLfBqSd3OEn5R05DMIJvdHiceMC9bN12gQ8BuxXXxnB9XNfKaGLR9la0e0RZEzOo6
qOnIT3POutEzNegZrf9KoR1yoLgoC51SC8qmbmAIqUAHgUGNlux4fh7o3gP+u2Va/PvzUwO+7cyN
UsuYuY50hzT6Q29A1929IYPDGvBYbdlxnmvi7+c18Wu9OEXSsgK3sfUE94NGYumzxe+XqsddFrYi
jheaFVz7Fzaoe++/k+guuJp0JpnymNaV2PpBkilPN93I1MziqMCeWJOo7IvFS8dXXY5CtGVpa+4F
3ESqbsxZN+amBnOjdVop9EKOpbAoCU1SBype9aL6kAdMEBWsaMOO4ueB6dYDvpuF199P9YC68zZK
Yc5e18OkzW9l3qEn8zY+VEniiaH1kNFbtgTh5ilfiC4FLJR31qYFa2NjLLwN9E5ei365yznvGr6Q
RM0CK11SCcj8CmO9zguDvZsSG/oruTTXItNSaYkCe/LlvbZar+ZrdA4Jtcwtnux9Q2a4EWe9bZR8
F/L+vnTBr1FSlIP+Vumo1TVK4SEJSCAkCCH9jt3ngeQ11ZeffeterJSiIqWsobrWSGX/uKRIqHgN
78LQm5ZboExv3g2W1stDB7+yMdROAPGVTOeV56tNze4uDy5INb01JizDFxWu7Hm3ncymsqbrSDD4
nRIPmJMUVSPTV4NR3FKtzoONhePb3TX8ZAeSYLMFNcs9idMNWXDmDWZWdZlSK9xM/4kcqCxKQpvU
gZpVr9Qf8oDLEhS0kH/H8fNA9R7gNaV1J/T5qQFedtJGqaWxuP031ixTrWEoGywiRTvPCUgHq9ax
8Bqe4D1haxk9MMe1nbBpQdhg3msQNl4WVq6l6HGXmLDiqap361gSWKuTzusW8IumZp6FudgPmuPE
3QGUXArMkaXZiqfievLdPVU1stYL7kw37eyKhmlQtEzbmlrVoLNulE0NyqZeqealAYbjuEpCo9SB
qqkaEEIosEFeMKMhO5qfB7bXkM87K6PU0k/3LUAMOAfb5MNwJzStAb8Q4DYbJEoPQpZNQO5az7HA
t52VacHKnJFI3g8qTzpgeVxeYqXgLNG491w4SiRufBwBdX7ZRqNplsY4sYE9ZaPDgtuhY+kVKq4n
X9VTVV+NvyTAEIueTJdWseTJ+zTNpnMBvbEyNVgZabTCyugIxmFRSouSljapASWvalF9iAMmzQa5
7P6aXjuKnwem24Bvh6w0j08N+LQTNkpxO2HVJmU2ibGgPtnTVe6nFbEYk/tQbD4ni2/v3uF34SkF
NHBOew/AWiMilmTysS93qbneZUEZUc27sQ0vcDaHboFZuC+cuvbJej2nG6OvO/5LdfHjZquNCura
bH1cydDdHFU+RMkg1sLM072m76J1XVeh6kbT1KBphFiFpun+PcqKktAjdaBgqkb1IRSYNFtpEp34
tWP4eSB6DfN9TmdGP3UPUJr6Suot9MmWrZ5otwjehN6/UpiH7UG9ss/LTdRr5ZC2czEtuBhfmoCL
wcajXOmAbnWJyZegNXk0dlkFVubQec4CfnHTtU+me5ugMCY/7BlOVgy9ZGo6t6u4r1YN9DoyHy9V
/4XAYq2zdMzmp+5E0JAFZNogToa4OtVs1wmFRTnocpW/FLwqRO2IARpNZ/JkkW/cPtv3//x3Derz
kEXm8alBfTxsdIcU1HTz79unqyrWzWWO7BXCo8hqMw2CrNey/AqfZMQ1pKtXcaG6sy8t2BcM/Q32
BWOdciUOd1FicveSJagxUiXGFyKY4PCNEZk1lpg2NLX4uqGNWYPdnjI0H9tUWE++s6eKhi6vJjCB
I2ia2IOBjYsRxc05y8a9lOBetD/mvqG0Qw4UF2WhU2pB2VQODCEW6DQf0g533Ph+D+87dU/vyyj3
+vu5esI4dxudUuvyYVZtS6Fa4JNVLVqmwoQUXe2fKQBKatSahMUR0Ru0yItDYMEubadlWtAy3NZp
0DJYc5QrYdmLEpPXEnWRxqRccOQ4JFQOHxmRWt7Jz2iSvu69QQps8fPm3b2K6sn391TNF45XYgLO
l1gcrOkJVWx5c1POstEyZV6LfHIKzZADpUVZ6JNaUPSqGgBCJJBBWhCjGTuWnweyMc2PudvqlFqa
KboHKn0tM9FhTSaDraEvcnN6m8XmBI33IF4xyuiK0LetwJl2qGM1H5FMJmuVJ2EViPJSiYrejSFa
8No47IEV9IsE8yYOgxPrwsOK4WTlNhmZmvfyKrAn39hTZUPnp1QERLZo65DVDDf0+HRzzrJxMCU4
mOrvaIbfo7QoCX1SB4qmYiAIkcAGacGMZuxofh7YbsO+T1Hvj08N+7lb6pTizvGpvTYbPC5LZ3vN
VHiRogv/06crbT/Nx/dgYzm9ywul+WxQd5KmBklz3snEBUtyJS7vRIkYV6js3diUF9w7uMKbw3NG
1FZs6DA+YYl72DacrLB7ZGqJGzsqsCdf51NlX1BeCV8hLVcSbnLF5h9yf9F1c76Y3z1B/UC28LJs
ddpUfX+JwlyCdUnZKHlViPItyD9QQUbQQvgdx88jdQ35sRvklFo6ibufuuk0z9NaLAZ6qSXLhjFs
SdEuk8uSuQfhyrlNVwMap+9Sdw6mBgfDXY4KB8MtrRy6bHeJyQYinSYa9yYlxsLlEvCdRG0N7k7K
DEKTnNhgLh4tKTItFXaK6+JdP65o6AZWwqaSLNiCiBn+9E2I4sacYogC6O61XiszNw25n4UdU2qL
stDoqgNFUzEQhEi+lytZwYxG7Gh+HtjeQ74fQ5eqH58a8v1ns94ptdQ2dClU6qwSQ7sv7/vwO8ky
WQ4bTnUBY3Ym6+Bl2dxnnWAO7svXnaoxM51lRnMy+WqmcqXjUSL3JahsAZRCjPe1JfC+r8mazvUg
m6OQ+mHbcPKrxsjSvBaouJ7sR6OqvpC8Ep6/sEhdq3GwstrjH1x50HXFslE1JagaUS4Fqqaa8u5W
XJSFTqkFZa+qASFEAp3mKX/lXo3Y0fw8sL0Gft8NdUotzZy6/TlfGjDT7gz2oqlskrK8woc9Vtbi
1KeHabpm+ARwSS3VXcixgW2oM4mlsha/T4cnETvE1ruat9ZFC/BOWIHDVz2J3opxnj2PnZHYgM4a
LxwS2vRASlHg0it0jLaIabUswT2c6ocarDVIWLbhQ+qVk1PZGJkSjIyMIAVGJqjVabVFWWiUWlA1
lQNCiAU6zcO9q8/iydq37ryntqFfZavdPjTu227CUyqNroqkz680p7dyPt1j1pRZfQxIU11M6MQy
yP3w/M/aLo/WxqRd6k7LmKbO2PpJJvtiJC48eOtgD1nYYK5otBRCCLlyCfhFdTBhCX1djRw9vm4d
IWmwQC81+Fk8tFRcT76519aI/65FUJDajEisBVzM/lOQJjflLBs5U4KcKddf0Aw5UFqUhT6pBUWv
qgEgBAIZZAUvGrEj+XngunWB2XWt/vGpXnBHiPh1avkTcjv4q0wJ6egG9q6psJ3aXI1BFzlWg9io
t6BmWfjltrCUoEG/Mzdmr7OmOSez3LCUJ45uLo8Ldquid3PMCjzlWVbCpz2J8RpcrNChieY48egF
jKEWmRpmJArsyVf5UIP2WxJhzFu4tTlf/XNJfR5c6NX15LKxNyXYG23UC+yNdgTKgdqiJPRJHSia
qoEghAIb5AUzGrKj+Xlge83++5DXgJdhSt4SYowclsB+NZW7TFkW3eHQEoelroCTDPbCUBf/V0u1
mO80jUnqpZ8eyWyvS+VKXP2KEglSQWXvir+ExHhD2oZfjVivgWV/Hj/RJCc2uA+PlxqZlvoKxfXk
W3soQi4LEmDoehWirW3ZCdha6JsX+rWcbyRNCZJGFvYCSaMjuXKguCgLnVILyqZyYAixwAd5F2o0
48bys+F6D/mRm0w6j08N+fKY+IuVVlWPlDkkwJrSm3uBBnxnwL/sk7iaot/Ma9rPoLmoWk3sO3Nj
sjqf9qvXltwO1sqTDoyGLk80tqtawNQQ4Z0OLnhi0hHjNfjDOD1/1UjcPUDJatBb8wBKUVxPvtKn
qob2eRKBC9AIN1m5/iH3eeCkLCf3svE3Jfib4u/oht+jtihp6dNXrCuHyuphmC6RwAVpwau6L5Sf
vQ/cqWu458fsnq2drmvA0trqa7hCVx/nsXxpTR2Dm6gn/tXY3Fswsxq6Mj6zHS8bZ+0EcF/J7JgK
bK4OWAGX57vuuNdpa2Qh3ukgzoW34olbyTC343SD9HUHWzpK8fOWbCXSBfdkf5rK5U1Oikv5cotG
sMny9A+ZF3TZjVkxbO5VPqiafKWWZvg9KouS0CZ1oGaqBoAQCmSQF8Sqgc+PuT3/ndvXEPcW7/Gp
Ib8bdbJUNnwReGhfi23Gnttf4Zbytdp5JT05pHD6Epm0eoDvRTWt8I5vsvM4JqyX2s5IagUnT+Ky
TZRnlyeMf3VibODM5hvY4VSD7ZXVYEyRFB7/88HiKLmiPTlLw22I4r4Kdx8oAmLNgsanWLS1AjPl
Q6lWN2XhnLYekNwDhlNohhwoLUpCn9Sx1EzFqB+BfD1bki6slvg3fp/t+83nzKOInH18Cve08zlK
JY2cVYtU2FT5Uq49auysnnUQ8bHqnGqGJvtwpM1M3Ix+Lek7n2MGO58Et1AyO2hSalJvv0tLk0re
arsrf4fDTTjSiA5jE7Li2nQ3xYkNdTlDcpmDTC3ZKijXpeSLfHR/2c7S9K1iBFtoMc3jd8BY0yjM
G5eTg8uRPSbD5WTzM8Mqi7LQJbWgZKpG/SEUuCAveNGQHcnPA9drqj8ehI28RMbQJWBpba3pXISx
F40d0zWtDvMgupTQJ79rQdcSmEzk8WorEVF2I47pmtPumbKAH4kdocJ0pOMuL3G3klsblUGcOVqu
zX94tCdxYIM9voBO4/q6gd1lysMTo+Ene1BUT76zR1/X/KrKh1bgJdSsxZM83gfZjTjzRtTkIGoE
bYao4cpqtrKiHPQ4vMIr/ICqRfUhEJgsOcEJ8XcEPw887wn+W48I28fnGujyKL7QVyopJsG6FbwO
FBIhSb3J6FcUv4Y56j8JPcSdjRbUrbAvXuYL+KYd+2Tsr79lB0FULl+0ifLSGRW9K3O2RHifOO2H
9wx3Ux3aKLstTjzAz9Jejyzt0HZRpfXky3yqaOjcnE7dJQ2xpmIwgf8QnZbdlBXg5uJucnA3+frL
0gu/R2FRErqkDpRMxag/RAIVhAUtWrHj+HmgGsNcQVV2oFEO17+XyrSaw4fai6ZgKc9isOIWY0fy
BUywsvjQ6wJBw+5Wyk7PmLrOJzcllSQMlXMlX7dyiUQ088X7yj5CQrwdNCN8aLC4YdERL0OLnNjg
brLg0XMb4ddkQVR5PfninqoaOiMlfMO1wZNws+ZrZj9FpjQ3aIW5ueA22IqM9EIz/HapLMpAl5SO
kqkU9Yc44IKg4EULdiQ/D1y34T6zLtI/PjXc76ARv04tnVVd/5Yu17pO3DB70BSs5FnsTvincCLl
Dk8LwhZ4E5O9XNp27sbhJrN4KSezf5jWVJ/uspLjHGgXUdlLSIC3YyaFB00jUgtLu5ytB/yyElsP
qDLdsZrjvn6cV3lL5RzjtdRq4UwEglCsxJS08jLhZxNc000h4E30gH6t7Mkp9DJ98s1exZn04w5r
sZqpGgBCKJBBXBCjHTuWnwey15AfPxtBQ5Ax7XG48y3z8bSPjAy1BTu5XLrH7Xm6pC6Akw20jnBJ
fKyG+07NlKBmmMyVzJy8yZM4S0d5+YiKlv5TCPB2gNwcQGckfuM1QUuceACdpKAcmda9Q8rqhx1o
VM3QaMqwzzrgSixWX4AWf+WGEM4mYA5SJvs7Olm/RllRClqkfNRLtag9BPId/ON08Bvk3/H7PNC8
B/qZk/wlHp8a6HegiF+n0sChWwN59TImXfvNFKbRLL4qok1U7epkXQuKln25Fp3G+bqUsWFv5Ilz
9Mre4+v3CdN5lJU5WUP1VW7Dqvr3ecv1TtxN1Hads5Z3drsJw8mqHZwyNK7qn0NK1mTBDCc/nczt
E0UIklALr2zUobGKm3HmjZ/Jwc+kK4VGyLFUFSWhQ+pAuVSN2kMoX8qXsKC02rCj93lguSHfDx3V
H59C/o4P8etUGvh2c+FIHVW0qZ2yZ0GlUvmIYGJF8xV381rQsthktP1o3qyVnaApQdDkSJhyJY99
YqK8bC9nLSq1hgjvkzjG4TmDtYVlyKYobow9LBtOVhyxyNS406fy+uGbfd+KBsy7CKupm/UJnM5r
kp8ynTc1ZcW0uXqA8R/6jkb4JcqKMtAjpaNgKkX1IQyYICZYIf+O4ueB6TW530Egfp1Kgyvg68bB
qnWe2N01Hc/CTliu+2NY71lSFyBJhrgDV1I7HcpmW8eDffEaD/uC5V65UrKVlRKz/Vu1fEd8Ws0i
XOcNP/UkRmtw1Vu2JoLaPACWekb8uGH6Vzn98FU9ovDK61xVjxkiTeKe/0PaecJxs1JvvEsO3oXV
Hd5FYQ18ztFU77KWJlcNqJdqUXwIBCKICk60YUfw88BzG+Tf/73+fmqQ77u4tYfDm5tr4xLBXonQ
MQVLp2KBD8J7J0VV7pPLeS0YWDs3TC3tnMTLTseUoGO8z4eOKXcuOz1GidnujloGInCtupjDKIbT
TMVrnQWeYF0E4xvpOdEnD5IemRp8n8rrh+/xEab3UFh3joTieFIsxNn9oNhkToPOvBEyOQgZHfEz
hMxx5UB1URZapRbUTeUAEWKBEAIv3GjHjeZnQ/Ya6HfYh1+nsE+uy98rwMrqy9Nxfw12QstJYMsM
myXvmstr0KzcnFGs/YadtJSddynBu7B1K/Au3MVRroQ/S5SYHZcuS/s1RHhzqyvjMCP+auLTY1sT
BtuHEcPJSvgWMjUFAKe0fgyf0DXJcp2CXSvLjAZ4CZJVntK6Ipsdl3zjXHJwLpzeYV2kVOVAbVEW
+qQWFE3lABBigUxzWHTF6VBLdiw/D2SvId+Pcip4/uNTQ/6OC/HrVBL5fypcnG5pT4IQJfvNFHsN
KzBARBLSSwq+bil+6NsXfJ/uQM9Y48ruO+PoJNnWWyWXXmfkStx1jhKzY1VpBqlcnZEYX/wu+QRs
RvKFuNujr3tPkPZK/HyptaqcfthzRhUM3btVxQufbJEWSjHpTxlNu5tx5o2OyUHHYMXTCZGbNXQ4
KSzKQpfUgpKpHPWHWOCCuOBFO3YkPw9cryF/h3/4dWqppqtIKayrLqnYp3QDnQS0/qD7wYMAdNVU
qy/GH92ru+Pb3MxLCeaFfXuBeamRJxGdIMrLjkyjbWGFIZUQb3j98FRPYrKYgBJh7ce8EzfYStbD
0ZebR1GUt7a4H1c0dIkuY9qfno0YlMztGE9PN+XMG/OSg3nBMi/mBdc45UBpURL6pI6lZipG/QgE
Ko51LrSqT+t7GI89tQ33Mevr76eG+x0b4teppbOhG//S5VdErtHZD3sWYkIlBdjt7JO0YHV2Vbma
gbWzjG4qNq7nl7KzMCVYmHwns91vlCsRkCZKzDWqeldOdRLiTf7wWE/isthxrEAm3S1yYusFk8ES
WRxDXaX1w/f3KuHRFJW4LnwsFANSPUBrdfHqTuSby1KTgoMRS6IUerHBlS20y0Kbqw6UTLWoPwQ6
rxjQ5wu86hHf9j7wP6x1Pa3bZn8/1QfuuBC/TvH6yqngYbqJNKevrUHOFCKLyE93dMaRfAr6IP5s
tcOsvSDleLaUIJzvCdEJ+sAZyRyu2LruhQdrlJgvL+chcHKI8WavGC7tSbwWbj4rysnpNjmx9YKh
kUR0xAqJ1N2rstSe3Q/W2XqdASTCkAUQ4RZap/tCk321ukFn2oiaFETNcaXQDzm6J3ozsdIqtaBu
KgeIEAuEHBVZyFU/hrTH+thT1+R/h4P4dWrdSlgFSm1VNemmEoxMYaqFhCYu/EJh9WHM5dXUqz3d
D4xN3KgoOydTgpMpkeDlJ+dJvlvr8rIdILl+z3QDFY+JNxzYeZRkQg8r0m+SOUdfH3BnKWlEFsdZ
Vmn98D09VTQUuEYCDC6eS7QFkSd/0ZaJWcVPQgXYwcnwxIQ4GdwmqQizqEtCn9SBoqkaCEIosHFE
ZCFWbdHZQ3vsqW3wtz5ffz81+I/HAnCgt7XElI4+1ybAcT9N2DDdciWFp0CSwr50TOS5mpl1WJMD
4xNXqfJO2eSgbDjXZyibFnkS4YqjvOzb8oTLIRAS13LOdEnnd0uwKCXF+6U9Tmw9oXu4XI+dNG0+
Vmn98AU+VTMU0UDVD/g+CTZLsLNN9pbTDfmiffcC9wHFx3mhEX6LsqIM9EjpKJhKUX2IAyaICVbI
v6P4eWAaw73dUSF+nUqyda27/lLXqbpQZDHM2mjplMmjTkl+YJ0jcxZzBMxa57PXeblU7JxMDk6G
AzyvuUTAFdHeqUXHyQB9VfYuAETQQe7ipnCoEdM1uRwtX+tk+50SG9TNg6VFJofbVHn9sEeNqhpa
0CUCdyIQbqmDOV7Qn6HiooA293rfr/W+OoV+yIHqoiy0Si2om8oBIsQCIYfHFHK0ZMf080B4G/Yn
S/39sca8AqzdnWFacVVVfRsnrU6HBvKmD/OawqwtsevLTuh98IpMrdfsL1iTF3wBvvM2OXgbruRm
eBtiIipX4m2oKDH7viyPmGGsITAdfngpPGpEd002AXLDpk1OPDpDkgpLZHLUTZXXD9/jU1VDxzmJ
8IXJos0SJG2z/bO6OWfa2JsU7I1oNKXQDjlQXJSFTlcdqJqKASFEAh1HyRRqtGLH8/NA9+4IuTSd
8x+f7gvp0RfQW5dfiPS5dgJY1OxvU7CnJ7GYnTtOepun+wp2LTH/C1OpQPP72HqB+wDRc152lV+/
Tr5b7VIy/pt+w4jrVSnwypdUfsli2lO2eoLrkdjwrx5COTI5Sp/K64dv8amqwcN1urOvwNoINzm5
/EPqeUVh4R2ne/YPHofo8NoDz+nfo6woCT1SBwqmalQfQoGJ4+kJK9qxo/h5YHrN/+Mx/w+rZ9jz
A+Zw2rHUdA2XluTbN7qPgDJJctslVzvOOiT1AQ26HCTyTtbkIGuw6WXoGkJcK4/n9ijP1+jjAdIQ
4T19lA+65mCq0sGuiJc478QGd5EtfEYWh+FTaf3w5b2yRpye+uDeYdFmT4Fmy3HN+2uJnG7IF84b
ZkDWN7SxfoeanN8apGRUS4Uo3YL8sx8OofKE0pJ8R+/zSG0DfNT2+vupAd53BkepNHD5LWhwNcve
Rj/TyGuW1Tmn20V9be9wvqgmae0/LV+zyhMEJe8cTg4Op9zJbB9p5XI0+ijRHjOTxYAex+lvzks6
PWbQXjElFbdGX3fUv5pzwAeIWh0qFiyHb/CpgqE7U/YVKu6Mp1TAFK/hPu8zxJk2DifB4dB4UmiF
HCgsylqapA4UTNWoPoSy/w0RtIQVrdhR/DwwvQZ430F+pXnIu2PNMGqBL5tD1GQmxm93Hd2eibrh
i2dCruZhWXOzri9V+7/lnabJQdM44Cw0DYUQGTZRhEvMLN/TcfKwIXx/zBsm4b3OUwXTIcvkWD+P
+LpBnH8AeUQWx2NSaf3wXT1VMw5izfvWQbdgSxHNMFcbWmgML8cEzFgrUQEpdGPTDK5JLguNUguK
pnIgCLHAxhGUWnc7bhQ/G6L3IC+pLBb++alB3nb2Rqk0cfJN6HL1SfzSGj3gpXivTT3AoBQ1JYEX
W3tFTwJ9h7y4TTc5mJsaiYzlZOXwGT1KyjO6Gc9M1aj+jUt2aoF8fsXOU572JnF6epru0g8665HJ
YXtUWj/8+owqGlybnKBiwWYOklaT/IQWJRzKvX4ndW8aT2pphF+jqigHLa7yl2qpEoWHMKejfxN4
srnv9teO3eeB5DW0607JKJUm/pwJdX1lGr6PwBYtc9RZoUC6g4zohi8+5rmah7U7vJz3ang774RM
DkKGZwszhAyTtnIlXv2JEtWtpkMqMLwBJV+yKSB9Q2oFsTjdGic2kA9Z5hwG0xEWXVo/7COjasbB
8y0iIquFmnlec/ha4pqbcaaNkEmszjSeFFpZv0ddUQ6apAYUTLWoPgQ6Hdq7vkCq+o3p+rMP7Tu1
De6Wz9ffTw3uOzrEr1P4Cy5vjnWNVyLoNMPJPTsubBP6+eUoAp1wA7mYmrV3/KnoUlxwLnlnaXKw
NIzaDEvD5k+5luW13CVmblVM+1f+lBDjPVllwkGm4GP0chATWuPEA/8s/ZXI4mgdKu2rcONfBMTK
qR2WTJkSbOoJqNUDtBObEKEagGnjaXwDEhWQQjfTc6JcIl0WGqWWpWiqBgBEAhVH1RBa1Q9Q71E+
9tTWB86cXn8/3Qfyow+gteanrCXoNM1hT5nss9JymWSwTZ6NbyCW3Qe0xDcv8cJ552hycDQOlQFH
M1jim1U97hLLERW9I2xpXohdcgnKjMSObpJiZTofBjolK3EXyOSgDZPn2jWbqJKuMCTfqsfgQCEz
Ww5KVjb0yYOOxLTYGBpfkauOjwFDA+9SrK4oCT1SB+qlYhQfIoGIgysIqepnqMvWvffUNdHfESF+
nUqT54xPVNZUlwIJQcRkjt9yr17iyVSie704TeQSlCwLu4I61Yhls3vJ5PCS8QMSeMmwiJ84pJx3
eYURO30F8+cOUYwTXrinJ1FbE9IGS9O0M8xutHDyq6jIYpd8lcaj7R9X1OWDKQGGXixcgs0chKxW
98mzjdpdHRsFc0DBVAfGgYLROq4cKC3KQp/UgaKpGghCKLCx+7wwW63Ysfw8kL0He/1u315/PzXY
74AQv04trU0/a60g6dOeZvaXyfgUp3VUNxuqq7/DznNByXIXjkddzvPl4CZbH4jlfkQyH+PO43dC
o7wCycrdvsJZfF2wn4z88JbRGk2Q/ISFaR534tEHlkXDQY+hZItL64cv8Kmafk4N+LX299NizRyU
7PDBOrkpxDWJPoABcjWf72iF36OwKAldrhpQMNWi+hAITORLLaSqH6Peg3rsqWuw3/Eefp36KlLu
OyvU2rcWNsb2krFNPBH1AkONRlIfFUCyAdaA1T0QPymXdsolBeVS76SjTZMrJaJquUTHKWTQFqyr
PEXhA1p4yYjK0jyPdWmm+LoBjEXDEdnCYW+4rH74lp6q6fKZIFojHiQSbObgWmVJn8lruoC9IRbA
YkKP8UIrM0bEVQZ6pHQUTKWoPsQBEfvPCqfqR6j3iB17ahvi45A15vGpIX6Hf/h1ipAfZybqltbz
bg1X9wACQ38lhvLQ2ajzoE8uQb+yyeMxF0enSzsbk4KN4RSeYGPYyPE8TD7u8hy1lGNYgVVb99+n
w5zFkZ2nV1nTRZWGxWEP+ORk5ZhIpobPhsrrhz1kVFFXFGKit8LgfwWbOchX7fAm9/kUou7YeJij
e1WfVwrNkAOlRVnokzpQM1UDQAgFMogLYtWvEe+hPPZUDPV6R3r4dYo5c7nuSG1fWRz+S6bXzFwp
p6wlnMNFNMmt+TcYVkJc8Jitw1KmnW1JwbYQ5jLBtkDT8nSxrsZeJZr04yZPcfwJJWa2dIpdfL68
pZetyUEr+gNoqafFz+2yN3m3eRjkJE1/hzkDUSdKCTT19gswNx+xaMR5bBzLgYWRppNCJz6USV1R
FpqklulXhDXYpPoQC0zsXiesaMeO4ueB6T3c/TL483MN93ru+EtjVT490uOUCDK5+vgegbsX+i8F
CliNkckzl6BdiYnAM7ZERCtpbMgbd4KeCPUZv19KHndZXrqHb24I2HUvyrcpwkdG8zJbiKSnFpN/
0Npzmm8eHCUyNfww9XMe8P24oq5QMhJgmciHRZs5X9P8FJrJjTmPjWExM0bzSaEXcqCyKGvpkjpQ
MFWj+hAKTBB3IUUrbvw+G5Yb7noqcP8Q6He0h1+n0sSXk2fr1U8dnx/OJV9hnVdH5VSkm8ud57hz
CZqV2848aOvQw2lnXVKwLgQzTrAuZ+Sxb0SUV1jLuSStI5xEeHufFi4yRRQrF795yWI6QNUe2MnJ
iqWfTPbxUHk86aoOIAy+QstZrOvqpwSbOSjWU9vt6obwcECAX2y70fVk7htJL+ToNsEGwcrOCaOd
jGGqGgBCJJCxT4YQoxU7lp8HstccPx5z/LBy5L+D0paZhn2xXWXyFcj3FNga6QrAx+tNuQSPSlwT
XRSuuKaWtBMtKYgWHpRLEC1s1QkPmBOzPCUW4maZusdqA1vCje3wTE+FdzwZ5NUt0tcd7KWk+LHd
OVROO30ZT1V0vSCrqodeokGomcPlVXt4B8tohjRvYGeDnZ1CL+RAZVEW2qQW1EzlABBinY73rrlY
iK127Eh+Hrhu4/17WHj9/dSQv6M//DpFPL9T9nGervT7unaasT/DQWzAM4BZ7BEO0qVc830Gzyw1
aD3f2ZgUbAzR7BNsDHdylStlIhW5xFKjy6lcbSmxtpo4D6eZwgPOrPfF09iMxNYTigaMX7s+PJKS
y+NJz4+r6prMJcIyqZ0WbuagW0XyOZoGL7xujMwRjIwckrh5JP2QA9VFWWiVWqYfktYEPIo7Kdu7
4u6bXiBX/QDxHtFjT11Dvz/mecXnmdk+XYRTGgbZgGtXJcLf7/kp9NKSWnN88KuEFdb1oXoK4Z1+
SUG/cHMiQcBweFMeu7lGecVPN0PR4ALBWVv3JHGc0UidnMAVYDhp36evG9BZlm12Ahl+9XBJPOj4
cRVd5+9SbYsuFmpB4/n92mfTkPPYCJgjCJj4jk68L5e6oiQ0SR2omKpRfQhlPztuYwup6meH+2N+
73/n9+8gX5T66++nBn3b+Rml0sTfTwSsjM8Dl2Mf5lk1xTqOhtV20AE07wf/SqAb3Sio5wjU894F
YpG/klnBbJQnZQJtuLwC/K93hhiHqMUZxlvypLFpn4+miCQz34mtByQPkB6ZGuGQVByvPH5cUxft
Uprt0Eg18c75t8SdjgkqJI6NnTmCnRlXqpnuUvhj6StKQpHUgYapGNWHSGCCsGBV/exw27r4ntp6
wPd/r7+f6gF3GIhfp9LE0y+hz7VOJRQNRaMpQNR0uyKLrBYdzNDBvxJCfoK/hvlO0KQgaLhNo2T2
C2ITTW+l2U/LLBC0CpM1G4HwosnYQH4cxiS7LU48+kCW9lpk8oW/QQSa4R5Q9GR7f+HCpOD4SDaT
Sdh0eCc23Jbz2PiZI/gZUeQH/IzsDcqBzqIs1EktS8tUjfIRCUx8LU9YVb9HvAfz2FPXRF93Ekap
NMPTTypbPVMI2lcms4XX9d3RuEOrICFLaA3N45rrBZoiBhGSoqSdh0nBw3AtSslMrBlyOXJJlOjb
FTwq4Dt0hCBnvQ9nGdEY9ueTM23yFbp2PMmYQ5ZtLDx+7k5bVhXXTt/CU01d16C5eKEQ+ci2IMqG
e42H6tZMEW80lO8f64AUylm/R2tRDgqlBjRNxUAQIoGN7+AJs+r3aOvWm/fUPeDH0XSOf3xqwJed
qVEK0uuU1zHPZYgnettjxrFmFGJzCV4AJ6tNa5XOwcpq065QQidvTKedpklB0/BeMM95OLDRbNZ1
u8srDjbK5tEBK2U5YCMQ7jKZfYqElKetSTwSdz9Qsh4Oua5tEjeDVFw7fT1PNXX5xEkCTGzINpM9
Zgl5NCDCdBg7b66G7x9rgdRSDr9Ha1ESCqUONE3VQBBCgY1v8Qgz2rGj+Xlgew38/Jjfs9Uz5NG1
7hZoo3eiz2S4K5peA99xABW4ufMyRQ4Clila7EglkHVJOyeTgpPp999y8mM3Wmky+0SX6HfgR4Sd
HiHGe1ziOXTp9B1YhVPwVcp6PigZJevhgDnMTmrn6H4Q7ONaeL69EN5a8Xc48qR+zfFshJvbMs/b
UMn3jzVACtWQA61FWSiUWtC0347vnDPsLpNO987+ArPqJ4jzzz7P36lt4HOJcvvQqM87ZaNUmuHy
J3XWJcNXOWzzEl5SskwMP+84ihqjERrULLu0WdV83Z7fGZsjGBsVUBxThJ3iXLt8hrZLK55aCEKd
o/o3zwuFj0zm5rok0sNdtMOJDX6dPZgvyORLAiqunc3ne9731HrFSMTGhAuemdnEGskrfgTzHjf8
Bj/rOyrht2grSkGNlI9+qXapPcQBDRP6Qqn6adq89e09dY3zOwjEr1NpFvnqSV3fOruUZhcZrr/w
VO5oXnHly9d5kCQH70poK8XgWs1USISdlDmClNGkTDITDpxcS5n9LrF4L0EMFK548ZQwvH94yIjp
mvZ2wyhV4usGM8YPWAdlETk8iDxk7xjV0hWHqLDw6l0M/fPUjXxA1lbXLZnnzcnw/eP2k0Ix6/do
LMpBmdSAlqkY9YdI4CIityZ31PnaUfw8MN3G96yi3B+fGuLHw4x3oLEfOXUtTS4bjlTPAAeFQ1FA
mrfXCuHcuRSTxzXL613CzLL+UmiLe1E/gqXByYFAE341kjdD8IKM8hxFa0Tg6RRCvFnnR2C/hpPg
div0dcddOuvxY/OFKqSddoRR+V2haQgwxZ0delYyGyth13Jb3AqiRgfyQdPEv6MQfo+uoiTUSB3o
l6pRewgFGmb3hFL1Y7THz268u1M39jMXzeqPT7DfkZfGeKR+aVErvGZne8EkR/vPjH3gyGrNGpI5
6Fgw4lGPC+4NeePuROapD36foHyjLMfNCyMBY14TAIt9OMKwyXJwA6xR5U5s6GP/cEg07YegkVRc
O31bTzV1xSohtJzeIUK2meo1uZ9af5tbM8/bNDnPoGnuFIohBzqLspYyqQMdUzXKD6FAxbRPPdyK
G8HPhmZM7uWOAfHrVJp4bTFVyfLV0aTYGIf4Fxk0GuNEMTmWwJreg4b1UNXlgBjEOxtzBBtz/SU7
RhlvgGSubbg8+7YOx5cOEd4QgOEAkwnPzCYdoxMu2g9LhpOV69FkMoeg4njzRTD74WZcXpvoKsk1
k7lYopd1Lm6toXyf2qrh5V9RCL9EV1EGaqR09OvXojvHBz8lk7rvr2Q/Qlq3B0kviLfUNrx71t34
x+ca3uWO/vDrVJr4bPGakPrjesFHkzE7Dqm+Cn0g+bZnMLUHDetFWg+bxvK9kzNHkDNe9kXOJG8I
Dmv5vEss5gCWGY8jGJTKUJZwghGtZQ9IRa9IvjZf68NQp2Q9IJSVSaZkFdZO39JTPV0u9qp9naeG
5ZrJTKxEnp0rWyzhty2S7x9rgBSqIQdai7JQJ7WgZypf6g+hQEWm3zLdg/NrR/HzwPQa5nd4h1+n
uJHOK/TrEfouO4h9YfAlTLrNNRqzateZAjfXnOs1k68By8ulsRnf+Zcj+Bdv4mXO4uE+ciV8WaPE
ekRV7+wHnmQ70rb3Hc4wsmSex8vBKXy7Pj2sF07Ww08fJVsPhgtrp6/iqR4e8f3WvgBIlmpBkw0z
q21xS4hOETAH8cIGHuIleX4u1lmUhTqpBT37/WABEEKBi617Zbi7pteO5OeB6z3YzyOJcn98arDf
Hlu/TqWJ/xaXQtWXteFt7gUJAIp6gVyPmL402IOJ5dzNc6Y+kR87KXMEKTPoHyJleKebXH4jJkqs
GAiJpwFJm2xEVXezcUZ8BU4SNjbBJD8sF05WDnxksg1JhbXTbjGZ4FzcttRuS2ESJNlM6Zrsp6dl
WkPgiugHycYZTvIKZ0awIOVYWouShl/sJJxEPLicrP4QClwQF7xqPEG6m+m21DXg77AOv07xguaZ
eM5M67omQHvH4FMoO9Bo9iBVgOZ+YZONdgc3lvX8cmCKDW0v6z9X0IqsJ4CVJ+WttJqimreQedts
pjrCNUZk1kmfsJkJMB82CycrkdHIZNOBimsepVS03vFcQfwXBBJpJnOsqWgonm4AcSkC4KBesMtB
vRwevKdVFSWhxVU+uqVKlB7CgAZighLy7/h9Hmhuw3y9MvL3U8P8jvPw61RS8AScMQmbqtBnb/vG
LHdDWQaWzHI60vWB7pk5qFcM64q+U21yP3bm5QjmBVP9AfPC5TwiA0GwRIn1ikujIIXrTxhSFEP/
HY4xorKIc0aciuSYHDU/p/vsAdIj05LydHEr+P/H1fTFHSXbJ0KsmUy/SuLpAAlY3G/bI98/VgAp
NEMOlBZloU9qWVpeFaN6xAERxASpej02upnjttSG/zx0TH98Gv/0wD9JY1lemstnT/PMmqXhY3A5
1LFxNO4w9GVi0uY7qS83By2U7241s3bsVMwRVMy4k9mPPQ+usHmLSInVAUoImTjjfYGOt415GNFX
hL1ONjyxZ3tYM5ys+MGQyQeOzvsucVePOPAaZnF8mRZsHkG9Fk+N1Y2Z8zY88v1jFZBCN+RYSouS
ht9mlWOCSvUbov0WCUQQFqSq3x/dw3PsqWuCv+M3/DqVdPXn5K1JmYE74UNNtuigpGDZSzSNPN3f
7z5nmV512MLBThMSfeOfnQDqM5LZwQmVK+V5l1c9o2DpjcD/a5ATCMlUi+grotsnhZdL9pmpexwn
J+th55rp0VNdXDvjVh6vn311ywDULvEr1jyCXS3XLEhD5txolhk0S7tS6IUcqCzKQpvUgZZXxSg/
BAIVRAWt6jdG9zgce+oa6OMgUs3zUwP9Durw6xSvoZ8yK9sGTKB4MzDqEOrWozkYoK74dxtVzLwO
PyLOJtRRSHYC5ggC5krkVCNHyjb3UFrFit4dwOhnWII3BoNwiJELssOX6UmaZA8p3qfZewDDJEcm
L0YqjqjgH1fU4QzzdYxBtHkE6VqF06mGrPgEF/cyg3shmInsbNIKv0dhUQ66pAZ0TMUoP0QCFYQF
rXq9L7rZ57bUNdjLY0YvVs6QY6aUdqquNUWbZRHqIo5GsyOp7vD3NSEn06qOTakAK/W0l8xGs+Qz
aBb7wkCzwK0Q+oX3naPEyrjsESQvW4Z3JyyGmRZRVrxUsCJRVLfGiRvqcnqgpMjktUfFNe0JP67o
q/GXqv/CYLHmYVdXSTwdABIXmXGv6Pr+sQJIoRlyLJVFSehy1YCGV6UoPoQBEcQEqepXRctjRi9/
Z/Q1sFcgnL+fGuh3kIdfp9LEvUdBNjBBsTH3jk4zqdr3lfmlAD9rTYcvSec11QvJ4lXdISrajX8w
MPaEgYEh9uTg3hKcjkusdmCP0HjdMryJiBRPx8i6QRD7JPNpsiNcmT+7KV7JihGfTO6lKq55K0ZF
XbOFBFi7rmrR5hFUa/WArG7OnBsNM/u1rlen0A45UFyUtTRKHeiZqgEghAIZxAUx2rFj+Xkgew32
9JjVk9VzqkipbU1aC1Nv37Qz1plzVCyfXewEx7ucZszpAk0yCcyNbMlnkC3M3CdkC96yo0iX9S6r
sgvrERovuf43J4YU2zc1npszZboV+rpDLMXM+Lm7YYcIixt4PL79nQvkZ47zp0SaRxCputfY4TaI
/r5xLTO4lggg2Ra8/j2KipLQIXWg21XxUniIAw4ICj7VL4mmxzye/s7ja0ifjOz7Q+N7n93X3I5P
z0R9347XuDnhk7r24tqajOoojtpedu48iAZagDM1j2xpFWFobJAb8EYiJ+g0/T5lbmS4rIqdv0f4
ux4vSHTuUnh/rRIIX53EedMSJzbQh8dDj0wVXywV12ZcupPVRCbcioU8XaLNo11zu4B0U4gNGbAH
xaKbzUqhlfV71BXloElqQMNUjOpDJDBB2IUUbbjx+2xY3qB/27tuxD8/hfvxmNcPayzLB1eaXK5Q
XJiAfeEqs7rxqI79xX6Eqy3J3KqDjg6Mno5okW/sg3rh9eYT8oUuojyp+JUayvPjUN3xpSzB21Fy
vOXWKkvI4qRnGGiLExv64jF4lJJMFcdbFUdAWKGvl9t4MKrpvQIJNY+gV4VqO72qKyTrjTy46xva
4JcoKspAh5SObvVYnFQegoAFIoIRsu/ofR5YxkyuQEcXvEqliRMHBh/Jr12SvV8OArhXDe0ZOi+S
WnO5CVR8krLu9FW/A7xxy04A8JXMyZdcdbwq3LV0iRWe3j7UShgTLfaxp04YJ0BVRz08a0lsEOvw
CA9LpspTFCquzbhgpwhqXACA4T4s2CS43z9kno0X1njhZSNYZhAs3OgQwSLdkAO1RVlodNWBnqkY
AEIkkEFYEKMVO5afB7LbMB+9vv5+rmGuq+B3P5jWW5MPrvS5mqjdkv1fCMCrm9qjcg+1c+8Hd0fR
QOoHwjMGUN74ZSfoA2ckM8zOyrMUPe+yao9K3iwEhDdiTQmnl8QWJiDPbocTD/yzNJcjUyVeTsch
7QpPrcPy96ddS1m1UPMIclVb8ja8qp8KSHAP8uBd6pVaGuH3qCpKQovUgXb1YJiUHuKABoKCUvV7
knPr3HvqGuhzJ1aUShP/HM4Ba8lp43UYWx5VmMI2o/YkgRt4MIXjiMazDH7I5dxolXwGrXJGIjtK
LM88EJI0yqv4HXdb02QHkM1GAT2OgDcjrSIRNLfCiQ1ebbV5QJJMS8DksprPztTS5Q3Ji8Z6GAy5
5pGvWfyUclY7CPwX8Iaji/beSqGU9Wu0FaWgSMpHwVS7fhnigAWCglH1U5Fz67t76h7aeblu//3U
0B47z6JUmrhsNHS5GresPgcHM3zJTh1UK7dS5YS52qMF18QqTyxmHp0k/EzeqGUnhP5PimQmBjC5
8DG9Sqzct7X/rEa1pHj3dSo/4mSWmJC0hheZ4TDbKLH1gCIzHEd4ZaruTfkHldtLTgM8vVT70Mth
dpg9glqVHb1xC0cntrkxLjMYF52wlEI15EBrURYKpRYUvapG/SESuCAseNGKHcnPA9etF+DL/PxU
L7jjOfw6lSYuG1zA0kK/FHlgnlkhffTe/KicmJruZ2OryzixqQ+sVZ53KYk1lTfe2Qn6QIlkTv3O
lQo3p1xitf8K1+6FvqR4S41HWGdwBGORx9bUokOkZx9I0t6MTFXXFChtBQX8uJauWFaqfY3Ubrnm
EbSqOJPGy8HyeJ0b4zKDcZFnq1KohhxoLcpCodSy1EzVKB+RwARRwar6Tck9Kseeuqb5vpvhlCIi
L37W9NGmZRFzK7Ee9GbGqOiwKSZa99As11SfgCzFQpk3YtkJgK6RzI4QzAOjRKGJEit3MJvfD5aB
QD/gIZOwuIpYxchaeGkdN3aeHrqBzjLDRZwTj5/i0tq87tjpsHy8VPtY9ysJjnAEtaprMA0fIq3E
Y6NWRlArhG0TtUK0YOVAZ1EW6lx1oORVLaoPccAEQcGqHvFmcHrA/D8PbN+9kobD41MD/Y7p8OtU
kqMRztc4VxKMEtIFVzK9YrtE1uiTYZp1OCdzqwP7mMweXkvzxjw7QQ9okVwKnZErFW8fzK1yC9t+
lMKeR4EJLun9N2/g2faKpemKT/AwxGHlsIcm1GpxWW1el+/W+Urx5VX7GorVck3d36APTKkouS1z
bLzLCN5FrwkNeBc54TRMWuIuXRYKpRYUTeUAEGKBzBIXvGjFjuTnges12O/oDb9OJTn9n5z511D/
tg4bHE5k4npGxcrVuOHlPbZpVPsZdyxdFSDTDnIyyCOS3yN45CBozFVaxTDQHP5fhgFt+boMCT5F
8/SNhnhyC/R1B1dKqfHj6jXh+CkOA/Zx+Z07PmKK9f4IEo0zuNPV+4tXcmKCXYTKCEKl+jvK4Pfo
KcpBhdSAaql4KTwEAgVEBZ3qxyL3qBt76h7e5fu/199PDe99cDO0m5yslwa14OjlY+/kdORS4JDh
J5Sb9hydexIp+FRCP/fq6Ug3mXeSZQbJct7J7BjRRAEglmCUWLnF3BzKUkNbvm5N4Xe8k3MMfM0C
tiw58tButnCy8vAgmSovDao04kN9XE8fuN17PcuWbJxBqrIq4xd/gvqNv9DHVX28UAu/RWNRCsqk
fJRMtSg/BAKV6tcEq1twI/jZ0LyG9B2Z4deppNXiJLMou6ZLRVhauR+sR0qG3kiWj1Xvto0d19yd
gCrFLjhvZLITAHxGMicYMeVKxdY7E6bE7LeHHC+2yuYrd/7s1daBkoWpbUt+anY3VThZD4etGh41
URqRoT6upw9sXe7T3ZKNM/hSXYly4D7x4WMjUUaQKOVKoRxyoLcoaymUOlAzVaP+EApcqt+HLe6o
6bUj+Xngug3y7/b89fdTg/wO2/DrVJrhUy2NTonxPWqpDwjQiUq4W8TRozFJi+dZvcBHbz2GfoLn
3CkWH0PLcUQiJx/x9bg6z8dd5RH6pnE8UILn3WTY8hAnqKJWAVuV+p3YegC2DPj+Axo1u6RmGzl1
dF3TUt0LH2QaZ9CoHL7l7HQQoeBiWEYwLHiWw7BwtJdxQ9qKklDkqgH1Ui1KD4FAo568DNwt/47e
54HljXxNaR1on59C/g7X8OtUIhQJbxV0CfsdtzbCadadzHZw0E1OnbAx+QgWlfjhOvn6BLQCDdy4
g/qPAxDkNOPXiXjQV0kEGVMlbxxnNdW3NTKK52FCLznCRHYDnHhAnqWyGVkq2z+V1abv1p0a80SR
FiK6R0v46DOI04X5mqDLEREJ7kW9elGPyAPzhTrIgaaiJJRIHSi3e2/HTVlfRjwhTgkTldxz52tH
7/PA8pre70gMv04l4oycPAmqxenbd3+wtRNkU947NYfm1VUXJMGaYjPvyav3FVrggpdtZuGCMsnM
1QdyLXX2rcQUFb1PV/+Wp3bxRovIG4x7xddODj2Sx3NeHx4VIzJV3vxVaQSFWRD7KYaW1MyQZ+B4
+A9RZ5WTi9qwYgpc8BpcIhOgDH67tBRloD5KR61+/aGlSw4wQEKwQfQdtc8Dw21At0P2lsenBvQd
juHXqTS5ns8LcNpgKiql6TPiLcpjrzp+h+7mck7KR1CnLfC7zrp57vyKCeVyONgE/Aqkm3KlFVjm
Ku8KCNcILoAIbx4z8ekJd1wv4QTJwjqc+3M27x4TLTJVtv0qjSAgH6rpmoFV+9BFuCXVOIM5JW7y
WhxoB1EEAvugVnQblqhQUgs50FiUhTKpAyV3T/7HT71kAhWkBS2aseP4eaAaQzvd8RZ+neLxs3ny
nvuSmCgM3rkRWQ+jv+OzFYtdAMZz9wLs8Jot37OdQvFaVAjjQzI7trtyLaZjLy9HRe/p6hcs6RV3
2fHX8SrdPUOVSDxAZoTUyFR15Ke0Zt7rPR2Iv2U3E3nGGRSpyG4ZRGnDHBt/MoI/IUAI/Enz79FU
lETp/Bfl9msymJc8oIGkoFT95t8eL2NPbYP8u9l7/f1cgzzdwRd+nUq8J6SrZXhd6UzSjHyS6lFJ
eTkE27c9C6cgULnaol2JTBl57tSKJ61yOIYI5Ao8mvIsPY+tPIeH0UwhIytjVwZKm1pEnXomb56p
WiQ25JvHRY5MVb6+LmvaXUXP+QyFA5ezbZXLpKQaZ/if6tAss2vxqxwbvTKCXin+jlL4/dJWlIMa
qQH1UrGVbommH0zhQiIRMmRfTHvwjD11De65z+JKJXwlNBsS/UJEffPJW/rQaWf4zWsdG3qzJ0Gw
o9AmjXPiCZB5BzlW7ivJRTblSWUvi2sNquatHReHrSYE4sgtdtTjuXqO6pHYIK4eGZeLeuUNT0oz
rfkmaF/V8JY9ROtbWWt30KO8gKBgsWrFch6/uJMR3InW5QF3Ihu1cqCtKAtFUgcKpmor3jKBCNI6
0IDf8Zv7DL6l7gHe1lNCfz81wB9RQhMBGXTU4BalukL9zjLmTg4pP0nYCihZrSnglY29cAyDhobx
zp24RVxfdzIToYZciShBV4lcbW2Y0X+KhViYFYsmMDMCC+Xkhjjx6AHL6ufwR9nT+1XazOBfFKz5
C5usLEVBS4kcdAZ7KoNn7W7HHBtvMoI30TuGA96k0mOsrygHVVLDUjDVSumTib25lxL0YVj4HbvP
A8kN93Ub/u+ncU8P3FHXqdqkxpi9uhoysH2LkkZUhVtTWxZOwZwKQTF7XEXLc6dSJlRKYZ0gmR3e
X7mWhvfy8CdTRXI09rs9TeFyw3aSmKh0EtNpfm6JDfeiHoiHsjJVhaKltGbZVA1hulX7wC9fci3E
ipFfk7UChh649GwRw3pEDMNxVXfYVpB//X7pK8pBkdSAgh0fXIoPiUAEWUGq+N238Zjcx/+c3PvO
mCiV8HTkjo2+irfVSmor4FsGoFG49tjWoQzL+RHUKGY2IuefjhW08yUmjsvhmEDwJRjgiMVfIN2i
RD+9s8agBrdOaE1PRAVZom0N1vas4/vcEhvI2eNjRKYqd35KWyrNgEwE6+8Y03mbi9CSapzpmuDX
GFg9kZYsx/GLLenBlohh6bAlsr1VDjVaIV0WyqQWlEzlKD+kAhXkBS0asuP4eaB6D/R+DBHcj08N
9PaY4JtVl+USL5VqDpOqT/eBqmduNNBfCrRX1Z4MYtl9QMs7Bk1HDkh7D0juAdffcsZ0u5w+C57s
URokGL4S+k40cT1SE68ps6EhQlTOboS+7uhLZS1+XmXPp5w2fZGOEI3acK+vQ+8qI9E4zZZK1KkL
7bSBaC+BfdAp+foLCiEHuoqylhKpA9VSNSoPmcACacGo+P239pji298p/vtPO7jSSlFx5cXTMNzt
0yZpMEnKgXMUvz0utzwiReUjCFEO3bwJiL06j501MV1cYK5IZr/bwFuPhIO6SuQuqip7a3OAF6mC
tjoyFGHRTJkqXNuERs3pwZkoWSDjlacqUgNltWm3FAIZygNo1T0Kq4vI8dN0KO861OJ2fIG8ATa8
irHzap6VizXlEqxEyka5VInSLcs/0EDKhVHxs27Xnm37vg3oKvvp9qHRXHcWRamk25NTiw3X9OoC
fBhwnivq7oLCIKsZmtHTNaNrZFYTFAorsbMo5oZxLXUyZw7mUO4Uf5Xo5/W0oeeJPFnlm04zbNh4
DYco3yqKljixAa5AT2d4L65xIvJVZbUZD7RoVOuf2KPIisO4m6ZICYUpQwktmX1jUHowKHj0wKDo
dK4c6CzK8ohWLaiZypfyQyYwQVqwohU7ip8Hphv8s+u6+uNTPaDsDIpSiRgW8uniPbCq04N6gPBT
qK3VTwWKbmAyJPMRRCkRIbTlEUGRx86fjOBPZM4hmfNx50nMJ1d53GXhlrw6F9G+mk7CRj8jrfzF
T7fCiRt9JQsX7ZSn8juVhFfghyoIu6uaFy7FMo05rzl9Dc3k9XzIafziUHpwKNnfm1doxW1mEnFJ
KJI6ULAj/krtIRN4IC040Yodwc8Dz2tOzztVolRSJ5pY7zh2aK+hjSamYB4sGuysvpr/Cs3d9COo
Ujbk2ggtOyC4bhAbYCeyH+TQ75cq51ZWd0/6/pPMAdmQJIv01jmMSTrppEwLnHjAqzXbOSpzfuO8
ZFcU0dSKzMamSoYWJBr6/QJXu3Cdo2nD7JsvSg9flPsvqIMcaCrKQoXD5hwOggfz/8+8pAIL5AWj
1Yodu88DyXtor6uLr7+fGtp3SIVfp5K63MSww6FDM9IPg1t2MEWuGxyckg1IXIk4gx5lhyZjlamo
vHHHTiz0cyRyTneeVBinV3lR0Tu7+rcctxDrTUQFtuC2KDHLPwwVTha8JJSnrlfVVVIbdkTJjrS6
Tk1EU5AsY5oWzUy62nseigRwY27Eh76jBH6JfqIMVEfpqNTBXaXqkAQMloQgg9w7Zp8HgtdgTg8D
m64AElqKd1AWl6vX5kVDSoCsd4mYYRwljz5qDGLC1uhMtuprWd5ZkhEsiZdzWTozP1Qu3qHfSmRD
iH1ch339WIwDwr3lq7RElvP3dEuc2IBl6cDbXMZ0LDEqCoegD3V0gkRoA8Wldwk1pvlPyTt1QKYh
s280SQ+ahLUcmkS/Ug5UFmWhTWpBy1SO9kMqUEFe0KIdO46fB6rbwPZm7fGpgX2HUfh1KhHAUTt+
zipTYTG0u5D1twsAJqIJMGvjhkXkDIaUK8btMBOl3fhOoowgUbyLF4niV1eUK9mYc5WoVKXnWYS3
rhQi2lusU7KN3Iaj8048ekGS9pozVYzuKqyNcENRPL41wGUKKZdIY/Zrav9ircBqNIPoDtEHgkdh
Cw+PwhPz7HNkxHFZ6HL4ZoXCx6pydB8ygQrSno51Pq/vdx+4U9dgv6Ml/DqVJneqp7XWVNl3Tj2M
c9LbRCxrCsDRLLbGZnCiHreH1245oO2kyQjSJN9/yzlHnhW4IW/lOdCyduk6thFZioC88kcR95TM
dNp0xI3mhzXCycLBXJkq9IvKat44qpKl67VjlylEF8Ak1ZjmRPN6Ol7XLQ4O1hth0tO1gsdfUAo5
0FeUhCqH78dxeVXnYmk+ZAITpI3nt/Vw14bi54HpPdTnUcSGPz7XUD/uIAq/TiUCecooSUC9SRjf
w7s3nYx0Zhh+o742tSiBWHYPUGDl02u4YwfkvQdk94AWyRXsqUSu5NBuUSL7MQUUT65/gZZCsDcP
7Poeiy1HLBkPs4SThRievOQ7h8tqA9cPLbtYSrRv0/t6SDSmCVMJO7X7ohWzb4xKD0YFUxyMiga9
cqCvKAtFUgsKpnI0H0KByRIWpIrf8toDYeypDf9aRJQ+PoX/HUTh16lEPFH1s3Qk70HS4SN68WtU
ozjmjhy3ILvS2a95fgFeFZPhdNzHnVEZwag4uqMYFb+2o1xL1+dWImNZlYln5YUtuYpZtLf0tiRe
CLsZ+rojL6Ul/7hO7UJVStOBAh9/XYqRlbtkz0ansCrG/Yu1uBXkn31jUnowKdjZORmoDygHmoqy
UCK1LNVSNRpHIHBAUPApfrNrD3+xp2JyP+YOrPRB8AopSV1XcaiTCRMpX68+suAoGuKUwIrGFEQp
HFi92Xu5gW+2lyBNINKUzJmEciVT7VGiY7DqWL66jWR4y2nDwr15VhfrbLIZiWwP24ST5ZzOUrnH
rLK4Q/55EWRahmwFMJSLGTKNWWJqX9twHaloB679hrgFYSIaDad/qYUcaCzK8uqtWlAylaP9EApc
qi+RawV/3Qh+NjS3QT2zrqQ/PjWo7wgKv06lyTsbzXps2m9IwTApxEfGPug4uHompOG4eQZVegSO
0JD4FO8Le3ApkOhK5lwiz9Jzv8vrLPOqSuc8YhFU2WTteCKzZrI/iQ1I7AEflgknC+GilKnioKLS
2uDuHZ7ROiVrMdebi0g1ponSvMZG9cJOVIWLR2nBoxxXCqWQA31FSaiSOlCxQ/6V6Q4pHkWoVPsG
6Xqf3+vaI2HsqWuI38ESfp1KKz6v3pFOR2xEpcvTMOvFsgXyS1EQ196NO09ncKLYxTUpVpwF8tjJ
khFkSYlE9tNJTMcO1+fyOpcOVZVW9+WHzn1xu53oOJTCN7CoCfqyQyudDP+44mSoUtZFM4Wj+VHE
qjVjyc2i6MoVsfumeVBeUdK76Uv62TaSpAVJIjAbJIks7vo9WoqSlvqoAZVSMboOgUCh2rezu2+O
147a54HhPbTPnHQR/fGpoX3HTvh1Kum+/xQFlTh0FqJPm0XhYUHOrNxdrbRH03qQpNw5rk0rNpby
vnMoPTgUbO8dDgVaTbmSo/e5xHAe/+7qVv7BWUr3HOx2IsHS7Rle3BQnNvSzx0RzpqXU4dKaDQe6
1NN1TtYxVJFfkGlMU6QE9tegpB2zbbG9WsT2ktm9sR2UbpUDjUVZqJJaUDGVo/sQClQQF7Roxo7j
54HqNbTvIAm/TiWCLuuCWTruzWfK3pr57TjvJxzqsusS8Rk86CG44hJR7jtr0oM1gU/rsCa8oVjb
K/nms8vqDr+3Kimu+c2lcMduk0BIasfv5BjMvL52A5w8OqozVUKFqLQ2cPDA90tsaLLqs2UaM3hQ
RU/QNppW4PodAAdjomHdYEwO/37pKcrxhkw1oFYqRt8hEEhUR2nR5Qo1Ycfu80ByG+D9kM3l8akB
fkdP+HUqEYFZd84SG06CNGt4z3g8rGmT4YiIa9/GxHua0uxcW6k67wBD7jtn0oMz4eJ6hzPB0US5
vsv0XV53F5O54ee0BG/fGl/oa/+dInDT4ZmqRWJD//C4KM5UuVChslpYhDTCNBODjQwUtQizmNzX
Diy7BTh8B/LBlmgEcTtSClm/R1NRDkqkfJTrmF+FUwLigEZ18C3dueCG6bFHv9hTF/brvgP/L7zL
Y0IvVlNXjBL0N7WvXGrlAI5dY3ThnQGhqBWa0M1o+o0sIpozr+Y+NrSNdSOR/QoWA9ixGV1W90N2
Gpk/fgiN6Mr2NJHBPEVstsOT1eUC/sCaYZKcqRLoTaUt5WqAakUVQ7pq/mJhicYIZhREEgv5j/xr
b+NLC/pEk7dSqIMcaCrKQomrDhRLxWg8BAKL6sh6xd01fPlvtMv/nMYf0TiVSmwdp/w9WIUKdxA0
/gZuHlpA1hbDoS7XBHUASTa82lQrjjn3AXPfOZIeHAnuZR2WhMAQREZ3AEaX2EtU1Fz7u2J2xyKm
+yvJ8TX1uHRynO3jfNAkSpZzOEvlbozKajb7RbSlb50jK9g3sRhHUJ/igxXcCfmXN+8FrqFN+Phi
FNdvl4aiDFRH6ajUAZ4KpwF7mszkPthfoLME31H7PDC8B/FRzkV0Pz81oPNjAs9WFPFqyotHxtae
cu2Y4FC4GjTA2zCkV68YMM7gMDURx806uXnf7EkP9qTcyewXz+paJutdUndMJrl06tAvrEOct3gm
P4a2vHynG+DEhvS8lw9i5BOHuSbfL/q8CLqh9VVvvBHvZLlzjmBC5dapfRTSz7ZRJs2UCcdXpZYi
+D0aipJQHjWgUipG1yEQKCAo6MQjufkxcee/E/d5pJ/doqK4kichaFBXV1XSo0gRLnTrFjX7xDcM
/xJbIW9NT/rtiopgOHb3nRTpQYqwGHdIEdhy5cIudpXYHZNHlVmCNzfC7Vsijik5/L1iIK2m+OsD
YHbHw1kq96BUFpdNPq8uPa/BvI5aOKpInjHGNVsLMrdgto0PaeZDsE4phULW79FUlOPNtmpAuVSM
1kMc8EBQUKIBO36fB5rboB6zvv5+alCnxzSeUNiqe5zW5OljAs+wScD1uG8V9hpvMvzXE5yykdcA
RWI2aL1uuAt1IgK81vNGKX69NDzukjo3UqmCXvd6cwcccd5ilPyU5fLsrm6AExvmw+A0Z6o8laLS
uGTyefFEiWwpuo+qZ66QaYzgQpe4M09xoXLw21Zo0yNqMymUwe+XlqIc1EcNKJWK0XYIBA6ICj40
YUfu88DxRj2tN93/fgr140GOHFZaRJzB12oqrEXCr2Pg6aG5ZmRuESiAaXcATtz7hfxavov8nmAp
ct/pkR70CPFdOvQIDqaFoy0BNV1id1Bk3dRXz9PWTrcPLByX0ZOfsjr00IKj6Cux9YFuqKozVa7D
qbRm231AkV+qe7nMI9MYwYTK60u+p7Rjto0gaSZIoJuUQi3kQGNRFspcdaBiKkb3IRCoICpo0YQd
x88DVfeBqcsfATSppZkIOMPzv5NY2rhvfKVYKhbIGtzyknEgnTmuiT0BV1IzNZB3FqQHC4Jrd4cF
4a6jciXHAXKJjpXOBRDtEtcDGBLRXiUTGpTl4Ohuhr7u8EqC4p9XvY9KOV9dCtqhCAxr06nhrfDt
hNAZwX4q3KJWW+SfbWNBmlmQSZAd8Rm8Y8cD5wT9cVkokVqWYqkafSMQOCAo+NCAHbnPA8dteH8r
fv39/A7v7693zKWqrngzaHDouPDtCfYoIXql+to6LQiGtUvjBsI0S9mVzEXBTzip5b7TIz3oEbbi
HXpEdybIlaofP6BER01WZfHq4JrcZwj21jsnSCzn7uKmOLHh3nw+SM5UueVYpsnpz4ttk0Ia6z6Z
XtlCojHqNbFP4Zjcilk3cqSe14JenEIp5EBfUZaOXZkrD2wVDx/sxi0ScUYk6sKJBtzofTYkrwE9
NwaEVOJqlYLB4Qq9qkmvZF8SzqG6ijEyd4uKRKpcQ50mIv0CURk/11Xu3HcGpAcDgkdhhwEh7oty
pcptU5fYHUVLEWV+hmV464K/heM2sp+dT4pJR3Oc2CCudDVnqbxKrbJgIT+qgxAbqnnIKI5MYwTF
KRXrhVLagWtfQGwOhHthOP1JLeRAY1EWyqQWlEzlaP8SSrggLnitRuw4fh6obsP7ZNG+PzS27/gH
v05hzZgDAhRbrfbEdiTh7KKI1ktmxbaTuA68Ok1X+lXDwn74BOK0w58Mf49k9ruFXPJ2dFWXx4Op
VIVhRzO23oG3aO8J/bk9R578IsbDAOFkIczLhADNV2lt+G2RHyLSrOVbpq7sTvlt+AgCVLOrzma0
ZNaNK6nmSubp7yiF36OvKAlVUgcqpmp0HyKBCsKCFo3Ycfw8UL1G+h3w4NeptO5E87iQ3gpdh8Xv
dzuV8B6ceMl1lLDuV68lOMps10SegCzp2qzduW8DSwtCpN5JXhp2rrib6BL71afW3bRpGd665mfh
3qKXkFpgZjXGXx8wZ2loOEvlfXSVtXSq8NRrnSWAoCGwRGMEz6knpmQ3pRWzbnRINR0ywzM8vVAK
OdBXlIUqVx0omIrRfAgEJogKUjRhx/DzQPQe5bk0mVkenxrodyyEX6cSjjCjWZfIUV56+oMeUKR9
7BECRcbGGJjVe3TiLBZFAuQ6eG47X9KCL+Eo3uBL+JtypQrmLrF7WSncpgoh3kX78uGjefL8pNkd
8xHRRx4WCicLb5xMWNHsspop2oRhWIs6s3C6pBojX3P9FKbJLZl140yqORMu9CuFYsjRPW2YFpU6
qQU1Uzn6D6lAZkkLXrRhR/LzwHXrBUPXv56f6gV3XIRfpxLebgNalJPlutykHoBr/smRgv1VtEZT
vUlRP2cpA5L9OHLbOZMWnEmLRM5XjqXndpfWZ1QjwsMPF5aGTO8JG6ptG7YleLOH2cLJwsMnEy5U
G4ESjMaH4vHY72t7pfu7kmWMIELXmNBJ5Gh2/wq8zZTgo4NjGE9V6vdoKMpBedSAUqkWXYc8YICc
8aq9ToYbap8HhtfkfsdC+HUK/mkOSFBWKdmv7Fsy8bkPm4F2Vrp0E7tqE6G8MZcLFB7OQG1swAKr
1oAVcNyvUXLhN/b8JkJxA1M1Saw6bxL7oT0zJCJFjh6YJrfEiQfASQoqzlQnGwI565iFTzC7PHWj
ga3ivbcOMlR3ybLMLmrJcvi513CH48IdTymUQo7uPb8JUamSWlAxlaP7kApUkBe0aMeO4+eB6j20
SyqLCH1+amjf0RB+nUp4qsvLMR0sYkRT/2F4E7wWi4HtIrp845crZlCi+AgXqDxeM2o7h9KCQyFw
D4HHORyQK1W8el1it8VH1E62CG/HRv8hFgusKCuNTUpQpA8rhZOFp254Mltu15TWOl4eKdtzm8bq
IVNkGiNoUYW/0UO2tOOL9d0H3AOqvqMQfouuohTUSPmol2rRe0gDIsgJUsi/Y/h5IHoN9Dv0wa9T
yaEosvXFkXPt7kyaEL42LAcFvRcJrjU3eFCd1vRsCM5aue3ESQviBNMaccX9/CgjujK8XV63MVdm
dw1gifCmO9jvhIeqJTSvFNMYvl8QK1VWuF2Hyk0upnWcO1R+l4cgE1o6Lc7oQYTqPVKNS5ow68ae
1GBPuE1O2d2/R1FREjpcNaBZqkXlIQ9gLDmBaMm+Q/d5ALmN7ZbP199Pje07GMKvU8kRaGBHhyRY
h3dv3UQqy5wwslkOmakqw3wGO0rEJUJRE3kht51SaUGpNGZ+KJUZeVJlJLu8bvZG1+CLBXjrBpAl
e4uESorVf7oR79tEoe+Fh1f0yzrF7KqI1olymsJpV9WNhDFIA9sDbEk4FcYFwZcv0D2YZUz8R3NJ
oQdyoKIoCe1RB1qlatQdEgEDsgIPbdiB+zxS14DeN+VrYBA4SirSqqQb+YcxTVJplVQVRScJLNvn
4e04UJWE311uuz9JC38SgG/4kxBZccWydhxklzVMs+pie3GXWoM4I9N7QIFqzZeTxWoA3+7hO6V7
md0G1qDDhTTfpVHZXQEcVeVI3H/WvaIeBKh2yIq+hvizbkxJDaYkvqMHfo+KoiS0Rx1olapRdsgE
DMi6oKEFN2CfDbxtCJ85vf5+agjf0Q5+neKC2ByHdYhd6DvlOwoBV/d1iFh2AfnTK5hM9RuBwYuy
6hJ0mhg5ue0cSQuOpN3J7PdkCWNtCt0lDu4rqLLEGzQ64hU99OhnTQbUKO9R6h6lmsP3G/zhwdCd
o/LqtYrCGvKhjq54A6p66JiPUKMHOarVN003Y9aNIqlBkRDeCIpEa3iaVleUgyapAQ1TMaoPiQAF
WQGLNuwwfh6g3l2gfrdkr7+f6gJ3/INfp5bOimIJocsp21BbSh50Aem+qgMohoKCzPhGygh6dI13
oVUJj5jbzp60YE+IBtJgTwi4aIy5J+7ycEpx9OPqPrgGrBzj7EQyuieptXQPN2R926CX0qp/W3kD
u+DMP4Ad7X/R0d2iJKpNwowe7KjsI3oyjwbYKfgCPhn4Ee4g62lZ/R41RUlokDqWXqkYdSMPMCAn
8CD/DtznAWPM4vOObfDrVNIKP3k16piXOSjbjYQL/L0xuFF3kchrLh9Bf2Izy2tTXLknkTd+2ImF
LXZzJTOEKrlW9J1ylziwhqsy3ibsfnh+zQn2Ihnwn/j/dM9U1d9vfLuHRXGOyoSlolq3EwmxsRSp
RBfDRcYg1Oj9mtm/GpcNn4bMshElJYgSzZAFooQH4PVKiVQWZcmylrDR61oH70dL9SEToCAtYNGK
HcbPA9RtcI9DFpXH5xrcvDCwdQG01h1DammzSI71DgFMyrrg38UV4r6dtEntuj06ghqFHMkzvGxz
2zmUFhwKJ7QGhwLZkgG/36XhW041IkKp/k1we7uRDJhRHQHwCVYz+H6D3zw8knPUcV5FcT76UIcd
+HQZVW8TItTowY/Kyp3WnE4z7BJs8INC0ekM6lU6IcdSVpSEFqlj6ZaKUXlIBBjIOv1ghKaBDb7P
A8xriO8BNUktxQzFiUJhXbafFcyWraO8Ed8m/VOofs1Lmek7qFBY7Ty8fteXvXs3lJNRLpHMfj1Y
uRRiLcojHghV6X3nt2eRMyR7j+pZqYdDsJrC9xvjytDw7+vwq2haW7Vtw3WdC/7SvcpaF8S7XA14
Tjg1iz7Lxo3o+9qGixEpsCMahqlZRZSC7igbnVIlyrYs/4ABGYFnSb7D9nmk7iHdeDj4+akhPf53
aW/To7tybGfO61fU2EBtMb9JQBBgXVmGeya0AA8aHtHuNhouG7r9/wG/uZ4VZLJ2nbN10bq4p5j7
JSMjYzGTmfH5WNWH5XQIcuR3iIuJhrds2ifZ14e5J4V/rwQHEsUmyDVFsebIbpbrajSpYTTBTlIx
mmh95anU8EgxxVGiK+oX+Z3SRtxhJKN4HYo6lAyG6xX0uXHE+CPT6OBrsvuc1AB+jxCuImiKGRo9
LKNaXQkzRPVUFptJGdd3O0e0gGTCE4graCFJekHCdI3ogydAgVvAYhQrjOcD1OUVUO259Y/xzw/8
p8iqUkhNQepN06qZHVhCVZouM30mQicL+4lTWEVxPJVvQMX3LdfVWFLDWEJyxoqx5LifSo5DM0X8
l2ZHlLdxB+jYvVfDLEquJfneHdVXN+4K9mEZ0P11oMdnYhLJoR56I4mJdlMy0RDy1cu1oM9vs4IM
NYi9LHaSEnYSqUULp+hyPTGFFZSsRk3F3nLVXSP04Ak44BaQGMUK3/kA81rS+2NJ7whmvpAdfKt1
fJm5TXHugvqHbZTqKNULj2yEO1glAuZzXU0hNUwh2EzUzK4MrWdSyze1UaMbHVfp/kNrey7GtpjZ
Gcy5ewhc3+hmcSDO9ESNasfaq6HkSWRcmEmAJXVYeaExl3LKRKscHazvZbGG6FqLua+RAvcjIOgg
Oagj0dkhYjYfb1P88Aco8L3CdT5ayzzed1k9H381lduPxUCiVmLP15vlh3rwtco6emRQjTtbn3vl
n+6Oyh5h/SQMSE5ZlcIhL1AXuA22Gxy4fX9yzLhpDRQ5TnOttYT0bQp9dAjJSF59KHeZPBCuV8CT
BFf9RB1o97p3ULKOKG9lU7IGKUikSIWp0W32FL8TyORhTDfi+yse1hGZOgvWEZ189ATCClrIkV6Q
L50j+OAKSOAXqBjHCuL5gPSa0G01gaiVOMH1aqEd0vJNGMT3IGe9+BuJzBmKmXkxPnEp16Kt6bnk
Qsh1NYDUMIBcv2TXAtczU6TjpjfwT1JHJMCnRnjuwdcLM7P7obhZhsH1jbEiCjl4v+6vUdxYCBzg
exDsob2T4ohhZXQbOCkMnqTh2BQDcCNrXPlXZMCdUzimYKlBG2nODhGy+XhD/PAHLHC9AnY+WveU
7nnIxfzxV1O6rqYQtRI6GvVKBNVOanzHj5C/XKVNJ9ua0nx0fEwKmycx+TkyI+g7vBpDahhD/P2W
McSlvzNuzsT/mCJrCZ0lOTG7Kq1KJDqcRJpP2Kb2HMPh+gZ90+lf5PVEdVVjlazoBG8k1IRKuSXH
VMEGUy/gDPz85krLsfEtXgwiJQwifL8xiMjgQEmzyhEuaVLvVw9ImI4RfXAEKPAKWIxhhfF8gHpN
6rLaPtRKqGL1LUzKarOTgs4BJUO7mJ4uTfIUvZjWwp29cJNSRZtI57/IdbV91LB9eH8u20dJ8Uxq
1tVAb7hmWJmqcTr/oEaBY0lkQILdF4oexLy6bR/blIrvrK5UHEuqqk9suPzL5Kx0LjAxOkrZyd2u
ZQOm95KXb3QUMWU3ruxokgFPIJ6gZO24+kCes2PEHNwAAHwCzOR+Bex8tJZJ/frf+9e/mtSrDqVI
RoeyfyE5NIGvDVkzzEklNdEYk0B6ftGc+myEZTPzhU7+QkuqdYHZIPvfcwE7fICcmM20hktIZRTh
3d1/aA6LK2zZMPthNZCW+4eG4cO6By00eqKOYTKtE6qRmWmYMfUqb37rXuNttmuK111be4aAT3BA
HkaRfv2CNHgCQQUtZEgvyJbOEXlwBRiT2wkQI7hhOxcIb7jH1nSyfvwV3Hf+gk+30rSV9td3MSX1
/PrdISPoNbrtQ+/KGL1rDB2AYu2ek1Vqauc1yXU1htQwhqBOUzO7rHtmStm8AsVBAk51hhans4NT
UhVHjHSShxCs2zUIrm7AOeNle1zMeWMHOG3IXHQ8IfV3dTqIHkVB3g7DPUuJyKK2oRJbzCAlzCCo
0TbDlv0EooLSlCD0kevsFHEHLxMEeAQYeF8hOx8AXuv1nbLg062Ed4PWxKSip7vU8NkxIoPCmbs0
tw1hZ7Grk1DYNV12/fBXWV/e1c5Rw87BB1FNzNR+ysXCguJwKbCE6rubiY9cgrMPGY1g+cMKIHlN
PHQKH9Y28H7Kwjns3jqlCa74+05xzzOttDCwM5rtm4U6UDKYYQ0si6WjhKUD/TiWDgq+S2tM+lTT
Qo70MqVL1wgdjgADPnfX8tC3YF8zTqytZTrjVLj80Vy+kxV8upXwauqbhQgLr/2YI0Xw4CaBWMLB
lEWv4FXQw8B5YZgjpU2ua6xIjVgRrF9q5pLjmdTwejC94VoysuNE1Vat+POFcbBIH2b5Q8XEkh3N
xmMRH54XVffXwXKDR4Gry8sHrM6P6Jx7G3YXqYSbDZslq976Yfb3vNg+ctg+ZPnKhykPP4GggpLt
HhshQ0rDOmu561+DH8CA093FPfRBWOA7H2Be8/pOUPDpVsI9sWluqZj11MpLhnygkwqi7lLKI3Kx
3MAiG1tVWFfdox0DdV1NHDVMHONuTo+jHE+58GNQHK4fsqH+goEPlm9HiVDbnereVvvgJ7poGN4+
rHvQyYwa8qObUOtEY6gHu/Yqb/yGaUWODNM18g1Odxk2ig28i3kjh3mjXS0kwhMIC0rIkB6mZOkW
gQc/QDH5BCC4X6E7H0Auc3pWQfj6d07rcSct+HQr4YesSZNSls5WwsXqQdUt+dYlkMGvpuAC2Pdr
OReEQx9q3FHqavWoYfW4GlOYNZ5JDSdF08OeSldk2Wp4tWh1d3wIFd+nxyEJ3uwU3h6LefOkyL6/
uhZt0t6MOAz18ELgnUxwOkDB0Gg2ahb2WU2f6l0egJfWJEdcCE7343qlXJldogpKSJE+kO7sGKEH
P4ABp4BU7Ny/5pxYWzGtx52q4NOtRLSB3PTJKYVWXsrCU55whyqi7lLKOx343IpRl6uH7VIFvUHX
kZq3xqSEgeOK/SzCd/DMFOZCaxzRiRQkdP7BCg5XH1R1F7sfe/PqNHy9oqtp4fsrCTxEaMqyge0e
bp2vxVXGC9gZrcWSrSVYh0Xb9hfjRg7jBo5iGDeS70dIQQn50QdypWMEHhwBBbwCUVHozpplYm3d
03rGf7x//atpfScw+HSLPJOvviTFJoX8eM8OBsGfkwJnichoVbntBef9HsZMEuGl7m+1fIxW+0YJ
+4adzna+1eztFJZCSaKgOJyaVrWYpemMqnTBG8YumJ7xms1D4fqGnuxD6bLQVVek3SToCVnG+DSB
17TWIkHVn9YM/NxxVbOPF2DAHpYNorm7AdSLYjFBBflBHbnOLhF3cDJhgD/AKQ7KW/NOrK0F8p7l
GP74K8jv/AWfbqWDBG5IDxvMi6I0o2TbUP3bkTgEK/SmuxJFD1Mmek6Z3etuV7TV4FHC4GGHMwwe
aFTtEMCu3xSHk1Yqhk1H58YRTEu7FCUyLsDyh1IZJEdyLiYPtQrRnx1DJmpXbaIaIReZwEVyx084
tP7C0Gg2ZYrXnVgyDWLPi+kjRyCI9roZ4wcVH4vnR7poIUl6QcJ0juCDKyCBX4AqV1DuoixbWtdq
fucn+HQrEQYsN/SUiq04U5LYOciwwEueSGeV5jJFTF4PsyVnXn106s68KWPB2Ag3GlNmNe6f4jxu
Wnh/zk5I0+DpruXLQSC9mFXKyySHYq/ZhmgVArg70hom0xxyaPPc/AxPeW83M6PZWCk+d0LExP50
CLv0J9kJsjRgWkiCJxBS0EJ69IJU1bWEHRwBA7wCT3E0/ZpYYm3dE/vYkszTj7+a2H2FXNIiedsh
KRZp7SVcJjYVlBWRlJyJTMZVanMmmV8EuQCMLHO5rAaP0q/Pd4/mFGbnmdQ4W5vWvt3dZC3NrRmt
HHxhA4HhD1UOTUe/rm/Ys6dD9RPVVrNJqjX7f7cfhx3D1PVQLg+YesFl4Lsq7+4exAveG3aDLv/A
CbnvRESiYNlBGZm6w0R1MtJrAQM8TnDg/IbsXK6vSXxnI/h0Kx3Ufm8WUVc3c1/jLVlURs7iS/Or
mWEt1jZWWsGRiD8hHLOslo0Slg3cQwuWDfIp6alEPeCguDvVdIvj1YdrwhGB7K1Z8tpDBObwcLi+
kU2eDsVPTKklk5ry1OYMlz9MEZpu2Nd0um75WrDnVzp5GHteLBs5LBvkWpJlQ1KZ9yOuoIMk6QEJ
R8fJ7xqbs+a3MDliszj3zZpUYm0tU7omeYk//mpK18c6Xi0zJXizLLHezLu8QdNHktKHiaB3nC9d
Z8S2uNZwIkqRqU+or2aPEmYP/H4KZg8clvRUcjGRsO45IbH22cHCR7o4+1BmB1h+geyBzKvL8LGz
kmffWwchK0NClrlq2CdInb0gMROjWc0i/maN5WLG97yYPnKYPurVQg48gYiClm2ZW7FMo2NVGDA/
wACfuwuzkObqBu58tK7JveaxdHim8m7NJH0p4QM1bUKcpnvUQ87iSzthjhEkvLEpplmDpbVnDpPg
2gVTIQqektZ1d2pYQsOoQwy1OtH++sMFiqgO4nM0psooclI8BK7vCb0xGXx/HaRR6/oesil0BiPt
bbM2xVr4xdILD01muX2pbOYcgOM0jWvYN/Q9VQtJuOquhAQdpAd9pOpuX8IObiYEcLm7CEt6XwE7
H/At0/i11Xv/+lfTuDxW8mJJka8PCWKLmQcKrBz9LoQ8UgKJuTBpg5yvVTwBX4q0kbmsNo4SNg5u
LNg4uFFPpUaaLVPccU9QV4pUhYEPe+Vi42jYL/Ho1zW96foCXa1CHsR2eJJUk5qClp1jt/znXloH
4HgT5yrugEzxO1SOq9jZbrF15LB1ELwhW4fkwhNTYEFpypEekK473g6/iLJ2tOJXtDo8kzGsEJ4P
QC/45z5sWjGffwV/Xk0hRGgeQ9n7kGSXZUYiHoAvyWdZ4ZQVVgm1CytqjxqcLMyyJDuTJNqmC/4w
hLAoFAwhLPV6KrXjpkduI7rKu9++LMRycPaC0gw7ZvMYvrqB3wWOjv+NNTyZSFOUuGj3Sv2HH0CS
xcqoYc3U3ll1O2DeEZsX5PHprm4hC55ATEELCdLHlKs73jgfcMrKfj2TIzbhfoXtfIB4reHpsYYn
BKJTVpaY6OjFuIM98OLH80b2VeVqP8RyBYliZFW+9fC3Weit4R4lwj1w/lZzqnT8THL5F9MjGV1y
tULtEJnoSlfjYI+2eyWirkX2ULhe0c2ST/cTlcqiItUagRXqo1eKAUj628XUCxch3FxWlSE4SBN8
Uxg78AJnempJoBArNWDqYXST6SNdd7txDHCgR8vmE5Dgf4XvfIC5TOm27+9f/2pKp9UKolYSd3vD
uqmTosx3xWEevUruWfZW46HRTKBs26RwV94i07OO16sVpIQVhBSIBSsI2hYbE3FJNcW9RkdZ/974
rOur5kCPhm1T23VVHWAgXN/AD22jpORp2DaJL1BETSOsQn3gTbDPHfNmdkYN26a8kLTxYwjTk+Sy
gqSwgsj5Vi0kwhNTVEEJGc4eplzd5Tb8EmIDSX49gTqb+xW68wHkNa23h6ljs0jIy4eo5hs23osD
PHD9xPt5c608xfwXfz2Pa8FO4KTvNfilFdtkbHs0OXn5mTSP4kFtx4adSFehSY3/sSLNHeAhJQcM
f8iGz0C4vrFVUkJy3OuJSkVRkWo6uZ700QvFaedEU/XXydKoYcFEVy7DyYbf/2LsSGHsqL5GHtyP
qIISUqQHpOuOt3HxAxhwCkiMYIXvfIC5TOuD2Xz/mXO639kGPt1KyqD16uqdImjTHPeSrqM88A9s
yZb8ARxJgykgxaacWFxliq3k08p5NYLkMIIcdzNzXuOpOZ3rTXFv0RXOhs2RmlPYjvJo3cvQENrJ
Q+F6RT5JbtlP1IgNEz6hBNBGSqepibtsQ2Jo1GHcd+GYPIQ9LWaQFGYQHZLUQiI8gbCghBTpAem6
2637TeSkvZlPQIL/Fb7zAeaNeypj+oM//xr69IAeeQ0lZESOh4xyEnA3+FQyDnO+kvXPXZqgt3Wz
4YkgT3knBs55NYPkMIOQpDxjBunxTHI5INPDkEJHuKc5sk8la+HsozWvUocCMquHwvUNvSySs3RQ
w7rJ8V11BZoriMjJV0k21XFX/TxYGjXsm101GKuHMN0MLlNIClNIuVpIhCemqIIOMqQHZOuOt+ZX
UeaQin2TOs8HL+/7Ct/5ADOW9H5nIvh0Kx0UDMS62W10fUmRqS1ptM0WV6ftn+8jX71m22YjTG8j
U5sjPlarh028JW3RyJT95Znksj+mh1MLXWkNh4UPKtUysZvZ/bA6SNyt+oY3WoW896/767DGQPoO
q3WU4EcJsNVpJ+cjtYBq2DdlDVAYzRzAnhZ7Rwp7B1pI2TskDe5HUEEJGdIHsnXXG+cCFwmpu9/E
9g5IjGGF73yAuUztuQ/4+ldT+85D8OlWOgS85Nhkj33NR4d74LBLygF8QZNOIL3wSZRJBuANImlh
5TY4FtgBXR/8PAR6i/unlOtNa+93N3g2OA2DNn4O92jYNkVlVA1h/l0gl7CG76zDiaq1OyOgouAU
q12qCrrNeH2xMn23gJuae4dZx7kgAI8Qj2LDNOf47CcQEJSQ3KSPPN3pxiHB4R11N5eAAvcrXOcD
vGsqP9CcgpiM1mHxYGYtDutg9azSB2xYn/jEMLlS67FMT2yqTJeO41mtHDbpluSYHawcxH9QcgjX
tKC3YzSj/KQ2CZVC2tKEWdnZilce5aWWSkj7w4emgVahNmfDfBmEWiRxQfwCSQGZ0qrD0qhhvJQB
V84gDOOF4I2sca26ntLgTsQUNJAg1JGsO93qxQtATB4nOPB9Q3Yu8N1TN7/E9v71r6bunWfg062k
D8TMqzhlN2RcfY3DgR2URyQR+oYVa0MlQGB9sxWzGbrir7JAXc0fNuYWvPRpko3WTyXXczLF3SuF
NBZaDMhfr+2J4zpaEccz7m54HFzfWGfPA6l/XlLU23toohE+QWE1WZ92pphC2CjxVMu1ah+us1cc
FbEYPlIYPrAIFp+TR1Tmo5yTaSFFekG67nzjaOCgjoo1U1oTiuqQpH4B8HzAeU3mO5nAp1vpIL2a
8NVXOSNE7bo43Vac7LRGDkmEDXBz6GXzYlsiY3fOq2UjxyfQoVlYNrygF4mz3dRIpUJH87BeyYcx
JeqIjobFUgSsBdI5/qFgoFVIcd6wWKp/1QiI1DzVRgh12g++FoqTq0xjFtyNL7IW4iWlVYriILd5
H1nwBGKC0pQe9JGpu92y37YMrmYSaGB+Be18QLhMaUKon381pe/MAp9uUZp+dw1TOSirDHxpBpy6
1V3uEuTm13pHiZ0WFk1vqqhjSmTlArjhHjRy8bYtW777TYniQnSCqpyE5kolgMIEM6b8ncjRpRFw
vcLNPMh+olIyUpEzjSAK0e9SilCAR5FeMDRqWDHZVG0ewJ4Ww0cKw0fxNXKYdyOgoILsoI9M3e3G
ht9BHbX5vczvgMMAVtjOB4gL5EdN71//TsjbI9csrQ3doNy88tQBvA7GaHWn9W1XxZwhBQBpxF4f
tYx7iDeUr1f0/YOUrxXbc05lWcCT18tkT1EptR3ep6eSkwubnuMqlV/nZkBl7c3YhyonTm4J2mMM
vg7Q1Sp8DXR/JV35vLXJ+f6EfpeLC6cgSkyTcFiH4RfoBNbtm0ewb+lewbfkFZyYH4zQKuxnKQUV
5Ad95Eq3U9zBDSDApksA7ugxH8lml1as3bWvZ2ZaMqvtpBxRvNugVm9jcy0fJzJydkIXVRKtZ/bD
xSUDKukDydSN3192sTHQ3YrPp1ijKThWy/3UDMbLN8UkBTGdkdlOPMwziVn7oBYRFcDIjKWx+Drw
JZ8W3m16oiocVtosZhr0eyY6W1EM8g2Go0GQ5xvMjrF5DEOsMTyuT4+cFiKZ9yOroIMU6QHp0jNi
D5YABFYBiiGsEJ4PQO9pXV7/e//6d07rstZSdou6JnLBSZmsqqruuvHx9idWyzdbZFn9enJo1TD8
ZJl3fgIO30e+dSY0JvycltXMTh1OHgTyrwRFZxbdyROj10l60R6cfSj7FyxTRpOh+DrQV6v4gKDD
ArbQFx0nMhH1LqM5nXY5asPPSM3gyxWwbx7B2LfrE8716XHTQiDzfiQVdJAhPSBberbQzRJwwCkw
MYIVwPMBZ0zw/Mh7QovMTDLDpkI6B5VlJxHQyGixlEuR3KNKadCT/YSr8MUQrIi0OlzbI99maxoT
X1cSmc3s/GV6KpGxOCjOctfuCA2bNOeKoYSvD/xLiQHTvGUgvg58KXRM+mj8WFs3HSvURb9LmTE7
7fiq7Wj+Oy4q5DRrm/nHndvoEnnkUdNCHPP+KaWggvSgj1Tp1eI2OwAxuQQeeF+BOx8wLtN6lob6
+ndO6/RQl9DCtX0j+6csONIadNk0c5iBZs58fUW7JsGtPAF08uA0QCf/8EjXoufGBJ2EwWrmRlKb
Bug+0R0GXZsDdTZQohWUoAXOPnQKtm1MHg2OMViTK9MqTrE5v/Ys8SqllDvmeOn0N7yXKAZSL366
rKQTdiXCqZtHMDdZsR3h+vS4aSGQeX8PZQnAD2p+yNNHsqVnRB4sAQa8AhJDWOE7H2DGpN4elX5o
YUQ95BBSpHvXAcAVUUciA8pkUnluP2ST69uVhlsKseKq9fmyDPZ0q1Bsin4JFqjUzHbopjTuwS+m
l3TmpqtBDpT5OZCGHb60HSvk6lBRH1vUnwV+pNvTgqjtmNIDU44x0u8podVrR0SPJOyHmb7b64zz
cdnM/qjHtRnh+vSgaU1ZzLsRUVBBeC4IIJnOXhH1xYz6hUvAgfcVtvMB4j2l69QufP37mtLTK+I+
c7mVlJde5cBR/w0zsE2TGPXi0D5P4ch+ddg5obDPKnGE1dlpsVGnSEaY893MDW/+4tju+YsJellu
FBn/Md5JuaoPnXhKZJhmOzbXsvk1WaJ5aBQFPeneyjFGNRWkKpdi/dVQsin6m9aFZE76wFmY+hab
OR9LuArX5xvjpYUg5v0ICCoIDupTmPQ5JRysTLnDIVjA+IrS+WgtCLdNp+nH34mwqsZdCNOSYX6M
ompkryt81L2ibTLhzNcdB2xtFBtb8j0bZ4qPK21c7egv671TcWPirE0zzUyKHJ6aR6R2EaTaJl0d
5Z1E+DdPxNyLVyVREP9LSjpdl6HYDgX1VyIw53/SnF8vmg0nRMp6viYgDLx2SJM+O/W0meGR92vL
wfULXg2TFuOf9zdvsicV5DVpI0N6RLiwMUUObwAByytE56NleOfp7UbwdZ3QuVE/QycBp8BlI3Io
57++Ffr1Q2rGRlWGSGBDEY4ko14lZXeaq5gBLJvgw/wwxdX7fX+miINJzVql2Z2wRNN3C4bk+gGj
xIuJ/7TkAHlTo1gpNhFUeOOLRNucR1KE22Bo1eeow6x0EtaIx+n4AeODrx8w6vr0UGkhg3k/soEK
MoM6oqRXZBz8IH3Y1FmcancXUueC2jJLj00KkMffOUvHmvfZLfE4o4IiV9BMdjedVPRR6YryJwsC
JeYVlt52EttUo4x7PKov/EZTOpbzknPul3w1MtXueSZP26SJpYbGWx4D8qdR74MM5Zy6SSesM7f+
wy5jDcqhONI83UqhgkOevnMbBy5It05MpWJZE1mRNyX3k4+YeOxT8TWrHm7j2k1wfXqwtJDCvBvp
BBXkBnXESa/IOfgBATMqZCb3K2LnA7+YtH2tc+wWme1qxAx2RWK8ljx0s304wCldEXSz0tzhgIkJ
pxSbR/aR3fbgS/lBY6J53M2MF94BnHITNTlYmJ3g26ee97mXNENKPMhdygUE/2WtnUX2IJUj1d1V
PoMiUg/0JxDHmR5iXZMIZoiXmO77ygM4pxIFyY9+nQC4Pj1mWshi3j8lFFSQG/QRJ/0i5+AIBGAV
ZBjBitn5QPCewi0fMiI//s4p3O5Ilc9ooXBx/UFt6hULdBCU2rWJKe1SWM+xoFvgpNc0fVyWjqw1
x34bK3Q9DT86laqVZ/4BMq5wWDKlUGRv7ylbgS4zjDnBF0wc1my26/J5fT3QmR9TbvLI1+Ov9Qvy
OVTFwyrqRo5/h/VDZjLXOfKK5a5TkiHW9fzMyrioFsPnCQQTlBAYfSBF+ka8wRWCh10AYRQrVOej
FXO3rkmH3MoUotaU6FpGjqnGcxFvrZGKFuje80wGWUrRtrzQlIpzMHu1lu77fQzS9URTntVqZWXb
54nMUm5ayZuuCRtZ/eclNRaCJXxIFDGsnIAaQFvTA6pRxLrurrlCg9Cn07RbxZKo84vMtjDTlXhs
Tl3pNafSqnDWj+/LvDo92HmNCOadiMYULDNoI0r6nCI2L2+IfrIIIPC9QnU+WsuUfb1O71//zilb
7gSon9FSQOhQSZCkdMF9F+QbMqU+xWSNzJg/8ntk4EeixKYJ40YJ2sXlZ9jjZ7pj6zrvZIYB4f2i
k0h9OXdUvMT6sOIWtDFSoSsGyeguL6w1QwuVdFET6ROWpW/EH2m4vh270zJreurYuZOsmBEqw9Eb
PM6UjZPvjrkPeEmr7pHSQgLzbuQSVJAX9BHj7BXhBjeIHT6Bw+wvQJ0P2G6Q+zbksfn4O0HOaz0s
t7zx075Ux7ZOtIrCF09tm6c3ihTQUkBEqoU55+QmgL4IlRWxy33c5x+XCCn4gaiVyXChJxwFK0pJ
EiE9tqqQNM6q9eJmr2ZSuRyD9+XMr0bRJHvdWxOOvVU6JR2SoVuUkVDdNaVmho0uZ8IJM4Evm9mm
4I2Bto8dQ6WFCOb9CCboIDF6sCDVMyIOnhA+vAIKA1jhOh/gxdqc1ug4t+QV61AClGT6KKRE/GXX
siBbed862c6n2+A06+H1QeFZVFREp7Z+qy0auWEKeYnUypSxrcBJJYQf4KkPH/XtpQpVwlx9IIOf
o5hNvffmfq2+rkaRgut1byWqNvPhcNXChs5PXgDqsqlQA7zwZZyY7j7uwntfkld2565kvLSQw7wf
8QSdKTXoI0r6RcjBEeKHV2BhACtg5wO+ZfJWqaWWP3Pmbndujs9oyU2hKyCekhWdFJ+5aDAzpkvp
MhqV7aWjarbXgrTcfQpI447Tb+NwJf1TQSVdSfYkdx49kWfhDQiRGb8QKoVrsnTK+gdz8/oUm0uV
94b5/eGQqt27TEPz5ioXaYjUrs1zQ1VF2XUCKpRgrBadWuXVIw678tfBeS/1UmB0OxkxWlpIgScQ
T9BCbvQxhUnPCBmOED6cAgr8r3CdD/CMcz/W3MtuUSt2l8LW3wblZM5E6XcVIlFuy6lqmSYYbUhe
+0/tgyreNEwNghxKvw9EhUxtpVIGHiMmWn/glAIVRe6mMDLZY3unyyRlXvCCVz1cHvhiT+aPNYej
GsUB2NLXbnzE5b3aSGMw6bdEoSxFqMkuDDNtOM5NbPapkvKustzHIWeAZsC0EMS8fwonqCCzZruz
6LvcqTLPmx/ED6fAwghWwM4HfMvMnTkgv/59Td6+r+5bbhU59evLkJQ6Yc70pLjsCbWDwrIUo/N1
m9+Oqvgp8vzUg8QBoD29pu+9CNcTaylAMt2T8QsjocKGIZTlu4anoLwodyqQyq3e/CSZCuFz7rng
XlehtHpdF848urduuhaVSsYPk2/MBkIVqo6VYsflvN9gtE/NldjvqVwHg+5tQJUZsPgYm3U30gkq
iA36SJN+p5SDH6QPp6DCCFa8zgd6N9YjNx15H38n1mMtHO5WGdrJT6QV1IlqyCm9XuN41yHttR98
l4d3kztG7sZ5+gJMkCvRE22xADcMwJVwBwJQSf4olGXRhAypCESeaoUH2XG1dTYnSQGJ8Ijf1uTc
V4GzWqWp+LPuL8dxUZo8aqVWF9Xn3mwrQDJLpOw73+C1Tc1VbTaVxT6D69OjpjVFMe9GPkFFYmPp
TMV9IuHgBtnDJ4jA/4rV+UAuVul+x399Rqvs3vZFBfV5AO/aWGp/JX3LMXRKn+uTAJUFF00TJc+1
1acw/O07/sEJsOCjoX9X5XSdjmQwMY1MAjlNMWVTlYu6cv+YjVSITdVWS24cMO7rQDPjvsf7iKJf
zqWiVZ37ly6qPGzo+bXnMUNT1wCWUmwNvrsKXjrujBJcnx4xLeTAEwgoaCG52QfCpGfEHDz1FgW/
5ylZ6jGOogtk5wPAZe56b/X4O+duu9OVfkarqu8qI7ky5HUlLE3yNDpfY9FXcpvPtI5HtZgfEqAs
OjM1zvRsEuQa2rXxJG9ukSFT/0oAI4DLWzjqA7nYJ+kGs3sk6XLwkmqkXh06zAb3vr7MC/I8rjoZ
VadkNaVaROeIaA3O0kk2ucMc4YgxEY8a3UcMYI+VaV6dMdidzHbN9yKaoILMoI8s6Rcpww/Sn1yC
CbyvaJ0P7GL21rUglVsqlNUL2dzkpOBqTE1galdD6hLldVaUfiNFbTGYUqsApmbcvcdK3mIR/6p/
lwaAeCZ5upoKicjJCLBR4F12PVVag5lEaKKYTNIAwbyvA021Xuun7y+y3kCnlmyToebbGM7V3hTV
H/xU0BSjM3UT3LdxJwzm+vR4aSGGeX9IpxpPtcgbgJV+DAs5+EH8cAosk/8VrvMB3j1z963Iovv4
O2duWQPX3NIprqt0Y5YesMtpCNXuKfvH8Z7SHQy9D6lZ+3t3yWNVRytALRz7JZNMyHyRhzr/bh8K
ifaikZXIcJ/eQTrOiH7aCSKDEbJ+wSLO9LDu6wBareJXTnmTpAyEVsWFz71M83t6p+sm++vkqEkt
NqEmvmgz96RSNdTOjMt4aSGGeT/SCToIrdm+S72KUH6kiyMAgFeAYQwrZOcDwJi+eZm881pb1C7P
Iu8e5U+QOoaMpuTciQKlKop6sHRRwNaIovCbMlJ29ysnHxn5Gl5OcknbuS+rSjXPy3l2QDcrQpfu
ksNLkAvqDFgk7xes+9rqWVrFW3oFhu7pcvqo2V7t6qUq2RCdV6pii6uWIuAKz9rNI+AYa0R1/Rp6
QY8nn4CB2+tm6QQdxEYPiJOeEXTwBARwO4FhDDdc53K9TN1aZOZ9/J1TN935cD6jpUIKXbVdsoI8
2x76ySETjTaqFEWWVJJ8mxtZRjkB1MEwhLXhDKVktU5Sfo/8e07cm8lH6rPIjGjHbZoCVC7prJXD
zCS5icJmUloz2Pd1TF+1SmGHLR0fSm/Rqg7+dlmsRuK/zel6YKlhzX0Tp3J1hP1Wt+t8xPXpAdOy
HPQEAgpKiI4+ECk9I+zgCRjgFngYxQrc+YBxAX3P8oZ+/BXoa3Z0t7Bvb5QX0FmdaggU7nP6/oRO
T0sbhQbapkDLA9AxpQC6rHTjOlIQO/ySmhYx/Tu1q4QDwfGHYZeigpSBcoOi26wiXcFQOrADc4SX
EllD8HUAr1YpbM20JR447qiQTrJbSMEhSwmn1Tu1BmCrHvjdwG9DucUw8nGdHrg+Y+BqIQ+eQFBB
CxHSC6Kld4QefAEHHPtF0EhWAM8HnLF6b3cZps9o8bmx9V27QHxYdnLrNHRFVct2IT+M4tgVb6LN
4URY7iwgTFzIrR6w2bARzzH/PcvFBYTnJ8hUsj7PkM/T4qNOswqrBTt5k/2Hdf4oZl9Xge0xw1Sl
ata9RUsCVOrmJD9lSlau9+qzOixbx+X9MK5DExxcJ09tSfTTItGPhksLKfAE4glaCI5eECi9I+rg
ChDgF3AYxwrb+QDxntQz8PT969/XpG5LeffPaCmKuZGK1mnDUdPHF4d6vFm7ivk9VfIPFRnG+WUi
TsopIS7v0f165wdau9KT/7WQskh4y4xlIpmy0iJPxbnZaVacTzCTEyUu9F+FtcC+r8NpR62igHOe
KH1oeLsEHDsF+eGWeRajbyy/cFV3rPKw26auq8/P17VUbdJ9aLTzGhHM+xCNn7fQoIwo6REhm5c3
xA+XwAL3K2Dno2Ww235HbX1Gi10fHzcHDzBD8EKdu4qkNGMtoVaY71WltFMi7rsqg+gBohsmgSts
iySoRZ4T/LscHXR32epCJktPQAeZMHF1nBWkEQzlFFb6uercQ/B1oKoWvhg8UZQFG1qTNSVuIrQ8
c35ScmctCvBV5QE/US2ekIfHUY/90oVwfXrktBAITyCqoIUQ6WWKlr4ReXAFGPALSIxjhe98gLlM
5r5JB/L4OyfzuN/5z2g1TvxNhtfXW1bJbYdDUit4vGhPQuLTqg+O9heJEkFvlcTaG/4LE97jdsE7
7IAnfR3/PhWQG9BLzZjDDq+TujrIPbnbLIVDMOQkMXnY+6h4AL4O4NUq1HQn5czrUAulmdDyFP2K
g+WO27kMSsSUKKR8Qj50TjrMfN33SyvA9enh0qpObA3gWqVNCdHRByKlb4QNRxOCySWwwPsK2PmA
LyZzXxbneT0JzMAddAIK5HytbV5VqiLxphVUxxhH5mqPS8Lbt6pSeomTktbVlO40XVyf8jIq8Yvs
cTxRlN82aOXdZdn1mZTmkpD/VszTPMyG/iIry+Lk31eXO6U+ZACu+7HGTSplR9UG9aoaIfTKdgl+
qpJdw2dFs+VSNuN6Sbk+PWZayIInDKooIb3YkGkhVM9IO3iaKMDpxAX+b7TOBTlD+Xrf33V4IrPA
hSqtPq1owxksGx6KG1U/5mqSpB3SV+dHduI5SicknQcmsvrFPkbNNp1Yv7ieyMZ1qQSFgqvOPqaU
ZXOjjzykWSb9Ke6E5irLSgS/WbKfY/BVYKtWyUxzZYJvCjrEZXF3LRL1UbfIxdjmemmeapXygzWp
ge0uH+j49HB9esy0kEV1oSB9VUUH6U3qyJQ+kXZwM1GAS5CB+xWz84Gg0f3b+z/eZUI7kpIEvV6J
1///6397+8//7v1/3tj/Qz/W9+31f3MBiUfOz7c//KfP+v6X//X+N9Oaphgy1pTXsnqRej3hxAPN
y/8W5WI/pFhvqrn56VbPZEmTJqdRXU5OagPfSzk3EUCvrGMjo8VSiDbR4ap2nlzOpcjIOmTFmAAc
vqbaeXOrdaq+4ZBTLkoDf9KMK/LujmeG8nJxtGvjBa+7PquMgWtGNzMZqEVVddTRRV6dotUSYcaz
j5mTj34r/ly16NRE/n+t+8qlDv81h9fu4evTY6aFLHgCKQUtiY8uJFSSIGrSmhtQgE9jRUzngtv5
QPH65KcL1s2eEvOrrdHIciEBRlFDeR/vxAeSabA5jQNpv+fGWlGdUlwUmd+HQycOXZ1eFuc18Zjc
20iqYSqdWLmDOjI4oVdhXS9mhqKD4XJocsM81zFmt+hTTzSCpESrudgQfTSyPajvOg2LGD5Y4N/g
djrPp1jar2DFuD49ZlrIgieQUtBCfrMPiZSOJergKKG/maxul13lRutckLuhvKbv63/r9JWjq1HG
hq5AGrnDIAfFZHZiSQ/C72T21xvVxXveqB26GWfpUakNIK3nyPv1fg9XpahSI9Fq+hzzRNNSFbSm
z2NyLzPlcHLvA92C2Rp2m5Mr3MzUQcCocAqsNxn8k+9tZLAqw3Ilhivp6KS4TPU7F0n4mUXTQVpa
UT71KML6dq1KXJ8eNS2kwRPIKWghwdnHwemNwkZ+9xzBlc2qcNIAbsTOBb0FadKF9G2awSbSLgEs
e7qRHtbKTaXVD9wX22Gc53cNNxpqhSgTLInm5gZryG4wUXZArT5WST7e/cLYGx/MnDn0T033N7lC
BZ2usrvQ77jjqN8hl6tgaGAvePE5CBIW81xfGNOSXyf3N8K8cN7KqHzoo6noG31XVYCCK/vUvsFt
VQqR6kN5sn7w8PXpkdNCHjwx5RSUkB99SKx0LXEHT5SqhdkfOYZw4XUu2MW+Tguw0VTjJZFZJIJS
tDhtkrH4nRzeaEhx6VRNgSy78JD9bcIpD24SwWv3MXLEGRy+Jg4sWjDPE22nxtNuSOUtpV46G4Kd
kA6p/82Wa0BQOndXxrV0+OqGVC156nA/hgcotXB34+O1DW83qgwTwVXdN0O6W93VPQ50JQGpM6Bo
7LSQCU8graCFHOlF4nXnqn9hrnIwC1ZkPb5hO1cM79nrrCDTD3t6C21R0Rlf6gBcUR3JCe6ra9SS
gr/PD+mM+1NY0NwX1PBKG4r7i1KXRP7NIB/Ck5SELofP0OFrMC9u8QniibbfhTkV/+c+OskLKQ9E
WJZ4GvKGdDndcVwj4PpCnJbUjTzRSP8gSkzL0300Mg/WOb3kVcGBWdoLYjX5HO8eQ1VxusA7Ujji
0ybtHX4UJLqVpIIWMqQXZOu+27WynbfbbLHn+yAAdxnd0vgZ8tdxtz8gH9dM+KTRye2tBVN+Sx0m
0Pomae1nbFfC7eHQMUnpjke4q3eKS4oOYOZ7kjPFO7tlHUMP39t2gkTtrF6Z2trZHs5NMl+Ri5fR
DltxJ8AKShEdrm+w1RrJ97fGS9O0I5BJCX83ZTan16pn4We6FgA1xtpk7ue+6tp9dWce9OugtEuY
fUZ6jxTS2TDriaPaTtiiZ3kTRzZxvWq4tQmhkd4XqM4VtwVk0oL01Pq+gqw0BQGyGj2RpeAHVWrn
vkog2wuW7Ylih5IOAf0ggpuUnM4z2493qs6jIxiKvw+Yszdg7Wo1Dkd6oikZeVCaHu7Vfcywk+q+
B5G+5mqQpgd2FXjFKLi+4SbGQfGvaDGagglRW7kiBr00pdSk93qQayCyicojXRxXn3+at1j3Rqx7
Iza8XZsbscP3I6ughBTpA+nSt8QeTAkOuAWx4drm93FiafwO7NT0zgvmID71Aj+6k/jiD6gyuxPx
Q8dUdGuxvmZtkMdWrd9WmKTyIRQykuXwyjl8DeLFrUZgnp5oe0QBgni+1vDqQzuxXTdPo+GYIWZZ
hBKhoPuyO3VLHhE80aS3g1Yr2D/opZHnvc6jj3zHxFNEscFtHfjTN77jF9Y6LmNT6VPbLn0LSV8l
paCC/KA/pUqfuBCaGYEAl7mZ9Qus8778H2+BsJODdErUXADvi1KE+ixaFupVsJTNCvvkJJNC1wkw
tapgAaUUESwFOyRilFKwZKXVuD5mXJ/6jHW3mnwwuH86vgad+QEe7qEr1QD9DsramaOZdmUEqzql
wj/XN8BqDRKcEgKRTakVOV+qh5ZI4SEF4jEwOLxg0Ykq37UG4Z9zVYBrI0+Oa+TA/UgIOlNu0Eaa
9Ckxw0qt4g5kxPIC0rk2fgY3l6azVBTvVmjWdWzOFk/HQYRo6j05YI9Q7iYf4t2+dy/xK5CbulnA
K3slEUBK5jB3WbE75VoA+7rNJI+UCmE9Nh0SQ0/6fYQX865A7nHxMyol0Emalvxydl/f4CZLavcT
Td730GrOjU8vLYWzZLGdCq7qzs47SSMqZZhcv2LLwfXpEdNCEtyPjKCC5KCOROl1TxczEn+LfFPJ
zC9gnSty9yrt9C9TJ9IeMLdVO0JgI/b3H1SAnOUMJFY5xSeJfvQrtEm+dYmdEwbWTO4SCksUPjPh
d3L4moj9+GVa8eOJNtjLQYuorc0gEypMFZfgaAb2BqOj7eZ+Xl0gz2t0sJVEtdTeJADRDtSDsHIC
oaZfiM6ug53TblsU3oTaoRH2NO4PULVbKCOmhSR4AhkFLaRHL8iUvvd6sSQA4BWMNIQFrnPF7meg
y+vDPIGOqt06lFxA47OkL750EHKD3lEYYIdJeXuJxZnnX4ucgtPSrmg+YEbtOTfrSV/ZS3Gd2JnU
Ts0qnWnZGifmGye0zRATZcJMlqpGvVLXPLgZhXwBetGa9muJgqx1VY/QGoQGUwOqXLRa5AhQL40T
ZsGup3MN81ecYGvuUlkeHgnVoAJuJ+MtyddTHtw9pRRUkjwZCP3b3KfEHMw0nAbIta2to0zox7Kn
XBoLzCSK+QlmXnHDzNxIcvwjZ/DxLh+qCNtN2hqTPi5RM0c5hXMi0wYa+Dy6dZ9VxnSySbYLbhd1
6NnXjTmYECqZOaDUNTvoY+agPNz3UGrw4GqUYHYoD9gcAVc30GoNJbkuXQLspmLna9NviXox2i9s
Mu6Ko3pgOYFXvHrnCOq4F24itbWhmlUTBsZPJoLWAtNAclBHovSqn4MdPNTsMvFjN/MLXOeK3TdA
v87gD6D7oi1Ro2O4IEtze5exbOYElP88eer05k/3gKEzSHFGj6kwBGhthigqQWmGdOsTuD6lDKxu
kZ+MJ1ihglbPu/voSqFC38z64Groowa7o45rDFxfYNOSDZwnWqum1JRdmx6aEqPOftuWL36qaqtO
oGVs2rFms8G6NUFcnx41LaTBE858YlpIkF6QLH1L5GYpiUtQEusLYOfauLdizhzz2kTmJKhfX2tB
fSxaEjV6opTxD1K/v141fR1dTyFJDdi1LKVOChXylJB6UrZHWQWHiw8QmH1vxYq3Ynh7F4Tru1Hd
Bp2eUX6S6VFec+TroeyeORpU9xOrQ2mMGQHXN9BqjeL7W6Nm2ECqbMbUR9NHhb6nJ2colOvhPHSp
SbFVPYY6bkUv18qn4mtkwf1IKehM6UEfmdKvhH0xpE+OOAWnmcrtWNaqpXHP6oC6vtbvFepWrs/Z
J42e0Ib8IGC7v2vT0AmdmT7YU+Dyv66K1ayOUuqHYx0HemvFtimvA2bGgDp5OybDUeIog9Zc5sIu
53PT6hiUqeuk8q+z76kkyxdHI7eLVczTjIDrG2q1lN9r2BOgWqGXFdOobZn6aIqypO8Zt5rMVT2K
wUZvnW2QSouHynF5qDB2WtmuRvIGwcBhWsiRXqZs6ZvdYDA1Lm5bJIHL7wtw54riAjlJZi7IZ6lX
nMtuwMlrPYH4EbH6Saee3nAGSGhGiXQb7JwUQUyCbAVjhEPYoPQYNZDTbcLj+pSZtrqFoxVPtE5q
LWh1p9PSVJRnHr13sp2ar5GpEySDGVlCGIiuL9RpOWselSYaZzltiXALoBfnF8D2sukQ3vEYdGyV
i5DLa18jqa4iC+pYKBg9LTus6QnkFbTCu0umapSf5FWQ7IOvQdJ8GbhiFO0eXPt5L35B/hLsCnnf
Fo2oGp2k3lTnRgWvdbVl9mlyvIy84M02YvLxoKUGdn2yXZpKsbLbca17XEdOHloE/fPE9KMLSmiy
6aPLvbJ7gdkNuvZp6TC3wyHHJA0tq/6EFh//dEh+w3RaIfKEHpoO/fTcSCsSedne4BMlF/zj9Guw
91Bb16uFLHgCKQUt5Dd7QKr0i7yDIwFhVoUVB5MbtnPF8AbcOYZ6o0rkDXhdlClqTFnJeZtihjP9
EoYOp69VFPrMcEY6k+pcDFkJRvuh3ZrgQelVCmeq/drRcA3cya2WSDWHU4gych0EMXUbw7v2ZtFz
n6UbzdEQw/A6cHViCLjiBNx2vyw+GBBNmESpEb+KE3yKbUyRV8BhfqbmUlHP4nSqveCfuhUBt9NC
l7BfvTY3O961IaGgg+zoAZnSM9KGI4FgNqtf1uN9gexc8fsGbLmdbDN3MkkPFo2KGp3ir7J8lBKq
UGc8nnbWpB3sLn/A3ZbkrLwy/dA3XDXqh/abhfp627Wab6zlqE2GrHaH722kXBeNyGap/b60v/Rp
Bam5GYkg/rkF62Z8Xt34dntYD1d91EYUFSj5jk29KeEuvWI6hhsUmCTKwjksm3u+x4ExMfKM1l9q
SYEnkE7QQm70gjzp3WpS80WCKxgmo4om4g3XuWK34KzA+N72Pa848zkIbxN9EingTHBnlGkHae3V
5Ebdp6fonjEo/pCnp1RccitSBQ6cdAoVufiGH/c1ubb2+FbLNm23HiW0DFo9kUlRKMhdevZM6svg
CG8GV13M2d+h7Osbc7XIQ+8a6NptkEazoL6mj2b7nkS93Wk262Hnoo0sgrJkNBzCy7Uz4fr02P2l
phiMnpiyCkrIkD6QLH0j8+BqJ8Mo254fOUZxQ3euOP425vsmbSmGlMDcWezelZKxFxJ5yehRnURP
VaC6fGcTOyi9qRS/7fth1KWlnnEvGCP4gBtzyoVVLU/+UG9kVdpcEjfodAogs4YovSc9d4zT5mm+
N9XcTivVoSFwdYtErRFW0uoqnVCaso1MBMlGGPpuW+SIOqTcBHGFzpIVFJczgRKIV+/TOGuTbVZm
bD2BpIIWMqQXZEvvSD34EhwuKyq8GMcN3bniuGBOpqIuv8EV9H3RtKjR9Y4dpIRXRGROErD2appc
M9kGwVQx6TLehLudkQj4P4jT2v1ZvvdqxXu15k981fa0+In4qNoZabunY1cqCXrvHBDM1+uTYG6H
lnUGwfUNvFoSz7y/KQoYOs2p2+mhKV0zPTeOEOKJCPgJu0yYKiHHKOoeuSEOX58eOS0kwhPIKmgh
RXpBuvQ+pR5cHclvnsLgSozhhu5ccfwG9OlC+Gpv08ipmiaLzoVPpAwyLj+Nqk/fj0oEE8mtSXWZ
dmaitMForhWFN2FnjVY8Rokv9aV42dhY12YAJFByVOvLxN7MtDo5nDCzYlq3f5T6MF/9IMuSUmyw
88Aqx7fxAl6t0Xx/kxUcSuSNOt3HFP0sLIN1Kv2I4qxN+YvImIjWbfc46j6Wvdvw3m2/WsiEJ5BW
0EKO9IJ86R3JB19kNhDDoDacYP7yab8bN/DOVdXlpbICf8+HTxrk6yARl8LUkqrj9ErO1qTA846D
usLsujytM+m2dnslkbZH29IZMi5f3wv2AD3ruinBE/eSBiiodOVehz6uCfTbKZ9jjijR6Fp+2vgz
BB8CAnJaA192SirrVRGtKdxIT3LYeYbeOXjDV9vsneSUVMWjqPt+fcK4Pj1qWtlV1YqlFHSQnwPm
COgnbiJjqoInrK9iFrQ0hn1dyJbGN5DLBHojvkx0pvk8DmLOl0dj2Qy3fFUspKqsi2QyzhVfEofj
HQi0RM5FMk4e3YYQ9us6WpNTccPnRYoF7K6mNHMu0gOq09lrx0xjbvpBXezN+4Zh/rm+oVZrUI+d
7FKHKbVK4Sx6aGizDzQwOidiiNwcobPhXyKQW/GX/bKK7XyBHTOm1pQG9yOloIT06AOZ0jfSDq7A
YXK7Hx7Avkzsb6a1d26B8WsHNzHG/dwo4+Kvk0nio1o2a36KdjVyWKEItU6lSfrPLsWBM+ns9ko6
OEUrCJLsWFd06+HrUxGr0WqUF0HPWY+LUtNZhj46Vbc5oZMj21x1tg2FGvNaYKjZwgngwlut0bzh
qNqFV9NqpMR3Ly1jipDLiupzTK7aZq+kjdO0PuaNSX59xI9krOVg/o4suDdfWWNJiSrfioSZUUa4
TBpN6XTND1jAKXhpAAt054rjN5hPn4YV9L5oXdSYwuqhaqH6iEoTv8T7Thaa5AgbIla6U5hwyHWp
5MPugsr1EvaJANxFJhqHd5xF7MKooPR80SG+hh46CpVOPu3Bayi4m/l09ID45/o6s9JSHg6pWVDS
NlI+UtIU+k42xlrPTk8ctY2C1HCK6oQR1CNK7B2+Pj1qWsiCJ5BS0EJ+9IJc6R15B19WwxAB3/3O
Hu8LcOeK4g25c151WUMn5AeIH+s0Pyyx6WORLeUiNdD8VroGBcpuOQLlDYs0+YX03dztuoSLvzzK
Cgqb497Nck3a1e7W65jq+xvpHE1p5prY3UdHaY97En4Y5spqmsybUz2KeXWjXpWVKMIeGoW2cSeo
kThVu/OMsy52aU326hQ6wnx3mki4r8d9CuH69IhpIQkns6xOoPNOltzInYRM6RdpB0fgAK9gpSEc
qwpxaXyD97ST3XgnbH9XkIikqpJ+SZ4IPaMe0IJfSSiZ2B53JXDkieFikZIleGMCkdEEL4rjPrRy
rcSrV6suT5BKKGi1g3pSWhE4Mqjv3nAHdaGDofeN/Po8QXnE46F0pjUwCUr6CjWBVnPibnpplCXi
Cbv6KJhqlgl4q1f6hd3jmB/pa892oHZg7LTy8sSUFXSQIPSRLP0i8+AINODVmJFHecHvfKC5QE+O
rJ+h74suxoVTU1Eq9cM1iynU3Ct5rinzOiM1MqGO1N6mxvFur6YDvQxx3HiF33u34r0bu7pio0L3
E418zKZEpAZ9UH939tzrbtAxJZIVlZAw9ZGKry7IaY3uzxFp6ZIpNdWEO90DYRr03FTCFZ4a5X/e
qqOItojkPm7tItenx01rSmPejYyCCtKDPjKlX6QdHIEDvBorctItuJ0PFH+GXOaTV3v6mAtzea1f
mOM/n8izTCL/OdmJmIksy9pPNbnVEsCEB2bD0+ww6ofdkmZCPs7bty66X/laObvLzswmgL1VxUHR
RUt3SgxRn4qQ64Ol/eKqD/L/79oMxBi4vnFXa3RbXKtz/E46rZJ0y8YynJt2co3IV1UcNbJOvMFr
20jXwVn70rgepFzlzD7ekQT3IqOggvRsLMOEVogD0jJjjsABTo3WiAwYS4zQ0lpQJy9al4L9gXpZ
dDG0psSaE6D0jFN5Qv0l1KW2UihzliWpKwl/xto88FAq7MRlTyjs6o/bysT16bqatCq7fT3Ryr7Q
ajtqN+2y8UMiiJs1QVz1TgDd8Ju3exRc3yYItWae0B5Wk8N0mqsQ0ENTmSp6bsozDk8t4aUEt3gp
uYbpsV/j4/r0yP3LtvlQXyyroIUU6QXp0jtSD77Aw7np7Lk93lf8zgea32A/da4T+9eeHuzHoo6h
1RN+VzIXUzYe35FKaDz5tnHzJ992l79ItiHbmQM5de898m0f24X89n7l2j42Zdqe95Fp288rn1Ay
5S4XqW4vS9SwZDwl2zZcdj7b4r6P1RvMraG79ERTeRtoteoqvzhiKRCf3qfXufN/JzbnygpOajvx
X48lSP8goR/j9S9kHd/KJZ+g5EzlOVme9IukgyMwgFcjpTGsqJ2P1o24E6aNjaiSG/F8n9mkVifN
oHKJ9Ex8wfCM0HaOFVS2pKyCcnPedKU3OpzVfKId0T6HMiaH8tyI7w7Yr7eK3nm2MSApG0vQaoOi
RhzI8GeknoZWI/PV+UrnfinQGYmV6ddsJy+n3ms90TpxBppJlSB5eiEBEr23nM1VS07FfKCnIcnd
rT5nhFale+z+ZUMfUy9pBS3kOPtAus5mJbkHTyACt8JMY7jROxckfxv1V7ODer22uZ9udemkU8Gr
kwSySfIlD7tQbNTDxOAyc+nI3ok3p/Kw4yozNHK8XvuFukP4a/x7RTuv+1spF51G8EGnRKFwb92+
48HPnP3DfPaOK4u+SFRHC7xpqT4zT7RerPEhh5i+FFS6VGl5+p52rkM84UM+U2+Tt0j2sYoW8bjQ
dvC+xuxf8JyjwGLH58vp1AlAUA9IlZ7lu26OQAFejZXGsOJ2PlBcMCedzpBa5oH5/mOd67tl1nVo
nPujHiqZ6gqgO9ZrCjoftniQgCKUNRP1SO3QlX2/LvUEj6gnqOz7xS2syzzRiOA3LfsI4DG9kexH
ahsUNubLPjP5ssCkdFljbuTVclAcZcOkA0Y1Ux3nv8V6U+yf0JRSBa5Qp1A1gQM8o2jb7bzL9emR
+5fNWRksqaCDDOkB2dKzFTbmCTTg1phpFCt+5wPNb7A/ntCXOwzr060uH6/EaTtTeAE7i8L9j9CS
TAfXbLsHGSmmNgXgwxllbuNRo+cLdof6V/zPSOqPPi6OTvWi1AhIxrYiMxw9z+ndzBEuM/Z/7tn8
z6sb8qzlOvne1oMCiTBO024lYgyH7B27uZnaFOBGSydHqNqsWC0X4A7zr3v8O+Euuh8JBaUpOXpA
nvSMnIMnEJi8GiWNYEXsfOB3gT3tqEOb9kjGI6TbqqEhc1KiUIOU6mQ6HRSncpT/oemk48dMVYka
XkUg5HA8kdYCKtf8woFvvyc407vpqu7Nh/LsnDOioJRC1XQbxz+OhHjJw4kS7zfzODf0zbxzfW3f
aOEaUKlRztuirXnjAEUvzQspuVGEpcsvkSEefpsCKuYYSI4USDdv4KLg9NzA6Wndn3u/6CA3ekCe
9IykgycwgFsjpVGsqJ2PViRnYWd6wUpZyKR4/S4F1HCFI/awE1Siy6ilqW9xJ2cdLgZMYPZsigol
8n/Pyy7NUf3E66tV5RPmCE2lSIBS60G/KRaafrvChoOjXqNW6dD0PjQCrq4pTEvpjLjfxSsJQG4k
IKOPhndzH7JudPPTklM1i9OmnRwjaNsdM8f16VH7l409mfQVeJ2bFvKjF+RK364pZa7AAn6Nl8ax
Ync+kLynsjMrDe3KI+OScrTkVQNDrh07ZhTJclYw1B6okOgzYcNUfmGU3YcqiUfF31mCYfO5bCZ8
DiVsYJ6se7lVqhW35BGG6XRRmmMd7qNhnW3EOZaLn65sk3DqLD7in+sbd7XsUkMJFJYu7ZUaugH6
IHk4fTcngtKbQgn1N/jFi6FaBXsHxHKtOinx7wntDfk/SXTn2m/5cA9I1Znf2SGap4mD00qD1QgV
+Jqj5W79jLk+0g/M26p/UWvKjCorLHOHfFebw+mpsoJaOjtP6QsVB7bPMzO4qyX9EHVW0J0G8pv3
acXXVFnhfnudmZJPy52Mzsn9Tkt4vjhy1DjeK5X8/dvlNHE7+qo1Dt/fvJ8jSlMfDscqSNPS0X5q
+UfzpXzZURiH6O05grbdAf9cR2Uc/yJZcD9SCkrOSJtJQscOVUu05A1P4ACvRmsc7ytu5wPFBXNy
MA3nzrsxb3cawU+3Zg1BF7jOJc5fDorJG1VE8dkjGO1QBtLsc9PEW7KXB+ZMNtB1gjDag1PlLLXS
3SK9GPez8gUlV6Fsh7Se2f36ZBZhOmUTn90xSJuvbqSJQOKt3RRdEjSIxz1NXaVBMKeWzZrv5vMS
dXGGdtTZ3M+Ze63rCZeVOV7/O/qvRIQhGadc6B7TqPpAnkofzonMHLlst3g1RhrBitf5QO8brMme
d2Pdb9+BT7e6kgKlkVR7KqlYQ1d8j/J+yZLPXJkOPDJaz6gqbZkpq9NtYZlzW1uqJdrS5+qXvDb7
VZBoMvmJeTIdF62mfN+9UQOzxOzd0sXP5HGYU7yZ4Z/rC3Faiv3iiaYCzJNSc0QqPeBoRL9ksYUj
MsxPzNGU6S3lPZJEAnMifhm3f0ndZjjkFJSQnvMS2/tCDqWH41zZko9kXo0Vuaf76vOxtm7MnXDr
G8zvLDafbnWSitsQqS36Qdgmdi9KOeD1mytzvCnQZtdeSzs4gnhU+be0at3XpXEZTmLBftFZMKj8
TmyGjlSR/JuI4NYca2V/Yywv5okIBbjtqpGHVngxmc7rfbNevip2MJvKjPBRNRViuXBsJdq44N+o
Y5tyW0/U9W/KWMkIqNQWqLsWdKv3L85jogjiPdsoroNYZa4Tu7fZVaNa4sFXsolXljYQ00jSIwfR
2lqQJx3TcOq1G/mxBo7T6pv2hTsmc+03N6I40ajP/WZypqrMnmnmIt+7rVv6mmeOzHzN8Ze6NOpD
GvWCD/mm9BiH7400ld7BsaPUHmZ4z11V9vXmplNfPIMpMzjSDy07OGf60ht1VedLptWac4Crl0aV
FXZF6NPJYJm9gxO/TWsGo5g7sutYlpwcj2IQ/JI5zFOeitOA93DsLKlqKrnSOxIPvtJVIzC9GzGN
ZEXvfGD5DfIk5rqR3x92NCoLUmIRpxRxPvX+Vf7CSvdfsmwZQ3UiJu5Jzps10iipDE/RWl1chqdf
Be8PX0cZHlrVR+9qzVW5aDX2aC3JhjTcc6O4ljnqOOkkvvg6W/A+bA8rGi2pdniivd47KLVGJVT6
aEqIR8+NItIbOm+SMdfrqJ6v3PW3xzbXVx0lfrmO3tmyClrIkF6mZOkbiQdXYDG5NV4aw4rd+UBy
wV0q9eGETuRcnLAfa/49eyhv5Lol6bU8cmcsp2sm5RIu5aSUrw7uyQeB3q6cd3kvzQkfnsgBO14t
VWHgtOrlabXb+BSUmpIuOIAIb+oKZNoG5CguKv0MJnX8oNnwbWsCPrd2nNtlwB43rdZwv20uFob5
3OVEfjTz1Sj0/FYvP6bukeCNHNBXb+3iulz+Vt2yCkpIkT6QLn1nRcTCE2jArTHTKFb8zgeaoYs5
bgvDp1td1QRI/djZdaCozHikZpIwKEoqEywyqyRM7xd2mm8lA5G+5D1Sj187uG57Y8FHVc6CKGPb
nWswaLVwmHe6WPpt5AUxR6S7hNcmhyPGwHUM3y1OVztWU0FNBpCugiA1Em2S+Bpv4h45FouVqihG
5UnLKOa9l1I1O06hR6J0yqJE2k55xpgS8qMP5ErfSByeQAJejddOAa3VOrS27nntzGzDmZ2uiZ23
O7b+062+kWwKT3BKNON4FtUl7qR3Po1X2US3JSb1rZDvTWFzpfNLFKY5fD2xv3+pdmK0X/CPK6JU
ye+ye2lXbkD7spgrnbfJ+b7HGObVhfq8Zv80DqdTgQIn8FOUW+MshQNkj6TXRH++wSFp1ODcdQON
98HurS+/kEhNTyCfoOUTeqWcZSQFRNLBERjAq5HSCFbUzgeGC+J4rw/n/rkRf6RIptVVREEmEXmF
ZPbWmR1kplSEougyPmTyti6kF5AieeIdOtCqykmqLXyhrXN58Td/5lrwnSQzCxq4AEK9FeLal7we
OXba+q4n6yj0de4+hy/5M2jZA0pfaVLao43teFHRyzwZj8vBUalx8X+rvH+TX8wcjMFVSUC9OMqY
wp78IlnwBFIKSsiPPpArfSPx4EomFnFrtHaydK45ktfWz6g7N8yNel5j0WjNWuBDRTPAfZ7IZPXM
OG76s63PTybyXKMoSvtADWkVarIWlFJNYWAL5DnHVjxt2l2NkyemRrtctPAb8YebNaeEFfHmy4aR
dBu8GIlRvvBXa6eOODndOBujdePUTy+tNWvOsj+q8NUqpjxX8aQQAf4qYOs3gJRjjN6/eC8oTwHS
ZJgWkvSnm0+6ekf2wReowLGx00hWHM8Hqvc74HRu37wDx7KJo9Vl1c14JUlDmYULmXJO2QyKT03z
DEL24kMaqBw+qG+lEC+sRCEdne21jWv4slR81hoxfeW6v+5oUKHUtkjofDi+wxEm0mgEV1Rrs0aV
HcMW0ru3cW6BJH5Jo92ame5ab8Su8Du7BUrHiC97or7BMT6RjKSVW/PItWpzxb9LItyPrIISUqQP
pEvfyD24AhH4NW4ax4rh+UB0wZ8sb8OZY278y1j2eLSmr8AeOzl57mRMlFlcEGLgmmDknkAnMexN
OA2J8puofOe1V6y3nprrUwV6slsVzXqNRFo3rcaWvPA1JWX/5pU0myfv/hJWKrxppC3R9YU9Lexl
zqmlbwRmyI4+nz6asnPT99TXdXPVqstlil/v/zSOu0LwcVUIZuz+RTLhiSmroIQM6QPZ0jcyD668
/xO/xkzjWPE7H2j+jL3zitzYE0sV2OOpKkN/JoRA58dMCuOMn1cmM65KTzPztcvLm3f9Az9Azd1Z
Pg87V1R3PK54s5rr9UutYQVtynl5XJQqtl310VRQvctSpfvNERKFV8W9bazS94qoa2vc0dSig9Eh
rWOzhTqBBPTqsq7iZ74tCm7gYCe9CiMgxixQz97r7fcv9qpOllFQyg7C1U4PK3Nn9pORCq7AAX6N
1n6Xrr9QX1oL6iT7cwzbDXpbDa20ukInM47FSrGRvZ3CbyLvbKmLtquov6nrTNZ1Sr6hVqPerT4D
F+R87FG1VrkWOV057mzOjTQjv5Jpu0REtgNZcPI2p2qJNCA1XbxzHX4Fbu3Ny4SMlbg2DvtMEB/W
oxRJ8lIBR815qOC0VeqMocRdvCaqvSbwfOAXHCT1BPIJWkiOXqY86Tt7E2pXeCEweTVKGsGK2Plo
3WA799vPYK8ZHml1aaEynmfU4nXuCezY+Qj3oyaHn+6Ab7LE92IPyBaONbMgs85osjgE5E4Jj+VE
rVpJgkxxIKJjoVXJD1zIyBZuWuFNFny1vJvfJh19tzZtrenk1q71OO+2UTskccATPUw3JPol3huO
yDgw57kjlD2CVqPQ6OHr06P2L83OL5ZS0EF+9IBcZ7/ZiSRcw5icn6TyAC/xv2J3PpD8BnaSTdy4
66tx4a5Wl1fu6wtjjWYmn1ByGVfCzOSxV/AyVC2e4h03lsSCt8trK1lGiV0fiBd8+mqmFIOiArRn
n3fXfi8b2LCT6VeexheRrEHmyHme0LdiJ8CvOK9BnG5ZE659AXZTcgQNlzoEuU6Zv3yttvDFpJyo
C6FG/lyqGSyezi3KWZT49xZpv5vlFJSQoFd0SZa+kXlwNbGAW+O1d+//lt3c0lpwJ+/fcOIBSmVM
3MfqFGcrOXW19832mCN2bU6vPL21w8ZZVPOZ8M5SundaE/fmU19Tmfpqa3hgz/60psM7NexYxU9U
PJhNy/bYHJHe9OxdnnlqhKVuUeC6eRS2kAf2tJjFeqIRUcCubfBRCQunbavK/AlH7LNeHOFz0ZpH
EFmzQR37OKP2L5wMW5OMggqygz4ypV/v7wYf0s0Wlx42enG/4nY+UPwG81jjA/N9zcxtq+lGIWXm
PfF2nIxOeX91W7kKWZqz9nCc17R+TcRlF3uNG3vdEq1oC2lN4/qFeujz/qrEvEGFmjHQnw6IYV1z
dKM5ml5pSXzaTktuhrQm5nZrJ/6AOU+4ON7PxAbSB9Yt+m6UxRBXxAxOvLXiNn3WE1a7du/ibCNl
5P6l7b7fZzhTQn70gVzpW1pc8wQKcGusNIoVt/OB4o250z3+jDnWn8Acu5lKG0zzwC4Nd5JnPjtj
jQffijQ3PiUzz9mhFs95fdcJ+5VNsRA3JPtYYI+trKZ+2fIqKTr1RJX7Z9CqfbiPetUsG85gH1wR
9gu/ttlpHLaVBfq0qFFGoioVOoTWPBVRwiLqn6lqmc7Nwzy17mgW0ob2zWPAOhbIYylj3P5F8pj3
I6eggwTpAcnSLzIPjkADXo2ZxrDidz7QXLCX49RwgPoC/TLZD9xVCp7kUngW/IiTq0bgWpGG8s13
p7118EKmiJMVs8qiUHBIzUuqEZtRamq+rqQKpSYYwQ6mNPPc00PFsSINp1gMfire9tTnxZSzpTCg
WBxRsopUzJpgUnVCiRCB0z042X3H6HOFLVC37A1Om0ITJv/TZGKoO1u43YYUK2p1pwMcTAO5QR1p
0idyDm5AwCrZiZC4v7E6F9x+hpio5Atia4cNsjXqiqC0llV6rZLC1zBq8fH9JJMnBs1pQE32utF3
vGs118Gk7Ju15wE0614lFQhl4TKRpcR+ESkHpdqGe6BsJz3XET6crMbYEfQLOn2yvuxrfIdbe+h9
p14jmRKVcE73MTWfyun5TnlAOGqdrGXwiq6UMaA5D8DRos9R+997sxb4sJSCEvKjD+RKz0g8eLIG
V9wasT3sHzG2tbXATvLH4djUG/e0Jp2wNnVmbyQpvTKjFZV1fu2K30/bkUjdUtCFJrxkmv0YJuJo
ybW7w2tB+tJy7buFFDp2tWZd9nhi7ozGRau27B5slVPPVR5WcFRH8GkN7swIsK+JJtwia+OQPsMU
muu525425tcke68MH3FMhkPv6tDP93s3GtpSRutf+n49UeT3BSWkRh+2yo1uGQc/SH/yaXzI4pDW
BBNr68bZ+R5/xjmvFWijhXdP1bmW2jd9swa5KAbixxGxhkqwWBqnJcollBHeK3NmR0zCtWezrqxS
7latim+jnqiFsyC0FLeoPiqZqhMlunW/eZqYDfNqHdlxXPq7C223Nt/fyLnaw/uGrLOcf/F5HHao
gCOK1kzE2U8ruz61X/sdZRvaMsbtX3DO0BNIKmg5dlG9TMnS85R3cDRRgNPAZntfMTsfCP6Mt2NR
F7z3ZbcWLcWi4MG+8f6xW3cRiVq8kiatTkT5vsZFdYSE4gnvaX24d1k80q2nCL1J5ZtBnUSKk+uJ
WtDxambPuoWiX+vhr0pyVtXgqJJEaqPkiGbgQXGbtuzUorXxWdY80opBEs/dBUDq4ZV06oVI2jLM
EVlVJ+b4UWufx1o7bg1TaE8Yt3/BlqsnkFPQQoL0gmTpG5kHV6ABv4GSvroLfucDzQV70nwOxyXe
2JflS65rytByppVFrIatiuhK5pX2nq1bRzdxp3R3hgcSNCW+45ylbsVknKLrtvu6puHzVtc3vVyU
aokeag2/vSp82sVTVfkkuPXJWaOI6xo7gh+kBTr8xDznDNOa30lHXfyILAOzb6LO4YmMHi9KaRi7
Q2No40YdzDnzTcS735jDEgoayA7qyJQ+kXZwAw7wCTqbNR8X2uXn77cze+4PnDkdBNJuaTZW7bnk
K1ja5lVT6ww+FMRk4Ze4xdqVHUUysd5/RIx/2YdPToG0T1HoadXSRl131+zoCm+Gk/Hd5/fU/VYy
TJqjag94MNS5SWOI60CaFlpd7YmUfBNaKK3li23PlOrMEnx1HFsgnJuj++GfU1Mg3b1fG/Hv5CfQ
/Va5D44v2PTRyLEPo7jd5i8O8W/t4jPQIZy3rPu1pWW8vTUMYN2SCZ/EvHODRtjIFk4feEI2vZK4
HU1QUWjpY43jqdJNF0LE0208vLbPW/NrULTNqX6iEqBuWhVvSfVR2RBuTQ6l9eKoksR3bsbYMov/
uDaobiUrbrWdndAQPLIDabbhsb3Tr0vNEu5N+YQ3eG1KN8MY2DIHsN4+E2rOL7jP6okpp6CE/OgD
qdI38oYnUIDXQCfdW/oAtn2TjN1+Mbvj06hYqtKVawxqtPSVxWtPvvTzyIiuKl+WXmwSRd54WKAL
GYM2aYXtGa28QPthvce1R4udleYirbrFXXnO64tSta+O9mh4RGzs3Q9r/8KHsphb76cOvvxrJGq0
9J31E9tFq+3kaaAXLBPVvifap1GwdqdAbrV3tMxqGOb22+vj2l/tx/2LfZFVgYL8P6aFFOnFdvS9
X3IPvgIRTR8jpe//guH5QPRn+AlfuuHnQxLwu9XNBh+/oiWIhLYoC0N11fVRIrp/15vdBY7YwFlm
w9c3XZ/9eAH8ud2yD/mzsLVUcBuizhelmnhCy2sO9V/X8povrmru5tYfWI0irg2/W1BiWcxBZ7dD
Ji4Ru9Lvp24TFRyRHmxCP/xh3T0CPrIBvT+4ou5fcHrRE8gpaCFB+kCy9G2Zm6tAI+mlAKV8bZUu
6JfWAj0ZXXeHMd3YjwX5Ae5SgmvqVL2ifBQxBR2XtMue/OnctUEBEb3IKDw3nJwJIluSwMUavSVf
V9S2ur+SZduUKrWg1UeljO9xGJN+cVUTYTscj0l6qWmb1myY0dKy4Se0aTCtzcqgekmc3ufEG+Zr
5l2ZyOM6rZy0m7Z9F+qSEiFn81/3CJQplpEoWHZQtkz3UECn4OUNFLQNEjIstXc6qPv6xtlpXH/G
eV/zhESr6XucPVOaFqeQJNtOsM96d3dd7xoVb4G+WRQMcGruGm8H8ojVwqlIhd2WffeUY73oVCog
kEcT04J6fh1/L44qwb3k1Z1zUSPgKlDO7wSTx73FFOxmb8pKQucet4WXzbyAyB6c77fT9jUb51j9
72zIjkU20AmpaatmaSoxnuXsPMBGoMSqIP5XxM4Hft+gTaDSgvajRrFbzZ/hpuvJN2G8jCbFO0Ba
cxlxy6GE1kK5eh845zQ54e/gpOuNOXbfVSW56ifqpv2VKNXtpl8xG4IntTnETSXFEhlyjYzChra1
SPHdKtcTqkhrSsXrDH1orvpzOS6OyCUcvFIxmDHcIRoXTh43v1TfVSyloHT3gUzLJWf4CQRUvP3C
qbyvmJ0PBI33397/8b4pX2Z6Hwfpt+fC+K//7Y2UivNbMl59Kln261//8797/596S8j3ujtTWLwk
mzSP6fWCbIo4Sa+OoPu1ldTarqtfvX5BD8rjQWt808/d/6+WMdGD7thuOut1H6b4z3z+oAO9eZa7
KT5bGzT19xe7qSAF0fYg077p4u76F7t0yO0mPJfJm9Sz1dTarqvfO8cHLVHdk14303m23MfdN1R9
G4/Xx+P1G2J3J79SJEGvm/I8v920nq2q1nZd/Uo9GfREWQqvi9az5X7u/n+l6A56UC4PyuWbfu7+
f2Uq2Zw1HMpzh3fTeraKWtt19QvbW5CD8PEgdXzTzd39L+y2m/P1T8IkQg1SzxZ3QZirXzkDBD0o
z+/CTfnZyqYcV79yLQl6UN6Xpepri37u/n/lqBT0RDmlldaz5X7u/n/l+hb0oFwXuvWnPu6+f+FH
CSlIjoXM+EI+uvyFD+7mMH4IHssq+LXVvSbG1a9cuoOeKKti/EXr2XI/d/+/ChQIelBuD8rtm37u
/n8VgrI5mxiU92WV/NpqXjPj6lcBTkFPlGXHv2g9W+7n7v9XAXNBD8r1Qbl+08/d/6+CLzcnb4Dy
WFbJr63qNTOufhGuHeREuK4L+5eWu7m795eNimg8Xpal8Gtr88IYV79KHxD0oNzXlfFLq1yUy/eU
v6SkCHpQPta18Eurx8roq1+lOQl6oqyKJhetZ8v93P3/KmnOZo9xKLd1LfzSyrGG+epXqZeCHpQf
6/eXVrsotyfl30jkJXqmezwoPVteF9r+Dc2vCeFEC5oqvX5RebaaV7G2rmHv3+SLFB3Te3xhvrTY
2vI3XvxuofX8uPXZssj6IrDfylIapCBaHmTKN13cXf8q9W3Qg3J90Krf9HP3/6tEykEPyo838Uur
XpTr71KOxNxBD8r9Qat/08/d/6+SvAc9KI8HrfFNP3f/vyodEPSg/Jg9X1rjojyelH+jFEXQg/Jj
/nxpXTujvn9L+UtdkyAnwuMxiZ4td3N3/4taOUEOwmld/b60tiDsq18UXYJcEH4sq19a13ZuPLZz
v1nAC3pBuTxolS/9BOX8PeVnOTjIBeH6IFW/dBOEn/PvN2oJQi4IP7b1X1rX9Bv1e8Jf6lIGPSj3
B63+TT93/78qdQq94Hk8aI0v/QTPz+n3W5Vzgx6U9wet/Zt+7v5/UYc5yEH4sUf40tovwvvvEnZR
7yAnwkoafJF6tsa1YRjHk/D3VeGDHIQf8+1LawvCvvqJMF+pTSuSKaeL8mPCfWmli3J6UPYZovsU
+KCcL8qPCfellS/K+XvKnNcelMtF+THjvrTKRbk8KXOGuChrsTPlelF+TLkvrXpRrt9S9qHwQfma
gPtjx/uldU3A/TkBfTrpPrttWkdNuV+Ux4PW+NJPUO7fU+bs9qB8TUCZYm9a+5d+gvJzAvrc8y3l
awbux4PW8aWfoLx/S9lnt02LvylfU1AWiYvWs7VfU3B/TkEfqbrPbivl45qDsmjclNOXfkz52L6l
zNZom5ybborzy/HQGX1ppTi/+Cro+qzVfUJaCV8qo6M8SJVvurm7/03C86tiyuWiXB+06jf93P1f
lDnEdR+9HpTrRbk9aLVv+rn7/0rZB6QH5XZRfky5L612UW4Pyj7EdR9mNn0JTfk6gB6PKfeldR1A
j/UA6tt4/DGvvrTG9fh4MsbXoh2v/4mx+SE1Y/tF+TGvvrT2i/J+U8b2QowlN76W49vE8pvd/kN3
v9701/+RWxgqx/v5+faH//TZ3v/yv97/JvJDNqMmj6fPt2jtVlTQGtIClC4L0sbIH623528Uslmv
dzQKPyhC15fnD2txbi7+x9t//ycGmEorVQPU5vejF3nE4sHOKPs9yu39Yy4E9/uV/zkx/uE//Mf/
87VNfv9//r/3P/z9X9O2Q/If6nib9/z5728Fq/JrR/X3//r+h7/OJPrvf/+//7ilP/39/337D39/
+/l++Yr+3gP/f3heu8qHk6zT0zRr/5h9/V9/fK2E9XXoLH/6SH/MdfuXrf3pI/9xK396/af+6b/8
/f/4jnPVC62vj5+ozdpxP35/qENRi8rpZQZKVvf538/uUn51l9Rz2ba2/XX2/mcx8i/6b8uJq5Ro
b3melOd1zvySt+2vWyslpbzpzqF/3XVd9NRfr15eHf7e0Kbv479xcEUHli+D+5e78xdb9WaLf+Nf
pszTnxeW/8x/g9Ptr+l4oSJQPsofPbqCsOaI+u+PRSrWf9tY8leYalZ3KS+gvAD4q/7WdPP6Gslz
FPr3kPnEYA7mn0Pzd4eVFUv2bxpWVvbXLwOTNF+z5rVOwctrEP/y2qOv0HnQaTe3f+XdTPVPJX5s
JS2SKf/EO5YV3PdvG0Ce1v3nANI2X4oXc+mBDBz0F4MvaS8vV8rXi/WYX2n3o4aUt+xF9s+/O4iZ
2Lj+/iB+7D6nhlX92sbFsJIyOzyH5dn/V81ZD+Cof6l/KbVo1rz+2/ofc/Nrs76XqWxzTfvT12mm
69cDLxnoX+pf7rH97f3X6//rAOj1P22s//8bOpJi6AplbmRzdHJlYW0KZW5kb2JqCgoxMDcgMCBv
YmoKNTE4NDcKZW5kb2JqCgoxMDggMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0K
L0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9E
ZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEwOSAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAw
LjkxCj4+CmVuZG9iagoKMTEwIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9C
Qm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VS
R0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAA
AAABCmVuZHN0cmVhbQplbmRvYmoKCjExMSAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+Pgpl
bmRvYmoKCjExMyAwIG9iago8PC9MZW5ndGggMTE0IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+Pgpz
dHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041X
N7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8v
vivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb955rdkUmmk
73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrrob+Vb8n9
Vc6u4pT4vPLsXx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9GY5ygnZ9/TtbU
1RJlavn4uQrsuUs2qholf/+7JJjHqkiSzbH+4fNvSXyWVQkNOdv5U9xGvn/cfFLohRyoLEpCm1SB
kqkY9YdI4IK04EUzdiQ/D1zdjRbqNaXX30/1gnFp59eppbhvDSOj0CYxslTd1AvSV8wvCHXJeZYF
zvEVcDVpJWaSHKu1TYhKCevrt7Xz7gMrQR/Ikfxq9IdesDRd78IO9S9Vs4DJUf0XNPVDi/YFdC6F
qbov0m6Kvu49QIrL8fOl0RxFLWVn458FQ36tahc4lmr21WuE/xoi5VgaVDPOtuSIHoBMNJ4UOiEH
6oqylh6pAvVSMYoPkUAEaUGKZuwYfh6IGv/vP+0QSyvfTjkSuvrKmroG6fz2YgAuS8NlCfJtJLr/
StwX8AuTZIAF1pJ0tbIAY9ohToa4RnIprUau7+/GXWDSqP9W9O6DYV7U0XJeHxZOmGXE/kJZvrXS
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
hRhfZNvavsQE0i9q5iXX7TdfW8amGh5fpsWfAQ22t79Bv2x6o5gMdF/mRH1AlfxyJbPx59/FIslZ
4N+FRZKn2Bcs/goHpVrknhmpvjhg1kjMrxe+WFivm/6yvl3Nw/JblMoqQh740z08Q1KDgudUM5p/
ifcboq/2L8Sg0n6/K4Yfu8/Y4RFwbUEvwZQW7/UtGF6Pv+lNMk7896h/rX/9UwzO68O1Cr7E5IWw
/QR3/Wu8pdfbec+967Wtf6Xvi/Lfyvbq8JLC39//DV+5/frKDb5y/x9J0JRICmVuZHN0cmVhbQpl
bmRvYmoKCjExNCAwIG9iago1MTkwOQplbmRvYmoKCjExNSAwIG9iago8PC9UeXBlL1hPYmplY3QK
L1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8L1MvVHJh
bnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTE2IDAgb2JqCjw8L0NB
IDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgoxMTcgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9T
dWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJl
bmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTE4IDAgb2JqCjw8L0NBIDAuNQog
ICAvY2EgMC41Cj4+CmVuZG9iagoKMTIwIDAgb2JqCjw8L0xlbmd0aCAxMjEgMCBSL0ZpbHRlci9G
bGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0x
j2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/
8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dX
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
tV+U95sythdiLLnxtRzfJpbf7Pbvuvv1pr/+j9zCUDnez8+3P/ynz/b+5395/6vID9mMmjyePt+i
tVtRQWtIC1C6LEgbI3+03p6/Uchmvd7RKPygCF1fnj+sxbm5+N9v//PfMMBUWqkaoDa/H73IIxYP
dkbZ71Fu7x9zIbjfr/xvE+Mf/un/+n/S62jyP/7P+x/+9q8pZ0j+XR1v854//e2tYFV+7aj+9l/f
//CXmUT//W///R+29Me//a+3f/rb28/3y1f09x74/8PzoytcBXOlp2nW/qG+8j+Wsv05bb/BogqD
1tdXTo/NInE/fn9MQ+GJSt7lnsrr6r//l3/I5Y8f+R9S/uPrPz3RSPO/uc7/lr/MH9r9z+UvOW3/
eLe3lv90U9CNOXND3nTDX/74//7t//7NQUx3xn/nMIrOIF+GAUvmH97TuP+Nf9n+cWvpT/dvsJ7/
5AHm7S/p2NprICGVKZJLHL87DClM/33DyF+xqFkSTrBlKef0F/2t6WbzNYjnAPTv7cKBcXwFastT
i/FE6BfoZEWG/buGlZXL9Tmw9Gfx8Sd6fXG2LWh5sP7b5h7Av3cjuAd29Z8egmmvl/E/MnTGtf0l
XsZU/1hi4H95DT1BcP5jW96N/fdHrzi/3x39j92nvbBNX5uhSx55mv6f8tj+ZMbm7DLLR/1z/XMM
7ZvZuE7CbZXDa6kJ6HnL65/vUf31/d+wfrZr/aysn/8fJhA54gplbmRzdHJlYW0KZW5kb2JqCgox
MjEgMCBvYmoKNTE3NzMKZW5kb2JqCgoxMjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBl
L0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5j
eS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEyMyAwIG9iago8PC9DQSAwLjkxCiAg
IC9jYSAwLjkxCj4+CmVuZG9iagoKMTI0IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9G
b3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9E
ZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEyNSAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAu
NQo+PgplbmRvYmoKCjEyNyAwIG9iago8PC9MZW5ndGggMTI4IDAgUi9GaWx0ZXIvRmxhdGVEZWNv
ZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0S
T4qk041XN7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5b
Pxr6/p8vvivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb95
5rdkUmmk73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrr
ob+Vb8n9Vc6u4pT4vPLsXx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9GY5yg
nZ9/TtbU1RJlavn4uQrsuUs2qholf/+7JJjHqkiSzbH+4fNvSXyWVQkNOdv5U9xGvn/cfFLohRyo
LEpCm1SBkqkY9YdI4IK04EUzdiQ/D1zdjRbqNaXX30/1gnFp59eppbhvDSOj0CYxslTd1AvSV8wv
CHXJeZYFzvEVcDVpJWaSHKu1TYhKCevrt7Xz7gMrQR/Ikfxq9IdesDRd78IO9S9Vs4DJUf0XNPVD
i/YFdC6Fqbov0m6Kvu49QIrL8fOl0RxFLWVn458FQ36tahc4lmr21WuE/xoi5VgaVDPOtuSIHoBM
NJ4UOiEH6oqylh6pAvVSMYoPkUAEaUGKZuwYfh6IGv/vP+0QSyvfTjkSuvrKmroG6fz2YgAuS8Nl
CfJtJLr/StwX8AuTZIAF1pJ0tbIAY9ohToa4RnIprUau7+/GXWDSqP9W9O6DYV7U0XJeHxZOmGXE
/kJZvrXSHCc2mFdyaShFprbKpriem7ofVY2yRuaqfx6DCWh81TBVEhKf+fxmoylnG1dH5vvHCiCF
ZsiB0qIstEklqJmqASCEApkl7UKLJtwYfjY8twE+j/L6+6kB3i+t/DqVVP6q5TvfCf2FzleMhf0a
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
+THhvrTSRTk9KPsM0X0KfFDOF+XHhPvSyhfl/D1lzmsPyuWi/JhxX1rlolyelDlDXJS12JlyvSg/
ptyXVr0o128p+1D4oHxNwP2x4/3Suibg/pyAPp10n902raOm3C/K40FrfOknKPfvKXN2e1C+JqBM
sTet/Us/Qfk5AX3u+ZbyNQP340Hr+NJPUN6/peyz26bF35SvKSiLxEXr2dqvKbg/p6CPVN1nt5Xy
cc1BWTRuyulLP6Z8bN9SZmu0Tc5NN8X55XjojL60UpxffBV0fdbqPiGthC+V0VEepMo33dzd/ybh
+VUx5XJRrg9a9Zt+7v4vyhziuo9eD8r1otwetNo3/dz9f6XsA9KDcrsoP6bcl1a7KLcHZR/iug8z
m76EpnwdQI/HlPvSug6gx3oA9W08/phXX1rjenw8GeNr0Y7X/8TY/JCasf2i/JhXX1r7RXm/KWN7
IcaSG1/L8W1i+c1u/6G7X2/66//ILQyV4/38fPvDf/5s73/+n+9/E/khm1GTx9PnW7R2KypoDWkB
SpcFaWPkj9bb8zcK2azXOxqFHxSh68vzh7U4Nxf//e3//icGmEorVQPU5vejF3nE4sHOKPs9yu39
Yy4E9/uV/zkx/uEv/8v/lsr2/n/9v+9/+Pu/v94/SP5DHW/znn/7+1vBqvzaUf39/3j/w19nEv33
v/+f/7KlP/79/3n7y9/ffr5fvqK/98D/H54fXVEvgn6mUfvH7Om/vrpK/Y8f+V9SzdsfP9K/pL9s
Zat//N///r9+x7DKhNbX4EVmloz78fsjHApWVCov91wy/f559prL68nX363lP4mLknf9/bff5WB6
Jv4HeSg6Tjx5iD7135Sr/o773/iX7U9be/Fz/Zb/jf+mpn/L21/TsbU/5n9hKPnV2FL51/Kvf/yo
r9b8oW15/lQY61/nP0EQEun3BysN6X9ssPmruKsZgPmNgef0V6BP92BeQ30Oc+EzT8Y12pxMwuht
eaot9EDml7y9xvl7w8oKBfsPDSsreeuXgW3i4PVx3Dq8vAbxp9cWe8XWg067uf2rxV//WOLHZnDW
x/LvD0Cxef+xAeRpnP8yEfzapfpii97N5kva6U83MNuf+Xn7a6nxr+kvnj3/+scUry5v4Xa9aqle
r5nufUksHfNf55s7PNSeauGu8vrXL0/8lhg0piQXsueYyr9tf36x9HoYeMqfNAs8MAb51wsB8/qn
f2LiJxXj+12Z/9h9Kg4b/rVpvDguLd68GwXegr9KYn7p+e9R/1z//MeQqKXL3GgpxctuIbJs7K+X
8U/3glH/HL/P16268RcmFr28eriG/bf3f+JDlONDVBIfov8PrD6AlwplbmRzdHJlYW0KZW5kb2Jq
CgoxMjggMCBvYmoKNTE4OTgKZW5kb2JqCgoxMjkgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0
eXBlL0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFy
ZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEzMCAwIG9iago8PC9DQSAwLjkx
CiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMTMxIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlw
ZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9D
Uy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3Ry
ZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEzMiAwIG9iago8PC9DQSAwLjUKICAgL2Nh
IDAuNQo+PgplbmRvYmoKCjEzNCAwIG9iago8PC9MZW5ndGggMTM1IDAgUi9GaWx0ZXIvRmxhdGVE
ZWNvZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/
Qr0ST4qk041XN7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94
/f5bPxr6/p8vvivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1
lb955rdkUmmk73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpY
qWrrob+Vb8n9Vc6u4pT4vPLsXx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9G
Y5ygnZ9/TtbU1RJlavn4uQrsuUs2qholf/+7JJjHqkiSzbH+4fNvSXyWVQkNOdv5U9xGvn/cfFLo
hRyoLEpCm1SBkqkY9YdI4IK04EUzdiQ/D1zdjRbqNaXX30/1gnFp59eppbhvDSOj0CYxslTd1AvS
V8wvCHXJeZYFzvEVcDVpJWaSHKu1TYhKCevrt7Xz7gMrQR/Ikfxq9IdesDRd78IO9S9Vs4DJUf0X
NPVDi/YFdC6Fqbov0m6Kvu49QIrL8fOl0RxFLWVn458FQ36tahc4lmr21WuE/xoi5VgaVDPOtuSI
HoBMNJ4UOiEH6oqylh6pAvVSMYoPkUAEaUGKZuwYfh6IGv/vP+0QSyvfTjkSuvrKmroG6fz2YgAu
S8NlCfJtJLr/StwX8AuTZIAF1pJ0tbIAY9ohToa4RnIprUau7+/GXWDSqP9W9O6DYV7U0XJeHxZO
mGXE/kJZvrXSHCc2mFdyaShFprbKpriem7ofVY2yRuaqfx6DCWh81TBVEhKf+fxmoylnG1dH5vvH
CiCFZsiB0qIstEklqJmqASCEApkl7UKLJtwYfjY8twE+j/L6+6kB3i+t/DqVVP6q5TvfCf2FzleM
hf0ah1J9E/YLknRqxupM8oc67LeNC8XVn1fTV0fo9/TnBNi3SC5Njsj17abpLo5hqooWJClEEFzl
Eu8L5BpNXdgvVdIUJzbsV7Kmpv6jLO1b9ojilqKr0U+CIL+SZuCVlmRT4x/0h7DMbswX4xt7I5/1
femEX6KsKAM9UjgKpsql+BAFNJASlBB/x+/zQPMa3O1q+q9TSyvfrOOQrla/TI0hKFCWDBrgWQNc
q3VOmjlPzYv5uy4yhx8AdnglX5j3e45zAph7JJfKzsh1Mhe7wBwVvbsyIMIXFXYMiPdFbBUuwb9Q
rqbQICc2mFdy6WlGpqXAFgV+dSuQV1WDafqLQqfzfdHWOgHEX23lJTsNOdtSQ4DM7EvzSaEXcqCy
KAttUglqpmIAQCBwQVLwogk7kp8Hrtcwb9/NW3/9/dQwr5dmfp1KY3W7s58oc63jlXl59YHGeKja
bZyayhc0q+9q2CzIkvuA1vHvNvPQAlD6Pf05QQ8YkUxnYWk4lqbnXVhmmGsF7z2qF1zJggnIhMBC
OLshTjzQz1LdiExLpzmK67kyZ3TQ/2bVENeoWlLN3j3BF03Xw+v4F63WtnW8eR1fjSeFTsiBuqIs
NEklqJiqUX2IBCZIC1Y0Y0fx88D0Guz1UsGvU0s7WUXml5aZVZfmY+0alxTaL2lbcWp6z2low9YY
m9Pbds0KpayperUWdDegDTNdQCDX+P05mTcoSoOaSt5dlVD9Fxk6k/fYaTRmKE3h6080xokN6pVc
OmqRqaV5F7j0qplDlY3vFPwdOQuBLw6WbQGUDfZazYebcrYFSUANPDSeFFpZv0ddUQ6apAJUTLUo
PwQCFWQFLRqx4/h5oLoN9Tbn6++nhnq5dPPr1FLbt1WdCWmN+lSYkDV3ze/uswNCVR8ogkdNEmwj
pvuF59Sa7uF8T4ROrD5w/SVxICXPyZB1Yeocq5IvKFH1O6WT7sMeOw2NilPr/bnGBA1x4sKfZGUR
I9PS6YgCey6cAjvof7ega5+uo56kmuoYoP/FKGsVnWug1xt7I8+/Ll3wO5TkEqw9ikatVIjCLcg/
kEBGEEL4HbvPI7XhfgL3/SHQ86WQX6eSzgOnZlztr74yfHXLHnLJpl3UsYb9PBn2XRu5ypQ8NCU3
6fYL4SpmtV/dZgl7wc4O5asv1v+VXIo8I9c59wLLXdW7c0iTEMLqFlA4ZgQXwMkNcuIBfpL+cmRa
iq1RYNe57ePKRl6YFI3NdZ6XbLPXa6ZfK33TSs96XraVvnilZw+g07a0Qw4UF2WhUypB2VS9QAiR
wAZpwYxm7Gh+Hthe83y+VPDr1NJOV5HS2qqJoxTwzDYY48fSwjwZfk19ozIwu8bAalIHuqS2rjL6
PQs6AeA5kunE3KJc58m0QYGV6US7sM6RTUJ88dEYtYBf7ArT0xJTw5ImObEBPj1gUmRqbBkocGlX
R0FVtrT+7R4alEVTq0Zr9WyvPpAXZDTnbPnnHvOyMFkJpNAOOVBclIVOqQRlUzUwhFDgg7zgRkN2
RD8PfO+Rn8pYxobnpwZ/epjqkkx1q9OcvaPSb69OOgmVRl/4KqucGvqTxbip2wjEPDQE1RO04nev
+CshpV49gXl1qa5Gcun0ykVfigIrJwmN1K4FACEEXLJwb0Tv/MEWp6wt/MOQ4WRNlVNc1lAad3E9
Z5/hiwb+gkTT8qH9/KkTWPG8X7WKVzflbLc5ku8fK4AUmlm/R2VRDtqkgqVkKkX1IQ6YIClY0YQd
xc8D02vQHw9b3GHNLLPj0q/sJ6suba29udPxemm5Cmptr6s2d8zDo12zvIbvOlSslmbgTDvUyVC3
SC619ch1nhwLXCAHBv29g56E+GJDATW2eKunS3QBmtwkJx5gJ2lqRqbGBpICl3Y5sq/Klt6/P9BW
Wzuf05bTabDXEC4s8jqyH1en5vvHSiCFdsiB4qIsdEolKJuqgSGEAh/kBTcasiP6eeC7DfrR6+vv
pwb9sfeF15oIk2rKS53fNieZQws7zdkwdsge/pVa4Kgxax0YVfvydk5W7cpav3C+p0Mn6APX3xLb
BfKkA2t8lMd4r0KlRO1fxDgk1DjOL9vKYEmQBZW2OLF1ge7BMiLTUmmNAr/adgf4nqplE28a7ekS
bKEW0/5atWUUmljgb8Mk39UD/B298HtUFiUtTVIDCqZeVI88IIKgCyfkv9H7bEjeqH8nSZ3fH58L
9Xnu5jqlkuz+Z69o8Vv9wS6ayXkJVtH9mgOwt6TyA/qa7oun+8lorlr4GzvxnZfpwcsMNv/wMo2Z
Y+Vaau53ifA0quvdZcJBCgFWLgm/YB7MX1rsm+Y1WQhIbD2geey0yLQUm6LAnpPJmVXZwuK7Csi0
JjOBhFtmVaZ8Lbs5een/YlI3fqYGPyNzgFLohxyoLspCq9SCuqkbIEIqEEJgkKMlO6afB8Ix8c+5
m/CUWgpafENBcafq0nEbEqaxKpah4Y4tNbGuysiaNcQAXdkWSKu1wnknYnoQMYMOARHTwG/lWno9
7xIxA6uuhUMOKb4YaT6whMIvI/sC1i3S1x1wKanGz1uSUBTVRfp9XM3IaxWSXVVAIxb2VOAuAi+5
KWed9xqv7x8rgBSaIQdKi7LQJ7WgaOoGgpAKbBAYzGjJjubnge02/Fs9X38/Nfzn3g9e7H5XTd/2
y2R8TGZjmJpWmXaHhv6FTFGDNPFn7/nZf5Ws5b8xve9cTQ+u5kokzEPkSYc4oShvRD3vfjDsPU97
rjBVI3Jr0Ee0A6M9Tmy9oHqw5MjUYKQosOfDG71Dw37925r4D4u1cMvuA8ssd4iSXThvPE0NnkZI
KoVW+D0Ki5LQ5aoBFVMnyg9pQAVBF1bIfyP42dC8Bvp4zO7DKlnHuoyqqmpZu7MMIdMKm6vViAFZ
mpOs22ZnRvLszvgty9C2Wrmwazsl04KS8V4cSoYZQbmWNvtdolcSzeudDVzx6NQEbQm/iC21wLZj
YKFNTmwwFw+SFJka6wQFdgHxcWUjr13cEA11ahZKGo7nNbsvS6csfWrQF9IbagPd9B3N8FuUFqWg
T8pH0dQKBCEP2CAqmNGGHc3PA9ttoJ81vf5+aqD3x5TfrbV1pEto87tgmTfP3uExf+rcNab3Xsxe
UDgjecpn+RbHtNQgI8HO2rRgbSYGGVibHnnSke/SZtTybpzciyHDAJS9x4MuZw8gPoXWOLH1gSxr
d40szQStilsa18yhqoYuZHx1IRvOEmrZWZjs1x5sipAVvVU3vqYGXyODm1JohBwoK0pCj9SAgqkV
1Yc8YIKoYLVasGP4eSB6Dfe2kzJKLbWcKnCtaN962Conb+Uys6mOe7NhWJGF+/T8e3gjz4G8HF7V
BeNOy7SgZVj+G7QM5z7l+upzL3FiL5J5vmGQLfBqSd3OEn5R05DMIJvdHiceMC9bN12gQ8BuxXXx
nB9XNfKaGLR9la0e0RZEzOo6qOnIT3POutEzNegZrf9KoR1yoLgoC51SC8qmbmAIqUAHgUGNlux4
fh7o3gP+u2Va/PvzUwO+7cyNUsuYuY50hzT6Q29A1929IYPDGvBYbdlxnmvi7+c18Wu9OEXSsgK3
sfUE94NGYumzxe+XqsddFrYijheaFVz7Fzaoe++/k+guuJp0JpnymNaV2PpBkilPN93I1MziqMCe
WJOo7IvFS8dXXY5CtGVpa+4F3ESqbsxZN+amBnOjdVop9EKOpbAoCU1SBype9aL6kAdMEBWsaMOO
4ueB6dYDvpuF199P9YC68zZKYc5e18OkzW9l3qEn8zY+VEniiaH1kNFbtgTh5ilfiC4FLJR31qYF
a2NjLLwN9E5ei365yznvGr6QRM0CK11SCcj8CmO9zguDvZsSG/oruTTXItNSaYkCe/LlvbZar+Zr
dA4Jtcwtnux9Q2a4EWe9bZR8F/L+vnTBr1FSlIP+Vumo1TVK4SEJSCAkCCH9jt3ngeQ11Zeffete
rJSiIqWsobrWSGX/uKRIqHgN78LQm5ZboExv3g2W1stDB7+yMdROAPGVTOeV56tNze4uDy5INb01
JizDFxWu7Hm3ncymsqbrSDD4nRIPmJMUVSPTV4NR3FKtzoONhePb3TX8ZAeSYLMFNcs9idMNWXDm
DWZWdZlSK9xM/4kcqCxKQpvUgZpVr9Qf8oDLEhS0kH/H8fNA9R7gNaV1J/T5qQFedtJGqaWxuP03
1ixTrWEoGywiRTvPCUgHq9ax8Bqe4D1haxk9MMe1nbBpQdhg3msQNl4WVq6l6HGXmLDiqap361gS
WKuTzusW8IumZp6FudgPmuPE3QGUXArMkaXZiqfievLdPVU1stYL7kw37eyKhmlQtEzbmlrVoLNu
lE0NyqZeqealAYbjuEpCo9SBqqkaEEIosEFeMKMhO5qfB7bXkM87K6PU0k/3LUAMOAfb5MNwJzSt
Ab8Q4DYbJEoPQpZNQO5az7HAt52VacHKnJFI3g8qTzpgeVxeYqXgLNG491w4SiRufBwBdX7ZRqNp
lsY4sYE9ZaPDgtuhY+kVKq4nX9VTVV+NvyTAEIueTJdWseTJ+zTNpnMBvbEyNVgZabTCyugIxmFR
SouSljapASWvalF9iAMmzQa57P6aXjuKnwem24Bvh6w0j08N+LQTNkpxO2HVJmU2ibGgPtnTVe6n
FbEYk/tQbD4ni2/v3uF34SkFNHBOew/AWiMilmTysS93qbneZUEZUc27sQ0vcDaHboFZuC+cuvbJ
ej2nG6OvO/5LdfHjZquNCurabH1cydDdHFU+RMkg1sLM072m76J1XVeh6kbT1KBphFiFpun+PcqK
ktAjdaBgqkb1IRSYNFtpEp34tWP4eSB6DfN9TmdGP3UPUJr6Suot9MmWrZ5otwjehN6/UpiH7UG9
ss/LTdRr5ZC2czEtuBhfmoCLwcajXOmAbnWJyZegNXk0dlkFVubQec4CfnHTtU+me5ugMCY/7BlO
Vgy9ZGo6t6u4r1YN9DoyHy9V/4XAYq2zdMzmp+5E0JAFZNogToa4OtVs1wmFRTnocpW/FLwqRO2I
ARpNZ/JkkW/cPtv3//x3DerzkEXm8alBfTxsdIcU1HTz79unqyrWzWWO7BXCo8hqMw2CrNey/Aqf
ZMQ1pKtXcaG6sy8t2BcM/Q32BWOdciUOd1FicveSJagxUiXGFyKY4PCNEZk1lpg2NLX4uqGNWYPd
njI0H9tUWE++s6eKhi6vJjCBI2ia2IOBjYsRxc05y8a9lOBetD/mvqG0Qw4UF2WhU2pB2VQODCEW
6DQf0g533Ph+D+87dU/vyyj3+vu5esI4dxudUuvyYVZtS6Fa4JNVLVqmwoQUXe2fKQBKatSahMUR
0Ru0yItDYMEubadlWtAy3NZp0DJYc5QrYdmLEpPXEnWRxqRccOQ4JFQOHxmRWt7Jz2iSvu69QQps
8fPm3b2K6sn391TNF45XYgLOl1gcrOkJVWx5c1POstEyZV6LfHIKzZADpUVZ6JNaUPSqGgBCJJBB
WhCjGTuWnweyMc2PudvqlFqaKboHKn0tM9FhTSaDraEvcnN6m8XmBI33IF4xyuiK0LetwJl2qGM1
H5FMJmuVJ2EViPJSiYrejSFa8No47IEV9IsE8yYOgxPrwsOK4WTlNhmZmvfyKrAn39hTZUPnp1QE
RLZo65DVDDf0+HRzzrJxMCU4mOrvaIbfo7QoCX1SB4qmYiAIkcAGacGMZuxofh7YbsO+T1Hvj08N
+7lb6pTizvGpvTYbPC5LZ3vNVHiRogv/06crbT/Nx/dgYzm9ywul+WxQd5KmBklz3snEBUtyJS7v
RIkYV6js3diUF9w7uMKbw3NG1FZs6DA+YYl72DacrLB7ZGqJGzsqsCdf51NlX1BeCV8hLVcSbnLF
5h9yf9F1c76Y3z1B/UC28LJsddpUfX+JwlyCdUnZKHlViPItyD9QQUbQQvgdx88jdQ35sRvklFo6
ibufuuk0z9NaLAZ6qSXLhjFsSdEuk8uSuQfhyrlNVwMap+9Sdw6mBgfDXY4KB8MtrRy6bHeJyQYi
nSYa9yYlxsLlEvCdRG0N7k7KDEKTnNhgLh4tKTItFXaK6+JdP65o6AZWwqaSLNiCiBn+9E2I4sac
YogC6O61XiszNw25n4UdU2qLstDoqgNFUzEQhEi+lytZwYxG7Gh+HtjeQ74fQ5eqH58a8v1ns94p
tdQ2dClU6qwSQ7sv7/vwO8kyWQ4bTnUBY3Ym6+Bl2dxnnWAO7svXnaoxM51lRnMy+WqmcqXjUSL3
JahsAZRCjPe1JfC+r8mazvUgm6OQ+mHbcPKrxsjSvBaouJ7sR6OqvpC8Ep6/sEhdq3GwstrjH1x5
0HXFslE1JagaUS4Fqqaa8u5WXJSFTqkFZa+qASFEAp3mKX/lXo3Y0fw8sL0Gft8NdUotzZy6/Tlf
GjDT7gz2oqlskrK8woc9Vtbi1KeHabpm+ARwSS3VXcixgW2oM4mlsha/T4cnETvE1ruat9ZFC/BO
WIHDVz2J3opxnj2PnZHYgM4aLxwS2vRASlHg0it0jLaIabUswT2c6ocarDVIWLbhQ+qVk1PZGJkS
jIyMIAVGJqjVabVFWWiUWlA1lQNCiAU6zcO9q8/iydq37ryntqFfZavdPjTu227CUyqNroqkz680
p7dyPt1j1pRZfQxIU11M6MQyyP3w/M/aLo/WxqRd6k7LmKbO2PpJJvtiJC48eOtgD1nYYK5otBRC
CLlyCfhFdTBhCX1djRw9vm4dIWmwQC81+Fk8tFRcT76519aI/65FUJDajEisBVzM/lOQJjflLBs5
U4KcKddf0Aw5UFqUhT6pBUWvqgEgBAIZZAUvGrEj+XngunWB2XWt/vGpXnBHiPh1avkTcjv4q0wJ
6egG9q6psJ3aXI1BFzlWg9iot6BmWfjltrCUoEG/Mzdmr7OmOSez3LCUJ45uLo8Ldquid3PMCjzl
WVbCpz2J8RpcrNChieY48egFjKEWmRpmJArsyVf5UIP2WxJhzFu4tTlf/XNJfR5c6NX15LKxNyXY
G23UC+yNdgTKgdqiJPRJHSiaqoEghAIb5AUzGrKj+Xlge83++5DXgJdhSt4SYowclsB+NZW7TFkW
3eHQEoelroCTDPbCUBf/V0u1mO80jUnqpZ8eyWyvS+VKXP2KEglSQWXvir+ExHhD2oZfjVivgWV/
Hj/RJCc2uA+PlxqZlvoKxfXkW3soQi4LEmDoehWirW3ZCdha6JsX+rWcbyRNCZJGFvYCSaMjuXKg
uCgLnVILyqZyYAixwAd5F2o048bys+F6D/mRm0w6j08N+fKY+IuVVlWPlDkkwJrSm3uBBnxnwL/s
k7iaot/Ma9rPoLmoWk3sO3Njsjqf9qvXltwO1sqTDoyGLk80tqtawNQQ4Z0OLnhi0hHjNfjDOD1/
1UjcPUDJatBb8wBKUVxPvtKnqob2eRKBC9AIN1m5/iH3eeCkLCf3svE3Jfib4u/oht+jtihp6dNX
rCuHyuphmC6RwAVpwau6L5SfvQ/cqWu458fsnq2drmvA0trqa7hCVx/nsXxpTR2Dm6gn/tXY3Fsw
sxq6Mj6zHS8bZ+0EcF/J7JgKbK4OWAGX57vuuNdpa2Qh3ukgzoW34olbyTC343SD9HUHWzpK8fOW
bCXSBfdkf5rK5U1Oikv5cotGsMny9A+ZF3TZjVkxbO5VPqiafKWWZvg9KouS0CZ1oGaqBoAQCmSQ
F8Sqgc+PuT3/ndvXEPcW7/GpIb8bdbJUNnwReGhfi23Gnttf4Zbytdp5JT05pHD6Epm0eoDvRTWt
8I5vsvM4JqyX2s5IagUnT+KyTZRnlyeMf3VibODM5hvY4VSD7ZXVYEyRFB7/88HiKLmiPTlLw22I
4r4Kdx8oAmLNgsanWLS1AjPlQ6lWN2XhnLYekNwDhlNohhwoLUpCn9Sx1EzFqB+BfD1bki6slvg3
fp/t+83nzKOInH18Cve08zlKJY2cVYtU2FT5Uq49auysnnUQ8bHqnGqGJvtwpM1M3Ix+Lek7n2MG
O58Et1AyO2hSalJvv0tLk0rearsrf4fDTTjSiA5jE7Li2nQ3xYkNdTlDcpmDTC3ZKijXpeSLfHR/
2c7S9K1iBFtoMc3jd8BY0yjMG5eTg8uRPSbD5WTzM8Mqi7LQJbWgZKpG/SEUuCAveNGQHcnPA9dr
qj8ehI28RMbQJWBpba3pXISxF40d0zWtDvMgupTQJ79rQdcSmEzk8WorEVF2I47pmtPumbKAH4kd
ocJ0pOMuL3G3klsblUGcOVquzX94tCdxYIM9voBO4/q6gd1lysMTo+Ene1BUT76zR1/X/KrKh1bg
JdSsxZM83gfZjTjzRtTkIGoEbYao4cpqtrKiHPQ4vMIr/ICqRfUhEJgsOcEJ8XcEPw887wn+W48I
28fnGujyKL7QVyopJsG6FbwOFBIhSb3J6FcUv4Y56j8JPcSdjRbUrbAvXuYL+KYd+2Tsr79lB0FU
Ll+0ifLSGRW9K3O2RHifOO2H9wx3Ux3aKLstTjzAz9Jejyzt0HZRpfXky3yqaOjcnE7dJQ2xpmIw
gf8QnZbdlBXg5uJucnA3+frL0gu/R2FRErqkDpRMxag/RAIVhAUtWrHj+HmgGsNcQVV2oFEO17+X
yrSaw4fai6ZgKc9isOIWY0fyBUywsvjQ6wJBw+5Wyk7PmLrOJzcllSQMlXMlX7dyiUQ088X7yj5C
QrwdNCN8aLC4YdERL0OLnNjgbrLg0XMb4ddkQVR5PfninqoaOiMlfMO1wZNws+ZrZj9FpjQ3aIW5
ueA22IqM9EIz/HapLMpAl5SOkqkU9Yc44IKg4EULdiQ/D1y34T6zLtI/PjXc76ARv04tnVVd/5Yu
17pO3DB70BSs5FnsTvincCLlDk8LwhZ4E5O9XNp27sbhJrN4KSezf5jWVJ/uspLjHGgXUdlLSIC3
YyaFB00jUgtLu5ytB/yyElsPqDLdsZrjvn6cV3lL5RzjtdRq4UwEglCsxJS08jLhZxNc000h4E30
gH6t7Mkp9DJ98s1exZn04w5rsZqpGgBCKJBBXBCjHTuWnwey15AfPxtBQ5Ax7XG48y3z8bSPjAy1
BTu5XLrH7Xm6pC6Akw20jnBJfKyG+07NlKBmmMyVzJy8yZM4S0d5+YiKlv5TCPB2gNwcQGckfuM1
QUuceACdpKAcmda9Q8rqhx1oVM3QaMqwzzrgSixWX4AWf+WGEM4mYA5SJvs7Olm/RllRClqkfNRL
tag9BPId/ON08Bvk3/H7PNC8B/qZk/wlHp8a6HegiF+n0sChWwN59TImXfvNFKbRLL4qok1U7epk
XQuKln25Fp3G+bqUsWFv5Ilz9Mre4+v3CdN5lJU5WUP1VW7Dqvr3ecv1TtxN1Hads5Z3drsJw8mq
HZwyNK7qn0NK1mTBDCc/ncztE0UIklALr2zUobGKm3HmjZ/Jwc+kK4VGyLFUFSWhQ+pAuVSN2kMo
X8qXsKC02rCj93lguSHfDx3VH59C/o4P8etUGvh2c+FIHVW0qZ2yZ0GlUvmIYGJF8xV381rQsthk
tP1o3qyVnaApQdDkSJhyJY99YqK8bC9nLSq1hgjvkzjG4TmDtYVlyKYobow9LBtOVhyxyNS406fy
+uGbfd+KBsy7CKupm/UJnM5rkp8ynTc1ZcW0uXqA8R/6jkb4JcqKMtAjpaNgKkX1IQyYICZYIf+O
4ueB6TW530Egfp1Kgyvg68bBqnWe2N01Hc/CTliu+2NY71lSFyBJhrgDV1I7HcpmW8eDffEaD/uC
5V65UrKVlRKz/Vu1fEd8Ws0iXOcNP/UkRmtw1Vu2JoLaPACWekb8uGH6Vzn98FU9ovDK61xVjxki
TeKe/0PaecJxs1JvvEsO3oXVHd5FYQ18ztFU77KWJlcNqJdqUXwIBCKICk60YUfw88BzG+Tf/73+
fmqQ77u4tYfDm5tr4xLBXonQMQVLp2KBD8J7J0VV7pPLeS0YWDs3TC3tnMTLTseUoGO8z4eOKXcu
Oz1GidnujloGInCtupjDKIbTTMVrnQWeYF0E4xvpOdEnD5IemRp8n8rrh+/xEab3UFh3joTieFIs
xNn9oNhkToPOvBEyOQgZHfEzhMxx5UB1URZapRbUTeUAEWKBEAIv3GjHjeZnQ/Ya6HfYh1+nsE+u
y98rwMrqy9Nxfw12QstJYMsMmyXvmstr0KzcnFGs/YadtJSddynBu7B1K/Au3MVRroQ/S5SYHZcu
S/s1RHhzqyvjMCP+auLTY1sTBtuHEcPJSvgWMjUFAKe0fgyf0DXJcp2CXSvLjAZ4CZJVntK6Ipsd
l3zjXHJwLpzeYV2kVOVAbVEW+qQWFE3lABBigUxzWHTF6VBLdiw/D2SvId+Pcip4/uNTQ/6OC/Hr
VBL5fypcnG5pT4IQJfvNFHsNKzBARBLSSwq+bil+6NsXfJ/uQM9Y48ruO+PoJNnWWyWXXmfkStx1
jhKzY1VpBqlcnZEYX/wu+QRsRvKFuNujr3tPkPZK/HyptaqcfthzRhUM3btVxQufbJEWSjHpTxlN
u5tx5o2OyUHHYMXTCZGbNXQ4KSzKQpfUgpKpHPWHWOCCuOBFO3YkPw9cryF/h3/4dWqppqtIKayr
LqnYp3QDnQS0/qD7wYMAdNVUqy/GH92ru+Pb3MxLCeaFfXuBeamRJxGdIMrLjkyjbWGFIZUQb3j9
8FRPYrKYgBJh7ce8EzfYStbD0ZebR1GUt7a4H1c0dIkuY9qfno0YlMztGE9PN+XMG/OSg3nBMi/m
Bdc45UBpURL6pI6lZipG/QgEKo51LrSqT+t7GI89tQ33Mevr76eG+x0b4teppbOhG//S5VdErtHZ
D3sWYkIlBdjt7JO0YHV2VbmagbWzjG4qNq7nl7KzMCVYmHwns91vlCsRkCZKzDWqeldOdRLiTf7w
WE/isthxrEAm3S1yYusFk8ESWRxDXaX1w/f3KuHRFJW4LnwsFANSPUBrdfHqTuSby1KTgoMRS6IU
erHBlS20y0Kbqw6UTLWoPwQ6rxjQ5wu86hHf9j7wP6x1Pa3bZn8/1QfuuBC/TvH6yqngYbqJNKev
rUHOFCKLyE93dMaRfAr6IP5stcOsvSDleLaUIJzvCdEJ+sAZyRyu2LruhQdrlJgvL+chcHKI8Wav
GC7tSbwWbj4rysnpNjmx9YKhkUR0xAqJ1N2rstSe3Q/W2XqdASTCkAUQ4RZap/tCk321ukFn2oia
FETNcaXQDzm6J3ozsdIqtaBuKgeIEAuEHBVZyFU/hrTH+thT1+R/h4P4dWrdSlgFSm1VNemmEoxM
YaqFhCYu/EJh9WHM5dXUqz3dD4xN3KgoOydTgpMpkeDlJ+dJvlvr8rIdILl+z3QDFY+JNxzYeZRk
Qg8r0m+SOUdfH3BnKWlEFsdZVmn98D09VTQUuEYCDC6eS7QFkSd/0ZaJWcVPQgXYwcnwxIQ4Gdwm
qQizqEtCn9SBoqkaCEIosHFEZCFWbdHZQ3vsqW3wtz5ffz81+I/HAnCgt7XElI4+1ybAcT9N2DDd
ciWFp0CSwr50TOS5mpl1WJMD4xNXqfJO2eSgbDjXZyibFnkS4YqjvOzb8oTLIRAS13LOdEnnd0uw
KCXF+6U9Tmw9oXu4XI+dNG0+Vmn98AU+VTMU0UDVD/g+CTZLsLNN9pbTDfmiffcC9wHFx3mhEX6L
sqIM9EjpKJhKUX2IAyaICVbIv6P4eWAaw73dUSF+nUqyda27/lLXqbpQZDHM2mjplMmjTkl+YJ0j
cxZzBMxa57PXeblU7JxMDk6GAzyvuUTAFdHeqUXHyQB9VfYuAETQQe7ipnCoEdM1uRwtX+tk+50S
G9TNg6VFJofbVHn9sEeNqhpa0CUCdyIQbqmDOV7Qn6HiooA293rfr/W+OoV+yIHqoiy0Si2om8oB
IsQCIYfHFHK0ZMf080B4G/YnS/39sca8AqzdnWFacVVVfRsnrU6HBvKmD/OawqwtsevLTuh98IpM
rdfsL1iTF3wBvvM2OXgbruRmeBtiIipX4m2oKDH7viyPmGGsITAdfngpPGpEd002AXLDpk1OPDpD
kgpLZHLUTZXXD9/jU1VDxzmJ8IXJos0SJG2z/bO6OWfa2JsU7I1oNKXQDjlQXJSFTlcdqJqKASFE
Ah1HyRRqtGLH8/NA9+4IuTSd8x+f7gvp0RfQW5dfiPS5dgJY1OxvU7CnJ7GYnTtOepun+wp2LTH/
C1OpQPP72HqB+wDRc152lV+/Tr5b7VIy/pt+w4jrVSnwypdUfsli2lO2eoLrkdjwrx5COTI5Sp/K
64dv8amqwcN1urOvwNoINzm5/EPqeUVh4R2ne/YPHofo8NoDz+nfo6woCT1SBwqmalQfQoGJ4+kJ
K9qxo/h5YHrN/+Mx/w+rZ9jzA+Zw2rHUdA2XluTbN7qPgDJJctslVzvOOiT1AQ26HCTyTtbkIGuw
6WXoGkJcK4/n9ijP1+jjAdIQ4T19lA+65mCq0sGuiJc478QGd5EtfEYWh+FTaf3w5b2yRpye+uDe
YdFmT4Fmy3HN+2uJnG7IF84bZkDWN7SxfoeanN8apGRUS4Uo3YL8sx8OofKE0pJ8R+/zSG0DfNT2
+vupAd53BkepNHD5LWhwNcveRj/TyGuW1Tmn20V9be9wvqgmae0/LV+zyhMEJe8cTg4Op9zJbB9p
5XI0+ijRHjOTxYAex+lvzks6PWbQXjElFbdGX3fUv5pzwAeIWh0qFiyHb/CpgqE7U/YVKu6Mp1TA
FK/hPu8zxJk2DifB4dB4UmiFHCgsylqapA4UTNWoPoSy/w0RtIQVrdhR/DwwvQZ430F+pXnIu2PN
MGqBL5tD1GQmxm93Hd2eibrhi2dCruZhWXOzri9V+7/lnabJQdM44Cw0DYUQGTZRhEvMLN/TcfKw
IXx/zBsm4b3OUwXTIcvkWD+P+LpBnH8AeUQWx2NSaf3wXT1VMw5izfvWQbdgSxHNMFcbWmgML8cE
zFgrUQEpdGPTDK5JLguNUguKpnIgCLHAxhGUWnc7bhQ/G6L3IC+pLBb++alB3nb2Rqk0cfJN6HL1
SfzSGj3gpXivTT3AoBQ1JYEXW3tFTwJ9h7y4TTc5mJsaiYzlZOXwGT1KyjO6Gc9M1aj+jUt2aoF8
fsXOU572JnF6epru0g8665HJYXtUWj/8+owqGlybnKBiwWYOklaT/IQWJRzKvX4ndW8aT2pphF+j
qigHLa7yl2qpEoWHMKejfxN4srnv9teO3eeB5DW0607JKJUm/pwJdX1lGr6PwBYtc9RZoUC6g4zo
hi8+5rmah7U7vJz3ang774RMDkKGZwszhAyTtnIlXv2JEtWtpkMqMLwBJV+yKSB9Q2oFsTjdGic2
kA9Z5hwG0xEWXVo/7COjasbB8y0iIquFmnlec/ha4pqbcaaNkEmszjSeFFpZv0ddUQ6apAYUTLWo
PgQ6Hdq7vkCq+o3p+rMP7Tu1De6Wz9ffTw3uOzrEr1P4Cy5vjnWNVyLoNMPJPTsubBP6+eUoAp1w
A7mYmrV3/KnoUlxwLnlnaXKwNIzaDEvD5k+5luW13CVmblVM+1f+lBDjPVllwkGm4GP0chATWuPE
A/8s/ZXI4mgdKu2rcONfBMTKqR2WTJkSbOoJqNUDtBObEKEagGnjaXwDEhWQQjfTc6JcIl0WGqWW
pWiqBgBEAhVH1RBa1Q9Q71E+9tTWB86cXn8/3Qfyow+gteanrCXoNM1hT5nss9JymWSwTZ6NbyCW
3Qe0xDcv8cJ552hycDQOlQFHM1jim1U97hLLERW9I2xpXohdcgnKjMSObpJiZTofBjolK3EXyOSg
DZPn2jWbqJKuMCTfqsfgQCEzWw5KVjb0yYOOxLTYGBpfkauOjwFDA+9SrK4oCT1SB+qlYhQfIoGI
gysIqepnqMvWvffUNdHfESF+nUqT54xPVNZUlwIJQcRkjt9yr17iyVSie704TeQSlCwLu4I61Yhl
s3vJ5PCS8QMSeMmwiJ84pJx3eYURO30F8+cOUYwTXrinJ1FbE9IGS9O0M8xutHDyq6jIYpd8lcaj
7R9X1OWDKQGGXixcgs0chKxW98mzjdpdHRsFc0DBVAfGgYLROq4cKC3KQp/UgaKpGghCKLCx+7ww
W63Ysfw8kL0He/1u315/PzXY74AQv04trU0/a60g6dOeZvaXyfgUp3VUNxuqq7/DznNByXIXjkdd
zvPl4CZbH4jlfkQyH+PO43dCo7wCycrdvsJZfF2wn4z88JbRGk2Q/ISFaR534tEHlkXDQY+hZItL
64cv8Kmafk4N+LX299NizRyU7PDBOrkpxDWJPoABcjWf72iF36OwKAldrhpQMNWi+hAITORLLaSq
H6Peg3rsqWuw3/Eefp36KlLuOyvU2rcWNsb2krFNPBH1AkONRlIfFUCyAdaA1T0QPymXdsolBeVS
76SjTZMrJaJquUTHKWTQFqyrPEXhA1p4yYjK0jyPdWmm+LoBjEXDEdnCYW+4rH74lp6q6fKZIFoj
HiQSbObgWmVJn8lruoC9IRbAYkKP8UIrM0bEVQZ6pHQUTKWoPsQBEfvPCqfqR6j3iB17ahvi45A1
5vGpIX6Hf/h1ipAfZybqltbzbg1X9wACQ38lhvLQ2ajzoE8uQb+yyeMxF0enSzsbk4KN4RSeYGPY
yPE8TD7u8hy1lGNYgVVb99+nw5zFkZ2nV1nTRZWGxWEP+ORk5ZhIpobPhsrrhz1kVFFXFGKit8Lg
fwWbOchX7fAm9/kUou7YeJije1WfVwrNkAOlRVnokzpQM1UDQAgFMogLYtWvEe+hPPZUDPV6R3r4
dYo5c7nuSG1fWRz+S6bXzFwpp6wlnMNFNMmt+TcYVkJc8Jitw1KmnW1JwbYQ5jLBtkDT8nSxrsZe
JZr04yZPcfwJJWa2dIpdfL68pZetyUEr+gNoqafFz+2yN3m3eRjkJE1/hzkDUSdKCTT19gswNx+x
aMR5bBzLgYWRppNCJz6USV1RFpqklulXhDXYpPoQC0zsXiesaMeO4ueB6T3c/TL483MN93ru+Etj
VT490uOUCDK5+vgegbsX+i8FCliNkckzl6BdiYnAM7ZERCtpbMgbd4KeCPUZv19KHndZXrqHb24I
2HUvyrcpwkdG8zJbiKSnFpN/0Npzmm8eHCUyNfww9XMe8P24oq5QMhJgmciHRZs5X9P8FJrJjTmP
jWExM0bzSaEXcqCyKGvpkjpQMFWj+hAKTBB3IUUrbvw+G5Yb7noqcP8Q6He0h1+n0sSXk2fr1U8d
nx/OJV9hnVdH5VSkm8ud57hzCZqV2848aOvQw2lnXVKwLgQzTrAuZ+Sxb0SUV1jLuSStI5xEeHuf
Fi4yRRQrF795yWI6QNUe2MnJiqWfTPbxUHk86aoOIAy+QstZrOvqpwSbOSjWU9vt6obwcECAX2y7
0fVk7htJL+ToNsEGwcrOCaOdjGGqGgBCJJCxT4YQoxU7lp8HstccPx5z/LBy5L+D0paZhn2xXWXy
Fcj3FNga6QrAx+tNuQSPSlwTXRSuuKaWtBMtKYgWHpRLEC1s1QkPmBOzPCUW4maZusdqA1vCje3w
TE+FdzwZ5NUt0tcd7KWk+LHdOVROO30ZT1V0vSCrqodeokGomcPlVXt4B8tohjRvYGeDnZ1CL+RA
ZVEW2qQW1EzlABBinY73rrlYiK127Eh+Hrhu4/17WHj9/dSQv6M//DpFPL9T9nGervT7unaasT/D
QWzAM4BZ7BEO0qVc830Gzyw1aD3f2ZgUbAzR7BNsDHdylStlIhW5xFKjy6lcbSmxtpo4D6eZwgPO
rPfF09iMxNYTigaMX7s+PJKSy+NJz4+r6prMJcIyqZ0WbuagW0XyOZoGL7xujMwRjIwckrh5JP2Q
A9VFWWiVWqYfktYEPIo7Kdu74u6bXiBX/QDxHtFjT11Dvz/mecXnmdk+XYRTGgbZgGtXJcLf7/kp
9NKSWnN88KuEFdb1oXoK4Z1+SUG/cHMiQcBweFMeu7lGecVPN0PR4ALBWVv3JHGc0UidnMAVYDhp
36evG9BZlm12Ahl+9XBJPOj4cRVd5+9SbYsuFmpB4/n92mfTkPPYCJgjCJj4jk68L5e6oiQ0SR2o
mKpRfQhlPztuYwup6meH+2N+73/n9+8gX5T66++nBn3b+Rml0sTfTwSsjM8Dl2Mf5lk1xTqOhtV2
0AE07wf/SqAb3Sio5wjU894FYpG/klnBbJQnZQJtuLwC/K93hhiHqMUZxlvypLFpn4+miCQz34mt
ByQPkB6ZGuGQVByvPH5cUxftUprt0Eg18c75t8SdjgkqJI6NnTmCnRlXqpnuUvhj6StKQpHUgYap
GNWHSGCCsGBV/exw27r4ntp6wPd/r7+f6gF3GIhfp9LE0y+hz7VOJRQNRaMpQNR0uyKLrBYdzNDB
vxJCfoK/hvlO0KQgaLhNo2T2C2ITTW+l2U/LLBC0CpM1G4HwosnYQH4cxiS7LU48+kCW9lpk8oW/
QQSa4R5Q9GR7f+HCpOD4SDaTSdh0eCc23Jbz2PiZI/gZUeQH/IzsDcqBzqIs1EktS8tUjfIRCUx8
LU9YVb9HvAfz2FPXRF93EkapNMPTTypbPVMI2lcms4XX9d3RuEOrICFLaA3N45rrBZoiBhGSoqSd
h0nBw3AtSslMrBlyOXJJlOjbFTwq4Dt0hCBnvQ9nGdEY9ueTM23yFbp2PMmYQ5ZtLDx+7k5bVhXX
Tt/CU01d16C5eKEQ+ci2IMqGe42H6tZMEW80lO8f64AUylm/R2tRDgqlBjRNxUAQIoGN7+AJs+r3
aOvWm/fUPeDH0XSOf3xqwJedqVEK0uuU1zHPZYgnettjxrFmFGJzCV4AJ6tNa5XOwcpq065QQidv
TKedpklB0/BeMM95OLDRbNZ1u8srDjbK5tEBK2U5YCMQ7jKZfYqElKetSTwSdz9Qsh4Oua5tEjeD
VFw7fT1PNXX5xEkCTGzINpM9Zgl5NCDCdBg7b66G7x9rgdRSDr9Ha1ESCqUONE3VQBBCgY1v8Qgz
2rGj+Xlgew38/Jjfs9Uz5NG17hZoo3eiz2S4K5peA99xABW4ufMyRQ4Clila7EglkHVJOyeTgpPp
999y8mM3Wmky+0SX6HfgR4SdHiHGe1ziOXTp9B1YhVPwVcp6PigZJevhgDnMTmrn6H4Q7ONaeL69
EN5a8Xc48qR+zfFshJvbMs/bUMn3jzVACtWQA61FWSiUWtC0347vnDPsLpNO987+ArPqJ4jzzz7P
36lt4HOJcvvQqM87ZaNUmuHyJ3XWJcNXOWzzEl5SskwMP+84ihqjERrULLu0WdV83Z7fGZsjGBsV
UBxThJ3iXLt8hrZLK55aCEKdo/o3zwuFj0zm5rok0sNdtMOJDX6dPZgvyORLAiqunc3ne9731HrF
SMTGhAuemdnEGskrfgTzHjf8Bj/rOyrht2grSkGNlI9+qXapPcQBDRP6Qqn6adq89e09dY3zOwjE
r1NpFvnqSV3fOruUZhcZrr/wVO5oXnHly9d5kCQH70poK8XgWs1USISdlDmClNGkTDITDpxcS5n9
LrF4L0EMFK548ZQwvH94yIjpmvZ2wyhV4usGM8YPWAdlETk8iDxk7xjV0hWHqLDw6l0M/fPUjXxA
1lbXLZnnzcnw/eP2k0Ix6/doLMpBmdSAlqkY9YdI4CIityZ31PnaUfw8MN3G96yi3B+fGuLHw4x3
oLEfOXUtTS4bjlTPAAeFQ1FAmrfXCuHcuRSTxzXL613CzLL+UmiLe1E/gqXByYFAE341kjdD8IKM
8hxFa0Tg6RRCvFnnR2C/hpPgdiv0dcddOuvxY/OFKqSddoRR+V2haQgwxZ0delYyGyth13Jb3Aqi
RgfyQdPEv6MQfo+uoiTUSB3ol6pRewgFGmb3hFL1Y7THz268u1M39jMXzeqPT7DfkZfGeKR+aVEr
vGZne8EkR/vPjH3gyGrNGpI56Fgw4lGPC+4NeePuROapD36foHyjLMfNCyMBY14TAIt9OMKwyXJw
A6xR5U5s6GP/cEg07YegkVRcO31bTzV1xSohtJzeIUK2meo1uZ9af5tbM8/bNDnPoGnuFIohBzqL
spYyqQMdUzXKD6FAxbRPPdyKG8HPhmZM7uWOAfHrVJp4bTFVyfLV0aTYGIf4Fxk0GuNEMTmWwJre
g4b1UNXlgBjEOxtzBBtz/SU7RhlvgGSubbg8+7YOx5cOEd4QgOEAkwnPzCYdoxMu2g9LhpOV69Fk
Moeg4njzRTD74WZcXpvoKsk1k7lYopd1Lm6toXyf2qrh5V9RCL9EV1EGaqR09OvXojvHBz8lk7rv
r2Q/Qlq3B0kviLfUNrx71t34x+ca3uWO/vDrVJr4bPGakPrjesFHkzE7Dqm+Cn0g+bZnMLUHDetF
Wg+bxvK9kzNHkDNe9kXOJG8IDmv5vEss5gCWGY8jGJTKUJZwghGtZQ9IRa9IvjZf68NQp2Q9IJSV
SaZkFdZO39JTPV0u9qp9naeG5ZrJTKxEnp0rWyzhty2S7x9rgBSqIQdai7JQJ7WgZypf6g+hQEWm
3zLdg/NrR/HzwPQa5nd4h1+nuJHOK/TrEfouO4h9YfAlTLrNNRqzateZAjfXnOs1k68By8ulsRnf
+Zcj+Bdv4mXO4uE+ciV8WaPEekRV7+wHnmQ70rb3Hc4wsmSex8vBKXy7Pj2sF07Ww08fJVsPhgtr
p6/iqR4e8f3WvgBIlmpBkw0zq21xS4hOETAH8cIGHuIleX4u1lmUhTqpBT37/WABEEKBi617Zbi7
pteO5OeB6z3YzyOJcn98arDfHlu/TqWJ/xaXQtWXteFt7gUJAIp6gVyPmL402IOJ5dzNc6Y+kR87
KXMEKTPoHyJleKebXH4jJkqsGAiJpwFJm2xEVXezcUZ8BU4SNjbBJD8sF05WDnxksg1JhbXTbjGZ
4FzcttRuS2ESJNlM6Zrsp6dlWkPgiugHycYZTvIKZ0awIOVYWouShl/sJJxEPLicrP4QClwQF7xq
PEG6m+m21DXg77AOv07xguaZeM5M67omQHvH4FMoO9Bo9iBVgOZ+YZONdgc3lvX8cmCKDW0v6z9X
0IqsJ4CVJ+WttJqimreQedtspjrCNUZk1kmfsJkJMB82CycrkdHIZNOBimsepVS03vFcQfwXBBJp
JnOsqWgonm4AcSkC4KBesMtBvRwevKdVFSWhxVU+uqVKlB7CgAZighLy7/h9Hmhuw3y9MvL3U8P8
jvPw61RS8AScMQmbqtBnb/vGLHdDWQaWzHI60vWB7pk5qFcM64q+U21yP3bm5QjmBVP9AfPC5Twi
A0GwRIn1ikujIIXrTxhSFEP/HY4xorKIc0aciuSYHDU/p/vsAdIj05LydHEr+P/H1fTFHSXbJ0Ks
mUy/SuLpAAlY3G/bI98/VgApNEMOlBZloU9qWVpeFaN6xAERxASpej02upnjttSG/zx0TH98Gv/0
wD9JY1lemstnT/PMmqXhY3A51LFxNO4w9GVi0uY7qS83By2U7241s3bsVMwRVMy4k9mPPQ+usHmL
SInVAUoImTjjfYGOt415GNFXhL1ONjyxZ3tYM5ys+MGQyQeOzvsucVePOPAaZnF8mRZsHkG9Fk+N
1Y2Z8zY88v1jFZBCN+RYSouSht9mlWOCSvUbov0WCUQQFqSq3x/dw3PsqWuCv+M3/DqVdPXn5K1J
mYE74UNNtuigpGDZSzSNPN3f7z5nmV512MLBThMSfeOfnQDqM5LZwQmVK+V5l1c9o2DpjcD/a5AT
CMlUi+grotsnhZdL9pmpexwnJ+th55rp0VNdXDvjVh6vn311ywDULvEr1jyCXS3XLEhD5txolhk0
S7tS6IUcqCzKQpvUgZZXxSg/BAIVRAWt6jdG9zgce+oa6OMgUs3zUwP9Durw6xSvoZ8yK9sGTKB4
MzDqEOrWozkYoK74dxtVzLwOPyLOJtRRSHYC5ggC5krkVCNHyjb3UFrFit4dwOhnWII3BoNwiJEL
ssOX6UmaZA8p3qfZewDDJEcmL0YqjqjgH1fU4QzzdYxBtHkE6VqF06mGrPgEF/cyg3shmInsbNIK
v0dhUQ66pAZ0TMUoP0QCFYQFrXq9L7rZ57bUNdjLY0YvVs6QY6aUdqquNUWbZRHqIo5GsyOp7vD3
NSEn06qOTakAK/W0l8xGs+QzaBb7wkCzwK0Q+oX3naPEyrjsESQvW4Z3JyyGmRZRVrxUsCJRVLfG
iRvqcnqgpMjktUfFNe0JP67oq/GXqv/CYLHmYVdXSTwdABIXmXGv6Pr+sQJIoRlyLJVFSehy1YCG
V6UoPoQBEcQEqepXRctjRi9/Z/Q1sFcgnL+fGuh3kIdfp9LEvUdBNjBBsTH3jk4zqdr3lfmlAD9r
TYcvSec11QvJ4lXdISrajX8wMPaEgYEh9uTg3hKcjkusdmCP0HjdMryJiBRPx8i6QRD7JPNpsiNc
mT+7KV7JihGfTO6lKq55K0ZFXbOFBFi7rmrR5hFUa/WArG7OnBsNM/u1rlen0A45UFyUtTRKHeiZ
qgEghAIZxAUx2rFj+Xkgew329JjVk9VzqkipbU1aC1Nv37Qz1plzVCyfXewEx7ucZszpAk0yCcyN
bMlnkC3M3CdkC96yo0iX9S6rsgvrERovuf43J4YU2zc1npszZboV+rpDLMXM+Lm7YYcIixt4PL79
nQvkZ47zp0SaRxCputfY4TaI/r5xLTO4lggg2Ra8/j2KipLQIXWg21XxUniIAw4ICj7VL4mmxzye
/s7ja0ifjOz7Q+N7n93X3I5Pz0R9347XuDnhk7r24tqajOoojtpedu48iAZagDM1j2xpFWFobJAb
8EYiJ+g0/T5lbmS4rIqdv0f4ux4vSHTuUnh/rRIIX53EedMSJzbQh8dDj0wVXywV12ZcupPVRCbc
ioU8XaLNo11zu4B0U4gNGbAHxaKbzUqhlfV71BXloElqQMNUjOpDJDBB2IUUbbjx+2xY3qB/27tu
xD8/hfvxmNcPayzLB1eaXK5QXJiAfeEqs7rxqI79xX6Eqy3J3KqDjg6Mno5okW/sg3rh9eYT8oUu
ojyp+JUayvPjUN3xpSzB21FyvOXWKkvI4qRnGGiLExv64jF4lJJMFcdbFUdAWKGvl9t4MKrpvQIJ
NY+gV4VqO72qKyTrjTy46xva4JcoKspAh5SObvVYnFQegoAFIoIRsu/ofR5YxkyuQEcXvEqliRMH
Bh/Jr12SvV8OArhXDe0ZOi+SWnO5CVR8krLu9FW/A7xxy04A8JXMyZdcdbwq3LV0iRWe3j7UShgT
Lfaxp04YJ0BVRz08a0lsEOvwCA9LpspTFCquzbhgpwhqXACA4T4s2CS43z9kno0X1njhZSNYZhAs
3OgQwSLdkAO1RVlodNWBnqkYAEIkkEFYEKMVO5afB7LbMB+9vv5+rmGuq+B3P5jWW5MPrvS5mqjd
kv1fCMCrm9qjcg+1c+8Hd0fRQOoHwjMGUN74ZSfoA2ckM8zOyrMUPe+yao9K3iwEhDdiTQmnl8QW
JiDPbocTD/yzNJcjUyVeTsch7QpPrcPy96ddS1m1UPMIclVb8ja8qp8KSHAP8uBd6pVaGuH3qCpK
QovUgXb1YJiUHuKABoKCUvV7knPr3HvqGuhzJ1aUShP/HM4Ba8lp43UYWx5VmMI2o/YkgRt4MIXj
iMazDH7I5dxolXwGrXJGIjtKLM88EJI0yqv4HXdb02QHkM1GAT2OgDcjrSIRNLfCiQ1ebbV5QJJM
S8DksprPztTS5Q3Ji8Z6GAy55pGvWfyUclY7CPwX8Iaji/beSqGU9Wu0FaWgSMpHwVS7fhnigAWC
glH1U5Fz67t76h7aeblu//3U0B47z6JUmrhsNHS5GresPgcHM3zJTh1UK7dS5YS52qMF18QqTyxm
Hp0k/EzeqGUnhP5PimQmBjC58DG9Sqzct7X/rEa1pHj3dSo/4mSWmJC0hheZ4TDbKLH1gCIzHEd4
ZaruTfkHldtLTgM8vVT70Mthdpg9glqVHb1xC0cntrkxLjMYF52wlEI15EBrURYKpRYUvapG/SES
uCAseNGKHcnPA9etF+DL/PxUL7jjOfw6lSYuG1zA0kK/FHlgnlkhffTe/KicmJruZ2OryzixqQ+s
VZ53KYk1lTfe2Qn6QIlkTv3OlQo3p1xitf8K1+6FvqR4S41HWGdwBGORx9bUokOkZx9I0t6MTFXX
FChtBQX8uJauWFaqfY3UbrnmEbSqOJPGy8HyeJ0b4zKDcZFnq1KohhxoLcpCodSy1EzVKB+RwARR
war6Tck9Kseeuqb5vpvhlCIiL37W9NGmZRFzK7Ee9GbGqOiwKSZa99As11SfgCzFQpk3YtkJgK6R
zI4QzAOjRKGJEit3MJvfD5aBQD/gIZOwuIpYxchaeGkdN3aeHrqBzjLDRZwTj5/i0tq87tjpsHy8
VPtY9ysJjnAEtaprMA0fIq3EY6NWRlArhG0TtUK0YOVAZ1EW6lx1oORVLaoPccAEQcGqHvFmcHrA
/D8PbN+9kobD41MD/Y7p8OtUkqMRztc4VxKMEtIFVzK9YrtE1uiTYZp1OCdzqwP7mMweXkvzxjw7
QQ9okVwKnZErFW8fzK1yC9t+lMKeR4EJLun9N2/g2faKpemKT/AwxGHlsIcm1GpxWW1el+/W+Urx
5VX7GorVck3d36APTKkouS1zbLzLCN5FrwkNeBc54TRMWuIuXRYKpRYUTeUAEGKBzBIXvGjFjuTn
ges12O/oDb9OJTn9n5z511D/tg4bHE5k4npGxcrVuOHlPbZpVPsZdyxdFSDTDnIyyCOS3yN45CBo
zFVaxTDQHP5fhgFt+boMCT5F8/SNhnhyC/R1B1dKqfHj6jXh+CkOA/Zx+Z07PmKK9f4IEo0zuNPV
+4tXcmKCXYTKCEKl+jvK4PfoKcpBhdSAaql4KTwEAgVEBZ3qxyL3qBt76h7e5fu/199PDe99cDO0
m5yslwa14OjlY+/kdORS4JDhJ5Sb9hydexIp+FRCP/fq6Ug3mXeSZQbJct7J7BjRRAEglmCUWLnF
3BzKUkNbvm5N4Xe8k3MMfM0Ctiw58tButnCy8vAgmSovDao04kN9XE8fuN17PcuWbJxBqrIq4xd/
gvqNv9DHVX28UAu/RWNRCsqkfJRMtSg/BAKV6tcEq1twI/jZ0LyG9B2Z4deppNXiJLMou6ZLRVha
uR+sR0qG3kiWj1Xvto0d19ydgCrFLjhvZLITAHxGMicYMeVKxdY7E6bE7LeHHC+2yuYrd/7s1daB
koWpbUt+anY3VThZD4etGh41URqRoT6upw9sXe7T3ZKNM/hSXYly4D7x4WMjUUaQKOVKoRxyoLco
aymUOlAzVaP+EApcqt+HLe6o6bUj+Xngug3y7/b89fdTg/wO2/DrVJrhUy2NTonxPWqpDwjQiUq4
W8TRozFJi+dZvcBHbz2GfoLn3CkWH0PLcUQiJx/x9bg6z8dd5RH6pnE8UILn3WTY8hAnqKJWAVuV
+p3YegC2DPj+Axo1u6RmGzl1dF3TUt0LH2QaZ9CoHL7l7HQQoeBiWEYwLHiWw7BwtJdxQ9qKklDk
qgH1Ui1KD4FAo568DNwt/47e54HljXxNaR1on59C/g7X8OtUIhQJbxV0CfsdtzbCadadzHZw0E1O
nbAx+QgWlfjhOvn6BLQCDdy4g/qPAxDkNOPXiXjQV0kEGVMlbxxnNdW3NTKK52FCLznCRHYDnHhA
nqWyGVkq2z+V1abv1p0a80SRFiK6R0v46DOI04X5mqDLEREJ7kW9elGPyAPzhTrIgaaiJJRIHSi3
e2/HTVlfRjwhTgkTldxz52tH7/PA8pre70gMv04l4oycPAmqxenbd3+wtRNkU947NYfm1VUXJMGa
YjPvyav3FVrggpdtZuGCMsnM1QdyLXX2rcQUFb1PV/+Wp3bxRovIG4x7xddODj2Sx3NeHx4VIzJV
3vxVaQSFWRD7KYaW1MyQZ+B4+A9RZ5WTi9qwYgpc8BpcIhOgDH67tBRloD5KR61+/aGlSw4wQEKw
QfQdtc8Dw21At0P2lsenBvQdjuHXqTS5ns8LcNpgKiql6TPiLcpjrzp+h+7mck7KR1CnLfC7zrp5
7vyKCeVyONgE/Aqkm3KlFVjmKu8KCNcILoAIbx4z8ekJd1wv4QTJwjqc+3M27x4TLTJVtv0qjSAg
H6rpmoFV+9BFuCXVOIM5JW7yWhxoB1EEAvugVnQblqhQUgs50FiUhTKpAyV3T/7HT71kAhWkBS2a
seP4eaAaQzvd8RZ+neLxs3nynvuSmCgM3rkRWQ+jv+OzFYtdAMZz9wLs8Jot37OdQvFaVAjjQzI7
trtyLaZjLy9HRe/p6hcs6RV32fHX8SrdPUOVSDxAZoTUyFR15Ke0Zt7rPR2Iv2U3E3nGGRSpyG4Z
RGnDHBt/MoI/IUAI/Enz79FUlETp/Bfl9msymJc8oIGkoFT95t8eL2NPbYP8u9l7/f1cgzzdwRd+
nUq8J6SrZXhd6UzSjHyS6lFJeTkE27c9C6cgULnaol2JTBl57tSKJ61yOIYI5Ao8mvIsPY+tPIeH
0UwhIytjVwZKm1pEnXomb56pWiQ25JvHRY5MVb6+LmvaXUXP+QyFA5ezbZXLpKQaZ/if6tAss2vx
qxwbvTKCXin+jlL4/dJWlIMaqQH1UrGVbommH0zhQiIRMmRfTHvwjD11De65z+JKJXwlNBsS/UJE
ffPJW/rQaWf4zWsdG3qzJ0Gwo9AmjXPiCZB5BzlW7ivJRTblSWUvi2sNquatHReHrSYE4sgtdtTj
uXqO6pHYIK4eGZeLeuUNT0ozrfkmaF/V8JY9ROtbWWt30KO8gKBgsWrFch6/uJMR3InW5QF3Ihu1
cqCtKAtFUgcKpmor3jKBCNI60IDf8Zv7DL6l7gHe1lNCfz81wB9RQhMBGXTU4BalukL9zjLmTg4p
P0nYCihZrSnglY29cAyDhobxzp24RVxfdzIToYZciShBV4lcbW2Y0X+KhViYFYsmMDMCC+Xkhjjx
6AHL6ufwR9nT+1XazOBfFKz5C5usLEVBS4kcdAZ7KoNn7W7HHBtvMoI30TuGA96k0mOsrygHVVLD
UjDVSumTib25lxL0YVj4HbvPA8kN93Ub/u+ncU8P3FHXqdqkxpi9uhoysH2LkkZUhVtTWxZOwZwK
QTF7XEXLc6dSJlRKYZ0gmR3eX7mWhvfy8CdTRXI09rs9TeFyw3aSmKh0EtNpfm6JDfeiHoiHsjJV
haKltGbZVA1hulX7wC9fci3EipFfk7UChh649GwRw3pEDMNxVXfYVpB//X7pK8pBkdSAgh0fXIoP
iUAEWUGq+N238Zjcx/+c3PvOmCiV8HTkjo2+irfVSmor4FsGoFG49tjWoQzL+RHUKGY2IuefjhW0
8yUmjsvhmEDwJRjgiMVfIN2iRD+9s8agBrdOaE1PRAVZom0N1vas4/vcEhvI2eNjRKYqd35KWyrN
gEwE6+8Y03mbi9CSapzpmuDXGFg9kZYsx/GLLenBlohh6bAlsr1VDjVaIV0WyqQWlEzlKD+kAhXk
BS0asuP4eaB6D/R+DBHcj08N9PaY4JtVl+USL5VqDpOqT/eBqmduNNBfCrRX1Z4MYtl9QMs7Bk1H
Dkh7D0juAdffcsZ0u5w+C57sURokGL4S+k40cT1SE68ps6EhQlTOboS+7uhLZS1+XmXPp5w2fZGO
EI3acK+vQ+8qI9E4zZZK1KkL7bSBaC+BfdAp+foLCiEHuoqylhKpA9VSNSoPmcACacGo+P239pji
298p/vtPO7jSSlFx5cXTMNzt0yZpMEnKgXMUvz0utzwiReUjCFEO3bwJiL06j501MV1cYK5IZr/b
wFuPhIO6SuQuqip7a3OAF6mCtjoyFGHRTJkqXNuERs3pwZkoWSDjlacqUgNltWm3FAIZygNo1T0K
q4vI8dN0KO861OJ2fIG8ATa8irHzap6VizXlEqxEyka5VInSLcs/0EDKhVHxs27Xnm37vg3oKvvp
9qHRXHcWRamk25NTiw3X9OoCfBhwnivq7oLCIKsZmtHTNaNrZFYTFAorsbMo5oZxLXUyZw7mUO4U
f5Xo5/W0oeeJPFnlm04zbNh4DYco3yqKljixAa5AT2d4L65xIvJVZbUZD7RoVOuf2KPIisO4m6ZI
CYUpQwktmX1jUHowKHj0wKDodK4c6CzK8ohWLaiZypfyQyYwQVqwohU7ip8Hphv8s+u6+uNTPaDs
DIpSiRgW8uniPbCq04N6gPBTqK3VTwWKbmAyJPMRRCkRIbTlEUGRx86fjOBPZM4hmfNx50nMJ1d5
3GXhlrw6F9G+mk7CRj8jrfzFT7fCiRt9JQsX7ZSn8juVhFfghyoIu6uaFy7FMo05rzl9Dc3k9XzI
afziUHpwKNnfm1doxW1mEnFJKJI6ULAj/krtIRN4IC040Yodwc8Dz2tOzztVolRSJ5pY7zh2aK+h
jSamYB4sGuysvpr/Cs3d9COoUjbk2ggtOyC4bhAbYCeyH+TQ75cq51ZWd0/6/pPMAdmQJIv01jmM
STrppEwLnHjAqzXbOSpzfuO8ZFcU0dSKzMamSoYWJBr6/QJXu3Cdo2nD7JsvSg9flPsvqIMcaCrK
QoXD5hwOggfz/8+8pAIL5AWj1Yodu88DyXtor6uLr7+fGtp3SIVfp5K63MSww6FDM9IPg1t2MEWu
Gxyckg1IXIk4gx5lhyZjlamovHHHTiz0cyRyTneeVBinV3lR0Tu7+rcctxDrTUQFtuC2KDHLPwwV
Tha8JJSnrlfVVVIbdkTJjrS6Tk1EU5AsY5oWzUy62nseigRwY27Eh76jBH6JfqIMVEfpqNTBXaXq
kAQMloQgg9w7Zp8HgtdgTg8Dm64AElqKd1AWl6vX5kVDSoCsd4mYYRwljz5qDGLC1uhMtuprWd5Z
khEsiZdzWTozP1Qu3qHfSmRDiH1ch339WIwDwr3lq7RElvP3dEuc2IBl6cDbXMZ0LDEqCoegD3V0
gkRoA8Wldwk1pvlPyTt1QKYhs280SQ+ahLUcmkS/Ug5UFmWhTWpBy1SO9kMqUEFe0KIdO46fB6rb
wPZm7fGpgX2HUfh1KhHAUTt+zipTYTG0u5D1twsAJqIJMGvjhkXkDIaUK8btMBOl3fhOoowgUbyL
F4niV1eUK9mYc5WoVKXnWYS3rhQi2lusU7KN3Iaj8048ekGS9pozVYzuKqyNcENRPL41wGUKKZdI
Y/Zrav9ircBqNIPoDtEHgkdhCw+PwhPz7HNkxHFZ6HL4ZoXCx6pydB8ygQrSno51Pq/vdx+4U9dg
v6Ml/DqVJneqp7XWVNl3Tj2Mc9LbRCxrCsDRLLbGZnCiHreH1245oO2kyQjSJN9/yzlHnhW4IW/l
OdCyduk6thFZioC88kcR95TMdNp0xI3mhzXCycLBXJkq9IvKat44qpKl67VjlylEF8Ak1ZjmRPN6
Ol7XLQ4O1hth0tO1gsdfUAo50FeUhCqH78dxeVXnYmk+ZAITpI3nt/Vw14bi54HpPdTnUcSGPz7X
UD/uIAq/TiUCecooSUC9SRjfw7s3nYx0Zhh+o742tSiBWHYPUGDl02u4YwfkvQdk94AWyRXsqUSu
5NBuUSL7MQUUT65/gZZCsDcP7Poeiy1HLBkPs4SThRievOQ7h8tqA9cPLbtYSrRv0/t6SDSmCVMJ
O7X7ohWzb4xKD0YFUxyMiga9cqCvKAtFUgsKpnI0H0KByRIWpIrf8toDYeypDf9aRJQ+PoX/HUTh
16lEPFH1s3Qk70HS4SN68WtUozjmjhy3ILvS2a95fgFeFZPhdNzHnVEZwag4uqMYFb+2o1xL1+dW
ImNZlYln5YUtuYpZtLf0tiReCLsZ+rojL6Ul/7hO7UJVStOBAh9/XYqRlbtkz0ansCrG/Yu1uBXk
n31jUnowKdjZORmoDygHmoqyUCK1LNVSNRpHIHBAUPApfrNrD3+xp2JyP+YOrPRB8AopSV1XcaiT
CRMpX68+suAoGuKUwIrGFEQpHFi92Xu5gW+2lyBNINKUzJmEciVT7VGiY7DqWL66jWR4y2nDwr15
VhfrbLIZiWwP24ST5ZzOUrnHrLK4Q/55EWRahmwFMJSLGTKNWWJqX9twHaloB679hrgFYSIaDad/
qYUcaCzK8uqtWlAylaP9EApcqi+RawV/3Qh+NjS3QT2zrqQ/PjWo7wgKv06lyTsbzXps2m9IwTAp
xEfGPug4uHompOG4eQZVegSO0JD4FO8Le3ApkOhK5lwiz9Jzv8vrLPOqSuc8YhFU2WTteCKzZrI/
iQ1I7AEflgknC+GilKnioKLS2uDuHZ7ROiVrMdebi0g1ponSvMZG9cJOVIWLR2nBoxxXCqWQA31F
SaiSOlCxQ/6V6Q4pHkWoVPsG6Xqf3+vaI2HsqWuI38ESfp1KKz6v3pFOR2xEpcvTMOvFsgXyS1EQ
196NO09ncKLYxTUpVpwF8tjJkhFkSYlE9tNJTMcO1+fyOpcOVZVW9+WHzn1xu53oOJTCN7CoCfqy
QyudDP+44mSoUtZFM4Wj+VHEqjVjyc2i6MoVsfumeVBeUdK76Uv62TaSpAVJIjAbJIks7vo9WoqS
lvqoAZVSMboOgUCh2rezu2+O147a54HhPbTPnHQR/fGpoX3HTvh1Kum+/xQFlTh0FqJPm0XhYUHO
rNxdrbRH03qQpNw5rk0rNpbyvnMoPTgUbO8dDgVaTbmSo/e5xHAe/+7qVv7BWUr3HOx2IsHS7Rle
3BQnNvSzx0RzpqXU4dKaDQe61NN1TtYxVJFfkGlMU6QE9tegpB2zbbG9WsT2ktm9sR2UbpUDjUVZ
qJJaUDGVo/sQClQQF7Roxo7j54HqNbTvIAm/TiWCLuuCWTruzWfK3pr57TjvJxzqsusS8Rk86CG4
4hJR7jtr0oM1gU/rsCa8oVjbK/nms8vqDr+3Kimu+c2lcMduk0BIasfv5BjMvL52A5w8OqozVUKF
qLQ2cPDA90tsaLLqs2UaM3hQRU/QNppW4PodAAdjomHdYEwO/37pKcrxhkw1oFYqRt8hEEhUR2nR
5Qo1Ycfu80ByG+D9kM3l8akBfkdP+HUqEYFZd84SG06CNGt4z3g8rGmT4YiIa9/GxHua0uxcW6k6
7wBD7jtn0oMz4eJ6hzPB0US5vsv0XV53F5O54ee0BG/fGl/oa/+dInDT4ZmqRWJD//C4KM5UuVCh
slpYhDTCNBODjQwUtQizmNzXDiy7BTh8B/LBlmgEcTtSClm/R1NRDkqkfJTrmF+FUwLigEZ18C3d
ueCG6bFHv9hTF/brvgP/L7zLY0IvVlNXjBL0N7WvXGrlAI5dY3ThnQGhqBWa0M1o+o0sIpozr+Y+
NrSNdSOR/QoWA9ixGV1W90N2Gpk/fgiN6Mr2NJHBPEVstsOT1eUC/sCaYZKcqRLoTaUt5WqAakUV
Q7pq/mJhicYIZhREEgv5j/xrb+NLC/pEk7dSqIMcaCrKQomrDhRLxWg8BAKL6sh6xd01fPlvtMv/
nMYf0TiVSmwdp/w9WIUKdxA0/gZuHlpA1hbDoS7XBHUASTa82lQrjjn3AXPfOZIeHAnuZR2WhMAQ
REZ3AEaX2EtU1Fz7u2J2xyKm+yvJ8TX1uHRynO3jfNAkSpZzOEvlbozKajb7RbSlb50jK9g3sRhH
UJ/igxXcCfmXN+8FrqFN+PhiFNdvl4aiDFRH6ajUAZ4KpwF7mszkPthfoLME31H7PDC8B/FRzkV0
Pz81oPNjAs9WFPFqyotHxtaecu2Y4FC4GjTA2zCkV68YMM7gMDURx806uXnf7EkP9qTcyewXz+pa
JutdUndMJrl06tAvrEOct3gmP4a2vHynG+DEhvS8lw9i5BOHuSbfL/q8CLqh9VVvvBHvZLlzjmBC
5dapfRTSz7ZRJs2UCcdXpZYi+D0aipJQHjWgUipG1yEQKCAo6MQjufkxcee/E/d5pJ/doqK4kich
aFBXV1XSo0gRLnTrFjX7xDcM/xJbIW9NT/rtiopgOHb3nRTpQYqwGHdIEdhy5cIudpXYHZNHlVmC
NzfC7Vsijik5/L1iIK2m+OsDYHbHw1kq96BUFpdNPq8uPa/BvI5aOKpInjHGNVsLMrdgto0PaeZD
sE4phULW79FUlOPNtmpAuVSM1kMc8EBQUKIBO36fB5rboB6zvv5+alCnxzSeUNiqe5zW5OljAs+w
ScD1uG8V9hpvMvzXE5yykdcARWI2aL1uuAt1IgK81vNGKX69NDzukjo3UqmCXvd6cwcccd5ilPyU
5fLsrm6AExvmw+A0Z6o8laLSuGTyefFEiWwpuo+qZ66QaYzgQpe4M09xoXLw21Zo0yNqMymUwe+X
lqIc1EcNKJWK0XYIBA6ICj40YUfu88DxRj2tN93/fgr140GOHFZaRJzB12oqrEXCr2Pg6aG5ZmRu
ESiAaXcATtz7hfxavov8nmApct/pkR70CPFdOvQIDqaFoy0BNV1id1Bk3dRXz9PWTrcPLByX0ZOf
sjr00IKj6Cux9YFuqKozVa7DqbRm231AkV+qe7nMI9MYwYTK60u+p7Rjto0gaSZIoJuUQi3kQGNR
FspcdaBiKkb3IRCoICpo0YQdx88DVfeBqcsfATSppZkIOMPzv5NY2rhvfKVYKhbIGtzyknEgnTmu
iT0BV1IzNZB3FqQHC4Jrd4cF4a6jciXHAXKJjpXOBRDtEtcDGBLRXiUTGpTl4Ohuhr7u8EqC4p9X
vY9KOV9dCtqhCAxr06nhrfDthNAZwX4q3KJWW+SfbWNBmlmQSZAd8Rm8Y8cD5wT9cVkokVqWYqka
fSMQOCAo+NCAHbnPA8dteH8rfv39/A7v7693zKWqrngzaHDouPDtCfYoIXql+to6LQiGtUvjBsI0
S9mVzEXBTzip5b7TIz3oEbbiHXpEdybIlaofP6BER01WZfHq4JrcZwj21jsnSCzn7uKmOLHh3nw+
SM5UueVYpsnpz4ttk0Ia6z6ZXtlCojHqNbFP4Zjcilk3cqSe14JenEIp5EBfUZaOXZkrD2wVDx/s
xi0ScUYk6sKJBtzofTYkrwE9NwaEVOJqlYLB4Qq9qkmvZF8SzqG6ijEyd4uKRKpcQ50mIv0CURk/
11Xu3HcGpAcDgkdhhwEh7otypcptU5fYHUVLEWV+hmV464K/heM2sp+dT4pJR3Oc2CCudDVnqbxK
rbJgIT+qgxAbqnnIKI5MYwTFKRXrhVLagWtfQGwOhHthOP1JLeRAY1EWyqQWlEzlaP8SSrggLnit
Ruw4fh6obsP7ZNG+PzS27/gHv05hzZgDAhRbrfbEdiTh7KKI1ktmxbaTuA68Ok1X+lXDwn74BOK0
w58Mf49k9ruFXPJ2dFWXx4OpVIVhRzO23oG3aO8J/bk9R578IsbDAOFkIczLhADNV2lt+G2RHyLS
rOVbpq7sTvlt+AgCVLOrzma0ZNaNK6nmSubp7yiF36OvKAlVUgcqpmp0HyKBCsKCFo3Ycfw8UL1G
+h3w4NeptO5E87iQ3gpdh8XvdzuV8B6ceMl1lLDuV68lOMps10SegCzp2qzduW8DSwtCpN5JXhp2
rrib6BL71afW3bRpGd665mfh3qKXkFpgZjXGXx8wZ2loOEvlfXSVtXSq8NRrnSWAoCGwRGMEz6kn
pmQ3pRWzbnRINR0ywzM8vVAKOdBXlIUqVx0omIrRfAgEJogKUjRhx/DzQPQe5bk0mVkenxrodyyE
X6cSjjCjWZfIUV56+oMeUKR97BECRcbGGJjVe3TiLBZFAuQ6eG47X9KCL+Eo3uBL+JtypQrmLrF7
WSncpgoh3kX78uGjefL8pNkd8xHRRx4WCicLb5xMWNHsspop2oRhWIs6s3C6pBojX3P9FKbJLZl1
40yqORMu9CuFYsjRPW2YFpU6qQU1Uzn6D6lAZkkLXrRhR/LzwHXrBUPXv56f6gV3XIRfpxLebgNa
lJPlutykHoBr/smRgv1VtEZTvUlRP2cpA5L9OHLbOZMWnEmLRM5XjqXndpfWZ1QjwsMPF5aGTO8J
G6ptG7YleLOH2cLJwsMnEy5UG4ESjMaH4vHY72t7pfu7kmWMIELXmNBJ5Gh2/wq8zZTgo4NjGE9V
6vdoKMpBedSAUqkWXYc8YICc8aq9ToYbap8HhtfkfsdC+HUK/mkOSFBWKdmv7Fsy8bkPm4F2Vrp0
E7tqE6G8MZcLFB7OQG1swAKr1oAVcNyvUXLhN/b8JkJxA1M1Saw6bxL7oT0zJCJFjh6YJrfEiQfA
SQoqzlQnGwI565iFTzC7PHWjga3ivbcOMlR3ybLMLmrJcvi513CH48IdTymUQo7uPb8JUamSWlAx
laP7kApUkBe0aMeO4+eB6j20SyqLCH1+amjf0RB+nUp4qsvLMR0sYkRT/2F4E7wWi4HtIrp845cr
ZlCi+AgXqDxeM2o7h9KCQyFwD4HHORyQK1W8el1it8VH1E62CG/HRv8hFgusKCuNTUpQpA8rhZOF
p254Mltu15TWOl4eKdtzm8bqIVNkGiNoUYW/0UO2tOOL9d0H3AOqvqMQfouuohTUSPmol2rRe0gD
IsgJUsi/Y/h5IHoN9Dv0wa9TyaEosvXFkXPt7kyaEL42LAcFvRcJrjU3eFCd1vRsCM5aue3ESQvi
BNMaccX9/CgjujK8XV63MVdmdw1gifCmO9jvhIeqJTSvFNMYvl8QK1VWuF2Hyk0upnWcO1R+l4cg
E1o6Lc7oQYTqPVKNS5ow68ae1GBPuE1O2d2/R1FREjpcNaBZqkXlIQ9gLDmBaMm+Q/d5ALmN7ZbP
199Pje07GMKvU8kRaGBHhyRYh3dv3UQqy5wwslkOmakqw3wGO0rEJUJRE3kht51SaUGpNGZ+KJUZ
eVJlJLu8bvZG1+CLBXjrBpAle4uESorVf7oR79tEoe+Fh1f0yzrF7KqI1olymsJpV9WNhDFIA9sD
bEk4FcYFwZcv0D2YZUz8R3NJoQdyoKIoCe1RB1qlatQdEgEDsgIPbdiB+zxS14DeN+VrYBA4SirS
qqQb+YcxTVJplVQVRScJLNvn4e04UJWE311uuz9JC38SgG/4kxBZccWydhxklzVMs+pie3GXWoM4
I9N7QIFqzZeTxWoA3+7hO6V7md0G1qDDhTTfpVHZXQEcVeVI3H/WvaIeBKh2yIq+hvizbkxJDaYk
vqMHfo+KoiS0Rx1olapRdsgEDMi6oKEFN2CfDbxtCJ85vf5+agjf0Q5+neKC2ByHdYhd6DvlOwoB
V/d1iFh2AfnTK5hM9RuBwYuy6hJ0mhg5ue0cSQuOpN3J7PdkCWNtCt0lDu4rqLLEGzQ64hU99Ohn
TQbUKO9R6h6lmsP3G/zhwdCdo/LqtYrCGvKhjq54A6p66JiPUKMHOarVN003Y9aNIqlBkRDeCIpE
a3iaVleUgyapAQ1TMaoPiQAFWQGLNuwwfh6g3l2gfrdkr7+f6gJ3/INfp5bOimIJocsp21BbSh50
Aem+qgMohoKCzPhGygh6dI13oVUJj5jbzp60YE+IBtJgTwi4aIy5J+7ycEpx9OPqPrgGrBzj7EQy
uieptXQPN2R926CX0qp/W3kDu+DMP4Ad7X/R0d2iJKpNwowe7KjsI3oyjwbYKfgCPhn4Ee4g62lZ
/R41RUlokDqWXqkYdSMPMCAn8CD/DtznAWPM4vOObfDrVNIKP3k16piXOSjbjYQL/L0xuFF3kchr
Lh9Bf2Izy2tTXLknkTd+2ImFLXZzJTOEKrlW9J1ylziwhqsy3ibsfnh+zQn2Ihnwn/j/dM9U1d9v
fLuHRXGOyoSlolq3EwmxsRSpRBfDRcYg1Oj9mtm/GpcNn4bMshElJYgSzZAFooQH4PVKiVQWZcmy
lrDR61oH70dL9SEToCAtYNGKHcbPA9RtcI9DFpXH5xrcvDCwdQG01h1DammzSI71DgFMyrrg38UV
4r6dtEntuj06ghqFHMkzvGxz2zmUFhwKJ7QGhwLZkgG/36XhW041IkKp/k1we7uRDJhRHQHwCVYz
+H6D3zw8knPUcV5FcT76UIcd+HQZVW8TItTowY/Kyp3WnE4z7BJs8INC0ekM6lU6IcdSVpSEFqlj
6ZaKUXlIBBjIOv1ghKaBDb7PA8xriO8BNUktxQzFiUJhXbafFcyWraO8Ed8m/VOofs1Lmek7qFBY
7Ty8fteXvXs3lJNRLpHMfj1YuRRiLcojHghV6X3nt2eRMyR7j+pZqYdDsJrC9xvjytDw7+vwq2ha
W7Vtw3WdC/7SvcpaF8S7XA14Tjg1iz7Lxo3o+9qGixEpsCMahqlZRZSC7igbnVIlyrYs/4ABGYFn
Sb7D9nmk7iHdeDj4+akhPf53aW/Xo7uOZOnd56/I6wFyt/gtAYUDdFV3GeO7hguYC8NX8owNY3IG
3f7/gF+uZ4VE5c5zdhVcjT4p7lcKBmOJFBmfj1V9WE6HIEd+h7iYaHjLpn2SfX2Ye1L490pwIFFs
glxTFGuO7Ga5rkaTGkYT7CQVo4nWV55KDY8UUxwluqJ+kd8pbcQdRjKK16GoQ8lguF5BnxtHjD8y
jQ6+JrvPSQ3g9wjhKoKmmKHRwzKq1ZUwQ1RPZbGZlHF9t3NEC0gmPIG4ghaSpBckTNeIPngCFLgF
LEaxwng+QF1eAdWeW/8Y//zAf4qsKoXUFKTeNK2a2YElVKXpMtNnInSysJ84hVUUx1P5BlR833Jd
jSU1jCUkZ6wYS477qeQ4NFPEf2l2RHkbd4CO3Xs1zKLkWpLv3VF9deOuYB+WAd1fB3p8JiaRHOqh
N5KYaDclEw0hX71cC/r8NivIUIPYy2InKWEnkVq0cIou1xNTWEHJatRU7C1X3TVCD56AA24BiVGs
8J0PMK8lvT+W9I5g5gvZwbdax5eZ2xTnLqh/2EapjlK98MhGuINVImA+19UUUsMUgs1EzezK0Hom
tXxTGzW60XGV7j+0tudibIuZncGcu4fA9Y1uFgfiTE/UqHasvRpKnkTGhZkEWFKHlRcacymnTLTK
0cH6XhZriK61mPsaKXA/AoIOkoM6Ep0dImbz8TbFD3+AAt8rXOejtczjfZfV8/FXU7n9WAwkaiX2
fL1ZfqgHX6uso0cG1biz9blX/unuqOwR1k/CgOSUVSkc8gJ1gdtgu8GB2/cnx4yb1kCR4zTXWktI
36bQR4eQjOTVh3KXyQPhegU8SXDVT9SBdq97ByXriPJWNiVrkIJEilSYGt1mT/E7gUwexnQjvr/i
YR2RqbNgHdHJR08grKCFHOkF+dI5gg+ugAR+gYpxrCCeD0ivCd1WE4haiRNcrxbaIS3fhEF8D3LW
i7+RyJyhmJkX4xOXci3amp5LLoRcVwNIDQPI9Ut2LXA9M0U6bnoD/yR1RAJ8aoTnHny9MDO7H4qb
ZRhc3xgropCD9+v+GsWNhcABvgfBHto7KY4YVka3gZPC4Ekajk0xADeyxpV/RQbcOYVjCpYatJHm
7BAhm483xA9/wALXK2Dno3VP6Z6HXMwffzWl62oKUSuho1GvRFDtpMZ3/Aj5y1XadLKtKc1Hx8ek
sHkSk58jM4K+w6sxpIYxxN9vGUNc+jvj5kz8jymyltBZkhOzq9KqRKLDSaT5hG1qzzEcrm/QN53+
RV5PVFc1VsmKTvBGQk2olFtyTBVsMPUCzsDPb660HBvf4sUgUsIgwvcbg4gMDpQ0qxzhkib1fvWA
hOkY0QdHgAKvgMUYVhjPB6jXpC6r7UOthCpW38KkrDY7KegcUDK0i+np0iRP0YtpLdzZCzcpVbSJ
dP6LXFfbRw3bh/fnsn2UFM+kZl0N9IZrhpWpGqfzD2oUOJZEBiTYfaHoQcyr2/axTan4zupKxbGk
qvrEhsu/TM5K5wITo6OUndztWjZgei95+UZHEVN248qOJhnwBOIJStaOqw/kOTtGzMENAMAnwEzu
V8DOR2uZ1K//vX/9q0m96lCKZHQo+xeSQxP42pA1w5xUUhONMQmk5xfNqc9GWDYzX+jkL7SkWheY
DbL/PRewwwfIidlMa7iEVEYR3t39h+awuMKWDbMfVgNpuX9oGD6se9BCoyfqGCbTOqEamZmGGVOv
8ua37jXeZrumeN21tWcI+AQH5GEU6dcvSIMnEFTQQob0gmzpHJEHV4AxuZ0AMYIbtnOB8IZ7bE0n
68dfwX3nL/h0K01baX99F1NSz6/fHTKCXqPbPvSujNG7xtABKNbuOVmlpnZek1xXY0gNYwjqNDWz
y7pnppTNK1AcJOBUZ2hxOjs4JVVxxEgneQjBul2D4OoGnDNetsfFnDd2gNOGzEXHE1J/V6eD6FEU
5O0w3LOUiCxqGyqxxQxSwgyCGm0zbNlPICooTQlCH7nOThF38DJBgEeAgfcVsvMB4LVe3ykLPt1K
eDdoTUwqerpLDZ8dIzIonLlLc9sQdha7OgmFXdNl1w9/lfXlXe0cNewcfBDVxEztp1wsLCgOlwJL
qL67mfjIJTj7kNEIlj+sAJLXxEOn8GFtA++nLJzD7q1TmuCKv+8U9zzTSgsDO6PZvlmoAyWDGdbA
slg6Slg60I9j6aDgu7TGpE81LeRIL1O6dI3Q4Qgw4HN3LQ99C/Y148TaWqYzToXLH83lO1nBp1sJ
r6a+WYiw8NqPOVIED24SiCUcTFn0Cl4FPQycF4Y5UtrkusaK1IgVwfqlZi45nkkNrwfTG64lIztO
VG3Vij9fGAeL9GGWP1RMLNnRbDwW8eF5UXV/HSw3eBS4urx8wOr8iM65t2F3kUq42bBZsuqtH2Z/
z4vtI4ftQ5avfJjy8BMIKijZ7rERMqQ0rLOWu/41+AEMON1d3EMfhAW+8wHmNa/vBAWfbiXcE5vm
lopZT628ZMgHOqkg6i6lPCIXyw0ssrFVhXXVPdoxUNfVxFHDxDHu5vQ4yvGUCz8GxeH6IRvqLxj4
YPl2lAi13anubbUPfqKLhuHtw7oHncyoIT+6CbVONIZ6sGuv8sZvmFbkyDBdI9/gdJdho9jAu5g3
cpg32tVCIjyBsKCEDOlhSpZuEXjwAxSTTwCC+xW68wHkMqdnFYSvf+e0HnfSgk+3En7ImjQpZels
JVysHlTdkm9dAhn8agougH2/lnNBOPShxh2lrlaPGlaPqzGFWeOZ1HBSND3sqXRFlq2GV4tWd8eH
UPF9ehyS4M1O4e2xmDdPiuz7q2vRJu3NiMNQDy8E3skEpwMUDI1mo2Zhn9X0qd7lAXhpTXLEheB0
P65XypXZJaqghBTpA+nOjhF68AMYcApIxc79a86JtRXTetypCj7dSkQbyE2fnFJo5aUsPOUJd6gi
6i6lvNOBz60Ydbl62C5V0Bt0Hal5a0xKGDiu2M8ifAfPTGEutMYRnUhBQucfrOBw9UFVd7H7sTev
TsPXK7qaFr6/ksBDhKYsG9ju4db5WlxlvICd0Vos2VqCdVi0bX8xbuQwbuAohnEj+X6EFJSQH30g
VzpG4MERUMArEBWF7qxZJtbWPa1n/Mf717+a1ncCg0+3yDP56ktSbFLIj/fsYBD8OSlwloiMVpXb
XnDe72HMJBFe6v5Wy8dotW+UsG/Y6WznW83eTmEplCQKisOpaVWLWZrOqEoXvGHsgukZr9k8FK5v
6Mk+lC4LXXVF2k2CnpBljE8TeE1rLRJU/WnNwM8dVzX7eAEG7GHZIJq7G0C9KBYTVJAf1JHr7BJx
BycTBvgDnOKgvDXvxNpaIO9ZjuGPv4L8zl/w6VY6SOCG9LDBvChKM0q2DdW/HYlDsEJvuitR9DBl
oueU2b3udkVbDR4lDB52OMPggUbVDgHs+k1xOGmlYth0dG4cwbS0S1Ei4wIsfyiVQXIk52LyUKsQ
/dkxZKJ21SaqEXKRCVwkd/yEQ+svDI1mU6Z43Ykl0yD2vJg+cgSCaK+bMX5Q8bF4fqSLFpKkFyRM
5wg+uAIS+AWocgXlLsqypXWt5nd+gk+3EmHAckNPqdiKMyWJnYMMC7zkiXRWaS5TxOT1MFty5tVH
p+7MmzIWjI1wozFlVuP+Kc7jpoX35+yENA2e7lq+HATSi1mlvExyKPaabYhWIYC7I61hMs0hhzbP
zc/wlPd2MzOajZXicydETOxPh7BLf5KdIEsDpoUkeAIhBS2kRy9IVV1L2MERMMAr8BRH06+JJdbW
PbGPLck8/firid1XyCUtkrcdkmKR1l7CZWJTQVkRScmZyGRcpTZnkvlFkAvAyDKXy2rwKP36fPdo
TmF2nkmNs7Vp7dvdTdbS3JrRysEXNhAY/lDl0HT06/qGPXs6VD9RbTWbpFqz/3f7cdgxTF0P5fKA
qRdcBr6r8u7uQbzgvWE36PIPnJD7TkQkCpYdlJGpO0xUJyO9FjDA4wQHzm/IzuX6msR3NoJPt9JB
7fdmEXV1M/c13pJFZeQsvjS/mhnWYm1jpRUcifgTwjHLatkoYdnAPbRg2SCfkp5K1AMOirtTTbc4
Xn24JhwRyN6aJa89RGAOD4frG9nk6VD8xJRaMqkpT23OcPnDFKHphn1Np+uWrwV7fqWTh7HnxbKR
w7JBriVZNiSVeT/iCjpIkh6QcHSc/K6xOWt+C5MjNotz36xJJdbWMqVrkpf446+mdH2s49UyU4I3
yxLrzbzLGzR9JCl9mAh6x/nSdUZsi2sNJ6IUmfqE+mr2KGH2wO+nYPbAYUlPJRcTCeueExJrnx0s
fKSLsw9ldoDlF8geyLy6DB87K3n2vXUQsjIkZJmrhn2C1NkLEjMxmtUs4m/WWC5mfM+L6SOH6aNe
LeTAE4goaNmWuRXLNDpWhQHzAwzwubswC2mubuDOR+ua3GseS4dnKu/WTNKXEj5Q0ybEabpHPeQs
vrQT5hhBwhubYpo1WFp75jAJrl0wFaLgKWldd6eGJTSMOsRQqxPtrz9coIjqID5HY6qMIifFQ+D6
ntAbk8H310Eata7vIZtCZzDS3jZrU6yFXyy98NBkltuXymbOAThO07iGfUPfU7WQhKvuSkjQQXrQ
R6ru9iXs4GZCAJe7i7Ck9xWw8wHfMo1fW733r381jctjJS+WFPn6kCC2mHmgwMrR70LIIyWQmAuT
Nsj5WsUT8KVIG5nLauMoYePgxoKNgxv1VGqk2TLFHfcEdaVIVRj4sFcuNo6G/RKPfl3Tm64v0NUq
5EFshydJNakpaNk5dst/7qV1AI43ca7iDsgUv0PluIqd7RZbRw5bB8EbsnVILjwxBRaUphzpAem6
4+3wiyhrRyt+RavDMxnDCuH5APSCf+7DphXz+Vfw59UUQoTmMZS9D0l2WWYk4gH4knyWFU5ZYZVQ
u7Ci9qjBycIsS7IzSaJtuuAPQwiLQsEQwlKvp1I7bnrkNqKrvPvty0IsB2cvKM2wYzaP4asb+F3g
6PjfWMOTiTRFiYt2r9R/+AEkWayMGtZM7Z1VtwPmHbF5QR6f7uoWsuAJxBS0kCB9TLm6443zAaes
7NczOWIT7lfYzgeI1xqeHmt4QiA6ZWWJiY5ejDvYAy9+PG9kX1Wu9kMsV5AoRlblWw9/m4XeGu5R
ItwD5281p0rHzySXfzE9ktElVyvUDpGJrnQ1DvZou1ci6lpkD4XrFd0s+XQ/UaksKlKtEVihPnql
GICkv11MvXARws1lVRmCgzTBN4WxAy9wpqeWBAqxUgOmHkY3mT7SdbcbxwAHerRsPgEJ/lf4zgeY
y5Ru+/7+9a+mdFqtIGolcbc3rJs6Kcp8Vxzm0avknmVvNR4azQTKtk0Kd+UtMj3reL1aQUpYQUiB
WLCCoG2xMRGXVFPca3SU9e+Nz7q+ag70aNg2tV1X1QEGwvUN/NA2Skqehm2T+AJF1DTCKtQH3gT7
3DFvZmfUsG3KC0kbP4YwPUkuK0gKK4icb9VCIjwxRRWUkOHsYcrVXW7DLyE2kOTXE6izuV+hOx9A
XtN6e5g6NouEvHyIar5h4704wAPXT7yfN9fKU8x/8dfzuBbsBE76XoNfWrFNxrZHk5OXn0nzKB7U
dmzYiXQVmtT4HyvS3AEeUnLA8Ids+AyE6xtbJSUkx72eqFQUFammk+tJH71QnHZONFV/nSyNGhZM
dOUynGz4/S/GjhTGjupr5MH9iCooIUV6QLrueBsXP4ABp4DECFb4zgeYy7Q+mM33nzmn+51t4NOt
pAxar67eKYI2zXEv6TrKA//AlmzJH8CRNJgCUmzKicVVpthKPq2cVyNIDiPIcTcz5zWemtO53hT3
Fl3hbNgcqTmF7SiP1r0MDaGdPBSuV+ST5Jb9RI3YMOETSgBtpHSamrjLNiSGRh3GfReOyUPY02IG
SWEG0SFJLSTCEwgLSkiRHpCuu92630RO2pv5BCT4X+E7H2DeuKcypj/486+hTw/okddQQkbkeMgo
JwF3g08l4zDnK1n/3KUJels3G54I8pR3YuCcVzNIDjMIScozZpAezySXAzI9DCl0hHuaI/tUshbO
PlrzKnUoILN6KFzf0MsiOUsHNaybHN9VV6C5goicfJVkUx131c+DpVHDvtlVg7F6CNPN4DKFpDCF
lKuFRHhiiiroIEN6QLbueGt+FWUOqdg3qfN88PK+r/CdDzBjSe93JoJPt9JBwUCsm91G15cUmdqS
RttscXXa/vk+8tVrtm02wvQ2MrU54mO1etjEW9IWjUzZX55JLvtjeji10JXWcFj4oFItE7uZ3Q+r
g8Tdqm94o1XIe/+6vw5rDKTvsFpHCX6UAFuddnI+Uguohn1T1gCF0cwB7Gmxd6Swd6CFlL1D0uB+
BBWUkCF9IFt3vXEucJGQuvtNbO+AxBhW+M4HmMvUnvuAr381te88BJ9upUPAS45N9tjXfHS4Bw67
pBzAFzTpBNILn0SZZADeIJIWVm6DY4Ed0PXBz0Ogt7h/SrnetPZ+d4Nng9MwaOPncI+GbVNURtUQ
5t8Fcglr+M46nKhauzMCKgpOsdqlqqDbjNcXK9N3C7ipuXeYdZwLAvAI8Sg2THOOz34CAUEJyU36
yNOdbhwSHN5Rd3MJKHC/wnU+wLum8gPNKYjJaB0WD2bW4rAOVs8qfcCG9YlPDJMrtR7L9MSmynTp
OJ7VymGTbkmO2cHKQfwHJYdwTQt6O0Yzyk9qk1AppC1NmJWdrXjlUV5qqYS0P3xoGmgVanM2zJdB
qEUSF8QvkBSQKa06LI0axksZcOUMwjBeCN7IGteq6ykN7kRMQQMJQh3JutOtXrwAxORxggPfN2Tn
At89dfNLbO9f/2rq3nkGPt1K+kDMvIpTdkPG1dc4HNhBeUQSoW9YsTZUAgTWN1sxm6Er/ioL1NX8
YWNuwUufJtlo/VRyPSdT3L1SSGOhxYD89dqeOK6jFXE84+6Gx8H1jXX2PJD65yVFvb2HJhrhExRW
k/VpZ4ophI0ST7Vcq/bhOnvFURGL4SOF4QOLYPE5eURlPso5mRZSpBek6843jgYO6qhYM6U1oagO
SeoXAM8HnNdkvpMJfLqVDtKrCV99lTNC1K6L023FyU5r5JBE2AA3h142L7YlMnbnvFo2cnwCHZqF
ZcMLepE4202NVCp0NA/rlXwYU6KO6GhYLEXAWiCd4x8KBlqFFOcNi6X6V42ASM1TbYRQp/3ga6E4
uco0ZsHd+CJrIV5SWqUoDnKb95EFTyAmKE3pQR+Zutst+23L4GomgQbmV9DOB4TLlCaE+vlXU/rO
LPDpFqXpd9cwlYOyysCXZsCpW93lLkFufq13lNhpYdH0poo6pkRWLoAb7kEjF2/bsuW735QoLkQn
qMpJaK5UAihMMGPK34kcXRoB1yvczIPsJyolIxU50wiiEP0upQgFeBTpBUOjhhWTTdXmAexpMXyk
MHwUXyOHeTcCCirIDvrI1N1ubPgd1FGb38v8DjgMYIXtfIC4QH7U9P7174S8PXLN0trQDcrNK08d
wOtgjFZ3Wt92VcwZUgCQRuz1Ucu4h3hD+XpF3z9I+VqxPedUlgU8eb1M9hSVUtvhfXoqObmw6Tmu
Uvl1bgZU1t6Mfahy4uSWoD3G4OsAXa3C10D3V9KVz1ubnO9P6He5uHAKosQ0CYd1GH6BTmDdvnkE
+5buFXxLXsGJ+cEIrcJ+llJQQX7QR650O8Ud3AACbLoE4I4e85FsdmnF2l37emamJbPaTsoRxbsN
avU2NtfycSIjZyd0USXRemY/XFwyoJI+kEzd+P1lFxsD3a34fIo1moJjtdxPzWC8fFNMUhDTGZnt
xMM8k5i1D2oRUQGMzFgai68DX/Jp4d2mJ6rCYaXNYqZBv2eisxXFIN9gOBoEeb7B7BibxzDEGsPj
+vTIaSGSeT+yCjpIkR6QLj0j9mAJQGAVoBjCCuH5APSe1uX1v/evf+e0LmstZbeoayIXnJTJqqrq
rhsfb39itXyzRZbVryeHVg3DT5Z55yfg8H3kW2dCY8LPaVnN7NTh5EEg/0pQdGbRnTwxep2kF+3B
2Yeyf8EyZTQZiq8DfbWKDwg6LGALfdFxIhNR7zKa02mXozb8jNQMvlwB++YRjH27PuFcnx43LQQy
70dSQQcZ0gOypWcL3SwBB5wCEyNYATwfcMYEz4+8J7TIzCQzbCqkc1BZdhIBjYwWS7kUyT2qlAY9
2U+4Cl8MwYpIq8O1PfJttqYx8XUlkdnMzl+mpxIZi4PiLHftjtCwSXOuGEr4+sC/lBgwzVsG4uvA
l0LHpI/Gj7V107FCXfS7lBmz046v2o7mv+OiQk6ztpl/3LmNLpFHHjUtxDHvn1IKKkgP+kiVXi1u
swMQk0vggfcVuPMB4zKtZ2mor3/ntE4PdQktXNs3sn/KgiOtQZdNM4cZaObM11e0axLcyhNAJw9O
A3TyD490LXpuTNBJGKxmbiS1aYDuE91h0LU5UGcDJVpBCVrg7EOnYNvG5NHgGIM1uTKt4hSb82vP
Eq9SSrljjpdOf8N7iWIg9eKny0o6YVcinLp5BHOTFdsRrk+PmxYCmff3UJYA/KDmhzx9JFt6RuTB
EmDAKyAxhBW+8wFmTOrtUemHFkbUQw4hRbp3HQBcEXUkMqBMJpXn9kM2ub5dabilECuuWp8vy2BP
twrFpuiXYIFKzWyHbkrjHvxieklnbroa5ECZnwNp2OFL27FCrg4V9bFF/VngR7o9LYjajik9MOUY
I/2eElq9dkT0SMJ+mOm7vc44H5fN7I96XJsRrk8PmtaUxbwbEQUVhOeCAJLp7BVRX8yoX7gEHHhf
YTsfIN5Tuk7twte/ryk9vSLuM5dbSXnpVQ4c9d8wA9s0iVEvDu3zFI7sV4edEwr7rBJHWJ2dFht1
imSEOd/N3PDmL47tnr+YoJflRpHxH+OdlKv60ImnRIZptmNzLZtfkyWah0ZR0JPurRxjVFNBqnIp
1l8NJZuiv2ldSOakD5yFqW+xmfOxhKtwfb4xXloIYt6PgKCC4KA+hUmfU8LBypQ7HIIFjK8onY/W
gnDbdJp+/J0Iq2rchTAtGebHKKpG9rrCR90r2iYTznzdccDWRrGxJd+zcab4uNLG1Y7+st47FTcm
zto008ykyOGpeURqF0GqbdLVUd5JhH/zRMy9eFUSBfG/pKTTdRmK7VBQfyUCc/4nzfn1otlwQqSs
52sCwsBrhzTps1NPmxkeeb+2HFy/4NUwaTH+eX/zJntSQV6TNjKkR4QLG1Pk8AYQsLxCdD5ahnee
3m4EX9cJnRv1M3QScApcNiKHcv7rW6FfP6RmbFRliAQ2FOFIMupVUnanuYoZwLIJPswPU1y93/dn
ijiY1KxVmt0JSzR9t2BIrh8wSryY+E9LDpA3NYqVYhNBhTe+SLTNeSRFuA2GVn2OOsxKJ2GNeJyO
HzA++PoBo65PD5UWMpj3IxuoIDOoI0p6RcbBD9KHTZ3FqXZ3IXUuqC2z9NikAHn8nbN0rHmf3RKP
MyoocgXNZHfTSUUfla4of7IgUGJeYeltJ7FNNcq4x6P6wm80pWM5LznnfslXI1PtnmfytE2aWGpo
vOUxIH8a9T7IUM6pm3TCOnPrP+wy1qAciiPN060UKjjk6Tu3ceCCdOvEVCqWNZEVeVNyP/mIicc+
FV+z6uE2rt0E16cHSwspzLuRTlBBblBHnPSKnIMfEDCjQmZyvyJ2PvCLSdvXOsdukdmuRsxgVyTG
a8lDN9uHA5zSFUE3K80dDpiYcEqxeWQf2W0PvpQfNCaax93MeOEdwCk3UZODhdkJvn3qeZ97STOk
xIPcpVxA8F/W2llkD1I5Ut1d5TMoIvVAfwJxnOkh1jWJYIZ4iem+rzyAcypRkPzo1wmA69NjpoUs
5v1TQkEFuUEfcdIvcg6OQABWQYYRrJidDwTvKdzyISPy4++cwu2OVPmMFgoX1x/Upl6xQAdBqV2b
mNIuhfUcC7oFTnpN08dl6chac+y3sULX0/CjU6laeeYfIOMKhyVTCkX29p6yFegyw5gTfMHEYc1m
uy6f19cDnfkx5SaPfD3+Wr8gn0NVPKyibuT4d1g/ZCZznSOvWO46JRliXc/PrIyLajF8nkAwQQmB
0QdSpG/EG1wheNgFEEaxQnU+WjF365p0yK1MIWpNia5l5JhqPBfx1hqpaIHuPc9kkKUUbcsLTak4
B7NXa+m+38cgXU805VmtVla2fZ7ILOWmlbzpmrCR1X9eUmMhWMKHRBHDygmoAbQ1PaAaRazr7por
NAh9Ok27VSyJOr/IbAszXYnH5tSVXnMqrQpn/fi+zKvTg53XiGDeiWhMwTKDNqKkzyli8/KG6CeL
AALfK1Tno7VM2dfr9P7175yy5U6A+hktBYQOlQRJShfcd0G+IVPqU0zWyIz5I79HBn4kSmyaMG6U
oF1cfoY9fqY7tq7zTmYYEN4vOonUl3NHxUusDytuQRsjFbpikIzu8sJaM7RQSRc1kT5hWfpG/JGG
69uxOy2zpqeOnTvJihmhMhy9weNM2Tj57pj7gJe06h4pLSQw70YuQQV5QR8xzl4RbnCD2OETOMz+
AtT5gO0GuW9DHpuPvxPkvNbDcssbP+1LdWzrRKsofPHUtnl6o0gBLQVEpFqYc05uAuiLUFkRu9zH
ff5xiZCCH4hamQwXesJRsKKUJBHSY6sKSeOsWi9u9momlcsxeF/O/GoUTbLXvTXh2FulU9IhGbpF
GQnVXVNqZtjociacMBP4spltCt4YaPvYMVRaiGDej2CCDhKjBwtSPSPi4AnhwyugMIAVrvMBXqzN
aY2Oc0tesQ4lQEmmj0JKxF92LQuylfetk+18ug1Osx5eHxSeRUVFdGrrt9qikRumkJdIrUwZ2wqc
VEL4AZ768FHfXqpQJczVBzL4OYrZ1Htv7tfq62oUKbhe91aiajMfDlctbOj85AWgLpsKNcALX8aJ
6e7jLrz3JXlld+5KxksLOcz7EU/QmVKDPqKkX4QcHCF+eAUWBrACdj7gWyZvlVpq+TNn7nbn5viM
ltwUugLiKVnRSfGZiwYzY7qULqNR2V46qmZ7LUjL3aeANO44/TYOV9I/FVTSlWRPcufRE3kW3oAQ
mfELoVK4JkunrH8wN69PsblUeW+Y3x8Oqdq9yzQ0b65ykYZI7do8N1RVlF0noEIJxmrRqVVePeKw
K38dnPdSLwVGt5MRo6WFFHgC8QQt5EYfU5j0jJDhCOHDKaDA/wrX+QDPOPdjzb3sFrVidyls/W1Q
TuZMlH5XIRLltpyqlmmC0Ybktf/UPqjiTcPUIMih9PtAVMjUVipl4DFiovUHTilQUeRuCiOTPbZ3
ukxS5gUveNXD5YEv9mT+WHM4qlEcgC197cZHXN6rjTQGk35LFMpShJrswjDThuPcxGafKinvKst9
HHIGaAZMC0HM+6dwggoya7Y7i77LnSrzvPlB/HAKLIxgBex8wLfM3JkD8uvf1+Tt++q+5VaRU7++
DEmpE+ZMT4rLnlA7KCxLMTpft/ntqIqfIs9PPUgcANrTa/rei3A9sZYCJNM9Gb8wEipsGEJZvmt4
CsqLcqcCqdzqzU+SqRA+554L7nUVSqvXdeHMo3vrpmtRqWT8MPnGbCBUoepYKXZczvsNRvvUXIn9
nsp1MOjeBlSZAYuPsVl3I52ggtigjzTpd0o5+EH6cAoqjGDF63ygd2M9ctOR9/F3Yj3WwuFulaGd
/ERaQZ2ohpzS6zWOdx3SXvvBd3l4N7lj5G6cpy/ABLkSPdEWC3DDAFwJdyAAleSPQlkWTciQikDk
qVZ4kB1XW2dzkhSQCI/4bU3OfRU4q1Waij/r/nIcF6XJo1ZqdVF97s22AiSzRMq+8w1e29Rc1WZT
WewzuD49alpTFPNu5BNUJDaWzlTcJxIObpA9fIII/K9YnQ/kYpXud/zXZ7TK7m1fVFCfB/CujaX2
V9K3HEOn9Lk+CVBZcNE0UfJcW30Kw9++4x+cAAs+Gvp3VU7X6UgGE9PIJJDTFFM2VbmoK/eP2UiF
2FRtteTGAeO+DjQz7nu8jyj65VwqWtW5f+miysOGnl97HjM0dQ1gKcXW4Lur4KXjzijB9ekR00IO
PIGAghaSm30gTHpGzMFTb1Hwe56SpR7jKLpAdj4AXOau91aPv3Putjtd6We0qvquMpIrQ15XwtIk
T6PzNRZ9Jbf5TOt4VIv5IQHKojNT40zPJkGuoV0bT/LmFhky9a8EMAK4vIWjPpCLfZJuMLtHki4H
L6lG6tWhw2xw7+vLvCDP46qTUXVKVlOqRXSOiNbgLJ1kkzvMEY4YE/Go0X3EAPZYmebVGYPdyWzX
fC+iCSrIDPrIkn6RMvwg/cklmMD7itb5wC5mb10LUrmlQlm9kM1NTgquxtQEpnY1pC5RXmdF6TdS
1BaDKbUKYGrG3Xus5C0W8a/6d2kAiGeSp6upkIicjAAbBd5l11OlNZhJhCaKySQNEMz7OtBU67V+
+v4i6w10ask2GWq+jeFc7U1R/cFPBU0xOlM3wX0bd8Jgrk+PlxZimPeHdKrxVIu8AVjpx7CQgx/E
D6fAMvlf4Tof4N0zd9+KLLqPv3PmljVwzS2d4rpKN2bpAbuchlDtnrJ/HO8p3cHQ+5Catb93lzxW
dbQC1MKxXzLJhMwXeajz7/ahkGgvGlmJDPfpHaTjjOinnSAyGCHrFyziTA/rvg6g1Sp+5ZQ3ScpA
aFVc+NzLNL+nd7pusr9OjprUYhNq4os2c08qVUPtzLiMlxZimPcjnaCD0Jrtu9SrCOVHujgCAHgF
GMawQnY+AIzpm5fJO6+1Re3yLPLuUf4EqWPIaErOnShQqqKoB0sXBWyNKAq/KSNld79y8pGRr+Hl
JJe0nfuyqlTzvJxnB3SzInTpLjm8BLmgzoBF8n7Buq+tnqVVvKVXYOieLqePmu3Vrl6qkg3ReaUq
trhqKQKu8KzdPAKOsUZU16+hF/R48gkYuL1ulk7QQWz0gDjpGUEHT0AAtxMYxnDDdS7Xy9StRWbe
x985ddOdD+czWiqk0FXbJSvIs+2hnxwy0WijSlFkSSXJt7mRZZQTQB0MQ1gbzlBKVusk5ffIv+fE
vZl8pD6LzIh23KYpQOWSzlo5zEySmyhsJqU1g31fx/RVqxR22NLxofQWrergb5fFaiT+25yuB5Ya
1tw3cSpXR9hvdbvOR1yfHjAty0FPIKCghOjoA5HSM8IOnoABboGHUazAnQ8YF9D3LG/ox1+BvmZH
dwv79kZ5AZ3VqYZA4T6n70/o9LS0UWigbQq0PAAdUwqgy0o3riMFscMvqWkR079Tu0o4EBx/GHYp
KkgZKDcous0q0hUMpQM7MEd4KZE1BF8H8GqVwtZMW+KB444K6SS7hRQcspRwWr1TawC26oHfDfw2
lFsMIx/X6YHrMwauFvLgCQQVtBAhvSBaekfowRdwwLFfBI1kBfB8wBmr93aXYfqMFp8bW9+1C8SH
ZSe3TkNXVLVsF/LDKI5d8SbaHE6E5c4CwsSF3OoBmw0b8Rzz37NcXEB4foJMJevzDPk8LT7qNKuw
WrCTN9l/WOePYvZ1FdgeM0xVqmbdW7QkQKVuTvJTpmTleq8+q8OydVzeD+M6NMHBdfLUlkQ/LRL9
aLi0kAJPIJ6gheDoBYHSO6IOrgABfgGHcaywnQ8Q70k9A0/fv/59Teq2lHf/jJaimBupaJ02HDV9
fHGox5u1q5jfUyX/UJFhnF8m4qScEuLyHt2vd36gtSs9+V8LKYuEt8xYJpIpKy3yVJybnWbF+QQz
OVHiQv9VWAvs+zqcdtQqCjjnidKHhrdLwLFTkB9umWcx+sbyC1d1xyoPu23quvr8fF1L1Sbdh0Y7
rxHBvA/R+HkLDcqIkh4Rsnl5Q/xwCSxwvwJ2PloGu+131NZntNj18XFz8AAzBC/UuatISjPWEmqF
+V5VSjsl4r6rMogeILphErjCtkiCWuQ5wb/L0UF3l60uZLL0BHSQCRNXx1lBGsFQTmGln6vOPQRf
B6pq4YvBE0VZsKE1WVPiJkLLM+cnJXfWogBfVR7wE9XiCXl4HPXYL10I16dHTguB8ASiCloIkV6m
aOkbkQdXgAG/gMQ4VvjOB5jLZO6bdCCPv3Myj/ud/4xW48TfZHh9vWWV3HY4JLWCx4v2JCQ+rfrg
aH+RKBH0VkmsveG/MOE9bhe8ww540tfx71MBuQG91Iw57PA6qauD3JO7zVI4BENOEpOHvY+KB+Dr
AF6tQk13Us68DrVQmgktT9GvOFjuuJ3LoERMiULKJ+RD56TDzNd9v7QCXJ8eLq3qxNYArlXalBAd
fSBS+kbYcDQhmFwCC7yvgJ0P+GIy92VxnteTwAzcQSegQM7X2uZVpSoSb1pBdYxxZK72uCS8fasq
pZc4KWldTelO08X1KS+jEr/IHscTRfltg1beXZZdn0lpLgn5b8U8zcNs6C+ysixO/n11uVPqQwbg
uh9r3KRSdlRtUK+qEUKvbJfgpyrZNXxWNFsuZTOul5Tr02OmhSx4wqCKEtKLDZkWQvWMtIOniQKc
Tlzg/0brXJAzlK/3/V2HJzILXKjS6tOKNpzBsuGhuFH1Y64mSdohfXV+ZCeeo3RC0nlgIqtf7GPU
bNOJ9YvriWxcl0pQKLjq7GNKWTY3+shDmmXSn+JOaK6yrETwmyX7OQZfBbZqlcw0Vyb4pqBDXBZ3
1yJRH3WLXIxtrpfmqVYpP1iTGtju8oGOTw/Xp8dMC1lUFwrSV1V0kN6kjkzpE2kHNxMFuAQZuF8x
Ox8IGt1/e//3d5nQjqQkQa9X4vX///Ff3/7Lf3r/Hzf2/64f6/v2+r+5gMQj5+fbP/3nz/r+L//z
/d9Ma5piyFhTXsvqRer1hBMPNC//W5SL/ZBivanm5qdbPZMlTZqcRnU5OakNfC/l3EQAvbKOjYwW
SyHaRIer2nlyOZciI+uQFWMCcPiaaufNrdap+oZDTrkoDfxJM67IuzueGcrLxdGujRe87vqsMgau
Gd3MZKAWVdVRRxd5dYpWS4QZzz5mTj76rfhz1aJTE/n/te4rlzr81xxeu4evT4+ZFrLgCaQUtCQ+
upBQSYKoSWtuQAE+jRUxnQtu5wPF65OfLlg3e0rMr7ZGI8uFBBhFDeV9vBMfSKbB5jQOpP2eG2tF
dUpxUWR+Hw6dOHR1elmc18Rjcm8jqYapdGLlDurI4IRehXW9mBmKDobLockN81zHmN2iTz3RCJIS
reZiQ/TRyPagvus0LGL4YIF/g9vpPJ9iab+CFeP69JhpIQueQEpBC/nNPiRSOpaog6OE/mayul12
lRutc0HuhvKavq//rdNXjq5GGRu6AmnkDoMcFJPZiSU9CL+T2V9vVBfveaN26GacpUelNoC0niPv
1/s9XJWiSo1Eq+lzzBNNS1XQmj6Pyb3MlMPJvQ90C2Zr2G1OrnAzUwcBo8IpsN5k8E++t5HBqgzL
lRiupKOT4jLV71wk4WcWTQdpaUX51KMI69u1KnF9etS0kAZPIKeghQRnHwenNwob+d1zBFc2q8JJ
A7gROxf0FqRJF9K3aQabSLsEsOzpRnpYKzeVVj9wX2yHcZ7fNdxoqBWiTLAkmpsbrCG7wUTZAbX6
WCX5ePcLY298MHPm0D813d/kChV0usruQr/jjqN+h1yugqGBveDF5yBIWMxzfWFMS36d3N8I88J5
K6PyoY+mom/0XVUBCq7sU/sGt1UpRKoP5cn6wcPXp0dOC3nwxJRTUEJ+9CGx0rXEHTxRqhZmf+QY
woXXuWAX+zotwEZTjZdEZpEIStHitEnG4ndyeKMhxaVTNQWy7MJD9rcJpzy4SQSv3cfIEWdw+Jo4
sGjBPE+0nRpPuyGVt5R66WwIdkI6pP43W64BQencXRnX0uGrG1K15KnD/RgeoNTC3Y2P1za83agy
TARXdd8M6W51V/c40JUEpM6AorHTQiY8gbSCFnKkF4nXnav+hbnKwSxYkfX4hu1cMbxnr7OCTD/s
6S20RUVnfKkDcEV1JCe4r65RSwr+Pj+kM+5PYUFzX1DDK20o7i9KXRL5N4N8CE9SErocPkOHr8G8
uMUniCfafhfmVPyf++gkL6Q8EGFZ4mnIG9LldMdxjYDrC3FaUjfyRCP9gygxLU/30cg8WOf0klcF
B2ZpL4jV5HO8ewxVxekC70jhiE+btHf4UZDoVpIKWsiQXpCt+27XynbebrPFnu+DANxldEvjZ8hf
x93+gHxcM+GTRie3txZM+S11mEDrm6S1n7FdCbeHQ8ckpTse4a7eKS4pOoCZ70nOFO/slnUMPXxv
2wkStbN6ZWprZ3s4N8l8RS5eRjtsxZ0AKyhFdLi+wVZrJN/fGi9N045AJiX83ZTZnF6rnoWf6VoA
1Bhrk7mf+6pr99WdedCvg9IuYfYZ6T1SSGfDrCeOajthi57lTRzZxPWq4dYmhEZ6X6A6V9wWkEkL
0lPr+wqy0hQEyGr0RJaCH1SpnfsqgWwvWLYnih1KOgT0gwhuUnI6z2w/3qk6j45gKP4+YM7egLWr
1Tgc6YmmZORBaXq4V/cxw06q+x5E+pqrQZoe2FXgFaPg+oabGAfFv6LFaAomRG3lihj00pRSk97r
Qa6ByCYqj3RxXH3+ad5i3Rux7o3Y8HZtbsQO34+sghJSpA+kS98SezAlOOAWxIZrm9/HiaXxB7BT
0zsvmIP41Av86E7iiz+gyuxOxA8dU9GtxfqatUEeW7V+W2GSyodQyEiWwyvn8DWIF7cagXl6ou0R
BQji+VrDqw/txHbdPI2GY4aYZRFKhILuy+7ULXlE8EST3g5arWD/oJdGnvc6jz7yHRNPEcUGt3Xg
T9/4jl9Y67iMTaVPbbv0LSR9lZSCCvKD/pQqfeJCaGYEAlzmZtYvsM778r+/BcJODtIpUXMBvC9K
EeqzaFmoV8FSNivsk5NMCl0nwNSqggWUUkSwFOyQiFFKwZKVVuP6mHF96jPW3WryweD+6fgadOYH
eLiHrlQD9Dsoa2eOZtqVEazqlAr/XN8AqzVIcEoIRDalVuR8qR5aIoWHFIjHwODwgkUnqnzXGoR/
zlUBro08Oa6RA/cjIehMuUEbadKnxAwrtYo7kBHLC0jn2vgZ3FyazlJRvFuhWdexOVs8HQcRoqn3
5IA9QrmbfIh3+969xK9AbupmAa/slUQAKZnD3GXF7pRrAezrNpM8UiqE9dh0SAw96fcRXsy7ArnH
xc+olEAnaVryy9l9fYObLKndTzR530OrOTc+vbQUzpLFdiq4qjs77ySNqJRhcv2KLQfXp0dMC0lw
PzKCCpKDOhKl1z1dzEj8LfJNJTO/gHWuyN2rtNO/TJ1Ie8DcVu0IgY3Y339QAXKWM5BY5RSfJPrR
r9Am+dYldk4YWDO5SygsUfjMhN/J4Wsi9uOXacWPJ9pgLwctorY2g0yoMFVcgqMZ2BuMjrab+3l1
gTyv0cFWEtVSe5MARDtQD8LKCYSafiE6uw52TrttUXgTaodG2NO4P0DVbqGMmBaS4AlkFLSQHr0g
U/re68WSAIBXMNIQFrjOFbufgS6vD/MEOqp261ByAY3Pkr740kHIDXpHYYAdJuXtJRZnnn8tcgpO
S7ui+YAZtefcrCd9ZS/FdWJnUjs1q3SmZWucmG+c0DZDTJQJM1mqGvVKXfPgZhTyBehFa9qvJQqy
1lU9QmsQGkwNqHLRapEjQL00TpgFu57ONcxfcYKtuUtleXgkVIMKuJ2MtyRfT3lw95RSUEnyZCD0
b3OfEnMw03AaINe2to4yoR/LnnJpLDCTKOYnmHnFDTNzI8nxj5zBx7t8qCJsN2lrTPq4RM0c5RTO
iUwbaODz6NZ9VhnTySbZLrhd1KFnXzfmYEKoZOaAUtfsoI+Zg/Jw30OpwYOrUYLZoTxgcwRc3UCr
NZTkunQJsJuKna9NvyXqxWi/sMm4K47qgeUEXvHqnSOo4164idTWhmpWTRgYP5kIWgtMA8lBHYnS
q34OdvBQs8vEj93ML3CdK3bfAP06gz+A7ou2RI2O4YIsze1dxrKZE1D+8+Sp05s/3QOGziDFGT2m
whCgtRmiqASlGdKtT+D6lDKwukV+Mp5ghQpaPe/uoyuFCn0z64OroY8a7I46rjFwfYFNSzZwnmit
mlJTdm16aEqMOvttW774qaqtOoGWsWnHms0G69YEcX161LSQBk8484lpIUF6QbL0LZGbpSQuQUms
L4Cda+PeijlzzGsTmZOgfn2tBfWxaEnU6IlSxj9I/f561fR1dD2FJDVg17KUOilUyFNC6knZHmUV
HC4+QGD2vRUr3orh7V0Qru9GdRt0ekb5SaZHec2Rr4eye+ZoUN1PrA6lMWYEXN9AqzWK72+NmmED
qbIZUx9NHxX6np6coVCuh/PQpSbFVvUY6rgVvVwrn4qvkQX3I6WgM6UHfWRKvxL2xZA+OeIUnGYq
t2NZq5bGPasD6vpav1eoW7k+Z580ekIb8oOA7f6uTUMndGb6YE+By/+6KlazOkqpH451HOitFdum
vA6YGQPq5O2YDEeJowxac5kLu5zPTatjUKauk8q/zr6nkixfHI3cLlYxTzMCrm+o1VJ+r2FPgGqF
XlZMo7Zl6qMpypK+Z9xqMlf1KAYbvXW2QSotHirH5aHC2GlluxrJGwQDh2khR3qZsqVvdoPB1Li4
bZEELr8vwJ0rigvkJJm5IJ+lXnEuuwEnr/UE4kfE6iedenrDGSChGSXSbbBzUgQxCbIVjBEOYYPS
Y9RATrcJj+tTZtrqFo5WPNE6qbWg1Z1OS1NRnnn03sl2ar5Gpk6QDGZkCWEgur5Qp+WseVSaaJzl
tCXCLYBenF8A28umQ3jHY9CxVS5CLq99jaS6iiyoY6Fg9LTssKYnkFfQCu8umapRfpJXQbIPvgZJ
82XgilG0e3Dt5734BflLsCvkfVs0omp0knpTnRsVvNbVltmnyfEy8oI324jJx4OWGtj1yXZpKsXK
bse17nEdOXloEfTPE9OPLiihyaaPLvfK7gVmN+jap6XD3A6HHJM0tKz6E1p8/NMh+Q3TaYXIE3po
OvTTcyOtSORle4NPlFzwj9Ovwd5DbV2vFrLgCaQUtJDf7AGp0i/yDo4EhFkVVhxMbtjOFcMbcOcY
6o0qkTfgdVGmqDFlJedtihnO9EsYOpy+VlHoM8MZ6UyqczFkJRjth3ZrggelVymcqfZrR8M1cCe3
WiLVHE4hysh1EMTUbQzv2ptFz32WbjRHQwzD68DViSHgihNw2/2y+GBANGESpUb8Kk7wKbYxRV4B
h/mZmktFPYvTqfaCf+pWBNxOC13CfvXa3Ox414aEgg6yowdkSs9IG44EgtmsflmP9wWyc8XvG7Dl
drLN3MkkPVg0Kmp0ir/K8lFKqEKd8XjaWZN2sLv8AXdbkrPyyvRD33DVqB/abxbq623Xar6xlqM2
GbLaHb63kXJdNCKbpfb70v7SpxWk5mYkgvjnFqyb8Xl149vtYT1c9VEbUVSg5Ds29aaEu/SK6Rhu
UGCSKAvnsGzu+R4HxsTIM1p/qSUFnkA6QQu50QvypHerSc0XCa5gmIwqmog3XOeK3YKzAuN72/e8
4sznILxN9EmkgDPBnVGmHaS1V5MbdZ+eonvGoPhDnp5SccmtSBU4cNIpVOTiG37c1+Ta2uNbLdu0
3XqU0DJo9UQmRaEgd+nZM6kvgyO8GVx1MWd/h7Kvb8zVIg+9a6Brt0EazYL6mj6a7XsS9Xan2ayH
nYs2sgjKktFwCC/XzoTr02P3l5piMHpiyiooIUP6QLL0jcyDq50Mo2x7fuQYxQ3dueL4+5jvm7Sl
GFICc2exe1dKxl5I5CWjR3USPVWB6vKdTeyg9KZS/Lbvh1GXlnrGvWCM4ANuzCkXVrU8+UO9kVVp
c0ncoNMpgMwaovSe9NwxTpun+d5UczutVIeGwNUtErVGWEmrq3RCaco2MhEkG2Hou22RI+qQchPE
FTpLVlBczgRKIF69T+OsTbZZmbH1BJIKWsiQXpAtvSP14EtwuKyo8GIcN3TniuOCOZmKuvwGV9D3
RdOiRtc7dpASXhGROUnA2qtpcs1kGwRTxaTLeBPudkYi4P8gTmv3Z/neqxXv1Zo/8VXb0+In4qNq
Z6Ttno5dqSTovXNAMF+vT4K5HVrWGQTXN/BqSTzz/qYoYOg0p26nh6Z0zfTcOEKIJyLgJ+wyYaqE
HKOoe+SGOHx9euS0kAhPIKughRTpBenS+5R6cHUkv3kKgysxhhu6c8XxG9CnC+GrvU0jp2qaLDoX
PpEyyLj8NKo+fT8qEUwktybVZdqZidIGo7lWFN6EnTVa8RglvtSX4mVjY12bAZBAyVGtLxN7M9Pq
5HDCzIpp3f5R6sN89YMsS0qxwc4Dqxzfxgt4tUbz/U1WcCiRN+p0H1P0s7AM1qn0I4qzNuUvImMi
Wrfd46j7WPZuw3u3/WohE55AWkELOdIL8qV3JB98kdlADIPacIL5y6f9btzAO1dVl5fKCvw9Hz5p
kK+DRFwKU0uqjtMrOVuTAs87DuoKs+vytM6k29rtlUTaHm1LZ8i4fH0v2AP0rOumBE/cSxqgoNKV
ex36uCbQb6d8jjmiRKNr+WnjzxB8CAjIaQ182SmprFdFtKZwIz3JYecZeufgDV9ts3eSU1IVj6Lu
+/UJ4/r0qGllV1UrllLQQX4OmCOgn7iJjKkKnrC+ilnQ0hj2dSFbGt9ALhPojfgy0Znm8ziIOV8e
jWUz3PJVsZCqsi6SyThXfEkcjncg0BI5F8k4eXQbQtiv62hNTsUNnxcpFrC7mtLMuUgPqE5nrx0z
jbnpB3WxN+8bhvnn+oZarUE9drJLHabUKoWz6KGhzT7QwOiciCFyc4TOhn+JQG7FX/bLKrbzBXbM
mFpTGtyPlIIS0qMPZErfSDu4AofJ7X54APsysb+Z1t65BcavHdzEGPdzo4yLv04miY9q2az5KdrV
yGGFItQ6lSbpP7sUB86ks9sr6eAUrSBIsmNd0a2Hr09FrEarUV4EPWc9LkpNZxn66FTd5oROjmxz
1dk2FGrMa4GhZgsngAtvtUbzhqNqF15Nq5ES3720jClCLiuqzzG5apu9kjZO0/qYNyb59RE/krGW
g/k7suDefGWNJSWqfCsSZkYZ4TJpNKXTNT9gAafgpQEs0J0rjt9gPn0aVtD7onVRYwqrh6qF6iMq
TfwS7ztZaJIjbIhY6U5hwiHXpZIPuwsq10vYJwJwF5loHN5xFrELo4LS80WH+Bp66ChUOvm0B6+h
4G7m09ED4p/r68xKS3k4pGZBSdtI+UhJU+g72RhrPTs9cdQ2ClLDKaoTRlCPKLF3+Pr0qGkhC55A
SkEL+dELcqV35B18WQ1DBHz3O3u8L8CdK4o35M551WUNnZAfIH6s0/ywxKaPRbaUi9RA81vpGhQo
u+UIlDcs0uQX0ndzt+sSLv7yKCsobI57N8s1aVe7W69jqu9vpHM0pZlrYncfHaU97kn4YZgrq2ky
b071KObVjXpVVqIIe2gU2sadoEbiVO3OM8662KU12atT6Ajz3Wki4b4e9ymE69MjpoUknMyyOoHO
O1lyI3cSMqVfpB0cgQO8gpWGcKwqxKXxDd7TTnbjnbD9XUEikqpK+iV5IvSMekALfiWhZGJ73JXA
kSeGi0VKluCNCURGE7wojvvQyrUSr16tujxBKqGg1Q7qSWlF4MigvnvDHdSFDobeN/Lr8wTlEY+H
0pnWwCQo6SvUBFrNibvppVGWiCfs6qNgqlkm4K1e6Rd2j2N+pK8924HagbHTyssTU1bQQYLQR7L0
i8yDI9CAV2NGHuUFv/OB5gI9ObJ+hr4vuhgXTk1FqdQP1yymUHOv5LmmzOuM1MiEOlJ7mxrHu72a
DvQyxHHjFX7v3Yr3buzqio0K3U808jGbEpEa9EH93dlzr7tBx5RIVlRCwtRHKr66IKc1uj9HpKVL
ptRUE+50D4Rp0HNTCVd4apT/eauOItoikvu4tYtcnx43rSmNeTcyCipID/rIlH6RdnAEDvBqrMhJ
t+B2PlD8GXKZT17t6WMuzOW1fmGO/3wizzKJ/OdkJ2ImsixrP9XkVksAEx6YDU+zw6gfdkuaCfk4
b9+66H7la+XsLjszmwD2VhUHRRct3SkxRH0qQq4PlvaLqz7I/79rMxBj4PrGXa3RbXGtzvE76bRK
0i0by3Bu2sk1Il9VcdTIOvEGr20jXQdn7UvjepBylTP7eEcS3IuMggrSs7EME1ohDkjLjDkCBzg1
WiMyYCwxQktrQZ28aF0K9gfqZdHF0JoSa06A0jNO5Qn1l1CX2kqhzFmWpK4k/Blr88BDqbATlz2h
sKs/bisT16fratKq7Pb1RCv7QqvtqN20y8YPiSBu1gRx1TsBdMNv3u5RcH2bINSaeUJ7WE0O02mu
QkAPTWWq6Lkpzzg8tYSXEtzipeQapsd+jY/r0yP3L9vmQ32xrIIWUqQXpEvvSD34Ag/nprPn9nhf
8TsfaH6D/dS5Tuxfe3qwH4s6hlZP+F3JXEzZeHxHKqHx5NvGzZ98213+ItmGbGcO5NS998i3fWwX
8tv7lWv72JRpe95Hpm0/r3xCyZS7XKS6vSxRw5LxlGzbcNn5bIv7PlZvMLeG7tITTeVtoNWqq/zi
iKVAfHqfXufO/53YnCsrOKntxH89liD9g4R+jNe/kHV8K5d8gpIzledkedIvkg6OwABejZTGsKJ2
Plo34k6YNjaiSm7E831mk1qdNIPKJdIz8QXDM0LbOVZQ2ZKyCsrNedOV3uhwVvOJdkT7HMqYHMpz
I747YL/eKnrn2caApGwsQasNihpxIMOfkXoaWo3MV+crnfulQGckVqZfs528nHqv9UTrxBloJlWC
5OmFBEj03nI2Vy05FfOBnoYkd7f6nBFale6x+5cNfUy9pBW0kOPsA+k6m5XkHjyBCNwKM43hRu9c
kPx91F/NDur12uZ+utWlk04Fr04SyCbJlzzsQrFRDxODy8ylI3sn3pzKw46rzNDI8XrtF+oO4a/x
7xXtvO5vpVx0GsEHnRKFwr11+44HP3P2D/PZO64s+iJRHS3wpqX6zDzRerHGhxxi+lJQ6VKl5el7
2rkO8YQP+Uy9Td4i2ccqWsTjQtvB+xqzf8FzjgKLHZ8vp1MnAEE9IFV6lu+6OQIFeDVWGsOK2/lA
ccGcdDpDapkH5vuPda7vllnXoXHuj3qoZKorgO5YrynofNjiQQKKUNZM1CO1Q1f2/brUEzyinqCy
7xe3sC7zRCOC37TsI4DH9EayH6ltUNiYL/vM5MsCk9JljbmRV8tBcZQNkw4Y1Ux1nP8W602xf0JT
ShW4Qp1C1QQO8IyibbfzLtenR+5fNmdlsKSCDjKkB2RLz1bYmCfQgFtjplGs+J0PNL/B/nhCX+4w
rE+3uny8EqftTOEF7CwK9z9CSzIdXLPtHmSkmNoUgA9nlLmNR42eL9gd6l/xPyOpP/q4ODrVi1Ij
IBnbisxw9DyndzNHuMzY/7ln8z+vbsizluvke1sPCiTCOE27lYgxHLJ37OZmalOAGy2dHKFqs2K1
XIA7zL/u8e+Eu+h+JBSUpuToAXnSM3IOnkBg8mqUNIIVsfOB3wX2tKMObdojGY+QbquGhsxJiUIN
UqqT6XRQnMpR/oemk44fM1UlangVgZDD8URaC6hc8wsHvv2e4Ezvpqu6Nx/Ks3POiIJSClXTbRz/
OBLiJQ8nSrzfzOPc0DfzzvW1faOFa0ClRjlvi7bmjQMUvTQvpORGEZYuv0SGePhtCqiYYyA5UiDd
vIGLgtNzA6endX/u/aKD3OgBedIzkg6ewABujZRGsaJ2PlqRnIWd6QUrZSGT4vW7FFDDFY7Yw05Q
iS6jlqa+xZ2cdbgYMIHZsykqlMj/PS+7NEf1E6+vVpVPmCM0lSIBSq0H/aZYaPrtChsOjnqNWqVD
0/vQCLi6pjAtpTPifhevJAC5kYCMPhrezX3IutHNT0tO1SxOm3ZyjKBtd8wc16dH7V829mTSV+B1
blrIj16QK327ppS5Agv4NV4ax4rd+UDynsrOrDS0K4+MS8rRklcNDLl27JhRJMtZwVB7oEKiz4QN
U/mFUXYfqiQeFX9nCYbN57KZ8DmUsIF5su7lVqlW3JJHGKbTRWmOdbiPhnW2EedYLn66sk3CqbP4
iH+ub9zVsksNJVBYurRXaugG6IPk4fTdnAhKbwol1N/gFy+GahXsHRDLteqkxL8ntDfk/yTRnWu/
5cM9IFVnfmeHaJ4mDk4rDVYjVOBrjpa79TPm+kg/MG+r/kWtKTOqrLDMHfJdbQ6np8oKaunsPKUv
VBzYPs/M4K6W9EPUWUF3Gshv3qcVX1NlhfvtdWZKPi13Mjon9zst4fniyFHjeK9U8vdvl9PE7eir
1jh8f/N+jihNfTgcqyBNS0f7qeUfzZfyZUdhHKK35wjadgf8cx2VcfyLZMH9SCkoOSNtJgkdO1Qt
0ZI3PIEDvBqtcbyvuJ0PFBfMycE0nDvvxrzdaQQ/3Zo1BF3gOpc4fzkoJm9UEcVnj2C0QxlIs89N
E2/JXh6YM9lA1wnCaA9OlbPUSneL9GLcz8oXlFyFsh3Semb365NZhOmUTXx2xyBtvrqRJgKJt3ZT
dEnQIB73NHWVBsGcWjZrvpvPS9TFGdpRZ3M/Z+61ridcVuZ4/e/ovxIRhmSccqF7TKPqA3kqfTgn
MnPkst3i1RhpBCte5wO9b7Ame96Ndb99Bz7d6koKlEZS7amkYg1d8T3K+yVLPnNlOvDIaD2jqrRl
pqxOt4Vlzm1tqZZoS5+rX/La7FdBosnkJ+bJdFy0mvJ990YNzBKzd0sXP5PHYU7xZoZ/ri/EaSn2
iyeaCjBPSs0RqfSAoxH9ksUWjsgwPzFHU6a3lPdIEgnMifhl3P4ldZvhkFNQQnrOS2zvCzmUHo5z
ZUs+knk1VuSe7qvPx9q6MXfCrW8wv7PYfLrVSSpuQ6S26Adhm9i9KOWA12+uzPGmQJtdey3t4Aji
UeXf0qp1X5fGZTiJBftFZ8Gg8juxGTpSRfJvIoJbc6yV/Y2xvJgnIhTgtqtGHlrhxWQ6r/fNevmq
2MFsKjPCR9VUiOXCsZVo44J/o45tym09Ude/KWMlI6BSW6DuWtCt3r84j4kiiPdso7gOYpW5Tuze
ZleNaokHX8kmXlnaQEwjSY8cRGtrQZ50TMOp127kxxo4Tqtv2hfumMy139yI4kSjPvebyZmqMnum
mYt877Zu6WueOTLzNcdf6tKoD2nUCz7km9JjHL430lR6B8eOUnuY4T13VdnXm5tOffEMpszgSD+0
7OCc6Utv1FWdL5lWa84Brl4aVVbYFaFPJ4Nl9g5O/DatGYxi7siuY1lycjyKQfBL5jBPeSpOA97D
sbOkqqnkSu9IPPhKV43A9G7ENJIVvfOB5TfIk5jrRn5/2NGoLEiJRZxSxPnU+1f5Cyvdf8myZQzV
iZi4Jzlv1kijpDI8RWt1cRmefhW8P3wdZXhoVR+9qzVX5aLV2KO1JBvScM+N4lrmqOOkk/ji62zB
+7A9rGi0pNrhifZ676DUGpVQ6aMpIR49N4pIb+i8ScZcr6N6vnLX3x7bXF91lPjlOnpnyypoIUN6
mZKlbyQeXIHF5NZ4aQwrducDyQV3qdSHEzqRc3HCfqz59+yhvJHrlqTX8sidsZyumZRLuJSTUr46
uCcfBHq7ct7lvTQnfHgiB+x4tVSFgdOql6fVbuNTUGpKuuAAIrypK5BpG5CjuKj0M5jU8YNmw7et
Cfjc2nFulwF73LRaw/22uVgY5nOXE/nRzFej0PNbvfyYukeCN3JAX721i+ty+Vt1yyooIUX6QLr0
nRURC0+gAbfGTKNY8TsfaIYu5rgtDJ9udVUTIPVjZ9eBojLjkZpJwqAoqUywyKySML1f2Gm+lQxE
+pL3SD1+7eC67Y0FH1U5C6KMbXeuwaDVwmHe6WLpt5EXxByR7hJemxyOGAPXMXy3OF3tWE0FNRlA
ugqC1Ei0SeJrvIl75FgsVqqiGJUnLaOY915K1ew4hR6J0imLEmk75RljSsiPPpArfSNxeAIJeDVe
OwW0VuvQ2rrntTOzDWd2uiZ23u7Y+k+3+kayKTzBKdGM41lUl7iT3vk0XmUT3ZaY1LdCvjeFzZXO
L1GY5vD1xP7+pdqJ0X7BP66IUiW/y+6lXbkB7ctirnTeJuf7HmOYVxfq85r90zicTgUKnMBPUW6N
sxQOkD2SXhP9+QaHpFGDc9cNNN4Hu7e+/EIiNT2BfIKWT+iVcpaRFBBJB0dgAK9GSiNYUTsfGC6I
470+nPvnRvyRIplWVxEFmUTkFZLZW2d2kJlSEYqiy/iQydu6kF5AiuSJd+hAqyonqbbwhbbO5cXf
/JlrwXeSzCxo4AII9VaIa1/yeuTYaeu7nqyj0Ne5+xy+5M+gZQ8ofaVJaY82tuNFRS/zZDwuB0el
xsX/rfL+TX4xczAGVyUB9eIoYwp78otkwRNIKSghP/pArvSNxIMrmVjErdHaydK55kheWz+j7tww
N+p5jUWjNWuBDxXNAPd5IpPVM+O46c+2Pj+ZyHONoijtAzWkVajJWlBKNYWBLZDnHFvxtGl3NU6e
mBrtctHCb8QfbtacElbEmy8bRtJt8GIkRvnCX62dOuLkdONsjNaNUz+9tNasOcv+qMJXq5jyXMWT
QgT4q4Ct3wBSjjF6/+K9oDwFSJNhWkjSn24+6eod2QdfoALHxk4jWXE8H6je74DTuX3zDhzLJo5W
l1U345UkDWUWLmTKOWUzKD41zTMI2YsPaaBy+KC+lUK8sBKFdHS21zau4ctS8VlrxPSV6/66o0GF
UtsiofPh+A5HmEijEVxRrc0aVXYMW0jv3sa5BZL4JY12a2a6a70Ru8Lv7BYoHSO+7In6Bsf4RDKS
Vm7NI9eqzRX/LolwP7IKSkiRPpAufSP34ApE4Ne4aRwrhucD0QV/srwNZ4658S9j2ePRmr4Ce+zk
5LmTMVFmcUGIgWuCkXsCncSwN+E0JMpvovKd116x3npqrk8V6MluVTTrNRJp3bQaW/LC15SU/ZtX
0myevPtLWKnwppG2RNcX9rSwlzmnlr4RmCE7+nz6aMrOTd9TX9fNVasulyl+vf/TOO4KwcdVIZix
+xfJhCemrIISMqQPZEvfyDy48v5P/BozjWPF73yg+TP2zityY08sVWCPp6oM/ZkQAp0fMymMM35e
mcy4Kj3NzNcuL2/e9Q/8ADV3Z/k87FxR3fG44s1qrtcvtYYVtCnn5XFRqth21UdTQfUuS5XuN0dI
FF4V97axSt8roq6tcUdTiw5Gh7SOzRbqBBLQq8u6ip/5tii4gYOd9CqMgBizQD17r7ffv9irOllG
QSk7CFc7PazMndlPRiq4Agf4NVr7Xbr+Qn1pLaiT7M8xbDfobTW00uoKncw4FivFRvZ2Cr+JvLOl
Ltquov6mrjNZ1yn5hlqNerf6DFyQ87FH1VrlWuR05bizOTfSjPxKpu0SEdkOZMHJ25yqJdKA1HTx
znX4Fbi1Ny8TMlbi2jjsM0F8WI9SJMlLBRw156GC01apM4YSd/GaqPaawPOBX3CQ1BPIJ2ghOXqZ
8qTv7E2oXeGFwOTVKGkEK2Lno3WD7dxvP4O9Znik1aWFynieUYvXuSewY+cj3I+aHH66A77JEt+L
PSBbONbMgsw6o8niEJA7JTyWE7VqJQkyxYGIjoVWJT9wISNbuGmFN1nw1fJufpt09N3atLWmk1u7
1uO820btkMQBT/Qw3ZDol3hvOCLjwJznjlD2CFqNQqOHr0+P2r80O79YSkEH+dEDcp39ZieScA1j
cn6SygO8xP+K3flA8hvYSTZx466vxoW7Wl1eua8vjDWamXxCyWVcCTOTx17By1C1eIp33FgSC94u
r61kGSV2fSBe8OmrmVIMigrQnn3eXfu9bGDDTqZfeRpfRLIGmSPneULfip0Av+K8BnG6ZU249gXY
TckRNFzqEOQ6Zf7ytdrCF5Nyoi6EGvlzqWaweDq3KGdR4t9bpP1ullNQQoJe0SVZ+kbmwdXEAm6N
1969/1t2c0trwZ28f8OJByiVMXEfq1OcreTU1d4322OO2LU5vfL01g4bZ1HNZ8I7S+neaU3cm099
TWXqq63hgT3705oO79SwYxU/UfFgNi3bY3NEetOzd3nmqRGWukWB6+ZR2EIe2NNiFuuJRkQBu7bB
RyUsnLatKvMnHLHPenGEz0VrHkFkzQZ17OOM2r9wMmxNMgoqyA76yJR+vb8bfEg3W1x62OjF/Yrb
+UDxG8xjjQ/M9zUzt62mG4WUmffE23EyOuX91W3lKmRpztrDcV7T+jURl13sNW7sdUu0oi2kNY3r
F+qhz/urEvMGFWrGQH86IIZ1zdGN5mh6pSXxaTstuRnSmpjbrZ34A+Y84eJ4PxMbSB9Yt+i7URZD
XBEzOPHWitv0WU9Y7dq9i7ONlJH7l7b7fp/hTAn50QdypW9pcc0TKMCtsdIoVtzOB4o35k73+DPm
WH8Cc+xmKm0wzQO7NNxJnvnsjDUefCvS3PiUzDxnh1o85/VdJ+xXNsVC3JDsY4E9trKa+mXLq6To
1BNV7p9Bq/bhPupVs2w4g31wRdgv/Npmp3HYVhbo06JGGYmqVOgQWvNURAmLqH+mqmU6Nw/z1Lqj
WUgb2jePAetYII+ljHH7F8lj3o+cgg4SpAckS7/IPDgCDXg1ZhrDit/5QHPBXo5TwwHqC/TLZD9w
Vyl4kkvhWfAjTq4agWtFGso335321sELmSJOVswqi0LBITUvqUZsRqmp+bqSKpSaYAQ7mNLMc08P
FceKNJxiMfipeNtTnxdTzpbCgGJxRMkqUjFrgknVCSVCBE734GT3HaPPFbZA3bI3OG0KTZj8T5OJ
oe5s4XYbUqyo1Z0OcDAN5AZ1pEmfyDm4AQGrZCdC4v7G6lxw+xliopIviK0dNsjWqCuC0lpW6bVK
Cl/DqMXH95NMnhg0pwE12etG3/Gu1VwHk7Jv1p4H0Kx7lVQglIXLRJYS+0WkHJRqG+6Bsp30XEf4
cLIaY0fQL+j0yfqyr/Edbu2h9516jWRKVMI53cfUfCqn5zvlAeGodbKWwSu6UsaA5jwAR4s+R+1/
781a4MNSCkrIjz6QKz0j8eDJGlxxa8T2sH/E2NbWAjvJH4djU2/c05p0wtrUmb2RpPTKjFZU1vm1
K34/bUcidUtBF5rwkmn2Y5iIoyXX7g6vBelLy7XvFlLo2NWaddnjibkzGhet2rJ7sFVOPVd5WMFR
HcGnNbgzI8C+Jppwi6yNQ/oMU2iu52572phfk+y9MnzEMRkOvatDP9/v3WhoSxmtf+n79USR3xeU
kBp92Co3umUc/CD9yafxIYtDWhNMrK0bZ+d7/BnnvFagjRbePVXnWmrf9M0a5KIYiB9HxBoqwWJp
nJYol1BGeK/MmR0xCdeezbqySrlbtSq+jXqiFs6C0FLcovqoZKpOlOjW/eZpYjbMq3Vkx3Hp7y60
3dp8fyPnag/vG7LOcv7F53HYoQKOKFozEWc/rez61H7td5RtaMsYt3/BOUNPIKmg5dhF9TIlS89T
3sHRRAFOA5vtfcXsfCD4M96ORV3w3pfdWrQUi4IH+8b7x27dRSRq8UqatDoR5fsaF9UREoonvKf1
4d5l8Ui3niL0JpVvBnUSKU6uJ2pBx6uZPesWin6th78qyVlVg6NKEqmNkiOagQfFbdqyU4vWxmdZ
80grBkk8dxcAqYdX0qkXImnLMEdkVZ2Y40etfR5r7bg1TKE9Ydz+BVuunkBOQQsJ0guSpW9kHlyB
BvwGSvrqLvidDzQX7EnzORyXeGNfli+5rilDy5lWFrEatiqiK5lX2nu2bh3dxJ3S3RkeSNCU+I5z
lroVk3GKrtvu65qGz1td3/RyUaoleqg1/Paq8GkXT1Xlk+DWJ2eNIq5r7Ah+kBbo8BPznDNMa34n
HXXxI7IMzL6JOocnMnq8KKVh7A6NoY0bdTDnzDcR735jDksoaCA7qCNT+kTawQ04wCfobNZ8XGiX
n7/fzuy5P3DmdBBIu6XZWLXnkq9gaZtXTa0z+FAQk4Vf4hZrV3YUycR6/xEx/mUfPjkF0j5FoadV
Sxt13V2zoyu8GU7Gd5/fU/dbyTBpjqo94MFQ5yaNIa4DaVpodbUnUvJNaKG0li+2PVOqM0vw1XFs
gXBuju6Hf05NgXT3fm3Ev5OfQPdb5T44vmDTRyPHPozidpu/OMS/tYvPQIdw3rLu15aW8fbWMIB1
SyZ8EvPODRphI1s4feAJ2fRK4nY0QUWhpY81jqdKN10IEU+38fDaPm/Nr0HRNqf6iUqAumlVvCXV
R2VDuDU5lNaLo0oS37kZY8ss/uPaoLqVrLjVdnZCQ/DIDqTZhsf2Tr8uNUu4N+UT3uC1Kd0MY2DL
HMB6+0yoOb/gPqsnppyCEvKjD6RK38gbnkABXgOddG/pA9j2TTJ2+8Xsjk+jYqlKV64xqNHSVxav
PfnSzyMjuqp8WXqxSRR542GBLmQM2qQVtme08gLth/Ue1x4tdlaai7TqFnflOa8vStW+Otqj4RGx
sXc/rP0LH8pibr2fOvjyr5Go0dJ31k9sF622k6eBXrBMVPueaJ9GwdqdArnV3tEyq2GY22+vj2t/
tR/3L/ZFVgUK8v+YFlKkF9vR937JPfgKRDR9jJS+/wuG5wPRn+EnfOmGnw9JwO9WNxt8/IqWIBLa
oiwM1VXXR4no/l1vdhc4YgNnmQ1f33R99uMF8Od2yz7kz8LWUsFtiDpflGriCS2vOdR/Xctrvriq
uZtbf2A1irg2/G5BiWUxB53dDpm4ROxKv5+6TVRwRHqwCf3wh3X3CPjIBvT+4Iq6f8HpRU8gp6CF
BOkDydK3ZW6uAo2klwKU8rVVuqBfWgv0ZHTdHcZ0Yz8W5Ae4SwmuqVP1ivJRxBR0XNIue/Knc9cG
BUT0IqPw3HByJohsSQIXa/SWfF1R2+r+SpZtU6rUglYflTK+x2FM+sVVTYTtcDwm6aWmbVqzYUZL
y4af0KbBtDYrg+olcXqfE2+Yr5l3ZSKP67Ry0m7a9l2oS0qEnM1/3SNQplhGomDZQdky3UMBnYKX
N1DQNkjIsNTe6aDu6xtnp3H9Ged9zRMSrabvcfZMaVqcQpJsO8E+693ddb1rVLwF+mZRMMCpuWu8
HcgjVgunIhV2W/bdU471olOpgEAeTUwL6vl1/L04qgT3kld3zkWNgKtAOb8TTB73FlOwm70pKwmd
e9wWXjbzAiJ7cL7fTtvXbJxj9b+zITsW2UAnpKatmqWpxHiWs/MAG4ESq4L4XxE7H/h9gzaBSgva
jxrFbjV/hpuuJ9+E8TKaFO8Aac1lxC2HEloL5ep94JzT5IS/g5OuN+bYfVeV5KqfqJv2V6JUt5t+
xWwIntTmEDeVFEtkyDUyChva1iLFd6tcT6girSkVrzP0obnqz+W4OCKXcPBKxWDGcIdoXDh53PxS
fVexlILS3QcyLZec4ScQUPH2C6fyvmJ2PhA03v/2/u/vm/JlpvdxkH57Loz/8V/fSKk4vyXj1aeS
Zb/+9b/8p/f/obeEfK+7M4XFS7JJ85heL8imiJP06gi6X1tJre26+tXrF/SgPB60xjf93P3/ahkT
PeiO7aazXvdhin/P5w860JtnuZvis7VBU39/sZsKUhBtDzLtmy7urn+xS4fcbsJzmbxJPVtNre26
+qNzfNAS1T3pdTOdZ8t93H1D1bfxeH08Xr8hdnfyK0US9Lopz/PbTevZqmpt19Wv1JNBT5Sl8Lpo
PVvu5+7/V4ruoAfl8qBcvunn7v9XppLNWcOhPHd4N61nq6i1XVe/sL0FOQgfD1LHN93c3f/Cbrs5
X/8kTCLUIPVscReEufqVM0DQg/L8LtyUn61synH1K9eSoAflfVmqvrbo5+7/V45KQU+UU1ppPVvu
5+7/V65vQQ/KdaFbf+rj7vsXfpSQguRYyIwv5KPLX/jgbg7jh+CxrIJfW91rYlz9yqU76ImyKsZf
tJ4t93P3/6tAgaAH5fag3L7p5+7/VyEom7OJQXlfVsmvreY1M65+FeAU9ERZdvyL1rPlfu7+fxUw
F/SgXB+U6zf93P3/Kvhyc/IGKI9llfzaql4z4+oX4dpBToTrurB/abmbu3t/2aiIxuNlWQq/tjYv
jHH1q/QBQQ/KfV0Zv7TKRbl8T/lLSoqgB+VjXQu/tHqsjL76VZqToCfKqmhy0Xq23M/d/6+S5mz2
GIdyW9fCL60ca5ivfpV6KehB+bF+f2m1i3J7Uv6dRF6iZ7rHg9Kz5XWh7d/Q/JoQTrSgqdLrF5Vn
q3kVa+sa9v5NvkjRMb3HF+ZLi60tf+PF7xZaz49bny2LrC8C+70spUEKouVBpnzTxd31r1LfBj0o
1wet+k0/d/+/SqQc9KD8eBO/tOpFuf4h5UjMHfSg3B+0+jf93P3/Ksl70IPyeNAa3/Rz9/+r0gFB
D8qP2fOlNS7K40n5d0pRBD0oP+bPl9a1M+r7t5S/1DUJciI8HpPo2XI3d/e/qJUT5CCc1tXvS2sL
wr76RdElyAXhx7L6pXVt58ZjO/e7BbygF5TLg1b50k9Qzt9TfpaDg1wQrg9S9Us3Qfg5/36nliDk
gvBjW/+ldU2/Ub8n/KUuZdCDcn/Q6t/0c/f/q1Kn0Auex4PW+NJP8Pycfr9XOTfoQXl/0Nq/6efu
/xd1mIMchB97hC+t/SK8/yFhF/UOciKspMEXqWdrXBuGcTwJf18VPshB+DHfvrS2IOyrnwjzldq0
Iplyuig/JtyXVroopwdlnyG6T4EPyvmi/JhwX1r5opy/p8x57UG5XJQfM+5Lq1yUy5MyZ4iLshY7
U64X5ceU+9KqF+X6LWUfCh+Urwm4P3a8X1rXBNyfE9Cnk+6z26Z11JT7RXk8aI0v/QTl/j1lzm4P
ytcElCn2prV/6ScoPyegzz3fUr5m4H48aB1f+gnK+7eUfXbbtPib8jUFZZG4aD1b+zUF9+cU9JGq
++y2Uj6uOSiLxk05fenHlI/tW8psjbbJuemmOL8cD53Rl1aK84uvgq7PWt0npJXwpTI6yoNU+aab
u/vfJTy/KqZcLsr1Qat+08/d/0WZQ1z30etBuV6U24NW+6afu/+vlH1AelBuF+XHlPvSahfl9qDs
Q1z3YWbTl9CUrwPo8ZhyX1rXAfRYD6C+jccf8+pLa1yPjydjfC3a8fqfGJsfUjO2X5Qf8+pLa78o
7zdlbC/EWHLjazm+TSy/2+2/6+7Xm/76P3ILQ+V4Pz/f/uk/f7b3f/mf7/8m8kM2oyaPp8+3aO1W
VNAa0gKULgvSxsgfrbfnbxSyWa93NAo/KELXl+cPa3FuLv772//9dwwwlVaqBqjN70cv8ojFg51R
9nuU2/vHXAju9yv/fWL8p3/9X/63uXD+X//v+z/97T9SMcl/V8fbvOfPf3srWJVfO6q//Z/v//TX
mUT//W//7U9b+u1v/8/bv/7t7ef75Sv6Rw/8/+H50RWpOHKlp2nW/kFfZavpr7/DoDICVUUc6rFZ
HOrV+x+NSYmdq1x23ZOCB/723/731zOp//aR/5RaGr991D+lPVW1R/rzbx/tT1vb6vxb0m8f6U/z
39Kftr/+9lH+tP2lbL997PPf/o+//a+/y2mRbfIf4rSoWMpXTvNfUhGHKVf9hd9Ca/vL1iZXcMhv
+c/8NzXdmee44D0dGkF78THvcEv/TeWfNV79Nx/8a/3rbKXyAmVSL388YuUV/sdGLL3Y1xHXjNQZ
x/aXexTmo/4GJG3Cx/D+ISFwd04C+i9JwrAYsijQmZ7M+dXZ9pe86WYRCOmUf503V/1Sf5Lo/Pfk
fy8gVybhPkf0h3JUnax/TI5asX56x6sG03+TyF4jynVDpMhh/oCkLb5dXEq6f/kt9flfvfCWHkCk
m8LWuGOV15wcIc3CFGNC/TVeY0+3ssCqjstYkBy+T8xIzo/3ACb+kqKD35Gn3MdmRPW9ZnQvNfl3
5HmoHvEolzSzZDmxfgnktVWbDO1wOkf86v41BYuErJk6X7PXUP6QI5U+/sc4KvPL/OQp/zOiml33
10lO8q9TzkkzZb5x8+VtVY35Qvb5Qs5/Sn4RdEcWZulf54s98csMVMuhptoW0DK7Xv/eX4/W8tff
mKV54pL+hDzy9oKKCVrns38BoxfpP8+u/7rdD3Bj8TsQz7zuTPEUc61O2bbfkrv5V1NuZnL+Un53
UiHy7foK/N0i36735hI5CycSTn4J8i0Vy1Y/91tkzRL4q36LG4vXnfrXPPRy/TPt11DrS75/vEik
8Q8vtkkavZ8WiX+Zr1H3cuXZx8r3Z68TWjuY15qPpXnh3P+YxfLLdezHbrVROLlcp6qLaSU0+4np
P/9WYg1iSZ7/wNet/gv/Tc2fg7/+Nl43NA9lwvG65WL8397/jr3Wce21dvZa/x8hix7WCmVuZHN0
cmVhbQplbmRvYmoKCjEzNSAwIG9iago1MjEzNAplbmRvYmoKCjEzNiAwIG9iago8PC9UeXBlL1hP
YmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8
L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTM3IDAgb2Jq
Cjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgoxMzggMCBvYmoKPDwvVHlwZS9YT2Jq
ZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJh
bnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTM5IDAgb2JqCjw8L0NB
IDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKMTQxIDAgb2JqCjw8L0xlbmd0aCAxNDIgMCBSL0Zp
bHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq
8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cv
vdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTz
SOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55j
iZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7
jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ05
2/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16mluG8N
I6PQJjGyVN3UC9JXzC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16wNF3v
wg71L1WzgMlR/Rc09UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbVa4T/
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
D1rjm37u/n9VOiDoQfkxe760xkV5PCn/QSmKoAflx/z50rp2Rn3/lvKXuiZBToTHYxI9W+7m7v4X
tXKCHITTuvp9aW1B2Fe/KLoEuSD8WFa/tK7t3Hhs5/6wgBf0gnJ50Cpf+gnK+XvKz3JwkAvC9UGq
fukmCD/n3x/UEoRcEH5s67+0ruk36veEv9SlDHpQ7g9a/Zt+7v5/VeoUesHzeNAaX/oJnp/T748q
5wY9KO8PWvs3/dz9/6IOc5CD8GOP8KW1X4T3PyXsot5BToSVNPgi9WyNa8Mwjifh76vCBzkIP+bb
l9YWhH31E2G+UptWJFNOF+XHhPvSShfl9KDsM0T3KfBBOV+UHxPuSytflPP3lDmvPSiXi/Jjxn1p
lYtyeVLmDHFR1mJnyvWi/JhyX1r1oly/pexD4YPyNQH3x473S+uagPtzAvp00n1227SOmnK/KI8H
rfGln6Dcv6fM2e1B+ZqAMsXetPYv/QTl5wT0uedbytcM3I8HreNLP0F5/5ayz26bFn9TvqagLBIX
rWdrv6bg/pyCPlJ1n91Wysc1B2XRuCmnL/2Y8rF9S5mt0TY5N90U55fjoTP60kpxfvFV0PVZq/uE
tBK+VEZHeZAq33Rzd/+HhOdXxZTLRbk+aNVv+rn7vyhziOs+ej0o14tye9Bq3/Rz9/+Vsg9ID8rt
ovyYcl9a7aLcHpR9iOs+zGz6EprydQA9HlPuS+s6gB7rAdS38fhjXn1pjevx8WSMr0U7Xv+Jsfkh
NWP7Rfkxr7609ovyflPG9kKMJTe+luPbxPKH3f5Dd7/e9Nf/yC0MleP9/Hz7p//82d7/+X+8/6vI
D9mMmjyePt+itVtRQWtIC1C6LEgbI3+03p5/o5DNer2jUfhBEbq+PH9Yi3Nz8d/e/u9/xwBTaaVq
gNr8fvQij1g82Bllv0e5vX/MheB+v/K/T4z/9Lf/+X9Ntb7/X//v+z/9/d/SaxkSyX+o423e89vf
3wpW5deO6u//x/s//ctMov/+9//zL1v669//n7e//f3t5/vlK/pnD/z/4XntKlVnvaOnadb+Mfv6
3/6SR8rb73/9SH/ZWvrnlFL960f+S/obv3sdR9P2e+r63W+vOwp3bpmr1/0lb/rd7/ym7n/93//+
v3w33Er6vWmMFhOzOsEc+p9ISEUXq9Iwmm85SU2+t38WTy3/9tf86ryOP+rWHm/TVhvdzt/MbvMf
dJu2Yh+56HVaztTr/7T99hpp/usc8PZ68/76Uf7yEtmLky559MnNS0w0S30tgkl/EJst7/Mx31tE
J1f9ak9l+5eXMF8/X/ci0N8MS3mJeffDv6ffXxTpJP+Wf4ub/mj4Got0ZF/HUur2m1g3gL/N8aT2
egPqHN6/vHr4fb4NvtYgXwevV+M3fh1dly01DTz9IfaAIN+1/xAI8pr+HoTJiQSYxmRJHC5Mic0i
znd4//2vaX/9K/g+5jvzGs3rzy8RispLvOCy/f4a0G+Bo+/dPEL6+JsBmr8CX3HTXnfxatSWhu+N
d+XPAMoqJf11nL9gfL77r07nLS+G/ca9fi0BBCJDd/CLFKP6PTWTkpg0On63vHazvyKZePy/i9gI
Jv4U6qx61P8RqLOKcvz0jpb73YvZ8EscAvhrbHPYKWbdQyL+40uQv3sWxDtVtinh9PtC5rUSbn+7
5sNLPq8Z9OewpvbziDR5f483y5C8Jl71+rGsIvzqtT7f68tIrCBlW95Xlge4fd2RkFcIR+PxKu6F
KB+vx7dLCK91J/qK+yXseVssPn82zrR/8/JqYP/C49doJ5v/cuOnF26+U357eZkbq+OK05++bNRH
+Y+8bEm57r6yXA/PmAXzYFxCgR3xf0+3Veq8k/kvMVUt9rwslYI+ZuLP72q+ZBUryp8KXrmxf1of
f48lY1nevZL/7tfpmi2/6XtzfZt+15yA+bLOu98ndl7jEq++PoUi+/qGzaXot5vXf33/d+yn+rWf
8kb0/wMDrRc3CmVuZHN0cmVhbQplbmRvYmoKCjE0MiAwIG9iago1MjEzOAplbmRvYmoKCjE0MyAw
IG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1
MDcuNSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVu
Z3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVu
ZG9iagoKMTQ0IDAgb2JqCjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgoxNDUgMCBv
YmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBd
Ci9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgK
L0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoK
MTQ2IDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKMTQ4IDAgb2JqCjw8L0xl
bmd0aCAxNDkgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgA
JYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1
s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/ddd
rrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7
/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca
6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeq
SJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1
pdffT/WCcWnn16mluG8NI6PQJjGyVN3UC9JXzC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPu
AytBH8iR/Gr0h16wNF3vwg71L1WzgMlR/Rc09UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfj
nwVDfq1qFziWavbVa4T/GiLlWBpUM8625IgegEw0nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+
Hoga/+8/7RBLK99OORK6+sqaugbp/PZiAC5Lw2UJ8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhG
cimtRq7v78ZdYNKo/1b07oNhXtTRcl4fFk6YZcT+Qlm+tdIcJzaYV3JpKEWmtsqmuJ6buh9VjbJG
5qp/HoMJaHzVMFUSEp/5/GajKWcbV0fm+8cKIIVmyIHSoiy0SSWomaoBIIQCmSXtQosm3Bh+Njy3
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
hnG8CX9dFT7IQfg13z61tiDsq18I85XatCKZcropvybcp1a6KacXZZ8huk+BL8r5pvyacJ9a+aac
v6bMee1FudyUXzPuU6vclMubMmeIm7IWO1OuN+XXlPvUqjfl+iVlHwpflO8JuL92vJ9a9wTc3xPQ
p5Pus9umddSU+015vGiNT/0E5f41Zc5uL8r3BJQp9qG1f+onKL8noM89X1K+Z+B+vGgdn/oJyvuX
lH1227T4m/I9BWWRuGm9W/s9Bff3FPSRqvvstlI+7jkoi8ZDOX3qx5SP7UvKbI22ybnppji/HC+d
0adWivOLr4Kuz1rdJ6SV8K0yOsqLVPmim6f7PyQ8vyqmXG7K9UWrftHP0/9NmUNc99HrRbnelNuL
Vvuin6f/z5R9QHpRbjfl15T71Go35fai7ENc92Fm05fQlO8D6PGacp9a9wH0WA+gvo3HX/PqU2vc
j483Y3wt2nH9T4zND6kZ22/Kr3n1qbXflPeHMrYXYiy58VqOHxPLH3b7L7r7etOv/yO3MFSOj/Pn
t3/4zz/bx3/6Hx//LPJDNqMmj6ef36K1W1FBa0gLULosSBsjf7W+vX+jkM16vaNR+EERur48f1iL
83Dx3779P/+GAabSStUAtfn93os8YvFgZ5T9GeX28X0uBM/7lf9tYvyHf/xf/rfU0sf//f99/MPf
/jW1DZL/oo63ec9f/vatYFW+dlR/+z8//uGfZhL9j7/9X3/a0p//9v9++8e/ffv1fvmK/r0H/j08
r10lEhXlSk/TrP1j9vW//2kr+S/bX//8Pf0pXbvqraam65Fy3ubV9tet5b9ylUra9eu1fM6/uV5P
/NOfv+c/bX+Z982rsv+5jD9dcz/9+f/42//61bBVbLReX06xMgvP/fj7choKeVRCMHNfMrz/R/q+
+PmLrtq8uv5bZmvyOP/t4uwf1da/lu3P+U9Zt187sb/6sZYu9jf+lWHMoV0PlD8hnoVc5Y409F+J
KUtMDxt/NHSNpOib/x5JqXR9Hf/htdIdEqbDZyRmfxnldaR7sX/RqX8ufypt+SduDA7vf54D/6ft
LyEKhpN6DPJC/A8Goy3i9OAsgaRC0SaS+Q+QvH4/xvzkzvXoI+GNV7ePv13z9J9mGm09/wCrl+p6
zyZmqU80LhH9hZfxz/VP823UYNIcl+RnUK6x66EY1UNk3jOlNf8l+/b57PUeJ5OqdHHNmfr8K1fB
0cQr8ZaL/HcTuFaG9ud2wZb+8B1AbCrc9e8RW5aXw28EJ0H49S3X687wJMf5v5b+iWHA+8V0vOTX
GOI+BqS1AOnF+/bc85dbCPO9RVzXsnIhdK0Z6UZgzpwvAPp7csrSlP675KQ0zp/llFNMao3jojjH
ka8zQ97+6oXv/ULcIyyvd+J69i8x/+etf9VLMN/Ni9DVanOsvLdpyuMh6tlHu01O/srC8+fnhZXM
/Xi8tX4RY4W41ot8Y3X1kLWS5AO6fyDbLwWlhCufBbVShp+Rd1aeeGkSXTKqMoee1on51/jn+Xyd
D3SISnr3u7cMgOd4b/7KTFtG/lfem7/o/b2E05H3NeWg+ldm7yWB9j8pgSRnt99LAEQuPOInsdzi
i3CtGwLFb1gGeBrd8+XvvfPXS/jj+He980khIL+88//xnnq3qIxUvN/X4Pb5pq4L3/2V/Kf7VRWk
+SGipfihkWt8sF7LrtdtvcbRpxaE6jniBeG1Sq3z7F7M/2cwVXXjX0Tx+qBcSNbxEP3nj3/DVrDc
W8HMVvD/B9vVO7AKZW5kc3RyZWFtCmVuZG9iagoKMTQ5IDAgb2JqCjUyMTgyCmVuZG9iagoKMTUw
IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44
IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9M
ZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0K
ZW5kb2JqCgoxNTEgMCBvYmoKPDwvQ0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjE1MiAw
IG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMzk3IDggMzk3IDU4Ny4x
IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGgg
OAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2Jq
CgoxNTMgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgoxNTUgMCBvYmoKPDwv
TGVuZ3RoIDE1NiAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicdL1Ljis9k7Q5P6vQ
uAAlgnfGMnrUCxD6MqhsoGryb/8X7TGPYGShv0K9Ek+KpNONVze68/hJr//1779ex+t9/OTXOMtP
f7Wzfb//9//17//8j9f/9y+91v/99//z71h/eP3+Wz8a+v6fL74r739GIesLf/1///3f//Hv/3j9
112us/f/3yz3L1d2CXD81PNI5+vv51ek85w/9ZW/eea3ZFJppO9/z1G+5fbx/c+ZxvfP7zJ/ztfn
NXv+/vmdalNd7fXOOa2fnmOJlef68+dfP9JqWKlq66G/lW/J/VXOruKU+Lzy7F8dOpnOHHlO/XMU
txrpit59rpKXAO+UqzIj2juN8yuQhH7no35/RmOcoJ2ff07W1NUSZWr5+LkK7LlLNqoaJX//uySY
x6pIks2x/uHzb0l8llUJDTnb+VPcRr5/3HxS6IUcqCxKQptUgZKpGPWHSOCCtOBFM3YkPw9c3Y0W
6jWl199P9YJxaefXqaW4bw0jo9AmMbJU3dQL0lfMLwh1yXmWBc7xFXA1aSVmkhyrtU2ISgnr67e1
8+4DK0EfyJH8avSHXrA0Xe/CDvUvVbOAyVH9FzT1Q4v2BXQuham6L9Juir7uPUCKy/HzpdEcRS1l
Z+OfBUN+rWoXOJZq9tVrhP8aIuVYGlQzzrbkiB6ATDSeFDohB+qKspYeqQL1UjGKD5FABGlBimbs
GH4eiBr/7z/tEEsr3045Err6ypq6Bun89mIALkvDZQnybSS6/0rcF/ALk2SABdaSdLWyAGPaIU6G
uEZyKa1Gru/vxl1g0qj/VvTug2Fe1NFyXh8WTphlxP5CWb610hwnNphXcmkoRaa2yqa4npu6H1WN
skbmqn8egwlofNUwVRISn/n8ZqMpZxtXR+b7xwoghWbIgdKiLLRJJaiZqgEghAKZJe1CiybcGH42
PLcBPo/y+vupAd4vrfw6lVT+quU73wn9hc5XjIX9GodSfRP2C5J0asbqTPKHOuy3jQvF1Z9X01dH
6Pf05wTYt0guTY7I9e2m6S6OYaqKFiQpRBBc5RLvC+QaTV3YL1XSFCc27Feypqb+oyztW/aI4pai
q9FPgiC/kmbglZZkU+Mf9IewzG7MF+MbeyOf9X3phF+irCgDPVI4CqbKpfgQBTSQEpQQf8fv80Dz
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
v6Xss9umxd+Urykoi8RF69narym4P6egj1TdZ7eV8nHNQVk0bsrpSz+mfGzfUmZrtE3OTTfF+eV4
6Iy+tFKcX3wVdH3W6j4hrYQvldFRHqTKN93c3f8u4flVMeVyUa4PWvWbfu7+L8oc4rqPXg/K9aLc
HrTaN/3c/X+l7APSg3K7KD+m3JdWuyi3B2Uf4roPM5u+hKZ8HUCPx5T70roOoMd6APVtPP6YV19a
43p8PBnja9GO1//E2PyQmrH9ovyYV19a+0V5vyljeyHGkhtfy/FtYvndbv+uu19v+uv/yC0MleP9
/Hz7w3/+bO//8m/vfxX5IZtRk8fT51u0disqaA1pAUqXBWlj5I/W2/M3Ctms1zsahR8UoevL84e1
ODcX//vtf/0HBphKK1UD1Ob3oxd5xOLBzij7Pcrt/WMuBPf7lf9jYvzDn/+P/yu93t7/+f++/+Fv
/57agOTf1fE27/nT394KVuXXjupv/+39D3+ZSfTf//Y//ril3/72/7z9+W9vP98vX9F/9MD/H57X
rmbx5pYr/Uyj9o/Z03/9Y9vS2P75t4/0x/Sn7S+p/vaR/5haSvxL3X/7v//2f16s/9i94wz72LUg
v3pIDR+9qYN0LyWrj/RPojr03z/x39nn629PPbctp6LWX/i338ofU83bbPi2P8//5p4T/5b4m/Xb
65CbM/f5mb/k9tscBT/n+hjDKhMleS7S9D453v7pt1b/WJBGffGz/eX1f/CSJ+1ja7kzri2ZkccY
9NSXMfwOG4nsbir4KjZmsiHYSL8lD3Mr81IMbW17rajb/ttH/eN2zH+ORp6Nf+Jf/jT//PP2L/OP
ONv+fP+qu//yW/1j2ibQkwC/MIb0W3/9W8ov6vPBf3Ef5uQmkcRU35DDEDOvpyC/BzsSQRD5Zz2n
DvTwn2+S/fcEJDfF/NrRGqR8gfR6ao5zvrZ1vlQt/8kYzcHPX/4kXnTJS/MXmH696n5BJOPXEvL6
h9fbuLX5QN6DAG09M6GNy3mvZKU7X4/9M8jMfYUx+oshcFOvTfb7kO4ZkOCmmLmVqzkgsV9/81Pz
hao/M/9qvO6WaF9P/I4Ui0oZJKUdfgryNa2utzTeuIQQRfmeXnNqxbyaPyxT66/vv14/+3atnwfr
5/8HLVA6AQplbmRzdHJlYW0KZW5kb2JqCgoxNTYgMCBvYmoKNTE4OTEKZW5kb2JqCgoxNTcgMCBv
YmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3
LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0
aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRv
YmoKCjE1OCAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMTU5IDAgb2Jq
Cjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQov
R3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9G
aWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjE2
MCAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+PgplbmRvYmoKCjE2OCAwIG9iago8PC9MZW5n
dGggMTY5IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoMSAxMzE4ND4+CnN0cmVhbQp4nOV6
fVxb15HomXuvvr+uQMggAbogARISCCTzjeGCQBYWGPFlwDYGDMJgY8AgO3GcxDhx7BTHcZw6Tlqn
sZum3cZp1sJ2Gpx9G3vfZrvbblK72zZv+9qN2Tbd3+5bu86vTbJvtza8uVfCBifp7nv7fr/3x7vW
uXfOnJk5c+bMOTPnmMjk7jBRk2lCE35gZ/8E7yj1EELeJQQSBvZEuLmO3xQhPE8I5Rqa2LbT7v35
bwhh1ITIJNtG9w6dfonOJkRlIMQ0NxzuH9QWj3gJyUJ+UjyMiO8tPC8jJJvBum14Z+TBIfnv1mHd
jvXQ6PhAv6vMVo71B7Geu7P/wYl62Y+QNvsVrHNj/TvDlVcLzFh/hxD5wxPjU5GTYFkgxM0L7ROT
4Ym56lcjWO9DnTjEAf4THtQPpEKdohmJVCZXKFVqjVbH6hMSyf9Xj+RdyQfkEckBkkT2iu8VD1NO
DOQBQhZvCLV774XO/7tayGOfi+RPyTlyhrxPZsnXyLfJSXKYPEkeRcx37ukLHLlM/py8hpX/Qk6R
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
Ci9Gb250QkJveFstMjcxIC0zMDMgMTA2MSAxMDE0XS9JdGFsaWNBbmdsZSAtMzAKL0FzY2VudCA5
MDUKL0Rlc2NlbnQgLTIxMQovQ2FwSGVpZ2h0IDEwMTQKL1N0ZW1WIDgwCi9Gb250RmlsZTIgMTY4
IDAgUgo+PgplbmRvYmoKCjE3MSAwIG9iago8PC9MZW5ndGggMzExL0ZpbHRlci9GbGF0ZURlY29k
ZT4+CnN0cmVhbQp4nF2Ry26DMBBF93yFl+kiwiYBGgkh5YXEog+V9gOIPaSWirGMs+Dv6/GkrdQF
6MzjDsOd9NieWqN9+uom2YFngzbKwTzdnAR2gas2iciY0tLfo/iWY2+TNGi7ZfYwtmaYqipJ30Jt
9m5hq72aLvCQpC9OgdPmylYfxy7E3c3aLxjBeMaTumYKhjDnqbfP/QhpVK1bFcraL+sg+Wt4Xyyw
LMaCVpGTgtn2ElxvrpBUnNesapo6AaP+1cSOJJdBfvYutIrQynm+rQNnkYtH5A2xQN4Sn5Fz4gNy
EbncIJeRM478SPk4c0f9DfKeOEc+RN6ekI+U3yGfSJshnylfIjfUj3MEp53xu4L2L3COuO9fINP+
ZR5NuP8t2oH3+rGZyZtzweJ41OgtuqoN/N7dThZV8fkGaouX0wplbmRzdHJlYW0KZW5kb2JqCgox
NzIgMCBvYmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvQmFzZUZvbnQvRUFBQUFBK0xp
YmVyYXRpb25TYW5zLUl0YWxpYwovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDE5Ci9XaWR0aHNbMzY1
IDYxMCA1NTYgNTU2IDU1NiA1MDAgNTAwIDI3NyAyNzcgNTU2IDU1NiA4MzMgMjIyIDMzMyA1NTYg
Nzc3CjY2NiA4MzMgMjc3IDU1NiBdCi9Gb250RGVzY3JpcHRvciAxNzAgMCBSCi9Ub1VuaWNvZGUg
MTcxIDAgUgo+PgplbmRvYmoKCjE3MyAwIG9iago8PC9MZW5ndGggMTc0IDAgUi9GaWx0ZXIvRmxh
dGVEZWNvZGUvTGVuZ3RoMSAyNTE2Pj4Kc3RyZWFtCnic5VXrbxRVFD93Zh+l9N2KxQW94/C0s32h
VZKCm3a3dFvaLrstzugGmW6n7ZJ9ZXfbUCMBIipuAonREIgEWsAYY9C7qzHE+EGDfsKaaEg1RoMf
mvhBMNHEDyqlnjudPiT9D9zZO/d3zj3n/M45M/dONj1mQAkcAxE8kbieqiFEAICvAEhVZDxLw+tO
2xH/jLrAcGokfnNb4RcAoRGHMRKbGL544YOzADYcMDtq6EOncqW4Zn8R5ZZRVLw094wT5Y9Q3jQa
zx6m8EkJyt+jXBJLRvQLEEZon8VbUVw/nKoWNxKUb6NME3rcOPP18V8BHOgjHk4lM9kaODQPsOYE
X0+ljVRt3R9XUb6Ccj0Oghf/oT1xcFmA//3vTXgdXoOr4IdLoEEDPA4KNMNB2AcyeKENJPgcvoRv
4DpcgVfgDByHt2ASGLwDHjgKJ8h5WC/O2J+2vwvP2SsZKAyqu9ljAZV1jWsM5KdrmaNO3aWZuiMa
vclIdX2tmxGF/sBK6txMULqDqk/WJDcTlWgtZZ6AKjGP5mY2hbtKsvSC+pNrWnOhnTrnuqO5ZInZ
61TWMa6ZC5qG8exKafhZN3Mo+UfJSWSnJ8NhFwMM41Tym0yVZ0lVpFRV0p0NbrZGoUc4yRcYhjJx
s1+mzLali0FAzRk5nXLwlEuSNFfOlIILEicsXsiuwlUhYcS1Cv3WLKdEoQ3MWRdWKd0jd+iHqEqH
BhdCcLtSzozUNEf35Dp0OUdzskkn8+DMg5ZYH1cwj8EF9CkzmXbN1EqSi87ksA3o5MdsBqzcJNOs
XJHpjEUuU7U75JIY0dQcFuSXczLN+XOyzh0WXPjkZhX8MVRh3pW8AA6q7isgxydZP3RwZSXctVrB
InKv8rZ1Dck5J6MBtdX1Ga7UKB+Ch3ja2kj3tQqIgHnnxgMqvwdVeRCzl9tcOBG5DTvvCaoFoNAe
aSsQSnBiNMLWGxsWuR5QGGqxL3hz87dWwHcThCH7AJ5MTqjPE2hoLTht5Xea8w77j60FUUAIeZGr
7VxdcDq23m0tEK7fUSlVbpYqJa9A720iZ++N2gf+fs9rmwZ+QtzC8+WobRJKYTMUUFPHnNOLM2Fl
Dcw2w9ZO4z9fTuqgsUmiW7dUPNki0QfXVTgdovve7xcnJy+SclJ6+dKly1OTwsOTU1NTc7NTUzxv
Mn+X3LAlhQOYdxXuogYmYlRbQ95uBhOlJySbLfPPKXLjDfOsGj537sCGffHny1v/hEeKzA07/dfb
U4ubd/4uzxa7gOcjLB5m6OfcP3d0xR4n9+15UbgNXkcYbtnSPALu+DCkTSsRyqw4AsoCrOPO4qJ/
Gby/FKuwFJdAMUrE8nLCpxYWUX/dwjbE0xa2Y2+/s7AD9bNoSWxrMNAQ/GZhAjVC0MIClAnDFhZR
n7WwDfFJC9vhIeG8hR2o/3hbZDttbmzcSUNjCdoTjaSTmYlM1ohnqD8RqS/u7/QFfdTb5wvR3r5+
6lP9oX664NPURLvGYlEjQXv1QSNbHAj62n1eNGx17172CA20t/t83mWfvlh0PGqkaaceiyW5l7/H
Z7r0B/2BvT66oLDMd9AePTsa1TNonskYsbieSPSljERoIj6YjAWNkbGYnl5WLKP9RjoTTSZoU2Nz
fcuyGrbhNtuOO6gZGvHaiSgEY5DAuQeiuJaGJGRgAkcWDIjjTPHET+BKPT6BfugEHwRxUNxXfTiH
EPUi6sfZByrahky8kqcJLwpdyBNDDsNk6wUdBhFnMWrAjNiOw2tFbAU37F6VIwQDaMltufVqPH0m
y7jJlEa5E5lieCWXuPxYq28FS7+pC8BeU7vS4r/Rd5hd0jHOKEbXzd50mnMGuWLYLR1rS2AGKbPK
EPYxjlUmcS2ImhGzAzpmtZrFarr9Zg0ZZEuaXWvCPJrxSbSsai1ae30Ealb7gF8j8y8zcgq6WVFA
zRNyWst38C8Tq8CPbk0QwTFtI35BwqrGauoA/gV8PvmDCmVuZHN0cmVhbQplbmRvYmoKCjE3NCAw
IG9iagoxNDg0CmVuZG9iagoKMTc1IDAgb2JqCjw8L1R5cGUvRm9udERlc2NyaXB0b3IvRm9udE5h
bWUvREFBQUFBK09wZW5TeW1ib2wKL0ZsYWdzIDQKL0ZvbnRCQm94Wy0xNzkgLTMxMiAxMDgyIDkx
Nl0vSXRhbGljQW5nbGUgMAovQXNjZW50IDc5OQovRGVzY2VudCAtMjAwCi9DYXBIZWlnaHQgOTE2
Ci9TdGVtViA4MAovRm9udEZpbGUyIDE3MyAwIFIKPj4KZW5kb2JqCgoxNzYgMCBvYmoKPDwvTGVu
Z3RoIDIzMC9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJxdkEFrxCAQhe/+Co+7h0Vj6U0C
JctCDtuWpv0BRiep0KhMzCH/vqO7baEHxcd73/Ac0fXnPvgsXjHaATKffHAIa9zQAh9h9oE1ijtv
813V2y4mMUHssK8Zlj5MUWsm3shbM+788OTiCEcmXtAB+jDzw0c3kB62lL5ggZC5ZG3LHUw052rS
s1lAVOrUO7J93k+E/AXe9wRcVd3cqtjoYE3GApowA9NStlxfLi2D4P556kaMk/00SMmGkuqxo6yW
qrxl81C5e6JMKF/8acbthkit6h5qnVLEB/hdVYqpUPV8Ayzmb+oKZW5kc3RyZWFtCmVuZG9iagoK
MTc3IDAgb2JqCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL0Jhc2VGb250L0RBQUFBQStP
cGVuU3ltYm9sCi9GaXJzdENoYXIgMAovTGFzdENoYXIgMgovV2lkdGhzWzM2NSA3OTQgNTU1IF0K
L0ZvbnREZXNjcmlwdG9yIDE3NSAwIFIKL1RvVW5pY29kZSAxNzYgMCBSCj4+CmVuZG9iagoKMTc4
IDAgb2JqCjw8L0xlbmd0aCAxNzkgMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGgxIDMxMjY4
Pj4Kc3RyZWFtCnic1Lx7YFTVuSi+vrX2npk9Mzuz55lMXjOTyXsmM5tM3mGSDeQxIQIBAuZBSICQ
EFBIIKAQlaCAELBEpSCCQita8UVUilhrSVuO1qqVqrXHQ3vknGM9tUrleqy3KknuWnsmvLS994/f
P7/JZM96fGutb72+1/rW7l+7fjkyokFEkLLs5iW9aTeUuBFCbyAElmUb+t2f1T6YRsPnEcKOrt7u
m7ND5/6KEPk7Qlq++6aNXY88/G8XETLQIkt2rFi+pDOu2BJC6KYdNKFoBU04Mn6nlsZHaTx9xc39
t4Y9b5bQ+Ie0zqqb1ixbMvGrgYcQWp1N84/evOTW3i5NB6Fx2j5yr15y8/LCzzGFXf0pQjqld826
/n0odwKhW/wsv3ft8t6ixb+qoPEbKH6/o2lA/9jHSIMaFseE4zVanaA3GMU4k2S2WG12R3yCMzEp
OSXV5fakedMzMrOyc3J9/rxAUJ6SHyooLCouKS0rnxquqFSmTZ9RVV1TG6mbWX/DrNlzGtD/3z78
G/wb6HZ+C7Kjjerzmg9XhmzoFoQmPmWxK8/xG/+/xUIX/TmBXkbH0ZFrsnagO+jzqWvSTqNfoifV
0EF0zz+p9kX0RCy0Fx1Ad/9DuJXoLlrPUdr+lU8HTd2IHqAtn0I/ogslDUK01VWx3HPote+uCv4D
XkP3occp5H3oBfo8SFfeAP4c3YfnodX492QLuhPtpH08DD1oD4XvQEehFS2mqdHPYrQcrbmu0iE0
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
CgoxODAgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9DQUFBQUErTGliZXJh
dGlvblNhbnMKL0ZsYWdzIDQKL0ZvbnRCQm94Wy0yMDMgLTMwMyAxMDQ5IDkxMF0vSXRhbGljQW5n
bGUgMAovQXNjZW50IDkwNQovRGVzY2VudCAtMjExCi9DYXBIZWlnaHQgOTEwCi9TdGVtViA4MAov
Rm9udEZpbGUyIDE3OCAwIFIKPj4KZW5kb2JqCgoxODEgMCBvYmoKPDwvTGVuZ3RoIDU2Ny9GaWx0
ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJxdlE2PmzAQhu/8Co7bwwo8NiYrRUjZZCPl0A812x9A
wMkibQARcsi/L++8biv1kOjBzIyfGcDZ9rA79N2c/ZiG5hjm9Nz17RRuw31qQnoKl65PjKRt18zx
Sv+baz0m2ZJ7fNzmcD3052G9TrKfy73bPD3Sp007nMKXJPs+tWHq+kv69Gt7XK6P93H8DNfQz2me
VFXahvNS52s9fquvIdOs50O73O7mx/OS8i/g/TGGVPTaUKUZ2nAb6yZMdX8JyTrPq3S931dJ6Nv/
7q1yppzOzUc9LaFmCc1zZ6uFRbnIwZbre7DjusYUyqIxXtkKuCTr+opswC9kB96wjvKrsl+Bt+QC
vOO+b+A35VJj9mTkmpwxJZj+HvGG/iV8DP09HAz9/QuY/h59Gfr7LZj+JRwM/b3uFf034Oiv9elf
YiYm+nsw/QutQ3//Co7+iBH6e+QK/Qv0KPT32Evi/FFHoj/6lTh/9Cv0d5i50N+hX4n+8BT6C3oU
+jt1iP6aS3+nMfS3mJXQ36oD/S16sdF/B6Z/iXhLf4e52eiv6/Qv4W/pX6JHC3/JDfa1JVlr0r/Q
+Dh/zMrSX9SB/oK5WfqL7hX9NZf+TuPpL6jv6F9gDi6+/7oe/VHT0V80hv6Cmi76Y86O8y+wr+P8
Rdfj+493zNHf4Vk4+lutSX+re9Hf4pk6+ovm0r/ArBz9HbiI/kY/8Pgl41PHWfTnCEmb+zQtx4ce
WHpu4MTo+vD3TBuHEVn6+w0mwybyCmVuZHN0cmVhbQplbmRvYmoKCjE4MiAwIG9iago8PC9UeXBl
L0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9CYXNlRm9udC9DQUFBQUErTGliZXJhdGlvblNhbnMKL0Zp
cnN0Q2hhciAwCi9MYXN0Q2hhciA4MAovV2lkdGhzWzM2NSA3MjIgNjY2IDc3NyA2NjYgMjc3IDU1
NiA1NTYgNTU2IDU1NiA2MTAgNTU2IDU1NiA3MjIgNTAwIDI3Nwo3NzcgNTU2IDMzMyA1NTYgMjIy
IDU1NiAyMjIgNTU2IDU1NiAyNzcgNzIyIDUwMCAyNzcgNzIyIDUwMCA1MDAKNTAwIDY2NiAyMjIg
NjY2IDU1NiAyNzcgMTAxNSA2NjYgNTU2IDI3NyA2MTAgNTU2IDU1NiA1NTYgNTU2IDI3Nwo4MzMg
NTAwIDcyMiAyNzcgNzIyIDUwMCAzMzMgMzMzIDk0MyA1NTYgNTgzIDMzMyAzMzMgNTU2IDY2NiAz
MzMKNjY2IDgzMyA3MjIgNjY2IDE5MCA1NTYgNjY2IDI3NyA1NTYgNjY2IDU1NiA1NTYgNTgzIDI3
NyA2MTAgNTAwCjc3NyBdCi9Gb250RGVzY3JpcHRvciAxODAgMCBSCi9Ub1VuaWNvZGUgMTgxIDAg
Ugo+PgplbmRvYmoKCjE4MyAwIG9iago8PC9MZW5ndGggMTg0IDAgUi9GaWx0ZXIvRmxhdGVEZWNv
ZGUvTGVuZ3RoMSA1ODI4Pj4Kc3RyZWFtCnic5VdtbFvVGX7Pvf5q08ZOKVGQS32825RkTuy0AZp2
oXES20malDgfZnbKWt/YN7FLYlv2TUo7qmZIQOXS0cFWYFRim7QNbUi9btmUTh0NGtM0aQz2Yz8Y
BCKNfzRr161oAtrsPcfXaRJakMak/dhNfO/zPu/nec859rlqdkKBNTAFInhj43JmPSGA1x8AyLrY
pEoX2rwU8RyAUDmSGR2vaXznbwDivwDMxtGxgyO/+fNPawHKmE84ocjxlianB+UwyvcmkOi8ftCM
8gmUNyXG1Yd9cNGA8isoW8bSMbkO6hCWncebaVx+OKOaDjP96yjTlDyu7FZ++F2UP0Dznkw6p8Zh
0wLA+gamz2SVzNWhZy0oB7E+FTkCvHwcERATl//PL+NxuB06jfeBFTL8vuwSX4Y72HPh4vL79Z6F
j/+bVViKj+fgJ/AKHIe34Ru6IgBBSMIEMkuv1+BPyLIrCEPwM8jfIuzLMI36ol0UnoLnb2EXhGfh
LPxuWZYgjMM3sZZfwNtkC/wel0oarhALfAt+i1GvILf7ZqGEcryNcDiyhH0HXhCOwS4B1ylWgRrB
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
QkFBQUFBK0xpYmVyYXRpb25TZXJpZgovRmxhZ3MgNAovRm9udEJCb3hbLTE3NiAtMzAzIDEwMDUg
OTgxXS9JdGFsaWNBbmdsZSAwCi9Bc2NlbnQgODkxCi9EZXNjZW50IC0yMTYKL0NhcEhlaWdodCA5
ODEKL1N0ZW1WIDgwCi9Gb250RmlsZTIgMTgzIDAgUgo+PgplbmRvYmoKCjE4NiAwIG9iago8PC9M
ZW5ndGggMjIxL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nF2QQU/EIBCF7/yKOe4eNtCe
myZmzSY96BqrP4DCtJLYgUzpof/eKVZNPEDyeO+DN+hr99hRyPqFo+sxwxjIMy5xZYcw4BRIVTX4
4PKhyu5mm5QWtt+WjHNHY2wapV/FWzJvcHrwccCz0nf2yIEmOL1fe9H9mtInzkgZjGpb8DjKPU82
PdsZdaEunRc75O0iyF/gbUsIddHVdxUXPS7JOmRLE6rGmBaa261VSP6fdxDD6D4sS7KSpDG1Kdnj
dKf2sX7agFuZpUmZvVTYHw+Ev9+TYtqpsr4AfVltdQplbmRzdHJlYW0KZW5kb2JqCgoxODcgMCBv
YmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvQmFzZUZvbnQvQkFBQUFBK0xpYmVyYXRp
b25TZXJpZgovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDEKL1dpZHRoc1szNjUgMjUwIF0KL0ZvbnRE
ZXNjcmlwdG9yIDE4NSAwIFIKL1RvVW5pY29kZSAxODYgMCBSCj4+CmVuZG9iagoKMTg4IDAgb2Jq
Cjw8L0YxIDE4NyAwIFIvRjIgMTgyIDAgUi9GMyAxNzcgMCBSL0Y0IDE3MiAwIFIKPj4KZW5kb2Jq
CgoxODkgMCBvYmoKPDwvRm9udCAxODggMCBSCi9YT2JqZWN0PDwvSW00IDQgMCBSL0ltNSA1IDAg
Ui9JbTYgNiAwIFIvSW02NSA2NSAwIFIvSW03MyA3MyAwIFIvSW04MSA4MSAwIFIvVHIxMDEgMTAx
IDAgUi9UcjEwMyAxMDMgMCBSCi9UcjEwOCAxMDggMCBSL1RyMTEwIDExMCAwIFIvVHIxMTUgMTE1
IDAgUi9UcjExNyAxMTcgMCBSL1RyMTIyIDEyMiAwIFIvVHIxMjQgMTI0IDAgUi9UcjEyOSAxMjkg
MCBSL1RyMTMxIDEzMSAwIFIKL1RyMTM2IDEzNiAwIFIvVHIxMzggMTM4IDAgUi9UcjE0MyAxNDMg
MCBSL1RyMTQ1IDE0NSAwIFIvVHIxNTAgMTUwIDAgUi9UcjE1MiAxNTIgMCBSL1RyMTU3IDE1NyAw
IFIvVHIxNTkgMTU5IDAgUgovVHIyMSAyMSAwIFIvVHIyMyAyMyAwIFIvVHIyOCAyOCAwIFIvVHIz
MCAzMCAwIFIvVHIzNSAzNSAwIFIvVHIzNyAzNyAwIFIvVHI0MiA0MiAwIFIvVHI0NCA0NCAwIFIK
L1RyNDkgNDkgMCBSL1RyNTEgNTEgMCBSL1RyNTYgNTYgMCBSL1RyNTggNTggMCBSL1RyNjMgNjMg
MCBSL1RyNjYgNjYgMCBSL1RyNyA3IDAgUi9UcjcxIDcxIDAgUgovVHI3NCA3NCAwIFIvVHI3OSA3
OSAwIFIvVHI4MiA4MiAwIFIvVHI4NyA4NyAwIFIvVHI4OSA4OSAwIFIvVHI5IDkgMCBSL1RyOTQg
OTQgMCBSL1RyOTYgOTYgMCBSCj4+Ci9FeHRHU3RhdGU8PC9FR1MxMCAxMCAwIFIvRUdTMTAyIDEw
MiAwIFIvRUdTMTA0IDEwNCAwIFIvRUdTMTA5IDEwOSAwIFIvRUdTMTExIDExMSAwIFIvRUdTMTE2
IDExNiAwIFIvRUdTMTE4IDExOCAwIFIvRUdTMTIzIDEyMyAwIFIKL0VHUzEyNSAxMjUgMCBSL0VH
UzEzMCAxMzAgMCBSL0VHUzEzMiAxMzIgMCBSL0VHUzEzNyAxMzcgMCBSL0VHUzEzOSAxMzkgMCBS
L0VHUzE0NCAxNDQgMCBSL0VHUzE0NiAxNDYgMCBSL0VHUzE1MSAxNTEgMCBSCi9FR1MxNTMgMTUz
IDAgUi9FR1MxNTggMTU4IDAgUi9FR1MxNjAgMTYwIDAgUi9FR1MyMiAyMiAwIFIvRUdTMjQgMjQg
MCBSL0VHUzI5IDI5IDAgUi9FR1MzMSAzMSAwIFIvRUdTMzYgMzYgMCBSCi9FR1MzOCAzOCAwIFIv
RUdTNDMgNDMgMCBSL0VHUzQ1IDQ1IDAgUi9FR1M1MCA1MCAwIFIvRUdTNTIgNTIgMCBSL0VHUzU3
IDU3IDAgUi9FR1M1OSA1OSAwIFIvRUdTNjQgNjQgMCBSCi9FR1M2NyA2NyAwIFIvRUdTNzIgNzIg
MCBSL0VHUzc1IDc1IDAgUi9FR1M4IDggMCBSL0VHUzgwIDgwIDAgUi9FR1M4MyA4MyAwIFIvRUdT
ODggODggMCBSL0VHUzkwIDkwIDAgUgovRUdTOTUgOTUgMCBSL0VHUzk3IDk3IDAgUj4+Ci9Qcm9j
U2V0Wy9QREYvVGV4dC9JbWFnZUMvSW1hZ2VJL0ltYWdlQl0KPj4KZW5kb2JqCgoxIDAgb2JqCjw8
L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAg
Nzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29u
dGVudHMgMiAwIFI+PgplbmRvYmoKCjE4IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAg
Ui9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5z
cGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMTkgMCBSPj4KZW5kb2JqCgoy
NSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVk
aWFCb3hbMCAwIDc5NCA1OTVdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kg
dHJ1ZT4+L0NvbnRlbnRzIDI2IDAgUj4+CmVuZG9iagoKMzIgMCBvYmoKPDwvVHlwZS9QYWdlL1Bh
cmVudCAxNjcgMCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Hcm91
cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAzMyAwIFI+
PgplbmRvYmoKCjM5IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMg
MTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9E
ZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNDAgMCBSPj4KZW5kb2JqCgo0NiAwIG9iago8PC9U
eXBlL1BhZ2UvUGFyZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5
NCA1OTVdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRl
bnRzIDQ3IDAgUj4+CmVuZG9iagoKNTMgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcgMCBS
L1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Hcm91cDw8L1MvVHJhbnNw
YXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA1NCAwIFI+PgplbmRvYmoKCjYw
IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRp
YUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0
cnVlPj4vQ29udGVudHMgNjEgMCBSPj4KZW5kb2JqCgo2OCAwIG9iago8PC9UeXBlL1BhZ2UvUGFy
ZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0dyb3Vw
PDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDY5IDAgUj4+
CmVuZG9iagoKNzYgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcgMCBSL1Jlc291cmNlcyAx
ODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0Rl
dmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA3NyAwIFI+PgplbmRvYmoKCjg0IDAgb2JqCjw8L1R5
cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0
IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVu
dHMgODUgMCBSPj4KZW5kb2JqCgo5MSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDE2NyAwIFIv
UmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0dyb3VwPDwvUy9UcmFuc3Bh
cmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDkyIDAgUj4+CmVuZG9iagoKOTgg
MCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcgMCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlh
Qm94WzAgMCA3OTQgNTk1XS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRy
dWU+Pi9Db250ZW50cyA5OSAwIFI+PgplbmRvYmoKCjEwNSAwIG9iago8PC9UeXBlL1BhZ2UvUGFy
ZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0Fubm90
c1sKMTYxIDAgUiBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+
Pi9Db250ZW50cyAxMDYgMCBSPj4KZW5kb2JqCgoxMTIgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVu
dCAxNjcgMCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Bbm5vdHNb
CjE2MiAwIFIgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4v
Q29udGVudHMgMTEzIDAgUj4+CmVuZG9iagoKMTE5IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQg
MTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vQW5ub3RzWwox
NjMgMCBSIF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0Nv
bnRlbnRzIDEyMCAwIFI+PgplbmRvYmoKCjEyNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDE2
NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0Fubm90c1sKMTY0
IDAgUiBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250
ZW50cyAxMjcgMCBSPj4KZW5kb2JqCgoxMzMgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcg
MCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Bbm5vdHNbCjE2NSAw
IFIgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVu
dHMgMTM0IDAgUj4+CmVuZG9iagoKMTQwIDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAg
Ui9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5z
cGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMTQxIDAgUj4+CmVuZG9iagoK
MTQ3IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9N
ZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0Iv
SSB0cnVlPj4vQ29udGVudHMgMTQ4IDAgUj4+CmVuZG9iagoKMTU0IDAgb2JqCjw8L1R5cGUvUGFn
ZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0v
QW5ub3RzWwoxNjYgMCBSIF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kg
dHJ1ZT4+L0NvbnRlbnRzIDE1NSAwIFI+PgplbmRvYmoKCjE5MCAwIG9iago8PC9Db3VudCAyMS9G
aXJzdCAxOTEgMCBSL0xhc3QgMjExIDAgUgo+PgplbmRvYmoKCjE5MSAwIG9iago8PC9Db3VudCAw
L1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0MDA2NTAwMjAwMDMxPgovRGVzdFsxIDAgUi9YWVog
MCA1OTUgMF0vUGFyZW50IDE5MCAwIFIvTmV4dCAxOTIgMCBSPj4KZW5kb2JqCgoxOTIgMCBvYmoK
PDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMj4KL0Rlc3Rb
MTggMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5MSAwIFIvTmV4dCAxOTMg
MCBSPj4KZW5kb2JqCgoxOTMgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5
MDA2NDAwNjUwMDIwMDAzMz4KL0Rlc3RbMjUgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAg
Ui9QcmV2IDE5MiAwIFIvTmV4dCAxOTQgMCBSPj4KZW5kb2JqCgoxOTQgMCBvYmoKPDwvQ291bnQg
MC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzND4KL0Rlc3RbMzIgMCBSL1hZ
WiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5MyAwIFIvTmV4dCAxOTUgMCBSPj4KZW5k
b2JqCgoxOTUgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUw
MDIwMDAzNT4KL0Rlc3RbMzkgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5
NCAwIFIvTmV4dCAxOTYgMCBSPj4KZW5kb2JqCgoxOTYgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxG
RUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzNj4KL0Rlc3RbNDYgMCBSL1hZWiAwIDU5NSAw
XS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5NSAwIFIvTmV4dCAxOTcgMCBSPj4KZW5kb2JqCgoxOTcg
MCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzNz4K
L0Rlc3RbNTMgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5NiAwIFIvTmV4
dCAxOTggMCBSPj4KZW5kb2JqCgoxOTggMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAw
NkMwMDY5MDA2NDAwNjUwMDIwMDAzOD4KL0Rlc3RbNjAgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQg
MTkwIDAgUi9QcmV2IDE5NyAwIFIvTmV4dCAxOTkgMCBSPj4KZW5kb2JqCgoxOTkgMCBvYmoKPDwv
Q291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzOT4KL0Rlc3RbNjgg
MCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5OCAwIFIvTmV4dCAyMDAgMCBS
Pj4KZW5kb2JqCgoyMDAgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2
NDAwNjUwMDIwMDAzMTAwMzA+Ci9EZXN0Wzc2IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAw
IFIvUHJldiAxOTkgMCBSL05leHQgMjAxIDAgUj4+CmVuZG9iagoKMjAxIDAgb2JqCjw8L0NvdW50
IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQwMDY1MDAyMDAwMzEwMDMxPgovRGVzdFs4NCAw
IFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAgMCBSL1ByZXYgMjAwIDAgUi9OZXh0IDIwMiAwIFI+
PgplbmRvYmoKCjIwMiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0
MDA2NTAwMjAwMDMxMDAzMj4KL0Rlc3RbOTEgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAg
Ui9QcmV2IDIwMSAwIFIvTmV4dCAyMDMgMCBSPj4KZW5kb2JqCgoyMDMgMCBvYmoKPDwvQ291bnQg
MC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMTAwMzM+Ci9EZXN0Wzk4IDAg
Ui9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAwIFIvUHJldiAyMDIgMCBSL05leHQgMjA0IDAgUj4+
CmVuZG9iagoKMjA0IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQw
MDY1MDAyMDAwMzEwMDM0PgovRGVzdFsxMDUgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAg
Ui9QcmV2IDIwMyAwIFIvTmV4dCAyMDUgMCBSPj4KZW5kb2JqCgoyMDUgMCBvYmoKPDwvQ291bnQg
MC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMTAwMzU+Ci9EZXN0WzExMiAw
IFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAgMCBSL1ByZXYgMjA0IDAgUi9OZXh0IDIwNiAwIFI+
PgplbmRvYmoKCjIwNiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0
MDA2NTAwMjAwMDMxMDAzNj4KL0Rlc3RbMTE5IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAw
IFIvUHJldiAyMDUgMCBSL05leHQgMjA3IDAgUj4+CmVuZG9iagoKMjA3IDAgb2JqCjw8L0NvdW50
IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQwMDY1MDAyMDAwMzEwMDM3PgovRGVzdFsxMjYg
MCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDIwNiAwIFIvTmV4dCAyMDggMCBS
Pj4KZW5kb2JqCgoyMDggMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2
NDAwNjUwMDIwMDAzMTAwMzg+Ci9EZXN0WzEzMyAwIFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAg
MCBSL1ByZXYgMjA3IDAgUi9OZXh0IDIwOSAwIFI+PgplbmRvYmoKCjIwOSAwIG9iago8PC9Db3Vu
dCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0MDA2NTAwMjAwMDMxMDAzOT4KL0Rlc3RbMTQw
IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAwIFIvUHJldiAyMDggMCBSL05leHQgMjEwIDAg
Uj4+CmVuZG9iagoKMjEwIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAw
NjQwMDY1MDAyMDAwMzIwMDMwPgovRGVzdFsxNDcgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkw
IDAgUi9QcmV2IDIwOSAwIFIvTmV4dCAyMTEgMCBSPj4KZW5kb2JqCgoyMTEgMCBvYmoKPDwvQ291
bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMjAwMzE+Ci9EZXN0WzE1
NCAwIFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAgMCBSL1ByZXYgMjEwIDAgUj4+CmVuZG9iagoK
MTY3IDAgb2JqCjw8L1R5cGUvUGFnZXMKL1Jlc291cmNlcyAxODkgMCBSCi9NZWRpYUJveFsgMCAw
IDc5NCA1OTUgXQovS2lkc1sgMSAwIFIgMTggMCBSIDI1IDAgUiAzMiAwIFIgMzkgMCBSIDQ2IDAg
UiA1MyAwIFIgNjAgMCBSIDY4IDAgUiA3NiAwIFIgODQgMCBSIDkxIDAgUiA5OCAwIFIgMTA1IDAg
UiAxMTIgMCBSIDExOSAwIFIKMTI2IDAgUiAxMzMgMCBSIDE0MCAwIFIgMTQ3IDAgUiAxNTQgMCBS
IF0KL0NvdW50IDIxPj4KZW5kb2JqCgoxNjEgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xp
bmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzc1LjIgMTY1IDQ2My44IDE5NC44XS9BPDwvVHlwZS9BY3Rp
b24vUy9VUkkvVVJJKGh0dHA6Ly93d3cub3Blbm1pcmFnZS5vcmcvKT4+Cj4+CmVuZG9iagoKMTYy
IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3NS4y
IDEyOSA1MzEuNCAxNTguOF0vQTw8L1R5cGUvQWN0aW9uL1MvVVJJL1VSSShodHRwczovL2dhbG9p
cy5jb20vcHJvamVjdC9oYWx2bS8pPj4KPj4KZW5kb2JqCgoxNjMgMCBvYmoKPDwvVHlwZS9Bbm5v
dC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzc1LjIgMjE1LjEgMzk0LjUgMjQ0Ljld
L0E8PC9UeXBlL0FjdGlvbi9TL1VSSS9VUkkoaHR0cDovL2VybGFuZ29ueGVuLm9yZy8pPj4KPj4K
ZW5kb2JqCgoxNjQgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAw
XS9SZWN0Wzc1LjIgMTI5IDQ4My41IDE1OC44XS9BPDwvVHlwZS9BY3Rpb24vUy9VUkkvVVJJKGh0
dHBzOi8vY25wLm5lY2xhYi5ldS9jbGlja29zLyk+Pgo+PgplbmRvYmoKCjE2NSAwIG9iago8PC9U
eXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNjcuNiAxMjQuMyAyMDEu
NyAxNDcuOV0vQTw8L1R5cGUvQWN0aW9uL1MvVVJJL1VSSShodHRwOi8vb3N2LmlvLyk+Pgo+Pgpl
bmRvYmoKCjE2NiAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBd
L1JlY3RbMTU5LjUgMzQ2LjEgNjMzLjYgMzc2XS9BPDwvVHlwZS9BY3Rpb24vUy9VUkkvVVJJKG1h
aWx0bzpSdXNzZWxsLlBhdmxpY2VrQFhlblByb2plY3Qub3JnKT4+Cj4+CmVuZG9iagoKMjEyIDAg
b2JqCjw8L1R5cGUvQ2F0YWxvZy9QYWdlcyAxNjcgMCBSCi9PcGVuQWN0aW9uWzEgMCBSIC9YWVog
bnVsbCBudWxsIDBdCi9PdXRsaW5lcyAxOTAgMCBSCj4+CmVuZG9iagoKMjEzIDAgb2JqCjw8L0Ny
ZWF0b3I8RkVGRjAwNDkwMDZEMDA3MDAwNzIwMDY1MDA3MzAwNzM+Ci9Qcm9kdWNlcjxGRUZGMDA0
QzAwNjkwMDYyMDA3MjAwNjUwMDRGMDA2NjAwNjYwMDY5MDA2MzAwNjUwMDIwMDAzNDAwMkUwMDMy
PgovQ3JlYXRpb25EYXRlKEQ6MjAxNDEwMzAyMjIwMDctMDQnMDAnKT4+CmVuZG9iagoKeHJlZgow
IDIxNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDEyNDg2ODkgMDAwMDAgbiAKMDAwMDAwMDAxOSAw
MDAwMCBuIAowMDAwMDUxODM3IDAwMDAwIG4gCjAwMDAwNTE4NTkgMDAwMDAgbiAKMDAwMDA1ODc1
MiAwMDAwMCBuIAowMDAwMDU0Mzg2IDAwMDAwIG4gCjAwMDAwNjUwNDIgMDAwMDAgbiAKMDAwMDA2
NTIyMiAwMDAwMCBuIAowMDAwMDY1MjY0IDAwMDAwIG4gCjAwMDAwNjU0NDAgMDAwMDAgbiAKMDAw
MDA1MzU0OSAwMDAwMCBuIAowMDAwMDUzNTcxIDAwMDAwIG4gCjAwMDAwNTQzNjUgMDAwMDAgbiAK
MDAwMDA1ODA0NiAwMDAwMCBuIAowMDAwMDU4NzMxIDAwMDAwIG4gCjAwMDAwNjMwOTUgMDAwMDAg
biAKMDAwMDA2NTAyMCAwMDAwMCBuIAowMDAxMjQ4ODM1IDAwMDAwIG4gCjAwMDAwNjU0ODEgMDAw
MDAgbiAKMDAwMDExODAxNiAwMDAwMCBuIAowMDAwMTE4MDM5IDAwMDAwIG4gCjAwMDAxMTgyMjAg
MDAwMDAgbiAKMDAwMDExODI2MyAwMDAwMCBuIAowMDAwMTE4NDQwIDAwMDAwIG4gCjAwMDEyNDg5
ODMgMDAwMDAgbiAKMDAwMDExODQ4MSAwMDAwMCBuIAowMDAwMTcxMTE5IDAwMDAwIG4gCjAwMDAx
NzExNDIgMDAwMDAgbiAKMDAwMDE3MTMyMyAwMDAwMCBuIAowMDAwMTcxMzY2IDAwMDAwIG4gCjAw
MDAxNzE1NDMgMDAwMDAgbiAKMDAwMTI0OTEzMSAwMDAwMCBuIAowMDAwMTcxNTg0IDAwMDAwIG4g
CjAwMDAyMjM2MjMgMDAwMDAgbiAKMDAwMDIyMzY0NiAwMDAwMCBuIAowMDAwMjIzODI3IDAwMDAw
IG4gCjAwMDAyMjM4NzAgMDAwMDAgbiAKMDAwMDIyNDA0NyAwMDAwMCBuIAowMDAxMjQ5Mjc5IDAw
MDAwIG4gCjAwMDAyMjQwODggMDAwMDAgbiAKMDAwMDI3NjEzMSAwMDAwMCBuIAowMDAwMjc2MTU0
IDAwMDAwIG4gCjAwMDAyNzYzMzUgMDAwMDAgbiAKMDAwMDI3NjM3OCAwMDAwMCBuIAowMDAwMjc2
NTU1IDAwMDAwIG4gCjAwMDEyNDk0MjcgMDAwMDAgbiAKMDAwMDI3NjU5NiAwMDAwMCBuIAowMDAw
MzI4OTgxIDAwMDAwIG4gCjAwMDAzMjkwMDQgMDAwMDAgbiAKMDAwMDMyOTE4NSAwMDAwMCBuIAow
MDAwMzI5MjI4IDAwMDAwIG4gCjAwMDAzMjk0MDUgMDAwMDAgbiAKMDAwMTI0OTU3NSAwMDAwMCBu
IAowMDAwMzI5NDQ2IDAwMDAwIG4gCjAwMDAzODEzNzUgMDAwMDAgbiAKMDAwMDM4MTM5OCAwMDAw
MCBuIAowMDAwMzgxNTc5IDAwMDAwIG4gCjAwMDAzODE2MjIgMDAwMDAgbiAKMDAwMDM4MTc5OSAw
MDAwMCBuIAowMDAxMjQ5NzIzIDAwMDAwIG4gCjAwMDAzODE4NDAgMDAwMDAgbiAKMDAwMDQzMzQ1
NSAwMDAwMCBuIAowMDAwNDY0NjExIDAwMDAwIG4gCjAwMDA0NjQ3OTIgMDAwMDAgbiAKMDAwMDQz
MzQ3OCAwMDAwMCBuIAowMDAwNDY0ODM1IDAwMDAwIG4gCjAwMDA0NjUwMTIgMDAwMDAgbiAKMDAw
MTI0OTg3MSAwMDAwMCBuIAowMDAwNDY1MDUzIDAwMDAwIG4gCjAwMDA1MTY2NjggMDAwMDAgbiAK
MDAwMDU0NjQ3MiAwMDAwMCBuIAowMDAwNTQ2NjUzIDAwMDAwIG4gCjAwMDA1MTY2OTEgMDAwMDAg
biAKMDAwMDU0NjY5NiAwMDAwMCBuIAowMDAwNTQ2ODczIDAwMDAwIG4gCjAwMDEyNTAwMTkgMDAw
MDAgbiAKMDAwMDU0NjkxNCAwMDAwMCBuIAowMDAwNTk4NTM0IDAwMDAwIG4gCjAwMDA2MzA2NDcg
MDAwMDAgbiAKMDAwMDYzMDgyOCAwMDAwMCBuIAowMDAwNTk4NTU3IDAwMDAwIG4gCjAwMDA2MzA4
NzEgMDAwMDAgbiAKMDAwMDYzMTA0OCAwMDAwMCBuIAowMDAxMjUwMTY3IDAwMDAwIG4gCjAwMDA2
MzEwODkgMDAwMDAgbiAKMDAwMDY4MzE0MSAwMDAwMCBuIAowMDAwNjgzMTY0IDAwMDAwIG4gCjAw
MDA2ODMzNDUgMDAwMDAgbiAKMDAwMDY4MzM4OCAwMDAwMCBuIAowMDAwNjgzNTY1IDAwMDAwIG4g
CjAwMDEyNTAzMTUgMDAwMDAgbiAKMDAwMDY4MzYwNiAwMDAwMCBuIAowMDAwNzM1ODI4IDAwMDAw
IG4gCjAwMDA3MzU4NTEgMDAwMDAgbiAKMDAwMDczNjAzMiAwMDAwMCBuIAowMDAwNzM2MDc1IDAw
MDAwIG4gCjAwMDA3MzYyNTIgMDAwMDAgbiAKMDAwMTI1MDQ2MyAwMDAwMCBuIAowMDAwNzM2Mjkz
IDAwMDAwIG4gCjAwMDA3ODgyMzcgMDAwMDAgbiAKMDAwMDc4ODI2MSAwMDAwMCBuIAowMDAwNzg4
NDQzIDAwMDAwIG4gCjAwMDA3ODg0ODcgMDAwMDAgbiAKMDAwMDc4ODY2NSAwMDAwMCBuIAowMDAx
MjUwNjExIDAwMDAwIG4gCjAwMDA3ODg3MDcgMDAwMDAgbiAKMDAwMDg0MDYyOSAwMDAwMCBuIAow
MDAwODQwNjUzIDAwMDAwIG4gCjAwMDA4NDA4MzUgMDAwMDAgbiAKMDAwMDg0MDg3OSAwMDAwMCBu
IAowMDAwODQxMDU3IDAwMDAwIG4gCjAwMDEyNTA3ODAgMDAwMDAgbiAKMDAwMDg0MTA5OSAwMDAw
MCBuIAowMDAwODkzMDgzIDAwMDAwIG4gCjAwMDA4OTMxMDcgMDAwMDAgbiAKMDAwMDg5MzI4OSAw
MDAwMCBuIAowMDAwODkzMzMzIDAwMDAwIG4gCjAwMDA4OTM1MTEgMDAwMDAgbiAKMDAwMTI1MDk0
OSAwMDAwMCBuIAowMDAwODkzNTUzIDAwMDAwIG4gCjAwMDA5NDU0MDEgMDAwMDAgbiAKMDAwMDk0
NTQyNSAwMDAwMCBuIAowMDAwOTQ1NjA3IDAwMDAwIG4gCjAwMDA5NDU2NTEgMDAwMDAgbiAKMDAw
MDk0NTgyOSAwMDAwMCBuIAowMDAxMjUxMTE4IDAwMDAwIG4gCjAwMDA5NDU4NzEgMDAwMDAgbiAK
MDAwMDk5Nzg0NCAwMDAwMCBuIAowMDAwOTk3ODY4IDAwMDAwIG4gCjAwMDA5OTgwNTAgMDAwMDAg
biAKMDAwMDk5ODA5NCAwMDAwMCBuIAowMDAwOTk4MjcyIDAwMDAwIG4gCjAwMDEyNTEyODcgMDAw
MDAgbiAKMDAwMDk5ODMxNCAwMDAwMCBuIAowMDAxMDUwNTIzIDAwMDAwIG4gCjAwMDEwNTA1NDcg
MDAwMDAgbiAKMDAwMTA1MDcyOSAwMDAwMCBuIAowMDAxMDUwNzczIDAwMDAwIG4gCjAwMDEwNTA5
NTEgMDAwMDAgbiAKMDAwMTI1MTQ1NiAwMDAwMCBuIAowMDAxMDUwOTkzIDAwMDAwIG4gCjAwMDEx
MDMyMDYgMDAwMDAgbiAKMDAwMTEwMzIzMCAwMDAwMCBuIAowMDAxMTAzNDEyIDAwMDAwIG4gCjAw
MDExMDM0NTYgMDAwMDAgbiAKMDAwMTEwMzYzNCAwMDAwMCBuIAowMDAxMjUxNjA2IDAwMDAwIG4g
CjAwMDExMDM2NzYgMDAwMDAgbiAKMDAwMTE1NTkzMyAwMDAwMCBuIAowMDAxMTU1OTU3IDAwMDAw
IG4gCjAwMDExNTYxMzkgMDAwMDAgbiAKMDAwMTE1NjE4MyAwMDAwMCBuIAowMDAxMTU2MzYxIDAw
MDAwIG4gCjAwMDEyNTE3NTYgMDAwMDAgbiAKMDAwMTE1NjQwMyAwMDAwMCBuIAowMDAxMjA4MzY5
IDAwMDAwIG4gCjAwMDEyMDgzOTMgMDAwMDAgbiAKMDAwMTIwODU3NSAwMDAwMCBuIAowMDAxMjA4
NjE5IDAwMDAwIG4gCjAwMDEyMDg3OTcgMDAwMDAgbiAKMDAwMTI1NTE2MyAwMDAwMCBuIAowMDAx
MjU1MzA4IDAwMDAwIG4gCjAwMDEyNTU0NjAgMDAwMDAgbiAKMDAwMTI1NTYwNCAwMDAwMCBuIAow
MDAxMjU1NzUzIDAwMDAwIG4gCjAwMDEyNTU4ODggMDAwMDAgbiAKMDAwMTI1NDkxMiAwMDAwMCBu
IAowMDAxMjA4ODM5IDAwMDAwIG4gCjAwMDEyMTc0MTcgMDAwMDAgbiAKMDAwMTIxNzQ0MCAwMDAw
MCBuIAowMDAxMjE3NjUwIDAwMDAwIG4gCjAwMDEyMTgwMzIgMDAwMDAgbiAKMDAwMTIxODI4MCAw
MDAwMCBuIAowMDAxMjE5ODUyIDAwMDAwIG4gCjAwMDEyMTk4NzUgMDAwMDAgbiAKMDAwMTIyMDA2
OSAwMDAwMCBuIAowMDAxMjIwMzcwIDAwMDAwIG4gCjAwMDEyMjA1MzggMDAwMDAgbiAKMDAwMTI0
MjEyMiAwMDAwMCBuIAowMDAxMjQyMTQ2IDAwMDAwIG4gCjAwMDEyNDIzNDQgMDAwMDAgbiAKMDAw
MTI0Mjk4MiAwMDAwMCBuIAowMDAxMjQzNDY4IDAwMDAwIG4gCjAwMDEyNDY2MzkgMDAwMDAgbiAK
MDAwMTI0NjY2MiAwMDAwMCBuIAowMDAxMjQ2ODYxIDAwMDAwIG4gCjAwMDEyNDcxNTMgMDAwMDAg
biAKMDAwMTI0NzMyMiAwMDAwMCBuIAowMDAxMjQ3MzkwIDAwMDAwIG4gCjAwMDEyNTE5MjUgMDAw
MDAgbiAKMDAwMTI1MTk4NSAwMDAwMCBuIAowMDAxMjUyMTA5IDAwMDAwIG4gCjAwMDEyNTIyNDcg
MDAwMDAgbiAKMDAwMTI1MjM4NSAwMDAwMCBuIAowMDAxMjUyNTIzIDAwMDAwIG4gCjAwMDEyNTI2
NjEgMDAwMDAgbiAKMDAwMTI1Mjc5OSAwMDAwMCBuIAowMDAxMjUyOTM3IDAwMDAwIG4gCjAwMDEy
NTMwNzUgMDAwMDAgbiAKMDAwMTI1MzIxMyAwMDAwMCBuIAowMDAxMjUzMzU1IDAwMDAwIG4gCjAw
MDEyNTM0OTcgMDAwMDAgbiAKMDAwMTI1MzYzOSAwMDAwMCBuIAowMDAxMjUzNzgxIDAwMDAwIG4g
CjAwMDEyNTM5MjQgMDAwMDAgbiAKMDAwMTI1NDA2NyAwMDAwMCBuIAowMDAxMjU0MjEwIDAwMDAw
IG4gCjAwMDEyNTQzNTMgMDAwMDAgbiAKMDAwMTI1NDQ5NiAwMDAwMCBuIAowMDAxMjU0NjM5IDAw
MDAwIG4gCjAwMDEyNTQ3ODIgMDAwMDAgbiAKMDAwMTI1NjA0NiAwMDAwMCBuIAowMDAxMjU2MTUx
IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAyMTQvUm9vdCAyMTIgMCBSCi9JbmZvIDIxMyAwIFIK
L0lEIFsgPDM1NEU3NEQ2RURFMTBGNEI1RThFNEZGN0YxNEE1NDZDPgo8MzU0RTc0RDZFREUxMEY0
QjVFOEU0RkY3RjE0QTU0NkM+IF0KL0RvY0NoZWNrc3VtIC8yMEVERTdFOTU2Qzg5RERENjRCRkIw
QUFDN0Y4MjNENAo+PgpzdGFydHhyZWYKMTI1NjMzMQolJUVPRgo=
--047d7b3a8238a85c120506aeef66
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

--047d7b3a8238a85c120506aeef66--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 02:41:53 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 02:41: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 1Xk29t-0006qi-FI; Fri, 31 Oct 2014 02:41:49 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>) id 1Xk29p-0006qK-Uv
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 02:41:47 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	99/27-22777-8E6F2545; Fri, 31 Oct 2014 02:41:44 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1414723299!8608495!1
X-Originating-IP: [209.85.215.51]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8896 invoked from network); 31 Oct 2014 02:41:39 -0000
Received: from mail-la0-f51.google.com (HELO mail-la0-f51.google.com)
	(209.85.215.51)
	by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 02:41:39 -0000
Received: by mail-la0-f51.google.com with SMTP id q1so5477819lam.38
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 30 Oct 2014 19:41:38 -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=2J+/B9be8S5CCFmZyNIbYUYcO1ailADJ4q4+5KHnD24=;
	b=DR41avrWUjunQ6RUzHA1sydx6BB2eOQ7VuVwqeUMsWeBPRZgft1dA0V4aIqkfkb0eH
	EHcQikIVPdo7c9+mGLn1i/pGNVg4qgFhxiymo0N+VpVFD1Pqvu+vgOO8Dq3T69Yf9SC4
	gOyklXI149OBuL3xYCWBSoOzpjYQIjVcSFFLbVq7sIsUAdBrVVOggd4AtUGtKDxgnGM6
	/qj20ipKizuprdOEUOH1phV1d6rbmTw0gaijlKhlvbxFGlRkqmPI3ChPRhnyJKototE4
	4IM05Et92p1lhRv5YO/G2Cr79GLDdbsd5hlHLtjnvORnruK9k2wYIlve3NxVyKY17iB9
	CaAA==
MIME-Version: 1.0
X-Received: by 10.112.132.34 with SMTP id or2mr23098361lbb.75.1414723298392;
	Thu, 30 Oct 2014 19:41:38 -0700 (PDT)
Received: by 10.112.67.35 with HTTP; Thu, 30 Oct 2014 19:41:37 -0700 (PDT)
Date: Thu, 30 Oct 2014 22:41:37 -0400
X-Google-Sender-Auth: A1myDnOiSErBcvlpW3b5FNe4n84
Message-ID: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: mirageos-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary=047d7b3a8238a85c120506aeef66
Subject: [MirageOS-devel] Unikernel talk deck
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

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

Mirage-ites,

Attached is the deck I intend to use on a talk about Unikernels this
weekend at CPOSC.  I liberated a few slides from you folks.  If you
want me to replace them or include additional attribution, let me
know.  I will probably replace them eventually, but frankly I'd rather
not do that the day before the talk, if possible.

Please let me know if you see any issues or have any suggestions.

Thanks,

Russ

--047d7b3a8238a85c120506aeef66
Content-Type: application/pdf; 
	name="CPOSC2014-Next Generation Cloud-Rise of the Unikernel.pdf"
Content-Disposition: attachment; 
	filename="CPOSC2014-Next Generation Cloud-Rise of the Unikernel.pdf"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i1wxoo2h0

JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURl
Y29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9C
vRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9
/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WV
v3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salip
auuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0Zj
nKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiF
HKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16mluG8NI6PQJjGyVN3UC9JX
zC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16wNF3vwg71L1WzgMlR/Rc0
9UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbVa4T/GiLlWBpUM8625Ige
gEw0nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+Hoga/+8/7RBLK99OORK6+sqaugbp/PZiAC5L
w2UJ8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhGcimtRq7v78ZdYNKo/1b07oNhXtTRcl4fFk6Y
ZcT+Qlm+tdIcJzaYV3JpKEWmtsqmuJ6buh9VjbJG5qp/HoMJaHzVMFUSEp/5/GajKWcbV0fm+8cK
IIVmyIHSoiy0SSWomaoBIIQCmSXtQosm3Bh+Njy3AT6P8vr7qQHeL638OpVU/qrlO98J/YXOV4yF
/RqHUn0T9guSdGrG6kzyhzrst40LxdWfV9NXR+j39OcE2LdILk2OyPXtpukujmGqihYkKUQQXOUS
7wvkGk1d2C9V0hQnNuxXsqam/qMs7Vv2iOKWoqvRT4Igv5Jm4JWWZFPjH/SHsMxuzBfjG3sjn/V9
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
2JvW/qWfoPycgD73fEv5moH78aB1fOknKO/fUvbZbdPib8rXFJRF4qL1bO3XFNyfU9BHqu6z20r5
uOagLBo35fSlH1M+tm8pszXaJuemm+L8cjx0Rl9aKc4vvgq6Pmt1n5BWwpfK6CgPUuWbbu7uf5fw
/KqYcrko1wet+k0/d/8XZQ5x3UevB+V6UW4PWu2bfu7+v1L2AelBuV2UH1PuS6tdlNuDsg9x3YeZ
TV9CU74OoMdjyn1pXQfQYz2A+jYef8yrL61xPT6ejPG1aMfrf2JsfkjN2H5RfsyrL639orzflLG9
EGPJja/l+Dax/G63f9Pdrzf99X/kFobK8X5+vv3h332293/43+9/Efkhm1GTx9PnW7R2KypoDWkB
SpcFaWPkj9bb8zcK2azXOxqFHxSh68vzh7U4Nxf/8+2//wsGmEorVQPU5vejF3nE4sHOKPs9yu39
Yy4E9/uV/2Vi/MM//tv/sL//t//z/oe//vOA3N/U6TZ//9Nf3woW5ddu6q//5f0Pf54J9N//+l//
uKXf/vo/3v7xr28/3y8/0b/3wP8Pv2tXkYa60tM0af+Yff2nV2db3spWX3/b9pqmv32kP277dvz2
n//6779jWhWCib0OUhuE/vVv5Y/bn357Pf5v5n/abx/5j9s//Jbd/sftz/qXljb9Q0pxa8rzP2U2
dctrZW7XDe0ljdc/df5pzP/s8z8HxH7L26vntdv0r38TiT8tbPDwv/EjvzMyUkLM8JH6dWhw/mVs
aY5NTKY6r/5RN90DusfXf6/Lopc8q/aeu8zA8hqFhvui+ycNZcoAWvT/+m9+yez1z39+/VubPKQ/
5ina108vXn53kHOty/Jce/aY02/1j3SURN6dvP71NZ6POoWY/5gzo8qzrz/f9+Xy4qPw8Ou3ql9u
ridz6U+zgz//LmeuQdn/32SR/wWyqH/MXUymGF+eT+TfGdEk2Rhuyq+hXAz/5f2XC0TavEIcrBD/
F2uv/dYKZW5kc3RyZWFtCmVuZG9iagoKMyAwIG9iago1MTc0NwplbmRvYmoKCjQgMCBvYmoKPDwv
VHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNzkzNC9IZWlnaHQgNDcvQml0c1BlckNv
bXBvbmVudCA4L0xlbmd0aCAxMSAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9Db2xvclNwYWNlL0Rl
dmljZVJHQgovU01hc2sgMTIgMCBSCj4+CnN0cmVhbQp4nO3BMUvUARwAUNqaWnJoM7iGBoeWUzgc
WjT/NEi4nB4hNEgniBwEXjjoYB5NhwjncEKghw26eCCJQ6ihOQidEGiCpCANBoaLDXbVh/it772O
jo5bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhUKhpaXlNgAAAAAAAAAAAAAAAAAAAAAAAAAAAABA
QGdnZ2tr6x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICurq5UKnUXAAAAAAAAAAAAAAAAAAAAAAAA
AAAAACCgp6cnlUrdAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISJKkra3tPgAAAAAAAAAAAAAAAAAA
AAAAAAAAAABAQG9vb3t7+wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICBgYF0Ov0QAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACAgm81mMplHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuVyuu7s7DQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAQMDQ0lCRJBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIJ/PJ0nyGAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAgIJ/P9/X1PQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgUCrlc
7ikAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECxWOzv738GAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAw
NjY2ODiYBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGB8fHx4efg4AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAEDA1NTUyMvICAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgVCqNjo6+BAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAIKJVKxWJxFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoFwuT0xMvAIAAAAAAAAAAAAA
AAAAAAAAAAAAAAAACKhUKpOTk68BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALm5uamp6cnAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACqtVquVx+AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQsLi4ODMz8xYA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAIKBWq83OzpYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKWlpbm
5+crAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKysrCwsLVQAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
gNXV1Vqt9g4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKBery8vL78HAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAhYX1+v1+srAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm5uba2trqwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAdvb2xsbGx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2dna2trY+AgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAE7O/v7+7ufgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGg0Gnt7e58BAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAIODg4ajcYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAo6Ojw8PD
rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAScnJ8fHx98AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO
zs5OT0+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEnJ+f/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
iLm4uPgJAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBzeXn5CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg
5urq6vr6+jcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQMzNzc0fAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AICYZrP5FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoNls/gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
CPsPNol0lwplbmRzdHJlYW0KZW5kb2JqCgoxMSAwIG9iagoxNTE0CmVuZG9iagoKMTIgMCBvYmoK
PDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNzkzNC9IZWlnaHQgNDcvQml0c1Bl
ckNvbXBvbmVudCA4L0xlbmd0aCAxMyAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9Db2xvclNwYWNl
L0RldmljZUdyYXkKL0RlY29kZSBbIDEgMCBdCj4+CnN0cmVhbQp4nO3BTUsTAAAG4N/WyUMHBS/F
OojgQRHBw2iBdvCjwIMKM4RFKDRBUERBBT8KESaUEDWUiJJiIgtJQvKg4Mzf8cLzPH0PAAAAAAAA
ACDcTEcbAAAAAAAAAIQbePQQAAAAAAAAAMIVn7QDAAAAAAAAQLhSoRMAAAAAAAAAwpW6HwMAAAAA
AABAuKG+AgAAAAAAAACEG+3tAgAAAAAAAIBwI/09AAAAAAAAABBuvNgLAAAAAAAAAOEmS/0AAAAA
AAAAEG766SAAAAAAAAAAhJt6XgQAAAAAAACAcK9GnwEAAAAAAABAuMrYMAAAAAAAAACEq7wcAQAA
AAAAAIBwb6ZeAAAAAAAAAEC4t+UJAAAAAAAAAAi3MDMJAAAAAAAAAOEWKmUAAAAAAAAACLc0NwsA
AAAAAAAA4VbnXwMAAAAAAABAuLXqPAAAAAAAAACEW1+qAgAAAAAAAEC47ZVFAAAAAAAAAAi3u7oM
AAAAAAAAAOHeba4BAAAAAAAAQLj97Q0AAAAAAAAACFfb2QIAAAAAAACAcAd77wEAAAAAAAAg3OHB
PgAAAAAAAACE+/yhBgAAAAAAAADh6ocfAQAAAAAAACDc0ZdPAAAAAAAAABDu23EdAAAAAAAAAML9
+HoMAAAAAAAAAOFOvgMAAAAAAABAusavnwAAAAAAAAAQ7uy0AQAAAAAAAADhmr+bAAAAAAAAABDu
/OIPAAAAAAAAAIT7CwAAAAAAAADxLv8BAAAAAAAAQLqr6xsAAAAAAAAASHfbAgAAAAAAAIBwt607
AAAAAAAAAAjX+g8AAAAAAAAA8e4Ba1FcbQplbmRzdHJlYW0KZW5kb2JqCgoxMyAwIG9iago2MTQK
ZW5kb2JqCgo2IDAgb2JqCjw8L1R5cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDk3NDkg
L0hlaWdodCA1MSAvQml0c1BlckNvbXBvbmVudCA4IC9Db2xvclNwYWNlL0RldmljZUdyYXkvRmls
dGVyL0RDVERlY29kZS9MZW5ndGggMzQ4NSAvU01hc2sgMTQgMCBSID4+CnN0cmVhbQr/2P/gABBK
RklGAAEBAAABAAEAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhAN
DhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/CAAsIADMmFQEBEQD/xAAVAAEBAAAAAAAAAAAAAAAA
AAAACP/aAAgBAQAAAAGqQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/
xAAUEAEAAAAAAAAAAAAAAAAAAADQ/9oACAEBAAEFAgVX/8QAFBABAAAAAAAAAAAAAAAAAAAA0P/a
AAgBAQAGPwIFV//EABQQAQAAAAAAAAAAAAAAAAAAAND/2gAIAQEAAT8hBVf/2gAIAQEAAAAQ/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP/EABQQAQAAAAAAAAAAAAAAAAAAAND/2gAIAQEAAT8QBVf/
2QplbmRzdHJlYW0KZW5kb2JqCgoxNCAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFn
ZS9XaWR0aCA5NzQ5L0hlaWdodCA1MS9CaXRzUGVyQ29tcG9uZW50IDgvTGVuZ3RoIDE1IDAgUgov
RmlsdGVyL0ZsYXRlRGVjb2RlL0NvbG9yU3BhY2UvRGV2aWNlR3JheQovRGVjb2RlIFsgMSAwIF0K
Pj4Kc3RyZWFtCnic7cGBAAAAAMMgf+od4QJVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHAHWJ
CjMKZW5kc3RyZWFtCmVuZG9iagoKMTUgMCBvYmoKNTA1CmVuZG9iagoKNSAwIG9iago8PC9UeXBl
L1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxNTkzIC9IZWlnaHQgMzE0IC9CaXRzUGVyQ29t
cG9uZW50IDggL0NvbG9yU3BhY2UvRGV2aWNlR3JheS9GaWx0ZXIvRENURGVjb2RlL0xlbmd0aCA0
MTY3IC9TTWFzayAxNiAwIFIgPj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwADAgID
AgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgS
FBUU/8IACwgBOgY5AQERAP/EABcAAQEBAQAAAAAAAAAAAAAAAAABAgj/2gAIAQEAAAAB6bgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAN5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN5gAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAN5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANyAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAA3kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWQAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAANZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWQAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAANZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//8QAFxAB
AQEBAAAAAAAAAAAAAAAAEQCgwP/aAAgBAQABBQLncCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi
IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi
IiIiIiIiIiIiIiIiIiIiIjYV/8QAFBABAAAAAAAAAAAAAAAAAAAAwP/aAAgBAQAGPwJ6B//EABgQ
AQEBAQEAAAAAAAAAAAAAABEAkKCw/9oACAEBAAE/Id5zFkiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIiIiIiIiI6QiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIiIiIiPIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYT/9oACAEBAAAAEH//AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wB//wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8Af/8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AH//AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wB//wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP7/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD+
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/v8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP4AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP7/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD+/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/v8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP7/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD+AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP7/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAeEAEBAQEBAQEBAAMA
AAAAAAAAEQFxMXCQIVGAoP/aAAgBAQABPxDffpG+/SN9+kb79I3MqYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJjpvv0jffpG+/SN/r6OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/f8a336Rvv0jf
fpG+/wCx8/5eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACampqampqampqampqampqampqampqam
pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqam
pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqam
pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqam
pqampqan6QxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERM/Fnp06dO
nTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06d
OnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06
dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTp06dOnTr8
Wk1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N
TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N
TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N
TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N/en/2QplbmRzdHJlYW0KZW5kb2JqCgoxNiAw
IG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxNTkzL0hlaWdodCAzMTQv
Qml0c1BlckNvbXBvbmVudCA4L0xlbmd0aCAxNyAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9Db2xv
clNwYWNlL0RldmljZUdyYXkKL0RlY29kZSBbIDEgMCBdCj4+CnN0cmVhbQp4nO3X11IWCBaF0fd/
hOlphRYFlZyDIEgOCggIKEGUoCBKg91qx5pX+M8FdeZUrfUE392u3fQfAGhce1N2AQCltN/NLgCg
lEc/AUDAnbvZBQCU0tacXQBAKR13sgsAKOX+z/8FgMY1/ZJdAEApnYYDgIjOnwEgoKkpuwCAUlrv
ZRcAUEpnc3YBAKU8vAMAAc0t2QUAlNJlOACI6Gq6CwCNu9ecXQBAKa33swsAKKW7JbsAgFI6mgEg
oOVBdgEApXS3ZhcAUErvvV8AoHFtLdkFAJTS1pZdAEApfa3ZBQCU0nMPAAIetGYXAFBKd1t2AQCl
9D3ILgCglMf3WwCgcW0PswsAKKXfcAAQ0X8fAALa2rILACil+1F2AQClDHgcAER0PQCAgIePswsA
KGXQcAAQMdgGAAHtj7ILACiluyO7AIBShtuzCwAopf8hAAS0d2QXAFDKYGd2AQClDD9+BACN62rP
LgCglJ6u7AIAShnpzC4AoJShxwAQ0NGVXQBAKUPd2QUAlDLa0Q4Ajes1HABE9PRkFwBQypjhACBi
tAMAArq6swsAKGWoN7sAgFKedHcCQOMGuwAgoLc/uwCAUsYNBwAR490AENDXm10AQCnDA9kFAJQy
0ZddAEApoz0AENA3kF0AQCkTg9kFAJTytK8XABo32J9dAEApI0PZBQCUMjmYXQBAKeN9ABAwMJRd
AEApE8PZBQCUMjXQDwCNGzUcAESMDGcXAFDKlOEAIGJyEAAChkeyCwAo5elodgEApUwPZxcAUMrE
8BAANG50LLsAgFJmDAcAETPDABAwOppdAEApk0+yCwAoZWYsuwCAUqZGACBgbDy7AIBSZg0HABGz
owAQMP4kuwCAUiYnsgsAKGVuPLsAgFKmxwAgYHwiuwCAUmafZhcAUMr8+BMAaNyk4QAgYmoyuwCA
UhYMBwAR8xMAEDA5lV0AQCnzz7ILAChlcfIpADRuxnAAEPFsOrsAgFKWDAcAEYuTABAw9Sy7AIBS
5meyCwAoZXk6uwCAUuanACBgeja7AIBSVgwHABErzwAgYGYmuwCAUhbmsgsAKOX5bHYBAKUsTQNA
wOxcdgEApazMZxcAUMqLWQAIWJjLLgCglMWF7AIASlk1HABEPJ8DgID5xewCAEp5YTgAiFhbmAeA
xi0bDgAilpayCwAoZd1wABCxtgAAAYtL2QUAlLK6nF0AQCkvPQ4AIl4sAkDA8kp2AQClbBgOACI2
lgAgYGUluwCAUtaeZxcAUMrmyjIANG59BQACnq9mFwBQyqbhACBi6zkABKy9yC4AoJT1tewCAEp5
tZpdAEApmy8AIGB1LbsAgFK21rMLAChlexUAAjbWsgsAKOXly+wCAErZMRwARGyvAUDA+svsAgBK
ebWRXQBAKTseBwARW+sAELCxmV0AQCm7hgOAiN0NAAjY3MwuAKCUnVfZBQCU8mYruwCAUnY2ASBg
azu7AIBS9gwHABF7WwAQsP0quwCAUnZ3sgsAKGV/O7sAgFLevAKAgO2d7AIAStkzHABE7G8DQMDu
TnYBAKW83s0uAKCUA8MBQMT+DgAE7L7OLgCglH3DAUDE4etdAGjc3msACNizHABEHBkOACLevgGA
gL297AIASjnczy4AoJR3HgcAEW/3ACBg/yC7AIBS3hkOACLe7QNAwMFBdgEApbw9zC4AoJT3hgOA
iKMDAAg4fJtdAEAp7w0HABHHhwAQcPQ2uwCAUo6OsgsAKOXEcAAQcXwEABHvsgMAKOXkfXYBAKWc
vgOAgOPsAABqObYcAEScGQ4AIs7eA0DA8XF2AQClnJ1kFwBQygePA4CI02MACDixHABEfDQcAER8
PAGAgNPT7AIASvlwll0AQCnnHgcAER9OASDg7Cy7AIBSzl0OACIuPgBAwMfsAABqObccAER8MhwA
RFx8BICI8+wAAEr5ZDgAiLg8B4CAi+wAAGq5sBwARHw2HABEXF4AQMSn7AAASvlsOACI+GI4AIi4
/AQAAZeWA4CIK8MBQMTVJQBEfM4OAKCUL4YDgIirzwAQ8AUAQq6yAwAo5dpwABBxfQUAAHBbrn/N
LgCglBvDAUDE9a8AEGE5AIi4MRwARHw1HABE3FwDQMCN5QAg4qvhACDi6w0ARFgOACJ+MxwARPz2
FQAA4Na4HABE/G44AIj4HQAA4NZ8+5ZdAEAp3w0HABHfvwFAhOUAIOKH4QAg4sd3AACA2+JxABBi
OAAI+QEAAHBr/sgOAKCWPwAAAADg/8Of2QEA1PInAADArfkrOwCAWv4CgJC/AQAAbss/2QEA1PIP
AAAAAABARf8CAAAAAAAU9D8vbU9kCmVuZHN0cmVhbQplbmRvYmoKCjE3IDAgb2JqCjE3NDQKZW5k
b2JqCgo3IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1
IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1
ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRz
dHJlYW0KZW5kb2JqCgo4IDAgb2JqCjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgo5
IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3
LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0
aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRv
YmoKCjEwIDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKMTkgMCBvYmoKPDwv
TGVuZ3RoIDIwIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4
ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041XN7rz+Emv//Xvv17H63385Nc4y09/
tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8vvivvf0Yh6wt//X///d//8e//eP3X
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
ePwxrz61xvX4eDLG16Idr/+JsfkhNWP7Rfkxrz619ovyflPG9kKMJTe+luPbxPK73f5dd7/e9Nf/
kVsYKsf7+f3tT//pe3v/5//5/i8iP2QzavJ4+v4Wrd2KClpDWoDSZUHaGPmj9fb8jUI26/WORuEb
Rej68vxhLc7Nxb++/Z//jgGm0krVALX5/ehFHrF4sDPKfo9ye/+YC8H9fuV/nxj/9Nf/+J9zfv8/
/u/3P/3t316fExH8u7rd5h2//u2tYFN+7af+9l/f//TbTKH//rf//uct/fK3/+vtr397+/F+eYr+
0QP/fzheuyJiM1c6mjbtb7Or/+3PeeT9l4/059TSmH+337b2+v9fdf2X13VJPemOfGwt/1Mq22+/
fOQ/by1tr9//kv6qO1v65/zr/P2Xj/LneYJNCWq//O9/+1++GrvqjZKEUSyV96kU/SNpjWKH5WsQ
Lzg0hL/88uK//vJR//zq9XU5Xv/Z/jrbW1Mj/aqG7svm/tf5BZjX+TUO/m3bXzfkf+Y/85e/zsvf
IJTnjyKRN3VVXpdli398USxQ+WN25lNTnvnP6bfUntS23y42X3dWEX/9p/8ZBtMuwp9vTa8P+h9K
ucgC/o9IuciW/JRyyb/UYKS/uPhtFWlaWdyaOGeoUwIv/jR47paY9Iw455ff/M89/TW93iOJpPE8
0JRX7/nXu6OkjrbKu4uYg+6N6C/teL3hv4TsfrvoLlLP28/kp7DEf0h+Sib26S39p1/EaTB5vzrI
7zXEGN8y7Dp556ERt8K7XxMPRBLoyECvDBReOP06Z7Tu+Qt30dvvjlhVEb4aQCm8zn+5Oiz1l7oO
SSvFQjfx1Xlfab7W47lI/z/u9H/9j6/P4cf0WPj+rs2mrv/1/T//wFiTw/KPjGld+h0wmgPyfhzM
ln/JXgv8Pvi9+pW1IkT1xWhWon8wGkVq/O5oZkDI8TVny+zJVTxppWnLksI78usfv7XyNvuH3lqV
ivsH39pSeRH1T1rk5qzmjdP7HMvAfJ9ZrjwQvZgmzWwuXXfNLucHKF/v+B+tqJoi3O6Xsow/FEyW
3/o/Ipg8+ue5sP+SN7/07YeVexkT/3K/UfOLyr2/fvr5L6+5mu9v1W/+4phYu8X76yep/X9ZN9Lx
+ytAy6oY+8OYc/nFa0ve7ylf+IReH9MKksXrz68L/Kluv7Hgf+7+mlpX138wsZJOL787s0BMFVQ+
TSx/Qq4X8d+9xq5fmb+8xsAnePnsvQa8fB1/u76SWll+vdbktdvfvhr/wvsfCGB+j/LvC4CXPP2j
3/ycvvjmH3OIw0NMHtc1eL+qLcD3zvGWSvzA13fZif3GYqKXIc8dZ786Kv/EG5Tul3XZMcyXf1kH
27pa/w40r2f+chNgC1C13t8jeL3A95QyTbHbNz+gX15v9x+tLElZhv4Roc8qT5/n2euJuu5m1u2V
Bv3bvW/SnPSY7onGJLy3ar+3BWCdWQHL6Zf8aYeV9e5fK13O/PwSoImWa/XRx4FFvyNPvTOx4fWK
du35NM66vA+vBUJLXPnLH4tZCa3+ITGrvOoXy8FzF8trrv3/Xy8J6Quom1kG+N54FUfofVmZ98eH
7g92yfm39bvw2/KO6iASx49tfOYEBuCCxSXVC5PHS/3rtS3mU6J3Yf34wMsl6395//kJuMYJuHAC
/n8BP71M+AplbmRzdHJlYW0KZW5kb2JqCgoyMCAwIG9iago1MjQ2MgplbmRvYmoKCjIxIDAgb2Jq
Cjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41
IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGgg
OAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2Jq
CgoyMiAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMjMgMCBvYmoKPDwv
VHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91
cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRl
ci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMjQgMCBv
YmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgoyNiAwIG9iago8PC9MZW5ndGggMjcg
MCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ
+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
+Zc9vY5GMRC9Z9v9Av4ZXohfSpSv4rdcYx1cpM9fXjKA67/+nmLcEtzrTa+/mYFLTPNruzBriZsC
9OJFXBC2IIHCkGW/qRLwd2Ktmq08sIj277yyM2tS+3e+skrO/lVmecxXNjN23rr5YjyAitevLW/f
8dsloDoXiv6bh9XSXz2AF7yL5K9vQNUie1wSLX+JNeR67f8aS1a64ND77XdzLnCBav1tvkIXNb/d
E/2U9F7GG8lUYGtQows9pLt6jDcGSSceiudUXbi7Hy3rxNz/odc3T7eyn17fsoBgKBihPw5T3ofl
DETHJXVL9nqBmF+PV/O7xeebqShJz1fWY0+xMixvwOs1/ss6vXW7OoFHd5Xj09G+LBF6qa6Fb7nt
9bscH4C7s2fXk8GqJb8mwRxv0i+ELh/Bn4TOO7yuqn/EHC43ovnPib9mY5J/1L9rNqYxbehfuZnD
2jWsfs2y74R0rzXLigOA+Q8t7ctD92srHNeVkevU7puZTZrF/NZbFb+PgBPfCM3K137uem1Y5v2J
8Ou6fKRiMbg/U6yNrB9t/nrEHPh74m7bv1PYqt/zVdil3Gs/7Jd73fJ7vEhmrlrVqCxj/vrd0xrz
l2UqpVWM17v8x/IB0ezpsZbpc/jX9Tt1TdYaWIf4/56QVNfj3ycmBc3+tKnhG7+NZYrEKF5HwPuV
XWbiz+v49Tv9u67ZsZKF9K+1pa0f3mWs//L+S71BSdYblA29wf8HFEiN7QplbmRzdHJlYW0KZW5k
b2JqCgoyNyAwIG9iago1MjU2NQplbmRvYmoKCjI4IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3Vi
dHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3Bh
cmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2Rl
Cj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2JqCgoyOSAwIG9iago8PC9DQSAwLjkx
CiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMzAgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBl
L0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NT
L0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJl
YW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMzEgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAw
LjUKPj4KZW5kb2JqCgozMyAwIG9iago8PC9MZW5ndGggMzQgMCBSL0ZpbHRlci9GbGF0ZURlY29k
ZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJP
iqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/
Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nm
t2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuh
v5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0ZjnKCd
n39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiFHKgs
SkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16mluG8NI6PQJjGyVN3UC9JXzC8I
dcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16wNF3vwg71L1WzgMlR/Rc09UOL
9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbVa4T/GiLlWBpUM8625IgegEw0
nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+Hoga/+8/7RBLK99OORK6+sqaugbp/PZiAC5Lw2UJ
8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhGcimtRq7v78ZdYNKo/1b07oNhXtTRcl4fFk6YZcT+
Qlm+tdIcJzaYV3JpKEWmtsqmuJ6buh9VjbJG5qp/HoMJaHzVMFUSEp/5/GajKWcbV0fm+8cKIIVm
yIHSoiy0SSWomaoBIIQCmSXtQosm3Bh+Njy3AT6P8vr7qQHeL638OpVU/qrlO98J/YXOV4yF/RqH
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
uig/JtyXVroopwdlnyG6T4EPyvmi/JhwX1r5opy/p8x57UG5XJQfM+5Lq1yUy5MyZ4iLshY7U64X
5ceU+9KqF+X6LWUfCh+Urwm4P3a8X1rXBNyfE9Cnk+6z26Z11JT7RXk8aI0v/QTl/j1lzm4PytcE
lCn2prV/6ScoPyegzz3fUr5m4H48aB1f+gnK+7eUfXbbtPib8jUFZZG4aD1b+zUF9+cU9JGq++y2
Uj6uOSiLxk05fenHlI/tW8psjbbJuemmOL8cD53Rl1aK84uvgq7PWt0npJXwpTI6yoNU+aabu/s/
JDy/KqZcLsr1Qat+08/d/0WZQ1z30etBuV6U24NW+6afu/+vlH1AelBuF+XHlPvSahfl9qDsQ1z3
YWbTl9CUrwPo8ZhyX1rXAfRYD6C+jccf8+pLa1yPjydjfC3a8fpPjM0PqRnbL8qPefWltV+U95sy
thdiLLnxtRzfJpY/7Pbvuvv1pr/+R25hqBzv5+fbn/7LZ3v/l//5/m8iP2QzavJ4+nyL1m5FBa0h
LUDpsiBtjPzRenv+jUI26/WORuEHRej68vxhLc7NxX9/+3/+AwNMpZWqAWrz+9GLPGLxYGeU/R7l
9v4xF4L7/cr/MTH+6V//l/+t9Pf/+/97/9Pf/r1YbH9Xt9u84/e/vRVsyq/91N/+z/c//XWm0H//
2//15y399rf/9+1f//b28/3yFP1HD/wzHK9dJRIW5EpP06j9Y/b1v/95+8/b79tffvtIf97a9i/b
X7Z/1fVft5a27S8p8bfXobRsf/3tI//5tXC2lHx/Sq/lSH8faf/t//jb//rdMFVatL6+k+p6lpn7
8Y/lMhTgqPRf5rZk8/pbabOvPDkQL/qZ64uXv26/z+vJ7+vfln7Pm+7Jaeg3f/3tfqAkbuKXLRpB
YXu9UHq2QWHe9K+67P5V0b97+v2PBq3dU1F4nIetKK057PwHw379/RjzazSn6nvCUe21Iv/t9Qr/
dWaY1vMvKVT4fOEwfqsvnn77KC9eGMRv6c95f/02xPBqv1AsL0YnSvV1nX8r/j14NjUSD+Xf5xCL
8Z2/LyldtNufy6bf6cHXAfr1TK6W+j8UhGoa/FOCKFMB+bMoXgx9iKNLEJ2hpyyG018mw80j/esU
z+/z3pyq7k787vgtMcCXeF6/3v7yotumhHlruPUerSQzXhJ4TY/XaxZv3UvK+kccpfwSY9wrCQou
SVgEs1kXB3NaIdV/KMgs4/s/I8is4mJfBZn/M6+1RiCG5psC79ev5pi4GPkfv/gzi0r759jUqvGV
zZp5jQ3D7zeTL9RfWH2I7w4E4IlU//JbvM+/X2gJuLmYvCbEa2bMgZVfSF8fzn9qWKr08tNrvG+s
UfMF2cbF/nxzb9brNt+amuao7jvy7/eclkxejxixayj/9v7rT9sen7bBp+3/B0C0j74KZW5kc3Ry
ZWFtCmVuZG9iagoKMzQgMCBvYmoKNTE5NjYKZW5kb2JqCgozNSAwIG9iago8PC9UeXBlL1hPYmpl
Y3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8L1Mv
VHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0
ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMzYgMCBvYmoKPDwv
Q0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjM3IDAgb2JqCjw8L1R5cGUvWE9iamVjdAov
U3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFy
ZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjM4IDAgb2JqCjw8L0NBIDAuNQog
ICAvY2EgMC41Cj4+CmVuZG9iagoKNDAgMCBvYmoKPDwvTGVuZ3RoIDQxIDAgUi9GaWx0ZXIvRmxh
dGVEZWNvZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9g
ZKG/Qr0ST4qk041XN7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//Pv
WH94/f5bPxr6/p8vvivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6Tz
nD/1lb955rdkUmmk73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/
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
rd2KClpDWoDSZUHaGPmj9fb8jUI26/WORuEHRej68vxhLc7Nxf94++//jgGm0krVALX5/ehFHrF4
sDPKfo9ye/+YC8H9fuV/nxj/6V/+t//jtfb8t//3/Z/+9m81Q/Dv6nabd/zlb28Fm/JrP/W3/+v9
n/46U+i//+3//tOW/vy3/+ftX/729vP98hT9owf+/3C8dkV96FzpaNq0f8yu/suftv+4/WX77c8f
6U9b2/55+63U19+6/fXPH/lPaaTf/pyOP6Xf0rG18jpM5m3emf5F9/+W8tZqed2fUtO/p+2vqejq
tbpC9XWa/cuf/8+//e/fjV+OjFUJusTWLFbwkuAfiUwe5SQG8EgU4zpHUtOfP8qfZv/l4lDXf/nz
R32NLu2ztf2W/6J/7X9+MdfmZUnzhrLxcxKZ7a+vYfF4gUCqUyRz0H84HBwr/qHhFIUtfh3OVuHK
A+oCZDItFj7aHNFvDCC17a8eVdZtdY7tGsf8p7wzytdD3eP4q9q/LY+pp1yXx3MVkTblWd1zDtK/
XXJ83QAjv72kBiPNYv/rH0tLsaz/mLSUaO6rtPJvC0t/0Ytn2CfDZeMXMH7xpmFcElmG8xri/vj7
Ei1j2/wU960vkV4Mz4xiof/mR2DiLwZxIfA6gV9SXSAwKwap/Z7wJImslfKrJOjS/JXJlrr4IxTI
efIPoZCVMO8fQyHtvFlMp395Cv+Siv/+sfA9HSY5RngL3n2pd7+LxRPmxhQ+LX5TGFB4yWy/X+wY
yh+Kbyv/mPCS3E1+Au4/LsIr9+vV413VPPuNmRqz6zHav/o3ROUlnDdBopziimXu3zEuCgT+YyOr
+3crc1ZvzBNWlL+sb328BWnAXY4pGOtcS4a1apZ5pferlb/QigXofgnXRehf33/9lW/xla985f8/
FQfKcAplbmRzdHJlYW0KZW5kb2JqCgo0MSAwIG9iago1MTk3MAplbmRvYmoKCjQyIDAgb2JqCjw8
L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0K
L0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAov
RmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2JqCgo0
MyAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKNDQgMCBvYmoKPDwvVHlw
ZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8
L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKNDUgMCBvYmoK
PDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgo0NyAwIG9iago8PC9MZW5ndGggNDggMCBS
L0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKo
bKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X
//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw
/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmt
n55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsy
I9o7jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZV
CQ052/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16ml
uG8NI6PQJjGyVN3UC9JXzC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16w
NF3vwg71L1WzgMlR/Rc09UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbV
a4T/GiLlWBpUM8625IgegEw0nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+Hoga/+8/7RBLK99O
ORK6+sqaugbp/PZiAC5Lw2UJ8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhGcimtRq7v78ZdYNKo
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
qVNCf73/IHm9hCzxL3RrlbT/Nh9o7v2vCH9rIT7/FhLzTbsQzBeh1y9el/2PZaiiKf9BGSr36E8y
zIKweWi/XbLc/pbqIt7+GhRCqvPNe/3mJeuJ+ZSlRm0aLf31kg0P/nYLL+9/YR7VPwe17W8vRH5n
rEnO4jPircRgp3PHH82mWYG7K3/EPdasGfhf/5x/m12X+aoPgcVUbxY9QxCG8duXcNpcCwocpz7f
nu4/jjn8LgDrXBb0y9/UQfOT81fbvtGb//VTulv9pd+iv8wcuiDhNUvRhR5kJl+/+aO3ZGb1+Y/O
tDyutWt9S2p0muPNH8gn4Pw1jFkZOP5DMGYVhPsK44uZEICX7BFia3qhXn+eOKVrlbLMaBWJumYJ
81/07zafzMULW7qesMQB7reLWgKsTX/sBhEe9t+HxFK438x/WgqK8fxeCn8zS31O0DnuKqba8h79
q37z4joD1PLiJQ8pL69UESV/TFY5T0GYpGbRIufru3KJrN2fJ0lFE+h183jJmc+PRNj+WFhp1P+Y
qJIi+n6a9+MSFcj9NsVxo+Z1IC2iA+LtX75KM76Grz/3bRK+vtBzx3ALxy9m8ffY87vkm9692+h+
NtYL8ZHnl2Ur/u2EY/fq9JtFrAHUeq9WFvbfFjCTX2cIXL+Mt+Y3I6jl6PeQQLBKW/5VsF9fkV9P
xfLz6pd4/tsFkcH9dZ1/+lVqLJU/r5r1Ruvi4PXjF8ulXzcVe/+PvXAqgfGTXLSgvL4CIF35CJrd
uqwzy/fGg/QwFikxkgHe//xrFK84feoVrWmhy0qx/TVeiuveBzvr987byeV7980q8XuvwCX4v7//
+oCRfcBoiQPG/wd+2b4uCmVuZHN0cmVhbQplbmRvYmoKCjQ4IDAgb2JqCjUyMzEyCmVuZG9iagoK
NDkgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzky
LjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4K
L0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVh
bQplbmRvYmoKCjUwIDAgb2JqCjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgo1MSAw
IG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMzk3IDggMzk3IDU4Ny4x
IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGgg
OAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2Jq
Cgo1MiAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+PgplbmRvYmoKCjU0IDAgb2JqCjw8L0xl
bmd0aCA1NSAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicdL1Ljis9k7Q5P6vQuAAl
gnfGMnrUCxD6MqhsoGryb/8X7TGPYGShv0K9Ek+KpNONVze68/hJr//1779ex+t9/OTXOMtPf7Wz
fb//9//17//8j9f/9y+91v/99//z71h/eP3+Wz8a+v6fL74r739GIesLf/1///3f//Hv/3j9112u
s/f/3yz3L1d2CXD81PNI5+vv51ek85w/9ZW/eea3ZFJppO9/z1G+5fbx/c+ZxvfP7zJ/ztfnNXv+
/vmdalNd7fXOOa2fnmOJlef68+dfP9JqWKlq66G/lW/J/VXOruKU+Lzy7F8dOpnOHHlO/XMUtxrp
it59rpKXAO+UqzIj2juN8yuQhH7no35/RmOcoJ2ff07W1NUSZWr5+LkK7LlLNqoaJX//uySYx6pI
ks2x/uHzb0l8llUJDTnb+VPcRr5/3HxS6IUcqCxKQptUgZKpGPWHSOCCtOBFM3YkPw9c3Y0W6jWl
199P9YJxaefXqaW4bw0jo9AmMbJU3dQL0lfMLwh1yXmWBc7xFXA1aSVmkhyrtU2ISgnr67e18+4D
K0EfyJH8avSHXrA0Xe/CDvUvVbOAyVH9FzT1Q4v2BXQuham6L9Juir7uPUCKy/HzpdEcRS1lZ+Of
BUN+rWoXOJZq9tVrhP8aIuVYGlQzzrbkiB6ATDSeFDohB+qKspYeqQL1UjGKD5FABGlBimbsGH4e
iBr/7z/tEEsr3045Err6ypq6Bun89mIALkvDZQnybSS6/0rcF/ALk2SABdaSdLWyAGPaIU6GuEZy
Ka1Gru/vxl1g0qj/VvTug2Fe1NFyXh8WTphlxP5CWb610hwnNphXcmkoRaa2yqa4npu6H1WNskbm
qn8egwlofNUwVRISn/n8ZqMpZxtXR+b7xwoghWbIgdKiLLRJJaiZqgEghAKZJe1CiybcGH42PLcB
Po/y+vupAd4vrfw6lVT+quU73wn9hc5XjIX9GodSfRP2C5J0asbqTPKHOuy3jQvF1Z9X01dH6Pf0
5wTYt0guTY7I9e2m6S6OYaqKFiQpRBBc5RLvC+QaTV3YL1XSFCc27Feypqb+oyztW/aI4paiq9FP
giC/kmbglZZkU+Mf9IewzG7MF+MbeyOf9X3phF+irCgDPVI4CqbKpfgQBTSQEpQQf8fv80DzGtzt
avqvU0sr36zjkK5Wv0yNIShQlgwa4FkDXKt1Tpo5T82L+bsuMocfAHZ4JV+Y93uOcwKYeySXys7I
dTIXu8AcFb27MiDCFxV2DIj3RWwVLsG/UK6m0CAnNphXculpRqalwBYFfnUrkFdVg2n6i0Kn833R
1joBxF9t5SU7DTnbUkOAzOxL80mhF3KgsigLbVIJaqZiAEAgcEFS8KIJO5KfB67XMG/fzVt//f3U
MK+XZn6dSmN1u7OfKHOt45V5efWBxnio2m2cmsoXNKvvatgsyJL7gNbx7zbz0AJQ+j39OUEPGJFM
Z2FpOJam511YZphrBe89qhdcyYIJyITAQji7IU480M9S3YhMS6c5iuu5Mmd00P9m1RDXqFpSzd49
wRdN18Pr+Bet1rZ1vHkdX40nhU7IgbqiLDRJJaiYqlF9iAQmSAtWNGNH8fPA9Brs9VLBr1NLO1lF
5peWmVWX5mPtGpcU2i9pW3Fqes9paMPWGJvT23bNCqWsqXq1FnQ3oA0zXUAg1/j9OZk3KEqDmkre
XZVQ/RcZOpP32Gk0ZihN4etPNMaJDeqVXDpqkamleRe49KqZQ5WN7xT8HTkLgS8Olm0BlA32Ws2H
m3K2BUlADTw0nhRaWb9HXVEOmqQCVEy1KD8EAhVkBS0aseP4eaC6DfU25+vvp4Z6uXTz69RS27dV
nQlpjfpUmJA1d83v7rMDQlUfKIJHTRJsI6b7hefUmu7hfE+ETqw+cP0lcSAlz8mQdWHqHKuSLyhR
9Tulk+7DHjsNjYpT6/25xgQNceLCn2RlESPT0umIAnsunAI76H+3oGufrqOepJrqGKD/xShrFZ1r
oNcbeyPPvy5d8DuU5BKsPYpGrVSIwi3IP5BARhBC+B27zyO14X4C9/0h0POlkF+nks4Dp2Zc7a++
Mnx1yx5yyaZd1LGG/TwZ9l0bucqUPDQlN+n2C+EqZrVf3WYJe8HODuWrL9b/lVyKPCPXOfcCy13V
u3NIkxDC6hZQOGYEF8DJDXLiAX6S/nJkWoqtUWDXue3jykZemBSNzXWel2yz12umXyt900rPel62
lb54pWcPoNO2tEMOFBdloVMqQdlUvUAIkcAGacGMZuxofh7YXvN8vlTw69TSTleR0tqqiaMU8Mw2
GOPH0sI8GX5NfaMyMLvGwGpSB7qktq4y+j0LOgHgOZLpxNyiXOfJtEGBlelEu7DOkU1CfPHRGLWA
X+wK09MSU8OSJjmxAT49YFJkamwZKHBpV0dBVba0/u0eGpRFU6tGa/Vsrz6QF2Q052z55x7zsjBZ
CaTQDjlQXJSFTqkEZVM1MIRQ4IO84EZDdkQ/D3zvkZ/KWMaG56cGf3qY6pJMdavTnL2j0m+vTjoJ
lUZf+CqrnBr6k8W4qdsIxDw0BNUTtOJ3r/grIaVePYF5damuRnLp9MpFX4oCKycJjdSuBQAhBFyy
cG9E7/zBFqesLfzDkOFkTZVTXNZQGndxPWef4YsG/oJE0/Kh/fypE1jxvF+1ilc35Wy3OZLvHyuA
FJpZv0dlUQ7apIKlZCpF9SEOmCApWNGEHcXPA9Nr0B8PW9xhzSyz49Kv7CerLm2tvbnT8XppuQpq
ba+rNnfMw6Nds7yG7zpUrJZm4Ew71MlQt0gutfXIdZ4cC1wgBwb9vYOehPhiQwE1tnirp0t0AZrc
JCceYCdpakamxgaSApd2ObKvypbevz/QVls7n9OW02mw1xAuLPI6sh9Xp+b7x0oghXbIgeKiLHRK
JSibqoEhhAIf5AU3GrIj+nnguw360evr76cG/bH3hdeaCJNqykud3zYnmUMLO83ZMHbIHv6VWuCo
MWsdGFX78nZOVu3KWr9wvqdDJ+gD198S2wXypANrfJTHeK9CpUTtX8Q4JNQ4zi/bymBJkAWVtjix
dYHuwTIi01JpjQK/2nYH+J6qZRNvGu3pEmyhFtP+WrVlFJpY4G/DJN/VA/wdvfB7VBYlLU1SAwqm
XlSPPCCCoAsn5L/R+2xI3qh/J0md3x+fC/V57uY6pZLs/mevaPFb/cEumsl5CVbR/ZoDsLek8gP6
mu6Lp/vJaK5a+Bs78Z2X6cHLDDb/8DKNmWPlWmrud4nwNKrr3WXCQQoBVi4Jv2AezF9a7JvmNVkI
SGw9oHnstMi0FJuiwJ6TyZlV2cLiuwrItCYzgYRbZlWmfC27OXnp/2JSN36mBj8jc4BS6IccqC7K
QqvUgrqpGyBCKhBCYJCjJTumnwfCMfHPuZvwlFoKWnxDQXGn6tJxGxKmsSqWoeGOLTWxrsrImjXE
AF3ZFkirtcJ5J2J6EDGDDgER08Bv5Vp6Pe8SMQOrroVDDim+GGk+sITCLyP7AtYt0tcdcCmpxs9b
klAU1UX6fVzNyGsVkl1VQCMW9lTgLgIvuSlnnfcar+8fK4AUmiEHSouy0Ce1oGjqBoKQCmwQGMxo
yY7m54HtNvxbPV9/PzX8594PXux+V03f9stkfExmY5iaVpl2h4b+hUxRgzTxZ+/52X+VrOW/Mb3v
XE0PruZKJMxD5EmHOKEob0Q9734w7D1Pe64wVSNya9BHtAOjPU5svaB6sOTI1GCkKLDnwxu9Q8N+
/dua+A+LtXDL7gPLLHeIkl04bzxNDZ5GSCqFVvg9CouS0OWqARVTJ8oPaUAFQRdWyH8j+NnQvAb6
eMzuwypZx7qMqqpqWbuzDCHTCpur1YgBWZqTrNtmZ0by7M74LcvQtlq5sGs7JdOCkvFeHEqGGUG5
ljb7XaJXEs3rnQ1c8ejUBG0Jv4gttcC2Y2ChTU5sMBcPkhSZGusEBXYB8XFlI69d3BANdWoWShqO
5zW7L0unLH1q0BfSG2oD3fQdzfBblBaloE/KR9HUCgQhD9ggKpjRhh3NzwPbbaCfNb3+fmqg98eU
3621daRLaPO7YJk3z97hMX/q3DWm917MXlA4I3nKZ/kWx7TUICPBztq0YG0mBhlYmx550pHv0mbU
8m6c3IshwwCUvceDLmcPID6F1jix9YEsa3eNLM0ErYpbGtfMoaqGLmR8dSEbzhJq2VmY7NcebIqQ
Fb1VN76mBl8jg5tSaIQcKCtKQo/UgIKpFdWHPGCCqGC1WrBj+Hkgeg33tpMySi21nCpwrWjfetgq
J2/lMrOpjnuzYViRhfv0/Ht4I8+BvBxe1QXjTsu0oGVY/hu0DOc+5frqcy9xYi+Seb5hkC3waknd
zhJ+UdOQzCCb3R4nHjAvWzddoEPAbsV18ZwfVzXymhi0fZWtHtEWRMzqOqjpyE9zzrrRMzXoGa3/
SqEdcqC4KAudUgvKpm5gCKlAB4FBjZbseH4e6N4D/rtlWvz781MDvu3MjVLLmLmOdIc0+kNvQNfd
vSGDwxrwWG3ZcZ5r4u/nNfFrvThF0rICt7H1BPeDRmLps8Xvl6rHXRa2Io4XmhVc+xc2qHvvv5Po
LriadCaZ8pjWldj6QZIpTzfdyNTM4qjAnliTqOyLxUvHV12OQrRlaWvuBdxEqm7MWTfmpgZzo3Va
KfRCjqWwKAlNUgcqXvWi+pAHTBAVrGjDjuLngenWA76bhdffT/WAuvM2SmHOXtfDpM1vZd6hJ/M2
PlRJ4omh9ZDRW7YE4eYpX4guBSyUd9amBWtjYyy8DfROXot+ucs57xq+kETNAitdUgnI/Apjvc4L
g72bEhv6K7k01yLTUmmJAnvy5b22Wq/ma3QOCbXMLZ7sfUNmuBFnvW2UfBfy/r50wa9RUpSD/lbp
qNU1SuEhCUggJAgh/Y7d54HkNdWXn33rXqyUoiKlrKG61khl/7ikSKh4De/C0JuWW6BMb94NltbL
Qwe/sjHUTgDxlUznleerTc3uLg8uSDW9NSYswxcVrux5t53MprKm60gw+J0SD5iTFFUj01eDUdxS
rc6DjYXj2901/GQHkmCzBTXLPYnTDVlw5g1mVnWZUivcTP+JHKgsSkKb1IGaVa/UH/KAyxIUtJB/
x/HzQPUe4DWldSf0+akBXnbSRqmlsbj9N9YsU61hKBssIkU7zwlIB6vWsfAanuA9YWsZPTDHtZ2w
aUHYYN5rEDZeFlaupehxl5iw4qmqd+tYElirk87rFvCLpmaehbnYD5rjxN0BlFwKzJGl2Yqn4nry
3T1VNbLWC+5MN+3sioZpULRM25pa1aCzbpRNDcqmXqnmpQGG47hKQqPUgaqpGhBCKLBBXjCjITua
nwe215DPOyuj1NJP9y1ADDgH2+TDcCc0rQG/EOA2GyRKD0KWTUDuWs+xwLedlWnBypyRSN4PKk86
YHlcXmKl4CzRuPdcOEokbnwcAXV+2UajaZbGOLGBPWWjw4LboWPpFSquJ1/VU1Vfjb8kwBCLnkyX
VrHkyfs0zaZzAb2xMjVYGWm0wsroCMZhUUqLkpY2qQElr2pRfYgDJs0Guez+ml47ip8HptuAb4es
NI9PDfi0EzZKcTth1SZlNomxoD7Z01XupxWxGJP7UGw+J4tv797hd+EpBTRwTnsPwFojIpZk8rEv
d6m53mVBGVHNu7ENL3A2h26BWbgvnLr2yXo9pxujrzv+S3Xx42arjQrq2mx9XMnQ3RxVPkTJINbC
zNO9pu+idV1XoepG09SgaYRYhabp/j3KipLQI3WgYKpG9SEUmDRbaRKd+LVj+Hkgeg3zfU5nRj91
D1Ca+krqLfTJlq2eaLcI3oTev1KYh+1BvbLPy03Ua+WQtnMxLbgYX5qAi8HGo1zpgG51icmXoDV5
NHZZBVbm0HnOAn5x07VPpnuboDAmP+wZTlYMvWRqOreruK9WDfQ6Mh8vVf+FwGKts3TM5qfuRNCQ
BWTaIE6GuDrVbNcJhUU56HKVvxS8KkTtiAEaTWfyZJFv3D7b9//8dw3q85BF5vGpQX08bHSHFNR0
8+/bp6sq1s1ljuwVwqPIajMNgqzXsvwKn2TENaSrV3GhurMvLdgXDP0N9gVjnXIlDndRYnL3kiWo
MVIlxhcimODwjRGZNZaYNjS1+LqhjVmD3Z4yNB/bVFhPvrOnioYuryYwgSNomtiDgY2LEcXNOcvG
vZTgXrQ/5r6htEMOFBdloVNqQdlUDgwhFug0H9IOd9z4fg/vO3VP78so9/r7uXrCOHcbnVLr8mFW
bUuhWuCTVS1apsKEFF3tnykASmrUmoTFEdEbtMiLQ2DBLm2nZVrQMtzWadAyWHOUK2HZixKT1xJ1
kcakXHDkOCRUDh8ZkVreyc9okr7uvUEKbPHz5t29iurJ9/dUzReOV2ICzpdYHKzpCVVseXNTzrLR
MmVei3xyCs2QA6VFWeiTWlD0qhoAQiSQQVoQoxk7lp8HsjHNj7nb6pRamim6Byp9LTPRYU0mg62h
L3JzepvF5gSN9yBeMcroitC3rcCZdqhjNR+RTCZrlSdhFYjyUomK3o0hWvDaOOyBFfSLBPMmDoMT
68LDiuFk5TYZmZr38iqwJ9/YU2VD56dUBES2aOuQ1Qw39Ph0c86ycTAlOJjq72iG36O0KAl9UgeK
pmIgCJHABmnBjGbsaH4e2G7Dvk9R749PDfu5W+qU4s7xqb02GzwuS2d7zVR4kaIL/9OnK20/zcf3
YGM5vcsLpflsUHeSpgZJc97JxAVLciUu70SJGFeo7N3YlBfcO7jCm8NzRtRWbOgwPmGJe9g2nKyw
e2RqiRs7KrAnX+dTZV9QXglfIS1XEm5yxeYfcn/RdXO+mN89Qf1AtvCybHXaVH1/icJcgnVJ2Sh5
VYjyLcg/UEFG0EL4HcfPI3UN+bEb5JRaOom7n7rpNM/TWiwGeqkly4YxbEnRLpPLkrkH4cq5TVcD
GqfvUncOpgYHw12OCgfDLa0cumx3ickGIp0mGvcmJcbC5RLwnURtDe5OygxCk5zYYC4eLSkyLRV2
iuviXT+uaOgGVsKmkizYgogZ/vRNiOLGnGKIAujutV4rMzcNuZ+FHVNqi7LQ6KoDRVMxEIRIvpcr
WcGMRuxofh7Y3kO+H0OXqh+fGvL9Z7PeKbXUNnQpVOqsEkO7L+/78DvJMlkOG051AWN2JuvgZdnc
Z51gDu7L152qMTOdZUZzMvlqpnKl41Ei9yWobAGUQoz3tSXwvq/Jms71IJujkPph23Dyq8bI0rwW
qLie7Eejqr6QvBKev7BIXatxsLLa4x9cedB1xbJRNSWoGlEuBaqmmvLuVlyUhU6pBWWvqgEhRAKd
5il/5V6N2NH8PLC9Bn7fDXVKLc2cuv05Xxow0+4M9qKpbJKyvMKHPVbW4tSnh2m6ZvgEcEkt1V3I
sYFtqDOJpbIWv0+HJxE7xNa7mrfWRQvwTliBw1c9id6KcZ49j52R2IDOGi8cEtr0QEpR4NIrdIy2
iGm1LME9nOqHGqw1SFi24UPqlZNT2RiZEoyMjCAFRiao1Wm1RVlolFpQNZUDQogFOs3DvavP4sna
t+68p7ahX2Wr3T407ttuwlMqja6KpM+vNKe3cj7dY9aUWX0MSFNdTOjEMsj98PzP2i6P1sakXepO
y5imztj6SSb7YiQuPHjrYA9Z2GCuaLQUQgi5cgn4RXUwYQl9XY0cPb5uHSFpsEAvNfhZPLRUXE++
udfWiP+uRVCQ2oxIrAVczP5TkCY35SwbOVOCnCnXX9AMOVBalIU+qQVFr6oBIAQCGWQFLxqxI/l5
4Lp1gdl1rf7xqV5wR4j4dWr5E3I7+KtMCenoBvauqbCd2lyNQRc5VoPYqLegZln45bawlKBBvzM3
Zq+zpjkns9ywlCeObi6PC3arondzzAo85VlWwqc9ifEaXKzQoYnmOPHoBYyhFpkaZiQK7MlX+VCD
9lsSYcxbuLU5X/1zSX0eXOjV9eSysTcl2Btt1AvsjXYEyoHaoiT0SR0omqqBIIQCG+QFMxqyo/l5
YHvN/vuQ14CXYUreEmKMHJbAfjWVu0xZFt3h0BKHpa6Akwz2wlAX/1dLtZjvNI1J6qWfHslsr0vl
Slz9ihIJUkFl74q/hMR4Q9qGX41Yr4Flfx4/0SQnNrgPj5camZb6CsX15Ft7KEIuCxJg6HoVoq1t
2QnYWuibF/q1nG8kTQmSRhb2AkmjI7lyoLgoC51SC8qmcmAIscAHeRdqNOPG8rPheg/5kZtMOo9P
DfnymPiLlVZVj5Q5JMCa0pt7gQZ8Z8C/7JO4mqLfzGvaz6C5qFpN7DtzY7I6n/ar15bcDtbKkw6M
hi5PNLarWsDUEOGdDi54YtIR4zX4wzg9f9VI3D1AyWrQW/MASlFcT77Sp6qG9nkSgQvQCDdZuf4h
93ngpCwn97LxNyX4m+Lv6Ibfo7YoaenTV6wrh8rqYZgukcAFacGrui+Un70P3KlruOfH7J6tna5r
wNLa6mu4Qlcf57F8aU0dg5uoJ/7V2NxbMLMaujI+sx0vG2ftBHBfyeyYCmyuDlgBl+e77rjXaWtk
Id7pIM6Ft+KJW8kwt+N0g/R1B1s6SvHzlmwl0gX3ZH+ayuVNTopL+XKLRrDJ8vQPmRd02Y1ZMWzu
VT6omnyllmb4PSqLktAmdaBmqgaAEApkkBfEqoHPj7k9/53b1xD3Fu/xqSG/G3WyVDZ8EXhoX4tt
xp7bX+GW8rXaeSU9OaRw+hKZtHqA70U1rfCOb7LzOCasl9rOSGoFJ0/isk2UZ5cnjH91YmzgzOYb
2OFUg+2V1WBMkRQe//PB4ii5oj05S8NtiOK+CncfKAJizYLGp1i0tQIz5UOpVjdl4Zy2HpDcA4ZT
aIYcKC1KQp/UsdRMxagfgXw9W5IurJb4N36f7fvN58yjiJx9fAr3tPM5SiWNnFWLVNhU+VKuPWrs
rJ51EPGx6pxqhib7cKTNTNyMfi3pO59jBjufBLdQMjtoUmpSb79LS5NK3mq7K3+Hw0040ogOYxOy
4tp0N8WJDXU5Q3KZg0wt2Soo16Xki3x0f9nO0vStYgRbaDHN43fAWNMozBuXk4PLkT0mw+Vk8zPD
Kouy0CW1oGSqRv0hFLggL3jRkB3JzwPXa6o/HoSNvETG0CVgaW2t6VyEsReNHdM1rQ7zILqU0Ce/
a0HXEphM5PFqKxFRdiOO6ZrT7pmygB+JHaHCdKTjLi9xt5JbG5VBnDlars1/eLQncWCDPb6ATuP6
uoHdZcrDE6PhJ3tQVE++s0df1/yqyodW4CXUrMWTPN4H2Y0480bU5CBqBG2GqOHKarayohz0OLzC
K/yAqkX1IRCYLDnBCfF3BD8PPO8J/luPCNvH5xro8ii+0FcqKSbBuhW8DhQSIUm9yehXFL+GOeo/
CT3EnY0W1K2wL17mC/imHftk7K+/ZQdBVC5ftIny0hkVvStztkR4nzjth/cMd1Md2ii7LU48wM/S
Xo8s7dB2UaX15Mt8qmjo3JxO3SUNsaZiMIH/EJ2W3ZQV4ObibnJwN/n6y9ILv0dhURK6pA6UTMWo
P0QCFYQFLVqx4/h5oBrDXEFVdqBRDte/l8q0msOH2oumYCnPYrDiFmNH8gVMsLL40OsCQcPuVspO
z5i6zic3JZUkDJVzJV+3colENPPF+8o+QkK8HTQjfGiwuGHRES9Di5zY4G6y4NFzG+HXZEFUeT35
4p6qGjojJXzDtcGTcLPma2Y/RaY0N2iFubngNtiKjPRCM/x2qSzKQJeUjpKpFPWHOOCCoOBFC3Yk
Pw9ct+E+sy7SPz413O+gEb9OLZ1VXf+WLte6Ttwwe9AUrORZ7E74p3Ai5Q5PC8IWeBOTvVzadu7G
4SazeCkns3+Y1lSf7rKS4xxoF1HZS0iAt2MmhQdNI1ILS7ucrQf8shJbD6gy3bGa475+nFd5S+Uc
47XUauFMBIJQrMSUtPIy4WcTXNNNIeBN9IB+rezJKfQyffLNXsWZ9OMOa7GaqRoAQiiQQVwQox07
lp8HsteQHz8bQUOQMe1xuPMt8/G0j4wMtQU7uVy6x+15uqQugJMNtI5wSXyshvtOzZSgZpjMlcyc
vMmTOEtHefmIipb+UwjwdoDcHEBnJH7jNUFLnHgAnaSgHJnWvUPK6ocdaFTN0GjKsM864EosVl+A
Fn/lhhDOJmAOUib7OzpZv0ZZUQpapHzUS7WoPQTyHfzjdPAb5N/x+zzQvAf6mZP8JR6fGuh3oIhf
p9LAoVsDefUyJl37zRSm0Sy+KqJNVO3qZF0LipZ9uRadxvm6lLFhb+SJc/TK3uPr9wnTeZSVOVlD
9VVuw6r693nL9U7cTdR2nbOWd3a7CcPJqh2cMjSu6p9DStZkwQwnP53M7RNFCJJQC69s1KGxiptx
5o2fycHPpCuFRsixVBUloUPqQLlUjdpDKF/Kl7CgtNqwo/d5YLkh3w8d1R+fQv6OD/HrVBr4dnPh
SB1VtKmdsmdBpVL5iGBiRfMVd/Na0LLYZLT9aN6slZ2gKUHQ5EiYciWPfWKivGwvZy0qtYYI75M4
xuE5g7WFZcimKG6MPSwbTlYcscjUuNOn8vrhm33figbMuwirqZv1CZzOa5KfMp03NWXFtLl6gPEf
+o5G+CXKijLQI6WjYCpF9SEMmCAmWCH/juLngek1ud9BIH6dSoMr4OvGwap1ntjdNR3Pwk5Yrvtj
WO9ZUhcgSYa4A1dSOx3KZlvHg33xGg/7guVeuVKylZUSs/1btXxHfFrNIlznDT/1JEZrcNVbtiaC
2jwAlnpG/Lhh+lc5/fBVPaLwyutcVY8ZIk3inv9D2nnCcbNSb7xLDt6F1R3eRWENfM7RVO+yliZX
DaiXalF8CAQiiApOtGFH8PPAcxvk3/+9/n5qkO+7uLWHw5uba+MSwV6J0DEFS6digQ/CeydFVe6T
y3ktGFg7N0wt7ZzEy07HlKBjvM+Hjil3Ljs9RonZ7o5aBiJwrbqYwyiG00zFa50FnmBdBOMb6TnR
Jw+SHpkafJ/K64fv8RGm91BYd46E4nhSLMTZ/aDYZE6DzrwRMjkIGR3xM4TMceVAdVEWWqUW1E3l
ABFigRACL9xox43mZ0P2Guh32Idfp7BPrsvfK8DK6svTcX8NdkLLSWDLDJsl75rLa9Cs3JxRrP2G
nbSUnXcpwbuwdSvwLtzFUa6EP0uUmB2XLkv7NUR4c6sr4zAj/mri02NbEwbbhxHDyUr4FjI1BQCn
tH4Mn9A1yXKdgl0ry4wGeAmSVZ7SuiKbHZd841xycC6c3mFdpFTlQG1RFvqkFhRN5QAQYoFMc1h0
xelQS3YsPw9kryHfj3IqeP7jU0P+jgvx61QS+X8qXJxuaU+CECX7zRR7DSswQEQS0ksKvm4pfujb
F3yf7kDPWOPK7jvj6CTZ1lsll15n5ErcdY4Ss2NVaQapXJ2RGF/8LvkEbEbyhbjbo697T5D2Svx8
qbWqnH7Yc0YVDN27VcULn2yRFkox6U8ZTbubceaNjslBx2DF0wmRmzV0OCksykKX1IKSqRz1h1jg
grjgRTt2JD8PXK8hf4d/+HVqqaarSCmsqy6p2Kd0A50EtP6g+8GDAHTVVKsvxh/dq7vj29zMSwnm
hX17gXmpkScRnSDKy45Mo21hhSGVEG94/fBUT2KymIASYe3HvBM32ErWw9GXm0dRlLe2uB9XNHSJ
LmPan56NGJTM7RhPTzflzBvzkoN5wTIv5gXXOOVAaVES+qSOpWYqRv0IBCqOdS60qk/rexiPPbUN
9zHr6++nhvsdG+LXqaWzoRv/0uVXRK7R2Q97FmJCJQXY7eyTtGB1dlW5moG1s4xuKjau55eyszAl
WJh8J7Pdb5QrEZAmSsw1qnpXTnUS4k3+8FhP4rLYcaxAJt0tcmLrBZPBElkcQ12l9cP39yrh0RSV
uC58LBQDUj1Aa3Xx6k7km8tSk4KDEUuiFHqxwZUttMtCm6sOlEy1qD8EOq8Y0OcLvOoR3/Y+8D+s
dT2t22Z/P9UH7rgQv07x+sqp4GG6iTSnr61BzhQii8hPd3TGkXwK+iD+bLXDrL0g5Xi2lCCc7wnR
CfrAGckcrti67oUHa5SYLy/nIXByiPFmrxgu7Um8Fm4+K8rJ6TY5sfWCoZFEdMQKidTdq7LUnt0P
1tl6nQEkwpAFEOEWWqf7QpN9tbpBZ9qImhREzXGl0A85uid6M7HSKrWgbioHiBALhBwVWchVP4a0
x/rYU9fkf4eD+HVq3UpYBUptVTXpphKMTGGqhYQmLvxCYfVhzOXV1Ks93Q+MTdyoKDsnU4KTKZHg
5SfnSb5b6/KyHSC5fs90AxWPiTcc2HmUZEIPK9JvkjlHXx9wZylpRBbHWVZp/fA9PVU0FLhGAgwu
nku0BZEnf9GWiVnFT0IF2MHJ8MSEOBncJqkIs6hLQp/UgaKpGghCKLBxRGQhVm3R2UN77Klt8Lc+
X38/NfiPxwJwoLe1xJSOPtcmwHE/Tdgw3XIlhadAksK+dEzkuZqZdViTA+MTV6nyTtnkoGw412co
mxZ5EuGKo7zs2/KEyyEQEtdyznRJ53dLsCglxfulPU5sPaF7uFyPnTRtPlZp/fAFPlUzFNFA1Q/4
Pgk2S7CzTfaW0w35on33AvcBxcd5oRF+i7KiDPRI6SiYSlF9iAMmiAlWyL+j+HlgGsO93VEhfp1K
snWtu/5S16m6UGQxzNpo6ZTJo05JfmCdI3MWcwTMWuez13m5VOycTA5OhgM8r7lEwBXR3qlFx8kA
fVX2LgBE0EHu4qZwqBHTNbkcLV/rZPudEhvUzYOlRSaH21R5/bBHjaoaWtAlAnciEG6pgzle0J+h
4qKANvd636/1vjqFfsiB6qIstEotqJvKASLEAiGHxxRytGTH9PNAeBv2J0v9/bHGvAKs3Z1hWnFV
VX0bJ61Ohwbypg/zmsKsLbHry07offCKTK3X7C9Ykxd8Ab7zNjl4G67kZngbYiIqV+JtqCgx+74s
j5hhrCEwHX54KTxqRHdNNgFyw6ZNTjw6Q5IKS2Ry1E2V1w/f41NVQ8c5ifCFyaLNEiRts/2zujln
2tibFOyNaDSl0A45UFyUhU5XHaiaigEhRAIdR8kUarRix/PzQPfuCLk0nfMfn+4L6dEX0FuXX4j0
uXYCWNTsb1OwpyexmJ07Tnqbp/sKdi0x/wtTqUDz+9h6gfsA0XNedpVfv06+W+1SMv6bfsOI61Up
8MqXVH7JYtpTtnqC65HY8K8eQjkyOUqfyuuHb/GpqsHDdbqzr8DaCDc5ufxD6nlFYeEdp3v2Dx6H
6PDaA8/p36OsKAk9UgcKpmpUH0KBiePpCSvasaP4eWB6zf/jMf8Pq2fY8wPmcNqx1HQNl5bk2ze6
j4AySXLbJVc7zjok9QENuhwk8k7W5CBrsOll6BpCXCuP5/Yoz9fo4wHSEOE9fZQPuuZgqtLBroiX
OO/EBneRLXxGFofhU2n98OW9skacnvrg3mHRZk+BZstxzftriZxuyBfOG2ZA1je0sX6HmpzfGqRk
VEuFKN2C/LMfDqHyhNKSfEfv80htA3zU9vr7qQHedwZHqTRw+S1ocDXL3kY/08hrltU5p9tFfW3v
cL6oJmntPy1fs8oTBCXvHE4ODqfcyWwfaeVyNPoo0R4zk8WAHsfpb85LOj1m0F4xJRW3Rl931L+a
c8AHiFodKhYsh2/wqYKhO1P2FSrujKdUwBSv4T7vM8SZNg4nweHQeFJohRwoLMpamqQOFEzVqD6E
sv8NEbSEFa3YUfw8ML0GeN9BfqV5yLtjzTBqgS+bQ9RkJsZvdx3dnom64YtnQq7mYVlzs64vVfu/
5Z2myUHTOOAsNA2FEBk2UYRLzCzf03HysCF8f8wbJuG9zlMF0yHL5Fg/j/i6QZx/AHlEFsdjUmn9
8F09VTMOYs371kG3YEsRzTBXG1poDC/HBMxYK1EBKXRj0wyuSS4LjVILiqZyIAixwMYRlFp3O24U
Pxui9yAvqSwW/vmpQd529kapNHHyTehy9Un80ho94KV4r009wKAUNSWBF1t7RU8CfYe8uE03OZib
GomM5WTl8Bk9SsozuhnPTNWo/o1LdmqBfH7FzlOe9iZxenqa7tIPOuuRyWF7VFo//PqMKhpcm5yg
YsFmDpJWk/yEFiUcyr1+J3VvGk9qaYRfo6ooBy2u8pdqqRKFhzCno38TeLK57/bXjt3ngeQ1tOtO
ySiVJv6cCXV9ZRq+j8AWLXPUWaFAuoOM6IYvPua5moe1O7yc92p4O++ETA5ChmcLM4QMk7ZyJV79
iRLVraZDKjC8ASVfsikgfUNqBbE43RonNpAPWeYcBtMRFl1aP+wjo2rGwfMtIiKrhZp5XnP4WuKa
m3GmjZBJrM40nhRaWb9HXVEOmqQGFEy1qD4EOh3au75AqvqN6fqzD+07tQ3uls/X308N7js6xK9T
+Asub451jVci6DTDyT07LmwT+vnlKAKdcAO5mJq1d/yp6FJccC55Z2lysDSM2gxLw+ZPuZbltdwl
Zm5VTPtX/pQQ4z1ZZcJBpuBj9HIQE1rjxAP/LP2VyOJoHSrtq3DjXwTEyqkdlkyZEmzqCajVA7QT
mxChGoBp42l8AxIVkEI303OiXCJdFhqllqVoqgYARAIVR9UQWtUPUO9RPvbU1gfOnF5/P90H8qMP
oLXmp6wl6DTNYU+Z7LPScplksE2ejW8glt0HtMQ3L/HCeedocnA0DpUBRzNY4ptVPe4SyxEVvSNs
aV6IXXIJyozEjm6SYmU6HwY6JStxF8jkoA2T59o1m6iSrjAk36rH4EAhM1sOSlY29MmDjsS02Bga
X5Grjo8BQwPvUqyuKAk9UgfqpWIUHyKBiIMrCKnqZ6jL1r331DXR3xEhfp1Kk+eMT1TWVJcCCUHE
ZI7fcq9e4slUonu9OE3kEpQsC7uCOtWIZbN7yeTwkvEDEnjJsIifOKScd3mFETt9BfPnDlGME164
pydRWxPSBkvTtDPMbrRw8quoyGKXfJXGo+0fV9TlgykBhl4sXILNHISsVvfJs43aXR0bBXNAwVQH
xoGC0TquHCgtykKf1IGiqRoIQiiwsfu8MFut2LH8PJC9B3v9bt9efz812O+AEL9OLa1NP2utIOnT
nmb2l8n4FKd1VDcbqqu/w85zQclyF45HXc7z5eAmWx+I5X5EMh/jzuN3QqO8AsnK3b7CWXxdsJ+M
/PCW0RpNkPyEhWked+LRB5ZFw0GPoWSLS+uHL/Cpmn5ODfi19vfTYs0clOzwwTq5KcQ1iT6AAXI1
n+9ohd+jsCgJXa4aUDDVovoQCEzkSy2kqh+j3oN67KlrsN/xHn6d+ipS7jsr1Nq3FjbG9pKxTTwR
9QJDjUZSHxVAsgHWgNU9ED8pl3bKJQXlUu+ko02TKyWiarlExylk0BasqzxF4QNaeMmIytI8j3Vp
pvi6AYxFwxHZwmFvuKx++JaequnymSBaIx4kEmzm4FplSZ/Ja7qAvSEWwGJCj/FCKzNGxFUGeqR0
FEylqD7EARH7zwqn6keo94gde2ob4uOQNebxqSF+h3/4dYqQH2cm6pbW824NV/cAAkN/JYby0Nmo
86BPLkG/ssnjMRdHp0s7G5OCjeEUnmBj2MjxPEw+7vIctZRjWIFVW/ffp8OcxZGdp1dZ00WVhsVh
D/jkZOWYSKaGz4bK64c9ZFRRVxRiorfC4H8FmznIV+3wJvf5FKLu2HiYo3tVn1cKzZADpUVZ6JM6
UDNVA0AIBTKIC2LVrxHvoTz2VAz1ekd6+HWKOXO57khtX1kc/kum18xcKaesJZzDRTTJrfk3GFZC
XPCYrcNSpp1tScG2EOYywbZA0/J0sa7GXiWa9OMmT3H8CSVmtnSKXXy+vKWXrclBK/oDaKmnxc/t
sjd5t3kY5CRNf4c5A1EnSgk09fYLMDcfsWjEeWwcy4GFkaaTQic+lEldURaapJbpV4Q12KT6EAtM
7F4nrGjHjuLngek93P0y+PNzDfd67vhLY1U+PdLjlAgyufr4HoG7F/ovBQpYjZHJM5egXYmJwDO2
REQraWzIG3eCngj1Gb9fSh53WV66h29uCNh1L8q3KcJHRvMyW4ikpxaTf9Dac5pvHhwlMjX8MPVz
HvD9uKKuUDISYJnIh0WbOV/T/BSayY05j41hMTNG80mhF3Kgsihr6ZI6UDBVo/oQCkwQdyFFK278
PhuWG+56KnD/EOh3tIdfp9LEl5Nn69VPHZ8fziVfYZ1XR+VUpJvLnee4cwmaldvOPGjr0MNpZ11S
sC4EM06wLmfksW9ElFdYy7kkrSOcRHh7nxYuMkUUKxe/ecliOkDVHtjJyYqln0z28VB5POmqDiAM
vkLLWazr6qcEmzko1lPb7eqG8HBAgF9su9H1ZO4bSS/k6DbBBsHKzgmjnYxhqhoAQiSQsU+GEKMV
O5afB7LXHD8ec/ywcuS/g9KWmYZ9sV1l8hXI9xTYGukKwMfrTbkEj0pcE10UrrimlrQTLSmIFh6U
SxAtbNUJD5gTszwlFuJmmbrHagNbwo3t8ExPhXc8GeTVLdLXHeylpPix3TlUTjt9GU9VdL0gq6qH
XqJBqJnD5VV7eAfLaIY0b2Bng52dQi/kQGVRFtqkFtRM5QAQYp2O9665WIitduxIfh64buP9e1h4
/f3UkL+jP/w6RTy/U/Zxnq70+7p2mrE/w0FswDOAWewRDtKlXPN9Bs8sNWg939mYFGwM0ewTbAx3
cpUrZSIVucRSo8upXG0psbaaOA+nmcIDzqz3xdPYjMTWE4oGjF+7PjySksvjSc+Pq+qazCXCMqmd
Fm7moFtF8jmaBi+8bozMEYyMHJK4eST9kAPVRVlolVqmH5LWBDyKOynbu+Lum14gV/0A8R7RY09d
Q78/5nnF55nZPl2EUxoG2YBrVyXC3+/5KfTSklpzfPCrhBXW9aF6CuGdfklBv3BzIkHAcHhTHru5
RnnFTzdD0eACwVlb9yRxnNFInZzAFWA4ad+nrxvQWZZtdgIZfvVwSTzo+HEVXefvUm2LLhZqQeP5
/dpn05Dz2AiYIwiY+I5OvC+XuqIkNEkdqJiqUX0IZT87bmMLqepnh/tjfu9/5/fvIF+U+uvvpwZ9
2/kZpdLE308ErIzPA5djH+ZZNcU6jobVdtABNO8H/0qgG90oqOcI1PPeBWKRv5JZwWyUJ2UCbbi8
Avyvd4YYh6jFGcZb8qSxaZ+PpogkM9+JrQckD5AemRrhkFQcrzx+XFMX7VKa7dBINfHO+bfEnY4J
KiSOjZ05gp0ZV6qZ7lL4Y+krSkKR1IGGqRjVh0hggrBgVf3scNu6+J7aesD3f6+/n+oBdxiIX6fS
xNMvoc+1TiUUDUWjKUDUdLsii6wWHczQwb8SQn6Cv4b5TtCkIGi4TaNk9gtiE01vpdlPyywQtAqT
NRuB8KLJ2EB+HMYkuy1OPPpAlvZaZPKFv0EEmuEeUPRke3/hwqTg+Eg2k0nYdHgnNtyW89j4mSP4
GVHkB/yM7A3Kgc6iLNRJLUvLVI3yEQlMfC1PWFW/R7wH89hT10RfdxJGqTTD008qWz1TCNpXJrOF
1/Xd0bhDqyAhS2gNzeOa6wWaIgYRkqKknYdJwcNwLUrJTKwZcjlySZTo2xU8KuA7dIQgZ70PZxnR
GPbnkzNt8hW6djzJmEOWbSw8fu5OW1YV107fwlNNXdeguXihEPnItiDKhnuNh+rWTBFvNJTvH+uA
FMpZv0drUQ4KpQY0TcVAECKBje/gCbPq92jr1pv31D3gx9F0jn98asCXnalRCtLrlNcxz2WIJ3rb
Y8axZhRicwleACerTWuVzsHKatOuUEInb0ynnaZJQdPwXjDPeTiw0WzWdbvLKw42yubRAStlOWAj
EO4ymX2KhJSnrUk8Enc/ULIeDrmubRI3g1RcO309TzV1+cRJAkxsyDaTPWYJeTQgwnQYO2+uhu8f
a4HUUg6/R2tREgqlDjRN1UAQQoGNb/EIM9qxo/l5YHsN/PyY37PVM+TRte4WaKN3os9kuCuaXgPf
cQAVuLnzMkUOApYpWuxIJZB1STsnk4KT6fffcvJjN1ppMvtEl+h34EeEnR4hxntc4jl06fQdWIVT
8FXKej4oGSXr4YA5zE5q5+h+EOzjWni+vRDeWvF3OPKkfs3xbISb2zLP21DJ9481QArVkAOtRVko
lFrQtN+O75wz7C6TTvfO/gKz6ieI888+z9+pbeBziXL70KjPO2WjVJrh8id11iXDVzls8xJeUrJM
DD/vOIoaoxEa1Cy7tFnVfN2e3xmbIxgbFVAcU4Sd4ly7fIa2SyueWghCnaP6N88LhY9M5ua6JNLD
XbTDiQ1+nT2YL8jkSwIqrp3N53ve99R6xUjExoQLnpnZxBrJK34E8x43/AY/6zsq4bdoK0pBjZSP
fql2qT3EAQ0T+kKp+mnavPXtPXWN8zsIxK9TaRb56kld3zq7lGYXGa6/8FTuaF5x5cvXeZAkB+9K
aCvF4FrNVEiEnZQ5gpTRpEwyEw6cXEuZ/S6xeC9BDBSuePGUMLx/eMiI6Zr2dsMoVeLrBjPGD1gH
ZRE5PIg8ZO8Y1dIVh6iw8OpdDP3z1I18QNZW1y2Z583J8P3j9pNCMev3aCzKQZnUgJapGPWHSOAi
Ircmd9T52lH8PDDdxvesotwfnxrix8OMd6CxHzl1LU0uG45UzwAHhUNRQJq31wrh3LkUk8c1y+td
wsyy/lJoi3tRP4KlwcmBQBN+NZI3Q/CCjPIcRWtE4OkUQrxZ50dgv4aT4HYr9HXHXTrr8WPzhSqk
nXaEUfldoWkIMMWdHXpWMhsrYddyW9wKokYH8kHTxL+jEH6PrqIk1Egd6JeqUXsIBRpm94RS9WO0
x89uvLtTN/YzF83qj0+w35GXxnikfmlRK7xmZ3vBJEf7z4x94MhqzRqSOehYMOJRjwvuDXnj7kTm
qQ9+n6B8oyzHzQsjAWNeEwCLfTjCsMlycAOsUeVObOhj/3BINO2HoJFUXDt9W081dcUqIbSc3iFC
tpnqNbmfWn+bWzPP2zQ5z6Bp7hSKIQc6i7KWMqkDHVM1yg+hQMW0Tz3cihvBz4ZmTO7ljgHx61Sa
eG0xVcny1dGk2BiH+BcZNBrjRDE5lsCa3oOG9VDV5YAYxDsbcwQbc/0lO0YZb4Bkrm24PPu2DseX
DhHeEIDhAJMJz8wmHaMTLtoPS4aTlevRZDKHoOJ480Uw++FmXF6b6CrJNZO5WKKXdS5uraF8n9qq
4eVfUQi/RFdRBmqkdPTr16I7xwc/JZO6769kP0JatwdJL4i31Da8e9bd+MfnGt7ljv7w61Sa+Gzx
mpD643rBR5MxOw6pvgp9IPm2ZzC1Bw3rRVoPm8byvZMzR5AzXvZFziRvCA5r+bxLLOYAlhmPIxiU
ylCWcIIRrWUPSEWvSL42X+vDUKdkPSCUlUmmZBXWTt/SUz1dLvaqfZ2nhuWayUysRJ6dK1ss4bct
ku8fa4AUqiEHWouyUCe1oGcqX+oPoUBFpt8y3YPza0fx88D0GuZ3eIdfp7iRziv06xH6LjuIfWHw
JUy6zTUas2rXmQI315zrNZOvAcvLpbEZ3/mXI/gXb+JlzuLhPnIlfFmjxHpEVe/sB55kO9K29x3O
MLJknsfLwSl8uz49rBdO1sNPHyVbD4YLa6ev4qkeHvH91r4ASJZqQZMNM6ttcUuIThEwB/HCBh7i
JXl+LtZZlIU6qQU9+/1gARBCgYute2W4u6bXjuTnges92M8jiXJ/fGqw3x5bv06lif8Wl0LVl7Xh
be4FCQCKeoFcj5i+NNiDieXczXOmPpEfOylzBCkz6B8iZXinm1x+IyZKrBgIiacBSZtsRFV3s3FG
fAVOEjY2wSQ/LBdOVg58ZLINSYW1024xmeBc3LbUbkthEiTZTOma7KenZVpD4IroB8nGGU7yCmdG
sCDlWFqLkoZf7CScRDy4nKz+EApcEBe8ajxBupvpttQ14O+wDr9O8YLmmXjOTOu6JkB7x+BTKDvQ
aPYgVYDmfmGTjXYHN5b1/HJgig1tL+s/V9CKrCeAlSflrbSaopq3kHnbbKY6wjVGZNZJn7CZCTAf
NgsnK5HRyGTTgYprHqVUtN7xXEH8FwQSaSZzrKloKJ5uAHEpAuCgXrDLQb0cHrynVRUlocVVPrql
SpQewoAGYoIS8u/4fR5obsN8vTLy91PD/I7z8OtUUvAEnDEJm6rQZ2/7xix3Q1kGlsxyOtL1ge6Z
OahXDOuKvlNtcj925uUI5gVT/QHzwuU8IgNBsESJ9YpLoyCF608YUhRD/x2OMaKyiHNGnIrkmBw1
P6f77AHSI9OS8nRxK/j/x9X0xR0l2ydCrJlMv0ri6QAJWNxv2yPfP1YAKTRDDpQWZaFPallaXhWj
esQBEcQEqXo9NrqZ47bUhv88dEx/fBr/9MA/SWNZXprLZ0/zzJql4WNwOdSxcTTuMPRlYtLmO6kv
NwctlO9uNbN27FTMEVTMuJPZjz0PrrB5i0iJ1QFKCJk4432BjreNeRjRV4S9TjY8sWd7WDOcrPjB
kMkHjs77LnFXjzjwGmZxfJkWbB5BvRZPjdWNmfM2PPL9YxWQQjfkWEqLkobfZpVjgkr1G6L9FglE
EBakqt8f3cNz7Klrgr/jN/w6lXT15+StSZmBO+FDTbbooKRg2Us0jTzd3+8+Z5leddjCwU4TEn3j
n50A6jOS2cEJlSvleZdXPaNg6Y3A/2uQEwjJVIvoK6LbJ4WXS/aZqXscJyfrYeea6dFTXVw741Ye
r599dcsA1C7xK9Y8gl0t1yxIQ+bcaJYZNEu7UuiFHKgsykKb1IGWV8UoPwQCFUQFreo3Rvc4HHvq
GujjIFLN81MD/Q7q8OsUr6GfMivbBkygeDMw6hDq1qM5GKCu+HcbVcy8Dj8izibUUUh2AuYIAuZK
5FQjR8o291BaxYreHcDoZ1iCNwaDcIiRC7LDl+lJmmQPKd6n2XsAwyRHJi9GKo6o4B9X1OEM83WM
QbR5BOlahdOphqz4BBf3MoN7IZiJ7GzSCr9HYVEOuqQGdEzFKD9EAhWEBa16vS+62ee21DXYy2NG
L1bOkGOmlHaqrjVFm2UR6iKORrMjqe7w9zUhJ9Oqjk2pACv1tJfMRrPkM2gW+8JAs8CtEPqF952j
xMq47BEkL1uGdycshpkWUVa8VLAiUVS3xokb6nJ6oKTI5LVHxTXtCT+u6Kvxl6r/wmCx5mFXV0k8
HQASF5lxr+j6/rECSKEZciyVRUnoctWAhlelKD6EARHEBKnqV0XLY0Yvf2f0NbBXIJy/nxrod5CH
X6fSxL1HQTYwQbEx945OM6na95X5pQA/a02HL0nnNdULyeJV3SEq2o1/MDD2hIGBIfbk4N4SnI5L
rHZgj9B43TK8iYgUT8fIukEQ+yTzabIjXJk/uyleyYoRn0zupSqueStGRV2zhQRYu65q0eYRVGv1
gKxuzpwbDTP7ta5Xp9AOOVBclLU0Sh3omaoBIIQCGcQFMdqxY/l5IHsN9vSY1ZPVc6pIqW1NWgtT
b9+0M9aZc1Qsn13sBMe7nGbM6QJNMgnMjWzJZ5AtzNwnZAvesqNIl/Uuq7IL6xEaL7n+NyeGFNs3
NZ6bM2W6Ffq6QyzFzPi5u2GHCIsbeDy+/Z0L5GeO86dEmkcQqbrX2OE2iP6+cS0zuJYIINkWvP49
ioqS0CF1oNtV8VJ4iAMOCAo+1S+Jpsc8nv7O42tIn4zs+0Pje5/d19yOT89Efd+O17g54ZO69uLa
mozqKI7aXnbuPIgGWoAzNY9saRVhaGyQG/BGIifoNP0+ZW5kuKyKnb9H+LseL0h07lJ4f60SCF+d
xHnTEic20IfHQ49MFV8sFddmXLqT1UQm3IqFPF2izaNdc7uAdFOIDRmwB8Wim81KoZX1e9QV5aBJ
akDDVIzqQyQwQdiFFG248ftsWN6gf9u7bsQ/P4X78ZjXD2ssywdXmlyuUFyYgH3hKrO68aiO/cV+
hKstydyqg44OjJ6OaJFv7IN64fXmE/KFLqI8qfiVGsrz41Dd8aUswdtRcrzl1ipLyOKkZxhoixMb
+uIxeJSSTBXHWxVHQFihr5fbeDCq6b0CCTWPoFeFaju9qisk6408uOsb2uCXKCrKQIeUjm71WJxU
HoKABSKCEbLv6H0eWMZMrkBHF7xKpYkTBwYfya9dkr1fDgK4Vw3tGTovklpzuQlUfJKy7vRVvwO8
cctOAPCVzMmXXHW8Kty1dIkVnt4+1EoYEy32sadOGCdAVUc9PGtJbBDr8AgPS6bKUxQqrs24YKcI
alwAgOE+LNgkuN8/ZJ6NF9Z44WUjWGYQLNzoEMEi3ZADtUVZaHTVgZ6pGABCJJBBWBCjFTuWnwey
2zAfvb7+fq5hrqvgdz+Y1luTD670uZqo3ZL9XwjAq5vao3IPtXPvB3dH0UDqB8IzBlDe+GUn6ANn
JDPMzsqzFD3vsmqPSt4sBIQ3Yk0Jp5fEFiYgz26HEw/8szSXI1MlXk7HIe0KT63D8venXUtZtVDz
CHJVW/I2vKqfCkhwD/LgXeqVWhrh96gqSkKL1IF29WCYlB7igAaCglL1e5Jz69x76hrocydWlEoT
/xzOAWvJaeN1GFseVZjCNqP2JIEbeDCF44jGswx+yOXcaJV8Bq1yRiI7SizPPBCSNMqr+B13W9Nk
B5DNRgE9joA3I60iETS3wokNXm21eUCSTEvA5LKaz87U0uUNyYvGehgMueaRr1n8lHJWOwj8F/CG
o4v23kqhlPVrtBWloEjKR8FUu34Z4oAFgoJR9VORc+u7e+oe2nm5bv/91NAeO8+iVJq4bDR0uRq3
rD4HBzN8yU4dVCu3UuWEudqjBdfEKk8sZh6dJPxM3qhlJ4T+T4pkJgYwufAxvUqs3Le1/6xGtaR4
93UqP+JklpiQtIYXmeEw2yix9YAiMxxHeGWq7k35B5XbS04DPL1U+9DLYXaYPYJalR29cQtHJ7a5
MS4zGBedsJRCNeRAa1EWCqUWFL2qRv0hErggLHjRih3JzwPXrRfgy/z8VC+44zn8OpUmLhtcwNJC
vxR5YJ5ZIX303vyonJia7mdjq8s4sakPrFWedymJNZU33tkJ+kCJZE79zpUKN6dcYrX/Ctfuhb6k
eEuNR1hncARjkcfW1KJDpGcfSNLejExV1xQobQUF/LiWrlhWqn2N1G655hG0qjiTxsvB8nidG+My
g3GRZ6tSqIYcaC3KQqHUstRM1SgfkcAEUcGq+k3JPSrHnrqm+b6b4ZQiIi9+1vTRpmURcyuxHvRm
xqjosCkmWvfQLNdUn4AsxUKZN2LZCYCukcyOEMwDo0ShiRIrdzCb3w+WgUA/4CGTsLiKWMXIWnhp
HTd2nh66gc4yw0WcE4+f4tLavO7Y6bB8vFT7WPcrCY5wBLWqazANHyKtxGOjVkZQK4RtE7VCtGDl
QGdRFupcdaDkVS2qD3HABEHBqh7xZnB6wPw/D2zfvZKGw+NTA/2O6fDrVJKjEc7XOFcSjBLSBVcy
vWK7RNbok2GadTgnc6sD+5jMHl5L88Y8O0EPaJFcCp2RKxVvH8ytcgvbfpTCnkeBCS7p/Tdv4Nn2
iqXpik/wMMRh5bCHJtRqcVltXpfv1vlK8eVV+xqK1XJN3d+gD0ypKLktc2y8ywjeRa8JDXgXOeE0
TFriLl0WCqUWFE3lABBigcwSF7xoxY7k54HrNdjv6A2/TiU5/Z+c+ddQ/7YOGxxOZOJ6RsXK1bjh
5T22aVT7GXcsXRUg0w5yMsgjkt8jeOQgaMxVWsUw0Bz+X4YBbfm6DAk+RfP0jYZ4cgv0dQdXSqnx
4+o14fgpDgP2cfmdOz5iivX+CBKNM7jT1fuLV3Jigl2EyghCpfo7yuD36CnKQYXUgGqpeCk8BAIF
RAWd6sci96gbe+oe3uX7v9ffTw3vfXAztJucrJcGteDo5WPv5HTkUuCQ4SeUm/YcnXsSKfhUQj/3
6ulIN5l3kmUGyXLeyewY0UQBIJZglFi5xdwcylJDW75uTeF3vJNzDHzNArYsOfLQbrZwsvLwIJkq
Lw2qNOJDfVxPH7jdez3LlmycQaqyKuMXf4L6jb/Qx1V9vFALv0VjUQrKpHyUTLUoPwQClerXBKtb
cCP42dC8hvQdmeHXqaTV4iSzKLumS0VYWrkfrEdKht5Ilo9V77aNHdfcnYAqxS44b2SyEwB8RjIn
GDHlSsXWOxOmxOy3hxwvtsrmK3f+7NXWgZKFqW1Lfmp2N1U4WQ+HrRoeNVEakaE+rqcPbF3u092S
jTP4Ul2JcuA+8eFjI1FGkCjlSqEccqC3KGsplDpQM1Wj/hAKXKrfhy3uqOm1I/l54LoN8u/2/PX3
U4P8Dtvw61Sa4VMtjU6J8T1qqQ8I0IlKuFvE0aMxSYvnWb3AR289hn6C59wpFh9Dy3FEIicf8fW4
Os/HXeUR+qZxPFCC591k2PIQJ6iiVgFblfqd2HoAtgz4/gMaNbukZhs5dXRd01LdCx9kGmfQqBy+
5ex0EKHgYlhGMCx4lsOwcLSXcUPaipJQ5KoB9VItSg+BQKOevAzcLf+O3ueB5Y18TWkdaJ+fQv4O
1/DrVCIUCW8VdAn7Hbc2wmnWncx2cNBNTp2wMfkIFpX44Tr5+gS0Ag3cuIP6jwMQ5DTj14l40FdJ
BBlTJW8cZzXVtzUyiudhQi85wkR2A5x4QJ6lshlZKts/ldWm79adGvNEkRYiukdL+OgziNOF+Zqg
yxERCe5FvXpRj8gD84U6yIGmoiSUSB0ot3tvx01ZX0Y8IU4JE5Xcc+drR+/zwPKa3u9IDL9OJeKM
nDwJqsXp23d/sLUTZFPeOzWH5tVVFyTBmmIz78mr9xVa4IKXbWbhgjLJzNUHci119q3EFBW9T1f/
lqd28UaLyBuMe8XXTg49ksdzXh8eFSMyVd78VWkEhVkQ+ymGltTMkGfgePgPUWeVk4vasGIKXPAa
XCIToAx+u7QUZaA+Sketfv2hpUsOMEBCsEH0HbXPA8NtQLdD9pbHpwb0HY7h16k0uZ7PC3DaYCoq
pekz4i3KY686fofu5nJOykdQpy3wu866ee78ignlcjjYBPwKpJtypRVY5irvCgjXCC6ACG8eM/Hp
CXdcL+EEycI6nPtzNu8eEy0yVbb9Ko0gIB+q6ZqBVfvQRbgl1TiDOSVu8locaAdRBAL7oFZ0G5ao
UFILOdBYlIUyqQMld0/+x0+9ZAIVpAUtmrHj+HmgGkM73fEWfp3i8bN58p77kpgoDN65EVkPo7/j
sxWLXQDGc/cC7PCaLd+znULxWlQI40MyO7a7ci2mYy8vR0Xv6eoXLOkVd9nx1/Eq3T1DlUg8QGaE
1MhUdeSntGbe6z0diL9lNxN5xhkUqchuGURpwxwbfzKCPyFACPxJ8+/RVJRE6fwX5fZrMpiXPKCB
pKBU/ebfHi9jT22D/LvZe/39XIM83cEXfp1KvCekq2V4XelM0ox8kupRSXk5BNu3PQunIFC52qJd
iUwZee7UiietcjiGCOQKPJryLD2PrTyHh9FMISMrY1cGSptaRJ16Jm+eqVokNuSbx0WOTFW+vi5r
2l1Fz/kMhQOXs22Vy6SkGmf4n+rQLLNr8ascG70ygl4p/o5S+P3SVpSDGqkB9VKxlW6Jph9M4UIi
ETJkX0x78Iw9dQ3uuc/iSiV8JTQbEv1CRH3zyVv60Gln+M1rHRt6sydBsKPQJo1z4gmQeQc5Vu4r
yUU25UllL4trDarmrR0Xh60mBOLILXbU47l6juqR2CCuHhmXi3rlDU9KM635Jmhf1fCWPUTrW1lr
d9CjvICgYLFqxXIev7iTEdyJ1uUBdyIbtXKgrSgLRVIHCqZqK94ygQjSOtCA3/Gb+wy+pe4B3tZT
Qn8/NcAfUUITARl01OAWpbpC/c4y5k4OKT9J2AooWa0p4JWNvXAMg4aG8c6duEVcX3cyE6GGXIko
QVeJXG1tmNF/ioVYmBWLJjAzAgvl5IY48egBy+rn8EfZ0/tV2szgXxSs+QubrCxFQUuJHHQGeyqD
Z+1uxxwbbzKCN9E7hgPepNJjrK8oB1VSw1Iw1Urpk4m9uZcS9GFY+B27zwPJDfd1G/7vp3FPD9xR
16napMaYvboaMrB9i5JGVIVbU1sWTsGcCkExe1xFy3OnUiZUSmGdIJkd3l+5lob38vAnU0VyNPa7
PU3hcsN2kpiodBLTaX5uiQ33oh6Ih7IyVYWipbRm2VQNYbpV+8AvX3ItxIqRX5O1AoYeuPRsEcN6
RAzDcVV32FaQf/1+6SvKQZHUgIIdH1yKD4lABFlBqvjdt/GY3Mf/nNz7zpgolfB05I6Nvoq31Upq
K+BbBqBRuPbY1qEMy/kR1ChmNiLnn44VtPMlJo7L4ZhA8CUY4IjFXyDdokQ/vbPGoAa3TmhNT0QF
WaJtDdb2rOP73BIbyNnjY0SmKnd+SlsqzYBMBOvvGNN5m4vQkmqc6Zrg1xhYPZGWLMfxiy3pwZaI
YemwJbK9VQ41WiFdFsqkFpRM5Sg/pAIV5AUtGrLj+Hmgeg/0fgwR3I9PDfT2mOCbVZflEi+Vag6T
qk/3gapnbjTQXwq0V9WeDGLZfUDLOwZNRw5Iew9I7gHX33LGdLucPgue7FEaJBi+EvpONHE9UhOv
KbOhIUJUzm6Evu7oS2Utfl5lz6ecNn2RjhCN2nCvr0PvKiPROM2WStSpC+20gWgvgX3QKfn6Cwoh
B7qKspYSqQPVUjUqD5nAAmnBqPj9t/aY4tvfKf77Tzu40kpRceXF0zDc7dMmaTBJyoFzFL89Lrc8
IkXlIwhRDt28CYi9Oo+dNTFdXGCuSGa/28Bbj4SDukrkLqoqe2tzgBepgrY6MhRh0UyZKlzbhEbN
6cGZKFkg45WnKlIDZbVptxQCGcoDaNU9CquLyPHTdCjvOtTidnyBvAE2vIqx82qelYs15RKsRMpG
uVSJ0i3LP9BAyoVR8bNu155t+74N6Cr76fah0Vx3FkWppNuTU4sN1/TqAnwYcJ4r6u6CwiCrGZrR
0zWja2RWExQKK7GzKOaGcS11MmcO5lDuFH+V6Of1tKHniTxZ5ZtOM2zYeA2HKN8qipY4sQGuQE9n
eC+ucSLyVWW1GQ+0aFTrn9ijyIrDuJumSAmFKUMJLZl9Y1B6MCh49MCg6HSuHOgsyvKIVi2omcqX
8kMmMEFasKIVO4qfB6Yb/LPruvrjUz2g7AyKUokYFvLp4j2wqtODeoDwU6it1U8Fim5gMiTzEUQp
ESG05RFBkcfOn4zgT2TOIZnzcedJzCdXedxl4Za8OhfRvppOwkY/I638xU+3wokbfSULF+2Up/I7
lYRX4IcqCLurmhcuxTKNOa85fQ3N5PV8yGn84lB6cCjZ35tXaMVtZhJxSSiSOlCwI/5K7SETeCAt
ONGKHcHPA89rTs87VaJUUieaWO84dmivoY0mpmAeLBrsrL6a/wrN3fQjqFI25NoILTsguG4QG2An
sh/k0O+XKudWVndP+v6TzAHZkCSL9NY5jEk66aRMC5x4wKs12zkqc37jvGRXFNHUiszGpkqGFiQa
+v0CV7twnaNpw+ybL0oPX5T7L6iDHGgqykKFw+YcDoIH8//PvKQCC+QFo9WKHbvPA8l7aK+ri6+/
nxrad0iFX6eSutzEsMOhQzPSD4NbdjBFrhscnJINSFyJOIMeZYcmY5WpqLxxx04s9HMkck53nlQY
p1d5UdE7u/q3HLcQ601EBbbgtigxyz8MFU4WvCSUp65X1VVSG3ZEyY60uk5NRFOQLGOaFs1Mutp7
HooEcGNuxIe+owR+iX6iDFRH6ajUwV2l6pAEDJaEIIPcO2afB4LXYE4PA5uuABJaindQFper1+ZF
Q0qArHeJmGEcJY8+agxiwtboTLbqa1neWZIRLImXc1k6Mz9ULt6h30pkQ4h9XId9/ViMA8K95au0
RJbz93RLnNiAZenA21zGdCwxKgqHoA91dIJEaAPFpXcJNab5T8k7dUCmIbNvNEkPmoS1HJpEv1IO
VBZloU1qQctUjvZDKlBBXtCiHTuOnweq28D2Zu3xqYF9h1H4dSoRwFE7fs4qU2ExtLuQ9bcLACai
CTBr44ZF5AyGlCvG7TATpd34TqKMIFG8ixeJ4ldXlCvZmHOVqFSl51mEt64UItpbrFOyjdyGo/NO
PHpBkvaaM1WM7iqsjXBDUTy+NcBlCimXSGP2a2r/Yq3AajSD6A7RB4JHYQsPj8IT8+xzZMRxWehy
+GaFwseqcnQfMoEK0p6OdT6v73cfuFPXYL+jJfw6lSZ3qqe11lTZd049jHPS20QsawrA0Sy2xmZw
oh63h9duOaDtpMkI0iTff8s5R54VuCFv5TnQsnbpOrYRWYqAvPJHEfeUzHTadMSN5oc1wsnCwVyZ
KvSLymreOKqSpeu1Y5cpRBfAJNWY5kTzejpe1y0ODtYbYdLTtYLHX1AKOdBXlIQqh+/HcXlV52Jp
PmQCE6SN57f1cNeG4ueB6T3U51HEhj8+11A/7iAKv04lAnnKKElAvUkY38O7N52MdGYYfqO+NrUo
gVh2D1Bg5dNruGMH5L0HZPeAFskV7KlEruTQblEi+zEFFE+uf4GWQrA3D+z6HostRywZD7OEk4UY
nrzkO4fLagPXDy27WEq0b9P7ekg0pglTCTu1+6IVs2+MSg9GBVMcjIoGvXKgrygLRVILCqZyNB9C
gckSFqSK3/LaA2HsqQ3/WkSUPj6F/x1E4depRDxR9bN0JO9B0uEjevFrVKM45o4ctyC70tmveX4B
XhWT4XTcx51RGcGoOLqjGBW/tqNcS9fnViJjWZWJZ+WFLbmKWbS39LYkXgi7Gfq6Iy+lJf+4Tu1C
VUrTgQIff12KkZW7ZM9Gp7Aqxv2LtbgV5J99Y1J6MCnY2TkZqA8oB5qKslAitSzVUjUaRyBwQFDw
KX6zaw9/sadicj/mDqz0QfAKKUldV3GokwkTKV+vPrLgKBrilMCKxhREKRxYvdl7uYFvtpcgTSDS
lMyZhHIlU+1RomOw6li+uo1keMtpw8K9eVYX62yyGYlsD9uEk+WczlK5x6yyuEP+eRFkWoZsBTCU
ixkyjVlial/bcB2paAeu/Ya4BWEiGg2nf6mFHGgsyvLqrVpQMpWj/RAKXKovkWsFf90IfjY0t0E9
s66kPz41qO8ICr9Opck7G816bNpvSMEwKcRHxj7oOLh6JqThuHkGVXoEjtCQ+BTvC3twKZDoSuZc
Is/Sc7/L6yzzqkrnPGIRVNlk7Xgis2ayP4kNSOwBH5YJJwvhopSp4qCi0trg7h2e0TolazHXm4tI
NaaJ0rzGRvXCTlSFi0dpwaMcVwqlkAN9RUmokjpQsUP+lekOKR5FqFT7Bul6n9/r2iNh7KlriN/B
En6dSis+r96RTkdsRKXL0zDrxbIF8ktRENfejTtPZ3Ci2MU1KVacBfLYyZIRZEmJRPbTSUzHDtfn
8jqXDlWVVvflh859cbud6DiUwjewqAn6skMrnQz/uOJkqFLWRTOFo/lRxKo1Y8nNoujKFbH7pnlQ
XlHSu+lL+tk2kqQFSSIwGySJLO76PVqKkpb6qAGVUjG6DoFAodq3s7tvjteO2ueB4T20z5x0Ef3x
qaF9x074dSrpvv8UBZU4dBaiT5tF4WFBzqzcXa20R9N6kKTcOa5NKzaW8r5zKD04FGzvHQ4FWk25
kqP3ucRwHv/u6lb+wVlK9xzsdiLB0u0ZXtwUJzb0s8dEc6al1OHSmg0HutTTdU7WMVSRX5BpTFOk
BPbXoKQds22xvVrE9pLZvbEdlG6VA41FWaiSWlAxlaP7EApUEBe0aMaO4+eB6jW07yAJv04lgi7r
glk67s1nyt6a+e047ycc6rLrEvEZPOghuOISUe47a9KDNYFP67AmvKFY2yv55rPL6g6/tyoprvnN
pXDHbpNASGrH7+QYzLy+dgOcPDqqM1VChai0NnDwwPdLbGiy6rNlGjN4UEVP0DaaVuD6HQAHY6Jh
3WBMDv9+6SnK8YZMNaBWKkbfIRBIVEdp0eUKNWHH7vNAchvg/ZDN5fGpAX5HT/h1KhGBWXfOEhtO
gjRreM94PKxpk+GIiGvfxsR7mtLsXFupOu8AQ+47Z9KDM+HieoczwdFEub7L9F1edxeTueHntARv
3xpf6Gv/nSJw0+GZqkViQ//wuCjOVLlQobJaWIQ0wjQTg40MFLUIs5jc1w4suwU4fAfywZZoBHE7
UgpZv0dTUQ5KpHyU65hfhVMC4oBGdfAt3bnghumxR7/YUxf2674D/y+8y2NCL1ZTV4wS9De1r1xq
5QCOXWN04Z0BoagVmtDNaPqNLCKaM6/mPja0jXUjkf0KFgPYsRldVvdDdhqZP34IjejK9jSRwTxF
bLbDk9XlAv7AmmGSnKkS6E2lLeVqgGpFFUO6av5iYYnGCGYURBIL+Y/8a2/jSwv6RJO3UqiDHGgq
ykKJqw4US8VoPAQCi+rIesXdNXz5b7TL/5zGH9E4lUpsHaf8PViFCncQNP4Gbh5aQNYWw6Eu1wR1
AEk2vNpUK4459wFz3zmSHhwJ7mUdloTAEERGdwBGl9hLVNRc+7tidscipvsryfE19bh0cpzt43zQ
JEqWczhL5W6Mymo2+0W0pW+dIyvYN7EYR1Cf4oMV3An5lzfvBa6hTfj4YhTXb5eGogxUR+mo1AGe
CqcBe5rM5D7YX6CzBN9R+zwwvAfxUc5FdD8/NaDzYwLPVhTxasqLR8bWnnLtmOBQuBo0wNswpFev
GDDO4DA1EcfNOrl53+xJD/ak3MnsF8/qWibrXVJ3TCa5dOrQL6xDnLd4Jj+Gtrx8pxvgxIb0vJcP
YuQTh7km3y/6vAi6ofVVb7wR72S5c45gQuXWqX0U0s+2USbNlAnHV6WWIvg9GoqSUB41oFIqRtch
ECggKOjEI7n5MXHnvxP3eaSf3aKiuJInIWhQV1dV0qNIES506xY1+8Q3DP8SWyFvTU/67YqKYDh2
950U6UGKsBh3SBHYcuXCLnaV2B2TR5VZgjc3wu1bIo4pOfy9YiCtpvjrA2B2x8NZKvegVBaXTT6v
Lj2vwbyOWjiqSJ4xxjVbCzK3YLaND2nmQ7BOKYVC1u/RVJTjzbZqQLlUjNZDHPBAUFCiATt+nwea
26Aes77+fmpQp8c0nlDYqnuc1uTpYwLPsEnA9bhvFfYabzL81xOcspHXAEViNmi9brgLdSICvNbz
Ril+vTQ87pI6N1Kpgl73enMHHHHeYpT8lOXy7K5ugBMb5sPgNGeqPJWi0rhk8nnxRIlsKbqPqmeu
kGmM4EKXuDNPcaFy8NtWaNMjajMplMHvl5aiHNRHDSiVitF2CAQOiAo+NGFH7vPA8UY9rTfd/34K
9eNBjhxWWkScwddqKqxFwq9j4OmhuWZkbhEogGl3AE7c+4X8Wr6L/J5gKXLf6ZEe9AjxXTr0CA6m
haMtATVdYndQZN3UV8/T1k63Dywcl9GTn7I69NCCo+grsfWBbqiqM1Wuw6m0Ztt9QJFfqnu5zCPT
GMGEyutLvqe0Y7aNIGkmSKCblEIt5EBjURbKXHWgYipG9yEQqCAqaNGEHcfPA1X3ganLHwE0qaWZ
CDjD87+TWNq4b3ylWCoWyBrc8pJxIJ05rok9AVdSMzWQdxakBwuCa3eHBeGuo3IlxwFyiY6VzgUQ
7RLXAxgS0V4lExqU5eDoboa+7vBKguKfV72PSjlfXQraoQgMa9Op4a3w7YTQGcF+KtyiVlvkn21j
QZpZkEmQHfEZvGPHA+cE/XFZKJFalmKpGn0jEDggKPjQgB25zwPHbXh/K379/fwO7++vd8ylqq54
M2hw6Ljw7Qn2KCF6pfraOi0IhrVL4wbCNEvZlcxFwU84qeW+0yM96BG24h16RHcmyJWqHz+gREdN
VmXx6uCa3GcI9tY7J0gs5+7ipjix4d58PkjOVLnlWKbJ6c+LbZNCGus+mV7ZQqIx6jWxT+GY3IpZ
N3KknteCXpxCKeRAX1GWjl2ZKw9sFQ8f7MYtEnFGJOrCiQbc6H02JK8BPTcGhFTiapWCweEKvapJ
r2RfEs6huooxMneLikSqXEOdJiL9AlEZP9dV7tx3BqQHA4JHYYcBIe6LcqXKbVOX2B1FSxFlfoZl
eOuCv4XjNrKfnU+KSUdznNggrnQ1Z6m8Sq2yYCE/qoMQG6p5yCiOTGMExSkV64VS2oFrX0BsDoR7
YTj9SS3kQGNRFsqkFpRM5Wj/Ekq4IC54rUbsOH4eqG7D+2TRvj80tu/4B79OYc2YAwIUW632xHYk
4eyiiNZLZsW2k7gOvDpNV/pVw8J++ATitMOfDH+PZPa7hVzydnRVl8eDqVSFYUcztt6Bt2jvCf25
PUee/CLGwwDhZCHMy4QAzVdpbfhtkR8i0qzlW6au7E75bfgIAlSzq85mtGTWjSup5krm6e8ohd+j
rygJVVIHKqZqdB8igQrCghaN2HH8PFC9Rvod8ODXqbTuRPO4kN4KXYfF73c7lfAenHjJdZSw7lev
JTjKbNdEnoAs6dqs3blvA0sLQqTeSV4adq64m+gS+9Wn1t20aRneuuZn4d6il5BaYGY1xl8fMGdp
aDhL5X10lbV0qvDUa50lgKAhsERjBM+pJ6ZkN6UVs250SDUdMsMzPL1QCjnQV5SFKlcdKJiK0XwI
BCaIClI0Ycfw80D0HuW5NJlZHp8a6HcshF+nEo4wo1mXyFFeevqDHlCkfewRAkXGxhiY1Xt04iwW
RQLkOnhuO1/Sgi/hKN7gS/ibcqUK5i6xe1kp3KYKId5F+/Lho3ny/KTZHfMR0UceFgonC2+cTFjR
7LKaKdqEYViLOrNwuqQaI19z/RSmyS2ZdeNMqjkTLvQrhWLI0T1tmBaVOqkFNVM5+g+pQGZJC160
YUfy88B16wVD17+en+oFd1yEX6cS3m4DWpST5brcpB6Aa/7JkYL9VbRGU71JUT9nKQOS/Thy2zmT
FpxJi0TOV46l53aX1mdUI8LDDxeWhkzvCRuqbRu2JXizh9nCycLDJxMuVBuBEozGh+Lx2O9re6X7
u5JljCBC15jQSeRodv8KvM2U4KODYxhPVer3aCjKQXnUgFKpFl2HPGCAnPGqvU6GG2qfB4bX5H7H
Qvh1Cv5pDkhQVinZr+xbMvG5D5uBdla6dBO7ahOhvDGXCxQezkBtbMACq9aAFXDcr1Fy4Tf2/CZC
cQNTNUmsOm8S+6E9MyQiRY4emCa3xIkHwEkKKs5UJxsCOeuYhU8wuzx1o4Gt4r23DjJUd8myzC5q
yXL4uddwh+PCHU8plEKO7j2/CVGpklpQMZWj+5AKVJAXtGjHjuPngeo9tEsqiwh9fmpo39EQfp1K
eKrLyzEdLGJEU/9heBO8FouB7SK6fOOXK2ZQovgIF6g8XjNqO4fSgkMhcA+BxzkckCtVvHpdYrfF
R9ROtghvx0b/IRYLrCgrjU1KUKQPK4WThadueDJbbteU1jpeHinbc5vG6iFTZBojaFGFv9FDtrTj
i/XdB9wDqr6jEH6LrqIU1Ej5qJdq0XtIAyLICVLIv2P4eSB6DfQ79MGvU8mhKLL1xZFz7e5MmhC+
NiwHBb0XCa41N3hQndb0bAjOWrntxEkL4gTTGnHF/fwoI7oyvF1etzFXZncNYInwpjvY74SHqiU0
rxTTGL5fECtVVrhdh8pNLqZ1nDtUfpeHIBNaOi3O6EGE6j1SjUuaMOvGntRgT7hNTtndv0dRURI6
XDWgWapF5SEPYCw5gWjJvkP3eQC5je2Wz9ffT43tOxjCr1PJEWhgR4ckWId3b91EKsucMLJZDpmp
KsN8BjtKxCVCURN5IbedUmlBqTRmfiiVGXlSZSS7vG72RtfgiwV46waQJXuLhEqK1X+6Ee/bRKHv
hYdX9Ms6xeyqiNaJcprCaVfVjYQxSAPbA2xJOBXGBcGXL9A9mGVM/EdzSaEHcqCiKAntUQdapWrU
HRIBA7ICD23Ygfs8UteA3jfla2AQOEoq0qqkG/mHMU1SaZVUFUUnCSzb5+HtOFCVhN9dbrs/SQt/
EoBv+JMQWXHFsnYcZJc1TLPqYntxl1qDOCPTe0CBas2Xk8VqAN/u4Tule5ndBtagw4U036VR2V0B
HFXlSNx/1r2iHgSodsiKvob4s25MSQ2mJL6jB36PiqIktEcdaJWqUXbIBAzIuqChBTdgnw28bQif
Ob3+fmoI39EOfp3igtgch3WIXeg75TsKAVf3dYhYdgH50yuYTPUbgcGLsuoSdJoYObntHEkLjqTd
yez3ZAljbQrdJQ7uK6iyxBs0OuIVPfToZ00G1CjvUeoepZrD9xv84cHQnaPy6rWKwhryoY6ueAOq
euiYj1CjBzmq1TdNN2PWjSKpQZEQ3giKRGt4mlZXlIMmqQENUzGqD4kABVkBizbsMH4eoN5doH63
ZK+/n+oCd/yDX6eWzopiCaHLKdtQW0oedAHpvqoDKIaCgsz4RsoIenSNd6FVCY+Y286etGBPiAbS
YE8IuGiMuSfu8nBKcfTj6j64Bqwc4+xEMronqbV0Dzdkfdugl9Kqf1t5A7vgzD+AHe1/0dHdoiSq
TcKMHuyo7CN6Mo8G2Cn4Aj4Z+BHuIOtpWf0eNUVJaJA6ll6pGHUjDzAgJ/Ag/w7c5wFjzOLzjm3w
61TSCj95NeqYlzko242EC/y9MbhRd5HIay4fQX9iM8trU1y5J5E3ftiJhS12cyUzhCq5VvSdcpc4
sIarMt4m7H54fs0J9iIZ8J/4/3TPVNXfb3y7h0VxjsqEpaJatxMJsbEUqUQXw0XGINTo/ZrZvxqX
DZ+GzLIRJSWIEs2QBaKEB+D1SolUFmXJspaw0etaB+9HS/UhE6AgLWDRih3GzwPUbXCPQxaVx+ca
3LwwsHUBtNYdQ2pps0iO9Q4BTMq64N/FFeK+nbRJ7bo9OoIahRzJM7xsc9s5lBYcCie0BocC2ZIB
v9+l4VtONSJCqf5NcHu7kQyYUR0B8AlWM/h+g988PJJz1HFeRXE++lCHHfh0GVVvEyLU6MGPysqd
1pxOM+wSbPCDQtHpDOpVOiHHUlaUhBapY+mWilF5SAQYyDr9YISmgQ2+zwPMa4jvATVJLcUMxYlC
YV22nxXMlq2jvBHfJv1TqH7NS5npO6hQWO08vH7Xl717N5STUS6RzH49WLkUYi3KIx4IVel957dn
kTMke4/qWamHQ7Cawvcb48rQ8O/r8KtoWlu1bcN1nQv+0r3KWhfEu1wNeE44NYs+y8aN6PvahosR
KbAjGoapWUWUgu4oG51SJcq2LP+AARmBZ0m+w/Z5pO4h3Xg4+PmpIT3+d2lv16O7jmTp3eevyOsB
cpf4LQEHB+iurjLGdw0XMBcDX8ljG8bkDKr9/wG/XM8Kicqdp3Y3XI0+Ke5XCgZjiRQZn49VfVhO
hyBHfoe4mGh4y6Z9kn19mHtS+PdKcCBRbIJcUxRrjuxmua5GkxpGE+wkFaOJ1leeSg2PFFMcJbqi
fpHfKW3EHUYyitehqEPJYLheQZ8bR4w/Mo0Ovia7z0kN4PcI4SqCppih0cMyqtWVMENUT2WxmZRx
fbdzRAtIJjyBuIIWkqQXJEzXiD54AhS4BSxGscJ4PkBdXgHVnlv/GP/8wH+KrCqF1BSk3jStmtmB
JVSl6TLTZyJ0srCfOIVVFMdT+QZUfN9yXY0lNYwlJGesGEuO+6nkODRTxH9pdkR5G3eAjt17Ncyi
5FqS791RfXXjrmAflgHdXwd6fCYmkRzqoTeSmGg3JRMNIV+9XAv6/DYryFCD2MtiJylhJ5FatHCK
LtcTU1hByWrUVOwtV901Qg+egANuAYlRrPCdDzCvJb0/lvSOYOYL2cG3WseXmdsU5y6of9hGqY5S
vfDIRriDVSJgPtfVFFLDFILNRM3sytB6JrV8Uxs1utFxle4/tLbnYmyLmZ3BnLuHwPWNbhYH4kxP
1Kh2rL0aSp5ExoWZBFhSh5UXGnMpp0y0ytHB+l4Wa4iutZj7GilwPwKCDpKDOhKdHSJm8/E2xQ9/
gALfK1zno7XM432X1fPxV1O5/VgMJGol9ny9WX6oB1+rrKNHBtW4s/W5V/7p7qjsEdZPwoDklFUp
HPICdYHbYLvBgdv3J8eMm9ZAkeM011pLSN+m0EeHkIzk1Ydyl8kD4XoFPElw1U/UgXavewcl64jy
VjYla5CCRIpUmBrdZk/xO4FMHsZ0I76/4mEdkamzYB3RyUdPIKyghRzpBfnSOYIProAEfoGKcawg
ng9IrwndVhOIWokTXK8W2iEt34RBfA9y1ou/kcicoZiZF+MTl3It2pqeSy6EXFcDSA0DyPVLdi1w
PTNFOm56A/8kdUQCfGqE5x58vTAzux+Km2UYXN8YK6KQg/fr/hrFjYXAAb4HwR7aOymOGFZGt4GT
wuBJGo5NMQA3ssaVf0UG3DmFYwqWGrSR5uwQIZuPN8QPf8AC1ytg56N1T+meh1zMH381petqClEr
oaNRr0RQ7aTGd/wI+ctV2nSyrSnNR8fHpLB5EpOfIzOCvsOrMaSGMcTfbxlDXPo74+ZM/I8pspbQ
WZITs6vSqkSiw0mk+YRtas8xHK5v0Ded/kVeT1RXNVbJik7wRkJNqJRbckwVbDD1As7Az2+utBwb
3+LFIFLCIML3G4OIDA6UNKsc4ZIm9X71gITpGNEHR4ACr4DFGFYYzweo16Quq+1DrYQqVt/CpKw2
OynoHFAytIvp6dIkT9GLaS3c2Qs3KVW0iXT+i1xX20cN24f357J9lBTPpGZdDfSGa4aVqRqn8w9q
FDiWRAYk2H2h6EHMq9v2sU2p+M7qSsWxpKr6xIbLv0zOSucCE6OjlJ3c7Vo2YHoveflGRxFTduPK
jiYZ8ATiCUrWjqsP5Dk7RszBDQDAJ8BM7lfAzkdrmdSv/71//atJvepQimR0KPsXkkMT+NqQNcOc
VFITjTEJpOcXzanPRlg2M1/o5C+0pFoXmA2y/z0XsMMHyInZTGu4hFRGEd7d/YfmsLjClg2zH1YD
abl/aBg+rHvQQqMn6hgm0zqhGpmZhhlTr/Lmt+413ma7pnjdtbVnCPgEB+RhFOnXL0iDJxBU0EKG
9IJs6RyRB1eAMbmdADGCG7ZzgfCGe2xNJ+vHX8F95y/4dCtNW2l/fRdTUs+v3x0ygl6j2z70rozR
u8bQASjW7jlZpaZ2XpNcV2NIDWMI6jQ1s8u6Z6aUzStQHCTgVGdocTo7OCVVccRIJ3kIwbpdg+Dq
BpwzXrbHxZw3doDThsxFxxNSf1eng+hRFOTtMNyzlIgsahsqscUMUsIMghptM2zZTyAqKE0JQh+5
zk4Rd/AyQYBHgIH3FbLzAeC1Xt8pCz7dSng3aE1MKnq6Sw2fHSMyKJy5S3PbEHYWuzoJhV3TZdcP
f5X15V3tHDXsHHwQ1cRM7adcLCwoDpcCS6i+u5n4yCU4+5DRCJY/rACS18RDp/BhbQPvpyycw+6t
U5rgir/vFPc800oLAzuj2b5ZqAMlgxnWwLJYOkpYOtCPY+mg4Lu0xqRPNS3kSC9TunSN0OEIMOBz
dy0PfQv2NePE2lqmM06Fyx/N5TtZwadbCa+mvlmIsPDajzlSBA9uEoglHExZ9ApeBT0MnBeGOVLa
5LrGitSIFcH6pWYuOZ5JDa8H0xuuJSM7TlRt1Yo/XxgHi/Rhlj9UTCzZ0Ww8FvHheVF1fx0sN3gU
uLq8fMDq/IjOubdhd5FKuNmwWbLqrR9mf8+L7SOH7UOWr3yY8vATCCoo2e6xETKkNKyzlrv+NfgB
DDjdXdxDH4QFvvMB5jWv7wQFn24l3BOb5paKWU+tvGTIBzqpIOoupTwiF8sNLLKxVYV11T3aMVDX
1cRRw8Qx7ub0OMrxlAs/BsXh+iEb6i8Y+GD5dpQItd2p7m21D36ii4bh7cO6B53MqCE/ugm1TjSG
erBrr/LGb5hW5MgwXSPf4HSXYaPYwLuYN3KYN9rVQiI8gbCghAzpYUqWbhF48AMUk08AgvsVuvMB
5DKnZxWEr3/ntB530oJPtxJ+yJo0KWXpbCVcrB5U3ZJvXQIZ/GoKLoB9v5ZzQTj0ocYdpa5WjxpW
j6sxhVnjmdRwUjQ97Kl0RZathleLVnfHh1DxfXockuDNTuHtsZg3T4rs+6tr0SbtzYjDUA8vBN7J
BKcDFAyNZqNmYZ/V9Kne5QF4aU1yxIXgdD+uV8qV2SWqoIQU6QPpzo4RevADGHAKSMXO/WvOibUV
03rcqQo+3UpEG8hNn5xSaOWlLDzlCXeoIuoupbzTgc+tGHW5etguVdAbdB2peWtMShg4rtjPInwH
z0xhLrTGEZ1IQULnH6zgcPVBVXex+7E3r07D1yu6mha+v5LAQ4SmLBvY7uHW+VpcZbyAndFaLNla
gnVYtG1/MW7kMG7gKIZxI/l+hBSUkB99IFc6RuDBEVDAKxAVhe6sWSbW1j2tZ/zH+9e/mtZ3AoNP
t8gz+epLUmxSyI/37GAQ/DkpcJaIjFaV215w3u9hzCQRXur+VsvHaLVvlLBv2Ols51vN3k5hKZQk
CorDqWlVi1mazqhKF7xh7ILpGa/ZPBSub+jJPpQuC111RdpNgp6QZYxPE3hNay0SVP1pzcDPHVc1
+3gBBuxh2SCauxtAvSgWE1SQH9SR6+wScQcnEwb4A5zioLw178TaWiDvWY7hj7+C/M5f8OlWOkjg
hvSwwbwoSjNKtg3Vvx2JQ7BCb7orUfQwZaLnlNm97nZFWw0eJQwedjjD4IFG1Q4B7PpNcThppWLY
dHRuHMG0tEtRIuMCLH8olUFyJOdi8lCrEP3ZMWSidtUmqhFykQlcJHf8hEPrLwyNZlOmeN2JJdMg
9ryYPnIEgmivmzF+UPGxeH6kixaSpBckTOcIPrgCEvgFqHIF5S7KsqV1reZ3foJPtxJhwHJDT6nY
ijMliZ2DDAu85Il0VmkuU8Tk9TBbcubVR6fuzJsyFoyNcKMxZVbj/inO46aF9+fshDQNnu5avhwE
0otZpbxMcij2mm2IViGAuyOtYTLNIYc2z83P8JT3djMzmo2V4nMnREzsT4ewS3+SnSBLA6aFJHgC
IQUtpEcvSFVdS9jBETDAK/AUR9OviSXW1j2xjy3JPP34q4ndV8glLZK3HZJikdZewmViU0FZEUnJ
mchkXKU2Z5L5RZALwMgyl8tq8Cj9+nz3aE5hdp5JjbO1ae3b3U3W0tya0crBFzYQGP5Q5dB09Ov6
hj17OlQ/UW01m6Ras/93+3HYMUxdD+XygKkXXAa+q/Lu7kG84L1hN+jyD5yQ+05EJAqWHZSRqTtM
VCcjvRYwwOMEB85vyM7l+prEdzaCT7fSQe33ZhF1dTP3Nd6SRWXkLL40v5oZ1mJtY6UVHIn4E8Ix
y2rZKGHZwD20YNkgn5KeStQDDoq7U023OF59uCYcEcjemiWvPURgDg+H6xvZ5OlQ/MSUWjKpKU9t
znD5wxSh6YZ9Tafrlq8Fe36lk4ex58WykcOyQa4lWTYklXk/4go6SJIekHB0nPyusTlrfguTIzaL
c9+sSSXW1jKla5KX+OOvpnR9rOPVMlOCN8sS6828yxs0fSQpfZgIesf50nVGbItrDSeiFJn6hPpq
9ihh9sDvp2D2wGFJTyUXEwnrnhMSa58dLHyki7MPZXaA5RfIHsi8ugwfOyt59r11ELIyJGSZq4Z9
gtTZCxIzMZrVLOJv1lguZnzPi+kjh+mjXi3kwBOIKGjZlrkVyzQ6VoUB8wMM8Lm7MAtprm7gzkfr
mtxrHkuHZyrv1kzSlxI+UNMmxGm6Rz3kLL60E+YYQcIbm2KaNVhae+YwCa5dMBWi4ClpXXenhiU0
jDrEUKsT7a8/XKCI6iA+R2OqjCInxUPg+p7QG5PB99dBGrWu7yGbQmcw0t42a1OshV8svfDQZJbb
l8pmzgE4TtO4hn1D31O1kISr7kpI0EF60Eeq7vYl7OBmQgCXu4uwpPcVsPMB3zKNX1u9969/NY3L
YyUvlhT5+pAgtph5oMDK0e9CyCMlkJgLkzbI+VrFE/ClSBuZy2rjKGHj4MaCjYMb9VRqpNkyxR33
BHWlSFUY+LBXLjaOhv0Sj35d05uuL9DVKuRBbIcnSTWpKWjZOXbLf+6ldQCON3Gu4g7IFL9D5biK
ne0WW0cOWwfBG7J1SC48MQUWlKYc6QHpuuPt8Isoa0crfkWrwzMZwwrh+QD0gn/uw6YV8/lX8OfV
FEKE5jGUvQ9JdllmJOIB+JJ8lhVOWWGVULuwovaowcnCLEuyM0mibbrgD0MIi0LBEMJSr6dSO256
5Daiq7z77ctCLAdnLyjNsGM2j+GrG/hd4Oj431jDk4k0RYmLdq/Uf/gBJFmsjBrWTO2dVbcD5h2x
eUEen+7qFrLgCcQUtJAgfUy5uuON8wGnrOzXMzliE+5X2M4HiNcanh5reEIgOmVliYmOXow72AMv
fjxvZF9VrvZDLFeQKEZW5VsPf5uF3hruUSLcA+dvNadKx88kl38xPZLRJVcr1A6Ria50NQ72aLtX
IupaZA+F6xXdLPl0P1GpLCpSrRFYoT56pRiApL9dTL1wEcLNZVUZgoM0wTeFsQMvcKanlgQKsVID
ph5GN5k+0nW3G8cAB3q0bD4BCf5X+M4HmMuUbvv+/vWvpnRarSBqJXG3N6ybOinKfFcc5tGr5J5l
bzUeGs0EyrZNCnflLTI963i9WkFKWEFIgViwgqBtsTERl1RT3Gt0lPXvjc+6vmoO9GjYNrVdV9UB
BsL1DfzQNkpKnoZtk/gCRdQ0wirUB94E+9wxb2Zn1LBtygtJGz+GMD1JLitICiuInG/VQiI8MUUV
lJDh7GHK1V1uwy8hNpDk1xOos7lfoTsfQF7TenuYOjaLhLx8iGq+YeO9OMAD10+8nzfXylPMf/HX
87gW7ARO+l6DX1qxTca2R5OTl59J8yge1HZs2Il0FZrU+B8r0twBHlJywPCHbPgMhOsbWyUlJMe9
nqhUFBWpppPrSR+9UJx2TjRVf50sjRoWTHTlMpxs+P0vxo4Uxo7qa+TB/YgqKCFFekC67ngbFz+A
AaeAxAhW+M4HmMu0PpjN9585p/udbeDTraQMWq+u3imCNs1xL+k6ygP/wJZsyR/AkTSYAlJsyonF
VabYSj6tnFcjSA4jyHE3M+c1nprTud4U9xZd4WzYHKk5he0oj9a9DA2hnTwUrlfkk+SW/USN2DDh
E0oAbaR0mpq4yzYkhkYdxn0XjslD2NNiBklhBtEhSS0kwhMIC0pIkR6Qrrvdut9ETtqb+QQk+F/h
Ox9g3rinMqY/+POvoU8P6JHXUEJG5HjIKCcBd4NPJeMw5ytZ/9ylCXpbNxueCPKUd2LgnFczSA4z
CEnKM2aQHs8klwMyPQwpdIR7miP7VLIWzj5a8yp1KCCzeihc39DLIjlLBzWsmxzfVVeguYKInHyV
ZFMdd9XPg6VRw77ZVYOxegjTzeAyhaQwhZSrhUR4Yooq6CBDekC27nhrfhVlDqnYN6nzfPDyvq/w
nQ8wY0nvdyaCT7fSQcFArJvdRteXFJnakkbbbHF12v75PvLVa7ZtNsL0NjK1OeJjtXrYxFvSFo1M
2V+eSS77Y3o4tdCV1nBY+KBSLRO7md0Pq4PE3apveKNVyHv/ur8Oawyk77BaRwl+lABbnXZyPlIL
qIZ9U9YAhdHMAexpsXeksHeghZS9Q9LgfgQVlJAhfSBbd71xLnCRkLr7TWzvgMQYVvjOB5jL1J77
gK9/NbXvPASfbqVDwEuOTfbY13x0uAcOu6QcwBc06QTSC59EmWQA3iCSFlZug2OBHdD1wc9DoLe4
f0q53rT2fneDZ4PTMGjj53CPhm1TVEbVEObfBXIJa/jOOpyoWrszAioKTrHapaqg24zXFyvTdwu4
qbl3mHWcCwLwCPEoNkxzjs9+AgFBCclN+sjTnW4cEhzeUXdzCShwv8J1PsC7pvIDzSmIyWgdFg9m
1uKwDlbPKn3AhvWJTwyTK7Uey/TEpsp06Tie1cphk25JjtnBykH8ByWHcE0LejtGM8pPapNQKaQt
TZiVna145VFeaqmEtD98aBpoFWpzNsyXQahFEhfEL5AUkCmtOiyNGsZLGXDlDMIwXgjeyBrXqusp
De5ETEEDCUIdybrTrV68AMTkcYID3zdk5wLfPXXzS2zvX/9q6t55Bj7dSvpAzLyKU3ZDxtXXOBzY
QXlEEqFvWLE2VAIE1jdbMZuhK/4qC9TV/GFjbsFLnybZaP1Ucj0nU9y9UkhjocWA/PXanjiuoxVx
POPuhsfB9Y119jyQ+uclRb29hyYa4RMUVpP1aWeKKYSNEk+1XKv24Tp7xVERi+EjheEDi2DxOXlE
ZT7KOZkWUqQXpOvON44GDuqoWDOlNaGoDknqFwDPB5zXZL6TCXy6lQ7SqwlffZUzQtSui9NtxclO
a+SQRNgAN4deNi+2JTJ257xaNnJ8Ah2ahWXDC3qRONtNjVQqdDQP65V8GFOijuhoWCxFwFogneMf
CgZahRTnDYul+leNgEjNU22EUKf94GuhOLnKNGbB3fgiayFeUlqlKA5ym/eRBU8gJihN6UEfmbrb
Lftty+BqJoEG5lfQzgeEy5QmhPr5V1P6zizw6Ral6XfXMJWDssrAl2bAqVvd5S5Bbn6td5TYaWHR
9KaKOqZEVi6AG+5BIxdv27Llu9+UKC5EJ6jKSWiuVAIoTDBjyt+JHF0aAdcr3MyD7CcqJSMVOdMI
ohD9LqUIBXgU6QVDo4YVk03V5gHsaTF8pDB8FF8jh3k3AgoqyA76yNTdbmz4HdRRm9/L/A44DGCF
7XyAuEB+1PT+9e+EvD1yzdLa0A3KzStPHcDrYIxWd1rfdlXMGVIAkEbs9VHLuId4Q/l6Rd8/SPla
sT3nVJYFPHm9TPYUlVLb4X16Kjm5sOk5rlL5dW4GVNbejH2ocuLklqA9xuDrAF2twtdA91fSlc9b
m5zvT+h3ubhwCqLENAmHdRh+gU5g3b55BPuW7hV8S17BifnBCK3CfpZSUEF+0EeudDvFHdwAAmy6
BOCOHvORbHZpxdpd+3pmpiWz2k7KEcW7DWr1NjbX8nEiI2cndFEl0XpmP1xcMqCSPpBM3fj9ZRcb
A92t+HyKNZqCY7XcT81gvHxTTFIQ0xmZ7cTDPJOYtQ9qEVEBjMxYGouvA1/yaeHdpieqwmGlzWKm
Qb9norMVxSDfYDgaBHm+wewYm8cwxBrD4/r0yGkhknk/sgo6SJEekC49I/ZgCUBgFaAYwgrh+QD0
ntbl9b/3r3/ntC5rLWW3qGsiF5yUyaqq6q4bH29/YrV8s0WW1a8nh1YNw0+Weecn4PB95FtnQmPC
z2lZzezU4eRBIP9KUHRm0Z08MXqdpBftwdmHsn/BMmU0GYqvA321ig8IOixgC33RcSITUe8ymtNp
l6M2/IzUDL5cAfvmEYx9uz7hXJ8eNy0EMu9HUkEHGdIDsqVnC90sAQecAhMjWAE8H3DGBM+PvCe0
yMwkM2wqpHNQWXYSAY2MFku5FMk9qpQGPdlPuApfDMGKSKvDtT3ybbamMfF1JZHZzM5fpqcSGYuD
4ix37Y7QsElzrhhK+PrAv5QYMM1bBuLrwJdCx6SPxo+1ddOxQl30u5QZs9OOr9qO5r/jokJOs7aZ
f9y5jS6RRx41LcQx759SCipID/pIlV4tbrMDEJNL4IH3FbjzAeMyrWdpqK9/57ROD3UJLVzbN7J/
yoIjrUGXTTOHGWjmzNdXtGsS3MoTQCcPTgN08g+PdC16bkzQSRisZm4ktWmA7hPdYdC1OVBnAyVa
QQla4OxDp2DbxuTR4BiDNbkyreIUm/NrzxKvUkq5Y46XTn/De4liIPXip8tKOmFXIpy6eQRzkxXb
Ea5Pj5sWApn391CWAPyg5oc8fSRbekbkwRJgwCsgMYQVvvMBZkzq7VHphxZG1EMOIUW6dx0AXBF1
JDKgTCaV5/ZDNrm+XWm4pRArrlqfL8tgT7cKxabol2CBSs1sh25K4x78YnpJZ266GuRAmZ8Dadjh
S9uxQq4OFfWxRf1Z4Ee6PS2I2o4pPTDlGCP9nhJavXZE9EjCfpjpu73OOB+XzeyPelybEa5PD5rW
lMW8GxEFFYTnggCS6ewVUV/MqF+4BBx4X2E7HyDeU7pO7cLXv68pPb0i7jOXW0l56VUOHPXfMAPb
NIlRLw7t8xSO7FeHnRMK+6wSR1idnRYbdYpkhDnfzdzw5i+O7Z6/mKCX5UaR8R/jnZSr+tCJp0SG
abZjcy2bX5MlmodGUdCT7q0cY1RTQapyKdZfDSWbor9pXUjmpA+chalvsZnzsYSrcH2+MV5aCGLe
j4CgguCgPoVJn1PCwcqUOxyCBYyvKJ2P1oJw23SafvydCKtq3IUwLRnmxyiqRva6wkfdK9omE858
3XHA1kaxsSXfs3Gm+LjSxtWO/rLeOxU3Js7aNNPMpMjhqXlEahdBqm3S1VHeSYR/80TMvXhVEgXx
v6Sk03UZiu1QUH8lAnP+J8359aLZcEKkrOdrAsLAa4c06bNTT5sZHnm/thxcv+DVMGkx/nl/8yZ7
UkFekzYypEeECxtT5PAGELC8QnQ+WoZ3nt5uBF/XCZ0b9TN0EnAKXDYih3L+61uhXz+kZmxUZYgE
NhThSDLqVVJ2p7mKGcCyCT7MD1Ncvd/3Z4o4mNSsVZrdCUs0fbdgSK4fMEq8mPhPSw6QNzWKlWIT
QYU3vki0zXkkRbgNhlZ9jjrMSidhjXicjh8wPvj6AaOuTw+VFjKY9yMbqCAzqCNKekXGwQ/Sh02d
xal2dyF1Lqgts/TYpAB5/J2zdKx5n90SjzMqKHIFzWR300lFH5WuKH+yIFBiXmHpbSexTTXKuMej
+sJvNKVjOS85537JVyNT7Z5n8rRNmlhqaLzlMSB/GvU+yFDOqZt0wjpz6z/sMtagHIojzdOtFCo4
5Ok7t3HggnTrxFQqljWRFXlTcj/5iInHPhVfs+rhNq7dBNenB0sLKcy7kU5QQW5QR5z0ipyDHxAw
o0Jmcr8idj7wi0nb1zrHbpHZrkbMYFckxmvJQzfbhwOc0hVBNyvNHQ6YmHBKsXlkH9ltD76UHzQm
msfdzHjhHcApN1GTg4XZCb596nmfe0kzpMSD3KVcQPBf1tpZZA9SOVLdXeUzKCL1QH8CcZzpIdY1
iWCGeInpvq88gHMqUZD86NcJgOvTY6aFLOb9U0JBBblBH3HSL3IOjkAAVkGGEayYnQ8E7ync8iEj
8uPvnMLtjlT5jBYKF9cf1KZesUAHQaldm5jSLoX1HAu6BU56TdPHZenIWnPst7FC19Pwo1OpWnnm
HyDjCoclUwpF9vaeshXoMsOYE3zBxGHNZrsun9fXA535MeUmj3w9/lq/IJ9DVTysom7k+HdYP2Qm
c50jr1juOiUZYl3Pz6yMi2oxfJ5AMEEJgdEHUqRvxBtcIXjYBRBGsUJ1Ploxd+uadMitTCFqTYmu
ZeSYajwX8dYaqWiB7j3PZJClFG3LC02pOAezV2vpvt/HIF1PNOVZrVZWtn2eyCzlppW86ZqwkdV/
XlJjIVjCh0QRw8oJqAG0NT2gGkWs6+6aKzQIfTpNu1UsiTq/yGwLM12Jx+bUlV5zKq0KZ/34vsyr
04Od14hg3oloTMEygzaipM8pYvPyhugniwAC3ytU56O1TNnX6/T+9e+csuVOgPoZLQWEDpUESUoX
3HdBviFT6lNM1siM+SO/RwZ+JEpsmjBulKBdXH6GPX6mO7au805mGBDeLzqJ1JdzR8VLrA8rbkEb
IxW6YpCM7vLCWjO0UEkXNZE+YVn6RvyRhuvbsTsts6anjp07yYoZoTIcvcHjTNk4+e6Y+4CXtOoe
KS0kMO9GLkEFeUEfMc5eEW5wg9jhEzjM/gLU+YDtBrlvQx6bj78T5LzWw3LLGz/tS3Vs60SrKHzx
1LZ5eqNIAS0FRKRamHNObgLoi1BZEbvcx33+cYmQgh+IWpkMF3rCUbCilCQR0mOrCknjrFovbvZq
JpXLMXhfzvxqFE2y17014dhbpVPSIRm6RRkJ1V1TambY6HImnDAT+LKZbQreGGj72DFUWohg3o9g
gg4SowcLUj0j4uAJ4cMroDCAFa7zAV6szWmNjnNLXrEOJUBJpo9CSsRfdi0LspX3rZPtfLoNTrMe
Xh8UnkVFRXRq67faopEbppCXSK1MGdsKnFRC+AGe+vBR316qUCXM1Qcy+DmK2dR7b+7X6utqFCm4
XvdWomozHw5XLWzo/OQFoC6bCjXAC1/Gienu4y689yV5ZXfuSsZLCznM+xFP0JlSgz6ipF+EHBwh
fngFFgawAnY+4Fsmb5VaavkzZ+525+b4jJbcFLoC4ilZ0UnxmYsGM2O6lC6jUdleOqpmey1Iy92n
gDTuOP02DlfSPxVU0pVkT3Ln0RN5Ft6AEJnxC6FSuCZLp6x/MDevT7G5VHlvmN8fDqnavcs0NG+u
cpGGSO3aPDdUVZRdJ6BCCcZq0alVXj3isCt/HZz3Ui8FRreTEaOlhRR4AvEELeRGH1OY9IyQ4Qjh
wymgwP8K1/kAzzj3Y8297Ba1YncpbP1tUE7mTJR+VyES5bacqpZpgtGG5LX/1D6o4k3D1CDIofT7
QFTI1FYqZeAxYqL1B04pUFHkbgojkz22d7pMUuYFL3jVw+WBL/Zk/lhzOKpRHIAtfe3GR1zeq400
BpN+SxTKUoSa7MIw04bj3MRmnyop7yrLfRxyBmgGTAtBzPuncIIKMmu2O4u+y50q87z5QfxwCiyM
YAXsfMC3zNyZA/Lr39fk7fvqvuVWkVO/vgxJqRPmTE+Ky55QOygsSzE6X7f57aiKnyLPTz1IHADa
02v63otwPbGWAiTTPRm/MBIqbBhCWb5reArKi3KnAqnc6s1PkqkQPueeC+51FUqr13XhzKN766Zr
Ualk/DD5xmwgVKHqWCl2XM77DUb71FyJ/Z7KdTDo3gZUmQGLj7FZdyOdoILYoI806XdKOfhB+nAK
Koxgxet8oHdjPXLTkffxd2I91sLhbpWhnfxEWkGdqIac0us1jncd0l77wXd5eDe5Y+RunKcvwAS5
Ej3RFgtwwwBcCXcgAJXkj0JZFk3IkIpA5KlWeJAdV1tnc5IUkAiP+G1Nzn0VOKtVmoo/6/5yHBel
yaNWanVRfe7NtgIks0TKvvMNXtvUXNVmU1nsM7g+PWpaUxTzbuQTVCQ2ls5U3CcSDm6QPXyCCPyv
WJ0P5GKV7nf812e0yu5tX1RQnwfwro2l9lfStxxDp/S5PglQWXDRNFHyXFt9CsPfvuMfnAALPhr6
d1VO1+lIBhPTyCSQ0xRTNlW5qCv3j9lIhdhUbbXkxgHjvg40M+57vI8o+uVcKlrVuX/posrDhp5f
ex4zNHUNYCnF1uC7q+Cl484owfXpEdNCDjyBgIIWkpt9IEx6RszBU29R8HuekqUe4yi6QHY+AFzm
rvdWj79z7rY7XelntKr6rjKSK0NeV8LSJE+j8zUWfSW3+UzreFSL+SEByqIzU+NMzyZBrqFdG0/y
5hYZMvWvBDACuLyFoz6Qi32SbjC7R5IuBy+pRurVocNscO/ry7wgz+Oqk1F1SlZTqkV0jojW4Cyd
ZJM7zBGOGBPxqNF9xAD2WJnm1RmD3cls13wvogkqyAz6yJJ+kTL8IP3JJZjA+4rW+cAuZm9dC1K5
pUJZvZDNTU4KrsbUBKZ2NaQuUV5nRek3UtQWgym1CmBqxt17rOQtFvGv+ndpAIhnkqerqZCInIwA
GwXeZddTpTWYSYQmiskkDRDM+zrQVOu1fvr+IusNdGrJNhlqvo3hXO1NUf3BTwVNMTpTN8F9G3fC
YK5Pj5cWYpj3h3Sq8VSLvAFY6cewkIMfxA+nwDL5X+E6H+DdM3ffiiy6j79z5pY1cM0tneK6Sjdm
6QG7nIZQ7Z6yfxzvKd3B0PuQmrW/d5c8VnW0AtTCsV8yyYTMF3mo8+/2oZBoLxpZiQz36R2k44zo
p50gMhgh6xcs4kwP674OoNUqfuWUN0nKQGhVXPjcyzS/p3e6brK/To6a1GITauKLNnNPKlVD7cy4
jJcWYpj3I52gg9Ca7bvUqwjlR7o4AgB4BRjGsEJ2PgCM6ZuXyTuvtUXt8izy7lH+BKljyGhKzp0o
UKqiqAdLFwVsjSgKvykjZXe/cvKRka/h5SSXtJ37sqpU87ycZwd0syJ06S45vAS5oM6ARfJ+wbqv
rZ6lVbylV2Doni6nj5rt1a5eqpIN0XmlKra4aikCrvCs3TwCjrFGVNevoRf0ePIJGLi9bpZO0EFs
9IA46RlBB09AALcTGMZww3Uu18vUrUVm3sffOXXTnQ/nM1oqpNBV2yUryLPtoZ8cMtFoo0pRZEkl
ybe5kWWUE0AdDENYG85QSlbrJOX3yL/nxL2ZfKQ+i8yIdtymKUDlks5aOcxMkpsobCalNYN9X8f0
VasUdtjS8aH0Fq3q4G+XxWok/tucrgeWGtbcN3EqV0fYb3W7zkdcnx4wLctBTyCgoITo6AOR0jPC
Dp6AAW6Bh1GswJ0PGBfQ9yxv6Mdfgb5mR3cL+/ZGeQGd1amGQOE+p+9P6PS0tFFooG0KtDwAHVMK
oMtKN64jBbHDL6lpEdO/U7tKOBAcfxh2KSpIGSg3KLrNKtIVDKUDOzBHeCmRNQRfB/BqlcLWTFvi
geOOCukku4UUHLKUcFq9U2sAtuqB3w38NpRbDCMf1+mB6zMGrhby4AkEFbQQIb0gWnpH6MEXcMCx
XwSNZAXwfMAZq/d2l2H6jBafG1vftQvEh2Unt05DV1S1bBfywyiOXfEm2hxOhOXOAsLEhdzqAZsN
G/Ec89+zXFxAeH6CTCXr8wz5PC0+6jSrsFqwkzfZf1jnj2L2dRXYHjNMVapm3Vu0JEClbk7yU6Zk
5XqvPqvDsnVc3g/jOjTBwXXy1JZEPy0S/Wi4tJACTyCeoIXg6AWB0juiDq4AAX4Bh3GssJ0PEO9J
PQNP37/+fU3qtpR3/4yWopgbqWidNhw1fXxxqMebtauY31Ml/1CRYZxfJuKknBLi8h7dr3d+oLUr
PflfCymLhLfMWCaSKSst8lScm51mxfkEMzlR4kL/VVgL7Ps6nHbUKgo454nSh4a3S8CxU5Afbpln
MfrG8gtXdccqD7tt6rr6/HxdS9Um3YdGO68RwbwP0fh5Cw3KiJIeEbJ5eUP8cAkscL8Cdj5aBrvt
d9TWZ7TY9fFxc/AAMwQv1LmrSEoz1hJqhfleVUo7JeK+qzKIHiC6YRK4wrZIglrkOcG/y9FBd5et
LmSy9AR0kAkTV8dZQRrBUE5hpZ+rzj0EXweqauGLwRNFWbChNVlT4iZCyzPnJyV31qIAX1Ue8BPV
4gl5eBz12C9dCNenR04LgfAEogpaCJFepmjpG5EHV4ABv4DEOFb4zgeYy2Tum3Qgj79zMo/7nf+M
VuPE32R4fb1lldx2OCS1gseL9iQkPq364Gh/kSgR9FZJrL3hvzDhPW4XvMMOeNLX8e9TAbkBvdSM
OezwOqmrg9yTu81SOARDThKTh72Pigfg6wBerUJNd1LOvA61UJoJLU/RrzhY7ridy6BETIlCyifk
Q+ekw8zXfb+0AlyfHi6t6sTWAK5V2pQQHX0gUvpG2HA0IZhcAgu8r4CdD/hiMvdlcZ7Xk8AM3EEn
oEDO19rmVaUqEm9aQXWMcWSu9rgkvH2rKqWXOClpXU3pTtPF9SkvoxK/yB7HE0X5bYNW3l2WXZ9J
aS4J+W/FPM3DbOgvsrIsTv59dblT6kMG4Lofa9ykUnZUbVCvqhFCr2yX4Kcq2TV8VjRbLmUzrpeU
69NjpoUseMKgihLSiw2ZFkL1jLSDp4kCnE5c4P9G61yQM5Sv9/1dhycyC1yo0urTijacwbLhobhR
9WOuJknaIX11fmQnnqN0QtJ5YCKrX+xj1GzTifWL64lsXJdKUCi46uxjSlk2N/rIQ5pl0p/iTmiu
sqxE8Jsl+zkGXwW2apXMNFcm+KagQ1wWd9ciUR91i1yMba6X5qlWKT9YkxrY7vKBjk8P16fHTAtZ
VBcK0ldVdJDepI5M6RNpBzcTBbgEGbhfMTsfCBrdf33/+7tMaEdSkqDXK/H6/3/7b2//5T+9/48b
+7/rx/q+vf5vLiDxyPn59qf//Fnf/+V/vv+raU1TDBlrymtZvUi9nnDigeblf4tysR9SrDfV3Px0
q2eypEmT06guJye1ge+lnJsIoFfWsZHRYilEm+hwVTtPLudSZGQdsmJMAA5fU+28udU6Vd9wyCkX
pYE/acYVeXfHM0N5uTjatfGC112fVcbANaObmQzUoqo66ugir07Raokw49nHzMlHvxV/rlp0aiL/
v9Z95VKH/5rDa/fw9ekx00IWPIGUgpbERxcSKkkQNWnNDSjAp7EipnPB7XygeH3y0wXrZk+J+dXW
aGS5kACjqKG8j3fiA8k02JzGgbTfc2OtqE4pLorM78OhE4euTi+L85p4TO5tJNUwlU6s3EEdGZzQ
q7CuFzND0cFwOTS5YZ7rGLNb9KknGkFSotVcbIg+Gtke1HedhkUMHyzwb3A7nedTLO1XsGJcnx4z
LWTBE0gpaCG/2YdESscSdXCU0N9MVrfLrnKjdS7I3VBe0/f1v3X6ytHVKGNDVyCN3GGQg2IyO7Gk
B+F3MvvrjeriPW/UDt2Ms/So1AaQ1nPk/Xq/h6tSVKmRaDV9jnmiaakKWtPnMbmXmXI4ufeBbsFs
DbvNyRVuZuogYFQ4BdabDP7J9zYyWJVhuRLDlXR0Ulym+p2LJPzMoukgLa0on3oUYX27ViWuT4+a
FtLgCeQUtJDg7OPg9EZhI797juDKZlU4aQA3YueC3oI06UL6Ns1gE2mXAJY93UgPa+Wm0uoH7ovt
MM7zu4YbDbVClAmWRHNzgzVkN5goO6BWH6skH+9+YeyND2bOHPqnpvubXKGCTlfZXeh33HHU75DL
VTA0sBe8+BwECYt5ri+Macmvk/sbYV44b2VUPvTRVPSNvqsqQMGVfWrf4LYqhUj1oTxZP3j4+vTI
aSEPnphyCkrIjz4kVrqWuIMnStXC7I8cQ7jwOhfsYl+nBdhoqvGSyCwSQSlanDbJWPxODm80pLh0
qqZAll14yP424ZQHN4ngtfsYOeIMDl8TBxYtmOeJtlPjaTek8pZSL50NwU5Ih9T/Zss1ICiduyvj
Wjp8dUOqljx1uB/DA5RauLvx8dqGtxtVhongqu6bId2t7uoeB7qSgNQZUDR2WsiEJ5BW0EKO9CLx
unPVvzBXOZgFK7Ie37CdK4b37HVWkOmHPb2FtqjojC91AK6ojuQE99U1aknB3+eHdMb9KSxo7gtq
eKUNxf1FqUsi/2aQD+FJSkKXw2fo8DWYF7f4BPFE2+/CnIr/cx+d5IWUByIsSzwNeUO6nO44rhFw
fSFOS+pGnmikfxAlpuXpPhqZB+ucXvKq4MAs7QWxmnyOd4+hqjhd4B0pHPFpk/YOPwoS3UpSQQsZ
0guydd/tWtnO22222PN9EIC7jG5p/Az567jbH5CPayZ80ujk9taCKb+lDhNofZO09jO2K+H2cOiY
pHTHI9zVO8UlRQcw8z3JmeKd3bKOoYfvbTtBonZWr0xt7WwP5yaZr8jFy2iHrbgTYAWliA7XN9hq
jeT7W+OladoRyKSEv5sym9Nr1bPwM10LgBpjbTL3c1917b66Mw/6dVDaJcw+I71HCulsmPXEUW0n
bNGzvIkjm7heNdzahNBI7wtU54rbAjJpQXpqfV9BVpqCAFmNnshS8IMqtXNfJZDtBcv2RLFDSYeA
fhDBTUpO55ntxztV59ERDMXfB8zZG7B2tRqHIz3RlIw8KE0P9+o+ZthJdd+DSF9zNUjTA7sKvGIU
XN9wE+Og+Fe0GE3BhKitXBGDXppSatJ7Pcg1ENlE5ZEujqvPP81brHsj1r0RG96uzY3Y4fuRVVBC
ivSBdOlbYg+mBAfcgthwbfP7OLE0/gHs1PTOC+YgPvUCP7qT+OIPqDK7E/FDx1R0a7G+Zm2Qx1at
31aYpPIhFDKS5fDKOXwN4sWtRmCenmh7RAGCeL7W8OpDO7FdN0+j4ZghZlmEEqGg+7I7dUseETzR
pLeDVivYP+ilkee9zqOPfMfEU0SxwW0d+NM3vuMX1jouY1PpU9sufQtJXyWloIL8oD+lSp+4EJoZ
gQCXuZn1C6zzvvzvb4Gwk4N0StRcAO+LUoT6LFoW6lWwlM0K++Qkk0LXCTC1qmABpRQRLAU7JGKU
UrBkpdW4PmZcn/qMdbeafDC4fzq+Bp35AR7uoSvVAP0OytqZo5l2ZQSrOqXCP9c3wGoNEpwSApFN
qRU5X6qHlkjhIQXiMTA4vGDRiSrftQbhn3NVgGsjT45r5MD9SAg6U27QRpr0KTHDSq3iDmTE8gLS
uTZ+BjeXprNUFO9WaNZ1bM4WT8dBhGjqPTlgj1DuJh/i3b53L/ErkJu6WcAreyURQErmMHdZsTvl
WgD7us0kj5QKYT02HRJDT/p9hBfzrkDucfEzKiXQSZqW/HJ2X9/gJktq9xNN3vfQas6NTy8thbNk
sZ0KrurOzjtJIyplmFy/YsvB9ekR00IS3I+MoILkoI5E6XVPFzMSf4t8U8nML2CdK3L3Ku30L1Mn
0h4wt1U7QmAj9vcfVICc5QwkVjnFJ4l+9Cu0Sb51iZ0TBtZM7hIKSxQ+M+F3cviaiP34ZVrx44k2
2MtBi6itzSATKkwVl+BoBvYGo6Pt5n5eXSDPa3SwlUS11N4kANEO1IOwcgKhpl+Izq6DndNuWxTe
hNqhEfY07g9QtVsoI6aFJHgCGQUtpEcvyJS+93qxJADgFYw0hAWuc8XuZ6DL68M8gY6q3TqUXEDj
s6QvvnQQcoPeURhgh0l5e4nFmedfi5yC09KuaD5gRu05N+tJX9lLcZ3YmdROzSqdadkaJ+YbJ7TN
EBNlwkyWqka9Utc8uBmFfAF60Zr2a4mCrHVVj9AahAZTA6pctFrkCFAvjRNmwa6ncw3zV5xga+5S
WR4eCdWgAm4n4y3J11Me3D2lFFSSPBkI/dvcp8QczDScBsi1ra2jTOjHsqdcGgvMJIr5CWZeccPM
3Ehy/CNn8PEuH6oI203aGpM+LlEzRzmFcyLTBhr4PLp1n1XGdLJJtgtuF3Xo2deNOZgQKpk5oNQ1
O+hj5qA83PdQavDgapRgdigP2BwBVzfQag0luS5dAuymYudr02+JejHaL2wy7oqjemA5gVe8eucI
6rgXbiK1taGaVRMGxk8mgtYC00ByUEei9Kqfgx081Owy8WM38wtc54rdN0C/zuAPoPuiLVGjY7gg
S3N7l7Fs5gSU/zx56vTmT/eAoTNIcUaPqTAEaG2GKCpBaYZ06xO4PqUMrG6Rn4wnWKGCVs+7++hK
oULfzPrgauijBrujjmsMXF9g05INnCdaq6bUlF2bHpoSo85+25Yvfqpqq06gZWzasWazwbo1QVyf
HjUtpMETznxiWkiQXpAsfUvkZimJS1AS6wtg59q4t2LOHPPaROYkqF9fa0F9LFoSNXqilPEPUr+/
XjV9HV1PIUkN2LUspU4KFfKUkHpStkdZBYeLDxCYfW/FirdieHsXhOu7Ud0GnZ5RfpLpUV5z5Ouh
7J45GlT3E6tDaYwZAdc30GqN4vtbo2bYQKpsxtRH00eFvqcnZyiU6+E8dKlJsVU9hjpuRS/Xyqfi
a2TB/Ugp6EzpQR+Z0q+EfTGkT444BaeZyu1Y1qqlcc/qgLq+1u8V6lauz9knjZ7QhvwgYLu/a9PQ
CZ2ZPthT4PK/rorVrI5S6odjHQd6a8W2Ka8DZsaAOnk7JsNR4iiD1lzmwi7nc9PqGJSp66Tyr7Pv
qSTLF0cjt4tVzNOMgOsbarWU32vYE6BaoZcV06htmfpoirKk7xm3msxVPYrBRm+dbZBKi4fKcXmo
MHZa2a5G8gbBwGFayJFepmzpm91gMDUublskgcvvC3DniuICOUlmLshnqVecy27AyWs9gfgRsfpJ
p57ecAZIaEaJdBvsnBRBTIJsBWOEQ9ig9Bg1kNNtwuP6lJm2uoWjFU+0TmotaHWn09JUlGcevXey
nZqvkakTJIMZWUIYiK4v1Gk5ax6VJhpnOW2JcAugF+cXwPay6RDe8Rh0bJWLkMtrXyOpriIL6lgo
GD0tO6zpCeQVtMK7S6ZqlJ/kVZDsg69B0nwZuGIU7R5c+3kvfkH+EuwKed8WjaganaTeVOdGBa91
tWX2aXK8jLzgzTZi8vGgpQZ2fbJdmkqxsttxrXtcR04eWgT988T0owtKaLLpo8u9snuB2Q269mnp
MLfDIcckDS2r/oQWH/90SH7DdFoh8oQemg799NxIKxJ52d7gEyUX/OP0a7D3UFvXq4UseAIpBS3k
N3tAqvSLvIMjAWFWhRUHkxu2c8XwBtw5hnqjSuQNeF2UKWpMWcl5m2KGM/0Shg6nr1UU+sxwRjqT
6lwMWQlG+6HdmuBB6VUKZ6r92tFwDdzJrZZINYdTiDJyHQQxdRvDu/Zm0XOfpRvN0RDD8DpwdWII
uOIE3Ha/LD4YEE2YRKkRv4oTfIptTJFXwGF+puZSUc/idKq94J+6FQG300KXsF+9Njc73rUhoaCD
7OgBmdIz0oYjgWA2q1/W432B7Fzx+wZsuZ1sM3cySQ8WjYoaneKvsnyUEqpQZzyedtakHewuf8Dd
luSsvDL90DdcNeqH9puF+nrbtZpvrOWoTYasdofvbaRcF43IZqn9vrS/9GkFqbkZiSD+uQXrZnxe
3fh2e1gPV33URhQVKPmOTb0p4S69YjqGGxSYJMrCOSybe77HgTEx8ozWX2pJgSeQTtBCbvSCPOnd
alLzRYIrGCajiibiDde5YrfgrMD43vY9rzjzOQhvE30SKeBMcGeUaQdp7dXkRt2np+ieMSj+kKen
VFxyK1IFDpx0ChW5+IYf9zW5tvb4Vss2bbceJbQMWj2RSVEoyF169kzqy+AIbwZXXczZ36Hs6xtz
tchD7xro2m2QRrOgvqaPZvueRL3daTbrYeeijSyCsmQ0HMLLtTPh+vTY/aWmGIyemLIKSsiQPpAs
fSPz4Gonwyjbnh85RnFDd644/jHm+yZtKYaUwNxZ7N6VkrEXEnnJ6FGdRE9VoLp8ZxM7KL2pFL/t
+2HUpaWecS8YI/iAG3PKhVUtT/5Qb2RV2lwSN+h0CiCzhii9Jz13jNPmab431dxOK9WhIXB1i0St
EVbS6iqdUJqyjUwEyUYY+m5b5Ig6pNwEcYXOkhUUlzOBEohX79M4a5NtVmZsPYGkghYypBdkS+9I
PfgSHC4rKrwYxw3dueK4YE6moi6/wRX0fdG0qNH1jh2khFdEZE4SsPZqmlwz2QbBVDHpMt6Eu52R
CPg/iNPa/Vm+92rFe7XmT3zV9rT4ifio2hlpu6djVyoJeu8cEMzX65NgboeWdQbB9Q28WhLPvL8p
Chg6zanb6aEpXTM9N44Q4okI+Am7TJgqIcco6h65IQ5fnx45LSTCE8gqaCFFekG69D6lHlwdyW+e
wuBKjOGG7lxx/Ab06UL4am/TyKmaJovOhU+kDDIuP42qT9+PSgQTya1JdZl2ZqK0wWiuFYU3YWeN
VjxGiS/1pXjZ2FjXZgAkUHJU68vE3sy0OjmcMLNiWrd/lPowX/0gy5JSbLDzwCrHt/ECXq3RfH+T
FRxK5I063ccU/Swsg3Uq/YjirE35i8iYiNZt9zjqPpa92/Debb9ayIQnkFbQQo70gnzpHckHX2Q2
EMOgNpxg/vJpvxs38M5V1eWlsgJ/z4dPGuTrIBGXwtSSquP0Ss7WpMDzjoO6wuy6PK0z6bZ2eyWR
tkfb0hkyLl/fC/YAPeu6KcET95IGKKh05V6HPq4J9Nspn2OOKNHoWn7a+DMEHwICcloDX3ZKKutV
Ea0p3EhPcth5ht45eMNX2+yd5JRUxaOo+359wrg+PWpa2VXViqUUdJCfA+YI6CduImOqgiesr2IW
tDSGfV3IlsY3kMsEeiO+THSm+TwOYs6XR2PZDLd8VSykqqyLZDLOFV8Sh+MdCLREzkUyTh7dhhD2
6zpak1Nxw+dFigXsrqY0cy7SA6rT2WvHTGNu+kFd7M37hmH+ub6hVmtQj53sUocptUrhLHpoaLMP
NDA6J2KI3Byhs+FfIpBb8Zf9sortfIEdM6bWlAb3I6WghPToA5nSN9IOrsBhcrsfHsC+TOxvprV3
boHxawc3Mcb93Cjj4q+TSeKjWjZrfop2NXJYoQi1TqVJ+s8uxYEz6ez2Sjo4RSsIkuxYV3Tr4etT
EavRapQXQc9Zj4tS01mGPjpVtzmhkyPbXHW2DYUa81pgqNnCCeDCW63RvOGo2oVX02qkxHcvLWOK
kMuK6nNMrtpmr6SN07Q+5o1Jfn3Ej2Ss5WD+jiy4N19ZY0mJKt+KhJlRRrhMGk3pdM0PWMApeGkA
C3TniuM3mE+fhhX0vmhd1JjC6qFqofqIShO/xPtOFprkCBsiVrpTmHDIdankw+6CyvUS9okA3EUm
God3nEXswqig9HzRIb6GHjoKlU4+7cFrKLib+XT0gPjn+jqz0lIeDqlZUNI2Uj5S0hT6TjbGWs9O
Txy1jYLUcIrqhBHUI0rsHb4+PWpayIInkFLQQn70glzpHXkHX1bDEAHf/c4e7wtw54riDblzXnVZ
QyfkB4gf6zQ/LLHpY5Et5SI10PxWugYFym45AuUNizT5hfTd3O26hIu/PMoKCpvj3s1yTdrV7tbr
mOr7G+kcTWnmmtjdR0dpj3sSfhjmymqazJtTPYp5daNelZUowh4ahbZxJ6iROFW784yzLnZpTfbq
FDrCfHeaSLivx30K4fr0iGkhCSezrE6g806W3MidhEzpF2kHR+AAr2ClIRyrCnFpfIP3tJPdeCds
f1eQiKSqkn5Jngg9ox7Qgl9JKJnYHnclcOSJ4WKRkiV4YwKR0QQviuM+tHKtxKtXqy5PkEooaLWD
elJaETgyqO/ecAd1oYOh9438+jxBecTjoXSmNTAJSvoKNYFWc+JuemmUJeIJu/oomGqWCXirV/qF
3eOYH+lrz3agdmDstPLyxJQVdJAg9JEs/SLz4Ag04NWYkUd5we98oLlAT46sn6Hviy7GhVNTUSr1
wzWLKdTcK3muKfM6IzUyoY7U3qbG8W6vpgO9DHHceIXfe7fivRu7umKjQvcTjXzMpkSkBn1Qf3f2
3Otu0DElkhWVkDD1kYqvLshpje7PEWnpkik11YQ73QNhGvTcVMIVnhrlf96qo4i2iOQ+bu0i16fH
TWtKY96NjIIK0oM+MqVfpB0cgQO8Gity0i24nQ8Uf4Zc5pNXe/qYC3N5rV+Y4z+fyLNMIv852YmY
iSzL2k81udUSwIQHZsPT7DDqh92SZkI+ztu3Lrpf+Vo5u8vOzCaAvVXFQdFFS3dKDFGfipDrg6X9
4qoP8v/v2gzEGLi+cVdrdFtcq3P8TjqtknTLxjKcm3ZyjchXVRw1sk68wWvbSNfBWfvSuB6kXOXM
Pt6RBPcio6CC9Gwsw4RWiAPSMmOOwAFOjdaIDBhLjNDSWlAnL1qXgv2Bell0MbSmxJoToPSMU3lC
/SXUpbZSKHOWJakrCX/G2jzwUCrsxGVPKOzqj9vKxPXpupq0Krt9PdHKvtBqO2o37bLxQyKImzVB
XPVOAN3wm7d7FFzfJgi1Zp7QHlaTw3SaqxDQQ1OZKnpuyjMOTy3hpQS3eCm5humxX+Pj+vTI/cu2
+VBfLKughRTpBenSO1IPvsDDuensuT3eV/zOB5rfYD91rhP7154e7MeijqHVE35XMhdTNh7fkUpo
PPm2cfMn33aXv0i2IduZAzl17z3ybR/bhfz2fuXaPjZl2p73kWnbzyufUDLlLhepbi9L1LBkPCXb
Nlx2Ptvivo/VG8ytobv0RFN5G2i16iq/OGIpEJ/ep9e5838nNufKCk5qO/FfjyVI/yChH+P1L2Qd
38oln6DkTOU5WZ70i6SDIzCAVyOlMayonY/WjbgTpo2NqJIb8Xyf2aRWJ82gcon0THzB8IzQdo4V
VLakrIJyc950pTc6nNV8oh3RPocyJofy3IjvDtivt4reebYxICkbS9Bqg6JGHMjwZ6SehlYj89X5
Sud+KdAZiZXp12wnL6feaz3ROnEGmkmVIHl6IQESvbeczVVLTsV8oKchyd2tPmeEVqV77P5lQx9T
L2kFLeQ4+0C6zmYluQdPIAK3wkxjuNE7FyT/GPVXs4N6vba5n2516aRTwauTBLJJ8iUPu1Bs1MPE
4DJz6cjeiTen8rDjKjM0crxe+4W6Q/hr/HtFO6/7WykXnUbwQadEoXBv3b7jwc+c/cN89o4ri75I
VEcLvGmpPjNPtF6s8SGHmL4UVLpUaXn6nnauQzzhQz5Tb5O3SPaxihbxuNB28L7G7F/wnKPAYsfn
y+nUCUBQD0iVnuW7bo5AAV6Nlcaw4nY+UFwwJ53OkFrmgfn+Y53ru2XWdWic+6MeKpnqCqA71msK
Oh+2eJCAIpQ1E/VI7dCVfb8u9QSPqCeo7PvFLazLPNGI4Dct+wjgMb2R7EdqGxQ25ss+M/mywKR0
WWNu5NVyUBxlw6QDRjVTHee/xXpT7J/QlFIFrlCnUDWBAzyjaNvtvMv16ZH7l81ZGSypoIMM6QHZ
0rMVNuYJNODWmGkUK37nA81vsD+e0Jc7DOvTrS4fr8RpO1N4ATuLwv2P0JJMB9dsuwcZKaY2BeDD
GWVu41Gj5wt2h/pX/M9I6o8+Lo5O9aLUCEjGtiIzHD3P6d3MES4z9n/u2fzPqxvyrOU6+d7WgwKJ
ME7TbiViDIfsHbu5mdoU4EZLJ0eo2qxYLRfgDvOve/w74S66HwkFpSk5ekCe9IycgycQmLwaJY1g
Rex84HeBPe2oQ5v2SMYjpNuqoSFzUqJQg5TqZDodFKdylP+h6aTjx0xViRpeRSDkcDyR1gIq1/zC
gW+/JzjTu+mq7s2H8uycM6KglELVdBvHP46EeMnDiRLvN/M4N/TNvHN9bd9o4RpQqVHO26KteeMA
RS/NCym5UYSlyy+RIR5+mwIq5hhIjhRIN2/gouD03MDpad2fe7/oIDd6QJ70jKSDJzCAWyOlUayo
nY9WJGdhZ3rBSlnIpHj9LgXUcIUj9rATVKLLqKWpb3EnZx0uBkxg9myKCiXyf8/LLs1R/cTrq1Xl
E+YITaVIgFLrQb8pFpp+u8KGg6Neo1bp0PQ+NAKurilMS+mMuN/FKwlAbiQgo4+Gd3Mfsm5089OS
UzWL06adHCNo2x0zx/XpUfuXjT2Z9BV4nZsW8qMX5ErfrillrsACfo2XxrFidz6QvKeyMysN7coj
45JytORVA0OuHTtmFMlyVjDUHqiQ6DNhw1R+YZTdhyqJR8XfWYJh87lsJnwOJWxgnqx7uVWqFbfk
EYbpdFGaYx3uo2GdbcQ5loufrmyTcOosPuKf6xt3texSQwkUli7tlRq6AfogeTh9NyeC0ptCCfU3
+MWLoVoFewfEcq06KfHvCe0N+T9JdOfab/lwD0jVmd/ZIZqniYPTSoPVCBX4mqPlbv2MuT7SD8zb
qn9Ra8qMKissc4d8V5vD6amyglo6O0/pCxUHts8zM7irJf0QdVbQnQbym/dpxddUWeF+e52Zkk/L
nYzOyf1OS3i+OHLUON4rlfz92+U0cTv6qjUO39+8nyNKUx8OxypI09LRfmr5R/OlfNlRGIfo7TmC
tt0B/1xHZRz/IllwP1IKSs5Im0lCxw5VS7TkDU/gAK9GaxzvK27nA8UFc3IwDefOuzFvdxrBT7dm
DUEXuM4lzl8OiskbVUTx2SMY7VAG0uxz08RbspcH5kw20HWCMNqDU+UstdLdIr0Y97PyBSVXoWyH
tJ7Z/fpkFmE6ZROf3TFIm69upIlA4q3dFF0SNIjHPU1dpUEwp5bNmu/m8xJ1cYZ21Nncz5l7resJ
l5U5Xv87+q9EhCEZp1zoHtOo+kCeSh/OicwcuWy3eDVGGsGK1/lA7xusyZ53Y91v34FPt7qSAqWR
VHsqqVhDV3yP8n7Jks9cmQ48MlrPqCptmSmr021hmXNbW6ol2tLn6pe8NvtVkGgy+Yl5Mh0XraZ8
371RA7PE7N3Sxc/kcZhTvJnhn+sLcVqK/eKJpgLMk1JzRCo94GhEv2SxhSMyzE/M0ZTpLeU9kkQC
cyJ+Gbd/Sd1mOOQUlJCe8xLb+0IOpYfjXNmSj2RejRW5p/vq87G2bsydcOsbzO8sNp9udZKK2xCp
LfpB2CZ2L0o54PWbK3O8KdBm115LOziCeFT5t7Rq3delcRlOYsF+0VkwqPxObIaOVJH8m4jg1hxr
ZX9jLC/miQgFuO2qkYdWeDGZzut9s16+KnYwm8qM8FE1FWK5cGwl2rjg36hjm3JbT9T1b8pYyQio
1BaouxZ0q/cvzmOiCOI92yiug1hlrhO7t9lVo1riwVeyiVeWNhDTSNIjB9HaWpAnHdNw6rUb+bEG
jtPqm/aFOyZz7Tc3ojjRqM/9ZnKmqsyeaeYi37utW/qaZ47MfM3xl7o06kMa9YIP+ab0GIfvjTSV
3sGxo9QeZnjPXVX29eamU188gykzONIPLTs4Z/rSG3VV50um1ZpzgKuXRpUVdkXo08lgmb2DE79N
awajmDuy61iWnByPYhD8kjnMU56K04D3cOwsqWoqudI7Eg++0lUjML0bMY1kRe98YPkN8iTmupHf
H3Y0KgtSYhGnFHE+9f5V/sJK91+ybBlDdSIm7knOmzXSKKkMT9FaXVyGp18F7w9fRxkeWtVH72rN
VbloNfZoLcmGNNxzo7iWOeo46SS++Dpb8D5sDysaLal2eKK93jsotUYlVPpoSohHz40i0hs6b5Ix
1+uonq/c9bfHNtdXHSV+uY7e2bIKWsiQXqZk6RuJB1dgMbk1XhrDit35QHLBXSr14YRO5FycsB9r
/j17KG/kuiXptTxyZyynayblEi7lpJSvDu7JB4Herpx3eS/NCR+eyAE7Xi1VYeC06uVptdv4FJSa
ki44gAhv6gpk2gbkKC4q/Qwmdfyg2fBtawI+t3ac22XAHjet1nC/bS4Whvnc5UR+NPPVKPT8Vi8/
pu6R4I0c0Fdv7eK6XP5W3bIKSkiRPpAufWdFxMITaMCtMdMoVvzOB5qhizluC8OnW13VBEj92Nl1
oKjMeKRmkjAoSioTLDKrJEzvF3aabyUDkb7kPVKPXzu4bntjwUdVzoIoY9udazBotXCYd7pY+m3k
BTFHpLuE1yaHI8bAdQzfLU5XO1ZTQU0GkK6CIDUSbZL4Gm/iHjkWi5WqKEblScso5r2XUjU7TqFH
onTKokTaTnnGmBLyow/kSt9IHJ5AAl6N104BrdU6tLbuee3MbMOZna6Jnbc7tv7Trb6RbApPcEo0
43gW1SXupHc+jVfZRLclJvWtkO9NYXOl80sUpjl8PbG/f6l2YrRf8I8rolTJ77J7aVduQPuymCud
t8n5vscY5tWF+rxm/zQOp1OBAifwU5Rb4yyFA2SPpNdEf77BIWnU4Nx1A433we6tL7+QSE1PIJ+g
5RN6pZxlJAVE0sERGMCrkdIIVtTOB4YL4nivD+f+uRF/pEim1VVEQSYReYVk9taZHWSmVISi6DI+
ZPK2LqQXkCJ54h060KrKSaotfKGtc3nxN3/mWvCdJDMLGrgAQr0V4tqXvB45dtr6rifrKPR17j6H
L/kzaNkDSl9pUtqjje14UdHLPBmPy8FRqXHxf6u8f5NfzByMwVVJQL04ypjCnvwiWfAEUgpKyI8+
kCt9I/HgSiYWcWu0drJ0rjmS19bPqDs3zI16XmPRaM1a4ENFM8B9nshk9cw4bvqzrc9PJvJcoyhK
+0ANaRVqshaUUk1hYAvkOcdWPG3aXY2TJ6ZGu1y08Bvxh5s1p4QV8ebLhpF0G7wYiVG+8Fdrp444
Od04G6N149RPL601a86yP6rw1SqmPFfxpBAB/ipg6zeAlGOM3r94LyhPAdJkmBaS9KebT7p6R/bB
F6jAsbHTSFYczweq9zvgdG7fvAPHsomj1WXVzXglSUOZhQuZck7ZDIpPTfMMQvbiQxqoHD6ob6UQ
L6xEIR2d7bWNa/iyVHzWGjF95bq/7mhQodS2SOh8OL7DESbSaARXVGuzRpUdwxbSu7dxboEkfkmj
3ZqZ7lpvxK7wO7sFSseIL3uivsExPpGMpJVb88i1anPFv0si3I+sghJSpA+kS9/IPbgCEfg1bhrH
iuH5QHTBnyxvw5ljbvzLWPZ4tKavwB47OXnuZEyUWVwQYuCaYOSeQCcx7E04DYnym6h857VXrLee
mutTBXqyWxXNeo1EWjetxpa88DUlZf/mlTSbJ+/+ElYqvGmkLdH1hT0t7GXOqaVvBGbIjj6fPpqy
c9P31Nd1c9Wqy2WKX+//NI67QvBxVQhm7P5FMuGJKaughAzpA9nSNzIPrrz/E7/GTONY8TsfaP6M
vfOK3NgTSxXY46kqQ38mhEDnx0wK44yfVyYzrkpPM/O1y8ubd/0DP0DN3Vk+DztXVHc8rnizmuv1
S61hBW3KeXlclCq2XfXRVFC9y1Kl+80REoVXxb1trNL3iqhra9zR1KKD0SGtY7OFOoEE9OqyruJn
vi0KbuBgJ70KIyDGLFDP3uvt9y/2qk6WUVDKDsLVTg8rc2f2k5EKrsABfo3Wfpeuv1BfWgvqJPtz
DNsNelsNrbS6QiczjsVKsZG9ncJvIu9sqYu2q6i/qetM1nVKvqFWo96tPgMX5HzsUbVWuRY5XTnu
bM6NNCO/kmm7RES2A1lw8janaok0IDVdvHMdfgVu7c3LhIyVuDYO+0wQH9ajFEnyUgFHzXmo4LRV
6oyhxF28Jqq9JvB84BccJPUE8glaSI5epjzpO3sTald4ITB5NUoawYrY+WjdYDv3289grxkeaXVp
oTKeZ9Tide4J7Nj5CPejJoef7oBvssT3Yg/IFo41syCzzmiyOATkTgmP5UStWkmCTHEgomOhVckP
XMjIFm5a4U0WfLW8m98mHX23Nm2t6eTWrvU477ZROyRxwBM9TDck+iXeG47IODDnuSOUPYJWo9Do
4evTo/Yvzc4vllLQQX70gFxnv9mJJFzDmJyfpPIAL/G/Ync+kPwGdpJN3Ljrq3HhrlaXV+7rC2ON
ZiafUHIZV8LM5LFX8DJULZ7iHTeWxIK3y2srWUaJXR+IF3z6aqYUg6ICtGefd9d+LxvYsJPpV57G
F5GsQebIeZ7Qt2InwK84r0GcblkTrn0BdlNyBA2XOgS5Tpm/fK228MWknKgLoUb+XKoZLJ7OLcpZ
lPj3Fmm/m+UUlJCgV3RJlr6ReXA1sYBb47V37/+W3dzSWnAn799w4gFKZUzcx+oUZys5dbX3zfaY
I3ZtTq88vbXDxllU85nwzlK6d1oT9+ZTX1OZ+mpreGDP/rSmwzs17FjFT1Q8mE3L9tgckd707F2e
eWqEpW5R4Lp5FLaQB/a0mMV6ohFRwK5t8FEJC6dtq8r8CUfss14c4XPRmkcQWbNBHfs4o/YvnAxb
k4yCCrKDPjKlX+/vBh/SzRaXHjZ6cb/idj5Q/AbzWOMD833NzG2r6UYhZeY98XacjE55f3VbuQpZ
mrP2cJzXtH5NxGUXe40be90SrWgLaU3j+oV66PP+qsS8QYWaMdCfDohhXXN0ozmaXmlJfNpOS26G
tCbmdmsn/oA5T7g43s/EBtIH1i36bpTFEFfEDE68teI2fdYTVrt27+JsI2Xk/qXtvt9nOFNCfvSB
XOlbWlzzBApwa6w0ihW384HijbnTPf6MOdafwBy7mUobTPPALg13kmc+O2ONB9+KNDc+JTPP2aEW
z3l91wn7lU2xEDck+1hgj62spn7Z8iopOvVElftn0Kp9uI961SwbzmAfXBH2C7+22WkctpUF+rSo
UUaiKhU6hNY8FVHCIuqfqWqZzs3DPLXuaBbShvbNY8A6FshjKWPc/kXymPcjp6CDBOkBydIvMg+O
QANejZnGsOJ3PtBcsJfj1HCA+gL9MtkP3FUKnuRSeBb8iJOrRuBakYbyzXenvXXwQqaIkxWzyqJQ
cEjNS6oRm1Fqar6upAqlJhjBDqY089zTQ8WxIg2nWAx+Kt721OfFlLOlMKBYHFGyilTMmmBSdUKJ
EIHTPTjZfcfoc4UtULfsDU6bQhMm/9NkYqg7W7jdhhQranWnAxxMA7lBHWnSJ3IObkDAKtmJkLi/
sToX3H6GmKjkC2Jrhw2yNeqKoLSWVXqtksLXMGrx8f0kkycGzWlATfa60Xe8azXXwaTsm7XnATTr
XiUVCGXhMpGlxH4RKQel2oZ7oGwnPdcRPpysxtgR9As6fbK+7Gt8h1t76H2nXiOZEpVwTvcxNZ/K
6flOeUA4ap2sZfCKrpQxoDkPwNGiz1H733uzFviwlIIS8qMP5ErPSDx4sgZX3BqxPewfMba1tcBO
8sfh2NQb97QmnbA2dWZvJCm9MqMVlXV+7YrfT9uRSN1S0IUmvGSa/Rgm4mjJtbvDa0H60nLtu4UU
Ona1Zl32eGLujMZFq7bsHmyVU89VHlZwVEfwaQ3uzAiwr4km3CJr45A+wxSa67nbnjbm1yR7rwwf
cUyGQ+/q0M/3ezca2lJG61/6fj1R5PcFJaRGH7bKjW4ZBz9If/JpfMjikNYEE2vrxtn5Hn/GOa8V
aKOFd0/VuZbaN32zBrkoBuLHEbGGSrBYGqclyiWUEd4rc2ZHTMK1Z7OurFLuVq2Kb6OeqIWzILQU
t6g+KpmqEyW6db95mpgN82od2XFc+rsLbbc239/IudrD+4ass5x/8XkcdqiAI4rWTMTZTyu7PrVf
+x1lG9oyxu1fcM7QE0gqaDl2Ub1MydLzlHdwNFGA08Bme18xOx8I/oy3Y1EXvPdltxYtxaLgwb7x
/rFbdxGJWrySJq1ORPm+xkV1hITiCe9pfbh3WTzSracIvUnlm0GdRIqT64la0PFqZs+6haJf6+Gv
SnJW1eCokkRqo+SIZuBBcZu27NSitfFZ1jzSikESz90FQOrhlXTqhUjaMswRWVUn5vhRa5/HWjtu
DVNoTxi3f8GWqyeQU9BCgvSCZOkbmQdXoAG/gZK+ugt+5wPNBXvSfA7HJd7Yl+VLrmvK0HKmlUWs
hq2K6ErmlfaerVtHN3GndHeGBxI0Jb7jnKVuxWScouu2+7qm4fNW1ze9XJRqiR5qDb+9KnzaxVNV
+SS49clZo4jrGjuCH6QFOvzEPOcM05rfSUdd/IgsA7Nvos7hiYweL0ppGLtDY2jjRh3MOfNNxLvf
mMMSChrIDurIlD6RdnADDvAJOps1Hxfa5efvtzN77g+cOR0E0m5pNlbtueQrWNrmVVPrDD4UxGTh
l7jF2pUdRTKx3n9EjH/Zh09OgbRPUehp1dJGXXfX7OgKb4aT8d3n99T9VjJMmqNqD3gw1LlJY4jr
QJoWWl3tiZR8E1ooreWLbc+U6swSfHUcWyCcm6P74Z9TUyDdvV8b8e/kJ9D9VrkPji/Y9NHIsQ+j
uN3mLw7xb+3iM9AhnLes+7WlZby9NQxg3ZIJn8S8c4NG2MgWTh94Qja9krgdTVBRaOljjeOp0k0X
QsTTbTy8ts9b82tQtM2pfqISoG5aFW9J9VHZEG5NDqX14qiSxHduxtgyi/+4NqhuJStutZ2d0BA8
sgNptuGxvdOvS80S7k35hDd4bUo3wxjYMgew3j4Tas4vuM/qiSmnoIT86AOp0jfyhidQgNdAJ91b
+gC2fZOM3X4xu+PTqFiq0pVrDGq09JXFa0++9PPIiK4qX5ZebBJF3nhYoAsZgzZphe0ZrbxA+2G9
x7VHi52V5iKtusVdec7ri1K1r472aHhEbOzdD2v/woeymFvvpw6+/GskarT0nfUT20Wr7eRpoBcs
E9W+J9qnUbB2p0ButXe0zGoY5vbb6+PaX+3H/Yt9kVWBgvw/poUU6cV29L1fcg++AhFNHyOl7/+C
4flA9Gf4CV+64edDEvC71c0GH7+iJYiEtigLQ3XV9VEiun/Xm90FjtjAWWbD1zddn/14Afy53bIP
+bOwtVRwG6LOF6WaeELLaw71X9fymi+uau7m1h9YjSKuDb9bUGJZzEFnt0MmLhG70u+nbhMVHJEe
bEI//GHdPQI+sgG9P7ii7l9wetETyCloIUH6QLL0bZmbq0Aj6aUApXxtlS7ol9YCPRldd4cx3diP
BfkB7lKCa+pUvaJ8FDEFHZe0y5786dy1QQERvcgoPDecnAkiW5LAxRq9JV9X1La6v5Jl25QqtaDV
R6WM73EYk35xVRNhOxyPSXqpaZvWbJjR0rLhJ7RpMK3NyqB6SZze58Qb5mvmXZnI4zqtnLSbtn0X
6pISIWfzX/cIlCmWkShYdlC2TPdQQKfg5Q0UtA0SMiy1dzqo+/rG2Wlcf8Z5X/OERKvpe5w9U5oW
p5Ak206wz3p3d13vGhVvgb5ZFAxwau4abwfyiNXCqUiF3ZZ995RjvehUKiCQRxPTgnp+HX8vjirB
veTVnXNRI+AqUM7vBJPHvcUU7GZvykpC5x63hZfNvIDIHpzvt9P2NRvnWP3vbMiORTbQCalpq2Zp
KjGe5ew8wEagxKog/lfEzgd+36BNoNKC9qNGsVvNn+Gm68k3YbyMJsU7QFpzGXHLoYTWQrl6Hzjn
NDnh7+Ck6405dt9VJbnqJ+qm/ZUo1e2mXzEbgie1OcRNJcUSGXKNjMKGtrVI8d0q1xOqSGtKxesM
fWiu+nM5Lo7IJRy8UjGYMdwhGhdOHje/VN9VLKWgdPeBTMslZ/gJBFS8/cKpvK+YnQ8Ejfe/vv/9
fVO+zPQ+DtJvz4Xx3/7bGykV57dkvPpUsuzXv/6X//T+P/SWkO91d6aweEk2aR7T6wXZFHGSXh1B
92srqbVdV796/YIelMeD1vimn7v/Xy1jogfdsd101us+TPHf8/mDDvTmWe6m+Gxt0NTfX+ymghRE
24NM+6aLu+tf7NIht5vwXCZvUs9WU2u7rv7ROT5oieqe9LqZzrPlPu6+oerbeLw+Hq/fELs7+ZUi
CXrdlOf57ab1bFW1tuvqV+rJoCfKUnhdtJ4t93P3/ytFd9CDcnlQLt/0c/f/K1PJ5qzhUJ47vJvW
s1XU2q6rX9jeghyEjwep45tu7u5/YbfdnK9/EiYRapB6trgLwlz9yhkg6EF5fhduys9WNuW4+pVr
SdCD8r4sVV9b9HP3/ytHpaAnyimttJ4t93P3/yvXt6AH5brQrT/1cff9Cz9KSEFyLGTGF/LR5S98
cDeH8UPwWFbBr63uNTGufuXSHfREWRXjL1rPlvu5+/9VoEDQg3J7UG7f9HP3/6sQlM3ZxKC8L6vk
11bzmhlXvwpwCnqiLDv+RevZcj93/78KmAt6UK4PyvWbfu7+fxV8uTl5A5THskp+bVWvmXH1i3Dt
ICfCdV3Yv7Tczd29v2xUROPxsiyFX1ubF8a4+lX6gKAH5b6ujF9a5aJcvqf8JSVF0IPysa6FX1o9
VkZf/SrNSdATZVU0uWg9W+7n7v9XSXM2e4xDua1r4ZdWjjXMV79KvRT0oPxYv7+02kW5PSn/QSIv
0TPd40Hp2fK60PZvaH5NCCda0FTp9YvKs9W8irV1DXv/Jl+k6Jje4wvzpcXWlr/x4ncLrefHrc+W
RdYXgf1RltIgBdHyIFO+6eLu+lepb4MelOuDVv2mn7v/XyVSDnpQfryJX1r1olz/IeVIzB30oNwf
tPo3/dz9/yrJe9CD8njQGt/0c/f/q9IBQQ/Kj9nzpTUuyuNJ+Q9KUQQ9KD/mz5fWtTPq+7eUv9Q1
CXIiPB6T6NlyN3f3v6iVE+QgnNbV70trC8K++kXRJcgF4cey+qV1befGYzv3hwW8oBeUy4NW+dJP
UM7fU36Wg4NcEK4PUvVLN0H4Of/+oJYg5ILwY1v/pXVNv1G/J/ylLmXQg3J/0Orf9HP3/6tSp9AL
nseD1vjST/D8nH5/VDk36EF5f9Dav+nn7v8XdZiDHIQfe4Qvrf0ivP9Dwi7qHeREWEmDL1LP1rg2
DON4Ev6+KnyQg/Bjvn1pbUHYVz8R5iu1aUUy5XRRfky4L610UU4Pyj5DdJ8CH5TzRfkx4b608kU5
f0+Z89qDcrkoP2bcl1a5KJcnZc4QF2UtdqZcL8qPKfelVS/K9VvKPhQ+KF8TcH/seL+0rgm4Pyeg
TyfdZ7dN66gp94vyeNAaX/oJyv17ypzdHpSvCShT7E1r/9JPUH5OQJ97vqV8zcD9eNA6vvQTlPdv
KfvstmnxN+VrCsoicdF6tvZrCu7PKegjVffZbaV8XHNQFo2bcvrSjykf27eU2Rptk3PTTXF+OR46
oy+tFOcXXwVdn7W6T0gr4UtldJQHqfJNN3f3f0h4flVMuVyU64NW/aafu/+LMoe47qPXg3K9KLcH
rfZNP3f/Xyn7gPSg3C7Kjyn3pdUuyu1B2Ye47sPMpi+hKV8H0OMx5b60rgPosR5AfRuPP+bVl9a4
Hh9PxvhatOP1PzE2P6RmbL8oP+bVl9Z+Ud5vytheiLHkxtdyfJtY/rDbv+vu15v++j9yC0PleD8/
3/70nz/b+7/8z/d/Ffkhm1GTx9PnW7R2KypoDWkBSpcFaWPkj9bb8zcK2azXOxqFHxSh68vzh7U4
Nxf//e3//ncMMJVWqgaoze9HL/KIxYOdUfZ7lNv7x1wI7vcr//vE+Ke//C//Wxvv/9f/+/6nv/1b
M8G/q9tt3vHPf3sr2JRf+6m//R/vf/rrTKH//rf/87ct/f63/+ftL397+/l+eYr+owf+/3C8dkXe
lFzpaNq0f8yu/utv2z9t/7z9+feP9NvW0r+klOrvH/m39JftzynrKr2uuq6Orf3exm95zP++7v4n
nkvltZ9pW/JdLQ39665/aynNVt64N//z9tff//e//a/fSUMVSOvrcyoWZzW6H/9YfENxkMoS5lGV
rDHV7fdWf5sjKGny9OL1n+ffsv3+YrCIzf5i9x8xMn0f/4OsFB1YfsXKFMSr/z//nl9C+nOqeVO7
vu7hjn8soCJ16X+Mr/xrAdUmLga8/F5+M1t/MdN/nZJrNPIO0Pz3F/xmBXz9h/jNStH65DjDWUq7
Af2r/iLL/GLuNZCRf8uvd7RuGYj/6ffUf6v993RcbwAP5M0DzbTr+MdDUAzef2wIeRrhvwg93W+f
pH69nDG2anHfo/Ir8We/soyhrW+xh+D2/nzLtr+8aPLQX6do5oMVmsa3p4FIr3+vVx91cpSvzvzL
n/37H0hMw0/yKnsOf3sRKb9tdfIBwdeblMx9ujrdWHUyr1fOr1cxQGMcWyslJbMvyfl9LNtf/U7m
1/jzTSKeX9/Uf33/9WJ/xGK/s9j/f9VlXg0KZW5kc3RyZWFtCmVuZG9iagoKNTUgMCBvYmoKNTE4
NTYKZW5kb2JqCgo1NiAwIG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsg
MC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJH
Qi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAA
AAEKZW5kc3RyZWFtCmVuZG9iagoKNTcgMCBvYmoKPDwvQ0EgMC45MQogICAvY2EgMC45MQo+Pgpl
bmRvYmoKCjU4IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcg
OCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVl
Pj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0
cmVhbQplbmRvYmoKCjU5IDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKNjEg
MCBvYmoKPDwvTGVuZ3RoIDYyIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJx0vUuO
Kz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041XN7rz+Emv//Xvv17H
63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8vvivvf0Yh6wt//X//
/d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb955rdkUmmk73/PUb7l9vH9z5nG
98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrrob+Vb8n9Vc6u4pT4vPLsXx06
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
8vxhLc7Nxf94++//jgGm0krVALX5/ehFHrF4sDPKfo9ye/+YC8H9fuV/nxj/9M//5//9OuP8t//v
/U9//bdeIPg3dbvNO/7hr28Fm/JrP/XX//L+p/9jptB//+t//fOW/vLX//ftn//69vv98hT9ew/8
73C8dpUIi8iVnqZR+9fs6//5c/qnlFL9y0f+c/rn7R//8pH+/DqApu0fU5//trW/tPHnPPI/zF/y
P8zDaSq63jb9Wzq29lpL6+uXkuv8l+0ft7aVrf7lP//1/4phs+RMfqg6muS7kkg4AkTXm/gzDCNg
MK7/P+GbbYEKZW5kc3RyZWFtCmVuZG9iagoKNjIgMCBvYmoKNTE1NDIKZW5kb2JqCgo2NSAwIG9i
ago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA1NTQgL0hlaWdodCAyNzYgL0Jp
dHNQZXJDb21wb25lbnQgOCAvQ29sb3JTcGFjZS9EZXZpY2VSR0IvRmlsdGVyL0RDVERlY29kZS9M
ZW5ndGggMzA5NzI+PgpzdHJlYW0K/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwME
AwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBD
AQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBQUFBT/wgARCAEUAioDASIAAhEBAxEB/8QAHAABAAMBAAMBAAAAAAAAAAAAAAUGBwQCAwgB
/8QAGgEBAAIDAQAAAAAAAAAAAAAAAAEEAgMFBv/aAAwDAQACEAMQAAAB+qFCtxIPRFE44vAkEZ7z
sR8EW1D9J3oGVOn8rsYXZD+RLIvxJZA9hJIuLLQiJY/VWkiXRnoJpFxhZ3qqRcf2uZ6bKqs0SCF6
zvQ/EWVyV8taL4SxM7sBZHB6CWQPUSji7QAAAAAAADP4DQZcw+wahxmS2uRshT4u9cRSo7VPMzji
03pKX2XIU2n6z7DOeDTOkzKWuHYYPbtB5yv81x8TPbLLTBlsRq3gVehbpmxHNM9h24VukaVWmbZ6
jNo/V/EzmP1nxKh+XrjKlUdCmyn03WO4zrpuXmY3eLr7DJvfp8cR9r4+wAAAAAAAAAAAAAAAAAAA
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
SW0G2LIMG0VIjhK2RuJefqdjzNnWWYtkrOUxpWRNC1fKmuNfyb0SSsyZQa5mbaHHcwYaGFmrzEv+
sr8m30syBH/Wior1FWixTLSGORkq8BjUZFvv4hDEvBQQEcxyRBUuCAcj7YVBpvIQEfLUHisSAQZi
sTIER0BHxN74VBqvJQwQmM7MfZvjtZbS7IJRZKUxgqFuNJeQyCOMp8VomzAzQ1ngByFttpZReMFu
tSLLQ1HDMLeHbISwGyNT4TBN9kiLNkU3vNpOdREMJBCE4txJiccTZKcJY8hMddFLYxtLLTmL29Ic
Nw0h+s8uzVnCgHpGSkGRo6e9Orw6S0IrKXFNY8A9cFcXlyg49GSuOmrzZC2GcjJdlG823gz+VFj0
2veI8JvsuzH2b47Ve50IofRnbNFCLAYbumCQp5MSzduB/wB5wqSi2YxpQd4wdtDwDVr3hW1unhtD
eGyf/W7/AFbG0+eSfvT5y48AsJ6Ns7GioARjwTYI6fR4GiNniPxjJCuUgk1eEaGJjMaS1DN4wGy4
3iYbbL0IM/SE2Qnwm+zbMfZvjtV7nV313YQa823Yx2zokxbd3kltKZfWwpo55lLkkQ6hEi+hThrz
tuOf9RJrpfhsn/15HmsXBN7FRVrP/eIZQQhGLhocK/qv6/QYqVsvIHMlSZAOZOo453MrGQy5+4G+
zqn1z+gIezj1ZCvIE3iHMtvITDmWWkMdXkClqezj1FKmr4dsw9m+O08FySmulsnXS2TrpbJ10tk6
6WyddLZOulsnXS2TrpbJ10tk66WyddLZOulsnXS2TrZaGuPkZzZtGT8rEQ4sGH+8r8qJ/rt9mfvC
ZILOWjJJEkFchqzl1ptXqt5yUo1GhoXZdAz3HloIadRdVrVGSbcmJU32bZj7N8c292fSNJqfmx8l
Y37k2O262Wy899OB+4vgFflRP9dvsz9xccJTFaJI8Dy7dySZx2aedHiC0O8uOcv40GQBYcR5WQJg
yUQrARPGY3EmxxlTfZdmPs3xzb3Z9JYB4c0DjJKD2saOYbxeDex9H04H7i+Au1533NZpL3x2HbnI
xTaZ2LTXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZXMEZUzPRq4jZj7N8dohjUdP8A
U/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47XU/Ha6n47Wzcps+X+ClIoWa
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
shpz24qSWOCNJZOu6oAW8tLGtnAiK+1CrGAA3zvL/wCKa7WZoJGnRNa8cUrf/JL7eM+Cvulvvor7
pb76K+6W++ivulvvor7pb76K+6W++ivulvvor7pb76K+6W++ivulvvor7pb76K+6W++ivulvvoq5
uf8A5Deu0cbPjtwKiaS5kZu0tXx8npV8fJ6VfHyelXx8npV8fJ6VfHyelXx8npV8fJ6VfHyelXx8
npV8fJ6VfHyelXx8npV8fJ6VfHyelXx8npV8fJ6VWpJydA/EifrMf96gdE2k0pWKNTwLGle6uLd4
flqq4000cdwCwBPDj5KuJ4GMrpHrVdJ6VSyX9xFgKrjSpBAbwYrEMurol+rjcONRDakmRVdQF8B4
VcMZs7AZYaTSHaqkDQ7XLghuNTTCfoRY15BBFPsGzoOGBGCKuonvIY1iuHjEGjpEDx1EZnjW2a0E
5de3OKE3OOiW0dU5z5KvmHA27/VNRef+vvo5/wAI3M35p4VNcy90bmUdgpVijkzo1MCK2QhfafNx
WyaJhJ83G+hrhdcnAyKG1jaPPDPvrX9GPxIn6zH/AHqKLWYpE0yRyD5LCmivLi35uyFG2KnU26rW
O4nh2FoCItmmGO7G+rSAToDDaNbk445xv+ipJVOWm2MasP8AbK/KNRXFni3ZFkgfbZbXk9YVHI0q
yabVLfcPCCd/01K0t3ExeFotWD87IpHuLiISLDo+DXdkNqH9Knkup4RO6LGuyU6cBs1eXRcFZwgC
9mBir3VoZp5nlDY4aqghNwuYrZIQcfKVs/uoxg2kU5fVrRW3buPlq7R21sLZwW7ejUXn/r72KEfL
bFXscxxalMeZa5UPDUY1UdgzXK06bjGixLVpzfU7Ssdq4458dXy506IdG1+ZSQhzcPBA2ktu1PSx
PamFdeoMxJPvrX9GPxIpPAXKf3pAec7h/wAJr8J9Sa/CfUmvwn1Jrfzk/wD4DW7nPqDX4T6k1+E+
pNfhPqTX4T6k1+E+pNfhPqTX4T6k1+E+pNXcSc51PEyjMJ7Ki8/9fe5UkHxe1uYij0jv47+NFVkZ
VPgBqbWzpM/++u81E0WQyLgycCx7a+Edn8p99a/ox+JE/WY/71H8BH1R8kUyCOEuvWXSN1fER+gK
LNFEqjeSVFdGKFvIor4iP0BWTDEB+aK+Ij9EV8RH6Apecc3h1cNeBmlKxwsG3jAG+viI/QFfER+g
K+Ij9AVfYhj+If5I+aai8/8AX3gA3k0I5Iud3WMtk9FaYwW6xgDgvAU8exOtBkilXYnpbwfBUsD/
AATRqWOahSSItrO4A9ar+XZ4O0EaA8VravEQnh8VbV4iI8A58vvbX9GPxIn6zH/etvIcJHHqP7qi
5SurWWGK/YrNIx6O/qfZRmM8Mqm5kgFsF6QAzg/RTLPPFci7sZJCI1wYt3hqZItnEzTxQ7ZxuXMQ
OTUWi9huJFXW+hOuNWPNXLLzXUUojl0pBp4DIp7kTQKkc2x5mR02GcUJmlU2/Pja7LT4N+/NckBG
t1OibfddT5NWsMYUm3guvhOIJXG8eKoxcXUf+ot1mV9n1TnGKsYUlSOaSaaF30/N8OKi5O6Ms1zp
2MoXcPn5/wDfDV9+rv8AVNRef+vvIZDvCOGp7m3kjeGXpai3Cp7a2YSTCfp6TxGKnCSAypFHAWB8
Phrku2EnW6Tb+01yzsenuCDHhqzgmcGaMvMRnqjHCrQykaZLrW3mq6+BhEcnRMnzhmmjD5jjAUAc
Pe2v6MfiRP1mP+9Ikih0KjINbN0DJ801cbkeaV5G2uneNRqO32aM2z0O+nr06GBCj9YY40q81j0q
MAaaZubx6mGCdPGhObePbfP076+KXra+Hyu2l5xAk2nhrGcUqiBAFBUDHAHjQDwIwC6RkeCgY4EQ
g5GB4ae/lfXiPZxJ8ztq/wD0En1TUXn/AK+941uJHk9uaBciSRwdXirOfa4n31r+jH4kXScHnKf3
pMcuRAYH+3Xf2L1dd/YvV139i9XXf2L1dd/YvV139i9XXf2L1dd/YvV139i9XXf2L1dd/YvV139i
9XXf2L1dXTS8txPGImLLs+IxUXn/AK+1bxyLqRm3iu5EruVK7lSu5UruVK7lSu5UruVK7lSu5Uru
VK7lSriONdKK24D27X9GPxIn6zH/AHoP82PP0VBfzaYQ6a237hSzc6j2THAfVuJpJWu4ljfqsW41
I23XTGQGPYTw/rUipcRsY+uA3CnkW6iZE6zauFCSJxIh4MpqzSeCJUu9ez2bZI09tK+3TQxIB7cc
amlF1GUiXU5B4CsrLGbfZ7Ta6q7si46et4aFvt49ufkat9X/AOgf6pqLz/19q1/P/wC7dfn+3a/o
x/T8SJ+sx/3rSOJjx9FJydzS26CaRIZM581Q7ZI9ml6bjGrPR0kf1p4px8EDJJIFx8WZNShc+HyV
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
0Ay85ZYmWW6tFNztkyZMmJpz7L/eJ/BhJfRzk4p3zpzuyJE7KOFHi0xvBKALScYxZaLDICXyavbE
P3YgUN06JvbG9FgiTfW01I9dZfIOVjBY0kXWHtSaQ4FrIMkQmL9/RQiYqavAW3AZCPaghbWuSON3
IEUJCjKRPXCamGC3DpUMBVNEkmHP7YJgScYbYkOcoRCjpzjFUNQeg1BFZ1euVx8MK4eUKdwPEf8A
wZjNSbUlugmv0vGe98f4FQArfhD7mB7Ro7YQIMdhNmGISkzX+PNm7XM5f4MzOZF/izJ0nlg8IkbI
ohAcldTEMmilPiLMIARGPCDx4zxmDxGTxGTxGTxGB7zBq5ZPEYAurB4jB4jJ4jJ4jJTqwOmfTFQd
+Ca8f4OtDSw3QTYlfr+/YkCECBAgQIECBAgQLGA6CF8tr57filx7Vo4TylNZ7o9M90eme6PTPdHp
nuj0z3R6Z7o9M90eme6PTPdHpnuj0z3R6Z7o9M90emTK4ELuw2/+d//ZCmVuZHN0cmVhbQplbmRv
YmoKCjYzIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1
IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1
ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRz
dHJlYW0KZW5kb2JqCgo2NCAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoK
NjYgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1
ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVu
Z3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVu
ZG9iagoKNjcgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgo2OSAwIG9iago8
PC9MZW5ndGggNzAgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r
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
Vorzi6+Crs9a3SeklfClMjrKg1T5ppu7+z8kPL8qplwuyvVBq37Tz93/RZlDXPfR60G5XpTbg1b7
pp+7/6+UfUB6UG4X5ceU+9JqF+X2oOxDXPdhZtOX0JSvA+jxmHJfWtcB9FgPoL6Nxx/z6ktrXI+P
J2N8Ldrx+k+MzQ+pGdsvyo959aW1X5T3mzK2F2IsufG1HN8mlj/s9m+6+/Wmv/6P3MJQOd7Pz7c/
/cfP9v5P/+v9X0R+yGbU5PH0+Rat3YoKWkNagNJlQdoY+aP19vyNQjbr9Y5G4RdF6Pry/GEtzs3F
/3j77/+OAabSStUAtfn96EUesXiwM8p+j3J7/5gLwf1+5X+fGP/0z//n//06L/y3/+/9T3/9t5Eg
+Dd1u807/uGvbwWb8ms/9df/8v6n/2Om0H//63/985b+8tf/9+2f//r2+/3yFP17D/zvcLx2lQiL
yJWeplH71+zr//lz+qeUUv3LR/5z+uftH//ykf78OoCm7R9Tn/+2tb+08ec88j/MX/I/zMNpKrre
Nv1bOrb2Wkvr65eS6/yX7R+3tpWt/uU///X/imGz5Ex+ssIv0xaJzAFolEDoZxBagFB55v8HBrBt
FAplbmRzdHJlYW0KZW5kb2JqCgo3MCAwIG9iago1MTU0MgplbmRvYmoKCjczIDAgb2JqCjw8L1R5
cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDU2MiAvSGVpZ2h0IDI3MiAvQml0c1BlckNv
bXBvbmVudCA4IC9Db2xvclNwYWNlL0RldmljZVJHQi9GaWx0ZXIvRENURGVjb2RlL0xlbmd0aCAy
OTYyMD4+CnN0cmVhbQr/2P/gABBKRklGAAEBAAABAAEAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUF
BAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQF
CQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FP/CABEIARACMgMBIgACEQEDEQH/xAAdAAEAAwADAQEBAAAAAAAAAAAABQYHAwQIAgEJ/8QAGgEB
AAIDAQAAAAAAAAAAAAAAAAEFAgMGBP/aAAwDAQACEAMQAAAB9RxkX1y6stshbmfxZqiKrBfGd/po
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
X0rvPs/9I4H7sozXXvPfP7nu39z3b+57t/c92/ue7f3Pdv7nu39z3b+57t/c92/ue7f3Pdv7nv39
wHJVuHK9+Z3vrfqd71eEwt2RszL4aGtFcQy21z2LPaM9oz2jPaM9oz2jPaM9oz2jPaM9oz2jHohr
C1O2yv8A57//2gAMAwEAAgADAAAAEOGPMOMMHKPDMMPPPMPEOOPCPEOPPPPPPPPPPLLDJNLHPDPL
LPPGNFLDDIJPCBLPHPPPOPPPPPPPPPPPPPPPPHOELBGCJIHMGHIDFPFIHMDDPPPPPPPPOMMMMMMT
jTTTTTXTUPLLDPPPPPPPPPPPPPPLAIEIOCFNf/hlucP/ANfzzzzzzzzzzzzzzzzzyjxzywywz3/x
+6B3/wDX888888888888888888o8kI8Y081/7A6zSd/X888888888888888888sYgAEAMA9q6y35
yn8S888888888888888888ow0A4gYAdpA888888D88888888888888888U48EAAIEM9pA888oj/N
e8888888888888888Uo0488c0YdpM2+++4XF88888888888888888Q0cgEkAEU1p4w/23urxg888
8888888888888UUwYQQA441p0r3KJ1bpGo80g888888888888A8IogQU48VppatFGrap+8s8Mc88
888888888EsgEE0oIA1pndMOCOOZM8888888888888888Us84UAEoAVpo88gs08o888888888888
88888McM88888qMD+MMMMMMMc88888888888/8QAJxEAAgEDBAEEAgMAAAAAAAAAAAERITFxEEBB
sVEgYYGRMFBgoeH/2gAIAQMBAT8Q/nLoNaJ/hbbbfnhK3dvGqVyvfAxNoJrhCdPV27u3jRJtwih0
U6GxLZRaT6G0X69u7t40XO3A97JKhJc8D5Nx3ITG5enbu7eND+YzGUl8mYX2aLRac7u3g6PV/T0s
53dvB0ep+hLc6MKOnnd28HR6mhEoQ5TkXd328HQO5E+SiaF6XYTJihD8hEKgzRw+STm7t4OgWXqK
jVPjkZE5SalXPgRF/wAxPbr34EYTjHIyyD+93bwdB2C/MJIJiR8iClAgJjFv77u3g6NE+Y99jrm2
ZzOZxRmpu7eDo/R8mzmvtf/EACgRAAIBAwMFAAICAwAAAAAAAAABESFhoTFAQRBRcZGxIIFQYOHw
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
dyur6Y9e2CCKejCj5uSqRxUSTgCHUwf5XHAIB+Zf53wf8GDkPGQ8GBJIhnUABHtfH+eS9evXr169
evXr179k84K3YFVv0wymY/u2FBSC0FTcMFQQByUl/fLABrxoVXnPlnvnwT3z4J758E98+Ce+fBPf
PgnvnwT3z4J758E98+Ce+fBPfPgnvlp3r2iiPMU3rebpsa8wn/S5/D75fXJvO/8Aj//ZCmVuZHN0
cmVhbQplbmRvYmoKCjcxIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94
WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNl
UkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMA
AAAAAQplbmRzdHJlYW0KZW5kb2JqCgo3MiAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+
CmVuZG9iagoKNzQgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5
NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRy
dWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5k
c3RyZWFtCmVuZG9iagoKNzUgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgo3
NyAwIG9iago8PC9MZW5ndGggNzggMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9
S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/
Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9
f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3P
mcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxf
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
6Pry/GEtzs3F/3j77/+OAabSStUAtfn96EUesXiwM8p+j3J7/5gLwf1+5X+fGP/0z//n/71v7//t
/3v/01//bRwQ/Ju63eYd//DXt4JN+bWf+ut/ef/T/zFT6L//9b/+eUt/+ev/+/bPf337/X55iv69
B/53OF67SoRF5EpP06j9a/b1//w5/VNKqf7lI/85/fP2j3/5SH9+HUDT9o+pz3/b2l/a+HMe+R/m
L/kf5uE0FV1vm/4tHVt7raX19UvJdf7L9o9b28pW//Kf//p/xbCbUk1MfnDcT4VCU0rNIIj2FBj9
DEMxDK8Nn575/wHkl210CmVuZHN0cmVhbQplbmRvYmoKCjc4IDAgb2JqCjUxNTQ3CmVuZG9iagoK
ODEgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNTU4IC9IZWlnaHQg
MzIxIC9CaXRzUGVyQ29tcG9uZW50IDggL0NvbG9yU3BhY2UvRGV2aWNlUkdCL0ZpbHRlci9EQ1RE
ZWNvZGUvTGVuZ3RoIDMxOTI5Pj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwADAgID
AgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgS
FBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBQUFBQUFBQUFBQU/8IAEQgBQQIuAwEiAAIRAQMRAf/EABwAAQACAwEBAQAAAAAAAAAAAAAG
BwMEBQgCAf/EABoBAQACAwEAAAAAAAAAAAAAAAADBQEEBgL/2gAMAwEAAhADEAAAAfT+rHMRPFcd
YmKvuYWo4PGJuhHOLIU70yz1SyAmX5EtwkWxU22WcrrcJftQeLlwK86hL1c9cl6ut8myud0nKq/0
tNBNw7/zU/SLG6VI98s9VmQs9VOQtJqVsWZsQbSLG5te8Qu9ANMstW34WUh8nNkAAAAAAAHF5MwF
eaVoCueLbvwa8Wm/wVjvznZKxkspFdyGRiNYJYK92J0Kll8rER1JyK8lfYFddaXiKxyzRANiXaRV
ljdrKRT4lOyVlKpHpkN6spEB6spEG+J4OZWVu88ifNtHRI3yp38kPzTgRnWl4gE22QcnpGQABrZT
IA1cZvMWUAAAAAAAAAAAAAAfH38HnHu4+gfGbkycjHe4kyOU4U+IhvbsVJ7GZ7QxZESmPEN3oaG8
cj51u4RPvZ9E63MmFfEl7lcT04PxpSkr6Z6u2RGUc2ZkPy92OnFt6JSwqnb6fMLj8x+jq8N6P9zG
ZrTg8lOmAAAAAAUsXSpQXWpQXWpQXWpQXWpQXWpQXX+UriYu/wDaP7mzDZG5Vf1782l8VgLG3KtF
n61ci0tOuWFpKtZWkq0Wkq1haSJyzXmam28e+X1AAAAAAAAAAAAAAAAUjd1JFndiqcxanLqvQL3U
Z0i4cdS80u/9pvZLH/YZHC6P2mpSUVjy4ulpAsdMDb+Jp1NPZrnVnb15giXdD1iArFrv35/BLGBb
FwU/cHL3oaO0AAAAAAAAAAAAAAAApO7PJR6m+6YF2fNKiXzimBdPxTIufJSgu/4pMXNlpQV/i4Pe
6WkCx0xtYzvbOHiRSS/WjLCXSCtO1FJvRTPg2YQ9+ALXuGnbi5e9DR2gAAAAAAAAAAAAAAAFJ3ZS
ZMe/GYsWRzK7lRMdSOcsneaGbRKYN34iWJsRDnE761ezA804suLpaQLHTTSFyCGXTkvN2IJOnzOV
0cZkOrpaEfrt4OPqyeeZiN7VAta4qbuTl7wNHbAAAAAAAAAAAAAAAAeWPU9Cne+LFyFbfdjCuVjC
uVjapA1jCuVjCtvuxh5F7Hz9dLSJfEPSXvzVC/fypsKDX4KD+75/Sg/y/fwoNfgoPk+kq7miowX1
ValyU5cfL3gaO2AAAAAAAAAAAAAAAApO7KTJZqyn8K735PqEU6cviZmiVudAr7g2XnKy3J5tlZWP
89E8q4suLpaR6T82ek4pJKOftwAAAFeWHX2xBRA6/n7UuSmbm5a8DR2wAAAAAAAAAAAAAAPz5wap
0fK/pfTKp+7g5JWq0ukU2uPnFWp9iIMuLMUuuTiFbLy/TxT3suLpaR6T82ek4pJKOftwAAAFf2BA
diChR1/P2hdFLXTy94GhtgAAAAAAAAAAAAAAaurtao09zRN+JyP4KwlG52iA8exsx8YehyyP8izu
KQj5tPkkxyxrGedcWPJ0tI9J+bPScUklHP24AAACBT2C7ENAjruesy7KSu3mLsNDcAAAAAAAAAAA
AAAA1a8sOpzNOuNxyb4eXhMnVr7uHYy4K7LQ5/F2iR8nW1SU83napKfjt755Cy5cXS0j0n5s9JxS
SUc/bgAABhB6b9N1FbV9SjoajesWM+gqaxz/AEUVqDIAAAAAAAAAAAAAGrUttVidHjyCMEs68P7J
vftezEln5Wu4TnlciMk5/dGGljYNKLFsbtd6xTGPU2+mpHpPzZ6ThkkrH5IorT108npo/WDyePWD
yePWDyePWDyeLSh8cw2Wn6t2vJ+nWbnr1HvPWtP6mY8mQAAAAAAAAAAAAAGrVtpUwTuIdTmGS4K+
sEQ+YVkS7u0IL8x1Dwi/vmjt0ub6h8wAPJmLLi6Wkek/NnpOKSQeI/bniPR2rB5co6d1WQToTbjY
zEckt284hHxMsOUV6mfD688bfknz49Q2J23Unn17a80+lvP3K31oziubGAAAAAAAAAAAAAANWsbO
1SK9ze0TP+/GI0erHO4YcvOzn7+Z+USDlb3DJHzdvjncx4sR5w+8WXpqR6T82ek4ZO/4c9x+G6/b
k+XX+uhp/wA2edvs6HR5HWY0tnS2mfz5/Pk29Lb551oRNoJry+74fMK05a+pT1N5/v04Wpn/AEin
e/eycr46usb0s0t0AAAAAAAAAA1dXa1j8093nnQr2wvoq7dluEjmxJtU43OnGEj/AOSbTOBy5XmJ
Rm1tk8mYsuLpaR6T82ek4pJB4j9ueI9Hanc0r/LeVXf1+flx66vK7UcwnUV0dnGdvY4mb1jpZOFt
HHicrih7a89315K5LoPQ1gxOWAAAAAAAAAAAAAAADzf6QFIft3CkV3CkV3CkV3CkV3CkV3CkV3Dz
RLbqbWvStqdb885xeNfZVOQywx6bSePMj02y8yPTdflSPRX6edHpseZHpseZIX7PpnGbNr61M8Mn
5+gAAAAAAAAAAAAAAAAAAAAAAAABipu5PNR6aVqLKVqLJqvbHF39sWUrUWUrUWVTPcrA9JZ8GcAA
AAAAAAAAAAAAAAAAAAAAAAAAxUBf9Nk/SqvzqftQd0sJwuWTJFNMm6JiWOF1TYqb0HTJb+fBnAAA
AAAAAAAAAAAAAAAAAAAAAAAMVN3N51PRvBq8WDmrgW9qVYLHVwLT0q5Fq4qvF3Uzr8A9DZ8WUAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//xAAzEAABBAIAAgkEAgICAwEAAAAEAgMF
BgABFRYHEBITFBczNVARIDA3NEAhNiUyIiMkYP/aAAgBAQABBQIglkRoKTEkfyvPtjpUS0h5t9t3
fXohrb/5VnjNpLkRQN8RF2X96H23VdTMiKS//WsoD5Cm5hsmOMtumsXJFvlR86Q4Rx6VZiZw5yMi
RDJB+L1PqKYhpc+XVGS58ZCx9keVKuWKV1DsyEkNL272ssnu7CBxTZzFiOllTctIRLZsqc5IuSWg
5ga3PbUNMGGzNsWS1X+IyYzMZIlcSs7kgg+SKkREKsJZAZEhI+MXaCgQhZ8oomnLNdhJGRL3KNEP
BBkMHP3OLMJhwY+yPKlUWM9EVH2R5UrxyYeiDiZJ+wkubYG49KsxMH9eJJmjBpSKVNOScAYXFVni
p8caibk0VwiTmhjlTx4YkaSaWCN3vh/6EiqQRkXGl8TjKogUNVYK4IxEkiuxYEjM14zZGh4aKfGk
a4EnjfCpA6V5eNdCjtSneqrpO6qdHOEy1gj3ZKO2AURKaj5cIqNru4w0irmrQ3FuplyIVRUpFCyo
SZSKkJYiXC3Ixa4yUeTGRxXEp0AkvFQcgqQEgH2GZQMpmZjo0iYHBSc5lbDOjQZGPMRLqrhroOo5
zVh5bW9ER2pTvUVxa61HalO9Yg32q0TFHNEG/Xh0WBIzNeVDG+JErpqHBQDQppFbJRW+FnyJrsI+
5UTI10iS1HmCnx8UcMSN3vh/6ik6WltpDDeb1pWhxmhGv6ZBDQjJUeFKtsDtCtLWlpDBDRTXUSWw
Gj7lJ0tLRAjT2IOHd2MUyayQawJv7lSoScQtLiPsffaFaQtLqOogloRpZw7YrbiXkf3lK0lM7Ny1
grO7YVp3ng0gJM7IOKip4mNrTFklkrRcXzAukze9QZNlnY89FxfMCuE6/ARplnkoyDEsEoHYVdIB
ymBrDMzx6Su1d2rXJDTFfX3ZzNpfj6/KSD30Mnpd6wtXp/lmOmphqyTk2/GS8xbzI85uzy7MjMlJ
IDr08+e+rpAOUw/Y5Yueds82S6VeHuEyViflK/Gd7y5UZeTYE1bpkQMwRo8SJ0uRkLDZno+UVey0
QgE7LM2X+4tOlp1TppuJXU5AI+zDmDPx9ZOeIGp8y0HBQhg8rToxlyzW+EInoyPg5B6cp0Yy5Zp1
k18ScrxEFXgYCSMnQKpKRONV+bhpKQqxJs0DS5JpwWvSYks1XpUGvCUgwYQOEfHtZFQeCrUOSTI3
y1QZkm6TTZUzZ9cJK2VUDHm42qEREsBVJSJwKDeGtQFcJF2ulFpiHICQPg68OaJFRlXkRN6qMyWH
NMmPxpdF7MLM1w8qRkazISkIZCPkWuP8X4X+88IwQ51KTpaRhGQmsUnS0jCMhNYSIwYj8JIrJjIU
YJHa+AX0pAae80hM80hM80hM80hM80hM80hM80hM80hM80hM80hM80hM80hM80hMc6Ux9aE6URiy
Oe2857bzntrOe2c57ZzntnOe2c57ZzntnOe2c57ZzntnOe2c57ZzntnOe2c57ZyFn0TW/hOizWtx
hUxHhOo7txHYTizw2yuwnOwnOwnF922nspzsJw2QDjs8eJ3PZTvOwnLX/jpD+0YV0xxlhZDzgzra
vw0P1PhOiv2uukxwgR8yrRTs3JEoE7xBDk3LPKkLGRtc/KGQTapR/wAMuwl60iWP0RZWXX5ydW6j
YVgPfPqcm9INWz9h/bAu6jBhBtQ8gcL2tPQwni3gg3I7UQE3nLjSM3/jf2UP1PhOiv2t4EchbgjD
2bZb3mx2/pF1FMcakRhGnRmn9+DY+vhGdu9w3m0J2pTLa9+DY71phsfVs/Yf2lnaeFdmFkSD0024
oeWSk7v2S2ZhSyhy5AQ7f20P1PhKbXpWUH5LsOcl2HOS7DnJdhzkuw5yXYc5LsOcl2HOS7DnJdhz
kuw5yXYc5LsOcl2HDY8qNuX2DjOluFRLobPX/lClKOMS81th77aH6vwnRX7XZbGqEUVNhBJcsMay
4ieVuW1OgbUuzxiNanRm0uzwDLR8ppmEirc+TtVgBacTNAreYnwCNsFNE5bP2H9ml7BrscJxA5oI
SSb8DHOFKDFIBNaGkJQIJDJ7Mex3HgARmXdpU510P1fhOiv2smptS0lw46OkxoEtk5NVeQeLDSYc
cNV5AV7ls1g6PrLw5bEG83VuUTyGX6y861yzIrNmg0gVKEjdRMZbP2H9gUr4cfUylkhM42Pjckpv
IwjZTpsw029xrfiW5NpQr0h3gf2UP1vhKPdYqvC+aldzzSrn180q59fNSu55qV3PNSu55qV3PNSu
55qV3PNSu55qV3PNSu5vpRris81K7knMiz116hKsaaPyZI5yZI5yZI5yZI5yZI4inybauTJHOTJH
OTJHOTJHOTJHJKvlRTPVQ/W+E6MgRyY7hoHb4SFnCQs4SFnCQs4SFnCQscDjGV8JCzhIWcJCzhIW
cJCzhIWWZlsfpA6q57L+O8a/4rqonrfCdFftbK9Jui7GQicbtMiwGDYZBzRVuLZbXYj3JyAsB8qR
dG3XZ4KYUxpm0yTwx0scvCJ2SS49ZpEd6KJeLAtn7D6q57L+O8e09VD3/wC/4Tor9rOgI6TeRX41
tyXrzR0bFVzuRFVyMWlqqEMS48KCIV4VrxK4GOcSmJCS27BgEP8ADht4TDAmpHGaEZtn7D6q57L+
O7a+sR1UP+T8Dvf0zt6zt6ysRNqZa4feM4bec4bec4bec4bec4bec4bec4bec4bec4bec4bec4be
c4bec4becNakWbl1Vz2X8d19n6qJv/6/gXusb/rkpPMxBQMr34bhwzK2TxiHJKYaBj52aMiQtWF4
V9yQGZSkpla/HjdxHWISQ31Wz9h9Vc9l/HdfZ+qifzPgXusb/rlhr3HT5CFlyyYqvdzIDVglkcar
Fpj7BHvH186JUXJxFaebIArJgbzFbkfoZAyBm29b03ls/YfVXPZfx3T2fqov874F7rG3/jZDaNce
j9R3PMBkhPx0UgW3wppB9piYsmNsUZMOru0E2sefjigeeoDCZ+ODDausE85I2OMiHQLREyhFmIbI
6Ququey/juWv+G6qL/P+BeyzSZkXuKta5KSGT/jY7a9cvx2weSIDDa9GySR6hCiPGVWJkHwa3GRb
i6VBOKZr0cMJyPAY/Xo4oVumQbSzq1FyjgdWiY56yjNjdIPVXPZfxWJuRbbLmjTWuoU18JVf4pLu
6+Aey0HJ76B7Dgc3KORjMEao4YJzfOCZx+KfVbHVSEPLGSj08O6bZUWA4NLlpfAwmxGgBrtZSEat
imt82GJCBI8WJls/YfVXPZfx2etdcBArl32GEDNfAPZailCnVTSeG2J7uG4J1a0SMCJKOqrEfsLd
Zj9khgsgNoAZbN1GDfUesRw2crAeFXVgHGkVsBDiKsC2wGI0ANls/YfVXPZfyWas/TIKDclyBhmx
GPgXstDixiq3prwFiZdK3X2CmAt8f4B9b5k9zD3MZu4+PnN2viNd5k8S9u8d8BzBwX63zJLmDg42
7v4iw8y+Kgt2rx9g8R5hdVc9lXvspavdnPXzbbc5ttuc223ObbbnNttzm225zbbc5ttuc223Obbb
nNttxqz2lhPNttwi92gDJc9wCEiumZajEL04j+69lxUSwiCUQ4HaWNKFqMhGdjqTYFOnjzDRJn11
n1xbiUJ7Ws7evrpWla67Z+w+queyu+lX/QBjVnN6QpWdhX0cB22x2FZphzels7TtLS14yyt950Id
vXZ39GgXHR9p3rVi/iMeh01gtaCpL2yKp/deywlI1MV0U8DXbk1uQqX3usev94e7Dyngn4p/hZQT
79gdgyXhJONIfJJr7xG4GP3HP9ds/YfVXPZXfSr/AKDEs2AO262kZRzem9yA/hHS23C35Jp1Hj2V
tESiO7Wc21NPDCZuQZ7DpzK2ZU9slixfxGPQ6a073BdHi9Lpv917GtPwu64I6GANv/x2+2nXGQdA
83wuGzQMckezxJbxlijI9+MOiTjl22GbUzMgkic4QuPzIIordrh3XDp2PjHA7DGyL9neQ90h9Vc9
ld9Kvvo+hBbIuDnIJZIlWWcbcS6jiomlrcS2hmRGfW+S2MkcxkrHzmBVMvoIQ5JitL7euzOSA5A7
Ho3GvczQNOuhFPdlJFMYCbaGglrsnf6hLghmETc2vCMW/TrzNzHIPqy3XoD+q91ja/xsZteuAR+4
7kOAyRr0dLIEpsKCRIVSJlSYytxkM6ujwLqx6/HBgchV/Cq/HGhNUiCZdkq1GTD0fVYmKJso7Y/S
F1Vz2V30q+O3hILBuDBshpIixSnGmksN8GC2txtLrbESIM4SI0YgUBgLCY4YxQ47YrbsOG+52Ndi
ajBRWGPQ6R55yArXRtRgi4uWjdSoTVVSlTtWQ65yWwhhMEtS0VxCdNVlTDYYyQhP6r3WN/1yf3Ic
yc1s7knbcX4My6cNUxbHD327S8a5CzbnFbWw9tTc6/qQauPaaOnyI6ba2pTWWz9h9Vc9ld9Kv+hG
60qQH8AqUVHJdxqMbJQqC+mHgpEwZlCo1mN77eopG23o1pjbkUw1nAvptWuyqxfxGPQ6a/ZKAns0
/wDuvdYa9LTrNgtKOdrce8VqsCeE4AH3jlYCUyJBiAu8vid7JwrErsqsglbTUgEo1WAt6HZ0Ozls
/YfVXPZXfSr/AKDLqmHWyltE8Qe+g0m6Mg+SZWkoxRWaOeTtEs+3rR7utrlH3EOHOu5qXfze/rux
fxFEthgdKVvAsLNUEWBXPgIcO2VrOL3XOL3XOL3XOL3XOL3XOL3XOL3XOL3XOL3XOL3XOL3XOL3X
OL3XOL3XGanPTth5EJzkQnIsTYAD3pVanys4J5bT+eW0/nltP55bT+eW0/nltP55bT+eW0/nltP5
5bT+eW0/nltP55bT+WqnSsIASCiTiYjowhIgr5R30uir2H7XbXobWi0tp4gN3/29K3+tsej8q76X
RT7D9m8frpp78pAnHyK64/8AX7elb/W2PR+Vd9Lo/t0VCRXmNXs8xq9nmNXs8xq9nmNXs8xq9nmN
Xs8xq9nmNXs8xq9nmNXs8xq9nmNXs6QbfEzUKx6PyrvpdG0IBIQ3KsRnKsRnK8PrOVofOVofOVof
OVYjOVofOVYjOVYjOVYjOVYjOVYjOkqDjwIFj0PlXfS6KfYcnbK5Cm2F8lUpEzjrs1aiXxpFUsZq
wD20oxUzKyBYpV18ASTcXmAOZCfpBTRMmvOlb/W2PR+Vd9Lop9hwqEDNdfrEeS8iuAIPIBZKeOhx
ZFYtcBDINroR5D8OIQ4XWwDUsRIo48bCjRXV0rf62x6Pyq9dpEPB2+utdu95273nbvedu95273nb
vedu95273nbvedu95273nbvedu95MwlwsQ7aew3/APm//8QAKREAAAQEBgICAwEAAAAAAAAAAAEC
AwQRM1EQEhMUMkAhMSBBImBhcP/aAAgBAwEBPwH93U8hJyMxuG7jcN3G4buNw3cbhu43DdxuG7jc
N3CVEopl2oqpilqcgbR/Q0jCkGj3jDUy7UVUw9g1KL2NRQJyZBRmfvGGpl2oqpgg5BOQvYzJUDUi
YNScYakXaiqgh2ycORjaNjaNjaNjaNjaNhyGQlBmWENSLtRVQQfI/k9TPCGpl2oqoIPkfyepnhC0
+1FVBB8j+T3A8IWn2oqoIPkfyiG1SzJPCGbUryfrtRVQQfIwpRJ8mNZu41m7jWbuNZu41m7hSGVL
zTCXG/RH2oqoIPkYi6YyJP7GRJfYyFcZE3EiGRNw2RE6Uu1FVBB8jEVTH45f6Dyy8A8v0Dyz/g/D
N/AWSfkMZc5T7UVUEHyMRVMJUSRNBmF5C9A1JMTQJosGahdpbKFnMwhlLfEGRK8GNJFhpIsNJFhp
IsNJFhpIsCbQXov8Y//EACwRAAAEAwgBBAIDAAAAAAAAAAABAgMEM1IFEBESExQhQDEVICJRQWEj
YHD/2gAIAQIBAT8B/u6IdxZYpIbR6kbR6kbR6kbR6kbR6kbR6kbR6kbR6kKQaDyq7UBJvW+aTMiB
Pl+RrpCHCc8Xxs8+1ASbjPDkwlKFFwNFGAU1gZGQQkklxfGzz7UBJudSZkWAXqH4IGlaecQSHDTg
CQ5fGzj7UBJEW8plJGkeoPD1B4b90b90eoPBmNcW4STujZ59qAki0ZZe6HmpujZ59qAki0ZZe6Hm
pujpx9qAki0ZZe6Hmpujpx9qAki0ZZe6DeQR5VldGvIT8SLntQEkWjLIJQpw8EjavUjavUjavUjb
PUjavUhC4lLeTKFMOl8lF2oCSLRlkICcNRZY4kNVZ+CGqqkai/oZj4xBuL+g6o1MKMy7UBJFoyyE
Djq8D55v0Cz48+AnP+QWphz5H8mX9g9TDgRWfSPDtQEkWjLIQE4ONmsxlcIvIb1D5ME2tOOAyufY
yufYiJKu03EuNFlSYciHHiwWEqNPKTGu7UNd2oa7tQ13ahru1DXdqBvOHwZ/4x//xABMEAACAQMB
BAQICA0DBAEFAAABAgMABBESBRMhMRQiQVEQMjQ1YXGRkiNQcnOBk6GxFSAwMzZAQkNSdMHR4QYk
YlODovAlRGCCssL/2gAIAQEABj8CMs8qQxjm8jYFN0W6iuNPPduGx+V1SyLGucZc440kLSIJXBKo
TxNOEkVyh0sFOdJ7j+IYBIu+A1GPPWA78flnL3EShG0MS46rdxpOk3MVvr8XeuFzXRekxdJ/6Osa
/Z+QdUkV2Q4cKc6T6fC8EVzFLMnjRo4LL9H6vY3MEC3nRJC7WrnGvhj2ir+bZ0CxbRhTL288WlgR
yBFbMkiQNBOiyzsf3SEhR9p+w1tCO2NvHHbaE3k+casZb2ArV/byyWty0EImSW28U8+B4nuq12vM
tr0N9BkgQNrVWwMhs+nlVzdQx72SNchaubiG6sr99GYDChwW7j1q2O1qqF75skN+yoGX+nsqRhcW
UbKXVrRkbeRYzjPH1dlbQvruSG4hillAXrBi+vA4k+LVpbSXmz70XOof7M8YiBnvORUu1Qlr0eCR
laHDapAH05znh9tWdve9HaO7V8CFSDGyjOM541F/NQ//ALitnQ7mJt5FKd4y9dcY5H6a250A2yqt
0T8OpOttC8OB4VYJYpBEbm2aZjNk6CGwfXU03SdnBYl17h8637+2rW0sRAu/tzPrnBOniO711eb6
KL4CxE7yonXPFsjPdwqyle62dKlzIiNaQt8LHq9OeOO3hVzbLPaW+4m0dGlQ710/iHH+lXr20gid
Y2JY5zjHZjtrZ9pm2kvbvOh9LBERVBJPHiauNnX26M6IJklhBAdDw5dnGtki0mijR58YcNxbS3PB
4ilPS9mwEJk74Hrt2463Ae2tjPaxQiXaHA73OE6uat9mwdH6Zud9NO6nQozjguf61ddJ6N0mO7Fo
knFIuIB1Nx9dT2Ud5YXcvRzNHPBnSuDghhq9NW0l1LHKjRqUIB1//kSeNR7OsBEsxi30ks4JCrnA
4Dma209xHb3Mw2hGGDJ1DnQM4qQKbNsWgK72InCaz6edbY2jcC1lWK6mzpQhzJq0+NngtWltJebP
vRc6h/szxiIGe85FXO1Z1txaRa0ES51M2vSOPZxq0tpLzZ96LnUP9meMRAz3nIq42lGtosNuZPgi
rEyBSc8c8OVbP6JNAkUtu7okqsR+z42DxNSyDGpULVa7XmW16G+gyQIG1qrYGQ2fTyrb2nn0kYz8
2tWcFxcWFwtxJuzHbZ1xnBPf6K2soubQ6JQCHjcgdQY09bgKsZFS1kkumWG36hB1MTkue3vrot9u
Jd7C8sMsKleK81IzUu1phbYMAljhUN9pzVlCVs26dqCDDfAkDPHj1uGe6tsLNHFcXVjpKtEpCsGH
Mj0canlS7sbwlfgHiUhdX/LifRUe/wBO/wBI17vxc9uP1GM2MdvL/Gs7lfZgGp9o325WaSMQrFBk
hVBzxJ5mtpW0xDx3JaOPH7EXEqP/ACNWsJeGa7juOkzLLndzHjwP/vZW0LuZbaMS2ujdW/JcZ9vO
tm2kwt4dn7uJmdHJeRRggYxwpuiiNp/2RKSF+yru9njt7XfKq7i2OV4Z6x4DjW0ZonElnA7R2+OQ
L4aQe2rO6uobO3Ns2ozQMS8nDGnlyraGzZDCtpNI8sc6sdYJbUvVx3+ml6XBZIgHWeFiSx9Axwq6
2Zri38pchsnTxfV3Vs26UqI7beaweZ1LjhW6gKCZZEkXecjpYGtnXsoij3MciyIrE8WxjHD0VtDo
fRDHdS70SSs2U4AcsceVWLRuGgt7VoDnxmYsDn762nAq2TLdu7i6kBMoz+zy/rVpdkpoitTAwzx1
ZX+1Xk0jL0e4sxbYHjc2z99W9tLHZPDFhekBjqZR/wAcc/pqNZIbOOOOYSJdKxMqqDngMc/pq7tV
bS00TICezIqwuSLWO9siQia2KSKRhsnHCp9o326Wd4xCkUJJCIDnn28aspbXdma2n3umU4DDBHP6
aubkxWEhulXLS5YwYGMLw4jt7K2EheP/AGGd5xPHqEcKh2hZtAZDCYHhuH06lznINbScSw9Lj2jv
43HGIuqjh6uypOmQWsClcDcOWP3Co7O6WDdwLoR4nJLesY4VHtGx3Mj7ncSRTMVBGcgggGr9JJYD
Nc3UdxkZ0jBXI/8AGnvsrujaiHHbkMT/AFradlLIqm6uJJkdeOnLalpelwWSIB1nhYksfQMcKn2Z
NIqu7u4dOIHX1L/Sl6XBZIgHWeFiSx9Axwq72cWj30omAOTp65bH31su4tRBJJbQtC6SuVByBxBx
6KuNXPdNnHqrZtpMLeHZ+7iZnRyXkUYIGMcK2vGrRrbX4JEwY60OjTyx/Wtml4bC3WzcE9HzmTqk
Z5fZV5KggezunWQsXIderjlj0VYWYljW9s3WVH4lNQP3ca6VfbiHdQvFDFCxbi3NicUNlBo+kdGE
OrJ05xWyrhSui1LlweZyhHCtqXdvuHe43W7WRiB1RxzwraF7urW2nmjCpBESY9Qz1m4Co9/p3+ka
934ue3H6qQRkHmDSxxoEjUYVVGAPAQRkd1CKCJIY15JGuAP1RpZ5UhiXm8jYAqM3EEN2g4oXUN7K
EUMaxRryRBgCmd2CqoyWPIUssMizRtydDkHwh7iaOBSdIaRgoz+OQRkHmDQsoniSVEyLdSAVX1eC
YJPE5h/OaXHU9fdQlt5UmiPJ4zkVGJ5o4jI2lNbY1H0fjz6ruBdx+dzIOp6+6ldSGU8QRyP4rSzS
LFGvN3OAKV0YMjDIYcj4TLPKkMY5vI2kV0lriJbfGd8XGj20rowdGGQy8Qf18k8hV9drFbQ7J1hc
HO9PWHHu51Fs+yksbYW9tGXlvn0hjpHAVsaS2toTPeu8TI+cBhgDHo41trZO00g38dm8qyW+dJGP
T662DZWMSSXt5rC73xVGo8TW09nzw2x2paw7+MoCY5F4f3rYfRUhN1fyaJAwJCgeMedW+Bk9KTh9
DU9jcW9m1xLA01vutRHDJ0n6Aa2H0VITdX8miQMCQoHjHnUc0CIXklEeuXOlPScVHeu1hfM9wsam
2J0suD7DUOz9rR2wW4jMiPb56uMnHH1VJtCP8Hi0STSLR5P9wy551dfgqK1Sztn0E3Ocufoq9gjt
bbfJZ61nK9cnq8Ce7jVjbXcmzLiO5k3ZWycloz6a/wBXtpV8Sk6W5Hx62N0WCzsemNJqdlYRR4bF
f6f6bDs+8knuwu8jBZAMjivGr3ZWz4bUmFFcSTZGOAznv50l41ujX73HRVjHilu+odl7SW0O9hM2
q3DcOff6q2PaxLG0d5IySFwcjGOXtrbcMccBWxijePUp46tPPj/yrZXTLe2Sy2iQEWMkuvLmfpr/
AFenRYIWheIbyNcM+X/a9lQW9ssf4OtLZN/OQT19PirxqTaEf4PFokmkWjyf7hlzzq42ds2C2IRE
lEk2eCkAnPH01thbK3tNGz5Gy8meKjsx38K2S8KQR3d/nrTtiKPBwSa27Z3RtpZbdUIntGzG4LCr
TcaTN0VdGvxdWjhmtp3l20c1lDJI0pLMZNYA4L6Ktdq3lva/gy4cLojzvEHfUtvMuqKVdLCrb/Td
xcK9jbXMjah+9A/Z+/21Bsyza0t3Me8ae8bTGg7qa43NvJcxXgtn0EmNxx4rxqLZu04bZRcRGSPc
Z6vo+z9dKnkeFXOxkubT8HsxdZGDbzvA9HEULuzWxuTJCiSxXYJAYADK+yv9Moq2q3wmfAjUiHVl
a2nfbSlh6ZdwG3VYM6EXFWJ31ol1s5z0fGoh1JydVXe19qSQ9KmTdhIM6EX6fVW0bq2fe7PtmIty
OWp+ePVyqOC2eNJUmEvwuccM0u19sS24eCMpFHbZ0j0nPrNbRurZ97s+2Yi3I5an549XKglklrKS
evHdglGXup2lMKy3F+jiGHO7j4NSbT2w9vmGMxxRW2cce3j66a1gj2Xc2uvKzXMZMgFXrbLmtDaX
Um803GcoforaV0JkiiurLo64J1BuH2cK2U0p2egsZVOIFILr2knHE1tdke2Nlf6mOonWDg4+01Zb
Ojj2ddiPXvkudRU5YkY9tbHj38LNa3nSZeJxjI4L7Kv9ps0ZgniVFUE6sjH9qaOe8traeK86THMz
dQZwACcVBLPPa3UkdqQzWRzGo48M/T9tbPurB4lubOQuBN4p5f2raks9xavPfQqpxlQrBhw5csCv
9P6XiH4PZTLknjjTy4eiv9RASQf/ACLRtFljww2etwqG4tmhFtJAIruHJGSBzXh/7x76a1gj2Xc2
uvKzXMZMgFX20i0fR54VjVR4wxj+1f6g1PEfwgzGLBPDOrnw9NbJWN7Zr+wLdWTJikBOccq2hbXE
Wz7WacAR9FUgcDnrGoYL/c72IBF3GcaQOH01tKxlkt22VdtIxYZ3vWHD0d1Wuyry4tfwZA+rXHne
OO6porBo47lxpDyEgL6eFWENjIkW0bRt4s7cAzftf++irXaduLN7tYt1NBOCY29VR27iwt7kXImI
gBVNIHq51YbTVoxBBEyMpJ1ZOf70vTt0LnjncZ0+jn+vxvLDHI8RyjOoJU+ju8JBGQeYNbu3hSCP
+GNdI8BBGQeYNbu3hSCP+GNdI8AS4hjnUHUFkUMM/kjFPEk0R5pIuRRFrbRW+rnu0Az8QypHZ3cw
RtJaOPIrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/
AFJrzbf/AFJrzbf/AFJrzbf/AFJrzbf/AFJrq7Lv2PzRpoegzxSAZ0ycK8mb215M3tryZ/bXkz+2
vJn9teTP7a8mf215M/tryZ/bXkz+2vJn9teTP7a8mf215M/tryZ/bXkz+2vJn9tSBYzHo7/iXaPD
/wCset3NcRRv/CaDLpZTxBFchQtmmjE7ckPOuQrkK5CtTaVXvNchXIUnSZUh1+Lq7a3u9j3eAc+g
1yFchV18wn3D8bREutsZpYo11OeAFSAofgzhvR+Suvo+Jdo/zj1PHtF4Y74SNv8Af82OfTU0UF9H
s63hhV4cr+d9tXNwJja7izjudzp5sc5FXt00u9Zr6Jeuo4ZxW0ZEnIW2V9ShBhWDcMd/CrvolyrK
iW+kjiAWfBpVG0TJMq70qyL1hqrbbyX4lZX+Dt2A5cONSTdLRJY590uz9PFxnHrrpDXGYun9G3Gk
Y01sVYHRJPhuLrqHJa2hbylG0W1ucquOO8NNmeGJFdo+jyEZAHI99XC3E+/mibDaQNP0EVdfMJ9w
/Ga7bnJIIh6u2jIw+Elm3cQ/454mr2TWw13W70jkae2jlfVH1nc8lFNNb7zUJBGC551cxuZnlt11
NjgDQikJEpXO81jCnu/Guvo+Jdo/zj0HkgjkYdrLml1wo+nlleVHKKcjB4c6I0Lx48qWff61UMNO
nxs/xd9YWFAO4LXwkSP8oZoncpkjGdNb3dJvP4tPGvEXnq5dtBiASOR7qJZFJPA5FbzcpvP4tPGs
RRrGP+IxV18wn3D8a2gRSixD2mre4l4iLT1fVUXwRwLgztx51cyyITFcAhgOYzVvYWsbDMuolz41
TmGdljixqjZMfb21v5Y5OkFcEKeqT+NdeofEt9LZbYewjFywMajme+v0mm92v0mm92v0mm92v0mm
92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92v0mm92riG8uzezCEEyt2
8vxdESF29Fa5Hi+SHyfxM8VNQq7uySnCZPOnjbxlOD+NdeofEu0f5x6t1ii37Mdco/gjHM1EZ7hY
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
zzj9PzzzzzzzzzzzzzzzziSwAjzTyTapTzzyqH9vXzzzzzzzzzzzzzzyzziDySihDSo3LPPPIxd7
TzzzzzzzzzzzzzzwyjjwRhTxaoM0GuyEinjzzTzTzzzzzzzzzzzyzByyDQTyr9OZ+Tg2/wAg8IA8
88888888884goYUAUUUWqB/MPuskq0c88888888888888MMs88888ohXIOMIIMMM088888888888
888888888888888QwwQgQwkU88888888888888888888888888E484kw44U88888888888888888
888888888UssMcscoc888888888888888888888888888888888888888888888//8QAKREAAgEC
BAYBBQEAAAAAAAAAAAERITFAQWGhECBRcZGxgTBgcMHR4f/aAAgBAwEBPxD72dChk/optttyLlYq
5xQrNxN9CZATXQjMa1/gk2hDmKLbEjlscxNV0GvVjdc4KZy4lDUHkTCUKX/RKTiZ/YmpSTpuO+Ml
8b8k7h3CDqSdTuE2VMZLhsubamZ72Kvmy5tjws/OKumy5tmZFn5xV82XM6zGqnhCOaCxN82QjlhG
lNKaU0ppREhSzQ1C3bFXDZHsEikqsysnIKv/AAO4EpOzqJFwlWmuKvmyITk6E+hSVTmW6tSjifY6
k+xUVwZ0maYq4bI9wsSazLwqEBpKkPKt/hSohPcMbvFQrqOm0qxZBKNH4NH4NH4NH4NH4NH4GEon
t+GP/8QAKREAAQICCgIDAQEAAAAAAAAAAQARITEQQEFRYXGRobHwIMGB0eFgcP/aAAgBAgEBPxD+
2AcwUXYfC7mXcy7mXUy7mXcy7moxuBiK1JzNIRJSxInojwD3L7RDEg3cfafrtPB4rUnM0ABDuBxH
eaACDboJRAX6lRZhTweK1JzNDCHYuRf2aErmEA0cYvmEHeUMbGjuhgAQGtNrN72RRYkz+GfoQDQF
HH4rUnMqf2ShgaLI0RPdogO7RZGiZ1Ym6ji8VqTmVufXlvhQOzxWpOZW59eW/FHC4rUnMrc+vLdi
jhVqTmVufXkGDPYWHflZJ2GJzLO37WpGZW59JsblYhYhYhYxYhFzhNhuCHEnEoVmTmVufS4iiSUA
y4s1QYwY9sRgtyvyQlYeyRKScAQJB9YFFMAYiL/r8TSCBrUjMrc+lA4VFG2t00cFxpqCYcFGwcFk
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
459h/wAZ9h/xn2H/ABn2H/GfYf8AGfYf8Z9h/wAZ9h/xn2H/ABn2H/GfYf8AGfYf8Z9h/wAZprOT
sdDjZi+V/Q/VvYfLDUMsxiUl1vPbf9Z7b/rOKrSs/SbxAI1s5f8AGBBRdDV/jNDhr9hntv8ArBVC
8pn/AJntv+s9t/1ntv8ArPbf9Z7b/rORnHjaoOGGe4eH6t7D5Z7P4fgjdn+XauGB6U5x4DsUzWIQ
NjdesIPrI3CUtIseg0YvZ4ePErCHO8SMCzibCAvKXXrnARmspwFRCXEVuIBUw47EUcKiLCy8q+y8
cAOaVWpHg7QKFuCORrIZzm0DXvG08dReQOIs1sn4e1ec+2eH6t7D5Z7P4fgn7ACdB5fUKHjIq7s6
FExAFfGChp77CqYYpp3mw3ZC+3rUmbWLqViCd2D6ZqBgS28XlI+mB8zL9IbEoKdGafGAho36t+h4
x7sE4rRhyCCY6wDgD3vIDjYgpJYxpgvB+HtXnPtnh+rKUxFfFJguPJIpvs1NZ9hZ9hZ9hZ9hZ9hZ
9hZ9hZ9hZ9hZ9hZ9hZ9hZ9hYCUaqE45pF1inCtTyE/8Azn//2QplbmRzdHJlYW0KZW5kb2JqCgo3
OSAwIG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIu
OCA1MDcuNSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+Pgov
TGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFt
CmVuZG9iagoKODAgMCBvYmoKPDwvQ0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjgyIDAg
b2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEg
XQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4
Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoK
CjgzIDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKODUgMCBvYmoKPDwvTGVu
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
OWMkRL0N8XZkD6E03ribv7++/3LLcWyx5TjYcvy/fiPncgplbmRzdHJlYW0KZW5kb2JqCgo4NiAw
IG9iago1MTk3OQplbmRvYmoKCjg3IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3Jt
Ci9CQm94WyAwLjkgNTA1IDc5Mi44IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1Mv
RGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVh
bQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2JqCgo4OCAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAw
LjkxCj4+CmVuZG9iagoKODkgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JC
b3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJH
Qi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAA
AAEKZW5kc3RyZWFtCmVuZG9iagoKOTAgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5k
b2JqCgo5MiAwIG9iago8PC9MZW5ndGggOTMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVh
bQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4
Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/
RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89R
vuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7i
lPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq
+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1
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
b3/529vP98tT9B898P+H47UrDHUtV3qaRu0fs6//+vuyb3/8w0f6fSrbX7f2h4/8+/I6NW7t1dK/
b3/aWvq37U+Ju0bq857tr7S3lv+Umn5p6S/Xv9R5T/rL9qf5L3X/w//+t//1OwEo31BVPKPYmqWn
XqP7RzJT2ugqh2CPRKEJcyQ1/eGj/v7V94uZ/IeP/hpSrvOf5hD+8FF+v5U/fLTfbxU29S9/0u9/
QQDzumzzv/mPItX/kHyLR3/81kgGER5TLRgj6T8AM//GSA6qs05rbYwkg0gWU3+ejPYXo/77J8b1
+s9fGZTH+RL08brpmLwes5n/PC9b+ct8rP6C5T49Pf41lqW6+sLy/ockFmf3u7p/cj25/OsyhEND
aPXfXo3yZ71Rx7/AtZLN/Wtc5wubi+utGOtk1lN6XeZ/m29Gen1nJ2+8QK93+r6pXKNIalce0zvP
uOO5VDdhlbftjxr1fOte79gcataoyz83ak2UrM/2vzRRspy4vk6U/KdS9Pb/WUxumhVtvvn7nCt/
1fjBTIPKm17+f2YKzBPvv4RLVq2DJy4vOczZO+WfGqvNXI9S9QRNvFYI8/Xv7WqkP24Lmv110GqC
R8ikcWGc9vuuzOuqf9Edr/8mrQN5jvkfjlZeev/aeJUV8zneXDRevVJ9LkPxJrKMNl61pHUqJr7G
9BJei5cx3j8Y100SFRLULSXxMqc5wPRHesr1FsXr/axTfpnXlHWkqqtfvJtJxbf+pXczKTrg67u5
JT4wWsb94vFduRbv9quXMNV/eXlI9Zvl4c+XuJnGpS7CfH3d2us1Clknv56vqa7mH71u/PFe/5pH
FBD+kZu+rB91/pb/soL5uuP1KqfoXa/CpMw39q/1z371/0QH/1A0CiD810SjWJUvM/TfzOzkhen6
9c273tz1zbuXxe2PHuHBvIsZzDsb0tvvF1iT/K/XnK9Xb9dw//391xu4ERs47wj/P7YmMfAKZW5k
c3RyZWFtCmVuZG9iagoKOTMgMCBvYmoKNTIxNDkKZW5kb2JqCgo5NCAwIG9iago8PC9UeXBlL1hP
YmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8
L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKOTUgMCBvYmoK
PDwvQ0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjk2IDAgb2JqCjw8L1R5cGUvWE9iamVj
dAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5z
cGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjk3IDAgb2JqCjw8L0NBIDAu
NQogICAvY2EgMC41Cj4+CmVuZG9iagoKOTkgMCBvYmoKPDwvTGVuZ3RoIDEwMCAwIFIvRmlsdGVy
L0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicdL1Ljis9k7Q5P6vQuAAlgnfGMnrUCxD6MqhsoGryb/8X
7TGPYGShv0K9Ek+KpNONVze68/hJr//1779ex+t9/OTXOMtPf7Wzfb//9//17//8j9f/9y+91v/9
9//z71h/eP3+Wz8a+v6fL74r739GIesLf/1///3f//Hv/3j9112us/f/3yz3L1d2CXD81PNI5+vv
51ek85w/9ZW/eea3ZFJppO9/z1G+5fbx/c+ZxvfP7zJ/ztfnNXv+/vmdalNd7fXOOa2fnmOJlef6
8+dfP9JqWKlq66G/lW/J/VXOruKU+Lzy7F8dOpnOHHlO/XMUtxrpit59rpKXAO+UqzIj2juN8yuQ
hH7no35/RmOcoJ2ff07W1NUSZWr5+LkK7LlLNqoaJX//uySYx6pIks2x/uHzb0l8llUJDTnb+VPc
Rr5/3HxS6IUcqCxKQptUgZKpGPWHSOCCtOBFM3YkPw9c3Y0W6jWl199P9YJxaefXqaW4bw0jo9Am
MbJU3dQL0lfMLwh1yXmWBc7xFXA1aSVmkhyrtU2ISgnr67e18+4DK0EfyJH8avSHXrA0Xe/CDvUv
VbOAyVH9FzT1Q4v2BXQuham6L9Juir7uPUCKy/HzpdEcRS1lZ+OfBUN+rWoXOJZq9tVrhP8aIuVY
GlQzzrbkiB6ATDSeFDohB+qKspYeqQL1UjGKD5FABGlBimbsGH4eiBr/7z/tEEsr3045Err6ypq6
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
1tXvS2sLwr76RdElyAXhx7L6pXVt58ZjO/e7BbygF5TLg1b50k9Qzt9TfpaDg1wQrg9S9Us3Qfg5
/36nliDkgvBjW/+ldU2/Ub8n/KUuZdCDcn/Q6t/0c/f/q1Kn0Auex4PW+NJP8Pycfr9XOTfoQXl/
0Nq/6efu/xd1mIMchB97hC+t/SK8/0PCLuod5ERYSYMvUs/WuDYM43gS/r4qfJCD8GO+fWltQdhX
PxHmK7VpRTLldFF+TLgvrXRRTg/KPkN0nwIflPNF+THhvrTyRTl/T5nz2oNyuSg/ZtyXVrkolydl
zhAXZS12plwvyo8p96VVL8r1W8o+FD4oXxNwf+x4v7SuCbg/J6BPJ91nt03rqCn3i/J40Bpf+gnK
/XvKnN0elK8JKFPsTWv/0k9Qfk5An3u+pXzNwP140Dq+9BOU928p++y2afE35WsKyiJx0Xq29msK
7s8p6CNV99ltpXxcc1AWjZty+tKPKR/bt5TZGm2Tc9NNcX45HjqjL60U5xdfBV2ftbpPSCvhS2V0
lAep8k03d/e/S3h+VUy5XJTrg1b9pp+7/4syh7juo9eDcr0otwet9k0/d/9fKfuA9KDcLsqPKfel
1S7K7UHZh7juw8ymL6EpXwfQ4zHlvrSuA+ixHkB9G48/5tWX1rgeH0/G+Fq04/UfMTY/pGZsvyg/
5tWX1n5R3m/K2F6IseTG13J8m1h+t9u/6+7Xm/76L7mFoXK8n59vf/hPn+39X/7X+19Ffshm1OTx
9PkWrd2KClpDWoDSZUHaGPmj9fb8jUI26/WORuEHRej68vxhLc7Nxf94++//jgGm0krVALX5/ehF
HrF4sDPKfo9ye/+YC8H9fuV/nxj/8K//2/+Rtvz+3/7f9z/87d9eOy5I/l0db/OeP//trWBVfu2o
/vZ/vf/ht5lE//1v//cft/Snv/0/b//6t7ef75ev6D964P8Pz2tXKZO0tNLTNGv/mH39lz+Wfftz
Kn/6SH/cfqs1/VlXbStpbL9t7U/p+OP2Hzf+9S8pb395/dtH/mP6j396/V+dl7luf95+m1evx/4l
vdCo+5/+z7/979+NWHVG6+ujKS5mzbkf/1hEQ9GOygVmxksW2zWJgddxucCEGPgLbLx+2l7/XP64
vfraWvrLPFWX7cXfby9efVNOXKVk3vO8S8Qyv+RNv/w2ybVSuDFvaejvrocLt6SW8j8c9PSm/CeH
XXQE+jLsTK/5L38a+Y9VDEoUMc4pFQ1iDvf1noq/9PpspIntP+RQqth/jsP8FZYswZXyehG2CcBk
a7L0l5Bt2STNDF9it5vJdANZfrvGwT+X3xa4/tEoskLM/qlRZCWFfY5jS8jtT+X1kvEepH8V1I/3
anL5HNj2LxpF2fxWIZAXYLwu/xiCrHi/f475PA3+X5g3j+m3+ZL8LqcpXg39HQkOK693+vPrDrBI
bv8GAHr8FwOZ+Y7rPzeQpPQOX94mWEmwxvRFnLFWScQ5WF6ma9w6Fyxk7zldGeUENt3v19wQ8nNu
87/36P76/u/4MNTrw1D4MPx/C9Bn4AplbmRzdHJlYW0KZW5kb2JqCgoxMDAgMCBvYmoKNTE4NzAK
ZW5kb2JqCgoxMDEgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDAu
OSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0Iv
SyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAAB
CmVuZHN0cmVhbQplbmRvYmoKCjEwMiAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVu
ZG9iagoKMTAzIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcg
OCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVl
Pj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0
cmVhbQplbmRvYmoKCjEwNCAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+PgplbmRvYmoKCjEw
NiAwIG9iago8PC9MZW5ndGggMTA3IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJx0
vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041XN7rz+Emv//Xv
v17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8vvivvf0Yh6wt/
/X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb955rdkUmmk73/PUb7l9vH9
z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrrob+Vb8n9Vc6u4pT4vPLs
Xx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9GY5ygnZ9/TtbU1RJlavn4uQrs
uUs2qholf/+7JJjHqkiSzbH+4fNvSXyWVQkNOdv5U9xGvn/cfFLohRyoLEpCm1SBkqkY9YdI4IK0
4EUzdiQ/D1zdjRbqNaXX30/1gnFp59eppbhvDSOj0CYxslTd1AvSV8wvCHXJeZYFzvEVcDVpJWaS
HKu1TYhKCevrt7Xz7gMrQR/Ikfxq9IdesDRd78IO9S9Vs4DJUf0XNPVDi/YFdC6Fqbov0m6Kvu49
QIrL8fOl0RxFLWVn458FQ36tahc4lmr21WuE/xoi5VgaVDPOtuSIHoBMNJ4UOiEH6oqylh6pAvVS
MYoPkUAEaUGKZuwYfh6IGv/vP+0QSyvfTjkSuvrKmroG6fz2YgAuS8NlCfJtJLr/StwX8AuTZIAF
1pJ0tbIAY9ohToa4RnIprUau7+/GXWDSqP9W9O6DYV7U0XJeHxZOmGXE/kJZvrXSHCc2mFdyaShF
prbKpriem7ofVY2yRuaqfx6DCWh81TBVEhKf+fxmoylnG1dH5vvHCiCFZsiB0qIstEklqJmqASCE
Apkl7UKLJtwYfjY8twE+j/L6+6kB3i+t/DqVVP6q5TvfCf2FzleMhf0ah1J9E/YLknRqxupM8oc6
7LeNC8XVn1fTV0fo9/TnBNi3SC5Njsj17abpLo5hqooWJClEEFzlEu8L5BpNXdgvVdIUJzbsV7Km
pv6jLO1b9ojilqKr0U+CIL+SZuCVlmRT4x/0h7DMbswX4xt7I5/1femEX6KsKAM9UjgKpsql+BAF
NJASlBB/x+/zQPMa3O1q+q9TSyvfrOOQrla/TI0hKFCWDBrgWQNcq3VOmjlPzYv5uy4yhx8Adngl
X5j3e45zAph7JJfKzsh1Mhe7wBwVvbsyIMIXFXYMiPdFbBUuwb9QrqbQICc2mFdy6WlGpqXAFgV+
dSuQV1WDafqLQqfzfdHWOgHEX23lJTsNOdtSQ4DM7EvzSaEXcqCyKAttUglqpmIAQCBwQVLwogk7
kp8Hrtcwb9/NW3/9/dQwr5dmfp1KY3W7s58oc63jlXl59YHGeKjabZyayhc0q+9q2CzIkvuA1vHv
NvPQAlD6Pf05QQ8YkUxnYWk4lqbnXVhmmGsF7z2qF1zJggnIhMBCOLshTjzQz1LdiExLpzmK67ky
Z3TQ/2bVENeoWlLN3j3BF03Xw+v4F63WtnW8eR1fjSeFTsiBuqIsNEklqJiqUX2IBCZIC1Y0Y0fx
88D0Guz1UsGvU0s7WUXml5aZVZfmY+0alxTaL2lbcWp6z2low9YYm9Pbds0KpayperUWdDegDTNd
QCDX+P05mTcoSoOaSt5dlVD9Fxk6k/fYaTRmKE3h6080xokN6pVcOmqRqaV5F7j0qplDlY3vFPwd
OQuBLw6WbQGUDfZazYebcrYFSUANPDSeFFpZv0ddUQ6apAJUTLUoPwQCFWQFLRqx4/h5oLoN9Tbn
6++nhnq5dPPr1FLbt1WdCWmN+lSYkDV3ze/uswNCVR8ogkdNEmwjpvuF59Sa7uF8T4ROrD5w/SVx
ICXPyZB1Yeocq5IvKFH1O6WT7sMeOw2NilPr/bnGBA1x4sKfZGURI9PS6YgCey6cAjvof7ega5+u
o56kmuoYoP/FKGsVnWug1xt7I8+/Ll3wO5TkEqw9ikatVIjCLcg/kEBGEEL4HbvPI7XhfgL3/SHQ
86WQX6eSzgOnZlztr74yfHXLHnLJpl3UsYb9PBn2XRu5ypQ8NCU36fYL4SpmtV/dZgl7wc4O5asv
1v+VXIo8I9c59wLLXdW7c0iTEMLqFlA4ZgQXwMkNcuIBfpL+cmRaiq1RYNe57ePKRl6YFI3NdZ6X
bLPXa6ZfK33TSs96XraVvnilZw+g07a0Qw4UF2WhUypB2VS9QAiRwAZpwYxm7Gh+Hthe83y+VPDr
1NJOV5HS2qqJoxTwzDYY48fSwjwZfk19ozIwu8bAalIHuqS2rjL6PQs6AeA5kunE3KJc58m0QYGV
6US7sM6RTUJ88dEYtYBf7ArT0xJTw5ImObEBPj1gUmRqbBkocGlXR0FVtrT+7R4alEVTq0Zr9Wyv
PpAXZDTnbPnnHvOyMFkJpNAOOVBclIVOqQRlUzUwhFDgg7zgRkN2RD8PfO+Rn8pYxobnpwZ/epjq
kkx1q9OcvaPSb69OOgmVRl/4KqucGvqTxbip2wjEPDQE1RO04nev+CshpV49gXl1qa5Gcun0ykVf
igIrJwmN1K4FACEEXLJwb0Tv/MEWp6wt/MOQ4WRNlVNc1lAad3E9Z5/hiwb+gkTT8qH9/KkTWPG8
X7WKVzflbLc5ku8fK4AUmlm/R2VRDtqkgqVkKkX1IQ6YIClY0YQdxc8D02vQHw9b3GHNLLPj0q/s
J6suba29udPxemm5Cmptr6s2d8zDo12zvIbvOlSslmbgTDvUyVC3SC619ch1nhwLXCAHBv29g56E
+GJDATW2eKunS3QBmtwkJx5gJ2lqRqbGBpICl3Y5sq/Klt6/P9BWWzuf05bTabDXEC4s8jqyH1en
5vvHSiCFdsiB4qIsdEolKJuqgSGEAh/kBTcasiP6eeC7DfrR6+vvpwb9sfeF15oIk2rKS53fNieZ
Qws7zdkwdsge/pVa4Kgxax0YVfvydk5W7cpav3C+p0Mn6APX3xLbBfKkA2t8lMd4r0KlRO1fxDgk
1DjOL9vKYEmQBZW2OLF1ge7BMiLTUmmNAr/adgf4nqplE28a7ekSbKEW0/5atWUUmljgb8Mk39UD
/B298HtUFiUtTVIDCqZeVI88IIKgCyfkv9H7bEjeqH8nSZ3fH58L9Xnu5jqlkuz+Z69o8Vv9wS6a
yXkJVtH9mgOwt6TyA/qa7oun+8lorlr4GzvxnZfpwcsMNv/wMo2ZY+Vaau53ifA0quvdZcJBCgFW
Lgm/YB7MX1rsm+Y1WQhIbD2geey0yLQUm6LAnpPJmVXZwuK7Csi0JjOBhFtmVaZ8Lbs5een/YlI3
fqYGPyNzgFLohxyoLspCq9SCuqkbIEIqEEJgkKMlO6afB8Ix8c+5m/CUWgpafENBcafq0nEbEqax
Kpah4Y4tNbGuysiaNcQAXdkWSKu1wnknYnoQMYMOARHTwG/lWno97xIxA6uuhUMOKb4YaT6whMIv
I/sC1i3S1x1wKanGz1uSUBTVRfp9XM3IaxWSXVVAIxb2VOAuAi+5KWed9xqv7x8rgBSaIQdKi7LQ
J7WgaOoGgpAKbBAYzGjJjubnge02/Fs9X38/Nfzn3g9e7H5XTd/2y2R8TGZjmJpWmXaHhv6FTFGD
NPFn7/nZf5Ws5b8xve9cTQ+u5kokzEPkSYc4oShvRD3vfjDsPU97rjBVI3Jr0Ee0A6M9Tmy9oHqw
5MjUYKQosOfDG71Dw37925r4D4u1cMvuA8ssd4iSXThvPE0NnkZIKoVW+D0Ki5LQ5aoBFVMnyg9p
QAVBF1bIfyP42dC8Bvp4zO7DKlnHuoyqqmpZu7MMIdMKm6vViAFZmpOs22ZnRvLszvgty9C2Wrmw
azsl04KS8V4cSoYZQbmWNvtdolcSzeudDVzx6NQEbQm/iC21wLZjYKFNTmwwFw+SFJka6wQFdgHx
cWUjr13cEA11ahZKGo7nNbsvS6csfWrQF9IbagPd9B3N8FuUFqWgT8pH0dQKBCEP2CAqmNGGHc3P
A9ttoJ81vf5+aqD3x5TfrbV1pEto87tgmTfP3uExf+rcNab3XsxeUDgjecpn+RbHtNQgI8HO2rRg
bSYGGVibHnnSke/SZtTybpzciyHDAJS9x4MuZw8gPoXWOLH1gSxrd40szQStilsa18yhqoYuZHx1
IRvOEmrZWZjs1x5sipAVvVU3vqYGXyODm1JohBwoK0pCj9SAgqkV1Yc8YIKoYLVasGP4eSB6Dfe2
kzJKLbWcKnCtaN962Conb+Uys6mOe7NhWJGF+/T8e3gjz4G8HF7VBeNOy7SgZVj+G7QM5z7l+upz
L3FiL5J5vmGQLfBqSd3OEn5R05DMIJvdHiceMC9bN12gQ8BuxXXxnB9XNfKaGLR9la0e0RZEzOo6
qOnIT3POutEzNegZrf9KoR1yoLgoC51SC8qmbmAIqUAHgUGNlux4fh7o3gP+u2Va/PvzUwO+7cyN
UsuYuY50hzT6Q29A1929IYPDGvBYbdlxnmvi7+c18Wu9OEXSsgK3sfUE94NGYumzxe+XqsddFrYi
jheaFVz7Fzaoe++/k+guuJp0JpnymNaV2PpBkilPN93I1MziqMCeWJOo7IvFS8dXXY5CtGVpa+4F
3ESqbsxZN+amBnOjdVop9EKOpbAoCU1SBype9aL6kAdMEBWsaMOO4ueB6dYDvpuF199P9YC68zZK
Yc5e18OkzW9l3qEn8zY+VEniiaH1kNFbtgTh5ilfiC4FLJR31qYFa2NjLLwN9E5ei365yznvGr6Q
RM0CK11SCcj8CmO9zguDvZsSG/oruTTXItNSaYkCe/LlvbZar+ZrdA4Jtcwtnux9Q2a4EWe9bZR8
F/L+vnTBr1FSlIP+Vumo1TVK4SEJSCAkCCH9jt3ngeQ11ZeffeterJSiIqWsobrWSGX/uKRIqHgN
78LQm5ZboExv3g2W1stDB7+yMdROAPGVTOeV56tNze4uDy5INb01JizDFxWu7Hm3ncymsqbrSDD4
nRIPmJMUVSPTV4NR3FKtzoONhePb3TX8ZAeSYLMFNcs9idMNWXDmDWZWdZlSK9xM/4kcqCxKQpvU
gZpVr9Qf8oDLEhS0kH/H8fNA9R7gNaV1J/T5qQFedtJGqaWxuP031ixTrWEoGywiRTvPCUgHq9ax
8Bqe4D1haxk9MMe1nbBpQdhg3msQNl4WVq6l6HGXmLDiqap361gSWKuTzusW8IumZp6FudgPmuPE
3QGUXArMkaXZiqfievLdPVU1stYL7kw37eyKhmlQtEzbmlrVoLNulE0NyqZeqealAYbjuEpCo9SB
qqkaEEIosEFeMKMhO5qfB7bXkM87K6PU0k/3LUAMOAfb5MNwJzStAb8Q4DYbJEoPQpZNQO5az7HA
t52VacHKnJFI3g8qTzpgeVxeYqXgLNG491w4SiRufBwBdX7ZRqNplsY4sYE9ZaPDgtuhY+kVKq4n
X9VTVV+NvyTAEIueTJdWseTJ+zTNpnMBvbEyNVgZabTCyugIxmFRSouSljapASWvalF9iAMmzQa5
7P6aXjuKnwem24Bvh6w0j08N+LQTNkpxO2HVJmU2ibGgPtnTVe6nFbEYk/tQbD4ni2/v3uF34SkF
NHBOew/AWiMilmTysS93qbneZUEZUc27sQ0vcDaHboFZuC+cuvbJej2nG6OvO/5LdfHjZquNCura
bH1cydDdHFU+RMkg1sLM072m76J1XVeh6kbT1KBphFiFpun+PcqKktAjdaBgqkb1IRSYNFtpEp34
tWP4eSB6DfN9TmdGP3UPUJr6Suot9MmWrZ5otwjehN6/UpiH7UG9ss/LTdRr5ZC2czEtuBhfmoCL
wcajXOmAbnWJyZegNXk0dlkFVubQec4CfnHTtU+me5ugMCY/7BlOVgy9ZGo6t6u4r1YN9DoyHy9V
/4XAYq2zdMzmp+5E0JAFZNogToa4OtVs1wmFRTnocpW/FLwqRO2IARpNZ/JkkW/cPtv3//x3Derz
kEXm8alBfTxsdIcU1HTz79unqyrWzWWO7BXCo8hqMw2CrNey/AqfZMQ1pKtXcaG6sy8t2BcM/Q32
BWOdciUOd1FicveSJagxUiXGFyKY4PCNEZk1lpg2NLX4uqGNWYPdnjI0H9tUWE++s6eKhi6vJjCB
I2ia2IOBjYsRxc05y8a9lOBetD/mvqG0Qw4UF2WhU2pB2VQODCEW6DQf0g533Ph+D+87dU/vyyj3
+vu5esI4dxudUuvyYVZtS6Fa4JNVLVqmwoQUXe2fKQBKatSahMUR0Ru0yItDYMEubadlWtAy3NZp
0DJYc5QrYdmLEpPXEnWRxqRccOQ4JFQOHxmRWt7Jz2iSvu69QQps8fPm3b2K6sn391TNF45XYgLO
l1gcrOkJVWx5c1POstEyZV6LfHIKzZADpUVZ6JNaUPSqGgBCJJBBWhCjGTuWnweyMc2PudvqlFqa
KboHKn0tM9FhTSaDraEvcnN6m8XmBI33IF4xyuiK0LetwJl2qGM1H5FMJmuVJ2EViPJSiYrejSFa
8No47IEV9IsE8yYOgxPrwsOK4WTlNhmZmvfyKrAn39hTZUPnp1QERLZo65DVDDf0+HRzzrJxMCU4
mOrvaIbfo7QoCX1SB4qmYiAIkcAGacGMZuxofh7YbsO+T1Hvj08N+7lb6pTizvGpvTYbPC5LZ3vN
VHiRogv/06crbT/Nx/dgYzm9ywul+WxQd5KmBklz3snEBUtyJS7vRIkYV6js3diUF9w7uMKbw3NG
1FZs6DA+YYl72DacrLB7ZGqJGzsqsCdf51NlX1BeCV8hLVcSbnLF5h9yf9F1c76Y3z1B/UC28LJs
ddpUfX+JwlyCdUnZKHlViPItyD9QQUbQQvgdx88jdQ35sRvklFo6ibufuuk0z9NaLAZ6qSXLhjFs
SdEuk8uSuQfhyrlNVwMap+9Sdw6mBgfDXY4KB8MtrRy6bHeJyQYinSYa9yYlxsLlEvCdRG0N7k7K
DEKTnNhgLh4tKTItFXaK6+JdP65o6AZWwqaSLNiCiBn+9E2I4sacYogC6O61XiszNw25n4UdU2qL
stDoqgNFUzEQhEi+lytZwYxG7Gh+HtjeQ74fQ5eqH58a8v1ns94ptdQ2dClU6qwSQ7sv7/vwO8ky
WQ4bTnUBY3Ym6+Bl2dxnnWAO7svXnaoxM51lRnMy+WqmcqXjUSL3JahsAZRCjPe1JfC+r8mazvUg
m6OQ+mHbcPKrxsjSvBaouJ7sR6OqvpC8Ep6/sEhdq3GwstrjH1x50HXFslE1JagaUS4Fqqaa8u5W
XJSFTqkFZa+qASFEAp3mKX/lXo3Y0fw8sL0Gft8NdUotzZy6/TlfGjDT7gz2oqlskrK8woc9Vtbi
1KeHabpm+ARwSS3VXcixgW2oM4mlsha/T4cnETvE1ruat9ZFC/BOWIHDVz2J3opxnj2PnZHYgM4a
LxwS2vRASlHg0it0jLaIabUswT2c6ocarDVIWLbhQ+qVk1PZGJkSjIyMIAVGJqjVabVFWWiUWlA1
lQNCiAU6zcO9q8/iydq37ryntqFfZavdPjTu227CUyqNroqkz680p7dyPt1j1pRZfQxIU11M6MQy
yP3w/M/aLo/WxqRd6k7LmKbO2PpJJvtiJC48eOtgD1nYYK5otBRCCLlyCfhFdTBhCX1djRw9vm4d
IWmwQC81+Fk8tFRcT76519aI/65FUJDajEisBVzM/lOQJjflLBs5U4KcKddf0Aw5UFqUhT6pBUWv
qgEgBAIZZAUvGrEj+XngunWB2XWt/vGpXnBHiPh1avkTcjv4q0wJ6egG9q6psJ3aXI1BFzlWg9io
t6BmWfjltrCUoEG/Mzdmr7OmOSez3LCUJ45uLo8Ldquid3PMCjzlWVbCpz2J8RpcrNChieY48egF
jKEWmRpmJArsyVf5UIP2WxJhzFu4tTlf/XNJfR5c6NX15LKxNyXYG23UC+yNdgTKgdqiJPRJHSia
qoEghAIb5AUzGrKj+Xlge83++5DXgJdhSt4SYowclsB+NZW7TFkW3eHQEoelroCTDPbCUBf/V0u1
mO80jUnqpZ8eyWyvS+VKXP2KEglSQWXvir+ExHhD2oZfjVivgWV/Hj/RJCc2uA+PlxqZlvoKxfXk
W3soQi4LEmDoehWirW3ZCdha6JsX+rWcbyRNCZJGFvYCSaMjuXKguCgLnVILyqZyYAixwAd5F2o0
48bys+F6D/mRm0w6j08N+fKY+IuVVlWPlDkkwJrSm3uBBnxnwL/sk7iaot/Ma9rPoLmoWk3sO3Nj
sjqf9qvXltwO1sqTDoyGLk80tqtawNQQ4Z0OLnhi0hHjNfjDOD1/1UjcPUDJatBb8wBKUVxPvtKn
qob2eRKBC9AIN1m5/iH3eeCkLCf3svE3Jfib4u/oht+jtihp6dNXrCuHyuphmC6RwAVpwau6L5Sf
vQ/cqWu458fsnq2drmvA0trqa7hCVx/nsXxpTR2Dm6gn/tXY3Fswsxq6Mj6zHS8bZ+0EcF/J7JgK
bK4OWAGX57vuuNdpa2Qh3ukgzoW34olbyTC343SD9HUHWzpK8fOWbCXSBfdkf5rK5U1Oikv5cotG
sMny9A+ZF3TZjVkxbO5VPqiafKWWZvg9KouS0CZ1oGaqBoAQCmSQF8Sqgc+PuT3/ndvXEPcW7/Gp
Ib8bdbJUNnwReGhfi23Gnttf4Zbytdp5JT05pHD6Epm0eoDvRTWt8I5vsvM4JqyX2s5IagUnT+Ky
TZRnlyeMf3VibODM5hvY4VSD7ZXVYEyRFB7/88HiKLmiPTlLw22I4r4Kdx8oAmLNgsanWLS1AjPl
Q6lWN2XhnLYekNwDhlNohhwoLUpCn9Sx1EzFqB+BfD1bki6slvg3fp/t+83nzKOInH18Cve08zlK
JY2cVYtU2FT5Uq49auysnnUQ8bHqnGqGJvtwpM1M3Ix+Lek7n2MGO58Et1AyO2hSalJvv0tLk0re
arsrf4fDTTjSiA5jE7Li2nQ3xYkNdTlDcpmDTC3ZKijXpeSLfHR/2c7S9K1iBFtoMc3jd8BY0yjM
G5eTg8uRPSbD5WTzM8Mqi7LQJbWgZKpG/SEUuCAveNGQHcnPA9drqj8ehI28RMbQJWBpba3pXISx
F40d0zWtDvMgupTQJ79rQdcSmEzk8WorEVF2I47pmtPumbKAH4kdocJ0pOMuL3G3klsblUGcOVqu
zX94tCdxYIM9voBO4/q6gd1lysMTo+Ene1BUT76zR1/X/KrKh1bgJdSsxZM83gfZjTjzRtTkIGoE
bYao4cpqtrKiHPQ4vMIr/ICqRfUhEJgsOcEJ8XcEPw887wn+W48I28fnGujyKL7QVyopJsG6FbwO
FBIhSb3J6FcUv4Y56j8JPcSdjRbUrbAvXuYL+KYd+2Tsr79lB0FULl+0ifLSGRW9K3O2RHifOO2H
9wx3Ux3aKLstTjzAz9Jejyzt0HZRpfXky3yqaOjcnE7dJQ2xpmIwgf8QnZbdlBXg5uJucnA3+frL
0gu/R2FRErqkDpRMxag/RAIVhAUtWrHj+HmgGsNcQVV2oFEO17+XyrSaw4fai6ZgKc9isOIWY0fy
BUywsvjQ6wJBw+5Wyk7PmLrOJzcllSQMlXMlX7dyiUQ088X7yj5CQrwdNCN8aLC4YdERL0OLnNjg
brLg0XMb4ddkQVR5PfninqoaOiMlfMO1wZNws+ZrZj9FpjQ3aIW5ueA22IqM9EIz/HapLMpAl5SO
kqkU9Yc44IKg4EULdiQ/D1y34T6zLtI/PjXc76ARv04tnVVd/5Yu17pO3DB70BSs5FnsTvincCLl
Dk8LwhZ4E5O9XNp27sbhJrN4KSezf5jWVJ/uspLjHGgXUdlLSIC3YyaFB00jUgtLu5ytB/yyElsP
qDLdsZrjvn6cV3lL5RzjtdRq4UwEglCsxJS08jLhZxNc000h4E30gH6t7Mkp9DJ98s1exZn04w5r
sZqpGgBCKJBBXBCjHTuWnwey15AfPxtBQ5Ax7XG48y3z8bSPjAy1BTu5XLrH7Xm6pC6Akw20jnBJ
fKyG+07NlKBmmMyVzJy8yZM4S0d5+YiKlv5TCPB2gNwcQGckfuM1QUuceACdpKAcmda9Q8rqhx1o
VM3QaMqwzzrgSixWX4AWf+WGEM4mYA5SJvs7Olm/RllRClqkfNRLtag9BPId/ON08Bvk3/H7PNC8
B/qZk/wlHp8a6HegiF+n0sChWwN59TImXfvNFKbRLL4qok1U7epkXQuKln25Fp3G+bqUsWFv5Ilz
9Mre4+v3CdN5lJU5WUP1VW7Dqvr3ecv1TtxN1Hads5Z3drsJw8mqHZwyNK7qn0NK1mTBDCc/nczt
E0UIklALr2zUobGKm3HmjZ/Jwc+kK4VGyLFUFSWhQ+pAuVSN2kMoX8qXsKC02rCj93lguSHfDx3V
H59C/o4P8etUGvh2c+FIHVW0qZ2yZ0GlUvmIYGJF8xV381rQsthktP1o3qyVnaApQdDkSJhyJY99
YqK8bC9nLSq1hgjvkzjG4TmDtYVlyKYobow9LBtOVhyxyNS406fy+uGbfd+KBsy7CKupm/UJnM5r
kp8ynTc1ZcW0uXqA8R/6jkb4JcqKMtAjpaNgKkX1IQyYICZYIf+O4ueB6TW530Egfp1Kgyvg68bB
qnWe2N01Hc/CTliu+2NY71lSFyBJhrgDV1I7HcpmW8eDffEaD/uC5V65UrKVlRKz/Vu1fEd8Ws0i
XOcNP/UkRmtw1Vu2JoLaPACWekb8uGH6Vzn98FU9ovDK61xVjxkiTeKe/0PaecJxs1JvvEsO3oXV
Hd5FYQ18ztFU77KWJlcNqJdqUXwIBCKICk60YUfw88BzG+Tf/73+fmqQ77u4tYfDm5tr4xLBXonQ
MQVLp2KBD8J7J0VV7pPLeS0YWDs3TC3tnMTLTseUoGO8z4eOKXcuOz1GidnujloGInCtupjDKIbT
TMVrnQWeYF0E4xvpOdEnD5IemRp8n8rrh+/xEab3UFh3joTieFIsxNn9oNhkToPOvBEyOQgZHfEz
hMxx5UB1URZapRbUTeUAEWKBEAIv3GjHjeZnQ/Ya6HfYh1+nsE+uy98rwMrqy9Nxfw12QstJYMsM
myXvmstr0KzcnFGs/YadtJSddynBu7B1K/Au3MVRroQ/S5SYHZcuS/s1RHhzqyvjMCP+auLTY1sT
BtuHEcPJSvgWMjUFAKe0fgyf0DXJcp2CXSvLjAZ4CZJVntK6Ipsdl3zjXHJwLpzeYV2kVOVAbVEW
+qQWFE3lABBigUxzWHTF6VBLdiw/D2SvId+Pcip4/uNTQ/6OC/HrVBL5fypcnG5pT4IQJfvNFHsN
KzBARBLSSwq+bil+6NsXfJ/uQM9Y48ruO+PoJNnWWyWXXmfkStx1jhKzY1VpBqlcnZEYX/wu+QRs
RvKFuNujr3tPkPZK/HyptaqcfthzRhUM3btVxQufbJEWSjHpTxlNu5tx5o2OyUHHYMXTCZGbNXQ4
KSzKQpfUgpKpHPWHWOCCuOBFO3YkPw9cryF/h3/4dWqppqtIKayrLqnYp3QDnQS0/qD7wYMAdNVU
qy/GH92ru+Pb3MxLCeaFfXuBeamRJxGdIMrLjkyjbWGFIZUQb3j98FRPYrKYgBJh7ce8EzfYStbD
0ZebR1GUt7a4H1c0dIkuY9qfno0YlMztGE9PN+XMG/OSg3nBMi/mBdc45UBpURL6pI6lZipG/QgE
Ko51LrSqT+t7GI89tQ33Mevr76eG+x0b4teppbOhG//S5VdErtHZD3sWYkIlBdjt7JO0YHV2Vbma
gbWzjG4qNq7nl7KzMCVYmHwns91vlCsRkCZKzDWqeldOdRLiTf7wWE/isthxrEAm3S1yYusFk8ES
WRxDXaX1w/f3KuHRFJW4LnwsFANSPUBrdfHqTuSby1KTgoMRS6IUerHBlS20y0Kbqw6UTLWoPwQ6
rxjQ5wu86hHf9j7wP6x1Pa3bZn8/1QfuuBC/TvH6yqngYbqJNKevrUHOFCKLyE93dMaRfAr6IP5s
tcOsvSDleLaUIJzvCdEJ+sAZyRyu2LruhQdrlJgvL+chcHKI8WavGC7tSbwWbj4rysnpNjmx9YKh
kUR0xAqJ1N2rstSe3Q/W2XqdASTCkAUQ4RZap/tCk321ukFn2oiaFETNcaXQDzm6J3ozsdIqtaBu
KgeIEAuEHBVZyFU/hrTH+thT1+R/h4P4dWrdSlgFSm1VNemmEoxMYaqFhCYu/EJh9WHM5dXUqz3d
D4xN3KgoOydTgpMpkeDlJ+dJvlvr8rIdILl+z3QDFY+JNxzYeZRkQg8r0m+SOUdfH3BnKWlEFsdZ
Vmn98D09VTQUuEYCDC6eS7QFkSd/0ZaJWcVPQgXYwcnwxIQ4GdwmqQizqEtCn9SBoqkaCEIosHFE
ZCFWbdHZQ3vsqW3wtz5ffz81+I/HAnCgt7XElI4+1ybAcT9N2DDdciWFp0CSwr50TOS5mpl1WJMD
4xNXqfJO2eSgbDjXZyibFnkS4YqjvOzb8oTLIRAS13LOdEnnd0uwKCXF+6U9Tmw9oXu4XI+dNG0+
Vmn98AU+VTMU0UDVD/g+CTZLsLNN9pbTDfmiffcC9wHFx3mhEX6LsqIM9EjpKJhKUX2IAyaICVbI
v6P4eWAaw73dUSF+nUqyda27/lLXqbpQZDHM2mjplMmjTkl+YJ0jcxZzBMxa57PXeblU7JxMDk6G
AzyvuUTAFdHeqUXHyQB9VfYuAETQQe7ipnCoEdM1uRwtX+tk+50SG9TNg6VFJofbVHn9sEeNqhpa
0CUCdyIQbqmDOV7Qn6HiooA293rfr/W+OoV+yIHqoiy0Si2om8oBIsQCIYfHFHK0ZMf080B4G/Yn
S/39sca8AqzdnWFacVVVfRsnrU6HBvKmD/OawqwtsevLTuh98IpMrdfsL1iTF3wBvvM2OXgbruRm
eBtiIipX4m2oKDH7viyPmGGsITAdfngpPGpEd002AXLDpk1OPDpDkgpLZHLUTZXXD9/jU1VDxzmJ
8IXJos0SJG2z/bO6OWfa2JsU7I1oNKXQDjlQXJSFTlcdqJqKASFEAh1HyRRqtGLH8/NA9+4IuTSd
8x+f7gvp0RfQW5dfiPS5dgJY1OxvU7CnJ7GYnTtOepun+wp2LTH/C1OpQPP72HqB+wDRc152lV+/
Tr5b7VIy/pt+w4jrVSnwypdUfsli2lO2eoLrkdjwrx5COTI5Sp/K64dv8amqwcN1urOvwNoINzm5
/EPqeUVh4R2ne/YPHofo8NoDz+nfo6woCT1SBwqmalQfQoGJ4+kJK9qxo/h5YHrN/+Mx/w+rZ9jz
A+Zw2rHUdA2XluTbN7qPgDJJctslVzvOOiT1AQ26HCTyTtbkIGuw6WXoGkJcK4/n9ijP1+jjAdIQ
4T19lA+65mCq0sGuiJc478QGd5EtfEYWh+FTaf3w5b2yRpye+uDeYdFmT4Fmy3HN+2uJnG7IF84b
ZkDWN7SxfoeanN8apGRUS4Uo3YL8sx8OofKE0pJ8R+/zSG0DfNT2+vupAd53BkepNHD5LWhwNcve
Rj/TyGuW1Tmn20V9be9wvqgmae0/LV+zyhMEJe8cTg4Op9zJbB9p5XI0+ijRHjOTxYAex+lvzks6
PWbQXjElFbdGX3fUv5pzwAeIWh0qFiyHb/CpgqE7U/YVKu6Mp1TAFK/hPu8zxJk2DifB4dB4UmiF
HCgsylqapA4UTNWoPoSy/w0RtIQVrdhR/DwwvQZ430F+pXnIu2PNMGqBL5tD1GQmxm93Hd2eibrh
i2dCruZhWXOzri9V+7/lnabJQdM44Cw0DYUQGTZRhEvMLN/TcfKwIXx/zBsm4b3OUwXTIcvkWD+P
+LpBnH8AeUQWx2NSaf3wXT1VMw5izfvWQbdgSxHNMFcbWmgML8cEzFgrUQEpdGPTDK5JLguNUguK
pnIgCLHAxhGUWnc7bhQ/G6L3IC+pLBb++alB3nb2Rqk0cfJN6HL1SfzSGj3gpXivTT3AoBQ1JYEX
W3tFTwJ9h7y4TTc5mJsaiYzlZOXwGT1KyjO6Gc9M1aj+jUt2aoF8fsXOU572JnF6epru0g8665HJ
YXtUWj/8+owqGlybnKBiwWYOklaT/IQWJRzKvX4ndW8aT2pphF+jqigHLa7yl2qpEoWHMKejfxN4
srnv9teO3eeB5DW0607JKJUm/pwJdX1lGr6PwBYtc9RZoUC6g4zohi8+5rmah7U7vJz3ang774RM
DkKGZwszhAyTtnIlXv2JEtWtpkMqMLwBJV+yKSB9Q2oFsTjdGic2kA9Z5hwG0xEWXVo/7COjasbB
8y0iIquFmnlec/ha4pqbcaaNkEmszjSeFFpZv0ddUQ6apAYUTLWoPgQ6Hdq7vkCq+o3p+rMP7Tu1
De6Wz9ffTw3uOzrEr1P4Cy5vjnWNVyLoNMPJPTsubBP6+eUoAp1wA7mYmrV3/KnoUlxwLnlnaXKw
NIzaDEvD5k+5luW13CVmblVM+1f+lBDjPVllwkGm4GP0chATWuPEA/8s/ZXI4mgdKu2rcONfBMTK
qR2WTJkSbOoJqNUDtBObEKEagGnjaXwDEhWQQjfTc6JcIl0WGqWWpWiqBgBEAhVH1RBa1Q9Q71E+
9tTWB86cXn8/3Qfyow+gteanrCXoNM1hT5nss9JymWSwTZ6NbyCW3Qe0xDcv8cJ552hycDQOlQFH
M1jim1U97hLLERW9I2xpXohdcgnKjMSObpJiZTofBjolK3EXyOSgDZPn2jWbqJKuMCTfqsfgQCEz
Ww5KVjb0yYOOxLTYGBpfkauOjwFDA+9SrK4oCT1SB+qlYhQfIoGIgysIqepnqMvWvffUNdHfESF+
nUqT54xPVNZUlwIJQcRkjt9yr17iyVSie704TeQSlCwLu4I61Yhls3vJ5PCS8QMSeMmwiJ84pJx3
eYURO30F8+cOUYwTXrinJ1FbE9IGS9O0M8xutHDyq6jIYpd8lcaj7R9X1OWDKQGGXixcgs0chKxW
98mzjdpdHRsFc0DBVAfGgYLROq4cKC3KQp/UgaKpGghCKLCx+7wwW63Ysfw8kL0He/1u315/PzXY
74AQv04trU0/a60g6dOeZvaXyfgUp3VUNxuqq7/DznNByXIXjkddzvPl4CZbH4jlfkQyH+PO43dC
o7wCycrdvsJZfF2wn4z88JbRGk2Q/ISFaR534tEHlkXDQY+hZItL64cv8Kmafk4N+LX299NizRyU
7PDBOrkpxDWJPoABcjWf72iF36OwKAldrhpQMNWi+hAITORLLaSqH6Peg3rsqWuw3/Eefp36KlLu
OyvU2rcWNsb2krFNPBH1AkONRlIfFUCyAdaA1T0QPymXdsolBeVS76SjTZMrJaJquUTHKWTQFqyr
PEXhA1p4yYjK0jyPdWmm+LoBjEXDEdnCYW+4rH74lp6q6fKZIFojHiQSbObgWmVJn8lruoC9IRbA
YkKP8UIrM0bEVQZ6pHQUTKWoPsQBEfvPCqfqR6j3iB17ahvi45A15vGpIX6Hf/h1ipAfZybqltbz
bg1X9wACQ38lhvLQ2ajzoE8uQb+yyeMxF0enSzsbk4KN4RSeYGPYyPE8TD7u8hy1lGNYgVVb99+n
w5zFkZ2nV1nTRZWGxWEP+ORk5ZhIpobPhsrrhz1kVFFXFGKit8LgfwWbOchX7fAm9/kUou7YeJij
e1WfVwrNkAOlRVnokzpQM1UDQAgFMogLYtWvEe+hPPZUDPV6R3r4dYo5c7nuSG1fWRz+S6bXzFwp
p6wlnMNFNMmt+TcYVkJc8Jitw1KmnW1JwbYQ5jLBtkDT8nSxrsZeJZr04yZPcfwJJWa2dIpdfL68
pZetyUEr+gNoqafFz+2yN3m3eRjkJE1/hzkDUSdKCTT19gswNx+xaMR5bBzLgYWRppNCJz6USV1R
FpqklulXhDXYpPoQC0zsXiesaMeO4ueB6T3c/TL483MN93ru+EtjVT490uOUCDK5+vgegbsX+i8F
CliNkckzl6BdiYnAM7ZERCtpbMgbd4KeCPUZv19KHndZXrqHb24I2HUvyrcpwkdG8zJbiKSnFpN/
0Npzmm8eHCUyNfww9XMe8P24oq5QMhJgmciHRZs5X9P8FJrJjTmPjWExM0bzSaEXcqCyKGvpkjpQ
MFWj+hAKTBB3IUUrbvw+G5Yb7noqcP8Q6He0h1+n0sSXk2fr1U8dnx/OJV9hnVdH5VSkm8ud57hz
CZqV2848aOvQw2lnXVKwLgQzTrAuZ+Sxb0SUV1jLuSStI5xEeHufFi4yRRQrF795yWI6QNUe2MnJ
iqWfTPbxUHk86aoOIAy+QstZrOvqpwSbOSjWU9vt6obwcECAX2y70fVk7htJL+ToNsEGwcrOCaOd
jGGqGgBCJJCxT4YQoxU7lp8HstccPx5z/LBy5L+D0paZhn2xXWXyFcj3FNga6QrAx+tNuQSPSlwT
XRSuuKaWtBMtKYgWHpRLEC1s1QkPmBOzPCUW4maZusdqA1vCje3wTE+FdzwZ5NUt0tcd7KWk+LHd
OVROO30ZT1V0vSCrqodeokGomcPlVXt4B8tohjRvYGeDnZ1CL+RAZVEW2qQW1EzlABBinY73rrlY
iK127Eh+Hrhu4/17WHj9/dSQv6M//DpFPL9T9nGervT7unaasT/DQWzAM4BZ7BEO0qVc830Gzyw1
aD3f2ZgUbAzR7BNsDHdylStlIhW5xFKjy6lcbSmxtpo4D6eZwgPOrPfF09iMxNYTigaMX7s+PJKS
y+NJz4+r6prMJcIyqZ0WbuagW0XyOZoGL7xujMwRjIwckrh5JP2QA9VFWWiVWqYfktYEPIo7Kdu7
4u6bXiBX/QDxHtFjT11Dvz/mecXnmdk+XYRTGgbZgGtXJcLf7/kp9NKSWnN88KuEFdb1oXoK4Z1+
SUG/cHMiQcBweFMeu7lGecVPN0PR4ALBWVv3JHGc0UidnMAVYDhp36evG9BZlm12Ahl+9XBJPOj4
cRVd5+9SbYsuFmpB4/n92mfTkPPYCJgjCJj4jk68L5e6oiQ0SR2omKpRfQhlPztuYwup6meH+2N+
73/n9+8gX5T66++nBn3b+Rml0sTfTwSsjM8Dl2Mf5lk1xTqOhtV20AE07wf/SqAb3Sio5wjU894F
YpG/klnBbJQnZQJtuLwC/K93hhiHqMUZxlvypLFpn4+miCQz34mtByQPkB6ZGuGQVByvPH5cUxft
Uprt0Eg18c75t8SdjgkqJI6NnTmCnRlXqpnuUvhj6StKQpHUgYapGNWHSGCCsGBV/exw27r4ntp6
wPd/r7+f6gF3GIhfp9LE0y+hz7VOJRQNRaMpQNR0uyKLrBYdzNDBvxJCfoK/hvlO0KQgaLhNo2T2
C2ITTW+l2U/LLBC0CpM1G4HwosnYQH4cxiS7LU48+kCW9lpk8oW/QQSa4R5Q9GR7f+HCpOD4SDaT
Sdh0eCc23Jbz2PiZI/gZUeQH/IzsDcqBzqIs1EktS8tUjfIRCUx8LU9YVb9HvAfz2FPXRF93Ekap
NMPTTypbPVMI2lcms4XX9d3RuEOrICFLaA3N45rrBZoiBhGSoqSdh0nBw3AtSslMrBlyOXJJlOjb
FTwq4Dt0hCBnvQ9nGdEY9ueTM23yFbp2PMmYQ5ZtLDx+7k5bVhXXTt/CU01d16C5eKEQ+ci2IMqG
e42H6tZMEW80lO8f64AUylm/R2tRDgqlBjRNxUAQIoGN7+AJs+r3aOvWm/fUPeDH0XSOf3xqwJed
qVEK0uuU1zHPZYgnettjxrFmFGJzCV4AJ6tNa5XOwcpq065QQidvTKedpklB0/BeMM95OLDRbNZ1
u8srDjbK5tEBK2U5YCMQ7jKZfYqElKetSTwSdz9Qsh4Oua5tEjeDVFw7fT1PNXX5xEkCTGzINpM9
Zgl5NCDCdBg7b66G7x9rgdRSDr9Ha1ESCqUONE3VQBBCgY1v8Qgz2rGj+Xlgew38/Jjfs9Uz5NG1
7hZoo3eiz2S4K5peA99xABW4ufMyRQ4Clila7EglkHVJOyeTgpPp999y8mM3Wmky+0SX6HfgR4Sd
HiHGe1ziOXTp9B1YhVPwVcp6PigZJevhgDnMTmrn6H4Q7ONaeL69EN5a8Xc48qR+zfFshJvbMs/b
UMn3jzVACtWQA61FWSiUWtC0347vnDPsLpNO987+ArPqJ4jzzz7P36lt4HOJcvvQqM87ZaNUmuHy
J3XWJcNXOWzzEl5SskwMP+84ihqjERrULLu0WdV83Z7fGZsjGBsVUBxThJ3iXLt8hrZLK55aCEKd
o/o3zwuFj0zm5rok0sNdtMOJDX6dPZgvyORLAiqunc3ne9731HrFSMTGhAuemdnEGskrfgTzHjf8
Bj/rOyrht2grSkGNlI9+qXapPcQBDRP6Qqn6adq89e09dY3zOwjEr1NpFvnqSV3fOruUZhcZrr/w
VO5oXnHly9d5kCQH70poK8XgWs1USISdlDmClNGkTDITDpxcS5n9LrF4L0EMFK548ZQwvH94yIjp
mvZ2wyhV4usGM8YPWAdlETk8iDxk7xjV0hWHqLDw6l0M/fPUjXxA1lbXLZnnzcnw/eP2k0Ix6/do
LMpBmdSAlqkY9YdI4CIityZ31PnaUfw8MN3G96yi3B+fGuLHw4x3oLEfOXUtTS4bjlTPAAeFQ1FA
mrfXCuHcuRSTxzXL613CzLL+UmiLe1E/gqXByYFAE341kjdD8IKM8hxFa0Tg6RRCvFnnR2C/hpPg
div0dcddOuvxY/OFKqSddoRR+V2haQgwxZ0delYyGyth13Jb3AqiRgfyQdPEv6MQfo+uoiTUSB3o
l6pRewgFGmb3hFL1Y7THz268u1M39jMXzeqPT7DfkZfGeKR+aVErvGZne8EkR/vPjH3gyGrNGpI5
6Fgw4lGPC+4NeePuROapD36foHyjLMfNCyMBY14TAIt9OMKwyXJwA6xR5U5s6GP/cEg07YegkVRc
O31bTzV1xSohtJzeIUK2meo1uZ9af5tbM8/bNDnPoGnuFIohBzqLspYyqQMdUzXKD6FAxbRPPdyK
G8HPhmZM7uWOAfHrVJp4bTFVyfLV0aTYGIf4Fxk0GuNEMTmWwJreg4b1UNXlgBjEOxtzBBtz/SU7
RhlvgGSubbg8+7YOx5cOEd4QgOEAkwnPzCYdoxMu2g9LhpOV69FkMoeg4njzRTD74WZcXpvoKsk1
k7lYopd1Lm6toXyf2qrh5V9RCL9EV1EGaqR09OvXojvHBz8lk7rvr2Q/Qlq3B0kviLfUNrx71t34
x+ca3uWO/vDrVJr4bPGakPrjesFHkzE7Dqm+Cn0g+bZnMLUHDetFWg+bxvK9kzNHkDNe9kXOJG8I
Dmv5vEss5gCWGY8jGJTKUJZwghGtZQ9IRa9IvjZf68NQp2Q9IJSVSaZkFdZO39JTPV0u9qp9naeG
5ZrJTKxEnp0rWyzhty2S7x9rgBSqIQdai7JQJ7WgZypf6g+hQEWm3zLdg/NrR/HzwPQa5nd4h1+n
uJHOK/TrEfouO4h9YfAlTLrNNRqzateZAjfXnOs1k68By8ulsRnf+Zcj+Bdv4mXO4uE+ciV8WaPE
ekRV7+wHnmQ70rb3Hc4wsmSex8vBKXy7Pj2sF07Ww08fJVsPhgtrp6/iqR4e8f3WvgBIlmpBkw0z
q21xS4hOETAH8cIGHuIleX4u1lmUhTqpBT37/WABEEKBi617Zbi7pteO5OeB6z3YzyOJcn98arDf
Hlu/TqWJ/xaXQtWXteFt7gUJAIp6gVyPmL402IOJ5dzNc6Y+kR87KXMEKTPoHyJleKebXH4jJkqs
GAiJpwFJm2xEVXezcUZ8BU4SNjbBJD8sF05WDnxksg1JhbXTbjGZ4FzcttRuS2ESJNlM6Zrsp6dl
WkPgiugHycYZTvIKZ0awIOVYWouShl/sJJxEPLicrP4QClwQF7xqPEG6m+m21DXg77AOv07xguaZ
eM5M67omQHvH4FMoO9Bo9iBVgOZ+YZONdgc3lvX8cmCKDW0v6z9X0IqsJ4CVJ+WttJqimreQedts
pjrCNUZk1kmfsJkJMB82CycrkdHIZNOBimsepVS03vFcQfwXBBJpJnOsqWgonm4AcSkC4KBesMtB
vRwevKdVFSWhxVU+uqVKlB7CgAZighLy7/h9Hmhuw3y9MvL3U8P8jvPw61RS8AScMQmbqtBnb/vG
LHdDWQaWzHI60vWB7pk5qFcM64q+U21yP3bm5QjmBVP9AfPC5TwiA0GwRIn1ikujIIXrTxhSFEP/
HY4xorKIc0aciuSYHDU/p/vsAdIj05LydHEr+P/H1fTFHSXbJ0KsmUy/SuLpAAlY3G/bI98/VgAp
NEMOlBZloU9qWVpeFaN6xAERxASpej02upnjttSG/zx0TH98Gv/0wD9JY1lemstnT/PMmqXhY3A5
1LFxNO4w9GVi0uY7qS83By2U7241s3bsVMwRVMy4k9mPPQ+usHmLSInVAUoImTjjfYGOt415GNFX
hL1ONjyxZ3tYM5ys+MGQyQeOzvsucVePOPAaZnF8mRZsHkG9Fk+N1Y2Z8zY88v1jFZBCN+RYSouS
ht9mlWOCSvUbov0WCUQQFqSq3x/dw3PsqWuCv+M3/DqVdPXn5K1JmYE74UNNtuigpGDZSzSNPN3f
7z5nmV512MLBThMSfeOfnQDqM5LZwQmVK+V5l1c9o2DpjcD/a5ATCMlUi+grotsnhZdL9pmpexwn
J+th55rp0VNdXDvjVh6vn311ywDULvEr1jyCXS3XLEhD5txolhk0S7tS6IUcqCzKQpvUgZZXxSg/
BAIVRAWt6jdG9zgce+oa6OMgUs3zUwP9Durw6xSvoZ8yK9sGTKB4MzDqEOrWozkYoK74dxtVzLwO
PyLOJtRRSHYC5ggC5krkVCNHyjb3UFrFit4dwOhnWII3BoNwiJELssOX6UmaZA8p3qfZewDDJEcm
L0YqjqjgH1fU4QzzdYxBtHkE6VqF06mGrPgEF/cyg3shmInsbNIKv0dhUQ66pAZ0TMUoP0QCFYQF
rXq9L7rZ57bUNdjLY0YvVs6QY6aUdqquNUWbZRHqIo5GsyOp7vD3NSEn06qOTakAK/W0l8xGs+Qz
aBb7wkCzwK0Q+oX3naPEyrjsESQvW4Z3JyyGmRZRVrxUsCJRVLfGiRvqcnqgpMjktUfFNe0JP67o
q/GXqv/CYLHmYVdXSTwdABIXmXGv6Pr+sQJIoRlyLJVFSehy1YCGV6UoPoQBEcQEqepXRctjRi9/
Z/Q1sFcgnL+fGuh3kIdfp9LEvUdBNjBBsTH3jk4zqdr3lfmlAD9rTYcvSec11QvJ4lXdISrajX8w
MPaEgYEh9uTg3hKcjkusdmCP0HjdMryJiBRPx8i6QRD7JPNpsiNcmT+7KV7JihGfTO6lKq55K0ZF
XbOFBFi7rmrR5hFUa/WArG7OnBsNM/u1rlen0A45UFyUtTRKHeiZqgEghAIZxAUx2rFj+Xkgew32
9JjVk9VzqkipbU1aC1Nv37Qz1plzVCyfXewEx7ucZszpAk0yCcyNbMlnkC3M3CdkC96yo0iX9S6r
sgvrERovuf43J4YU2zc1npszZboV+rpDLMXM+Lm7YYcIixt4PL79nQvkZ47zp0SaRxCputfY4TaI
/r5xLTO4lggg2Ra8/j2KipLQIXWg21XxUniIAw4ICj7VL4mmxzye/s7ja0ifjOz7Q+N7n93X3I5P
z0R9347XuDnhk7r24tqajOoojtpedu48iAZagDM1j2xpFWFobJAb8EYiJ+g0/T5lbmS4rIqdv0f4
ux4vSHTuUnh/rRIIX53EedMSJzbQh8dDj0wVXywV12ZcupPVRCbcioU8XaLNo11zu4B0U4gNGbAH
xaKbzUqhlfV71BXloElqQMNUjOpDJDBB2IUUbbjx+2xY3qB/27tuxD8/hfvxmNcPayzLB1eaXK5Q
XJiAfeEqs7rxqI79xX6Eqy3J3KqDjg6Mno5okW/sg3rh9eYT8oUuojyp+JUayvPjUN3xpSzB21Fy
vOXWKkvI4qRnGGiLExv64jF4lJJMFcdbFUdAWKGvl9t4MKrpvQIJNY+gV4VqO72qKyTrjTy46xva
4JcoKspAh5SObvVYnFQegoAFIoIRsu/ofR5YxkyuQEcXvEqliRMHBh/Jr12SvV8OArhXDe0ZOi+S
WnO5CVR8krLu9FW/A7xxy04A8JXMyZdcdbwq3LV0iRWe3j7UShgTLfaxp04YJ0BVRz08a0lsEOvw
CA9LpspTFCquzbhgpwhqXACA4T4s2CS43z9kno0X1njhZSNYZhAs3OgQwSLdkAO1RVlodNWBnqkY
AEIkkEFYEKMVO5afB7LbMB+9vv5+rmGuq+B3P5jWW5MPrvS5mqjdkv1fCMCrm9qjcg+1c+8Hd0fR
QOoHwjMGUN74ZSfoA2ckM8zOyrMUPe+yao9K3iwEhDdiTQmnl8QWJiDPbocTD/yzNJcjUyVeTsch
7QpPrcPy96ddS1m1UPMIclVb8ja8qp8KSHAP8uBd6pVaGuH3qCpKQovUgXb1YJiUHuKABoKCUvV7
knPr3HvqGuhzJ1aUShP/HM4Ba8lp43UYWx5VmMI2o/YkgRt4MIXjiMazDH7I5dxolXwGrXJGIjtK
LM88EJI0yqv4HXdb02QHkM1GAT2OgDcjrSIRNLfCiQ1ebbV5QJJMS8DksprPztTS5Q3Ji8Z6GAy5
5pGvWfyUclY7CPwX8Iaji/beSqGU9Wu0FaWgSMpHwVS7fhnigAWCglH1U5Fz67t76h7aeblu//3U
0B47z6JUmrhsNHS5GresPgcHM3zJTh1UK7dS5YS52qMF18QqTyxmHp0k/EzeqGUnhP5PimQmBjC5
8DG9Sqzct7X/rEa1pHj3dSo/4mSWmJC0hheZ4TDbKLH1gCIzHEd4ZaruTfkHldtLTgM8vVT70Mth
dpg9glqVHb1xC0cntrkxLjMYF52wlEI15EBrURYKpRYUvapG/SESuCAseNGKHcnPA9etF+DL/PxU
L7jjOfw6lSYuG1zA0kK/FHlgnlkhffTe/KicmJruZ2OryzixqQ+sVZ53KYk1lTfe2Qn6QIlkTv3O
lQo3p1xitf8K1+6FvqR4S41HWGdwBGORx9bUokOkZx9I0t6MTFXXFChtBQX8uJauWFaqfY3Ubrnm
EbSqOJPGy8HyeJ0b4zKDcZFnq1KohhxoLcpCodSy1EzVKB+RwARRwar6Tck9Kseeuqb5vpvhlCIi
L37W9NGmZRFzK7Ee9GbGqOiwKSZa99As11SfgCzFQpk3YtkJgK6RzI4QzAOjRKGJEit3MJvfD5aB
QD/gIZOwuIpYxchaeGkdN3aeHrqBzjLDRZwTj5/i0tq87tjpsHy8VPtY9ysJjnAEtaprMA0fIq3E
Y6NWRlArhG0TtUK0YOVAZ1EW6lx1oORVLaoPccAEQcGqHvFmcHrA/D8PbN+9kobD41MD/Y7p8OtU
kqMRztc4VxKMEtIFVzK9YrtE1uiTYZp1OCdzqwP7mMweXkvzxjw7QQ9okVwKnZErFW8fzK1yC9t+
lMKeR4EJLun9N2/g2faKpemKT/AwxGHlsIcm1GpxWW1el+/W+Urx5VX7GorVck3d36APTKkouS1z
bLzLCN5FrwkNeBc54TRMWuIuXRYKpRYUTeUAEGKBzBIXvGjFjuTnges12O/oDb9OJTn9n5z511D/
tg4bHE5k4npGxcrVuOHlPbZpVPsZdyxdFSDTDnIyyCOS3yN45CBozFVaxTDQHP5fhgFt+boMCT5F
8/SNhnhyC/R1B1dKqfHj6jXh+CkOA/Zx+Z07PmKK9f4IEo0zuNPV+4tXcmKCXYTKCEKl+jvK4Pfo
KcpBhdSAaql4KTwEAgVEBZ3qxyL3qBt76h7e5fu/199PDe99cDO0m5yslwa14OjlY+/kdORS4JDh
J5Sb9hydexIp+FRCP/fq6Ug3mXeSZQbJct7J7BjRRAEglmCUWLnF3BzKUkNbvm5N4Xe8k3MMfM0C
tiw58tButnCy8vAgmSovDao04kN9XE8fuN17PcuWbJxBqrIq4xd/gvqNv9DHVX28UAu/RWNRCsqk
fJRMtSg/BAKV6tcEq1twI/jZ0LyG9B2Z4deppNXiJLMou6ZLRVhauR+sR0qG3kiWj1Xvto0d19yd
gCrFLjhvZLITAHxGMicYMeVKxdY7E6bE7LeHHC+2yuYrd/7s1daBkoWpbUt+anY3VThZD4etGh41
URqRoT6upw9sXe7T3ZKNM/hSXYly4D7x4WMjUUaQKOVKoRxyoLcoaymUOlAzVaP+EApcqt+HLe6o
6bUj+Xngug3y7/b89fdTg/wO2/DrVJrhUy2NTonxPWqpDwjQiUq4W8TRozFJi+dZvcBHbz2GfoLn
3CkWH0PLcUQiJx/x9bg6z8dd5RH6pnE8UILn3WTY8hAnqKJWAVuV+p3YegC2DPj+Axo1u6RmGzl1
dF3TUt0LH2QaZ9CoHL7l7HQQoeBiWEYwLHiWw7BwtJdxQ9qKklDkqgH1Ui1KD4FAo568DNwt/47e
54HljXxNaR1on59C/g7X8OtUIhQJbxV0CfsdtzbCadadzHZw0E1OnbAx+QgWlfjhOvn6BLQCDdy4
g/qPAxDkNOPXiXjQV0kEGVMlbxxnNdW3NTKK52FCLznCRHYDnHhAnqWyGVkq2z+V1abv1p0a80SR
FiK6R0v46DOI04X5mqDLEREJ7kW9elGPyAPzhTrIgaaiJJRIHSi3e2/HTVlfRjwhTgkTldxz52tH
7/PA8pre70gMv04l4oycPAmqxenbd3+wtRNkU947NYfm1VUXJMGaYjPvyav3FVrggpdtZuGCMsnM
1QdyLXX2rcQUFb1PV/+Wp3bxRovIG4x7xddODj2Sx3NeHx4VIzJV3vxVaQSFWRD7KYaW1MyQZ+B4
+A9RZ5WTi9qwYgpc8BpcIhOgDH67tBRloD5KR61+/aGlSw4wQEKwQfQdtc8Dw21At0P2lsenBvQd
juHXqTS5ns8LcNpgKiql6TPiLcpjrzp+h+7mck7KR1CnLfC7zrp57vyKCeVyONgE/Aqkm3KlFVjm
Ku8KCNcILoAIbx4z8ekJd1wv4QTJwjqc+3M27x4TLTJVtv0qjSAgH6rpmoFV+9BFuCXVOIM5JW7y
WhxoB1EEAvugVnQblqhQUgs50FiUhTKpAyV3T/7HT71kAhWkBS2aseP4eaAaQzvd8RZ+neLxs3ny
nvuSmCgM3rkRWQ+jv+OzFYtdAMZz9wLs8Jot37OdQvFaVAjjQzI7trtyLaZjLy9HRe/p6hcs6RV3
2fHX8SrdPUOVSDxAZoTUyFR15Ke0Zt7rPR2Iv2U3E3nGGRSpyG4ZRGnDHBt/MoI/IUAI/Enz79FU
lETp/Bfl9msymJc8oIGkoFT95t8eL2NPbYP8u9l7/f1cgzzdwRd+nUq8J6SrZXhd6UzSjHyS6lFJ
eTkE27c9C6cgULnaol2JTBl57tSKJ61yOIYI5Ao8mvIsPY+tPIeH0UwhIytjVwZKm1pEnXomb56p
WiQ25JvHRY5MVb6+LmvaXUXP+QyFA5ezbZXLpKQaZ/if6tAss2vxqxwbvTKCXin+jlL4/dJWlIMa
qQH1UrGVbommH0zhQiIRMmRfTHvwjD11De65z+JKJXwlNBsS/UJEffPJW/rQaWf4zWsdG3qzJ0Gw
o9AmjXPiCZB5BzlW7ivJRTblSWUvi2sNquatHReHrSYE4sgtdtTjuXqO6pHYIK4eGZeLeuUNT0oz
rfkmaF/V8JY9ROtbWWt30KO8gKBgsWrFch6/uJMR3InW5QF3Ihu1cqCtKAtFUgcKpmor3jKBCNI6
0IDf8Zv7DL6l7gHe1lNCfz81wB9RQhMBGXTU4BalukL9zjLmTg4pP0nYCihZrSnglY29cAyDhobx
zp24RVxfdzIToYZciShBV4lcbW2Y0X+KhViYFYsmMDMCC+Xkhjjx6AHL6ufwR9nT+1XazOBfFKz5
C5usLEVBS4kcdAZ7KoNn7W7HHBtvMoI30TuGA96k0mOsrygHVVLDUjDVSumTib25lxL0YVj4HbvP
A8kN93Ub/u+ncU8P3FHXqdqkxpi9uhoysH2LkkZUhVtTWxZOwZwKQTF7XEXLc6dSJlRKYZ0gmR3e
X7mWhvfy8CdTRXI09rs9TeFyw3aSmKh0EtNpfm6JDfeiHoiHsjJVhaKltGbZVA1hulX7wC9fci3E
ipFfk7UChh649GwRw3pEDMNxVXfYVpB//X7pK8pBkdSAgh0fXIoPiUAEWUGq+N238Zjcx/+c3PvO
mCiV8HTkjo2+irfVSmor4FsGoFG49tjWoQzL+RHUKGY2IuefjhW08yUmjsvhmEDwJRjgiMVfIN2i
RD+9s8agBrdOaE1PRAVZom0N1vas4/vcEhvI2eNjRKYqd35KWyrNgEwE6+8Y03mbi9CSapzpmuDX
GFg9kZYsx/GLLenBlohh6bAlsr1VDjVaIV0WyqQWlEzlKD+kAhXkBS0asuP4eaB6D/R+DBHcj08N
9PaY4JtVl+USL5VqDpOqT/eBqmduNNBfCrRX1Z4MYtl9QMs7Bk1HDkh7D0juAdffcsZ0u5w+C57s
URokGL4S+k40cT1SE68ps6EhQlTOboS+7uhLZS1+XmXPp5w2fZGOEI3acK+vQ+8qI9E4zZZK1KkL
7bSBaC+BfdAp+foLCiEHuoqylhKpA9VSNSoPmcACacGo+P239pji298p/vtPO7jSSlFx5cXTMNzt
0yZpMEnKgXMUvz0utzwiReUjCFEO3bwJiL06j501MV1cYK5IZr/bwFuPhIO6SuQuqip7a3OAF6mC
tjoyFGHRTJkqXNuERs3pwZkoWSDjlacqUgNltWm3FAIZygNo1T0Kq4vI8dN0KO861OJ2fIG8ATa8
irHzap6VizXlEqxEyka5VInSLcs/0EDKhVHxs27Xnm37vg3oKvvp9qHRXHcWRamk25NTiw3X9OoC
fBhwnivq7oLCIKsZmtHTNaNrZFYTFAorsbMo5oZxLXUyZw7mUO4Uf5Xo5/W0oeeJPFnlm04zbNh4
DYco3yqKljixAa5AT2d4L65xIvJVZbUZD7RoVOuf2KPIisO4m6ZICYUpQwktmX1jUHowKHj0wKDo
dK4c6CzK8ohWLaiZypfyQyYwQVqwohU7ip8Hphv8s+u6+uNTPaDsDIpSiRgW8uniPbCq04N6gPBT
qK3VTwWKbmAyJPMRRCkRIbTlEUGRx86fjOBPZM4hmfNx50nMJ1d53GXhlrw6F9G+mk7CRj8jrfzF
T7fCiRt9JQsX7ZSn8juVhFfghyoIu6uaFy7FMo05rzl9Dc3k9XzIafziUHpwKNnfm1doxW1mEnFJ
KJI6ULAj/krtIRN4IC040Yodwc8Dz2tOzztVolRSJ5pY7zh2aK+hjSamYB4sGuysvpr/Cs3d9COo
Ujbk2ggtOyC4bhAbYCeyH+TQ75cq51ZWd0/6/pPMAdmQJIv01jmMSTrppEwLnHjAqzXbOSpzfuO8
ZFcU0dSKzMamSoYWJBr6/QJXu3Cdo2nD7JsvSg9flPsvqIMcaCrKQoXD5hwOggfz/8+8pAIL5AWj
1Yodu88DyXtor6uLr7+fGtp3SIVfp5K63MSww6FDM9IPg1t2MEWuGxyckg1IXIk4gx5lhyZjlamo
vHHHTiz0cyRyTneeVBinV3lR0Tu7+rcctxDrTUQFtuC2KDHLPwwVTha8JJSnrlfVVVIbdkTJjrS6
Tk1EU5AsY5oWzUy62nseigRwY27Eh76jBH6JfqIMVEfpqNTBXaXqkAQMloQgg9w7Zp8HgtdgTg8D
m64AElqKd1AWl6vX5kVDSoCsd4mYYRwljz5qDGLC1uhMtuprWd5ZkhEsiZdzWTozP1Qu3qHfSmRD
iH1ch339WIwDwr3lq7RElvP3dEuc2IBl6cDbXMZ0LDEqCoegD3V0gkRoA8Wldwk1pvlPyTt1QKYh
s280SQ+ahLUcmkS/Ug5UFmWhTWpBy1SO9kMqUEFe0KIdO46fB6rbwPZm7fGpgX2HUfh1KhHAUTt+
zipTYTG0u5D1twsAJqIJMGvjhkXkDIaUK8btMBOl3fhOoowgUbyLF4niV1eUK9mYc5WoVKXnWYS3
rhQi2lusU7KN3Iaj8048ekGS9pozVYzuKqyNcENRPL41wGUKKZdIY/Zrav9ircBqNIPoDtEHgkdh
Cw+PwhPz7HNkxHFZ6HL4ZoXCx6pydB8ygQrSno51Pq/vdx+4U9dgv6Ml/DqVJneqp7XWVNl3Tj2M
c9LbRCxrCsDRLLbGZnCiHreH1245oO2kyQjSJN9/yzlHnhW4IW/lOdCyduk6thFZioC88kcR95TM
dNp0xI3mhzXCycLBXJkq9IvKat44qpKl67VjlylEF8Ak1ZjmRPN6Ol7XLQ4O1hth0tO1gsdfUAo5
0FeUhCqH78dxeVXnYmk+ZAITpI3nt/Vw14bi54HpPdTnUcSGPz7XUD/uIAq/TiUCecooSUC9SRjf
w7s3nYx0Zhh+o742tSiBWHYPUGDl02u4YwfkvQdk94AWyRXsqUSu5NBuUSL7MQUUT65/gZZCsDcP
7Poeiy1HLBkPs4SThRievOQ7h8tqA9cPLbtYSrRv0/t6SDSmCVMJO7X7ohWzb4xKD0YFUxyMiga9
cqCvKAtFUgsKpnI0H0KByRIWpIrf8toDYeypDf9aRJQ+PoX/HUTh16lEPFH1s3Qk70HS4SN68WtU
ozjmjhy3ILvS2a95fgFeFZPhdNzHnVEZwag4uqMYFb+2o1xL1+dWImNZlYln5YUtuYpZtLf0tiRe
CLsZ+rojL6Ul/7hO7UJVStOBAh9/XYqRlbtkz0ansCrG/Yu1uBXkn31jUnowKdjZORmoDygHmoqy
UCK1LNVSNRpHIHBAUPApfrNrD3+xp2JyP+YOrPRB8AopSV1XcaiTCRMpX68+suAoGuKUwIrGFEQp
HFi92Xu5gW+2lyBNINKUzJmEciVT7VGiY7DqWL66jWR4y2nDwr15VhfrbLIZiWwP24ST5ZzOUrnH
rLK4Q/55EWRahmwFMJSLGTKNWWJqX9twHaloB679hrgFYSIaDad/qYUcaCzK8uqtWlAylaP9EApc
qi+RawV/3Qh+NjS3QT2zrqQ/PjWo7wgKv06lyTsbzXps2m9IwTApxEfGPug4uHompOG4eQZVegSO
0JD4FO8Le3ApkOhK5lwiz9Jzv8vrLPOqSuc8YhFU2WTteCKzZrI/iQ1I7AEflgknC+GilKnioKLS
2uDuHZ7ROiVrMdebi0g1ponSvMZG9cJOVIWLR2nBoxxXCqWQA31FSaiSOlCxQ/6V6Q4pHkWoVPsG
6Xqf3+vaI2HsqWuI38ESfp1KKz6v3pFOR2xEpcvTMOvFsgXyS1EQ196NO09ncKLYxTUpVpwF8tjJ
khFkSYlE9tNJTMcO1+fyOpcOVZVW9+WHzn1xu53oOJTCN7CoCfqyQyudDP+44mSoUtZFM4Wj+VHE
qjVjyc2i6MoVsfumeVBeUdK76Uv62TaSpAVJIjAbJIks7vo9WoqSlvqoAZVSMboOgUCh2rezu2+O
147a54HhPbTPnHQR/fGpoX3HTvh1Kum+/xQFlTh0FqJPm0XhYUHOrNxdrbRH03qQpNw5rk0rNpby
vnMoPTgUbO8dDgVaTbmSo/e5xHAe/+7qVv7BWUr3HOx2IsHS7Rle3BQnNvSzx0RzpqXU4dKaDQe6
1NN1TtYxVJFfkGlMU6QE9tegpB2zbbG9WsT2ktm9sR2UbpUDjUVZqJJaUDGVo/sQClQQF7Roxo7j
54HqNbTvIAm/TiWCLuuCWTruzWfK3pr57TjvJxzqsusS8Rk86CG44hJR7jtr0oM1gU/rsCa8oVjb
K/nms8vqDr+3Kimu+c2lcMduk0BIasfv5BjMvL52A5w8OqozVUKFqLQ2cPDA90tsaLLqs2UaM3hQ
RU/QNppW4PodAAdjomHdYEwO/37pKcrxhkw1oFYqRt8hEEhUR2nR5Qo1Ycfu80ByG+D9kM3l8akB
fkdP+HUqEYFZd84SG06CNGt4z3g8rGmT4YiIa9/GxHua0uxcW6k67wBD7jtn0oMz4eJ6hzPB0US5
vsv0XV53F5O54ee0BG/fGl/oa/+dInDT4ZmqRWJD//C4KM5UuVChslpYhDTCNBODjQwUtQizmNzX
Diy7BTh8B/LBlmgEcTtSClm/R1NRDkqkfJTrmF+FUwLigEZ18C3dueCG6bFHv9hTF/brvgP/L7zL
Y0IvVlNXjBL0N7WvXGrlAI5dY3ThnQGhqBWa0M1o+o0sIpozr+Y+NrSNdSOR/QoWA9ixGV1W90N2
Gpk/fgiN6Mr2NJHBPEVstsOT1eUC/sCaYZKcqRLoTaUt5WqAakUVQ7pq/mJhicYIZhREEgv5j/xr
b+NLC/pEk7dSqIMcaCrKQomrDhRLxWg8BAKL6sh6xd01fPlvtMv/nMYf0TiVSmwdp/w9WIUKdxA0
/gZuHlpA1hbDoS7XBHUASTa82lQrjjn3AXPfOZIeHAnuZR2WhMAQREZ3AEaX2EtU1Fz7u2J2xyKm
+yvJ8TX1uHRynO3jfNAkSpZzOEvlbozKajb7RbSlb50jK9g3sRhHUJ/igxXcCfmXN+8FrqFN+Phi
FNdvl4aiDFRH6ajUAZ4KpwF7mszkPthfoLME31H7PDC8B/FRzkV0Pz81oPNjAs9WFPFqyotHxtae
cu2Y4FC4GjTA2zCkV68YMM7gMDURx806uXnf7EkP9qTcyewXz+paJutdUndMJrl06tAvrEOct3gm
P4a2vHynG+DEhvS8lw9i5BOHuSbfL/q8CLqh9VVvvBHvZLlzjmBC5dapfRTSz7ZRJs2UCcdXpZYi
+D0aipJQHjWgUipG1yEQKCAo6MQjufkxcee/E/d5pJ/doqK4kichaFBXV1XSo0gRLnTrFjX7xDcM
/xJbIW9NT/rtiopgOHb3nRTpQYqwGHdIEdhy5cIudpXYHZNHlVmCNzfC7Vsijik5/L1iIK2m+OsD
YHbHw1kq96BUFpdNPq8uPa/BvI5aOKpInjHGNVsLMrdgto0PaeZDsE4phULW79FUlOPNtmpAuVSM
1kMc8EBQUKIBO36fB5rboB6zvv5+alCnxzSeUNiqe5zW5OljAs+wScD1uG8V9hpvMvzXE5yykdcA
RWI2aL1uuAt1IgK81vNGKX69NDzukjo3UqmCXvd6cwcccd5ilPyU5fLsrm6AExvmw+A0Z6o8laLS
uGTyefFEiWwpuo+qZ66QaYzgQpe4M09xoXLw21Zo0yNqMymUwe+XlqIc1EcNKJWK0XYIBA6ICj40
YUfu88DxRj2tN93/fgr140GOHFZaRJzB12oqrEXCr2Pg6aG5ZmRuESiAaXcATtz7hfxavov8nmAp
ct/pkR70CPFdOvQIDqaFoy0BNV1id1Bk3dRXz9PWTrcPLByX0ZOfsjr00IKj6Cux9YFuqKozVa7D
qbRm231AkV+qe7nMI9MYwYTK60u+p7Rjto0gaSZIoJuUQi3kQGNRFspcdaBiKkb3IRCoICpo0YQd
x88DVfeBqcsfATSppZkIOMPzv5NY2rhvfKVYKhbIGtzyknEgnTmuiT0BV1IzNZB3FqQHC4Jrd4cF
4a6jciXHAXKJjpXOBRDtEtcDGBLRXiUTGpTl4Ohuhr7u8EqC4p9XvY9KOV9dCtqhCAxr06nhrfDt
hNAZwX4q3KJWW+SfbWNBmlmQSZAd8Rm8Y8cD5wT9cVkokVqWYqkafSMQOCAo+NCAHbnPA8dteH8r
fv39/A7v7693zKWqrngzaHDouPDtCfYoIXql+to6LQiGtUvjBsI0S9mVzEXBTzip5b7TIz3oEbbi
HXpEdybIlaofP6BER01WZfHq4JrcZwj21jsnSCzn7uKmOLHh3nw+SM5UueVYpsnpz4ttk0Ia6z6Z
XtlCojHqNbFP4Zjcilk3cqSe14JenEIp5EBfUZaOXZkrD2wVDx/sxi0ScUYk6sKJBtzofTYkrwE9
NwaEVOJqlYLB4Qq9qkmvZF8SzqG6ijEyd4uKRKpcQ50mIv0CURk/11Xu3HcGpAcDgkdhhwEh7oty
pcptU5fYHUVLEWV+hmV464K/heM2sp+dT4pJR3Oc2CCudDVnqbxKrbJgIT+qgxAbqnnIKI5MYwTF
KRXrhVLagWtfQGwOhHthOP1JLeRAY1EWyqQWlEzlaP8SSrggLnitRuw4fh6obsP7ZNG+PzS27/gH
v05hzZgDAhRbrfbEdiTh7KKI1ktmxbaTuA68Ok1X+lXDwn74BOK0w58Mf49k9ruFXPJ2dFWXx4Op
VIVhRzO23oG3aO8J/bk9R578IsbDAOFkIczLhADNV2lt+G2RHyLSrOVbpq7sTvlt+AgCVLOrzma0
ZNaNK6nmSubp7yiF36OvKAlVUgcqpmp0HyKBCsKCFo3Ycfw8UL1G+h3w4NeptO5E87iQ3gpdh8Xv
dzuV8B6ceMl1lLDuV68lOMps10SegCzp2qzduW8DSwtCpN5JXhp2rrib6BL71afW3bRpGd665mfh
3qKXkFpgZjXGXx8wZ2loOEvlfXSVtXSq8NRrnSWAoCGwRGMEz6knpmQ3pRWzbnRINR0ywzM8vVAK
OdBXlIUqVx0omIrRfAgEJogKUjRhx/DzQPQe5bk0mVkenxrodyyEX6cSjjCjWZfIUV56+oMeUKR9
7BECRcbGGJjVe3TiLBZFAuQ6eG47X9KCL+Eo3uBL+JtypQrmLrF7WSncpgoh3kX78uGjefL8pNkd
8xHRRx4WCicLb5xMWNHsspop2oRhWIs6s3C6pBojX3P9FKbJLZl140yqORMu9CuFYsjRPW2YFpU6
qQU1Uzn6D6lAZkkLXrRhR/LzwHXrBUPXv56f6gV3XIRfpxLebgNalJPlutykHoBr/smRgv1VtEZT
vUlRP2cpA5L9OHLbOZMWnEmLRM5XjqXndpfWZ1QjwsMPF5aGTO8JG6ptG7YleLOH2cLJwsMnEy5U
G4ESjMaH4vHY72t7pfu7kmWMIELXmNBJ5Gh2/wq8zZTgo4NjGE9V6vdoKMpBedSAUqkWXYc8YICc
8aq9ToYbap8HhtfkfsdC+HUK/mkOSFBWKdmv7Fsy8bkPm4F2Vrp0E7tqE6G8MZcLFB7OQG1swAKr
1oAVcNyvUXLhN/b8JkJxA1M1Saw6bxL7oT0zJCJFjh6YJrfEiQfASQoqzlQnGwI565iFTzC7PHWj
ga3ivbcOMlR3ybLMLmrJcvi513CH48IdTymUQo7uPb8JUamSWlAxlaP7kApUkBe0aMeO4+eB6j20
SyqLCH1+amjf0RB+nUp4qsvLMR0sYkRT/2F4E7wWi4HtIrp845crZlCi+AgXqDxeM2o7h9KCQyFw
D4HHORyQK1W8el1it8VH1E62CG/HRv8hFgusKCuNTUpQpA8rhZOFp254Mltu15TWOl4eKdtzm8bq
IVNkGiNoUYW/0UO2tOOL9d0H3AOqvqMQfouuohTUSPmol2rRe0gDIsgJUsi/Y/h5IHoN9Dv0wa9T
yaEosvXFkXPt7kyaEL42LAcFvRcJrjU3eFCd1vRsCM5aue3ESQviBNMaccX9/CgjujK8XV63MVdm
dw1gifCmO9jvhIeqJTSvFNMYvl8QK1VWuF2Hyk0upnWcO1R+l4cgE1o6Lc7oQYTqPVKNS5ow68ae
1GBPuE1O2d2/R1FREjpcNaBZqkXlIQ9gLDmBaMm+Q/d5ALmN7ZbP199Pje07GMKvU8kRaGBHhyRY
h3dv3UQqy5wwslkOmakqw3wGO0rEJUJRE3kht51SaUGpNGZ+KJUZeVJlJLu8bvZG1+CLBXjrBpAl
e4uESorVf7oR79tEoe+Fh1f0yzrF7KqI1olymsJpV9WNhDFIA9sDbEk4FcYFwZcv0D2YZUz8R3NJ
oQdyoKIoCe1RB1qlatQdEgEDsgIPbdiB+zxS14DeN+VrYBA4SirSqqQb+YcxTVJplVQVRScJLNvn
4e04UJWE311uuz9JC38SgG/4kxBZccWydhxklzVMs+pie3GXWoM4I9N7QIFqzZeTxWoA3+7hO6V7
md0G1qDDhTTfpVHZXQEcVeVI3H/WvaIeBKh2yIq+hvizbkxJDaYkvqMHfo+KoiS0Rx1olapRdsgE
DMi6oKEFN2CfDbxtCJ85vf5+agjf0Q5+neKC2ByHdYhd6DvlOwoBV/d1iFh2AfnTK5hM9RuBwYuy
6hJ0mhg5ue0cSQuOpN3J7PdkCWNtCt0lDu4rqLLEGzQ64hU99OhnTQbUKO9R6h6lmsP3G/zhwdCd
o/LqtYrCGvKhjq54A6p66JiPUKMHOarVN003Y9aNIqlBkRDeCIpEa3iaVleUgyapAQ1TMaoPiQAF
WQGLNuwwfh6g3l2gfrdkr7+f6gJ3/INfp5bOimIJocsp21BbSh50Aem+qgMohoKCzPhGygh6dI13
oVUJj5jbzp60YE+IBtJgTwi4aIy5J+7ycEpx9OPqPrgGrBzj7EQyuieptXQPN2R926CX0qp/W3kD
u+DMP4Ad7X/R0d2iJKpNwowe7KjsI3oyjwbYKfgCPhn4Ee4g62lZ/R41RUlokDqWXqkYdSMPMCAn
8CD/DtznAWPM4vOObfDrVNIKP3k16piXOSjbjYQL/L0xuFF3kchrLh9Bf2Izy2tTXLknkTd+2ImF
LXZzJTOEKrlW9J1ylziwhqsy3ibsfnh+zQn2Ihnwn/j/dM9U1d9vfLuHRXGOyoSlolq3EwmxsRSp
RBfDRcYg1Oj9mtm/GpcNn4bMshElJYgSzZAFooQH4PVKiVQWZcmylrDR61oH70dL9SEToCAtYNGK
HcbPA9RtcI9DFpXH5xrcvDCwdQG01h1DammzSI71DgFMyrrg38UV4r6dtEntuj06ghqFHMkzvGxz
2zmUFhwKJ7QGhwLZkgG/36XhW041IkKp/k1we7uRDJhRHQHwCVYz+H6D3zw8knPUcV5FcT76UIcd
+HQZVW8TItTowY/Kyp3WnE4z7BJs8INC0ekM6lU6IcdSVpSEFqlj6ZaKUXlIBBjIOv1ghKaBDb7P
A8xriO8BNUktxQzFiUJhXbafFcyWraO8Ed8m/VOofs1Lmek7qFBY7Ty8fteXvXs3lJNRLpHMfj1Y
uRRiLcojHghV6X3nt2eRMyR7j+pZqYdDsJrC9xvjytDw7+vwq2haW7Vtw3WdC/7SvcpaF8S7XA14
Tjg1iz7Lxo3o+9qGixEpsCMahqlZRZSC7igbnVIlyrYs/4ABGYFnSb7D9nmk7iHdeDj4+akhPf53
aW/To7tybGfO61fU2EBtMb9JQBBgXVmGeya0AA8aHtHuNhouG7r9/wG/uZ4VZLJ2nbN10bq4p5j7
JSMjYzGTmfH5WNWH5XQIcuR3iIuJhrds2ifZ14e5J4V/rwQHEsUmyDVFsebIbpbrajSpYTTBTlIx
mmh95anU8EgxxVGiK+oX+Z3SRtxhJKN4HYo6lAyG6xX0uXHE+CPT6OBrsvuc1AB+jxCuImiKGRo9
LKNaXQkzRPVUFptJGdd3O0e0gGTCE4graCFJekHCdI3ogydAgVvAYhQrjOcD1OUVUO259Y/xzw/8
p8iqUkhNQepN06qZHVhCVZouM30mQicL+4lTWEVxPJVvQMX3LdfVWFLDWEJyxoqx5LifSo5DM0X8
l2ZHlLdxB+jYvVfDLEquJfneHdVXN+4K9mEZ0P11oMdnYhLJoR56I4mJdlMy0RDy1cu1oM9vs4IM
NYi9LHaSEnYSqUULp+hyPTGFFZSsRk3F3nLVXSP04Ak44BaQGMUK3/kA81rS+2NJ7whmvpAdfKt1
fJm5TXHugvqHbZTqKNULj2yEO1glAuZzXU0hNUwh2EzUzK4MrWdSyze1UaMbHVfp/kNrey7GtpjZ
Gcy5ewhc3+hmcSDO9ESNasfaq6HkSWRcmEmAJXVYeaExl3LKRKscHazvZbGG6FqLua+RAvcjIOgg
Oagj0dkhYjYfb1P88Aco8L3CdT5ayzzed1k9H381lduPxUCiVmLP15vlh3rwtco6emRQjTtbn3vl
n+6Oyh5h/SQMSE5ZlcIhL1AXuA22Gxy4fX9yzLhpDRQ5TnOttYT0bQp9dAjJSF59KHeZPBCuV8CT
BFf9RB1o97p3ULKOKG9lU7IGKUikSIWp0W32FL8TyORhTDfi+yse1hGZOgvWEZ189ATCClrIkV6Q
L50j+OAKSOAXqBjHCuL5gPSa0G01gaiVOMH1aqEd0vJNGMT3IGe9+BuJzBmKmXkxPnEp16Kt6bnk
Qsh1NYDUMIBcv2TXAtczU6TjpjfwT1JHJMCnRnjuwdcLM7P7obhZhsH1jbEiCjl4v+6vUdxYCBzg
exDsob2T4ohhZXQbOCkMnqTh2BQDcCNrXPlXZMCdUzimYKlBG2nODhGy+XhD/PAHLHC9AnY+WveU
7nnIxfzxV1O6rqYQtRI6GvVKBNVOanzHj5C/XKVNJ9ua0nx0fEwKmycx+TkyI+g7vBpDahhD/P2W
McSlvzNuzsT/mCJrCZ0lOTG7Kq1KJDqcRJpP2Kb2HMPh+gZ90+lf5PVEdVVjlazoBG8k1IRKuSXH
VMEGUy/gDPz85krLsfEtXgwiJQwifL8xiMjgQEmzyhEuaVLvVw9ImI4RfXAEKPAKWIxhhfF8gHpN
6rLaPtRKqGL1LUzKarOTgs4BJUO7mJ4uTfIUvZjWwp29cJNSRZtI57/IdbV91LB9eH8u20dJ8Uxq
1tVAb7hmWJmqcTr/oEaBY0lkQILdF4oexLy6bR/blIrvrK5UHEuqqk9suPzL5Kx0LjAxOkrZyd2u
ZQOm95KXb3QUMWU3ruxokgFPIJ6gZO24+kCes2PEHNwAAHwCzOR+Bex8tJZJ/frf+9e/mtSrDqVI
RoeyfyE5NIGvDVkzzEklNdEYk0B6ftGc+myEZTPzhU7+QkuqdYHZIPvfcwE7fICcmM20hktIZRTh
3d1/aA6LK2zZMPthNZCW+4eG4cO6By00eqKOYTKtE6qRmWmYMfUqb37rXuNttmuK111be4aAT3BA
HkaRfv2CNHgCQQUtZEgvyJbOEXlwBRiT2wkQI7hhOxcIb7jH1nSyfvwV3Hf+gk+30rSV9td3MSX1
/PrdISPoNbrtQ+/KGL1rDB2AYu2ek1Vqauc1yXU1htQwhqBOUzO7rHtmStm8AsVBAk51hhans4NT
UhVHjHSShxCs2zUIrm7AOeNle1zMeWMHOG3IXHQ8IfV3dTqIHkVB3g7DPUuJyKK2oRJbzCAlzCCo
0TbDlv0EooLSlCD0kevsFHEHLxMEeAQYeF8hOx8AXuv1nbLg062Ed4PWxKSip7vU8NkxIoPCmbs0
tw1hZ7Grk1DYNV12/fBXWV/e1c5Rw87BB1FNzNR+ysXCguJwKbCE6rubiY9cgrMPGY1g+cMKIHlN
PHQKH9Y28H7Kwjns3jqlCa74+05xzzOttDCwM5rtm4U6UDKYYQ0si6WjhKUD/TiWDgq+S2tM+lTT
Qo70MqVL1wgdjgADPnfX8tC3YF8zTqytZTrjVLj80Vy+kxV8upXwauqbhQgLr/2YI0Xw4CaBWMLB
lEWv4FXQw8B5YZgjpU2ua6xIjVgRrF9q5pLjmdTwejC94VoysuNE1Vat+POFcbBIH2b5Q8XEkh3N
xmMRH54XVffXwXKDR4Gry8sHrM6P6Jx7G3YXqYSbDZslq976Yfb3vNg+ctg+ZPnKhykPP4GggpLt
HhshQ0rDOmu561+DH8CA093FPfRBWOA7H2Be8/pOUPDpVsI9sWluqZj11MpLhnygkwqi7lLKI3Kx
3MAiG1tVWFfdox0DdV1NHDVMHONuTo+jHE+58GNQHK4fsqH+goEPlm9HiVDbnereVvvgJ7poGN4+
rHvQyYwa8qObUOtEY6gHu/Yqb/yGaUWODNM18g1Odxk2ig28i3kjh3mjXS0kwhMIC0rIkB6mZOkW
gQc/QDH5BCC4X6E7H0Auc3pWQfj6d07rcSct+HQr4YesSZNSls5WwsXqQdUt+dYlkMGvpuAC2Pdr
OReEQx9q3FHqavWoYfW4GlOYNZ5JDSdF08OeSldk2Wp4tWh1d3wIFd+nxyEJ3uwU3h6LefOkyL6/
uhZt0t6MOAz18ELgnUxwOkDB0Gg2ahb2WU2f6l0egJfWJEdcCE7343qlXJldogpKSJE+kO7sGKEH
P4ABp4BU7Ny/5pxYWzGtx52q4NOtRLSB3PTJKYVWXsrCU55whyqi7lLKOx343IpRl6uH7VIFvUHX
kZq3xqSEgeOK/SzCd/DMFOZCaxzRiRQkdP7BCg5XH1R1F7sfe/PqNHy9oqtp4fsrCTxEaMqyge0e
bp2vxVXGC9gZrcWSrSVYh0Xb9hfjRg7jBo5iGDeS70dIQQn50QdypWMEHhwBBbwCUVHozpplYm3d
03rGf7x//atpfScw+HSLPJOvviTFJoX8eM8OBsGfkwJnichoVbntBef9HsZMEuGl7m+1fIxW+0YJ
+4adzna+1eztFJZCSaKgOJyaVrWYpemMqnTBG8YumJ7xms1D4fqGnuxD6bLQVVek3SToCVnG+DSB
17TWIkHVn9YM/NxxVbOPF2DAHpYNorm7AdSLYjFBBflBHbnOLhF3cDJhgD/AKQ7KW/NOrK0F8p7l
GP74K8jv/AWfbqWDBG5IDxvMi6I0o2TbUP3bkTgEK/SmuxJFD1Mmek6Z3etuV7TV4FHC4GGHMwwe
aFTtEMCu3xSHk1Yqhk1H58YRTEu7FCUyLsDyh1IZJEdyLiYPtQrRnx1DJmpXbaIaIReZwEVyx084
tP7C0Gg2ZYrXnVgyDWLPi+kjRyCI9roZ4wcVH4vnR7poIUl6QcJ0juCDKyCBX4AqV1DuoixbWtdq
fucn+HQrEQYsN/SUiq04U5LYOciwwEueSGeV5jJFTF4PsyVnXn106s68KWPB2Ag3GlNmNe6f4jxu
Wnh/zk5I0+DpruXLQSC9mFXKyySHYq/ZhmgVArg70hom0xxyaPPc/AxPeW83M6PZWCk+d0LExP50
CLv0J9kJsjRgWkiCJxBS0EJ69IJU1bWEHRwBA7wCT3E0/ZpYYm3dE/vYkszTj7+a2H2FXNIiedsh
KRZp7SVcJjYVlBWRlJyJTMZVanMmmV8EuQCMLHO5rAaP0q/Pd4/mFGbnmdQ4W5vWvt3dZC3NrRmt
HHxhA4HhD1UOTUe/rm/Ys6dD9RPVVrNJqjX7f7cfhx3D1PVQLg+YesFl4Lsq7+4exAveG3aDLv/A
CbnvRESiYNlBGZm6w0R1MtJrAQM8TnDg/IbsXK6vSXxnI/h0Kx3Ufm8WUVc3c1/jLVlURs7iS/Or
mWEt1jZWWsGRiD8hHLOslo0Slg3cQwuWDfIp6alEPeCguDvVdIvj1YdrwhGB7K1Z8tpDBObwcLi+
kU2eDsVPTKklk5ry1OYMlz9MEZpu2Nd0um75WrDnVzp5GHteLBs5LBvkWpJlQ1KZ9yOuoIMk6QEJ
R8fJ7xqbs+a3MDliszj3zZpUYm0tU7omeYk//mpK18c6Xi0zJXizLLHezLu8QdNHktKHiaB3nC9d
Z8S2uNZwIkqRqU+or2aPEmYP/H4KZg8clvRUcjGRsO45IbH22cHCR7o4+1BmB1h+geyBzKvL8LGz
kmffWwchK0NClrlq2CdInb0gMROjWc0i/maN5WLG97yYPnKYPurVQg48gYiClm2ZW7FMo2NVGDA/
wACfuwuzkObqBu58tK7JveaxdHim8m7NJH0p4QM1bUKcpnvUQ87iSzthjhEkvLEpplmDpbVnDpPg
2gVTIQqektZ1d2pYQsOoQwy1OtH++sMFiqgO4nM0psooclI8BK7vCb0xGXx/HaRR6/oesil0BiPt
bbM2xVr4xdILD01muX2pbOYcgOM0jWvYN/Q9VQtJuOquhAQdpAd9pOpuX8IObiYEcLm7CEt6XwE7
H/At0/i11Xv/+lfTuDxW8mJJka8PCWKLmQcKrBz9LoQ8UgKJuTBpg5yvVTwBX4q0kbmsNo4SNg5u
LNg4uFFPpUaaLVPccU9QV4pUhYEPe+Vi42jYL/Ho1zW96foCXa1CHsR2eJJUk5qClp1jt/znXloH
4HgT5yrugEzxO1SOq9jZbrF15LB1ELwhW4fkwhNTYEFpypEekK473g6/iLJ2tOJXtDo8kzGsEJ4P
QC/45z5sWjGffwV/Xk0hRGgeQ9n7kGSXZUYiHoAvyWdZ4ZQVVgm1CytqjxqcLMyyJDuTJNqmC/4w
hLAoFAwhLPV6KrXjpkduI7rKu9++LMRycPaC0gw7ZvMYvrqB3wWOjv+NNTyZSFOUuGj3Sv2HH0CS
xcqoYc3U3ll1O2DeEZsX5PHprm4hC55ATEELCdLHlKs73jgfcMrKfj2TIzbhfoXtfIB4reHpsYYn
BKJTVpaY6OjFuIM98OLH80b2VeVqP8RyBYliZFW+9fC3Weit4R4lwj1w/lZzqnT8THL5F9MjGV1y
tULtEJnoSlfjYI+2eyWirkX2ULhe0c2ST/cTlcqiItUagRXqo1eKAUj628XUCxch3FxWlSE4SBN8
Uxg78AJnempJoBArNWDqYXST6SNdd7txDHCgR8vmE5Dgf4XvfIC5TOm27+9f/2pKp9UKolYSd3vD
uqmTosx3xWEevUruWfZW46HRTKBs26RwV94i07OO16sVpIQVhBSIBSsI2hYbE3FJNcW9RkdZ/974
rOur5kCPhm1T23VVHWAgXN/AD22jpORp2DaJL1BETSOsQn3gTbDPHfNmdkYN26a8kLTxYwjTk+Sy
gqSwgsj5Vi0kwhNTVEEJGc4eplzd5Tb8EmIDSX49gTqb+xW68wHkNa23h6ljs0jIy4eo5hs23osD
PHD9xPt5c608xfwXfz2Pa8FO4KTvNfilFdtkbHs0OXn5mTSP4kFtx4adSFehSY3/sSLNHeAhJQcM
f8iGz0C4vrFVUkJy3OuJSkVRkWo6uZ700QvFaedEU/XXydKoYcFEVy7DyYbf/2LsSGHsqL5GHtyP
qIISUqQHpOuOt3HxAxhwCkiMYIXvfIC5TOuD2Xz/mXO639kGPt1KyqD16uqdImjTHPeSrqM88A9s
yZb8ARxJgykgxaacWFxliq3k08p5NYLkMIIcdzNzXuOpOZ3rTXFv0RXOhs2RmlPYjvJo3cvQENrJ
Q+F6RT5JbtlP1IgNEz6hBNBGSqepibtsQ2Jo1GHcd+GYPIQ9LWaQFGYQHZLUQiI8gbCghBTpAem6
2637TeSkvZlPQIL/Fb7zAeaNeypj+oM//xr69IAeeQ0lZESOh4xyEnA3+FQyDnO+kvXPXZqgt3Wz
4YkgT3knBs55NYPkMIOQpDxjBunxTHI5INPDkEJHuKc5sk8la+HsozWvUocCMquHwvUNvSySs3RQ
w7rJ8V11BZoriMjJV0k21XFX/TxYGjXsm101GKuHMN0MLlNIClNIuVpIhCemqIIOMqQHZOuOt+ZX
UeaQin2TOs8HL+/7Ct/5ADOW9H5nIvh0Kx0UDMS62W10fUmRqS1ptM0WV6ftn+8jX71m22YjTG8j
U5sjPlarh028JW3RyJT95Znksj+mh1MLXWkNh4UPKtUysZvZ/bA6SNyt+oY3WoW896/767DGQPoO
q3WU4EcJsNVpJ+cjtYBq2DdlDVAYzRzAnhZ7Rwp7B1pI2TskDe5HUEEJGdIHsnXXG+cCFwmpu9/E
9g5IjGGF73yAuUztuQ/4+ldT+85D8OlWOgS85Nhkj33NR4d74LBLygF8QZNOIL3wSZRJBuANImlh
5TY4FtgBXR/8PAR6i/unlOtNa+93N3g2OA2DNn4O92jYNkVlVA1h/l0gl7CG76zDiaq1OyOgouAU
q12qCrrNeH2xMn23gJuae4dZx7kgAI8Qj2LDNOf47CcQEJSQ3KSPPN3pxiHB4R11N5eAAvcrXOcD
vGsqP9CcgpiM1mHxYGYtDutg9azSB2xYn/jEMLlS67FMT2yqTJeO41mtHDbpluSYHawcxH9QcgjX
tKC3YzSj/KQ2CZVC2tKEWdnZilce5aWWSkj7w4emgVahNmfDfBmEWiRxQfwCSQGZ0qrD0qhhvJQB
V84gDOOF4I2sca26ntLgTsQUNJAg1JGsO93qxQtATB4nOPB9Q3Yu8N1TN7/E9v71r6bunWfg062k
D8TMqzhlN2RcfY3DgR2URyQR+oYVa0MlQGB9sxWzGbrir7JAXc0fNuYWvPRpko3WTyXXczLF3SuF
NBZaDMhfr+2J4zpaEccz7m54HFzfWGfPA6l/XlLU23toohE+QWE1WZ92pphC2CjxVMu1ah+us1cc
FbEYPlIYPrAIFp+TR1Tmo5yTaSFFekG67nzjaOCgjoo1U1oTiuqQpH4B8HzAeU3mO5nAp1vpIL2a
8NVXOSNE7bo43Vac7LRGDkmEDXBz6GXzYlsiY3fOq2UjxyfQoVlYNrygF4mz3dRIpUJH87BeyYcx
JeqIjobFUgSsBdI5/qFgoFVIcd6wWKp/1QiI1DzVRgh12g++FoqTq0xjFtyNL7IW4iWlVYriILd5
H1nwBGKC0pQe9JGpu92y37YMrmYSaGB+Be18QLhMaUKon381pe/MAp9uUZp+dw1TOSirDHxpBpy6
1V3uEuTm13pHiZ0WFk1vqqhjSmTlArjhHjRy8bYtW777TYniQnSCqpyE5kolgMIEM6b8ncjRpRFw
vcLNPMh+olIyUpEzjSAK0e9SilCAR5FeMDRqWDHZVG0ewJ4Ww0cKw0fxNXKYdyOgoILsoI9M3e3G
ht9BHbX5vczvgMMAVtjOB4gL5EdN71//TsjbI9csrQ3doNy88tQBvA7GaHWn9W1XxZwhBQBpxF4f
tYx7iDeUr1f0/YOUrxXbc05lWcCT18tkT1EptR3ep6eSkwubnuMqlV/nZkBl7c3YhyonTm4J2mMM
vg7Q1Sp8DXR/JV35vLXJ+f6EfpeLC6cgSkyTcFiH4RfoBNbtm0ewb+lewbfkFZyYH4zQKuxnKQUV
5Ad95Eq3U9zBDSDApksA7ugxH8lml1as3bWvZ2ZaMqvtpBxRvNugVm9jcy0fJzJydkIXVRKtZ/bD
xSUDKukDydSN3192sTHQ3YrPp1ijKThWy/3UDMbLN8UkBTGdkdlOPMwziVn7oBYRFcDIjKWx+Drw
JZ8W3m16oiocVtosZhr0eyY6W1EM8g2Go0GQ5xvMjrF5DEOsMTyuT4+cFiKZ9yOroIMU6QHp0jNi
D5YABFYBiiGsEJ4PQO9pXV7/e//6d07rstZSdou6JnLBSZmsqqruuvHx9idWyzdbZFn9enJo1TD8
ZJl3fgIO30e+dSY0JvycltXMTh1OHgTyrwRFZxbdyROj10l60R6cfSj7FyxTRpOh+DrQV6v4gKDD
ArbQFx0nMhH1LqM5nXY5asPPSM3gyxWwbx7B2LfrE8716XHTQiDzfiQVdJAhPSBberbQzRJwwCkw
MYIVwPMBZ0zw/Mh7QovMTDLDpkI6B5VlJxHQyGixlEuR3KNKadCT/YSr8MUQrIi0OlzbI99maxoT
X1cSmc3s/GV6KpGxOCjOctfuCA2bNOeKoYSvD/xLiQHTvGUgvg58KXRM+mj8WFs3HSvURb9LmTE7
7fiq7Wj+Oy4q5DRrm/nHndvoEnnkUdNCHPP+KaWggvSgj1Tp1eI2OwAxuQQeeF+BOx8wLtN6lob6
+ndO6/RQl9DCtX0j+6csONIadNk0c5iBZs58fUW7JsGtPAF08uA0QCf/8EjXoufGBJ2EwWrmRlKb
Bug+0R0GXZsDdTZQohWUoAXOPnQKtm1MHg2OMViTK9MqTrE5v/Ys8SqllDvmeOn0N7yXKAZSL366
rKQTdiXCqZtHMDdZsR3h+vS4aSGQeX8PZQnAD2p+yNNHsqVnRB4sAQa8AhJDWOE7H2DGpN4elX5o
YUQ95BBSpHvXAcAVUUciA8pkUnluP2ST69uVhlsKseKq9fmyDPZ0q1Bsin4JFqjUzHbopjTuwS+m
l3TmpqtBDpT5OZCGHb60HSvk6lBRH1vUnwV+pNvTgqjtmNIDU44x0u8podVrR0SPJOyHmb7b64zz
cdnM/qjHtRnh+vSgaU1ZzLsRUVBBeC4IIJnOXhH1xYz6hUvAgfcVtvMB4j2l69QufP37mtLTK+I+
c7mVlJde5cBR/w0zsE2TGPXi0D5P4ch+ddg5obDPKnGE1dlpsVGnSEaY893MDW/+4tju+YsJellu
FBn/Md5JuaoPnXhKZJhmOzbXsvk1WaJ5aBQFPeneyjFGNRWkKpdi/dVQsin6m9aFZE76wFmY+hab
OR9LuArX5xvjpYUg5v0ICCoIDupTmPQ5JRysTLnDIVjA+IrS+WgtCLdNp+nH34mwqsZdCNOSYX6M
ompkryt81L2ibTLhzNcdB2xtFBtb8j0bZ4qPK21c7egv671TcWPirE0zzUyKHJ6aR6R2EaTaJl0d
5Z1E+DdPxNyLVyVREP9LSjpdl6HYDgX1VyIw53/SnF8vmg0nRMp6viYgDLx2SJM+O/W0meGR92vL
wfULXg2TFuOf9zdvsicV5DVpI0N6RLiwMUUObwAByytE56NleOfp7UbwdZ3QuVE/QycBp8BlI3Io
57++Ffr1Q2rGRlWGSGBDEY4ko14lZXeaq5gBLJvgw/wwxdX7fX+miINJzVql2Z2wRNN3C4bk+gGj
xIuJ/7TkAHlTo1gpNhFUeOOLRNucR1KE22Bo1eeow6x0EtaIx+n4AeODrx8w6vr0UGkhg3k/soEK
MoM6oqRXZBz8IH3Y1FmcancXUueC2jJLj00KkMffOUvHmvfZLfE4o4IiV9BMdjedVPRR6YryJwsC
JeYVlt52EttUo4x7PKov/EZTOpbzknPul3w1MtXueSZP26SJpYbGWx4D8qdR74MM5Zy6SSesM7f+
wy5jDcqhONI83UqhgkOevnMbBy5It05MpWJZE1mRNyX3k4+YeOxT8TWrHm7j2k1wfXqwtJDCvBvp
BBXkBnXESa/IOfgBATMqZCb3K2LnA7+YtH2tc+wWme1qxAx2RWK8ljx0s304wCldEXSz0tzhgIkJ
pxSbR/aR3fbgS/lBY6J53M2MF94BnHITNTlYmJ3g26ee97mXNENKPMhdygUE/2WtnUX2IJUj1d1V
PoMiUg/0JxDHmR5iXZMIZoiXmO77ygM4pxIFyY9+nQC4Pj1mWshi3j8lFFSQG/QRJ/0i5+AIBGAV
ZBjBitn5QPCewi0fMiI//s4p3O5Ilc9ooXBx/UFt6hULdBCU2rWJKe1SWM+xoFvgpNc0fVyWjqw1
x34bK3Q9DT86laqVZ/4BMq5wWDKlUGRv7ylbgS4zjDnBF0wc1my26/J5fT3QmR9TbvLI1+Ov9Qvy
OVTFwyrqRo5/h/VDZjLXOfKK5a5TkiHW9fzMyrioFsPnCQQTlBAYfSBF+ka8wRWCh10AYRQrVOej
FXO3rkmH3MoUotaU6FpGjqnGcxFvrZGKFuje80wGWUrRtrzQlIpzMHu1lu77fQzS9URTntVqZWXb
54nMUm5ayZuuCRtZ/eclNRaCJXxIFDGsnIAaQFvTA6pRxLrurrlCg9Cn07RbxZKo84vMtjDTlXhs
Tl3pNafSqnDWj+/LvDo92HmNCOadiMYULDNoI0r6nCI2L2+IfrIIIPC9QnU+WsuUfb1O71//zilb
7gSon9FSQOhQSZCkdMF9F+QbMqU+xWSNzJg/8ntk4EeixKYJ40YJ2sXlZ9jjZ7pj6zrvZIYB4f2i
k0h9OXdUvMT6sOIWtDFSoSsGyeguL6w1QwuVdFET6ROWpW/EH2m4vh270zJreurYuZOsmBEqw9Eb
PM6UjZPvjrkPeEmr7pHSQgLzbuQSVJAX9BHj7BXhBjeIHT6Bw+wvQJ0P2G6Q+zbksfn4O0HOaz0s
t7zx075Ux7ZOtIrCF09tm6c3ihTQUkBEqoU55+QmgL4IlRWxy33c5x+XCCn4gaiVyXChJxwFK0pJ
EiE9tqqQNM6q9eJmr2ZSuRyD9+XMr0bRJHvdWxOOvVU6JR2SoVuUkVDdNaVmho0uZ8IJM4Evm9mm
4I2Bto8dQ6WFCOb9CCboIDF6sCDVMyIOnhA+vAIKA1jhOh/gxdqc1ug4t+QV61AClGT6KKRE/GXX
siBbed862c6n2+A06+H1QeFZVFREp7Z+qy0auWEKeYnUypSxrcBJJYQf4KkPH/XtpQpVwlx9IIOf
o5hNvffmfq2+rkaRgut1byWqNvPhcNXChs5PXgDqsqlQA7zwZZyY7j7uwntfkld2565kvLSQw7wf
8QSdKTXoI0r6RcjBEeKHV2BhACtg5wO+ZfJWqaWWP3Pmbndujs9oyU2hKyCekhWdFJ+5aDAzpkvp
MhqV7aWjarbXgrTcfQpI447Tb+NwJf1TQSVdSfYkdx49kWfhDQiRGb8QKoVrsnTK+gdz8/oUm0uV
94b5/eGQqt27TEPz5ioXaYjUrs1zQ1VF2XUCKpRgrBadWuXVIw678tfBeS/1UmB0OxkxWlpIgScQ
T9BCbvQxhUnPCBmOED6cAgr8r3CdD/CMcz/W3MtuUSt2l8LW3wblZM5E6XcVIlFuy6lqmSYYbUhe
+0/tgyreNEwNghxKvw9EhUxtpVIGHiMmWn/glAIVRe6mMDLZY3unyyRlXvCCVz1cHvhiT+aPNYej
GsUB2NLXbnzE5b3aSGMw6bdEoSxFqMkuDDNtOM5NbPapkvKustzHIWeAZsC0EMS8fwonqCCzZruz
6LvcqTLPmx/ED6fAwghWwM4HfMvMnTkgv/59Td6+r+5bbhU59evLkJQ6Yc70pLjsCbWDwrIUo/N1
m9+Oqvgp8vzUg8QBoD29pu+9CNcTaylAMt2T8QsjocKGIZTlu4anoLwodyqQyq3e/CSZCuFz7rng
XlehtHpdF848urduuhaVSsYPk2/MBkIVqo6VYsflvN9gtE/NldjvqVwHg+5tQJUZsPgYm3U30gkq
iA36SJN+p5SDH6QPp6DCCFa8zgd6N9YjNx15H38n1mMtHO5WGdrJT6QV1IlqyCm9XuN41yHttR98
l4d3kztG7sZ5+gJMkCvRE22xADcMwJVwBwJQSf4olGXRhAypCESeaoUH2XG1dTYnSQGJ8Ijf1uTc
V4GzWqWp+LPuL8dxUZo8aqVWF9Xn3mwrQDJLpOw73+C1Tc1VbTaVxT6D69OjpjVFMe9GPkFFYmPp
TMV9IuHgBtnDJ4jA/4rV+UAuVul+x399Rqvs3vZFBfV5AO/aWGp/JX3LMXRKn+uTAJUFF00TJc+1
1acw/O07/sEJsOCjoX9X5XSdjmQwMY1MAjlNMWVTlYu6cv+YjVSITdVWS24cMO7rQDPjvsf7iKJf
zqWiVZ37ly6qPGzo+bXnMUNT1wCWUmwNvrsKXjrujBJcnx4xLeTAEwgoaCG52QfCpGfEHDz1FgW/
5ylZ6jGOogtk5wPAZe56b/X4O+duu9OVfkarqu8qI7ky5HUlLE3yNDpfY9FXcpvPtI5HtZgfEqAs
OjM1zvRsEuQa2rXxJG9ukSFT/0oAI4DLWzjqA7nYJ+kGs3sk6XLwkmqkXh06zAb3vr7MC/I8rjoZ
VadkNaVaROeIaA3O0kk2ucMc4YgxEY8a3UcMYI+VaV6dMdidzHbN9yKaoILMoI8s6Rcpww/Sn1yC
CbyvaJ0P7GL21rUglVsqlNUL2dzkpOBqTE1galdD6hLldVaUfiNFbTGYUqsApmbcvcdK3mIR/6p/
lwaAeCZ5upoKicjJCLBR4F12PVVag5lEaKKYTNIAwbyvA021Xuun7y+y3kCnlmyToebbGM7V3hTV
H/xU0BSjM3UT3LdxJwzm+vR4aSGGeX9IpxpPtcgbgJV+DAs5+EH8cAosk/8VrvMB3j1z963Iovv4
O2duWQPX3NIprqt0Y5YesMtpCNXuKfvH8Z7SHQy9D6lZ+3t3yWNVRytALRz7JZNMyHyRhzr/bh8K
ifaikZXIcJ/eQTrOiH7aCSKDEbJ+wSLO9LDu6wBareJXTnmTpAyEVsWFz71M83t6p+sm++vkqEkt
NqEmvmgz96RSNdTOjMt4aSGGeT/SCToIrdm+S72KUH6kiyMAgFeAYQwrZOcDwJi+eZm881pb1C7P
Iu8e5U+QOoaMpuTciQKlKop6sHRRwNaIovCbMlJ29ysnHxn5Gl5OcknbuS+rSjXPy3l2QDcrQpfu
ksNLkAvqDFgk7xes+9rqWVrFW3oFhu7pcvqo2V7t6qUq2RCdV6pii6uWIuAKz9rNI+AYa0R1/Rp6
QY8nn4CB2+tm6QQdxEYPiJOeEXTwBARwO4FhDDdc53K9TN1aZOZ9/J1TN935cD6jpUIKXbVdsoI8
2x76ySETjTaqFEWWVJJ8mxtZRjkB1MEwhLXhDKVktU5Sfo/8e07cm8lH6rPIjGjHbZoCVC7prJXD
zCS5icJmUloz2Pd1TF+1SmGHLR0fSm/Rqg7+dlmsRuK/zel6YKlhzX0Tp3J1hP1Wt+t8xPXpAdOy
HPQEAgpKiI4+ECk9I+zgCRjgFngYxQrc+YBxAX3P8oZ+/BXoa3Z0t7Bvb5QX0FmdaggU7nP6/oRO
T0sbhQbapkDLA9AxpQC6rHTjOlIQO/ySmhYx/Tu1q4QDwfGHYZeigpSBcoOi26wiXcFQOrADc4SX
EllD8HUAr1YpbM20JR447qiQTrJbSMEhSwmn1Tu1BmCrHvjdwG9DucUw8nGdHrg+Y+BqIQ+eQFBB
CxHSC6Kld4QefAEHHPtF0EhWAM8HnLF6b3cZps9o8bmx9V27QHxYdnLrNHRFVct2IT+M4tgVb6LN
4URY7iwgTFzIrR6w2bARzzH/PcvFBYTnJ8hUsj7PkM/T4qNOswqrBTt5k/2Hdf4oZl9Xge0xw1Sl
ata9RUsCVOrmJD9lSlau9+qzOixbx+X9MK5DExxcJ09tSfTTItGPhksLKfAE4glaCI5eECi9I+rg
ChDgF3AYxwrb+QDxntQz8PT969/XpG5LeffPaCmKuZGK1mnDUdPHF4d6vFm7ivk9VfIPFRnG+WUi
TsopIS7v0f165wdau9KT/7WQskh4y4xlIpmy0iJPxbnZaVacTzCTEyUu9F+FtcC+r8NpR62igHOe
KH1oeLsEHDsF+eGWeRajbyy/cFV3rPKw26auq8/P17VUbdJ9aLTzGhHM+xCNn7fQoIwo6REhm5c3
xA+XwAL3K2Dno2Ww235HbX1Gi10fHzcHDzBD8EKdu4qkNGMtoVaY71WltFMi7rsqg+gBohsmgSts
iySoRZ4T/LscHXR32epCJktPQAeZMHF1nBWkEQzlFFb6uercQ/B1oKoWvhg8UZQFG1qTNSVuIrQ8
c35ScmctCvBV5QE/US2ekIfHUY/90oVwfXrktBAITyCqoIUQ6WWKlr4ReXAFGPALSIxjhe98gLlM
5r5JB/L4OyfzuN/5z2g1TvxNhtfXW1bJbYdDUit4vGhPQuLTqg+O9heJEkFvlcTaG/4LE97jdsE7
7IAnfR3/PhWQG9BLzZjDDq+TujrIPbnbLIVDMOQkMXnY+6h4AL4O4NUq1HQn5czrUAulmdDyFP2K
g+WO27kMSsSUKKR8Qj50TjrMfN33SyvA9enh0qpObA3gWqVNCdHRByKlb4QNRxOCySWwwPsK2PmA
LyZzXxbneT0JzMAddAIK5HytbV5VqiLxphVUxxhH5mqPS8Lbt6pSeomTktbVlO40XVyf8jIq8Yvs
cTxRlN82aOXdZdn1mZTmkpD/VszTPMyG/iIry+Lk31eXO6U+ZACu+7HGTSplR9UG9aoaIfTKdgl+
qpJdw2dFs+VSNuN6Sbk+PWZayIInDKooIb3YkGkhVM9IO3iaKMDpxAX+b7TOBTlD+Xrf33V4IrPA
hSqtPq1owxksGx6KG1U/5mqSpB3SV+dHduI5SicknQcmsvrFPkbNNp1Yv7ieyMZ1qQSFgqvOPqaU
ZXOjjzykWSb9Ke6E5irLSgS/WbKfY/BVYKtWyUxzZYJvCjrEZXF3LRL1UbfIxdjmemmeapXygzWp
ge0uH+j49HB9esy0kEV1oSB9VUUH6U3qyJQ+kXZwM1GAS5CB+xWz84Gg0f3b+z/eZUI7kpIEvV6J
1///6397+8//7v1/3tj/Qz/W9+31f3MBiUfOz7c//KfP+v6X//X+N9Oaphgy1pTXsnqRej3hxAPN
y/8W5WI/pFhvqrn56VbPZEmTJqdRXU5OagPfSzk3EUCvrGMjo8VSiDbR4ap2nlzOpcjIOmTFmAAc
vqbaeXOrdaq+4ZBTLkoDf9KMK/LujmeG8nJxtGvjBa+7PquMgWtGNzMZqEVVddTRRV6dotUSYcaz
j5mTj34r/ly16NRE/n+t+8qlDv81h9fu4evTY6aFLHgCKQUtiY8uJFSSIGrSmhtQgE9jRUzngtv5
QPH65KcL1s2eEvOrrdHIciEBRlFDeR/vxAeSabA5jQNpv+fGWlGdUlwUmd+HQycOXZ1eFuc18Zjc
20iqYSqdWLmDOjI4oVdhXS9mhqKD4XJocsM81zFmt+hTTzSCpESrudgQfTSyPajvOg2LGD5Y4N/g
djrPp1jar2DFuD49ZlrIgieQUtBCfrMPiZSOJergKKG/maxul13lRutckLuhvKbv63/r9JWjq1HG
hq5AGrnDIAfFZHZiSQ/C72T21xvVxXveqB26GWfpUakNIK3nyPv1fg9XpahSI9Fq+hzzRNNSFbSm
z2NyLzPlcHLvA92C2Rp2m5Mr3MzUQcCocAqsNxn8k+9tZLAqw3Ilhivp6KS4TPU7F0n4mUXTQVpa
UT71KML6dq1KXJ8eNS2kwRPIKWghwdnHwemNwkZ+9xzBlc2qcNIAbsTOBb0FadKF9G2awSbSLgEs
e7qRHtbKTaXVD9wX22Gc53cNNxpqhSgTLInm5gZryG4wUXZArT5WST7e/cLYGx/MnDn0T033N7lC
BZ2usrvQ77jjqN8hl6tgaGAvePE5CBIW81xfGNOSXyf3N8K8cN7KqHzoo6noG31XVYCCK/vUvsFt
VQqR6kN5sn7w8PXpkdNCHjwx5RSUkB99SKx0LXEHT5SqhdkfOYZw4XUu2MW+Tguw0VTjJZFZJIJS
tDhtkrH4nRzeaEhx6VRNgSy78JD9bcIpD24SwWv3MXLEGRy+Jg4sWjDPE22nxtNuSOUtpV46G4Kd
kA6p/82Wa0BQOndXxrV0+OqGVC156nA/hgcotXB34+O1DW83qgwTwVXdN0O6W93VPQ50JQGpM6Bo
7LSQCU8graCFHOlF4nXnqn9hrnIwC1ZkPb5hO1cM79nrrCDTD3t6C21R0Rlf6gBcUR3JCe6ra9SS
gr/PD+mM+1NY0NwX1PBKG4r7i1KXRP7NIB/Ck5SELofP0OFrMC9u8QniibbfhTkV/+c+OskLKQ9E
WJZ4GvKGdDndcVwj4PpCnJbUjTzRSP8gSkzL0300Mg/WOb3kVcGBWdoLYjX5HO8eQ1VxusA7Ujji
0ybtHX4UJLqVpIIWMqQXZOu+27WynbfbbLHn+yAAdxnd0vgZ8tdxtz8gH9dM+KTRye2tBVN+Sx0m
0Pomae1nbFfC7eHQMUnpjke4q3eKS4oOYOZ7kjPFO7tlHUMP39t2gkTtrF6Z2trZHs5NMl+Ri5fR
DltxJ8AKShEdrm+w1RrJ97fGS9O0I5BJCX83ZTan16pn4We6FgA1xtpk7ue+6tp9dWce9OugtEuY
fUZ6jxTS2TDriaPaTtiiZ3kTRzZxvWq4tQmhkd4XqM4VtwVk0oL01Pq+gqw0BQGyGj2RpeAHVWrn
vkog2wuW7Ylih5IOAf0ggpuUnM4z2493qs6jIxiKvw+Yszdg7Wo1Dkd6oikZeVCaHu7Vfcywk+q+
B5G+5mqQpgd2FXjFKLi+4SbGQfGvaDGagglRW7kiBr00pdSk93qQayCyicojXRxXn3+at1j3Rqx7
Iza8XZsbscP3I6ughBTpA+nSt8QeTAkOuAWx4drm93FiafwO7NT0zgvmID71Aj+6k/jiD6gyuxPx
Q8dUdGuxvmZtkMdWrd9WmKTyIRQykuXwyjl8DeLFrUZgnp5oe0QBgni+1vDqQzuxXTdPo+GYIWZZ
hBKhoPuyO3VLHhE80aS3g1Yr2D/opZHnvc6jj3zHxFNEscFtHfjTN77jF9Y6LmNT6VPbLn0LSV8l
paCC/KA/pUqfuBCaGYEAl7mZ9Qus8778H2+BsJODdErUXADvi1KE+ixaFupVsJTNCvvkJJNC1wkw
tapgAaUUESwFOyRilFKwZKXVuD5mXJ/6jHW3mnwwuH86vgad+QEe7qEr1QD9DsramaOZdmUEqzql
wj/XN8BqDRKcEgKRTakVOV+qh5ZI4SEF4jEwOLxg0Ykq37UG4Z9zVYBrI0+Oa+TA/UgIOlNu0Eaa
9Ckxw0qt4g5kxPIC0rk2fgY3l6azVBTvVmjWdWzOFk/HQYRo6j05YI9Q7iYf4t2+dy/xK5CbulnA
K3slEUBK5jB3WbE75VoA+7rNJI+UCmE9Nh0SQ0/6fYQX865A7nHxMyol0Emalvxydl/f4CZLavcT
Td730GrOjU8vLYWzZLGdCq7qzs47SSMqZZhcv2LLwfXpEdNCEtyPjKCC5KCOROl1TxczEn+LfFPJ
zC9gnSty9yrt9C9TJ9IeMLdVO0JgI/b3H1SAnOUMJFY5xSeJfvQrtEm+dYmdEwbWTO4SCksUPjPh
d3L4moj9+GVa8eOJNtjLQYuorc0gEypMFZfgaAb2BqOj7eZ+Xl0gz2t0sJVEtdTeJADRDtSDsHIC
oaZfiM6ug53TblsU3oTaoRH2NO4PULVbKCOmhSR4AhkFLaRHL8iUvvd6sSQA4BWMNIQFrnPF7meg
y+vDPIGOqt06lFxA47OkL750EHKD3lEYYIdJeXuJxZnnX4ucgtPSrmg+YEbtOTfrSV/ZS3Gd2JnU
Ts0qnWnZGifmGye0zRATZcJMlqpGvVLXPLgZhXwBetGa9muJgqx1VY/QGoQGUwOqXLRa5AhQL40T
ZsGup3MN81ecYGvuUlkeHgnVoAJuJ+MtyddTHtw9pRRUkjwZCP3b3KfEHMw0nAbIta2to0zox7Kn
XBoLzCSK+QlmXnHDzNxIcvwjZ/DxLh+qCNtN2hqTPi5RM0c5hXMi0wYa+Dy6dZ9VxnSySbYLbhd1
6NnXjTmYECqZOaDUNTvoY+agPNz3UGrw4GqUYHYoD9gcAVc30GoNJbkuXQLspmLna9NviXox2i9s
Mu6Ko3pgOYFXvHrnCOq4F24itbWhmlUTBsZPJoLWAtNAclBHovSqn4MdPNTsMvFjN/MLXOeK3TdA
v87gD6D7oi1Ro2O4IEtze5exbOYElP88eer05k/3gKEzSHFGj6kwBGhthigqQWmGdOsTuD6lDKxu
kZ+MJ1ihglbPu/voSqFC38z64Groowa7o45rDFxfYNOSDZwnWqum1JRdmx6aEqPOftuWL36qaqtO
oGVs2rFms8G6NUFcnx41LaTBE858YlpIkF6QLH1L5GYpiUtQEusLYOfauLdizhzz2kTmJKhfX2tB
fSxaEjV6opTxD1K/v141fR1dTyFJDdi1LKVOChXylJB6UrZHWQWHiw8QmH1vxYq3Ynh7F4Tru1Hd
Bp2eUX6S6VFec+TroeyeORpU9xOrQ2mMGQHXN9BqjeL7W6Nm2ECqbMbUR9NHhb6nJ2colOvhPHSp
SbFVPYY6bkUv18qn4mtkwf1IKehM6UEfmdKvhH0xpE+OOAWnmcrtWNaqpXHP6oC6vtbvFepWrs/Z
J42e0Ib8IGC7v2vT0AmdmT7YU+Dyv66K1ayOUuqHYx0HemvFtimvA2bGgDp5OybDUeIog9Zc5sIu
53PT6hiUqeuk8q+z76kkyxdHI7eLVczTjIDrG2q1lN9r2BOgWqGXFdOobZn6aIqypO8Zt5rMVT2K
wUZvnW2QSouHynF5qDB2WtmuRvIGwcBhWsiRXqZs6ZvdYDA1Lm5bJIHL7wtw54riAjlJZi7IZ6lX
nMtuwMlrPYH4EbH6Saee3nAGSGhGiXQb7JwUQUyCbAVjhEPYoPQYNZDTbcLj+pSZtrqFoxVPtE5q
LWh1p9PSVJRnHr13sp2ar5GpEySDGVlCGIiuL9RpOWselSYaZzltiXALoBfnF8D2sukQ3vEYdGyV
i5DLa18jqa4iC+pYKBg9LTus6QnkFbTCu0umapSf5FWQ7IOvQdJ8GbhiFO0eXPt5L35B/hLsCnnf
Fo2oGp2k3lTnRgWvdbVl9mlyvIy84M02YvLxoKUGdn2yXZpKsbLbca17XEdOHloE/fPE9KMLSmiy
6aPLvbJ7gdkNuvZp6TC3wyHHJA0tq/6EFh//dEh+w3RaIfKEHpoO/fTcSCsSedne4BMlF/zj9Guw
91Bb16uFLHgCKQUt5Dd7QKr0i7yDIwFhVoUVB5MbtnPF8AbcOYZ6o0rkDXhdlClqTFnJeZtihjP9
EoYOp69VFPrMcEY6k+pcDFkJRvuh3ZrgQelVCmeq/drRcA3cya2WSDWHU4gych0EMXUbw7v2ZtFz
n6UbzdEQw/A6cHViCLjiBNx2vyw+GBBNmESpEb+KE3yKbUyRV8BhfqbmUlHP4nSqveCfuhUBt9NC
l7BfvTY3O961IaGgg+zoAZnSM9KGI4FgNqtf1uN9gexc8fsGbLmdbDN3MkkPFo2KGp3ir7J8lBKq
UGc8nnbWpB3sLn/A3ZbkrLwy/dA3XDXqh/abhfp627Wab6zlqE2GrHaH722kXBeNyGap/b60v/Rp
Bam5GYkg/rkF62Z8Xt34dntYD1d91EYUFSj5jk29KeEuvWI6hhsUmCTKwjksm3u+x4ExMfKM1l9q
SYEnkE7QQm70gjzp3WpS80WCKxgmo4om4g3XuWK34KzA+N72Pa848zkIbxN9EingTHBnlGkHae3V
5Ebdp6fonjEo/pCnp1RccitSBQ6cdAoVufiGH/c1ubb2+FbLNm23HiW0DFo9kUlRKMhdevZM6svg
CG8GV13M2d+h7Osbc7XIQ+8a6NptkEazoL6mj2b7nkS93Wk262Hnoo0sgrJkNBzCy7Uz4fr02P2l
phiMnpiyCkrIkD6QLH0j8+BqJ8Mo254fOUZxQ3euOP425vsmbSmGlMDcWezelZKxFxJ5yehRnURP
VaC6fGcTOyi9qRS/7fth1KWlnnEvGCP4gBtzyoVVLU/+UG9kVdpcEjfodAogs4YovSc9d4zT5mm+
N9XcTivVoSFwdYtErRFW0uoqnVCaso1MBMlGGPpuW+SIOqTcBHGFzpIVFJczgRKIV+/TOGuTbVZm
bD2BpIIWMqQXZEvvSD34EhwuKyq8GMcN3bniuGBOpqIuv8EV9H3RtKjR9Y4dpIRXRGROErD2appc
M9kGwVQx6TLehLudkQj4P4jT2v1ZvvdqxXu15k981fa0+In4qNoZabunY1cqCXrvHBDM1+uTYG6H
lnUGwfUNvFoSz7y/KQoYOs2p2+mhKV0zPTeOEOKJCPgJu0yYKiHHKOoeuSEOX58eOS0kwhPIKmgh
RXpBuvQ+pR5cHclvnsLgSozhhu5ccfwG9OlC+Gpv08ipmiaLzoVPpAwyLj+Nqk/fj0oEE8mtSXWZ
dmaitMForhWFN2FnjVY8Rokv9aV42dhY12YAJFByVOvLxN7MtDo5nDCzYlq3f5T6MF/9IMuSUmyw
88Aqx7fxAl6t0Xx/kxUcSuSNOt3HFP0sLIN1Kv2I4qxN+YvImIjWbfc46j6Wvdvw3m2/WsiEJ5BW
0EKO9IJ86R3JB19kNhDDoDacYP7yab8bN/DOVdXlpbICf8+HTxrk6yARl8LUkqrj9ErO1qTA846D
usLsujytM+m2dnslkbZH29IZMi5f3wv2AD3ruinBE/eSBiiodOVehz6uCfTbKZ9jjijR6Fp+2vgz
BB8CAnJaA192SirrVRGtKdxIT3LYeYbeOXjDV9vsneSUVMWjqPt+fcK4Pj1qWtlV1YqlFHSQnwPm
COgnbiJjqoInrK9iFrQ0hn1dyJbGN5DLBHojvkx0pvk8DmLOl0dj2Qy3fFUspKqsi2QyzhVfEofj
HQi0RM5FMk4e3YYQ9us6WpNTccPnRYoF7K6mNHMu0gOq09lrx0xjbvpBXezN+4Zh/rm+oVZrUI+d
7FKHKbVK4Sx6aGizDzQwOidiiNwcobPhXyKQW/GX/bKK7XyBHTOm1pQG9yOloIT06AOZ0jfSDq7A
YXK7Hx7Avkzsb6a1d26B8WsHNzHG/dwo4+Kvk0nio1o2a36KdjVyWKEItU6lSfrPLsWBM+ns9ko6
OEUrCJLsWFd06+HrUxGr0WqUF0HPWY+LUtNZhj46Vbc5oZMj21x1tg2FGvNaYKjZwgngwlut0bzh
qNqFV9NqpMR3Ly1jipDLiupzTK7aZq+kjdO0PuaNSX59xI9krOVg/o4suDdfWWNJiSrfioSZUUa4
TBpN6XTND1jAKXhpAAt054rjN5hPn4YV9L5oXdSYwuqhaqH6iEoTv8T7Thaa5AgbIla6U5hwyHWp
5MPugsr1EvaJANxFJhqHd5xF7MKooPR80SG+hh46CpVOPu3Bayi4m/l09ID45/o6s9JSHg6pWVDS
NlI+UtIU+k42xlrPTk8ctY2C1HCK6oQR1CNK7B2+Pj1qWsiCJ5BS0EJ+9IJc6R15B19WwxAB3/3O
Hu8LcOeK4g25c151WUMn5AeIH+s0Pyyx6WORLeUiNdD8VroGBcpuOQLlDYs0+YX03dztuoSLvzzK
Cgqb497Nck3a1e7W65jq+xvpHE1p5prY3UdHaY97En4Y5spqmsybUz2KeXWjXpWVKMIeGoW2cSeo
kThVu/OMsy52aU326hQ6wnx3mki4r8d9CuH69IhpIQkns6xOoPNOltzInYRM6RdpB0fgAK9gpSEc
qwpxaXyD97ST3XgnbH9XkIikqpJ+SZ4IPaMe0IJfSSiZ2B53JXDkieFikZIleGMCkdEEL4rjPrRy
rcSrV6suT5BKKGi1g3pSWhE4Mqjv3nAHdaGDofeN/Po8QXnE46F0pjUwCUr6CjWBVnPibnpplCXi
Cbv6KJhqlgl4q1f6hd3jmB/pa892oHZg7LTy8sSUFXSQIPSRLP0i8+AINODVmJFHecHvfKC5QE+O
rJ+h74suxoVTU1Eq9cM1iynU3Ct5rinzOiM1MqGO1N6mxvFur6YDvQxx3HiF33u34r0bu7pio0L3
E418zKZEpAZ9UH939tzrbtAxJZIVlZAw9ZGKry7IaY3uzxFp6ZIpNdWEO90DYRr03FTCFZ4a5X/e
qqOItojkPm7tItenx01rSmPejYyCCtKDPjKlX6QdHIEDvBorctItuJ0PFH+GXOaTV3v6mAtzea1f
mOM/n8izTCL/OdmJmIksy9pPNbnVEsCEB2bD0+ww6ofdkmZCPs7bty66X/laObvLzswmgL1VxUHR
RUt3SgxRn4qQ64Ol/eKqD/L/79oMxBi4vnFXa3RbXKtz/E46rZJ0y8YynJt2co3IV1UcNbJOvMFr
20jXwVn70rgepFzlzD7ekQT3IqOggvRsLMOEVogD0jJjjsABTo3WiAwYS4zQ0lpQJy9al4L9gXpZ
dDG0psSaE6D0jFN5Qv0l1KW2UihzliWpKwl/xto88FAq7MRlTyjs6o/bysT16bqatCq7fT3Ryr7Q
ajtqN+2y8UMiiJs1QVz1TgDd8Ju3exRc3yYItWae0B5Wk8N0mqsQ0ENTmSp6bsozDk8t4aUEt3gp
uYbpsV/j4/r0yP3LtvlQXyyroIUU6QXp0jtSD77Aw7np7Lk93lf8zgea32A/da4T+9eeHuzHoo6h
1RN+VzIXUzYe35FKaDz5tnHzJ992l79ItiHbmQM5de898m0f24X89n7l2j42Zdqe95Fp288rn1Ay
5S4XqW4vS9SwZDwl2zZcdj7b4r6P1RvMraG79ERTeRtoteoqvzhiKRCf3qfXufN/JzbnygpOajvx
X48lSP8goR/j9S9kHd/KJZ+g5EzlOVme9IukgyMwgFcjpTGsqJ2P1o24E6aNjaiSG/F8n9mkVifN
oHKJ9Ex8wfCM0HaOFVS2pKyCcnPedKU3OpzVfKId0T6HMiaH8tyI7w7Yr7eK3nm2MSApG0vQaoOi
RhzI8GeknoZWI/PV+UrnfinQGYmV6ddsJy+n3ms90TpxBppJlSB5eiEBEr23nM1VS07FfKCnIcnd
rT5nhFale+z+ZUMfUy9pBS3kOPtAus5mJbkHTyACt8JMY7jROxckfxv1V7ODer22uZ9udemkU8Gr
kwSySfIlD7tQbNTDxOAyc+nI3ok3p/Kw4yozNHK8XvuFukP4a/x7RTuv+1spF51G8EGnRKFwb92+
48HPnP3DfPaOK4u+SFRHC7xpqT4zT7RerPEhh5i+FFS6VGl5+p52rkM84UM+U2+Tt0j2sYoW8bjQ
dvC+xuxf8JyjwGLH58vp1AlAUA9IlZ7lu26OQAFejZXGsOJ2PlBcMCedzpBa5oH5/mOd67tl1nVo
nPujHiqZ6gqgO9ZrCjoftniQgCKUNRP1SO3QlX2/LvUEj6gnqOz7xS2syzzRiOA3LfsI4DG9kexH
ahsUNubLPjP5ssCkdFljbuTVclAcZcOkA0Y1Ux3nv8V6U+yf0JRSBa5Qp1A1gQM8o2jb7bzL9emR
+5fNWRksqaCDDOkB2dKzFTbmCTTg1phpFCt+5wPNb7A/ntCXOwzr060uH6/EaTtTeAE7i8L9j9CS
TAfXbLsHGSmmNgXgwxllbuNRo+cLdof6V/zPSOqPPi6OTvWi1AhIxrYiMxw9z+ndzBEuM/Z/7tn8
z6sb8qzlOvne1oMCiTBO024lYgyH7B27uZnaFOBGSydHqNqsWC0X4A7zr3v8O+Euuh8JBaUpOXpA
nvSMnIMnEJi8GiWNYEXsfOB3gT3tqEOb9kjGI6TbqqEhc1KiUIOU6mQ6HRSncpT/oemk48dMVYka
XkUg5HA8kdYCKtf8woFvvyc407vpqu7Nh/LsnDOioJRC1XQbxz+OhHjJw4kS7zfzODf0zbxzfW3f
aOEaUKlRztuirXnjAEUvzQspuVGEpcsvkSEefpsCKuYYSI4USDdv4KLg9NzA6Wndn3u/6CA3ekCe
9IykgycwgFsjpVGsqJ2PViRnYWd6wUpZyKR4/S4F1HCFI/awE1Siy6ilqW9xJ2cdLgZMYPZsigol
8n/Pyy7NUf3E66tV5RPmCE2lSIBS60G/KRaafrvChoOjXqNW6dD0PjQCrq4pTEvpjLjfxSsJQG4k
IKOPhndzH7JudPPTklM1i9OmnRwjaNsdM8f16VH7l409mfQVeJ2bFvKjF+RK364pZa7AAn6Nl8ax
Ync+kLynsjMrDe3KI+OScrTkVQNDrh07ZhTJclYw1B6okOgzYcNUfmGU3YcqiUfF31mCYfO5bCZ8
DiVsYJ6se7lVqhW35BGG6XRRmmMd7qNhnW3EOZaLn65sk3DqLD7in+sbd7XsUkMJFJYu7ZUaugH6
IHk4fTcngtKbQgn1N/jFi6FaBXsHxHKtOinx7wntDfk/SXTn2m/5cA9I1Znf2SGap4mD00qD1QgV
+Jqj5W79jLk+0g/M26p/UWvKjCorLHOHfFebw+mpsoJaOjtP6QsVB7bPMzO4qyX9EHVW0J0G8pv3
acXXVFnhfnudmZJPy52Mzsn9Tkt4vjhy1DjeK5X8/dvlNHE7+qo1Dt/fvJ8jSlMfDscqSNPS0X5q
+UfzpXzZURiH6O05grbdAf9cR2Uc/yJZcD9SCkrOSJtJQscOVUu05A1P4ACvRmsc7ytu5wPFBXNy
MA3nzrsxb3cawU+3Zg1BF7jOJc5fDorJG1VE8dkjGO1QBtLsc9PEW7KXB+ZMNtB1gjDag1PlLLXS
3SK9GPez8gUlV6Fsh7Se2f36ZBZhOmUTn90xSJuvbqSJQOKt3RRdEjSIxz1NXaVBMKeWzZrv5vMS
dXGGdtTZ3M+Ze63rCZeVOV7/O/qvRIQhGadc6B7TqPpAnkofzonMHLlst3g1RhrBitf5QO8brMme
d2Pdb9+BT7e6kgKlkVR7KqlYQ1d8j/J+yZLPXJkOPDJaz6gqbZkpq9NtYZlzW1uqJdrS5+qXvDb7
VZBoMvmJeTIdF62mfN+9UQOzxOzd0sXP5HGYU7yZ4Z/rC3Faiv3iiaYCzJNSc0QqPeBoRL9ksYUj
MsxPzNGU6S3lPZJEAnMifhm3f0ndZjjkFJSQnvMS2/tCDqWH41zZko9kXo0Vuaf76vOxtm7MnXDr
G8zvLDafbnWSitsQqS36Qdgmdi9KOeD1mytzvCnQZtdeSzs4gnhU+be0at3XpXEZTmLBftFZMKj8
TmyGjlSR/JuI4NYca2V/Yywv5okIBbjtqpGHVngxmc7rfbNevip2MJvKjPBRNRViuXBsJdq44N+o
Y5tyW0/U9W/KWMkIqNQWqLsWdKv3L85jogjiPdsoroNYZa4Tu7fZVaNa4sFXsolXljYQ00jSIwfR
2lqQJx3TcOq1G/mxBo7T6pv2hTsmc+03N6I40ajP/WZypqrMnmnmIt+7rVv6mmeOzHzN8Ze6NOpD
GvWCD/mm9BiH7400ld7BsaPUHmZ4z11V9vXmplNfPIMpMzjSDy07OGf60ht1VedLptWac4Crl0aV
FXZF6NPJYJm9gxO/TWsGo5g7sutYlpwcj2IQ/JI5zFOeitOA93DsLKlqKrnSOxIPvtJVIzC9GzGN
ZEXvfGD5DfIk5rqR3x92NCoLUmIRpxRxPvX+Vf7CSvdfsmwZQ3UiJu5Jzps10iipDE/RWl1chqdf
Be8PX0cZHlrVR+9qzVW5aDX2aC3JhjTcc6O4ljnqOOkkvvg6W/A+bA8rGi2pdniivd47KLVGJVT6
aEqIR8+NItIbOm+SMdfrqJ6v3PW3xzbXVx0lfrmO3tmyClrIkF6mZOkbiQdXYDG5NV4aw4rd+UBy
wV0q9eGETuRcnLAfa/49eyhv5Lol6bU8cmcsp2sm5RIu5aSUrw7uyQeB3q6cd3kvzQkfnsgBO14t
VWHgtOrlabXb+BSUmpIuOIAIb+oKZNoG5CguKv0MJnX8oNnwbWsCPrd2nNtlwB43rdZwv20uFob5
3OVEfjTz1Sj0/FYvP6bukeCNHNBXb+3iulz+Vt2yCkpIkT6QLn1nRcTCE2jArTHTKFb8zgeaoYs5
bgvDp1td1QRI/djZdaCozHikZpIwKEoqEywyqyRM7xd2mm8lA5G+5D1Sj187uG57Y8FHVc6CKGPb
nWswaLVwmHe6WPpt5AUxR6S7hNcmhyPGwHUM3y1OVztWU0FNBpCugiA1Em2S+Bpv4h45FouVqihG
5UnLKOa9l1I1O06hR6J0yqJE2k55xpgS8qMP5ErfSByeQAJejddOAa3VOrS27nntzGzDmZ2uiZ23
O7b+062+kWwKT3BKNON4FtUl7qR3Po1X2US3JSb1rZDvTWFzpfNLFKY5fD2xv3+pdmK0X/CPK6JU
ye+ye2lXbkD7spgrnbfJ+b7HGObVhfq8Zv80DqdTgQIn8FOUW+MshQNkj6TXRH++wSFp1ODcdQON
98HurS+/kEhNTyCfoOUTeqWcZSQFRNLBERjAq5HSCFbUzgeGC+J4rw/n/rkRf6RIptVVREEmEXmF
ZPbWmR1kplSEougyPmTyti6kF5AieeIdOtCqykmqLXyhrXN58Td/5lrwnSQzCxq4AEK9FeLal7we
OXba+q4n6yj0de4+hy/5M2jZA0pfaVLao43teFHRyzwZj8vBUalx8X+rvH+TX8wcjMFVSUC9OMqY
wp78IlnwBFIKSsiPPpArfSPx4EomFnFrtHaydK45ktfWz6g7N8yNel5j0WjNWuBDRTPAfZ7IZPXM
OG76s63PTybyXKMoSvtADWkVarIWlFJNYWAL5DnHVjxt2l2NkyemRrtctPAb8YebNaeEFfHmy4aR
dBu8GIlRvvBXa6eOODndOBujdePUTy+tNWvOsj+q8NUqpjxX8aQQAf4qYOs3gJRjjN6/eC8oTwHS
ZJgWkvSnm0+6ekf2wReowLGx00hWHM8Hqvc74HRu37wDx7KJo9Vl1c14JUlDmYULmXJO2QyKT03z
DEL24kMaqBw+qG+lEC+sRCEdne21jWv4slR81hoxfeW6v+5oUKHUtkjofDi+wxEm0mgEV1Rrs0aV
HcMW0ru3cW6BJH5Jo92ame5ab8Su8Du7BUrHiC97or7BMT6RjKSVW/PItWpzxb9LItyPrIISUqQP
pEvfyD24AhH4NW4ax4rh+UB0wZ8sb8OZY278y1j2eLSmr8AeOzl57mRMlFlcEGLgmmDknkAnMexN
OA2J8puofOe1V6y3nprrUwV6slsVzXqNRFo3rcaWvPA1JWX/5pU0myfv/hJWKrxppC3R9YU9Lexl
zqmlbwRmyI4+nz6asnPT99TXdXPVqstlil/v/zSOu0LwcVUIZuz+RTLhiSmroIQM6QPZ0jcyD668
/xO/xkzjWPE7H2j+jL3zitzYE0sV2OOpKkN/JoRA58dMCuOMn1cmM65KTzPztcvLm3f9Az9Azd1Z
Pg87V1R3PK54s5rr9UutYQVtynl5XJQqtl310VRQvctSpfvNERKFV8W9bazS94qoa2vc0dSig9Eh
rWOzhTqBBPTqsq7iZ74tCm7gYCe9CiMgxixQz97r7fcv9qpOllFQyg7C1U4PK3Nn9pORCq7AAX6N
1n6Xrr9QX1oL6iT7cwzbDXpbDa20ukInM47FSrGRvZ3CbyLvbKmLtquov6nrTNZ1Sr6hVqPerT4D
F+R87FG1VrkWOV057mzOjTQjv5Jpu0REtgNZcPI2p2qJNCA1XbxzHX4Fbu3Ny4SMlbg2DvtMEB/W
oxRJ8lIBR815qOC0VeqMocRdvCaqvSbwfOAXHCT1BPIJWkiOXqY86Tt7E2pXeCEweTVKGsGK2Plo
3WA799vPYK8ZHml1aaEynmfU4nXuCezY+Qj3oyaHn+6Ab7LE92IPyBaONbMgs85osjgE5E4Jj+VE
rVpJgkxxIKJjoVXJD1zIyBZuWuFNFny1vJvfJh19tzZtrenk1q71OO+2UTskccATPUw3JPol3huO
yDgw57kjlD2CVqPQ6OHr06P2L83OL5ZS0EF+9IBcZ7/ZiSRcw5icn6TyAC/xv2J3PpD8BnaSTdy4
66tx4a5Wl1fu6wtjjWYmn1ByGVfCzOSxV/AyVC2e4h03lsSCt8trK1lGiV0fiBd8+mqmFIOiArRn
n3fXfi8b2LCT6VeexheRrEHmyHme0LdiJ8CvOK9BnG5ZE659AXZTcgQNlzoEuU6Zv3yttvDFpJyo
C6FG/lyqGSyezi3KWZT49xZpv5vlFJSQoFd0SZa+kXlwNbGAW+O1d+//lt3c0lpwJ+/fcOIBSmVM
3MfqFGcrOXW19832mCN2bU6vPL21w8ZZVPOZ8M5SundaE/fmU19Tmfpqa3hgz/60psM7NexYxU9U
PJhNy/bYHJHe9OxdnnlqhKVuUeC6eRS2kAf2tJjFeqIRUcCubfBRCQunbavK/AlH7LNeHOFz0ZpH
EFmzQR37OKP2L5wMW5OMggqygz4ypV/v7wYf0s0Wlx42enG/4nY+UPwG81jjA/N9zcxtq+lGIWXm
PfF2nIxOeX91W7kKWZqz9nCc17R+TcRlF3uNG3vdEq1oC2lN4/qFeujz/qrEvEGFmjHQnw6IYV1z
dKM5ml5pSXzaTktuhrQm5nZrJ/6AOU+4ON7PxAbSB9Yt+m6UxRBXxAxOvLXiNn3WE1a7du/ibCNl
5P6l7b7fZzhTQn70gVzpW1pc8wQKcGusNIoVt/OB4o250z3+jDnWn8Acu5lKG0zzwC4Nd5JnPjtj
jQffijQ3PiUzz9mhFs95fdcJ+5VNsRA3JPtYYI+trKZ+2fIqKTr1RJX7Z9CqfbiPetUsG85gH1wR
9gu/ttlpHLaVBfq0qFFGoioVOoTWPBVRwiLqn6lqmc7Nwzy17mgW0ob2zWPAOhbIYylj3P5F8pj3
I6eggwTpAcnSLzIPjkADXo2ZxrDidz7QXLCX49RwgPoC/TLZD9xVCp7kUngW/IiTq0bgWpGG8s13
p7118EKmiJMVs8qiUHBIzUuqEZtRamq+rqQKpSYYwQ6mNPPc00PFsSINp1gMfire9tTnxZSzpTCg
WBxRsopUzJpgUnVCiRCB0z042X3H6HOFLVC37A1Om0ITJv/TZGKoO1u43YYUK2p1pwMcTAO5QR1p
0idyDm5AwCrZiZC4v7E6F9x+hpio5Atia4cNsjXqiqC0llV6rZLC1zBq8fH9JJMnBs1pQE32utF3
vGs118Gk7Ju15wE0614lFQhl4TKRpcR+ESkHpdqGe6BsJz3XET6crMbYEfQLOn2yvuxrfIdbe+h9
p14jmRKVcE73MTWfyun5TnlAOGqdrGXwiq6UMaA5D8DRos9R+997sxb4sJSCEvKjD+RKz0g8eLIG
V9wasT3sHzG2tbXATvLH4djUG/e0Jp2wNnVmbyQpvTKjFZV1fu2K30/bkUjdUtCFJrxkmv0YJuJo
ybW7w2tB+tJy7buFFDp2tWZd9nhi7ozGRau27B5slVPPVR5WcFRH8GkN7swIsK+JJtwia+OQPsMU
muu525425tcke68MH3FMhkPv6tDP93s3GtpSRutf+n49UeT3BSWkRh+2yo1uGQc/SH/yaXzI4pDW
BBNr68bZ+R5/xjmvFWijhXdP1bmW2jd9swa5KAbixxGxhkqwWBqnJcollBHeK3NmR0zCtWezrqxS
7latim+jnqiFsyC0FLeoPiqZqhMlunW/eZqYDfNqHdlxXPq7C223Nt/fyLnaw/uGrLOcf/F5HHao
gCOK1kzE2U8ruz61X/sdZRvaMsbtX3DO0BNIKmg5dlG9TMnS85R3cDRRgNPAZntfMTsfCP6Mt2NR
F7z3ZbcWLcWi4MG+8f6xW3cRiVq8kiatTkT5vsZFdYSE4gnvaX24d1k80q2nCL1J5ZtBnUSKk+uJ
WtDxambPuoWiX+vhr0pyVtXgqJJEaqPkiGbgQXGbtuzUorXxWdY80opBEs/dBUDq4ZV06oVI2jLM
EVlVJ+b4UWufx1o7bg1TaE8Yt3/BlqsnkFPQQoL0gmTpG5kHV6ABv4GSvroLfucDzQV70nwOxyXe
2JflS65rytByppVFrIatiuhK5pX2nq1bRzdxp3R3hgcSNCW+45ylbsVknKLrtvu6puHzVtc3vVyU
aokeag2/vSp82sVTVfkkuPXJWaOI6xo7gh+kBTr8xDznDNOa30lHXfyILAOzb6LO4YmMHi9KaRi7
Q2No40YdzDnzTcS735jDEgoayA7qyJQ+kXZwAw7wCTqbNR8X2uXn77cze+4PnDkdBNJuaTZW7bnk
K1ja5lVT6ww+FMRk4Ze4xdqVHUUysd5/RIx/2YdPToG0T1HoadXSRl131+zoCm+Gk/Hd5/fU/VYy
TJqjag94MNS5SWOI60CaFlpd7YmUfBNaKK3li23PlOrMEnx1HFsgnJuj++GfU1Mg3b1fG/Hv5CfQ
/Va5D44v2PTRyLEPo7jd5i8O8W/t4jPQIZy3rPu1pWW8vTUMYN2SCZ/EvHODRtjIFk4feEI2vZK4
HU1QUWjpY43jqdJNF0LE0208vLbPW/NrULTNqX6iEqBuWhVvSfVR2RBuTQ6l9eKoksR3bsbYMov/
uDaobiUrbrWdndAQPLIDabbhsb3Tr0vNEu5N+YQ3eG1KN8MY2DIHsN4+E2rOL7jP6okpp6CE/OgD
qdI38oYnUIDXQCfdW/oAtn2TjN1+Mbvj06hYqtKVawxqtPSVxWtPvvTzyIiuKl+WXmwSRd54WKAL
GYM2aYXtGa28QPthvce1R4udleYirbrFXXnO64tSta+O9mh4RGzs3Q9r/8KHsphb76cOvvxrJGq0
9J31E9tFq+3kaaAXLBPVvifap1GwdqdAbrV3tMxqGOb22+vj2l/tx/2LfZFVgYL8P6aFFOnFdvS9
X3IPvgIRTR8jpe//guH5QPRn+AlfuuHnQxLwu9XNBh+/oiWIhLYoC0N11fVRIrp/15vdBY7YwFlm
w9c3XZ/9eAH8ud2yD/mzsLVUcBuizhelmnhCy2sO9V/X8povrmru5tYfWI0irg2/W1BiWcxBZ7dD
Ji4Ru9Lvp24TFRyRHmxCP/xh3T0CPrIBvT+4ou5fcHrRE8gpaCFB+kCy9G2Zm6tAI+mlAKV8bZUu
6JfWAj0ZXXeHMd3YjwX5Ae5SgmvqVL2ifBQxBR2XtMue/OnctUEBEb3IKDw3nJwJIluSwMUavSVf
V9S2ur+SZduUKrWg1UeljO9xGJN+cVUTYTscj0l6qWmb1myY0dKy4Se0aTCtzcqgekmc3ufEG+Zr
5l2ZyOM6rZy0m7Z9F+qSEiFn81/3CJQplpEoWHZQtkz3UECn4OUNFLQNEjIstXc6qPv6xtlpXH/G
eV/zhESr6XucPVOaFqeQJNtOsM96d3dd7xoVb4G+WRQMcGruGm8H8ojVwqlIhd2WffeUY73oVCog
kEcT04J6fh1/L44qwb3k1Z1zUSPgKlDO7wSTx73FFOxmb8pKQucet4WXzbyAyB6c77fT9jUb51j9
72zIjkU20AmpaatmaSoxnuXsPMBGoMSqIP5XxM4Hft+gTaDSgvajRrFbzZ/hpuvJN2G8jCbFO0Ba
cxlxy6GE1kK5eh845zQ54e/gpOuNOXbfVSW56ifqpv2VKNXtpl8xG4IntTnETSXFEhlyjYzChra1
SPHdKtcTqkhrSsXrDH1orvpzOS6OyCUcvFIxmDHcIRoXTh43v1TfVSyloHT3gUzLJWf4CQRUvP3C
qbyvmJ0PBI33397/8b4pX2Z6Hwfpt+fC+K//7Y2UivNbMl59Kln261//8797/596S8j3ujtTWLwk
mzSP6fWCbIo4Sa+OoPu1ldTarqtfvX5BD8rjQWt808/d/6+WMdGD7thuOut1H6b4z3z+oAO9eZa7
KT5bGzT19xe7qSAF0fYg077p4u76F7t0yO0mPJfJm9Sz1dTarqvfO8cHLVHdk14303m23MfdN1R9
G4/Xx+P1G2J3J79SJEGvm/I8v920nq2q1nZd/Uo9GfREWQqvi9az5X7u/n+l6A56UC4PyuWbfu7+
f2Uq2Zw1HMpzh3fTeraKWtt19QvbW5CD8PEgdXzTzd39L+y2m/P1T8IkQg1SzxZ3QZirXzkDBD0o
z+/CTfnZyqYcV79yLQl6UN6Xpepri37u/n/lqBT0RDmlldaz5X7u/n/l+hb0oFwXuvWnPu6+f+FH
CSlIjoXM+EI+uvyFD+7mMH4IHssq+LXVvSbG1a9cuoOeKKti/EXr2XI/d/+/ChQIelBuD8rtm37u
/n8VgrI5mxiU92WV/NpqXjPj6lcBTkFPlGXHv2g9W+7n7v9XAXNBD8r1Qbl+08/d/6+CLzcnb4Dy
WFbJr63qNTOufhGuHeREuK4L+5eWu7m795eNimg8Xpal8Gtr88IYV79KHxD0oNzXlfFLq1yUy/eU
v6SkCHpQPta18Eurx8roq1+lOQl6oqyKJhetZ8v93P3/KmnOZo9xKLd1LfzSyrGG+epXqZeCHpQf
6/eXVrsotyfl30jkJXqmezwoPVteF9r+Dc2vCeFEC5oqvX5RebaaV7G2rmHv3+SLFB3Te3xhvrTY
2vI3XvxuofX8uPXZssj6IrDfylIapCBaHmTKN13cXf8q9W3Qg3J90Krf9HP3/6tEykEPyo838Uur
XpTr71KOxNxBD8r9Qat/08/d/6+SvAc9KI8HrfFNP3f/vyodEPSg/Jg9X1rjojyelH+jFEXQg/Jj
/nxpXTujvn9L+UtdkyAnwuMxiZ4td3N3/4taOUEOwmld/b60tiDsq18UXYJcEH4sq19a13ZuPLZz
v1nAC3pBuTxolS/9BOX8PeVnOTjIBeH6IFW/dBOEn/PvN2oJQi4IP7b1X1rX9Bv1e8Jf6lIGPSj3
B63+TT93/78qdQq94Hk8aI0v/QTPz+n3W5Vzgx6U9wet/Zt+7v5/UYc5yEH4sUf40tovwvvvEnZR
7yAnwkoafJF6tsa1YRjHk/D3VeGDHIQf8+1LawvCvvqJMF+pTSuSKaeL8mPCfWmli3J6UPYZovsU
+KCcL8qPCfellS/K+XvKnNcelMtF+THjvrTKRbk8KXOGuChrsTPlelF+TLkvrXpRrt9S9qHwQfma
gPtjx/uldU3A/TkBfTrpPrttWkdNuV+Ux4PW+NJPUO7fU+bs9qB8TUCZYm9a+5d+gvJzAvrc8y3l
awbux4PW8aWfoLx/S9lnt02LvylfU1AWiYvWs7VfU3B/TkEfqbrPbivl45qDsmjclNOXfkz52L6l
zNZom5ybborzy/HQGX1ppTi/+Cro+qzVfUJaCV8qo6M8SJVvurm7/03C86tiyuWiXB+06jf93P1f
lDnEdR+9HpTrRbk9aLVv+rn7/0rZB6QH5XZRfky5L612UW4Pyj7EdR9mNn0JTfk6gB6PKfeldR1A
j/UA6tt4/DGvvrTG9fh4MsbXoh2v/4mx+SE1Y/tF+TGvvrT2i/J+U8b2QowlN76W49vE8pvd/kN3
v9701/+RWxgqx/v5+faH//TZ3v/yv97/JvJDNqMmj6fPt2jtVlTQGtIClC4L0sbIH623528Uslmv
dzQKPyhC15fnD2txbi7+x9t//ycGmEorVQPU5vejF3nE4sHOKPs9yu39Yy4E9/uV/zkx/uE//Mf/
87VNfv9//r/3P/z9X9O2Q/If6nib9/z5728Fq/JrR/X3//r+h7/OJPrvf/+//7ilP/39/337D39/
+/l++Yr+3gP/f3heu8qHk6zT0zRr/5h9/V9/fK2E9XXoLH/6SH/MdfuXrf3pI/9xK396/af+6b/8
/f/4jnPVC62vj5+ozdpxP35/qENRi8rpZQZKVvf538/uUn51l9Rz2ba2/XX2/mcx8i/6b8uJq5Ro
b3melOd1zvySt+2vWyslpbzpzqF/3XVd9NRfr15eHf7e0Kbv479xcEUHli+D+5e78xdb9WaLf+Nf
pszTnxeW/8x/g9Ptr+l4oSJQPsofPbqCsOaI+u+PRSrWf9tY8leYalZ3KS+gvAD4q/7WdPP6Gslz
FPr3kPnEYA7mn0Pzd4eVFUv2bxpWVvbXLwOTNF+z5rVOwctrEP/y2qOv0HnQaTe3f+XdTPVPJX5s
JS2SKf/EO5YV3PdvG0Ce1v3nANI2X4oXc+mBDBz0F4MvaS8vV8rXi/WYX2n3o4aUt+xF9s+/O4iZ
2Lj+/iB+7D6nhlX92sbFsJIyOzyH5dn/V81ZD+Cof6l/KbVo1rz+2/ofc/Nrs76XqWxzTfvT12mm
69cDLxnoX+pf7rH97f3X6//rAOj1P22s//8bOpJi6AplbmRzdHJlYW0KZW5kb2JqCgoxMDcgMCBv
YmoKNTE4NDcKZW5kb2JqCgoxMDggMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0K
L0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9E
ZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEwOSAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAw
LjkxCj4+CmVuZG9iagoKMTEwIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9C
Qm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VS
R0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAA
AAABCmVuZHN0cmVhbQplbmRvYmoKCjExMSAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+Pgpl
bmRvYmoKCjExMyAwIG9iago8PC9MZW5ndGggMTE0IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+Pgpz
dHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0ST4qk041X
N7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5bPxr6/p8v
vivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb955rdkUmmk
73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrrob+Vb8n9
Vc6u4pT4vPLsXx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9GY5ygnZ9/TtbU
1RJlavn4uQrsuUs2qholf/+7JJjHqkiSzbH+4fNvSXyWVQkNOdv5U9xGvn/cfFLohRyoLEpCm1SB
kqkY9YdI4IK04EUzdiQ/D1zdjRbqNaXX30/1gnFp59eppbhvDSOj0CYxslTd1AvSV8wvCHXJeZYF
zvEVcDVpJWaSHKu1TYhKCevrt7Xz7gMrQR/Ikfxq9IdesDRd78IO9S9Vs4DJUf0XNPVDi/YFdC6F
qbov0m6Kvu49QIrL8fOl0RxFLWVn458FQ36tahc4lmr21WuE/xoi5VgaVDPOtuSIHoBMNJ4UOiEH
6oqylh6pAvVSMYoPkUAEaUGKZuwYfh6IGv/vP+0QSyvfTjkSuvrKmroG6fz2YgAuS8NlCfJtJLr/
StwX8AuTZIAF1pJ0tbIAY9ohToa4RnIprUau7+/GXWDSqP9W9O6DYV7U0XJeHxZOmGXE/kJZvrXS
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
hRhfZNvavsQE0i9q5iXX7TdfW8amGh5fpsWfAQ22t79Bv2x6o5gMdF/mRH1AlfxyJbPx59/FIslZ
4N+FRZKn2Bcs/goHpVrknhmpvjhg1kjMrxe+WFivm/6yvl3Nw/JblMoqQh740z08Q1KDgudUM5p/
ifcboq/2L8Sg0n6/K4Yfu8/Y4RFwbUEvwZQW7/UtGF6Pv+lNMk7896h/rX/9UwzO68O1Cr7E5IWw
/QR3/Wu8pdfbec+967Wtf6Xvi/Lfyvbq8JLC39//DV+5/frKDb5y/x9J0JRICmVuZHN0cmVhbQpl
bmRvYmoKCjExNCAwIG9iago1MTkwOQplbmRvYmoKCjExNSAwIG9iago8PC9UeXBlL1hPYmplY3QK
L1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8L1MvVHJh
bnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTE2IDAgb2JqCjw8L0NB
IDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgoxMTcgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9T
dWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJl
bmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+
PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTE4IDAgb2JqCjw8L0NBIDAuNQog
ICAvY2EgMC41Cj4+CmVuZG9iagoKMTIwIDAgb2JqCjw8L0xlbmd0aCAxMjEgMCBSL0ZpbHRlci9G
bGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq8m//F+0x
j2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cvvdb//ff/
8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTzSOfr7+dX
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
tV+U95sythdiLLnxtRzfJpbf7Pbvuvv1pr/+j9zCUDnez8+3P/ynz/b+5395/6vID9mMmjyePt+i
tVtRQWtIC1C6LEgbI3+03p6/Uchmvd7RKPygCF1fnj+sxbm5+N9v//PfMMBUWqkaoDa/H73IIxYP
dkbZ71Fu7x9zIbjfr/xvE+Mf/un/+n/S62jyP/7P+x/+9q8pZ0j+XR1v854//e2tYFV+7aj+9l/f
//CXmUT//W///R+29Me//a+3f/rb28/3y1f09x74/8PzoytcBXOlp2nW/qG+8j+Wsv05bb/BogqD
1tdXTo/NInE/fn9MQ+GJSt7lnsrr6r//l3/I5Y8f+R9S/uPrPz3RSPO/uc7/lr/MH9r9z+UvOW3/
eLe3lv90U9CNOXND3nTDX/74//7t//7NQUx3xn/nMIrOIF+GAUvmH97TuP+Nf9n+cWvpT/dvsJ7/
5AHm7S/p2NprICGVKZJLHL87DClM/33DyF+xqFkSTrBlKef0F/2t6WbzNYjnAPTv7cKBcXwFastT
i/FE6BfoZEWG/buGlZXL9Tmw9Gfx8Sd6fXG2LWh5sP7b5h7Av3cjuAd29Z8egmmvl/E/MnTGtf0l
XsZU/1hi4H95DT1BcP5jW96N/fdHrzi/3x39j92nvbBNX5uhSx55mv6f8tj+ZMbm7DLLR/1z/XMM
7ZvZuE7CbZXDa6kJ6HnL65/vUf31/d+wfrZr/aysn/8fJhA54gplbmRzdHJlYW0KZW5kb2JqCgox
MjEgMCBvYmoKNTE3NzMKZW5kb2JqCgoxMjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBl
L0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5j
eS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4K
c3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEyMyAwIG9iago8PC9DQSAwLjkxCiAg
IC9jYSAwLjkxCj4+CmVuZG9iagoKMTI0IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9G
b3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9E
ZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFt
CnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEyNSAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAu
NQo+PgplbmRvYmoKCjEyNyAwIG9iago8PC9MZW5ndGggMTI4IDAgUi9GaWx0ZXIvRmxhdGVEZWNv
ZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/Qr0S
T4qk041XN7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94/f5b
Pxr6/p8vvivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1lb95
5rdkUmmk73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpYqWrr
ob+Vb8n9Vc6u4pT4vPLsXx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9GY5yg
nZ9/TtbU1RJlavn4uQrsuUs2qholf/+7JJjHqkiSzbH+4fNvSXyWVQkNOdv5U9xGvn/cfFLohRyo
LEpCm1SBkqkY9YdI4IK04EUzdiQ/D1zdjRbqNaXX30/1gnFp59eppbhvDSOj0CYxslTd1AvSV8wv
CHXJeZYFzvEVcDVpJWaSHKu1TYhKCevrt7Xz7gMrQR/Ikfxq9IdesDRd78IO9S9Vs4DJUf0XNPVD
i/YFdC6Fqbov0m6Kvu49QIrL8fOl0RxFLWVn458FQ36tahc4lmr21WuE/xoi5VgaVDPOtuSIHoBM
NJ4UOiEH6oqylh6pAvVSMYoPkUAEaUGKZuwYfh6IGv/vP+0QSyvfTjkSuvrKmroG6fz2YgAuS8Nl
CfJtJLr/StwX8AuTZIAF1pJ0tbIAY9ohToa4RnIprUau7+/GXWDSqP9W9O6DYV7U0XJeHxZOmGXE
/kJZvrXSHCc2mFdyaShFprbKpriem7ofVY2yRuaqfx6DCWh81TBVEhKf+fxmoylnG1dH5vvHCiCF
ZsiB0qIstEklqJmqASCEApkl7UKLJtwYfjY8twE+j/L6+6kB3i+t/DqVVP6q5TvfCf2FzleMhf0a
h1J9E/YLknRqxupM8oc67LeNC8XVn1fTV0fo9/TnBNi3SC5Njsj17abpLo5hqooWJClEEFzlEu8L
5BpNXdgvVdIUJzbsV7Kmpv6jLO1b9ojilqKr0U+CIL+SZuCVlmRT4x/0h7DMbswX4xt7I5/1femE
X6KsKAM9UjgKpsql+BAFNJASlBB/x+/zQPMa3O1q+q9TSyvfrOOQrla/TI0hKFCWDBrgWQNcq3VO
mjlPzYv5uy4yhx8AdnglX5j3e45zAph7JJfKzsh1Mhe7wBwVvbsyIMIXFXYMiPdFbBUuwb9QrqbQ
ICc2mFdy6WlGpqXAFgV+dSuQV1WDafqLQqfzfdHWOgHEX23lJTsNOdtSQ4DM7EvzSaEXcqCyKAtt
UglqpmIAQCBwQVLwogk7kp8Hrtcwb9/NW3/9/dQwr5dmfp1KY3W7s58oc63jlXl59YHGeKjabZya
yhc0q+9q2CzIkvuA1vHvNvPQAlD6Pf05QQ8YkUxnYWk4lqbnXVhmmGsF7z2qF1zJggnIhMBCOLsh
TjzQz1LdiExLpzmK67kyZ3TQ/2bVENeoWlLN3j3BF03Xw+v4F63WtnW8eR1fjSeFTsiBuqIsNEkl
qJiqUX2IBCZIC1Y0Y0fx88D0Guz1UsGvU0s7WUXml5aZVZfmY+0alxTaL2lbcWp6z2low9YYm9Pb
ds0KpayperUWdDegDTNdQCDX+P05mTcoSoOaSt5dlVD9Fxk6k/fYaTRmKE3h6080xokN6pVcOmqR
qaV5F7j0qplDlY3vFPwdOQuBLw6WbQGUDfZazYebcrYFSUANPDSeFFpZv0ddUQ6apAJUTLUoPwQC
FWQFLRqx4/h5oLoN9Tbn6++nhnq5dPPr1FLbt1WdCWmN+lSYkDV3ze/uswNCVR8ogkdNEmwjpvuF
59Sa7uF8T4ROrD5w/SVxICXPyZB1Yeocq5IvKFH1O6WT7sMeOw2NilPr/bnGBA1x4sKfZGURI9PS
6YgCey6cAjvof7ega5+uo56kmuoYoP/FKGsVnWug1xt7I8+/Ll3wO5TkEqw9ikatVIjCLcg/kEBG
EEL4HbvPI7XhfgL3/SHQ86WQX6eSzgOnZlztr74yfHXLHnLJpl3UsYb9PBn2XRu5ypQ8NCU36fYL
4SpmtV/dZgl7wc4O5asv1v+VXIo8I9c59wLLXdW7c0iTEMLqFlA4ZgQXwMkNcuIBfpL+cmRaiq1R
YNe57ePKRl6YFI3NdZ6XbLPXa6ZfK33TSs96XraVvnilZw+g07a0Qw4UF2WhUypB2VS9QAiRwAZp
wYxm7Gh+Hthe83y+VPDr1NJOV5HS2qqJoxTwzDYY48fSwjwZfk19ozIwu8bAalIHuqS2rjL6PQs6
AeA5kunE3KJc58m0QYGV6US7sM6RTUJ88dEYtYBf7ArT0xJTw5ImObEBPj1gUmRqbBkocGlXR0FV
trT+7R4alEVTq0Zr9WyvPpAXZDTnbPnnHvOyMFkJpNAOOVBclIVOqQRlUzUwhFDgg7zgRkN2RD8P
fO+Rn8pYxobnpwZ/epjqkkx1q9OcvaPSb69OOgmVRl/4KqucGvqTxbip2wjEPDQE1RO04nev+Csh
pV49gXl1qa5Gcun0ykVfigIrJwmN1K4FACEEXLJwb0Tv/MEWp6wt/MOQ4WRNlVNc1lAad3E9Z5/h
iwb+gkTT8qH9/KkTWPG8X7WKVzflbLc5ku8fK4AUmlm/R2VRDtqkgqVkKkX1IQ6YIClY0YQdxc8D
02vQHw9b3GHNLLPj0q/sJ6suba29udPxemm5Cmptr6s2d8zDo12zvIbvOlSslmbgTDvUyVC3SC61
9ch1nhwLXCAHBv29g56E+GJDATW2eKunS3QBmtwkJx5gJ2lqRqbGBpICl3Y5sq/Klt6/P9BWWzuf
05bTabDXEC4s8jqyH1en5vvHSiCFdsiB4qIsdEolKJuqgSGEAh/kBTcasiP6eeC7DfrR6+vvpwb9
sfeF15oIk2rKS53fNieZQws7zdkwdsge/pVa4Kgxax0YVfvydk5W7cpav3C+p0Mn6APX3xLbBfKk
A2t8lMd4r0KlRO1fxDgk1DjOL9vKYEmQBZW2OLF1ge7BMiLTUmmNAr/adgf4nqplE28a7ekSbKEW
0/5atWUUmljgb8Mk39UD/B298HtUFiUtTVIDCqZeVI88IIKgCyfkv9H7bEjeqH8nSZ3fH58L9Xnu
5jqlkuz+Z69o8Vv9wS6ayXkJVtH9mgOwt6TyA/qa7oun+8lorlr4GzvxnZfpwcsMNv/wMo2ZY+Va
au53ifA0quvdZcJBCgFWLgm/YB7MX1rsm+Y1WQhIbD2geey0yLQUm6LAnpPJmVXZwuK7Csi0JjOB
hFtmVaZ8Lbs5een/YlI3fqYGPyNzgFLohxyoLspCq9SCuqkbIEIqEEJgkKMlO6afB8Ix8c+5m/CU
WgpafENBcafq0nEbEqaxKpah4Y4tNbGuysiaNcQAXdkWSKu1wnknYnoQMYMOARHTwG/lWno97xIx
A6uuhUMOKb4YaT6whMIvI/sC1i3S1x1wKanGz1uSUBTVRfp9XM3IaxWSXVVAIxb2VOAuAi+5KWed
9xqv7x8rgBSaIQdKi7LQJ7WgaOoGgpAKbBAYzGjJjubnge02/Fs9X38/Nfzn3g9e7H5XTd/2y2R8
TGZjmJpWmXaHhv6FTFGDNPFn7/nZf5Ws5b8xve9cTQ+u5kokzEPkSYc4oShvRD3vfjDsPU97rjBV
I3Jr0Ee0A6M9Tmy9oHqw5MjUYKQosOfDG71Dw37925r4D4u1cMvuA8ssd4iSXThvPE0NnkZIKoVW
+D0Ki5LQ5aoBFVMnyg9pQAVBF1bIfyP42dC8Bvp4zO7DKlnHuoyqqmpZu7MMIdMKm6vViAFZmpOs
22ZnRvLszvgty9C2Wrmwazsl04KS8V4cSoYZQbmWNvtdolcSzeudDVzx6NQEbQm/iC21wLZjYKFN
TmwwFw+SFJka6wQFdgHxcWUjr13cEA11ahZKGo7nNbsvS6csfWrQF9IbagPd9B3N8FuUFqWgT8pH
0dQKBCEP2CAqmNGGHc3PA9ttoJ81vf5+aqD3x5TfrbV1pEto87tgmTfP3uExf+rcNab3XsxeUDgj
ecpn+RbHtNQgI8HO2rRgbSYGGVibHnnSke/SZtTybpzciyHDAJS9x4MuZw8gPoXWOLH1gSxrd40s
zQStilsa18yhqoYuZHx1IRvOEmrZWZjs1x5sipAVvVU3vqYGXyODm1JohBwoK0pCj9SAgqkV1Yc8
YIKoYLVasGP4eSB6Dfe2kzJKLbWcKnCtaN962Conb+Uys6mOe7NhWJGF+/T8e3gjz4G8HF7VBeNO
y7SgZVj+G7QM5z7l+upzL3FiL5J5vmGQLfBqSd3OEn5R05DMIJvdHiceMC9bN12gQ8BuxXXxnB9X
NfKaGLR9la0e0RZEzOo6qOnIT3POutEzNegZrf9KoR1yoLgoC51SC8qmbmAIqUAHgUGNlux4fh7o
3gP+u2Va/PvzUwO+7cyNUsuYuY50hzT6Q29A1929IYPDGvBYbdlxnmvi7+c18Wu9OEXSsgK3sfUE
94NGYumzxe+XqsddFrYijheaFVz7Fzaoe++/k+guuJp0JpnymNaV2PpBkilPN93I1MziqMCeWJOo
7IvFS8dXXY5CtGVpa+4F3ESqbsxZN+amBnOjdVop9EKOpbAoCU1SBype9aL6kAdMEBWsaMOO4ueB
6dYDvpuF199P9YC68zZKYc5e18OkzW9l3qEn8zY+VEniiaH1kNFbtgTh5ilfiC4FLJR31qYFa2Nj
LLwN9E5ei365yznvGr6QRM0CK11SCcj8CmO9zguDvZsSG/oruTTXItNSaYkCe/LlvbZar+ZrdA4J
tcwtnux9Q2a4EWe9bZR8F/L+vnTBr1FSlIP+Vumo1TVK4SEJSCAkCCH9jt3ngeQ11ZeffeterJSi
IqWsobrWSGX/uKRIqHgN78LQm5ZboExv3g2W1stDB7+yMdROAPGVTOeV56tNze4uDy5INb01JizD
FxWu7Hm3ncymsqbrSDD4nRIPmJMUVSPTV4NR3FKtzoONhePb3TX8ZAeSYLMFNcs9idMNWXDmDWZW
dZlSK9xM/4kcqCxKQpvUgZpVr9Qf8oDLEhS0kH/H8fNA9R7gNaV1J/T5qQFedtJGqaWxuP031ixT
rWEoGywiRTvPCUgHq9ax8Bqe4D1haxk9MMe1nbBpQdhg3msQNl4WVq6l6HGXmLDiqap361gSWKuT
zusW8IumZp6FudgPmuPE3QGUXArMkaXZiqfievLdPVU1stYL7kw37eyKhmlQtEzbmlrVoLNulE0N
yqZeqealAYbjuEpCo9SBqqkaEEIosEFeMKMhO5qfB7bXkM87K6PU0k/3LUAMOAfb5MNwJzStAb8Q
4DYbJEoPQpZNQO5az7HAt52VacHKnJFI3g8qTzpgeVxeYqXgLNG491w4SiRufBwBdX7ZRqNplsY4
sYE9ZaPDgtuhY+kVKq4nX9VTVV+NvyTAEIueTJdWseTJ+zTNpnMBvbEyNVgZabTCyugIxmFRSouS
ljapASWvalF9iAMmzQa57P6aXjuKnwem24Bvh6w0j08N+LQTNkpxO2HVJmU2ibGgPtnTVe6nFbEY
k/tQbD4ni2/v3uF34SkFNHBOew/AWiMilmTysS93qbneZUEZUc27sQ0vcDaHboFZuC+cuvbJej2n
G6OvO/5LdfHjZquNCurabH1cydDdHFU+RMkg1sLM072m76J1XVeh6kbT1KBphFiFpun+PcqKktAj
daBgqkb1IRSYNFtpEp34tWP4eSB6DfN9TmdGP3UPUJr6Suot9MmWrZ5otwjehN6/UpiH7UG9ss/L
TdRr5ZC2czEtuBhfmoCLwcajXOmAbnWJyZegNXk0dlkFVubQec4CfnHTtU+me5ugMCY/7BlOVgy9
ZGo6t6u4r1YN9DoyHy9V/4XAYq2zdMzmp+5E0JAFZNogToa4OtVs1wmFRTnocpW/FLwqRO2IARpN
Z/JkkW/cPtv3//x3DerzkEXm8alBfTxsdIcU1HTz79unqyrWzWWO7BXCo8hqMw2CrNey/AqfZMQ1
pKtXcaG6sy8t2BcM/Q32BWOdciUOd1FicveSJagxUiXGFyKY4PCNEZk1lpg2NLX4uqGNWYPdnjI0
H9tUWE++s6eKhi6vJjCBI2ia2IOBjYsRxc05y8a9lOBetD/mvqG0Qw4UF2WhU2pB2VQODCEW6DQf
0g533Ph+D+87dU/vyyj3+vu5esI4dxudUuvyYVZtS6Fa4JNVLVqmwoQUXe2fKQBKatSahMUR0Ru0
yItDYMEubadlWtAy3NZp0DJYc5QrYdmLEpPXEnWRxqRccOQ4JFQOHxmRWt7Jz2iSvu69QQps8fPm
3b2K6sn391TNF45XYgLOl1gcrOkJVWx5c1POstEyZV6LfHIKzZADpUVZ6JNaUPSqGgBCJJBBWhCj
GTuWnweyMc2PudvqlFqaKboHKn0tM9FhTSaDraEvcnN6m8XmBI33IF4xyuiK0LetwJl2qGM1H5FM
JmuVJ2EViPJSiYrejSFa8No47IEV9IsE8yYOgxPrwsOK4WTlNhmZmvfyKrAn39hTZUPnp1QERLZo
65DVDDf0+HRzzrJxMCU4mOrvaIbfo7QoCX1SB4qmYiAIkcAGacGMZuxofh7YbsO+T1Hvj08N+7lb
6pTizvGpvTYbPC5LZ3vNVHiRogv/06crbT/Nx/dgYzm9ywul+WxQd5KmBklz3snEBUtyJS7vRIkY
V6js3diUF9w7uMKbw3NG1FZs6DA+YYl72DacrLB7ZGqJGzsqsCdf51NlX1BeCV8hLVcSbnLF5h9y
f9F1c76Y3z1B/UC28LJsddpUfX+JwlyCdUnZKHlViPItyD9QQUbQQvgdx88jdQ35sRvklFo6ibuf
uuk0z9NaLAZ6qSXLhjFsSdEuk8uSuQfhyrlNVwMap+9Sdw6mBgfDXY4KB8MtrRy6bHeJyQYinSYa
9yYlxsLlEvCdRG0N7k7KDEKTnNhgLh4tKTItFXaK6+JdP65o6AZWwqaSLNiCiBn+9E2I4sacYogC
6O61XiszNw25n4UdU2qLstDoqgNFUzEQhEi+lytZwYxG7Gh+HtjeQ74fQ5eqH58a8v1ns94ptdQ2
dClU6qwSQ7sv7/vwO8kyWQ4bTnUBY3Ym6+Bl2dxnnWAO7svXnaoxM51lRnMy+WqmcqXjUSL3Jahs
AZRCjPe1JfC+r8mazvUgm6OQ+mHbcPKrxsjSvBaouJ7sR6OqvpC8Ep6/sEhdq3GwstrjH1x50HXF
slE1JagaUS4Fqqaa8u5WXJSFTqkFZa+qASFEAp3mKX/lXo3Y0fw8sL0Gft8NdUotzZy6/TlfGjDT
7gz2oqlskrK8woc9Vtbi1KeHabpm+ARwSS3VXcixgW2oM4mlsha/T4cnETvE1ruat9ZFC/BOWIHD
Vz2J3opxnj2PnZHYgM4aLxwS2vRASlHg0it0jLaIabUswT2c6ocarDVIWLbhQ+qVk1PZGJkSjIyM
IAVGJqjVabVFWWiUWlA1lQNCiAU6zcO9q8/iydq37ryntqFfZavdPjTu227CUyqNroqkz680p7dy
Pt1j1pRZfQxIU11M6MQyyP3w/M/aLo/WxqRd6k7LmKbO2PpJJvtiJC48eOtgD1nYYK5otBRCCLly
CfhFdTBhCX1djRw9vm4dIWmwQC81+Fk8tFRcT76519aI/65FUJDajEisBVzM/lOQJjflLBs5U4Kc
Kddf0Aw5UFqUhT6pBUWvqgEgBAIZZAUvGrEj+XngunWB2XWt/vGpXnBHiPh1avkTcjv4q0wJ6egG
9q6psJ3aXI1BFzlWg9iot6BmWfjltrCUoEG/Mzdmr7OmOSez3LCUJ45uLo8Ldquid3PMCjzlWVbC
pz2J8RpcrNChieY48egFjKEWmRpmJArsyVf5UIP2WxJhzFu4tTlf/XNJfR5c6NX15LKxNyXYG23U
C+yNdgTKgdqiJPRJHSiaqoEghAIb5AUzGrKj+Xlge83++5DXgJdhSt4SYowclsB+NZW7TFkW3eHQ
EoelroCTDPbCUBf/V0u1mO80jUnqpZ8eyWyvS+VKXP2KEglSQWXvir+ExHhD2oZfjVivgWV/Hj/R
JCc2uA+PlxqZlvoKxfXkW3soQi4LEmDoehWirW3ZCdha6JsX+rWcbyRNCZJGFvYCSaMjuXKguCgL
nVILyqZyYAixwAd5F2o048bys+F6D/mRm0w6j08N+fKY+IuVVlWPlDkkwJrSm3uBBnxnwL/sk7ia
ot/Ma9rPoLmoWk3sO3Njsjqf9qvXltwO1sqTDoyGLk80tqtawNQQ4Z0OLnhi0hHjNfjDOD1/1Ujc
PUDJatBb8wBKUVxPvtKnqob2eRKBC9AIN1m5/iH3eeCkLCf3svE3Jfib4u/oht+jtihp6dNXrCuH
yuphmC6RwAVpwau6L5SfvQ/cqWu458fsnq2drmvA0trqa7hCVx/nsXxpTR2Dm6gn/tXY3Fswsxq6
Mj6zHS8bZ+0EcF/J7JgKbK4OWAGX57vuuNdpa2Qh3ukgzoW34olbyTC343SD9HUHWzpK8fOWbCXS
Bfdkf5rK5U1Oikv5cotGsMny9A+ZF3TZjVkxbO5VPqiafKWWZvg9KouS0CZ1oGaqBoAQCmSQF8Sq
gc+PuT3/ndvXEPcW7/GpIb8bdbJUNnwReGhfi23Gnttf4Zbytdp5JT05pHD6Epm0eoDvRTWt8I5v
svM4JqyX2s5IagUnT+KyTZRnlyeMf3VibODM5hvY4VSD7ZXVYEyRFB7/88HiKLmiPTlLw22I4r4K
dx8oAmLNgsanWLS1AjPlQ6lWN2XhnLYekNwDhlNohhwoLUpCn9Sx1EzFqB+BfD1bki6slvg3fp/t
+83nzKOInH18Cve08zlKJY2cVYtU2FT5Uq49auysnnUQ8bHqnGqGJvtwpM1M3Ix+Lek7n2MGO58E
t1AyO2hSalJvv0tLk0rearsrf4fDTTjSiA5jE7Li2nQ3xYkNdTlDcpmDTC3ZKijXpeSLfHR/2c7S
9K1iBFtoMc3jd8BY0yjMG5eTg8uRPSbD5WTzM8Mqi7LQJbWgZKpG/SEUuCAveNGQHcnPA9drqj8e
hI28RMbQJWBpba3pXISxF40d0zWtDvMgupTQJ79rQdcSmEzk8WorEVF2I47pmtPumbKAH4kdocJ0
pOMuL3G3klsblUGcOVquzX94tCdxYIM9voBO4/q6gd1lysMTo+Ene1BUT76zR1/X/KrKh1bgJdSs
xZM83gfZjTjzRtTkIGoEbYao4cpqtrKiHPQ4vMIr/ICqRfUhEJgsOcEJ8XcEPw887wn+W48I28fn
GujyKL7QVyopJsG6FbwOFBIhSb3J6FcUv4Y56j8JPcSdjRbUrbAvXuYL+KYd+2Tsr79lB0FULl+0
ifLSGRW9K3O2RHifOO2H9wx3Ux3aKLstTjzAz9Jejyzt0HZRpfXky3yqaOjcnE7dJQ2xpmIwgf8Q
nZbdlBXg5uJucnA3+frL0gu/R2FRErqkDpRMxag/RAIVhAUtWrHj+HmgGsNcQVV2oFEO17+XyrSa
w4fai6ZgKc9isOIWY0fyBUywsvjQ6wJBw+5Wyk7PmLrOJzcllSQMlXMlX7dyiUQ088X7yj5CQrwd
NCN8aLC4YdERL0OLnNjgbrLg0XMb4ddkQVR5PfninqoaOiMlfMO1wZNws+ZrZj9FpjQ3aIW5ueA2
2IqM9EIz/HapLMpAl5SOkqkU9Yc44IKg4EULdiQ/D1y34T6zLtI/PjXc76ARv04tnVVd/5Yu17pO
3DB70BSs5FnsTvincCLlDk8LwhZ4E5O9XNp27sbhJrN4KSezf5jWVJ/uspLjHGgXUdlLSIC3YyaF
B00jUgtLu5ytB/yyElsPqDLdsZrjvn6cV3lL5RzjtdRq4UwEglCsxJS08jLhZxNc000h4E30gH6t
7Mkp9DJ98s1exZn04w5rsZqpGgBCKJBBXBCjHTuWnwey15AfPxtBQ5Ax7XG48y3z8bSPjAy1BTu5
XLrH7Xm6pC6Akw20jnBJfKyG+07NlKBmmMyVzJy8yZM4S0d5+YiKlv5TCPB2gNwcQGckfuM1QUuc
eACdpKAcmda9Q8rqhx1oVM3QaMqwzzrgSixWX4AWf+WGEM4mYA5SJvs7Olm/RllRClqkfNRLtag9
BPId/ON08Bvk3/H7PNC8B/qZk/wlHp8a6HegiF+n0sChWwN59TImXfvNFKbRLL4qok1U7epkXQuK
ln25Fp3G+bqUsWFv5Ilz9Mre4+v3CdN5lJU5WUP1VW7Dqvr3ecv1TtxN1Hads5Z3drsJw8mqHZwy
NK7qn0NK1mTBDCc/ncztE0UIklALr2zUobGKm3HmjZ/Jwc+kK4VGyLFUFSWhQ+pAuVSN2kMoX8qX
sKC02rCj93lguSHfDx3VH59C/o4P8etUGvh2c+FIHVW0qZ2yZ0GlUvmIYGJF8xV381rQsthktP1o
3qyVnaApQdDkSJhyJY99YqK8bC9nLSq1hgjvkzjG4TmDtYVlyKYobow9LBtOVhyxyNS406fy+uGb
fd+KBsy7CKupm/UJnM5rkp8ynTc1ZcW0uXqA8R/6jkb4JcqKMtAjpaNgKkX1IQyYICZYIf+O4ueB
6TW530Egfp1Kgyvg68bBqnWe2N01Hc/CTliu+2NY71lSFyBJhrgDV1I7HcpmW8eDffEaD/uC5V65
UrKVlRKz/Vu1fEd8Ws0iXOcNP/UkRmtw1Vu2JoLaPACWekb8uGH6Vzn98FU9ovDK61xVjxkiTeKe
/0PaecJxs1JvvEsO3oXVHd5FYQ18ztFU77KWJlcNqJdqUXwIBCKICk60YUfw88BzG+Tf/73+fmqQ
77u4tYfDm5tr4xLBXonQMQVLp2KBD8J7J0VV7pPLeS0YWDs3TC3tnMTLTseUoGO8z4eOKXcuOz1G
idnujloGInCtupjDKIbTTMVrnQWeYF0E4xvpOdEnD5IemRp8n8rrh+/xEab3UFh3joTieFIsxNn9
oNhkToPOvBEyOQgZHfEzhMxx5UB1URZapRbUTeUAEWKBEAIv3GjHjeZnQ/Ya6HfYh1+nsE+uy98r
wMrqy9Nxfw12QstJYMsMmyXvmstr0KzcnFGs/YadtJSddynBu7B1K/Au3MVRroQ/S5SYHZcuS/s1
RHhzqyvjMCP+auLTY1sTBtuHEcPJSvgWMjUFAKe0fgyf0DXJcp2CXSvLjAZ4CZJVntK6Ipsdl3zj
XHJwLpzeYV2kVOVAbVEW+qQWFE3lABBigUxzWHTF6VBLdiw/D2SvId+Pcip4/uNTQ/6OC/HrVBL5
fypcnG5pT4IQJfvNFHsNKzBARBLSSwq+bil+6NsXfJ/uQM9Y48ruO+PoJNnWWyWXXmfkStx1jhKz
Y1VpBqlcnZEYX/wu+QRsRvKFuNujr3tPkPZK/HyptaqcfthzRhUM3btVxQufbJEWSjHpTxlNu5tx
5o2OyUHHYMXTCZGbNXQ4KSzKQpfUgpKpHPWHWOCCuOBFO3YkPw9cryF/h3/4dWqppqtIKayrLqnY
p3QDnQS0/qD7wYMAdNVUqy/GH92ru+Pb3MxLCeaFfXuBeamRJxGdIMrLjkyjbWGFIZUQb3j98FRP
YrKYgBJh7ce8EzfYStbD0ZebR1GUt7a4H1c0dIkuY9qfno0YlMztGE9PN+XMG/OSg3nBMi/mBdc4
5UBpURL6pI6lZipG/QgEKo51LrSqT+t7GI89tQ33Mevr76eG+x0b4teppbOhG//S5VdErtHZD3sW
YkIlBdjt7JO0YHV2VbmagbWzjG4qNq7nl7KzMCVYmHwns91vlCsRkCZKzDWqeldOdRLiTf7wWE/i
sthxrEAm3S1yYusFk8ESWRxDXaX1w/f3KuHRFJW4LnwsFANSPUBrdfHqTuSby1KTgoMRS6IUerHB
lS20y0Kbqw6UTLWoPwQ6rxjQ5wu86hHf9j7wP6x1Pa3bZn8/1QfuuBC/TvH6yqngYbqJNKevrUHO
FCKLyE93dMaRfAr6IP5stcOsvSDleLaUIJzvCdEJ+sAZyRyu2LruhQdrlJgvL+chcHKI8WavGC7t
SbwWbj4rysnpNjmx9YKhkUR0xAqJ1N2rstSe3Q/W2XqdASTCkAUQ4RZap/tCk321ukFn2oiaFETN
caXQDzm6J3ozsdIqtaBuKgeIEAuEHBVZyFU/hrTH+thT1+R/h4P4dWrdSlgFSm1VNemmEoxMYaqF
hCYu/EJh9WHM5dXUqz3dD4xN3KgoOydTgpMpkeDlJ+dJvlvr8rIdILl+z3QDFY+JNxzYeZRkQg8r
0m+SOUdfH3BnKWlEFsdZVmn98D09VTQUuEYCDC6eS7QFkSd/0ZaJWcVPQgXYwcnwxIQ4GdwmqQiz
qEtCn9SBoqkaCEIosHFEZCFWbdHZQ3vsqW3wtz5ffz81+I/HAnCgt7XElI4+1ybAcT9N2DDdciWF
p0CSwr50TOS5mpl1WJMD4xNXqfJO2eSgbDjXZyibFnkS4YqjvOzb8oTLIRAS13LOdEnnd0uwKCXF
+6U9Tmw9oXu4XI+dNG0+Vmn98AU+VTMU0UDVD/g+CTZLsLNN9pbTDfmiffcC9wHFx3mhEX6LsqIM
9EjpKJhKUX2IAyaICVbIv6P4eWAaw73dUSF+nUqyda27/lLXqbpQZDHM2mjplMmjTkl+YJ0jcxZz
BMxa57PXeblU7JxMDk6GAzyvuUTAFdHeqUXHyQB9VfYuAETQQe7ipnCoEdM1uRwtX+tk+50SG9TN
g6VFJofbVHn9sEeNqhpa0CUCdyIQbqmDOV7Qn6HiooA293rfr/W+OoV+yIHqoiy0Si2om8oBIsQC
IYfHFHK0ZMf080B4G/YnS/39sca8AqzdnWFacVVVfRsnrU6HBvKmD/OawqwtsevLTuh98IpMrdfs
L1iTF3wBvvM2OXgbruRmeBtiIipX4m2oKDH7viyPmGGsITAdfngpPGpEd002AXLDpk1OPDpDkgpL
ZHLUTZXXD9/jU1VDxzmJ8IXJos0SJG2z/bO6OWfa2JsU7I1oNKXQDjlQXJSFTlcdqJqKASFEAh1H
yRRqtGLH8/NA9+4IuTSd8x+f7gvp0RfQW5dfiPS5dgJY1OxvU7CnJ7GYnTtOepun+wp2LTH/C1Op
QPP72HqB+wDRc152lV+/Tr5b7VIy/pt+w4jrVSnwypdUfsli2lO2eoLrkdjwrx5COTI5Sp/K64dv
8amqwcN1urOvwNoINzm5/EPqeUVh4R2ne/YPHofo8NoDz+nfo6woCT1SBwqmalQfQoGJ4+kJK9qx
o/h5YHrN/+Mx/w+rZ9jzA+Zw2rHUdA2XluTbN7qPgDJJctslVzvOOiT1AQ26HCTyTtbkIGuw6WXo
GkJcK4/n9ijP1+jjAdIQ4T19lA+65mCq0sGuiJc478QGd5EtfEYWh+FTaf3w5b2yRpye+uDeYdFm
T4Fmy3HN+2uJnG7IF84bZkDWN7SxfoeanN8apGRUS4Uo3YL8sx8OofKE0pJ8R+/zSG0DfNT2+vup
Ad53BkepNHD5LWhwNcveRj/TyGuW1Tmn20V9be9wvqgmae0/LV+zyhMEJe8cTg4Op9zJbB9p5XI0
+ijRHjOTxYAex+lvzks6PWbQXjElFbdGX3fUv5pzwAeIWh0qFiyHb/CpgqE7U/YVKu6Mp1TAFK/h
Pu8zxJk2DifB4dB4UmiFHCgsylqapA4UTNWoPoSy/w0RtIQVrdhR/DwwvQZ430F+pXnIu2PNMGqB
L5tD1GQmxm93Hd2eibrhi2dCruZhWXOzri9V+7/lnabJQdM44Cw0DYUQGTZRhEvMLN/TcfKwIXx/
zBsm4b3OUwXTIcvkWD+P+LpBnH8AeUQWx2NSaf3wXT1VMw5izfvWQbdgSxHNMFcbWmgML8cEzFgr
UQEpdGPTDK5JLguNUguKpnIgCLHAxhGUWnc7bhQ/G6L3IC+pLBb++alB3nb2Rqk0cfJN6HL1SfzS
Gj3gpXivTT3AoBQ1JYEXW3tFTwJ9h7y4TTc5mJsaiYzlZOXwGT1KyjO6Gc9M1aj+jUt2aoF8fsXO
U572JnF6epru0g8665HJYXtUWj/8+owqGlybnKBiwWYOklaT/IQWJRzKvX4ndW8aT2pphF+jqigH
La7yl2qpEoWHMKejfxN4srnv9teO3eeB5DW0607JKJUm/pwJdX1lGr6PwBYtc9RZoUC6g4zohi8+
5rmah7U7vJz3ang774RMDkKGZwszhAyTtnIlXv2JEtWtpkMqMLwBJV+yKSB9Q2oFsTjdGic2kA9Z
5hwG0xEWXVo/7COjasbB8y0iIquFmnlec/ha4pqbcaaNkEmszjSeFFpZv0ddUQ6apAYUTLWoPgQ6
Hdq7vkCq+o3p+rMP7Tu1De6Wz9ffTw3uOzrEr1P4Cy5vjnWNVyLoNMPJPTsubBP6+eUoAp1wA7mY
mrV3/KnoUlxwLnlnaXKwNIzaDEvD5k+5luW13CVmblVM+1f+lBDjPVllwkGm4GP0chATWuPEA/8s
/ZXI4mgdKu2rcONfBMTKqR2WTJkSbOoJqNUDtBObEKEagGnjaXwDEhWQQjfTc6JcIl0WGqWWpWiq
BgBEAhVH1RBa1Q9Q71E+9tTWB86cXn8/3Qfyow+gteanrCXoNM1hT5nss9JymWSwTZ6NbyCW3Qe0
xDcv8cJ552hycDQOlQFHM1jim1U97hLLERW9I2xpXohdcgnKjMSObpJiZTofBjolK3EXyOSgDZPn
2jWbqJKuMCTfqsfgQCEzWw5KVjb0yYOOxLTYGBpfkauOjwFDA+9SrK4oCT1SB+qlYhQfIoGIgysI
qepnqMvWvffUNdHfESF+nUqT54xPVNZUlwIJQcRkjt9yr17iyVSie704TeQSlCwLu4I61Yhls3vJ
5PCS8QMSeMmwiJ84pJx3eYURO30F8+cOUYwTXrinJ1FbE9IGS9O0M8xutHDyq6jIYpd8lcaj7R9X
1OWDKQGGXixcgs0chKxW98mzjdpdHRsFc0DBVAfGgYLROq4cKC3KQp/UgaKpGghCKLCx+7wwW63Y
sfw8kL0He/1u315/PzXY74AQv04trU0/a60g6dOeZvaXyfgUp3VUNxuqq7/DznNByXIXjkddzvPl
4CZbH4jlfkQyH+PO43dCo7wCycrdvsJZfF2wn4z88JbRGk2Q/ISFaR534tEHlkXDQY+hZItL64cv
8Kmafk4N+LX299NizRyU7PDBOrkpxDWJPoABcjWf72iF36OwKAldrhpQMNWi+hAITORLLaSqH6Pe
g3rsqWuw3/Eefp36KlLuOyvU2rcWNsb2krFNPBH1AkONRlIfFUCyAdaA1T0QPymXdsolBeVS76Sj
TZMrJaJquUTHKWTQFqyrPEXhA1p4yYjK0jyPdWmm+LoBjEXDEdnCYW+4rH74lp6q6fKZIFojHiQS
bObgWmVJn8lruoC9IRbAYkKP8UIrM0bEVQZ6pHQUTKWoPsQBEfvPCqfqR6j3iB17ahvi45A15vGp
IX6Hf/h1ipAfZybqltbzbg1X9wACQ38lhvLQ2ajzoE8uQb+yyeMxF0enSzsbk4KN4RSeYGPYyPE8
TD7u8hy1lGNYgVVb99+nw5zFkZ2nV1nTRZWGxWEP+ORk5ZhIpobPhsrrhz1kVFFXFGKit8LgfwWb
OchX7fAm9/kUou7YeJije1WfVwrNkAOlRVnokzpQM1UDQAgFMogLYtWvEe+hPPZUDPV6R3r4dYo5
c7nuSG1fWRz+S6bXzFwpp6wlnMNFNMmt+TcYVkJc8Jitw1KmnW1JwbYQ5jLBtkDT8nSxrsZeJZr0
4yZPcfwJJWa2dIpdfL68pZetyUEr+gNoqafFz+2yN3m3eRjkJE1/hzkDUSdKCTT19gswNx+xaMR5
bBzLgYWRppNCJz6USV1RFpqklulXhDXYpPoQC0zsXiesaMeO4ueB6T3c/TL483MN93ru+EtjVT49
0uOUCDK5+vgegbsX+i8FCliNkckzl6BdiYnAM7ZERCtpbMgbd4KeCPUZv19KHndZXrqHb24I2HUv
yrcpwkdG8zJbiKSnFpN/0Npzmm8eHCUyNfww9XMe8P24oq5QMhJgmciHRZs5X9P8FJrJjTmPjWEx
M0bzSaEXcqCyKGvpkjpQMFWj+hAKTBB3IUUrbvw+G5Yb7noqcP8Q6He0h1+n0sSXk2fr1U8dnx/O
JV9hnVdH5VSkm8ud57hzCZqV2848aOvQw2lnXVKwLgQzTrAuZ+Sxb0SUV1jLuSStI5xEeHufFi4y
RRQrF795yWI6QNUe2MnJiqWfTPbxUHk86aoOIAy+QstZrOvqpwSbOSjWU9vt6obwcECAX2y70fVk
7htJL+ToNsEGwcrOCaOdjGGqGgBCJJCxT4YQoxU7lp8HstccPx5z/LBy5L+D0paZhn2xXWXyFcj3
FNga6QrAx+tNuQSPSlwTXRSuuKaWtBMtKYgWHpRLEC1s1QkPmBOzPCUW4maZusdqA1vCje3wTE+F
dzwZ5NUt0tcd7KWk+LHdOVROO30ZT1V0vSCrqodeokGomcPlVXt4B8tohjRvYGeDnZ1CL+RAZVEW
2qQW1EzlABBinY73rrlYiK127Eh+Hrhu4/17WHj9/dSQv6M//DpFPL9T9nGervT7unaasT/DQWzA
M4BZ7BEO0qVc830Gzyw1aD3f2ZgUbAzR7BNsDHdylStlIhW5xFKjy6lcbSmxtpo4D6eZwgPOrPfF
09iMxNYTigaMX7s+PJKSy+NJz4+r6prMJcIyqZ0WbuagW0XyOZoGL7xujMwRjIwckrh5JP2QA9VF
WWiVWqYfktYEPIo7Kdu74u6bXiBX/QDxHtFjT11Dvz/mecXnmdk+XYRTGgbZgGtXJcLf7/kp9NKS
WnN88KuEFdb1oXoK4Z1+SUG/cHMiQcBweFMeu7lGecVPN0PR4ALBWVv3JHGc0UidnMAVYDhp36ev
G9BZlm12Ahl+9XBJPOj4cRVd5+9SbYsuFmpB4/n92mfTkPPYCJgjCJj4jk68L5e6oiQ0SR2omKpR
fQhlPztuYwup6meH+2N+73/n9+8gX5T66++nBn3b+Rml0sTfTwSsjM8Dl2Mf5lk1xTqOhtV20AE0
7wf/SqAb3Sio5wjU894FYpG/klnBbJQnZQJtuLwC/K93hhiHqMUZxlvypLFpn4+miCQz34mtByQP
kB6ZGuGQVByvPH5cUxftUprt0Eg18c75t8SdjgkqJI6NnTmCnRlXqpnuUvhj6StKQpHUgYapGNWH
SGCCsGBV/exw27r4ntp6wPd/r7+f6gF3GIhfp9LE0y+hz7VOJRQNRaMpQNR0uyKLrBYdzNDBvxJC
foK/hvlO0KQgaLhNo2T2C2ITTW+l2U/LLBC0CpM1G4HwosnYQH4cxiS7LU48+kCW9lpk8oW/QQSa
4R5Q9GR7f+HCpOD4SDaTSdh0eCc23Jbz2PiZI/gZUeQH/IzsDcqBzqIs1EktS8tUjfIRCUx8LU9Y
Vb9HvAfz2FPXRF93EkapNMPTTypbPVMI2lcms4XX9d3RuEOrICFLaA3N45rrBZoiBhGSoqSdh0nB
w3AtSslMrBlyOXJJlOjbFTwq4Dt0hCBnvQ9nGdEY9ueTM23yFbp2PMmYQ5ZtLDx+7k5bVhXXTt/C
U01d16C5eKEQ+ci2IMqGe42H6tZMEW80lO8f64AUylm/R2tRDgqlBjRNxUAQIoGN7+AJs+r3aOvW
m/fUPeDH0XSOf3xqwJedqVEK0uuU1zHPZYgnettjxrFmFGJzCV4AJ6tNa5XOwcpq065QQidvTKed
pklB0/BeMM95OLDRbNZ1u8srDjbK5tEBK2U5YCMQ7jKZfYqElKetSTwSdz9Qsh4Oua5tEjeDVFw7
fT1PNXX5xEkCTGzINpM9Zgl5NCDCdBg7b66G7x9rgdRSDr9Ha1ESCqUONE3VQBBCgY1v8Qgz2rGj
+Xlgew38/Jjfs9Uz5NG17hZoo3eiz2S4K5peA99xABW4ufMyRQ4Clila7EglkHVJOyeTgpPp999y
8mM3Wmky+0SX6HfgR4SdHiHGe1ziOXTp9B1YhVPwVcp6PigZJevhgDnMTmrn6H4Q7ONaeL69EN5a
8Xc48qR+zfFshJvbMs/bUMn3jzVACtWQA61FWSiUWtC0347vnDPsLpNO987+ArPqJ4jzzz7P36lt
4HOJcvvQqM87ZaNUmuHyJ3XWJcNXOWzzEl5SskwMP+84ihqjERrULLu0WdV83Z7fGZsjGBsVUBxT
hJ3iXLt8hrZLK55aCEKdo/o3zwuFj0zm5rok0sNdtMOJDX6dPZgvyORLAiqunc3ne9731HrFSMTG
hAuemdnEGskrfgTzHjf8Bj/rOyrht2grSkGNlI9+qXapPcQBDRP6Qqn6adq89e09dY3zOwjEr1Np
FvnqSV3fOruUZhcZrr/wVO5oXnHly9d5kCQH70poK8XgWs1USISdlDmClNGkTDITDpxcS5n9LrF4
L0EMFK548ZQwvH94yIjpmvZ2wyhV4usGM8YPWAdlETk8iDxk7xjV0hWHqLDw6l0M/fPUjXxA1lbX
LZnnzcnw/eP2k0Ix6/doLMpBmdSAlqkY9YdI4CIityZ31PnaUfw8MN3G96yi3B+fGuLHw4x3oLEf
OXUtTS4bjlTPAAeFQ1FAmrfXCuHcuRSTxzXL613CzLL+UmiLe1E/gqXByYFAE341kjdD8IKM8hxF
a0Tg6RRCvFnnR2C/hpPgdiv0dcddOuvxY/OFKqSddoRR+V2haQgwxZ0delYyGyth13Jb3AqiRgfy
QdPEv6MQfo+uoiTUSB3ol6pRewgFGmb3hFL1Y7THz268u1M39jMXzeqPT7DfkZfGeKR+aVErvGZn
e8EkR/vPjH3gyGrNGpI56Fgw4lGPC+4NeePuROapD36foHyjLMfNCyMBY14TAIt9OMKwyXJwA6xR
5U5s6GP/cEg07YegkVRcO31bTzV1xSohtJzeIUK2meo1uZ9af5tbM8/bNDnPoGnuFIohBzqLspYy
qQMdUzXKD6FAxbRPPdyKG8HPhmZM7uWOAfHrVJp4bTFVyfLV0aTYGIf4Fxk0GuNEMTmWwJreg4b1
UNXlgBjEOxtzBBtz/SU7RhlvgGSubbg8+7YOx5cOEd4QgOEAkwnPzCYdoxMu2g9LhpOV69FkMoeg
4njzRTD74WZcXpvoKsk1k7lYopd1Lm6toXyf2qrh5V9RCL9EV1EGaqR09OvXojvHBz8lk7rvr2Q/
Qlq3B0kviLfUNrx71t34x+ca3uWO/vDrVJr4bPGakPrjesFHkzE7Dqm+Cn0g+bZnMLUHDetFWg+b
xvK9kzNHkDNe9kXOJG8IDmv5vEss5gCWGY8jGJTKUJZwghGtZQ9IRa9IvjZf68NQp2Q9IJSVSaZk
FdZO39JTPV0u9qp9naeG5ZrJTKxEnp0rWyzhty2S7x9rgBSqIQdai7JQJ7WgZypf6g+hQEWm3zLd
g/NrR/HzwPQa5nd4h1+nuJHOK/TrEfouO4h9YfAlTLrNNRqzateZAjfXnOs1k68By8ulsRnf+Zcj
+Bdv4mXO4uE+ciV8WaPEekRV7+wHnmQ70rb3Hc4wsmSex8vBKXy7Pj2sF07Ww08fJVsPhgtrp6/i
qR4e8f3WvgBIlmpBkw0zq21xS4hOETAH8cIGHuIleX4u1lmUhTqpBT37/WABEEKBi617Zbi7pteO
5OeB6z3YzyOJcn98arDfHlu/TqWJ/xaXQtWXteFt7gUJAIp6gVyPmL402IOJ5dzNc6Y+kR87KXME
KTPoHyJleKebXH4jJkqsGAiJpwFJm2xEVXezcUZ8BU4SNjbBJD8sF05WDnxksg1JhbXTbjGZ4Fzc
ttRuS2ESJNlM6Zrsp6dlWkPgiugHycYZTvIKZ0awIOVYWouShl/sJJxEPLicrP4QClwQF7xqPEG6
m+m21DXg77AOv07xguaZeM5M67omQHvH4FMoO9Bo9iBVgOZ+YZONdgc3lvX8cmCKDW0v6z9X0Iqs
J4CVJ+WttJqimreQedtspjrCNUZk1kmfsJkJMB82CycrkdHIZNOBimsepVS03vFcQfwXBBJpJnOs
qWgonm4AcSkC4KBesMtBvRwevKdVFSWhxVU+uqVKlB7CgAZighLy7/h9Hmhuw3y9MvL3U8P8jvPw
61RS8AScMQmbqtBnb/vGLHdDWQaWzHI60vWB7pk5qFcM64q+U21yP3bm5QjmBVP9AfPC5TwiA0Gw
RIn1ikujIIXrTxhSFEP/HY4xorKIc0aciuSYHDU/p/vsAdIj05LydHEr+P/H1fTFHSXbJ0KsmUy/
SuLpAAlY3G/bI98/VgApNEMOlBZloU9qWVpeFaN6xAERxASpej02upnjttSG/zx0TH98Gv/0wD9J
Y1lemstnT/PMmqXhY3A51LFxNO4w9GVi0uY7qS83By2U7241s3bsVMwRVMy4k9mPPQ+usHmLSInV
AUoImTjjfYGOt415GNFXhL1ONjyxZ3tYM5ys+MGQyQeOzvsucVePOPAaZnF8mRZsHkG9Fk+N1Y2Z
8zY88v1jFZBCN+RYSouSht9mlWOCSvUbov0WCUQQFqSq3x/dw3PsqWuCv+M3/DqVdPXn5K1JmYE7
4UNNtuigpGDZSzSNPN3f7z5nmV512MLBThMSfeOfnQDqM5LZwQmVK+V5l1c9o2DpjcD/a5ATCMlU
i+grotsnhZdL9pmpexwnJ+th55rp0VNdXDvjVh6vn311ywDULvEr1jyCXS3XLEhD5txolhk0S7tS
6IUcqCzKQpvUgZZXxSg/BAIVRAWt6jdG9zgce+oa6OMgUs3zUwP9Durw6xSvoZ8yK9sGTKB4MzDq
EOrWozkYoK74dxtVzLwOPyLOJtRRSHYC5ggC5krkVCNHyjb3UFrFit4dwOhnWII3BoNwiJELssOX
6UmaZA8p3qfZewDDJEcmL0YqjqjgH1fU4QzzdYxBtHkE6VqF06mGrPgEF/cyg3shmInsbNIKv0dh
UQ66pAZ0TMUoP0QCFYQFrXq9L7rZ57bUNdjLY0YvVs6QY6aUdqquNUWbZRHqIo5GsyOp7vD3NSEn
06qOTakAK/W0l8xGs+QzaBb7wkCzwK0Q+oX3naPEyrjsESQvW4Z3JyyGmRZRVrxUsCJRVLfGiRvq
cnqgpMjktUfFNe0JP67oq/GXqv/CYLHmYVdXSTwdABIXmXGv6Pr+sQJIoRlyLJVFSehy1YCGV6Uo
PoQBEcQEqepXRctjRi9/Z/Q1sFcgnL+fGuh3kIdfp9LEvUdBNjBBsTH3jk4zqdr3lfmlAD9rTYcv
Sec11QvJ4lXdISrajX8wMPaEgYEh9uTg3hKcjkusdmCP0HjdMryJiBRPx8i6QRD7JPNpsiNcmT+7
KV7JihGfTO6lKq55K0ZFXbOFBFi7rmrR5hFUa/WArG7OnBsNM/u1rlen0A45UFyUtTRKHeiZqgEg
hAIZxAUx2rFj+Xkgew329JjVk9VzqkipbU1aC1Nv37Qz1plzVCyfXewEx7ucZszpAk0yCcyNbMln
kC3M3CdkC96yo0iX9S6rsgvrERovuf43J4YU2zc1npszZboV+rpDLMXM+Lm7YYcIixt4PL79nQvk
Z47zp0SaRxCputfY4TaI/r5xLTO4lggg2Ra8/j2KipLQIXWg21XxUniIAw4ICj7VL4mmxzye/s7j
a0ifjOz7Q+N7n93X3I5Pz0R9347XuDnhk7r24tqajOoojtpedu48iAZagDM1j2xpFWFobJAb8EYi
J+g0/T5lbmS4rIqdv0f4ux4vSHTuUnh/rRIIX53EedMSJzbQh8dDj0wVXywV12ZcupPVRCbcioU8
XaLNo11zu4B0U4gNGbAHxaKbzUqhlfV71BXloElqQMNUjOpDJDBB2IUUbbjx+2xY3qB/27tuxD8/
hfvxmNcPayzLB1eaXK5QXJiAfeEqs7rxqI79xX6Eqy3J3KqDjg6Mno5okW/sg3rh9eYT8oUuojyp
+JUayvPjUN3xpSzB21FyvOXWKkvI4qRnGGiLExv64jF4lJJMFcdbFUdAWKGvl9t4MKrpvQIJNY+g
V4VqO72qKyTrjTy46xva4JcoKspAh5SObvVYnFQegoAFIoIRsu/ofR5YxkyuQEcXvEqliRMHBh/J
r12SvV8OArhXDe0ZOi+SWnO5CVR8krLu9FW/A7xxy04A8JXMyZdcdbwq3LV0iRWe3j7UShgTLfax
p04YJ0BVRz08a0lsEOvwCA9LpspTFCquzbhgpwhqXACA4T4s2CS43z9kno0X1njhZSNYZhAs3OgQ
wSLdkAO1RVlodNWBnqkYAEIkkEFYEKMVO5afB7LbMB+9vv5+rmGuq+B3P5jWW5MPrvS5mqjdkv1f
CMCrm9qjcg+1c+8Hd0fRQOoHwjMGUN74ZSfoA2ckM8zOyrMUPe+yao9K3iwEhDdiTQmnl8QWJiDP
bocTD/yzNJcjUyVeTsch7QpPrcPy96ddS1m1UPMIclVb8ja8qp8KSHAP8uBd6pVaGuH3qCpKQovU
gXb1YJiUHuKABoKCUvV7knPr3HvqGuhzJ1aUShP/HM4Ba8lp43UYWx5VmMI2o/YkgRt4MIXjiMaz
DH7I5dxolXwGrXJGIjtKLM88EJI0yqv4HXdb02QHkM1GAT2OgDcjrSIRNLfCiQ1ebbV5QJJMS8Dk
sprPztTS5Q3Ji8Z6GAy55pGvWfyUclY7CPwX8Iaji/beSqGU9Wu0FaWgSMpHwVS7fhnigAWCglH1
U5Fz67t76h7aeblu//3U0B47z6JUmrhsNHS5GresPgcHM3zJTh1UK7dS5YS52qMF18QqTyxmHp0k
/EzeqGUnhP5PimQmBjC58DG9Sqzct7X/rEa1pHj3dSo/4mSWmJC0hheZ4TDbKLH1gCIzHEd4Zaru
TfkHldtLTgM8vVT70Mthdpg9glqVHb1xC0cntrkxLjMYF52wlEI15EBrURYKpRYUvapG/SESuCAs
eNGKHcnPA9etF+DL/PxUL7jjOfw6lSYuG1zA0kK/FHlgnlkhffTe/KicmJruZ2OryzixqQ+sVZ53
KYk1lTfe2Qn6QIlkTv3OlQo3p1xitf8K1+6FvqR4S41HWGdwBGORx9bUokOkZx9I0t6MTFXXFCht
BQX8uJauWFaqfY3UbrnmEbSqOJPGy8HyeJ0b4zKDcZFnq1KohhxoLcpCodSy1EzVKB+RwARRwar6
Tck9Kseeuqb5vpvhlCIiL37W9NGmZRFzK7Ee9GbGqOiwKSZa99As11SfgCzFQpk3YtkJgK6RzI4Q
zAOjRKGJEit3MJvfD5aBQD/gIZOwuIpYxchaeGkdN3aeHrqBzjLDRZwTj5/i0tq87tjpsHy8VPtY
9ysJjnAEtaprMA0fIq3EY6NWRlArhG0TtUK0YOVAZ1EW6lx1oORVLaoPccAEQcGqHvFmcHrA/D8P
bN+9kobD41MD/Y7p8OtUkqMRztc4VxKMEtIFVzK9YrtE1uiTYZp1OCdzqwP7mMweXkvzxjw7QQ9o
kVwKnZErFW8fzK1yC9t+lMKeR4EJLun9N2/g2faKpemKT/AwxGHlsIcm1GpxWW1el+/W+Urx5VX7
GorVck3d36APTKkouS1zbLzLCN5FrwkNeBc54TRMWuIuXRYKpRYUTeUAEGKBzBIXvGjFjuTnges1
2O/oDb9OJTn9n5z511D/tg4bHE5k4npGxcrVuOHlPbZpVPsZdyxdFSDTDnIyyCOS3yN45CBozFVa
xTDQHP5fhgFt+boMCT5F8/SNhnhyC/R1B1dKqfHj6jXh+CkOA/Zx+Z07PmKK9f4IEo0zuNPV+4tX
cmKCXYTKCEKl+jvK4PfoKcpBhdSAaql4KTwEAgVEBZ3qxyL3qBt76h7e5fu/199PDe99cDO0m5ys
lwa14OjlY+/kdORS4JDhJ5Sb9hydexIp+FRCP/fq6Ug3mXeSZQbJct7J7BjRRAEglmCUWLnF3BzK
UkNbvm5N4Xe8k3MMfM0Ctiw58tButnCy8vAgmSovDao04kN9XE8fuN17PcuWbJxBqrIq4xd/gvqN
v9DHVX28UAu/RWNRCsqkfJRMtSg/BAKV6tcEq1twI/jZ0LyG9B2Z4deppNXiJLMou6ZLRVhauR+s
R0qG3kiWj1Xvto0d19ydgCrFLjhvZLITAHxGMicYMeVKxdY7E6bE7LeHHC+2yuYrd/7s1daBkoWp
bUt+anY3VThZD4etGh41URqRoT6upw9sXe7T3ZKNM/hSXYly4D7x4WMjUUaQKOVKoRxyoLcoaymU
OlAzVaP+EApcqt+HLe6o6bUj+Xngug3y7/b89fdTg/wO2/DrVJrhUy2NTonxPWqpDwjQiUq4W8TR
ozFJi+dZvcBHbz2GfoLn3CkWH0PLcUQiJx/x9bg6z8dd5RH6pnE8UILn3WTY8hAnqKJWAVuV+p3Y
egC2DPj+Axo1u6RmGzl1dF3TUt0LH2QaZ9CoHL7l7HQQoeBiWEYwLHiWw7BwtJdxQ9qKklDkqgH1
Ui1KD4FAo568DNwt/47e54HljXxNaR1on59C/g7X8OtUIhQJbxV0CfsdtzbCadadzHZw0E1OnbAx
+QgWlfjhOvn6BLQCDdy4g/qPAxDkNOPXiXjQV0kEGVMlbxxnNdW3NTKK52FCLznCRHYDnHhAnqWy
GVkq2z+V1abv1p0a80SRFiK6R0v46DOI04X5mqDLEREJ7kW9elGPyAPzhTrIgaaiJJRIHSi3e2/H
TVlfRjwhTgkTldxz52tH7/PA8pre70gMv04l4oycPAmqxenbd3+wtRNkU947NYfm1VUXJMGaYjPv
yav3FVrggpdtZuGCMsnM1QdyLXX2rcQUFb1PV/+Wp3bxRovIG4x7xddODj2Sx3NeHx4VIzJV3vxV
aQSFWRD7KYaW1MyQZ+B4+A9RZ5WTi9qwYgpc8BpcIhOgDH67tBRloD5KR61+/aGlSw4wQEKwQfQd
tc8Dw21At0P2lsenBvQdjuHXqTS5ns8LcNpgKiql6TPiLcpjrzp+h+7mck7KR1CnLfC7zrp57vyK
CeVyONgE/Aqkm3KlFVjmKu8KCNcILoAIbx4z8ekJd1wv4QTJwjqc+3M27x4TLTJVtv0qjSAgH6rp
moFV+9BFuCXVOIM5JW7yWhxoB1EEAvugVnQblqhQUgs50FiUhTKpAyV3T/7HT71kAhWkBS2aseP4
eaAaQzvd8RZ+neLxs3nynvuSmCgM3rkRWQ+jv+OzFYtdAMZz9wLs8Jot37OdQvFaVAjjQzI7trty
LaZjLy9HRe/p6hcs6RV32fHX8SrdPUOVSDxAZoTUyFR15Ke0Zt7rPR2Iv2U3E3nGGRSpyG4ZRGnD
HBt/MoI/IUAI/Enz79FUlETp/Bfl9msymJc8oIGkoFT95t8eL2NPbYP8u9l7/f1cgzzdwRd+nUq8
J6SrZXhd6UzSjHyS6lFJeTkE27c9C6cgULnaol2JTBl57tSKJ61yOIYI5Ao8mvIsPY+tPIeH0Uwh
IytjVwZKm1pEnXomb56pWiQ25JvHRY5MVb6+LmvaXUXP+QyFA5ezbZXLpKQaZ/if6tAss2vxqxwb
vTKCXin+jlL4/dJWlIMaqQH1UrGVbommH0zhQiIRMmRfTHvwjD11De65z+JKJXwlNBsS/UJEffPJ
W/rQaWf4zWsdG3qzJ0Gwo9AmjXPiCZB5BzlW7ivJRTblSWUvi2sNquatHReHrSYE4sgtdtTjuXqO
6pHYIK4eGZeLeuUNT0ozrfkmaF/V8JY9ROtbWWt30KO8gKBgsWrFch6/uJMR3InW5QF3Ihu1cqCt
KAtFUgcKpmor3jKBCNI60IDf8Zv7DL6l7gHe1lNCfz81wB9RQhMBGXTU4BalukL9zjLmTg4pP0nY
CihZrSnglY29cAyDhobxzp24RVxfdzIToYZciShBV4lcbW2Y0X+KhViYFYsmMDMCC+Xkhjjx6AHL
6ufwR9nT+1XazOBfFKz5C5usLEVBS4kcdAZ7KoNn7W7HHBtvMoI30TuGA96k0mOsrygHVVLDUjDV
SumTib25lxL0YVj4HbvPA8kN93Ub/u+ncU8P3FHXqdqkxpi9uhoysH2LkkZUhVtTWxZOwZwKQTF7
XEXLc6dSJlRKYZ0gmR3eX7mWhvfy8CdTRXI09rs9TeFyw3aSmKh0EtNpfm6JDfeiHoiHsjJVhaKl
tGbZVA1hulX7wC9fci3EipFfk7UChh649GwRw3pEDMNxVXfYVpB//X7pK8pBkdSAgh0fXIoPiUAE
WUGq+N238Zjcx/+c3PvOmCiV8HTkjo2+irfVSmor4FsGoFG49tjWoQzL+RHUKGY2IuefjhW08yUm
jsvhmEDwJRjgiMVfIN2iRD+9s8agBrdOaE1PRAVZom0N1vas4/vcEhvI2eNjRKYqd35KWyrNgEwE
6+8Y03mbi9CSapzpmuDXGFg9kZYsx/GLLenBlohh6bAlsr1VDjVaIV0WyqQWlEzlKD+kAhXkBS0a
suP4eaB6D/R+DBHcj08N9PaY4JtVl+USL5VqDpOqT/eBqmduNNBfCrRX1Z4MYtl9QMs7Bk1HDkh7
D0juAdffcsZ0u5w+C57sURokGL4S+k40cT1SE68ps6EhQlTOboS+7uhLZS1+XmXPp5w2fZGOEI3a
cK+vQ+8qI9E4zZZK1KkL7bSBaC+BfdAp+foLCiEHuoqylhKpA9VSNSoPmcACacGo+P239pji298p
/vtPO7jSSlFx5cXTMNzt0yZpMEnKgXMUvz0utzwiReUjCFEO3bwJiL06j501MV1cYK5IZr/bwFuP
hIO6SuQuqip7a3OAF6mCtjoyFGHRTJkqXNuERs3pwZkoWSDjlacqUgNltWm3FAIZygNo1T0Kq4vI
8dN0KO861OJ2fIG8ATa8irHzap6VizXlEqxEyka5VInSLcs/0EDKhVHxs27Xnm37vg3oKvvp9qHR
XHcWRamk25NTiw3X9OoCfBhwnivq7oLCIKsZmtHTNaNrZFYTFAorsbMo5oZxLXUyZw7mUO4Uf5Xo
5/W0oeeJPFnlm04zbNh4DYco3yqKljixAa5AT2d4L65xIvJVZbUZD7RoVOuf2KPIisO4m6ZICYUp
QwktmX1jUHowKHj0wKDodK4c6CzK8ohWLaiZypfyQyYwQVqwohU7ip8Hphv8s+u6+uNTPaDsDIpS
iRgW8uniPbCq04N6gPBTqK3VTwWKbmAyJPMRRCkRIbTlEUGRx86fjOBPZM4hmfNx50nMJ1d53GXh
lrw6F9G+mk7CRj8jrfzFT7fCiRt9JQsX7ZSn8juVhFfghyoIu6uaFy7FMo05rzl9Dc3k9XzIafzi
UHpwKNnfm1doxW1mEnFJKJI6ULAj/krtIRN4IC040Yodwc8Dz2tOzztVolRSJ5pY7zh2aK+hjSam
YB4sGuysvpr/Cs3d9COoUjbk2ggtOyC4bhAbYCeyH+TQ75cq51ZWd0/6/pPMAdmQJIv01jmMSTrp
pEwLnHjAqzXbOSpzfuO8ZFcU0dSKzMamSoYWJBr6/QJXu3Cdo2nD7JsvSg9flPsvqIMcaCrKQoXD
5hwOggfz/8+8pAIL5AWj1Yodu88DyXtor6uLr7+fGtp3SIVfp5K63MSww6FDM9IPg1t2MEWuGxyc
kg1IXIk4gx5lhyZjlamovHHHTiz0cyRyTneeVBinV3lR0Tu7+rcctxDrTUQFtuC2KDHLPwwVTha8
JJSnrlfVVVIbdkTJjrS6Tk1EU5AsY5oWzUy62nseigRwY27Eh76jBH6JfqIMVEfpqNTBXaXqkAQM
loQgg9w7Zp8HgtdgTg8Dm64AElqKd1AWl6vX5kVDSoCsd4mYYRwljz5qDGLC1uhMtuprWd5ZkhEs
iZdzWTozP1Qu3qHfSmRDiH1ch339WIwDwr3lq7RElvP3dEuc2IBl6cDbXMZ0LDEqCoegD3V0gkRo
A8Wldwk1pvlPyTt1QKYhs280SQ+ahLUcmkS/Ug5UFmWhTWpBy1SO9kMqUEFe0KIdO46fB6rbwPZm
7fGpgX2HUfh1KhHAUTt+zipTYTG0u5D1twsAJqIJMGvjhkXkDIaUK8btMBOl3fhOoowgUbyLF4ni
V1eUK9mYc5WoVKXnWYS3rhQi2lusU7KN3Iaj8048ekGS9pozVYzuKqyNcENRPL41wGUKKZdIY/Zr
av9ircBqNIPoDtEHgkdhCw+PwhPz7HNkxHFZ6HL4ZoXCx6pydB8ygQrSno51Pq/vdx+4U9dgv6Ml
/DqVJneqp7XWVNl3Tj2Mc9LbRCxrCsDRLLbGZnCiHreH1245oO2kyQjSJN9/yzlHnhW4IW/lOdCy
duk6thFZioC88kcR95TMdNp0xI3mhzXCycLBXJkq9IvKat44qpKl67VjlylEF8Ak1ZjmRPN6Ol7X
LQ4O1hth0tO1gsdfUAo50FeUhCqH78dxeVXnYmk+ZAITpI3nt/Vw14bi54HpPdTnUcSGPz7XUD/u
IAq/TiUCecooSUC9SRjfw7s3nYx0Zhh+o742tSiBWHYPUGDl02u4YwfkvQdk94AWyRXsqUSu5NBu
USL7MQUUT65/gZZCsDcP7Poeiy1HLBkPs4SThRievOQ7h8tqA9cPLbtYSrRv0/t6SDSmCVMJO7X7
ohWzb4xKD0YFUxyMiga9cqCvKAtFUgsKpnI0H0KByRIWpIrf8toDYeypDf9aRJQ+PoX/HUTh16lE
PFH1s3Qk70HS4SN68WtUozjmjhy3ILvS2a95fgFeFZPhdNzHnVEZwag4uqMYFb+2o1xL1+dWImNZ
lYln5YUtuYpZtLf0tiReCLsZ+rojL6Ul/7hO7UJVStOBAh9/XYqRlbtkz0ansCrG/Yu1uBXkn31j
UnowKdjZORmoDygHmoqyUCK1LNVSNRpHIHBAUPApfrNrD3+xp2JyP+YOrPRB8AopSV1XcaiTCRMp
X68+suAoGuKUwIrGFEQpHFi92Xu5gW+2lyBNINKUzJmEciVT7VGiY7DqWL66jWR4y2nDwr15Vhfr
bLIZiWwP24ST5ZzOUrnHrLK4Q/55EWRahmwFMJSLGTKNWWJqX9twHaloB679hrgFYSIaDad/qYUc
aCzK8uqtWlAylaP9EApcqi+RawV/3Qh+NjS3QT2zrqQ/PjWo7wgKv06lyTsbzXps2m9IwTApxEfG
Pug4uHompOG4eQZVegSO0JD4FO8Le3ApkOhK5lwiz9Jzv8vrLPOqSuc8YhFU2WTteCKzZrI/iQ1I
7AEflgknC+GilKnioKLS2uDuHZ7ROiVrMdebi0g1ponSvMZG9cJOVIWLR2nBoxxXCqWQA31FSaiS
OlCxQ/6V6Q4pHkWoVPsG6Xqf3+vaI2HsqWuI38ESfp1KKz6v3pFOR2xEpcvTMOvFsgXyS1EQ196N
O09ncKLYxTUpVpwF8tjJkhFkSYlE9tNJTMcO1+fyOpcOVZVW9+WHzn1xu53oOJTCN7CoCfqyQyud
DP+44mSoUtZFM4Wj+VHEqjVjyc2i6MoVsfumeVBeUdK76Uv62TaSpAVJIjAbJIks7vo9WoqSlvqo
AZVSMboOgUCh2rezu2+O147a54HhPbTPnHQR/fGpoX3HTvh1Kum+/xQFlTh0FqJPm0XhYUHOrNxd
rbRH03qQpNw5rk0rNpbyvnMoPTgUbO8dDgVaTbmSo/e5xHAe/+7qVv7BWUr3HOx2IsHS7Rle3BQn
NvSzx0RzpqXU4dKaDQe61NN1TtYxVJFfkGlMU6QE9tegpB2zbbG9WsT2ktm9sR2UbpUDjUVZqJJa
UDGVo/sQClQQF7Roxo7j54HqNbTvIAm/TiWCLuuCWTruzWfK3pr57TjvJxzqsusS8Rk86CG44hJR
7jtr0oM1gU/rsCa8oVjbK/nms8vqDr+3Kimu+c2lcMduk0BIasfv5BjMvL52A5w8OqozVUKFqLQ2
cPDA90tsaLLqs2UaM3hQRU/QNppW4PodAAdjomHdYEwO/37pKcrxhkw1oFYqRt8hEEhUR2nR5Qo1
Ycfu80ByG+D9kM3l8akBfkdP+HUqEYFZd84SG06CNGt4z3g8rGmT4YiIa9/GxHua0uxcW6k67wBD
7jtn0oMz4eJ6hzPB0US5vsv0XV53F5O54ee0BG/fGl/oa/+dInDT4ZmqRWJD//C4KM5UuVChslpY
hDTCNBODjQwUtQizmNzXDiy7BTh8B/LBlmgEcTtSClm/R1NRDkqkfJTrmF+FUwLigEZ18C3dueCG
6bFHv9hTF/brvgP/L7zLY0IvVlNXjBL0N7WvXGrlAI5dY3ThnQGhqBWa0M1o+o0sIpozr+Y+NrSN
dSOR/QoWA9ixGV1W90N2Gpk/fgiN6Mr2NJHBPEVstsOT1eUC/sCaYZKcqRLoTaUt5WqAakUVQ7pq
/mJhicYIZhREEgv5j/xrb+NLC/pEk7dSqIMcaCrKQomrDhRLxWg8BAKL6sh6xd01fPlvtMv/nMYf
0TiVSmwdp/w9WIUKdxA0/gZuHlpA1hbDoS7XBHUASTa82lQrjjn3AXPfOZIeHAnuZR2WhMAQREZ3
AEaX2EtU1Fz7u2J2xyKm+yvJ8TX1uHRynO3jfNAkSpZzOEvlbozKajb7RbSlb50jK9g3sRhHUJ/i
gxXcCfmXN+8FrqFN+PhiFNdvl4aiDFRH6ajUAZ4KpwF7mszkPthfoLME31H7PDC8B/FRzkV0Pz81
oPNjAs9WFPFqyotHxtaecu2Y4FC4GjTA2zCkV68YMM7gMDURx806uXnf7EkP9qTcyewXz+paJutd
UndMJrl06tAvrEOct3gmP4a2vHynG+DEhvS8lw9i5BOHuSbfL/q8CLqh9VVvvBHvZLlzjmBC5dap
fRTSz7ZRJs2UCcdXpZYi+D0aipJQHjWgUipG1yEQKCAo6MQjufkxcee/E/d5pJ/doqK4kichaFBX
V1XSo0gRLnTrFjX7xDcM/xJbIW9NT/rtiopgOHb3nRTpQYqwGHdIEdhy5cIudpXYHZNHlVmCNzfC
7Vsijik5/L1iIK2m+OsDYHbHw1kq96BUFpdNPq8uPa/BvI5aOKpInjHGNVsLMrdgto0PaeZDsE4p
hULW79FUlOPNtmpAuVSM1kMc8EBQUKIBO36fB5rboB6zvv5+alCnxzSeUNiqe5zW5OljAs+wScD1
uG8V9hpvMvzXE5yykdcARWI2aL1uuAt1IgK81vNGKX69NDzukjo3UqmCXvd6cwcccd5ilPyU5fLs
rm6AExvmw+A0Z6o8laLSuGTyefFEiWwpuo+qZ66QaYzgQpe4M09xoXLw21Zo0yNqMymUwe+XlqIc
1EcNKJWK0XYIBA6ICj40YUfu88DxRj2tN93/fgr140GOHFZaRJzB12oqrEXCr2Pg6aG5ZmRuESiA
aXcATtz7hfxavov8nmApct/pkR70CPFdOvQIDqaFoy0BNV1id1Bk3dRXz9PWTrcPLByX0ZOfsjr0
0IKj6Cux9YFuqKozVa7DqbRm231AkV+qe7nMI9MYwYTK60u+p7Rjto0gaSZIoJuUQi3kQGNRFspc
daBiKkb3IRCoICpo0YQdx88DVfeBqcsfATSppZkIOMPzv5NY2rhvfKVYKhbIGtzyknEgnTmuiT0B
V1IzNZB3FqQHC4Jrd4cF4a6jciXHAXKJjpXOBRDtEtcDGBLRXiUTGpTl4Ohuhr7u8EqC4p9XvY9K
OV9dCtqhCAxr06nhrfDthNAZwX4q3KJWW+SfbWNBmlmQSZAd8Rm8Y8cD5wT9cVkokVqWYqkafSMQ
OCAo+NCAHbnPA8dteH8rfv39/A7v7693zKWqrngzaHDouPDtCfYoIXql+to6LQiGtUvjBsI0S9mV
zEXBTzip5b7TIz3oEbbiHXpEdybIlaofP6BER01WZfHq4JrcZwj21jsnSCzn7uKmOLHh3nw+SM5U
ueVYpsnpz4ttk0Ia6z6ZXtlCojHqNbFP4Zjcilk3cqSe14JenEIp5EBfUZaOXZkrD2wVDx/sxi0S
cUYk6sKJBtzofTYkrwE9NwaEVOJqlYLB4Qq9qkmvZF8SzqG6ijEyd4uKRKpcQ50mIv0CURk/11Xu
3HcGpAcDgkdhhwEh7otypcptU5fYHUVLEWV+hmV464K/heM2sp+dT4pJR3Oc2CCudDVnqbxKrbJg
IT+qgxAbqnnIKI5MYwTFKRXrhVLagWtfQGwOhHthOP1JLeRAY1EWyqQWlEzlaP8SSrggLnitRuw4
fh6obsP7ZNG+PzS27/gHv05hzZgDAhRbrfbEdiTh7KKI1ktmxbaTuA68Ok1X+lXDwn74BOK0w58M
f49k9ruFXPJ2dFWXx4OpVIVhRzO23oG3aO8J/bk9R578IsbDAOFkIczLhADNV2lt+G2RHyLSrOVb
pq7sTvlt+AgCVLOrzma0ZNaNK6nmSubp7yiF36OvKAlVUgcqpmp0HyKBCsKCFo3Ycfw8UL1G+h3w
4NeptO5E87iQ3gpdh8XvdzuV8B6ceMl1lLDuV68lOMps10SegCzp2qzduW8DSwtCpN5JXhp2rrib
6BL71afW3bRpGd665mfh3qKXkFpgZjXGXx8wZ2loOEvlfXSVtXSq8NRrnSWAoCGwRGMEz6knpmQ3
pRWzbnRINR0ywzM8vVAKOdBXlIUqVx0omIrRfAgEJogKUjRhx/DzQPQe5bk0mVkenxrodyyEX6cS
jjCjWZfIUV56+oMeUKR97BECRcbGGJjVe3TiLBZFAuQ6eG47X9KCL+Eo3uBL+JtypQrmLrF7WSnc
pgoh3kX78uGjefL8pNkd8xHRRx4WCicLb5xMWNHsspop2oRhWIs6s3C6pBojX3P9FKbJLZl140yq
ORMu9CuFYsjRPW2YFpU6qQU1Uzn6D6lAZkkLXrRhR/LzwHXrBUPXv56f6gV3XIRfpxLebgNalJPl
utykHoBr/smRgv1VtEZTvUlRP2cpA5L9OHLbOZMWnEmLRM5XjqXndpfWZ1QjwsMPF5aGTO8JG6pt
G7YleLOH2cLJwsMnEy5UG4ESjMaH4vHY72t7pfu7kmWMIELXmNBJ5Gh2/wq8zZTgo4NjGE9V6vdo
KMpBedSAUqkWXYc8YICc8aq9ToYbap8HhtfkfsdC+HUK/mkOSFBWKdmv7Fsy8bkPm4F2Vrp0E7tq
E6G8MZcLFB7OQG1swAKr1oAVcNyvUXLhN/b8JkJxA1M1Saw6bxL7oT0zJCJFjh6YJrfEiQfASQoq
zlQnGwI565iFTzC7PHWjga3ivbcOMlR3ybLMLmrJcvi513CH48IdTymUQo7uPb8JUamSWlAxlaP7
kApUkBe0aMeO4+eB6j20SyqLCH1+amjf0RB+nUp4qsvLMR0sYkRT/2F4E7wWi4HtIrp845crZlCi
+AgXqDxeM2o7h9KCQyFwD4HHORyQK1W8el1it8VH1E62CG/HRv8hFgusKCuNTUpQpA8rhZOFp254
Mltu15TWOl4eKdtzm8bqIVNkGiNoUYW/0UO2tOOL9d0H3AOqvqMQfouuohTUSPmol2rRe0gDIsgJ
Usi/Y/h5IHoN9Dv0wa9TyaEosvXFkXPt7kyaEL42LAcFvRcJrjU3eFCd1vRsCM5aue3ESQviBNMa
ccX9/CgjujK8XV63MVdmdw1gifCmO9jvhIeqJTSvFNMYvl8QK1VWuF2Hyk0upnWcO1R+l4cgE1o6
Lc7oQYTqPVKNS5ow68ae1GBPuE1O2d2/R1FREjpcNaBZqkXlIQ9gLDmBaMm+Q/d5ALmN7ZbP199P
je07GMKvU8kRaGBHhyRYh3dv3UQqy5wwslkOmakqw3wGO0rEJUJRE3kht51SaUGpNGZ+KJUZeVJl
JLu8bvZG1+CLBXjrBpAle4uESorVf7oR79tEoe+Fh1f0yzrF7KqI1olymsJpV9WNhDFIA9sDbEk4
FcYFwZcv0D2YZUz8R3NJoQdyoKIoCe1RB1qlatQdEgEDsgIPbdiB+zxS14DeN+VrYBA4SirSqqQb
+YcxTVJplVQVRScJLNvn4e04UJWE311uuz9JC38SgG/4kxBZccWydhxklzVMs+pie3GXWoM4I9N7
QIFqzZeTxWoA3+7hO6V7md0G1qDDhTTfpVHZXQEcVeVI3H/WvaIeBKh2yIq+hvizbkxJDaYkvqMH
fo+KoiS0Rx1olapRdsgEDMi6oKEFN2CfDbxtCJ85vf5+agjf0Q5+neKC2ByHdYhd6DvlOwoBV/d1
iFh2AfnTK5hM9RuBwYuy6hJ0mhg5ue0cSQuOpN3J7PdkCWNtCt0lDu4rqLLEGzQ64hU99OhnTQbU
KO9R6h6lmsP3G/zhwdCdo/LqtYrCGvKhjq54A6p66JiPUKMHOarVN003Y9aNIqlBkRDeCIpEa3ia
VleUgyapAQ1TMaoPiQAFWQGLNuwwfh6g3l2gfrdkr7+f6gJ3/INfp5bOimIJocsp21BbSh50Aem+
qgMohoKCzPhGygh6dI13oVUJj5jbzp60YE+IBtJgTwi4aIy5J+7ycEpx9OPqPrgGrBzj7EQyuiep
tXQPN2R926CX0qp/W3kDu+DMP4Ad7X/R0d2iJKpNwowe7KjsI3oyjwbYKfgCPhn4Ee4g62lZ/R41
RUlokDqWXqkYdSMPMCAn8CD/DtznAWPM4vOObfDrVNIKP3k16piXOSjbjYQL/L0xuFF3kchrLh9B
f2Izy2tTXLknkTd+2ImFLXZzJTOEKrlW9J1ylziwhqsy3ibsfnh+zQn2Ihnwn/j/dM9U1d9vfLuH
RXGOyoSlolq3EwmxsRSpRBfDRcYg1Oj9mtm/GpcNn4bMshElJYgSzZAFooQH4PVKiVQWZcmylrDR
61oH70dL9SEToCAtYNGKHcbPA9RtcI9DFpXH5xrcvDCwdQG01h1DammzSI71DgFMyrrg38UV4r6d
tEntuj06ghqFHMkzvGxz2zmUFhwKJ7QGhwLZkgG/36XhW041IkKp/k1we7uRDJhRHQHwCVYz+H6D
3zw8knPUcV5FcT76UIcd+HQZVW8TItTowY/Kyp3WnE4z7BJs8INC0ekM6lU6IcdSVpSEFqlj6ZaK
UXlIBBjIOv1ghKaBDb7PA8xriO8BNUktxQzFiUJhXbafFcyWraO8Ed8m/VOofs1Lmek7qFBY7Ty8
fteXvXs3lJNRLpHMfj1YuRRiLcojHghV6X3nt2eRMyR7j+pZqYdDsJrC9xvjytDw7+vwq2haW7Vt
w3WdC/7SvcpaF8S7XA14Tjg1iz7Lxo3o+9qGixEpsCMahqlZRZSC7igbnVIlyrYs/4ABGYFnSb7D
9nmk7iHdeDj4+akhPf53ae+yo7uSZOnN4yli3EDspN9JoJBAVV6E1iyhBHrQ0IhqSRA6upGl9wf0
+/qWkc7Ycc7OgrJQJ+j7J83NbdGd7nZ9rOrDcjoEOfI7xMVEw1s27ZPs68Pck8K/V4IDiWIT5Jqi
WHNkN8t1NZrUMJpgJ6kYTbS+8lRqeKSY4ijRFfWL/E5pI+4wklG8DkUdSgbD9Qr63Dhi/JFpdPA1
2X1OagC/RwhXETTFDI0ellGtroQZonoqi82kjOu7nSNaQDLhCcQVtJAkvSBhukb0wROgwC1gMYoV
xvMB6vIKqPbc+sf45wf+U2RVKaSmIPWmadXMDiyhKk2XmT4ToZOF/cQprKI4nso3oOL7lutqLKlh
LCE5Y8VYctxPJcehmSL+S7Mjytu4A3Ts3qthFiXXknzvjuqrG3cF+7AM6P460OMzMYnkUA+9kcRE
uymZaAj56uVa0Oe3WUGGGsReFjtJCTuJ1KKFU3S5npjCCkpWo6Zib7nqrhF68AQccAtIjGKF73yA
eS3p/bGkdwQzX8gOvtU6vszcpjh3Qf3DNkp1lOqFRzbCHawSAfO5rqaQGqYQbCZqZleG1jOp5Zva
qNGNjqt0/6G1PRdjW8zsDObcPQSub3SzOBBneqJGtWPt1VDyJDIuzCTAkjqsvNCYSzllolWODtb3
slhDdK3F3NdIgfsREHSQHNSR6OwQMZuPtyl++AMU+F7hOh+tZR7vu6yej7+ayu3HYiBRK7Hn683y
Qz34WmUdPTKoxp2tz73yT3dHZY+wfhIGJKesSuGQF6gL3AbbDQ7cvj85Zty0Boocp7nWWkL6NoU+
OoRkJK8+lLtMHgjXK+BJgqt+og60e907KFlHlLeyKVmDFCRSpMLU6DZ7it8JZPIwphvx/RUP64hM
nQXriE4+egJhBS3kSC/Il84RfHAFJPALVIxjBfF8QHpN6LaaQNRKnOB6tdAOafkmDOJ7kLNe/I1E
5gzFzLwYn7iUa9HW9FxyIeS6GkBqGECuX7JrgeuZKdJx0xv4J6kjEuBTIzz34OuFmdn9UNwsw+D6
xlgRhRy8X/fXKG4sBA7wPQj20N5JccSwMroNnBQGT9JwbIoBuJE1rvwrMuDOKRxTsNSgjTRnhwjZ
fLwhfvgDFrheATsfrXtK9zzkYv74qyldV1OIWgkdjXolgmonNb7jR8hfrtKmk21NaT46PiaFzZOY
/ByZEfQdXo0hNYwh/n7LGOLS3xk3Z+J/TJG1hM6SnJhdlVYlEh1OIs0nbFN7juFwfYO+6fQv8nqi
uqqxSlZ0gjcSakKl3JJjqmCDqRdwBn5+c6Xl2PgWLwaREgYRvt8YRGRwoKRZ5QiXNKn3qwckTMeI
PjgCFHgFLMawwng+QL0mdVltH2olVLH6FiZltdlJQeeAkqFdTE+XJnmKXkxr4c5euEmpok2k81/k
uto+atg+vD+X7aOkeCY162qgN1wzrEzVOJ1/UKPAsSQyIMHuC0UPYl7dto9tSsV3VlcqjiVV1Sc2
XP5lclY6F5gYHaXs5G7XsgHTe8nLNzqKmLIbV3Y0yYAnEE9QsnZcfSDP2TFiDm4AAD4BZnK/AnY+
Wsukfv3v/etfTepVh1Iko0PZv5AcmsDXhqwZ5qSSmmiMSSA9v2hOfTbCspn5Qid/oSXVusBskP3v
uYAdPkBOzGZawyWkMorw7u4/NIfFFbZsmP2wGkjL/UPD8GHdgxYaPVHHMJnWCdXIzDTMmHqVN791
r/E22zXF666tPUPAJzggD6NIv35BGjyBoIIWMqQXZEvniDy4AozJ7QSIEdywnQuEN9xjazpZP/4K
7jt/wadbadpK++u7mJJ6fv3ukBH0Gt32oXdljN41hg5AsXbPySo1tfOa5LoaQ2oYQ1CnqZld1j0z
pWxegeIgAac6Q4vT2cEpqYojRjrJQwjW7RoEVzfgnPGyPS7mvLEDnDZkLjqekPq7Oh1Ej6Igb4fh
nqVEZFHbUIktZpASZhDUaJthy34CUUFpShD6yHV2iriDlwkCPAIMvK+QnQ8Ar/X6Tlnw6VbCu0Fr
YlLR011q+OwYkUHhzF2a24aws9jVSSjsmi67fvirrC/vaueoYefgg6gmZmo/5WJhQXG4FFhC9d3N
xEcuwdmHjEaw/GEFkLwmHjqFD2sbeD9l4Rx2b53SBFf8fae455lWWhjYGc32zUIdKBnMsAaWxdJR
wtKBfhxLBwXfpTUmfappIUd6mdKla4QOR4ABn7treehbsK8ZJ9bWMp1xKlz+aC7fyQo+3Up4NfXN
QoSF137MkSJ4cJNALOFgyqJX8CroYeC8MMyR0ibXNVakRqwI1i81c8nxTGp4PZjecC0Z2XGiaqtW
/PnCOFikD7P8oWJiyY5m47GID8+LqvvrYLnBo8DV5eUDVudHdM69DbuLVMLNhs2SVW/9MPt7Xmwf
OWwfsnzlw5SHn0BQQcl2j42QIaVhnbXc9a/BD2DA6e7iHvogLPCdDzCveX0nKPh0K+Ge2DS3VMx6
auUlQz7QSQVRdynlEblYbmCRja0qrKvu0Y6Buq4mjhomjnE3p8dRjqdc+DEoDtcP2VB/wcAHy7ej
RKjtTnVvq33wE100DG8f1j3oZEYN+dFNqHWiMdSDXXuVN37DtCJHhuka+QanuwwbxQbexbyRw7zR
rhYS4QmEBSVkSA9TsnSLwIMfoJh8AhDcr9CdDyCXOT2rIHz9O6f1uJMWfLqV8EPWpEkpS2cr4WL1
oOqWfOsSyOBXU3AB7Pu1nAvCoQ817ih1tXrUsHpcjSnMGs+khpOi6WFPpSuybDW8WrS6Oz6Eiu/T
45AEb3YKb4/FvHlSZN9fXYs2aW9GHIZ6eCHwTiY4HaBgaDQbNQv7rKZP9S4PwEtrkiMuBKf7cb1S
rswuUQUlpEgfSHd2jNCDH8CAU0Aqdu5fc06srZjW405V8OlWItpAbvrklEIrL2XhKU+4QxVRdynl
nQ58bsWoy9XDdqmC3qDrSM1bY1LCwHHFfhbhO3hmCnOhNY7oRAoSOv9gBYerD6q6i92PvXl1Gr5e
0dW08P2VBB4iNGXZwHYPt87X4irjBeyM1mLJ1hKsw6Jt+4txI4dxA0cxjBvJ9yOkoIT86AO50jEC
D46AAl6BqCh0Z80ysbbuaT3jP96//tW0vhMYfLpFnslXX5Jik0J+vGcHg+DPSYGzRGS0qtz2gvN+
D2MmifBS97daPkarfaOEfcNOZzvfavZ2CkuhJFFQHE5Nq1rM0nRGVbrgDWMXTM94zeahcH1DT/ah
dFnoqivSbhL0hCxjfJrAa1prkaDqT2sGfu64qtnHCzBgD8sG0dzdAOpFsZiggvygjlxnl4g7OJkw
wB/gFAflrXkn1tYCec9yDH/8FeR3/oJPt9JBAjekhw3mRVGaUbJtqP7tSByCFXrTXYmihykTPafM
7nW3K9pq8Chh8LDDGQYPNKp2CGDXb4rDSSsVw6ajc+MIpqVdihIZF2D5Q6kMkiM5F5OHWoXoz44h
E7WrNlGNkItM4CK54yccWn9haDSbMsXrTiyZBrHnxfSRIxBEe92M8YOKj8XzI120kCS9IGE6R/DB
FZDAL0CVKyh3UZYtrWs1v/MTfLqVCAOWG3pKxVacKUnsHGRY4CVPpLNKc5kiJq+H2ZIzrz46dWfe
lLFgbIQbjSmzGvdPcR43Lbw/ZyekafB01/LlIJBezCrlZZJDsddsQ7QKAdwdaQ2TaQ45tHlufoan
vLebmdFsrBSfOyFiYn86hF36k+wEWRowLSTBEwgpaCE9ekGq6lrCDo6AAV6Bpziafk0ssbbuiX1s
Sebpx19N7L5CLmmRvO2QFIu09hIuE5sKyopISs5EJuMqtTmTzC+CXABGlrlcVoNH6dfnu0dzCrPz
TGqcrU1r3+5uspbm1oxWDr6wgcDwhyqHpqNf1zfs2dOh+olqq9kk1Zr9v9uPw45h6noolwdMveAy
8F2Vd3cP4gXvDbtBl3/ghNx3IiJRsOygjEzdYaI6Gem1gAEeJzhwfkN2LtfXJL6zEXy6lQ5qvzeL
qKubua/xliwqI2fxpfnVzLAWaxsrreBIxJ8QjllWy0YJywbuoQXLBvmU9FSiHnBQ3J1qusXx6sM1
4YhA9tYsee0hAnN4OFzfyCZPh+InptSSSU15anOGyx+mCE037Gs6Xbd8LdjzK508jD0vlo0clg1y
LcmyIanM+xFX0EGS9ICEo+Pkd43NWfNbmByxWZz7Zk0qsbaWKV2TvMQffzWl62Mdr5aZErxZllhv
5l3eoOkjSenDRNA7zpeuM2JbXGs4EaXI1CfUV7NHCbMHfj8FswcOS3oquZhIWPeckFj77GDhI12c
fSizAyy/QPZA5tVl+NhZybPvrYOQlSEhy1w17BOkzl6QmInRrGYRf7PGcjHje15MHzlMH/VqIQee
QERBy7bMrVim0bEqDJgfYIDP3YVZSHN1A3c+WtfkXvNYOjxTebdmkr6U8IGaNiFO0z3qIWfxpZ0w
xwgS3tgU06zB0tozh0lw7YKpEAVPSeu6OzUsoWHUIYZanWh//eECRVQH8TkaU2UUOSkeAtf3hN6Y
DL6/DtKodX0P2RQ6g5H2tlmbYi38YumFhyaz3L5UNnMOwHGaxjXsG/qeqoUkXHVXQoIO0oM+UnW3
L2EHNxMCuNxdhCW9r4CdD/iWafza6r1//atpXB4rebGkyNeHBLHFzAMFVo5+F0IeKYHEXJi0Qc7X
Kp6AL0XayFxWG0cJGwc3Fmwc3KinUiPNlinuuCeoK0WqwsCHvXKxcTTsl3j065redH2BrlYhD2I7
PEmqSU1By86xW/5zL60DcLyJcxV3QKb4HSrHVexst9g6ctg6CN6QrUNy4YkpsKA05UgPSNcdb4df
RFk7WvErWh2eyRhWCM8HoBf8cx82rZjPv4I/r6YQIjSPoex9SLLLMiMRD8CX5LOscMoKq4TahRW1
Rw1OFmZZkp1JEm3TBX8YQlgUCoYQlno9ldpx0yO3EV3l3W9fFmI5OHtBaYYds3kMX93A7wJHx//G
Gp5MpClKXLR7pf7DDyDJYmXUsGZq76y6HTDviM0L8vh0V7eQBU8gpqCFBOljytUdb5wPOGVlv57J
EZtwv8J2PkC81vD0WMMTAtEpK0tMdPRi3MEeePHjeSP7qnK1H2K5gkQxsirfevjbLPTWcI8S4R44
f6s5VTp+Jrn8i+mRjC65WqF2iEx0patxsEfbvRJR1yJ7KFyv6GbJp/uJSmVRkWqNwAr10SvFACT9
7WLqhYsQbi6ryhAcpAm+KYwdeIEzPbUkUIiVGjD1MLrJ9JGuu904BjjQo2XzCUjwv8J3PsBcpnTb
9/evfzWl02oFUSuJu71h3dRJUea74jCPXiX3LHur8dBoJlC2bVK4K2+R6VnH69UKUsIKQgrEghUE
bYuNibikmuJeo6Osf2981vVVc6BHw7ap7bqqDjAQrm/gh7ZRUvI0bJvEFyiiphFWoT7wJtjnjnkz
O6OGbVNeSNr4MYTpSXJZQVJYQeR8qxYS4YkpqqCEDGcPU67ucht+CbGBJL+eQJ3N/Qrd+QDymtbb
w9SxWSTk5UNU8w0b78UBHrh+4v28uVaeYv6Lv57HtWAncNL3GvzSim0ytj2anLz8TJpH8aC2Y8NO
pKvQpMb/WJHmDvCQkgOGP2TDZyBc39gqKSE57vVEpaKoSDWdXE/66IXitHOiqfrrZGnUsGCiK5fh
ZMPvfzF2pDB2VF8jD+5HVEEJKdID0nXH27j4AQw4BSRGsMJ3PsBcpvXBbL7/zDnd72wDn24lZdB6
dfVOEbRpjntJ11Ee+Ae2ZEv+AI6kwRSQYlNOLK4yxVbyaeW8GkFyGEGOu5k5r/HUnM71pri36Apn
w+ZIzSlsR3m07mVoCO3koXC9Ip8kt+wnasSGCZ9QAmgjpdPUxF22ITE06jDuu3BMHsKeFjNICjOI
DklqIRGeQFhQQor0gHTd7db9JnLS3swnIMH/Ct/5APPGPZUx/cGffw19ekCPvIYSMiLHQ0Y5Cbgb
fCoZhzlfyfrnLk3Q27rZ8ESQp7wTA+e8mkFymEFIUp4xg/R4JrkckOlhSKEj3NMc2aeStXD20ZpX
qUMBmdVD4fqGXhbJWTqoYd3k+K66As0VROTkqySb6rirfh4sjRr2za4ajNVDmG4GlykkhSmkXC0k
whNTVEEHGdIDsnXHW/OrKHNIxb5JneeDl/d9he98gBlLer8zEXy6lQ4KBmLd7Da6vqTI1JY02maL
q9P2z/eRr16zbbMRpreRqc0RH6vVwybekrZoZMr+8kxy2R/Tw6mFrrSGw8IHlWqZ2M3sflgdJO5W
fcMbrULe+9f9dVhjIH2H1TpK8KME2Oq0k/ORWkA17JuyBiiMZg5gT4u9I4W9Ay2k7B2SBvcjqKCE
DOkD2brrjXOBi4TU3W9iewckxrDCdz7AXKb23Ad8/aupfech+HQrHQJecmyyx77mo8M9cNgl5QC+
oEknkF74JMokA/AGkbSwchscC+yArg9+HgK9xf1TyvWmtfe7GzwbnIZBGz+HezRsm6IyqoYw/y6Q
S1jDd9bhRNXanRFQUXCK1S5VBd1mvL5Ymb5bwE3NvcOs41wQgEeIR7FhmnN89hMICEpIbtJHnu50
45Dg8I66m0tAgfsVrvMB3jWVH2hOQUxG67B4MLMWh3WwelbpAzasT3ximFyp9VimJzZVpkvH8axW
Dpt0S3LMDlYO4j8oOYRrWtDbMZpRflKbhEohbWnCrOxsxSuP8lJLJaT94UPTQKtQm7NhvgxCLZK4
IH6BpIBMadVhadQwXsqAK2cQhvFC8EbWuFZdT2lwJ2IKGkgQ6kjWnW714gUgJo8THPi+ITsX+O6p
m19ie//6V1P3zjPw6VbSB2LmVZyyGzKuvsbhwA7KI5IIfcOKtaESILC+2YrZDF3xV1mgruYPG3ML
Xvo0yUbrp5LrOZni7pVCGgstBuSv1/bEcR2tiOMZdzc8Dq5vrLPngdQ/Lynq7T000QifoLCarE87
U0whbJR4quVatQ/X2SuOilgMHykMH1gEi8/JIyrzUc7JtJAivSBdd75xNHBQR8WaKa0JRXVIUr8A
eD7gvCbznUzg0610kF5N+OqrnBGidl2cbitOdlojhyTCBrg59LJ5sS2RsTvn1bKR4xPo0CwsG17Q
i8TZbmqkUqGjeViv5MOYEnVER8NiKQLWAukc/1Aw0CqkOG9YLNW/agREap5qI4Q67QdfC8XJVaYx
C+7GF1kL8ZLSKkVxkNu8jyx4AjFBaUoP+sjU3W7Zb1sGVzMJNDC/gnY+IFymNCHUz7+a0ndmgU+3
KE2/u4apHJRVBr40A07d6i53CXLza72jxE4Li6Y3VdQxJbJyAdxwDxq5eNuWLd/9pkRxITpBVU5C
c6USQGGCGVP+TuTo0gi4XuFmHmQ/USkZqciZRhCF6HcpRSjAo0gvGBo1rJhsqjYPYE+L4SOF4aP4
GjnMuxFQUEF20Eem7nZjw++gjtr8XuZ3wGEAK2znA8QF8qOm969/J+TtkWuW1oZuUG5eeeoAXgdj
tLrT+rarYs6QAoA0Yq+PWsY9xBvK1yv6/kHK14rtOaeyLODJ62Wyp6iU2g7v01PJyYVNz3GVyq9z
M6Cy9mbsQ5UTJ7cE7TEGXwfoahW+Brq/kq583trkfH9Cv8vFhVMQJaZJOKzD8At0Auv2zSPYt3Sv
4FvyCk7MD0ZoFfazlIIK8oM+cqXbKe7gBhBg0yUAd/SYj2SzSyvW7trXMzMtmdV2Uo4o3m1Qq7ex
uZaPExk5O6GLKonWM/vh4pIBlfSBZOrG7y+72BjobsXnU6zRFByr5X5qBuPlm2KSgpjOyGwnHuaZ
xKx9UIuICmBkxtJYfB34kk8L7zY9URUOK20WMw36PROdrSgG+QbD0SDI8w1mx9g8hiHWGB7Xp0dO
C5HM+5FV0EGK9IB06RmxB0sAAqsAxRBWCM8HoPe0Lq//vX/9O6d1WWspu0VdE7ngpExWVVV33fh4
+xOr5Zstsqx+PTm0ahh+ssw7PwGH7yPfOhMaE35Oy2pmpw4nDwL5V4KiM4vu5InR6yS9aA/OPpT9
C5Ypo8lQfB3oq1V8QNBhAVvoi44TmYh6l9GcTrscteFnpGbw5QrYN49g7Nv1Cef69LhpIZB5P5IK
OsiQHpAtPVvoZgk44BSYGMEK4PmAMyZ4fuQ9oUVmJplhUyGdg8qykwhoZLRYyqVI7lGlNOjJfsJV
+GIIVkRaHa7tkW+zNY2JryuJzGZ2/jI9lchYHBRnuWt3hIZNmnPFUMLXB/6lxIBp3jIQXwe+FDom
fTR+rK2bjhXqot+lzJiddnzVdjT/HRcVcpq1zfzjzm10iTzyqGkhjnn/lFJQQXrQR6r0anGbHYCY
XAIPvK/AnQ8Yl2k9S0N9/TundXqoS2jh2r6R/VMWHGkNumyaOcxAM2e+vqJdk+BWngA6eXAaoJN/
eKRr0XNjgk7CYDVzI6lNA3Sf6A6Drs2BOhso0QpK0AJnHzoF2zYmjwbHGKzJlWkVp9icX3uWeJVS
yh1zvHT6G95LFAOpFz9dVtIJuxLh1M0jmJus2I5wfXrctBDIvL+HsgTgBzU/5Okj2dIzIg+WAANe
AYkhrPCdDzBjUm+PSj+0MKIecggp0r3rAOCKqCORAWUyqTy3H7LJ9e1Kwy2FWHHV+nxZBnu6VSg2
Rb8EC1RqZjt0Uxr34BfTSzpz09UgB8r8HEjDDl/ajhVydaiojy3qzwI/0u1pQdR2TOmBKccY6feU
0Oq1I6JHEvbDTN/tdcb5uGxmf9Tj2oxwfXrQtKYs5t2IKKggPBcEkExnr4j6Ykb9wiXgwPsK2/kA
8Z7SdWoXvv59TenpFXGfudxKykuvcuCo/4YZ2KZJjHpxaJ+ncGS/OuycUNhnlTjC6uy02KhTJCPM
+W7mhjd/cWz3/MUEvSw3ioz/GO+kXNWHTjwlMkyzHZtr2fyaLNE8NIqCnnRv5RijmgpSlUux/moo
2RT9TetCMid94CxMfYvNnI8lXIXr843x0kIQ834EBBUEB/UpTPqcEg5WptzhECxgfEXpfLQWhNum
0/Tj70RYVeMuhGnJMD9GUTWy1xU+6l7RNplw5uuOA7Y2io0t+Z6NM8XHlTaudvSX9d6puDFx1qaZ
ZiZFDk/NI1K7CFJtk66O8k4i/JsnYu7Fq5IoiP8lJZ2uy1Bsh4L6KxGY8z9pzq8XzYYTImU9XxMQ
Bl47pEmfnXrazPDI+7Xl4PoFr4ZJi/HP+5s32ZMK8pq0kSE9IlzYmCKHN4CA5RWi89EyvPP0diP4
uk7o3KifoZOAU+CyETmU81/fCv36ITVjoypDJLChCEeSUa+SsjvNVcwAlk3wYX6Y4ur9vj9TxMGk
Zq3S7E5Youm7BUNy/YBR4sXEf1pygLypUawUmwgqvPFFom3OIynCbTC06nPUYVY6CWvE43T8gPHB
1w8YdX16qLSQwbwf2UAFmUEdUdIrMg5+kD5s6ixOtbsLqXNBbZmlxyYFyOPvnKVjzfvslnicUUGR
K2gmu5tOKvqodEX5kwWBEvMKS287iW2qUcY9HtUXfqMpHct5yTn3S74amWr3PJOnbdLEUkPjLY8B
+dOo90GGck7dpBPWmVv/YZexBuVQHGmebqVQwSFP37mNAxekWyemUrGsiazIm5L7yUdMPPap+JpV
D7dx7Sa4Pj1YWkhh3o10ggpygzripFfkHPyAgBkVMpP7FbHzgV9M2r7WOXaLzHY1Yga7IjFeSx66
2T4c4JSuCLpZae5wwMSEU4rNI/vIbnvwpfygMdE87mbGC+8ATrmJmhwszE7w7VPP+9xLmiElHuQu
5QKC/7LWziJ7kMqR6u4qn0ERqQf6E4jjTA+xrkkEM8RLTPd95QGcU4mC5Ee/TgBcnx4zLWQx758S
CirIDfqIk36Rc3AEArAKMoxgxex8IHhP4ZYPGZEff+cUbnekyme0ULi4/qA29YoFOghK7drElHYp
rOdY0C1w0muaPi5LR9aaY7+NFbqehh+dStXKM/8AGVc4LJlSKLK395StQJcZxpzgCyYOazbbdfm8
vh7ozI8pN3nk6/HX+gX5HKriYRV1I8e/w/ohM5nrHHnFctcpyRDren5mZVxUi+HzBIIJSgiMPpAi
fSPe4ArBwy6AMIoVqvPRirlb16RDbmUKUWtKdC0jx1TjuYi31khFC3TveSaDLKVoW15oSsU5mL1a
S/f9PgbpeqIpz2q1srLt80RmKTet5E3XhI2s/vOSGgvBEj4kihhWTkANoK3pAdUoYl1311yhQejT
adqtYknU+UVmW5jpSjw2p670mlNpVTjrx/dlXp0e7LxGBPNORGMKlhm0ESV9ThGblzdEP1kEEPhe
oTofrWXKvl6n969/55QtdwLUz2gpIHSoJEhSuuC+C/INmVKfYrJGZswf+T0y8CNRYtOEcaME7eLy
M+zxM92xdZ13MsOA8H7RSaS+nDsqXmJ9WHEL2hip0BWDZHSXF9aaoYVKuqiJ9AnL0jfijzRc347d
aZk1PXXs3ElWzAiV4egNHmfKxsl3x9wHvKRV90hpIYF5N3IJKsgL+ohx9opwgxvEDp/AYfYXoM4H
bDfIfRvy2Hz8nSDntR6WW974aV+qY1snWkXhi6e2zdMbRQpoKSAi1cKcc3ITQF+EyorY5T7u849L
hBT8QNTKZLjQE46CFaUkiZAeW1VIGmfVenGzVzOpXI7B+3LmV6Nokr3urQnH3iqdkg7J0C3KSKju
mlIzw0aXM+GEmcCXzWxT8MZA28eOodJCBPN+BBN0kBg9WJDqGREHTwgfXgGFAaxwnQ/wYm1Oa3Sc
W/KKdSgBSjJ9FFIi/rJrWZCtvG+dbOfTbXCa9fD6oPAsKiqiU1u/1RaN3DCFvERqZcrYVuCkEsIP
8NSHj/r2UoUqYa4+kMHPUcym3ntzv1ZfV6NIwfW6txJVm/lwuGphQ+cnLwB12VSoAV74Mk5Mdx93
4b0vySu7c1cyXlrIYd6PeILOlBr0ESX9IuTgCPHDK7AwgBWw8wHfMnmr1FLLnzlztzs3x2e05KbQ
FRBPyYpOis9cNJgZ06V0GY3K9tJRNdtrQVruPgWkccfpt3G4kv6poJKuJHuSO4+eyLPwBoTIjF8I
lcI1WTpl/YO5eX2KzaXKe8P8/nBI1e5dpqF5c5WLNERq1+a5oaqi7DoBFUowVotOrfLqEYdd+evg
vJd6KTC6nYwYLS2kwBOIJ2ghN/qYwqRnhAxHCB9OAQX+V7jOB3jGuR9r7mW3qBW7S2Hrb4NyMmei
9LsKkSi35VS1TBOMNiSv/af2QRVvGqYGQQ6l3weiQqa2UikDjxETrT9wSoGKIndTGJnssb3TZZIy
L3jBqx4uD3yxJ/PHmsNRjeIAbOlrNz7i8l5tpDGY9FuiUJYi1GQXhpk2HOcmNvtUSXlXWe7jkDNA
M2BaCGLeP4UTVJBZs91Z9F3uVJnnzQ/ih1NgYQQrYOcDvmXmzhyQX/++Jm/fV/ctt4qc+vVlSEqd
MGd6Ulz2hNpBYVmK0fm6zW9HVfwUeX7qQeIA0J5e0/dehOuJtRQgme7J+IWRUGHDEMryXcNTUF6U
OxVI5VZvfpJMhfA591xwr6tQWr2uC2ce3Vs3XYtKJeOHyTdmA6EKVcdKseNy3m8w2qfmSuz3VK6D
Qfc2oMoMWHyMzbob6QQVxAZ9pEm/U8rBD9KHU1BhBCte5wO9G+uRm468j78T67EWDnerDO3kJ9IK
6kQ15JRer3G865D22g++y8O7yR0jd+M8fQEmyJXoibZYgBsG4Eq4AwGoJH8UyrJoQoZUBCJPtcKD
7LjaOpuTpIBEeMRva3Luq8BZrdJU/Fn3l+O4KE0etVKri+pzb7YVIJklUvadb/DapuaqNpvKYp/B
9elR05qimHcjn6AisbF0puI+kXBwg+zhE0Tgf8XqfCAXq3S/478+o1V2b/uigvo8gHdtLLW/kr7l
GDqlz/VJgMqCi6aJkufa6lMY/vYd/+AEWPDR0L+rcrpORzKYmEYmgZymmLKpykVduX/MRirEpmqr
JTcOGPd1oJlx3+N9RNEv51LRqs79SxdVHjb0/NrzmKGpawBLKbYG310FLx13RgmuT4+YFnLgCQQU
tJDc7ANh0jNiDp56i4Lf85Qs9RhH0QWy8wHgMne9t3r8nXO33elKP6NV1XeVkVwZ8roSliZ5Gp2v
segruc1nWsejWswPCVAWnZkaZ3o2CXIN7dp4kje3yJCpfyWAEcDlLRz1gVzsk3SD2T2SdDl4STVS
rw4dZoN7X1/mBXkeV52MqlOymlItonNEtAZn6SSb3GGOcMSYiEeN7iMGsMfKNK/OGOxOZrvmexFN
UEFm0EeW9IuU4QfpTy7BBN5XtM4HdjF761qQyi0VyuqFbG5yUnA1piYwtashdYnyOitKv5GithhM
qVUAUzPu3mMlb7GIf9W/SwNAPJM8XU2FRORkBNgo8C67niqtwUwiNFFMJmmAYN7XgaZar/XT9xdZ
b6BTS7bJUPNtDOdqb4rqD34qaIrRmboJ7tu4EwZzfXq8tBDDvD+kU42nWuQNwEo/hoUc/CB+OAWW
yf8K1/kA7565+1Zk0X38nTO3rIFrbukU11W6MUsP2OU0hGr3lP3jeE/pDobeh9Ss/b275LGqoxWg
Fo79kkkmZL7IQ51/tw+FRHvRyEpkuE/vIB1nRD/tBJHBCFm/YBFnelj3dQCtVvErp7xJUgZCq+LC
516m+T2903WT/XVy1KQWm1ATX7SZe1KpGmpnxmW8tBDDvB/pBB2E1mzfpV5FKD/SxREAwCvAMIYV
svMBYEzfvEzeea0tapdnkXeP8idIHUNGU3LuRIFSFUU9WLooYGtEUfhNGSm7+5WTj4x8DS8nuaTt
3JdVpZrn5Tw7oJsVoUt3yeElyAV1BiyS9wvWfW31LK3iLb0CQ/d0OX3UbK929VKVbIjOK1WxxVVL
EXCFZ+3mEXCMNaK6fg29oMeTT8DA7XWzdIIOYqMHxEnPCDp4AgK4ncAwhhuuc7lepm4tMvM+/s6p
m+58OJ/RUiGFrtouWUGebQ/95JCJRhtViiJLKkm+zY0so5wA6mAYwtpwhlKyWicpv0f+PSfuzeQj
9VlkRrTjNk0BKpd01sphZpLcRGEzKa0Z7Ps6pq9apbDDlo4PpbdoVQd/uyxWI/Hf5nQ9sNSw5r6J
U7k6wn6r23U+4vr0gGlZDnoCAQUlREcfiJSeEXbwBAxwCzyMYgXufMC4gL5neUM//gr0NTu6W9i3
N8oL6KxONQQK9zl9f0Knp6WNQgNtU6DlAeiYUgBdVrpxHSmIHX5JTYuY/p3aVcKB4PjDsEtRQcpA
uUHRbVaRrmAoHdiBOcJLiawh+DqAV6sUtmbaEg8cd1RIJ9ktpOCQpYTT6p1aA7BVD/xu4Leh3GIY
+bhOD1yfMXC1kAdPIKighQjpBdHSO0IPvoADjv0iaCQrgOcDzli9t7sM02e0+NzY+q5dID4sO7l1
GrqiqmW7kB9GceyKN9HmcCIsdxYQJi7kVg/YbNiI55j/nuXiAsLzE2QqWZ9nyOdp8VGnWYXVgp28
yf7DOn8Us6+rwPaYYapSNeveoiUBKnVzkp8yJSvXe/VZHZat4/J+GNehCQ6uk6e2JPppkehHw6WF
FHgC8QQtBEcvCJTeEXVwBQjwCziMY4XtfIB4T+oZePr+9e9rUrelvPtntBTF3EhF67ThqOnji0M9
3qxdxfyeKvmHigzj/DIRJ+WUEJf36H698wOtXenJ/1pIWSS8ZcYykUxZaZGn4tzsNCvOJ5jJiRIX
+q/CWmDf1+G0o1ZRwDlPlD40vF0Cjp2C/HDLPIvRN5ZfuKo7VnnYbVPX1efn61qqNuk+NNp5jQjm
fYjGz1toUEaU9IiQzcsb4odLYIH7FbDz0TLYbb+jtj6jxa6Pj5uDB5gheKHOXUVSmrGWUCvM96pS
2ikR912VQfQA0Q2TwBW2RRLUIs8J/l2ODrq7bHUhk6UnoINMmLg6zgrSCIZyCiv9XHXuIfg6UFUL
XwyeKMqCDa3JmhI3EVqeOT8pubMWBfiq8oCfqBZPyMPjqMd+6UK4Pj1yWgiEJxBV0EKI9DJFS9+I
PLgCDPgFJMaxwnc+wFwmc9+kA3n8nZN53O/8Z7QaJ/4mw+vrLavktsMhqRU8XrQnIfFp1QdH+4tE
iaC3SmLtDf+FCe9xu+AddsCTvo5/nwrIDeilZsxhh9dJXR3kntxtlsIhGHKSmDzsfVQ8AF8H8GoV
arqTcuZ1qIXSTGh5in7FwXLH7VwGJWJKFFI+IR86Jx1mvu77pRXg+vRwaVUntgZwrdKmhOjoA5HS
N8KGownB5BJY4H0F7HzAF5O5L4vzvJ4EZuAOOgEFcr7WNq8qVZF40wqqY4wjc7XHJeHtW1UpvcRJ
SetqSneaLq5PeRmV+EX2OJ4oym8btPLusuz6TEpzSch/K+ZpHmZDf5GVZXHy76vLnVIfMgDX/Vjj
JpWyo2qDelWNEHpluwQ/Vcmu4bOi2XIpm3G9pFyfHjMtZMETBlWUkF5syLQQqmekHTxNFOB04gL/
N1rngpyhfL3v7zo8kVngQpVWn1a04QyWDQ/FjaofczVJ0g7pq/MjO/EcpROSzgMTWf1iH6Nmm06s
X1xPZOO6VIJCwVVnH1PKsrnRRx7SLJP+FHdCc5VlJYLfLNnPMfgqsFWrZKa5MsE3BR3isri7Fon6
qFvkYmxzvTRPtUr5wZrUwHaXD3R8erg+PWZayKK6UJC+qqKD9CZ1ZEqfSDu4mSjAJcjA/YrZ+UDQ
6P7t/R/vMqEdSUmCXq/E6////b+9/Zf/9P4/buz/oR/r+/b6v7mAxCPn59sf/vNnff/z/3z/m2lN
UwwZa8prWb1IvZ5w4oHm5X+LcrEfUqw31dz8dKtnsqRJk9OoLicntYHvpZybCKBX1rGR0WIpRJvo
cFU7Ty7nUmRkHbJiTAAOX1PtvLnVOlXfcMgpF6WBP2nGFXl3xzNDebk42rXxgtddn1XGwDWjm5kM
1KKqOuroIq9O0WqJMOPZx8zJR78Vf65adGoi/7/WfeVSh/+aw2v38PXpMdNCFjyBlIKWxEcXEipJ
EDVpzQ0owKexIqZzwe18oHh98tMF62ZPifnV1mhkuZAAo6ihvI934gPJNNicxoG033NjrahOKS6K
zO/DoROHrk4vi/OaeEzubSTVMJVOrNxBHRmc0KuwrhczQ9HBcDk0uWGe6xizW/SpJxpBUqLVXGyI
PhrZHtR3nYZFDB8s8G9wO53nUyztV7BiXJ8eMy1kwRNIKWghv9mHRErHEnVwlNDfTFa3y65yo3Uu
yN1QXtP39b91+srR1ShjQ1cgjdxhkINiMjuxpAfhdzL7643q4j1v1A7djLP0qNQGkNZz5P16v4er
UlSpkWg1fY55ommpClrT5zG5l5lyOLn3gW7BbA27zckVbmbqIGBUOAXWmwz+yfc2MliVYbkSw5V0
dFJcpvqdiyT8zKLpIC2tKJ96FGF9u1Ylrk+PmhbS4AnkFLSQ4Ozj4PRGYSO/e47gymZVOGkAN2Ln
gt6CNOlC+jbNYBNplwCWPd1ID2vlptLqB+6L7TDO87uGGw21QpQJlkRzc4M1ZDeYKDugVh+rJB/v
fmHsjQ9mzhz6p6b7m1yhgk5X2V3od9xx1O+Qy1UwNLAXvPgcBAmLea4vjGnJr5P7G2FeOG9lVD70
0VT0jb6rKkDBlX1q3+C2KoVI9aE8WT94+Pr0yGkhD56YcgpKyI8+JFa6lriDJ0rVwuyPHEO48DoX
7GJfpwXYaKrxksgsEkEpWpw2yVj8Tg5vNKS4dKqmQJZdeMj+NuGUBzeJ4LX7GDniDA5fEwcWLZjn
ibZT42k3pPKWUi+dDcFOSIfU/2bLNSAonbsr41o6fHVDqpY8dbgfwwOUWri78fHahrcbVYaJ4Kru
myHdre7qHge6koDUGVA0dlrIhCeQVtBCjvQi8bpz1b8wVzmYBSuyHt+wnSuG9+x1VpDphz29hbao
6IwvdQCuqI7kBPfVNWpJwd/nh3TG/SksaO4LanilDcX9RalLIv9mkA/hSUpCl8Nn6PA1mBe3+ATx
RNvvwpyK/3MfneSFlAciLEs8DXlDupzuOK4RcH0hTkvqRp5opH8QJabl6T4amQfrnF7yquDALO0F
sZp8jnePoao4XeAdKRzxaZP2Dj8KEt1KUkELGdILsnXf7VrZztttttjzfRCAu4xuafwM+eu42x+Q
j2smfNLo5PbWgim/pQ4TaH2TtPYztivh9nDomKR0xyPc1TvFJUUHMPM9yZnind2yjqGH7207QaJ2
Vq9Mbe1sD+cmma/Ixctoh624E2AFpYgO1zfYao3k+1vjpWnaEcikhL+bMpvTa9Wz8DNdC4AaY20y
93Nfde2+ujMP+nVQ2iXMPiO9RwrpbJj1xFFtJ2zRs7yJI5u4XjXc2oTQSO8LVOeK2wIyaUF6an1f
QVaaggBZjZ7IUvCDKrVzXyWQ7QXL9kSxQ0mHgH4QwU1KTueZ7cc7VefREQzF3wfM2RuwdrUahyM9
0ZSMPChND/fqPmbYSXXfg0hfczVI0wO7CrxiFFzfcBPjoPhXtBhNwYSorVwRg16aUmrSez3INRDZ
ROWRLo6rzz/NW6x7I9a9ERvers2N2OH7kVVQQor0gXTpW2IPpgQH3ILYcG3z+zixNH4Hdmp65wVz
EJ96gR/dSXzxB1SZ3Yn4oWMqurVYX7M2yGOr1m8rTFL5EAoZyXJ45Ry+BvHiViMwT0+0PaIAQTxf
a3j1oZ3Yrpun0XDMELMsQolQ0H3ZnboljwieaNLbQasV7B/00sjzXufRR75j4imi2OC2DvzpG9/x
C2sdl7Gp9Kltl76FpK+SUlBBftCfUqVPXAjNjECAy9zM+gXWeV/+97dA2MlBOiVqLoD3RSlCfRYt
C/UqWMpmhX1ykkmh6wSYWlWwgFKKCJaCHRIxSilYstJqXB8zrk99xrpbTT4Y3D8dX4PO/AAP99CV
aoB+B2XtzNFMuzKCVZ1S4Z/rG2C1BglOCYHIptSKnC/VQ0uk8JAC8RgYHF6w6ESV71qD8M+5KsC1
kSfHNXLgfiQEnSk3aCNN+pSYYaVWcQcyYnkB6VwbP4ObS9NZKop3KzTrOjZni6fjIEI09Z4csEco
d5MP8W7fu5f4FchN3Szglb2SCCAlc5i7rNidci2Afd1mkkdKhbAemw6JoSf9PsKLeVcg97j4GZUS
6CRNS345u69vcJMltfuJJu97aDXnxqeXlsJZsthOBVd1Z+edpBGVMkyuX7Hl4Pr0iGkhCe5HRlBB
clBHovS6p4sZib9Fvqlk5hewzhW5e5V2+pepE2kPmNuqHSGwEfv7DypAznIGEquc4pNEP/oV2iTf
usTOCQNrJncJhSUKn5nwOzl8TcR+/DKt+PFEG+zloEXU1maQCRWmiktwNAN7g9HRdnM/ry6Q5zU6
2EqiWmpvEoBoB+pBWDmBUNMvRGfXwc5pty0Kb0Lt0Ah7GvcHqNotlBHTQhI8gYyCFtKjF2RK33u9
WBIA8ApGGsIC17li9zPQ5fVhnkBH1W4dSi6g8VnSF186CLlB7ygMsMOkvL3E4szzr0VOwWlpVzQf
MKP2nJv1pK/spbhO7Exqp2aVzrRsjRPzjRPaZoiJMmEmS1WjXqlrHtyMQr4AvWhN+7VEQda6qkdo
DUKDqQFVLlotcgSol8YJs2DX07mG+StOsDV3qSwPj4RqUAG3k/GW5OspD+6eUgoqSZ4MhP5t7lNi
DmYaTgPk2tbWUSb0Y9lTLo0FZhLF/AQzr7hhZm4kOf6RM/h4lw9VhO0mbY1JH5eomaOcwjmRaQMN
fB7dus8qYzrZJNsFt4s69OzrxhxMCJXMHFDqmh30MXNQHu57KDV4cDVKMDuUB2yOgKsbaLWGklyX
LgF2U7Hztem3RL0Y7Rc2GXfFUT2wnMArXr1zBHXcCzeR2tpQzaoJA+MnE0FrgWkgOagjUXrVz8EO
Hmp2mfixm/kFrnPF7hugX2fwB9B90Zao0TFckKW5vctYNnMCyn+ePHV686d7wNAZpDijx1QYArQ2
QxSVoDRDuvUJXJ9SBla3yE/GE6xQQavn3X10pVChb2Z9cDX0UYPdUcc1Bq4vsGnJBs4TrVVTasqu
TQ9NiVFnv23LFz9VtVUn0DI27Viz2WDdmiCuT4+aFtLgCWc+MS0kSC9Ilr4lcrOUxCUoifUFsHNt
3FsxZ455bSJzEtSvr7WgPhYtiRo9Ucr4B6nfX6+avo6up5CkBuxallInhQp5Skg9KdujrILDxQcI
zL63YsVbMby9C8L13ahug07PKD/J9CivOfL1UHbPHA2q+4nVoTTGjIDrG2i1RvH9rVEzbCBVNmPq
o+mjQt/TkzMUyvVwHrrUpNiqHkMdt6KXa+VT8TWy4H6kFHSm9KCPTOlXwr4Y0idHnILTTOV2LGvV
0rhndUBdX+v3CnUr1+fsk0ZPaEN+ELDd37Vp6ITOTB/sKXD5X1fFalZHKfXDsY4DvbVi25TXATNj
QJ28HZPhKHGUQWsuc2GX87lpdQzK1HVS+dfZ91SS5YujkdvFKuZpRsD1DbVayu817AlQrdDLimnU
tkx9NEVZ0veMW03mqh7FYKO3zjZIpcVD5bg8VBg7rWxXI3mDYOAwLeRIL1O29M1uMJgaF7ctksDl
9wW4c0VxgZwkMxfks9QrzmU34OS1nkD8iFj9pFNPbzgDJDSjRLoNdk6KICZBtoIxwiFsUHqMGsjp
NuFxfcpMW93C0YonWie1FrS602lpKsozj9472U7N18jUCZLBjCwhDETXF+q0nDWPShONs5y2RLgF
0IvzC2B72XQI73gMOrbKRcjlta+RVFeRBXUsFIyelh3W9ATyClrh3SVTNcpP8ipI9sHXIGm+DFwx
inYPrv28F78gfwl2hbxvi0ZUjU5Sb6pzo4LXutoy+zQ5XkZe8GYbMfl40FIDuz7ZLk2lWNntuNY9
riMnDy2C/nli+tEFJTTZ9NHlXtm9wOwGXfu0dJjb4ZBjkoaWVX9Ci49/OiS/YTqtEHlCD02Hfnpu
pBWJvGxv8ImSC/5x+jXYe6it69VCFjyBlIIW8ps9IFX6Rd7BkYAwq8KKg8kN27lieAPuHEO9USXy
BrwuyhQ1pqzkvE0xw5l+CUOH09cqCn1mOCOdSXUuhqwEo/3Qbk3woPQqhTPVfu1ouAbu5FZLpJrD
KUQZuQ6CmLqN4V17s+i5z9KN5miIYXgduDoxBFxxAm67XxYfDIgmTKLUiF/FCT7FNqbIK+AwP1Nz
qahncTrVXvBP3YqA22mhS9ivXpubHe/akFDQQXb0gEzpGWnDkUAwm9Uv6/G+QHau+H0DttxOtpk7
maQHi0ZFjU7xV1k+SglVqDMeTztr0g52lz/gbktyVl6Zfugbrhr1Q/vNQn297VrNN9Zy1CZDVrvD
9zZSrotGZLPUfl/aX/q0gtTcjEQQ/9yCdTM+r258uz2sh6s+aiOKCpR8x6belHCXXjEdww0KTBJl
4RyWzT3f48CYGHlG6y+1pMATSCdoITd6QZ70bjWp+SLBFQyTUUUT8YbrXLFbcFZgfG/7nlec+RyE
t4k+iRRwJrgzyrSDtPZqcqPu01N0zxgUf8jTUyouuRWpAgdOOoWKXHzDj/uaXFt7fKtlm7ZbjxJa
Bq2eyKQoFOQuPXsm9WVwhDeDqy7m7O9Q9vWNuVrkoXcNdO02SKNZUF/TR7N9T6Le7jSb9bBz0UYW
QVkyGg7h5dqZcH167P5SUwxGT0xZBSVkSB9Ilr6ReXC1k2GUbc+PHKO4oTtXHH8b832TthRDSmDu
LHbvSsnYC4m8ZPSoTqKnKlBdvrOJHZTeVIrf9v0w6tJSz7gXjBF8wI055cKqlid/qDeyKm0uiRt0
OgWQWUOU3pOeO8Zp8zTfm2pup5Xq0BC4ukWi1ggraXWVTihN2UYmgmQjDH23LXJEHVJugrhCZ8kK
isuZQAnEq/dpnLXJNisztp5AUkELGdILsqV3pB58CQ6XFRVejOOG7lxxXDAnU1GX3+AK+r5oWtTo
escOUsIrIjInCVh7NU2umWyDYKqYdBlvwt3OSAT8H8Rp7f4s33u14r1a8ye+anta/ER8VO2MtN3T
sSuVBL13Dgjm6/VJMLdDyzqD4PoGXi2JZ97fFAUMnebU7fTQlK6ZnhtHCPFEBPyEXSZMlZBjFHWP
3BCHr0+PnBYS4QlkFbSQIr0gXXqfUg+ujuQ3T2FwJcZwQ3euOH4D+nQhfLW3aeRUTZNF58InUgYZ
l59G1afvRyWCieTWpLpMOzNR2mA014rCm7CzRiseo8SX+lK8bGysazMAEig5qvVlYm9mWp0cTphZ
Ma3bP0p9mK9+kGVJKTbYeWCV49t4Aa/WaL6/yQoOJfJGne5jin4WlsE6lX5Ecdam/EVkTETrtnsc
dR/L3m1477ZfLWTCE0graCFHekG+9I7kgy8yG4hhUBtOMH/5tN+NG3jnquryUlmBv+fDJw3ydZCI
S2FqSdVxeiVna1LgecdBXWF2XZ7WmXRbu72SSNujbekMGZev7wV7gJ513ZTgiXtJAxRUunKvQx/X
BPrtlM8xR5RodC0/bfwZgg8BATmtgS87JZX1qojWFG6kJznsPEPvHLzhq232TnJKquJR1H2/PmFc
nx41reyqasVSCjrIzwFzBPQTN5ExVcET1lcxC1oaw74uZEvjG8hlAr0RXyY603weBzHny6OxbIZb
vioWUlXWRTIZ54ovicPxDgRaIuciGSePbkMI+3UdrcmpuOHzIsUCdldTmjkX6QHV6ey1Y6YxN/2g
LvbmfcMw/1zfUKs1qMdOdqnDlFqlcBY9NLTZBxoYnRMxRG6O0NnwLxHIrfjLflnFdr7AjhlTa0qD
+5FSUEJ69IFM6RtpB1fgMLndDw9gXyb2N9PaO7fA+LWDmxjjfm6UcfHXySTxUS2bNT9Fuxo5rFCE
WqfSJP1nl+LAmXR2eyUdnKIVBEl2rCu69fD1qYjVaDXKi6DnrMdFqeksQx+dqtuc0MmRba4624ZC
jXktMNRs4QRw4a3WaN5wVO3Cq2k1UuK7l5YxRchlRfU5Jldts1fSxmlaH/PGJL8+4kcy1nIwf0cW
3JuvrLGkRJVvRcLMKCNcJo2mdLrmByzgFLw0gAW6c8XxG8ynT8MKel+0LmpMYfVQtVB9RKWJX+J9
JwtNcoQNESvdKUw45LpU8mF3QeV6CftEAO4iE43DO84idmFUUHq+6BBfQw8dhUonn/bgNRTczXw6
ekD8c32dWWkpD4fULChpGykfKWkKfScbY61npyeO2kZBajhFdcII6hEl9g5fnx41LWTBE0gpaCE/
ekGu9I68gy+rYYiA735nj/cFuHNF8YbcOa+6rKET8gPEj3WaH5bY9LHIlnKRGmh+K12DAmW3HIHy
hkWa/EL6bu52XcLFXx5lBYXNce9muSbtanfrdUz1/Y10jqY0c03s7qOjtMc9CT8Mc2U1TebNqR7F
vLpRr8pKFGEPjULbuBPUSJyq3XnGWRe7tCZ7dQodYb47TSTc1+M+hXB9esS0kISTWVYn0HknS27k
TkKm9Iu0gyNwgFew0hCOVYW4NL7Be9rJbrwTtr8rSERSVUm/JE+EnlEPaMGvJJRMbI+7EjjyxHCx
SMkSvDGByGiCF8VxH1q5VuLVq1WXJ0glFLTaQT0prQgcGdR3b7iDutDB0PtGfn2eoDzi8VA60xqY
BCV9hZpAqzlxN700yhLxhF19FEw1ywS81Sv9wu5xzI/0tWc7UDswdlp5eWLKCjpIEPpIln6ReXAE
GvBqzMijvOB3PtBcoCdH1s/Q90UX48KpqSiV+uGaxRRq7pU815R5nZEamVBHam9T43i3V9OBXoY4
brzC771b8d6NXV2xUaH7iUY+ZlMiUoM+qL87e+51N+iYEsmKSkiY+kjFVxfktEb354i0dMmUmmrC
ne6BMA16birhCk+N8j9v1VFEW0RyH7d2kevT46Y1pTHvRkZBBelBH5nSL9IOjsABXo0VOekW3M4H
ij9DLvPJqz19zIW5vNYvzPGfT+RZJpH/nOxEzESWZe2nmtxqCWDCA7PhaXYY9cNuSTMhH+ftWxfd
r3ytnN1lZ2YTwN6q4qDooqU7JYaoT0XI9cHSfnHVB/n/d20GYgxc37irNbotrtU5fiedVkm6ZWMZ
zk07uUbkqyqOGlkn3uC1baTr4Kx9aVwPUq5yZh/vSIJ7kVFQQXo2lmFCK8QBaZkxR+AAp0ZrRAaM
JUZoaS2okxetS8H+QL0suhhaU2LNCVB6xqk8of4S6lJbKZQ5y5LUlYQ/Y20eeCgVduKyJxR29cdt
ZeL6dF1NWpXdvp5oZV9otR21m3bZ+CERxM2aIK56J4Bu+M3bPQqubxOEWjNPaA+ryWE6zVUI6KGp
TBU9N+UZh6eW8FKCW7yUXMP02K/xcX165P5l23yoL5ZV0EKK9IJ06R2pB1/g4dx09twe7yt+5wPN
b7CfOteJ/WtPD/ZjUcfQ6gm/K5mLKRuP70glNJ5827j5k2+7y18k25DtzIGcuvce+baP7UJ+e79y
bR+bMm3P+8i07eeVTyiZcpeLVLeXJWpYMp6SbRsuO59tcd/H6g3m1tBdeqKpvA20WnWVXxyxFIhP
79Pr3Pm/E5tzZQUntZ34r8cSpH+Q0I/x+heyjm/lkk9QcqbynCxP+kXSwREYwKuR0hhW1M5H60bc
CdPGRlTJjXi+z2xSq5NmULlEeia+YHhGaDvHCipbUlZBuTlvutIbHc5qPtGOaJ9DGZNDeW7Edwfs
11tF7zzbGJCUjSVotUFRIw5k+DNST0OrkfnqfKVzvxTojMTK9Gu2k5dT77WeaJ04A82kSpA8vZAA
id5bzuaqJadiPtDTkOTuVp8zQqvSPXb/sqGPqZe0ghZynH0gXWezktyDJxCBW2GmMdzonQuSv436
q9lBvV7b3E+3unTSqeDVSQLZJPmSh10oNuphYnCZuXRk78SbU3nYcZUZGjler/1C3SH8Nf69op3X
/a2Ui04j+KBTolC4t27f8eBnzv5hPnvHlUVfJKqjBd60VJ+ZJ1ov1viQQ0xfCipdqrQ8fU871yGe
8CGfqbfJWyT7WEWLeFxoO3hfY/YveM5RYLHj8+V06gQgqAekSs/yXTdHoACvxkpjWHE7HygumJNO
Z0gt88B8/7HO9d0y6zo0zv1RD5VMdQXQHes1BZ0PWzxIQBHKmol6pHboyr5fl3qCR9QTVPb94hbW
ZZ5oRPCbln0E8JjeSPYjtQ0KG/Nln5l8WWBSuqwxN/JqOSiOsmHSAaOaqY7z32K9KfZPaEqpAleo
U6iawAGeUbTtdt7l+vTI/cvmrAyWVNBBhvSAbOnZChvzBBpwa8w0ihW/84HmN9gfT+jLHYb16VaX
j1fitJ0pvICdReH+R2hJpoNrtt2DjBRTmwLw4Ywyt/Go0fMFu0P9K/5nJPVHHxdHp3pRagQkY1uR
GY6e5/Ru5giXGfs/92z+59UNedZynXxv60GBRBinabcSMYZD9o7d3ExtCnCjpZMjVG1WrJYLcIf5
1z3+nXAX3Y+EgtKUHD0gT3pGzsETCExejZJGsCJ2PvC7wJ521KFNeyTjEdJt1dCQOSlRqEFKdTKd
DopTOcr/0HTS8WOmqkQNryIQcjieSGsBlWt+4cC33xOc6d10VffmQ3l2zhlRUEqharqN4x9HQrzk
4USJ95t5nBv6Zt65vrZvtHANqNQo523R1rxxgKKX5oWU3CjC0uWXyBAPv00BFXMMJEcKpJs3cFFw
em7g9LTuz71fdJAbPSBPekbSwRMYwK2R0ihW1M5HK5KzsDO9YKUsZFK8fpcCarjCEXvYCSrRZdTS
1Le4k7MOFwMmMHs2RYUS+b/nZZfmqH7i9dWq8glzhKZSJECp9aDfFAtNv11hw8FRr1GrdGh6HxoB
V9cUpqV0Rtzv4pUEIDcSkNFHw7u5D1k3uvlpyamaxWnTTo4RtO2OmeP69Kj9y8aeTPoKvM5NC/nR
C3Klb9eUMldgAb/GS+NYsTsfSN5T2ZmVhnblkXFJOVryqoEh144dM4pkOSsYag9USPSZsGEqvzDK
7kOVxKPi7yzBsPlcNhM+hxI2ME/Wvdwq1Ypb8gjDdLoozbEO99GwzjbiHMvFT1e2STh1Fh/xz/WN
u1p2qaEECkuX9koN3QB9kDycvpsTQelNoYT6G/zixVCtgr0DYrlWnZT494T2hvyfJLpz7bd8uAek
6szv7BDN08TBaaXBaoQKfM3Rcrd+xlwf6QfmbdW/qDVlRpUVlrlDvqvN4fRUWUEtnZ2n9IWKA9vn
mRnc1ZJ+iDor6E4D+c37tOJrqqxwv73OTMmn5U5G5+R+pyU8Xxw5ahzvlUr+/u1ymrgdfdUah+9v
3s8RpakPh2MVpGnpaD+1/KP5Ur7sKIxD9PYcQdvugH+uozKOf5EsuB8pBSVnpM0koWOHqiVa8oYn
cIBXozWO9xW384Higjk5mIZz592YtzuN4Kdbs4agC1znEucvB8XkjSqi+OwRjHYoA2n2uWniLdnL
A3MmG+g6QRjtwalyllrpbpFejPtZ+YKSq1C2Q1rP7H59MoswnbKJz+4YpM1XN9JEIPHWboouCRrE
456mrtIgmFPLZs1383mJujhDO+ps7ufMvdb1hMvKHK//Hf1XIsKQjFMudI9pVH0gT6UP50Rmjly2
W7waI41gxet8oPcN1mTPu7Hut+/Ap1tdSYHSSKo9lVSsoSu+R3m/ZMlnrkwHHhmtZ1SVtsyU1em2
sMy5rS3VEm3pc/VLXpv9Kkg0mfzEPJmOi1ZTvu/eqIFZYvZu6eJn8jjMKd7M8M/1hTgtxX7xRFMB
5kmpOSKVHnA0ol+y2MIRGeYn5mjK9JbyHkkigTkRv4zbv6RuMxxyCkpIz3mJ7X0hh9LDca5syUcy
r8aK3NN99flYWzfmTrj1DeZ3FptPtzpJxW2I1Bb9IGwTuxelHPD6zZU53hRos2uvpR0cQTyq/Fta
te7r0rgMJ7Fgv+gsGFR+JzZDR6pI/k1EcGuOtbK/MZYX80SEAtx21chDK7yYTOf1vlkvXxU7mE1l
RviomgqxXDi2Em1c8G/UsU25rSfq+jdlrGQEVGoL1F0LutX7F+cxUQTxnm0U10GsMteJ3dvsqlEt
8eAr2cQrSxuIaSTpkYNobS3Ik45pOPXajfxYA8dp9U37wh2TufabG1GcaNTnfjM5U1VmzzRzke/d
1i19zTNHZr7m+EtdGvUhjXrBh3xTeozD90aaSu/g2FFqDzO8564q+3pz06kvnsGUGRzph5YdnDN9
6Y26qvMl02rNOcDVS6PKCrsi9OlksMzewYnfpjWDUcwd2XUsS06ORzEIfskc5ilPxWnAezh2llQ1
lVzpHYkHX+mqEZjejZhGsqJ3PrD8BnkSc93I7w87GpUFKbGIU4o4n3r/Kn9hpfsvWbaMoToRE/ck
580aaZRUhqdorS4uw9OvgveHr6MMD63qo3e15qpctBp7tJZkQxruuVFcyxx1nHQSX3ydLXgftocV
jZZUOzzRXu8dlFqjEip9NCXEo+dGEekNnTfJmOt1VM9X7vrbY5vrq44Sv1xH72xZBS1kSC9TsvSN
xIMrsJjcGi+NYcXufCC54C6V+nBCJ3IuTtiPNf+ePZQ3ct2S9FoeuTOW0zWTcgmXclLKVwf35INA
b1fOu7yX5oQPT+SAHa+WqjBwWvXytNptfApKTUkXHECEN3UFMm0DchQXlX4Gkzp+0Gz4tjUBn1s7
zu0yYI+bVmu43zYXC8N87nIiP5r5ahR6fquXH1P3SPBGDuirt3ZxXS5/q25ZBSWkSB9Il76zImLh
CTTg1phpFCt+5wPN0MUct4Xh062uagKkfuzsOlBUZjxSM0kYFCWVCRaZVRKm9ws7zbeSgUhf8h6p
x68dXLe9seCjKmdBlLHtzjUYtFo4zDtdLP028oKYI9JdwmuTwxFj4DqG7xanqx2rqaAmA0hXQZAa
iTZJfI03cY8ci8VKVRSj8qRlFPPeS6maHafQI1E6ZVEibac8Y0wJ+dEHcqVvJA5PIAGvxmungNZq
HVpb97x2ZrbhzE7XxM7bHVv/6VbfSDaFJzglmnE8i+oSd9I7n8arbKLbEpP6Vsj3prC50vklCtMc
vp7Y379UOzHaL/jHFVGq5HfZvbQrN6B9WcyVztvkfN9jDPPqQn1es38ah9OpQIET+CnKrXGWwgGy
R9Jroj/f4JA0anDuuoHG+2D31pdfSKSmJ5BP0PIJvVLOMpICIungCAzg1UhpBCtq5wPDBXG814dz
/9yIP1Ik0+oqoiCTiLxCMnvrzA4yUypCUXQZHzJ5WxfSC0iRPPEOHWhV5STVFr7Q1rm8+Js/cy34
TpKZBQ1cAKHeCnHtS16PHDttfdeTdRT6Onefw5f8GbTsAaWvNCnt0cZ2vKjoZZ6Mx+XgqNS4+L9V
3r/JL2YOxuCqJKBeHGVMYU9+kSx4AikFJeRHH8iVvpF4cCUTi7g1WjtZOtccyWvrZ9SdG+ZGPa+x
aLRmLfChohngPk9ksnpmHDf92dbnJxN5rlEUpX2ghrQKNVkLSqmmMLAF8pxjK5427a7GyRNTo10u
WviN+MPNmlPCinjzZcNIug1ejMQoX/irtVNHnJxunI3RunHqp5fWmjVn2R9V+GoVU56reFKIAH8V
sPUbQMoxRu9fvBeUpwBpMkwLSfrTzSddvSP74AtU4NjYaSQrjucD1fsdcDq3b96BY9nE0eqy6ma8
kqShzMKFTDmnbAbFp6Z5BiF78SENVA4f1LdSiBdWopCOzvbaxjV8WSo+a42YvnLdX3c0qFBqWyR0
Phzf4QgTaTSCK6q1WaPKjmEL6d3bOLdAEr+k0W7NTHetN2JX+J3dAqVjxJc9Ud/gGJ9IRtLKrXnk
WrW54t8lEe5HVkEJKdIH0qVv5B5cgQj8GjeNY8XwfCC64E+Wt+HMMTf+ZSx7PFrTV2CPnZw8dzIm
yiwuCDFwTTByT6CTGPYmnIZE+U1UvvPaK9ZbT831qQI92a2KZr1GIq2bVmNLXviakrJ/80qazZN3
fwkrFd400pbo+sKeFvYy59TSNwIzZEefTx9N2bnpe+rrurlq1eUyxa/3fxrHXSH4uCoEM3b/Ipnw
xJRVUEKG9IFs6RuZB1fe/4lfY6ZxrPidDzR/xt55RW7siaUK7PFUlaE/E0Kg82MmhXHGzyuTGVel
p5n52uXlzbv+gR+g5u4sn4edK6o7Hle8Wc31+qXWsII25bw8LkoV2676aCqo3mWp0v3mCInCq+Le
Nlbpe0XUtTXuaGrRweiQ1rHZQp1AAnp1WVfxM98WBTdwsJNehREQYxaoZ+/19vsXe1UnyygoZQfh
aqeHlbkz+8lIBVfgAL9Ga79L11+oL60FdZL9OYbtBr2thlZaXaGTGcdipdjI3k7hN5F3ttRF21XU
39R1Jus6Jd9Qq1HvVp+BC3I+9qhaq1yLnK4cdzbnRpqRX8m0XSIi24EsOHmbU7VEGpCaLt65Dr8C
t/bmZULGSlwbh30miA/rUYokeamAo+Y8VHDaKnXGUOIuXhPVXhN4PvALDpJ6AvkELSRHL1Oe9J29
CbUrvBCYvBoljWBF7Hy0brCd++1nsNcMj7S6tFAZzzNq8Tr3BHbsfIT7UZPDT3fAN1nie7EHZAvH
mlmQWWc0WRwCcqeEx3KiVq0kQaY4ENGx0KrkBy5kZAs3rfAmC75a3s1vk46+W5u21nRya9d6nHfb
qB2SOOCJHqYbEv0S7w1HZByY89wRyh5Bq1Fo9PD16VH7l2bnF0sp6CA/ekCus9/sRBKuYUzOT1J5
gJf4X7E7H0h+AzvJJm7c9dW4cFeryyv39YWxRjOTTyi5jCthZvLYK3gZqhZP8Y4bS2LB2+W1lSyj
xK4PxAs+fTVTikFRAdqzz7trv5cNbNjJ9CtP44tI1iBz5DxP6FuxE+BXnNcgTresCde+ALspOYKG
Sx2CXKfMX75WW/hiUk7UhVAjfy7VDBZP5xblLEr8e4u0381yCkpI0Cu6JEvfyDy4mljArfHau/d/
y25uaS24k/dvOPEApTIm7mN1irOVnLra+2Z7zBG7NqdXnt7aYeMsqvlMeGcp3TutiXvzqa+pTH21
NTywZ39a0+GdGnas4icqHsymZXtsjkhvevYuzzw1wlK3KHDdPApbyAN7WsxiPdGIKGDXNviohIXT
tlVl/oQj9lkvjvC5aM0jiKzZoI59nFH7F06GrUlGQQXZQR+Z0q/3d4MP6WaLSw8bvbhfcTsfKH6D
eazxgfm+Zua21XSjkDLznng7TkanvL+6rVyFLM1ZezjOa1q/JuKyi73Gjb1uiVa0hbSmcf1CPfR5
f1Vi3qBCzRjoTwfEsK45utEcTa+0JD5tpyU3Q1oTc7u1E3/AnCdcHO9nYgPpA+sWfTfKYogrYgYn
3lpxmz7rCatdu3dxtpEycv/Sdt/vM5wpIT/6QK70LS2ueQIFuDVWGsWK2/lA8cbc6R5/xhzrT2CO
3UylDaZ5YJeGO8kzn52xxoNvRZobn5KZ5+xQi+e8vuuE/cqmWIgbkn0ssMdWVlO/bHmVFJ16osr9
M2jVPtxHvWqWDWewD64I+4Vf2+w0DtvKAn1a1CgjUZUKHUJrnoooYRH1z1S1TOfmYZ5adzQLaUP7
5jFgHQvksZQxbv8iecz7kVPQQYL0gGTpF5kHR6ABr8ZMY1jxOx9oLtjLcWo4QH2BfpnsB+4qBU9y
KTwLfsTJVSNwrUhD+ea70946eCFTxMmKWWVRKDik5iXViM0oNTVfV1KFUhOMYAdTmnnu6aHiWJGG
UywGPxVve+rzYsrZUhhQLI4oWUUqZk0wqTqhRIjA6R6c7L5j9LnCFqhb9ganTaEJk/9pMjHUnS3c
bkOKFbW60wEOpoHcoI406RM5BzcgYJXsREjc31idC24/Q0xU8gWxtcMG2Rp1RVBayyq9Vknhaxi1
+Ph+kskTg+Y0oCZ73eg73rWa62BS9s3a8wCada+SCoSycJnIUmK/iJSDUm3DPVC2k57rCB9OVmPs
CPoFnT5ZX/Y1vsOtPfS+U6+RTIlKOKf7mJpP5fR8pzwgHLVO1jJ4RVfKGNCcB+Bo0eeo/e+9WQt8
WEpBCfnRB3KlZyQePFmDK26N2B72jxjb2lpgJ/njcGzqjXtak05YmzqzN5KUXpnRiso6v3bF76ft
SKRuKehCE14yzX4ME3G05Nrd4bUgfWm59t1CCh27WrMuezwxd0bjolVbdg+2yqnnKg8rOKoj+LQG
d2YE2NdEE26RtXFIn2EKzfXcbU8b82uSvVeGjzgmw6F3dejn+70bDW0po/Uvfb+eKPL7ghJSow9b
5Ua3jIMfpD/5ND5kcUhrgom1dePsfI8/45zXCrTRwrun6lxL7Zu+WYNcFAPx44hYQyVYLI3TEuUS
ygjvlTmzIybh2rNZV1Ypd6tWxbdRT9TCWRBailtUH5VM1YkS3brfPE3Mhnm1juw4Lv3dhbZbm+9v
5Fzt4X1D1lnOv/g8DjtUwBFFaybi7KeVXZ/ar/2Osg1tGeP2Lzhn6AkkFbQcu6hepmTpeco7OJoo
wGlgs72vmJ0PBH/G27GoC977sluLlmJR8GDfeP/YrbuIRC1eSZNWJ6J8X+OiOkJC8YT3tD7cuywe
6dZThN6k8s2gTiLFyfVELeh4NbNn3ULRr/XwVyU5q2pwVEkitVFyRDPwoLhNW3Zq0dr4LGseacUg
iefuAiD18Eo69UIkbRnmiKyqE3P8qLXPY60dt4YptCeM279gy9UTyCloIUF6QbL0jcyDK9CA30BJ
X90Fv/OB5oI9aT6H4xJv7MvyJdc1ZWg508oiVsNWRXQl80p7z9ato5u4U7o7wwMJmhLfcc5St2Iy
TtF1231d0/B5q+ubXi5KtUQPtYbfXhU+7eKpqnwS3PrkrFHEdY0dwQ/SAh1+Yp5zhmnN76SjLn5E
loHZN1Hn8ERGjxelNIzdoTG0caMO5pz5JuLdb8xhCQUNZAd1ZEqfSDu4AQf4BJ3Nmo8L7fLz99uZ
PfcHzpwOAmm3NBur9lzyFSxt86qpdQYfCmKy8EvcYu3KjiKZWO8/Isa/7MMnp0Dapyj0tGppo667
a3Z0hTfDyfju83vqfisZJs1RtQc8GOrcpDHEdSBNC62u9kRKvgktlNbyxbZnSnVmCb46ji0Qzs3R
/fDPqSmQ7t6vjfh38hPofqvcB8cXbPpo5NiHUdxu8xeH+Ld28RnoEM5b1v3a0jLe3hoGsG7JhE9i
3rlBI2xkC6cPPCGbXkncjiaoKLT0scbxVOmmCyHi6TYeXtvnrfk1KNrmVD9RCVA3rYq3pPqobAi3
JofSenFUSeI7N2NsmcV/XBtUt5IVt9rOTmgIHtmBNNvw2N7p16VmCfemfMIbvDalm2EMbJkDWG+f
CTXnF9xn9cSUU1BCfvSBVOkbecMTKMBroJPuLX0A275Jxm6/mN3xaVQsVenKNQY1WvrK4rUnX/p5
ZERXlS9LLzaJIm88LNCFjEGbtML2jFZeoP2w3uPao8XOSnORVt3irjzn9UWp2ldHezQ8Ijb27oe1
f+FDWcyt91MHX/41EjVa+s76ie2i1XbyNNALlolq3xPt0yhYu1Mgt9o7WmY1DHP77fVx7a/24/7F
vsiqQEH+H9NCivRiO/reL7kHX4GIpo+R0vd/wfB8IPoz/IQv3fDzIQn43epmg49f0RJEQluUhaG6
6vooEd2/683uAkds4Cyz4eubrs9+vAD+3G7Zh/xZ2FoquA1R54tSTTyh5TWH+q9rec0XVzV3c+sP
rEYR14bfLSixLOags9shE5eIXen3U7eJCo5IDzahH/6w7h4BH9mA3h9cUfcvOL3oCeQUtJAgfSBZ
+rbMzVWgkfRSgFK+tkoX9EtrgZ6MrrvDmG7sx4L8AHcpwTV1ql5RPoqYgo5L2mVP/nTu2qCAiF5k
FJ4bTs4EkS1J4GKN3pKvK2pb3V/Jsm1KlVrQ6qNSxvc4jEm/uKqJsB2OxyS91LRNazbMaGnZ8BPa
NJjWZmVQvSRO73PiDfM1865M5HGdVk7aTdu+C3VJiZCz+a97BMoUy0gULDsoW6Z7KKBT8PIGCtoG
CRmW2jsd1H194+w0rj/jvK95QqLV9D3OnilNi1NIkm0n2Ge9u7uud42Kt0DfLAoGODV3jbcDecRq
4VSkwm7LvnvKsV50KhUQyKOJaUE9v46/F0eV4F7y6s65qBFwFSjnd4LJ495iCnazN2UloXOP28LL
Zl5AZA/O99tp+5qNc6z+dzZkxyIb6ITUtFWzNJUYz3J2HmAjUGJVEP8rYucDv2/QJlBpQftRo9it
5s9w0/XkmzBeRpPiHSCtuYy45VBCa6FcvQ+cc5qc8Hdw0vXGHLvvqpJc9RN10/5KlOp206+YDcGT
2hzippJiiQy5RkZhQ9tapPhulesJVaQ1peJ1hj40V/25HBdH5BIOXqkYzBjuEI0LJ4+bX6rvKpZS
ULr7QKblkjP8BAIq3n7hVN5XzM4Hgsb7b+//eN+ULzO9j4P023Nh/Pf/9kZKxfktGa8+lSz79a//
5T+9/w+9JeR73Z0pLF6STZrH9HpBNkWcpFdH0P3aSmpt19WvXr+gB+XxoDW+6efu/1fLmOhBd2w3
nfW6D1P8Zz5/0IHePMvdFJ+tDZr6+4vdVJCCaHuQad90cXf9i1065HYTnsvkTerZampt19XvneOD
lqjuSa+b6Txb7uPuG6q+jcfr4/H6DbG7k18pkqDXTXme325az1ZVa7uufqWeDHqiLIXXRevZcj93
/79SdAc9KJcH5fJNP3f/vzKVbM4aDuW5w7tpPVtFre26+oXtLchB+HiQOr7p5u7+F3bbzfn6J2ES
oQapZ4u7IMzVr5wBgh6U53fhpvxsZVOOq1+5lgQ9KO/LUvW1RT93/79yVAp6opzSSuvZcj93/79y
fQt6UK4L3fpTH3ffv/CjhBQkx0JmfCEfXf7CB3dzGD8Ej2UV/NrqXhPj6lcu3UFPlFUx/qL1bLmf
u/9fBQoEPSi3B+X2TT93/78KQdmcTQzK+7JKfm01r5lx9asAp6AnyrLjX7SeLfdz9/+rgLmgB+X6
oFy/6efu/1fBl5uTN0B5LKvk11b1mhlXvwjXDnIiXNeF/UvL3dzd+8tGRTQeL8tS+LW1eWGMq1+l
Dwh6UO7ryvilVS7K5XvKX1JSBD0oH+ta+KXVY2X01a/SnAQ9UVZFk4vWs+V+7v5/lTRns8c4lNu6
Fn5p5VjDfPWr1EtBD8qP9ftLq12U25PybyTyEj3TPR6Uni2vC23/hubXhHCiBU2VXr+oPFvNq1hb
17D3b/JFio7pPb4wX1psbfkbL3630Hp+3PpsWWR9EdhvZSkNUhAtDzLlmy7urn+V+jboQbk+aNVv
+rn7/1Ui5aAH5ceb+KVVL8r1dylHYu6gB+X+oNW/6efu/1dJ3oMelMeD1vimn7v/X5UOCHpQfsye
L61xUR5Pyr9RiiLoQfkxf760rp1R37+l/KWuSZAT4fGYRM+Wu7m7/0WtnCAH4bSufl9aWxD21S+K
LkEuCD+W1S+tazs3Htu53yzgBb2gXB60ypd+gnL+nvKzHBzkgnB9kKpfugnCz/n3G7UEIReEH9v6
L61r+o36PeEvdSmDHpT7g1b/pp+7/1+VOoVe8DwetMaXfoLn5/T7rcq5QQ/K+4PW/k0/d/+/qMMc
5CD82CN8ae0X4f13Cbuod5ATYSUNvkg9W+PaMIzjSfj7qvBBDsKP+faltQVhX/1EmK/UphXJlNNF
+THhvrTSRTk9KPsM0X0KfFDOF+XHhPvSyhfl/D1lzmsPyuWi/JhxX1rlolyelDlDXJS12JlyvSg/
ptyXVr0o128p+1D4oHxNwP2x4/3Suibg/pyAPp10n902raOm3C/K40FrfOknKPfvKXN2e1C+JqBM
sTet/Us/Qfk5AX3u+ZbyNQP340Hr+NJPUN6/peyz26bF35SvKSiLxEXr2dqvKbg/p6CPVN1nt5Xy
cc1BWTRuyulLP6Z8bN9SZmu0Tc5NN8X55XjojL60UpxffBV0fdbqPiGthC+V0VEepMo33dzd/ybh
+VUx5XJRrg9a9Zt+7v4vyhziuo9eD8r1otwetNo3/dz9f6XsA9KDcrsoP6bcl1a7KLcHZR/iug8z
m76EpnwdQI/HlPvSug6gx3oA9W08/phXX1rjenw8GeNr0Y7X/8TY/JCasf2i/JhXX1r7RXm/KWN7
IcaSG1/L8W1i+c1u/6G7X2/66//ILQyV4/38fPvDf/5s73/+n+9/E/khm1GTx9PnW7R2KypoDWkB
SpcFaWPkj9bb8zcK2azXOxqFHxSh68vzh7U4Nxf//e3//icGmEorVQPU5vejF3nE4sHOKPs9yu39
Yy4E9/uV/zkx/uEv/8v/lsr2/n/9v+9/+Pu/v94/SP5DHW/znn/7+1vBqvzaUf39/3j/w19nEv33
v/+f/7KlP/79/3n7y9/ffr5fvqK/98D/H54fXVEvgn6mUfvH7Om/vrpK/Y8f+V9SzdsfP9K/pL9s
Zat//N///r9+x7DKhNbX4EVmloz78fsjHApWVCov91wy/f559prL68nX363lP4mLknf9/bff5WB6
Jv4HeSg6Tjx5iD7135Sr/o773/iX7U9be/Fz/Zb/jf+mpn/L21/TsbU/5n9hKPnV2FL51/Kvf/yo
r9b8oW15/lQY61/nP0EQEun3BysN6X9ssPmruKsZgPmNgef0V6BP92BeQ30Oc+EzT8Y12pxMwuht
eaot9EDml7y9xvl7w8oKBfsPDSsreeuXgW3i4PVx3Dq8vAbxp9cWe8XWg067uf2rxV//WOLHZnDW
x/LvD0Cxef+xAeRpnP8yEfzapfpii97N5kva6U83MNuf+Xn7a6nxr+kvnj3/+scUry5v4Xa9aqle
r5nufUksHfNf55s7PNSeauGu8vrXL0/8lhg0piQXsueYyr9tf36x9HoYeMqfNAs8MAb51wsB8/qn
f2LiJxXj+12Z/9h9Kg4b/rVpvDguLd68GwXegr9KYn7p+e9R/1z//MeQqKXL3GgpxctuIbJs7K+X
8U/3glH/HL/P16268RcmFr28eriG/bf3f+JDlONDVBIfov8PrD6AlwplbmRzdHJlYW0KZW5kb2Jq
CgoxMjggMCBvYmoKNTE4OTgKZW5kb2JqCgoxMjkgMCBvYmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0
eXBlL0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFy
ZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUK
Pj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEzMCAwIG9iago8PC9DQSAwLjkx
CiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMTMxIDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlw
ZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9D
Uy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3Ry
ZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjEzMiAwIG9iago8PC9DQSAwLjUKICAgL2Nh
IDAuNQo+PgplbmRvYmoKCjEzNCAwIG9iago8PC9MZW5ndGggMTM1IDAgUi9GaWx0ZXIvRmxhdGVE
ZWNvZGU+PgpzdHJlYW0KeJx0vUuOKz2TtDk/q9C4ACWCd8YyetQLEPoyqGygavJv/xftMY9gZKG/
Qr0ST4qk041XN7rz+Emv//Xvv17H63385Nc4y09/tbN9v//3//Xv//yP1//3L73W//33//PvWH94
/f5bPxr6/p8vvivvf0Yh6wt//X///d//8e//eP3XXa6z9//fLPcvV3YJcPzU80jn6+/nV6TznD/1
lb955rdkUmmk73/PUb7l9vH9z5nG98/vMn/O1+c1e/7++Z1qU13t9c45rZ+eY4mV5/rz518/0mpY
qWrrob+Vb8n9Vc6u4pT4vPLsXx06mc4ceU79cxS3GumK3n2ukpcA75SrMiPaO43zK5CEfuejfn9G
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
9nuU2/vHXAju9yv/fWL8p3/9X/63uXD+X//v+z/97T9SMcl/V8fbvOfPf3srWJVfO6q//Z/v//TX
mUT//W//7U9b+u1v/8/bv/7t7ef75Sv6Rw/8/+H50RWpOHKlp2nW/kFfZavpr7/DoDICVUUc6rFZ
HOrV+x+NSYmdq1x23ZOCB/723/731zOp//aR/5RaGr991D+lPVW1R/rzbx/tT1vb6vxb0m8f6U/z
39Kftr/+9lH+tP2lbL997PPf/o+//a+/y2mRbfIf4rSoWMpXTvNfUhGHKVf9hd9Ca/vL1iZXcMhv
+c/8NzXdmee44D0dGkF78THvcEv/TeWfNV79Nx/8a/3rbKXyAmVSL388YuUV/sdGLL3Y1xHXjNQZ
x/aXexTmo/4GJG3Cx/D+ISFwd04C+i9JwrAYsijQmZ7M+dXZ9pe86WYRCOmUf503V/1Sf5Lo/Pfk
fy8gVybhPkf0h3JUnax/TI5asX56x6sG03+TyF4jynVDpMhh/oCkLb5dXEq6f/kt9flfvfCWHkCk
m8LWuGOV15wcIc3CFGNC/TVeY0+3ssCqjstYkBy+T8xIzo/3ACb+kqKD35Gn3MdmRPW9ZnQvNfl3
5HmoHvEolzSzZDmxfgnktVWbDO1wOkf86v41BYuErJk6X7PXUP6QI5U+/sc4KvPL/OQp/zOiml33
10lO8q9TzkkzZb5x8+VtVY35Qvb5Qs5/Sn4RdEcWZulf54s98csMVMuhptoW0DK7Xv/eX4/W8tff
mKV54pL+hDzy9oKKCVrns38BoxfpP8+u/7rdD3Bj8TsQz7zuTPEUc61O2bbfkrv5V1NuZnL+Un53
UiHy7foK/N0i36735hI5CycSTn4J8i0Vy1Y/91tkzRL4q36LG4vXnfrXPPRy/TPt11DrS75/vEik
8Q8vtkkavZ8WiX+Zr1H3cuXZx8r3Z68TWjuY15qPpXnh3P+YxfLLdezHbrVROLlcp6qLaSU0+4np
P/9WYg1iSZ7/wNet/gv/Tc2fg7/+Nl43NA9lwvG65WL8397/jr3Wce21dvZa/x8hix7WCmVuZHN0
cmVhbQplbmRvYmoKCjEzNSAwIG9iago1MjEzNAplbmRvYmoKCjEzNiAwIG9iago8PC9UeXBlL1hP
YmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1MDcuNSBdCi9Hcm91cDw8
L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9G
bGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTM3IDAgb2Jq
Cjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgoxMzggMCBvYmoKPDwvVHlwZS9YT2Jq
ZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBdCi9Hcm91cDw8L1MvVHJh
bnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgKL0ZpbHRlci9GbGF0ZURl
Y29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoKMTM5IDAgb2JqCjw8L0NB
IDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKMTQxIDAgb2JqCjw8L0xlbmd0aCAxNDIgMCBSL0Zp
bHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgAJYJ3xjJ61AsQ+jKobKBq
8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1s32///f/9e///I/X//cv
vdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/dddrrP3/98s9y9Xdglw/NTz
SOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7/v75nWpTXe31zjmtn55j
iZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca6Yrefa6SlwDvlKsyI9o7
jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeqSJLNsf7h829JfJZVCQ05
2/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1pdffT/WCcWnn16mluG8N
I6PQJjGyVN3UC9JXzC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPuAytBH8iR/Gr0h16wNF3v
wg71L1WzgMlR/Rc09UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfjnwVDfq1qFziWavbVa4T/
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
D1rjm37u/n9VOiDoQfkxe760xkV5PCn/QSmKoAflx/z50rp2Rn3/lvKXuiZBToTHYxI9W+7m7v4X
tXKCHITTuvp9aW1B2Fe/KLoEuSD8WFa/tK7t3Hhs5/6wgBf0gnJ50Cpf+gnK+XvKz3JwkAvC9UGq
fukmCD/n3x/UEoRcEH5s67+0ruk36veEv9SlDHpQ7g9a/Zt+7v5/VeoUesHzeNAaX/oJnp/T748q
5wY9KO8PWvs3/dz9/6IOc5CD8GOP8KW1X4T3PyXsot5BToSVNPgi9WyNa8Mwjifh76vCBzkIP+bb
l9YWhH31E2G+UptWJFNOF+XHhPvSShfl9KDsM0T3KfBBOV+UHxPuSytflPP3lDmvPSiXi/Jjxn1p
lYtyeVLmDHFR1mJnyvWi/JhyX1r1oly/pexD4YPyNQH3x473S+uagPtzAvp00n1227SOmnK/KI8H
rfGln6Dcv6fM2e1B+ZqAMsXetPYv/QTl5wT0uedbytcM3I8HreNLP0F5/5ayz26bFn9TvqagLBIX
rWdrv6bg/pyCPlJ1n91Wysc1B2XRuCmnL/2Y8rF9S5mt0TY5N90U55fjoTP60kpxfvFV0PVZq/uE
tBK+VEZHeZAq33Rzd/+HhOdXxZTLRbk+aNVv+rn7vyhziOs+ej0o14tye9Bq3/Rz9/+Vsg9ID8rt
ovyYcl9a7aLcHpR9iOs+zGz6EprydQA9HlPuS+s6gB7rAdS38fhjXn1pjevx8WSMr0U7Xv+Jsfkh
NWP7Rfkxr7609ovyflPG9kKMJTe+luPbxPKH3f5Dd7/e9Nf/yC0MleP9/Hz7p//82d7/+X+8/6vI
D9mMmjyePt+itVtRQWtIC1C6LEgbI3+03p5/o5DNer2jUfhBEbq+PH9Yi3Nz8d/e/u9/xwBTaaVq
gNr8fvQij1g82Bllv0e5vX/MheB+v/K/T4z/9Lf/+X9Ntb7/X//v+z/9/d/SaxkSyX+o423e89vf
3wpW5deO6u//x/s//ctMov/+9//zL1v669//n7e//f3t5/vlK/pnD/z/4XntKlVnvaOnadb+Mfv6
3/6SR8rb73/9SH/ZWvrnlFL960f+S/obv3sdR9P2e+r63W+vOwp3bpmr1/0lb/rd7/ym7n/93//+
v3w33Er6vWmMFhOzOsEc+p9ISEUXq9Iwmm85SU2+t38WTy3/9tf86ryOP+rWHm/TVhvdzt/MbvMf
dJu2Yh+56HVaztTr/7T99hpp/usc8PZ68/76Uf7yEtmLky559MnNS0w0S30tgkl/EJst7/Mx31tE
J1f9ak9l+5eXMF8/X/ci0N8MS3mJeffDv6ffXxTpJP+Wf4ub/mj4Got0ZF/HUur2m1g3gL/N8aT2
egPqHN6/vHr4fb4NvtYgXwevV+M3fh1dly01DTz9IfaAIN+1/xAI8pr+HoTJiQSYxmRJHC5Mic0i
znd4//2vaX/9K/g+5jvzGs3rzy8RispLvOCy/f4a0G+Bo+/dPEL6+JsBmr8CX3HTXnfxatSWhu+N
d+XPAMoqJf11nL9gfL77r07nLS+G/ca9fi0BBCJDd/CLFKP6PTWTkpg0On63vHazvyKZePy/i9gI
Jv4U6qx61P8RqLOKcvz0jpb73YvZ8EscAvhrbHPYKWbdQyL+40uQv3sWxDtVtinh9PtC5rUSbn+7
5sNLPq8Z9OewpvbziDR5f483y5C8Jl71+rGsIvzqtT7f68tIrCBlW95Xlge4fd2RkFcIR+PxKu6F
KB+vx7dLCK91J/qK+yXseVssPn82zrR/8/JqYP/C49doJ5v/cuOnF26+U357eZkbq+OK05++bNRH
+Y+8bEm57r6yXA/PmAXzYFxCgR3xf0+3Veq8k/kvMVUt9rwslYI+ZuLP72q+ZBUryp8KXrmxf1of
f48lY1nevZL/7tfpmi2/6XtzfZt+15yA+bLOu98ndl7jEq++PoUi+/qGzaXot5vXf33/d+yn+rWf
8kb0/wMDrRc3CmVuZHN0cmVhbQplbmRvYmoKCjE0MiAwIG9iago1MjEzOAplbmRvYmoKCjE0MyAw
IG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMC45IDUwNSA3OTIuOCA1
MDcuNSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVu
Z3RoIDgKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVu
ZG9iagoKMTQ0IDAgb2JqCjw8L0NBIDAuOTEKICAgL2NhIDAuOTEKPj4KZW5kb2JqCgoxNDUgMCBv
YmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDM5NyA4IDM5NyA1ODcuMSBd
Ci9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDgK
L0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJwDAAAAAAEKZW5kc3RyZWFtCmVuZG9iagoK
MTQ2IDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+CmVuZG9iagoKMTQ4IDAgb2JqCjw8L0xl
bmd0aCAxNDkgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nHS9S44rPZO0OT+r0LgA
JYJ3xjJ61AsQ+jKobKBq8m//F+0xj2Bkob9CvRJPiqTTjVc3uvP4Sa//9e+/Xsfrffzk1zjLT3+1
s32///f/9e///I/X//cvvdb//ff/8+9Yf3j9/ls/Gvr+ny++K+9/RiHrC3/9f//93//x7/94/ddd
rrP3/98s9y9Xdglw/NTzSOfr7+dXpPOcP/WVv3nmt2RSaaTvf89RvuX28f3Pmcb3z+8yf87X5zV7
/v75nWpTXe31zjmtn55jiZXn+vPnXz/Salipauuhv5Vvyf1Vzq7ilPi88uxfHTqZzhx5Tv1zFLca
6Yrefa6SlwDvlKsyI9o7jfMrkIR+56N+f0ZjnKCdn39O1tTVEmVq+fi5Cuy5SzaqGiV//7skmMeq
SJLNsf7h829JfJZVCQ052/lT3Ea+f9x8UuiFHKgsSkKbVIGSqRj1h0jggrTgRTN2JD8PXN2NFuo1
pdffT/WCcWnn16mluG8NI6PQJjGyVN3UC9JXzC8Idcl5lgXO8RVwNWklZpIcq7VNiEoJ6+u3tfPu
AytBH8iR/Gr0h16wNF3vwg71L1WzgMlR/Rc09UOL9gV0LoWpui/Sboq+7j1Aisvx86XRHEUtZWfj
nwVDfq1qFziWavbVa4T/GiLlWBpUM8625IgegEw0nhQ6IQfqirKWHqkC9VIxig+RQARpQYpm7Bh+
Hoga/+8/7RBLK99OORK6+sqaugbp/PZiAC5Lw2UJ8m0kuv9K3BfwC5NkgAXWknS1sgBj2iFOhrhG
cimtRq7v78ZdYNKo/1b07oNhXtTRcl4fFk6YZcT+Qlm+tdIcJzaYV3JpKEWmtsqmuJ6buh9VjbJG
5qp/HoMJaHzVMFUSEp/5/GajKWcbV0fm+8cKIIVmyIHSoiy0SSWomaoBIIQCmSXtQosm3Bh+Njy3
AT6P8vr7qQHeL638OpVU/qrlO98J/YXOV4yF/RqHUn0T9guSdGrG6kzyhzrst40LxdWfV9NXR+j3
9OcE2LdILk2OyPXtpukujmGqihYkKUQQXOUS7wvkGk1d2C9V0hQnNuxXsqam/qMs7Vv2iOKWoqvR
T4Igv5Jm4JWWZFPjH/SHsMxuzBfjG3sjn/V96YRfoqwoAz1SOAqmyqX4EAU0kBKUEH/H7/NA8xrc
7Wr6r1NLK9+s45CuVr9MjSEoUJYMGuBZA1yrdU6aOU/Ni/m7LjKHHwB2eCVfmPd7jnMCmHskl8rO
yHUyF7vAHBW9uzIgwhcVdgyI90VsFS7Bv1CuptAgJzaYV3LpaUampcAWBX51K5BXVYNp+otCp/N9
0dY6AcRfbeUlOw0521JDgMzsS/NJoRdyoLIoC21SCWqmYgBAIHBBUvCiCTuSnweu1zBv381bf/39
1DCvl2Z+nUpjdbuznyhzreOVeXn1gcZ4qNptnJrKFzSr72rYLMiS+4DW8e8289ACUPo9/TlBDxiR
TGdhaTiWpuddWGaYawXvPaoXXMmCCciEwEI4uyFOPNDPUt2ITEunOYrruTJndND/ZtUQ16haUs3e
PcEXTdfD6/gXrda2dbx5HV+NJ4VOyIG6oiw0SSWomKpRfYgEJkgLVjRjR/HzwPQa7PVSwa9TSztZ
ReaXlplVl+Zj7RqXFNovaVtxanrPaWjD1hib09t2zQqlrKl6tRZ0N6ANM11AINf4/TmZNyhKg5pK
3l2VUP0XGTqT99hpNGYoTeHrTzTGiQ3qlVw6apGppXkXuPSqmUOVje8U/B05C4EvDpZtAZQN9lrN
h5tytgVJQA08NJ4UWlm/R11RDpqkAlRMtSg/BAIVZAUtGrHj+Hmgug31Nufr76eGerl08+vUUtu3
VZ0JaY36VJiQNXfN7+6zA0JVHyiCR00SbCOm+4Xn1Jru4XxPhE6sPnD9JXEgJc/JkHVh6hyrki8o
UfU7pZPuwx47DY2KU+v9ucYEDXHiwp9kZREj09LpiAJ7LpwCO+h/t6Brn66jnqSa6hig/8UoaxWd
a6DXG3sjz78uXfA7lOQSrD2KRq1UiMItyD+QQEYQQvgdu88jteF+Avf9IdDzpZBfp5LOA6dmXO2v
vjJ8dcsecsmmXdSxhv08GfZdG7nKlDw0JTfp9gvhKma1X91mCXvBzg7lqy/W/5Vcijwj1zn3Astd
1btzSJMQwuoWUDhmBBfAyQ1y4gF+kv5yZFqKrVFg17nt48pGXpgUjc11npdss9drpl8rfdNKz3pe
tpW+eKVnD6DTtrRDDhQXZaFTKkHZVL1ACJHABmnBjGbsaH4e2F7zfL5U8OvU0k5XkdLaqomjFPDM
Nhjjx9LCPBl+TX2jMjC7xsBqUge6pLauMvo9CzoB4DmS6cTcolznybRBgZXpRLuwzpFNQnzx0Ri1
gF/sCtPTElPDkiY5sQE+PWBSZGpsGShwaVdHQVW2tP7tHhqURVOrRmv1bK8+kBdkNOds+ece87Iw
WQmk0A45UFyUhU6pBGVTNTCEUOCDvOBGQ3ZEPw9875GfyljGhuenBn96mOqSTHWr05y9o9Jvr046
CZVGX/gqq5wa+pPFuKnbCMQ8NATVE7Tid6/4KyGlXj2BeXWprkZy6fTKRV+KAisnCY3UrgUAIQRc
snBvRO/8wRanrC38w5DhZE2VU1zWUBp3cT1nn+GLBv6CRNPyof38qRNY8bxftYpXN+VstzmS7x8r
gBSaWb9HZVEO2qSCpWQqRfUhDpggKVjRhB3FzwPTa9AfD1vcYc0ss+PSr+wnqy5trb250/F6abkK
am2vqzZ3zMOjXbO8hu86VKyWZuBMO9TJULdILrX1yHWeHAtcIAcG/b2DnoT4YkMBNbZ4q6dLdAGa
3CQnHmAnaWpGpsYGkgKXdjmyr8qW3r8/0FZbO5/TltNpsNcQLizyOrIfV6fm+8dKIIV2yIHioix0
SiUom6qBIYQCH+QFNxqyI/p54LsN+tHr6++nBv2x94XXmgiTaspLnd82J5lDCzvN2TB2yB7+lVrg
qDFrHRhV+/J2Tlbtylq/cL6nQyfoA9ffEtsF8qQDa3yUx3ivQqVE7V/EOCTUOM4v28pgSZAFlbY4
sXWB7sEyItNSaY0Cv9p2B/ieqmUTbxrt6RJsoRbT/lq1ZRSaWOBvwyTf1QP8Hb3we1QWJS1NUgMK
pl5UjzwggqALJ+S/0ftsSN6ofydJnd8fnwv1ee7mOqWS7P5nr2jxW/3BLprJeQlW0f2aA7C3pPID
+prui6f7yWiuWvgbO/Gdl+nByww2//AyjZlj5Vpq7neJ8DSq691lwkEKAVYuCb9gHsxfWuyb5jVZ
CEhsPaB57LTItBSbosCek8mZVdnC4rsKyLQmM4GEW2ZVpnwtuzl56f9iUjd+pgY/I3OAUuiHHKgu
ykKr1IK6qRsgQioQQmCQoyU7pp8HwjHxz7mb8JRaClp8Q0Fxp+rScRsSprEqlqHhji01sa7KyJo1
xABd2RZIq7XCeSdiehAxgw4BEdPAb+Vaej3vEjEDq66FQw4pvhhpPrCEwi8j+wLWLdLXHXApqcbP
W5JQFNVF+n1czchrFZJdVUAjFvZU4C4CL7kpZ533Gq/vHyuAFJohB0qLstAntaBo6gaCkApsEBjM
aMmO5ueB7Tb8Wz1ffz81/OfeD17sfldN3/bLZHxMZmOYmlaZdoeG/oVMUYM08Wfv+dl/lazlvzG9
71xND67mSiTMQ+RJhzihKG9EPe9+MOw9T3uuMFUjcmvQR7QDoz1ObL2gerDkyNRgpCiw58MbvUPD
fv3bmvgPi7Vwy+4Dyyx3iJJdOG88TQ2eRkgqhVb4PQqLktDlqgEVUyfKD2lABUEXVsh/I/jZ0LwG
+njM7sMqWce6jKqqalm7swwh0wqbq9WIAVmak6zbZmdG8uzO+C3L0LZaubBrOyXTgpLxXhxKhhlB
uZY2+12iVxLN650NXPHo1ARtCb+ILbXAtmNgoU1ObDAXD5IUmRrrBAV2AfFxZSOvXdwQDXVqFkoa
juc1uy9Lpyx9atAX0htqA930Hc3wW5QWpaBPykfR1AoEIQ/YICqY0YYdzc8D222gnzW9/n5qoPfH
lN+ttXWkS2jzu2CZN8/e4TF/6tw1pvdezF5QOCN5ymf5Fse01CAjwc7atGBtJgYZWJseedKR79Jm
1PJunNyLIcMAlL3Hgy5nDyA+hdY4sfWBLGt3jSzNBK2KWxrXzKGqhi5kfHUhG84SatlZmOzXHmyK
kBW9VTe+pgZfI4ObUmiEHCgrSkKP1ICCqRXVhzxggqhgtVqwY/h5IHoN97aTMkottZwqcK1o33rY
Kidv5TKzqY57s2FYkYX79Px7eCPPgbwcXtUF407LtKBlWP4btAznPuX66nMvcWIvknm+YZAt8GpJ
3c4SflHTkMwgm90eJx4wL1s3XaBDwG7FdfGcH1c18poYtH2VrR7RFkTM6jqo6chPc8660TM16Bmt
/0qhHXKguCgLnVILyqZuYAipQAeBQY2W7Hh+HujeA/67ZVr8+/NTA77tzI1Sy5i5jnSHNPpDb0DX
3b0hg8Ma8Fht2XGea+Lv5zXxa704RdKyArex9QT3g0Zi6bPF75eqx10WtiKOF5oVXPsXNqh777+T
6C64mnQmmfKY1pXY+kGSKU833cjUzOKowJ5Yk6jsi8VLx1ddjkK0ZWlr7gXcRKpuzFk35qYGc6N1
Win0Qo6lsCgJTVIHKl71ovqQB0wQFaxow47i54Hp1gO+m4XX30/1gLrzNkphzl7Xw6TNb2XeoSfz
Nj5USeKJofWQ0Vu2BOHmKV+ILgUslHfWpgVrY2MsvA30Tl6LfrnLOe8avpBEzQIrXVIJyPwKY73O
C4O9mxIb+iu5NNci01JpiQJ78uW9tlqv5mt0Dgm1zC2e7H1DZrgRZ71tlHwX8v6+dMGvUVKUg/5W
6ajVNUrhIQlIICQIIf2O3eeB5DXVl599616slKIipayhutZIZf+4pEioeA3vwtCbllugTG/eDZbW
y0MHv7Ix1E4A8ZVM55Xnq03N7i4PLkg1vTUmLMMXFa7sebedzKayputIMPidEg+YkxRVI9NXg1Hc
Uq3Og42F49vdNfxkB5JgswU1yz2J0w1ZcOYNZlZ1mVIr3Ez/iRyoLEpCm9SBmlWv1B/ygMsSFLSQ
f8fx80D1HuA1pXUn9PmpAV520kappbG4/TfWLFOtYSgbLCJFO88JSAer1rHwGp7gPWFrGT0wx7Wd
sGlB2GDeaxA2XhZWrqXocZeYsOKpqnfrWBJYq5PO6xbwi6ZmnoW52A+a48TdAZRcCsyRpdmKp+J6
8t09VTWy1gvuTDft7IqGaVC0TNuaWtWgs26UTQ3Kpl6p5qUBhuO4SkKj1IGqqRoQQiiwQV4woyE7
mp8HtteQzzsro9TST/ctQAw4B9vkw3AnNK0BvxDgNhskSg9Clk1A7lrPscC3nZVpwcqckUjeDypP
OmB5XF5ipeAs0bj3XDhKJG58HAF1ftlGo2mWxjixgT1lo8OC26Fj6RUqridf1VNVX42/JMAQi55M
l1ax5Mn7NM2mcwG9sTI1WBlptMLK6AjGYVFKi5KWNqkBJa9qUX2IAybNBrns/ppeO4qfB6bbgG+H
rDSPTw34tBM2SnE7YdUmZTaJsaA+2dNV7qcVsRiT+1BsPieLb+/e4XfhKQU0cE57D8BaIyKWZPKx
L3epud5lQRlRzbuxDS9wNodugVm4L5y69sl6Pacbo687/kt18eNmq40K6tpsfVzJ0N0cVT5EySDW
wszTvabvonVdV6HqRtPUoGmEWIWm6f49yoqS0CN1oGCqRvUhFJg0W2kSnfi1Y/h5IHoN831OZ0Y/
dQ9QmvpK6i30yZatnmi3CN6E3r9SmIftQb2yz8tN1GvlkLZzMS24GF+agIvBxqNc6YBudYnJl6A1
eTR2WQVW5tB5zgJ+cdO1T6Z7m6AwJj/sGU5WDL1kajq3q7ivVg30OjIfL1X/hcBirbN0zOan7kTQ
kAVk2iBOhrg61WzXCYVFOehylb8UvCpE7YgBGk1n8mSRb9w+2/f//HcN6vOQRebxqUF9PGx0hxTU
dPPv26erKtbNZY7sFcKjyGozDYKs17L8Cp9kxDWkq1dxobqzLy3YFwz9DfYFY51yJQ53UWJy95Il
qDFSJcYXIpjg8I0RmTWWmDY0tfi6oY1Zg92eMjQf21RYT76zp4qGLq8mMIEjaJrYg4GNixHFzTnL
xr2U4F60P+a+obRDDhQXZaFTakHZVA4MIRboNB/SDnfc+H4P7zt1T+/LKPf6+7l6wjh3G51S6/Jh
Vm1LoVrgk1UtWqbChBRd7Z8pAEpq1JqExRHRG7TIi0NgwS5tp2Va0DLc1mnQMlhzlCth2YsSk9cS
dZHGpFxw5DgkVA4fGZFa3snPaJK+7r1BCmzx8+bdvYrqyff3VM0XjldiAs6XWBys6QlVbHlzU86y
0TJlXot8cgrNkAOlRVnok1pQ9KoaAEIkkEFaEKMZO5afB7IxzY+52+qUWpopugcqfS0z0WFNJoOt
oS9yc3qbxeYEjfcgXjHK6IrQt63AmXaoYzUfkUwma5UnYRWI8lKJit6NIVrw2jjsgRX0iwTzJg6D
E+vCw4rhZOU2GZma9/IqsCff2FNlQ+enVAREtmjrkNUMN/T4dHPOsnEwJTiY6u9oht+jtCgJfVIH
iqZiIAiRwAZpwYxm7Gh+Hthuw75PUe+PTw37uVvqlOLO8am9Nhs8Lktne81UeJGiC//TpyttP83H
92BjOb3LC6X5bFB3kqYGSXPeycQFS3IlLu9EiRhXqOzd2JQX3Du4wpvDc0bUVmzoMD5hiXvYNpys
sHtkaokbOyqwJ1/nU2VfUF4JXyEtVxJucsXmH3J/0XVzvpjfPUH9QLbwsmx12lR9f4nCXIJ1Sdko
eVWI8i3IP1BBRtBC+B3HzyN1DfmxG+SUWjqJu5+66TTP01osBnqpJcuGMWxJ0S6Ty5K5B+HKuU1X
Axqn71J3DqYGB8NdjgoHwy2tHLpsd4nJBiKdJhr3JiXGwuUS8J1EbQ3uTsoMQpOc2GAuHi0pMi0V
dorr4l0/rmjoBlbCppIs2IKIGf70TYjixpxiiALo7rVeKzM3DbmfhR1Taouy0OiqA0VTMRCESL6X
K1nBjEbsaH4e2N5Dvh9Dl6ofnxry/Wez3im11DZ0KVTqrBJDuy/v+/A7yTJZDhtOdQFjdibr4GXZ
3GedYA7uy9edqjEznWVGczL5aqZypeNRIvclqGwBlEKM97Ul8L6vyZrO9SCbo5D6Ydtw8qvGyNK8
Fqi4nuxHo6q+kLwSnr+wSF2rcbCy2uMfXHnQdcWyUTUlqBpRLgWqppry7lZclIVOqQVlr6oBIUQC
neYpf+VejdjR/DywvQZ+3w11Si3NnLr9OV8aMNPuDPaiqWySsrzChz1W1uLUp4dpumb4BHBJLdVd
yLGBbagziaWyFr9PhycRO8TWu5q31kUL8E5YgcNXPYneinGePY+dkdiAzhovHBLa9EBKUeDSK3SM
tohptSzBPZzqhxqsNUhYtuFD6pWTU9kYmRKMjIwgBUYmqNVptUVZaJRaUDWVA0KIBTrNw72rz+LJ
2rfuvKe2oV9lq90+NO7bbsJTKo2uiqTPrzSnt3I+3WPWlFl9DEhTXUzoxDLI/fD8z9ouj9bGpF3q
TsuYps7Y+kkm+2IkLjx462APWdhgrmi0FEIIuXIJ+EV1MGEJfV2NHD2+bh0habBALzX4WTy0VFxP
vrnX1oj/rkVQkNqMSKwFXMz+U5AmN+UsGzlTgpwp11/QDDlQWpSFPqkFRa+qASAEAhlkBS8asSP5
eeC6dYHZda3+8alecEeI+HVq+RNyO/irTAnp6Ab2rqmwndpcjUEXOVaD2Ki3oGZZ+OW2sJSgQb8z
N2avs6Y5J7PcsJQnjm4ujwt2q6J3c8wKPOVZVsKnPYnxGlys0KGJ5jjx6AWMoRaZGmYkCuzJV/lQ
g/ZbEmHMW7i1OV/9c0l9Hlzo1fXksrE3JdgbbdQL7I12BMqB2qIk9EkdKJqqgSCEAhvkBTMasqP5
eWB7zf77kNeAl2FK3hJijByWwH41lbtMWRbd4dASh6WugJMM9sJQF/9XS7WY7zSNSeqlnx7JbK9L
5Upc/YoSCVJBZe+Kv4TEeEPahl+NWK+BZX8eP9EkJza4D4+XGpmW+grF9eRbeyhCLgsSYOh6FaKt
bdkJ2Fromxf6tZxvJE0JkkYW9gJJoyO5cqC4KAudUgvKpnJgCLHAB3kXajTjxvKz4XoP+ZGbTDqP
Tw358pj4i5VWVY+UOSTAmtKbe4EGfGfAv+yTuJqi38xr2s+guahaTew7c2OyOp/2q9eW3A7WypMO
jIYuTzS2q1rA1BDhnQ4ueGLSEeM1+MM4PX/VSNw9QMlq0FvzAEpRXE++0qeqhvZ5EoEL0Ag3Wbn+
Ifd54KQsJ/ey8Tcl+Jvi7+iG36O2KGnp01esK4fK6mGYLpHABWnBq7ovlJ+9D9ypa7jnx+yerZ2u
a8DS2upruEJXH+exfGlNHYObqCf+1djcWzCzGroyPrMdLxtn7QRwX8nsmApsrg5YAZfnu+6412lr
ZCHe6SDOhbfiiVvJMLfjdIP0dQdbOkrx85ZsJdIF92R/msrlTU6KS/lyi0awyfL0D5kXdNmNWTFs
7lU+qJp8pZZm+D0qi5LQJnWgZqoGgBAKZJAXxKqBz4+5Pf+d29cQ9xbv8akhvxt1slQ2fBF4aF+L
bcae21/hlvK12nklPTmkcPoSmbR6gO9FNa3wjm+y8zgmrJfazkhqBSdP4rJNlGeXJ4x/dWJs4Mzm
G9jhVIPtldVgTJEUHv/zweIouaI9OUvDbYjivgp3HygCYs2CxqdYtLUCM+VDqVY3ZeGcth6Q3AOG
U2iGHCgtSkKf1LHUTMWoH4F8PVuSLqyW+Dd+n+37zefMo4icfXwK97TzOUoljZxVi1TYVPlSrj1q
7KyedRDxseqcaoYm+3CkzUzcjH4t6TufYwY7nwS3UDI7aFJqUm+/S0uTSt5quyt/h8NNONKIDmMT
suLadDfFiQ11OUNymYNMLdkqKNel5It8dH/ZztL0rWIEW2gxzeN3wFjTKMwbl5ODy5E9JsPlZPMz
wyqLstAltaBkqkb9IRS4IC940ZAdyc8D12uqPx6EjbxExtAlYGltrelchLEXjR3TNa0O8yC6lNAn
v2tB1xKYTOTxaisRUXYjjuma0+6ZsoAfiR2hwnSk4y4vcbeSWxuVQZw5Wq7Nf3i0J3Fggz2+gE7j
+rqB3WXKwxOj4Sd7UFRPvrNHX9f8qsqHVuAl1KzFkzzeB9mNOPNG1OQgagRthqjhymq2sqIc9Di8
wiv8gKpF9SEQmCw5wQnxdwQ/DzzvCf5bjwjbx+ca6PIovtBXKikmwboVvA4UEiFJvcnoVxS/hjnq
Pwk9xJ2NFtStsC9e5gv4ph37ZOyvv2UHQVQuX7SJ8tIZFb0rc7ZEeJ847Yf3DHdTHdoouy1OPMDP
0l6PLO3QdlGl9eTLfKpo6NycTt0lDbGmYjCB/xCdlt2UFeDm4m5ycDf5+svSC79HYVESuqQOlEzF
qD9EAhWEBS1aseP4eaAaw1xBVXagUQ7Xv5fKtJrDh9qLpmApz2Kw4hZjR/IFTLCy+NDrAkHD7lbK
Ts+Yus4nNyWVJAyVcyVft3KJRDTzxfvKPkJCvB00I3xosLhh0REvQ4uc2OBusuDRcxvh12RBVHk9
+eKeqho6IyV8w7XBk3Cz5mtmP0WmNDdohbm54DbYioz0QjP8dqksykCXlI6SqRT1hzjggqDgRQt2
JD8PXLfhPrMu0j8+NdzvoBG/Ti2dVV3/li7Xuk7cMHvQFKzkWexO+KdwIuUOTwvCFngTk71c2nbu
xuEms3gpJ7N/mNZUn+6ykuMcaBdR2UtIgLdjJoUHTSNSC0u7nK0H/LISWw+oMt2xmuO+fpxXeUvl
HOO11GrhTASCUKzElLTyMuFnE1zTTSHgTfSAfq3sySn0Mn3yzV7FmfTjDmuxmqkaAEIokEFcEKMd
O5afB7LXkB8/G0FDkDHtcbjzLfPxtI+MDLUFO7lcusftebqkLoCTDbSOcEl8rIb7Ts2UoGaYzJXM
nLzJkzhLR3n5iIqW/lMI8HaA3BxAZyR+4zVBS5x4AJ2koByZ1r1DyuqHHWhUzdBoyrDPOuBKLFZf
gBZ/5YYQziZgDlIm+zs6Wb9GWVEKWqR81Eu1qD0E8h3843TwG+Tf8fs80LwH+pmT/CUenxrod6CI
X6fSwKFbA3n1MiZd+80UptEsviqiTVTt6mRdC4qWfbkWncb5upSxYW/kiXP0yt7j6/cJ03mUlTlZ
Q/VVbsOq+vd5y/VO3E3Udp2zlnd2uwnDyaodnDI0ruqfQ0rWZMEMJz+dzO0TRQiSUAuvbNShsYqb
ceaNn8nBz6QrhUbIsVQVJaFD6kC5VI3aQyhfypewoLTasKP3eWC5Id8PHdUfn0L+jg/x61Qa+HZz
4UgdVbSpnbJnQaVS+YhgYkXzFXfzWtCy2GS0/WjerJWdoClB0ORImHIlj31iorxsL2ctKrWGCO+T
OMbhOYO1hWXIpihujD0sG05WHLHI1LjTp/L64Zt934oGzLsIq6mb9QmczmuSnzKdNzVlxbS5eoDx
H/qORvglyooy0COlo2AqRfUhDJggJlgh/47i54HpNbnfQSB+nUqDK+DrxsGqdZ7Y3TUdz8JOWK77
Y1jvWVIXIEmGuANXUjsdymZbx4N98RoP+4LlXrlSspWVErP9W7V8R3xazSJc5w0/9SRGa3DVW7Ym
gto8AJZ6Rvy4YfpXOf3wVT2i8MrrXFWPGSJN4p7/Q9p5wnGzUm+8Sw7ehdUd3kVhDXzO0VTvspYm
Vw2ol2pRfAgEIogKTrRhR/DzwHMb5N//vf5+apDvu7i1h8Obm2vjEsFeidAxBUunYoEPwnsnRVXu
k8t5LRhYOzdMLe2cxMtOx5SgY7zPh44pdy47PUaJ2e6OWgYicK26mMMohtNMxWudBZ5gXQTjG+k5
0ScPkh6ZGnyfyuuH7/ERpvdQWHeOhOJ4UizE2f2g2GROg868ETI5CBkd8TOEzHHlQHVRFlqlFtRN
5QARYoEQAi/caMeN5mdD9hrod9iHX6ewT67L3yvAyurL03F/DXZCy0lgywybJe+ay2vQrNycUaz9
hp20lJ13KcG7sHUr8C7cxVGuhD9LlJgdly5L+zVEeHOrK+MwI/5q4tNjWxMG24cRw8lK+BYyNQUA
p7R+DJ/QNclynYJdK8uMBngJklWe0roimx2XfONccnAunN5hXaRU5UBtURb6pBYUTeUAEGKBTHNY
dMXpUEt2LD8PZK8h349yKnj+41ND/o4L8etUEvl/KlycbmlPghAl+80Uew0rMEBEEtJLCr5uKX7o
2xd8n+5Az1jjyu474+gk2dZbJZdeZ+RK3HWOErNjVWkGqVydkRhf/C75BGxG8oW426Ove0+Q9kr8
fKm1qpx+2HNGFQzdu1XFC59skRZKMelPGU27m3HmjY7JQcdgxdMJkZs1dDgpLMpCl9SCkqkc9YdY
4IK44EU7diQ/D1yvIX+Hf/h1aqmmq0gprKsuqdindAOdBLT+oPvBgwB01VSrL8Yf3au749vczEsJ
5oV9e4F5qZEnEZ0gysuOTKNtYYUhlRBveP3wVE9ispiAEmHtx7wTN9hK1sPRl5tHUZS3trgfVzR0
iS5j2p+ejRiUzO0YT0835cwb85KDecEyL+YF1zjlQGlREvqkjqVmKkb9CAQqjnUutKpP63sYjz21
Dfcx6+vvp4b7HRvi16mls6Eb/9LlV0Su0dkPexZiQiUF2O3sk7RgdXZVuZqBtbOMbio2rueXsrMw
JViYfCez3W+UKxGQJkrMNap6V051EuJN/vBYT+Ky2HGsQCbdLXJi6wWTwRJZHENdpfXD9/cq4dEU
lbgufCwUA1I9QGt18epO5JvLUpOCgxFLohR6scGVLbTLQpurDpRMtag/BDqvGNDnC7zqEd/2PvA/
rHU9rdtmfz/VB+64EL9O8frKqeBhuok0p6+tQc4UIovIT3d0xpF8Cvog/my1w6y9IOV4tpQgnO8J
0Qn6wBnJHK7Yuu6FB2uUmC8v5yFwcojxZq8YLu1JvBZuPivKyek2ObH1gqGRRHTEConU3auy1J7d
D9bZep0BJMKQBRDhFlqn+0KTfbW6QWfaiJoURM1xpdAPObonejOx0iq1oG4qB4gQC4QcFVnIVT+G
tMf62FPX5H+Hg/h1at1KWAVKbVU16aYSjExhqoWEJi78QmH1Yczl1dSrPd0PjE3cqCg7J1OCkymR
4OUn50m+W+vysh0guX7PdAMVj4k3HNh5lGRCDyvSb5I5R18fcGcpaUQWx1lWaf3wPT1VNBS4RgIM
Lp5LtAWRJ3/RlolZxU9CBdjByfDEhDgZ3CapCLOoS0Kf1IGiqRoIQiiwcURkIVZt0dlDe+ypbfC3
Pl9/PzX4j8cCcKC3tcSUjj7XJsBxP03YMN1yJYWnQJLCvnRM5LmamXVYkwPjE1ep8k7Z5KBsONdn
KJsWeRLhiqO87NvyhMshEBLXcs50Sed3S7AoJcX7pT1ObD2he7hcj500bT5Waf3wBT5VMxTRQNUP
+D4JNkuws032ltMN+aJ99wL3AcXHeaERfouyogz0SOkomEpRfYgDJogJVsi/o/h5YBrDvd1RIX6d
SrJ1rbv+UtepulBkMczaaOmUyaNOSX5gnSNzFnMEzFrns9d5uVTsnEwOToYDPK+5RMAV0d6pRcfJ
AH1V9i4ARNBB7uKmcKgR0zW5HC1f62T7nRIb1M2DpUUmh9tUef2wR42qGlrQJQJ3IhBuqYM5XtCf
oeKigDb3et+v9b46hX7IgeqiLLRKLaibygEixAIhh8cUcrRkx/TzQHgb9idL/f2xxrwCrN2dYVpx
VVV9GyetTocG8qYP85rCrC2x68tO6H3wikyt1+wvWJMXfAG+8zY5eBuu5GZ4G2IiKlfibagoMfu+
LI+YYawhMB1+eCk8akR3TTYBcsOmTU48OkOSCktkctRNldcP3+NTVUPHOYnwhcmizRIkbbP9s7o5
Z9rYmxTsjWg0pdAOOVBclIVOVx2omooBIUQCHUfJFGq0Ysfz80D37gi5NJ3zH5/uC+nRF9Bbl1+I
9Ll2AljU7G9TsKcnsZidO056m6f7CnYtMf8LU6lA8/vYeoH7ANFzXnaVX79OvlvtUjL+m37DiOtV
KfDKl1R+yWLaU7Z6guuR2PCvHkI5MjlKn8rrh2/xqarBw3W6s6/A2gg3Obn8Q+p5RWHhHad79g8e
h+jw2gPP6d+jrCgJPVIHCqZqVB9CgYnj6Qkr2rGj+Hlges3/4zH/D6tn2PMD5nDasdR0DZeW5Ns3
uo+AMkly2yVXO846JPUBDbocJPJO1uQga7DpZegaQlwrj+f2KM/X6OMB0hDhPX2UD7rmYKrSwa6I
lzjvxAZ3kS18RhaH4VNp/fDlvbJGnJ764N5h0WZPgWbLcc37a4mcbsgXzhtmQNY3tLF+h5qc3xqk
ZFRLhSjdgvyzHw6h8oTSknxH7/NIbQN81Pb6+6kB3ncGR6k0cPktaHA1y95GP9PIa5bVOafbRX1t
73C+qCZp7T8tX7PKEwQl7xxODg6n3MlsH2nlcjT6KNEeM5PFgB7H6W/OSzo9ZtBeMSUVt0Zfd9S/
mnPAB4haHSoWLIdv8KmCoTtT9hUq7oynVMAUr+E+7zPEmTYOJ8Hh0HhSaIUcKCzKWpqkDhRM1ag+
hLL/DRG0hBWt2FH8PDC9BnjfQX6leci7Y80waoEvm0PUZCbGb3cd3Z6JuuGLZ0Ku5mFZc7OuL1X7
v+WdpslB0zjgLDQNhRAZNlGES8ws39Nx8rAhfH/MGybhvc5TBdMhy+RYP4/4ukGcfwB5RBbHY1Jp
/fBdPVUzDmLN+9ZBt2BLEc0wVxtaaAwvxwTMWCtRASl0Y9MMrkkuC41SC4qmciAIscDGEZRadztu
FD8bovcgL6ksFv75qUHedvZGqTRx8k3ocvVJ/NIaPeCleK9NPcCgFDUlgRdbe0VPAn2HvLhNNzmY
mxqJjOVk5fAZPUrKM7oZz0zVqP6NS3ZqgXx+xc5TnvYmcXp6mu7SDzrrkclhe1RaP/z6jCoaXJuc
oGLBZg6SVpP8hBYlHMq9fid1bxpPammEX6OqKActrvKXaqkShYcwp6N/E3iyue/2147d54HkNbTr
TskolSb+nAl1fWUavo/AFi1z1FmhQLqDjOiGLz7muZqHtTu8nPdqeDvvhEwOQoZnCzOEDJO2ciVe
/YkS1a2mQyowvAElX7IpIH1DagWxON0aJzaQD1nmHAbTERZdWj/sI6NqxsHzLSIiq4WaeV5z+Fri
mptxpo2QSazONJ4UWlm/R11RDpqkBhRMtag+BDod2ru+QKr6jen6sw/tO7UN7pbP199PDe47OsSv
U/gLLm+OdY1XIug0w8k9Oy5sE/r55SgCnXADuZiatXf8qehSXHAueWdpcrA0jNoMS8PmT7mW5bXc
JWZuVUz7V/6UEOM9WWXCQabgY/RyEBNa48QD/yz9lcjiaB0q7atw418ExMqpHZZMmRJs6gmo1QO0
E5sQoRqAaeNpfAMSFZBCN9NzolwiXRYapZalaKoGAEQCFUfVEFrVD1DvUT721NYHzpxefz/dB/Kj
D6C15qesJeg0zWFPmeyz0nKZZLBNno1vIJbdB7TENy/xwnnnaHJwNA6VAUczWOKbVT3uEssRFb0j
bGleiF1yCcqMxI5ukmJlOh8GOiUrcRfI5KANk+faNZuokq4wJN+qx+BAITNbDkpWNvTJg47EtNgY
Gl+Rq46PAUMD71KsrigJPVIH6qViFB8igYiDKwip6meoy9a999Q10d8RIX6dSpPnjE9U1lSXAglB
xGSO33KvXuLJVKJ7vThN5BKULAu7gjrViGWze8nk8JLxAxJ4ybCInziknHd5hRE7fQXz5w5RjBNe
uKcnUVsT0gZL07QzzG60cPKrqMhil3yVxqPtH1fU5YMpAYZeLFyCzRyErFb3ybON2l0dGwVzQMFU
B8aBgtE6rhwoLcpCn9SBoqkaCEIosLH7vDBbrdix/DyQvQd7/W7fXn8/NdjvgBC/Ti2tTT9rrSDp
055m9pfJ+BSndVQ3G6qrv8POc0HJcheOR13O8+XgJlsfiOV+RDIf487jd0KjvALJyt2+wll8XbCf
jPzwltEaTZD8hIVpHnfi0QeWRcNBj6Fki0vrhy/wqZp+Tg34tfb302LNHJTs8ME6uSnENYk+gAFy
NZ/vaIXfo7AoCV2uGlAw1aL6EAhM5EstpKofo96Deuypa7Df8R5+nfoqUu47K9TatxY2xvaSsU08
EfUCQ41GUh8VQLIB1oDVPRA/KZd2yiUF5VLvpKNNkyslomq5RMcpZNAWrKs8ReEDWnjJiMrSPI91
aab4ugGMRcMR2cJhb7isfviWnqrp8pkgWiMeJBJs5uBaZUmfyWu6gL0hFsBiQo/xQiszRsRVBnqk
dBRMpag+xAER+88Kp+pHqPeIHXtqG+LjkDXm8akhfod/+HWKkB9nJuqW1vNuDVf3AAJDfyWG8tDZ
qPOgTy5Bv7LJ4zEXR6dLOxuTgo3hFJ5gY9jI8TxMPu7yHLWUY1iBVVv336fDnMWRnadXWdNFlYbF
YQ/45GTlmEimhs+GyuuHPWRUUVcUYqK3wuB/BZs5yFft8Cb3+RSi7th4mKN7VZ9XCs2QA6VFWeiT
OlAzVQNACAUyiAti1a8R76E89lQM9XpHevh1ijlzue5IbV9ZHP5LptfMXCmnrCWcw0U0ya35NxhW
QlzwmK3DUqadbUnBthDmMsG2QNPydLGuxl4lmvTjJk9x/AklZrZ0il18vryll63JQSv6A2ipp8XP
7bI3ebd5GOQkTX+HOQNRJ0oJNPX2CzA3H7FoxHlsHMuBhZGmk0InPpRJXVEWmqSW6VeENdik+hAL
TOxeJ6xox47i54HpPdz9Mvjzcw33eu74S2NVPj3S45QIMrn6+B6Buxf6LwUKWI2RyTOXoF2JicAz
tkREK2lsyBt3gp4I9Rm/X0oed1leuodvbgjYdS/KtynCR0bzMluIpKcWk3/Q2nOabx4cJTI1/DD1
cx7w/biirlAyEmCZyIdFmzlf0/wUmsmNOY+NYTEzRvNJoRdyoLIoa+mSOlAwVaP6EApMEHchRStu
/D4blhvueipw/xDod7SHX6fSxJeTZ+vVTx2fH84lX2GdV0flVKSby53nuHMJmpXbzjxo69DDaWdd
UrAuBDNOsC5n5LFvRJRXWMu5JK0jnER4e58WLjJFFCsXv3nJYjpA1R7YycmKpZ9M9vFQeTzpqg4g
DL5Cy1ms6+qnBJs5KNZT2+3qhvBwQIBfbLvR9WTuG0kv5Og2wQbBys4Jo52MYaoaAEIkkLFPhhCj
FTuWnwey1xw/HnP8sHLkv4PSlpmGfbFdZfIVyPcU2BrpCsDH6025BI9KXBNdFK64ppa0Ey0piBYe
lEsQLWzVCQ+YE7M8JRbiZpm6x2oDW8KN7fBMT4V3PBnk1S3S1x3spaT4sd05VE47fRlPVXS9IKuq
h16iQaiZw+VVe3gHy2iGNG9gZ4OdnUIv5EBlURbapBbUTOUAEGKdjveuuViIrXbsSH4euG7j/XtY
eP391JC/oz/8OkU8v1P2cZ6u9Pu6dpqxP8NBbMAzgFnsEQ7SpVzzfQbPLDVoPd/ZmBRsDNHsE2wM
d3KVK2UiFbnEUqPLqVxtKbG2mjgPp5nCA86s98XT2IzE1hOKBoxfuz48kpLL40nPj6vqmswlwjKp
nRZu5qBbRfI5mgYvvG6MzBGMjBySuHkk/ZAD1UVZaJVaph+S1gQ8ijsp27vi7pteIFf9APEe0WNP
XUO/P+Z5xeeZ2T5dhFMaBtmAa1clwt/v+Sn00pJac3zwq4QV1vWhegrhnX5JQb9wcyJBwHB4Ux67
uUZ5xU83Q9HgAsFZW/ckcZzRSJ2cwBVgOGnfp68b0FmWbXYCGX71cEk86PhxFV3n71Jtiy4WakHj
+f3aZ9OQ89gImCMImPiOTrwvl7qiJDRJHaiYqlF9CGU/O25jC6nqZ4f7Y37vf+f37yBflPrr76cG
fdv5GaXSxN9PBKyMzwOXYx/mWTXFOo6G1XbQATTvB/9KoBvdKKjnCNTz3gVikb+SWcFslCdlAm24
vAL8r3eGGIeoxRnGW/KksWmfj6aIJDPfia0HJA+QHpka4ZBUHK88flxTF+1Smu3QSDXxzvm3xJ2O
CSokjo2dOYKdGVeqme5S+GPpK0pCkdSBhqkY1YdIYIKwYFX97HDbuvie2nrA93+vv5/qAXcYiF+n
0sTTL6HPtU4lFA1FoylA1HS7IousFh3M0MG/EkJ+gr+G+U7QpCBouE2jZPYLYhNNb6XZT8ssELQK
kzUbgfCiydhAfhzGJLstTjz6QJb2WmTyhb9BBJrhHlD0ZHt/4cKk4PhINpNJ2HR4JzbclvPY+Jkj
+BlR5Af8jOwNyoHOoizUSS1Ly1SN8hEJTHwtT1hVv0e8B/PYU9dEX3cSRqk0w9NPKls9UwjaVyaz
hdf13dG4Q6sgIUtoDc3jmusFmiIGEZKipJ2HScHDcC1KyUysGXI5ckmU6NsVPCrgO3SEIGe9D2cZ
0Rj255MzbfIVunY8yZhDlm0sPH7uTltWFddO38JTTV3XoLl4oRD5yLYgyoZ7jYfq1kwRbzSU7x/r
gBTKWb9Ha1EOCqUGNE3FQBAigY3v4Amz6vdo69ab99Q94MfRdI5/fGrAl52pUQrS65TXMc9liCd6
22PGsWYUYnMJXgAnq01rlc7BymrTrlBCJ29Mp52mSUHT8F4wz3k4sNFs1nW7yysONsrm0QErZTlg
IxDuMpl9ioSUp61JPBJ3P1CyHg65rm0SN4NUXDt9PU81dfnESQJMbMg2kz1mCXk0IMJ0GDtvrobv
H2uB1FIOv0drURIKpQ40TdVAEEKBjW/xCDPasaP5eWB7Dfz8mN+z1TPk0bXuFmijd6LPZLgrml4D
33EAFbi58zJFDgKWKVrsSCWQdUk7J5OCk+n333LyYzdaaTL7RJfod+BHhJ0eIcZ7XOI5dOn0HViF
U/BVyno+KBkl6+GAOcxOaufofhDs41p4vr0Q3lrxdzjypH7N8WyEm9syz9tQyfePNUAK1ZADrUVZ
KJRa0LTfju+cM+wuk073zv4Cs+oniPPPPs/fqW3gc4ly+9Cozztlo1Sa4fInddYlw1c5bPMSXlKy
TAw/7ziKGqMRGtQsu7RZ1Xzdnt8ZmyMYGxVQHFOEneJcu3yGtksrnloIQp2j+jfPC4WPTObmuiTS
w120w4kNfp09mC/I5EsCKq6dzed73vfUesVIxMaEC56Z2cQaySt+BPMeN/wGP+s7KuG3aCtKQY2U
j36pdqk9xAENE/pCqfpp2rz17T11jfM7CMSvU2kW+epJXd86u5RmFxmuv/BU7mheceXL13mQJAfv
SmgrxeBazVRIhJ2UOYKU0aRMMhMOnFxLmf0usXgvQQwUrnjxlDC8f3jIiOma9nbDKFXi6wYzxg9Y
B2UROTyIPGTvGNXSFYeosPDqXQz989SNfEDWVtctmefNyfD94/aTQjHr92gsykGZ1ICWqRj1h0jg
IiK3JnfU+dpR/Dww3cb3rKLcH58a4sfDjHegsR85dS1NLhuOVM8AB4VDUUCat9cK4dy5FJPHNcvr
XcLMsv5SaIt7UT+CpcHJgUATfjWSN0PwgozyHEVrRODpFEK8WedHYL+Gk+B2K/R1x1066/Fj84Uq
pJ12hFH5XaFpCDDFnR16VjIbK2HXclvcCqJGB/JB08S/oxB+j66iJNRIHeiXqlF7CAUaZveEUvVj
tMfPbry7Uzf2MxfN6o9PsN+Rl8Z4pH5pUSu8Zmd7wSRH+8+MfeDIas0akjnoWDDiUY8L7g154+5E
5qkPfp+gfKMsx80LIwFjXhMAi304wrDJcnADrFHlTmzoY/9wSDTth6CRVFw7fVtPNXXFKiG0nN4h
QraZ6jW5n1p/m1szz9s0Oc+gae4UiiEHOouyljKpAx1TNcoPoUDFtE893Iobwc+GZkzu5Y4B8etU
mnhtMVXJ8tXRpNgYh/gXGTQa40QxOZbAmt6DhvVQ1eWAGMQ7G3MEG3P9JTtGGW+AZK5tuDz7tg7H
lw4R3hCA4QCTCc/MJh2jEy7aD0uGk5Xr0WQyh6DiePNFMPvhZlxem+gqyTWTuViil3Uubq2hfJ/a
quHlX1EIv0RXUQZqpHT069eiO8cHPyWTuu+vZD9CWrcHSS+It9Q2vHvW3fjH5xre5Y7+8OtUmvhs
8ZqQ+uN6wUeTMTsOqb4KfSD5tmcwtQcN60VaD5vG8r2TM0eQM172Rc4kbwgOa/m8SyzmAJYZjyMY
lMpQlnCCEa1lD0hFr0i+Nl/rw1CnZD0glJVJpmQV1k7f0lM9XS72qn2dp4blmslMrESenStbLOG3
LZLvH2uAFKohB1qLslAntaBnKl/qD6FARabfMt2D82tH8fPA9Brmd3iHX6e4kc4r9OsR+i47iH1h
8CVMus01GrNq15kCN9ec6zWTrwHLy6WxGd/5lyP4F2/iZc7i4T5yJXxZo8R6RFXv7AeeZDvStvcd
zjCyZJ7Hy8EpfLs+PawXTtbDTx8lWw+GC2unr+KpHh7x/da+AEiWakGTDTOrbXFLiE4RMAfxwgYe
4iV5fi7WWZSFOqkFPfv9YAEQQoGLrXtluLum147k54HrPdjPI4lyf3xqsN8eW79OpYn/FpdC1Ze1
4W3uBQkAinqBXI+YvjTYg4nl3M1zpj6RHzspcwQpM+gfImV4p5tcfiMmSqwYCImnAUmbbERVd7Nx
RnwFThI2NsEkPywXTlYOfGSyDUmFtdNuMZngXNy21G5LYRIk2Uzpmuynp2VaQ+CK6AfJxhlO8gpn
RrAg5Vhai5KGX+wknEQ8uJys/hAKXBAXvGo8Qbqb6bbUNeDvsA6/TvGC5pl4zkzruiZAe8fgUyg7
0Gj2IFWA5n5hk412BzeW9fxyYIoNbS/rP1fQiqwngJUn5a20mqKat5B522ymOsI1RmTWSZ+wmQkw
HzYLJyuR0chk04GKax6lVLTe8VxB/BcEEmkmc6ypaCiebgBxKQLgoF6wy0G9HB68p1UVJaHFVT66
pUqUHsKABmKCEvLv+H0eaG7DfL0y8vdTw/yO8/DrVFLwBJwxCZuq0Gdv+8Ysd0NZBpbMcjrS9YHu
mTmoVwzrir5TbXI/dublCOYFU/0B88LlPCIDQbBEifWKS6MghetPGFIUQ/8djjGisohzRpyK5Jgc
NT+n++wB0iPTkvJ0cSv4/8fV9MUdJdsnQqyZTL9K4ukACVjcb9sj3z9WACk0Qw6UFmWhT2pZWl4V
o3rEARHEBKl6PTa6meO21Ib/PHRMf3wa//TAP0ljWV6ay2dP88yapeFjcDnUsXE07jD0ZWLS5jup
LzcHLZTvbjWzduxUzBFUzLiT2Y89D66weYtIidUBSgiZOON9gY63jXkY0VeEvU42PLFne1gznKz4
wZDJB47O+y5xV4848BpmcXyZFmweQb0WT43VjZnzNjzy/WMVkEI35FhKi5KG32aVY4JK9Rui/RYJ
RBAWpKrfH93Dc+ypa4K/4zf8OpV09efkrUmZgTvhQ0226KCkYNlLNI083d/vPmeZXnXYwsFOExJ9
45+dAOozktnBCZUr5XmXVz2jYOmNwP9rkBMIyVSL6Cui2yeFl0v2mal7HCcn62HnmunRU11cO+NW
Hq+ffXXLANQu8SvWPIJdLdcsSEPm3GiWGTRLu1LohRyoLMpCm9SBllfFKD8EAhVEBa3qN0b3OBx7
6hro4yBSzfNTA/0O6vDrFK+hnzIr2wZMoHgzMOoQ6tajORigrvh3G1XMvA4/Is4m1FFIdgLmCALm
SuRUI0fKNvdQWsWK3h3A6GdYgjcGg3CIkQuyw5fpSZpkDynep9l7AMMkRyYvRiqOqOAfV9ThDPN1
jEG0eQTpWoXTqYas+AQX9zKDeyGYiexs0gq/R2FRDrqkBnRMxSg/RAIVhAWter0vutnnttQ12Mtj
Ri9WzpBjppR2qq41RZtlEeoijkazI6nu8Pc1ISfTqo5NqQAr9bSXzEaz5DNoFvvCQLPArRD6hfed
o8TKuOwRJC9bhncnLIaZFlFWvFSwIlFUt8aJG+pyeqCkyOS1R8U17Qk/ruir8Zeq/8JgseZhV1dJ
PB0AEheZca/o+v6xAkihGXIslUVJ6HLVgIZXpSg+hAERxASp6ldFy2NGL39n9DWwVyCcv58a6HeQ
h1+n0sS9R0E2MEGxMfeOTjOp2veV+aUAP2tNhy9J5zXVC8niVd0hKtqNfzAw9oSBgSH25ODeEpyO
S6x2YI/QeN0yvImIFE/HyLpBEPsk82myI1yZP7spXsmKEZ9M7qUqrnkrRkVds4UEWLuuatHmEVRr
9YCsbs6cGw0z+7WuV6fQDjlQXJS1NEod6JmqASCEAhnEBTHasWP5eSB7Dfb0mNWT1XOqSKltTVoL
U2/ftDPWmXNULJ9d7ATHu5xmzOkCTTIJzI1syWeQLczcJ2QL3rKjSJf1LquyC+sRGi+5/jcnhhTb
NzWemzNluhX6ukMsxcz4ubthhwiLG3g8vv2dC+RnjvOnRJpHEKm619jhNoj+vnEtM7iWCCDZFrz+
PYqKktAhdaDbVfFSeIgDDggKPtUviabHPJ7+zuNrSJ+M7PtD43uf3dfcjk/PRH3fjte4OeGTuvbi
2pqM6iiO2l527jyIBlqAMzWPbGkVYWhskBvwRiIn6DT9PmVuZLisip2/R/i7Hi9IdO5SeH+tEghf
ncR50xInNtCHx0OPTBVfLBXXZly6k9VEJtyKhTxdos2jXXO7gHRTiA0ZsAfFopvNSqGV9XvUFeWg
SWpAw1SM6kMkMEHYhRRtuPH7bFjeoH/bu27EPz+F+/GY1w9rLMsHV5pcrlBcmIB94SqzuvGojv3F
foSrLcncqoOODoyejmiRb+yDeuH15hPyhS6iPKn4lRrK8+NQ3fGlLMHbUXK85dYqS8jipGcYaIsT
G/riMXiUkkwVx1sVR0BYoa+X23gwqum9Agk1j6BXhWo7vaorJOuNPLjrG9rglygqykCHlI5u9Vic
VB6CgAUighGy7+h9HljGTK5ARxe8SqWJEwcGH8mvXZK9Xw4CuFcN7Rk6L5Jac7kJVHySsu70Vb8D
vHHLTgDwlczJl1x1vCrctXSJFZ7ePtRKGBMt9rGnThgnQFVHPTxrSWwQ6/AID0umylMUKq7NuGCn
CGpcAIDhPizYJLjfP2SejRfWeOFlI1hmECzc6BDBIt2QA7VFWWh01YGeqRgAQiSQQVgQoxU7lp8H
stswH72+/n6uYa6r4Hc/mNZbkw+u9LmaqN2S/V8IwKub2qNyD7Vz7wd3R9FA6gfCMwZQ3vhlJ+gD
ZyQzzM7KsxQ977Jqj0reLASEN2JNCaeXxBYmIM9uhxMP/LM0lyNTJV5OxyHtCk+tw/L3p11LWbVQ
8whyVVvyNryqnwpIcA/y4F3qlVoa4feoKkpCi9SBdvVgmJQe4oAGgoJS9XuSc+vce+oa6HMnVpRK
E/8czgFryWnjdRhbHlWYwjaj9iSBG3gwheOIxrMMfsjl3GiVfAatckYiO0oszzwQkjTKq/gdd1vT
ZAeQzUYBPY6ANyOtIhE0t8KJDV5ttXlAkkxLwOSyms/O1NLlDcmLxnoYDLnmka9Z/JRyVjsI/Bfw
hqOL9t5KoZT1a7QVpaBIykfBVLt+GeKABYKCUfVTkXPru3vqHtp5uW7//dTQHjvPolSauGw0dLka
t6w+BwczfMlOHVQrt1LlhLnaowXXxCpPLGYenST8TN6oZSeE/k+KZCYGMLnwMb1KrNy3tf+sRrWk
ePd1Kj/iZJaYkLSGF5nhMNsosfWAIjMcR3hlqu5N+QeV20tOAzy9VPvQy2F2mD2CWpUdvXELRye2
uTEuMxgXnbCUQjXkQGtRFgqlFhS9qkb9IRK4ICx40Yodyc8D160X4Mv8/FQvuOM5/DqVJi4bXMDS
Qr8UeWCeWSF99N78qJyYmu5nY6vLOLGpD6xVnncpiTWVN97ZCfpAiWRO/c6VCjenXGK1/wrX7oW+
pHhLjUdYZ3AEY5HH1tSiQ6RnH0jS3oxMVdcUKG0FBfy4lq5YVqp9jdRuueYRtKo4k8bLwfJ4nRvj
MoNxkWerUqiGHGgtykKh1LLUTNUoH5HABFHBqvpNyT0qx566pvm+m+GUIiIvftb00aZlEXMrsR70
Zsao6LApJlr30CzXVJ+ALMVCmTdi2QmArpHMjhDMA6NEoYkSK3cwm98PloFAP+Ahk7C4iljFyFp4
aR03dp4euoHOMsNFnBOPn+LS2rzu2OmwfLxU+1j3KwmOcAS1qmswDR8ircRjo1ZGUCuEbRO1QrRg
5UBnURbqXHWg5FUtqg9xwARBwaoe8WZwesD8Pw9s372ShsPjUwP9junw61SSoxHO1zhXEowS0gVX
Mr1iu0TW6JNhmnU4J3OrA/uYzB5eS/PGPDtBD2iRXAqdkSsVbx/MrXIL236Uwp5HgQku6f03b+DZ
9oql6YpP8DDEYeWwhybUanFZbV6X79b5SvHlVfsaitVyTd3foA9MqSi5LXNsvMsI3kWvCQ14Fznh
NExa4i5dFgqlFhRN5QAQYoHMEhe8aMWO5OeB6zXY7+gNv04lOf2fnPnXUP+2DhscTmTiekbFytW4
4eU9tmlU+xl3LF0VINMOcjLII5LfI3jkIGjMVVrFMNAc/l+GAW35ugwJPkXz9I2GeHIL9HUHV0qp
8ePqNeH4KQ4D9nH5nTs+Yor1/ggSjTO409X7i1dyYoJdhMoIQqX6O8rg9+gpykGF1IBqqXgpPAQC
BUQFnerHIveoG3vqHt7l+7/X308N731wM7SbnKyXBrXg6OVj7+R05FLgkOEnlJv2HJ17Ein4VEI/
9+rpSDeZd5JlBsly3snsGNFEASCWYJRYucXcHMpSQ1u+bk3hd7yTcwx8zQK2LDny0G62cLLy8CCZ
Ki8NqjTiQ31cTx+43Xs9y5ZsnEGqsirjF3+C+o2/0MdVfbxQC79FY1EKyqR8lEy1KD8EApXq1wSr
W3Aj+NnQvIb0HZnh16mk1eIksyi7pktFWFq5H6xHSobeSJaPVe+2jR3X3J2AKsUuOG9kshMAfEYy
Jxgx5UrF1jsTpsTst4ccL7bK5it3/uzV1oGShaltS35qdjdVOFkPh60aHjVRGpGhPq6nD2xd7tPd
ko0z+FJdiXLgPvHhYyNRRpAo5UqhHHKgtyhrKZQ6UDNVo/4QClyq34ct7qjptSP5eeC6DfLv9vz1
91OD/A7b8OtUmuFTLY1OifE9aqkPCNCJSrhbxNGjMUmL51m9wEdvPYZ+gufcKRYfQ8txRCInH/H1
uDrPx13lEfqmcTxQgufdZNjyECeoolYBW5X6ndh6ALYM+P4DGjW7pGYbOXV0XdNS3QsfZBpn0Kgc
vuXsdBCh4GJYRjAseJbDsHC0l3FD2oqSUOSqAfVSLUoPgUCjnrwM3C3/jt7ngeWNfE1pHWifn0L+
Dtfw61QiFAlvFXQJ+x23NsJp1p3MdnDQTU6dsDH5CBaV+OE6+foEtAIN3LiD+o8DEOQ049eJeNBX
SQQZUyVvHGc11bc1MornYUIvOcJEdgOceECepbIZWSrbP5XVpu/WnRrzRJEWIrpHS/joM4jThfma
oMsREQnuRb16UY/IA/OFOsiBpqIklEgdKLd7b8dNWV9GPCFOCROV3HPna0fv88Dymt7vSAy/TiXi
jJw8CarF6dt3f7C1E2RT3js1h+bVVRckwZpiM+/Jq/cVWuCCl21m4YIyyczVB3ItdfatxBQVvU9X
/5andvFGi8gbjHvF104OPZLHc14fHhUjMlXe/FVpBIVZEPsphpbUzJBn4Hj4D1FnlZOL2rBiClzw
GlwiE6AMfru0FGWgPkpHrX79oaVLDjBAQrBB9B21zwPDbUC3Q/aWx6cG9B2O4depNLmezwtw2mAq
KqXpM+ItymOvOn6H7uZyTspHUKct8LvOunnu/IoJ5XI42AT8CqSbcqUVWOYq7woI1wgugAhvHjPx
6Ql3XC/hBMnCOpz7czbvHhMtMlW2/SqNICAfqumagVX70EW4JdU4gzklbvJaHGgHUQQC+6BWdBuW
qFBSCznQWJSFMqkDJXdP/sdPvWQCFaQFLZqx4/h5oBpDO93xFn6d4vGzefKe+5KYKAzeuRFZD6O/
47MVi10AxnP3Auzwmi3fs51C8VpUCONDMju2u3ItpmMvL0dF7+nqFyzpFXfZ8dfxKt09Q5VIPEBm
hNTIVHXkp7Rm3us9HYi/ZTcTecYZFKnIbhlEacMcG38ygj8hQAj8SfPv0VSUROn8F+X2azKYlzyg
gaSgVP3m3x4vY09tg/y72Xv9/VyDPN3BF36dSrwnpKtleF3pTNKMfJLqUUl5OQTbtz0LpyBQudqi
XYlMGXnu1IonrXI4hgjkCjya8iw9j608h4fRTCEjK2NXBkqbWkSdeiZvnqlaJDbkm8dFjkxVvr4u
a9pdRc/5DIUDl7NtlcukpBpn+J/q0Cyza/GrHBu9MoJeKf6OUvj90laUgxqpAfVSsZVuiaYfTOFC
IhEyZF9Me/CMPXUN7rnP4kolfCU0GxL9QkR988lb+tBpZ/jNax0berMnQbCj0CaNc+IJkHkHOVbu
K8lFNuVJZS+Law2q5q0dF4etJgTiyC121OO5eo7qkdggrh4Zl4t65Q1PSjOt+SZoX9Xwlj1E61tZ
a3fQo7yAoGCxasVyHr+4kxHcidblAXciG7VyoK0oC0VSBwqmaiveMoEI0jrQgN/xm/sMvqXuAd7W
U0J/PzXAH1FCEwEZdNTgFqW6Qv3OMuZODik/SdgKKFmtKeCVjb1wDIOGhvHOnbhFXF93MhOhhlyJ
KEFXiVxtbZjRf4qFWJgViyYwMwIL5eSGOPHoAcvq5/BH2dP7VdrM4F8UrPkLm6wsRUFLiRx0Bnsq
g2ftbsccG28ygjfRO4YD3qTSY6yvKAdVUsNSMNVK6ZOJvbmXEvRhWPgdu88DyQ33dRv+76dxTw/c
Udep2qTGmL26GjKwfYuSRlSFW1NbFk7BnApBMXtcRctzp1ImVEphnSCZHd5fuZaG9/LwJ1NFcjT2
uz1N4XLDdpKYqHQS02l+bokN96IeiIeyMlWFoqW0ZtlUDWG6VfvAL19yLcSKkV+TtQKGHrj0bBHD
ekQMw3FVd9hWkH/9fukrykGR1ICCHR9cig+JQARZQar43bfxmNzH/5zc+86YKJXwdOSOjb6Kt9VK
aivgWwagUbj22NahDMv5EdQoZjYi55+OFbTzJSaOy+GYQPAlGOCIxV8g3aJEP72zxqAGt05oTU9E
BVmibQ3W9qzj+9wSG8jZ42NEpip3fkpbKs2ATATr7xjTeZuL0JJqnOma4NcYWD2RlizH8Yst6cGW
iGHpsCWyvVUONVohXRbKpBaUTOUoP6QCFeQFLRqy4/h5oHoP9H4MEdyPTw309pjgm1WX5RIvlWoO
k6pP94GqZ2400F8KtFfVngxi2X1AyzsGTUcOSHsPSO4B199yxnS7nD4LnuxRGiQYvhL6TjRxPVIT
rymzoSFCVM5uhL7u6EtlLX5eZc+nnDZ9kY4Qjdpwr69D7yoj0TjNlkrUqQvttIFoL4F90Cn5+gsK
IQe6irKWEqkD1VI1Kg+ZwAJpwaj4/bf2mOLb3yn++087uNJKUXHlxdMw3O3TJmkwScqBcxS/PS63
PCJF5SMIUQ7dvAmIvTqPnTUxXVxgrkhmv9vAW4+Eg7pK5C6qKntrc4AXqYK2OjIUYdFMmSpc24RG
zenBmShZIOOVpypSA2W1abcUAhnKA2jVPQqri8jx03Qo7zrU4nZ8gbwBNryKsfNqnpWLNeUSrETK
RrlUidItyz/QQMqFUfGzbteebfu+Degq++n2odFcdxZFqaTbk1OLDdf06gJ8GHCeK+rugsIgqxma
0dM1o2tkVhMUCiuxsyjmhnEtdTJnDuZQ7hR/lejn9bSh54k8WeWbTjNs2HgNhyjfKoqWOLEBrkBP
Z3gvrnEi8lVltRkPtGhU65/Yo8iKw7ibpkgJhSlDCS2ZfWNQejAoePTAoOh0rhzoLMryiFYtqJnK
l/JDJjBBWrCiFTuKnwemG/yz67r641M9oOwMilKJGBby6eI9sKrTg3qA8FOordVPBYpuYDIk8xFE
KREhtOURQZHHzp+M4E9kziGZ83HnScwnV3ncZeGWvDoX0b6aTsJGPyOt/MVPt8KJG30lCxftlKfy
O5WEV+CHKgi7q5oXLsUyjTmvOX0NzeT1fMhp/OJQenAo2d+bV2jFbWYScUkokjpQsCP+Su0hE3gg
LTjRih3BzwPPa07PO1WiVFInmljvOHZor6GNJqZgHiwa7Ky+mv8Kzd30I6hSNuTaCC07ILhuEBtg
J7If5NDvlyrnVlZ3T/r+k8wB2ZAki/TWOYxJOumkTAuceMCrNds5KnN+47xkVxTR1IrMxqZKhhYk
Gvr9Ale7cJ2jacPsmy9KD1+U+y+ogxxoKspChcPmHA6CB/P/z7ykAgvkBaPVih27zwPJe2ivq4uv
v58a2ndIhV+nkrrcxLDDoUMz0g+DW3YwRa4bHJySDUhciTiDHmWHJmOVqai8ccdOLPRzJHJOd55U
GKdXeVHRO7v6txy3EOtNRAW24LYoMcs/DBVOFrwklKeuV9VVUht2RMmOtLpOTURTkCxjmhbNTLra
ex6KBHBjbsSHvqMEfol+ogxUR+mo1MFdpeqQBAyWhCCD3DtmnweC12BODwObrgASWop3UBaXq9fm
RUNKgKx3iZhhHCWPPmoMYsLW6Ey26mtZ3lmSESyJl3NZOjM/VC7eod9KZEOIfVyHff1YjAPCveWr
tESW8/d0S5zYgGXpwNtcxnQsMSoKh6APdXSCRGgDxaV3CTWm+U/JO3VApiGzbzRJD5qEtRyaRL9S
DlQWZaFNakHLVI72QypQQV7Qoh07jp8HqtvA9mbt8amBfYdR+HUqEcBRO37OKlNhMbS7kPW3CwAm
ogkwa+OGReQMhpQrxu0wE6Xd+E6ijCBRvIsXieJXV5Qr2ZhzlahUpedZhLeuFCLaW6xTso3chqPz
Tjx6QZL2mjNVjO4qrI1wQ1E8vjXAZQopl0hj9mtq/2KtwGo0g+gO0QeCR2ELD4/CE/Psc2TEcVno
cvhmhcLHqnJ0HzKBCtKejnU+r+93H7hT12C/oyX8OpUmd6qntdZU2XdOPYxz0ttELGsKwNEstsZm
cKIet4fXbjmg7aTJCNIk33/LOUeeFbghb+U50LJ26Tq2EVmKgLzyRxH3lMx02nTEjeaHNcLJwsFc
mSr0i8pq3jiqkqXrtWOXKUQXwCTVmOZE83o6XtctDg7WG2HS07WCx19QCjnQV5SEKofvx3F5Vedi
aT5kAhOkjee39XDXhuLngek91OdRxIY/PtdQP+4gCr9OJQJ5yihJQL1JGN/DuzedjHRmGH6jvja1
KIFYdg9QYOXTa7hjB+S9B2T3gBbJFeypRK7k0G5RIvsxBRRPrn+BlkKwNw/s+h6LLUcsGQ+zhJOF
GJ685DuHy2oD1w8tu1hKtG/T+3pINKYJUwk7tfuiFbNvjEoPRgVTHIyKBr1yoK8oC0VSCwqmcjQf
QoHJEhakit/y2gNh7KkN/1pElD4+hf8dROHXqUQ8UfWzdCTvQdLhI3rxa1SjOOaOHLcgu9LZr3l+
AV4Vk+F03MedURnBqDi6oxgVv7ajXEvX51YiY1mViWflhS25ilm0t/S2JF4Iuxn6uiMvpSX/uE7t
QlVK04ECH39dipGVu2TPRqewKsb9i7W4FeSffWNSejAp2Nk5GagPKAeairJQIrUs1VI1GkcgcEBQ
8Cl+s2sPf7GnYnI/5g6s9EHwCilJXVdxqJMJEylfrz6y4Cga4pTAisYURCkcWL3Ze7mBb7aXIE0g
0pTMmYRyJVPtUaJjsOpYvrqNZHjLacPCvXlWF+tsshmJbA/bhJPlnM5SucessrhD/nkRZFqGbAUw
lIsZMo1ZYmpf23AdqWgHrv2GuAVhIhoNp3+phRxoLMry6q1aUDKVo/0QClyqL5FrBX/dCH42NLdB
PbOupD8+NajvCAq/TqXJOxvNemzab0jBMCnER8Y+6Di4eiak4bh5BlV6BI7QkPgU7wt7cCmQ6Erm
XCLP0nO/y+ss86pK5zxiEVTZZO14IrNmsj+JDUjsAR+WCScL4aKUqeKgotLa4O4dntE6JWsx15uL
SDWmidK8xkb1wk5UhYtHacGjHFcKpZADfUVJqJI6ULFD/pXpDikeRahU+wbpep/f69ojYeypa4jf
wRJ+nUorPq/ekU5HbESly9Mw68WyBfJLURDX3o07T2dwotjFNSlWnAXy2MmSEWRJiUT200lMxw7X
5/I6lw5VlVb35YfOfXG7neg4lMI3sKgJ+rJDK50M/7jiZKhS1kUzhaP5UcSqNWPJzaLoyhWx+6Z5
UF5R0rvpS/rZNpKkBUkiMBskiSzu+j1aipKW+qgBlVIxug6BQKHat7O7b47XjtrngeE9tM+cdBH9
8amhfcdO+HUq6b7/FAWVOHQWok+bReFhQc6s3F2ttEfTepCk3DmuTSs2lvK+cyg9OBRs7x0OBVpN
uZKj97nEcB7/7upW/sFZSvcc7HYiwdLtGV7cFCc29LPHRHOmpdTh0poNB7rU03VO1jFUkV+QaUxT
pAT216CkHbNtsb1axPaS2b2xHZRulQONRVmoklpQMZWj+xAKVBAXtGjGjuPngeo1tO8gCb9OJYIu
64JZOu7NZ8remvntOO8nHOqy6xLxGTzoIbjiElHuO2vSgzWBT+uwJryhWNsr+eazy+oOv7cqKa75
zaVwx26TQEhqx+/kGMy8vnYDnDw6qjNVQoWotDZw8MD3S2xosuqzZRozeFBFT9A2mlbg+h0AB2Oi
Yd1gTA7/fukpyvGGTDWgVipG3yEQSFRHadHlCjVhx+7zQHIb4P2QzeXxqQF+R0/4dSoRgVl3zhIb
ToI0a3jPeDysaZPhiIhr38bEe5rS7FxbqTrvAEPuO2fSgzPh4nqHM8HRRLm+y/RdXncXk7nh57QE
b98aX+hr/50icNPhmapFYkP/8LgozlS5UKGyWliENMI0E4ONDBS1CLOY3NcOLLsFOHwH8sGWaARx
O1IKWb9HU1EOSqR8lOuYX4VTAuKARnXwLd254IbpsUe/2FMX9uu+A/8vvMtjQi9WU1eMEvQ3ta9c
auUAjl1jdOGdAaGoFZrQzWj6jSwimjOv5j42tI11I5H9ChYD2LEZXVb3Q3YamT9+CI3oyvY0kcE8
RWy2w5PV5QL+wJphkpypEuhNpS3laoBqRRVDumr+YmGJxghmFEQSC/mP/Gtv40sL+kSTt1Kogxxo
KspCiasOFEvFaDwEAovqyHrF3TV8+W+0y/+cxh/ROJVKbB2n/D1YhQp3EDT+Bm4eWkDWFsOhLtcE
dQBJNrzaVCuOOfcBc985kh4cCe5lHZaEwBBERncARpfYS1TUXPu7YnbHIqb7K8nxNfW4dHKc7eN8
0CRKlnM4S+VujMpqNvtFtKVvnSMr2DexGEdQn+KDFdwJ+Zc37wWuoU34+GIU12+XhqIMVEfpqNQB
ngqnAXuazOQ+2F+gswTfUfs8MLwH8VHORXQ/PzWg82MCz1YU8WrKi0fG1p5y7ZjgULgaNMDbMKRX
rxgwzuAwNRHHzTq5ed/sSQ/2pNzJ7BfP6lom611Sd0wmuXTq0C+sQ5y3eCY/hra8fKcb4MSG9LyX
D2LkE4e5Jt8v+rwIuqH1VW+8Ee9kuXOOYELl1ql9FNLPtlEmzZQJx1elliL4PRqKklAeNaBSKkbX
IRAoICjoxCO5+TFx578T93mkn92ioriSJyFoUFdXVdKjSBEudOsWNfvENwz/Elshb01P+u2KimA4
dvedFOlBirAYd0gR2HLlwi52ldgdk0eVWYI3N8LtWyKOKTn8vWIgrab46wNgdsfDWSr3oFQWl00+
ry49r8G8jlo4qkieMcY1Wwsyt2C2jQ9p5kOwTimFQtbv0VSU4822akC5VIzWQxzwQFBQogE7fp8H
mtugHrO+/n5qUKfHNJ5Q2Kp7nNbk6WMCz7BJwPW4bxX2Gm8y/NcTnLKR1wBFYjZovW64C3UiArzW
80Ypfr00PO6SOjdSqYJe93pzBxxx3mKU/JTl8uyuboATG+bD4DRnqjyVotK4ZPJ58USJbCm6j6pn
rpBpjOBCl7gzT3GhcvDbVmjTI2ozKZTB75eWohzURw0olYrRdggEDogKPjRhR+7zwPFGPa033f9+
CvXjQY4cVlpEnMHXaiqsRcKvY+DpoblmZG4RKIBpdwBO3PuF/Fq+i/yeYCly3+mRHvQI8V069AgO
poWjLQE1XWJ3UGTd1FfP09ZOtw8sHJfRk5+yOvTQgqPoK7H1gW6oqjNVrsOptGbbfUCRX6p7ucwj
0xjBhMrrS76ntGO2jSBpJkigm5RCLeRAY1EWylx1oGIqRvchEKggKmjRhB3HzwNV94Gpyx8BNKml
mQg4w/O/k1jauG98pVgqFsga3PKScSCdOa6JPQFXUjM1kHcWpAcLgmt3hwXhrqNyJccBcomOlc4F
EO0S1wMYEtFeJRMalOXg6G6Gvu7wSoLin1e9j0o5X10K2qEIDGvTqeGt8O2E0BnBfircolZb5J9t
Y0GaWZBJkB3xGbxjxwPnBP1xWSiRWpZiqRp9IxA4ICj40IAduc8Dx214fyt+/f38Du/vr3fMpaqu
eDNocOi48O0J9igheqX62jotCIa1S+MGwjRL2ZXMRcFPOKnlvtMjPegRtuIdekR3JsiVqh8/oERH
TVZl8ergmtxnCPbWOydILOfu4qY4seHefD5IzlS55VimyenPi22TQhrrPple2UKiMeo1sU/hmNyK
WTdypJ7Xgl6cQinkQF9Rlo5dmSsPbBUPH+zGLRJxRiTqwokG3Oh9NiSvAT03BoRU4mqVgsHhCr2q
Sa9kXxLOobqKMTJ3i4pEqlxDnSYi/QJRGT/XVe7cdwakBwOCR2GHASHui3Klym1Tl9gdRUsRZX6G
ZXjrgr+F4zayn51PiklHc5zYIK50NWepvEqtsmAhP6qDEBuqecgojkxjBMUpFeuFUtqBa19AbA6E
e2E4/Ukt5EBjURbKpBaUTOVo/xJKuCAueK1G7Dh+Hqhuw/tk0b4/NLbv+Ae/TmHNmAMCFFut9sR2
JOHsoojWS2bFtpO4Drw6TVf6VcPCfvgE4rTDnwx/j2T2u4Vc8nZ0VZfHg6lUhWFHM7begbdo7wn9
uT1HnvwixsMA4WQhzMuEAM1XaW34bZEfItKs5VumruxO+W34CAJUs6vOZrRk1o0rqeZK5unvKIXf
o68oCVVSByqmanQfIoEKwoIWjdhx/DxQvUb6HfDg16m07kTzuJDeCl2Hxe93O5XwHpx4yXWUsO5X
ryU4ymzXRJ6ALOnarN25bwNLC0Kk3kleGnauuJvoEvvVp9bdtGkZ3rrmZ+HeopeQWmBmNcZfHzBn
aWg4S+V9dJW1dKrw1GudJYCgIbBEYwTPqSemZDelFbNudEg1HTLDMzy9UAo50FeUhSpXHSiYitF8
CAQmiApSNGHH8PNA9B7luTSZWR6fGuh3LIRfpxKOMKNZl8hRXnr6gx5QpH3sEQJFxsYYmNV7dOIs
FkUC5Dp4bjtf0oIv4Sje4Ev4m3KlCuYusXtZKdymCiHeRfvy4aN58vyk2R3zEdFHHhYKJwtvnExY
0eyyminahGFYizqzcLqkGiNfc/0UpsktmXXjTKo5Ey70K4ViyNE9bZgWlTqpBTVTOfoPqUBmSQte
tGFH8vPAdesFQ9e/np/qBXdchF+nEt5uA1qUk+W63KQegGv+yZGC/VW0RlO9SVE/ZykDkv04cts5
kxacSYtEzleOped2l9ZnVCPCww8XloZM7wkbqm0btiV4s4fZwsnCwycTLlQbgRKMxofi8djva3ul
+7uSZYwgQteY0EnkaHb/CrzNlOCjg2MYT1Xq92goykF51IBSqRZdhzxggJzxqr1OhhtqnweG1+R+
x0L4dQr+aQ5IUFYp2a/sWzLxuQ+bgXZWunQTu2oTobwxlwsUHs5AbWzAAqvWgBVw3K9RcuE39vwm
QnEDUzVJrDpvEvuhPTMkIkWOHpgmt8SJB8BJCirOVCcbAjnrmIVPMLs8daOBreK9tw4yVHfJsswu
asly+LnXcIfjwh1PKZRCju49vwlRqZJaUDGVo/uQClSQF7Rox47j54HqPbRLKosIfX5qaN/REH6d
Sniqy8sxHSxiRFP/YXgTvBaLge0iunzjlytmUKL4CBeoPF4zajuH0oJDIXAPgcc5HJArVbx6XWK3
xUfUTrYIb8dG/yEWC6woK41NSlCkDyuFk4WnbngyW27XlNY6Xh4p23ObxuohU2QaI2hRhb/RQ7a0
44v13QfcA6q+oxB+i66iFNRI+aiXatF7SAMiyAlSyL9j+Hkgeg30O/TBr1PJoSiy9cWRc+3uTJoQ
vjYsBwW9FwmuNTd4UJ3W9GwIzlq57cRJC+IE0xpxxf38KCO6MrxdXrcxV2Z3DWCJ8KY72O+Eh6ol
NK8U0xi+XxArVVa4XYfKTS6mdZw7VH6XhyATWjotzuhBhOo9Uo1LmjDrxp7UYE+4TU7Z3b9HUVES
Olw1oFmqReUhD2AsOYFoyb5D93kAuY3tls/X30+N7TsYwq9TyRFoYEeHJFiHd2/dRCrLnDCyWQ6Z
qSrDfAY7SsQlQlETeSG3nVJpQak0Zn4olRl5UmUku7xu9kbX4IsFeOsGkCV7i4RKitV/uhHv20Sh
74WHV/TLOsXsqojWiXKawmlX1Y2EMUgD2wNsSTgVxgXBly/QPZhlTPxHc0mhB3KgoigJ7VEHWqVq
1B0SAQOyAg9t2IH7PFLXgN435WtgEDhKKtKqpBv5hzFNUmmVVBVFJwks2+fh7ThQlYTfXW67P0kL
fxKAb/iTEFlxxbJ2HGSXNUyz6mJ7cZdagzgj03tAgWrNl5PFagDf7uE7pXuZ3QbWoMOFNN+lUdld
ARxV5Ujcf9a9oh4EqHbIir6G+LNuTEkNpiS+owd+j4qiJLRHHWiVqlF2yAQMyLqgoQU3YJ8NvG0I
nzm9/n5qCN/RDn6d4oLYHId1iF3oO+U7CgFX93WIWHYB+dMrmEz1G4HBi7LqEnSaGDm57RxJC46k
3cns92QJY20K3SUO7iuossQbNDriFT306GdNBtQo71HqHqWaw/cb/OHB0J2j8uq1isIa8qGOrngD
qnromI9Qowc5qtU3TTdj1o0iqUGREN4IikRreJpWV5SDJqkBDVMxqg+JAAVZAYs27DB+HqDeXaB+
t2Svv5/qAnf8g1+nls6KYgmhyynbUFtKHnQB6b6qAyiGgoLM+EbKCHp0jXehVQmPmNvOnrRgT4gG
0mBPCLhojLkn7vJwSnH04+o+uAasHOPsRDK6J6m1dA83ZH3boJfSqn9beQO74Mw/gB3tf9HR3aIk
qk3CjB7sqOwjejKPBtgp+AI+GfgR7iDraVn9HjVFSWiQOpZeqRh1Iw8wICfwIP8O3OcBY8zi845t
8OtU0go/eTXqmJc5KNuNhAv8vTG4UXeRyGsuH0F/YjPLa1NcuSeRN37YiYUtdnMlM4QquVb0nXKX
OLCGqzLeJux+eH7NCfYiGfCf+P90z1TV3298u4dFcY7KhKWiWrcTCbGxFKlEF8NFxiDU6P2a2b8a
lw2fhsyyESUliBLNkAWihAfg9UqJVBZlybKWsNHrWgfvR0v1IROgIC1g0Yodxs8D1G1wj0MWlcfn
Gty8MLB1AbTWHUNqabNIjvUOAUzKuuDfxRXivp20Se26PTqCGoUcyTO8bHPbOZQWHAontAaHAtmS
Ab/fpeFbTjUiQqn+TXB7u5EMmFEdAfAJVjP4foPfPDySc9RxXkVxPvpQhx34dBlVbxMi1OjBj8rK
ndacTjPsEmzwg0LR6QzqVTohx1JWlIQWqWPplopReUgEGMg6/WCEpoENvs8DzGuI7wE1SS3FDMWJ
QmFdtp8VzJato7wR3yb9U6h+zUuZ6TuoUFjtPLx+15e9ezeUk1Eukcx+PVi5FGItyiMeCFXpfee3
Z5EzJHuP6lmph0OwmsL3G+PK0PDv6/CraFpbtW3DdZ0L/tK9yloXxLtcDXhOODWLPsvGjej72oaL
ESmwIxqGqVlFlILuKBudUiXKtiz/gAEZgWdJvsP2eaTuId14OPj5qSE9/ndpb9PrOY9k+e3zU9z1
AJktvktAoYCpmm5jvGu4gFkYXsljG8bkDLr9/QGL53dCom7ep7IHXY1+rph/KRiMI1JkvL5W9WE5
HYIc+R3iYqLhLZv2Sfb1Ye5J4d8rwYFEsQlyTVGsObKb5boaTWoYTbCTVIwmWl95KjU8UkxxlOiK
+kV+p7QRdxjJKF6Hog4lg+F6BX1uHDH+yDQ6+JrsPic1gN8jhKsImmKGRg/LqFZXwgxRPZXFZlLG
/d3OES0gmfAE4gpaSJJekDBdI/rgCVDgFrAYxQrj+QJ1eQVUe279Y/zzC/8psqoUUlOQetO0amYH
llCVpstMn4nQycJ+4hRWURxP5RtQ8X3LdTWW1DCWkJyxYiw5nqeS49BMEf+l2RHlbdwBOnbv1TCL
kmtJvndH9dWDu4J9WAZ0fx3o8ZmYRHKoh95IYqLdlEw0hHz1ci/o89usIEMNYi+LnaSEnURq0cIp
utxPTGEFJatRU7G3XHXXCD14Ag64BSRGscJ3vsC8l/T+WtI7gpkvZAffah1fZm5TnLug/mEbpTpK
9cYjG+EOVomA+VxXU0gNUwg2EzWzK0PrmdTyQ23U6EbHVbr/rrU9F2NbzOwM5tw9BK4fdLM4EGd6
oka1Y+3VUPIkMi7MJMCSOqxcaMylnDLRKkcH63tZrCG61mLua6TA/QgIOkgO6kh0doiYzce3KX74
AxT4XuE6X61lHu+7rJ6vv5rK7cdiIFErsefrzfJDPXitso4eGVTjztbn3vmnu6OyR1g/CQOSU1al
cMgF6gK3wXaDA7fvT44ZN62BIsdprrWWkL5NoY8OIRnJqw/lLpMHwvUKeJLgqp+oA+1e9w5K1hHl
rWxK1iAFiRSpMDW6zZ7idwKZPIzpRvx8xcM6IlNnwTqik4+eQFhBCznSC/KlcwQfXAEJ/AIV41hB
PF+Q3hO6rSYQtRInuF4ttENavgmD+B7krBd/I5E5QzEzF+MTl3Iv2pqeSy6EXFcDSA0DyP1Ldi1w
PTNFOh56A/8kdUQCfGqE5x58XZiZ3e+Km2UYXD8YK6KQg/d1f43ixkLgAN+DYA/tnRRHDCuj28BJ
YfAkDcemGIAHWePKvyID7pzCMQVLDdpIc3aIkM3HN8QPf8AC1ytg56v1TOmeh1zMX381petqClEr
oaNRr0RQ7aTGd/wI+ctV2nSyrSnNR8fHpLB5EpOfIzOCvsOrMaSGMcTfbxlDXPo74+ZM/I8pspbQ
WZITs6vSqkSiw0mk+YRtas8xHK4f0Ded/kVeT1RXNVbJik7wRkJNqJRbckwVbDB1AWfg5zdXWo6N
b/FiEClhEOH7jUFEBgdKmlWOcEmTer97QMJ0jOiDI0CBV8BiDCuM5wvUe1KX1fahVkIVq29hUlab
nRR0DigZ2sX0dGuSp+jFtBbu7IWblCraRDr/Ra6r7aOG7cP7c9k+SopnUrOuBnrDNcPKVI3T+Xdq
FDiWRAYk2L1Q9CDm1WP72KZUfGd1peJYUlV9YsPlXyZnpXOBidFRyk7udi0bML2XvHyjo4gpu3Fl
R5MMeALxBCVrx9UH8pwdI+bgBgDgE2Am9ytg56u1TOrrfx+f/2pSrzqUIhkdyv6F5NAEXhuyZpiT
SmqiMSaB9PyiOfXZCMtm5gud/IWWVOsCs0H2v+cCdvgAOTGbaQ2XkMoowru7/645LK6wZcPsd6uB
tNy/NAzfrXvQQqMn6hgm0zqhGpmZhhlTr/Lmt+4ab7NdU7zu2tozBHyCA/IwivT7F6TBEwgqaCFD
ekG2dI7IgyvAmNxOgBjBA9u5QPjAPbamk/Xrr+B+8hf8dCtNW2m/vospqefrd4eMoNfotg99KGP0
rjF0AIq1e05Wqamd1yTX1RhSwxiCOk3N7LLumSll8woUBwk41RlanM4OTklVHDHSSR5CsG7XILh6
AOeMl+1xMeeNHeC0IXPR8YTUP9TpIHoUBXk7DPcsJSKL2oZKbDGDlDCDoEbbDFv2E4gKSlOC0Eeu
s1PEHbxMEOARYOB9hex8AXiv10/Kgp9uJbwbtCYmFT3dpYbPjhEZFM7cpbltCDuLXZ2Ewq7psuuH
v8r68q52jhp2Dj6IamKm9lMuFhYUh0uBJVTf3Ux8zyU4+y6jESx/twJIXhMvncJ3axt4P2XhHHZv
ndIEV/x9p7jnmVZaGNgZzfbNQh0oGcywBpbF0lHC0oF+HEsHBd+lNSZ9qmkhR3qZ0qVrhA5HgAGf
u2t56Fuwrxkn1tYynXEqXP5oLj/JCn66lfBq6puFCAvXfsyRInhwk0As4WDKolfwKuhh4LwxzJHS
Jtc1VqRGrAjWLzVzyfFMang9mN5wLRnZcaJqq1b8+cI4WKQPs/xdxcSSHc3GaxEfnhdV99fBcoNH
gavLyweszo/onHsbdhephJsNmyWr3vph9ve82D5y2D5k+cqHKQ8/gaCCku0eGyFDSsM6a7nrX4Mf
wIDT3cU99EFY4DtfYN7z+klQ8NOthHti09xSMeuplZcM+UAnFUTdpZRH5GK5gUU2tqqwrrpHOwbq
upo4apg4xtOcHkc5nnLhx6A4XD9kQ/0FA99Zvh0lQm13qntb7YOf6KJh+PbdugedzKghP7oJtU40
hnqwa6/yxm+YVuTIMF0jv8HpLsNGsYF3MW/kMG+0u4VEeAJhQQkZ0sOULN0i8OAHKCafAAT3K3Tn
C8hlTs8qCJ//zmk9nqQFP91K+CFr0qSUpbOVcLF6UHVLvnUJZPCrKbgA9v1ezgXh0Icad5S6Wj1q
WD3uxhRmjWdSw0nR9LCn0hVZthpeLVrdHR9CxffpcUiCNzuFt9di3jwpsu+vrkWbtDcjDkM9XAh8
kAlOBygYGs1GzcI+q+lTvcsD8Naa5IgLwel+3K+UK7NLVEEJKdIH0p0dI/TgBzDgFJCKnfvXnBNr
K6b1eFIV/HQrEW0gN31ySqGVl7LwlCfcoYqou5TyTgc+t2LU5ephu1RBb9B1pOajMSlh4LhjP4vw
HTwzhbnQGkd0IgUJnX9nBYer71R1F7vf9+bVafh6RVfTwvdXEniI0JRlA9s93DqvxVXGC9gZrcWS
rSVYh0Xb9hfjRg7jBo5iGDeS70dIQQn50QdypWMEHhwBBbwCUVHozpplYm0903rGf3x8/qtp/SQw
+OkWeSavviTFJoX8+MgOBsGfkwJnichoVbntBef9HsZMEuGl7m+1fIxW+0YJ+4adzna+1eztFJZC
SaKgOJyaVrWYpemMqnTBG8YumJ7xms1D4fqBnuxD6bbQVVek3SToCVnG+DSB17TWIkHVn9YM/Nxx
VbOPF2DAHpYNorm7AdSLYjFBBflBHbnOLhF3cDJhgD/AKQ7KW/NOrK0F8p7lGP76K8if/AU/3UoH
CdyQHjaYi6I0o2TbUP3bkTgEK/SmuxJFD1Mmek6Z3etuV7TV4FHC4GGHMwweaFTtEMCu3xSHk1Yq
hk1H58YRTEu7FCUyLsDyd6UySI7kXEweahWiPzuGTNSu2kQ1Qi4ygYvkjp9waP2FodFsyhSvO7Fk
GsSeF9NHjkAQ7XUzxg8qPhbPj3TTQpL0goTpHMEHV0ACvwBV7qDcRVm2tO7V/MlP8NOtRBiw3NBT
KrbiTEli5yDDAi95Ip1VmssUMXk9zJacefXRqTvzpowFYyPcaEyZ1bh/ivN4aOH9OTshTYOnu5Yv
B4H0YlYpL5Mcir1mG6JVCODuSGuYTHPIoc1z8zM85b09zIxmY6X43AkRE/vTIezWn2QnyNKAaSEJ
nkBIQQvp0QtSVdcSdnAEDPAKPMXR9GtiibX1TOxjSzJPv/5qYvcVckmL5G2HpFiktZdwmdhUUFZE
UnImMhlXqc2ZZH4R5AIwsszlsho8Sr8/3z2aU5idZ1LjbG1a+/Z0k7U0t2a0cvCFDQSGv6tyaDr6
ff3Anj0dqp+otppNUq3Z/7v9OOwYpq6HcnnA1AWXge+qvLt7EBe8D+wGXf6BE3LfiYhEwbKDMjJ1
h4nqZKTXAgZ4nODA+QPZuVzfk/jJRvDTrXRQ+71ZRF3dzH2Nt2RRGTmLL82vZoa1WNtYaQVHIv6E
cMyyWjZKWDZwDy1YNsinpKcS9YCD4u5U0y2OV99dE44IZG/NktceIjCHh8P1g2zydCh+YkotmdSU
pzZnuPxhitB0w76m03XL94I9v9LJw9jzYtnIYdkg15IsG5LKvB9xBR0kSQ9IODpOftfYnDW/hckR
m8W5b9akEmtrmdI1yUv89VdTur7W8WqZKcGbZYn1Zt7lDZo+kpQ+TAS943zpOiO2xbWGE1GKTH1C
fTV7lDB74PdTMHvgsKSnkouJhHXPCYm1zw4Wvqebs+/K7ADLF8geyLy6DR87K3n2vXUQsjIkZJmr
hn2C1NkFiZkYzWoW8TdrLBczvufF9JHD9FHvFnLgCUQUtGzL3IplGh2rwoD5AQb43F2YhTRXD3Dn
q3VP7jWPpcMzlXdrJulLCR+oaRPiNN2jHnIWX9oJc4wg4Y1NMc0aLK09c5gE1y6YClHwlLTuu1PD
EhpGHWKo1Yn2199doIjqID5HY6qMIifFQ+D6mdAbk8H310Eata7vIZtCZzDS3jZrU6yFXyxdeGgy
y+1LZTPnABynaVzDvqHvqVpIwlV3JSToID3oI1V3ewk7uJkQwOXuIizpYwXsfMG3TONrq/fx+a+m
cXmt5MWSIl8fEsQWMw8UWDn6Uwh5pAQSc2HSBjnfq3gCvhRpI3NZbRwlbBzcWLBxcKOeSo00W6a4
456grhSpCgPf7ZWLjaNhv8SjX9f0pusbdLUKeRDb4UlSTWoKWnaO3fKfe2kdgONNnKu4AzLF71A5
rmJnu8XWkcPWQfCGbB2SC09MgQWlKUd6QLrueDv8Isra0Ypf0erwTMawQni+AL3hn/uwacV8/xX8
eTWFEKF5DGXvQ5JdlhmJeAC+JJ9lhVNWWCXULqyoPWpwsjDLkuxMkmibbvjDEMKiUDCEsNTrqdSO
hx65jegq7377shDLwdkFpRl2zOYxfPUAvwscHf8ba3gykaYocdHulfoPP4Aki5VRw5qpvbPqdsC8
IzZvyOPTXd1CFjyBmIIWEqSPKVd3vHE+4JSV/XomR2zC/Qrb+QLxXsPTaw1PCESnrCwx0dHFuIM9
8OLH80b2VeVqP8RyBYliZFW+9fC3Weit4R4lwj1w/lZzqnT8THL5F9MjGV1ytULtEJnoSlfjYI+2
eyWirkX2ULhe0c2ST/cTlcqiItUagRXqo1eKAUj6283UhYsQbi6ryhAcpAm+KYwdeIEzPbUkUIiV
GjD1MLrJ9JGuu904BjjQo2XzCUjwv8J3vsBcpnTb94/PfzWl02oFUSuJu71h3dRJUea74jCPXiX3
LHur8dBoJlC2bVK4K2+R6VnH69UKUsIKQgrEghUEbYuNibikmuJeo6Osf2981vVVc6BHw7ap7bqq
DjAQrh/gh7ZRUvI0bJvEFyiiphFWoT7wJtjnjnkzO6OGbVNeSNr4MYTpSXJbQVJYQeR8qxYS4Ykp
qqCEDGcPU67ucht+CbGBJL+eQJ3N/Qrd+QLyntbby9SxWSTk5UNU8w0bH8UBHrh+4v28uVaeYv6L
v57HvWAncNL3GvzSim0ytj2anLz8TJpH8aC2Y8NOpKvQpMb/WJHmDvCQkgOGv8uGz0C4frBVUkJy
3OuJSkVRkWo6uZ700QvFaedEU/XXydKoYcFEVy7DyYbf/2LsSGHsqL5GHtyPqIISUqQHpOuOt3Hz
AxhwCkiMYIXvfIG5TOuD2fz8mXO6P9kGfrqVlEHr6uqDImjTHHdJ11Ee+Ae2ZEv+AI6kwRSQYlNO
LK4yxVbyaeW8GkFyGEGOp5k5r/HUnM71obi36Apnw+ZIzSlsR3m07mVoCO3koXC9Ip8kt+wnasSG
CZ9QAmgjpdPUxF22ITE06jDuu3BMHsKeFjNICjOIDklqIRGeQFhQQor0gHTd7db9JnLS3swnIMH/
Ct/5AvPBPZUx/cHffw19ekGPvIYSMiLHQ0Y5CbgbfCoZhzlfyfrnLk3Q27rZ8ESQp7wTA+e8mkFy
mEFIUp4xg/R4JrkckOlhSKEj3NMc2aeStXD2vTWvUocCMquHwvUDvSySs3RQw7rJ8V11BZoriMjJ
V0k21XFX/TxYGjXsm101GKuHMN0MblNIClNIuVtIhCemqIIOMqQHZOuOt+ZXUeaQin2TOs8HL+/H
Ct/5AjOW9P5kIvjpVjooGIh1s9voekmRqS1ptM0WV6ftn+8jX71m22YjTG8jU5sjPlarh028JW3R
yJT95Znksj+mh1MLXWkNh4XvVKplYjez+93qIHG36hu+0Srkvb/ur8MaA+k7rNZRgh8lwFannZyP
1AKqYd+UNUBhNHMAe1rsHSnsHWghZe+QNLgfQQUlZEgfyNZdb5wLXCSk7n4T2wcgMYYVvvMF5jK1
5z7g819N7ScPwU+30iHgJccme+w1Hx3ugcMuKQfwBU06gfTCJ1EmGYA3iKSFldvgWGAHdH3w8xDo
Le6fUq4Prb0/3eDZ4DQM2vg53KNh2xSVUTWE+XeBXMIavrMOJ6rW7oyAioJTrHapKug24/XFyvTd
Am5q7h1mHeeCADxCPIoN05zjs59AQFBCcpM+8nSnG4cEh3fU3VwCCtyvcJ0v8O6p/EJzCmIyWofF
g5m1OKyD1bNKH7BhfeITw+RKrccyPbGpMl06jme1ctikW5JjdrByEP9BySFc04LejtGM8pPaJFQK
aUsTZmVnK155lJdaKiHtD1+aBlqF2pwN82UQapHEBfELJAVkSqsOS6OG8VIGXDmDMIwLwQdZ41p1
PaXBnYgpaCBBqCNZd7rVmxeAmDxOcOD7gexc4Humbr7E9vH5r6buk2fgp1tJH4iZV3HKbsi4eo3D
gR2URyQR+oYVa0MlQGB9sxWzGbrir7JAXc0fNuYWvPRpko3WTyXXczLF3SuFNBZaDMhfr+2J4zpa
Eccz7m54HFw/WGfPA6l/Linq7T000QifoLCarE87U0whbJR4quVetQ/X2SuOilgMHykMH1gEi8/J
IyrzUc7JtJAivSBdd75xNHBQR8WaKa0JRXVIUr8AeL7gvCfzk0zgp1vpIL2a8NVXOSNE7bo43Vac
7LRGDkmEDXBz6GXzYlsiY3fOq2UjxyfQoVlYNrygF4mzPdRIpUJH87BeyYcxJeqIjobFUgSsBdI5
/qVgoFVIcd6wWKp/1QiI1DzVRgh12g++FoqTq0xjFtyNL7IW4iWlVYriII95H1nwBGKC0pQe9JGp
u92y37YMrmYSaGB+Be18QbhMaUKo3381pZ/MAj/dojT97hqmclBWGfjSDDh1q7vcJcjNr/WOEjst
LJreVFHHlMjKBXDDPWjk4m1btnz3hxLFhegEVTkJzZVKAIUJZkz5O5GjSyPgeoWbeZD9RKVkpCJn
GkEUot+lFKEAjyK9YGjUsGKyqdo8gD0tho8Uho/ia+Qw70ZAQQXZQR+ZutuNDb+DOmrze5k/AIcB
rLCdLxAXyI+aPj7/nZC3V65ZWhu6Qbl55akDuA7GaHWn9W1XxZwhBQBpxK6PWsY9xBvK6xX9+E7K
14rtOaeyLODJ62Wyp6iU2g7v01PJyYVNz3GVyq/zMKCy9mbsuyonTm4J2mMMvg7Q1Sp8DXR/JV35
vLXJ+f6EfpeLC6cgSkyTcFiH4Qt0Auv2zSPYt/Ss4FvyCk7MD0ZoFfazlIIK8oM+cqXbKe7gBhBg
0yUAd/SYr2SzSyvW7trXMzMtmdV2Uo4o3m1Qq7exuZaPExk5O6GLKonWM/vh4pIBlfSBZOrG7y+7
2BjobsXnU6zRFByr5XlqBuPlh2KSgpjOyGwnHuaZxKx9pxYRFcDIjKWx+DrwJZ8W3m16oiocVtos
Zhr0eyY6W1EM8g2Go0GQ5zeYHWPzGIZYY3hcnx45LUQy70dWQQcp0gPSpWfEHiwBCKwCFENYITxf
gD7Tulz/+/j8d07rstZSdou6JnLBSZmsqqruuvHx9idWyzdbZFn9enJo1TD8ZJl3fgIO30d+dCY0
JvycltXMTh1OHgTyrwRFZxbdyROj10l60R6cfVf2L1imjCZD8XWgr1bxAUGHBWyhFx0nMhH1LqM5
nXY5asPPSM3gyxWwbx7B2Lf7E8716XHTQiDzfiQVdJAhPSBberbQzRJwwCkwMYIVwPMFZ0zw/Mp7
QovMTDLDpkI6B5VlJxHQyGixlEuR3KNKadCT/YSr8MUQrIi0OlzbIz9maxoTX1cSmc3s/GV6KpGx
OCjOctfuCA2bNOeKoYSv7/iXEgOmectAfB34UuiY9NH4sbZuOlaoi36XMmN22vFV29H8d1xUyGnW
NvOPO7fRJfLIo6aFOOb9U0pBBelBH6nSq8VtdgBicgk88L4Cd75gXKb1LA31+e+c1umlLqGFa/tG
9k9ZcKQ16LJp5jADzZz5+op2TYJHeQLo5MFpgE7+4ZHuRc+NCToJg9XMjaQ2DdB9ojsMujYH6myg
RCsoQQucfdcp2LYxeTQ4xmBNrkyrOMXm/NqzxKuUUu6Y46XT3/BeohhIvfnpspJO2JUIp24ewdxk
xXaE69PjpoVA5v09lCUAP6j5IU8fyZaeEXmwBBjwCkgMYYXvfIEZk3p7VfqhhRH1kENIke5dBwBX
RB2JDCiTSeW5/S6bXN/uNNxSiBVXrc+3ZbCnR4ViU/QlWKBSM9uhm9K4B7+YXtKZm64GOVDm50Aa
dvjSdqyQq0NFfWxRfxf4kW5PC6K2Y0oPTDnGSL+nhFbXjogeSdgPM3231xnn47KZ/VGPezPC9elB
05qymHcjoqCC8FwQQDKdvSLqmxn1C5eAA+8rbOcLxGdK16ld+Pz3mtLTK+I5c7mVlJde5cBR/w0z
sE2TGPXi0D5P4ch+ddg5obDPKnGE1dlpsVGnSEaY89PMDW/+4tju+YsJelluFBn/MT5IuaoPnXhK
ZJhmOzbXsvk1WaJ5aBQFPeneyjFGNRWkKpdi/Woo2RT9TetCMid94CxMfYvNnI8lXIXr8xvjpYUg
5v0ICCoIDupTmPQ5JRysTLnDIVjA+IrS+WotCLdNp+nX34mwqsbdCNOSYX6Mompk1xU+6l7RNplw
5uuOA7Y2io0t+Z6NM8XHlTaudvSX9dmpuDFx1qaZZiZFDk/NI1K7CVJtk66O8kEi/IcnYu7Fq5Io
iP8lJZ2uy1Bsh4L6KxGY8z9pzq+LZsMJkbKe1wSEgWuHNOmzU0+bGR55v7ccXF/wapi0GP+8v3mT
Pakgr0kbGdIjwoWNKXJ4AwhYXiE6Xy3DO09vD4LXdULnRv0MnQScApeNyKGc//pW6NfvUjM2qjJE
AhuKcCQZ9Sopu9NcxQxg2QQf5ocprt6f+zNFHExq1irN7oQlmr5bMCTXDxglXkz8pyUHyDc1ipVi
E0GFN14k2uY8kiLcBkOrPkcdZqWTsEY8TscPGB98/YBR16eHSgsZzPuRDVSQGdQRJb0i4+AH6cOm
zuJUu7uROhfUlll6bFKAvP7OWTrWvM9uiccZFRS5gmayu+mkoo9KV5Q/WRAoMa+w9LaT2KYaZdzj
UX3hN5rSsZyXnHO/5LuRqXbPM3naJk0sNTTe8hiQP416H2Qo59RNOmGdufUfdhlrUA7FkebpVgoV
HPL0nds4cEG6dWIqFcuayIq8KbmffMTEY5+Kr1n1cBv3boLr04OlhRTm3UgnqCA3qCNOekXOwQ8I
mFEhM7lfETtf+MWk7WudY7fIbFcjZrArEuNa8tDN9uEAp3RH0M1Kc4cDJiacUmwe2Ud224Nv5QeN
iebxNDNeeAdwyk3U5GBhdoJvn3re517SDCnxIHcpFxD8l7V2FtmDVI5Ud1f5DIpIPdCfQBxneoh1
TSKYIV5iuu8rD+CcShQkP/p9AuD69JhpIYt5/5RQUEFu0Eec9IucgyMQgFWQYQQrZucLwWcKt3zI
iPz6O6dweyJVfkYLhYvrD2pTr1igg6DUrk1MabfCeo4F3QInvabp47J0ZK059sdYoetp+NGpVK08
8w+QcYXDkimFInv7SNkKdJlhzAm+YOKwZrNdl8/r9UBnfky5ySNfj1/rF+RzqIqHVdSNHP8O64fM
ZK5z5BXLXackQ6zr+ZmVcVEths8TCCYoITD6QIr0jXiDKwQPuwDCKFaozlcr5m5dkw65lSlErSnR
tYwcU43nIt5aIxUt0L3nmQyylKJtudCUinMwe7WW7vtzDNL1RFOe1WplZdvnicxSblrJm64JG1n9
5yU1FoIlfEgUMaycgBpAW9MDqlHEuu6uuUKD0KfTtFvFkqjzi8y2MNOVeGxOXek1p9KqcNaP78u8
Oj3YeY0I5p2IxhQsM2gjSvqcIjYv3xD9ZBFA4HuF6ny1lil7vU4fn//OKVueBKg/o6WA0KGSIEnp
gvsuyDdkSn2KyRqZMX/kj8jAj0SJTRPGjRK0i8vPsMfPdMfWdd7JDAPC+00nkfpy7qh4ifVhxS1o
Y6RCVwyS0V1eWGuGFirpoibSJyxL34g/0nB9O3anZdb01LFzJ1kxI1SGo2/wOFM2Tr475j7gJa26
R0oLCcy7kUtQQV7QR4yzV4Qb3CB2+AQOs78Adb5ge0Du25DH5uvvBDmv9bDc8sZP+1Id2zrRKgpf
PLVtnt4oUkBLARGpFuack5sA+iJUVsQu9/Gcf1wipOAHolYmw4WecBSsKCVJhPTYqkLSOKvWm5u9
mknlcgzelzO/GkWT7Lq3Jhx7q3RKOiRDtygjobprSs0MG13OhBNmAl82s03BGwNtHzuGSgsRzPsR
TNBBYvRgQapnRBw8IXx4BRQGsMJ1vsCLtTmt0XFuySvWoQQoyfRRSIn4y65lQbbyvnWynU+3wWnW
w+uDwrOoqIhObf1RWzRywxTyEqmVKWNbgZNKCD/AUx8+6ttLFaqEufpABj9HMZt67839Wn1djSIF
13VvJao28+Fw1cKGzk9eAOqyqVADvPBlnJjuPu7Ce1+SV3bnrmS8tJDDvB/xBJ0pNegjSvpFyMER
4odXYGEAK2DnC75l8lappZY/c+ZuT26On9GSm0JXQDwlKzopPnPRYGZMl9JlNCrbS0fVbK8Fabn7
FJDGHac/xuFK+qeCSrqS7EnuPHoiz8IbECIzfiFUCtdk6ZT1D+bm+hSbS5X3hvn95ZCq3btMQ/Pm
KhdpiNSuzXNDVUXZdQIqlGCsFp1a5dUjDrvy18F5L/VWYHQ7GTFaWkiBJxBP0EJu9DGFSc8IGY4Q
PpwCCvyvcJ0v8IxzP9bcy25RK3aXwtbfBuVkzkTpdxUiUW7LqWqZJhhtSK79p/ZBFW8apgZBDqU/
B6JCprZSKQOPEROtP3BKgYoid1MYmeyxvdNlkjIveMGrHi4PfLEn88eaw1GN4gBs6Ws3PuLyXm2k
MZj0W6JQliLUZBeGmTYc5yY2+1RJeVdZnuOQM0AzYFoIYt4/hRNUkFmz3Vn0Xe5UmefND+KHU2Bh
BCtg5wu+ZebOHJCf/16Tt++r+5ZbRU79+jIkpU6YMz0pLntC7aCwLMXofN3mt6Mqfoo8P/UgcQBo
T6/pZy/C9cRaCpBM92T8wkiosGEIZfmu4SkoL8qdCqRyqzc/SaZC+Jx7LrjXVSitruvCmUf31k3X
olLJ+GHyjdlAqELVsVLsuJz3NxjtU3Ml9nsq98GgextQZQYsPsZm3Y10ggpigz7SpN8p5eAH6cMp
qDCCFa/zhd6D9chNR97X34n1WAuHu1WGdvITaQV1ohpySq9rHB86pF37wQ95eDe5Y+RunKcvwAS5
Ej3RFgtwwwBcCXcgAJXkj0JZFk3IkIpA5KlWeJAdV1tnc5IUkAiP+G1Nzn0VOKtVmoo/6/5yHDel
yaNWanVRfe7NtgIks0TKvvMbvLapuarNprLYZ3B9etS0pijm3cgnqEhsLJ2puE8kHNwge/gEEfhf
sTpfyMUq3Z/4r5/RKru3fVFBfR7AuzaW2l9J33IMndLn+iRAZcFF00TJc231KQz/+I5/5wRY8NHQ
v6tyuk5HMpiYRiaBnKaYsqnKRV25f8xGKsSmaqslNw4Y93WgmXHf431E0S/nUtGqzv1LF1UeNvR8
7XnM0NQ1gKUUW4PvroKXjiejBNenR0wLOfAEAgpaSG72gTDpGTEHT71Fwe95SpZ6jKPoAtn5AnCZ
u95bvf7OuduedKU/o1XVd5WRXBnyuhKWJnkanddY9JXc5jOt41Et5ocEKIvOTI0zPZsEuYZ2bzzJ
m1tkyNS/EsAI4PIWjvpALvZJusHsHkm6HLykGqlXhw6zwb2vb/OCPI+rTkbVKVlNqRbROSJag7N0
kk3uMEc4YkzEo0b3EQPYY2WaV2cMdiezXfO9iCaoIDPoI0v6Rcrwg/Qnl2AC7yta5wu7mL11LUjl
lgpl9UI2NzkpuBpTE5ja1ZC6RHmdFaXfSFFbDKbUKoCpGffssZK3WMS/6t+lASCeSZ6upkIicjIC
bBR4l11PldZgJhGaKCaTNEAw7+tAU61r/fT9RdYb6NSSbTLUfBvDudqbovqDnwqaYnSmboL7Np6E
wVyfHi8txDDvD+lU46kWeQOw0o9hIQc/iB9OgWXyv8J1vsB7Zu6+FVl0X3/nzC1r4JpbOsV1lW7M
0gN2OQ2h2j1l/zg+UnqCofchNWv/6C55rOpoBaiFY79lkgmZL/JQ59/tQyHR3jSyEhnu0ztIxxnR
TztBZDBC1i9YxJke1n0dQKtV/Mopb5KUgdCquPC5l2l+Tx903WR/nRw1qcUm1MQXbeaeVKqG2plx
GS8txDDvRzpBB6E123epVxHKj3RzBADwCjCMYYXsfAEY0zcvk3dea4va5Vnk3aP8CVLHkNGUnDtR
oFRFUQ+WLgrYGlEUflNGyu5+5+QjI1/Dy0kuaTv3ZVWp5nk5zw7oZkXo0l1yeAlyQZ0Bi+T9gnVf
Wz1Lq3hLr8DQPd1OHzXbq129VCUbovNKVWxx1VIEXOFZu3kEHGONqK6voRf0ePIJGLi9bpZO0EFs
9IA46RlBB09AALcTGMbwwHUu18vUrUVm3tffOXXTkw/nZ7RUSKGrtktWkGfbQz85ZKLRRpWiyJJK
km9zI8soJ4A6GIawNpyhlKzWScrvkX/PiXsz+Uh9FpkR7bhNU4DKJZ21cpiZJDdR2ExKawb7vo7p
q1Yp7LCl40PpLVrVwd8ui9VI/Lc5XQ8sNay538SpXB1hv9XtPh9xfXrAtCwHPYGAghKiow9ESs8I
O3gCBrgFHkaxAne+YFxA37O8oV9/BfqaHd0t7Nsb5QV0VqcaAoX7nL4/odPT0kahgbYp0PIAdEwp
gC4r3biPFMQOX1LTIqZ/p3aVcCA4/jDsUlSQMlBuUHSbVaQrGEoHdmCO8FIiawi+DuDVKoWtmbbE
A8cdFdJJdgspOGQp4bR6p9YAbNUDvxv4bSi3GEY+7tMD12cMXC3kwRMIKmghQnpBtPSO0IMv4IBj
vwgayQrg+YIzVu/tKcP0M1p8bmx91y4QH5ad3DoNXVHVsl3ID6M4dsWbaHM4EZY7CwgTF/KoB2w2
bMRzzH/PcnEB4fkJMpWszzPk87T4qNOswmrBTt5k/2GdP4rZ11Vge8wwVamadW/RkgCVujnJT5mS
leu9+qwOy9ZxeT+M69AEB9fJU1sS/bRI9KPh0kIKPIF4ghaCoxcESu+IOrgCBPgFHMaxwna+QHwm
9Qw8/fj895rUbSnv/jNaimJupKJ12nDU9PHFoR5v1q5ifk+V/ENFhnF+mYiTckqIy3t0v9/5gdau
9OR/LaQsEt4yY5lIpqy0yFNxbnaaFecTzOREiQv9V2EtsO/rcNpRqyjgnCdKHxreLgHHTkF+uGWe
xegbyy9c1R2rPOy2qevq8/N1L1WbdB8a7bxGBPM+ROPnLTQoI0p6RMjm5Rvih0tggfsVsPPVMtht
f6K2fkaLXR8fNwcPMEPwQp27iqQ0Yy2hVpjvVaW0UyLuuyqD6AGiGyaBO2yLJKhFnhP8uxwddHfZ
6kImS09AB5kwcXWcFaQRDOUUVvq56jxD8HWgqha+GDxRlAUbWpM1JW4itDxzflJyZy0K8FXlAT9R
LZ6Qh8dRj/3WhXB9euS0EAhPIKqghRDpZYqWvhF5cAUY8AtIjGOF73yBuUzmvkkH8vo7J/N43vmf
0Wqc+JsMr9dbVslth0NSK3i8aE9C4tOqD472F4kSQd8qibU3/BcmvMfjgnfYAU/6Ov59KiA3oJea
MYcdXid1dZB7crdZCodgyEli8rD3UfEAfB3Aq1Wo6U7KmetQC6WZ0PIU/YqD5Y7buQxKxJQopHxC
PnROOsx83fdbK8D16eHSqk5sDeBapU0J0dEHIqVvhA1HE4LJJbDA+wrY+YIvJnNfFud5PQnMwB10
AgrkvNY2rypVkXjTCqpjjCNztccl4e23qlJ6iZOS1tWUnjRdXJ/yMirxi+xxPFGU3zZo5d1l2fWZ
lOaSkP9WzNM8zIb+IivL4uTfV7c7pT5kAK77scZNKmVH1Qb1qhoh9Mp2CX6qkl3DZ0Wz5VI2435J
uT49ZlrIgicMqighvdiQaSFUz0g7eJoowOnEBf4ftM4FOUN5ve8fOjyRWeBGlVafVrThDJYND8WN
qh9zNUnSDumr8yM78RylE5LOAxNZ/WIfo2abTqxfXE9k47pUgkLBVWcfU8qyudFHHtIsk/4Ud0Jz
lWUlgt8s2c8x+CqwVatkprkywTcFHeKyuLsWifqoW+RibHO9NE+1SvnBmtTAdpcPdHx6uD49ZlrI
orpQkL6qooP0JnVkSp9IO7iZKMAlyMD9itn5QtDo/vPHv3zIhHYkJQm6Xonr///1v377L//h478/
2P+Lfqwf2/V/cwGJR86f3/7hP/+sH//pf3z8s2lNUwwZa8q1rN6krieceKB5+d+iXOx3Kdabam7+
dKtnsqRJk9OoLicntYHvpZybCKBX1rGR0WIpRJvocFU7Ty7nUmRkHbJiTAAOX1PtvLnVOlXfcMgp
N6WBP2nGFXl3xzNDebk52rXxgtddn1XGwDWjm5kM1KKqOuroIq9O0WqJMOPZx8zJR78Vf65adGoi
/7/WfeVSh/+aw2v38PXpMdNCFjyBlIKWxEcXEipJEDVpzQ0owKexIqZzwe18oXh/8tMN62ZPifnV
1mhkuZAAo6ihvI934gPJNNicxoG033NjrahOKS6KzO/DoROHrk4vi/OaeEzubSTVMJVOrNxBHRmc
0KuwrjczQ9HBcDk0uWGe6xizW/SpJxpBUqLVXGyIPhrZHtR3nYZFDB8s8N/gdjrPp1ja72DFuD49
ZlrIgieQUtBCfrMPiZSOJergKKG/maxut13lQetckHugvKfv9b91+srR1ShjQ1cgjdxhkINiMjux
pAfhdzL7643q4j1v1A7djLP0qNQGkNZz5P1+v4erUlSpkWg1fY55ommpClrT5zG5l5lyOLn3gW7B
bA27zckVbmbqIGBUOAXWmwz+yfc2MliVYbkSw5V0dFJcpvqdiyT8zKLpIC2tKJ96FGF9u1clrk+P
mhbS4AnkFLSQ4Ozj4PRGYSO/e47gymZVOGkAD2Lngt6CNOlC+jbNYBNplwCWPd1ID2vlptLqB+6L
7TDO87uGGw21QpQJlkRzc4M1ZDeYKDugVh+rJB/vfmPsjQ9mzhz6p6b7m1yhgk5X2V3od9xx1O+Q
y1UwNLAXXHwOgoTFPNc3xrTk18n9jTAvnLcyKh/6aCr6Rt9VFaDgyj613+C2KoVI9aE8WT94+Pr0
yGkhD56YcgpKyI8+JFa6lriDJ0rVwuyPHEO48ToX7GJfpwXYaKpxSWQWiaAULU6bZCz+IIc3GlJc
OlVTIMsuPGR/m3DKg5tE8Np9jBxxBoeviQOLFszzRNup8bQbUnlLqZfOhmAnpEPqf7PlGhCUzt2V
cS0dvnogVUueOtyP4QFKLdzd+Hhtw9uNKsNEcFX3zZDuVnd1jwNdSUDqDCgaOy1kwhNIK2ghR3qR
eN256l+YqxzMghVZjx/YzhXDZ/Y6K8j0w57eQltUdMaXOgBXVEdygvvqGrWk4O/zQzrj/hQWNPcF
NbzShuL+otQlkX8zyIfwJCWhy+EzdPgazItbfIJ4ou1PYU7F/7mPTvJCygMRliWehrwhXU53HPcI
uL4RpyV1I0800j+IEtPydB+NzIN1Ti95VXBglvaCWE0+x7vHUFWcLvCOFI74tEl7hx8FiW4lqaCF
DOkF2brvdq9s5+M2W+z5PgjAXUa3NH6F/Dru9hfk454JP2l0cntrwZTfUocJtL5JWvsZ25Vwezh0
TFK64xHu6p3ikqIDmPmZ5Ezxzm5Zx9DD97adIFE7q1emtna2h3OTzFfk5mW0w1bcCbCCUkSH6wds
tUby/a3x0jTtCGRSwt9Nmc3ptepZ+JmuBUCNsTaZ+7mvundf3ZkH/Too7RJmn5E+IoV0Nsx64qi2
E7boWd7EkU1crxpubUJopI8FqnPFbQGZtCA9tb6vICtNQYCsRk9kKfhBldq5rxLI9oJle6LYoaRD
QD+I4CYlp/PM9uODqvPoCIbi7wPm7A1Yu1uNw5GeaEpGHpSmh3t1HzPspLrvQaSvuRqk6YFdBV4x
Cq4fuIlxUPwrWoymYELUVq6IQS9NKTXpvR7kGohsovJIF8fV55/mLdazEeveiA1v1+ZG7PD9yCoo
IUX6QLr0LbEHU4IDbkFsuLb5c5xYGn8Hdmp65wVzEJ96gR/dSXzxB1SZ3Yn4oWMqurVYX7M2yGOr
1m8rTFL5EAoZyXJ45Ry+BvHiViMwT0+0PaIAQTzfa3j1oZ3Yroen0XDMELMsQolQ0H3Znboljwie
aNLbQasV7B/00sjzXufRR75j4imi2OC2DvzpG9/xG2sdl7Gp9Kltl76FpK+SUlBBftCfUqVPXAjN
jECAy9zM+g3W+Vz+t2+BsJODdErU3ADvi1KE+ixaFupdsJTNCvvkJJNC1wkwtapgAaUUESwFOyRi
lFKwZKXVuD9mXJ/6jHW3mnwwuH86vgad+QEe7qEr1QD9DsramaOZdmUEqzqlwj/XD8BqDRKcEgKR
TakVOV+qh5ZI4SEF4jEwOFyw6ESVn1qD8M+5KsC1kSfHNXLgfiQEnSk3aCNN+pSYYaVWcQcyYnkB
6Vwbv4KbS9NZKop3KzTrPjZni6fjIEI09Z4csEcod5MP8W7fu0v8CuSmbhbwyl5JBJCSOcxdVuxO
uRbAvm4zySOlQliPTYfE0JN+H+HFvCuQe9z8jEoJdJKmJb+c3dcPuMmS2v1Ek/c9tJpz49NLS+Es
WWyngqu6s/NO0ohKGSbXr9hycH16xLSQBPcjI6ggOagjUXrd082MxN8i31Qy8wtY54rcs0o7/cvU
ibQXzG3VjhDYiP39BxUgZzkDiVVO8UmiH/0ObZJvXWLnhIE1k7uEwhKFz0z4nRy+JmI/fplW/Hii
DfZy0CJqazPIhApTxSU4moG9wehou7mfVzfI8xodbCVRLbU3CUC0A/UgrJxAqOkXorPrYOe02xaF
N6F2aIQ9jecDVO0WyohpIQmeQEZBC+nRCzKl773eLAkAeAUjDWGB61yx+xXocn2YJ9BRtVuHkhto
fJb0xZcOQm7QOwoD7DApb5dYnHn+WuQUnJZ2RfMBM2rPuVlP+sreiuvEzqR2albpTMvWODHfOKFt
hpgoE2ayVDXqlbrmwc0o5AvQi9a0X0sUZK2reoTWIDSYGlDlptUiR4B6aZwwC3Y9nWuYv+IEW3OX
yvLwSKgGFXA7GW9Jvp7y4O4ppaCS5MlA6N/mPiXmYKbhNECubW0dZUI/lj3l0lhgJlHMLzDzihtm
5kaS4x85g48P+VBF2G7S1pj0cYmaOcopnBOZNtDA59Gt+6wyppNNst1wu6hDz75uzMGEUMnMAaWu
2UEfMwfl4b6HUoMHV6MEs0N5wOYIuHqAVmsoyXXpEmA3FTtfm35L1IvRfmGTcVcc1QPLCbzi1TtH
UMezcBOprQ3VrJowMH4yEbQWmAaSgzoSpVf9HOzgoWaXiR+7mV/gOlfsvgD6OoO/gO6LtkSNjuGC
LM3tQ8aymRNQ/vPkqdObP90Dhs4gxRk9psIQoLUZoqgEpRnSo0/g+pQysLpFfjKeYIUKWj3v7qMr
hQp9M+uDq6GPGuyOOu4xcH2DTUs2cJ5orZpSU3ZtemhKjDr7bVu++amqrTqBlrFpx5rNBuvRBHF9
etS0kAZPOPOJaSFBekGy9C2Rm6UkLkFJrC+AnWvj2Yo5c8y1icxJUF9fa0F9LFoSNXqilPEPUr9f
r5q+jq6nkKQG7FqWUieFCnlKSD0p26OsgsPFBwjMfrZixVsxvL0LwvXdqG6DTs8oP8n0KK858vVQ
ds8cDar7idWhNMaMgOsHaLVG8f2tUTNsIFU2Y+qj6aNC39OTMxTK9XAeutSk2KoeQx2Popdr5VPx
NbLgfqQUdKb0oI9M6VfCvhnSJ0ecgtNM5XYsa9XSeGZ1QF2v9XuFupX7c/aTRk9oQ34QsN0/tGno
hM5MH+wpcPlfV8VqVkcp9cOxjgO9tWLblNcBM2NAnbwdk+EocZRBay5zYZfzuWl1DMrUdVL519n3
VJLlm6OR280q5mlGwPUDtVrK7zXsCVCt0MuKadS2TH00RVnS94xbTeaqHsVgo7fONkilxUPluD1U
GDutbFcjeYNg4DAt5EgvU7b0zW4wmBo3ty2SwOWPBbhzRXGBnCQzN+Sz1CvOZQ/g5LWeQPyIWP2k
U09vOAMkNKNEug12ToogJkG2gjHCIWxQeowayOkx4XF9ykxb3cLRiidaJ7UWtLrTaWkqyjOP3jvZ
Ts3XyNQJksGMLCEMRNc36rScNY9KE42znLZEuAXQi/MLYHvZdAjveAw6tspFyOW1r5FUV5EFdSwU
jJ6WHdb0BPIKWuHdJVM1yk/yKkj2wdcgab4MXDGK9gyu/boXvyG/BLtC3rdFI6pGJ6k31blRwWtd
bZl9mhwvIy94s42YfDxoqYFdn2yXplKs7Hbc6x7XkZOHFkH/PDH96IISmmz66HKv7F5gdoOufVo6
zO1wyDFJQ8uqP6HFxz8dkt8wnVaIPKGHpkM/PTfSikRetm/wiZIL/nH6Ndh7qK3r3UIWPIGUghby
mz0gVfpF3sGRgDCrwoqDyQPbuWL4AO4cQ71RJfIBvC7KFDWmrOS8TTHDmX4JQ4fT1yoKfWY4I51J
dS6GrASj/dBuTfCg9CqFM9V+72i4Bu7kVkukmsMpRBm5DoKYuo3hXXuz6LnP0o3maIhheB24OjEE
XHECbrtfFh8MiCZMotSIX8UJPsU2psgr4DA/U3OpqGdxOtVe8E/dioDbaaFL2K+uzc2Od21IKOgg
O3pApvSMtOFIIJjN6pf1+FggO1f8vgBbbifbzJ1M0oNFo6JGp/irLB+lhCrUGY+nnTVpB7vLH3C3
JTkrr0w/9A1Xjfqh/Wahvt52r+YbazlqkyGr3eF7GynXRSOyWWq/L+0vfVpBam5GIoh/bsG6GZ9X
D77dHtbDVR+1EUUFSr5jU29KuEuvmI7hBgUmibJwDsvmnu9xYEyMPKP1l1pS4AmkE7SQG70gT3q3
mtR8keAKhsmooon4wHWu2C04KzC+t33PK858DsLbRJ9ECjgT3Bll2kFaezW5UffpKbpnDIo/5Okp
FZfcilSBAyedQkUuvuHHc02urT2+1bJN261HCS2DVk9kUhQKcpeePZP6MjjCm8FVF3P2dyj7+sFc
LfLQuwa6dhuk0Syor+mj2b4nUW9Pms162LloI4ugLBkNh/By70y4Pj12f6kpBqMnpqyCEjKkDyRL
38g8uNrJMMq250eOUTzQnSuOf4z5vklbiiElMHcWuw+lZOyFRF4yelQn0VMVqC7f2cQOSm8qxW/7
fhh1aaln3AvGCD7gxpxyYVXLkz/UG1mVNpfEDTqdAsisIUrvSc8d47R5mu9NNbfTSnVoCFw9IlFr
hJW0ukonlKZsIxNBshGGvtsWOaIOKTdBXKGzZAXF5UygBOLV+zTO2mSblRlbTyCpoIUM6QXZ0jtS
D74Eh8uKCi/G8UB3rjgumJOpqMtvcAV9XzQtanS9Ywcp4RURmZMErL2aJtdMtkEwVUy6jDfhbmck
Av4P4rR2f5afvVrxXq35E1+1PS1+Ij6qdkbanunYlUqC3jsHBPN1fRLM7dCyziC4foBXS+KZ9zdF
AUOnOXU7PTSla6bnxhFCPBEBP2GXCVMl5BhF3SM3xOHr0yOnhUR4AlkFLaRIL0iX3qfUg6sj+c1T
GFyJMTzQnSuOX4A+XQiv9jaNnKppsuhc+ETKIOPy06j69P2oRDCR3JpUl2lnJkobjOZaUXgTdtZo
xWOU+FLfipeNjXVtBkACJUe1vkzszUyrk8MJMyumdftHqQ/z1Q+yLCnFBjsPrHJ8G2/g1RrN9zdZ
waFE3qjTfUzRz8IyWKfSjyjO2pS/iIyJaN12j6PuY9m7De/d9ruFTHgCaQUt5EgvyJfekXzwRWYD
MQxqwwnmb5/2p/EA71xVXV4qK/DPfPhJg3wdJOJSmFpSdZxeydmaFHjecVBXmF2Xp3Um3dZuryTS
9mhbOkPG5et7wx6gZ103JXjiXtIABZWu3OvQxzWBfjvlc8wRJRpdy08bf4bgQ0BATmvgy05JZb0q
ojWFG+lJDjvP0DsHb/hqm72TnJKqeBR13+9PGNenR00ru6pasZSCDvJzwBwB/cRNZExV8IT1VcyC
lsawrwvZ0vgCcplAH8SXic40n8dBzPnyaCyb4ZavioVUlXWRTMa54kvicLwDgZbIuUjGyaPbEMJ+
XUdrcipu+LxIsYDd1ZRmzkV6QHU6e+2YacxNP6iLvXnfMMw/1w/Uag3qsZNd6jClVimcRQ8NbfaB
BkbnRAyRmyN0NvxLBHIr/rLfVrGdL7BjxtSa0uB+pBSUkB59IFP6RtrBFThMbvfDA9iXif3FtPbO
LTC+dnATY9zPjTIu/jqZJD6qZbPmp2hXI4cVilDrVJqk/+xSHDiTzm6vpINTtIIgyY51R7cevj4V
sRqtRnkR9Jz1uCk1nWXoo1N1mxM6ObLNVWfbUKgxrwWGmi2cAG681RrNG46qXXg1rUZKfPfSMqYI
uayoPsfkqm32Sto4Tetj3pjk90f8SMZaDuYfyIJ78501lpSo8q1ImBllhMuk0ZRO1/yABZyClwaw
QHeuOH6B+fRpWEHvi9ZFjSmsHqoWqo+oNPEl3g+y0CRH2BCx0p3ChEOuSyUfdhdUrpewTwTgLjLR
OLzjLGIXRgWl55sO8TX00FGodPJpD15Dwd3Mp6MHxD/X95mVlvJwSM2CkraR8pGSptB3sjHWenZ6
4qhtFKSGU1QnjKAeUWLv8PXpUdNCFjyBlIIW8qMX5ErvyDv4shqGCPjud/b4WIA7VxQfyJ3zqssa
OiE/QPxYp/lhiU0fi2wpF6mB5rfSNShQdssRKG9YpMkvpO/mbtclXPzlUVZQ2BzPbpZr0q52t65j
qu9vpHM0pZlrYncfHaU97kn4YZgrq2kyb071KObVg3pVVqIIe2gU2sadoEbiVO3OM8662KU12atT
6Ajz3Wki4b4ezymE69MjpoUknMyyOoHOB1lyI3cSMqVfpB0cgQO8gpWGcKwqxKXxBd7TTvbgnbD9
3UEikqpK+iV5IvSMekALfiWhZGJ73JXAkSeGi0VKluCNCURGE7wojufQyrUSr96tujxBKqGg1Q7q
SWlF4MigvnvDHdSFDobeN/Lr8wTlEY+X0pnWwCQo6SvUBFrNibvppVGWiCfs6qNgqlkm4Fu90y/s
Hsf8SN97tgO1A2OnlZcnpqyggwShj2TpF5kHR6ABr8aMPMoLfucLzQV6cmT9Cn1fdDEunJqKUqkf
rllMoeZeyXNNmdcZqZEJdaT2NjWOd3s1HehliOPGK/zZuxXv3djVFRsVup9o5GM2JSI16IP6u7Pn
XneDjimRrKiEhKmPVHx1Q05rdH+OSEuXTKmpJtzpHgjToOemEq7w1Cj/8606imiLSO7j0S5yfXrc
tKY05t3IKKggPegjU/pF2sEROMCrsSIn3YLb+ULxV8hlPrna08dcmMtr/cYc//lEnmUS+c/JTsRM
ZFnWfqrJrZYAJjwwG55mh1E/7JY0E/Jx3n500f3O18rZXXZmNgHsrSoOii5aulNiiPpUhFwfLO03
V32Q/3/XZiDGwPWDu1qj2+JaneN30mmVpFs2luHctJNrRL6q4qiRdeIbvLaNdB2ctW+N60HKVc7s
4wNJcC8yCipIz8YyTGiFOCAtM+YIHODUaI3IgLHECC2tBXXyonUp2F+ol0UXQ2tKrDkBSs84lSfU
X0JdaiuFMmdZkrqS8GeszQMPpcJOXPaEwq7+eKxMXJ+uq0mrstvXE63sC622o3bTLhs/JIK4WRPE
Ve8E0A2/ebtHwfVjglBr5gntYTU5TKe5CgE9NJWpouemPOPw1BJeSnCLl5JrmB77PT6uT4/cv2yb
D/XFsgpaSJFekC69I/XgCzycm86e2+Njxe98ofkF9lPnOrG/9vRgPxZ1DK2e8LuSuZiy8fiOVELj
ybeNmz/5trv8RbIN2c4cyKl775Fv+9hu5LePO9f2sSnT9ryPTNt+XvmEkil3uUh1e1mihiXjKdm2
4bLz2Rb3fazeYG4N3aUnmsrbQKtVV/nFEUuB+PQ+vc6d/zuxOVdWcFLbif96LEH6Bwn9GK9/Iev4
Vm75BCVnKs/J8qRfJB0cgQG8GimNYUXtfLUexJ0wbWxElTyI5+fMJrU6aQaVS6Rn4guGZ4S2c6yg
siVlFZSb86YrvdHhrOYT7Yj2OZQxOZTnRnx3wH59VPTOs40BSdlYglYbFDXiQIY/I/U0tBqZr85X
Ovdbgc5IrEy/Zzt5OfVe64nWiTPQTKoEydMLCZDoveVsrlpyKuYDPQ1J7h71OSO0Kt1j9y8b+ph6
SytoIcfZB9J1NivJPXgCEbgVZhrDg965IPnHqF/NDur13ub+dKtLJ50KXp0kkE2SL3nYhWKjHiYG
l5lLR/ZOvDmVhx1XmaGR4/Xab9Qdwl/j3yvaed3fSrnpNIIPOiUKhXvr9h0PfubsH+azd1xZ9EWi
OlrgTUv1mXmi9WKNDznE9KWg0qVKy9P3tHMd4gkf8pl6m7xFso9VtIjHjbaD9zVm/4LnHAUWOz5f
TqdOAIJ6QKr0LN91cwQK8GqsNIYVt/OF4oI56XSG1DIvzPcf61zfLbOuQ+PcH/VQyVRXAN2xXlPQ
+bDFgwQUoayZqEdqh67s+3WpJ3hEPUFl3y9uYV3miUYEv2nZRwCP6Y1kP1LboLAxX/aZybcFJqXb
GvMgr5aD4igbJh0wqpnqOP8t1pti/4SmlCpwhTqFqgkc4BlF2x7nXa5Pj9y/bM7KYEkFHWRID8iW
nq2wMU+gAbfGTKNY8TtfaH6B/fGGvjxhWD/d6vLxSpy2M4UXsLMo3P8ILcl0cM22e5CRYmpTAD6c
UeY2HjV6vmF3qH/F/4yk/ujj4uhUb0qNgGRsKzLD0fOc3s0c4TJj/+eezf+8eiDPWq6T7209KJAI
4zTtViLGcMjesZubqU0BbrR0coSqzYrVcgPuMP+6x78T7qL7kVBQmpKjB+RJz8g5eAKByatR0ghW
xM4XfjfY0446tGmPZDxCuq0aGjInJQo1SKlOptNBcSpH+R+aTjp+zFSVqOFVBEIOxxNpLaByzS8c
+PZngjO9m67q3nwoz845IwpKKVRNt3H840iIlzycKPF+M49zQ9/MO9f39o0WrgGVGuW8LdqaNw5Q
9NK8kJIbRVi6/BIZ4uG3KaBijoHkSIF08wYuCk7PDZye1v2595sOcqMH5EnPSDp4AgO4NVIaxYra
+WpFchZ2pjeslIVMitfvUkANVzhiDztBJbqMWpr6Fndy1uFiwARmz6aoUCL/97zs0hzVT7y+WlU+
YY7QVIoEKLUe9Jtioem3K2w4OOo1apUOTe9DI+DqnsK0lM6I+128kgDkRgIy+mh4N/ch60Y3Py05
VbM4bdrJMYK2PTFzXJ8etX/Z2JNJX4HXuWkhP3pBrvTtmlLmCizg13hpHCt25wvJZyo7s9LQrjwy
LilHS141MOTasWNGkSxnBUPtgQqJPhM2TOUXRtl9qJJ4VPydJRg2n8tmwudQwgbmybqXR6VacUse
YZhON6U51uE+GtbZRpxjufnpyjYJp87iI/65fnBXyy41lEBh6dJeqaEboA+Sh9N3cyIovSmUUP8G
v3gxVKtgn4BYrlUnJf49ob0h/yeJ7lz7LR/uAak68zs7RPM0cXBaabAaoQJfc7Q8rV8x10f6hXlb
9S9qTZlRZYVl7pDvanM4PVVWUEtn5ym9UHFg+zwzg7ta0g9RZwXdaSC/eZ9WfE2VFe6315kp+bTc
yeic3O+0hOebI0eN471Syd+/3U4Tj6OvWuPw/c37OaI09eFwrII0LR3tp5Z/NF/Klx2FcYjeniNo
2xPwz3VUxvEvkgX3I6Wg5Iy0mSR07FC1REve8AQO8Gq0xvGx4na+UFwwJwfTcO68B/P2pBH86das
IegC17nE+ctBMXmjiig+ewSjHcpAmn1umnhL9vLAnMkGuk4QRntwqpylVrpbpBfjfla+oOQqlO2Q
1jO7X5/MIkynbOKzOwZp89WDNBFIvLWbokuCBvG4p6mrNAjm1LJZ8918XqIuztCOOpv7OXPvdT3h
sjLH639H/5WIMCTjlAvdYxpVH8hT6cM5kZkjl+0Wr8ZII1jxOl/ofYE12fMerPvjO/DTra6kQGkk
1Z5KKtbQFd+jvF+y5DNXpgOPjNYzqkpbZsrqdFtY5tzWlmqJtvS5+pLXZr8KEk0mPzFPpuOm1ZTv
uzdqYJaYvVu6+Zk8DnOKNzP8c30jTkuxXzzRVIB5UmqOSKUHHI3olyy2cESG+Yk5mjK9pbxHkkhg
TsQv4/YvqdsMh5yCEtJzXmJ7X8ih9HCcK1vykcyrsSL3dF99PtbWg7kTbn2B+ZPF5qdbnaTiNkRq
i34Qtondi1IOeP3myhxvCrTZtdfSDo4gHlX+La1a93VrXIaTWLBfdBYMKr8Tm6EjVST/JiK4Ncda
2d8Yy4t5IkIBbrtq5KEVXkym83rfrJevih3MpjIjfFRNhVguHFuJNi74N+rYptzWE3X9mzJWMgIq
tQXqrgXd6vOL85gognjPNorrIFaZ68TubXbVqJZ48JVs4pWlDcQ0kvTKQbS2FuRJxzSceu1BfqyB
47T6pn3hjslc+82NKE406nO/mZypKrNnmrnI927rlr7mmSMzX3P8pW6N+pBGveBDvik9xuF7I02l
d3DsKLWHGd5zV5V9fbjp1BfPYMoMjvRDyw7Omb70Rt3V+ZJpteYc4OqlUWWFXRH6dDJYZu/gxG/T
msEo5o7sPpYlJ8ejGAS/ZA7zlKfiNOA9HDtLqppKrvSOxIOvdNcITB9GTCNZ0TtfWH6BPIm5HuT3
lx2NyoKUWMQpRZxPvX+Vv7DS/ZcsW8ZQnYiJe5LzZo00SirDU7RWF5fh6XfB+8PXUYaHVvXRu1pz
VW5ajT1aS7IhDffcKK5ljjpOOokvvs4WvA/by4pGS6odnmjXewel1qiESh9NCfHouVFEekPnTTLm
eh/V8527/vHY5vquo8Qv99E7W1ZBCxnSy5QsfSPx4AosJrfGS2NYsTtfSC64S6U+nNCJnIsT9mPN
v2cP5Y1ctyS9lkfujOV0zaRcwqWclPLVwT35INDblfNu76U54cMTOWDHq6UqDJxWvT2tdhufglJT
0gUHEOFNXYFM24AcxUWln8Gkjh80G75tTcDn1o5zuwzY46HVGu63zcXCMJ+7nMiPZr4ahZ6/1duP
qXskeCMH9NVbu7gut79Vt6yCElKkD6RL31kRsfAEGnBrzDSKFb/zhWboYo7HwvDTra5qAqR+7Ow6
UFRmPFIzSRgUJZUJFplVEqb3CzvNbyUDkb7kPVKP3zu4bntjwUdVzoIoY9uTazBotXCYd7pY+m3k
BTFHpLuE1yaHI8bAdQzfLU5XO1ZTQU0GkK6CIDUSbZL4Gm/iHjkWi5WqKEblScso5r23UjU7TqFH
onTKokTaTnnGmBLyow/kSt9IHJ5AAl6N104BrdU6tLaeee3MbMOZne6Jnbcntv6nW30j2RSe4JRo
xvEsqks8Se98Gq+yiW5LTOq3Qr43hc2Vzi9RmObw9cT++aXaidF+wT/uiFIlv8vupd25Ae3LYq50
3ibn+x5jmFc36vOa/dM4nE4FCpzAT1FujbMUDpA9kl4T/fkNDkmjBueuG2i8D3ZvffmFRGp6AvkE
LZ/QK+UsIykgkg6OwABejZRGsKJ2vjBcEMd7fTj3z4P4K0Uyra4iCjKJyCsks7fO7CAzpSIURZfx
IZO3dSG9gBTJE+/QgVZVTlJt4RttncuLv/kz14LvJJlZ0MAFEOqtENe+5PXIsdPWdz1ZR6Gvc/c5
fMmfQcseUPpKk9IebWzHi4pe5sl43A6OSo2L/1vl/Zv8YuZgDK5KAurFUcYU9uQXyYInkFJQQn70
gVzpG4kHVzKxiFujtZOlc82RvLZ+Rd25YR7U8xqLRmvWAh8qmgHu80Qmq2fGcdOfbX1+MpHnGkVR
2gdqSKtQk7WglGoKA1sgzzm24mnTnmqcPDE12uWmhd+IP9ysOSWsiA9fNoykx+DFSIzyjb9aO3XE
yenG2RitG6d+emmtWXOW/VGFr1Yx5bmKJ4UI8FcBW78BpBxj9P7Fe0F5CpAmw7SQpD/dfNLVO7IP
vkAFjo2dRrLieL5Qfd4Bp3P74h04lk0crS6rbsYrSRrKLFzIlHPKZlB8appnELIXH9JA5fBB/VYK
8cJKFNLR2d7buIYvS8VnrRHTV+77644GFUpti4TOh+M7HGEijUZwRbU2a1TZMWwhvWcb5xZI4pc0
2qOZ6a71RuwKv7NboHSM+LIn6jc4xieSkbTyaB65Vm2u+HdJhPuRVVBCivSBdOkbuQdXIAK/xk3j
WDE8X4gu+JPlbThzzIN/Gcsej9b0FdhjJyfPnYyJMosLQgxcE4zcE+gkhr0JpyFRfhOV77z2ivXR
U3N9qkBPdquiWa+RSOuh1diSF76mpOzfvJJm8+TdX8JKhTeNtCW6vrGnhb3MObX0jcAM2dHn00dT
dm76nvq6bq5adblM8ev9n8bxVAg+7grBjN2/SCY8MWUVlJAhfSBb+kbmwZX3f+LXmGkcK37nC81f
sXdekQd7YqkCezxVZejPhBDo/JhJYZzx88pkxlXpaWa+dnl5865/4AeouTvL52HniuqOxx1vVnO9
f6k1rKBNOS+Pm1LFtqs+mgqqd1mqdL85QqLwqri3jVX6WRF1bY07mlp0MDqkdWy2UCeQgF5d1lX8
zLdFwQ0c7KRXYQTEmAXq2Xu9/fnFXtXJMgpK2UG42ulhZe7MfjJSwRU4wK/R2p/S9TfqS2tBnWR/
jmF7QG+roZVWV+hkxrFYKTayt1P4TeSdLXXRdhX1N3WdybpOyTfUatS71WfghpyPParWKtcipyvH
nc25kWbkVzJtl4jIdiALTr7NqVoiDUhNN+9ch1+BW3vzMiFjJa6Nwz4TxIf1KEWSvFTAUXMeKjht
lTpjKHEXr4lqrwk8H/gFB0k9gXyCFpKjlylP+s7ehNoVXghMXo2SRrAidr5aD9jO/fYr2GuGR1pd
WqiM5xm1eJ17Ajt2PsL9qMnhpzvgmyzxvdgDsoVjzSzIrDOaLA4BuVPCYzlRq1aSIFMciOhYaFXy
AxcysoWbVniTBV8t7+a3SUffrU1bazq5tWs9zrtt1A5JHPBED9MNiX6J94YjMg7Mee4IZY+g1Sg0
evj69Kj9S7Pzi6UUdJAfPSDX2W92IgnXMCbnJ6k8wEv8r9idLyS/gJ1kEw/u+mrcuKvV5ZV7fWGs
0czkE0ou40qYmTz2Cl6GqsVTvOPGkljwdrm2kmWU2PWBeMGnr2ZKMSgqQHv2eXftz7KBDTuZfuVp
fBHJGmSOnOcJfSt2AvyK8xrE6ZY14doXYDclR9BwqUOQ65T5y/dqC19Myom6EGrkz6WaweLp3KKc
RYl/b5H2u1lOQQkJekWXZOkbmQdXEwu4NV579/5v2c0trQV38v4NJx6gVMbEfaxOcbaSU1d732yP
OWLX5vTK01s7bJxFNZ8J7yyle6c1cW8+9TWVqa+2hgf27E9rOrxTw45V/ETFg9m0bI/NEelNz97l
madGWOoWBa6bR2ELeWBPi1msJxoRBezaBh+VsHDatqrMn3DEPuviCJ+L1jyCyJoN6tjHGbV/4WTY
mmQUVJAd9JEp/Xp/N/iQbra49LDRi/sVt/OF4heYxxofmO9rZm5bTTcKKTPvibfjZHTK+6vbylXI
0py1h+O8pvVrIi672DVu7HVLtKItpDWN+xfqoc/7qxLzBhVqxkB/OiCGdc3RjeZoeqUl8Wk7LbkZ
0pqY262d+APmPOHieD8TG0gfWLfou1EWQ1wRMzjx1orb9FlPWO3as4uzjZSR+5e2+36f4UwJ+dEH
cqVvaXHNEyjArbHSKFbczheKD+ZO9/gr5lh/AnPsZiptMM0DuzTcSZ757Iw1Hnwr0tz4lMw8Z4da
POf1XSfsVzbFQtyQ7GOBPbaymvpty6uk6NQTVe6fQav24T7qXbNsOIN9cEXYL/zaZqdx2FYW6NOi
RhmJqlToEFrzVEQJi6h/pqplOjcP89S6o1lIG9o3jwHrWCCPpYxx+xfJY96PnIIOEqQHJEu/yDw4
Ag14NWYaw4rf+UJzwV6OU8MB6gv0y2Q/cFcpeJJL4VnwI06uGoFrRRrKN9+d9tbBC5kiTlbMKotC
wSE1L6lGbEapqfm6kiqUmmAEO5jSzHNPDxXHijScYjH4qXjbU58XU86WwoBicUTJKlIxa4JJ1Qkl
QgRO9+Bk9x2jzx22QN2yb3DaFJow+Z8mE0Pd2cLtNqRYUas7HeBgGsgN6kiTPpFzcAMCVslOhMT9
g9W54PYrxEQl3xBbO2yQrVFXBKW1rNJrlRS+hlGLj+8nmTwxaE4DarLXjb7jXau5DiZl36w9D6BZ
9yqpQCgLl4ksJfaLSDko1TbcA2U76bmO8OFkNcaOoF/Q6ZP1ZV/jO9zaQ+879RrJlKiEc7qPqflU
Ts8PygPCUetkLYNXdKWMAc15AI4WfY7a/96btcCHpRSUkB99IFd6RuLBkzW44taI7WH/iLGtrQV2
kj8Ox6Y+uKc16YS1qTN7I0nplRmtqKzztSv+OG1HInVLQRea8JJp9mOYiKMl1+4OrwXpS8u97xZS
6NjVmnXZ44m5Mxo3rdqye7BVTj1XeVjBUR3BpzW4MyPAviaacIusjUP6DFNorudue9qYX5PsvTJ8
xDEZDr2rQz/fn91oaEsZrX/p+/1Ekd8XlJAafdgqN7plHPwg/cmn8SGLQ1oTTKytB2fne/wV57xW
oI0W3j1V51pq3/TNGuSiGIgfR8QaKsFiaZyWKJdQRnivzJkdMQn3ns26skq5W7Uqvo16ohbOgtBS
3KL6qGSqTpTo1v3maWI2zKt1ZMdx6+9utN3afH8j52oP7xuyznL+xedx2KECjihaMxFnP63s+tR+
7U+UbWjLGLd/wTlDTyCpoOXYRfUyJUvPU97B0UQBTgOb7WPF7Hwh+CvejkVd8N6X3Vq0FIuCB/vG
+8du3UUkavFKmrQ6EeV7jYvqCAnFE97T+nDvsnikR08RepPKN4M6iRQn1xO1oOPVzJ51C0W/1sNf
leSsqsFRJYnURskRzcCD4jZt2alFa+OzrHmkFYMknrsLgNTDK+nUC5G0ZZgjsqpOzPGj1j6PtXY8
GqbQnjBu/4ItV08gp6CFBOkFydI3Mg+uQAN+AyV9dRf8zheaC/ak+RyOS3ywL8uXXNeUoeVMK4tY
DVsV0ZXMK+09W7eObuJO6e4MDyRoSnzHOUs9isk4Rddt93VNw+etrm96uSnVEj3UGn57Vfi0m6eq
8klw65OzRhHXNXYEP0gLdPiJec4ZpjW/k466+BFZBmbfRJ3DExk9LkppGLtDY2jjQR3MOfNNxLvf
mMMSChrIDurIlD6RdnADDvAJOps1Hzfa5dfvtzN77i+cOR0E0m5pNlbtueQrWNrmVVPrDD4UxGTh
l7jF2pUdRTKx3n9EjH/Zh09OgbRPUehp1dJGXXfX7OgKb4aT8d3n99T9VjJMmqNqD3gw1LlJY4jr
QJoWWl3tiZR8E1ooreWLbc+U6swSfHUcWyCcm6P74Z9TUyDdvV8b8e/kJ9D9VrkPji/Y9NHIsQ+j
uN3mLw7xb+3mM9AhnLes+7WlZby9NQxg3ZIJn8S8c4NG2MgWTh94Qja9krgdTVBRaOljjeOp0k0X
QsTTYzy8t89b82tQtM2pfqISoG5aFW9J9VHZEG5NDqX15qiSxHduxtgyi/+4NqhuJStutZ2d0BA8
sgNptuGxfdCvS80S7k35hG/w2pRuhjGwZQ5gvX0m1JxfcJ/VE1NOQQn50QdSpW/kDU+gAK+BTnq2
9AFs+yIZu/1idsenUbFUpSvXGNRo6SuL15586eeREV1Vvi292CSKvPGwQBcyBm3SCtszWnmB9sN6
j3uPFjsrzUVadYu78pzXN6VqXx3t0fCI2Ni7H9b+hQ9lMbfeTx18+ddI1GjpO+sntptW28nTQC9Y
Jqp9T7RPo2DtToHcau9omdUwzO2P18e9v9qP5xf7IqsCBfl/TAsp0ovt6Hu/5R58BSKaPkZK3/8F
w/OF6K/wE770wM+HJOB3q5sNPn5FSxAJbVEWhuqq66NEdP+uN7sLHLGBs8yGr2+6P/vxAvhzu2Uf
8mdha6ngNkSdb0o18YSW1xzqv67lNd9c1dzNrT+wGkVcG363oMSymIPObodMXCJ2pd9P3SYqOCI9
2IR++MO6ewR8ZAN6f3BF3b/g9KInkFPQQoL0gWTp2zI3V4FG0ksBSvneKt3QL60FejK67g5jerAf
C/ID3KUE19SpekX5KGIKOm5plz3507lrgwIiepFReG44ORNEtiSBizV6S76uqG11fyXLtilVakGr
j0oZ3+MwJv3mqibCdjgek/RS0zat2TCjpWXDT2jTYFqblUH1lji9z4k3zNfMuzKRx3VaOWk3bftu
1CUlQs7mv+4RKFMsI1Gw7KBsme6hgE7ByzdQ0DZIyLDUPumgnusHZ6dx/RXnfc0TEq2m73H2TGla
nEKSbDvBPuvd3XW9a1S8BfpmUTDAqblrvB3II1YLpyIVdlv23VOO9aZTqYBAHk1MC+r5Ov7eHFWC
e8mrO+eiRsBVoJw/CCaPe4sp2M3elJWEzj1uCy+beQGRPTjfH6ftezbOsfrf2ZAdi2ygE1LTVs3S
VGI8y9l5gI1AiVVB/K+InS/8vkCbQKUF7VeNYreaP8NN15NvwngZTYp3gLTmMuKWQwmthXL1PnDO
aXLCP8FJ9xtz7L6rSnLVT9RN+ytRqttDv2I2BE9qc4ibSoolMuQaGYUNbWuR4qdV7idUkdaUitcZ
+tBc9edy3ByRSzh4pWIwY3hCNG6cPG5+qb6rWEpB6ekDmZZbzvATCKh4+41T+VgxO18IGu9//viX
j035MtPHOEi/PRfGf/2v30ipOL8l4+pTybKvf/0v/+Hjv+stId/r7kxh8ZJs0jym6wXZFHGSro6g
+7mV1Nruq9+9fkEPyuNFa3zRz9P/75Yx0YPu2B4663Ufpvhv+fxBB3rzLPdQfLc2aOrvb3ZTQQqi
7UWmfdHF0/VvdumQ2014LpMPqXerqbXdV3/vHB+0RHVPet1M591yH0/fUPVtPF5fj9cviD2d/E6R
BL1uyvP89tB6t6pa2331O/Vk0BNlKbxuWu+W+3n6/52iO+hBubwoly/6efr/nalkc9ZwKM8d3kPr
3SpqbffVb2xvQQ7Cx4vU8UU3T/e/sdtuztc/CZMINUi9W9wFYa5+5wwQ9KA8vwsP5Xcrm3Jc/c61
JOhBeV+Wqs8t+nn6/52jUtAT5ZRWWu+W+3n6/53rW9CDcl3o1l/6ePr+jR8lpCA5FjLjE/no8jc+
uJvD+CF4LKvg51b3mhhXv3PpDnqirIrxN613y/08/f8uUCDoQbm9KLcv+nn6/10IyuZsYlDel1Xy
c6t5zYyr3wU4BT1Rlh3/pvVuuZ+n/98FzAU9KNcX5fpFP0//vwu+3Jy8AcpjWSU/t6rXzLj6Tbh2
kBPhui7sn1ru5uneXzYqovF4WZbCz63NC2Nc/S59QNCDcl9Xxk+tclMuX1P+lJIi6EH5WNfCT60e
K6OvfpfmJOiJsiqa3LTeLffz9P+7pDmbPcah3Na18FMrxxrmq9+lXgp6UH6t359a7abc3pT/IJGX
6Jnu8aL0bnldaPsXND8nhBMtaKr0+k3l3Wpexdq6hn18kS9SdEzv9YX51GJry9948buF1vPr1nfL
IuuLwP4oS2mQgmh5kSlfdPF0/bvUt0EPyvVFq37Rz9P/7xIpBz0ov97ET616U65/l3Ik5g56UO4v
Wv2Lfp7+f5fkPehBebxojS/6efr/XemAoAfl1+z51Bo35fGm/AelKIIelF/z51Pr3hn1/UvKn+qa
BDkRHq9J9G65m6f739TKCXIQTuvq96m1BWFf/aboEuSC8GtZ/dS6t3PjtZ37wwJe0AvK5UWrfOon
KOevKb/LwUEuCNcXqfqpmyD8nn9/UEsQckH4ta3/1Lqn36hfE/5UlzLoQbm/aPUv+nn6/12pU+gF
z+NFa3zqJ3h+T78/qpwb9KC8v2jtX/Tz9P+bOsxBDsKvPcKn1n4T3v8uYRf1DnIirKTBN6l3a9wb
hnG8CX9dFT7IQfg13z61tiDsq18I85XatCKZcropvybcp1a6KacXZZ8huk+BL8r5pvyacJ9a+aac
v6bMee1FudyUXzPuU6vclMubMmeIm7IWO1OuN+XXlPvUqjfl+iVlHwpflO8JuL92vJ9a9wTc3xPQ
p5Pus9umddSU+015vGiNT/0E5f41Zc5uL8r3BJQp9qG1f+onKL8noM89X1K+Z+B+vGgdn/oJyvuX
lH1227T4m/I9BWWRuGm9W/s9Bff3FPSRqvvstlI+7jkoi8ZDOX3qx5SP7UvKbI22ybnppji/HC+d
0adWivOLr4Kuz1rdJ6SV8K0yOsqLVPmim6f7PyQ8vyqmXG7K9UWrftHP0/9NmUNc99HrRbnelNuL
Vvuin6f/z5R9QHpRbjfl15T71Go35fai7ENc92Fm05fQlO8D6PGacp9a9wH0WA+gvo3HX/PqU2vc
j483Y3wt2nH9T4zND6kZ22/Kr3n1qbXflPeHMrYXYiy58VqOHxPLH3b7L7r7etOv/yO3MFSOj/Pn
t3/4zz/bx3/6Hx//LPJDNqMmj6ef36K1W1FBa0gLULosSBsjf7W+vX+jkM16vaNR+EERur48f1iL
83Dx3779P/+GAabSStUAtfn93os8YvFgZ5T9GeX28X0uBM/7lf9tYvyHf/xf/rfU0sf//f99/MPf
/jW1DZL/oo63ec9f/vatYFW+dlR/+z8//uGfZhL9j7/9X3/a0p//9v9++8e/ffv1fvmK/r0H/j08
r10lEhXlSk/TrP1j9vW//2kr+S/bX//8Pf0pXbvqraam65Fy3ubV9tet5b9ylUra9eu1fM6/uV5P
/NOfv+c/bX+Z982rsv+5jD9dcz/9+f/42//61bBVbLReX06xMgvP/fj7choKeVRCMHNfMrz/R/q+
+PmLrtq8uv5bZmvyOP/t4uwf1da/lu3P+U9Zt187sb/6sZYu9jf+lWHMoV0PlD8hnoVc5Y409F+J
KUtMDxt/NHSNpOib/x5JqXR9Hf/htdIdEqbDZyRmfxnldaR7sX/RqX8ufypt+SduDA7vf54D/6ft
LyEKhpN6DPJC/A8Goy3i9OAsgaRC0SaS+Q+QvH4/xvzkzvXoI+GNV7ePv13z9J9mGm09/wCrl+p6
zyZmqU80LhH9hZfxz/VP823UYNIcl+RnUK6x66EY1UNk3jOlNf8l+/b57PUeJ5OqdHHNmfr8K1fB
0cQr8ZaL/HcTuFaG9ud2wZb+8B1AbCrc9e8RW5aXw28EJ0H49S3X687wJMf5v5b+iWHA+8V0vOTX
GOI+BqS1AOnF+/bc85dbCPO9RVzXsnIhdK0Z6UZgzpwvAPp7csrSlP675KQ0zp/llFNMao3jojjH
ka8zQ97+6oXv/ULcIyyvd+J69i8x/+etf9VLMN/Ni9DVanOsvLdpyuMh6tlHu01O/srC8+fnhZXM
/Xi8tX4RY4W41ot8Y3X1kLWS5AO6fyDbLwWlhCufBbVShp+Rd1aeeGkSXTKqMoee1on51/jn+Xyd
D3SISnr3u7cMgOd4b/7KTFtG/lfem7/o/b2E05H3NeWg+ldm7yWB9j8pgSRnt99LAEQuPOInsdzi
i3CtGwLFb1gGeBrd8+XvvfPXS/jj+He980khIL+88//xnnq3qIxUvN/X4Pb5pq4L3/2V/Kf7VRWk
+SGipfihkWt8sF7LrtdtvcbRpxaE6jniBeG1Sq3z7F7M/2cwVXXjX0Tx+qBcSNbxEP3nj3/DVrDc
W8HMVvD/B9vVO7AKZW5kc3RyZWFtCmVuZG9iagoKMTQ5IDAgb2JqCjUyMTgyCmVuZG9iagoKMTUw
IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAwLjkgNTA1IDc5Mi44
IDUwNy41IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9M
ZW5ndGggOAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0K
ZW5kb2JqCgoxNTEgMCBvYmoKPDwvQ0EgMC45MQogICAvY2EgMC45MQo+PgplbmRvYmoKCjE1MiAw
IG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvRm9ybQovQkJveFsgMzk3IDggMzk3IDU4Ny4x
IF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGgg
OAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRzdHJlYW0KZW5kb2Jq
CgoxNTMgMCBvYmoKPDwvQ0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgoxNTUgMCBvYmoKPDwv
TGVuZ3RoIDE1NiAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicdL1Ljis9k7Q5P6vQ
uAAlgnfGMnrUCxD6MqhsoGryb/8X7TGPYGShv0K9Ek+KpNONVze68/hJr//1779ex+t9/OTXOMtP
f7Wzfb//9//17//8j9f/9y+91v/99//z71h/eP3+Wz8a+v6fL74r739GIesLf/1///3f//Hv/3j9
112us/f/3yz3L1d2CXD81PNI5+vv51ek85w/9ZW/eea3ZFJppO9/z1G+5fbx/c+ZxvfP7zJ/ztfn
NXv+/vmdalNd7fXOOa2fnmOJlef68+dfP9JqWKlq66G/lW/J/VXOruKU+Lzy7F8dOpnOHHlO/XMU
txrpit59rpKXAO+UqzIj2juN8yuQhH7no35/RmOcoJ2ff07W1NUSZWr5+LkK7LlLNqoaJX//uySY
x6pIks2x/uHzb0l8llUJDTnb+VPcRr5/3HxS6IUcqCxKQptUgZKpGPWHSOCCtOBFM3YkPw9c3Y0W
6jWl199P9YJxaefXqaW4bw0jo9AmMbJU3dQL0lfMLwh1yXmWBc7xFXA1aSVmkhyrtU2ISgnr67e1
8+4DK0EfyJH8avSHXrA0Xe/CDvUvVbOAyVH9FzT1Q4v2BXQuham6L9Juir7uPUCKy/HzpdEcRS1l
Z+OfBUN+rWoXOJZq9tVrhP8aIuVYGlQzzrbkiB6ATDSeFDohB+qKspYeqQL1UjGKD5FABGlBimbs
GH4eiBr/7z/tEEsr3045Err6ypq6Bun89mIALkvDZQnybSS6/0rcF/ALk2SABdaSdLWyAGPaIU6G
uEZyKa1Gru/vxl1g0qj/VvTug2Fe1NFyXh8WTphlxP5CWb610hwnNphXcmkoRaa2yqa4npu6H1WN
skbmqn8egwlofNUwVRISn/n8ZqMpZxtXR+b7xwoghWbIgdKiLLRJJaiZqgEghAKZJe1CiybcGH42
PLcBPo/y+vupAd4vrfw6lVT+quU73wn9hc5XjIX9GodSfRP2C5J0asbqTPKHOuy3jQvF1Z9X01dH
6Pf05wTYt0guTY7I9e2m6S6OYaqKFiQpRBBc5RLvC+QaTV3YL1XSFCc27Feypqb+oyztW/aI4pai
q9FPgiC/kmbglZZkU+Mf9IewzG7MF+MbeyOf9X3phF+irCgDPVI4CqbKpfgQBTSQEpQQf8fv80Dz
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
v6Xss9umxd+Urykoi8RF69narym4P6egj1TdZ7eV8nHNQVk0bsrpSz+mfGzfUmZrtE3OTTfF+eV4
6Iy+tFKcX3wVdH3W6j4hrYQvldFRHqTKN93c3f8u4flVMeVyUa4PWvWbfu7+L8oc4rqPXg/K9aLc
HrTaN/3c/X+l7APSg3K7KD+m3JdWuyi3B2Uf4roPM5u+hKZ8HUCPx5T70roOoMd6APVtPP6YV19a
43p8PBnja9GO1//E2PyQmrH9ovyYV19a+0V5vyljeyHGkhtfy/FtYvndbv+uu19v+uv/yC0MleP9
/Hz7w3/+bO//8m/vfxX5IZtRk8fT51u0disqaA1pAUqXBWlj5I/W2/M3Ctms1zsahR8UoevL84e1
ODcX//vtf/0HBphKK1UD1Ob3oxd5xOLBzij7Pcrt/WMuBPf7lf9jYvzDn/+P/yu93t7/+f++/+Fv
/57agOTf1fE27/nT394KVuXXjupv/+39D3+ZSfTf//Y//ril3/72/7z9+W9vP98vX9F/9MD/H57X
rmbx5pYr/Uyj9o/Z03/9Y9vS2P75t4/0x/Sn7S+p/vaR/5haSvxL3X/7v//2f16s/9i94wz72LUg
v3pIDR+9qYN0LyWrj/RPojr03z/x39nn629PPbctp6LWX/i338ofU83bbPi2P8//5p4T/5b4m/Xb
65CbM/f5mb/k9tscBT/n+hjDKhMleS7S9D453v7pt1b/WJBGffGz/eX1f/CSJ+1ja7kzri2ZkccY
9NSXMfwOG4nsbir4KjZmsiHYSL8lD3Mr81IMbW17rajb/ttH/eN2zH+ORp6Nf+Jf/jT//PP2L/OP
ONv+fP+qu//yW/1j2ibQkwC/MIb0W3/9W8ov6vPBf3Ef5uQmkcRU35DDEDOvpyC/BzsSQRD5Zz2n
DvTwn2+S/fcEJDfF/NrRGqR8gfR6ao5zvrZ1vlQt/8kYzcHPX/4kXnTJS/MXmH696n5BJOPXEvL6
h9fbuLX5QN6DAG09M6GNy3mvZKU7X4/9M8jMfYUx+oshcFOvTfb7kO4ZkOCmmLmVqzkgsV9/81Pz
hao/M/9qvO6WaF9P/I4Ui0oZJKUdfgryNa2utzTeuIQQRfmeXnNqxbyaPyxT66/vv14/+3atnwfr
5/8HLVA6AQplbmRzdHJlYW0KZW5kb2JqCgoxNTYgMCBvYmoKNTE4OTEKZW5kb2JqCgoxNTcgMCBv
YmoKPDwvVHlwZS9YT2JqZWN0Ci9TdWJ0eXBlL0Zvcm0KL0JCb3hbIDAuOSA1MDUgNzkyLjggNTA3
LjUgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0
aCA4Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRv
YmoKCjE1OCAwIG9iago8PC9DQSAwLjkxCiAgIC9jYSAwLjkxCj4+CmVuZG9iagoKMTU5IDAgb2Jq
Cjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAzOTcgOCAzOTcgNTg3LjEgXQov
R3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0aCA4Ci9G
aWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicAwAAAAABCmVuZHN0cmVhbQplbmRvYmoKCjE2
MCAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+PgplbmRvYmoKCjE2OCAwIG9iago8PC9MZW5n
dGggMTY5IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoMSAxMzE4ND4+CnN0cmVhbQp4nOV6
fVxb15HomXuvvr+uQMggAbogARISCCTzjeGCQBYWGPFlwDYGDMJgY8AgO3GcxDhx7BTHcZw6Tlqn
sZum3cZp1sJ2Gpx9G3vfZrvbblK72zZv+9qN2Tbd3+5bu86vTbJvtza8uVfCBifp7nv7fr/3x7vW
uXfOnJk5c+bMOTPnmMjk7jBRk2lCE35gZ/8E7yj1EELeJQQSBvZEuLmO3xQhPE8I5Rqa2LbT7v35
bwhh1ITIJNtG9w6dfonOJkRlIMQ0NxzuH9QWj3gJyUJ+UjyMiO8tPC8jJJvBum14Z+TBIfnv1mHd
jvXQ6PhAv6vMVo71B7Geu7P/wYl62Y+QNvsVrHNj/TvDlVcLzFh/hxD5wxPjU5GTYFkgxM0L7ROT
4Ym56lcjWO9DnTjEAf4THtQPpEKdohmJVCZXKFVqjVbH6hMSyf9Xj+RdyQfkEckBkkT2iu8VD1NO
DOQBQhZvCLV774XO/7tayGOfi+RPyTlyhrxPZsnXyLfJSXKYPEkeRcx37ukLHLlM/py8hpX/Qk6R
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
Ci9Gb250QkJveFstMjcxIC0zMDMgMTA2MSAxMDE0XS9JdGFsaWNBbmdsZSAtMzAKL0FzY2VudCA5
MDUKL0Rlc2NlbnQgLTIxMQovQ2FwSGVpZ2h0IDEwMTQKL1N0ZW1WIDgwCi9Gb250RmlsZTIgMTY4
IDAgUgo+PgplbmRvYmoKCjE3MSAwIG9iago8PC9MZW5ndGggMzExL0ZpbHRlci9GbGF0ZURlY29k
ZT4+CnN0cmVhbQp4nF2Ry26DMBBF93yFl+kiwiYBGgkh5YXEog+V9gOIPaSWirGMs+Dv6/GkrdQF
6MzjDsOd9NieWqN9+uom2YFngzbKwTzdnAR2gas2iciY0tLfo/iWY2+TNGi7ZfYwtmaYqipJ30Jt
9m5hq72aLvCQpC9OgdPmylYfxy7E3c3aLxjBeMaTumYKhjDnqbfP/QhpVK1bFcraL+sg+Wt4Xyyw
LMaCVpGTgtn2ElxvrpBUnNesapo6AaP+1cSOJJdBfvYutIrQynm+rQNnkYtH5A2xQN4Sn5Fz4gNy
EbncIJeRM478SPk4c0f9DfKeOEc+RN6ekI+U3yGfSJshnylfIjfUj3MEp53xu4L2L3COuO9fINP+
ZR5NuP8t2oH3+rGZyZtzweJ41OgtuqoN/N7dThZV8fkGaouX0wplbmRzdHJlYW0KZW5kb2JqCgox
NzIgMCBvYmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvQmFzZUZvbnQvRUFBQUFBK0xp
YmVyYXRpb25TYW5zLUl0YWxpYwovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDE5Ci9XaWR0aHNbMzY1
IDYxMCA1NTYgNTU2IDU1NiA1MDAgNTAwIDI3NyAyNzcgNTU2IDU1NiA4MzMgMjIyIDMzMyA1NTYg
Nzc3CjY2NiA4MzMgMjc3IDU1NiBdCi9Gb250RGVzY3JpcHRvciAxNzAgMCBSCi9Ub1VuaWNvZGUg
MTcxIDAgUgo+PgplbmRvYmoKCjE3MyAwIG9iago8PC9MZW5ndGggMTc0IDAgUi9GaWx0ZXIvRmxh
dGVEZWNvZGUvTGVuZ3RoMSAyNTE2Pj4Kc3RyZWFtCnic5VXrbxRVFD93Zh+l9N2KxQW94/C0s32h
VZKCm3a3dFvaLrstzugGmW6n7ZJ9ZXfbUCMBIipuAonREIgEWsAYY9C7qzHE+EGDfsKaaEg1RoMf
mvhBMNHEDyqlnjudPiT9D9zZO/d3zj3n/M45M/dONj1mQAkcAxE8kbieqiFEAICvAEhVZDxLw+tO
2xH/jLrAcGokfnNb4RcAoRGHMRKbGL544YOzADYcMDtq6EOncqW4Zn8R5ZZRVLw094wT5Y9Q3jQa
zx6m8EkJyt+jXBJLRvQLEEZon8VbUVw/nKoWNxKUb6NME3rcOPP18V8BHOgjHk4lM9kaODQPsOYE
X0+ljVRt3R9XUb6Ccj0Oghf/oT1xcFmA//3vTXgdXoOr4IdLoEEDPA4KNMNB2AcyeKENJPgcvoRv
4DpcgVfgDByHt2ASGLwDHjgKJ8h5WC/O2J+2vwvP2SsZKAyqu9ljAZV1jWsM5KdrmaNO3aWZuiMa
vclIdX2tmxGF/sBK6txMULqDqk/WJDcTlWgtZZ6AKjGP5mY2hbtKsvSC+pNrWnOhnTrnuqO5ZInZ
61TWMa6ZC5qG8exKafhZN3Mo+UfJSWSnJ8NhFwMM41Tym0yVZ0lVpFRV0p0NbrZGoUc4yRcYhjJx
s1+mzLali0FAzRk5nXLwlEuSNFfOlIILEicsXsiuwlUhYcS1Cv3WLKdEoQ3MWRdWKd0jd+iHqEqH
BhdCcLtSzozUNEf35Dp0OUdzskkn8+DMg5ZYH1cwj8EF9CkzmXbN1EqSi87ksA3o5MdsBqzcJNOs
XJHpjEUuU7U75JIY0dQcFuSXczLN+XOyzh0WXPjkZhX8MVRh3pW8AA6q7isgxydZP3RwZSXctVrB
InKv8rZ1Dck5J6MBtdX1Ga7UKB+Ch3ja2kj3tQqIgHnnxgMqvwdVeRCzl9tcOBG5DTvvCaoFoNAe
aSsQSnBiNMLWGxsWuR5QGGqxL3hz87dWwHcThCH7AJ5MTqjPE2hoLTht5Xea8w77j60FUUAIeZGr
7VxdcDq23m0tEK7fUSlVbpYqJa9A720iZ++N2gf+fs9rmwZ+QtzC8+WobRJKYTMUUFPHnNOLM2Fl
Dcw2w9ZO4z9fTuqgsUmiW7dUPNki0QfXVTgdovve7xcnJy+SclJ6+dKly1OTwsOTU1NTc7NTUzxv
Mn+X3LAlhQOYdxXuogYmYlRbQ95uBhOlJySbLfPPKXLjDfOsGj537sCGffHny1v/hEeKzA07/dfb
U4ubd/4uzxa7gOcjLB5m6OfcP3d0xR4n9+15UbgNXkcYbtnSPALu+DCkTSsRyqw4AsoCrOPO4qJ/
Gby/FKuwFJdAMUrE8nLCpxYWUX/dwjbE0xa2Y2+/s7AD9bNoSWxrMNAQ/GZhAjVC0MIClAnDFhZR
n7WwDfFJC9vhIeG8hR2o/3hbZDttbmzcSUNjCdoTjaSTmYlM1ohnqD8RqS/u7/QFfdTb5wvR3r5+
6lP9oX664NPURLvGYlEjQXv1QSNbHAj62n1eNGx17172CA20t/t83mWfvlh0PGqkaaceiyW5l7/H
Z7r0B/2BvT66oLDMd9AePTsa1TNonskYsbieSPSljERoIj6YjAWNkbGYnl5WLKP9RjoTTSZoU2Nz
fcuyGrbhNtuOO6gZGvHaiSgEY5DAuQeiuJaGJGRgAkcWDIjjTPHET+BKPT6BfugEHwRxUNxXfTiH
EPUi6sfZByrahky8kqcJLwpdyBNDDsNk6wUdBhFnMWrAjNiOw2tFbAU37F6VIwQDaMltufVqPH0m
y7jJlEa5E5lieCWXuPxYq28FS7+pC8BeU7vS4r/Rd5hd0jHOKEbXzd50mnMGuWLYLR1rS2AGKbPK
EPYxjlUmcS2ImhGzAzpmtZrFarr9Zg0ZZEuaXWvCPJrxSbSsai1ae30Ealb7gF8j8y8zcgq6WVFA
zRNyWst38C8Tq8CPbk0QwTFtI35BwqrGauoA/gV8PvmDCmVuZHN0cmVhbQplbmRvYmoKCjE3NCAw
IG9iagoxNDg0CmVuZG9iagoKMTc1IDAgb2JqCjw8L1R5cGUvRm9udERlc2NyaXB0b3IvRm9udE5h
bWUvREFBQUFBK09wZW5TeW1ib2wKL0ZsYWdzIDQKL0ZvbnRCQm94Wy0xNzkgLTMxMiAxMDgyIDkx
Nl0vSXRhbGljQW5nbGUgMAovQXNjZW50IDc5OQovRGVzY2VudCAtMjAwCi9DYXBIZWlnaHQgOTE2
Ci9TdGVtViA4MAovRm9udEZpbGUyIDE3MyAwIFIKPj4KZW5kb2JqCgoxNzYgMCBvYmoKPDwvTGVu
Z3RoIDIzMC9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJxdkEFrxCAQhe/+Co+7h0Vj6U0C
JctCDtuWpv0BRiep0KhMzCH/vqO7baEHxcd73/Ac0fXnPvgsXjHaATKffHAIa9zQAh9h9oE1ijtv
813V2y4mMUHssK8Zlj5MUWsm3shbM+788OTiCEcmXtAB+jDzw0c3kB62lL5ggZC5ZG3LHUw052rS
s1lAVOrUO7J93k+E/AXe9wRcVd3cqtjoYE3GApowA9NStlxfLi2D4P556kaMk/00SMmGkuqxo6yW
qrxl81C5e6JMKF/8acbthkit6h5qnVLEB/hdVYqpUPV8Ayzmb+oKZW5kc3RyZWFtCmVuZG9iagoK
MTc3IDAgb2JqCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL0Jhc2VGb250L0RBQUFBQStP
cGVuU3ltYm9sCi9GaXJzdENoYXIgMAovTGFzdENoYXIgMgovV2lkdGhzWzM2NSA3OTQgNTU1IF0K
L0ZvbnREZXNjcmlwdG9yIDE3NSAwIFIKL1RvVW5pY29kZSAxNzYgMCBSCj4+CmVuZG9iagoKMTc4
IDAgb2JqCjw8L0xlbmd0aCAxNzkgMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGgxIDMxMjY4
Pj4Kc3RyZWFtCnic1Lx7YFTVuSi+vrX2npk9Mzuz55lMXjOTyXsmM5tM3mGSDeQxIQIBAuZBSICQ
EFBIIKAQlaCAELBEpSCCQita8UVUilhrSVuO1qqVqrXHQ3vknGM9tUrleqy3KknuWnsmvLS994/f
P7/JZM96fGutb72+1/rW7l+7fjkyokFEkLLs5iW9aTeUuBFCbyAElmUb+t2f1T6YRsPnEcKOrt7u
m7ND5/6KEPk7Qlq++6aNXY88/G8XETLQIkt2rFi+pDOu2BJC6KYdNKFoBU04Mn6nlsZHaTx9xc39
t4Y9b5bQ+Ie0zqqb1ixbMvGrgYcQWp1N84/evOTW3i5NB6Fx2j5yr15y8/LCzzGFXf0pQjqld826
/n0odwKhW/wsv3ft8t6ixb+qoPEbKH6/o2lA/9jHSIMaFseE4zVanaA3GMU4k2S2WG12R3yCMzEp
OSXV5fakedMzMrOyc3J9/rxAUJ6SHyooLCouKS0rnxquqFSmTZ9RVV1TG6mbWX/DrNlzGtD/3z78
G/wb6HZ+C7Kjjerzmg9XhmzoFoQmPmWxK8/xG/+/xUIX/TmBXkbH0ZFrsnagO+jzqWvSTqNfoifV
0EF0zz+p9kX0RCy0Fx1Ad/9DuJXoLlrPUdr+lU8HTd2IHqAtn0I/ogslDUK01VWx3HPote+uCv4D
XkP3occp5H3oBfo8SFfeAP4c3YfnodX492QLuhPtpH08DD1oD4XvQEehFS2mqdHPYrQcrbmu0iE0
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
CgoxODAgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9DQUFBQUErTGliZXJh
dGlvblNhbnMKL0ZsYWdzIDQKL0ZvbnRCQm94Wy0yMDMgLTMwMyAxMDQ5IDkxMF0vSXRhbGljQW5n
bGUgMAovQXNjZW50IDkwNQovRGVzY2VudCAtMjExCi9DYXBIZWlnaHQgOTEwCi9TdGVtViA4MAov
Rm9udEZpbGUyIDE3OCAwIFIKPj4KZW5kb2JqCgoxODEgMCBvYmoKPDwvTGVuZ3RoIDU2Ny9GaWx0
ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJxdlE2PmzAQhu/8Co7bwwo8NiYrRUjZZCPl0A812x9A
wMkibQARcsi/L++8biv1kOjBzIyfGcDZ9rA79N2c/ZiG5hjm9Nz17RRuw31qQnoKl65PjKRt18zx
Sv+baz0m2ZJ7fNzmcD3052G9TrKfy73bPD3Sp007nMKXJPs+tWHq+kv69Gt7XK6P93H8DNfQz2me
VFXahvNS52s9fquvIdOs50O73O7mx/OS8i/g/TGGVPTaUKUZ2nAb6yZMdX8JyTrPq3S931dJ6Nv/
7q1yppzOzUc9LaFmCc1zZ6uFRbnIwZbre7DjusYUyqIxXtkKuCTr+opswC9kB96wjvKrsl+Bt+QC
vOO+b+A35VJj9mTkmpwxJZj+HvGG/iV8DP09HAz9/QuY/h59Gfr7LZj+JRwM/b3uFf034Oiv9elf
YiYm+nsw/QutQ3//Co7+iBH6e+QK/Qv0KPT32Evi/FFHoj/6lTh/9Cv0d5i50N+hX4n+8BT6C3oU
+jt1iP6aS3+nMfS3mJXQ36oD/S16sdF/B6Z/iXhLf4e52eiv6/Qv4W/pX6JHC3/JDfa1JVlr0r/Q
+Dh/zMrSX9SB/oK5WfqL7hX9NZf+TuPpL6jv6F9gDi6+/7oe/VHT0V80hv6Cmi76Y86O8y+wr+P8
Rdfj+493zNHf4Vk4+lutSX+re9Hf4pk6+ovm0r/ArBz9HbiI/kY/8Pgl41PHWfTnCEmb+zQtx4ce
WHpu4MTo+vD3TBuHEVn6+w0mwybyCmVuZHN0cmVhbQplbmRvYmoKCjE4MiAwIG9iago8PC9UeXBl
L0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9CYXNlRm9udC9DQUFBQUErTGliZXJhdGlvblNhbnMKL0Zp
cnN0Q2hhciAwCi9MYXN0Q2hhciA4MAovV2lkdGhzWzM2NSA3MjIgNjY2IDc3NyA2NjYgMjc3IDU1
NiA1NTYgNTU2IDU1NiA2MTAgNTU2IDU1NiA3MjIgNTAwIDI3Nwo3NzcgNTU2IDMzMyA1NTYgMjIy
IDU1NiAyMjIgNTU2IDU1NiAyNzcgNzIyIDUwMCAyNzcgNzIyIDUwMCA1MDAKNTAwIDY2NiAyMjIg
NjY2IDU1NiAyNzcgMTAxNSA2NjYgNTU2IDI3NyA2MTAgNTU2IDU1NiA1NTYgNTU2IDI3Nwo4MzMg
NTAwIDcyMiAyNzcgNzIyIDUwMCAzMzMgMzMzIDk0MyA1NTYgNTgzIDMzMyAzMzMgNTU2IDY2NiAz
MzMKNjY2IDgzMyA3MjIgNjY2IDE5MCA1NTYgNjY2IDI3NyA1NTYgNjY2IDU1NiA1NTYgNTgzIDI3
NyA2MTAgNTAwCjc3NyBdCi9Gb250RGVzY3JpcHRvciAxODAgMCBSCi9Ub1VuaWNvZGUgMTgxIDAg
Ugo+PgplbmRvYmoKCjE4MyAwIG9iago8PC9MZW5ndGggMTg0IDAgUi9GaWx0ZXIvRmxhdGVEZWNv
ZGUvTGVuZ3RoMSA1ODI4Pj4Kc3RyZWFtCnic5VdtbFvVGX7Pvf5q08ZOKVGQS32825RkTuy0AZp2
oXES20malDgfZnbKWt/YN7FLYlv2TUo7qmZIQOXS0cFWYFRim7QNbUi9btmUTh0NGtM0aQz2Yz8Y
BCKNfzRr161oAtrsPcfXaRJakMak/dhNfO/zPu/nec859rlqdkKBNTAFInhj43JmPSGA1x8AyLrY
pEoX2rwU8RyAUDmSGR2vaXznbwDivwDMxtGxgyO/+fNPawHKmE84ocjxlianB+UwyvcmkOi8ftCM
8gmUNyXG1Yd9cNGA8isoW8bSMbkO6hCWncebaVx+OKOaDjP96yjTlDyu7FZ++F2UP0Dznkw6p8Zh
0wLA+gamz2SVzNWhZy0oB7E+FTkCvHwcERATl//PL+NxuB06jfeBFTL8vuwSX4Y72HPh4vL79Z6F
j/+bVViKj+fgJ/AKHIe34Ru6IgBBSMIEMkuv1+BPyLIrCEPwM8jfIuzLMI36ol0UnoLnb2EXhGfh
LPxuWZYgjMM3sZZfwNtkC/wel0oarhALfAt+i1GvILf7ZqGEcryNcDiyhH0HXhCOwS4B1ylWgRrB
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
QkFBQUFBK0xpYmVyYXRpb25TZXJpZgovRmxhZ3MgNAovRm9udEJCb3hbLTE3NiAtMzAzIDEwMDUg
OTgxXS9JdGFsaWNBbmdsZSAwCi9Bc2NlbnQgODkxCi9EZXNjZW50IC0yMTYKL0NhcEhlaWdodCA5
ODEKL1N0ZW1WIDgwCi9Gb250RmlsZTIgMTgzIDAgUgo+PgplbmRvYmoKCjE4NiAwIG9iago8PC9M
ZW5ndGggMjIxL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nF2QQU/EIBCF7/yKOe4eNtCe
myZmzSY96BqrP4DCtJLYgUzpof/eKVZNPEDyeO+DN+hr99hRyPqFo+sxwxjIMy5xZYcw4BRIVTX4
4PKhyu5mm5QWtt+WjHNHY2wapV/FWzJvcHrwccCz0nf2yIEmOL1fe9H9mtInzkgZjGpb8DjKPU82
PdsZdaEunRc75O0iyF/gbUsIddHVdxUXPS7JOmRLE6rGmBaa261VSP6fdxDD6D4sS7KSpDG1Kdnj
dKf2sX7agFuZpUmZvVTYHw+Ev9+TYtqpsr4AfVltdQplbmRzdHJlYW0KZW5kb2JqCgoxODcgMCBv
YmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvQmFzZUZvbnQvQkFBQUFBK0xpYmVyYXRp
b25TZXJpZgovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDEKL1dpZHRoc1szNjUgMjUwIF0KL0ZvbnRE
ZXNjcmlwdG9yIDE4NSAwIFIKL1RvVW5pY29kZSAxODYgMCBSCj4+CmVuZG9iagoKMTg4IDAgb2Jq
Cjw8L0YxIDE4NyAwIFIvRjIgMTgyIDAgUi9GMyAxNzcgMCBSL0Y0IDE3MiAwIFIKPj4KZW5kb2Jq
CgoxODkgMCBvYmoKPDwvRm9udCAxODggMCBSCi9YT2JqZWN0PDwvSW00IDQgMCBSL0ltNSA1IDAg
Ui9JbTYgNiAwIFIvSW02NSA2NSAwIFIvSW03MyA3MyAwIFIvSW04MSA4MSAwIFIvVHIxMDEgMTAx
IDAgUi9UcjEwMyAxMDMgMCBSCi9UcjEwOCAxMDggMCBSL1RyMTEwIDExMCAwIFIvVHIxMTUgMTE1
IDAgUi9UcjExNyAxMTcgMCBSL1RyMTIyIDEyMiAwIFIvVHIxMjQgMTI0IDAgUi9UcjEyOSAxMjkg
MCBSL1RyMTMxIDEzMSAwIFIKL1RyMTM2IDEzNiAwIFIvVHIxMzggMTM4IDAgUi9UcjE0MyAxNDMg
MCBSL1RyMTQ1IDE0NSAwIFIvVHIxNTAgMTUwIDAgUi9UcjE1MiAxNTIgMCBSL1RyMTU3IDE1NyAw
IFIvVHIxNTkgMTU5IDAgUgovVHIyMSAyMSAwIFIvVHIyMyAyMyAwIFIvVHIyOCAyOCAwIFIvVHIz
MCAzMCAwIFIvVHIzNSAzNSAwIFIvVHIzNyAzNyAwIFIvVHI0MiA0MiAwIFIvVHI0NCA0NCAwIFIK
L1RyNDkgNDkgMCBSL1RyNTEgNTEgMCBSL1RyNTYgNTYgMCBSL1RyNTggNTggMCBSL1RyNjMgNjMg
MCBSL1RyNjYgNjYgMCBSL1RyNyA3IDAgUi9UcjcxIDcxIDAgUgovVHI3NCA3NCAwIFIvVHI3OSA3
OSAwIFIvVHI4MiA4MiAwIFIvVHI4NyA4NyAwIFIvVHI4OSA4OSAwIFIvVHI5IDkgMCBSL1RyOTQg
OTQgMCBSL1RyOTYgOTYgMCBSCj4+Ci9FeHRHU3RhdGU8PC9FR1MxMCAxMCAwIFIvRUdTMTAyIDEw
MiAwIFIvRUdTMTA0IDEwNCAwIFIvRUdTMTA5IDEwOSAwIFIvRUdTMTExIDExMSAwIFIvRUdTMTE2
IDExNiAwIFIvRUdTMTE4IDExOCAwIFIvRUdTMTIzIDEyMyAwIFIKL0VHUzEyNSAxMjUgMCBSL0VH
UzEzMCAxMzAgMCBSL0VHUzEzMiAxMzIgMCBSL0VHUzEzNyAxMzcgMCBSL0VHUzEzOSAxMzkgMCBS
L0VHUzE0NCAxNDQgMCBSL0VHUzE0NiAxNDYgMCBSL0VHUzE1MSAxNTEgMCBSCi9FR1MxNTMgMTUz
IDAgUi9FR1MxNTggMTU4IDAgUi9FR1MxNjAgMTYwIDAgUi9FR1MyMiAyMiAwIFIvRUdTMjQgMjQg
MCBSL0VHUzI5IDI5IDAgUi9FR1MzMSAzMSAwIFIvRUdTMzYgMzYgMCBSCi9FR1MzOCAzOCAwIFIv
RUdTNDMgNDMgMCBSL0VHUzQ1IDQ1IDAgUi9FR1M1MCA1MCAwIFIvRUdTNTIgNTIgMCBSL0VHUzU3
IDU3IDAgUi9FR1M1OSA1OSAwIFIvRUdTNjQgNjQgMCBSCi9FR1M2NyA2NyAwIFIvRUdTNzIgNzIg
MCBSL0VHUzc1IDc1IDAgUi9FR1M4IDggMCBSL0VHUzgwIDgwIDAgUi9FR1M4MyA4MyAwIFIvRUdT
ODggODggMCBSL0VHUzkwIDkwIDAgUgovRUdTOTUgOTUgMCBSL0VHUzk3IDk3IDAgUj4+Ci9Qcm9j
U2V0Wy9QREYvVGV4dC9JbWFnZUMvSW1hZ2VJL0ltYWdlQl0KPj4KZW5kb2JqCgoxIDAgb2JqCjw8
L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAg
Nzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29u
dGVudHMgMiAwIFI+PgplbmRvYmoKCjE4IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAg
Ui9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5z
cGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMTkgMCBSPj4KZW5kb2JqCgoy
NSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVk
aWFCb3hbMCAwIDc5NCA1OTVdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kg
dHJ1ZT4+L0NvbnRlbnRzIDI2IDAgUj4+CmVuZG9iagoKMzIgMCBvYmoKPDwvVHlwZS9QYWdlL1Bh
cmVudCAxNjcgMCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Hcm91
cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAzMyAwIFI+
PgplbmRvYmoKCjM5IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMg
MTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9E
ZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNDAgMCBSPj4KZW5kb2JqCgo0NiAwIG9iago8PC9U
eXBlL1BhZ2UvUGFyZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5
NCA1OTVdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRl
bnRzIDQ3IDAgUj4+CmVuZG9iagoKNTMgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcgMCBS
L1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Hcm91cDw8L1MvVHJhbnNw
YXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA1NCAwIFI+PgplbmRvYmoKCjYw
IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRp
YUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0
cnVlPj4vQ29udGVudHMgNjEgMCBSPj4KZW5kb2JqCgo2OCAwIG9iago8PC9UeXBlL1BhZ2UvUGFy
ZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0dyb3Vw
PDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDY5IDAgUj4+
CmVuZG9iagoKNzYgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcgMCBSL1Jlc291cmNlcyAx
ODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0Rl
dmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA3NyAwIFI+PgplbmRvYmoKCjg0IDAgb2JqCjw8L1R5
cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0
IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVu
dHMgODUgMCBSPj4KZW5kb2JqCgo5MSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDE2NyAwIFIv
UmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0dyb3VwPDwvUy9UcmFuc3Bh
cmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDkyIDAgUj4+CmVuZG9iagoKOTgg
MCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcgMCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlh
Qm94WzAgMCA3OTQgNTk1XS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRy
dWU+Pi9Db250ZW50cyA5OSAwIFI+PgplbmRvYmoKCjEwNSAwIG9iago8PC9UeXBlL1BhZ2UvUGFy
ZW50IDE2NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0Fubm90
c1sKMTYxIDAgUiBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+
Pi9Db250ZW50cyAxMDYgMCBSPj4KZW5kb2JqCgoxMTIgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVu
dCAxNjcgMCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Bbm5vdHNb
CjE2MiAwIFIgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4v
Q29udGVudHMgMTEzIDAgUj4+CmVuZG9iagoKMTE5IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQg
MTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vQW5ub3RzWwox
NjMgMCBSIF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0Nv
bnRlbnRzIDEyMCAwIFI+PgplbmRvYmoKCjEyNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDE2
NyAwIFIvUmVzb3VyY2VzIDE4OSAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0Fubm90c1sKMTY0
IDAgUiBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250
ZW50cyAxMjcgMCBSPj4KZW5kb2JqCgoxMzMgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAxNjcg
MCBSL1Jlc291cmNlcyAxODkgMCBSL01lZGlhQm94WzAgMCA3OTQgNTk1XS9Bbm5vdHNbCjE2NSAw
IFIgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVu
dHMgMTM0IDAgUj4+CmVuZG9iagoKMTQwIDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAg
Ui9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5z
cGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMTQxIDAgUj4+CmVuZG9iagoK
MTQ3IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9N
ZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0Iv
SSB0cnVlPj4vQ29udGVudHMgMTQ4IDAgUj4+CmVuZG9iagoKMTU0IDAgb2JqCjw8L1R5cGUvUGFn
ZS9QYXJlbnQgMTY3IDAgUi9SZXNvdXJjZXMgMTg5IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0v
QW5ub3RzWwoxNjYgMCBSIF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kg
dHJ1ZT4+L0NvbnRlbnRzIDE1NSAwIFI+PgplbmRvYmoKCjE5MCAwIG9iago8PC9Db3VudCAyMS9G
aXJzdCAxOTEgMCBSL0xhc3QgMjExIDAgUgo+PgplbmRvYmoKCjE5MSAwIG9iago8PC9Db3VudCAw
L1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0MDA2NTAwMjAwMDMxPgovRGVzdFsxIDAgUi9YWVog
MCA1OTUgMF0vUGFyZW50IDE5MCAwIFIvTmV4dCAxOTIgMCBSPj4KZW5kb2JqCgoxOTIgMCBvYmoK
PDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMj4KL0Rlc3Rb
MTggMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5MSAwIFIvTmV4dCAxOTMg
MCBSPj4KZW5kb2JqCgoxOTMgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5
MDA2NDAwNjUwMDIwMDAzMz4KL0Rlc3RbMjUgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAg
Ui9QcmV2IDE5MiAwIFIvTmV4dCAxOTQgMCBSPj4KZW5kb2JqCgoxOTQgMCBvYmoKPDwvQ291bnQg
MC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzND4KL0Rlc3RbMzIgMCBSL1hZ
WiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5MyAwIFIvTmV4dCAxOTUgMCBSPj4KZW5k
b2JqCgoxOTUgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUw
MDIwMDAzNT4KL0Rlc3RbMzkgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5
NCAwIFIvTmV4dCAxOTYgMCBSPj4KZW5kb2JqCgoxOTYgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxG
RUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzNj4KL0Rlc3RbNDYgMCBSL1hZWiAwIDU5NSAw
XS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5NSAwIFIvTmV4dCAxOTcgMCBSPj4KZW5kb2JqCgoxOTcg
MCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzNz4K
L0Rlc3RbNTMgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5NiAwIFIvTmV4
dCAxOTggMCBSPj4KZW5kb2JqCgoxOTggMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAw
NkMwMDY5MDA2NDAwNjUwMDIwMDAzOD4KL0Rlc3RbNjAgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQg
MTkwIDAgUi9QcmV2IDE5NyAwIFIvTmV4dCAxOTkgMCBSPj4KZW5kb2JqCgoxOTkgMCBvYmoKPDwv
Q291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzOT4KL0Rlc3RbNjgg
MCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDE5OCAwIFIvTmV4dCAyMDAgMCBS
Pj4KZW5kb2JqCgoyMDAgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2
NDAwNjUwMDIwMDAzMTAwMzA+Ci9EZXN0Wzc2IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAw
IFIvUHJldiAxOTkgMCBSL05leHQgMjAxIDAgUj4+CmVuZG9iagoKMjAxIDAgb2JqCjw8L0NvdW50
IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQwMDY1MDAyMDAwMzEwMDMxPgovRGVzdFs4NCAw
IFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAgMCBSL1ByZXYgMjAwIDAgUi9OZXh0IDIwMiAwIFI+
PgplbmRvYmoKCjIwMiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0
MDA2NTAwMjAwMDMxMDAzMj4KL0Rlc3RbOTEgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAg
Ui9QcmV2IDIwMSAwIFIvTmV4dCAyMDMgMCBSPj4KZW5kb2JqCgoyMDMgMCBvYmoKPDwvQ291bnQg
MC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMTAwMzM+Ci9EZXN0Wzk4IDAg
Ui9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAwIFIvUHJldiAyMDIgMCBSL05leHQgMjA0IDAgUj4+
CmVuZG9iagoKMjA0IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQw
MDY1MDAyMDAwMzEwMDM0PgovRGVzdFsxMDUgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAg
Ui9QcmV2IDIwMyAwIFIvTmV4dCAyMDUgMCBSPj4KZW5kb2JqCgoyMDUgMCBvYmoKPDwvQ291bnQg
MC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMTAwMzU+Ci9EZXN0WzExMiAw
IFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAgMCBSL1ByZXYgMjA0IDAgUi9OZXh0IDIwNiAwIFI+
PgplbmRvYmoKCjIwNiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0
MDA2NTAwMjAwMDMxMDAzNj4KL0Rlc3RbMTE5IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAw
IFIvUHJldiAyMDUgMCBSL05leHQgMjA3IDAgUj4+CmVuZG9iagoKMjA3IDAgb2JqCjw8L0NvdW50
IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQwMDY1MDAyMDAwMzEwMDM3PgovRGVzdFsxMjYg
MCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkwIDAgUi9QcmV2IDIwNiAwIFIvTmV4dCAyMDggMCBS
Pj4KZW5kb2JqCgoyMDggMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2
NDAwNjUwMDIwMDAzMTAwMzg+Ci9EZXN0WzEzMyAwIFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAg
MCBSL1ByZXYgMjA3IDAgUi9OZXh0IDIwOSAwIFI+PgplbmRvYmoKCjIwOSAwIG9iago8PC9Db3Vu
dCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0MDA2NTAwMjAwMDMxMDAzOT4KL0Rlc3RbMTQw
IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDE5MCAwIFIvUHJldiAyMDggMCBSL05leHQgMjEwIDAg
Uj4+CmVuZG9iagoKMjEwIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAw
NjQwMDY1MDAyMDAwMzIwMDMwPgovRGVzdFsxNDcgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTkw
IDAgUi9QcmV2IDIwOSAwIFIvTmV4dCAyMTEgMCBSPj4KZW5kb2JqCgoyMTEgMCBvYmoKPDwvQ291
bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMjAwMzE+Ci9EZXN0WzE1
NCAwIFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxOTAgMCBSL1ByZXYgMjEwIDAgUj4+CmVuZG9iagoK
MTY3IDAgb2JqCjw8L1R5cGUvUGFnZXMKL1Jlc291cmNlcyAxODkgMCBSCi9NZWRpYUJveFsgMCAw
IDc5NCA1OTUgXQovS2lkc1sgMSAwIFIgMTggMCBSIDI1IDAgUiAzMiAwIFIgMzkgMCBSIDQ2IDAg
UiA1MyAwIFIgNjAgMCBSIDY4IDAgUiA3NiAwIFIgODQgMCBSIDkxIDAgUiA5OCAwIFIgMTA1IDAg
UiAxMTIgMCBSIDExOSAwIFIKMTI2IDAgUiAxMzMgMCBSIDE0MCAwIFIgMTQ3IDAgUiAxNTQgMCBS
IF0KL0NvdW50IDIxPj4KZW5kb2JqCgoxNjEgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xp
bmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzc1LjIgMTY1IDQ2My44IDE5NC44XS9BPDwvVHlwZS9BY3Rp
b24vUy9VUkkvVVJJKGh0dHA6Ly93d3cub3Blbm1pcmFnZS5vcmcvKT4+Cj4+CmVuZG9iagoKMTYy
IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3NS4y
IDEyOSA1MzEuNCAxNTguOF0vQTw8L1R5cGUvQWN0aW9uL1MvVVJJL1VSSShodHRwczovL2dhbG9p
cy5jb20vcHJvamVjdC9oYWx2bS8pPj4KPj4KZW5kb2JqCgoxNjMgMCBvYmoKPDwvVHlwZS9Bbm5v
dC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzc1LjIgMjE1LjEgMzk0LjUgMjQ0Ljld
L0E8PC9UeXBlL0FjdGlvbi9TL1VSSS9VUkkoaHR0cDovL2VybGFuZ29ueGVuLm9yZy8pPj4KPj4K
ZW5kb2JqCgoxNjQgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAw
XS9SZWN0Wzc1LjIgMTI5IDQ4My41IDE1OC44XS9BPDwvVHlwZS9BY3Rpb24vUy9VUkkvVVJJKGh0
dHBzOi8vY25wLm5lY2xhYi5ldS9jbGlja29zLyk+Pgo+PgplbmRvYmoKCjE2NSAwIG9iago8PC9U
eXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNjcuNiAxMjQuMyAyMDEu
NyAxNDcuOV0vQTw8L1R5cGUvQWN0aW9uL1MvVVJJL1VSSShodHRwOi8vb3N2LmlvLyk+Pgo+Pgpl
bmRvYmoKCjE2NiAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBd
L1JlY3RbMTU5LjUgMzQ2LjEgNjMzLjYgMzc2XS9BPDwvVHlwZS9BY3Rpb24vUy9VUkkvVVJJKG1h
aWx0bzpSdXNzZWxsLlBhdmxpY2VrQFhlblByb2plY3Qub3JnKT4+Cj4+CmVuZG9iagoKMjEyIDAg
b2JqCjw8L1R5cGUvQ2F0YWxvZy9QYWdlcyAxNjcgMCBSCi9PcGVuQWN0aW9uWzEgMCBSIC9YWVog
bnVsbCBudWxsIDBdCi9PdXRsaW5lcyAxOTAgMCBSCj4+CmVuZG9iagoKMjEzIDAgb2JqCjw8L0Ny
ZWF0b3I8RkVGRjAwNDkwMDZEMDA3MDAwNzIwMDY1MDA3MzAwNzM+Ci9Qcm9kdWNlcjxGRUZGMDA0
QzAwNjkwMDYyMDA3MjAwNjUwMDRGMDA2NjAwNjYwMDY5MDA2MzAwNjUwMDIwMDAzNDAwMkUwMDMy
PgovQ3JlYXRpb25EYXRlKEQ6MjAxNDEwMzAyMjIwMDctMDQnMDAnKT4+CmVuZG9iagoKeHJlZgow
IDIxNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDEyNDg2ODkgMDAwMDAgbiAKMDAwMDAwMDAxOSAw
MDAwMCBuIAowMDAwMDUxODM3IDAwMDAwIG4gCjAwMDAwNTE4NTkgMDAwMDAgbiAKMDAwMDA1ODc1
MiAwMDAwMCBuIAowMDAwMDU0Mzg2IDAwMDAwIG4gCjAwMDAwNjUwNDIgMDAwMDAgbiAKMDAwMDA2
NTIyMiAwMDAwMCBuIAowMDAwMDY1MjY0IDAwMDAwIG4gCjAwMDAwNjU0NDAgMDAwMDAgbiAKMDAw
MDA1MzU0OSAwMDAwMCBuIAowMDAwMDUzNTcxIDAwMDAwIG4gCjAwMDAwNTQzNjUgMDAwMDAgbiAK
MDAwMDA1ODA0NiAwMDAwMCBuIAowMDAwMDU4NzMxIDAwMDAwIG4gCjAwMDAwNjMwOTUgMDAwMDAg
biAKMDAwMDA2NTAyMCAwMDAwMCBuIAowMDAxMjQ4ODM1IDAwMDAwIG4gCjAwMDAwNjU0ODEgMDAw
MDAgbiAKMDAwMDExODAxNiAwMDAwMCBuIAowMDAwMTE4MDM5IDAwMDAwIG4gCjAwMDAxMTgyMjAg
MDAwMDAgbiAKMDAwMDExODI2MyAwMDAwMCBuIAowMDAwMTE4NDQwIDAwMDAwIG4gCjAwMDEyNDg5
ODMgMDAwMDAgbiAKMDAwMDExODQ4MSAwMDAwMCBuIAowMDAwMTcxMTE5IDAwMDAwIG4gCjAwMDAx
NzExNDIgMDAwMDAgbiAKMDAwMDE3MTMyMyAwMDAwMCBuIAowMDAwMTcxMzY2IDAwMDAwIG4gCjAw
MDAxNzE1NDMgMDAwMDAgbiAKMDAwMTI0OTEzMSAwMDAwMCBuIAowMDAwMTcxNTg0IDAwMDAwIG4g
CjAwMDAyMjM2MjMgMDAwMDAgbiAKMDAwMDIyMzY0NiAwMDAwMCBuIAowMDAwMjIzODI3IDAwMDAw
IG4gCjAwMDAyMjM4NzAgMDAwMDAgbiAKMDAwMDIyNDA0NyAwMDAwMCBuIAowMDAxMjQ5Mjc5IDAw
MDAwIG4gCjAwMDAyMjQwODggMDAwMDAgbiAKMDAwMDI3NjEzMSAwMDAwMCBuIAowMDAwMjc2MTU0
IDAwMDAwIG4gCjAwMDAyNzYzMzUgMDAwMDAgbiAKMDAwMDI3NjM3OCAwMDAwMCBuIAowMDAwMjc2
NTU1IDAwMDAwIG4gCjAwMDEyNDk0MjcgMDAwMDAgbiAKMDAwMDI3NjU5NiAwMDAwMCBuIAowMDAw
MzI4OTgxIDAwMDAwIG4gCjAwMDAzMjkwMDQgMDAwMDAgbiAKMDAwMDMyOTE4NSAwMDAwMCBuIAow
MDAwMzI5MjI4IDAwMDAwIG4gCjAwMDAzMjk0MDUgMDAwMDAgbiAKMDAwMTI0OTU3NSAwMDAwMCBu
IAowMDAwMzI5NDQ2IDAwMDAwIG4gCjAwMDAzODEzNzUgMDAwMDAgbiAKMDAwMDM4MTM5OCAwMDAw
MCBuIAowMDAwMzgxNTc5IDAwMDAwIG4gCjAwMDAzODE2MjIgMDAwMDAgbiAKMDAwMDM4MTc5OSAw
MDAwMCBuIAowMDAxMjQ5NzIzIDAwMDAwIG4gCjAwMDAzODE4NDAgMDAwMDAgbiAKMDAwMDQzMzQ1
NSAwMDAwMCBuIAowMDAwNDY0NjExIDAwMDAwIG4gCjAwMDA0NjQ3OTIgMDAwMDAgbiAKMDAwMDQz
MzQ3OCAwMDAwMCBuIAowMDAwNDY0ODM1IDAwMDAwIG4gCjAwMDA0NjUwMTIgMDAwMDAgbiAKMDAw
MTI0OTg3MSAwMDAwMCBuIAowMDAwNDY1MDUzIDAwMDAwIG4gCjAwMDA1MTY2NjggMDAwMDAgbiAK
MDAwMDU0NjQ3MiAwMDAwMCBuIAowMDAwNTQ2NjUzIDAwMDAwIG4gCjAwMDA1MTY2OTEgMDAwMDAg
biAKMDAwMDU0NjY5NiAwMDAwMCBuIAowMDAwNTQ2ODczIDAwMDAwIG4gCjAwMDEyNTAwMTkgMDAw
MDAgbiAKMDAwMDU0NjkxNCAwMDAwMCBuIAowMDAwNTk4NTM0IDAwMDAwIG4gCjAwMDA2MzA2NDcg
MDAwMDAgbiAKMDAwMDYzMDgyOCAwMDAwMCBuIAowMDAwNTk4NTU3IDAwMDAwIG4gCjAwMDA2MzA4
NzEgMDAwMDAgbiAKMDAwMDYzMTA0OCAwMDAwMCBuIAowMDAxMjUwMTY3IDAwMDAwIG4gCjAwMDA2
MzEwODkgMDAwMDAgbiAKMDAwMDY4MzE0MSAwMDAwMCBuIAowMDAwNjgzMTY0IDAwMDAwIG4gCjAw
MDA2ODMzNDUgMDAwMDAgbiAKMDAwMDY4MzM4OCAwMDAwMCBuIAowMDAwNjgzNTY1IDAwMDAwIG4g
CjAwMDEyNTAzMTUgMDAwMDAgbiAKMDAwMDY4MzYwNiAwMDAwMCBuIAowMDAwNzM1ODI4IDAwMDAw
IG4gCjAwMDA3MzU4NTEgMDAwMDAgbiAKMDAwMDczNjAzMiAwMDAwMCBuIAowMDAwNzM2MDc1IDAw
MDAwIG4gCjAwMDA3MzYyNTIgMDAwMDAgbiAKMDAwMTI1MDQ2MyAwMDAwMCBuIAowMDAwNzM2Mjkz
IDAwMDAwIG4gCjAwMDA3ODgyMzcgMDAwMDAgbiAKMDAwMDc4ODI2MSAwMDAwMCBuIAowMDAwNzg4
NDQzIDAwMDAwIG4gCjAwMDA3ODg0ODcgMDAwMDAgbiAKMDAwMDc4ODY2NSAwMDAwMCBuIAowMDAx
MjUwNjExIDAwMDAwIG4gCjAwMDA3ODg3MDcgMDAwMDAgbiAKMDAwMDg0MDYyOSAwMDAwMCBuIAow
MDAwODQwNjUzIDAwMDAwIG4gCjAwMDA4NDA4MzUgMDAwMDAgbiAKMDAwMDg0MDg3OSAwMDAwMCBu
IAowMDAwODQxMDU3IDAwMDAwIG4gCjAwMDEyNTA3ODAgMDAwMDAgbiAKMDAwMDg0MTA5OSAwMDAw
MCBuIAowMDAwODkzMDgzIDAwMDAwIG4gCjAwMDA4OTMxMDcgMDAwMDAgbiAKMDAwMDg5MzI4OSAw
MDAwMCBuIAowMDAwODkzMzMzIDAwMDAwIG4gCjAwMDA4OTM1MTEgMDAwMDAgbiAKMDAwMTI1MDk0
OSAwMDAwMCBuIAowMDAwODkzNTUzIDAwMDAwIG4gCjAwMDA5NDU0MDEgMDAwMDAgbiAKMDAwMDk0
NTQyNSAwMDAwMCBuIAowMDAwOTQ1NjA3IDAwMDAwIG4gCjAwMDA5NDU2NTEgMDAwMDAgbiAKMDAw
MDk0NTgyOSAwMDAwMCBuIAowMDAxMjUxMTE4IDAwMDAwIG4gCjAwMDA5NDU4NzEgMDAwMDAgbiAK
MDAwMDk5Nzg0NCAwMDAwMCBuIAowMDAwOTk3ODY4IDAwMDAwIG4gCjAwMDA5OTgwNTAgMDAwMDAg
biAKMDAwMDk5ODA5NCAwMDAwMCBuIAowMDAwOTk4MjcyIDAwMDAwIG4gCjAwMDEyNTEyODcgMDAw
MDAgbiAKMDAwMDk5ODMxNCAwMDAwMCBuIAowMDAxMDUwNTIzIDAwMDAwIG4gCjAwMDEwNTA1NDcg
MDAwMDAgbiAKMDAwMTA1MDcyOSAwMDAwMCBuIAowMDAxMDUwNzczIDAwMDAwIG4gCjAwMDEwNTA5
NTEgMDAwMDAgbiAKMDAwMTI1MTQ1NiAwMDAwMCBuIAowMDAxMDUwOTkzIDAwMDAwIG4gCjAwMDEx
MDMyMDYgMDAwMDAgbiAKMDAwMTEwMzIzMCAwMDAwMCBuIAowMDAxMTAzNDEyIDAwMDAwIG4gCjAw
MDExMDM0NTYgMDAwMDAgbiAKMDAwMTEwMzYzNCAwMDAwMCBuIAowMDAxMjUxNjA2IDAwMDAwIG4g
CjAwMDExMDM2NzYgMDAwMDAgbiAKMDAwMTE1NTkzMyAwMDAwMCBuIAowMDAxMTU1OTU3IDAwMDAw
IG4gCjAwMDExNTYxMzkgMDAwMDAgbiAKMDAwMTE1NjE4MyAwMDAwMCBuIAowMDAxMTU2MzYxIDAw
MDAwIG4gCjAwMDEyNTE3NTYgMDAwMDAgbiAKMDAwMTE1NjQwMyAwMDAwMCBuIAowMDAxMjA4MzY5
IDAwMDAwIG4gCjAwMDEyMDgzOTMgMDAwMDAgbiAKMDAwMTIwODU3NSAwMDAwMCBuIAowMDAxMjA4
NjE5IDAwMDAwIG4gCjAwMDEyMDg3OTcgMDAwMDAgbiAKMDAwMTI1NTE2MyAwMDAwMCBuIAowMDAx
MjU1MzA4IDAwMDAwIG4gCjAwMDEyNTU0NjAgMDAwMDAgbiAKMDAwMTI1NTYwNCAwMDAwMCBuIAow
MDAxMjU1NzUzIDAwMDAwIG4gCjAwMDEyNTU4ODggMDAwMDAgbiAKMDAwMTI1NDkxMiAwMDAwMCBu
IAowMDAxMjA4ODM5IDAwMDAwIG4gCjAwMDEyMTc0MTcgMDAwMDAgbiAKMDAwMTIxNzQ0MCAwMDAw
MCBuIAowMDAxMjE3NjUwIDAwMDAwIG4gCjAwMDEyMTgwMzIgMDAwMDAgbiAKMDAwMTIxODI4MCAw
MDAwMCBuIAowMDAxMjE5ODUyIDAwMDAwIG4gCjAwMDEyMTk4NzUgMDAwMDAgbiAKMDAwMTIyMDA2
OSAwMDAwMCBuIAowMDAxMjIwMzcwIDAwMDAwIG4gCjAwMDEyMjA1MzggMDAwMDAgbiAKMDAwMTI0
MjEyMiAwMDAwMCBuIAowMDAxMjQyMTQ2IDAwMDAwIG4gCjAwMDEyNDIzNDQgMDAwMDAgbiAKMDAw
MTI0Mjk4MiAwMDAwMCBuIAowMDAxMjQzNDY4IDAwMDAwIG4gCjAwMDEyNDY2MzkgMDAwMDAgbiAK
MDAwMTI0NjY2MiAwMDAwMCBuIAowMDAxMjQ2ODYxIDAwMDAwIG4gCjAwMDEyNDcxNTMgMDAwMDAg
biAKMDAwMTI0NzMyMiAwMDAwMCBuIAowMDAxMjQ3MzkwIDAwMDAwIG4gCjAwMDEyNTE5MjUgMDAw
MDAgbiAKMDAwMTI1MTk4NSAwMDAwMCBuIAowMDAxMjUyMTA5IDAwMDAwIG4gCjAwMDEyNTIyNDcg
MDAwMDAgbiAKMDAwMTI1MjM4NSAwMDAwMCBuIAowMDAxMjUyNTIzIDAwMDAwIG4gCjAwMDEyNTI2
NjEgMDAwMDAgbiAKMDAwMTI1Mjc5OSAwMDAwMCBuIAowMDAxMjUyOTM3IDAwMDAwIG4gCjAwMDEy
NTMwNzUgMDAwMDAgbiAKMDAwMTI1MzIxMyAwMDAwMCBuIAowMDAxMjUzMzU1IDAwMDAwIG4gCjAw
MDEyNTM0OTcgMDAwMDAgbiAKMDAwMTI1MzYzOSAwMDAwMCBuIAowMDAxMjUzNzgxIDAwMDAwIG4g
CjAwMDEyNTM5MjQgMDAwMDAgbiAKMDAwMTI1NDA2NyAwMDAwMCBuIAowMDAxMjU0MjEwIDAwMDAw
IG4gCjAwMDEyNTQzNTMgMDAwMDAgbiAKMDAwMTI1NDQ5NiAwMDAwMCBuIAowMDAxMjU0NjM5IDAw
MDAwIG4gCjAwMDEyNTQ3ODIgMDAwMDAgbiAKMDAwMTI1NjA0NiAwMDAwMCBuIAowMDAxMjU2MTUx
IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAyMTQvUm9vdCAyMTIgMCBSCi9JbmZvIDIxMyAwIFIK
L0lEIFsgPDM1NEU3NEQ2RURFMTBGNEI1RThFNEZGN0YxNEE1NDZDPgo8MzU0RTc0RDZFREUxMEY0
QjVFOEU0RkY3RjE0QTU0NkM+IF0KL0RvY0NoZWNrc3VtIC8yMEVERTdFOTU2Qzg5RERENjRCRkIw
QUFDN0Y4MjNENAo+PgpzdGFydHhyZWYKMTI1NjMzMQolJUVPRgo=
--047d7b3a8238a85c120506aeef66
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

--047d7b3a8238a85c120506aeef66--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 09:21:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 09:21: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 1Xk8OL-0004J2-Ip; Fri, 31 Oct 2014 09:21: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 1Xk8OK-0004Ix-2Y
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 09:21:08 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	B8/5F-02699-38453545; Fri, 31 Oct 2014 09:21:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1414747265!11710936!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26381 invoked from network); 31 Oct 2014 09:21:06 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 09:21:06 -0000
Received: by mail-vc0-f170.google.com with SMTP id la4so2707839vcb.1
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 02:21: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=OYTaKBZVIPoNPA9JRpaA5I3Fpp99IVKQLkMaFcYltto=;
	b=dqkX2H4YXzYbRQagwMINysEShtSwQw6POKOQ3M71IiLWc48eZpcTy59mJdiCI3oPh8
	8qL5wYpuxMbH1K4RzGmyieL0LC76GC88agYRCryH1oxLfqIdWkLt9mWPLOVFen7Yeg8J
	oeQl7QkeuJK4pa9Gryx99wFz0fkB4cUpYbwcgFrYdCNah4DJ89fuQmDvM7Onz5/ka/DB
	k2JmmCrIJj8wX+9uAUNON0hMUiUJbzTmMHjuNSu1ba2BUmHR284IltxF1wWOchZ7evdz
	13kriWP9WHExxs38RNKbftU43RAq116wXCIKossMKr18acUNJHwW4CTdFKHvTFl43Nyl
	alCw==
MIME-Version: 1.0
X-Received: by 10.221.37.3 with SMTP id tc3mr16398367vcb.29.1414747265188;
	Fri, 31 Oct 2014 02:21:05 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 02:21:05 -0700 (PDT)
In-Reply-To: <25D2AE7E-764E-44AE-B91E-AF0C5482D50B@recoil.org>
References: <DC5E0619-718D-4A85-A240-A0DD3FA0E118@recoil.org>
	<6D262DFB-EA5C-44CB-A908-FD0E28F7995D@citrix.com>
	<25D2AE7E-764E-44AE-B91E-AF0C5482D50B@recoil.org>
Date: Fri, 31 Oct 2014 09:21:05 +0000
Message-ID: <CAG4opy9UZoo1J6rGkEoG2L_U4Q+QeJo1_=dozPkXiGqLGCedGg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: David Scott <Dave.Scott@citrix.com>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] github xen git mirror
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 October 2014 21:45, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 26 May 2014, at 11:37, Dave Scott <Dave.Scott@citrix.com> wrote:
>>
>>
>> On 26 May 2014, at 11:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>
>>> A bunch of us now have our own GitHub mirrors of Xen, so it's a good idea to have a proper mirror repository to fork from instead.
>>>
>>> Dave, I noticed your mirror scripts on mirage/xen have stopped.  Do you mind if I take that over and setup a cron job for it from the bactrian bot?
>>
>> Oops, I lost those when I reinstalled the box they were running on.
>>
>> Feel free to run cron somewhere else!
>
> This is now running as an hourly cronjob on blobs.openmirage.org and mirroring to:

Good idea. I've made mine a fork of this.

>    https://github.com/mirage/xen
>
> Thomas(L), we could also extend the cron mirroring to split out MiniOS in the future via git-filter-branch, if we need that to split out MiniOS in the future.

That would be useful. I don't have an automatic script for it at the
moment. It's mostly just be a case of deleting everything that isn't
in the release archives. Currently, I also remove `include/list.h`
from `GENERATED_HEADERS` and add the created version under mini-os,
but from an automation point of view it might be easier to include the
original file and the sed script that generates it.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 31 09:21:15 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 09:21: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 1Xk8OL-0004J2-Ip; Fri, 31 Oct 2014 09:21: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 1Xk8OK-0004Ix-2Y
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 09:21:08 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	B8/5F-02699-38453545; Fri, 31 Oct 2014 09:21:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1414747265!11710936!1
X-Originating-IP: [209.85.220.170]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26381 invoked from network); 31 Oct 2014 09:21:06 -0000
Received: from mail-vc0-f170.google.com (HELO mail-vc0-f170.google.com)
	(209.85.220.170)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 09:21:06 -0000
Received: by mail-vc0-f170.google.com with SMTP id la4so2707839vcb.1
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 02:21: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=OYTaKBZVIPoNPA9JRpaA5I3Fpp99IVKQLkMaFcYltto=;
	b=dqkX2H4YXzYbRQagwMINysEShtSwQw6POKOQ3M71IiLWc48eZpcTy59mJdiCI3oPh8
	8qL5wYpuxMbH1K4RzGmyieL0LC76GC88agYRCryH1oxLfqIdWkLt9mWPLOVFen7Yeg8J
	oeQl7QkeuJK4pa9Gryx99wFz0fkB4cUpYbwcgFrYdCNah4DJ89fuQmDvM7Onz5/ka/DB
	k2JmmCrIJj8wX+9uAUNON0hMUiUJbzTmMHjuNSu1ba2BUmHR284IltxF1wWOchZ7evdz
	13kriWP9WHExxs38RNKbftU43RAq116wXCIKossMKr18acUNJHwW4CTdFKHvTFl43Nyl
	alCw==
MIME-Version: 1.0
X-Received: by 10.221.37.3 with SMTP id tc3mr16398367vcb.29.1414747265188;
	Fri, 31 Oct 2014 02:21:05 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 02:21:05 -0700 (PDT)
In-Reply-To: <25D2AE7E-764E-44AE-B91E-AF0C5482D50B@recoil.org>
References: <DC5E0619-718D-4A85-A240-A0DD3FA0E118@recoil.org>
	<6D262DFB-EA5C-44CB-A908-FD0E28F7995D@citrix.com>
	<25D2AE7E-764E-44AE-B91E-AF0C5482D50B@recoil.org>
Date: Fri, 31 Oct 2014 09:21:05 +0000
Message-ID: <CAG4opy9UZoo1J6rGkEoG2L_U4Q+QeJo1_=dozPkXiGqLGCedGg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: David Scott <Dave.Scott@citrix.com>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] github xen git mirror
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 October 2014 21:45, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 26 May 2014, at 11:37, Dave Scott <Dave.Scott@citrix.com> wrote:
>>
>>
>> On 26 May 2014, at 11:31, Anil Madhavapeddy <anil@recoil.org> wrote:
>>
>>> A bunch of us now have our own GitHub mirrors of Xen, so it's a good idea to have a proper mirror repository to fork from instead.
>>>
>>> Dave, I noticed your mirror scripts on mirage/xen have stopped.  Do you mind if I take that over and setup a cron job for it from the bactrian bot?
>>
>> Oops, I lost those when I reinstalled the box they were running on.
>>
>> Feel free to run cron somewhere else!
>
> This is now running as an hourly cronjob on blobs.openmirage.org and mirroring to:

Good idea. I've made mine a fork of this.

>    https://github.com/mirage/xen
>
> Thomas(L), we could also extend the cron mirroring to split out MiniOS in the future via git-filter-branch, if we need that to split out MiniOS in the future.

That would be useful. I don't have an automatic script for it at the
moment. It's mostly just be a case of deleting everything that isn't
in the release archives. Currently, I also remove `include/list.h`
from `GENERATED_HEADERS` and add the created version under mini-os,
but from an automation point of view it might be easier to include the
original file and the sed script that generates it.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 31 09:53:24 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 09:53: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 1Xk8tX-0004VT-3e; Fri, 31 Oct 2014 09:53:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ms705@cam.ac.uk>) id 1Xk8tV-0004VO-Bv
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 09:53:21 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	9C/A4-08051-01C53545; Fri, 31 Oct 2014 09:53:20 +0000
X-Env-Sender: ms705@cam.ac.uk
X-Msg-Ref: server-9.tower-27.messagelabs.com!1414749199!11733279!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.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17730 invoked from network); 31 Oct 2014 09:53:20 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 09:53:20 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-220-75.eduroam.wireless.private.cam.ac.uk
	([172.17.220.75]:43519)
	by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:465)
	with esmtpsa (PLAIN:ms705) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Xk8tT-0008Qj-Xv (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <ms705@cam.ac.uk>); Fri, 31 Oct 2014 09:53:19 +0000
Message-ID: <54535C0A.2000509@cam.ac.uk>
Date: Fri, 31 Oct 2014 09:53:14 +0000
From: Malte Schwarzkopf <ms705@cam.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
In-Reply-To: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
Subject: Re: [MirageOS-devel] Unikernel talk deck
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 Russ,

While not really a Mirage-ite myself (I just lurk on the mailing list
out of interest), I thought I should point out one small correction to
this (excellent) slide deck:

On slide 6, you say that "Google & others run Docker in VMs when they
need security". While the security drawbacks of containers are clear,
this statement isn't quite true at least for Google. What they is the
opposite: they run VMs *inside* containers (no doubt for the same
security reasons). This talk by John Wilkes states very clearly that
they run KVM instances inside containers:
https://www.youtube.com/watch?v=VQAAkO5B5Hg (at 22:50--23:10).

Just a minor point, but given that the information is out there, it
makes sense to be accurate (especially given the mystery that usually
surrounds Google's infrastructure!).

Cheers,
M.


On 31/10/14 02:41, Russ Pavlicek wrote:
> Mirage-ites,
> 
> Attached is the deck I intend to use on a talk about Unikernels this
> weekend at CPOSC.  I liberated a few slides from you folks.  If you
> want me to replace them or include additional attribution, let me
> know.  I will probably replace them eventually, but frankly I'd rather
> not do that the day before the talk, if possible.
> 
> Please let me know if you see any issues or have any suggestions.
> 
> Thanks,
> 
> Russ
> 
> 
> 
> _______________________________________________
> 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 Fri Oct 31 09:53:24 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 09:53: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 1Xk8tX-0004VT-3e; Fri, 31 Oct 2014 09:53:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ms705@cam.ac.uk>) id 1Xk8tV-0004VO-Bv
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 09:53:21 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
	9C/A4-08051-01C53545; Fri, 31 Oct 2014 09:53:20 +0000
X-Env-Sender: ms705@cam.ac.uk
X-Msg-Ref: server-9.tower-27.messagelabs.com!1414749199!11733279!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.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17730 invoked from network); 31 Oct 2014 09:53:20 -0000
Received: from ppsw-51.csi.cam.ac.uk (HELO ppsw-51.csi.cam.ac.uk)
	(131.111.8.151)
	by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 09:53:20 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from dhcp-172-17-220-75.eduroam.wireless.private.cam.ac.uk
	([172.17.220.75]:43519)
	by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:465)
	with esmtpsa (PLAIN:ms705) (TLSv1.2:DHE-RSA-AES128-SHA:128)
	id 1Xk8tT-0008Qj-Xv (Exim 4.82_3-c0e5623) for
	mirageos-devel@lists.xenproject.org
	(return-path <ms705@cam.ac.uk>); Fri, 31 Oct 2014 09:53:19 +0000
Message-ID: <54535C0A.2000509@cam.ac.uk>
Date: Fri, 31 Oct 2014 09:53:14 +0000
From: Malte Schwarzkopf <ms705@cam.ac.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: mirageos-devel@lists.xenproject.org
References: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
In-Reply-To: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
Subject: Re: [MirageOS-devel] Unikernel talk deck
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 Russ,

While not really a Mirage-ite myself (I just lurk on the mailing list
out of interest), I thought I should point out one small correction to
this (excellent) slide deck:

On slide 6, you say that "Google & others run Docker in VMs when they
need security". While the security drawbacks of containers are clear,
this statement isn't quite true at least for Google. What they is the
opposite: they run VMs *inside* containers (no doubt for the same
security reasons). This talk by John Wilkes states very clearly that
they run KVM instances inside containers:
https://www.youtube.com/watch?v=VQAAkO5B5Hg (at 22:50--23:10).

Just a minor point, but given that the information is out there, it
makes sense to be accurate (especially given the mystery that usually
surrounds Google's infrastructure!).

Cheers,
M.


On 31/10/14 02:41, Russ Pavlicek wrote:
> Mirage-ites,
> 
> Attached is the deck I intend to use on a talk about Unikernels this
> weekend at CPOSC.  I liberated a few slides from you folks.  If you
> want me to replace them or include additional attribution, let me
> know.  I will probably replace them eventually, but frankly I'd rather
> not do that the day before the talk, if possible.
> 
> Please let me know if you see any issues or have any suggestions.
> 
> Thanks,
> 
> Russ
> 
> 
> 
> _______________________________________________
> 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 Fri Oct 31 10:07:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:07: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 1Xk97I-0004lG-M1; Fri, 31 Oct 2014 10:07:36 +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 1Xk97H-0004lA-JP
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:07:35 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	A8/A0-02698-66F53545; Fri, 31 Oct 2014 10:07:34 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1414750049!11663496!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30409 invoked from network); 31 Oct 2014 10:07:30 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 10:07:30 -0000
Received: by mail-vc0-f173.google.com with SMTP id le20so3654722vcb.32
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 03:07: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:content-transfer-encoding;
	bh=wm9K6TelzD0Odz2cH9NQSF+b75ejygGa6pGphzzhTPo=;
	b=dPd3Ld/aKHu3MQH3Rb78rvZ/QTRjs8E/daHbP+cgsrYuU87z7bbjT82mUCgsTfMP/S
	XGHRLbsYN2vKMeCLo0EdG0lPvcIxZ237nN2ZDooOHpakqJY8C5Ag3H/BR2BEQ+MdYr/2
	13d0WXja7p+x5h/Lf3XeIhhRa+/gugxQaCb7WxJ7ruZWOMiWhjEfTBffvO5cspn/3b+r
	4wINXeJxefnRiBmDWlQ2DALRfaQSke/7CcTCBrRr9rf0XFrJFSQ58BaiaDcFpsvGFUaR
	bQfy6rYIVFh5HKA3NhE+MJlHMYSe8AToH6sF6DzwOTkObwRsbzaXx2TCLaDnM96aNqN9
	nWsQ==
MIME-Version: 1.0
X-Received: by 10.221.74.131 with SMTP id yw3mr16416261vcb.20.1414750049464;
	Fri, 31 Oct 2014 03:07:29 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 03:07:29 -0700 (PDT)
In-Reply-To: <EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
	<EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
Date: Fri, 31 Oct 2014 10:07:29 +0000
Message-ID: <CAG4opy8E-1bdwdkqTxeiksPtxaXBBTbOzMmQeHPvkShXzpgN6g@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 18:26, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
>
> On 30 Oct 2014, at 16:29, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 30 October 2014 14:20, Richard Mortier
>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>
>>> would it make sense for note_{suspend,resume} to be string -> unit (or some more opaque type than string even, though perhaps of fixed size) so that the programmer can indicate reasons for the suspend/resume?
>>
>> This name is perhaps confusing, but it's for block_domain/poll/select.
>> On Xen, mirage-platform's main.ml is that only thing that calls it.
>> The reason for suspending is always that there isn't any work to do
>> (exactly what we're waiting for is indicated by the sleeping event
>> channel threads at that moment).
>>
>> If we had a more general version, it could perhaps be used for GC
>> pauses too, but there's a separate entry point for that using
>> Callback, because it's called from C code. Actual suspend-to-disk
>> could be another reason.
>>
>> Are there any more types?
>
> ah-- see comment to other mail i guess. seems likely to be better to parameterise this rather than bake it into the api, doesn't it?  (i may be missing something obvious about types and ocaml here :)

I'm less concerned about this bit of the API because it's only called
from one place anyway (mirage-xen/main.ml).

>>> can labels on threads be changed over their lifetime?  can labels overlap or are they unique?  if unique, within what context?
>>
>> Originally there was one label per thread, but now they're essentially
>> just log messages that get attached to the active thread. They can be
>> used to label a thread, but also to note interesting events, so
>> perhaps a different name would be useful here (Trace.log?
>> Trace.note?). There should probably be a printf version too.
>>
>> Actual labelling more often happens with named_wait, named_task, etc now.
>
> ah right; i guess i'm talking about an api that subsumes lwt tracing and supports more general tracing throughout many libraries.

It would be good to be general, but labelling of Lwt threads is always
going to be Lwt-specific. We could generalise the concept of "thread"
to just "some period of time", although creating a labelled Lwt.wait
thread has much the same effect anyway.

I does sound like we need separate concepts for tags (fixed strings
with well-known names, used frequently and probably interned), and
free text messages.

>>> trace_enabled.mli:
>>>
>>> how do i interact with the buffer other than to snapshot it?
>>
>> What kind of interations did you have in mind?
>
> one thing ETW allowed which was nice was to have real-time consumers of the tracing buffers. would allow this kind of infrastructure to plugin to something that was doing more dynamic resource management for unikernels across (e.g.) a datacenter.

I'd imagine that would plug in to the counters system rather than the tracing.

However, I think we can make the "snapshots" very efficient. If the
trace buffer is a Cstruct then snapshot can just pass a view onto the
bit that's already been written (and set a flag to make it allocate a
new buffer when this one is full instead of overwriting it).

>>> ...and what's counter for?  (ie., how general/widely used is it intended to be?)
>>
>> In the examples, I used counters for:
>>
>> - Number of active grant refs
>> - Number of block reads completed
>> - Bytes written to console
>> - IP packets sent
>> - TCP bytes submitted
>> - TCP bytes ack'd
>>
>> Measuring stuff can get complicated quickly. The last monitoring
>> system I worked on had many different types of "metric" (instantaneous
>> measurements, cumulative usage, on-going rates of increase, etc). You
>> could efficiently query for e.g. average response latecy between any
>> two points in time, allowing for real-time display of "average latency
>> over the last 5 min" or "number of requests since midnight", etc.
>>
>> The counters were also arranged in a hierarchy. For example, you could
>> have a segments-acked counter for each TCP stream, which would then
>> also get aggregated as totals for that VM, and then further aggregated
>> both per-customer (across multiple VMs), and per resource pool. You
>> could see graphs of aggregated data and then drill down to see what
>> had contributed to it.
>>
>> Some of the metrics were shared with customers[*], who treated them as
>> extra monitoring data for their own (outsourced) resource pools.
>>
>> I don't know whether we want to go down that route just yet, though.
>> It took a while to explain everything ;-)
>
> :)
>
> i guess there are two orthogonal things here.
>
> metrics as you describe above, which to my mind sound like (e.g.) SNMP MIBs. most useful for understanding aggregate performance of a system.
>
> event tracing as i've been implicitly assuming, which permits more detailed cuts through system performance at the cost of added complexity (per magpie).
>
> both are useful i think, though you ought to be able to build the former on the latter (though that might be more complex than seems reasonable).

Yes. I imagine we might want the counters to be active even when
tracing isn't. The connection is that, when you are tracing, having a
trace event for each counter change is useful (even when counters
record their history, it might not be high resolution enough for
tracing work).

Things we used metrics/counters for included:

- Customer billing
- Enforcing per-customer resource limits (e.g. max N requests per day)
- Warning if we were close to missing customer SLA targets (average
latency must be < T ms each day)
- Resource monitoring (disk is 90% full, disk error rate, etc)
- Attack detection (ratio of failed to successful logins becomes
suspiciously high)

>>> agree to some extent -- though if some components wish to control tracing in other components as a result of observation of their own behaviour, the control API may become  more pervasively used than the dumping/display api i guess.
>>
>> Perhaps. I suspect we'd have the libraries just produce events and
>> have the logic for responding to them in the unikernel config, rather
>> than having libraries reconfiguring the profiling directly. That
>> sounds confusing!
>
> heh-- having dynamic control of tracing was something we discussed with magpie but never implemented. the idea would've been something like a datacenter operator could notice an issue, and then "turn up" the tracing to get more detailed models, to the point where they could diagnose the problems.
>
> but as i said, we never actually did that. (though ETW does allow dynamic control over tracing levels from a command line tool.)

I think we should keep it simple for now. A little bit of tracing goes
a long way and Mirage makes it easy to add extra rules or tracing by
pinning components.

The important thing, I think, is that the default traces provide
enough information that you can see roughly what's happening (not just
thousands of anonymous lines). Then people can add extra output as
needed. If something turns out to be generally useful (e.g. keeping a
counter of active grant refs or recording the keys for XenStore
lookups) then we can merge them in.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 31 10:07:37 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:07: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 1Xk97I-0004lG-M1; Fri, 31 Oct 2014 10:07:36 +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 1Xk97H-0004lA-JP
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:07:35 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
	A8/A0-02698-66F53545; Fri, 31 Oct 2014 10:07:34 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1414750049!11663496!1
X-Originating-IP: [209.85.220.173]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30409 invoked from network); 31 Oct 2014 10:07:30 -0000
Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
	(209.85.220.173)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 10:07:30 -0000
Received: by mail-vc0-f173.google.com with SMTP id le20so3654722vcb.32
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 03:07: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:content-transfer-encoding;
	bh=wm9K6TelzD0Odz2cH9NQSF+b75ejygGa6pGphzzhTPo=;
	b=dPd3Ld/aKHu3MQH3Rb78rvZ/QTRjs8E/daHbP+cgsrYuU87z7bbjT82mUCgsTfMP/S
	XGHRLbsYN2vKMeCLo0EdG0lPvcIxZ237nN2ZDooOHpakqJY8C5Ag3H/BR2BEQ+MdYr/2
	13d0WXja7p+x5h/Lf3XeIhhRa+/gugxQaCb7WxJ7ruZWOMiWhjEfTBffvO5cspn/3b+r
	4wINXeJxefnRiBmDWlQ2DALRfaQSke/7CcTCBrRr9rf0XFrJFSQ58BaiaDcFpsvGFUaR
	bQfy6rYIVFh5HKA3NhE+MJlHMYSe8AToH6sF6DzwOTkObwRsbzaXx2TCLaDnM96aNqN9
	nWsQ==
MIME-Version: 1.0
X-Received: by 10.221.74.131 with SMTP id yw3mr16416261vcb.20.1414750049464;
	Fri, 31 Oct 2014 03:07:29 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 03:07:29 -0700 (PDT)
In-Reply-To: <EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
	<EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
Date: Fri, 31 Oct 2014 10:07:29 +0000
Message-ID: <CAG4opy8E-1bdwdkqTxeiksPtxaXBBTbOzMmQeHPvkShXzpgN6g@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 October 2014 18:26, Richard Mortier
<Richard.Mortier@nottingham.ac.uk> wrote:
>
> On 30 Oct 2014, at 16:29, Thomas Leonard <talex5@gmail.com> wrote:
>
>> On 30 October 2014 14:20, Richard Mortier
>> <Richard.Mortier@nottingham.ac.uk> wrote:
>>>
>>> would it make sense for note_{suspend,resume} to be string -> unit (or some more opaque type than string even, though perhaps of fixed size) so that the programmer can indicate reasons for the suspend/resume?
>>
>> This name is perhaps confusing, but it's for block_domain/poll/select.
>> On Xen, mirage-platform's main.ml is that only thing that calls it.
>> The reason for suspending is always that there isn't any work to do
>> (exactly what we're waiting for is indicated by the sleeping event
>> channel threads at that moment).
>>
>> If we had a more general version, it could perhaps be used for GC
>> pauses too, but there's a separate entry point for that using
>> Callback, because it's called from C code. Actual suspend-to-disk
>> could be another reason.
>>
>> Are there any more types?
>
> ah-- see comment to other mail i guess. seems likely to be better to parameterise this rather than bake it into the api, doesn't it?  (i may be missing something obvious about types and ocaml here :)

I'm less concerned about this bit of the API because it's only called
from one place anyway (mirage-xen/main.ml).

>>> can labels on threads be changed over their lifetime?  can labels overlap or are they unique?  if unique, within what context?
>>
>> Originally there was one label per thread, but now they're essentially
>> just log messages that get attached to the active thread. They can be
>> used to label a thread, but also to note interesting events, so
>> perhaps a different name would be useful here (Trace.log?
>> Trace.note?). There should probably be a printf version too.
>>
>> Actual labelling more often happens with named_wait, named_task, etc now.
>
> ah right; i guess i'm talking about an api that subsumes lwt tracing and supports more general tracing throughout many libraries.

It would be good to be general, but labelling of Lwt threads is always
going to be Lwt-specific. We could generalise the concept of "thread"
to just "some period of time", although creating a labelled Lwt.wait
thread has much the same effect anyway.

I does sound like we need separate concepts for tags (fixed strings
with well-known names, used frequently and probably interned), and
free text messages.

>>> trace_enabled.mli:
>>>
>>> how do i interact with the buffer other than to snapshot it?
>>
>> What kind of interations did you have in mind?
>
> one thing ETW allowed which was nice was to have real-time consumers of the tracing buffers. would allow this kind of infrastructure to plugin to something that was doing more dynamic resource management for unikernels across (e.g.) a datacenter.

I'd imagine that would plug in to the counters system rather than the tracing.

However, I think we can make the "snapshots" very efficient. If the
trace buffer is a Cstruct then snapshot can just pass a view onto the
bit that's already been written (and set a flag to make it allocate a
new buffer when this one is full instead of overwriting it).

>>> ...and what's counter for?  (ie., how general/widely used is it intended to be?)
>>
>> In the examples, I used counters for:
>>
>> - Number of active grant refs
>> - Number of block reads completed
>> - Bytes written to console
>> - IP packets sent
>> - TCP bytes submitted
>> - TCP bytes ack'd
>>
>> Measuring stuff can get complicated quickly. The last monitoring
>> system I worked on had many different types of "metric" (instantaneous
>> measurements, cumulative usage, on-going rates of increase, etc). You
>> could efficiently query for e.g. average response latecy between any
>> two points in time, allowing for real-time display of "average latency
>> over the last 5 min" or "number of requests since midnight", etc.
>>
>> The counters were also arranged in a hierarchy. For example, you could
>> have a segments-acked counter for each TCP stream, which would then
>> also get aggregated as totals for that VM, and then further aggregated
>> both per-customer (across multiple VMs), and per resource pool. You
>> could see graphs of aggregated data and then drill down to see what
>> had contributed to it.
>>
>> Some of the metrics were shared with customers[*], who treated them as
>> extra monitoring data for their own (outsourced) resource pools.
>>
>> I don't know whether we want to go down that route just yet, though.
>> It took a while to explain everything ;-)
>
> :)
>
> i guess there are two orthogonal things here.
>
> metrics as you describe above, which to my mind sound like (e.g.) SNMP MIBs. most useful for understanding aggregate performance of a system.
>
> event tracing as i've been implicitly assuming, which permits more detailed cuts through system performance at the cost of added complexity (per magpie).
>
> both are useful i think, though you ought to be able to build the former on the latter (though that might be more complex than seems reasonable).

Yes. I imagine we might want the counters to be active even when
tracing isn't. The connection is that, when you are tracing, having a
trace event for each counter change is useful (even when counters
record their history, it might not be high resolution enough for
tracing work).

Things we used metrics/counters for included:

- Customer billing
- Enforcing per-customer resource limits (e.g. max N requests per day)
- Warning if we were close to missing customer SLA targets (average
latency must be < T ms each day)
- Resource monitoring (disk is 90% full, disk error rate, etc)
- Attack detection (ratio of failed to successful logins becomes
suspiciously high)

>>> agree to some extent -- though if some components wish to control tracing in other components as a result of observation of their own behaviour, the control API may become  more pervasively used than the dumping/display api i guess.
>>
>> Perhaps. I suspect we'd have the libraries just produce events and
>> have the logic for responding to them in the unikernel config, rather
>> than having libraries reconfiguring the profiling directly. That
>> sounds confusing!
>
> heh-- having dynamic control of tracing was something we discussed with magpie but never implemented. the idea would've been something like a datacenter operator could notice an issue, and then "turn up" the tracing to get more detailed models, to the point where they could diagnose the problems.
>
> but as i said, we never actually did that. (though ETW does allow dynamic control over tracing levels from a command line tool.)

I think we should keep it simple for now. A little bit of tracing goes
a long way and Mirage makes it easy to add extra rules or tracing by
pinning components.

The important thing, I think, is that the default traces provide
enough information that you can see roughly what's happening (not just
thousands of anonymous lines). Then people can add extra output as
needed. If something turns out to be generally useful (e.g. keeping a
counter of active grant refs or recording the keys for XenStore
lookups) then we can merge them in.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 31 10:11:22 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:11: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 1Xk9Aw-0004pj-1Z; Fri, 31 Oct 2014 10:11:22 +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 1Xk9Av-0004pe-45
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:11:21 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	DE/94-28296-84063545; Fri, 31 Oct 2014 10:11:20 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-31.messagelabs.com!1414750279!10844152!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 887 invoked from network); 31 Oct 2014 10:11:19 -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; 31 Oct 2014 10:11:19 -0000
Received: from [192.168.1.110] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 55446331;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 31 Oct 2014 10:14:35 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <54535C0A.2000509@cam.ac.uk>
Date: Fri, 31 Oct 2014 10:11:17 +0000
Message-Id: <2AE23756-E4BD-47DE-A7ED-0EC07B9454FD@recoil.org>
References: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
	<54535C0A.2000509@cam.ac.uk>
To: Malte Schwarzkopf <ms705@cam.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Unikernel talk deck
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 31 Oct 2014, at 09:53, Malte Schwarzkopf <ms705@cam.ac.uk> wrote:
> 
> Hi Russ,
> 
> While not really a Mirage-ite myself (I just lurk on the mailing list
> out of interest), I thought I should point out one small correction to
> this (excellent) slide deck:
> 
> On slide 6, you say that "Google & others run Docker in VMs when they
> need security". While the security drawbacks of containers are clear,
> this statement isn't quite true at least for Google. What they is the
> opposite: they run VMs *inside* containers (no doubt for the same
> security reasons). This talk by John Wilkes states very clearly that
> they run KVM instances inside containers:
> https://www.youtube.com/watch?v=VQAAkO5B5Hg (at 22:50--23:10).
> 

Indeed, there's a subtle distinction here with two deployment models:

- In Google's case, they run KVM inside Docker to protect the backend
  devices (i.e. qemu) from having too much system access in case a VM
  exploit takes out qemu.  KVM doesn't support disaggregation to the
  same level as Xen, so multiple VMs are very dependent on the isolation
  afforded to their respective qemus, whereas Xen can deploy driver
  domains (see Xoar etc).

- In a multitenant situation, running Docker inside a VM is the only
  way to have proper isolation between the two untrusted parties.  This
  is because containers are a fairly wide API, and the Linux kernel
  isn't fully 'container-friendly' until everything is migrated over.

Russ: I'll mail you PDF versions of the images you use.  Minor point
is that it's spelt "OCaml" and not "Ocaml".  You may also want to 
mention that Xen 4.5/Mirage has improved support for ARM unikernels
as well, which is a new and not very well-known feature yet.

cheers,
Anil


> Just a minor point, but given that the information is out there, it
> makes sense to be accurate (especially given the mystery that usually
> surrounds Google's infrastructure!).
> 
> Cheers,
> M.
> 
> 
> On 31/10/14 02:41, Russ Pavlicek wrote:
>> Mirage-ites,
>> 
>> Attached is the deck I intend to use on a talk about Unikernels this
>> weekend at CPOSC.  I liberated a few slides from you folks.  If you
>> want me to replace them or include additional attribution, let me
>> know.  I will probably replace them eventually, but frankly I'd rather
>> not do that the day before the talk, if possible.
>> 
>> Please let me know if you see any issues or have any suggestions.
>> 
>> Thanks,
>> 
>> Russ
>> 
>> 
>> 
>> _______________________________________________
>> 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
> 


_______________________________________________
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 Oct 31 10:11:22 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:11: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 1Xk9Aw-0004pj-1Z; Fri, 31 Oct 2014 10:11:22 +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 1Xk9Av-0004pe-45
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:11:21 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	DE/94-28296-84063545; Fri, 31 Oct 2014 10:11:20 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-31.messagelabs.com!1414750279!10844152!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 887 invoked from network); 31 Oct 2014 10:11:19 -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; 31 Oct 2014 10:11:19 -0000
Received: from [192.168.1.110] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 55446331;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 31 Oct 2014 10:14:35 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <54535C0A.2000509@cam.ac.uk>
Date: Fri, 31 Oct 2014 10:11:17 +0000
Message-Id: <2AE23756-E4BD-47DE-A7ED-0EC07B9454FD@recoil.org>
References: <CAHehzX1BiuiVmAMq8K5T15ZYXomsurOzPv5KZLhNrs2MrSZBUQ@mail.gmail.com>
	<54535C0A.2000509@cam.ac.uk>
To: Malte Schwarzkopf <ms705@cam.ac.uk>
X-Mailer: Apple Mail (2.1990.1)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Unikernel talk deck
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 31 Oct 2014, at 09:53, Malte Schwarzkopf <ms705@cam.ac.uk> wrote:
> 
> Hi Russ,
> 
> While not really a Mirage-ite myself (I just lurk on the mailing list
> out of interest), I thought I should point out one small correction to
> this (excellent) slide deck:
> 
> On slide 6, you say that "Google & others run Docker in VMs when they
> need security". While the security drawbacks of containers are clear,
> this statement isn't quite true at least for Google. What they is the
> opposite: they run VMs *inside* containers (no doubt for the same
> security reasons). This talk by John Wilkes states very clearly that
> they run KVM instances inside containers:
> https://www.youtube.com/watch?v=VQAAkO5B5Hg (at 22:50--23:10).
> 

Indeed, there's a subtle distinction here with two deployment models:

- In Google's case, they run KVM inside Docker to protect the backend
  devices (i.e. qemu) from having too much system access in case a VM
  exploit takes out qemu.  KVM doesn't support disaggregation to the
  same level as Xen, so multiple VMs are very dependent on the isolation
  afforded to their respective qemus, whereas Xen can deploy driver
  domains (see Xoar etc).

- In a multitenant situation, running Docker inside a VM is the only
  way to have proper isolation between the two untrusted parties.  This
  is because containers are a fairly wide API, and the Linux kernel
  isn't fully 'container-friendly' until everything is migrated over.

Russ: I'll mail you PDF versions of the images you use.  Minor point
is that it's spelt "OCaml" and not "Ocaml".  You may also want to 
mention that Xen 4.5/Mirage has improved support for ARM unikernels
as well, which is a new and not very well-known feature yet.

cheers,
Anil


> Just a minor point, but given that the information is out there, it
> makes sense to be accurate (especially given the mystery that usually
> surrounds Google's infrastructure!).
> 
> Cheers,
> M.
> 
> 
> On 31/10/14 02:41, Russ Pavlicek wrote:
>> Mirage-ites,
>> 
>> Attached is the deck I intend to use on a talk about Unikernels this
>> weekend at CPOSC.  I liberated a few slides from you folks.  If you
>> want me to replace them or include additional attribution, let me
>> know.  I will probably replace them eventually, but frankly I'd rather
>> not do that the day before the talk, if possible.
>> 
>> Please let me know if you see any issues or have any suggestions.
>> 
>> Thanks,
>> 
>> Russ
>> 
>> 
>> 
>> _______________________________________________
>> 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
> 


_______________________________________________
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 Oct 31 10:13:19 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:13: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 1Xk9Cp-0004t3-Ey; Fri, 31 Oct 2014 10:13:19 +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 1Xk9Co-0004sy-Ae
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:13:18 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	C8/9A-24859-DB063545; Fri, 31 Oct 2014 10:13:17 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-31.messagelabs.com!1414750396!10768043!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.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32142 invoked from network); 31 Oct 2014 10:13:17 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 10:13:17 -0000
Received: from [192.168.1.110] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 97e7307e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 31 Oct 2014 10:16:32 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy8E-1bdwdkqTxeiksPtxaXBBTbOzMmQeHPvkShXzpgN6g@mail.gmail.com>
Date: Fri, 31 Oct 2014 10:13:15 +0000
Message-Id: <638B11E2-60CD-4D32-83BE-D37245FC1783@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
	<EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
	<CAG4opy8E-1bdwdkqTxeiksPtxaXBBTbOzMmQeHPvkShXzpgN6g@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 31 Oct 2014, at 10:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
>>> sounds confusing!
>> 
>> heh-- having dynamic control of tracing was something we discussed with magpie but never implemented. the idea would've been something like a datacenter operator could notice an issue, and then "turn up" the tracing to get more detailed models, to the point where they could diagnose the problems.
>> 
>> but as i said, we never actually did that. (though ETW does allow dynamic control over tracing levels from a command line tool.)
> 
> I think we should keep it simple for now. A little bit of tracing goes
> a long way and Mirage makes it easy to add extra rules or tracing by
> pinning components.
> 
> The important thing, I think, is that the default traces provide
> enough information that you can see roughly what's happening (not just
> thousands of anonymous lines). Then people can add extra output as
> needed. If something turns out to be generally useful (e.g. keeping a
> counter of active grant refs or recording the keys for XenStore
> lookups) then we can merge them in.

Agreed.

-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 Fri Oct 31 10:13:19 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:13: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 1Xk9Cp-0004t3-Ey; Fri, 31 Oct 2014 10:13:19 +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 1Xk9Co-0004sy-Ae
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:13:18 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	C8/9A-24859-DB063545; Fri, 31 Oct 2014 10:13:17 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-31.messagelabs.com!1414750396!10768043!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.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32142 invoked from network); 31 Oct 2014 10:13:17 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-31.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 10:13:17 -0000
Received: from [192.168.1.110] (cpc7-cmbg14-2-0-cust238.5-4.cable.virginm.net
	[86.30.244.239]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 97e7307e;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 31 Oct 2014 10:16:32 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy8E-1bdwdkqTxeiksPtxaXBBTbOzMmQeHPvkShXzpgN6g@mail.gmail.com>
Date: Fri, 31 Oct 2014 10:13:15 +0000
Message-Id: <638B11E2-60CD-4D32-83BE-D37245FC1783@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<9626CBA9-F72C-4490-922B-6AF09233469E@nottingham.ac.uk>
	<CAG4opy_p9pt-nQwDu1h9m7ZYamNgCpx3tsbaBYL0pHVF9U_7WQ@mail.gmail.com>
	<EFAF85BA-33EF-49E7-8C7E-2838645B061D@nottingham.ac.uk>
	<CAG4opy8E-1bdwdkqTxeiksPtxaXBBTbOzMmQeHPvkShXzpgN6g@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 31 Oct 2014, at 10:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
>>> sounds confusing!
>> 
>> heh-- having dynamic control of tracing was something we discussed with magpie but never implemented. the idea would've been something like a datacenter operator could notice an issue, and then "turn up" the tracing to get more detailed models, to the point where they could diagnose the problems.
>> 
>> but as i said, we never actually did that. (though ETW does allow dynamic control over tracing levels from a command line tool.)
> 
> I think we should keep it simple for now. A little bit of tracing goes
> a long way and Mirage makes it easy to add extra rules or tracing by
> pinning components.
> 
> The important thing, I think, is that the default traces provide
> enough information that you can see roughly what's happening (not just
> thousands of anonymous lines). Then people can add extra output as
> needed. If something turns out to be generally useful (e.g. keeping a
> counter of active grant refs or recording the keys for XenStore
> lookups) then we can merge them in.

Agreed.

-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 Fri Oct 31 10:43:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:43: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 1Xk9gL-0005OH-KV; Fri, 31 Oct 2014 10:43:49 +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 1Xk9gK-0005OB-Bb
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:43:48 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
	E9/BF-17694-3E763545; Fri, 31 Oct 2014 10:43:47 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1414752225!10683913!1
X-Originating-IP: [209.85.220.174]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19686 invoked from network); 31 Oct 2014 10:43:46 -0000
Received: from mail-vc0-f174.google.com (HELO mail-vc0-f174.google.com)
	(209.85.220.174)
	by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 10:43:46 -0000
Received: by mail-vc0-f174.google.com with SMTP id im17so1160559vcb.5
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 03:43:45 -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=UEHBPS2tFuh4JlhFAB5MWAlBYoxZex4YAlyS7PuLBoc=;
	b=s1WCE1cY5PWFI2aQWx4fk6K8cxs2rqIvFNIJgPzSWrjuEiYfM3kVgKkPgLLgF6+9t2
	UQNhXiSbxkRjg2Ek5JErFZ1nOKd7utsGU1ICqggSBk7j04fEeBuLc429ufEi6E3g6twn
	2H/b70QsGKBS2UVpWhjVnUnv43SPgLs+NrYnGjfx2MJB9ykQ9RLzqXoNUd+LfkyfWXck
	AYT1JyqqovF2cr+fXNKCNfwltTR/gksKG4QX9uwWoJwt3xDCgOOVKxAiQzNRlvQTiN8U
	H9rHGkZ9MQsxj4YDHoWiIpjT3JYhSGaUkOgr6L85LOAuXDKeEoO4EaUkl//dJTuungrw
	RpHw==
MIME-Version: 1.0
X-Received: by 10.220.111.6 with SMTP id q6mr16735900vcp.12.1414752225315;
	Fri, 31 Oct 2014 03:43:45 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 03:43:45 -0700 (PDT)
In-Reply-To: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
Date: Fri, 31 Oct 2014 10:43:45 +0000
Message-ID: <CAG4opy8Ar7L3cE3DC=PgTP0mMDLjCoAnEcSjfM-AwpQDWR_suA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

T24gMzAgT2N0b2JlciAyMDE0IDE1OjU1LCBBbmlsIE1hZGhhdmFwZWRkeSA8YW5pbEByZWNvaWwu
b3JnPiB3cm90ZToKPiBPbiAzMCBPY3QgMjAxNCwgYXQgMDk6MzYsIFRob21hcyBMZW9uYXJkIDx0
YWxleDVAZ21haWwuY29tPiB3cm90ZToKPj4KPj4gT24gMjggT2N0b2JlciAyMDE0IDIyOjM2LCBE
YW5pZWwgQsO8bnpsaSA8ZGFuaWVsLmJ1ZW56bGlAZXJyYXRpcXVlLmNoPiB3cm90ZToKPj4+Cj4+
PiBMZSBtYXJkaSwgMjggb2N0b2JyZSAyMDE0IMOgIDIzOjIxLCBBbmlsIE1hZGhhdmFwZWRkeSBh
IMOpY3JpdCA6Cj4+Pgo+Pj4+IEFzc2VtYmxhZ2UgaXMgc3RpbGwgdW5kZXJnb2luZyAncmFwaWQg
aXRlcmF0aW9uJywgc28gSSdkIHN1Z2dlc3QKPj4+PiBzd2l0Y2hpbmcgdG8gT0FTSVMgdW50aWwg
d2UgaGF2ZSBhIG1vcmUgc3RhYmxlIHZlcnNpb24uIFRob21hc0cgb3IKPj4+PiBEYW5pZWwgQnVl
bnpsaSBjYW4gY29ycmVjdCBtZSBpZiB0aGF0J3Mgbm90IGFjY3VyYXRlLgo+Pj4KPj4+IFRoYXQn
cyBhY2N1cmF0ZS4gSWYgd2UgYWdyZWUgd2l0aCBUaG9tYXMgb24gdGhlIFBSIEknbSBnb2luZyB0
byBtYWtlIG5leHQgd2VlaywgdGhlIGN1cnJlbnQgQVBJIGNvbXBsZXRlbHkgY2hhbmdlcyBhbmQg
YXNzZW1ibGUubWwgZmlsZXMgd2lsbCBuZWVkIHJld3JpdGluZy4gV2UgbmVlZCB0aW1lIHRvIGRl
c2lnbiBhIGdyZWF0IHN5c3RlbSBhbmQgaXQncyBiZXR0ZXIgaWYgd2UgZG9uJ3QgZW5jdW1iZXIg
b3Vyc2VsdmVzIHdpdGggdXNlcnMgYXQgdGhlIG1vbWVudC4KPj4KPj4gT0ssIGRvbmUgKHRoYW5r
cyB0byBUaG9tYXMgZm9yIHNvbWUgT1BBTSBoZWxwISkuIEkgdGhpbmsgdGhlIG1haW4KPj4gdGhp
bmcgbm93IGlzIHRvIGFncmVlIHRoZSBBUEkgZm9yIGxpYnJhcmllcyB0byByZWNvcmQgdHJhY2lu
ZyBldmVudHMuCj4+Cj4+IEhlcmUncyB3aGF0IEkgaGF2ZSBzbyBmYXI6Cj4+Cj4+IGh0dHBzOi8v
Z2l0aHViLmNvbS90YWxleDUvbWlyYWdlLXByb2ZpbGUvYmxvYi9uZXctYXBpL2xpYi90cmFjZV9z
dHVicy5tbGkKPj4gaHR0cHM6Ly9naXRodWIuY29tL3RhbGV4NS9taXJhZ2UtcHJvZmlsZS9ibG9i
L25ldy1hcGkvbGliL2NvdW50ZXIubWxpCj4KPiBEb2VzIG5vdGVfc3VzcGVuZC9ub3RlX3Jlc3Vt
ZSBoZXJlIHJlZmVyIHRvIGRyb3BwaW5nIGluIHRoZSBzY2hlZHVsZXIgKHRoZQo+IGVxdWl2YWxl
bnQgb2YgYmxvY2tpbmcgdGhlIGRvbWFpbik/ICBJdCBjb3VsZCBlYXNpbHkgYmUgY29uZmxhdGVk
IHdpdGgKPiBWTSBzdXNwZW5kL3Jlc3VtZSAod2hpY2ggaXMgYSBoaWdoZXItbGV2ZWwgcHJvdG9j
b2wpLiAgVGhlIGFjdHVhbCBzdGF0ZQo+IHRyYW5zaXRpb24gaXMgIndhaXRpbmcgZm9yIEkvTyIs
IHNvIHBlcmhhcHMgd2Ugc2hvdWxkIG5hbWUgaXQgYWZ0ZXIgdGhhdD8KCkl0IGNvdWxkIGJlIHdh
aXRpbmcgZm9yIGEgdGltZXIgdG9vLgoKVHJhY2Uubm90ZV9hYm91dF90b19ibG9jaz8KVHJhY2Uu
bm90ZV9wb2xsX2Zvcl9ldmVudHM/Cgo+IFRvIGVjaG8gTW9ydCdzIGNvbW1lbnQsIGlzdHIgaW4g
WGVuc3RvcmUgdGhhdCB0aGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggbWFueQo+IGR1cGxpY2F0ZSBz
dHJpbmdzIGZvciBsYWJlbHMsIHNvIGl0IGhhcyBhIG1vZHVsZSBzb21ld2hlcmUgdGhhdCBjcmVh
dGVzCj4gYSBTeW1ib2wudCB0aGF0IGRlZHVwcyBzaW1pbGFyIHN0cmluZ3MsIGFuZCBhbHNvIGhh
cyB0aGUgYmVuZWZpdCB0aGF0Cj4gY29tcGFyaXNvbiBjYW4gYmUgZG9uZSB2aWEgZmFzdCBlcXVh
bGl0eSByYXRoZXIgdGhhbiBieXRlLWJ5LWJ5dGUgY2hlY2tpbmcuCj4gSXQgYWxzbyBhbGxvd3Mg
ZXJyb3JzIHRvIGJlIGZsYWdnZWQgdXAgaWYgKGZvciBleGFtcGxlKSBkdXBsaWNhdGUgc3ltYm9s
Cj4gbmFtZXMgYXJlIHVzZWQgaW4gZGlmZmVyZW50IHByb2dyYW1zLgoKSSBndWVzcyB5b3UnZCBw
cmUtYWxsb2NhdGUgdGhlc2U/IGUuZy4KCmxldCBibGtmcm9udF9wb2xsX3QgPSBNUHJvZi5UcmFj
ZS5tYWtlX3RhZyAiYmxrZnJvbnQucG9sbCIKLi4uCiAgIE1Qcm9mLlRyYWNlLm5vdGVfdGFnIGJs
a2Zyb250X3BvbGxfdDsKCgotLSAKRHIgVGhvbWFzIExlb25hcmQgICAgICAgIGh0dHA6Ly8waW5z
dGFsbC5uZXQvCkdQRzogOTI0MiA5ODA3IEM5ODUgM0MwNyA0NEE2ICA4QjlBIEFFMDcgODI4MCA1
OUE1IDNDQzEKR1BHOiBEQTk4IDI1QUUgQ0FEMCA4OTc1IDdDREEgIEJEOEUgMDcxMyAzRjk2IENB
NzQgRDhCQQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 10:43:51 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 10:43: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 1Xk9gL-0005OH-KV; Fri, 31 Oct 2014 10:43:49 +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 1Xk9gK-0005OB-Bb
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 10:43:48 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
	E9/BF-17694-3E763545; Fri, 31 Oct 2014 10:43:47 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1414752225!10683913!1
X-Originating-IP: [209.85.220.174]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19686 invoked from network); 31 Oct 2014 10:43:46 -0000
Received: from mail-vc0-f174.google.com (HELO mail-vc0-f174.google.com)
	(209.85.220.174)
	by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 10:43:46 -0000
Received: by mail-vc0-f174.google.com with SMTP id im17so1160559vcb.5
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 03:43:45 -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=UEHBPS2tFuh4JlhFAB5MWAlBYoxZex4YAlyS7PuLBoc=;
	b=s1WCE1cY5PWFI2aQWx4fk6K8cxs2rqIvFNIJgPzSWrjuEiYfM3kVgKkPgLLgF6+9t2
	UQNhXiSbxkRjg2Ek5JErFZ1nOKd7utsGU1ICqggSBk7j04fEeBuLc429ufEi6E3g6twn
	2H/b70QsGKBS2UVpWhjVnUnv43SPgLs+NrYnGjfx2MJB9ykQ9RLzqXoNUd+LfkyfWXck
	AYT1JyqqovF2cr+fXNKCNfwltTR/gksKG4QX9uwWoJwt3xDCgOOVKxAiQzNRlvQTiN8U
	H9rHGkZ9MQsxj4YDHoWiIpjT3JYhSGaUkOgr6L85LOAuXDKeEoO4EaUkl//dJTuungrw
	RpHw==
MIME-Version: 1.0
X-Received: by 10.220.111.6 with SMTP id q6mr16735900vcp.12.1414752225315;
	Fri, 31 Oct 2014 03:43:45 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 03:43:45 -0700 (PDT)
In-Reply-To: <727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<D4F95BE3-8863-4FB6-A149-02ECB381F501@recoil.org>
	<CAG4opy_3cChrc=2=S4j_zXQP2kXXsiFhQ1jdJEQOL5uX-Ps1Fw@mail.gmail.com>
	<1AA95E96-02A7-4F7D-9EF4-D9185002EC25@recoil.org>
	<CAG4opy9K8Q21LTnTZ8+UwhnFbF5H8aaxpuMPFw4M2gDWU8BEVw@mail.gmail.com>
	<AD6D9AB1-5B58-481A-9224-1D9C08F56C86@recoil.org>
	<CAG4opy9bpP4g0oKiYcrhVgAd8Zn1vZqFbdQ0Q55NiyDfJoWczg@mail.gmail.com>
	<232D6523-1AC6-4BE6-8E1B-D2E21D475B4D@recoil.org>
	<016B60B26C8647E587DD7C145BC15FDA@erratique.ch>
	<CAG4opy_YFcqysGma0ryMrqus=SZ9QdwDgJohnLFD_DAMPENU3Q@mail.gmail.com>
	<727FEC87-7C94-47A1-9962-A7CAFF11FDE7@recoil.org>
Date: Fri, 31 Oct 2014 10:43:45 +0000
Message-ID: <CAG4opy8Ar7L3cE3DC=PgTP0mMDLjCoAnEcSjfM-AwpQDWR_suA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

T24gMzAgT2N0b2JlciAyMDE0IDE1OjU1LCBBbmlsIE1hZGhhdmFwZWRkeSA8YW5pbEByZWNvaWwu
b3JnPiB3cm90ZToKPiBPbiAzMCBPY3QgMjAxNCwgYXQgMDk6MzYsIFRob21hcyBMZW9uYXJkIDx0
YWxleDVAZ21haWwuY29tPiB3cm90ZToKPj4KPj4gT24gMjggT2N0b2JlciAyMDE0IDIyOjM2LCBE
YW5pZWwgQsO8bnpsaSA8ZGFuaWVsLmJ1ZW56bGlAZXJyYXRpcXVlLmNoPiB3cm90ZToKPj4+Cj4+
PiBMZSBtYXJkaSwgMjggb2N0b2JyZSAyMDE0IMOgIDIzOjIxLCBBbmlsIE1hZGhhdmFwZWRkeSBh
IMOpY3JpdCA6Cj4+Pgo+Pj4+IEFzc2VtYmxhZ2UgaXMgc3RpbGwgdW5kZXJnb2luZyAncmFwaWQg
aXRlcmF0aW9uJywgc28gSSdkIHN1Z2dlc3QKPj4+PiBzd2l0Y2hpbmcgdG8gT0FTSVMgdW50aWwg
d2UgaGF2ZSBhIG1vcmUgc3RhYmxlIHZlcnNpb24uIFRob21hc0cgb3IKPj4+PiBEYW5pZWwgQnVl
bnpsaSBjYW4gY29ycmVjdCBtZSBpZiB0aGF0J3Mgbm90IGFjY3VyYXRlLgo+Pj4KPj4+IFRoYXQn
cyBhY2N1cmF0ZS4gSWYgd2UgYWdyZWUgd2l0aCBUaG9tYXMgb24gdGhlIFBSIEknbSBnb2luZyB0
byBtYWtlIG5leHQgd2VlaywgdGhlIGN1cnJlbnQgQVBJIGNvbXBsZXRlbHkgY2hhbmdlcyBhbmQg
YXNzZW1ibGUubWwgZmlsZXMgd2lsbCBuZWVkIHJld3JpdGluZy4gV2UgbmVlZCB0aW1lIHRvIGRl
c2lnbiBhIGdyZWF0IHN5c3RlbSBhbmQgaXQncyBiZXR0ZXIgaWYgd2UgZG9uJ3QgZW5jdW1iZXIg
b3Vyc2VsdmVzIHdpdGggdXNlcnMgYXQgdGhlIG1vbWVudC4KPj4KPj4gT0ssIGRvbmUgKHRoYW5r
cyB0byBUaG9tYXMgZm9yIHNvbWUgT1BBTSBoZWxwISkuIEkgdGhpbmsgdGhlIG1haW4KPj4gdGhp
bmcgbm93IGlzIHRvIGFncmVlIHRoZSBBUEkgZm9yIGxpYnJhcmllcyB0byByZWNvcmQgdHJhY2lu
ZyBldmVudHMuCj4+Cj4+IEhlcmUncyB3aGF0IEkgaGF2ZSBzbyBmYXI6Cj4+Cj4+IGh0dHBzOi8v
Z2l0aHViLmNvbS90YWxleDUvbWlyYWdlLXByb2ZpbGUvYmxvYi9uZXctYXBpL2xpYi90cmFjZV9z
dHVicy5tbGkKPj4gaHR0cHM6Ly9naXRodWIuY29tL3RhbGV4NS9taXJhZ2UtcHJvZmlsZS9ibG9i
L25ldy1hcGkvbGliL2NvdW50ZXIubWxpCj4KPiBEb2VzIG5vdGVfc3VzcGVuZC9ub3RlX3Jlc3Vt
ZSBoZXJlIHJlZmVyIHRvIGRyb3BwaW5nIGluIHRoZSBzY2hlZHVsZXIgKHRoZQo+IGVxdWl2YWxl
bnQgb2YgYmxvY2tpbmcgdGhlIGRvbWFpbik/ICBJdCBjb3VsZCBlYXNpbHkgYmUgY29uZmxhdGVk
IHdpdGgKPiBWTSBzdXNwZW5kL3Jlc3VtZSAod2hpY2ggaXMgYSBoaWdoZXItbGV2ZWwgcHJvdG9j
b2wpLiAgVGhlIGFjdHVhbCBzdGF0ZQo+IHRyYW5zaXRpb24gaXMgIndhaXRpbmcgZm9yIEkvTyIs
IHNvIHBlcmhhcHMgd2Ugc2hvdWxkIG5hbWUgaXQgYWZ0ZXIgdGhhdD8KCkl0IGNvdWxkIGJlIHdh
aXRpbmcgZm9yIGEgdGltZXIgdG9vLgoKVHJhY2Uubm90ZV9hYm91dF90b19ibG9jaz8KVHJhY2Uu
bm90ZV9wb2xsX2Zvcl9ldmVudHM/Cgo+IFRvIGVjaG8gTW9ydCdzIGNvbW1lbnQsIGlzdHIgaW4g
WGVuc3RvcmUgdGhhdCB0aGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggbWFueQo+IGR1cGxpY2F0ZSBz
dHJpbmdzIGZvciBsYWJlbHMsIHNvIGl0IGhhcyBhIG1vZHVsZSBzb21ld2hlcmUgdGhhdCBjcmVh
dGVzCj4gYSBTeW1ib2wudCB0aGF0IGRlZHVwcyBzaW1pbGFyIHN0cmluZ3MsIGFuZCBhbHNvIGhh
cyB0aGUgYmVuZWZpdCB0aGF0Cj4gY29tcGFyaXNvbiBjYW4gYmUgZG9uZSB2aWEgZmFzdCBlcXVh
bGl0eSByYXRoZXIgdGhhbiBieXRlLWJ5LWJ5dGUgY2hlY2tpbmcuCj4gSXQgYWxzbyBhbGxvd3Mg
ZXJyb3JzIHRvIGJlIGZsYWdnZWQgdXAgaWYgKGZvciBleGFtcGxlKSBkdXBsaWNhdGUgc3ltYm9s
Cj4gbmFtZXMgYXJlIHVzZWQgaW4gZGlmZmVyZW50IHByb2dyYW1zLgoKSSBndWVzcyB5b3UnZCBw
cmUtYWxsb2NhdGUgdGhlc2U/IGUuZy4KCmxldCBibGtmcm9udF9wb2xsX3QgPSBNUHJvZi5UcmFj
ZS5tYWtlX3RhZyAiYmxrZnJvbnQucG9sbCIKLi4uCiAgIE1Qcm9mLlRyYWNlLm5vdGVfdGFnIGJs
a2Zyb250X3BvbGxfdDsKCgotLSAKRHIgVGhvbWFzIExlb25hcmQgICAgICAgIGh0dHA6Ly8waW5z
dGFsbC5uZXQvCkdQRzogOTI0MiA5ODA3IEM5ODUgM0MwNyA0NEE2ICA4QjlBIEFFMDcgODI4MCA1
OUE1IDNDQzEKR1BHOiBEQTk4IDI1QUUgQ0FEMCA4OTc1IDdDREEgIEJEOEUgMDcxMyAzRjk2IENB
NzQgRDhCQQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 14:18:03 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 14:18: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 1XkD1Y-0003AS-KO; Fri, 31 Oct 2014 14:17:56 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XkD1W-0003AN-J8
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 14:17:54 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	F6/05-24532-11A93545; Fri, 31 Oct 2014 14:17:53 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-8.tower-21.messagelabs.com!1414765073!11946628!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12768 invoked from network); 31 Oct 2014 14:17:53 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 14:17:53 -0000
Received: by mail-wi0-f174.google.com with SMTP id d1so1452118wiv.1
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 07:17:53 -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=7kSSwYcfTkKZsBCSmmkacPWhmx1xL4f0X3lkTemR6z4=;
	b=oLpDINb/Wc6XVgjfw5SbyUMSr2YWDohmuHwylEbetP5EmIlHT64fmjrWRD2Po1ZrFT
	PgRwIBQuCXShbWdop/0gNVkgVzIV7OuClWCuxP46WA966qatbZqX7iSiYrZh6IBxy9xN
	7ht2Mv7pZlhGOnIeQCSVD6H2xT3EvPZoGmydUwR+gm0XPiC9ry/YBJBkzz5DbpmyMyDK
	SGCvyXSiRmms9HVnO/9g9wbQrSwqpN4DjaxfyTjGdGkoW8XYjplZ/dl/THycKLAtYOi1
	+fqf9n7VpnDb2lkX5l/OPWVjZC3QPyKXAOknNxyOtmVznf9/LPUxulbmJa1u2xfzO1MZ
	9iNw==
X-Received: by 10.180.73.244 with SMTP id o20mr4358528wiv.12.1414765072923;
	Fri, 31 Oct 2014 07:17:52 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id
	td9sm12547689wic.15.2014.10.31.07.17.51 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 31 Oct 2014 07:17:52 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
Date: Fri, 31 Oct 2014 14:17:51 +0000
Message-Id: <9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

Thanks for the blog post, as usual it was great to read :-)

To add other related work to the pile of related work, I quite like the approach of https://blog.twitter.com/2012/distributed-systems-tracing-with-zipkin
They use sampling to only enable full profiling on a per-request basis. They have turn-on/off profiling for the various components and the have a way to track and relate profiling information across multiple components.

For sure having something simple is *much* better than having nothing at all, but if we go to something more sophisticated later, zipkin sounds quite neat. (not sure if they have a standardize format for tracing/profiling info though)

Thomas


> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
> 
> I've put up a blog post describing the tracing work:
> 
> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
> 
> It explains how to read the diagrams, what the various arrows mean and
> how to instrument your own programs. There are examples from tracing
> some Mirage unikernels. The viewer should now also work on tablets
> (pinch to zoom) - though probably very slowly! Let me know if there
> are any browser compatibility problems...
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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


_______________________________________________
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 Oct 31 14:18:03 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 14:18: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 1XkD1Y-0003AS-KO; Fri, 31 Oct 2014 14:17:56 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1XkD1W-0003AN-J8
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 14:17:54 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	F6/05-24532-11A93545; Fri, 31 Oct 2014 14:17:53 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-8.tower-21.messagelabs.com!1414765073!11946628!1
X-Originating-IP: [209.85.212.174]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12768 invoked from network); 31 Oct 2014 14:17:53 -0000
Received: from mail-wi0-f174.google.com (HELO mail-wi0-f174.google.com)
	(209.85.212.174)
	by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 14:17:53 -0000
Received: by mail-wi0-f174.google.com with SMTP id d1so1452118wiv.1
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 07:17:53 -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=7kSSwYcfTkKZsBCSmmkacPWhmx1xL4f0X3lkTemR6z4=;
	b=oLpDINb/Wc6XVgjfw5SbyUMSr2YWDohmuHwylEbetP5EmIlHT64fmjrWRD2Po1ZrFT
	PgRwIBQuCXShbWdop/0gNVkgVzIV7OuClWCuxP46WA966qatbZqX7iSiYrZh6IBxy9xN
	7ht2Mv7pZlhGOnIeQCSVD6H2xT3EvPZoGmydUwR+gm0XPiC9ry/YBJBkzz5DbpmyMyDK
	SGCvyXSiRmms9HVnO/9g9wbQrSwqpN4DjaxfyTjGdGkoW8XYjplZ/dl/THycKLAtYOi1
	+fqf9n7VpnDb2lkX5l/OPWVjZC3QPyKXAOknNxyOtmVznf9/LPUxulbmJa1u2xfzO1MZ
	9iNw==
X-Received: by 10.180.73.244 with SMTP id o20mr4358528wiv.12.1414765072923;
	Fri, 31 Oct 2014 07:17:52 -0700 (PDT)
Received: from piana.mac.cl.cam.ac.uk (piana.mac.cl.cam.ac.uk. [128.232.56.38])
	by mx.google.com with ESMTPSA id
	td9sm12547689wic.15.2014.10.31.07.17.51 for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Fri, 31 Oct 2014 07:17:52 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
Date: Fri, 31 Oct 2014 14:17:51 +0000
Message-Id: <9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

Thanks for the blog post, as usual it was great to read :-)

To add other related work to the pile of related work, I quite like the approach of https://blog.twitter.com/2012/distributed-systems-tracing-with-zipkin
They use sampling to only enable full profiling on a per-request basis. They have turn-on/off profiling for the various components and the have a way to track and relate profiling information across multiple components.

For sure having something simple is *much* better than having nothing at all, but if we go to something more sophisticated later, zipkin sounds quite neat. (not sure if they have a standardize format for tracing/profiling info though)

Thomas


> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
> 
> I've put up a blog post describing the tracing work:
> 
> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
> 
> It explains how to read the diagrams, what the various arrows mean and
> how to instrument your own programs. There are examples from tracing
> some Mirage unikernels. The viewer should now also work on tablets
> (pinch to zoom) - though probably very slowly! Let me know if there
> are any browser compatibility problems...
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> 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


_______________________________________________
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 Oct 31 14:21:22 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 14:21: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 1XkD4r-0003CH-V9; Fri, 31 Oct 2014 14:21:21 +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 1XkD4q-0003CC-5v
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 14:21:20 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	2C/9A-02696-FDA93545; Fri, 31 Oct 2014 14:21:19 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-27.messagelabs.com!1414765278!8487797!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.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18742 invoked from network); 31 Oct 2014 14:21:18 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 14:21:18 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0785a0f3;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 31 Oct 2014 14:24:34 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
Date: Fri, 31 Oct 2014 14:21:17 +0000
Message-Id: <14BE2AF3-B9AB-4D05-884A-1AE7841DC415@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 31 Oct 2014, at 14:17, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
> Thanks for the blog post, as usual it was great to read :-)
> 
> To add other related work to the pile of related work, I quite like the approach of https://blog.twitter.com/2012/distributed-systems-tracing-with-zipkin
> They use sampling to only enable full profiling on a per-request basis. They have turn-on/off profiling for the various components and the have a way to track and relate profiling information across multiple components.
> 
> For sure having something simple is *much* better than having nothing at all, but if we go to something more sophisticated later, zipkin sounds quite neat. (not sure if they have a standardize format for tracing/profiling info though)
> 

Zipkin uses Thrift and a loose API to do collection

https://github.com/twitter/zipkin/blob/master/doc/collector-api.md

When we get to building distributed session protocols, there are some very nice patterns to follow in Finagle:
http://twitter.github.io/finagle/guide/Protocols.html

Specifically the Mux protocol does a good job of RPC multiplexing, and could be a good layer over our Ring protocols.

-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 Fri Oct 31 14:21:22 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 14:21: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 1XkD4r-0003CH-V9; Fri, 31 Oct 2014 14:21:21 +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 1XkD4q-0003CC-5v
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 14:21:20 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	2C/9A-02696-FDA93545; Fri, 31 Oct 2014 14:21:19 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-11.tower-27.messagelabs.com!1414765278!8487797!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.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18742 invoked from network); 31 Oct 2014 14:21:18 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-11.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 14:21:18 -0000
Received: from flick.office (volstagg-0.srg.cl.cam.ac.uk [128.232.32.232]);
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0785a0f3;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 31 Oct 2014 14:24:34 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
Date: Fri, 31 Oct 2014 14:21:17 +0000
Message-Id: <14BE2AF3-B9AB-4D05-884A-1AE7841DC415@recoil.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
X-Mailer: Apple Mail (2.1990.1)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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 31 Oct 2014, at 14:17, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> 
> Thanks for the blog post, as usual it was great to read :-)
> 
> To add other related work to the pile of related work, I quite like the approach of https://blog.twitter.com/2012/distributed-systems-tracing-with-zipkin
> They use sampling to only enable full profiling on a per-request basis. They have turn-on/off profiling for the various components and the have a way to track and relate profiling information across multiple components.
> 
> For sure having something simple is *much* better than having nothing at all, but if we go to something more sophisticated later, zipkin sounds quite neat. (not sure if they have a standardize format for tracing/profiling info though)
> 

Zipkin uses Thrift and a loose API to do collection

https://github.com/twitter/zipkin/blob/master/doc/collector-api.md

When we get to building distributed session protocols, there are some very nice patterns to follow in Finagle:
http://twitter.github.io/finagle/guide/Protocols.html

Specifically the Mux protocol does a good job of RPC multiplexing, and could be a good layer over our Ring protocols.

-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 Fri Oct 31 15:01:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 15:01: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 1XkDhb-00041M-Bi; Fri, 31 Oct 2014 15:01:23 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <h.rotsos@gmail.com>) id 1XkDbm-0003ye-D4
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 14:55:22 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	A5/B8-11608-9D2A3545; Fri, 31 Oct 2014 14:55:21 +0000
X-Env-Sender: h.rotsos@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1414767318!10919042!1
X-Originating-IP: [209.85.218.49]
X-SpamReason: No, hits=1.2 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_30_40,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19889 invoked from network); 31 Oct 2014 14:55:19 -0000
Received: from mail-oi0-f49.google.com (HELO mail-oi0-f49.google.com)
	(209.85.218.49)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 14:55:19 -0000
Received: by mail-oi0-f49.google.com with SMTP id u20so5699198oif.22
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 07:55:18 -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=4acA/XJ6V6MbOL3e5jGUgR4O/3m11NiKC4RoG/OOtz4=;
	b=BCAQPR9lIHCvdoghCXvIXtFYqoZcfkJuxFQYIA/A8BWWX/LS3bIM1KYdIF+TMfiSwr
	3qUPQ1ggEDMNk8N/Zqs04zt3O3mgcbqys+zUX04x2HASnvd1kyqA2FTRdHOwtujKCpnV
	YFfbDFLVBVz9VjTCP6BaHzbD9ng3PNGqs1rs86EDj1o3h7zQviA57EDDZBlKABJzZcra
	mtyweK2Do2yKxIAhguAV/y7RD3ubXXJNn2c/y+2pAau8a0lHKoq50xds/+gDZrFpiRcr
	kBDgt+YRUmWeB3OWDwqpCTrR1J4dgf81H2Ei542JBcjkkUDmRrxCAMHYrchECWgefhB9
	4QhA==
MIME-Version: 1.0
X-Received: by 10.202.7.21 with SMTP id 21mr19510512oih.6.1414767317978; Fri,
	31 Oct 2014 07:55:17 -0700 (PDT)
Received: by 10.60.120.72 with HTTP; Fri, 31 Oct 2014 07:55:17 -0700 (PDT)
In-Reply-To: <2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
Date: Fri, 31 Oct 2014 14:55:17 +0000
X-Google-Sender-Auth: mYHdPLLuAEpffjAV-Oxk6SRX2vE
Message-ID: <CALerif5YG=w7rh56eSvvqzxW9-V8joDSEHLnuRuJAZ-mPc0s0Q@mail.gmail.com>
From: Haris Rotsos <cr409@cl.cam.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailman-Approved-At: Fri, 31 Oct 2014 15:01:22 +0000
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============4893618443801062758=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4893618443801062758==
Content-Type: multipart/alternative; boundary=001a113d10466d93440506b92fe1

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

On 30 October 2014 13:42, Richard Mortier <Richard.Mortier@nottingham.ac.uk>
wrote:

> all;
>
> to take a slightly different tack on this -- is there anyone out there
> successfully running mirage unikernels on xen that make use of >1 network
> interface?  how did you configure this?
>

I think Masoud found that the problem was in Netif naming. In the earlier
version of the mirage-net library, the Manager would provide direct access
to the device names and there was higher programmability in netif
programmability. I think Masoud got this right.


>
> haris-- what did you do for the mirage openflow paper?
>
>
As I mentioned to Masoud, I basically used oflops together with the pktgen
kernel module for high throughput traffic generation.

Two critical points to get things working is to make separate bridges for
each vif pair in the Dom0 and also, if you are planning to work with iperf
and real applications, you must disable tx offloading on the non-unikernel
VMs. I remember I had a problem to get TCP connections across a mirage
switch because I was getting bad checksums on the receiver side.


> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the
> canonical location for info on how to configure and manage networking on
> xen vms?
>
> and presumably all this results in entries in xenstore-- are
> http://wiki.xen.org/wiki/XenStore and
> http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation
> for xenstore and it's use by network devices?
>
> is there any documentation available on how to debug openvswitch
> networking on xen via xenstore (or through some other means)?
>
>
I think ovs doesn't do anything special for Xen vifs in comparison to
traditional ethernet linux devices. The only debugging I usually do is to
check through the `ovs-vsctl show`  if vif are assigned to the appropriate
bridges.



> On 26 Oct 2014, at 20:06, Masoud Koleini <Masoud.Koleini@nottingham.ac.uk>
> wrote:
>
> >
> > I have defined 3 vifs with 3 different mac addresses for the 3 tap
> > devices that I am using, and switch shows the same mac address (mac
> > address of the first defined vif) assigned to both tap2 and tap3.
> >
> > Another issue that I faced is, although I can ping switch vm, nothing
> > appears on vifs and xenbr0 when switch starts a TCP connection to a
> > remote controller (using TCPV4 create_connection function). This
> > function works well for unix config.
> >
> > On 26/10/14 11:43, Anil Madhavapeddy wrote:
> >> On 25 Oct 2014, at 11:36, Masoud Koleini <
> masoud.koleini@nottingham.ac.uk> wrote:
> >>> Hi all,
> >>>
> >>> I have a switch with three tap devices tap0 (for the controller
> connection), tap1, and tap 2 running on Xen.
> >>>
> >>> What would be the right VIF configuration for Xen?
> >> It would be pretty much the same configuration as your tap setup.  The
> Xen networking model is to expose a VIF ('virtual interface') in the guest
> and dom0.  Everything else from there is host setup and can be customised
> -- most commonly by adding a bridge to the outside world and adding the
> VIFs from the guests to that bridge so they can communication externally.
> >>
> >> The xl setup fragment looks like:
> >>
> >>     vif = [ 'bridge=xenbr0' ]
> >> or
> >>     vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]
> >>
> >> -anil
> >
> > This message and any attachment are intended solely for the addressee
> and may contain confidential information. If you have received this message
> in error, please send it back to me, and immediately delete it.   Please do
> not use, copy or disclose the information contained in this message or in
> any attachment.  Any views or opinions expressed by the author of this
> email do not necessarily reflect the views of the University of Nottingham.
> >
> > This message has been checked for viruses but the contents of an
> attachment
> > may still contain software viruses which could damage your computer
> system, you are advised to perform your own checks. Email communications
> with the University of Nottingham may be monitored as permitted by UK
> legislation.
> >
> >
> >
> >
> >
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
> --
> Cheers,
>
> R.
>
>
>
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>


-- 
Charalampos Rotsos
PhD student
The University of Cambridge
Computer Laboratory
William Gates Building
JJ Thomson Avenue
Cambridge
CB3 0FD

Phone: +44-(0) 1223 767032
Email: cr409@cl.cam.ac.uk

--001a113d10466d93440506b92fe1
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 30 October 2014 13:42, Richard Mortier <span dir=3D"ltr">&lt;<a href=
=3D"mailto:Richard.Mortier@nottingham.ac.uk" target=3D"_blank">Richard.Mort=
ier@nottingham.ac.uk</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
">all;<br>
<br>
to take a slightly different tack on this -- is there anyone out there succ=
essfully running mirage unikernels on xen that make use of &gt;1 network in=
terface?=C2=A0 how did you configure this?<br></blockquote><div><br></div><=
div>I think Masoud found that the problem was in Netif naming. In the earli=
er version of the mirage-net library, the Manager would provide direct acce=
ss to the device names and there was higher programmability in netif progra=
mmability. I think Masoud got this right.=C2=A0</div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex">
<br>
haris-- what did you do for the mirage openflow paper?<br>
<br></blockquote><div><br></div><div>As I mentioned to Masoud, I basically =
used oflops together with the pktgen kernel module for high throughput traf=
fic generation.=C2=A0</div><div><br></div><div>Two critical points to get t=
hings working is to make separate bridges for each vif pair in the Dom0 and=
 also, if you are planning to work with iperf and real applications, you mu=
st disable tx offloading on the non-unikernel VMs. I remember I had a probl=
em to get TCP connections across a mirage switch because I was getting bad =
checksums on the receiver side.=C2=A0</div><div>=C2=A0<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">
more generally-- is <a href=3D"http://wiki.xenproject.org/wiki/Xen_Networki=
ng" target=3D"_blank">http://wiki.xenproject.org/wiki/Xen_Networking</a> th=
e canonical location for info on how to configure and manage networking on =
xen vms?<br>
<br>
and presumably all this results in entries in xenstore-- are <a href=3D"htt=
p://wiki.xen.org/wiki/XenStore" target=3D"_blank">http://wiki.xen.org/wiki/=
XenStore</a> and <a href=3D"http://wiki.xen.org/wiki/XenStore_Reference" ta=
rget=3D"_blank">http://wiki.xen.org/wiki/XenStore_Reference</a> the canonic=
al documentation for xenstore and it&#39;s use by network devices?<br>
<br>
is there any documentation available on how to debug openvswitch networking=
 on xen via xenstore (or through some other means)?<br>
<div><div><br></div></div></blockquote><div><br></div><div>I think ovs does=
n&#39;t do anything special for Xen vifs in comparison to traditional ether=
net linux devices. The only debugging I usually do is to check through the =
`ovs-vsctl show` =C2=A0if vif are assigned to the appropriate bridges.=C2=
=A0</div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v><div>
On 26 Oct 2014, at 20:06, Masoud Koleini &lt;<a href=3D"mailto:Masoud.Kolei=
ni@nottingham.ac.uk" target=3D"_blank">Masoud.Koleini@nottingham.ac.uk</a>&=
gt; wrote:<br>
<br>
&gt;<br>
&gt; I have defined 3 vifs with 3 different mac addresses for the 3 tap<br>
&gt; devices that I am using, and switch shows the same mac address (mac<br=
>
&gt; address of the first defined vif) assigned to both tap2 and tap3.<br>
&gt;<br>
&gt; Another issue that I faced is, although I can ping switch vm, nothing<=
br>
&gt; appears on vifs and xenbr0 when switch starts a TCP connection to a<br=
>
&gt; remote controller (using TCPV4 create_connection function). This<br>
&gt; function works well for unix config.<br>
&gt;<br>
&gt; On 26/10/14 11:43, Anil Madhavapeddy wrote:<br>
&gt;&gt; On 25 Oct 2014, at 11:36, Masoud Koleini &lt;<a href=3D"mailto:mas=
oud.koleini@nottingham.ac.uk" target=3D"_blank">masoud.koleini@nottingham.a=
c.uk</a>&gt; wrote:<br>
&gt;&gt;&gt; Hi all,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I have a switch with three tap devices tap0 (for the controlle=
r connection), tap1, and tap 2 running on Xen.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; What would be the right VIF configuration for Xen?<br>
&gt;&gt; It would be pretty much the same configuration as your tap setup.=
=C2=A0 The Xen networking model is to expose a VIF (&#39;virtual interface&=
#39;) in the guest and dom0.=C2=A0 Everything else from there is host setup=
 and can be customised -- most commonly by adding a bridge to the outside w=
orld and adding the VIFs from the guests to that bridge so they can communi=
cation externally.<br>
&gt;&gt;<br>
&gt;&gt; The xl setup fragment looks like:<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0vif =3D [ &#39;bridge=3Dxenbr0&#39; ]<br>
&gt;&gt; or<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0vif =3D [ &#39;mac=3Dc0:ff:ee:c0:ff:ee,bridge=
=3Dbr0&#39; ]<br>
&gt;&gt;<br>
&gt;&gt; -anil<br>
&gt;<br>
&gt; This message and any attachment are intended solely for the addressee =
and may contain confidential information. If you have received this message=
 in error, please send it back to me, and immediately delete it.=C2=A0 =C2=
=A0Please do not use, copy or disclose the information contained in this me=
ssage or in any attachment.=C2=A0 Any views or opinions expressed by the au=
thor of this email do not necessarily reflect the views of the University o=
f Nottingham.<br>
&gt;<br>
&gt; This message has been checked for viruses but the contents of an attac=
hment<br>
&gt; may still contain software viruses which could damage your computer sy=
stem, you are advised to perform your own checks. Email communications with=
 the University of Nottingham may be monitored as permitted by UK legislati=
on.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; MirageOS-devel mailing list<br>
&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blan=
k">MirageOS-devel@lists.xenproject.org</a><br>
&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirage=
os-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/lis=
tinfo/mirageos-devel</a><br>
<br>
<br>
</div></div><span><font color=3D"#888888">--<br>
Cheers,<br>
<br>
R.<br>
<br>
<br>
<br>
<br>
</font></span><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" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a><br>
<br></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br><div>Cha=
ralampos Rotsos<br>PhD student<br>The University of Cambridge<br>Computer L=
aboratory<br>William Gates Building<br>JJ Thomson Avenue<br>Cambridge<br>CB=
3 0FD<br><br>Phone: <a href=3D"tel:%2B44-%280%29%201223%20767032" value=3D"=
+441223767032" target=3D"_blank">+44-(0) 1223 767032</a><br>Email: <a href=
=3D"mailto:cr409@cl.cam.ac.uk" target=3D"_blank">cr409@cl.cam.ac.uk</a></di=
v>
</div></div>

--001a113d10466d93440506b92fe1--


--===============4893618443801062758==
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

--===============4893618443801062758==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 15:01:25 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 15:01: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 1XkDhb-00041M-Bi; Fri, 31 Oct 2014 15:01:23 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <h.rotsos@gmail.com>) id 1XkDbm-0003ye-D4
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 14:55:22 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	A5/B8-11608-9D2A3545; Fri, 31 Oct 2014 14:55:21 +0000
X-Env-Sender: h.rotsos@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1414767318!10919042!1
X-Originating-IP: [209.85.218.49]
X-SpamReason: No, hits=1.2 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_30_40,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19889 invoked from network); 31 Oct 2014 14:55:19 -0000
Received: from mail-oi0-f49.google.com (HELO mail-oi0-f49.google.com)
	(209.85.218.49)
	by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 14:55:19 -0000
Received: by mail-oi0-f49.google.com with SMTP id u20so5699198oif.22
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 07:55:18 -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=4acA/XJ6V6MbOL3e5jGUgR4O/3m11NiKC4RoG/OOtz4=;
	b=BCAQPR9lIHCvdoghCXvIXtFYqoZcfkJuxFQYIA/A8BWWX/LS3bIM1KYdIF+TMfiSwr
	3qUPQ1ggEDMNk8N/Zqs04zt3O3mgcbqys+zUX04x2HASnvd1kyqA2FTRdHOwtujKCpnV
	YFfbDFLVBVz9VjTCP6BaHzbD9ng3PNGqs1rs86EDj1o3h7zQviA57EDDZBlKABJzZcra
	mtyweK2Do2yKxIAhguAV/y7RD3ubXXJNn2c/y+2pAau8a0lHKoq50xds/+gDZrFpiRcr
	kBDgt+YRUmWeB3OWDwqpCTrR1J4dgf81H2Ei542JBcjkkUDmRrxCAMHYrchECWgefhB9
	4QhA==
MIME-Version: 1.0
X-Received: by 10.202.7.21 with SMTP id 21mr19510512oih.6.1414767317978; Fri,
	31 Oct 2014 07:55:17 -0700 (PDT)
Received: by 10.60.120.72 with HTTP; Fri, 31 Oct 2014 07:55:17 -0700 (PDT)
In-Reply-To: <2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
Date: Fri, 31 Oct 2014 14:55:17 +0000
X-Google-Sender-Auth: mYHdPLLuAEpffjAV-Oxk6SRX2vE
Message-ID: <CALerif5YG=w7rh56eSvvqzxW9-V8joDSEHLnuRuJAZ-mPc0s0Q@mail.gmail.com>
From: Haris Rotsos <cr409@cl.cam.ac.uk>
To: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
X-Mailman-Approved-At: Fri, 31 Oct 2014 15:01:22 +0000
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============4893618443801062758=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4893618443801062758==
Content-Type: multipart/alternative; boundary=001a113d10466d93440506b92fe1

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

On 30 October 2014 13:42, Richard Mortier <Richard.Mortier@nottingham.ac.uk>
wrote:

> all;
>
> to take a slightly different tack on this -- is there anyone out there
> successfully running mirage unikernels on xen that make use of >1 network
> interface?  how did you configure this?
>

I think Masoud found that the problem was in Netif naming. In the earlier
version of the mirage-net library, the Manager would provide direct access
to the device names and there was higher programmability in netif
programmability. I think Masoud got this right.


>
> haris-- what did you do for the mirage openflow paper?
>
>
As I mentioned to Masoud, I basically used oflops together with the pktgen
kernel module for high throughput traffic generation.

Two critical points to get things working is to make separate bridges for
each vif pair in the Dom0 and also, if you are planning to work with iperf
and real applications, you must disable tx offloading on the non-unikernel
VMs. I remember I had a problem to get TCP connections across a mirage
switch because I was getting bad checksums on the receiver side.


> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the
> canonical location for info on how to configure and manage networking on
> xen vms?
>
> and presumably all this results in entries in xenstore-- are
> http://wiki.xen.org/wiki/XenStore and
> http://wiki.xen.org/wiki/XenStore_Reference the canonical documentation
> for xenstore and it's use by network devices?
>
> is there any documentation available on how to debug openvswitch
> networking on xen via xenstore (or through some other means)?
>
>
I think ovs doesn't do anything special for Xen vifs in comparison to
traditional ethernet linux devices. The only debugging I usually do is to
check through the `ovs-vsctl show`  if vif are assigned to the appropriate
bridges.



> On 26 Oct 2014, at 20:06, Masoud Koleini <Masoud.Koleini@nottingham.ac.uk>
> wrote:
>
> >
> > I have defined 3 vifs with 3 different mac addresses for the 3 tap
> > devices that I am using, and switch shows the same mac address (mac
> > address of the first defined vif) assigned to both tap2 and tap3.
> >
> > Another issue that I faced is, although I can ping switch vm, nothing
> > appears on vifs and xenbr0 when switch starts a TCP connection to a
> > remote controller (using TCPV4 create_connection function). This
> > function works well for unix config.
> >
> > On 26/10/14 11:43, Anil Madhavapeddy wrote:
> >> On 25 Oct 2014, at 11:36, Masoud Koleini <
> masoud.koleini@nottingham.ac.uk> wrote:
> >>> Hi all,
> >>>
> >>> I have a switch with three tap devices tap0 (for the controller
> connection), tap1, and tap 2 running on Xen.
> >>>
> >>> What would be the right VIF configuration for Xen?
> >> It would be pretty much the same configuration as your tap setup.  The
> Xen networking model is to expose a VIF ('virtual interface') in the guest
> and dom0.  Everything else from there is host setup and can be customised
> -- most commonly by adding a bridge to the outside world and adding the
> VIFs from the guests to that bridge so they can communication externally.
> >>
> >> The xl setup fragment looks like:
> >>
> >>     vif = [ 'bridge=xenbr0' ]
> >> or
> >>     vif = [ 'mac=c0:ff:ee:c0:ff:ee,bridge=br0' ]
> >>
> >> -anil
> >
> > This message and any attachment are intended solely for the addressee
> and may contain confidential information. If you have received this message
> in error, please send it back to me, and immediately delete it.   Please do
> not use, copy or disclose the information contained in this message or in
> any attachment.  Any views or opinions expressed by the author of this
> email do not necessarily reflect the views of the University of Nottingham.
> >
> > This message has been checked for viruses but the contents of an
> attachment
> > may still contain software viruses which could damage your computer
> system, you are advised to perform your own checks. Email communications
> with the University of Nottingham may be monitored as permitted by UK
> legislation.
> >
> >
> >
> >
> >
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
> --
> Cheers,
>
> R.
>
>
>
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>


-- 
Charalampos Rotsos
PhD student
The University of Cambridge
Computer Laboratory
William Gates Building
JJ Thomson Avenue
Cambridge
CB3 0FD

Phone: +44-(0) 1223 767032
Email: cr409@cl.cam.ac.uk

--001a113d10466d93440506b92fe1
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 30 October 2014 13:42, Richard Mortier <span dir=3D"ltr">&lt;<a href=
=3D"mailto:Richard.Mortier@nottingham.ac.uk" target=3D"_blank">Richard.Mort=
ier@nottingham.ac.uk</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
">all;<br>
<br>
to take a slightly different tack on this -- is there anyone out there succ=
essfully running mirage unikernels on xen that make use of &gt;1 network in=
terface?=C2=A0 how did you configure this?<br></blockquote><div><br></div><=
div>I think Masoud found that the problem was in Netif naming. In the earli=
er version of the mirage-net library, the Manager would provide direct acce=
ss to the device names and there was higher programmability in netif progra=
mmability. I think Masoud got this right.=C2=A0</div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex">
<br>
haris-- what did you do for the mirage openflow paper?<br>
<br></blockquote><div><br></div><div>As I mentioned to Masoud, I basically =
used oflops together with the pktgen kernel module for high throughput traf=
fic generation.=C2=A0</div><div><br></div><div>Two critical points to get t=
hings working is to make separate bridges for each vif pair in the Dom0 and=
 also, if you are planning to work with iperf and real applications, you mu=
st disable tx offloading on the non-unikernel VMs. I remember I had a probl=
em to get TCP connections across a mirage switch because I was getting bad =
checksums on the receiver side.=C2=A0</div><div>=C2=A0<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">
more generally-- is <a href=3D"http://wiki.xenproject.org/wiki/Xen_Networki=
ng" target=3D"_blank">http://wiki.xenproject.org/wiki/Xen_Networking</a> th=
e canonical location for info on how to configure and manage networking on =
xen vms?<br>
<br>
and presumably all this results in entries in xenstore-- are <a href=3D"htt=
p://wiki.xen.org/wiki/XenStore" target=3D"_blank">http://wiki.xen.org/wiki/=
XenStore</a> and <a href=3D"http://wiki.xen.org/wiki/XenStore_Reference" ta=
rget=3D"_blank">http://wiki.xen.org/wiki/XenStore_Reference</a> the canonic=
al documentation for xenstore and it&#39;s use by network devices?<br>
<br>
is there any documentation available on how to debug openvswitch networking=
 on xen via xenstore (or through some other means)?<br>
<div><div><br></div></div></blockquote><div><br></div><div>I think ovs does=
n&#39;t do anything special for Xen vifs in comparison to traditional ether=
net linux devices. The only debugging I usually do is to check through the =
`ovs-vsctl show` =C2=A0if vif are assigned to the appropriate bridges.=C2=
=A0</div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v><div>
On 26 Oct 2014, at 20:06, Masoud Koleini &lt;<a href=3D"mailto:Masoud.Kolei=
ni@nottingham.ac.uk" target=3D"_blank">Masoud.Koleini@nottingham.ac.uk</a>&=
gt; wrote:<br>
<br>
&gt;<br>
&gt; I have defined 3 vifs with 3 different mac addresses for the 3 tap<br>
&gt; devices that I am using, and switch shows the same mac address (mac<br=
>
&gt; address of the first defined vif) assigned to both tap2 and tap3.<br>
&gt;<br>
&gt; Another issue that I faced is, although I can ping switch vm, nothing<=
br>
&gt; appears on vifs and xenbr0 when switch starts a TCP connection to a<br=
>
&gt; remote controller (using TCPV4 create_connection function). This<br>
&gt; function works well for unix config.<br>
&gt;<br>
&gt; On 26/10/14 11:43, Anil Madhavapeddy wrote:<br>
&gt;&gt; On 25 Oct 2014, at 11:36, Masoud Koleini &lt;<a href=3D"mailto:mas=
oud.koleini@nottingham.ac.uk" target=3D"_blank">masoud.koleini@nottingham.a=
c.uk</a>&gt; wrote:<br>
&gt;&gt;&gt; Hi all,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I have a switch with three tap devices tap0 (for the controlle=
r connection), tap1, and tap 2 running on Xen.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; What would be the right VIF configuration for Xen?<br>
&gt;&gt; It would be pretty much the same configuration as your tap setup.=
=C2=A0 The Xen networking model is to expose a VIF (&#39;virtual interface&=
#39;) in the guest and dom0.=C2=A0 Everything else from there is host setup=
 and can be customised -- most commonly by adding a bridge to the outside w=
orld and adding the VIFs from the guests to that bridge so they can communi=
cation externally.<br>
&gt;&gt;<br>
&gt;&gt; The xl setup fragment looks like:<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0vif =3D [ &#39;bridge=3Dxenbr0&#39; ]<br>
&gt;&gt; or<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0vif =3D [ &#39;mac=3Dc0:ff:ee:c0:ff:ee,bridge=
=3Dbr0&#39; ]<br>
&gt;&gt;<br>
&gt;&gt; -anil<br>
&gt;<br>
&gt; This message and any attachment are intended solely for the addressee =
and may contain confidential information. If you have received this message=
 in error, please send it back to me, and immediately delete it.=C2=A0 =C2=
=A0Please do not use, copy or disclose the information contained in this me=
ssage or in any attachment.=C2=A0 Any views or opinions expressed by the au=
thor of this email do not necessarily reflect the views of the University o=
f Nottingham.<br>
&gt;<br>
&gt; This message has been checked for viruses but the contents of an attac=
hment<br>
&gt; may still contain software viruses which could damage your computer sy=
stem, you are advised to perform your own checks. Email communications with=
 the University of Nottingham may be monitored as permitted by UK legislati=
on.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; MirageOS-devel mailing list<br>
&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org" target=3D"_blan=
k">MirageOS-devel@lists.xenproject.org</a><br>
&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirage=
os-devel" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/lis=
tinfo/mirageos-devel</a><br>
<br>
<br>
</div></div><span><font color=3D"#888888">--<br>
Cheers,<br>
<br>
R.<br>
<br>
<br>
<br>
<br>
</font></span><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" target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo=
/mirageos-devel</a><br>
<br></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br><div>Cha=
ralampos Rotsos<br>PhD student<br>The University of Cambridge<br>Computer L=
aboratory<br>William Gates Building<br>JJ Thomson Avenue<br>Cambridge<br>CB=
3 0FD<br><br>Phone: <a href=3D"tel:%2B44-%280%29%201223%20767032" value=3D"=
+441223767032" target=3D"_blank">+44-(0) 1223 767032</a><br>Email: <a href=
=3D"mailto:cr409@cl.cam.ac.uk" target=3D"_blank">cr409@cl.cam.ac.uk</a></di=
v>
</div></div>

--001a113d10466d93440506b92fe1--


--===============4893618443801062758==
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

--===============4893618443801062758==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 15:04:50 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 15:04: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 1XkDkw-000474-MO; Fri, 31 Oct 2014 15:04:50 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XkDkv-00046z-9c
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 15:04:49 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	BC/E5-14214-015A3545; Fri, 31 Oct 2014 15:04:48 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414767886!11616762!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_60_70,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21573 invoked from network); 31 Oct 2014 15:04:46 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-2.tower-206.messagelabs.com with SMTP;
	31 Oct 2014 15:04:46 -0000
Received: (qmail 32162 invoked from network); 31 Oct 2014 15:04:47 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 31 Oct 2014 15:04:47 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 32020-06 for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 15:04:40 +0000 (GMT)
Received: (qmail 30741 invoked by uid 599); 31 Oct 2014 15:00:12 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 31 Oct 2014 15:00:12 +0000
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XkDgU-0002Fj-2A; Fri, 31 Oct 2014 15:00:14 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Haris Rotsos <cr409@cl.cam.ac.uk>
Date: Fri, 31 Oct 2014 15:00:12 +0000
Thread-Topic: [MirageOS-devel] Xen VIF configuration for tap devices
Thread-Index: Ac/1G1/MsZsfHtxUQKKKHzay1Xx/pw==
Message-ID: <D680ACC5-F0A5-413E-BE9B-B2054C049C33@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
	<CALerif5YG=w7rh56eSvvqzxW9-V8joDSEHLnuRuJAZ-mPc0s0Q@mail.gmail.com>
In-Reply-To: <CALerif5YG=w7rh56eSvvqzxW9-V8joDSEHLnuRuJAZ-mPc0s0Q@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============3210927547795576622=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3210927547795576622==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951"


--Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

yup i believe he has it working now. thanks for the other comments =
though!

On 31 Oct 2014, at 14:55, Haris Rotsos <cr409@cl.cam.ac.uk> wrote:

>=20
>=20
> On 30 October 2014 13:42, Richard Mortier =
<Richard.Mortier@nottingham.ac.uk> wrote:
> all;
>=20
> to take a slightly different tack on this -- is there anyone out there =
successfully running mirage unikernels on xen that make use of >1 =
network interface?  how did you configure this?
>=20
> I think Masoud found that the problem was in Netif naming. In the =
earlier version of the mirage-net library, the Manager would provide =
direct access to the device names and there was higher programmability =
in netif programmability. I think Masoud got this right.=20
> =20
>=20
> haris-- what did you do for the mirage openflow paper?
>=20
>=20
> As I mentioned to Masoud, I basically used oflops together with the =
pktgen kernel module for high throughput traffic generation.=20
>=20
> Two critical points to get things working is to make separate bridges =
for each vif pair in the Dom0 and also, if you are planning to work with =
iperf and real applications, you must disable tx offloading on the =
non-unikernel VMs. I remember I had a problem to get TCP connections =
across a mirage switch because I was getting bad checksums on the =
receiver side.=20
> =20
> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the =
canonical location for info on how to configure and manage networking on =
xen vms?
>=20
> and presumably all this results in entries in xenstore-- are =
http://wiki.xen.org/wiki/XenStore =
andhttp://wiki.xen.org/wiki/XenStore_Reference the canonical =
documentation for xenstore and it's use by network devices?
>=20
> is there any documentation available on how to debug openvswitch =
networking on xen via xenstore (or through some other means)?
>=20
>=20
> I think ovs doesn't do anything special for Xen vifs in comparison to =
traditional ethernet linux devices. The only debugging I usually do is =
to check through the `ovs-vsctl show`  if vif are assigned to the =
appropriate bridges.=20
>=20
> =20
> On 26 Oct 2014, at 20:06, Masoud Koleini =
<Masoud.Koleini@nottingham.ac.uk> wrote:
>=20
> >
> > I have defined 3 vifs with 3 different mac addresses for the 3 tap
> > devices that I am using, and switch shows the same mac address (mac
> > address of the first defined vif) assigned to both tap2 and tap3.
> >
> > Another issue that I faced is, although I can ping switch vm, =
nothing
> > appears on vifs and xenbr0 when switch starts a TCP connection to a
> > remote controller (using TCPV4 create_connection function). This
> > function works well for unix config.
> >
> > On 26/10/14 11:43, Anil Madhavapeddy wrote:
> >> On 25 Oct 2014, at 11:36, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
> >>> Hi all,
> >>>
> >>> I have a switch with three tap devices tap0 (for the controller =
connection), tap1, and tap 2 running on Xen.
> >>>
> >>> What would be the right VIF configuration for Xen?
> >> It would be pretty much the same configuration as your tap setup.  =
The Xen networking model is to expose a VIF ('virtual interface') in the =
guest and dom0.  Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.
> >>
> >> The xl setup fragment looks like:
> >>
> >>     vif =3D [ 'bridge=3Dxenbr0' ]
> >> or
> >>     vif =3D [ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]
> >>
> >> -anil
> >
> > This message and any attachment are intended solely for the =
addressee and may contain confidential information. If you have received =
this message in error, please send it back to me, and immediately delete =
it.   Please do not use, copy or disclose the information contained in =
this message or in any attachment.  Any views or opinions expressed by =
the author of this email do not necessarily reflect the views of the =
University of Nottingham.
> >
> > This message has been checked for viruses but the contents of an =
attachment
> > may still contain software viruses which could damage your computer =
system, you are advised to perform your own checks. Email communications =
with the University of Nottingham may be monitored as permitted by UK =
legislation.
> >
> >
> >
> >
> >
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
>=20
> --
> Cheers,
>=20
> R.
>=20
>=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
>=20
>=20
> --=20
> Charalampos Rotsos
> PhD student
> The University of Cambridge
> Computer Laboratory
> William Gates Building
> JJ Thomson Avenue
> Cambridge
> CB3 0FD
>=20
> Phone: +44-(0) 1223 767032
> Email: cr409@cl.cam.ac.uk


--=20
Cheers,

R.





--Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951
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;">yup i =
believe he has it working now. thanks for the other comments =
though!<div><br><div style=3D""><div>On 31 Oct 2014, at 14:55, Haris =
Rotsos &lt;<a =
href=3D"mailto:cr409@cl.cam.ac.uk">cr409@cl.cam.ac.uk</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><br class=3D"Apple-interchange-newline"><br =
style=3D"font-family: Calibri; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;"><div class=3D"gmail_quote" =
style=3D"font-family: Calibri; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;">On 30 October 2014 13:42, Richard =
Mortier<span class=3D"Apple-converted-space">&nbsp;</span><span =
dir=3D"ltr">&lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac.uk" =
target=3D"_blank">Richard.Mortier@nottingham.ac.uk</a>&gt;</span><span =
class=3D"Apple-converted-space">&nbsp;</span>wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;">all;<br><br>to take a =
slightly different tack on this -- is there anyone out there =
successfully running mirage unikernels on xen that make use of &gt;1 =
network interface?&nbsp; how did you configure =
this?<br></blockquote><div><br></div><div>I think Masoud found that the =
problem was in Netif naming. In the earlier version of the mirage-net =
library, the Manager would provide direct access to the device names and =
there was higher programmability in netif programmability. I think =
Masoud got this right.&nbsp;</div><div>&nbsp;</div><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;"><br>haris-- what did you =
do for the mirage openflow =
paper?<br><br></blockquote><div><br></div><div>As I mentioned to Masoud, =
I basically used oflops together with the pktgen kernel module for high =
throughput traffic generation.&nbsp;</div><div><br></div><div>Two =
critical points to get things working is to make separate bridges for =
each vif pair in the Dom0 and also, if you are planning to work with =
iperf and real applications, you must disable tx offloading on the =
non-unikernel VMs. I remember I had a problem to get TCP connections =
across a mirage switch because I was getting bad checksums on the =
receiver side.&nbsp;</div><div>&nbsp;<br></div><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;">more generally-- is<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://wiki.xenproject.org/wiki/Xen_Networking" =
target=3D"_blank">http://wiki.xenproject.org/wiki/Xen_Networking</a><span =
class=3D"Apple-converted-space">&nbsp;</span>the canonical location for =
info on how to configure and manage networking on xen vms?<br><br>and =
presumably all this results in entries in xenstore-- are<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://wiki.xen.org/wiki/XenStore" =
target=3D"_blank">http://wiki.xen.org/wiki/XenStore</a><span =
class=3D"Apple-converted-space">&nbsp;</span>and<a =
href=3D"http://wiki.xen.org/wiki/XenStore_Reference" =
target=3D"_blank">http://wiki.xen.org/wiki/XenStore_Reference</a><span =
class=3D"Apple-converted-space">&nbsp;</span>the canonical documentation =
for xenstore and it's use by network devices?<br><br>is there any =
documentation available on how to debug openvswitch networking on xen =
via xenstore (or through some other =
means)?<br><div><br></div></blockquote><div><br></div><div>I think ovs =
doesn't do anything special for Xen vifs in comparison to traditional =
ethernet linux devices. The only debugging I usually do is to check =
through the `ovs-vsctl show` &nbsp;if vif are assigned to the =
appropriate =
bridges.&nbsp;</div><div><br></div><div>&nbsp;</div><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;"><div>On 26 Oct 2014, at =
20:06, Masoud Koleini &lt;<a =
href=3D"mailto:Masoud.Koleini@nottingham.ac.uk" =
target=3D"_blank">Masoud.Koleini@nottingham.ac.uk</a>&gt; =
wrote:<br><br>&gt;<br>&gt; I have defined 3 vifs with 3 different mac =
addresses for the 3 tap<br>&gt; devices that I am using, and switch =
shows the same mac address (mac<br>&gt; address of the first defined =
vif) assigned to both tap2 and tap3.<br>&gt;<br>&gt; Another issue that =
I faced is, although I can ping switch vm, nothing<br>&gt; appears on =
vifs and xenbr0 when switch starts a TCP connection to a<br>&gt; remote =
controller (using TCPV4 create_connection function). This<br>&gt; =
function works well for unix config.<br>&gt;<br>&gt; On 26/10/14 11:43, =
Anil Madhavapeddy wrote:<br>&gt;&gt; On 25 Oct 2014, at 11:36, Masoud =
Koleini &lt;<a href=3D"mailto:masoud.koleini@nottingham.ac.uk" =
target=3D"_blank">masoud.koleini@nottingham.ac.uk</a>&gt; =
wrote:<br>&gt;&gt;&gt; Hi all,<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; I have a =
switch with three tap devices tap0 (for the controller connection), =
tap1, and tap 2 running on Xen.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; What =
would be the right VIF configuration for Xen?<br>&gt;&gt; It would be =
pretty much the same configuration as your tap setup.&nbsp; The Xen =
networking model is to expose a VIF ('virtual interface') in the guest =
and dom0.&nbsp; Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.<br>&gt;&gt;<br>&gt;&gt; The xl setup fragment looks =
like:<br>&gt;&gt;<br>&gt;&gt;&nbsp; &nbsp; &nbsp;vif =3D [ =
'bridge=3Dxenbr0' ]<br>&gt;&gt; or<br>&gt;&gt;&nbsp; &nbsp; &nbsp;vif =3D =
[ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]<br>&gt;&gt;<br>&gt;&gt; =
-anil<br>&gt;<br>&gt; This message and any attachment are intended =
solely for the addressee and may contain confidential information. If =
you have received this message in error, please send it back to me, and =
immediately delete it.&nbsp; &nbsp;Please do not use, copy or disclose =
the information contained in this message or in any attachment.&nbsp; =
Any views or opinions expressed by the author of this email do not =
necessarily reflect the views of the University of =
Nottingham.<br>&gt;<br>&gt; This message has been checked for viruses =
but the contents of an attachment<br>&gt; may still contain software =
viruses which could damage your computer system, you are advised to =
perform your own checks. Email communications with the University of =
Nottingham may be monitored as permitted by UK =
legislation.<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; =
_______________________________________________<br>&gt; MirageOS-devel =
mailing list<br>&gt;<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
target=3D"_blank">MirageOS-devel@lists.xenproject.org</a><br>&gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" =
target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mir=
ageos-devel</a><br><br><br></div><span><font =
color=3D"#888888">--<br>Cheers,<br><br>R.<br><br><br><br><br></font></span=
><br>_______________________________________________<br>MirageOS-devel =
mailing list<br><a href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
target=3D"_blank">MirageOS-devel@lists.xenproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" =
target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mir=
ageos-devel</a><br><br></blockquote></div><br style=3D"font-family: =
Calibri; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><br clear=3D"all" style=3D"font-family: =
Calibri; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"font-family: Calibri; =
font-size: 13px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px;"><br></div><span style=3D"font-family: Calibri; font-size: 13px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: =
none; display: inline !important;">--<span =
class=3D"Apple-converted-space">&nbsp;</span></span><br =
style=3D"font-family: Calibri; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;"><div style=3D"font-family: =
Calibri; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;">Charalampos Rotsos<br>PhD =
student<br>The University of Cambridge<br>Computer Laboratory<br>William =
Gates Building<br>JJ Thomson Avenue<br>Cambridge<br>CB3 =
0FD<br><br>Phone:<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"tel:%2B44-%280%29%201223%20767032" value=3D"+441223767032" =
target=3D"_blank">+44-(0) 1223 767032</a><br>Email:<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:cr409@cl.cam.ac.uk" =
target=3D"_blank">cr409@cl.cam.ac.uk</a></div></blockquote></div><br><div>=

<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><span class=3D"Apple-style-span" =
style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: =
Verdana; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: =
0px; -webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><div style=3D"word-wrap: =
break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space; "><div><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; "><br =
class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
<br></div></body></html>=

--Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951--

--Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUU6P8AAoJEOLF27JWwSg3jYYQAKyhYrx5E5QP5ZEm4q/V+Tid
sSVygQ1vpgBLwcAUw/PNlZCnLB16bU6gtWq5Qd+SR1SM3FwzUB6sg2RMQcPjxdmq
kaNPcR88ITIayg57U6Inxm2zHnv540n7Lggsl4KehXC4WevXaMXqYXUGM7dJSGTb
RXZvBWr5OUU6uGgWYvJq+iY0uMJG9i4YHBwryMI5EC5/NSEYB16JsjeV4Xxw4zSk
UE7UPbW5O+qwaEU5SBjKDftPumOtcR800XQqRaW48RdvZnKoO54j1+UKJWx+/9cU
lTwYX48Z0xDjDFFaAnST4/jGd0im7ESeYlM6menQkjV27FZ27Rn6Wb7jpBA/KJlw
q0xOpAD6mVUDaD+kcw8jwsc0y/yDN7VjvarTnnvpQTLgMyZewYVtpKoooVDwEFAc
TNJayZqFlDvMAmuBaCGfWZ0W8q4Mc3TeosSyWAFIiiJpRnoidWiPrbroR88YSx1c
qH9Y+yA3AB9XgGn8EI2ykI+h5kq2t131s6C5omKprfBGv5L90FnzFXW0LszKSACb
ta/4QfPHt/o0f8JyAVGSvKXhGqpY7P/DXiLCDQVMs93N9RbEbXUnfcWlKymmUeEZ
cJbUUsdxY15M5ygbs2adp47SDkUy/6V4D9fyPHhfqeNY8+GN1Ve96OZDd3iqOxu1
IvphPDh4oa8UzwaMWjBA
=GW9u
-----END PGP SIGNATURE-----

--Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13--


--===============3210927547795576622==
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

--===============3210927547795576622==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 15:04:50 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 15:04: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 1XkDkw-000474-MO; Fri, 31 Oct 2014 15:04:50 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XkDkv-00046z-9c
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 15:04:49 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	BC/E5-14214-015A3545; Fri, 31 Oct 2014 15:04:48 +0000
X-Env-Sender: Richard.Mortier@nottingham.ac.uk
X-Msg-Ref: server-2.tower-206.messagelabs.com!1414767886!11616762!1
X-Originating-IP: [93.95.15.169]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_60_70,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21573 invoked from network); 31 Oct 2014 15:04:46 -0000
Received: from engine01-20433-1.icritical.com (HELO
	engine01-20433-1.icritical.com) (93.95.15.169)
	by server-2.tower-206.messagelabs.com with SMTP;
	31 Oct 2014 15:04:46 -0000
Received: (qmail 32162 invoked from network); 31 Oct 2014 15:04:47 -0000
Received: from localhost (127.0.0.1)
	by engine01-20433-1.icritical.com with SMTP; 31 Oct 2014 15:04:47 -0000
Received: from engine01-20433-1.icritical.com ([127.0.0.1])
	by localhost (engine01-20433-1.icritical.com [127.0.0.1]) (amavisd-new,
	port 10024)
	with SMTP id 32020-06 for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 15:04:40 +0000 (GMT)
Received: (qmail 30741 invoked by uid 599); 31 Oct 2014 15:00:12 -0000
Received: from unknown (HELO smtp3.nottingham.ac.uk) (128.243.44.55)
	by engine01-20433-1.icritical.com (qpsmtpd/0.28) with ESMTP;
	Fri, 31 Oct 2014 15:00:12 +0000
Received: from uiwexhub01.ad.nottingham.ac.uk ([128.243.15.133])
	by smtp3.nottingham.ac.uk with esmtps (TLSv1:AES128-SHA:128)
	(Exim 4.77) (envelope-from <Richard.Mortier@nottingham.ac.uk>)
	id 1XkDgU-0002Fj-2A; Fri, 31 Oct 2014 15:00:14 +0000
From: Richard Mortier <Richard.Mortier@nottingham.ac.uk>
To: Haris Rotsos <cr409@cl.cam.ac.uk>
Date: Fri, 31 Oct 2014 15:00:12 +0000
Thread-Topic: [MirageOS-devel] Xen VIF configuration for tap devices
Thread-Index: Ac/1G1/MsZsfHtxUQKKKHzay1Xx/pw==
Message-ID: <D680ACC5-F0A5-413E-BE9B-B2054C049C33@nottingham.ac.uk>
References: <544B7D1D.2000003@nottingham.ac.uk>
	<D9A3D104-0948-4804-9BFD-93202620D030@recoil.org>
	<544D464D.7070305@nottingham.ac.uk>
	<2A89FA71-488F-48C9-919B-5411B59D75BF@nottingham.ac.uk>
	<CALerif5YG=w7rh56eSvvqzxW9-V8joDSEHLnuRuJAZ-mPc0s0Q@mail.gmail.com>
In-Reply-To: <CALerif5YG=w7rh56eSvvqzxW9-V8joDSEHLnuRuJAZ-mPc0s0Q@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
MIME-Version: 1.0
X-Virus-Scanned: by iCritical at engine01-20433-1.icritical.com
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>, Anil Madhavapeddy <anil@recoil.org>
Subject: Re: [MirageOS-devel] Xen VIF configuration for tap devices
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="===============3210927547795576622=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============3210927547795576622==
Content-Language: en-US
Content-Type: multipart/signed;
	boundary="Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13";
	protocol="application/pgp-signature"; micalg=pgp-sha512

--Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951"


--Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

yup i believe he has it working now. thanks for the other comments =
though!

On 31 Oct 2014, at 14:55, Haris Rotsos <cr409@cl.cam.ac.uk> wrote:

>=20
>=20
> On 30 October 2014 13:42, Richard Mortier =
<Richard.Mortier@nottingham.ac.uk> wrote:
> all;
>=20
> to take a slightly different tack on this -- is there anyone out there =
successfully running mirage unikernels on xen that make use of >1 =
network interface?  how did you configure this?
>=20
> I think Masoud found that the problem was in Netif naming. In the =
earlier version of the mirage-net library, the Manager would provide =
direct access to the device names and there was higher programmability =
in netif programmability. I think Masoud got this right.=20
> =20
>=20
> haris-- what did you do for the mirage openflow paper?
>=20
>=20
> As I mentioned to Masoud, I basically used oflops together with the =
pktgen kernel module for high throughput traffic generation.=20
>=20
> Two critical points to get things working is to make separate bridges =
for each vif pair in the Dom0 and also, if you are planning to work with =
iperf and real applications, you must disable tx offloading on the =
non-unikernel VMs. I remember I had a problem to get TCP connections =
across a mirage switch because I was getting bad checksums on the =
receiver side.=20
> =20
> more generally-- is http://wiki.xenproject.org/wiki/Xen_Networking the =
canonical location for info on how to configure and manage networking on =
xen vms?
>=20
> and presumably all this results in entries in xenstore-- are =
http://wiki.xen.org/wiki/XenStore =
andhttp://wiki.xen.org/wiki/XenStore_Reference the canonical =
documentation for xenstore and it's use by network devices?
>=20
> is there any documentation available on how to debug openvswitch =
networking on xen via xenstore (or through some other means)?
>=20
>=20
> I think ovs doesn't do anything special for Xen vifs in comparison to =
traditional ethernet linux devices. The only debugging I usually do is =
to check through the `ovs-vsctl show`  if vif are assigned to the =
appropriate bridges.=20
>=20
> =20
> On 26 Oct 2014, at 20:06, Masoud Koleini =
<Masoud.Koleini@nottingham.ac.uk> wrote:
>=20
> >
> > I have defined 3 vifs with 3 different mac addresses for the 3 tap
> > devices that I am using, and switch shows the same mac address (mac
> > address of the first defined vif) assigned to both tap2 and tap3.
> >
> > Another issue that I faced is, although I can ping switch vm, =
nothing
> > appears on vifs and xenbr0 when switch starts a TCP connection to a
> > remote controller (using TCPV4 create_connection function). This
> > function works well for unix config.
> >
> > On 26/10/14 11:43, Anil Madhavapeddy wrote:
> >> On 25 Oct 2014, at 11:36, Masoud Koleini =
<masoud.koleini@nottingham.ac.uk> wrote:
> >>> Hi all,
> >>>
> >>> I have a switch with three tap devices tap0 (for the controller =
connection), tap1, and tap 2 running on Xen.
> >>>
> >>> What would be the right VIF configuration for Xen?
> >> It would be pretty much the same configuration as your tap setup.  =
The Xen networking model is to expose a VIF ('virtual interface') in the =
guest and dom0.  Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.
> >>
> >> The xl setup fragment looks like:
> >>
> >>     vif =3D [ 'bridge=3Dxenbr0' ]
> >> or
> >>     vif =3D [ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]
> >>
> >> -anil
> >
> > This message and any attachment are intended solely for the =
addressee and may contain confidential information. If you have received =
this message in error, please send it back to me, and immediately delete =
it.   Please do not use, copy or disclose the information contained in =
this message or in any attachment.  Any views or opinions expressed by =
the author of this email do not necessarily reflect the views of the =
University of Nottingham.
> >
> > This message has been checked for viruses but the contents of an =
attachment
> > may still contain software viruses which could damage your computer =
system, you are advised to perform your own checks. Email communications =
with the University of Nottingham may be monitored as permitted by UK =
legislation.
> >
> >
> >
> >
> >
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>=20
>=20
> --
> Cheers,
>=20
> R.
>=20
>=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
>=20
>=20
> --=20
> Charalampos Rotsos
> PhD student
> The University of Cambridge
> Computer Laboratory
> William Gates Building
> JJ Thomson Avenue
> Cambridge
> CB3 0FD
>=20
> Phone: +44-(0) 1223 767032
> Email: cr409@cl.cam.ac.uk


--=20
Cheers,

R.





--Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951
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;">yup i =
believe he has it working now. thanks for the other comments =
though!<div><br><div style=3D""><div>On 31 Oct 2014, at 14:55, Haris =
Rotsos &lt;<a =
href=3D"mailto:cr409@cl.cam.ac.uk">cr409@cl.cam.ac.uk</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><br class=3D"Apple-interchange-newline"><br =
style=3D"font-family: Calibri; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;"><div class=3D"gmail_quote" =
style=3D"font-family: Calibri; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;">On 30 October 2014 13:42, Richard =
Mortier<span class=3D"Apple-converted-space">&nbsp;</span><span =
dir=3D"ltr">&lt;<a href=3D"mailto:Richard.Mortier@nottingham.ac.uk" =
target=3D"_blank">Richard.Mortier@nottingham.ac.uk</a>&gt;</span><span =
class=3D"Apple-converted-space">&nbsp;</span>wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;">all;<br><br>to take a =
slightly different tack on this -- is there anyone out there =
successfully running mirage unikernels on xen that make use of &gt;1 =
network interface?&nbsp; how did you configure =
this?<br></blockquote><div><br></div><div>I think Masoud found that the =
problem was in Netif naming. In the earlier version of the mirage-net =
library, the Manager would provide direct access to the device names and =
there was higher programmability in netif programmability. I think =
Masoud got this right.&nbsp;</div><div>&nbsp;</div><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;"><br>haris-- what did you =
do for the mirage openflow =
paper?<br><br></blockquote><div><br></div><div>As I mentioned to Masoud, =
I basically used oflops together with the pktgen kernel module for high =
throughput traffic generation.&nbsp;</div><div><br></div><div>Two =
critical points to get things working is to make separate bridges for =
each vif pair in the Dom0 and also, if you are planning to work with =
iperf and real applications, you must disable tx offloading on the =
non-unikernel VMs. I remember I had a problem to get TCP connections =
across a mirage switch because I was getting bad checksums on the =
receiver side.&nbsp;</div><div>&nbsp;<br></div><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;">more generally-- is<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://wiki.xenproject.org/wiki/Xen_Networking" =
target=3D"_blank">http://wiki.xenproject.org/wiki/Xen_Networking</a><span =
class=3D"Apple-converted-space">&nbsp;</span>the canonical location for =
info on how to configure and manage networking on xen vms?<br><br>and =
presumably all this results in entries in xenstore-- are<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://wiki.xen.org/wiki/XenStore" =
target=3D"_blank">http://wiki.xen.org/wiki/XenStore</a><span =
class=3D"Apple-converted-space">&nbsp;</span>and<a =
href=3D"http://wiki.xen.org/wiki/XenStore_Reference" =
target=3D"_blank">http://wiki.xen.org/wiki/XenStore_Reference</a><span =
class=3D"Apple-converted-space">&nbsp;</span>the canonical documentation =
for xenstore and it's use by network devices?<br><br>is there any =
documentation available on how to debug openvswitch networking on xen =
via xenstore (or through some other =
means)?<br><div><br></div></blockquote><div><br></div><div>I think ovs =
doesn't do anything special for Xen vifs in comparison to traditional =
ethernet linux devices. The only debugging I usually do is to check =
through the `ovs-vsctl show` &nbsp;if vif are assigned to the =
appropriate =
bridges.&nbsp;</div><div><br></div><div>&nbsp;</div><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;"><div>On 26 Oct 2014, at =
20:06, Masoud Koleini &lt;<a =
href=3D"mailto:Masoud.Koleini@nottingham.ac.uk" =
target=3D"_blank">Masoud.Koleini@nottingham.ac.uk</a>&gt; =
wrote:<br><br>&gt;<br>&gt; I have defined 3 vifs with 3 different mac =
addresses for the 3 tap<br>&gt; devices that I am using, and switch =
shows the same mac address (mac<br>&gt; address of the first defined =
vif) assigned to both tap2 and tap3.<br>&gt;<br>&gt; Another issue that =
I faced is, although I can ping switch vm, nothing<br>&gt; appears on =
vifs and xenbr0 when switch starts a TCP connection to a<br>&gt; remote =
controller (using TCPV4 create_connection function). This<br>&gt; =
function works well for unix config.<br>&gt;<br>&gt; On 26/10/14 11:43, =
Anil Madhavapeddy wrote:<br>&gt;&gt; On 25 Oct 2014, at 11:36, Masoud =
Koleini &lt;<a href=3D"mailto:masoud.koleini@nottingham.ac.uk" =
target=3D"_blank">masoud.koleini@nottingham.ac.uk</a>&gt; =
wrote:<br>&gt;&gt;&gt; Hi all,<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; I have a =
switch with three tap devices tap0 (for the controller connection), =
tap1, and tap 2 running on Xen.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; What =
would be the right VIF configuration for Xen?<br>&gt;&gt; It would be =
pretty much the same configuration as your tap setup.&nbsp; The Xen =
networking model is to expose a VIF ('virtual interface') in the guest =
and dom0.&nbsp; Everything else from there is host setup and can be =
customised -- most commonly by adding a bridge to the outside world and =
adding the VIFs from the guests to that bridge so they can communication =
externally.<br>&gt;&gt;<br>&gt;&gt; The xl setup fragment looks =
like:<br>&gt;&gt;<br>&gt;&gt;&nbsp; &nbsp; &nbsp;vif =3D [ =
'bridge=3Dxenbr0' ]<br>&gt;&gt; or<br>&gt;&gt;&nbsp; &nbsp; &nbsp;vif =3D =
[ 'mac=3Dc0:ff:ee:c0:ff:ee,bridge=3Dbr0' ]<br>&gt;&gt;<br>&gt;&gt; =
-anil<br>&gt;<br>&gt; This message and any attachment are intended =
solely for the addressee and may contain confidential information. If =
you have received this message in error, please send it back to me, and =
immediately delete it.&nbsp; &nbsp;Please do not use, copy or disclose =
the information contained in this message or in any attachment.&nbsp; =
Any views or opinions expressed by the author of this email do not =
necessarily reflect the views of the University of =
Nottingham.<br>&gt;<br>&gt; This message has been checked for viruses =
but the contents of an attachment<br>&gt; may still contain software =
viruses which could damage your computer system, you are advised to =
perform your own checks. Email communications with the University of =
Nottingham may be monitored as permitted by UK =
legislation.<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; =
_______________________________________________<br>&gt; MirageOS-devel =
mailing list<br>&gt;<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
target=3D"_blank">MirageOS-devel@lists.xenproject.org</a><br>&gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" =
target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mir=
ageos-devel</a><br><br><br></div><span><font =
color=3D"#888888">--<br>Cheers,<br><br>R.<br><br><br><br><br></font></span=
><br>_______________________________________________<br>MirageOS-devel =
mailing list<br><a href=3D"mailto:MirageOS-devel@lists.xenproject.org" =
target=3D"_blank">MirageOS-devel@lists.xenproject.org</a><br><a =
href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-deve=
l" =
target=3D"_blank">http://lists.xenproject.org/cgi-bin/mailman/listinfo/mir=
ageos-devel</a><br><br></blockquote></div><br style=3D"font-family: =
Calibri; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><br clear=3D"all" style=3D"font-family: =
Calibri; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"font-family: Calibri; =
font-size: 13px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px;"><br></div><span style=3D"font-family: Calibri; font-size: 13px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: =
none; display: inline !important;">--<span =
class=3D"Apple-converted-space">&nbsp;</span></span><br =
style=3D"font-family: Calibri; font-size: 13px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;"><div style=3D"font-family: =
Calibri; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;">Charalampos Rotsos<br>PhD =
student<br>The University of Cambridge<br>Computer Laboratory<br>William =
Gates Building<br>JJ Thomson Avenue<br>Cambridge<br>CB3 =
0FD<br><br>Phone:<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"tel:%2B44-%280%29%201223%20767032" value=3D"+441223767032" =
target=3D"_blank">+44-(0) 1223 767032</a><br>Email:<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:cr409@cl.cam.ac.uk" =
target=3D"_blank">cr409@cl.cam.ac.uk</a></div></blockquote></div><br><div>=

<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><span class=3D"Apple-style-span" =
style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: =
Verdana; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: =
0px; -webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px;  "><div style=3D"word-wrap: =
break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space; "><div><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; "><br =
class=3D"Apple-interchange-newline">--</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
">&nbsp;</span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">Cheers,</span><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span><span class=3D"Apple-style-span" style=3D"font-family: =
monospace; "><br></span><span class=3D"Apple-style-span" =
style=3D"font-family: monospace; ">R.</span></div><div><span =
class=3D"Apple-style-span" style=3D"font-family: monospace; =
"><br></span></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
<br></div></body></html>=

--Apple-Mail=_54CD2C3A-F7DF-4E21-8AC2-AB301D270951--

--Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUU6P8AAoJEOLF27JWwSg3jYYQAKyhYrx5E5QP5ZEm4q/V+Tid
sSVygQ1vpgBLwcAUw/PNlZCnLB16bU6gtWq5Qd+SR1SM3FwzUB6sg2RMQcPjxdmq
kaNPcR88ITIayg57U6Inxm2zHnv540n7Lggsl4KehXC4WevXaMXqYXUGM7dJSGTb
RXZvBWr5OUU6uGgWYvJq+iY0uMJG9i4YHBwryMI5EC5/NSEYB16JsjeV4Xxw4zSk
UE7UPbW5O+qwaEU5SBjKDftPumOtcR800XQqRaW48RdvZnKoO54j1+UKJWx+/9cU
lTwYX48Z0xDjDFFaAnST4/jGd0im7ESeYlM6menQkjV27FZ27Rn6Wb7jpBA/KJlw
q0xOpAD6mVUDaD+kcw8jwsc0y/yDN7VjvarTnnvpQTLgMyZewYVtpKoooVDwEFAc
TNJayZqFlDvMAmuBaCGfWZ0W8q4Mc3TeosSyWAFIiiJpRnoidWiPrbroR88YSx1c
qH9Y+yA3AB9XgGn8EI2ykI+h5kq2t131s6C5omKprfBGv5L90FnzFXW0LszKSACb
ta/4QfPHt/o0f8JyAVGSvKXhGqpY7P/DXiLCDQVMs93N9RbEbXUnfcWlKymmUeEZ
cJbUUsdxY15M5ygbs2adp47SDkUy/6V4D9fyPHhfqeNY8+GN1Ve96OZDd3iqOxu1
IvphPDh4oa8UzwaMWjBA
=GW9u
-----END PGP SIGNATURE-----

--Apple-Mail=_2E678F01-B0E6-4CD9-846F-673F23A6FF13--


--===============3210927547795576622==
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

--===============3210927547795576622==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 17:16:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 17:16: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 1XkFog-0005so-IG; Fri, 31 Oct 2014 17:16:50 +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 1XkFoe-0005sj-To
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 17:16:49 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
	E8/24-19763-FF3C3545; Fri, 31 Oct 2014 17:16:47 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414775806!5400731!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14432 invoked from network); 31 Oct 2014 17:16:47 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 17:16:47 -0000
Received: by mail-vc0-f180.google.com with SMTP id hy10so4092224vcb.11
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 10:16:45 -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=91FKs9Y0gfBMxMPaohXo2zTDPPqnGhytMltzO0q3HV0=;
	b=U5hmap9pb6RZipGvEoulfaTYn0lkjVH+ZPcS8bSYaGlRNt6Pgc9+9nFHOARywTf1tt
	5OPC//nJ9vmDtNIaXDsY2EFJ15ZuHVfoFqUBMUW6lF5ibZLqAHGJ1pXYkSmjw+tBhKm/
	e4BrqNYwevl2fEx+ETts270VwX5hf3FCc3cjldKt9ivB22NQRlfGb55u2v7NHMYl2HQg
	UmucGFjD3Nprj1vQwmx52B3THe4H2uOdm1GIM9XJzPWB9hxBF/JlkgJKWTn2NRAipMQg
	yE0wjzc7a+TkFWrwmql5ZKudYhTYdwdArTq0FfYEtDQvuXLWZli00IP9Rds/LZenjeyD
	t9Tw==
MIME-Version: 1.0
X-Received: by 10.52.30.17 with SMTP id o17mr14982754vdh.5.1414775805581; Fri,
	31 Oct 2014 10:16:45 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 10:16:45 -0700 (PDT)
In-Reply-To: <9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
Date: Fri, 31 Oct 2014 17:16:45 +0000
Message-ID: <CAG4opy_7c-0YLtvgB2wUYNrGcEuKdgJKB5FTogQQdkR=8iKT5Q@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

Thanks. The Twitter stuff says it was based on Google's Dapper paper,
which describes their always-on tracing system which, as you say, only
traces some requests (e.g. 1 in 1024), but across systems.

It seems to me that these trace records needs to be separate from the
thread-level recording, although we might be able to share parts of
the API for logging events.

So far we have:

- Dapper-style logging of RPC calls between machines, for randomly
sampled user requests.
- mirage-profile logging of individual Lwt threads.
- function call trancing (gprof).

Each level generates far more data than the previous one and it's
probably only sensible to have the first type recorded by default. It
would be nice to be able to correlate them when necessary, though.
Being able to log application messages against the current
function/thread/request is useful for all three.

On 31 October 2014 14:17, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> Thanks for the blog post, as usual it was great to read :-)
>
> To add other related work to the pile of related work, I quite like the approach of https://blog.twitter.com/2012/distributed-systems-tracing-with-zipkin
> They use sampling to only enable full profiling on a per-request basis. They have turn-on/off profiling for the various components and the have a way to track and relate profiling information across multiple components.
>
> For sure having something simple is *much* better than having nothing at all, but if we go to something more sophisticated later, zipkin sounds quite neat. (not sure if they have a standardize format for tracing/profiling info though)
>
> Thomas
>
>
>> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> I've put up a blog post describing the tracing work:
>>
>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>
>> It explains how to read the diagrams, what the various arrows mean and
>> how to instrument your own programs. There are examples from tracing
>> some Mirage unikernels. The viewer should now also work on tablets
>> (pinch to zoom) - though probably very slowly! Let me know if there
>> are any browser compatibility problems...
>>
>>
>> --
>> Dr Thomas Leonard        http://0install.net/
>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>> 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
>



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 31 17:16:58 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 17:16: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 1XkFog-0005so-IG; Fri, 31 Oct 2014 17:16:50 +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 1XkFoe-0005sj-To
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 17:16:49 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
	E8/24-19763-FF3C3545; Fri, 31 Oct 2014 17:16:47 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1414775806!5400731!1
X-Originating-IP: [209.85.220.180]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14432 invoked from network); 31 Oct 2014 17:16:47 -0000
Received: from mail-vc0-f180.google.com (HELO mail-vc0-f180.google.com)
	(209.85.220.180)
	by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Oct 2014 17:16:47 -0000
Received: by mail-vc0-f180.google.com with SMTP id hy10so4092224vcb.11
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 31 Oct 2014 10:16:45 -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=91FKs9Y0gfBMxMPaohXo2zTDPPqnGhytMltzO0q3HV0=;
	b=U5hmap9pb6RZipGvEoulfaTYn0lkjVH+ZPcS8bSYaGlRNt6Pgc9+9nFHOARywTf1tt
	5OPC//nJ9vmDtNIaXDsY2EFJ15ZuHVfoFqUBMUW6lF5ibZLqAHGJ1pXYkSmjw+tBhKm/
	e4BrqNYwevl2fEx+ETts270VwX5hf3FCc3cjldKt9ivB22NQRlfGb55u2v7NHMYl2HQg
	UmucGFjD3Nprj1vQwmx52B3THe4H2uOdm1GIM9XJzPWB9hxBF/JlkgJKWTn2NRAipMQg
	yE0wjzc7a+TkFWrwmql5ZKudYhTYdwdArTq0FfYEtDQvuXLWZli00IP9Rds/LZenjeyD
	t9Tw==
MIME-Version: 1.0
X-Received: by 10.52.30.17 with SMTP id o17mr14982754vdh.5.1414775805581; Fri,
	31 Oct 2014 10:16:45 -0700 (PDT)
Received: by 10.31.130.80 with HTTP; Fri, 31 Oct 2014 10:16:45 -0700 (PDT)
In-Reply-To: <9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
References: <CAG4opy9pwwqbaCcko6Adn5nJn671S0BMs-9L4NpTMPQMZMnLrg@mail.gmail.com>
	<9A9DBAD6-F185-449E-96EB-E650CBAB672A@gazagnaire.org>
Date: Fri, 31 Oct 2014 17:16:45 +0000
Message-ID: <CAG4opy_7c-0YLtvgB2wUYNrGcEuKdgJKB5FTogQQdkR=8iKT5Q@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Tracing and profiling blog post
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

Thanks. The Twitter stuff says it was based on Google's Dapper paper,
which describes their always-on tracing system which, as you say, only
traces some requests (e.g. 1 in 1024), but across systems.

It seems to me that these trace records needs to be separate from the
thread-level recording, although we might be able to share parts of
the API for logging events.

So far we have:

- Dapper-style logging of RPC calls between machines, for randomly
sampled user requests.
- mirage-profile logging of individual Lwt threads.
- function call trancing (gprof).

Each level generates far more data than the previous one and it's
probably only sensible to have the first type recorded by default. It
would be nice to be able to correlate them when necessary, though.
Being able to log application messages against the current
function/thread/request is useful for all three.

On 31 October 2014 14:17, Thomas Gazagnaire <thomas@gazagnaire.org> wrote:
> Thanks for the blog post, as usual it was great to read :-)
>
> To add other related work to the pile of related work, I quite like the approach of https://blog.twitter.com/2012/distributed-systems-tracing-with-zipkin
> They use sampling to only enable full profiling on a per-request basis. They have turn-on/off profiling for the various components and the have a way to track and relate profiling information across multiple components.
>
> For sure having something simple is *much* better than having nothing at all, but if we go to something more sophisticated later, zipkin sounds quite neat. (not sure if they have a standardize format for tracing/profiling info though)
>
> Thomas
>
>
>> On 27 Oct 2014, at 10:42, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> I've put up a blog post describing the tracing work:
>>
>> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/
>>
>> It explains how to read the diagrams, what the various arrows mean and
>> how to instrument your own programs. There are examples from tracing
>> some Mirage unikernels. The viewer should now also work on tablets
>> (pinch to zoom) - though probably very slowly! Let me know if there
>> are any browser compatibility problems...
>>
>>
>> --
>> Dr Thomas Leonard        http://0install.net/
>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>> 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
>



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
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 Oct 31 19:25:13 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 19:25: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 1XkHoq-0007kS-O8; Fri, 31 Oct 2014 19:25:08 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <jamesjb@galois.com>) id 1XkHop-0007kN-6O
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 19:25:07 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	42/F9-14214-212E3545; Fri, 31 Oct 2014 19:25:06 +0000
X-Env-Sender: jamesjb@galois.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1414783503!12984130!1
X-Originating-IP: [66.193.37.198]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_40_50,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17754 invoked from network); 31 Oct 2014 19:25:05 -0000
Received: from quintic.galois.com (HELO mail.galois.com) (66.193.37.198)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 19:25:05 -0000
Received: from hurricane.galois.com (hurricane.galois.com
	[IPv6:2001:4870:e08e:200:5054:ff:fefa:ce41])
	by mail.galois.com (8.14.4/8.14.4) with ESMTP id s9VJOvBQ006629
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256
	verify=OK); Fri, 31 Oct 2014 12:25:01 -0700
Received: from [IPv6:2001:4870:e08e:201:81cf:9394:47f2:8312]
	([IPv6:2001:4870:e08e:201:81cf:9394:47f2:8312])
	(authenticated bits=0)
	by hurricane.galois.com (8.14.4/8.14.4) with ESMTP id s9VJOvWJ010841
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Fri, 31 Oct 2014 12:24:57 -0700
Message-ID: <5453E209.50800@galois.com>
Date: Fri, 31 Oct 2014 12:24:57 -0700
From: James Bielman <jamesjb@galois.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: David Scott <scott.dj@gmail.com>
References: <540E2C77.6050007@galois.com>
	<CAG_esB0YyqPBQ35_S5GoVpa-kLZdYR9fQ_sgODZ1Qe8sDv1O9Q@mail.gmail.com>
In-Reply-To: <CAG_esB0YyqPBQ35_S5GoVpa-kLZdYR9fQ_sgODZ1Qe8sDv1O9Q@mail.gmail.com>
X-Spam-Status: No, score=-1.1 required=4.5 tests=BAYES_00,HTML_MESSAGE,
	RP_MATCHES_RCVD shortcircuit=no autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on quintic.galois.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Merging XenStore+MAC
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="===============6760736645697436434=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a cryptographically signed message in MIME format.

--===============6760736645697436434==
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms020102090600020103020209"

This is a cryptographically signed message in MIME format.

--------------ms020102090600020103020209
Content-Type: multipart/alternative;
 boundary="------------040401060002010307040206"

This is a multi-part message in MIME format.
--------------040401060002010307040206
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi David,

On 09/09/2014 08:07 AM, David Scott wrote:
>
> On Mon, Sep 8, 2014 at 11:23 PM, James Bielman <jamesjb@galois.com
> <mailto:jamesjb@galois.com>> wrote:
>
>
>     After some time looking at the Irmin-based Xenstore, I have a few
>     questions:
>
>     - Is the repository at
>     https://github.com/mirage/ocaml-xenstore-server the one I should
>     be tracking, or is there a development repository?
>
>
> Yes, that's the latest one. Note it's not in a fully working state--
> when integrating irmin I unhooked a bunch of stuff so that I could
> refactor the core more quickly. The following features are
> (temporarily) unhooked:
>
> - interdomain rings (unix domain socket still works)
> - ACLs
> - watches
> - Xen kernel build
>
> Now that the irmin core is working it's probably time to start
> re-adding these.
>
> If you had complete freedom, what would your ideal interface be?
>

I've been looking at this merge again this week and wondering if there
are any updates on getting the XenStore security features hooked up in
this repository.  I'd really like to get the MAC patches into shape to
be considered for merging as soon as possible into whichever
Mirage-based XenStore will likely be used by the community going forward.=


As for the interface, I have a first pass at something in this forked
repository:

  https://github.com/GaloisInc/ocaml-xenstore-server

Specifically, the 'server/security.mli' module.

This isn't final yet, and the rest of the changes are pretty incomplete,
but the general idea is to add another module parameter for a security
interface (at least for MAC, maybe use it for the DAC as well?).  I'd
certainly appreciate any feedback you have on this design.

Thanks!
James


--------------040401060002010307040206
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Ty=
pe">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    Hi David,<br>
    <br>
    On 09/09/2014 08:07 AM, David Scott wrote:<br>
    <blockquote
cite=3D"mid:CAG_esB0YyqPBQ35_S5GoVpa-kLZdYR9fQ_sgODZ1Qe8sDv1O9Q@mail.gmai=
l.com"
      type=3D"cite">
      <div dir=3D"ltr"><br>
        <div class=3D"gmail_extra">
          <div class=3D"gmail_quote">On Mon, Sep 8, 2014 at 11:23 PM,
            James Bielman <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"tru=
e"
                href=3D"mailto:jamesjb@galois.com" target=3D"_blank">jame=
sjb@galois.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"><br>
              After some time looking at the Irmin-based Xenstore, I
              have a few questions:<br>
              <br>
              - Is the repository at <a moz-do-not-send=3D"true"
                href=3D"https://github.com/mirage/ocaml-xenstore-server"
                target=3D"_blank">https://github.com/mirage/ocaml-xenstor=
e-server</a>
              the one I should be tracking, or is there a development
              repository?<br>
            </blockquote>
            <div><br>
            </div>
            <div>Yes, that's the latest one. Note it's not in a fully
              working state-- when integrating irmin I unhooked a bunch
              of stuff so that I could refactor the core more quickly.
              The following features are (temporarily) unhooked:</div>
            <div><br>
            </div>
            <div>- interdomain rings (unix domain socket still works)</di=
v>
            <div>- ACLs</div>
            <div>- watches</div>
            <div>- Xen kernel build</div>
            <div><br>
            </div>
            <div>Now that the irmin core is working it's probably time
              to start re-adding these.</div>
            <div><br>
            </div>
            <div>If you had complete freedom, what would your ideal
              interface be?</div>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I've been looking at this merge again this week and wondering if
    there are any updates on getting the XenStore security features
    hooked up in this repository.=C2=A0 I'd really like to get the MAC
    patches into shape to be considered for merging as soon as possible
    into whichever Mirage-based XenStore will likely be used by the
    community going forward.<br>
    <br>
    As for the interface, I have a first pass at something in this
    forked repository:<br>
    <br>
    =C2=A0 <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/=
GaloisInc/ocaml-xenstore-server">https://github.com/GaloisInc/ocaml-xenst=
ore-server</a><br>
    <br>
    Specifically, the 'server/security.mli' module.<br>
    <br>
    This isn't final yet, and the rest of the changes are pretty
    incomplete, but the general idea is to add another module parameter
    for a security interface (at least for MAC, maybe use it for the DAC
    as well?).=C2=A0 I'd certainly appreciate any feedback you have on th=
is
    design.<br>
    <br>
    Thanks!<br>
    James<br>
    <br>
  </body>
</html>

--------------040401060002010307040206--

--------------ms020102090600020103020209
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIFHjCC
BRowggQCoAMCAQICAgCQMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYDVQQI
EwJPUjERMA8GA1UEBxMIUG9ydGxhbmQxFTATBgNVBAoTDEdhbG9pcywgSW5jLjEYMBYGA1UE
AxMPR2Fsb2lzLCBJbmMuIENBMR0wGwYJKoZIhvcNAQkBFg5wa2lAZ2Fsb2lzLmNvbTAeFw0x
MjExMzAxODIyMTZaFw0yMjExMjgxODIyMTZaMH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJP
UjERMA8GA1UEBxMIUG9ydGxhbmQxDzANBgNVBAoTBkdhbG9pczEbMBkGA1UEAxQSamFtZXNq
YkBnYWxvaXMuY29tMSEwHwYJKoZIhvcNAQkBFhJqYW1lc2piQGdhbG9pcy5jb20wggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3CjRSouE3IxZdvyu+cbA4JmEebZYUNqTBKecP
uLZzsR5b2RPOMQ/hqDbd+NdpVAmu1K5wJEPrsp2FlCO0jA3QTnF4G7Aj2Jdx05wgEC1MYqre
/98z497vDbstnwnb9cAGjaBUR/AfDTZkFjc9x8fFzDAWiy0e4KJcgtthUH/zdAKd3GyuoK1U
5/VGsXmQA+J1Axmc9VaAgPXV5zWoJDNw3BE4VPVSMU8srG4258Cz4OVXAa/IXCBE/uJBpEOa
MPqsJiGCrFw+g8T88kU2h0OU+otoZV3z9GUl74gMUm/XyYq5s31ecvxqCf39CAqRv7IaJ2bL
khWcZUD35wMgdJy3AgMBAAGjggGhMIIBnTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE8DAdBgNV
HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEQYJYIZIAYb4QgEBBAQDAgWgMDAGCWCGSAGG
+EIBDQQjFiFHYWxvaXMsIEluYy4gRW1wbG95ZWUgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFHcR
qULmY2QjsD6LvPnmkW9S0CQ4MIGwBgNVHSMEgagwgaWAFCYG1nG5N3/5BUQanZu3waDVos9M
oYGBpH8wfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYDVQQHEwhQb3J0bGFuZDEV
MBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9HYWxvaXMsIEluYy4gQ0ExHTAbBgkq
hkiG9w0BCQEWDnBraUBnYWxvaXMuY29tggkA8XOKTTKW0VwwMQYDVR0fBCowKDAmoCSgIoYg
aHR0cDovL3d3dy5nYWxvaXMuY29tL2NhL2NybC5wZW0wGgYDVR0eBBMwEaAPMA2BCy5nYWxv
aXMuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCudvJHL+99usR+MO+8Ts2aifzgO915cCXEm6Bc
1xdMnwjYZyKTru2Zaq/2MHVcXgwkXRbtza9E/Bu52m9PqznwwE1LJ1YEhuLuztG+GyI3Ml+x
qVwhuy2dn9COdNrW/Zt0JeICJdhcJNbeO/mPB9fXvmht3ddbFnfgsEYJcliDFPXZ4dpLj/wz
dyQZ1GUfXKR0cQfArq713Vve1Cl/XyFsu7G13kYgTT3CbRDYf1m6+njvYG36I8WjYq42Hhe/
BhBTYg6hF/yvgm0QddVHLXQIPwKjxrshoXER38i88tKzq04czEuDlWB5OpyBY1Jajj4eQKso
OwfNYNZod9yL61S3MYIDqjCCA6YCAQEwgYMwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9S
MREwDwYDVQQHEwhQb3J0bGFuZDEVMBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9H
YWxvaXMsIEluYy4gQ0ExHTAbBgkqhkiG9w0BCQEWDnBraUBnYWxvaXMuY29tAgIAkDAJBgUr
DgMCGgUAoIIB+zAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x
NDEwMzExOTI0NTdaMCMGCSqGSIb3DQEJBDEWBBSsoNDxWPjN8dyKwa0esd9+oyS9UDBsBgkq
hkiG9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYI
KoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGU
BgkrBgEEAYI3EAQxgYYwgYMwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYDVQQH
EwhQb3J0bGFuZDEVMBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9HYWxvaXMsIElu
Yy4gQ0ExHTAbBgkqhkiG9w0BCQEWDnBraUBnYWxvaXMuY29tAgIAkDCBlgYLKoZIhvcNAQkQ
AgsxgYaggYMwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYDVQQHEwhQb3J0bGFu
ZDEVMBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9HYWxvaXMsIEluYy4gQ0ExHTAb
BgkqhkiG9w0BCQEWDnBraUBnYWxvaXMuY29tAgIAkDANBgkqhkiG9w0BAQEFAASCAQBQYYHG
lYNGDq0MKVcsTFf1DC38cGEXopKhSTMuk6Vu25ERLiQV1uKjiHPNDt2FUh9HfbAR0A8Xxve6
3E6j6/ObgEEQCS8i1zE9aqWK/WcC6jAaZD37Ynj6GZNeXO22NXGwNfQpG82xbGDWFMD61sgV
do2MxBNM5JLfXcHewUqQsnSqidCxpKXAU/nXrjni9SolNYoc7HeX/9oqTrrm3h/7Bpxqp/dt
vCEV5S0/pziTpCq1ysoi76glETBdJB4CiIrRFUYGVs5cWwWUWTRA5qfvcukqKjcHiId3xnBD
uw54rfifBj/jyqmbXnD6VQcoI2bYjWUuFKULADie8aFMFH+lAAAAAAAA
--------------ms020102090600020103020209--


--===============6760736645697436434==
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

--===============6760736645697436434==--


From mirageos-devel-bounces@lists.xenproject.org Fri Oct 31 19:25:13 2014
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 31 Oct 2014 19:25: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 1XkHoq-0007kS-O8; Fri, 31 Oct 2014 19:25:08 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <jamesjb@galois.com>) id 1XkHop-0007kN-6O
	for mirageos-devel@lists.xenproject.org; Fri, 31 Oct 2014 19:25:07 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	42/F9-14214-212E3545; Fri, 31 Oct 2014 19:25:06 +0000
X-Env-Sender: jamesjb@galois.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1414783503!12984130!1
X-Originating-IP: [66.193.37.198]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_40_50,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.3; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17754 invoked from network); 31 Oct 2014 19:25:05 -0000
Received: from quintic.galois.com (HELO mail.galois.com) (66.193.37.198)
	by server-8.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 31 Oct 2014 19:25:05 -0000
Received: from hurricane.galois.com (hurricane.galois.com
	[IPv6:2001:4870:e08e:200:5054:ff:fefa:ce41])
	by mail.galois.com (8.14.4/8.14.4) with ESMTP id s9VJOvBQ006629
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256
	verify=OK); Fri, 31 Oct 2014 12:25:01 -0700
Received: from [IPv6:2001:4870:e08e:201:81cf:9394:47f2:8312]
	([IPv6:2001:4870:e08e:201:81cf:9394:47f2:8312])
	(authenticated bits=0)
	by hurricane.galois.com (8.14.4/8.14.4) with ESMTP id s9VJOvWJ010841
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Fri, 31 Oct 2014 12:24:57 -0700
Message-ID: <5453E209.50800@galois.com>
Date: Fri, 31 Oct 2014 12:24:57 -0700
From: James Bielman <jamesjb@galois.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Thunderbird/31.1.2
MIME-Version: 1.0
To: David Scott <scott.dj@gmail.com>
References: <540E2C77.6050007@galois.com>
	<CAG_esB0YyqPBQ35_S5GoVpa-kLZdYR9fQ_sgODZ1Qe8sDv1O9Q@mail.gmail.com>
In-Reply-To: <CAG_esB0YyqPBQ35_S5GoVpa-kLZdYR9fQ_sgODZ1Qe8sDv1O9Q@mail.gmail.com>
X-Spam-Status: No, score=-1.1 required=4.5 tests=BAYES_00,HTML_MESSAGE,
	RP_MATCHES_RCVD shortcircuit=no autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on quintic.galois.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Merging XenStore+MAC
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="===============6760736645697436434=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a cryptographically signed message in MIME format.

--===============6760736645697436434==
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms020102090600020103020209"

This is a cryptographically signed message in MIME format.

--------------ms020102090600020103020209
Content-Type: multipart/alternative;
 boundary="------------040401060002010307040206"

This is a multi-part message in MIME format.
--------------040401060002010307040206
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi David,

On 09/09/2014 08:07 AM, David Scott wrote:
>
> On Mon, Sep 8, 2014 at 11:23 PM, James Bielman <jamesjb@galois.com
> <mailto:jamesjb@galois.com>> wrote:
>
>
>     After some time looking at the Irmin-based Xenstore, I have a few
>     questions:
>
>     - Is the repository at
>     https://github.com/mirage/ocaml-xenstore-server the one I should
>     be tracking, or is there a development repository?
>
>
> Yes, that's the latest one. Note it's not in a fully working state--
> when integrating irmin I unhooked a bunch of stuff so that I could
> refactor the core more quickly. The following features are
> (temporarily) unhooked:
>
> - interdomain rings (unix domain socket still works)
> - ACLs
> - watches
> - Xen kernel build
>
> Now that the irmin core is working it's probably time to start
> re-adding these.
>
> If you had complete freedom, what would your ideal interface be?
>

I've been looking at this merge again this week and wondering if there
are any updates on getting the XenStore security features hooked up in
this repository.  I'd really like to get the MAC patches into shape to
be considered for merging as soon as possible into whichever
Mirage-based XenStore will likely be used by the community going forward.=


As for the interface, I have a first pass at something in this forked
repository:

  https://github.com/GaloisInc/ocaml-xenstore-server

Specifically, the 'server/security.mli' module.

This isn't final yet, and the rest of the changes are pretty incomplete,
but the general idea is to add another module parameter for a security
interface (at least for MAC, maybe use it for the DAC as well?).  I'd
certainly appreciate any feedback you have on this design.

Thanks!
James


--------------040401060002010307040206
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Ty=
pe">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    Hi David,<br>
    <br>
    On 09/09/2014 08:07 AM, David Scott wrote:<br>
    <blockquote
cite=3D"mid:CAG_esB0YyqPBQ35_S5GoVpa-kLZdYR9fQ_sgODZ1Qe8sDv1O9Q@mail.gmai=
l.com"
      type=3D"cite">
      <div dir=3D"ltr"><br>
        <div class=3D"gmail_extra">
          <div class=3D"gmail_quote">On Mon, Sep 8, 2014 at 11:23 PM,
            James Bielman <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"tru=
e"
                href=3D"mailto:jamesjb@galois.com" target=3D"_blank">jame=
sjb@galois.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"><br>
              After some time looking at the Irmin-based Xenstore, I
              have a few questions:<br>
              <br>
              - Is the repository at <a moz-do-not-send=3D"true"
                href=3D"https://github.com/mirage/ocaml-xenstore-server"
                target=3D"_blank">https://github.com/mirage/ocaml-xenstor=
e-server</a>
              the one I should be tracking, or is there a development
              repository?<br>
            </blockquote>
            <div><br>
            </div>
            <div>Yes, that's the latest one. Note it's not in a fully
              working state-- when integrating irmin I unhooked a bunch
              of stuff so that I could refactor the core more quickly.
              The following features are (temporarily) unhooked:</div>
            <div><br>
            </div>
            <div>- interdomain rings (unix domain socket still works)</di=
v>
            <div>- ACLs</div>
            <div>- watches</div>
            <div>- Xen kernel build</div>
            <div><br>
            </div>
            <div>Now that the irmin core is working it's probably time
              to start re-adding these.</div>
            <div><br>
            </div>
            <div>If you had complete freedom, what would your ideal
              interface be?</div>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I've been looking at this merge again this week and wondering if
    there are any updates on getting the XenStore security features
    hooked up in this repository.=C2=A0 I'd really like to get the MAC
    patches into shape to be considered for merging as soon as possible
    into whichever Mirage-based XenStore will likely be used by the
    community going forward.<br>
    <br>
    As for the interface, I have a first pass at something in this
    forked repository:<br>
    <br>
    =C2=A0 <a class=3D"moz-txt-link-freetext" href=3D"https://github.com/=
GaloisInc/ocaml-xenstore-server">https://github.com/GaloisInc/ocaml-xenst=
ore-server</a><br>
    <br>
    Specifically, the 'server/security.mli' module.<br>
    <br>
    This isn't final yet, and the rest of the changes are pretty
    incomplete, but the general idea is to add another module parameter
    for a security interface (at least for MAC, maybe use it for the DAC
    as well?).=C2=A0 I'd certainly appreciate any feedback you have on th=
is
    design.<br>
    <br>
    Thanks!<br>
    James<br>
    <br>
  </body>
</html>

--------------040401060002010307040206--

--------------ms020102090600020103020209
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIFHjCC
BRowggQCoAMCAQICAgCQMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYDVQQI
EwJPUjERMA8GA1UEBxMIUG9ydGxhbmQxFTATBgNVBAoTDEdhbG9pcywgSW5jLjEYMBYGA1UE
AxMPR2Fsb2lzLCBJbmMuIENBMR0wGwYJKoZIhvcNAQkBFg5wa2lAZ2Fsb2lzLmNvbTAeFw0x
MjExMzAxODIyMTZaFw0yMjExMjgxODIyMTZaMH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJP
UjERMA8GA1UEBxMIUG9ydGxhbmQxDzANBgNVBAoTBkdhbG9pczEbMBkGA1UEAxQSamFtZXNq
YkBnYWxvaXMuY29tMSEwHwYJKoZIhvcNAQkBFhJqYW1lc2piQGdhbG9pcy5jb20wggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3CjRSouE3IxZdvyu+cbA4JmEebZYUNqTBKecP
uLZzsR5b2RPOMQ/hqDbd+NdpVAmu1K5wJEPrsp2FlCO0jA3QTnF4G7Aj2Jdx05wgEC1MYqre
/98z497vDbstnwnb9cAGjaBUR/AfDTZkFjc9x8fFzDAWiy0e4KJcgtthUH/zdAKd3GyuoK1U
5/VGsXmQA+J1Axmc9VaAgPXV5zWoJDNw3BE4VPVSMU8srG4258Cz4OVXAa/IXCBE/uJBpEOa
MPqsJiGCrFw+g8T88kU2h0OU+otoZV3z9GUl74gMUm/XyYq5s31ecvxqCf39CAqRv7IaJ2bL
khWcZUD35wMgdJy3AgMBAAGjggGhMIIBnTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE8DAdBgNV
HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEQYJYIZIAYb4QgEBBAQDAgWgMDAGCWCGSAGG
+EIBDQQjFiFHYWxvaXMsIEluYy4gRW1wbG95ZWUgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFHcR
qULmY2QjsD6LvPnmkW9S0CQ4MIGwBgNVHSMEgagwgaWAFCYG1nG5N3/5BUQanZu3waDVos9M
oYGBpH8wfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYDVQQHEwhQb3J0bGFuZDEV
MBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9HYWxvaXMsIEluYy4gQ0ExHTAbBgkq
hkiG9w0BCQEWDnBraUBnYWxvaXMuY29tggkA8XOKTTKW0VwwMQYDVR0fBCowKDAmoCSgIoYg
aHR0cDovL3d3dy5nYWxvaXMuY29tL2NhL2NybC5wZW0wGgYDVR0eBBMwEaAPMA2BCy5nYWxv
aXMuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCudvJHL+99usR+MO+8Ts2aifzgO915cCXEm6Bc
1xdMnwjYZyKTru2Zaq/2MHVcXgwkXRbtza9E/Bu52m9PqznwwE1LJ1YEhuLuztG+GyI3Ml+x
qVwhuy2dn9COdNrW/Zt0JeICJdhcJNbeO/mPB9fXvmht3ddbFnfgsEYJcliDFPXZ4dpLj/wz
dyQZ1GUfXKR0cQfArq713Vve1Cl/XyFsu7G13kYgTT3CbRDYf1m6+njvYG36I8WjYq42Hhe/
BhBTYg6hF/yvgm0QddVHLXQIPwKjxrshoXER38i88tKzq04czEuDlWB5OpyBY1Jajj4eQKso
OwfNYNZod9yL61S3MYIDqjCCA6YCAQEwgYMwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9S
MREwDwYDVQQHEwhQb3J0bGFuZDEVMBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9H
YWxvaXMsIEluYy4gQ0ExHTAbBgkqhkiG9w0BCQEWDnBraUBnYWxvaXMuY29tAgIAkDAJBgUr
DgMCGgUAoIIB+zAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x
NDEwMzExOTI0NTdaMCMGCSqGSIb3DQEJBDEWBBSsoNDxWPjN8dyKwa0esd9+oyS9UDBsBgkq
hkiG9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYI
KoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGU
BgkrBgEEAYI3EAQxgYYwgYMwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYDVQQH
EwhQb3J0bGFuZDEVMBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9HYWxvaXMsIElu
Yy4gQ0ExHTAbBgkqhkiG9w0BCQEWDnBraUBnYWxvaXMuY29tAgIAkDCBlgYLKoZIhvcNAQkQ
AgsxgYaggYMwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYDVQQHEwhQb3J0bGFu
ZDEVMBMGA1UEChMMR2Fsb2lzLCBJbmMuMRgwFgYDVQQDEw9HYWxvaXMsIEluYy4gQ0ExHTAb
BgkqhkiG9w0BCQEWDnBraUBnYWxvaXMuY29tAgIAkDANBgkqhkiG9w0BAQEFAASCAQBQYYHG
lYNGDq0MKVcsTFf1DC38cGEXopKhSTMuk6Vu25ERLiQV1uKjiHPNDt2FUh9HfbAR0A8Xxve6
3E6j6/ObgEEQCS8i1zE9aqWK/WcC6jAaZD37Ynj6GZNeXO22NXGwNfQpG82xbGDWFMD61sgV
do2MxBNM5JLfXcHewUqQsnSqidCxpKXAU/nXrjni9SolNYoc7HeX/9oqTrrm3h/7Bpxqp/dt
vCEV5S0/pziTpCq1ysoi76glETBdJB4CiIrRFUYGVs5cWwWUWTRA5qfvcukqKjcHiId3xnBD
uw54rfifBj/jyqmbXnD6VQcoI2bYjWUuFKULADie8aFMFH+lAAAAAAAA
--------------ms020102090600020103020209--


--===============6760736645697436434==
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

--===============6760736645697436434==--


