From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2FA03C433ED for ; Tue, 20 Apr 2021 16:09:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DC3A361003 for ; Tue, 20 Apr 2021 16:09:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232303AbhDTQJt (ORCPT ); Tue, 20 Apr 2021 12:09:49 -0400 Received: from frasgout.his.huawei.com ([185.176.79.56]:2891 "EHLO frasgout.his.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232174AbhDTQJt (ORCPT ); Tue, 20 Apr 2021 12:09:49 -0400 Received: from fraeml713-chm.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4FPpJl3SVrz6wjMq; Tue, 20 Apr 2021 23:59:03 +0800 (CST) Received: from fraeml714-chm.china.huawei.com (10.206.15.33) by fraeml713-chm.china.huawei.com (10.206.15.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 20 Apr 2021 18:09:14 +0200 Received: from fraeml714-chm.china.huawei.com ([10.206.15.33]) by fraeml714-chm.china.huawei.com ([10.206.15.33]) with mapi id 15.01.2176.012; Tue, 20 Apr 2021 18:09:14 +0200 From: Roberto Sassu To: Casey Schaufler , "zohar@linux.ibm.com" , "jmorris@namei.org" , "paul@paul-moore.com" CC: "linux-integrity@vger.kernel.org" , "linux-security-module@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "selinux@vger.kernel.org" , "reiserfs-devel@vger.kernel.org" Subject: RE: [PATCH 0/5] evm: Prepare for moving to the LSM infrastructure Thread-Topic: [PATCH 0/5] evm: Prepare for moving to the LSM infrastructure Thread-Index: AQHXMd7FgQB7iowx5ESkxCON7TnufKq16sKAgAFjQMCAADquAIAGBkBA Date: Tue, 20 Apr 2021 16:09:14 +0000 Message-ID: References: <20210415100435.18619-1-roberto.sassu@huawei.com> <7659b8cf-71cc-33b5-dbf1-3eb1ff159fe6@schaufler-ca.com> <2c944d6ddeed4519bdbf3733d7318a3d@huawei.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.221.98.153] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Precedence: bulk List-ID: PiBGcm9tOiBDYXNleSBTY2hhdWZsZXIgW21haWx0bzpjYXNleUBzY2hhdWZsZXItY2EuY29tXQ0K PiBTZW50OiBGcmlkYXksIEFwcmlsIDE2LCAyMDIxIDExOjI1IFBNDQo+IE9uIDQvMTYvMjAyMSA5 OjM3IEFNLCBSb2JlcnRvIFNhc3N1IHdyb3RlOg0KPiA+PiBGcm9tOiBDYXNleSBTY2hhdWZsZXIg W21haWx0bzpjYXNleUBzY2hhdWZsZXItY2EuY29tXQ0KPiA+PiBTZW50OiBUaHVyc2RheSwgQXBy aWwgMTUsIDIwMjEgMTA6NDQgUE0NCj4gPj4gT24gNC8xNS8yMDIxIDM6MDQgQU0sIFJvYmVydG8g U2Fzc3Ugd3JvdGU6DQo+ID4+PiBUaGlzIHBhdGNoIHNldCBkZXBlbmRzIG9uOg0KPiA+Pj4NCj4g Pj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWludGVncml0eS8yMDIxMDQwOTExNDMx My40MDczLTEtDQo+ID4+IHJvYmVydG8uc2Fzc3VAaHVhd2VpLmNvbS8NCj4gPj4+IGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL2xpbnV4LWludGVncml0eS8yMDIxMDQwNzEwNTI1Mi4zMDcyMS0xLQ0K PiA+PiByb2JlcnRvLnNhc3N1QGh1YXdlaS5jb20vDQo+ID4+PiBPbmUgb2YgdGhlIGNoYWxsZW5n ZXMgdGhhdCBtdXN0IGJlIHRhY2tsZWQgdG8gbW92ZSBJTUEgYW5kIEVWTSB0byB0aGUNCj4gTFNN DQo+ID4+PiBpbmZyYXN0cnVjdHVyZSBpcyB0byBlbnN1cmUgdGhhdCBFVk0gaXMgY2FwYWJsZSB0 byBjb3JyZWN0bHkgaGFuZGxlDQo+ID4+PiBtdWx0aXBsZSBzdGFja2VkIExTTXMgcHJvdmlkaW5n IGFuIHhhdHRyIGF0IGZpbGUgY3JlYXRpb24uIEF0IHRoZSBtb21lbnQsDQo+ID4+PiB0aGVyZSBh cmUgZmV3IGlzc3VlcyB0aGF0IHdvdWxkIHByZXZlbnQgYSBjb3JyZWN0IGludGVncmF0aW9uLiBU aGlzIHBhdGNoDQo+ID4+PiBzZXQgYWltcyBhdCBzb2x2aW5nIHRoZW0uDQo+ID4+Pg0KPiA+Pj4g RnJvbSB0aGUgTFNNIGluZnJhc3RydWN0dXJlIHNpZGUsIHRoZSBMU00gc3RhY2tpbmcgZmVhdHVy ZSBhZGRlZCB0aGUNCj4gPj4+IHBvc3NpYmlsaXR5IG9mIHJlZ2lzdGVyaW5nIG11bHRpcGxlIGlt cGxlbWVudGF0aW9ucyBvZiB0aGUgc2VjdXJpdHkgaG9va3MsDQo+ID4+PiB0aGF0IGFyZSBjYWxs ZWQgc2VxdWVudGlhbGx5IHdoZW5ldmVyIHNvbWVvbmUgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcN Cj4gPj4+IHNlY3VyaXR5IGhvb2suIEhvd2V2ZXIsIHNlY3VyaXR5X2lub2RlX2luaXRfc2VjdXJp dHkoKSBhbmQNCj4gPj4+IHNlY3VyaXR5X29sZF9pbm9kZV9pbml0X3NlY3VyaXR5KCkgYXJlIGN1 cnJlbnRseSBsaW1pdGVkIHRvIHN1cHBvcnQgb25lDQo+ID4+PiB4YXR0ciBwcm92aWRlZCBieSBM U00gYW5kIG9uZSBieSBFVk0uDQo+ID4+IFRoYXQgaXMgY29ycmVjdC4gQXQgcHJlc2VudCB0aGUg b25seSB0d28gbW9kdWxlcyB0aGF0IHByb3ZpZGUgZXh0ZW5kZWQNCj4gPj4gYXR0cmlidXRlcyBh cmUgU0VMaW51eCBhbmQgU21hY2suIFRoZSBMU00gaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZXMgbW9y ZQ0KPiA+PiBjaGFuZ2UsIGluY2x1ZGluZyBjaGFuZ2UgdG8gc2VjdXJpdHlfaW5vZGVfaW5pdF9z ZWN1cml0eSgpLCBiZWZvcmUgdGhvc2UNCj4gPj4gbW9kdWxlcyBjYW4gYmUgdXNlZCB0b2dldGhl ci4NCj4gPiBPbmUgb2YgdGhlIGdvYWxzIG9mIHRoaXMgcGF0Y2ggc2V0IGlzIHRvIHNvbHZlIHRo ZSBzcGVjaWZpYyBwcm9ibGVtDQo+ID4gb2Ygc2VjdXJpdHlfaW5vZGVfaW5pdF9zZWN1cml0eSgp LCB3aGVuIGFyYml0cmFyeSBMU01zIGFyZSBhZGRlZA0KPiA+IHRvIHRoZSBMU00gaW5mcmFzdHJ1 Y3R1cmUuIEdpdmVuIHRoYXQgc29tZSBwcm9ibGVtcyBoYXZlDQo+ID4gYmVlbiBhbHJlYWR5IGlk ZW50aWZpZWQsIGFuZCB3aWxsIGFyaXNlIHdoZW4gYSBuZXcgTFNNDQo+ID4gcHJvdmlkaW5nIGFu IGltcGxlbWVudGF0aW9uIGZvciB0aGUgaW5vZGVfaW5pdF9zZWN1cml0eSBob29rDQo+ID4gd2ls bCBiZSBhZGRlZCB0byB0aGUgTFNNIGluZnJhc3RydWN0dXJlLCBpdCBzZWVtcyBhIGdvb2QgaWRl YQ0KPiA+IGZpeGluZyB0aGVtLiBXZSBjb3VsZCBkaXNjdXNzIGFib3V0IHRoZSBzb2x1dGlvbiwg aWYgdGhlcmUgaXMNCj4gPiBhIGJldHRlciBhcHByb2FjaC4NCj4gPg0KPiA+Pj4gSW4gYWRkaXRp b24sIHVzaW5nIHRoZSBjYWxsX2ludF9ob29rKCkgbWFjcm8gY2F1c2VzIHNvbWUgaXNzdWVzLiBB Y2NvcmRpbmcNCj4gPj4+IHRvIHRoZSBkb2N1bWVudGF0aW9uIGluIGluY2x1ZGUvbGludXgvbHNt X2hvb2tzLmgsIGl0IGlzIGEgbGVnaXRpbWF0ZQ0KPiBjYXNlDQo+ID4+PiB0aGF0IGFuIExTTSBy ZXR1cm5zIC1FT1BOT1RTVVBQIHdoZW4gaXQgZG9lcyBub3Qgd2FudCB0byBwcm92aWRlIGFuDQo+ IHhhdHRyLg0KPiA+Pj4gSG93ZXZlciwgdGhlIGxvb3AgZGVmaW5lZCBpbiB0aGUgbWFjcm8gd291 bGQgc3RvcCBjYWxsaW5nIHN1YnNlcXVlbnQNCj4gTFNNcw0KPiA+Pj4gaWYgdGhhdCBoYXBwZW5z LiBJbiB0aGUgY2FzZSBvZiBzZWN1cml0eV9vbGRfaW5vZGVfaW5pdF9zZWN1cml0eSgpLCB1c2lu Zw0KPiA+Pj4gdGhlIG1hY3JvIHdvdWxkIGFsc28gY2F1c2UgYSBtZW1vcnkgbGVhayBkdWUgdG8g cmVwbGFjaW5nIHRoZSAqdmFsdWUNCj4gPj4+IHBvaW50ZXIsIGlmIG11bHRpcGxlIExTTXMgcHJv dmlkZSBhbiB4YXR0ci4NCj4gPj4gQXMgdGhlcmUgaXMgbm8gY2FzZSB3aGVyZSB0aGVyZSB3aWxs IGJlIG11bHRpcGxlIHByb3ZpZGVycyBvZiBob29rcyBmb3INCj4gPj4gaW5vZGVfaW5pdF9zZWN1 cml0eSB0aGlzIGlzbid0IGFuIGlzc3VlLg0KPiA+IEkgY291bGQgc2tpcCB0aGUgcGF0Y2hlcyB0 aGF0IGFyZSBub3QgcmVxdWlyZWQgdG8gc3VwcG9ydA0KPiA+IG11bHRpcGxlIExTTXMgcmVnaXN0 ZXJpbmcgdG8gdGhlIGlub2RlX2luaXRfc2VjdXJpdHkgaG9vaw0KPiA+IGFuZCBqdXN0IGRvIHRo ZSBFVk0gY2hhbmdlcyAoc2VlIGJlbG93IGZvciB0aGUgbW90aXZhdGlvbikuDQo+ID4NCj4gPj4+ IEZyb20gRVZNIHNpZGUsIHRoZSBmaXJzdCBvcGVyYXRpb24gdG8gYmUgZG9uZSBpcyB0byBjaGFu Z2UgdGhlIGRlZmluaXRpb24NCj4gPj4+IG9mIGV2bV9pbm9kZV9pbml0X3NlY3VyaXR5KCkgdG8g YmUgY29tcGF0aWJsZSB3aXRoIHRoZSBzZWN1cml0eSBob29rDQo+ID4+PiBkZWZpbml0aW9uLiBV bmZvcnR1bmF0ZWx5LCB0aGUgY3VycmVudCBkZWZpbml0aW9uIGRvZXMgbm90IHByb3ZpZGUgZW5v dWdoDQo+ID4+PiBpbmZvcm1hdGlvbiBmb3IgRVZNLCBhcyBpdCBtdXN0IGhhdmUgdmlzaWJpbGl0 eSBvZiBhbGwgeGF0dHJzIHByb3ZpZGVkIGJ5DQo+ID4+PiBMU01zIHRvIGNvcnJlY3RseSBjYWxj dWxhdGUgdGhlIEhNQUMuIFRoaXMgcGF0Y2ggc2V0IGNoYW5nZXMgdGhlIHNlY3VyaXR5DQo+ID4+ PiBob29rIGRlZmluaXRpb24gYnkgYWRkaW5nIHRoZSBmdWxsIGFycmF5IG9mIHhhdHRyIGFzIGEg cGFyYW1ldGVyLg0KPiA+PiBXaHkgZG8geW91IHdhbnQgdG8gY2FsbCBldm1faW5vZGVfaW5pdF9z ZWN1cml0eSgpIGFzIGEgcmVndWxhciBMU00gaG9vaz8NCj4gPj4gRXhjZXB0IGZvciB0aGUgbmFt ZXMgZXZtX2lub2RlX2luaXRfc2VjdXJpdHkoKSBhbmQNCj4gPj4gc2VsaW51eF9pbm9kZV9pbml0 X3NlY3VyaXR5KCkNCj4gPj4gaGF2ZSBub3RoaW5nIGluIGNvbW1vbi4gVGhleSBkbyB2ZXJ5IGRp ZmZlcmVudCB0aGluZ3MgYW5kIHJlcXVpcmUgZGlmZmVyZW50DQo+ID4+IGRhdGEsIGFzIGNvbWVz IG91dCBpbiB0aGUgcGF0Y2hlcy4NCj4gPiBJIHRob3VnaHQgdGhhdCBpdCB3b3VsZCBiZSBtb3Jl IGNsZWFuIGlmIGFsbCBob29rcyBhcmUgcmVnaXN0ZXJlZA0KPiA+IHRvIHRoZSBMU00gaW5mcmFz dHJ1Y3R1cmUuIE90aGVyd2lzZSwgaXQgY291bGQgaGFwcGVuIHRoYXQgc29tZQ0KPiA+IGhvb2tz IGFyZSBzdGlsbCBleGVjdXRlZCBldmVuIGlmIHRoZSBMU00gaXMgbm90IGFjdGl2ZSwgZnJvbSB0 aGUNCj4gPiBwZXJzcGVjdGl2ZSBvZiB0aGUgTFNNIGluZnJhc3RydWN0dXJlLg0KPiA+DQo+ID4g ZXZtX2lub2RlX2luaXRfc2VjdXJpdHkoKSBpcyBzdGlsbCBhIHByb3ZpZGVyIG9mIHhhdHRycywg bGlrZSB0aGUNCj4gPiBvdGhlciBMU01zLCBqdXN0IGl0IHJlcXVpcmVzIGFuIGV4dHJhIHBhcmFt ZXRlciB0byBjYWxjdWxhdGUNCj4gPiB0aGUgSE1BQy4NCj4gPg0KPiA+PiBUaGVyZSBhcmUgZXZt IGZ1bmN0aW9ucyB0aGF0IGNvdWxkIGJlIGltcGxlbWVudGVkIGFzIExTTSBob29rcy4gSSBkb24n dA0KPiB0aGluaw0KPiA+PiB0aGlzIGlzIG9uZSBvZiB0aGVtLiBUaGVyZSdzIG5vIHBvaW50IGlu IGdvaW5nIG92ZXJib2FyZC4NCj4gPiBJTUEgYW5kIEVWTSBib3RoIHVzZSBhIGNhY2hlIHRvIHN0 b3JlIHRoZSBpbnRlZ3JpdHkgdmVyaWZpY2F0aW9uLA0KPiA+IHdoaWNoIGlzIGN1cnJlbnRseSBu b3QgbWFuYWdlZCBieSB0aGUgTFNNIGluZnJhc3RydWN0dXJlIGJ1dA0KPiA+IGJ5IGFuIGFkLWhv YyBtZWNoYW5pc20gaW1wbGVtZW50ZWQgd2l0aCBhbiByYnRyZWUuDQo+ID4NCj4gPiBPbmUgb2Yg dGhlIGJlbmVmaXRzIG9mIGRlZmluaW5nIGJvdGggSU1BIGFuZCBFVk0gYXMgYW4gTFNNDQo+ID4g aXMgdGhhdCB3ZSBjYW4gc3dpdGNoIGZyb20gdGhpcyBhZC1ob2MgbWVjaGFuaXNtIHRvIHRoZSBv bmUNCj4gPiBpbXBsZW1lbnRlZCBmb3IgdGhlIExTTSBpbmZyYXN0cnVjdHVyZSwgd2l0aCBhIHNl YXJjaCBpbg0KPiA+IGNvbnN0YW50IHRpbWUuIEdpdmVuIHRoYXQgZXZtX2lub2RlX2luaXRfc2Vj dXJpdHkoKSB3b3VsZA0KPiA+IHVwZGF0ZSB0aGUgaW50ZWdyaXR5IHN0YXR1cyAoeGF0dHJzIGFy ZSBnb29kIGF0IGlub2RlIGNyZWF0aW9uDQo+ID4gdGltZSksIEkgd291bGQgYWRkIGl0IGFzIHdl bGwgdG8gdGhlIExTTSBpbmZyYXN0cnVjdHVyZS4NCj4gPg0KPiA+IE9uZSBhZGRpdGlvbmFsIG1v dGl2YXRpb24gZm9yIGRlZmluaW5nIEVWTSBhcyBhbiBMU00gaXMgdGhhdA0KPiA+IGl0IHdvdWxk IHNvbHZlIG9uZSBvZiB0aGUgRVZNIGxpbWl0YXRpb25zIHRoYXQgYWZmZWN0cyBpdHMNCj4gPiB1 c2FiaWxpdHk6IHBhcnRpYWwgY29weSBvZiB4YXR0cnMgKGUuZy4gYnkgY3AgYW5kIHRhcikgd291 bGQgbm90DQo+ID4gd29yayB3aGVuIGFuIEhNQUMga2V5IGlzIGxvYWRlZCBiZWNhdXNlLCBzaW5j ZSBFVk0gaW4NCj4gPiB0aGUgcG9zdCBzZXQvcmVtb3ZleGF0dHIgaG9vayBkb2VzIG5vdCBrbm93 IHRoZSBzdGF0dXMNCj4gPiBvZiB0aGUgbGFzdCBpbnRlZ3JpdHkgdmVyaWZpY2F0aW9uLCBpdCBo YXMgdG8gZGVueSB0aGUgcGVybWlzc2lvbg0KPiA+IHRvIHBlcmZvcm0gdGhlIHhhdHRyIG9wZXJh dGlvbiwgdG8gYXZvaWQgdGhhdCB0aGUgSE1BQyBpcw0KPiA+IGNhbGN1bGF0ZWQgb24gY29ycnVw dGVkIHhhdHRycy4gSGF2aW5nIHRoZSBzdGF0dXMgaW4gdGhlDQo+ID4gcGVyLWlub2RlIGJsb2Ig d291bGQgc29sdmUgdGhpcyBpc3N1ZSBtb3JlIGVmZmljaWVudGx5IHRoYW4NCj4gPiBhZGRpbmcg YSBjYWNoZSBmb3IgZWFjaCB2ZXJpZmllZCBpbm9kZSBpbiB0aGUgcmJ0cmVlLg0KPiA+DQo+ID4g V291bGQgeW91IHNlZSB0aGlzIGFzIGFuIHVzZWZ1bCBtb2RpZmljYXRpb24/DQo+IA0KPiBZZXMs IEkgdGhpbmsgdGhhdCB3b3VsZCBiZSB3b3J0aHdoaWxlLg0KPiANCj4gTXkgYmlnZ2VzdCBvYmpl Y3Rpb24gaXMgdG8gYWRkaW5nIGEgcGFyYW1ldGVyIHRvIHRoZSBob29rIGNhbGxzLg0KPiBUaGUg c2VjdXJpdHlfaW5vZGVfaW5pdF9zZWN1cml0eSgpIC0gc2VjdXJpdHlfb2xkX2lub2RlX2luaXRf c2VjdXJpdHkoKQ0KPiBvcmdhbml6YXRpb24gbG9va3Mgd3JvbmcgdG8gbWUgYXMgd3JpdHRlbi4N Cj4gDQo+IFRoZXJlIGFyZSByZWFsbHkgdGhyZWUgY2FzZXMgaGVyZToNCj4gCU5laXRoZXIgRVZN IG5vciBpbml0eGF0dHJzIC0gdGFrZW4gY2FyZSBvZiBieSB0aGUgIm9sZCIgdmFyaWFudC4NCj4g CUVWTSwgYnV0IG5vIGluaXR4YXR0cnMgLSB3aGljaCBkb2Vzbid0IGdhdGhlciB0aGUgRVZNIGRh dGEuDQo+IAlFVk0gYW5kIGluaXR4YXR0cnMgLSB3aGljaCBnYXRoZXJzIGFuZCB1c2VzIHRoZSBF Vk0gZGF0YS4NCj4gDQo+IFRoZSBjb2RlIHdlIGhhdmUgbm93IGlzIGNsZWFuZXN0IGZvciB0aGUg bGVhc3QgY29tbW9uICJvbGQiIHZhcmlhbnQsDQo+IHdoaWNoIGlzIHVzZWQgaW4gb25seSB0d28g cGxhY2VzLCByZWlzZXJmcyBhbmQgb2NmczIuIEkgd291bGQgc3VnZ2VzdA0KPiBhIHNsaWdodGx5 IGRpZmZlcmVudCBhcHByb2FjaCB0byBnZXR0aW5nIHlvdSB3aGF0IHlvdSdyZSBhZnRlci4NCj4g DQo+IExldCdzIGNoYW5nZSB0aGUgaG9vayBkZWZpbml0aW9uIGZvciBpbm9kZV9pbml0X3NlY3Vy aXR5IHRvIHRha2UgYQ0KPiBzdHJ1Y3QgeGF0dHIgKiBhbmQgdGhlIGZzX2RhdGEgcmF0aGVyIHRo YW4gdGhlIG5hbWUvdmFsdWUvbGVuZ3RoIHRyaXBsZS4NCg0KSSBhZGRlZCBzdHJ1Y3QgeGF0dHIg KiosIHdoaWNoIGlzIHVwZGF0ZWQgYnkgTFNNcyB3aXRoIHRoZSBzbG90IHRoZXkgZm91bmQsDQpz byB0aGF0IHNlY3VyaXR5X2lub2RlX2luaXRfc2VjdXJpdHkoKSBjaGVja3MgdGhlIHZhbGlkaXR5 IG9mIHRoZSB4YXR0ciAoaWYgYW4NCkxTTSByZXR1cm5lZCAwLCBib3RoIHRoZSBuYW1lIGFuZCB2 YWx1ZSBtdXN0IGJlIHNldCkuIElmIHRoaXMgaXMgbm90DQpuZWNlc3NhcnksIEkgc3dpdGNoIHRv IHN0cnVjdCB4YXR0ciAqLg0KDQo+IEl0IHdpbGwgcmVxdWlyZSBhIHRlbXBvcmFyeSBzdHJ1Y3Qg eGF0dHIgaW4gc2VjdXJpdHlfb2xkX2luaXRfaW5vZGVfc2VjdXJpdHksDQo+IGJ1dCB0aGF0J3Mg YSBjb3JuZXIgY2FzZSBhbnl3YXkuIFRoZSBzZWN1cml0eSBtb2R1bGUgc3BlY2lmaWMgY29kZSB3 b3VsZCBiZQ0KPiBlYXN5IHRvIGFkYXB0LiBJbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudCwgd2hl cmUgdGhlcmUgY2FuIG9ubHkgYmUgb25lDQo+IG1vZHVsZSBwcm92aWRpbmcgYSBob29rLCBTRUxp bnV4IG9yIFNtYWNrIHdpbGwgZmlsbCBpbiB0aGUgeGF0dHIgYW5kIHJldHVybi4NCj4gSW4gdGhl IGZ1dHVyZSB0aGUgbW9kdWxlcyB3aWxsIGhhdmUgdG8gZmluZCBhbiBlbXB0eSBzbG90IGZvciB0 aGVpciBkYXRhLg0KDQpJIHdhcyB0aGlua2luZyB0byBhZGQgdGhlIGNvZGUgYSBuZXcgTFNNIHNo b3VsZCBpbmNsdWRlIGJvdGggaW4gU0VMaW51eA0KYW5kIFNtYWNrLCBnaXZlbiB0aGF0IHByb2Jh Ymx5IHBlb3BsZSB1c2UgdGhlbSBhcyBhIHJlZmVyZW5jZS4NCg0KPiBJZiB5b3VyIGV2bV9pbml0 X2lub2RlX3NlY3VyaXR5KCkgaXMgcmVnaXN0ZXJlZCBsYXN0IHlvdSB3aWxsIGdldA0KPiB0aGUg ZGVzaXJlZCBiZWhhdmlvci4NCj4gDQo+IFRoZSBNQVhfTFNNX0VWTV9YQVRUUiB2YWx1ZSBjYW4g YmUgZWFzaWx5IGNvbXB1dGVkIGF0IGNvbXBpbGUgdGltZToNCj4gDQo+ICNkZWZpbmUgTUFYX0xT TV9FVk1fWEFUVFIgKCAxICsgXA0KPiAJKCBJU19FTkFCTEVEKENPTkZJR19TRUNVUklUWV9TRUxJ TlVYKSA/IDEgOiAwICkgKyBcDQo+IAkoIElTX0VOQUJMRUQoQ09ORklHX1NFQ1VSSVRZX1NNQUNL KSA/IDEgOiAwKSApDQo+IFllcywgeW91J2xsIHdhc3RlIHN0YWNrIGlmIG9ubHkgb25lIG9mIHRo ZSBtb2R1bGVzIGlzIGFjdGl2ZS4NCj4gT24gdGhlIG90aGVyIGhhbmQsIGlmIHlvdSBvbmx5IGNv bXBpbGUgaW4gb25lIHRoZSB2YWx1ZSB3aWxsIGJlDQo+IHBlcmZlY3QgYW5kIHlvdSdsbCBhdm9p ZCBhbGxvY2F0aW9uIGFuZCBhc3NvY2lhdGVkIGhlYWRhY2hlcy4NCg0KR2l2ZW4gdGhhdCB0aGVy ZSBpcyBhbGxvY2F0aW9uIGZvciB0aGUgdmFsdWUgYW55d2F5LCB3b3VsZCBpdCBiZQ0KYSBiaWcg cHJvYmxlbSB0byBhbGxvY2F0ZSB0aGUgeGF0dHIgYXJyYXkgdG9vPyBUaGUgYWR2YW50YWdlDQp3 b3VsZCBiZSB0byBtYWtlIHRoZSBjb2RlIHJlYWR5IGZvciBkZXZlbG9wbWVudCBvZiBuZXcgTFNN cy4NCg0KVGhhbmtzDQoNClJvYmVydG8NCg0KSFVBV0VJIFRFQ0hOT0xPR0lFUyBEdWVzc2VsZG9y ZiBHbWJILCBIUkIgNTYwNjMNCk1hbmFnaW5nIERpcmVjdG9yOiBMaSBQZW5nLCBMaSBKaWFuLCBT aGkgWWFubGkNCg0KPiA+IFRoYW5rcw0KPiA+DQo+ID4gUm9iZXJ0bw0KPiA+DQo+ID4gSFVBV0VJ IFRFQ0hOT0xPR0lFUyBEdWVzc2VsZG9yZiBHbWJILCBIUkIgNTYwNjMNCj4gPiBNYW5hZ2luZyBE aXJlY3RvcjogTGkgUGVuZywgTGkgSmlhbiwgU2hpIFlhbmxpDQo+ID4NCj4gPj4+IFNlY29uZGx5 LCBFVk0gbXVzdCBrbm93IGhvdyBtYW55IGVsZW1lbnRzIGFyZSBpbiB0aGUgeGF0dHIgYXJyYXku IEl0DQo+ID4+IHNlZW1zDQo+ID4+PiB0aGF0IGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gYWRkIGFu b3RoZXIgcGFyYW1ldGVyLCBhcyBhbGwgZmlsZXN5c3RlbXMNCj4gdGhhdA0KPiA+Pj4gZGVmaW5l IGFuIGluaXR4YXR0ciBmdW5jdGlvbiwgZXhwZWN0IHRoYXQgdGhlIGxhc3QgZWxlbWVudCBvZiB0 aGUgYXJyYXkNCj4gPj4gaXMNCj4gPj4+IG9uZSB3aXRoIHRoZSBuYW1lIGZpZWxkIHNldCB0byBO VUxMLiBFVk0gcmV1c2VzIHRoZSBzYW1lIGFzc3VtcHRpb24uDQo+ID4+Pg0KPiA+Pj4gVGhpcyBw YXRjaCBzZXQgaGFzIGJlZW4gdGVzdGVkIGJ5IGludHJvZHVjaW5nIHNldmVyYWwgaW5zdGFuY2Vz IG9mIGENCj4gPj4+IFRlc3RMU00gKHNvbWUgcHJvdmlkaW5nIGFuIHhhdHRyLCBzb21lIG5vdCwg b25lIHdpdGggYSB3cm9uZw0KPiA+PiBpbXBsZW1lbnRhdGlvbg0KPiA+Pj4gdG8gc2VlIGhvdyB0 aGUgTFNNIGluZnJhc3RydWN0dXJlIGhhbmRsZXMgaXQpLiBUaGUgcGF0Y2ggaXMgbm90IGluY2x1 ZGVkDQo+ID4+PiBpbiB0aGlzIHNldCBidXQgaXQgaXMgYXZhaWxhYmxlIGhlcmU6DQo+ID4+Pg0K PiA+Pj4NCj4gPj4NCj4gaHR0cHM6Ly9naXRodWIuY29tL3JvYmVydG9zYXNzdS9saW51eC9jb21t aXQvMDM3MGZmMGZiYzE2ZTVkNjM0ODk4MzZhOTUNCj4gPj4gOGU2NWQ2OTdmOTU2ZGINCj4gPj4+ IFRoZSB0ZXN0LCBhZGRlZCB0byBpbWEtZXZtLXV0aWxzLCBpcyBhdmFpbGFibGUgaGVyZToNCj4g Pj4+DQo+ID4+PiBodHRwczovL2dpdGh1Yi5jb20vcm9iZXJ0b3Nhc3N1L2ltYS1ldm0tdXRpbHMv YmxvYi9ldm0tbXVsdGlwbGUtbHNtcy0NCj4gdjEtDQo+ID4+IGRldmVsLXYxL3Rlc3RzL2V2bV9t dWx0aXBsZV9sc21zLnRlc3QNCj4gPj4+IFRoZSB0ZXN0IHRha2VzIGEgVU1MIGtlcm5lbCBidWls dCBieSBUcmF2aXMgYW5kIGxhdW5jaGVzIGl0IHNldmVyYWwgdGltZXMsDQo+ID4+PiBlYWNoIHRp bWUgd2l0aCBhIGRpZmZlcmVudCBjb21iaW5hdGlvbiBvZiBMU01zLiBBZnRlciBib290LCBpdCBm aXJzdCBjaGVja3MNCj4gPj4+IHRoYXQgdGhlcmUgaXMgYW4geGF0dHIgZm9yIGVhY2ggTFNNIHBy b3ZpZGluZyBpdCwgYW5kIHRoZW4gY2FsY3VsYXRlcw0KPiB0aGUNCj4gPj4+IEhNQUMgaW4gdXNl ciBzcGFjZSBhbmQgY29tcGFyZXMgaXQgd2l0aCB0aGUgSE1BQyBjYWxjdWxhdGVkIGJ5IEVWTSBp bg0KPiA+Pj4ga2VybmVsIHNwYWNlLg0KPiA+Pj4NCj4gPj4+IEEgdGVzdCByZXBvcnQgY2FuIGJl IG9idGFpbmVkIGhlcmU6DQo+ID4+Pg0KPiA+Pj4gaHR0cHM6Ly93d3cudHJhdmlzLWNpLmNvbS9n aXRodWIvcm9iZXJ0b3Nhc3N1L2ltYS1ldm0tDQo+ID4+IHV0aWxzL2pvYnMvNDk4Njk5NTQwDQo+ ID4+PiBMYXN0bHksIHJ1bm5pbmcgdGhlIHRlc3Qgb24gcmVpc2VyZnMgdG8gY2hlY2sNCj4gPj4+ IHNlY3VyaXR5X29sZF9pbm9kZV9pbml0X3NlY3VyaXR5KCksIHNvbWUgaXNzdWVzIGhhdmUgYmVl biBkaXNjb3ZlcmVkOg0KPiBhDQo+ID4+PiBmcmVlIG9mIHhhdHRyLT5uYW1lIHdoaWNoIGlzIG5v dCBjb3JyZWN0IGFmdGVyIGNvbW1pdCA5NTQ4OTA2YjJiYjcNCj4gKCd4YXR0cjoNCj4gPj4+IENv bnN0aWZ5IC0+bmFtZSBtZW1iZXIgb2YgInN0cnVjdCB4YXR0ciInKSwgYW5kIGEgbWlzYWxpZ25t ZW50IHdpdGgNCj4gPj4+IHNlY3VyaXR5X2lub2RlX2luaXRfc2VjdXJpdHkoKSAodGhlIG9sZCB2 ZXJzaW9uIGV4cGVjdHMgdGhlIGZ1bGwgeGF0dHIgbmFtZQ0KPiA+Pj4gd2l0aCB0aGUgc2VjdXJp dHkuIHByZWZpeCwgdGhlIG5ldyB2ZXJzaW9uIGp1c3QgdGhlIHN1ZmZpeCkuIFRoZSBsYXN0DQo+ IGlzc3VlDQo+ID4+PiBoYXMgbm90IGJlZW4gZml4ZWQgeWV0Lg0KPiA+Pj4NCj4gPj4+IFJvYmVy dG8gU2Fzc3UgKDUpOg0KPiA+Pj4gICB4YXR0cjogQ29tcGxldGUgY29uc3RpZnkgLT5uYW1lIG1l bWJlciBvZiAic3RydWN0IHhhdHRyIg0KPiA+Pj4gICBzZWN1cml0eTogU3VwcG9ydCBtdWx0aXBs ZSBMU01zIGltcGxlbWVudGluZyB0aGUgaW5vZGVfaW5pdF9zZWN1cml0eQ0KPiA+Pj4gICAgIGhv b2sNCj4gPj4+ICAgc2VjdXJpdHk6IFBhc3MgeGF0dHJzIGFsbG9jYXRlZCBieSBMU01zIHRvIHRo ZSBpbm9kZV9pbml0X3NlY3VyaXR5DQo+ID4+PiAgICAgaG9vaw0KPiA+Pj4gICBldm06IEFsaWdu IGV2bV9pbm9kZV9pbml0X3NlY3VyaXR5KCkgZGVmaW5pdGlvbiB3aXRoIExTTQ0KPiA+Pj4gICAg IGluZnJhc3RydWN0dXJlDQo+ID4+PiAgIGV2bTogU3VwcG9ydCBtdWx0aXBsZSBMU01zIHByb3Zp ZGluZyBhbiB4YXR0cg0KPiA+Pj4NCj4gPj4+ICBmcy9yZWlzZXJmcy94YXR0cl9zZWN1cml0eS5j ICAgICAgICB8ICAyIC0NCj4gPj4+ICBpbmNsdWRlL2xpbnV4L2V2bS5oICAgICAgICAgICAgICAg ICB8IDIxICsrKystLS0NCj4gPj4+ICBpbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaCAgICAg ICB8ICAyICstDQo+ID4+PiAgaW5jbHVkZS9saW51eC9sc21faG9va3MuaCAgICAgICAgICAgfCAg NSArLQ0KPiA+Pj4gIHNlY3VyaXR5L2ludGVncml0eS9ldm0vZXZtLmggICAgICAgIHwgIDIgKw0K PiA+Pj4gIHNlY3VyaXR5L2ludGVncml0eS9ldm0vZXZtX2NyeXB0by5jIHwgIDkgKystDQo+ID4+ PiAgc2VjdXJpdHkvaW50ZWdyaXR5L2V2bS9ldm1fbWFpbi5jICAgfCAzNSArKysrKysrLS0tLQ0K PiA+Pj4gIHNlY3VyaXR5L3NlY3VyaXR5LmMgICAgICAgICAgICAgICAgIHwgOTUgKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0NCj4gPj4+ICBzZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMgICAg ICAgICAgICB8ICAzICstDQo+ID4+PiAgc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMgICAgICAg ICAgfCAgNCArLQ0KPiA+Pj4gIDEwIGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspLCA0 MyBkZWxldGlvbnMoLSkNCj4gPj4+DQoNCg==