Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3745177ybi; Mon, 27 May 2019 05:23:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqxOT0G9OASGAn8zYdHMMaHTjTKDb5TTrM8CrbELL4K42Y8nO4q3KlgUtQmksmVjYX4U4rb9 X-Received: by 2002:a17:90a:b396:: with SMTP id e22mr30661213pjr.76.1558959780227; Mon, 27 May 2019 05:23:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558959780; cv=none; d=google.com; s=arc-20160816; b=uq39XxfO51SqsZu6qUvhY9LfCFEZ0s6EaowwHrRNviy4Y4B9/C7Pp/RkZMI5ggSdRv dIkWbaOM8oWdD0tK75xVwKuTT7kPhLEfWohOwAYZQb8t+4W/wBJdxb7pHrXc8t7++6W4 ZpCmJTlLk3fimXBe60W1FbRM4lTt9Vab47/rd1W1FJAZkS1HrX56g5DLUvzSTjbCzq+b +SAEwrx+fMycgxSZgbl812/qWeJxQRcVZdhHRuVtZXAKEnhvzAU5p53XZ9pcaTF1LerM Eo8MXfBHb8GXYrbi5X52l6a6d5VQlszu6n/yn4UcK1R2thcyq6hsk8JEAPPQoRLkp4nB qpJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=GHyI905wxg52zune3wFWxZfBIbFgZ2QJFyGzJEJk7r4=; b=XGO9SD8zKccYri8QQKbDbJtIid5Than6J6JNeUnyKNEyJ2vvkf4wmpAidmwt7vYGaS lbsdrBiY/G9gjYnm1ewO5CIN6yJxLJMlr8vdopagatUjd6BK4+G3JMhFk6tNyN6rl3uP CgAd6RVKmbG+QnA9Ab0z9gBTYgVN5oYoV0+sHCn/J+/bJx9TnbNqXzTNaNn/xNpmuKk4 ZEaVlWQi4ERGecvGPZqpfaGLOVYgOX80qS9JlPqiOkSbbK4EJqyafnE7pRfu+bj2eL+h yiOv6zO3eJgZvKoBKFHbzDPARpGLwVFqmdNdl+/nZ8aXVpEV1Ifmy1htIAxjJxIO2p/8 OBhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@insidesecure.onmicrosoft.com header.s=selector1-insidesecure-onmicrosoft-com header.b=m0vAerHO; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id cj16si19203449plb.239.2019.05.27.05.22.39; Mon, 27 May 2019 05:23:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@insidesecure.onmicrosoft.com header.s=selector1-insidesecure-onmicrosoft-com header.b=m0vAerHO; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726432AbfE0MWT (ORCPT + 99 others); Mon, 27 May 2019 08:22:19 -0400 Received: from mail-eopbgr130118.outbound.protection.outlook.com ([40.107.13.118]:61025 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726312AbfE0MWT (ORCPT ); Mon, 27 May 2019 08:22:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=insidesecure.onmicrosoft.com; s=selector1-insidesecure-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GHyI905wxg52zune3wFWxZfBIbFgZ2QJFyGzJEJk7r4=; b=m0vAerHOzMOvlbGjBHs3lVRqS4CRYACUQz1kFl0aTddvFIwLek1ToMKVfu3gI3K2NQ6OkHZ8DykkRoaaX5zExVgYnXTddRiqSpgTi0NoysZlhRI2c9mVwcS7GMv0LXPpGA7fJ3gXUjvxLoBZfGct+L5u5Z+kCyFWFMzstwb5gLg= Received: from AM6PR09MB3523.eurprd09.prod.outlook.com (10.255.99.206) by AM6PR09MB2806.eurprd09.prod.outlook.com (20.179.1.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1922.16; Mon, 27 May 2019 12:22:14 +0000 Received: from AM6PR09MB3523.eurprd09.prod.outlook.com ([fe80::8c11:e692:3a44:a3a9]) by AM6PR09MB3523.eurprd09.prod.outlook.com ([fe80::8c11:e692:3a44:a3a9%6]) with mapi id 15.20.1922.021; Mon, 27 May 2019 12:22:14 +0000 From: Pascal Van Leeuwen To: Ard Biesheuvel CC: Christophe Leroy , "linux-crypto@vger.kernel.org" Subject: RE: another testmgr question Thread-Topic: another testmgr question Thread-Index: AQHVEZmK2bzdbrfsm0iVWRutGLPeSaZ5GFjggAAKVYCAAAs7wIAAMw6AgACM6vCAAAlSgIAAAtPQgAAIJACAAAD1MIAABH2AgAS0FFCAAAQtAIAAAZkAgAAJO4CAAADysIAABwUAgAAHPfA= Date: Mon, 27 May 2019 12:22:13 +0000 Message-ID: References: <20190523185833.GA243994@google.com> <20190523200557.GA248378@gmail.com> <20190523234853.GC248378@gmail.com> <907eb6a5-dc76-d5ee-eccf-e7bd426a0868@c-s.fr> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=pvanleeuwen@insidesecure.com; x-originating-ip: [188.204.2.113] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 24bb615c-88be-4020-7c80-08d6e29df36b x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:AM6PR09MB2806; x-ms-traffictypediagnostic: AM6PR09MB2806: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0050CEFE70 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(366004)(396003)(39850400004)(376002)(346002)(199004)(189003)(54014002)(6116002)(2906002)(476003)(11346002)(446003)(486006)(15974865002)(66066001)(3846002)(66946007)(66476007)(66556008)(76116006)(73956011)(66446008)(64756008)(14454004)(478600001)(6436002)(229853002)(6916009)(55016002)(7116003)(86362001)(68736007)(9686003)(8936002)(71200400001)(6246003)(33656002)(71190400001)(53936002)(3480700005)(7736002)(52536014)(305945005)(256004)(14444005)(81156014)(5660300002)(8676002)(316002)(6506007)(76176011)(102836004)(7696005)(99286004)(25786009)(74316002)(4326008)(81166006)(54906003)(186003)(26005)(18886075002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM6PR09MB2806;H:AM6PR09MB3523.eurprd09.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: insidesecure.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: UybOdmC4r5oTy1zjBbKCDTJd8GgcNyfouI8UwVRdh92j/BSI3CT/4gN2M9Up0lvjPWidkD3lrpvL+CjmUd2xfNjGFdCPe+oAapaKKgnetRg/i49E8/8zyoe1xWiNhak04LaYHJDaxYb0hAATTnGFYBtwmBfCiyPNhYbavh+HshsLkRXyT3r2hPoc4z7XEBY4jS4lyOnbixH5ram5I+s91ym734HezkgEWOGw84cRORT4GzkN8BMfCdoShV116Kky/73U0YpN83faJez9OctiHurvlTTY0L3fpgwNm1hj8MYf5yy772RpaHwK70cZzVzsm0dLOdRdDeXWl5QCjeT+6JEU4Y/ApuW1D2am75I9AdMNMswLnp9A8Yc8DaXrLEdy6HDhf/m2xAHazvNz3U3F+T1mNPLs9pIFyuY2IjgrmCM= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: insidesecure.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24bb615c-88be-4020-7c80-08d6e29df36b X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2019 12:22:14.0055 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3c07df58-7760-4e85-afd5-84803eac70ce X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pvanleeuwen@insidesecure.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR09MB2806 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Pg0KPiBJIHVuZGVyc3RhbmQgdGhhdC4gQnV0IGV2ZW4gaWYgdGhlIGFwcGxpY2F0aW9uIGlzIHN5 bmNocm9ub3VzLCBpdCBkb2VzDQo+IG5vdCBtZWFuIHRoYXQgdGhlIHdob2xlIHdvcmxkIHN0b3Bz IGFuZCBub3RoaW5nIGlzIHVzaW5nIHRoZQ0KPiBhY2NlbGVyYXRvciBpbiB0aGUgbWVhbiB0aW1l Lg0KPg0KSSB1bmRlcnN0YW5kIHRoYXQgYXMgd2VsbC4gQnV0IHRoYXQgZG9lc24ndCBjaGFuZ2Ug dGhlIGZhY3QgdGhhdCB0aGUNCmFwcGxpY2F0aW9uIG1heSBiZSB3YWl0aW5nIGZvciBhIGxvb29v b29uZyAocmVsYXRpdmVseSBzcGVha2luZykgdGltZQ0KZm9yIGl0J3MgcmVzdWx0cy4gQXMgbGF0 ZW5jeSB0aHJvdWdoIGhhcmR3YXJlIG1heSBiZSBzZXZlcmFsIG9yZGVycyBvZg0KYSBtYWduaXR1 ZGUgbGFyZ2VyIHRoYW4gdGhlIHRpbWUgaXQgYWN0dWFsbHkgdGFrZXMgdG8gKnByb2Nlc3MqIHRo ZQ0KcmVxdWVzdC4gIFNvIHdoZW4gdXNlZCBzeW5jaHJvbm91c2x5IHRoZSBIVyBtYXkgYXBwZWFy IHRvIHdvcmsgYXQgYSBtZXJlDQpmcmFjdGlvbiBvZiBpdHMgdHJ1ZSBwZXJmb3JtYW5jZS4NCg0K QW5kIGlmIHlvdXIgbWFpbiBpbnRlcmVzdCBpcyBpbiB0aGF0IGFwcGxpY2F0aW9uLCB5b3UgbWF5 IG5vdCBjYXJlIHNvDQptdWNoIGFib3V0IHdoYXQgdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSBkb2Vz LCBldmVuIGlmIGl0IGNhbiB1c2UgdGhlDQpyZW1haW5pbmcgYmFuZHdpZHRoIG9mIHRoZSBhY2Nl bGVyYXRvci4NCg0KSW4gd2hpY2ggY2FzZSBpdCBtYXkgYmUgZGVzaXJhYmxlICpub3QqIHRvIHVz ZSB0aGUgYWNjZWxlcmF0b3IgZm9yIHRoYXQNCmFwcGxpY2F0aW9uIGF0IGFsbCBkdWUgdG8gKnZl cnkqIHBvb3IgcGVyZm9ybWFuY2UgKGZvciB0aGF0IGFwcGxpY2F0aW9uKS4NCg0KV2hpY2ggd291 bGQgbWFrZSBldmVuIG1vcmUgY3ljbGVzIG9uIHRoZSBhY2NlbGVyYXRvciBhdmFpbGFibGUgdG8g dGhlDQpvdGhlciBhcHBsaWNhdGlvbnMgaW4gdGhlIHN5c3RlbSwgc28gdGhhdCBrbmlmZSBjdXRz IGJvdGggd2F5cyAuLi4NCg0KPiA+ID4gVGhpcyBpcyBtYWRlIHdvcnNlIGJ5IHRoZSBwcmlvcml0 eSBzY2hlbWUsIHdoaWNoIGRvZXMgbm90IHJlYWxseQ0KPiA+ID4gY29udmVyeSBpbmZvcm1hdGlv biBsaWtlIHRoaXMuDQo+ID4gPg0KPiA+IFllcywgdGhlIHByaW9yaXR5IHNjaGVtZSBpcyBmYXIg dG9vIHNpbXBsaXN0aWMgdG8gY292ZXIgYWxsIGRldGFpbHMNCj4gPiByZWdhcmRpbmcgaGFyZHdh cmUgYWNjZWxlcmF0aW9uLiBXaGljaCB3aHkgd2UgcHJvYmFibHkgc2hvdWxkbid0IHVzZQ0KPiA+ IGl0IHRvIHNlbGVjdCBoYXJkd2FyZSBkcml2ZXJzIGF0IGFsbC4NCj4gPg0KPiA+ID4gPiBCdXQg dGhlbiBhZ2FpbiB0aGF0IHdvdWxkIHN0aWxsIGJlIHRvbyBzaW1wbGlzdGljIHRvIHNlbGVjdCB0 byBiZXN0DQo+ID4gPiA+IGRyaXZlciB1bmRlciBhbGwgcG9zc2libGUgY2lyY3Vtc3RhbmNlcyAu Li4gc28gd2h5IGV2ZW4gYm90aGVyLg0KPiA+ID4gPg0KPiA+ID4gPiA+IGZsYWcgZm9yIHRoYXQu IEJ1dCBldmVuIGlmIHRoYXQgZG9lcyBoYXBwZW4sIGl0IGRvZXNuJ3QgbWVhbiB5b3UgY2FuDQo+ ID4gPiA+ID4gc3RvcCBjYXJpbmcgYWJvdXQgemVybyBsZW5ndGggaW5wdXRzIDotKQ0KPiA+ID4g PiA+DQo+ID4gPiA+IElmIHRoZSBzZWxlY3Rpb24gb2YgdGhlIGhhcmR3YXJlIGRyaXZlciBiZWNv bWVzIGV4cGxpY2l0IGFuZCBub3QNCj4gPiA+ID4gYXV0b21hdGljLCB5b3UgY291bGQgYXJndWUg Zm9yIGEgY2FzZSB3aGVyZSB0aGUgZHJpdmVyIGRvZXMgTk9UIGhhdmUNCj4gPiA+ID4gdG8gaW1w bGVtZW50IGFsbCBkYXJrIGNvcm5lcnMgb2YgdGhlIEFQSS4gQXMsIGFzIGEgaGFyZHdhcmUgdmVu ZG9yLA0KPiA+ID4gPiB3ZSBjb3VsZCBzaW1wbHkgcmVjb21tZW5kIE5PVCB0byB1c2UgaXQgZm9y IGFwcGxpY2F0aW9uIFhZWiAgYmVjYXVzZQ0KPiA+ID4gPiBpdCBkb2VzIHRoaW5ncyAtIGxpa2Ug emVybyBsZW5ndGggbWVzc2FnZXMgLSB3ZSBkb24ndCBzdXBwb3J0Lg0KPiA+ID4gPg0KPiA+ID4N Cj4gPiA+IFNwb2tlbiBsaWtlIGEgdHJ1ZSBoL3cgZ3V5IDotKQ0KPiA+ID4NCj4gPiBHdWlsdHkg YXMgY2hhcmdlZC4gSSBBTSBhIHRydWUgSC9XIGd1eSBhbmQgbm90IGEgc29mdHdhcmUgZW5naW5l ZXIgYXQgYWxsLg0KPiA+IEJ1dCBoYXZlIHlvdSBldmVyIHN0b3BwZWQgdG8gd29uZGVyIFdIWSBh bGwgaGFyZHdhcmUgZ3V5cyB0YWxrIGxpa2UgdGhhdD8NCj4gPiBNYXliZSwganVzdCBtYXliZSwg dGhleSBoYXZlIGEgZGFtbiBnb29kIHJlYXNvbiB0byBkbyBzbyAuLi4NCj4gPg0KPg0KPiBPZiBj b3Vyc2UuIEFuZCBzbyBkbyB3ZS4gQW5kIHRoYXQgaXMgd2h5IHdlIG1lZXQgaW4gdGhlIG1pZGRs ZSB0byBjb21wcm9taXNlLg0KPg0KWWVzLCB3ZSB0cnkgd2hlcmUgd2UgY2FuLiBCdXQgeW91IGhh dmUgdG8gcmVtZW1iZXIgdGhhdCB1bHRpbWF0ZWx5IGhhcmR3YXJlDQppcyBib3VuZCBieSB0aGUg bGltaXRhdGlvbnMgb2YgdGhlIHBoeXNpY2FsIHdvcmxkLiBXaGljaCBkb2Vzbid0IGNvbXByb21p c2UgOi0pDQpBbmQgY29tcHJvbWlzZXMgaGF2ZSBjb25zZXF1ZW5jZXMgdGhhdCBuZWVkIHRvIGJl IGNhcmVmdWxseSBjb25zaWRlcmVkLg0KDQpBZGRpbmcgdG9ucyBvZiB3b3JrYXJvdW5kcyB0byBk cml2ZXJzLCBmb3IgZXhhbXBsZSwgc2xvd3MgdGhlbSBkb3duLCBtYWtlcyB0aGVtDQp1c2UgbW9y ZSBDUFUgY3ljbGVzIGFuZCBtb3JlIHBvd2VyLCBhbmQgdWx0aW1hdGVseSBkZWZlYXRzIHRoZSBw dXJwb3NlIG9mIGhhdmluZw0KYSBoYXJkd2FyZSBhY2NlbGVyYXRvciBhdCBhbGwuIFRoYXQgaXMg YWN0dWFsbHkgbXkgY29uY2Vybi4NCkFuZCBhcyBhbiBhc2lkZSwgb25jZSB3b3JrYXJvdW5kcyBo YXZlIGJlZW4gaW1wbGVtZW50ZWQgYW5kIHByb3ZlbiB0byAid29yayIsIHRoZQ0KdW5kZXJseWlu ZyBpc3N1ZSByYXJlbHkgbWFrZXMgaXQgdG8gdGhlIEhXIGd1eXMgc28gd2UncmUgc3R1Y2sgd2l0 aCBpdCBmb3JldmVyLg0KDQo+ID4gPiBPdXIgY3J5cHRvIHMvdyBzdGFjayBhbmQgdGhlIHN0b3Jh Z2UsIG5ldHdvcmtpbmcgYW5kIG90aGVyIHN1YnN5c3RlbXMNCj4gPiA+IHRoYXQgYXJlIGxheWVy ZWQgb24gdG9wIG9mIGl0IGFyZSBjb21wbGV4IGVub3VnaCB0aGF0IHdlIHNob3VsZG4ndCB0cnkN Cj4gPiA+IHRvIGNhdGVyIGZvciBub24tY29tcGxpYW50IGhhcmR3YXJlLiBUaGlzIGlzIHdoeSB5 b3UgbmVlZCB0byBmaXggdGhpcw0KPiA+ID4gaW4geW91ciBkcml2ZXI6IHRvIHByZXZlbnQgdGhl IGlzc3VlIGZyb20gbGVha2luZyBpbnRvIG90aGVyIGxheWVycywNCj4gPiA+IG1ha2luZyBpdCBl dmVuIG1vcmUgZGlmZmljdWx0IHRvIGRvIHRlc3RpbmcgYW5kIHZhbGlkYXRpb24uDQo+ID4gPg0K PiA+IE5vdyB3aGVyZSBhbSBJIHN1Z2dlc3RpbmcgdGhhdCBhcHBsaWNhdGlvbnMgc2hvdWxkIGNh dGVyIGZvciBub24tY29tcGxpYW50DQo+ID4gaGFyZHdhcmU/IEknbSBzaW1wbHkgc3VnZ2VzdGlu ZyB0aGF0IHlvdSBzaG91bGQgTk9UIHVzZSB0aGUgaGFyZHdhcmUgZm9yDQo+ID4gc3VjaCBhbiBh cHBsaWNhdGlvbiBhdCBhbGwuIElmIHlvdSBtYWtlIGl0IGV4cGxpY2l0LCB5b3UgY2FuIGRvIHRo YXQuDQo+ID4NCj4gPiBBbmQgYmVzaWRlcywgd2hvIGRlY2lkZXMgd2hhdCBpcyAiY29tcGxpYW50 IiBhbmQgd2hhdCB0aGUgcnVsZXMgYXJlPw0KPg0KPiBJZiB0aGUgYWxnb3JpdGhtIGluIHF1ZXN0 aW9uIGlzIGRlZmluZWQgZm9yIHplcm8gbGVuZ3RoIGlucHV0cywgYnV0DQo+IHRoZSBoL3cgY2hv b3NlcyBub3QgdG8gaW1wbGVtZW50IHRoYXQgY2FzZSwgSSB0aGluayBub24tY29tcGxpYW50IGlz IGENCj4gcmF0aGVyIG5pY2Ugd2F5IHRvIHNheSAnYnJva2VuJy4NCj4NCk5PLiBIYXJkd2FyZSBp cyBicm9rZW4gaWYgaXQgZG9lc24ndCBjb21wbHkgdG8gaXRzIG93biBzcGVjaWZpY2F0aW9ucyAt DQp3aGljaCAqbWF5KiBpbmNsdWRlIHJlZmVyZW5jZXMgdG8gaW5kdXN0cnkgc3RhbmRhcmRzIGl0 IG11c3QgY29tcGx5IHdpdGguDQpJZiBJIGludGVudGlvbmFsbHkgc3BlY2lmeSB0aGF0IHplcm8g bGVuZ3RoIGhhc2hlcyBhcmUgbm90IHN1cHBvcnRlZCwgYW5kDQpJIGRvbid0IHByZXRlbmQgdG8g Y29tcGx5IHdpdGggYW55IGluZHVzdHJ5IHN0YW5kYXJkIHRoYXQgcmVxdWlyZXMgdGhlbSwNCnRo ZW4gdGhhdCdzIGp1c3QgYSAqbGltaXRhdGlvbiogb2YgdGhlIGhhcmR3YXJlLCBtb3N0IGNlcnRh aW5seSBub3QgYSBidWcuDQpXaGljaCBtYXkgYmUgcGVyZmVjdGx5IHZhbGlkIGFzIGhhcmR3YXJl IGlzIHVzdWFsbHkgY3JlYXRlZCBmb3Igc3BlY2lmaWMNCnVzZSBjYXNlcy4NCkluIHRoZSBjYXNl IG9mIHRoZSBJbnNpZGUgU2VjdXJlIEhXL2RyaXZlcjogbWFpbmx5IElQc2VjIGFuZCBwZXJoYXBz IGRpc2sNCmVuY3J5cHRpb24sIGJ1dCBjZXJ0YWlubHkgbm90IFllIE9sZGUncyBiYXNpYyByYW5k b20gY3J5cHRvIHJlcXVlc3QuDQoNCkhhcmR3YXJlIG5lY2Vzc2FyaWx5ICphbHdheXMqIGhhcyBs aW1pdGF0aW9ucyBiZWNhdXNlIG9mIGFsbCBraW5kcyBvZg0KY29uc3RyYWludHM6IGFyZWEsIHBv d2VyLCBjb21wbGV4aXR5LiBBbmQgZXZlbiBzb21ldGhpbmcgYXMgbXVuZGFuZSBhcyBhDQpzY2hl ZHVsZSBjb25zdHJhaW50IHdoZXJlIHlvdSBzaW1wbHkgY2FuJ3QgZml0IGFsbCBkZXNpcmVkIGZl YXR1cmVzIGluIHRoZQ0KZGVzaXJlZCBzY2hlZHVsZS4gV2hpY2ggaXMgdXN1YWxseSB2ZXJ5IHNv bGlkIGR1ZSB0byB0aW1lc2xvdHMgYmVpbmcNCnBsYW5uZWQgaW4gYSBmYWIgZXRjLiBXZSBkb24n dCBoYXZlIHRoZSBsdXh1cnkgb2YgZXh0ZW5kaW5nIG91ciBzY2hlZHVsZQ0KZm9yZXZlciBsaWtl IFNXIGd1eXMgdGVuZCB0byBkbyAuLi4gd2UncmUgdmVyeSBwcm91ZCBvZiBvdXIgdHJhY2sgcmVj b3JkDQpvZiBhbHdheXMgbWVldGluZyBvdXIgcHJvbWlzZWQgc2NoZWR1bGVzLiBQbHVzIC0gc2ls aWNvbiBjYW4ndCBiZSBwYXRjaGVkLA0Kc28gd2hhdCdzIGRvbmUgaXMgZG9uZSBhbmQgeW91IGhh dmUgdG8gbGl2ZSB3aXRoIGl0LiBGb3IgbWFueSB5ZWFycyB0bw0KY29tZSwgdXN1YWxseS4NCg0K PiBJIGtub3cgdGhlcmUgaXMgYSBncmFkaWVudCBoZXJlIGdvaW5nDQo+IGZyb20gaGFzaGVzLCBB RUFEcyB0byBzeW1tZXRyaWMgY2lwaGVycywgYnV0IEkgdGhpbmsgdGhpcyBhcHBsaWVzIHRvDQo+ IGFsbCBvZiB0aGVtLg0KPg0KPiA+IFBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBleGlzdGluZyBo YXJkd2FyZSBjYW5ub3QgYmUgY2hhbmdlZC4gU28gd2h5DQo+ID4gd2Fzbid0IHRoZSBBUEkgZGVz aWduZWQgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiAqZXhpc3RpbmcqIGhhcmR3YXJlPw0KPg0K PiBGcm9tIGEgc29mdHdhcmUgcG9pbnQgb2YgdmlldywgYWRkaW5nIHNwZWNpYWwgY2FzZXMgZm9y IHplcm8gbGVuZ3RoDQo+IGlucHV0cyBhbW91bnRzIHRvIHdoYXQgeW91IGFyZSB0cnlpbmcgdG8g YXZvaWQ6IHVzaW5nIG1vcmUgJ3NpbGljb24NCj4gYXJlYScuDQo+DQpObywgdGhhdCdzIGFjdHVh bGx5IG5vdCB0aGUgcmVhc29uIGF0IGFsbCBpbiB0aGlzIGNhc2UuIFdlJ3JlIHRyeWluZyB0bw0K YXZvaWQgc2lnbmlmaWNhbnQgZXh0cmEgY29tcGxleGl0eSBhbmQgZWZmb3J0IG9uIGJvdGggdGhl IGhhcmR3YXJlIGl0c2VsZg0KYW5kIHRoZSB2ZXJpZmljYXRpb24gdGhlcmVvZi4gU2lsaWNvbiBh cmVhIGlzIG5vdCBldmVuIGluIHRoZSBwaWN0dXJlIGFzDQphIGNvbmNlcm4gZm9yIHNvbWV0aGlu ZyBhcyAic21hbGwiIGFzIHRoaXMuDQoNCkFkZGluZyB6ZXJvIGxlbmd0aCBzdXBwb3J0IHRvIG91 ciBoYXJkd2FyZSBhcmNoaXRlY3R1cmUgaXMgbm90IGEgdHJpdmlhbA0KZXhlcmNpc2UuIEFuZCB0 aGVuIHlvdSBoYXZlIHRvIHdlaWdoIGFkZGVkIGNvbXBsZXhpdHkgLSA9YWRkZWQgcmlzaywgd2hl bg0KeW91IHRhbGsgYWJvdXQgaGFyZHdhcmUgd2l0aCBtdWx0aS1taWxsaW9uIGRvbGxhciBtYXNr IHNldHMgaW4gcGxheSAtDQphZ2FpbnN0IHVzZWZ1bG5lc3MuIFplcm8tbGVuZ3RoIHN1cHBvcnQg d2FzIC0gYW5kIHN0aWxsIGlzISAtIHNpbXBseSBub3QNCndvcnRoIHRoZSBhZGRlZCByaXNrIGFu ZCBlZmZvcnQuDQoNCj4gUHJvcGVyIHZhbGlkYXRpb24gcmVxdWlyZXMgY292ZXJhZ2UgYmFzZWQg dGVzdGluZywgaS5lLiwgdGhhdCBhbGwNCj4gc3RhdGVtZW50cyBpbiBhIHByb2dyYW0gY2FuIGJl IHByb3ZlbiB0byBiZSBleGVyY2lzZWQgYnkgc29tZSB1c2UNCj4gY2FzZSwgYW5kIHByb2R1Y2Ug dGhlIGNvcnJlY3QgcmVzdWx0Lg0KPg0KPiBUaGlzIG1lYW5zIHRoYXQsIGlmIHdlIGhhdmUgdG8g YWRkICdpZiAobWVzc2FnZV9sZW5ndGggPiAwKSB7IGRvIHRoaXM7DQo+IH0gZWxzZSB7IGRvIHRo YXQ7IH0nIGV2ZXJ5d2hlcmUsIHdlIGFyZSBtb3ZpbmcgdGhlIGVmZm9ydCBmcm9tIHlvdXINCj4g Y29ybmVyIHRvIG1pbmUuIE9mIGNvdXJzZSBJIGFtIGdvaW5nIHRvIG9wcG9zZSB0byB0aGF0IDot KQ0KPg0KPiA+IEl0IGNhbiB0YWtlIHNldmVyYWwgeWVhcnMgZm9yIGEgaGFyZHdhcmUgZml4IHRv IHJlYWNoIHRoZSBlbmQgdXNlciAuLi4NCj4gPg0KPg0KPiBXaGlsZSBzb2Z0d2FyZSBpbXBsZW1l bnRhdGlvbnMgY2FuIHNvbWV0aW1lcyBiZSBmaXhlZCBxdWlja2x5LA0KPiBzb2Z0d2FyZSBBUElz IGhhdmUgKnJlYWxseSogbG9uZyBsaWZldGltZXMgYXMgd2VsbCwgZXNwZWNpYWxseSBpbiB0aGUN Cj4gc2VydmVyIHNwYWNlLiBBbmQgdW50aWwgeW91IGhhdmUgcmVhY2hlZCBzdWZmaWNpZW50IGNv dmVyYWdlIHdpdGggeW91cg0KPiB1cGRhdGVkIEFQSSwgeW91IGFyZSBzdHVjayB3aXRoIGJvdGgg dGhlIG9sZCBvbmUgYW5kIHRoZSBuZXcgb25lLCBzbw0KPiB5b3UgaGF2ZSBldmVuIG1vcmUgY29k ZSB0byB3b3JyeSBhYm91dC4NCj4NCj4gU28gYSBjcnlwdG8gQVBJIHdoZXJlIHplcm8gbGVuZ3Ro IGlucHV0cyBhcmUgbm90IHBlcm1pdHRlZCBvciB0cmVhdGVkDQo+IHNwZWNpYWxseSBpcyBub3Qg dGhlIHdheSB0byBmaXggdGhpcy4NCj4NCldlbGwsIGZvciBvbmUgdGhpbmcgZXZlbiBGSVBTIGNl cnRpZmljYXRpb24gYWxsb3dzIHplcm8gbGVuZ3RocyBub3QgdG8gYmUNCnN1cHBvcnRlZCBieSBh biBpbXBsZW1lbnRhdGlvbi4gU28gdGhlcmUncyBkZWZpbml0ZWx5IHByaW9yIGFydCB0byB0aGF0 Lg0KWW91IGNvdWxkIGhhbmRsZSB0aGlzIGJ5IG1lYW5zIG9mIGNhcGFiaWxpdHkgZmxhZ3Mgb3Ig cHJvZmlsZXMgb3Igd2hhdGV2ZXIuDQpCdXQgSSB3YXMgbm90IGV2ZW4gZ29pbmcgdGhhdCBmYXIg aW4gbXkgc3VnZ2VzdGlvbnMuDQoNCkkgd2FzIG1lcmVseSBzdWdnZXN0aW5nIHRoYXQgSUYgYSBk cml2ZXIgbmVlZHMgdG8gYmUgZXhwbGljaXRseSBzZWxlY3RlZCB0bw0KYmUgdXNlZCwgVEhFTiB5 b3UgY291bGQgYWxsb3cgdGhhdCBkcml2ZXIgdG8gYmUgbm90IGZ1bGx5IGNvbXBsaWFudCB0byBz b21lDQpleHRlbnQuIEFuZCB0aGVuIHRoZSBkcml2ZXIgY291bGQgY29tZSB3aXRoIGEgUkVBRE1F IG9yIHNvIC0gbWFpbnRhaW5lZCBieQ0KdGhlIEhXIHZlbmRvciAtIGRldGFpbGluZyB3aGljaCB1 c2UgY2FzZXMgaGF2ZSBhY3R1YWxseSBiZWVuIHZhbGlkYXRlZCB3aXRoDQppdC4NCg0KPiA+IEFz IGZvciB0ZXN0aW5nIGFuZCB2YWxpZGF0aW9uOiBpZiB0aGUgc2VsZWN0aW9uIGlzIGV4cGxpY2l0 LCB0aGVuIHRoZQ0KPiA+IHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgdGVzdGluZyBhbmQgdmFsaWRh dGlvbiBjYW4gbW92ZSB0byB0aGUgSFcgdmVuZG9yLg0KPiA+DQo+DQo+IEkgdGhpbmsgdGhlIGJv dHRvbSBsaW5lIGlzIHN0aWxsIHRvIGZpeCB0aGUgZHJpdmVyIGFuZCBiZSBkb25lIHdpdGgNCj4g aXQuIEkgaG9uZXN0bHkgZG9uJ3QgY2FyZSBhYm91dCB3aGF0IGV4YWN0bHkgeW91ciBoL3cgc3Vw cG9ydHMsIGFzDQo+IGxvbmcgYXMgdGhlIGRyaXZlciB0aGF0IGVuY2Fwc3VsYXRlcyBpdCBhZGRy ZXNzZXMgdGhlIGltcGVkYW5jZQ0KPiBtaXNtYXRjaCBiZXR3ZWVuIHdoYXQgdGhlIGgvdyBsYXll ciBwcm92aWRlcyBhbmQgd2hhdCB0aGUgdXBwZXIgbGF5ZXINCj4gZXhwZWN0cy4NCj4NCkFuZCBp ZiB5b3UgZ28gdGhhdCBuYWl2ZSByb3V0ZSwganVzdCBmaXggZXZlcnl0aGluZyBpbiB0aGUgZHJp dmVyLCB0aGVuDQp5b3Ugc2ltcGx5IGVuZCB1cCB3aXRoIHNvbWV0aGluZyB0ZXJyaWJseSBpbmVm ZmljaWVudCBiZWNhdXNlIGFsbCB0aG9zZQ0KY29ybmVyIGNhc2UgY2hlY2tzIGVuZCB1cCBpbiB0 aGUgZmFzdCBwYXRoIGFuZCBlYXRpbmcgdXAgY29kZSBzcGFjZS4NCg0KRm9yIGEgc29tZW9uZSBj bGFpbWluZyB0byAibWVldCBpbiB0aGUgbWlkZGxlIHRvIGNvbXByb21pc2UiIHlvdSdyZQ0Kc3Vy ZWx5IG5vdCBjb21wcm9taXNpbmcgYW55dGhpbmcgYXQgYWxsIC4uLiBObyBvZmZlbnNlLg0KDQpS ZWdhcmRzLA0KUGFzY2FsIHZhbiBMZWV1d2VuDQpTaWxpY29uIElQIEFyY2hpdGVjdCwgTXVsdGkt UHJvdG9jb2wgRW5naW5lcyBAIEluc2lkZSBTZWN1cmUNCnd3dy5pbnNpZGVzZWN1cmUuY29tDQo=