From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Cook, Malcolm" Subject: RE: Making the case for GNU Guix ... advice sought Date: Thu, 18 Feb 2016 23:29:49 +0000 Message-ID: <3125026547a945d28d1b32f57594c4d7@exchsrv2.sgc.loc> References: <953f16876af34ea59b526b7f35482e72@exchsrv2.sgc.loc> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37911) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aWY1D-0002iq-3X for guix-devel@gnu.org; Thu, 18 Feb 2016 18:29:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aWY19-0001EJ-NJ for guix-devel@gnu.org; Thu, 18 Feb 2016 18:29:55 -0500 Received: from smtp02.stowers.org ([40.141.174.62]:42875) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aWY19-0001E3-Da for guix-devel@gnu.org; Thu, 18 Feb 2016 18:29:51 -0500 In-Reply-To: Content-Language: en-US List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: 'Ricardo Wurmus' Cc: "guix-devel@gnu.org" , "'bio-packaging@mailman.open-bio.org'" SGkgUmljYXJkbywNCg0KR3JlYXQgc3BlY2lmaWNzLiAgSWYgeW91IGNhbiBoZWxwIG1lIHNvbHZl IGEgZmV3IG9mIG15IHJlbWFpbmluZyBxdWVzdGlvbnMsIGluLWxpbmUgYmVsb3csIEknZCBiZSBt dWNoIG9ibGlnZWQuLi4uDQoNCj4gQ29vaywgTWFsY29sbSA8TUVDQHN0b3dlcnMub3JnPiB3cml0 ZXM6DQogPiANCiA+ID4gSSBoYXZlIGJlZW4gYXNrZWQgdG8gd3JpdGUgdXAgYW4gYXJndW1lbnQg Zm9yIHRoZSBhZHZhbnRhZ2VzIHRoYXQgR05VDQogPiA+IEd1aXggY29uZmVycyBmb3IgZGVwbG95 aW5nIGxpbnV4IHNvZnR3YXJlLCBlc3BlY2lhbGx5IHNjaWVudGlmaWMNCiA+ID4gY29tcHV0aW5n IGFuZCBpbmNsdWRpbmcgYmlvaW5mb3JtYXRpY3Mgc29mdHdhcmUuDQogPiA+DQogPiA+IFRvIHRo YXQgZW5kIEkgaGF2ZSB3cml0dGVuIHVwIHRoaXMgZG9jdW1lbnQNCiA+ID4NCiA+ID4gCWh0dHBz Oi8vZ2l0aHViLmNvbS9tYWxjb29rL3NjZS9ibG9iL21hc3Rlci9NYWtpbmdUaGVDYXNlLm9yZw0K ID4gDQogPiBOaWNlIQ0KDQpUaGFua3MuICBJIGhvcGUgaXQgaGVscHMgZmVsbG93LXRyYXZlbGVy cyBsYXRlci4uLg0KDQogPiBIZXJl4oCZcyBhIGZpcnN0IGNvcnJlY3Rpb24gZm9yIGEgbWlzdGFr ZSB0aGF0IEnigJltIHJlc3BvbnNpYmxlIGZvcjogdGhlDQogPiBudW1iZXIgb2YgYmlvaW5mbyBw YWNrYWdlcyBpcyBhY3R1YWxseSBjbG9zZXIgdG8gMTE0IChub3QgNTQpLiAgR3VpeCB3ZWINCiA+ IHdhcyBtaXNjb25maWd1cmVkIG9uIHRoYXQgaG9zdCBhbmQgaXQgd291bGQgc2hvdyB0aGUgc3Rh dHVzIG9mIGEgdmVyeSwNCiA+IHZlcnkgb3V0ZGF0ZWQgdmVyc2lvbiBvZiBHdWl4IHJhdGhlciB0 aGFuIHRoZSBsYXRlc3QgYW5kIGdyZWF0ZXN0Lg0KID4gDQogPiAoTm90ZSB0aGF0IGEgdmVyeSBz bWFsbCBudW1iZXIgb2YgdGhlIHBhY2thZ2VzIGxpc3RlZCB0aGVyZSBhcmUgcmVsZWFzZWQNCiA+ IHVuZGVyIHJlc3RyaWN0aXZlIOKAnGFjYWRlbWljIG9ubHnigJ0gbGljZW5zZXMgb3IgaGF2ZSB1 bmRlY2xhcmVkIGxpY2Vuc2VzOw0KID4gdGhlIGxpY2Vuc2UgZmllbGQgc2F5cyDigJxub24tZnJl ZeKAnSBvciDigJx1bmRlY2xhcmVk4oCdLiAgSGF2aW5nIHRoZW0gb24gdGhpcw0KID4gcGFnZSBk b2VzIG5vdCBtZWFuIEkgZW5kb3JzZSB0aGUgdXNlIG9mIHRoZXNlIHRvb2xzIGFuZCB1c2VycyBz aG91bGQgYmUNCiA+IGNhcmVmdWwgdG8gY2hlY2sgdGhlIGxpY2Vuc2UuKQ0KID4gDQogPiA+IEkg aGF2ZSBzb21lIG5vdGVzIGNvbnRyYXN0aW5nIEdOVSBHdWl4IHdpdGggb3RoZXIgc2ltaWxhci9y ZWxhdGVkDQogPiA+IHRvb2wtc2V0cyAobW9kdWxlcywgbG1vZCwgaG9tZWJyZXcsIHNwYWNrLCBl YXN5QnVpbGQsIHJvbGxpbmcgcnBtcyksDQogPiA+IGFzIHdlbGwgYXMgb3VyIGN1cnJlbnQgcHJh Y3RpY2VzIChzb3J0IG9mIGh5YnJpZCBvZiBycG1zLCBiYXN0YXJkIHNvbg0KID4gPiBvZiBob21l YnJldywgYW5kICJqdXN0IHdlZGdlIGl0IGluIHRoZXJlIikuICBIb3dldmVyIEkgYW0gbm90IG5v dw0KID4gPiBpbnRlbnQgdXBvbiBzZXR0aW5nIHVwIHN1Y2ggYSBjb250cmFzdCwgcmF0aGVyLCBJ IGhvcGUgdG8gZm9jdXMgb24gdGhlDQogPiA+IGFkdmFudGFnZXMgb2YgR05VIEd1aXggaW4gZ2Vu ZXJhbC4NCiA+IA0KID4gSeKAmWQgYWxzbyBsaWtlIHRvIHBvaW50IHlvdSBhdCBodHRwczovL2hh bC5pbnJpYS5mci9oYWwtMDExNjE3NzEvZW4sIGluDQogPiBjYXNlIHlvdSBoYXZlbuKAmXQgcmVh ZCBpdCB5ZXQuICBJdCBpbmNsdWRlcyBhIHZlcnkgZ2VuZXJhbCBjb21wYXJpc29uDQogPiB3aXRo IHRvb2xzIGxpa2UgZW52aXJvbm1lbnQgbW9kdWxlcywgc3BhY2ssIGFuZCBlYXN5QnVpbGQgd2l0 aCBhIGZvY3VzDQogPiBvbiByZXByb2R1Y2liaWxpdHkuDQoNCkV4Y2VsbGVudCAtIHRoYW5rcyAt IG5pY2Ugd3JpdGUtdXAgLSBJJ2Qgc29tZWhvdyBtaXNzZWQgdGhhdCBlYXJsaWVyLg0KIA0KID4g PiArIEd1aXggZGV0ZWN0cyBhbmQgcHJvaGliaXRzIHByb2dyYW0gbmFtZSBjb2xsaXNpb25zOyBs b2FkaW5nDQogPiA+ICAgY29uZmxpY3RpbmcgcGFja2FnZXMgaW50byBhIHVzZXJzIGVudmlyb25t ZW50IGlzIF9pbXBvc3NpYmxlXy4gIEZvcg0KID4gPiAgIGV4YW1wbGUsIHRoaXMgcHJldmVudHMg dGhlIGFtYmlndWl0eSBhbmQgYXNzb2NpYXRlZCBlcnJvciB0aGF0IGNhbg0KID4gPiAgIGFyaXNl IHdoZW4gdHdvIHBhY2thZ2VzIGRlZmluZSBkaWZmZXJlbnQgcHJvZ3JhbXMgYnkgdGhlIHNhbWUg bmFtZQ0KID4gPiAgIGFuZCBib3RoIGFyZSBwbGFjZWQgaW4gdGhlIHVzZXIncyBleGVjdXRpb24g UEFUSC4NCiA+IA0KID4gV2VsbC4uLiBJIGRvbuKAmXQga25vdyBpZiB0aGlzIGlzIHdvcnRoIHBv aW50aW5nIG91dC4gIEd1aXggZG9lcyBkZXRlY3QNCiA+IGNvbGxpc2lvbnMgYnV0IGl0IGRvZXNu 4oCZdCBkbyBhbnl0aGluZyBpbnRlbGxpZ2VudCBoZXJlLCBtYXliZSBiZWNhdXNlDQogPiB0aGVy ZSBpc27igJl0IG11Y2ggdGhhdCBjYW4gYmUgZG9uZSB3aGVuIGEgY29sbGlzaW9uIGhhcHBlbnMu ICBZb3UgbWVudGlvbg0KID4gc3VwcG9ydCBmb3IgbXVsdGlwbGUgcHJvZmlsZXMgbGF0ZXIsIGFu ZCBJIHRoaW5rIHRoYXQgbWF5YmUgdGhpcyBjb3VsZA0KID4gYmUgbWVyZ2VkLiAgSSBmb3VuZCBj b2xsaXNpb24gZGV0ZWN0aW9uIHRvIGJlIG5vdCBzbyB1c2VmdWwgYmVjYXVzZSBpdA0KID4gaGFw cGVucyAqZHVyaW5nKiBwcm9maWxlIGdlbmVyYXRpb24sIG5vdCAqYmVmb3JlKiBJIGNvbW1pdCB0 byBpbnN0YWxsaW5nDQogPiBhIHBhY2thZ2UuDQogPiA+ICsgR3VpeCBwYWNrYWdlcyBuYXR1cmFs bHkgZXh0ZW5kIHRvIGluY2x1ZGUgYWxsIHBhY2thZ2UgcmVzb3VyY2VzLA0KID4gPiAgIGluY2x1 ZGluZyBtYW4gcGFnZXMsIGxpYnJhcmllcywgYXMgd2VsbCBhcyBiaW5hcmllcy4gIFRoaXMgaXMg YQ0KID4gPiAgIHJlc3VsdCBvZiB0aGVpciB1c2luZyB0aGUgdW5kZXJseWluZyBidWlsZCBlbmdp bmUncyAoaS5lLiBnbnUgbWFrZSkNCiA+ID4gICBpbnN0YWxsYXRpb24gdGFyZ2V0cy4NCiA+IA0K ID4gSXMgdGhlcmUgYW55IHBhY2thZ2UgbWFuYWdlciB0aGF0IGRvZXMgbm90IGhhbmRsZSB0aGlz Pw0KDQpBbGFzLCBJIGhhdmUgaW5oZXJpdGVkIGEgaG9tZWJyZXcgdmFyaWFudCB0aGF0IGlzIGlu Y2FwYWNpdGF0ZWQgaW4gdGhpcyByZWdhcmQuLi4uIGJ1dCwgZW5vdWdoIG9mIHRoYXQhDQoNCj4g PiArIEd1aXggcGFja2FnZXMsIGJlaW5nIGluZGVwZW5kZW50IG9mIGhvc3Qgb24gd2hpY2ggdGhl eSBhcmUgYnVpbHQsDQogPiA+ICAgY2FuIGJlIGRvd25sb2FkZWQgYWxyZWFkeSBidWlsdCBieSB1 cHN0cmVhbSBzZXJ2ZXJzIGtub3duIGFzDQogPiA+DQogPiBbW2h0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpeC9tYW51YWwvaHRtbF9ub2RlL1N1YnN0aXR1dGVzLmh0bWwjU3UNCiA+IGJz dGl0dXRlc11bc3Vic3RpdHVlc11dLCB3aXRoIHRoZSBhc3N1cmFuY2Ugb2YgdGhlaXIgYmVpbmcg Yml0LWxldmVsIGlkZW50aWNhbA0KID4gPiAgIHRvIHRoZSByZXN1bHRzIG9mIHRoZSBnZW5lcmFs bHkgbG9uZ2VyIHByb2Nlc3Mgb2YgY29uZmlndXJhdGlvbiBhbmQNCiA+ID4gICBjb21waWxhdGlv biBvbiBsb2NhbCBzZXJ2ZXJzLg0KID4gDQogPiBCdWlsZGluZyBwYWNrYWdlcyBpbiBpc29sYXRl ZCBlbnZpcm9ubWVudHMgaXMgYSBuZWNlc3NhcnkgcmVxdWlyZW1lbnQNCiA+IGZvciBiaXQtcmVw cm9kdWNpYmlsaXR5LCBidXQgaXQgaXMgbm90IHN1ZmZpY2llbnQgaW4gaXRzZWxmLiAgVG8gc3Bl YWsNCiA+IG9mIOKAnGFzc3VyYW5jZeKAnSBpcyBtYXliZSBhIGJpdCBzdHJvbmcuDQogPiANCiA+ ID4gKyBHdWl4IHBhY2thZ2VzLCB0aG91Z2ggZGVwZW5kZW50IHVwb24gdGhlIG1hY2hpbmUgYXJj aGl0ZWN0dXJlLCBhcmUNCiA+ID4gICBpbmRlcGVuZGVudCBvbiB0aGUgbGludXggZGlzdHJpYnV0 aW9uLCBvciBpdHMgdmVyc2lvbi4gIFRodXMsIGZvcg0KID4gPiAgIGV4YW1wbGUsIHBhY2thZ2Vz IGJ1aWx0IHVuZGVyIENlbnRPUyA2LjUgb24geDg2XzY0IHdpbGwgcnVuIHVuZGVyDQogPiA+ICAg b3BlcmF0aW5nIHN5c3RlbSBvbiB4ODZfNjQsIGZvciBleGFtcGxlLCBDZW50T1MgNy54IGFuZCBv ciBVYnVudHUNCiA+ID4gICAxNS4xMCBvciAxNC4wNC4NCiA+IA0KID4gVGhpcyBpcyB0cnVlIGFu ZCBpdOKAmXMgYSBncmVhdCBmZWF0dXJlLiAgV2XigJlyZSB1c2luZyB0aGUgdmVyeSBzYW1lIEd1 aXgNCiA+IHN0b3JlIG9uIHZhcmlvdXMgc3VidmVyc2lvbnMgb2YgQ2VudE9TIDYueCwgYSB3aWRl IHJhbmdlIG9mIFVidW50dXMsIGFuZA0KID4gRmVkb3JhLiAg4oCcTGludXggZGlzdHJpYnV0aW9u 4oCdIGlzIGNvbmZ1c2luZywgdGhvdWdoLiAgSeKAmWQgd3JpdGUNCiA+IOKAnEdOVS9MaW51eCBk aXN0cmlidXRpb27igJ0uICBUaGVyZSAqYXJlKiBzb21lIGtlcm5lbCByZXF1aXJlbWVudHMsIHNv IHRoZQ0KID4gdmVyc2lvbiBvZiBMaW51eCBpdHNlbGYgKGkuZS4gdGhlIGtlcm5lbCB2ZXJzaW9u KSBkb2VzIG1hdHRlciB1cCB0byBhDQogPiBwb2ludCBmb3Igc29tZSBvZiB0aGUgYWR2YW5jZWQg ZmVhdHVyZXMgb2YgR3VpeCAoc3VjaCBhcyBjb250YWluZXINCiA+IHN1cHBvcnQpLg0KID4gDQog PiA+ICsgR3VpeCBhbGxvd3MgZm9yIHVucHJpdmlsZWdlZCBwYWNrYWdlIG1hbmFnZW1lbnQ7IHVz ZXJzIGRvIG5vdCBuZWVkDQogPiA+ICAgc3BlY2lhbCBlbGV2YXRlZCBwcml2aWxlZ2VzIChyb290 IG9yIHN1ZG8pIHRvIGNyZWF0ZSBjdXN0b20NCiA+ID4gICBlbnZpcm9ubWVudCBwcm9maWxlcy4g IEVzcGVjaWFsbHkgbm90ZXdvcnRoeSBpcyB0aGF0IHRoaXMgYWxsb3dzDQogPiA+ICAgZm9yIHJh dGlvbmFsbHkgc2hhcmluZyBwYWNrYWdlIG1hbmFnZW1lbnQgYXMgYSBkaXN0cmlidXRlZA0KID4g PiAgIHJlc3BvbnNpYmlsaXR5LiAgVGhpcyBpbmNsdWRlcyBpbnN0YWxsaW5nIG5ldyBzaXRlLWF2 YWlsYWJsZQ0KID4gPiAgIGFwcGxpY2F0aW9ucyAoZm9yIHRob3NlIGF2YWlsYWJsZSBpbiB0aGUg Z3VpeCByZXBvc2l0b3JpZXMpLiAgVGh1cywNCiA+ID4gICBpZiBvbmUgdXNlciBvYnNlcnZlcyB0 aGF0IGEgbmV3IHJlbGVhc2Ugb2YgYSBzaXRlLWluc3RhbGxlZA0KID4gPiAgIGFwcGxpY2F0aW9u IGhhcyBiZWNvbWUgYXZhaWxhYmxlLCB0aGF0IHVzZXIgY2FuIHNhZmVseSBpbnN0YWxsIHRoZQ0K ID4gPiAgIHVwZ3JhZGUgY2VudHJhbGx5IGFuZCBpbW1lZGlhdGVseSBzdGFydCB1c2luZyBpdCwg d2l0aG91dCBlZmZlY3RpbmcNCiA+ICAgICAgICAgICAgIF7igJTigJQgd2hhdCBkb2VzIHRoaXMg bWVhbj8gIEF0IHRoZSBjZW50cmUgb2YgLi4uIHdoYXQ/DQogPiANCiA+ID4gICBhbnkgb3RoZXIg dXNlcidzIGVudmlyb25tZW50OyB3aXRob3V0IGFueSBmdXJ0aGVyIGNvb3JkaW5hdGlvbiwNCiA+ ID4gICB3aGVuIGFub3RoZXIgdXNlciBfaXNfIHJlYWR5IHRvIGFkb3B0IHRoZSB1cGdyYWRlLCB0 aGV5IHdpbGwgZmluZA0KID4gPiAgIHRoYXQgaW5zdGFsbGF0aW9uIGlzIHVubmVjZXNzYXJ5LCBh cyBpdCBoYXMgYWxyZWFkeSBvY2N1cnJlZC4NCiA+IA0KID4gSSB3b3VsZCBjbGVhcmx5IHNlcGFy YXRlIGJ1aWxkaW5nIGFuZCBpbnN0YWxsaW5nLiAgSW5zdGFsbGF0aW9uIGlzIHRoZQ0KID4gYWN0 IG9mIGNyZWF0aW5nIGEgbmV3IHByb2ZpbGUgZ2VuZXJhdGlvbiB0aGF0IGNvbnRhaW5zIGEgbGlu ayB0byBhDQogPiBwcmV2aW91c2x5IGJ1aWx0IChvciBzdWJzdGl0dXRlZCkgaXRlbSBpbiB0aGUg c3RvcmUuICBCdWlsZGluZyAob3INCiA+IHN1YnN0aXR1dGluZykgaXMgd2hhdCBoYXBwZW5zIG9u bHkgb25jZSBiZWNhdXNlIG9mIHRoZSBwdXJlbHkgZnVuY3Rpb25hbA0KID4gcHJvcGVydGllcyBv ZiB0aGUgR3VpeCBwYWNrYWdlIOKAnGZ1bmN0aW9uc+KAnS4NCiA+IA0KID4gPiArIEd1aXggcHJv dmlkZXMgYSBzZXQgb2YNCiA+IFtbaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWl4L21h bnVhbC9ndWl4Lmh0bWwjQnVpbGQtU3lzdGVtc11bYnVpbGQNCiA+IHN5c3RlbXNdXSBwcm92aWRp bmcgc3VwcG9ydCBmb3IgbGFuZ3VhZ2UNCiA+ID4gICBzcGVjaWZpYyBwYWNrYWdlIG1hbmFnZW1l bnQgc3lzdGVtcywgaW5jbHVkaW5nIFIsIHBlcmwsIHB5dGhvbiwNCiA+ID4gICBydWJ5LCBoYXNr ZWxsLCBhbmQgZW1hY3MuICBUaGlzIHNob3VsZCBhbGxvdyBhIHNpbmdsZSBhcHByb2FjaCBmb3IN CiA+ID4gICBtYW5hZ2luZyBjb21wdXRpbmcgZW52aXJvbm1lbnRzIGZvciBlYWNoIG9mIHRoZXNl IGxhbmd1YWdlcy90b29scywNCiA+ID4gICBhcyBvcHBvc2VkIHRvIG5lZWRpbmcgdG8gbWFzdGVy IHRoZSBpZGVvc3luY3JhY2llcyBvZiBtdWx0aXBsZQ0KID4gPiAgIGFwcHJvYWNoZXMsIGkuZS4g cGVybGJyZXcgZm9yIHBlcmwsIHB5ZW52IG9yIHB5dGhvbmJyZXcgZm9yIHB5dGhvbiwNCiA+ID4g ICByYmVudiBmb3IgcnVieSwgZXRjLg0KID4gDQogPiBCdWlsZCBzeXN0ZW1zIGFyZSB1bnJlbGF0 ZWQgdG8g4oCcZ3VpeCBlbnZpcm9ubWVudOKAnSBvciDigJxyYmVuduKAnSwNCiA+IOKAnHZpcnR1 YWxlbnbigJ0gYW5kIHRoZSBsaWtlLiAgQSBidWlsZCBzeXN0ZW0gaXMganVzdCBhIGdlbmVyYWxp c2F0aW9uIG9mDQogPiB0aGUgc3RlcHMgdGhhdCBuZWVkIHRvIHBlcmZvcm1lZCB0byBidWlsZCBz b21ldGhpbmcuICBGb3IgR05VLXN0eWxlDQogPiBwYWNrYWdlcyB0aGF04oCZcw0KID4gDQogPiAg ICAgLi9jb25maWd1cmUgLS1wcmVmaXg9L3NvbWV0aGluZyAmJiBtYWtlICYmIG1ha2UgaW5zdGFs bA0KID4gDQogPiBmb3IgUHl0aG9uIGl04oCZcyBzb21ldGhpbmcgbGlrZQ0KID4gDQogPiAgICAg cHl0aG9uIHNldHVwLnB5IGluc3RhbGwNCiA+IA0KPiBldGMuICBUaGUgYnVpbGQgc3lzdGVtcyBt YWtlICpwYWNrYWdpbmcqIGVhc2llciBhcyB3ZSBubyBsb25nZXIgbmVlZCB0bw0KID4gZXhwcmVz cyB0aGUgYnVpbGQgcHJvY2VkdXJlIGZvciBSIHBhY2thZ2VzIGluIHRlcm1zIG9mIHRoZSBHTlUg YnVpbGQNCiA+IHN5c3RlbSAod2hpY2ggd291bGQgYmUgaW5hcHByb3ByaWF0ZSkuICANCg0KWWVz LiAgQWdyZWVkLiAgSG93ZXZlciwgbXkgZW1waGFzaXMgaGVyZSB3YXMgaW50ZW5kZWQgdG8gYmUg dGhhdCBHdWl4IGNhbiBiZSB1c2VkIHRvIG9idmlhdGUgdGhlIG5lZWQgZm9yIHJiZW52LCB2aXJ0 dWFsZW52LCBhbmQgZnJpZW5kcy4gICAgSSB0aG91Z2h0IHRoYXQgYGd1aXggZW52aXJvbm1lbnRg IHdhcyBnb2luZyB0byBiZSBhbiBlZmZlY3RpdmUgcmVwbGFjZW1lbnQgZm9yIHRoZW0uICBBbSBJ IG1pc3Rha2VuIGluIHRoaXM/ICAgSSBob3BlIG5vdCEgIEFzc3VtaW5nIG5vdCwgYW5kIGlmIEkg dW5kZXJzdGFuZCB5b3VyIHBvaW50LCB0aGVuIEkgc2hvdWxkIHdyaXRlIGluc3RlYWQgdGhhdCB0 aGlzIGJ5IHZpcnR1ZSBvZiBndWl4J3MgYWJpbGl0eSB0byBzZXQtdXAgYW5kIHRlYXIgZG93biBl bnZpcm9ubWVudHMvcHJvZmlsZXMgdGhhdCBub3Qgb25seSBzcGVjaWZ5IHZlcnNpb25zIG9mIGFw cGxpY2F0aW9ucywgYnV0IGFsc28gbGlicmFyaWVzL3BsdWctaW5zL21vZHVsZXMgZm9yIGEgdmFy aWV0eSBvZiBsYW5ndWFnZXMgKHJ1YnksIHBlcmwsIGV0YykgYW5kIHRvb2xzIChlbWFjcywgZXRj KS4gIFlvdSBtZW50aW9uIHRoZSBpbXBvcnRhbmNlIG9mICdpbXBvcnRlcnMnIGJlbG93Li4uIHBl cmhhcHMgaXQgaXMgdGhlIGNvbWJpbmF0aW9uIG9mIGF2YWlsYWJsZSBpbXBvcnRlcnMgKGZvciBz Y2FmZm9sZGluZyB0aGUgcGFja2FnaW5nIGZyb20gZXh0ZXJuYWwgcmVwb3MpIGFsb25nIHdpdGgg dGhlIGFiaWxpdHkgdG8gdXNlIGBndWl4IGVudmlyb25tZW50YCB0byBtYWtlIHRoZW0gYXZhaWxh YmxlIGluIHNwZWNpZmllZCBjb250ZXh0cy4NCg0KTGV0IG1lIHRyeS4uLi4gRG9lcyB0aGlzIGRv IGJldHRlciBqdXN0aWNlIHRvIGNoYXJhY3Rlcml6aW5nIHRoZSBzZXBhcmF0aW9uIG9mIGNvbmNl cm5zIGFuZCBhdHRlbmRhbnQgYWR2YW50YWdlczoNCg0KICsgR3VpeCBhYnN0cmFjdHMgdGhlIGlk ZWEgb2YgW1todHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aXgvbWFudWFsL2d1aXguaHRt bCNCdWlsZC1TeXN0ZW1zXVtidWlsZCBzeXN0ZW1zXV0gdG8gbm90IG9ubHkgZW5jb21wYXNzIHRo ZQ0KICAgc3RhbmRhcmQgR251IHJlY2lwZSAiKGNvbmZpZ3VyZTsgbWFrZTsgbWFrZSBjaGVjazsg bWFrZSBpbnN0YWxsKSINCiAgIGJ1dCB0byBhbHNvIGV4dGVuZCB0byBjb21tb24gbGFuZ3VhZ2Uv dG9vbCBzcGVjaWZpYw0KICAgcGFja2FnZS9tb2R1bGUvYWRkLW9uIG1hbmFnZXJzLCBpbmNsdWRp bmcgdGhvc2UgZm9yIFIsIHBlcmwsDQogICBweXRob24sIHJ1YnksIGhhc2tlbGwsIGFuZCBlbWFj cy4gIFRoaXMgc2hvdWxkIGFsbG93IGEgc2luZ2xlDQogICBjb21tYW5kIGxpbmUgcHJvdG9jb2wg Zm9yIG1hbmFnaW5nIHRoZSBidWlsZGluZyBhbmQgZGVwbG95bWVudCBvZg0KICAgc3VjaCBwYWNr YWdlcy4gIEFkZGl0aW9uYWxseSwgd2hlbiBkZXBsb3llZCB1c2luZyBndWl4LCBzdWNoIHBhY2th Z2VzIGNhbg0KICAgYWxzbyBiZSBlbmFibGVkIHdpdGggZ3VpeCB1c2luZyB0aGUgYFtbaHR0cHM6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWl4L21hbnVhbC9ndWl4Lmh0bWwjSW52b2tpbmctZ3Vp eC1lbnZpcm9ubWVudF1bZW52aXJvbm1lbnRdXWAgc3ViLWNvbW1hbmQsDQogICBwcm92aWRpbmcg YSB1bmlmaWVkIGFwcHJvYWNoIHdoZXJlIHByZXZpb3VzbHkgbXVsdGlwbGUgdG9vbHMgbWlnaHQN CiAgIGhhdmUgYmVlbiBlbXBsb3llZCAocGVybGJyZXcgZm9yIHBlcmwsIHB5ZW52IG9yIHB5dGhv bmJyZXcgZm9yDQogICBweXRob24sIHJiZW52IGZvciBydWJ5LCBldGMuKQ0KDQoNCj4gVGhpcyBn aXZlcyB1cyB0aGUgcG93ZXIgb2YNCiA+IGFic3RyYWN0aW9uLCBzb21ldGhpbmcgdGhhdCBwYWNr YWdlIG1hbmFnZXJzIGxpa2Ug4oCcY29uZGHigJ0gZG8gbm90IGFpbSB0bw0KID4gcHJvdmlkZSDi gJQgdGhlcmUgeW91IG5lZWQgdG8gc2hpcCBhIHNjcmlwdCBhbG9uZyB3aXRoIHRoZSBtZXRhZGF0 YSBmaWxlLA0KID4gd2hpY2ggaXMgdGhlbiBydW4gdG8gYnVpbGQgdGhlIHBhY2thZ2UuICBUaGUg c2NyaXB0IG1heSBuZWVkIHRvIGRvDQogPiBsaXR0bGUgbW9yZSB0aGFuDQogPiANCiA+ICAgICAu L2NvbmZpZ3VyZSAmJiBtYWtlICYmIG1ha2UgaW5zdGFsbA0KID4gDQogPiBidXQgaXQgaXMgYSBt dWNoIGxlc3MgcHJpbmNpcGxlZCBhcHByb2FjaCBhcyBiYXNoIGhhcyBoYXJkbHkgdGhlIG1lYW5z DQogPiB0byBwcm92aWRlIGZvciBjbGVhciBhbmQgZWFzeSBhYnN0cmFjdGlvbi4gIChBbmQgdG8g aGF2ZSB0byBydW4NCiA+IGFyYml0cmFyeSBzaGVsbCBzY3JpcHRzIHdpdGhvdXQgYW55IHNvcnQg b2YgaXNvbGF0aW9uIGlzIG5vdCB2ZXJ5DQogPiBlbmNvdXJhZ2luZy4pDQogPiANCiA+IFRoZSBm YWN0IHRoYXQgYnVpbGQgcHJvY2Vzc2VzIHJ1biBhcyB1bnByaXZpbGVnZWQsIGRlZGljYXRlZCBi dWlsZCB1c2Vycw0KID4gaXMgYW5vdGhlciBmZWF0dXJlOiB5b3UgZG9u4oCZdCBuZWVkIHRvIGJl IGFmcmFpZCB0aGF0IHRoZSBidWlsZCBzY3JpcHQNCiA+IGJyZWFrcyB5b3VyIHByZWNpb3VzIGhv bWUgZGlyZWN0b3J5LiAgKFNlZQ0KID4gaHR0cHM6Ly9naXRodWIuY29tL01yTUVFRS9idW1ibGVi ZWUtT2xkLWFuZC0NCiA+IGFiYmFuZG9uZWQvY29tbWl0L2EwNDdiZTg1MjQ3NzU1Y2RiZTBhY2Nl NmYxZGFmYzhiZWI4NGYyYWMNCiA+IGZvciBhIHNoZWxsIHNjcmlwdCBidWcgdGhhdCBpc27igJl0 IGFsbCB0aGF0IHJhcmUgYW5kIGNvdWxkIHJlYWxseSBzcG9pbA0KID4geW91ciBkYXkgaWYgeW91 4oCZcmUgcnVubmluZyBhIHNjcmlwdCBsaWtlIHRoYXQgd2l0aG91dCBpc29sYXRpb24uKQ0KDQpI ZWggLSAvdXNyIHJoeW1lcyB3aXRoIC9sdXNyICENCg0KPiA+ICsgR3VpeCBjb250cm9sIG9mIGJ1 aWxkIHByb2Nlc3NlcyBkb3duIHRvIGxldmVsIG9mDQogPiA+ICAgYmluYXJ5LWNvbXBhdGliaWxp dHksIGFsb25nIHdpdGggdGhlIG1hbmFnZW1lbnQgdG9vbHMgZm9yDQogPiA+ICAgZW52aXJvbm1l bnQgcHJvZmlsZXMgY2FuIHByb3ZpZGUgdGhlIGJhc2lzIGZvciBpbXByb3ZlbWVudHMgaW4NCiA+ ID4gICByZXByb2R1Y2libGUgcGlwZWxpbmVzLCBzdWNoIGFzIGFyZSBiZWdpbmluZyB0byBhcHBl YXIgaW4NCiA+ID4gICBjb21wdXRhdGlvbmFsIGNlbnRlcnMgb2YgZXhjZWxsZW5jZS4NCiA+IA0K ID4gVGhpcyBzb3VuZHMgYSBiaXQgY29uZnVzZWQuICBXaGVuIGFwcGx5aW5nIGZ1bmN0aW9uYWwg cGFja2FnZSBtYW5hZ2VtZW50DQogPiBpZGVhcyB0byBhIHBhY2thZ2UgYW5kICphbGwqIG9mIGl0 cyBkZXBlbmRlbmNpZXMgcmVjdXJzaXZlbHksIHlvdSBlbmQgdXANCiA+IHdpdGggYSBkaXJlY3Rl ZCBhY3ljbGljIGdyYXBoIChsb29wcyBhcmUg4oCcdW5yb2xsZWTigJ0gYnkgYm9vdHN0cmFwcGlu Zw0KID4gd2l0aCBleGlzdGluZyBwYWNrYWdlcyB3aGVyZSBwb3NzaWJsZSkgdGhhdCBpcyByb290 ZWQgaW4gYSB2ZXJ5IHNtYWxsDQogPiBudW1iZXIgb2YgZXNzZW50aWFsIGJvb3RzdHJhcCBiaW5h cmllcy4gIFRvZ2V0aGVyIHdpdGggYnVpbGQtdGltZQ0KID4gaXNvbGF0aW9uIHdlIGdldCB2ZXJ5 IGNsb3NlIHRvIGEgcmVwcm9kdWNpYmxlIHNvZnR3YXJlIHN0YWNrLiAgVGhlIGtleQ0KID4gaWRl YSBoZXJlLCB0aG91Z2gsIGlzIGZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGJlY2F1c2Ug d2l0aG91dCBpdA0KID4gYnVpbGQtdGltZSBpc29sYXRpb24gd291bGRu4oCZdCBiZSBvZiBtdWNo IHVzZS4NCiA+IA0KDQpUaGFua3MuICBOb3RlZC4NCg0KID4gPiArIEd1aXggcHJvdmlkZXMgY29t bWFuZHMgdG8NCiA+ID4gICBbW2h0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpeC9tYW51 YWwvZ3VpeC5odG1sI0VtYWNzLQ0KID4gQ29tbWFuZHNdW2Rpc3BsYXkNCiA+ID4gICBwYWNrYWdl IGluZm9ybWF0aW9uXV0gd2hpY2ggY2FuIGJlIHVzZWQgdG8gYXV0b21hdGUgdGhlIHByb2R1Y3Rp b24NCiA+ID4gICBhbmQgcHVibGlzaGluZyBvZiBzb2Z0d2FyZSBwYWNrYWdlIGNhdGFsb2dzLiAg U3VjaCBjYXRhbG9ncyBtYXkgdGhlbg0KID4gPiAgIGJlIHNoYXJlZCwgcHJpbnRlZCwgZW1haWxl ZCwgb3IgZW1iZWRkZWQgaW50byBjb21tdW5pdHktdmlzaWJsZSB3ZWINCiA+ID4gICBwYWdlcyBh cyB2YXJpb3VzIG1lYW5zIG9mIGFkdmVydGlzaW5nIHBhY2thZ2UgYXZhaWxhYmlsaXR5IHRvIHRo ZQ0KID4gPiAgIHJlc2VhcmNoIGNvbW11bml0eS4NCiA+IA0KID4gR3VpeCBpcyBhIGxpYnJhcnks IHdoaWNoIGFsbG93cyBmb3IgdGhlIEVtYWNzIGludGVyZmFjZSBhbmQgdGhlIEd1aXggd2ViDQog PiBpbnRlcmZhY2UgKHdoaWNoIHRoZSBNREMgdXNlcyB0byBkaXNwbGF5IHdoYXQgc29mdHdhcmUg d2UgaGF2ZSBhdmFpbGFibGUNCiA+IGluIEd1aXgpLg0KID4gDQogPiA+ICsgR3VpeCBwYWNrYWdl IHNwZWNpZmljYXRpb25zLCBiZWluZyB3cml0dGVuIGluDQogPiBbW2h0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpeC9tYW51YWwvZ3VpeC5odG1sI0RlZmluaW5nLQ0KID4gUGFja2FnZXNd W0d1aWxlL3NjaGVtZV1dLCBkbyBub3QNCiA+ID4gICBkZXBlbmQgdXBvbiB0aGUgdXNlcnMgU0hF TEwgKGkuZS4gZ3VpeCB3b3JrcyBlcXVhbGx5IHdlbGwgd2l0aCB6c2gsDQogPiA+ICAgYmFzaCwg dGNzaCwgZXRjKSAoVE9ETzogY29uZmlybSkuDQogPiANCiA+IFRoZSB1c2Vy4oCZcyBzaGVsbCBk b2VzIG5vdCBtYXR0ZXIsIGJ1dCB0aGlzIGlzIG5vdGhpbmcgdG8gZG8gd2l0aCBiZWluZw0KID4g d3JpdHRlbiBpbiBTY2hlbWUuICBUaGUgR3VpeCBkYWVtb24gc3Bhd25zIGEgc2hlbGwgb24gaXRz IG93biB0aGF0IGRvZXMNCiA+IG5vdCBkZXBlbmQgb24gdGhlIHVzZXLigJlzIGVudmlyb25tZW50 Lg0KDQoNCldoYXQgaXMgbm90IGNsZWFyIHRvIG1lIGlzIHdoZXRoZXIgYmFzaCBpcyBhc3N1bWVk IGVsc2V3aGVyZSBpbiBndWl4Li4uLiBmb3IgaW5zdGFuY2UsIHRoZSBmYWN0IHRoYXQgDQoNCgln dWl4IHBhY2thZ2UgLS1zZWFyY2gtcGF0aHMNCg0KcmVwb3J0cyBlbnZpcm9ubWVudCB2YXJpYWJs ZXMgaW4gYmFzaCBzeW50YXguICBBbnkgaW5zaWdodHMgaGVyZT8NCg0KDQo+ID4gKyBHdWl4IGhh cyBhIGZ1dHVyZSAtIGl0IGlzIHRoZSBwYWNrYWdlIG1hbmFnZXIgZm9yIHRoZSBuZXcNCiA+ID4g ICBHTlUtYmFja2VkIGxpbnV4IGRpc3RyaWJ1dGlvbiwNCiA+IFtbaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWl4L11bR3VpeFNEXV0uDQogPiANCiA+IOKAnGxpbnV4IGRpc3RyaWJ1dGlv buKAnSAuLi4gIEd1aXhTRCBwcm92aWRlcyBhIHZhcmlhbnQgb2YgdGhlIEdOVSBzeXN0ZW0NCiA+ ICh3aGljaCBieSBkZWZhdWx0IGhhcHBlbnMgdG8gdXNlIExpbnV4IGFzIGl0cyBrZXJuZWwpLg0K DQpJIHdpbGwgdHJ5IGFuZCBiZWFyIHRoaXMgZGlzdGluY3Rpb24gaW4gbWluZC4gIA0KDQogPiAN CiA+ID4gKyBHdWl4IGlzIFtbaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWl4L21hbnVh bC9dW3dlbGwgZG9jdW1lbnRlZF1dLg0KID4gDQogPiBOb3RlIHRoYXQgdGhlIG1hbnVhbCBvbiB0 aGUgd2Vic2l0ZSBpcyBzb21ld2hhdCBvdXRkYXRlZC4gIEl04oCZcyB0aGUNCiA+IG1hbnVhbCBm b3IgdGhlIGxhdGVzdCAwLjkuMCByZWxlYXNlICh3aGljaCBpcyBhbHJlYWR5IHF1aXRlIHNvbWUg dGltZQ0KID4gYWdvKS4gIFRoZSBsYXRlc3QgdmVyc2lvbiBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0 aGUgZ2l0IHJlcG9zaXRvcnkuDQogPiBNYXliZSB3ZSBzaG91bGQgY2hhbmdlIHRoaXMuDQogPiAN CiA+ICA+ICsgR3VpeCBjb21tdW5pdHkgaGFzIGFscmVhZHkgcHJlcGFyZWQNCiA+IFtbaHR0cHM6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWl4L3BhY2thZ2VzL11bbWFueSByZWNpcGVzXV0sIG9m IHdoaWNoDQogPiAgPiAgIGN1cnJlbnRseSBbW2h0dHA6Ly9ndWl4Lm1kYy1iZXJsaW4uZGUvcGFj a2FnZXM/Lz9zZWFyY2g9YmlvaW5mb11bNTQgYXJlDQogPiBiaW9pbmZvcm1hdGljc11dIHBhY2th Z2VzLg0KID4gDQogPiBBcyBJIHdyb3RlIGFib3ZlOiBpdOKAmXMgMTE0ICh0aGFua3MgZm9yIHBy b21wdGluZyBtZSB0byBmaXggdGhlDQogPiBjb25maWd1cmF0aW9uIGVycm9yIHRoYXQgbWFkZSBp dCBzaG93IDU0IHBhY2thZ2VzIG9ubHkpLg0KID4gDQogPiA+ICsgR3VpeCBwYWNrYWdpbmcgaXMg cmVsYXRpdmVseSBlYXN5IHRvIGxlYXJuLiBJdCBpcyByZWFzb25hYmx5DQogPiA+ICAgZG9jdW1l bnRlZCBhbmQgdGhlcmUgYXJlIGBsaW50YCBzdHlsZSB0b29scyB0aGF0IGNoZWNrIHJlY2lwZXMg Zm9yDQogPiA+ICAgYmVpbmcgd2VsbC1zdHJ1Y3R1cmVkOyB0aGV5IGlkZW50aWZ5IGNvbW1vbiBl cnJvcnMgaW4gcGFja2FnZQ0KID4gPiAgIHNwZWNpZmljYXRpb24uDQogPiANCiA+IFdlIGFsc28g aGF2ZSBpbXBvcnRlcnMgKHNvbWUgd2l0aCBncmVhdCwgb3RoZXJzIHdpdGggZ29vZCByZXN1bHRz KSBzbw0KID4gdGhhdCBvZnRlbiB0aGVyZSBpc27igJl0IG11Y2ggd29yayB0byBiZSBkb25lIGF0 IGFsbC4gIFdlIGhhdmUgaW1wb3J0ZXJzDQogPiBmb3IgQ1JBTiBhbmQgYmlvY29uZHVjdG9yLCB3 aGljaCB3b3JrZWQgcHJldHR5IHdlbGwgZm9yIG1lOyBhbHNvIHRoZQ0KID4gaGFja2FnZSBpbXBv cnRlciBpcyBncmVhdCBhbmQgaXQgc2F2ZWQgbWUgYSBsb3Qgb2YgdGltZSB3aGVuIEkgcGFja2Fn ZWQNCiA+IGFsbCBtaXNzaW5nIGRlcGVuZGVuY2llcyBmb3IgcGFuZG9jIGluIGFib3V0IGFuIGFm dGVybm9vbi4NCg0KTG9va2luZyBmb3J3YXJkIHRvIHRoYXQgLSBnZXR0aW5nIHBhbmRvYyBhbmQg dGV4IGFuZCBIYXNrZWxsIGFuZCBldmVyeXRoaW5nIGVsc2UgbGluZWQgdXAgd2FzIGEgYmVhciBm b3IgbWUuDQoNCiA+IA0KID4gVGhlIGltcG9ydGVycyBhcmUgcmVhbGx5IHZlcnkgdXNlZnVsIGFu ZCBJ4oCZZCBkZWZpbml0ZWx5IG1lbnRpb24gdGhlbS4NCiA+IA0KID4gPiArIEd1aXggZGV2ZWxv cG1lbnQgaXMgb3BlbiBzb3VyY2UuICBJdCBpcyBvcGVuIHRvIGlucHV0IGZyb20gYWxsDQogPiA+ ICAgY29tbXVuaXR5IG1lbWJlcnMuDQogPiANCiA+IEl04oCZcyBmcmVlIHNvZnR3YXJlIDspDQog PiANCiA+IE1heWJlIGl04oCZcyBhbHNvIGdvb2QgdG8gbWVudGlvbiB0aGF0IHlvdSBkbyBub3Qg bmVlZCB0byByZWx5IG9uIEd1aXgNCiA+IHVwc3RyZWFtIHRvIGFkZCBwYWNrYWdlcy4gIEl0IGlz IHRyaXZpYWwgdG8gdXNlIGN1c3RvbSBwYWNrYWdlcyB3aXRoDQogPiBHVUlYX1BBQ0tBR0VfUEFU SC4NCiA+IA0KPiA+ICsgR3VpeCBleHBvc2VzIHRoZSBhY3R1YWwgc3lzdGVtIGNhbGxzIHRvIHRo ZSBwYWNrYWdlIGRldmVsb3Blci4NCiA+IA0KID4gV2hhdCBkb2VzIHRoaXMgbWVhbj8NCg0KTmV2 ZXIgbWluZC4gIERlbGV0ZWQuDQoNCj4gfn4gUmljYXJkbw0KDQp+fn5NYWxjb2xtDQo=