From owner-freebsd-virtualization@freebsd.org Fri Aug 17 08:54:13 2018 Return-Path: Delivered-To: freebsd-virtualization@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95E971087287 for ; Fri, 17 Aug 2018 08:54:13 +0000 (UTC) (envelope-from matt.churchyard@userve.net) Received: from smtp-a.userve.net (smtp-outbound.userve.net [217.196.1.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.userve.net", Issuer "Thawte RSA CA 2018" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1D21F730EE; Fri, 17 Aug 2018 08:54:12 +0000 (UTC) (envelope-from matt.churchyard@userve.net) Received: from owa.usd-group.com (owa.usd-group.com [217.196.1.2]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp-a.userve.net (Postfix) with ESMTPS id B13D597C; Fri, 17 Aug 2018 09:54:11 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=userve.net; s=201508; t=1534496051; bh=6SrGTRdrAd4rip3uxf9t/keN1kfXtkw0NEGTI5RRf2Y=; h=From:To:CC:Subject:Date:References:In-Reply-To; b=K+xZauMaXr5AbyxBmiug1feJOPNkfnsUVgLjZFdm4REH1LAzmyjJGYZqcPsoXnt4x 4pqv0pwrwARBmrz5KfJgkm0DW6JhbktQBz7RxlcwQ+phGWjmPvEHyD81+WwMvfWipi F8kLDxYrhkh27xbCP89leI8FNPtHb/X9fwRk4gBU= Received: from SERVER.ad.usd-group.com (192.168.0.1) by SERVER.ad.usd-group.com (192.168.0.1) with Microsoft SMTP Server (TLS) id 15.0.847.32; Fri, 17 Aug 2018 09:54:11 +0100 Received: from SERVER.ad.usd-group.com ([fe80::b19d:892a:6fc7:1c9]) by SERVER.ad.usd-group.com ([fe80::b19d:892a:6fc7:1c9%12]) with mapi id 15.00.0847.030; Fri, 17 Aug 2018 09:54:11 +0100 From: Matt Churchyard To: "araujo@freebsd.org" CC: Allan Jude , "freebsd-virtualization@freebsd.org" Subject: RE: Checking bhyve supported features (sysctls) Thread-Topic: Checking bhyve supported features (sysctls) Thread-Index: AdQ1Sj/JzUfq4S8/RYq4DRXDNWTckQAIYkuAAANnXRD///SbAIAABAyAgAAHIQCAAApWAP/++RiggAIB9oD//+0swA== Date: Fri, 17 Aug 2018 08:54:10 +0000 Message-ID: <8fad62d974804195bf4518a88b7c53a8@SERVER.ad.usd-group.com> References: <201808161730.w7GHUaWv054788@pdx.rh.CN85.dnsmgr.net> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [192.168.0.10] MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.27 X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Aug 2018 08:54:14 -0000 DQoNCjIwMTgtMDgtMTcgMTY6MjUgR01UKzA4OjAwIE1hdHQgQ2h1cmNoeWFyZCA8bWF0dC5jaHVy Y2h5YXJkQHVzZXJ2ZS5uZXQ8bWFpbHRvOm1hdHQuY2h1cmNoeWFyZEB1c2VydmUubmV0Pj46DQot LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogb3duZXItZnJlZWJzZC12aXJ0dWFsaXph dGlvbkBmcmVlYnNkLm9yZzxtYWlsdG86b3duZXItZnJlZWJzZC12aXJ0dWFsaXphdGlvbkBmcmVl YnNkLm9yZz4gPG93bmVyLWZyZWVic2QtdmlydHVhbGl6YXRpb25AZnJlZWJzZC5vcmc8bWFpbHRv Om93bmVyLWZyZWVic2QtdmlydHVhbGl6YXRpb25AZnJlZWJzZC5vcmc+PiBPbiBCZWhhbGYgT2Yg Um9kbmV5IFcuIEdyaW1lcw0KU2VudDogMTYgQXVndXN0IDIwMTggMTg6MzENClRvOiBBbGxhbiBK dWRlIDxhbGxhbmp1ZGVARnJlZUJTRC5vcmc8bWFpbHRvOmFsbGFuanVkZUBGcmVlQlNELm9yZz4+ DQpDYzogTWF0dCBDaHVyY2h5YXJkIDxtYXR0LmNodXJjaHlhcmRAdXNlcnZlLm5ldDxtYWlsdG86 bWF0dC5jaHVyY2h5YXJkQHVzZXJ2ZS5uZXQ+PjsgZnJlZWJzZC12aXJ0dWFsaXphdGlvbkBmcmVl YnNkLm9yZzxtYWlsdG86ZnJlZWJzZC12aXJ0dWFsaXphdGlvbkBmcmVlYnNkLm9yZz4NClN1Ympl Y3Q6IFJlOiBDaGVja2luZyBiaHl2ZSBzdXBwb3J0ZWQgZmVhdHVyZXMgKHN5c2N0bHMpDQoNCj4g T24gQXVndXN0IDE2LCAyMDE4IDU6Mjg6MDUgUE0gR01UKzAxOjAwLCAiUm9kbmV5IFcuIEdyaW1l cyIgPGZyZWVic2QtcndnQHBkeC5yaC5DTjg1LmRuc21nci5uZXQ8bWFpbHRvOmZyZWVic2Qtcndn QHBkeC5yaC5DTjg1LmRuc21nci5uZXQ+PiB3cm90ZToNCj4gPj4NCj4gPj4gVGV4dCBtYW51YWxs eSB3cmFwcGVkIHRvIDgwLCBhbnkgYnJva2VuIHF1b3RpbmcgaXMgbXkgZmF1bHQgLSByd2cNCj4g Pj4NCj4gPj4gPiA+IEhlbGxvLA0KPiA+PiA+ID4NCj4gPj4gPiA+IEknbSBsb29raW5nIGZvciBi ZXR0ZXIgd2F5cyB0byBjaGVjayBmb3IgIGJoeXZlIHN1cHBvcnQgLw0KPiA+YXZhaWxhYmxlDQo+ ID4+ID4gPiBmZWF0dXJlcyB3aXRob3V0IHRyeWluZyB0byBzY2FuIHRocm91Z2ggZG1lc2cgb3V0 cHV0Lg0KPiA+PiA+DQo+ID4+ID4gPlllcywgaXQgd291bGQgYmUgdmVyeSBnb29kIHRvIHJlbW92 ZSB0aGF0LCBhcyBpdCB1c3VhbGx5IHRyaWVzDQo+ID4+ID4gPnRvIGdyZXAgYSBub24tZXhpc3Rl bnQgZmlsZSAvdmFyL3J1bi9kbWVzZy5ib290IHRoYXQgaXMgbm90DQo+ID4+ID4gPmNyZWF0ZWQg dW50aWwgYWZ0ZXIgdm1fYmh5dmUgaGFzIGJlZW4gY2FsbGVkIGZyb20NCj4gPi91c3IvbG9jYWwv ZXRjL3JjLmQNCj4gPj4gPiA+d2hlbiB5b3UgaGF2ZSB0aGluZ3Mgc2V0IHRvIGF1dG9zdGFydHVw ID5pbiAvZXRjL3JjLmNvbmYNCj4gPj4gPg0KPiA+PiA+DQo+ID4+ID4gPg0KPiA+PiA+ID4gSSBu b3RpY2UgdGhhdCB0aGUgZm9sbG93aW5nIDIgc3lzY3RsJ3MgYXBwZWFyIHRvIGJlIHNldCB0byAx IGFzDQo+ID5zb29uDQo+ID4+ID4gPiBhcyB0aGUgdm1tIG1vZHVsZSBpcyBsb2FkZWQNCj4gPj4g PiA+DQo+ID4+ID4gPiBody52bW0udm14LmluaXRpYWxpemVkOiAxDQo+ID4+ID4gPiBody52bW0u dm14LmNhcC51bnJlc3RyaWN0ZWRfZ3Vlc3Q6IDENCj4gPj4gPiA+DQo+ID4+ID4gPiBXaWxsIHRo ZXNlIGJlIGF2YWlsYWJsZSBvbiBib3RoIEludGVsICYgQU1EIHByb2Nlc3NvcnMgYXMgYSB3YXkN Cj4gPj4gPiA+IHRvIGRldGVybWluZSBpZiB0aGUgbW9kdWxlIGhhcyBsb2FkZWQgc3VjY2Vzc2Z1 bGx5IGFuZCBjYW4gcnVuDQo+ID5ndWVzdHM/DQo+ID4+ID4gPg0KPiA+PiA+ID4gSSBhbHNvIHNl ZSB0aGUgYmVsb3cgc3lzY3RsIHJlbGF0ZWQgdG8gaW9tbXUuDQo+ID4+ID4gPg0KPiA+PiA+ID4g aHcudm1tLmlvbW11LmluaXRpYWxpemVkDQo+ID4+ID4gPg0KPiA+PiA+ID4gQWdhaW4sIHdpbGwg dGhpcyBiZSBzZXQgdG8gMSBhcyBzb29uIGFzIHRoZSBtb2R1bGUgaXMgbG9hZGVkIGlmDQo+ID4+ ID4gPiBpb21tdSBpcyBzdXBwb3J0ZWQsIG9yIG9ubHkgd2hlbiBpdCBpcyB1c2VkPw0KPiA+PiA+ ID4gVGhlcmUgYWxzbyBzZWVtcyB0byBiZSBhIHZtbS5hbWR2aS5lbmFibGUgc3lzY3RsLg0KPiA+ PiA+ID4gV291bGQgYm90aCB0aGVzZSBuZWVkIGNoZWNraW5nIG9yIGlzIHZtbS5pb21tdSBlbm91 Z2ggdG8NCj4gPj4gPiA+IGRldGVybWluZSBzdXBwb3J0IG9uIGFueSBwcm9jZXNzb3IuDQo+ID4+ ID4NCj4gPj4gPiA+UHJvYmFsYnkgdGhlIHNhZmVzdCB3YXkgZm9yIGEgc2hlbGwgc2NyaXB0IHRv IGRlY2lkZSBpZiBiaHl2ZSBpcw0KPiA+PiA+ID51cCBhbmQgcnVubmluZyBpcyB0byBzdGF0IC9k ZXYvdm1tLCBpZiB0aGF0IGV4aXN0cyB0aGVuIHRoZQ0KPiA+bW9kdWxlcw0KPiA+PiA+ID5oYXZl IGxvYWRlZCBhbmQgaW5pdGlhbGl6ZWQgYW5kIGJoeXZlIHNob3VsZCBiZSByZWFkeSB0byBwcm9j ZXNzDQo+ID5ndWVzdHMuDQo+ID4+ID4NCj4gPj4gPiBIbW0sIEkgZG9uJ3QgZ2V0IC9kZXYvdm1t IHVubGVzcyBJIGFjdHVhbGx5IGhhdmUgcnVubmluZyBndWVzdHMuDQo+ID4+DQo+ID4+IEknbGwg aW52ZXN0aWdhdGUgdGhhdCwgSSB3YXMgcHJldHR5IHN1cmUgdGhhdCB5b3Ugc2hvdWxkIGdldCB0 aGlzDQo+ID4+IGFzIHNvb24gYXMgdGhlIHZtbS5rbyBtb2R1bGUgaXMgZmluaXNoZWQgaW5pdGlh bHppbmcsIGJ1dCB5b3UgbWlnaHQNCj4gPj4gYmUgcmlnaHQgaW4gdGhhdCBpdCB0YWtlcyBhIGZp cnN0IHZtIHRvIGNhdXNlIGl0cyBjcmVhdGlvbi4NCj4gPj4gQ29uZmlybWVkLCAvZGV2L3ZtbSBk b2VzIG5vdCBleGlzdCB1bnRpbCB0aGUgZmlyc3Qgdm0gaXMgY3JlYXRlZC4NCj4gPj4NCj4gPj4g Pg0KPiA+PiA+ID5zeXNjdGwncyBtZW50aW9uZCBhYm92ZSB3b3VsZCBiZSBhIHBvb3Igd2F5IHRv IG1ha2UgdGhpcw0KPiA+ZGV0ZXJtaW5hdGlvbi4NCj4gPj4gPg0KPiA+PiA+IEl0IHdvdWxkIGJl IG5pY2UgaWYgc3lzY3RscyB3ZXJlIGJldHRlciBkb2N1bWVudGVkLg0KPiA+Pg0KPiA+PiBBZ3Jl ZWQuDQo+ID4+DQo+ID4+ID4gSWYgdm14LmluaXRpYWxpemVkIGlzIHNldCBvbmNlIHZtbSBoYXMg c3VjY2Vzc2Z1bGx5IGxvYWRlZCwgSQ0KPiA+PiA+IGNhbid0DQo+ID5zZWUgYSBiZXR0ZXIgd2F5 IG9mIGNoZWNraW5nIGZvciBiaHl2ZSBzdXBwb3J0IChhc3N1bWluZyBpdCdzIG5vdA0KPiA+SW50 ZWwgc3BlY2lmaWMpLiBUaGlzIGVudHJ5IGRlZmluaXRlbHkgZXhpc3RzIGFuZCBpcyBzZXQgdG8g MCBpZiB5b3UNCj4gPmxvYWQgdGhlIG1vZHVsZSBvbiBhIG5vbi1zdXBwb3J0ZWQgc3lzdGVtLCBh bmQgc2V0IHRvIDEgYXMgc29vbiBhcw0KPiA+dm1tIGxvYWRzIG9uIG15IEludGVsIHRlc3Qgc3lz dGVtLg0KPiA+Pg0KPiA+PiBHaXZlbiBpdHMgdW5kb2N1bWVudGVkIHN0YXR1cyB5b3Ugd291bGQg YmUgcmVseWluZyBvbiBhbg0KPiA+PiB1bmRvY3VtZW50ZWQgZmVhdHVyZSB0aGF0IGNvdWxkIGNo YW5nZSBpbiBlaXRoZXIgbmFtZSBvciBiZWhhdmlvciwNCj4gPj4gYW5kIHRoYXQgaXMgbm90IGRl c2lyYWJsZS4NCj4gPj4NCj4gPj4gTGV0IG1lIHNlZSBpZiBJIGNhbiBjb21lIHVwIHdpdGggc29t ZXRoaW5nIGVsc2UuDQo+ID4NCj4gPkkgbG9va2VkIGF0IHRoZSBjb2RlIGZvciBiaHl2ZWN0bCwg Ymh5dmVsb2FkIGFuZCBieWh2ZS4gIFRoZXkgZG8gbm90DQo+ID5hY3R1YWxseSB0cnkgdG8gZGVj aWRlIGlmIHZtbSBpcyBzdXBwb3J0ZWQgb3Igbm90LCB0aGV5IHNpbXBseQ0KPiA+cHJvY2VzcyB0 aGUgZXJyb3IgZnJvbSBhIHZtX2NyZWF0ZSgpIG9yIHZtX29wZW4oKSBjYWxsIGFuZCBleGl0IHdp dGgNCj4gPmFuIGVycm9yIGNvZGUgaWYgdGhleSBjYW4gbm90IGhhbmRsZSBpdCAoc29tZSBvZiB0 aGUgY29kZSBjYW4gaGFuZGxlDQo+ID5hIHZtX2NyZWF0ZSBmYWlsdXJlIGlmIGluZmFjdCB3ZSBh cmUgdHJ5aW5nIHRvIGNyZWF0ZSBhIHZtIHRoYXQNCj4gPmFscmVhZHkgZXhpc3RzKS4NCj4gPg0K PiA+SWYgeW91IHdhbnQgdG8gbWFpbnRhaW4gZnVsbCBjb21wYXRpYmlsaXR5IGEgc2ltaWxpYXIg c3RyYXRlcmd5IG1heQ0KPiA+YmUgaW4gb3JkZXIuDQo+ID4NCj4gPldoeSBpcyBpdCB0aGF0IHZt LWJoeXZlIHNwZWNpZmljYWxseSBuZWVkcyB0byBrbm93IGlmIHRoZSBrZXJuZWwgaGFzDQo+ID52 bW0gc3VwcG9ydCBvciBub3Q/DQo+ID5DYW50IGl0IGp1c3QgYmUgd3JpdHRlbiB0byBoYW5kbGUg dGhlIGVycm9ycyByZXR1cm5lZCBpZiB0aGUNCj4gPnN1cHBvcnRlZCBmdW5jdGlvbnMgZG8gbm90 IGV4aXN0Pw0KPg0KPiBJIHRoaW5rIHRoZSBxdWVzdGlvbiB2bS1iaHl2ZSB3YW50cyB0byBhbnN3 ZXIgaXM6IGRvZXMgdGhlIENQVSBoYXZlDQo+IHRoZSByZXF1aXJlZCBmZWF0dXJlcyB0byBydW4g YSBtdWx0aWNvcmUgVk0uDQoNCj5XaHkgZG9lcyBpdCBuZWVkIHRvIGtub3cgdGhhdD8gIElmIGl0 IHRyaWVzIHRvIHN0YXJ0IGEgbXVsdGljb3JlL3RocmVhZCBWTSBhbmQgdGhlIHN5c3RlbSBjYW4g bm90IHN1cHBvcnQgaXQgYW4gZXJyb3IgaXMgcmV0dXJuZWQgYW5kIHRoZSBiaHl2ZSBjb21tYW5k IGZhaWxzLg0KDQo+QWN0dWFsbHkgZGV0ZXJtaW5pbmcgdGhhdCBzcGVjaWZpYyBpc3N1ZSBpcyBu b24tdHJpdmlhbCBpaXJjIGFzIHNvbWUgdm1tIHN1cHBvcnRlZCBDUFUncyBjYW4gb25seSBydW4g YSBzaW5nbGUgVk0gd2l0aCBhIHNpbmdsZSB0aHJlYWQgaW4gdGhhdCBWTSAoZWFybHkgY29yZSBj cHUncykuDQoNCj4NCj4gVGhlc2Ugb3Igc2ltaWxhciBzeXNjdGxzIGRvIHNlZW0gdG8gYmUgdGhl IGNvcnJlY3Qgd2F5IHRvIGNvbW11bmljYXRlDQo+IHRoYXQgc3VwcG9ydC4NCg0KPkkgZG8gbm90 IGJlbGlldmUgYW55IG9mIHRob3NlIHN5c2N0bCdzIGNvbW11bmljYXRlIHRoYXQgeW91ciBvbiBh IGJyb2tlbiBjcHUgb3IgdG8gd2hhdCBleHRlbnQgeW91IGNhbiBydW4gdm0ncyB3aXRoIG11bHRp cGxlIHRocmVhZHMuDQpTbyBjYXAudW5yZXN0cmljdGVkX2d1ZXN0IGZyb20gdGhlIHZtbSAiY2Fw YWJpbGl0aWVzIiBzZXQgb2Ygc3lzY3RscyBpcyBub3QgYSB2YWxpZCB3YXkgdG8gZGV0ZXJtaW5l IGlmIHRoZSBob3N0IGhhcyB1bnJlc3RyaWN0ZWQgZ3Vlc3Qgc3VwcG9ydCAocmVxdWlyZWQgZm9y IG5vbi1mcmVlYnNkIG9yIG11bHRpY29yZSBmcmVlYnNkIGd1ZXN0cywgYW5kIGFzIHlvdSBzYXkg bWlzc2luZyBmcm9tIHNvbWUgZWFybHkgVlQteCBjYXBhYmxlIHByb2Nlc3NvcnMpPw0KDQo+SSB3 ZW50IGFuZCBsb29rZWQgYXQgd2h5IHZtLWJoeXZlIGlzIGdyb3ZlbGluZyBhcm91bmQgaW4gL3Zh ci9ydW4vZG1lc2cuYm9vdCBhbmQgZm91bmQgdGhhdCBpdCBpcyBzaW1wbHkgdHJ5aW5nIHRvIGRl dGVybWluZSBpZiB0aGUgaG9zdCBDUFUgaXMgdm1tIGNhcGFibGUsDQo+c3BlY2lmaWNhbGx5Og0K PnV0aWw6OmNoZWNrX2JoeXZlX3N1cHBvcnQoKXsNCj4uLi4NCg0KPlRoZXNlIGNoZWNrcyBhcmUg YWxyZWFkeSBidWlsdCBpbnRvIHRoZSBrZXJuZWwuDQo+VGhpcyBjYW4gYWxsIGdvIGluIHRoZSBi aXQgYnVja2V0LCBpZiB5b3UgdHJ5IHRvIHN0YXJ0IGEgVk0gb24gYW4gdW5zdXBwb3J0ZWQgc3lz dGVtIGFuIGVycm9yIGlzIHJldHVybmVkLCByZWNvZGluZyB0aGlzIGluIHNoZWxsIGlzIGp1c3Qg c2V0dGluZyB5b3Vyc2VsZiB1cCBmb3IgImZ1dHVyZSIgYnVncy4NCg0KVGhlIGtlcm5lbCBrbm93 cyB3aGF0IGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQgYnV0IGRvZXMgbm90IGV4cG9zZSB0aGVzZSwg c28gYWxsIEkgY2FuIGRvIGlzIHNpbWlsYXIgdG8gbGlidmlydCBhbmQgcnVuIGJoeXZlIHdpdGgg ZGlmZmVyZW50IG9wdGlvbnMgdG8gc2VlIHdoYXQgZXJyb3JzIHBvcCB1cC4NCkkgdGhpbmsgSSds bCBqdXN0IHJlbW92ZSBhbGwgY2hlY2tpbmcgZm9yIG5vdyBhbmQgbGV0IHVzZXJzIGRpc2NvdmVy IHRoZSBpc3N1ZSBmb3IgdGhlbXNlbHZlcyBpZiBiaHl2ZSB3b24ndCBydW4uIEhvcGVmdWxseSB0 aGUgdm14LmluaXRpYWxpemVkIC8gY2FwLiogc3lzY3RscyB3aWxsIGF0IHNvbWUgcG9pbnQgYmVj b21lIGEgZGVmaW5lZCB3YXkgb2Ygc2VlaW5nIGlmIHZtbSBpcyByZWFkeSAvIHRlc3RpbmcgZm9y IHZtbSBmZWF0dXJlcywgYXMgYXBwYXJlbnRseSB0aGVzZSBzZXJ2ZSBubyBwdXJwb3NlIGF0IHRo ZSBtb21lbnQuDQoNCk1hdHQNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQpmcmVlYnNkLXZpcnR1YWxpemF0aW9uQGZyZWVic2Qub3JnPG1haWx0bzpmcmVl YnNkLXZpcnR1YWxpemF0aW9uQGZyZWVic2Qub3JnPiBtYWlsaW5nIGxpc3QNCmh0dHBzOi8vbGlz dHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlYnNkLXZpcnR1YWxpemF0aW9uDQpU byB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAiZnJlZWJzZC12aXJ0dWFsaXphdGlvbi11 bnN1YnNjcmliZUBmcmVlYnNkLm9yZzxtYWlsdG86ZnJlZWJzZC12aXJ0dWFsaXphdGlvbi11bnN1 YnNjcmliZUBmcmVlYnNkLm9yZz4iDQoNCj5UaGlzIGlzIHNvbWV0aGluZyB0aGF0IGlzIGluIG15 IGxvbmcgdG8tZG8gbGlzdCwgSSB3aWxsIHRyeSB0byBnZXQgYmFjayB0byB0aGlzIGluIGNvdXBs ZSB3ZWVrcy4NCj5JIHRoaW5rIHRoZSB3YXkgaG93IHlvdSBhcmUgZGVhbGluZyB3aXRoIGl0IG5v d2FkYXlzIGlzIHRoZSBiZXN0IHdheSB0byB0cnkgdG8gZGlzY292ZXIgdGhlIENQVSBjYXBhYmls aXRpZXMsIGJldHRlciBpbiB0aGlzIHdheSB0aGFuIGxldCB0aGUgdXNlcnMgYmxpbmQuDQo+QmVz dCwNClRoYW5rcyBNYXJjZWxvLA0KDQpJdOKAmXMgbm90IGV4YWN0bHkgY3JpdGljYWwuIEkganVz dCBzYXcgYW5vdGhlciBwcm9qZWN0IHVzaW5nIHZteC5pbml0aWFsaXplZCBhbmQgaXQgc2VlbWVk IGEgbXVjaCBjbGVhbmVyIHdheSB0byBkZXRlcm1pbmUgc3VwcG9ydCBieSBzZWVpbmcgaWYgdm1t IGxvYWRzIHJhdGhlciB0aGFuIHByb2JpbmcgbG9nIGZpbGVzLiBJIGFza2VkIGhlcmUgZXhwZWN0 aW5nIHNvbWVvbmUgdG8ganVzdCBzYXkg4oCceWVzIGlmIHRoYXTigJlzIDEgdGhlbiB0aGUgaG9z dCB3aWxsIHJ1biBndWVzdHPigJ0sIG9yIOKAnG5vIHlvdSBjYW7igJl0IHRlbGwgaWYgZ3Vlc3Rz IHdpbGwgcnVuIGp1c3QgYnkgdGhhdCBzeXNjdGzigJ0uDQoNCk1hdHQNCg==