From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B4F3BA0524; Sun, 11 Apr 2021 08:42:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6DFF1141375; Sun, 11 Apr 2021 08:42:58 +0200 (CEST) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2050.outbound.protection.outlook.com [40.107.102.50]) by mails.dpdk.org (Postfix) with ESMTP id 9C862141374 for ; Sun, 11 Apr 2021 08:42:56 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hUQtk9B8s3DnlanrpwtUcKzgYJ8Qvp32QI+xT/ZYnoWSG3f21QLEGUdVxnV1CUGvm0F3k5vS4GfiryrY0G/Zf26kDOmQIkW9O4HcwqSOqB041HP72tFOuEUKN/XPygKBcEcbftLSj7um6hCdahkx2uUPRVVttEa0+/h9TJytJYz3efgNZrZuBgOvmf/poMgLl15tG4IgR81MO/xr3fyeC31drWhPCNx344ADjZICS1c24H8kXFJ1nkP29dw1hpOGpVCN9y4jjkvStdIYaSuar3PIelDVYYcMYIDmOEsd2mUhtnZyLwW5oHLBlUKB9OWnMwitQL4jwcgMd0FIp2gCEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5BcIuK2VqP+6DAfligwzzYVfetvEgJRyEV39fxUNbxQ=; b=BUb51/4Tlrq5axj+tdI/a4AUEOszqZHID5bmXbaEXiM8cmj8fbt0vnXBaGLwVMv/8fZZw5Unl1VD9kGUrLIUo/Uqc2N/6cvwvXbqz/7g1wsiB454zELxcwJmbaVaUbDq49NjRdB/4ILeihK842jBhMVT/5KbbmJM5Bz/DW3Ji+/IVRwq8Vp2zfIqrr8DUo+9xriNHicY1fLmIU9sG/jjdCaSNlzh66c0BPZcCXhHrMvmPn5XMzEpXDC6h+MzsAr75iXqLhxcOx+fNxF6JogtTRNfMMwNQeBPCs5yUDsrmtNu/nGE3fGB1DUi8jCliLlwbm+TC8NmxZGZKih+NCuMYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5BcIuK2VqP+6DAfligwzzYVfetvEgJRyEV39fxUNbxQ=; b=kiI0ceY+SmIfpFvrFtEv4fFaQg46M8i1PDfpJfZR2ruLi4SpH1h3WiHmEvIBWg1OICO7/WlkX+f8Zivb+a0pvuLIwH6RC+6wDF3aPPHw7gXqWt1kog2VOp6GFqDba9i24nlQLgyrBDviyv/6bgfnWsyxa5zaMxgPG8UPlxiCbaFDlehs+C4WR6EqNe+BolcYjCBTsgTRRw7cqLwPHQtPAeMmS0zENYyjv0AK5HuFG3Om7fZP/SOvbflE5J/4aTa/XTPFiL25Qj7dpfTojTJXmtr3JMH49KP/UIQHHCaWnx6Rz8fmE+uTTL+3b/clj9BAKejc05WO5D8bFSy9Yiie/g== Received: from DM6PR12MB4987.namprd12.prod.outlook.com (2603:10b6:5:163::31) by DM5PR1201MB0220.namprd12.prod.outlook.com (2603:10b6:4:4e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.20; Sun, 11 Apr 2021 06:42:50 +0000 Received: from DM6PR12MB4987.namprd12.prod.outlook.com ([fe80::f5ce:c5a8:6aec:e308]) by DM6PR12MB4987.namprd12.prod.outlook.com ([fe80::f5ce:c5a8:6aec:e308%7]) with mapi id 15.20.4020.018; Sun, 11 Apr 2021 06:42:49 +0000 From: Ori Kam To: Andrew Rybchenko , "ajit.khaparde@broadcom.com" , "ferruh.yigit@intel.com" , NBU-Contact-Thomas Monjalon CC: "dev@dpdk.org" , "jerinj@marvell.com" , "olivier.matz@6wind.com" , Slava Ovsiienko Thread-Topic: [PATCH] ethdev: add packet integrity checks Thread-Index: AQHXKkY8W6wGVWqEykm5+doDoWpA/qqqRy6AgAAzxBCAAV+cgIADAdLQ Date: Sun, 11 Apr 2021 06:42:49 +0000 Message-ID: References: <1617645874-105139-1-git-send-email-orika@nvidia.com> <957123f7-dd1f-fdfd-a51b-d6a22be353bb@oktetlabs.ru> In-Reply-To: <957123f7-dd1f-fdfd-a51b-d6a22be353bb@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [147.236.145.126] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: be7f8ba6-8565-440c-587e-08d8fcb50664 x-ms-traffictypediagnostic: DM5PR1201MB0220: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 09sM1coFL8YL3EdDhtnzN0Exf+aY15KFSmoPNtcNsJXEqB45AkEi/My43SEMJTjssoT8huonjqLIHZoj7y0LBbu2Yh8GUY9ssCpvipIb0S/6p/nzZNq8lXNENy/+tEpMzoBFazEdVRlybveiPNPS3/3UrJy8sgj489YNsEnNTgQtHi+ra2pCvwlPBZ5xFVXvoWVr94mnlpRd5gWVTWEaYn1evUocE36VEhQnukGDKo8djsc6BdF+mGBWJn/dnIgG3sJ0vXf431irJR0fdSe/yHo6TqSHJCFQvmmEs/eAuMfR1TAl39qSUB9lDu2enD6ZcR+LNEwFr8tOjvB7iIt95bhrOn1pabrZZAqZwUybbYvmujLGAWLlDaNBS3aUUM+TMlTuhLuMaBAKc6rEutYi0mF/GqFlLXjQrPKjsd090gUD2gjE/J+jv8KGwsdKb1L/5M/GTnpClcDwEepR66FD5cYLQTqRDYoWRIJIwxfVZxHrBCkYKFranqxzon19txiGHGMO7YZIkiVuOxZzHvwTq6j56YYo2in8v/27/KiYjylzQpnIGUo65Yu4+Mcq3ZQLj0dQ5OYdci/Y7bBCtxeZ50i9eF731Q8DVIsA1QD8/YY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4987.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(136003)(376002)(346002)(366004)(396003)(76116006)(66946007)(64756008)(66556008)(66476007)(54906003)(66446008)(8936002)(8676002)(83380400001)(9686003)(186003)(110136005)(38100700002)(316002)(55016002)(2906002)(107886003)(7696005)(478600001)(52536014)(26005)(71200400001)(4326008)(33656002)(5660300002)(53546011)(86362001)(6506007)(30864003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?eXhUYXhORDNLcHFPVGd5TEM1U3FmbWNkdzRQenhTR3dUTWlkNVljZkRGUGd2?= =?utf-8?B?UG9NbXFqSkFyam5DRkNDaHJGV2lMS3pyQUNlaStVbmNTajlXcXFSdHZUNmd0?= =?utf-8?B?bWlwNUVQK3BORmEva3RYUHpLUGx4cERSSXZzNS9rV1puUGZhZi9IT0xDZWNC?= =?utf-8?B?YlZzblhwUDBQeWJuUjdpQ05nZFBwWTJVdFVVd3VYc0QyRjVuK2lmZVpFRHFn?= =?utf-8?B?WVdtajI2RWxyeVNFcStEd01QZEsvZmxiYjZDTHlMU3dLWVBQdXdMU3FxN2Zl?= =?utf-8?B?SXpDVy9kaDNJZzcwbmYyemFWMGtMWmNibEE1YWVITFRYT2svSnpJcE05L2NI?= =?utf-8?B?QUExY0VlYmRYK0F6VUROK0xxWG54M05mR2VUQWl3WU1pTEtmRnVuRkFFVWg2?= =?utf-8?B?S1lUTXdOcEVlTFQva0dkT0RBMlYyKzQrM0g4VEUzS0tzdE5PSTNEWUZlaTJj?= =?utf-8?B?SjI3bkZVMHpVd3l3cDNLZE1tT2ZuVUlkenZ2T2svem1MMzZhNDNDd2tTNlBE?= =?utf-8?B?dUdlYlU0Snhuekt0NmRIbVpHem9iZnd6TjRZSUZWVmtIK2s1OWJGL0htNkFi?= =?utf-8?B?cmEwZ0plb1M0RGZEMGl4VWwwZUtaa1lVRmxkQnhybU1TUElRQ3NsdzhwSVpv?= =?utf-8?B?aXlRWHRvTFlTYmdRNWtHNkRNNERhUlRvcUtqQnZuMkUxWDVQVUZ2MVlTMndH?= =?utf-8?B?ZVZzRFI0SlNnRjVUeTgrRFI2QUJac1ExcGdnb1ZlcVBVMlBaRTc5ZGxQR2ZI?= =?utf-8?B?REZmdy82STZFTEQ4YjE1VlNhcVd3NDFuMTBTTTdGaGdwRXgrMzNGdC9KY2JH?= =?utf-8?B?c1VFVElUdU55L1NpNEZVQmlNUFcvOVFBMzIxVHFBN2RaUkdheVJoM3hOTlRK?= =?utf-8?B?WkMxaXdIYzlMU1ZGN1BrTWRBa3E5TmFwZjQ2eHFaTXNOc0RsM1Ntakd0dnJk?= =?utf-8?B?UytjSStvZXM2QVFmMVNPaEt0NUdMeWNGKy9JTGlYM2lFeUNReHBJbFRDWDFT?= =?utf-8?B?WnhxcnJzQllCT2hYN3dUcmFScDZjZngvZEVCQmY1OHZjY0NpeWtSaDBjeGhK?= =?utf-8?B?aFloSVRnV2FvN0Voc0xrR0dGS3ZpQy96TUttYjhRWHQ1UitaZUM5Z05JNVhR?= =?utf-8?B?WXJ2ZDl2aVp1SUY5NWoyTU1ackM4cEEwTHBmcFNUUTNuUkhlbXk2QlZ1VC8x?= =?utf-8?B?azZLMmRMZmtvTDI1N202Rnpkd0szNTd3SlR5RlFDbUNhZEZNQkozaVZtSmRt?= =?utf-8?B?d2VzUlRzcTE1ZW52ZnFUUWYxMEg1VTBSTGQyTW5POTVYK0tMVWlvM2NEMEhP?= =?utf-8?B?ZmlxODBuV3IveFYvam9oR2hheTMrendrcW54K2NNcVpUMWpWOXVqT2JCa21N?= =?utf-8?B?d2o1UzhQc3UxeE1uYXcrbWtSc3lyeGk1WktHTUxkWXNONTl5K0JQenYwSHZR?= =?utf-8?B?NExyeXN0ZlBoaTh0Tlk1Nys2VUJUWHIwTExoRURBTFFBdExsSWkvcCsxQStI?= =?utf-8?B?UkpQRU9aVGdhQkYyNkd4L1h5NFdwR0RRSk1vVVhZYUxnY0dPMnRYUFhrYmF5?= =?utf-8?B?RjNtVGxSblRuVHgwSDNCMFN2ZEk4M3FNNGNtNzArdEVzL2NJTkpTUUJYeTFR?= =?utf-8?B?VWhxdmYrcm8vTnZuYXVKZ0Jyc3lRQ1E0cU1jTVgyZ1FPaDdYRVJWckpnVFFs?= =?utf-8?B?aDFwOFhHdmhrSzZrN3MrT1BySEJMMDEybVhVekZHMzA3TEVITy9QWmV6YWNY?= =?utf-8?Q?VQcRCFu81LrLSUpBQtzTDzVOWqjhYQL7eIDCipf?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4987.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: be7f8ba6-8565-440c-587e-08d8fcb50664 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2021 06:42:49.8375 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: D3qwjSIXKqAF8wph0VltGdgTmQK1d8wF1f1+FFQPy2/b3nDWtFxzA5b4xfkMlWb8s0NjJjXBNRwgU11EMSYHbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB0220 Subject: Re: [dpdk-dev] [PATCH] ethdev: add packet integrity checks X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgQW5kcmV3LA0KDQpQU0IsDQoNCkJlc3QsDQpPcmkNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxh YnMucnU+DQo+IA0KPiBPbiA0LzgvMjEgMjozOSBQTSwgT3JpIEthbSB3cm90ZToNCj4gPiBIaSBB bmRyZXcsDQo+ID4NCj4gPiBUaGFua3MgZm9yIHlvdXIgY29tbWVudHMuDQo+ID4NCj4gPiBQU0Is DQo+ID4NCj4gPiBCZXN0LA0KPiA+IE9yaQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4+IEZyb206IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0 ZXRsYWJzLnJ1Pg0KPiA+PiBTZW50OiBUaHVyc2RheSwgQXByaWwgOCwgMjAyMSAxMTowNSBBTQ0K PiA+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBldGhkZXY6IGFkZCBwYWNrZXQgaW50ZWdyaXR5IGNo ZWNrcw0KPiA+Pg0KPiA+PiBPbiA0LzUvMjEgOTowNCBQTSwgT3JpIEthbSB3cm90ZToNCj4gPj4+ IEN1cnJlbnRseSwgRFBESyBhcHBsaWNhdGlvbiBjYW4gb2ZmbG9hZCB0aGUgY2hlY2tzdW0gY2hl Y2ssDQo+ID4+PiBhbmQgcmVwb3J0IGl0IGluIHRoZSBtYnVmLg0KPiA+Pj4NCj4gPj4+IEhvd2V2 ZXIsIGFzIG1vcmUgYW5kIG1vcmUgYXBwbGljYXRpb25zIGFyZSBvZmZsb2FkaW5nIHNvbWUgb3Ig YWxsDQo+ID4+PiBsb2dpYyBhbmQgYWN0aW9uIHRvIHRoZSBIVywgdGhlcmUgaXMgYSBuZWVkIHRv IGNoZWNrIHRoZSBwYWNrZXQNCj4gPj4+IGludGVncml0eSBzbyB0aGUgcmlnaHQgZGVjaXNpb24g Y2FuIGJlIHRha2VuLg0KPiA+Pj4NCj4gPj4+IFRoZSBhcHBsaWNhdGlvbiBsb2dpYyBjYW4gYmUg cG9zaXRpdmUgbWVhbmluZyBpZiB0aGUgcGFja2V0IGlzDQo+ID4+PiB2YWxpZCBqdW1wIC8gZG8g IGFjdGlvbnMsIG9yIG5lZ2F0aXZlIGlmIHBhY2tldCBpcyBub3QgdmFsaWQNCj4gPj4+IGp1bXAg dG8gU1cgLyBkbyBhY3Rpb25zIChsaWtlIGRyb3ApICBhLCBhbmQgYWRkIGRlZmF1bHQgZmxvdw0K PiA+Pj4gKG1hdGNoIGFsbCBpbiBsb3cgcHJpb3JpdHkpIHRoYXQgd2lsbCBkaXJlY3QgdGhlIG1p c3MgcGFja2V0DQo+ID4+PiB0byB0aGUgbWlzcyBwYXRoLg0KPiA+Pj4NCj4gPj4+IFNpbmNlIGN1 cnJlbmx0eSBydGVfZmxvdyB3b3JrcyBpbiBwb3NpdGl2ZSB3YXkgdGhlIGFzc3VtdGlvbiBpcw0K PiA+Pj4gdGhhdCB0aGUgcG9zdGl2ZSB3YXkgd2lsbCBiZSB0aGUgY29tbW9uIHdheSBpbiB0aGlz IGNhc2UgYWxzby4NCj4gPj4+DQo+ID4+PiBXaGVuIHRoaW5raW5nIHdoYXQgaXMgdGhlIGJlc3Qg QVBJIHRvIGltcGxlbWVudCBzdWNoIGZlYXR1cmUsDQo+ID4+PiB3ZSBuZWVkIHRvIGNvbnNpZHVy ZSB0aGUgZm9sbG93aW5nIChpbiBubyBzcGVjaWZpYyBvcmRlcik6DQo+ID4+PiAxLiBBUEkgYnJl YWthZ2UuDQo+ID4+DQo+ID4+IEZpcnN0IG9mIGFsbCBJIGRpc2FncmVlIHRoYXQgIkFQSSBicmVh a2FnZSIgaXMgcHV0IGFzIGEgdG9wDQo+ID4+IHByaW9yaXR5LiBEZXNpZ24gaXMgYSB0b3AgcHJp b3JpdHksIHNpbmNlIGl0IGlzIGEgbG9uZyB0ZXJtLg0KPiA+PiBhUEkgYnJlYWthZ2UgaXMganVz dCBhIHNob3J0IHRlcm0gaW5jb252ZW5pZW50LiBPZiBjb3Vyc2UsDQo+ID4+IG90aGVycyBtYXkg ZGlzYWdyZWUsIGJ1dCB0aGF0J3MgbXkgcG9pbnQgb2Ygdmlldy4NCj4gPj4NCj4gPiBJIGFncmVl IHdpdGggeW91LCBhbmQgbGlrZSBJIHNhaWQgdGhlIG9yZGVyIG9mIHRoZSBsaXN0IGlzIG5vdA0K PiA+IGFjY29yZGluZyB0byBwcmlvcml0aWVzLg0KPiA+IEkgdHJ1bHkgYmVsaWV2ZSB0aGF0IHdo YXQgSSdtIHN1Z2dlc3RpbmcgaXMgdGhlIGJlc3QgZGVzaWduLg0KPiA+DQo+ID4NCj4gPj4+IDIu IFNpbXBsaWNpdHkuDQo+ID4+PiAzLiBQZXJmb3JtYW5jZS4NCj4gPj4+IDQuIEhXIGNhcGFiaWxp dGllcy4NCj4gPj4+IDUuIHJ0ZV9mbG93IGxpbWl0YXRpb24uDQo+ID4+PiA2LiBGbGV4YWJpbGl0 eS4NCj4gPj4+DQo+ID4+PiBGaXJzdCBvcHRpb246IEFkZCBpbnRlZ3JpdHkgZmxhZ3MgdG8gZWFj aCBvZiB0aGUgaXRlbXMuDQo+ID4+PiBGb3IgZXhhbXBsZSBhZGQgY2hlY2tzdW1fb2sgdG8gaXB2 NCBpdGVtLg0KPiA+Pj4NCj4gPj4+IFByb3M6DQo+ID4+PiAxLiBObyBuZXcgcnRlX2Zsb3cgaXRl bS4NCj4gPj4+IDIuIFNpbXBsZSBpbiB0aGUgd2F5IHRoYXQgb24gZWFjaCBpdGVtIHRoZSBhcHAg Y2FuIHNlZQ0KPiA+Pj4gd2hhdCBjaGVja3MgYXJlIGF2YWlsYWJsZS4NCj4gPj4NCj4gPj4gMy4g TmF0aXZlbHkgc3VwcG9ydHMgdmFyaW91cyB0dW5uZWxzIHdpdGhvdXQgYW55IGV4dHJhDQo+ID4+ ICAgIGNoYW5nZXMgaW4gYSBzaGFyZWQgaXRlbSBmb3IgYWxsIGxheWVycy4NCj4gPj4NCj4gPiBB bHNvIGluIHRoZSBjdXJyZW50IHN1Z2dlc3RlZCBhcHByb2FjaCwgd2UgaGF2ZSB0aGUgbGV2ZWwg bWVtYmVyLA0KPiA+IFNvIHR1bm5lbHMgYXJlIHN1cHBvcnRlZCBieSBkZWZhdWx0LiBJZiBzb21l b25lIHdhbnRzIHRvIGNoZWNrIGFsc28gdHVubmVsDQo+ID4gaGUganVzdCBuZWVkIHRvIGFkZCB0 aGlzIGl0ZW0gYWdhaW4gd2l0aCB0aGUgcmlnaHQgbGV2ZWwuIChqdXN0IGxpa2Ugd2l0aCBvdGhl cg0KPiA+IGl0ZW1zKQ0KPiANCj4gVGhhbmtzLCBtaXNzZWQgaXQuIElzIGl0IE9LIHRvIGhhdmUg anVzdCBvbmUgaXRlbSB3aXRoDQo+IGxldmVsIDEgb3IgMj8NCj4gDQpZZXMsIG9mIGNvdXJzZSwg aWYgdGhlIGFwcGxpY2F0aW9uIGp1c3Qgd2FudHMgdG8gY2hlY2sgdGhlIHNhbml0eSBvZiB0aGUg aW5uZXIgcGFja2V0IGhlIGNhbiANCmp1c3QgdXNlIG9uZSBpbnRlZ3JpdHkgaXRlbSB3aXRoIGxl dmVsIG9mIDIuDQoNCg0KPiBXaGF0IGhhcHBlbnMgaWYgdHdvIGl0ZW1zIHdpdGggbGV2ZWwgMCBh bmQgbGV2ZWwgMSBhcmUNCj4gc3BlY2lmaWVkLCBidXQgdGhlIHBhY2tldCBoYXMgbm8gZW5jYXBz dWxhdGlvbj8NCj4NCkxldmVsIHplcm8gaXMgdGhlIGRlZmF1bHQgb25lICh0aGUgZGVmYXVsdCBq dXN0IGxpa2UgaW4gUlNTIGNhc2UgaXMgDQpQTUQgZGVwZW5kZW50IGJ1dCBpbiBhbnkgY2FzZSAg ZnJvbSBteSBrbm93bGVkZ2UgbGF5ZXIgMCBpZiB0aGVyZSBpcyBubyB0dW5uZWwNCndpbGwgcG9p bnQgdG8gdGhlIGhlYWRlcikgYW5kIGxldmVsIDEgaXMgdGhlIG91dGVyIG1vc3Qgc28gaW4gdGhp cyBjYXNlIGJvdGggb2YgdGhlbQ0KYXJlIHBvaW50aW5nIHRvIHRoZSBzYW1lIGNoZWNrcy4gDQpC dXQgaWYgZm9yIGV4YW1wbGUgd2UgdXNlIGxldmVsID0gMiB0aGVuIHRoZSBjaGVja3MgZm9yIGxl dmVsIDIgc2hvdWxkIGZhaWwuDQpTaW5jZSB0aGUgcGFja2V0IGRvZXNuJ3QgaG9sZCBzdWNoIGlu Zm8sIGp1c3QgbGlrZSBpZiB5b3UgY2hlY2sgc3RhdGUgb2YgbDQgYW5kIHRoZXJlIGlzDQpubyBs NCBpdCBzaG91bGQgZmFpbHMuDQoNCg0KPiA+Pj4NCj4gPj4+IENvbnM6DQo+ID4+PiAxLiBBUEkg YnJlYWthZ2UuDQo+ID4+PiAyLiBpbmNyZWFzZSBudW1iZXIgb2YgZmxvd3MsIHNpbmNlIGFwcCBj YW4ndCBhZGQgZ2xvYmFsIHJ1bGUgYW5kDQo+ID4+PiAgICBtdXN0IGhhdmUgZGVkaWNhdGVkIGZs b3cgZm9yIGVhY2ggb2YgdGhlIGZsb3cgY29tYmluYXRpb25zLCBmb3IgZXhhbXBsZQ0KPiA+Pj4g ICAgbWF0Y2hpbmcgb24gaWNtcCB0cmFmZmljIG9yIFVEUC9UQ1AgIHRyYWZmaWMgd2l0aCBJUHY0 IC8gSVB2NiB3aWxsDQo+ID4+PiAgICByZXN1bHQgaW4gNSBmbG93cy4NCj4gPj4NCj4gPj4gQ291 bGQgeW91IGV4cGFuZCBpdD8gU2hvdWxkbid0IEhXIG9mZmxvYWRlZCBmbG93cyB3aXRoIGdvb2QN Cj4gPj4gY2hlY2tzdW1zIGdvIGludG8gZGVkaWNhdGVkIHF1ZXVlcyB3aGVyZSBhcyBiYWQgcGFj a2V0cyBnbw0KPiA+PiB2aWEgZGVmYXVsdCBwYXRoIChpLmUuIG5vIGV4dHJhIHJ1bGVzKT8NCj4g Pj4NCj4gPiBJJ20gbm90IHN1cmUgd2hhdCBkbyB5b3UgbWVhbiwgaW4gYSBsb3Qgb2YgdGhlIGNh c2VzDQo+ID4gQXBwbGljYXRpb24gd2lsbCB1c2UgdGhhdCB0byBkZXRlY3QgdmFsaWQgcGFja2V0 cyBhbmQgdGhlbg0KPiA+IGZvcndhcmQgb25seSB2YWxpZCBwYWNrZXRzIGRvd24gdGhlIGZsb3cu IChjaGVjayB2YWxpZCBqdW1wDQo+ID4gLS0+IG9uIG5leHQgZ3JvdXAgZGVjYXAgLi4uLikNCj4g PiBJbiBvdGhlciBjYXNlcyB0aGUgYXBwIG1heSBjaG9vc2UgdG8gZHJvcCB0aGUgYmFkIHBhY2tl dHMgb3IgY291bnQNCj4gPiBhbmQgdGhlbiBkcm9wLCBtYXliZSBzYW1wbGUgdGhlbSB0byBjaGVj ayB0aGlzIGlzIG5vdCBwYXJ0IG9mIGFuIGF0dGFjay4NCj4gPg0KPiA+IFRoaXMgaXMgd2hhdCBp cyBncmVhdCBhYm91dCB0aGlzIGZlYXR1cmUgd2UganVzdCBnaXZlIHRoZSBhcHANCj4gPiB0aGUg YWJpbGl0eSB0byBvZmZsb2FkIHRoZSBzYW5pdHkgY2hlY2tzIGFuZCBiZSB0aGF0IGVuYWJsZXMg aXQNCj4gPiB0byBvZmZsb2FkIHRoZSB0cmFmZmljIGl0c2VsZg0KPiANCj4gUGxlYXNlLCB3aGVu IHlvdSBzYXkgImluY3JlYXNlIG51bWJlciBvZiBmbG93cy4uLiBpbiA1IGZsb3dzIg0KPiBqdXN0 IHRyeSB0byBleHByZXNzIGluIGZsb3cgcnVsZXMgaW4gYm90aCBjYXNlcy4gSnVzdCBmb3IgbXkN Cj4gdW5kZXJzdGFuZGluZy4gU2luY2UgeW91IGNhbGN1bGF0ZWQgZmxvd3MgeW91IHNob3VsZCBo YXZlIGENCj4gcmVhbCBleGFtcGxlLg0KPiANClN1cmUsICB5b3UgYXJlIHJpZ2h0IEkgc2hvdWxk IGhhdmUgYSBiZXR0ZXIgZXhhbXBsZS4NCkxldHMgdGFrZSB0aGUgZXhhbXBsZSB0aGF0IHRoZSBh cHBsaWNhdGlvbiB3YW50IGFsbCB2YWxpZCB0cmFmZmljIHRvDQpqdW1wIHRvIGdyb3VwIDIuDQpU aGUgcG9zc2liaWxpdGllcyBvZiB2YWxpZCB0cmFmZmljIGNhbiBiZToNCkV0aCAvIGlwdjQuDQpF dGggLyBpcHY2DQpFdGggLyBpcHY0IC8gdWRwDQpFdGgvIGl2cDQgLyB0Y3ANCkV0aCAvIGlwdjYg LyB1ZHANCkV0aCAvIGlwdjYgLyB0Y3ANCg0KU28gaWYgd2UgdXNlIHRoZSBleGlzdGluZyBpdGVt cyB3ZSB3aWxsIGdldCB0aGUgZm9sbG93aW5nIDYgZmxvd3M6DQpGbG93IGNyZWF0ZSAwIGluZ3Jl c3MgcGF0dGVybiBldGggLyBpcHY0ICB2YWxpZCA9IDEgLyBlbmQgYWN0aW9uIGp1bXAgZ3JvdXAg Mg0KRmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NiAgdmFsaWQgPSAxIC8g ZW5kIGFjdGlvbiBqdW1wIGdyb3VwIDINCkZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0 aCAvIGlwdjQgIHZhbGlkID0gMSAvIHVkcCB2YWxpZCA9IDEvIGVuZCBhY3Rpb24ganVtcCBncm91 cCAyDQpGbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0ICB2YWxpZCA9IDEg LyB0Y3AgdmFsaWQgPSAxLyBlbmQgYWN0aW9uIGp1bXAgZ3JvdXAgMg0KRmxvdyBjcmVhdGUgMCBp bmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NiAgdmFsaWQgPSAxIC8gdWRwIHZhbGlkID0gMS8gZW5k IGFjdGlvbiBqdW1wIGdyb3VwIDINCkZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAv IGlwdjYgIHZhbGlkID0gMSAvIHVkcCB2YWxpZCA9IDEvIGVuZCBhY3Rpb24ganVtcCBncm91cCAy DQoNCldoaWxlIGlmIHdlIHVzZSB0aGUgbmV3IGl0ZW0gYXBwcm9hY2g6DQpGbG93IGNyZWF0ZSAw IGluZ3Jlc3MgcGF0dGVybiBpbnRlZ3JpdHlfY2hlY2sgcGFja2V0X29rID0xIC8gZW5kIGFjdGlv biBqdW1wIGdyb3VwIDINCg0KDQpJZiB3ZSB0YWtlIHRoZSBjYXNlIHRoYXQgd2UganVzdCB3YW50 IHZhbGlkIGw0IHBhY2tldHMgdGhlbiB0aGUgZmxvd3Mgd2l0aCBleGlzdGluZyBpdGVtcyB3aWxs IGJlOg0KRmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCAgdmFsaWQgPSAx IC8gdWRwIHZhbGlkID0gMS8gZW5kIGFjdGlvbiBqdW1wIGdyb3VwIDINCkZsb3cgY3JlYXRlIDAg aW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgIHZhbGlkID0gMSAvIHRjcCB2YWxpZCA9IDEvIGVu ZCBhY3Rpb24ganVtcCBncm91cCAyDQpGbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGgg LyBpcHY2ICB2YWxpZCA9IDEgLyB1ZHAgdmFsaWQgPSAxLyBlbmQgYWN0aW9uIGp1bXAgZ3JvdXAg Mg0KRmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NiAgdmFsaWQgPSAxIC8g dWRwIHZhbGlkID0gMS8gZW5kIGFjdGlvbiBqdW1wIGdyb3VwIDINCg0KV2hpbGUgd2l0aCB0aGUg bmV3IGl0ZW06DQpGbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBpbnRlZ3JpdHlfY2hlY2sg bDRfb2sgPTEgLyBlbmQgYWN0aW9uIGp1bXAgZ3JvdXAgMg0KDQpJcyB0aGlzIGNsZWFyZXI/DQoN Cg0KPiA+Pj4NCj4gPj4+IFNlY29uZCBvcHRpb246IGRlZGljYXRlZCBpdGVtDQo+ID4+Pg0KPiA+ Pj4gUHJvczoNCj4gPj4+IDEuIE5vIEFQSSBicmVha2FnZSwgYW5kIHRoZXJlIHdpbGwgYmUgbm8g Zm9yIHNvbWUgdGltZSBkdWUgdG8gaGF2aW5nDQo+ID4+PiAgICBleHRyYSBzcGFjZS4gKGJ5IHVz aW5nIGJpdHMpDQo+ID4+PiAyLiBKdXN0IG9uZSBmbG93IHRvIHN1cHBvcnQgdGhlIGljbXAgb3Ig VURQL1RDUCB0cmFmZmljIHdpdGggSVB2NCAvDQo+ID4+PiAgICBJUHY2Lg0KPiA+Pg0KPiA+PiBJ dCBkZXBlbmRzIG9uIGhvdyBiYWQgKG9yIGdvb2QwIHBhY2tldHMgYXJlIGhhbmRsZWQuDQo+ID4+ DQo+ID4gTm90IHN1cmUgd2hhdCBkbyB5b3UgbWVhbiwNCj4gDQo+IEFnYWluLCBJIGhvcGUgd2Ug dW5kZXJzdGFuZCBlYWNoIG90aGVyIHdoZW4gd2UgdGFsayBpbiB0ZXJtcw0KPiBvZiByZWFsIGV4 YW1wbGUgYW5kIGZsb3cgcnVsZXMuDQo+IA0KUGxlYXNlIHNlZSBhbnN3ZXIgYWJvdmUuDQpJIGhv cGUgaXQgd2lsbCBtYWtlIHRoaW5ncyBjbGVhcmVyLg0KDQo+ID4+PiAzLiBTaW1wbGljaXR5IGFw cGxpY2F0aW9uIGNhbiBqdXN0IGxvb2sgYXQgb25lIHBsYWNlIHRvIHNlZSBhbGwgcG9zc2libGUN Cj4gPj4+ICAgIGNoZWNrcy4NCj4gPj4NCj4gPj4gSXQgaXMgYSBkcmF3YmFjayBmcm9tIG15IHBv aW50IG9mIHZpZXcsIHNpbmNlIElQdjQgY2hlY2tzdW0NCj4gPj4gY2hlY2sgaXMgb3V0IG9mIElQ djQgbWF0Y2ggaXRlbS4gSS5lLiBhbmFseXppbmcgSVB2NCB5b3Ugc2hvdWxkDQo+ID4+IHRha2Ug YSBsb29rIGF0IDIgZGlmZmVyZW50IGZsb3cgaXRlbXMuDQo+ID4+DQo+ID4gQXJlIHlvdSB0YWxr aW5nIGZyb20gYXBwbGljYXRpb24gdmlldyBwb2ludCwgUE1EICBvciBIVz8NCj4gPiBGcm9tIGFw cGxpY2F0aW9uIHllcyBpdCBpcyB0cnVlIGhlIG5lZWRzIHRvIGFkZCBvbmUgbW9yZSBpdGVtDQo+ ID4gdG8gdGhlIGxpc3QsIChkZXBlbmRpbmcgb24gaGlzIGZsb3dzLCBzaW5jZSBoZSBjYW4gaGF2 ZSBqdXN0DQo+ID4gb25lIGZsb3cgdGhhdCBjaGVja3MgYWxsIHBhY2tldCBsaWtlIEkgc2FpZCBh bmQgbW92ZSB0aGUgZ29vZA0KPiA+IG9uZXMgdG8gYSBkaWZmZXJlbnQgZ3JvdXAgYW5kIGluIHRo YXQgZ3JvdXAgaGUgd2lsbCBtYXRjaCB0aGUNCj4gPiBpcHY0IGl0ZW0uDQo+ID4gRm9yIGV4YW1w bGU6DQo+ID4gLi4uIHBhdHRlcm4gaW50ZWdyaXR5ID0gdmFsaWQgYWN0aW9uIGp1bXAgZ3JvdXAg Mw0KPiA+IEdyb3VwIDMgcGF0dGVybiAuLi4uIGlwdjQgLi4uIGFjdGlvbnMgLi4uLi4NCj4gPiBH cm91cCAzIHBhdHRlcm4gLi4uLmlwdjYgLi4uLiBhY3Rpb25zIC4uLg0KPiA+DQo+ID4gSW4gYW55 IGNhc2UgYXQgd29yc2UgY2FzZSBpdCBpcyBqdXN0IGFkZGluZyBvbmUgbW9yZSBpdGVtDQo+ID4g dG8gdGhlIGZsb3cuDQo+ID4NCj4gPiBGcm9tIFBNRC9IVyBleHRyYSBpdGVtcyBkb2Vzbid0IG1l YW4gZXh0cmEgYWN0aW9uIGluIEhXDQo+ID4gdGhleSBjYW4gYmUgY29tYmluZWQsIGp1c3QgbGlr ZSB0aGV5IHdvdWxkIGhhdmUgaXQgdGhlDQo+ID4gY29uZGl0aW9uIHdhcyBpbiB0aGUgaXRlbSBp dHNlbGYuDQo+ID4NCj4gPj4+IDQuIEFsbG93IGZ1dHVyZSBzdXBwb3J0IGZvciBtb3JlIHRlc3Rz Lg0KPiA+Pg0KPiA+PiBJdCBpcyB0aGUgc2FtZSBmb3IgYm90aCBzb2x1dGlvbiBzaW5jZSBwZXIt aXRlbSBzb2x1dGlvbg0KPiA+PiBjYW4ga2VlcCByZXNlcnZlZCBiaXRzIHdoaWNoIG1heSBiZSB1 c2VkIGluIHRoZSBmdXR1cmUuDQo+ID4+DQo+ID4gWWVzIEkgYWdyZWUsDQo+ID4NCj4gPj4+DQo+ ID4+PiBDb25zOg0KPiA+Pj4gMS4gTmV3IGl0ZW0sIHRoYXQgaG9sZHMgbnVtYmVyIG9mIGZpZWxk cyBmcm9tIGRpZmZlcmVudCBpdGVtcy4NCj4gPj4NCj4gPj4gMi4gTm90IHRoYXQgbmljZSBmb3Ig dHVubmVscy4NCj4gPg0KPiA+IFBsZWFzZSBsb29rIGF0IGFib3ZlIChub3QgZGlyZWN0ICkgcmVz cG9uc2Ugc2luY2Ugd2UgaGF2ZSB0aGUgbGV2ZWwgbWVtYmVyDQo+ID4gdHVubmVscyBhcmUgaGFu ZGxlZCB2ZXJ5IG5pY2VseS4NCj4gPg0KPiA+Pg0KPiA+Pj4NCj4gPj4+IEZvciBzdGFydGVyIHRo ZSBmb2xsb3dpbmcgYml0cyBhcmUgc3VnZ2VzdGVkOg0KPiA+Pj4gMS4gcGFja2V0X29rIC0gbWVh bnMgdGhhdCBhbGwgSFcgY2hlY2tzIGRlcGVuZGluZyBvbiBwYWNrZXQgbGF5ZXIgaGF2ZQ0KPiA+ Pj4gICAgcGFzc2VkLiBUaGlzIG1heSBtZWFuIHRoYXQgaW4gc29tZSBIVyBzdWNoIGZsb3cgc2hv dWxkIGJlIHNwbGl0ZWQgdG8NCj4gPj4+ICAgIG51bWJlciBvZiBmbG93cyBvciBmYWlsLg0KPiA+ Pj4gMi4gbDJfb2sgLSBhbGwgY2hlY2sgZmxvciBsYXllciAyIGhhdmUgcGFzc2VkLg0KPiA+Pj4g My4gbDNfb2sgLSBhbGwgY2hlY2sgZmxvciBsYXllciAyIGhhdmUgcGFzc2VkLiBJZiBwYWNrZXQg ZG9lbnMndCBoYXZlDQo+ID4+PiAgICBsMyBsYXllciB0aGlzIGNoZWNrIHNob3VkbCBmYWlsLg0K PiA+Pj4gNC4gbDRfb2sgLSBhbGwgY2hlY2sgZmxvciBsYXllciAyIGhhdmUgcGFzc2VkLiBJZiBw YWNrZXQgZG9lc24ndA0KPiA+Pj4gICAgaGF2ZSBsNCBsYXllciB0aGlzIGNoZWNrIHNob3VsZCBm YWlsLg0KPiA+Pj4gNS4gbDJfY3JjX29rIC0gdGhlIGxheWVyIDIgY3JjIGlzIE8uSy4gaXQgaXMg cG9zc2libGUgdGhhdCB0aGUgY3JjIHdpbGwNCj4gPj4+ICAgIGJlIE8uSy4gYnV0IHRoZSBsM19v ayB3aWxsIGJlIDAuIGl0IGlzIG5vdCBwb3NzaWJsZSB0aGF0IGwyX2NyY19vayB3aWxsDQo+ID4+ PiAgICBiZSAwIGFuZCB0aGUgbDNfb2sgd2lsbCBiZSAwLg0KPiA+Pj4gNi4gaXB2NF9jc3VtX29r IC0gSVB2NCBjaGVja3N1bSBpcyBPLksuDQo+ID4+PiA3LiBsNF9jc3VtX29rIC0gbGF5ZXIgNCBj aGVja3N1bSBpcyBPLksuDQo+ID4+PiA4LiBsM19sZW5fT0sgLSBjaGVjayB0aGF0IHRoZSByZXBv cnRlZCBsYXllciAzIGxlbiBpcyBzbWFsbGVyIHRoYW4gdGhlDQo+ID4+PiAgICBwYWNrZXQgbGVu Lg0KPiA+Pj4NCj4gPj4+IEV4YW1wbGUgb2YgdXNhZ2U6DQo+ID4+PiAxLiBjaGVjayBwYWNrZXRz IGZyb20gYWxsIHBvc3NpYmxlIGxheWVycyBmb3IgaW50ZWdyaXR5Lg0KPiA+Pj4gICAgZmxvdyBj cmVhdGUgaW50ZWdyaXR5IHNwZWMgcGFja2V0X29rID0gMSBtYXNrIHBhY2tldF9vayA9IDEgLi4u Li4NCj4gPj4+DQo+ID4+PiAyLiBDaGVjayBvbmx5IHBhY2tldCB3aXRoIGxheWVyIDQgKFVEUCAv IFRDUCkNCj4gPj4+ICAgIGZsb3cgY3JlYXRlIGludGVncml0eSBzcGVjIGwzX29rID0gMSwgbDRf b2sgPSAxIG1hc2sgbDNfb2sgPSAxIGw0X29rID0gMQ0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYt Ynk6IE9yaSBLYW0gPG9yaWthQG52aWRpYS5jb20+DQo+ID4+PiAtLS0NCj4gPj4+ICBkb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0IHwgMTkgKysrKysrKysrKysrKysrKw0KPiA+Pj4g IGxpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmggICAgICAgfCA0Ng0KPiA+PiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgNjUg aW5zZXJ0aW9ucygrKQ0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3Byb2df Z3VpZGUvcnRlX2Zsb3cucnN0DQo+ID4+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93 LnJzdA0KPiA+Pj4gaW5kZXggYWVjMmJhMS4uNThiMTE2ZSAxMDA2NDQNCj4gPj4+IC0tLSBhL2Rv Yy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QNCj4gPj4+ICsrKyBiL2RvYy9ndWlkZXMv cHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QNCj4gPj4+IEBAIC0xMzk4LDYgKzEzOTgsMjUgQEAgTWF0 Y2hlcyBhIGVDUFJJIGhlYWRlci4NCj4gPj4+ICAtIGBgaGRyYGA6IGVDUFJJIGhlYWRlciBkZWZp bml0aW9uIChgYHJ0ZV9lY3ByaS5oYGApLg0KPiA+Pj4gIC0gRGVmYXVsdCBgYG1hc2tgYCBtYXRj aGVzIG5vdGhpbmcsIGZvciBhbGwgZUNQUkkgbWVzc2FnZXMuDQo+ID4+Pg0KPiA+Pj4gK0l0ZW06 IGBgUEFDS0VUX0lOVEVHUklUWV9DSEVDS1NgYA0KPiA+Pj4gK15eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXg0KPiA+Pj4gKw0KPiA+Pj4gK01hdGNoZXMgcGFja2V0IGludGVncml0eS4N Cj4gPj4+ICsNCj4gPj4+ICstIGBgbGV2ZWxgYDogdGhlIGVuY2Fwc3VsYXRpb24gbGV2ZWwgdGhh dCBzaG91bGQgYmUgY2hlY2tlZC4gbGV2ZWwgMCBtZWFucw0KPiB0aGUNCj4gPj4+ICsgIGRlZmF1 bHQgUE1EIG1vZGUgKENhbiBiZSBpbm5lciBtb3N0IC8gb3V0ZXJtb3N0KS4gdmFsdWUgb2YgMSBt ZWFucw0KPiA+PiBvdXRlcm1vc3QNCj4gPj4+ICsgIGFuZCBoaWdoZXIgdmFsdWUgbWVhbnMgaW5u ZXIgaGVhZGVyLiBTZWUgYWxzbyBSU1MgbGV2ZWwuDQo+ID4+PiArLSBgYHBhY2tldF9va2BgOiBB bGwgSFcgcGFja2V0IGludGVncml0eSBjaGVja3MgaGF2ZSBwYXNzZWQgYmFzZWQgb24gdGhlDQo+ ID4+IG1heA0KPiA+Pj4gKyAgbGF5ZXIgb2YgdGhlIHBhY2tldC4NCj4gPj4+ICsgIGxheWVyIG9m IHRoZSBwYWNrZXQuDQo+ID4+PiArLSBgYGwyX29rYGA6IGFsbCBsYXllciAyIEhXIGludGVncml0 eSBjaGVja3MgcGFzc2VkLg0KPiA+Pj4gKy0gYGBsM19va2BgOiBhbGwgbGF5ZXIgMyBIVyBpbnRl Z3JpdHkgY2hlY2tzIHBhc3NlZC4NCj4gPj4+ICstIGBgbDRfb2tgYDogYWxsIGxheWVyIDMgSFcg aW50ZWdyaXR5IGNoZWNrcyBwYXNzZWQuDQo+ID4+PiArLSBgYGwyX2NyY19va2BgOiBsYXllciAy IGNyYyBjaGVjayBwYXNzZWQuDQo+ID4+PiArLSBgYGlwdjRfY3N1bV9va2BgOiBpcHY0IGNoZWNr c3VtIGNoZWNrIHBhc3NlZC4NCj4gPj4+ICstIGBgbDRfY3N1bV9va2BgOiBsYXllciA0IGNoZWNr c3VtIGNoZWNrIHBhc3NlZC4NCj4gPj4+ICstIGBgbDNfbGVuX29rYGA6IHRoZSBsYXllciAzIGxl biBpcyBzbWFsbGVyIHRoYW4gdGhlIHBhY2tldCBsZW4uDQo+ID4+PiArDQo+ID4+PiAgQWN0aW9u cw0KPiA+Pj4gIH5+fn5+fn4NCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9l dGhkZXYvcnRlX2Zsb3cuaCBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPj4+IGlu ZGV4IDZjYzU3MTMuLmY2ODg4YTEgMTAwNjQ0DQo+ID4+PiAtLS0gYS9saWIvbGlicnRlX2V0aGRl di9ydGVfZmxvdy5oDQo+ID4+PiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ ID4+PiBAQCAtNTUxLDYgKzU1MSwxNSBAQCBlbnVtIHJ0ZV9mbG93X2l0ZW1fdHlwZSB7DQo+ID4+ PiAgCSAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9nZW5ldmVfb3B0DQo+ID4+PiAgCSAqLw0K PiA+Pj4gIAlSVEVfRkxPV19JVEVNX1RZUEVfR0VORVZFX09QVCwNCj4gPj4+ICsNCj4gPj4+ICsJ LyoqDQo+ID4+PiArCSAqIFtNRVRBXQ0KPiA+Pj4gKwkgKg0KPiA+Pj4gKwkgKiBNYXRjaGVzIG9u IHBhY2tldCBpbnRlZ3JpdHkuDQo+ID4+PiArCSAqDQo+ID4+PiArCSAqIFNlZSBzdHJ1Y3QgcnRl X2Zsb3dfaXRlbV9wYWNrZXRfaW50ZWdyaXR5X2NoZWNrcy4NCj4gPj4+ICsJICovDQo+ID4+PiAr CVJURV9GTE9XX0lURU1fVFlQRV9QQUNLRVRfSU5URUdSSVRZX0NIRUNLUywNCj4gPj4+ICB9Ow0K PiA+Pj4NCj4gPj4+ICAvKioNCj4gPj4+IEBAIC0xNjg1LDYgKzE2OTQsNDMgQEAgc3RydWN0IHJ0 ZV9mbG93X2l0ZW1fZ2VuZXZlX29wdCB7DQo+ID4+PiAgfTsNCj4gPj4+ICAjZW5kaWYNCj4gPj4+ DQo+ID4+PiArc3RydWN0IHJ0ZV9mbG93X2l0ZW1fcGFja2V0X2ludGVncml0eV9jaGVja3Mgew0K PiA+Pj4gKwl1aW50MzJfdCBsZXZlbDsNCj4gPj4+ICsJLyoqPCBQYWNrZXQgZW5jYXBzdWxhdGlv biBsZXZlbCB0aGUgaXRlbSBzaG91bGQgYXBwbHkgdG8uDQo+ID4+PiArCSAqIEBzZWUgcnRlX2Zs b3dfYWN0aW9uX3Jzcw0KPiA+Pj4gKwkgKi8NCj4gPj4+ICtSVEVfU1REX0MxMQ0KPiA+Pj4gKwl1 bmlvbiB7DQo+ID4+PiArCQlzdHJ1Y3Qgew0KPiA+Pj4gKwkJCXVpbnQ2NF90IHBhY2tldF9vazox Ow0KPiA+Pj4gKwkJCS8qKiBUaGUgcGFja2V0IGlzIHZhbGlkIGFmdGVyIHBhc3NpbmcgYWxsIEhX IGNoZWNrcy4gKi8NCj4gPj4+ICsJCQl1aW50NjRfdCBsMl9vazoxOw0KPiA+Pj4gKwkJCS8qKjwg TDIgbGF5ZXIgaXMgdmFsaWQgYWZ0ZXIgcGFzc2luZyBhbGwgSFcgY2hlY2tzLiAqLw0KPiA+Pj4g KwkJCXVpbnQ2NF90IGwzX29rOjE7DQo+ID4+PiArCQkJLyoqPCBMMyBsYXllciBpcyB2YWxpZCBh ZnRlciBwYXNzaW5nIGFsbCBIVyBjaGVja3MuICovDQo+ID4+PiArCQkJdWludDY0X3QgbDRfb2s6 MTsNCj4gPj4+ICsJCQkvKio8IEw0IGxheWVyIGlzIHZhbGlkIGFmdGVyIHBhc3NpbmcgYWxsIEhX IGNoZWNrcy4gKi8NCj4gPj4+ICsJCQl1aW50NjRfdCBsMl9jcmNfb2s6MTsNCj4gPj4+ICsJCQkv Kio8IEwyIGxheWVyIGNoZWNrc3VtIGlzIHZhbGlkLiAqLw0KPiA+Pj4gKwkJCXVpbnQ2NF90IGlw djRfY3N1bV9vazoxOw0KPiA+Pj4gKwkJCS8qKjwgTDMgbGF5ZXIgY2hlY2tzdW0gaXMgdmFsaWQu ICovDQo+ID4+PiArCQkJdWludDY0X3QgbDRfY3N1bV9vazoxOw0KPiA+Pj4gKwkJCS8qKjwgTDQg bGF5ZXIgY2hlY2tzdW0gaXMgdmFsaWQuICovDQo+ID4+PiArCQkJdWludDY0X3QgbDNfbGVuX29r OjE7DQo+ID4+PiArCQkJLyoqPCBUaGUgbDMgbGVuIGlzIHNtYWxsZXIgdGhhbiB0aGUgcGFja2V0 IGxlbi4gKi8NCj4gPj4+ICsJCQl1aW50NjRfdCByZXNlcnZlZDo1NjsNCj4gPj4+ICsJCX07DQo+ ID4+PiArCQl1aW50NjRfdCAgdmFsdWU7DQo+ID4+PiArCX07DQo+ID4+PiArfTsNCj4gPj4+ICsN Cj4gPj4+ICsjaWZuZGVmIF9fY3BsdXNwbHVzDQo+ID4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBy dGVfZmxvd19pdGVtX3Nhbml0eV9jaGVja3MNCj4gPj4+ICsJcnRlX2Zsb3dfaXRlbV9zYW5pdHlf Y2hlY2tzX21hc2sgPSB7DQo+ID4+PiArCQkudmFsdWUgPSAwLA0KPiA+Pj4gK307DQo+ID4+PiAr I2VuZGlmDQo+ID4+PiArDQo+ID4+PiAgLyoqDQo+ID4+PiAgICogTWF0Y2hpbmcgcGF0dGVybiBp dGVtIGRlZmluaXRpb24uDQo+ID4+PiAgICoNCj4gPj4+DQo+ID4NCg0K