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 31AFDA0501; Tue, 26 Apr 2022 15:43:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CC88640E78; Tue, 26 Apr 2022 15:43:55 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 0987A40C35 for ; Tue, 26 Apr 2022 15:43:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650980633; x=1682516633; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=sXFlxzkNhTRB2a3nhR58D1HdAiF//Cl0kAaBVoF8yK0=; b=Dm5DDmbiYZrYMJla5hnoUtuHwsAlsjHTEWP2dw2KOLYastmFl6/QS7yH yvV+yhErCcQmyuzfx/G3JKd2k3QxKY/tAI8dWiPrLWnGeV8UxCTF2ycai gY3YCTPr5F10dV1628pT+dan4g5OVh3I3UziQL3kUlYd8CclUp4xQEKQd y9rHsrPWMQolxtptHgYPgM0WlXV8+mK5f2YSt53ncclYpDX4tijuCHx+D Ds2SwXZHKKw9XeSdkDrdZYQzKH9+M6HmhoK+xhcXTDZnK+GIzmtR4wNu1 mUTerrXGBicNwth+m4VzpREmj+0PJSm9n6dh6XnMvOCWXzwhyg9Vnu8fj w==; X-IronPort-AV: E=McAfee;i="6400,9594,10328"; a="245502757" X-IronPort-AV: E=Sophos;i="5.90,291,1643702400"; d="scan'208";a="245502757" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 06:43:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,291,1643702400"; d="scan'208";a="579900504" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga008.jf.intel.com with ESMTP; 26 Apr 2022 06:43:50 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 26 Apr 2022 06:43:50 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 26 Apr 2022 06:43:50 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Tue, 26 Apr 2022 06:43:50 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.107) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Tue, 26 Apr 2022 06:43:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XKGhORNVeNZ7FNjMxHoBrGEgJx6uWqVHfKRlM/aCLwbcNBnLZEdi1rkxvC8YEiAtv4B3i5rtO5QjXjlCkCUpV2u7yb5wALzrmAXykV6Eys0JydV94HT5IZXPvybeu+7ihF8XQiRuETUM6WXd1ECCExl4CGuRqz/yihH4jDE8zHqJ1flpXhT0yARGN6KRWKtm94VIKmSeqUjVnP0UvLzDy3VIn4+ZqgLfLaNyyotcU2uBkUWk6k0y7Ujj8ME1L0Hzuuze7khVwuNuJaCz0vwGo3CWSq4eM3Sc0RSzPlaDTOXeceBZPOvjoE6uxYdaHn5/gBZ7/ood4uKc66wjvBDtfg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sXFlxzkNhTRB2a3nhR58D1HdAiF//Cl0kAaBVoF8yK0=; b=VXQ061Dj28TOvtNvB0eIBx+MxBEp/DNH1cs4IbgyE5P6vQUFULTBfgt50nPPGRmyOg7EcOEVBmoiBqBDXIkujFacK9CLTS7Mz2ctiFNn90DE/K3p5AmWvT+eJ3xSep19mE/bm/9Fr0VXe90pQbDOFfyCTCC3X5fyygSusZ1e8Dyn0Kc/+4ByWeUTmHQHLVsp89xirOVs2EtoWbmOdhD976640iat6hE3mo3XVP/bLe9ULvp7Lg0ItC+R2hHeaqypUvlPuqXnxkfFvgIe2dEg08YQBLOd5twjky9dPwh+Ao4KXrfwrX+ZwuLMBiUsDNl+G6AsLMuOdbAi+dv7Yf887A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM8PR11MB5670.namprd11.prod.outlook.com (2603:10b6:8:37::12) by MN2PR11MB4520.namprd11.prod.outlook.com (2603:10b6:208:265::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Tue, 26 Apr 2022 13:43:47 +0000 Received: from DM8PR11MB5670.namprd11.prod.outlook.com ([fe80::5dc9:53d7:3ece:fa2d]) by DM8PR11MB5670.namprd11.prod.outlook.com ([fe80::5dc9:53d7:3ece:fa2d%2]) with mapi id 15.20.5186.021; Tue, 26 Apr 2022 13:43:47 +0000 From: "Dumitrescu, Cristian" To: Jerin Jacob , Alexander Kozyrev CC: dpdk-dev , Ori Kam , Thomas Monjalon , Ivan Malov , Andrew Rybchenko , "Yigit, Ferruh" , "Awal, Mohammad Abdul" , "Zhang, Qi Z" , Jerin Jacob , Ajit Khaparde , "Richardson, Bruce" Subject: RE: [RFC] ethdev: datapath-focused meter actions Thread-Topic: [RFC] ethdev: datapath-focused meter actions Thread-Index: AQHYSvMNHDxQ/Ff61USTqtdNbkYLPazlrVMAgByZCHA= Date: Tue, 26 Apr 2022 13:43:47 +0000 Message-ID: References: <20220408024658.2004918-1-akozyrev@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.401.20 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f19c9ee6-a5e4-4123-e8dc-08da278aca1b x-ms-traffictypediagnostic: MN2PR11MB4520:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 859ZBqlGskOJ/jXGsQTVamzBf/8cDMNFjZ4g/gMFWt794NbPAG+CfMUYuGAE5XzrK5q60taRf+JIUgPW+12rPSUC+RobXVObwC5WiyDXKZIXuOS34TeOHi47+Eeb9RDtBA7qH5tndfnHxC4KluYjGrzZ0kkQdnB07ZVCI99tQjV6I+5mi0Yg3LgxmWHj8QqB59XOD31ZhO0F69sR5claUnRzeQ77FAa00LIR26GfaCOM8HeZAf5H/v/g3ultAYeZSYpVS33PUCT+58WGR6HjP1cs9QnnNzF3tgVlPYZD4dmUlA/QNFbz28kg1ESJ/mPBh43LY2rIDsSy885L7LEnAkrh7SFPGu66wOSzhV//T9BxKpkNzriz2Taw0jj3px6DmNLtVRF3QNVTwsbfl+lkdI2izONQ2GsRihmcWLrTMtQgyC2cmtxAupztg7srlAEMGDZ0OB1YtVBpAgF8b0LkKmKFFa3VYiawzT7OLCZI8AuphS/2fU6ELpqqv0cdrBmdfHfBzKGY85FyCNaoCUj3hlmcYxCkh+x8UF0WSW9lyIsfc3NWDgoaF14VcTT6iG7Oh7ouXxGl3t7I2q0zQqPgdtw3GjZ5OPXIfn5PRXcYbPfBb0Efj6/dBbcLS4OGiD0JUZcLJMa7mUngGwGHU2oZWzIIojO+sOB7RjnTfg+Kc511RZUa8OOXAkb5N9XKz+boKBO0V/TRXhzfCt2/GBofXQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5670.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(55016003)(508600001)(316002)(33656002)(8936002)(64756008)(8676002)(110136005)(82960400001)(107886003)(54906003)(76116006)(186003)(5660300002)(86362001)(66476007)(66556008)(9686003)(38100700002)(38070700005)(30864003)(66446008)(4326008)(71200400001)(122000001)(2906002)(83380400001)(52536014)(7696005)(26005)(6506007)(53546011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NVpxOTNpZ2ZqTVhkUDVQenlvcVFKaFZaSUZpOUhZeWcvV1ZaYkZiaFlLUHoz?= =?utf-8?B?UC9sQng1L09aNE9PZzdoQjNSRTQxQ0JVa0diODdIMzFMREJWbnZ0VHI1UUFm?= =?utf-8?B?WGJ5TzkzRG0zZEdJVzVPeHRrOUxHZmIrMkdtY096dDdmNjlXb0RPMDVEd3d6?= =?utf-8?B?TFJQaEp1NS9mT0hkc3J4Z0tzREllbTRTMmFOd1d6T2loTVBIZmh0UWVXMm8y?= =?utf-8?B?eFJ4RE5QbG02SmlJVjhlUjhRRXdrMGJlN05MZERiYW13NHhzNnBqUkxDTUdi?= =?utf-8?B?VjYyRDVLeVpMQm14QlpiVEQ5TWhtYzY4MDM1ZFI5dm1IZ2pqcm5LUVdZN1FU?= =?utf-8?B?NUhEcnovMnVNWjVDeTFEUXBHNTg3b0RKb25xUXcvK01XbzVQRk9QYkNoMGgr?= =?utf-8?B?TE93dVUyQlZBbGtDbFFIaWw4QXdOdmFacjhBV0xlaTY0T0M0UjNqWWdTRVBO?= =?utf-8?B?ZE9HNUFjRGE0cVAvMklnaVl5Zyt5WVB1eVgremtVQ0U2RE5WS2prWnpJdS9L?= =?utf-8?B?RHp3M2dQZTlGTGVLbEdaQ2xnb3E4YVdKN0Q5MmxlbENETzU0UXNiRGVlSFNW?= =?utf-8?B?UWZGSzY3eHc2VWxQQjh6blllRjFjUDBYV0JKUXpORTUrMHZKWXpxenJ3WVNi?= =?utf-8?B?R254WGs5azRnWjUvd1ZCTzNabGFLbzNMS1B1NzFQRnRzYzh0b0ZqRGh0VFZx?= =?utf-8?B?bVdzd2F1ajRqTjdWUW9ZRkthV1dJZGdLd1Z3YkFvQXVhc0F4SXkvNmFPdUIz?= =?utf-8?B?aDBvczlmcmlaQndLNndaNjBBRlp5SkVLNXZQaWRucC9KWnZzQXJZMzdwQTVz?= =?utf-8?B?dVZJd2o5c29kbFpJZ0UxTUN2MjVwSmZCR1dENDBLQmp4aUQxMlpUVFpUb0xq?= =?utf-8?B?SXUwYXJycTJXakdHSzhQQS9HWkZBUUZTbTE4Z3BuMWZqMWZjWjJyd2lIRm8w?= =?utf-8?B?aVFOaDY4ak9pRXZuelNmNDhBdHdLdnZVY1VIYi9kb1RFMStjalYySm5QaDBD?= =?utf-8?B?UmZMdi9ZcmxyVzVvYnVQTkV2Rjh6TjV0MzJWWmpvRTVwRkhwbmRkZ0F4UHJt?= =?utf-8?B?bHUvM1EvMkh2ejl3UUpqci85YzNXZ2h1eVN1WnpVZzBZTU1VQzg5NmJKM2Uw?= =?utf-8?B?NDh0RHZnVXZ3NGJvT0ZjZ2ZrejJEby8zU0pwYWVkNkF2MFYwdzFqVEQ2Tlpu?= =?utf-8?B?MU5hS1NDZU9vZXVmZ0JNaDFwZkZUOXJ4VXU5WWpuc1NKd2kvSU9IN09RK2RD?= =?utf-8?B?VmNLUC93aENqZFdtMDQ2dFc0V3RKZGpHdlArRFVQTDBhOVRIQ1kxakVuNjM4?= =?utf-8?B?QzBhSkdjK1BDRFVmTEdRQkg5RmNua1huNS82VmdML1ZlNHBtamdON1RDSFVq?= =?utf-8?B?QU1pdFd1V2s5cTFOcU5RTGJwc0QwN1R0bFdFd0ZWclNpMWNzUXNNaThUOWpp?= =?utf-8?B?YlJtV2NzSWFiT0NBNnFzdGZGT3k0aXlpdVZsdVN1eXViRjFSaUNjNEJRRWJQ?= =?utf-8?B?UDdTQ0NGc0lYdlp0ZTdQSmg5UHh0eUMrQzVCWHlKclluQitXUnV5OWpzQ1p1?= =?utf-8?B?Q2RNMlIrVXVabVlwYWNMbDY5RXNLV2VGVWNJdEtDcHBiNzZYMFNTZHlrMVRi?= =?utf-8?B?SVZPc21oc09oRkp2SWVNdXNmbFowZHFGeFhjTzc4T3BQU1BMN3gzamtlRnc5?= =?utf-8?B?SDMycVlXRkwvVUpZb1QyMWVIaElIMzJhV0lzeHk4OFgzR2FKaXhocnk2cW5W?= =?utf-8?B?UVNoUkhpaG1WWjhZcERQbDh5eS9aUlFjbTJUczJzMENMNFE2ZHZRN2I3czVw?= =?utf-8?B?YWlnMm5zd2haWVR0VVRNckNWYnZnTTg4RUU2TVJ6YU12bUdyT1Y5QVZtS1lG?= =?utf-8?B?Q25ZUjBYMUprM2tkeElvNGExNit6NlY0bDV0UEMwajB2Q3d4RGdRMmtPL3lK?= =?utf-8?B?ZXg5Z2pSVFk4eEJZRldQK3cvbmVzckcwK0tOQmJwS2hITDNxa2pmU3lSZjlO?= =?utf-8?B?TEk4Q1NNMzRiVmI2Nm1ZZEcxMVlQbk9DTFJxa0VId2hob2NzMXBzNTJteHQw?= =?utf-8?B?SENDU1JEbVVYTGlZODE1TXlpYU45T05DVDIxSWw1dHpHZ1NEZXNXd1NrQUM0?= =?utf-8?B?d1VYb3R1MjZGZS95WC9HNmRrUmFaM1Zxd1dHTlBPSVRYVlBnOWNjd3lIOHE0?= =?utf-8?B?Mjh0eWdyUTdkYm9SZmpxVEVxL29TYlMxL2d2ZnZXbjliUElSeko0bU9QZ2NN?= =?utf-8?B?a0t3MEZFcWxqc29KMWNFNk1YWHBTaGxKeC9ydlNIaFdVOHVsaHpjUWYrY1pu?= =?utf-8?B?KytITSswTmpSenZ1WjdTK21iNVIrY2ZBUTVubFhXaDlnV3lpMk1nUWxkbDdG?= =?utf-8?Q?RrKitSUEMlxJpx7M=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5670.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f19c9ee6-a5e4-4123-e8dc-08da278aca1b X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2022 13:43:47.5518 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Rq2MIwDr6gNlMGPw/UNhmC3SgOBGxGeaLxpBHep0ufj20hVF/KFcX/gtIygegfw5JWmbI0aukU1+ckcaE+GGdnCZr0Gl3nwrdJfKsrO/jwY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4520 X-OriginatorOrg: intel.com 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 SGkgQWxleGFuZGVyLA0KDQpBZnRlciByZXZpZXdpbmcgdGhpcyBSRkMsIEkgaGF2ZSB0byBzYXkg dGhhdCB5b3VyIHByb3Bvc2FsIGlzIHZlcnkgdW5jbGVhciB0byBtZS4gSSBkb24ndCB1bmRlcnN0 YW5kIHdoYXQgaXMgdGhlIHByb2JsZW0geW91J3JlIHRyeWluZyB0byBzb2x2ZSBhbmQgd2hhdCBl eGFjdGx5IGlzIHRoYXQgeW91IGNhbm5vdCBkbyB3aXRoIHRoZSBjdXJyZW50IG1ldGVyIGFuZCBm bG93IEFQSXMuDQoNCkkgc3VnZ2VzdCB3ZSBnZXQgdG9nZXRoZXIgZm9yIGEgY29tbXVuaXR5IGNh bGwgd2l0aCBhbGwgdGhlIGludGVyZXN0ZWQgZm9sa3MgaW52aXRlZCBpbiBvcmRlciB0byBnZXQg bW9yZSBjbGFyaXR5IG9uIHlvdXIgcHJvcG9zYWwsIHRoYW5rIHlvdSENCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKZXJpbiBKYWNvYiA8amVyaW5qYWNvYmtAZ21haWwu Y29tPg0KPiBTZW50OiBGcmlkYXksIEFwcmlsIDgsIDIwMjIgOToyMSBBTQ0KPiBUbzogQWxleGFu ZGVyIEtvenlyZXYgPGFrb3p5cmV2QG52aWRpYS5jb20+OyBEdW1pdHJlc2N1LCBDcmlzdGlhbg0K PiA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+DQo+IENjOiBkcGRrLWRldiA8ZGV2QGRw ZGsub3JnPjsgT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT47IFRob21hcw0KPiBNb25qYWxvbiA8 dGhvbWFzQG1vbmphbG9uLm5ldD47IEl2YW4gTWFsb3YgPGl2YW4ubWFsb3ZAb2t0ZXRsYWJzLnJ1 PjsNCj4gQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+OyBZ aWdpdCwgRmVycnVoDQo+IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgQXdhbCwgTW9oYW1tYWQg QWJkdWwNCj4gPG1vaGFtbWFkLmFiZHVsLmF3YWxAaW50ZWwuY29tPjsgWmhhbmcsIFFpIFogPHFp LnouemhhbmdAaW50ZWwuY29tPjsNCj4gSmVyaW4gSmFjb2IgPGplcmluakBtYXJ2ZWxsLmNvbT47 IEFqaXQgS2hhcGFyZGUNCj4gPGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tPjsgUmljaGFyZHNv biwgQnJ1Y2UNCj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTog W1JGQ10gZXRoZGV2OiBkYXRhcGF0aC1mb2N1c2VkIG1ldGVyIGFjdGlvbnMNCj4gDQo+ICsgQENy aXN0aWFuIER1bWl0cmVzY3UgbWV0ZXIgbWFpbnRhaW5lci4NCj4gDQo+IA0KPiBPbiBGcmksIEFw ciA4LCAyMDIyIGF0IDg6MTcgQU0gQWxleGFuZGVyIEtvenlyZXYgPGFrb3p5cmV2QG52aWRpYS5j b20+DQo+IHdyb3RlOg0KPiA+DQo+ID4gVGhlIGludHJvZHVjdGlvbiBvZiBhc3luY2hyb25vdXMg ZmxvdyBydWxlcyBvcGVyYXRpb25zIGFsbG93ZWQgdXNlcnMNCj4gPiB0byBjcmVhdGUvZGVzdHJv eSBmbG93IHJ1bGVzIGFzIHBhcnQgb2YgdGhlIGRhdGFwYXRoIHdpdGhvdXQgYmxvY2tpbmcNCj4g PiBvbiBGbG93IEFQSSBhbmQgc2xvd2luZyB0aGUgcGFja2V0IHByb2Nlc3NpbmcgZG93bi4NCj4g Pg0KPiA+IFRoYXQgYXBwbGllcyB0byBldmVyeSBwb3NzaWJsZSBhY3Rpb24gdGhhdCBoYXMgbm8g cHJlcGFyYXRpb24gc3RlcHMuDQo+ID4gVW5mb3J0dW5hdGVseSwgb25lIG5vdGFibGUgZXhjZXB0 aW9uIGlzIHRoZSBtZXRlciBhY3Rpb24uDQo+ID4gVGhlcmUgaXMgYSBzZXBhcmF0ZSBBUEkgdG8g cHJlcGFyZSBhIG1ldGVyIHByb2ZpbGUgYW5kIGEgbWV0ZXIgcG9saWN5DQo+ID4gYmVmb3JlIGFu eSBtZXRlciBvYmplY3QgY2FuIGJlIHVzZWQgYXMgYSBmbG93IHJ1bGUgYWN0aW9uLg0KDQpJIGRp c2FncmVlLiBDcmVhdGlvbiBvZiBtZXRlciBwb2xpY2llcyBhbmQgbWV0ZXIgb2JqZWN0cyBpcyBk ZWNvdXBsZWQgZnJvbSB0aGUgZmxvdyBjcmVhdGlvbi4gTWV0ZXIgcG9saWNpZXMgYW5kIG1ldGVy IG9iamVjdHMgY2FuIGFsbCBiZSBjcmVhdGVkIGF0IGluaXRpYWxpemF0aW9uIG9yIG9uLXRoZS1m bHksIGFuZCB0aGVpciBjcmVhdGlvbiBkb2VzIG5vdCBkaXJlY3RseSByZXF1aXJlIHRoZSBkYXRh IHBsYW5lIHRvIGJlIHN0b3BwZWQuDQoNClBsZWFzZSBleHBsYWluIHdoYXQgcHJvYmxlbSBhcmUg eW91IHRyeWluZyB0byBmaXggaGVyZS4gSSBzdWdnZXN0IHlvdSBwcm92aWRlIHRoZSBzZXF1ZW5j ZSBkaWFncmFtIGFuZCB0ZWxsIHVzIHdoZXJlIHRoZSBwcm9ibGVtIGlzLg0KDQo+ID4NCj4gPiBU aGUgYXBwbGljYXRpb24gbG9naWMgaXMgdGhlIGZvbGxvd2luZzoNCj4gPiAxLiBydGVfbXRyX21l dGVyX3Byb2ZpbGVfYWRkKCkgaXMgY2FsbGVkIHRvIGNyZWF0ZSB0aGUgbWV0ZXIgcHJvZmlsZQ0K PiA+IGZpcnN0IHRvIGRlZmluZSBob3cgdG8gY2xhc3NpZnkgaW5jb21pbmcgcGFja2V0cyBhbmQg dG8gYXNzaWduIGFuDQo+ID4gYXBwcm9wcmlhdGUgY29sb3IgdG8gdGhlbS4NCj4gPiAyLiBydGVf bXRyX21ldGVyX3BvbGljeV9hZGQoKSBpcyBpbnZva2VkIHRvIGRlZmluZSB0aGUgZmF0ZSBvZiBh IHBhY2tldCwNCj4gPiBiYXNlZCBvbiBpdHMgY29sb3IgKHByYWN0aWNhbGx5IGNyZWF0aW5nIGZs b3cgcnVsZXMsIG1hdGNoaW5nIGNvbG9ycykuDQoNCk5vcGUsIHRoZSBwb2xpY3kgYWRkIGRvZXMg bm90IGNyZWF0ZSBhbnkgZmxvd3MuIEluIGZhY3QsIGl0IGRvZXMgbm90IGNyZWF0ZSBhbnkgbWV0 ZXIgb2JqZWN0cyBlaXRoZXIuIEl0IHNpbXBseSBkZWZpbmVzIGEgY29uZmlndXJhdGlvbiBwYXR0 ZXJuIHRoYXQgY2FuIGJlIHJldXNlZCBtYW55IHRpbWVzIHdoZW4gbWV0ZXIgb2JqZWN0cyBhcmUg Y3JlYXRlZCBhZnRlcndhcmRzLg0KDQo+ID4gMy4gcnRlX210cl9jcmVhdGUoKSBpcyB0aGVuIG5l ZWRlZCB0byBzZWFyY2ggKHdpdGggbG9ja3MpIGZvciBwcmV2aW91c2x5DQo+ID4gY3JlYXRlZCBw cm9maWxlIGFuZCBwb2xpY3kgaW4gb3JkZXIgdG8gY3JlYXRlIHRoZSBtZXRlciBvYmplY3QuDQoN ClRoZSBydGVfbXRyX2NyZWF0ZSgpIGlzIG5vdCBjcmVhdGVkIGF0IHRoZSB0aW1lIHRoZSBmbG93 IGlzIGNyZWF0ZWQsIGJ1dCBhdCBhIHByaW9yIGRlY291cGxlZCBtb21lbnQuIEkgZG9uJ3Qgc2Vl IGFueSBpc3N1ZSBoZXJlLg0KDQo+ID4gNC4gcnRlX2Zsb3dfY3JlYXRlKCkgaXMgbm93IGZpbmFs bHkgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgY3JlYXRlZA0KPiA+IG1ldGVyIGFzIGFuIGFj dGlvbi4NCj4gPg0KPiA+IFRoaXMgYXBwcm9hY2ggZG9lc24ndCBmaXQgaW50byB0aGUgYXN5bmNo cm9ub3VzIHJ1bGUgY3JlYXRpb24gbW9kZWwNCj4gPiBhbmQgY2FuIGJlIGltcHJvdmVkIHdpdGgg dGhlIGZvbGxvd2luZyBwcm9wb3NhbDoNCg0KQWdhaW4sIHRoZSBjcmVhdGlvbiBvZiBtZXRlciBw b2xpY2llcyBhbmQgb2JqZWN0cyBpcyBkZWNvdXBsZWQgZnJvbSB0aGUgZmxvdyBjcmVhdGlvbjsg aW4gZmFjdCwgdGhlIG1ldGVyIHBvbGljaWVzIGFuZCBvYmplY3RzIG11c3QgYmUgY3JlYXRlZCBi ZWZvcmUgdGhlIGZsb3dzIHVzaW5nIHRoZW0gYXJlIGNyZWF0ZWQuDQoNCj4gPiAxLiBDcmVhdGlu ZyBhIHBvbGljeSBtYXkgYmUgcmVwbGFjZWQgd2l0aCB0aGUgY3JlYXRpb24gb2YgYSBncm91cCB3 aXRoDQo+ID4gdXAgdG8gMyBkaWZmZXJlbnQgcnVsZXMgZm9yIGV2ZXJ5IGNvbG9yIHVzaW5nIGFz eW5jaHJvbm91cyBGbG93IEFQSS4NCj4gPiBUaGF0IHJlcXVpcmVzIHRoZSBpbnRyb2R1Y3Rpb24g b2YgYSBuZXcgcGF0dGVybiBpdGVtIC0gbWV0ZXIgY29sb3IuDQo+ID4gVGhlbiBjcmVhdGlvbiBh IGZsb3cgcnVsZSB3aXRoIHRoZSBtZXRlciBtZWFucyBhIHNpbXBsZSBqdW1wIHRvIGEgZ3JvdXA6 DQo+ID4gcnRlX2Zsb3dfYXN5bmNfY3JlYXRlKGdyb3VwPTEsIHBhdHRlcm49Y29sb3IsIGFjdGlv bnM9Li4uKTsNCj4gPiBydGVfZmxvd19hc3luY19jcmVhdGUoZ3JvdXA9MCwgcGF0dGVybj01LXR1 cGxlLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zPW1ldGVyLGp1bXAgZ3JvdXAg MSk7DQo+ID4gVGhpcyBhbGxvd3MgdG8gY2xhc3NpZnkgcGFja2V0cyBhbmQgYWN0IHVwb24gdGhl aXIgY29sb3IgY2xhc3NpZmljYXRpb25zLg0KPiA+IFRoZSBNZXRlciBhY3Rpb24gYXNzaWducyBh IGNvbG9yIHRvIGEgcGFja2V0IGFuZCBhbiBhcHByb3ByaWF0ZSBhY3Rpb24NCj4gPiBpcyBzZWxl Y3RlZCBiYXNlZCBvbiB0aGUgTWV0ZXIgY29sb3IgaW4gZ3JvdXAgMS4NCj4gPg0KDQpUaGUgbWV0 ZXIgb2JqZWN0cyByZXF1aXJlcyBhIHJlbGF0aXZlbHkgY29tcGxleCBjb25maWd1cmF0aW9uIHBy b2NlZHVyZS4gVGhpcyBpcyBvbmUgb2YgdGhlIHJlYXNvbnMgbWV0ZXJzIGhhdmUgdGhlaXIgb3du IEFQSSwgc28gd2UgY2FuIGtlZXAgdGhhdCBjb21wbGV4aXR5IGF3YXkgZnJvbSB0aGUgZmxvdyBB UEkuDQoNCllvdSBzZWVtIHRvIGluZGljYXRlIHRoYXQgeW91ciBkZXNpcmVkIGJlaGF2aW9yIGlz IHRvIGNyZWF0ZSB0aGUgbWV0ZXIgb2JqZWN0cyB3aGVuIHRoZSBmbG93IGlzIGNyZWF0ZWQgcmF0 aGVyIHRoYW4gaW4gYWR2YW5jZS4gRGlkIEkgZ2V0IGl0IGNvcnJlY3RseT8gVGhpcyBpcyBwb3Nz aWJsZSB3aXRoIHRoZSBjdXJyZW50IEFQSSBhcyB3ZWxsIGJ5IHNpbXBseSBjcmVhdGluZyB0aGUg bWV0ZXIgb2JqZWN0IGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgZmxvdyBnZXRzIGNyZWF0ZWQuDQoN ClN0aXRjaGluZyB0aGUgY3JlYXRpb24gb2YgbmV3IG1ldGVyIG9iamVjdCB0byB0aGUgZmxvdyBj cmVhdGlvbiAoaWYgSSB1bmRlcnN0YW5kIHlvdXIgYXBwcm9hY2ggcmlnaHQpIGRvZSBub3QgYWxs b3cgZm9yIHNvbWUgaW1wb3J0YW50IGZlYXR1cmVzLCBzdWNoIGFzOg0KLXJldXNpbmcgbWV0ZXIg b2JqZWN0cyB0aGF0IHdlcmUgcHJldmlvdXNseSBjcmVhdGVkIGJ5IHJlYXNzaWduaW5nIHRoZW0g dG8gYSBkaWZmZXJlbnQgZmxvdw0KLWhhdmluZyBtdWx0aXBsZSBmbG93cyB1c2UgdGhlIHNhbWUg c2hhcmVkIG1ldGVyLg0KDQo+ID4gMi4gUHJlcGFyaW5nIGEgbWV0ZXIgb2JqZWN0IHNob3VsZCBi ZSB0aGUgcGFydCBvZiBmbG93IHJ1bGUgY3JlYXRpb24NCg0KV2h5Pz8gUGxlYXNlIHRha2Ugc29t ZSB0aW1lIHRvIGNsZWFybHkgZXhwbGFpbiB0aGlzLCB5b3VyIGVudGlyZSBwcm9wb3NhbCBzZWVt cyB0byBiZSBwcmVkaWNhdGVkIG9uIHRoaXMgYXNzZXJ0aW9uIGJlaW5nIHRydWUuDQoNCj4gPiBh bmQgdXNlIHRoZSBzYW1lIGZsb3cgcXVldWUgdG8gYmVuZWZpdCBmcm9tIGFzeW5jaHJvbm91cyBv cGVyYXRpb25zOg0KPiA+IHJ0ZV9mbG93X2FzeW5jX2NyZWF0ZShncm91cD0wLCBwYXR0ZXJuPTUt dHVwbGUsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM9bWV0ZXIgaWQgMSBwcm9m aWxlIHJmYzI2OTcsIGp1bXAgZ3JvdXAgMSk7DQo+ID4gQ3JlYXRpb24gb2YgdGhlIG1ldGVyIG9i amVjdCB0YWtlcyB0aW1lIGFuZCBmbG93IGNyZWF0aW9uIG11c3Qgd2FpdA0KPiA+IHVudGlsIGl0 IGlzIHJlYWR5IGJlZm9yZSBpbnNlcnRpbmcgdGhlIHJ1bGUuIFVzaW5nIHRoZSBzYW1lIHF1ZXVl IGFsbG93cw0KPiA+IGVuc3VyaW5nIHRoYXQuIFRoZXJlIGlzIG5vIG5lZWQgdG8gY3JlYXRlIGEg bWV0ZXIgb2JqZWN0IG91dHNpZGUgb2YgdGhlDQo+ID4gRmxvdyBBUEksIGJ1dCB0aGlzIGFwcHJv YWNoIHdvbid0IGFmZmVjdCB0aGUgb2xkIE1ldGVyIEFQSSBpbiBhbnkgd2F5Lg0KPiA+DQo+ID4g My4gQW5vdGhlciBwb2ludCBvZiBvcHRpbWl6YXRpb24gaXMgdG8gcHJlcGFyZSBhbGwgdGhlIHJl c291cmNlcyBuZWVkZWQNCj4gPiBpbiBhZHZhbmNlIGluIHJ0ZV9mbG93X2NvbmZpZ3VyZSgpLiAN Cg0KVGhpcyBzZWVtcyB0byBkaXJlY3RseSBjb250cmFkaWN0IHlvdSBwcmV2aW91cyBzdGF0ZW1l bnQgdGhhdCBtZXRlciBvYmplY3RzIG5lZWQgdG8gYmUgY3JlYXRlZCBhdCB0aGUgc2FtZSB0aW1l IHdoZW4gdGhlIGZsb3cgaXMgY3JlYXRlZCAoZXhhY3QgcXVvdGUgb2YgeW91ciBzdGF0ZW1lbnQg ZnJvbSBhYm92ZTogIiBQcmVwYXJpbmcgYSBtZXRlciBvYmplY3Qgc2hvdWxkIGJlIHRoZSBwYXJ0 IG9mIGZsb3cgcnVsZSBjcmVhdGlvbiIpLg0KDQpBbGwgdGhlIHBvbGljeSBydWxlcyBjYW4gYmUg Y3JlYXRlZA0KPiA+IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gc3RhZ2UgZWFzaWx5IGFuZCBw dXQgaW50byBzZXZlcmFsIGdyb3Vwcy4NCj4gPiBUaGVzZSBncm91cHMgY2FuIGJlIHVzZWQgYnkg bWFueSBtZXRlciBvYmplY3RzIGJ5IHNpbXBsZSBqdW1wIGFjdGlvbiB0bw0KPiA+IGFuIGFwcHJv cHJpYXRlIGdyb3VwLiBNZXRlciBvYmplY3RzIGNhbiBiZSBwcmVhbGxvY2F0ZWQgYXMgd2VsbCBh bmQNCj4gPiBjb25maWd1cmVkIHdpdGggcmVxdWlyZWQgcHJvZmlsZSBwYXJhbWV0ZXJzIGxhdGVy IGF0IHRoZSBmbG93IHJ1bGUNCj4gPiBjcmVhdGlvbiBzdGFnZS4gVGhlIG51bWJlciBvZiBwcmUt YWxsb2NhdGVkIHByb2ZpbGVzL3BvbGljaWVzIGlzDQo+ID4gc3BlY2lmaWVkIGluIHRoZSBGbG93 IGVuZ2luZSByZXNvdXJjZXMgc2V0dGluZ3MuDQo+ID4NCj4gPiBUaGVzZSBvcHRpbWl6YXRpb25z IGFsb25nc2lkZSBhbHJlYWR5IGV4aXN0aW5nIHBhdHRlcm4vYWN0aW9ucyB0ZW1wbGF0ZXMNCj4g PiBjYW4gaW1wcm92ZSB0aGUgaW5zZXJ0aW9uIHJhdGUgc2lnbmlmaWNhbnRseSBhbmQgYWxsb3cg bWV0ZXIgdXNhZ2UgYXMNCj4gPiBwYXJ0IG9mIHRoZSBkYXRhcGF0aC4gVGhlIGludHJvZHVjdGlv biBvZiB0aGUgbmV3IEFQSSBpcyBpbnRlbmRlZCB0byBiZQ0KPiA+IHVzZWQgd2l0aCB0aGUgYXN5 bmNocm9ub3VzIEZsb3cgQVBJLiBEZXByZWNhdGlvbiBvZiB0aGUgb2xkIE1ldGVyIEFQSQ0KPiA+ IGlzIG5vdCBwbGFubmVkIGF0IHRoaXMgcG9pbnQuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBB bGV4YW5kZXIgS296eXJldiA8YWtvenlyZXZAbnZpZGlhLmNvbT4NCj4gPiAtLS0NCj4gPiAgbGli L2V0aGRldi9ydGVfZmxvdy5oIHwgNzENCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaCBi L2xpYi9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+IGluZGV4IGQ4ODI3ZGQxODQuLmFlYzM2YTlmMGEg MTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gKysrIGIvbGliL2V0 aGRldi9ydGVfZmxvdy5oDQo+ID4gQEAgLTMzLDYgKzMzLDcgQEANCj4gPiAgI2luY2x1ZGUgPHJ0 ZV9iaXRvcHMuaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9tYnVmLmg+DQo+ID4gICNpbmNsdWRlIDxy dGVfbWJ1Zl9keW4uaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9tdHIuaD4NCj4gPiAgI2luY2x1ZGUg PHJ0ZV9tZXRlci5oPg0KPiA+ICAjaW5jbHVkZSA8cnRlX2d0cC5oPg0KPiA+ICAjaW5jbHVkZSA8 cnRlX2wydHB2Mi5oPg0KPiA+IEBAIC02NzEsNiArNjcyLDEzIEBAIGVudW0gcnRlX2Zsb3dfaXRl bV90eXBlIHsNCj4gPiAgICAgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ncmVfb3B0 Lg0KPiA+ICAgICAgICAgICovDQo+ID4gICAgICAgICBSVEVfRkxPV19JVEVNX1RZUEVfR1JFX09Q VElPTiwNCj4gPiArDQo+ID4gKyAgICAgICAvKioNCj4gPiArICAgICAgICAqIE1hdGNoZXMgTWV0 ZXIgQ29sb3IuDQo+ID4gKyAgICAgICAgKg0KPiA+ICsgICAgICAgICogU2VlIHN0cnVjdCBydGVf Zmxvd19pdGVtX21ldGVyX2NvbG9yLg0KPiA+ICsgICAgICAgICovDQo+ID4gKyAgICAgICBSVEVf RkxPV19JVEVNX1RZUEVfTUVURVJfQ09MT1IsDQoNCkFzIGRpc2N1c3NlZCBpbiB0aGUgcHJldmlv dXMgY29tbXVuaXR5IGNhbGwgb24gbWV0ZXJzLCBpdCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIG1l IHRvIGJlIGFibGUgdG8gdXNlIHRoZSBtZXRlciBjb2xvciBhcyBvbmUgb2YgdGhlIGZsb3cgbWF0 Y2ggZmllbGRzLg0KDQpXZSBqdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB0aGlzIGlz IG5lZWRlZCwgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IHRoZSBwYWNrZXQgaGFzIGEgY29sb3IsIGku ZS4gdGhlcmUgaXMgYSBtZXRlciBhY3Rpb24gcHJldmlvdXNseSBpbiB0aGlzIGNoYWluIHRoYXQg Z290IGV4ZWN1dGVkLCBvciB0aGVyZSBpcyBhIGRlZmF1bHQgcGFja2V0IGNvbG9yIGlmIG5vdC4g SG93IGRvIHdlIG1ha2Ugc3VyZSBvZiB0aGlzPw0KDQo+ID4gIH07DQo+ID4NCj4gPiAgLyoqDQo+ ID4gQEAgLTE5OTAsNiArMTk5OCwyNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0 ZW1fcHBwDQo+IHJ0ZV9mbG93X2l0ZW1fcHBwX21hc2sgPSB7DQo+ID4gIH07DQo+ID4gICNlbmRp Zg0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5U QUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCj4gPiAr ICoNCj4gPiArICogUlRFX0ZMT1dfSVRFTV9UWVBFX01FVEVSX0NPTE9SDQo+ID4gKyAqDQo+ID4g KyAqIE1hdGNoZXMgYSBtZXRlciBjb2xvciBzZXQgaW4gdGhlIHBhY2tldCBtZXRhLWRhdGENCj4g PiArICogKGkuZS4gc3RydWN0IHJ0ZV9tYnVmOjpzY2hlZDo6Y29sb3IpLg0KPiA+ICsgKi8NCj4g PiArc3RydWN0IHJ0ZV9mbG93X2l0ZW1fbWV0ZXJfY29sb3Igew0KPiA+ICsgICAgICAgZW51bSBy dGVfY29sb3IgY29sb3I7IC8qKjwgUGFja2V0IGNvbG9yLiAqLw0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArLyoqIERlZmF1bHQgbWFzayBmb3IgUlRFX0ZMT1dfSVRFTV9UWVBFX01FVEVSX0NPTE9SLiAq Lw0KPiA+ICsjaWZuZGVmIF9fY3BsdXNwbHVzDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRl X2Zsb3dfaXRlbV9tZXRlcl9jb2xvcg0KPiBydGVfZmxvd19pdGVtX21ldGVyX2NvbG9yX21hc2sg PSB7DQo+ID4gKyAgICAgICAuY29sb3IgPSAweDMsDQo+ID4gK307DQo+ID4gKyNlbmRpZg0KPiA+ ICsNCj4gPiAgLyoqDQo+ID4gICAqIE1hdGNoaW5nIHBhdHRlcm4gaXRlbSBkZWZpbml0aW9uLg0K PiA+ICAgKg0KPiA+IEBAIC0yMzc2LDYgKzI0MDQsMTQgQEAgZW51bSBydGVfZmxvd19hY3Rpb25f dHlwZSB7DQo+ID4gICAgICAgICAgKi8NCj4gPiAgICAgICAgIFJURV9GTE9XX0FDVElPTl9UWVBF X01FVEVSLA0KPiA+DQo+ID4gKyAgICAgICAvKioNCj4gPiArICAgICAgICAqIEV4dGVuZGVkIFRy YWZmaWMgbWV0ZXJpbmcgYW5kIHBvbGljaW5nIChNVFIpLg0KPiA+ICsgICAgICAgICoNCj4gPiAr ICAgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21ldGVyX2V4dC4NCj4gPiArICAg ICAgICAqIFNlZSBmaWxlIHJ0ZV9tdHIuaCBmb3IgTVRSIG9iamVjdCBjb25maWd1cmF0aW9uLg0K PiA+ICsgICAgICAgICovDQo+ID4gKyAgICAgICBSVEVfRkxPV19BQ1RJT05fVFlQRV9NRVRFUl9F WFQsDQo+ID4gKw0KPiA+ICAgICAgICAgLyoqDQo+ID4gICAgICAgICAgKiBSZWRpcmVjdHMgcGFj a2V0cyB0byBzZWN1cml0eSBlbmdpbmUgb2YgY3VycmVudCBkZXZpY2UgZm9yIHNlY3VyaXR5DQo+ ID4gICAgICAgICAgKiBwcm9jZXNzaW5nIGFzIHNwZWNpZmllZCBieSBzZWN1cml0eSBzZXNzaW9u Lg0KPiA+IEBAIC0zMTI4LDYgKzMxNjQsMTkgQEAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9tZXRl ciB7DQo+ID4gICAgICAgICB1aW50MzJfdCBtdHJfaWQ7IC8qKjwgTVRSIG9iamVjdCBJRCBjcmVh dGVkIHdpdGggcnRlX210cl9jcmVhdGUoKS4gKi8NCj4gPiAgfTsNCj4gPg0KPiA+ICsvKioNCj4g PiArICogUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVJfRVhUDQo+ID4gKyAqDQo+ID4gKyAqIEV4 dGVuZGVkIFRyYWZmaWMgbWV0ZXJpbmcgYW5kIHBvbGljaW5nIChNVFIpLg0KPiA+ICsgKg0KPiA+ ICsgKiBQYWNrZXRzIG1hdGNoZWQgYnkgaXRlbXMgb2YgdGhpcyB0eXBlIGNhbiBiZSBlaXRoZXIg ZHJvcHBlZCBvciBwYXNzZWQgdG8NCj4gdGhlDQo+ID4gKyAqIG5leHQgaXRlbSB3aXRoIHRoZWly IGNvbG9yIHNldCBieSB0aGUgTVRSIG9iamVjdC4NCj4gPiArICovDQo+ID4gK3N0cnVjdCBydGVf Zmxvd19hY3Rpb25fbWV0ZXJfZXh0IHsNCj4gPiArICAgICAgIHVpbnQzMl90IG10cl9pZDsgLyoq PCBNVFIgb2JqZWN0IElELiAqLw0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9tZXRlcl9wcm9maWxl ICpwcm9maWxlOyAvKio8IE1UUiBwcm9maWxlLiAqLw0KPiA+ICt9Ow0KPiA+ICsNCg0KSG93IGlz IHRoaXMgcHJvcG9zZWQgbWV0ZXIgZXh0ZW5kZWQgYWN0aW9uIGRpZmZlcmVudCBmcm9tIHRoZSBl eGlzdGluZyBtZXRlciBhY3Rpb24/IFRoaXMgaXMgbm90IGV4cGxhaW5lZCBhdCBhbGwgaGVyZSwg cGxlYXNlIGV4cGxhaW4uDQoNClRoZSBjb21tZW50IHNlZW1zIHRvIGluZGljYXRlIGEgY29weSAm IHBhc3RlIGVycm9yLCBhcyAicGFja2V0cyBtYXRjaGVkIGJ5IGl0ZW1zIG9mIHRoaXMgdHlwZSAu Li4iIGluZGljYXRlcyBhIG1hdGNoIGl0ZW0sIGFuZCB0aGlzIGlzIGFuIGFjdGlvbiBpdGVtLg0K DQo+ID4gIC8qKg0KPiA+ICAgKiBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRUNVUklUWQ0KPiA+ICAg Kg0KPiA+IEBAIC00ODk5LDEwICs0OTQ4LDIwIEBAIHN0cnVjdCBydGVfZmxvd19wb3J0X2luZm8g ew0KPiA+ICAgICAgICAgICovDQo+ID4gICAgICAgICB1aW50MzJfdCBtYXhfbmJfYWdpbmdfb2Jq ZWN0czsNCj4gPiAgICAgICAgIC8qKg0KPiA+IC0gICAgICAgICogTWF4aW11bSBudW1iZXIgdHJh ZmZpYyBtZXRlcnMuDQo+ID4gKyAgICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiB0cmFmZmljIG1l dGVycy4NCj4gPiAgICAgICAgICAqIEBzZWUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVINCj4g PiAgICAgICAgICAqLw0KPiA+ICAgICAgICAgdWludDMyX3QgbWF4X25iX21ldGVyczsNCj4gPiAr ICAgICAgIC8qKg0KPiA+ICsgICAgICAgICogTWF4aW11bSBudW1iZXIgb2YgdHJhZmZpYyBtZXRl ciBwcm9maWxlcy4NCj4gPiArICAgICAgICAqIEBzZWUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVU RVINCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgdWludDMyX3QgbWF4X25iX21ldGVyX3By b2ZpbGVzOw0KPiA+ICsgICAgICAgLyoqDQo+ID4gKyAgICAgICAgKiBNYXhpbXVtIG51bWJlciBv ZiB0cmFmZmljIG1ldGVycyBwb2xpY2ljZXMuDQo+ID4gKyAgICAgICAgKiBAc2VlIFJURV9GTE9X X0FDVElPTl9UWVBFX01FVEVSDQo+ID4gKyAgICAgICAgKi8NCj4gPiArICAgICAgIHVpbnQzMl90 IG1heF9uYl9tZXRlcl9wb2xpY2llczsNCj4gPiAgfTsNCj4gPg0KPiA+ICAvKioNCj4gPiBAQCAt NDk3Miw2ICs1MDMxLDE2IEBAIHN0cnVjdCBydGVfZmxvd19wb3J0X2F0dHIgew0KPiA+ICAgICAg ICAgICogQHNlZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9NRVRFUg0KPiA+ICAgICAgICAgICovDQo+ ID4gICAgICAgICB1aW50MzJfdCBuYl9tZXRlcnM7DQo+ID4gKyAgICAgICAvKioNCj4gPiArICAg ICAgICAqIE51bWJlciBvZiBtZXRlciBwcm9maWxlcyB0byBjb25maWd1cmUuDQo+ID4gKyAgICAg ICAgKiBAc2VlIFJURV9GTE9XX0FDVElPTl9UWVBFX01FVEVSDQo+ID4gKyAgICAgICAgKi8NCj4g PiArICAgICAgIHVpbnQzMl90IG5iX21ldGVyX3Byb2ZpbGVzOw0KPiA+ICsgICAgICAgLyoqDQo+ ID4gKyAgICAgICAgKiBOdW1iZXIgb2YgbWV0ZXIgcG9saWNpZXMgdG8gY29uZmlndXJlLg0KPiA+ ICsgICAgICAgICogQHNlZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9NRVRFUg0KPiA+ICsgICAgICAg ICovDQo+ID4gKyAgICAgICB1aW50MzJfdCBuYl9tZXRlcl9wb2xpY2llczsNCj4gPiAgfTsNCj4g Pg0KPiA+ICAvKioNCj4gPiAtLQ0KPiA+IDIuMTguMg0KPiA+DQoNClJlZ2FyZHMsDQpDcmlzdGlh bg0K