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 Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3A2BC38147 for ; Wed, 18 Jan 2023 17:34:17 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1519640223; Wed, 18 Jan 2023 18:34:17 +0100 (CET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2068.outbound.protection.outlook.com [40.107.94.68]) by mails.dpdk.org (Postfix) with ESMTP id 86B1C400D6 for ; Wed, 18 Jan 2023 18:34:15 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mUEimk1+hno0euUKI13zrdyqTURg1O5aJHVyXc0L2ghtdrdFWsDsLVaW5wK5sLT4FsJWrdb2QQWrZVUX7iSEWPYgF9lP/0IhlFwrZMvqRyW7EYzuKYWskds/OOoHgwcdzs85AsSeCv8aBPBU0TAo6deboId4PRdM7sPUL6y92zTcd3Ac0PX3h8Greti1ahHdAoW224wqS+134IQR3aFlbLkwVtej/fLFn0gNtpBAR3llSt+PghcwAx/gzthzeh8P8IjdiBFKMHntGu60nKsgBzIB1ogC3rbrLjcKSt/HdYpl2GE9fiMNuL39Rt/LW4woUB6OrQFGhaKV5dKYJjs7mw== 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=8ZJDwcuyBmLrocKetZCAVWrEPYxG3tqaELHq69huykE=; b=GuT7j1ofLWAsHZ0RC9eNae/I02OLXUGQQjzKM+RC3bCqYXcophg2mU5ZmrdwuQI4mEUqhD+g2q190Ncz1HhWgL4vMX2Qt2W0F5M1K0gZesR+BD9+2Z1Ul6C0zhwxYGRKac4ee3+1TP7ColCPLtqBQrs0YfTAswGFvtNwla6z3pwmai1/Kr0U+rqgg9ObyDQlb5ulaJxHw1m7Ivn/xjsLFHzjEHUeRb5DMFT4JDSYM2O7N2061NbRIu9v024QGmHCE+oDIR2b1Zr5eshUsKS5imdkQxXvWab5TqfNUkZnosfxUpFHyctg803Rh1+0FN5eIoJCnOnHiGGx16daj/RcVw== 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=8ZJDwcuyBmLrocKetZCAVWrEPYxG3tqaELHq69huykE=; b=EWklwkyB90QTWeG9hzWKRwg8PuWWXxs2kBA5fqB93iOH2frR4K08tj88pUjXPvNfSW+qdgqEJ4gKTmnaPp56lW4dVukieFYa+xYUQzotiMo8qo6lrPP8kvFsbnyjXHUicU/LBF4S3NymvQkOTIUH5x5EAN8OQJmeQX0//XvP8NCrXtSQXpHgsQvbMSGeufEYzGJYluZ6lXxs16Vq3DeJBN6KVQ9IvnnYK/Qi3U12J7whnfITyBRhJCQNaacKUwT9LSY50Hz+DtbzjotQgseNiaaPA+lUbj0yt+sGK4EFV0M2Q9kRIqyL8o7eIackJc9Oc/3FyIiy9hlI6A4DVZh4Og== Received: from IA1PR12MB6332.namprd12.prod.outlook.com (2603:10b6:208:3e2::13) by DS7PR12MB5789.namprd12.prod.outlook.com (2603:10b6:8:74::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.24; Wed, 18 Jan 2023 17:34:13 +0000 Received: from IA1PR12MB6332.namprd12.prod.outlook.com ([fe80::6e01:48d2:9cc9:dfc1]) by IA1PR12MB6332.namprd12.prod.outlook.com ([fe80::6e01:48d2:9cc9:dfc1%6]) with mapi id 15.20.5986.023; Wed, 18 Jan 2023 17:34:12 +0000 From: Gregory Etelson To: "NBU-Contact-Thomas Monjalon (EXTERNAL)" CC: "dev@dpdk.org" , Matan Azrad , Raslan Darawsheh , Ori Kam , Ferruh Yigit , Andrew Rybchenko , "ivan.malov@oktetlabs.ru" Subject: RE: [PATCH v4 1/2] ethdev: add query_update sync and async function calls Thread-Topic: [PATCH v4 1/2] ethdev: add query_update sync and async function calls Thread-Index: AQHZKygOkMwaa5NB00q0JYMDUdayRq6kMyMAgAAxl4A= Date: Wed, 18 Jan 2023 17:34:12 +0000 Message-ID: References: <20221221073547.988-1-getelson@nvidia.com> <20230118103109.4052-1-getelson@nvidia.com> <4220871.e99z0qppnp@thomas> In-Reply-To: <4220871.e99z0qppnp@thomas> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR12MB6332:EE_|DS7PR12MB5789:EE_ x-ms-office365-filtering-correlation-id: 6216462a-2637-4895-0f9a-08daf97a36e1 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: f+2+J8xug0ipElFpFKGVQQPUhf1cK5dJ3pmfdvJwHnt1lgeWieV/UOjjbZL2Cu5x/cxCJ6Pa5/ZLCehVbDAQ2URXs6iTEhGtKgLlG06AcjZNHUE8ZibDbd8WHKxUMvbr/w2YkBgzV8aaSahY3sQW3VVRJKK+bRvdLPoAdX+fJVMlmaENhz8+U7/yFWWygbvyIr0uVff9ckDwHsRuAIUYqABB4Eep1ha6UfPA+ZjUFuoqK4LwhzZkVcaliemMvl9nTvtYIHcrCcatKbB0MJ0nzkWJQ0dO9N7TU71TOuTUqKjuZECfMCvRAQZdnCFIxuGkKfyD6go6ypMV4wZ7M/ZN+YiB9zrsOA7YpdO2KkGw9kBZiCRPBhj0PcuDC8+KoXlqF0VnVCb/DI+7CBbi8UJSczXK+0IAU7F1oaqkfk7FMAqPvKzckmepGWkLOaZuCYCD3n8JH7WFClhE1/bcHRt+7eKsqTG7hXE+eYj4WilKw/swGtDAvjJgFcuN31ZRw8UrjfNjyBDeLkNyJVOQPHzKGRV7/A/6mAtqf5uRuNR4es36Cz79/e61/2SNCZMquaG8OdeI+Xdv0S2WEkWBW1vou04aTIHwnjwU6z7u4apTvwMQfpwzCv3GZbladiOLz3DyLQjSJmaD60HYmG51ZdF4aQJz49NLnOrlID0e633N00CffqqjN+82Qv9DJUodlc+Dx95JDYajdA/t9LV50YuzYA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR12MB6332.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(396003)(346002)(366004)(136003)(376002)(39860400002)(451199015)(66476007)(38100700002)(122000001)(86362001)(33656002)(8936002)(5660300002)(52536014)(2906002)(76116006)(66946007)(66556008)(55016003)(66446008)(64756008)(4326008)(8676002)(6916009)(41300700001)(186003)(9686003)(83380400001)(71200400001)(316002)(54906003)(7696005)(6506007)(38070700005)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MTVZZ3h5cTZzMi92Qi9OMlhkOUdGN1doWXZKNnVlYWx1OU5oOVJjbitHMEt6?= =?utf-8?B?RS9MYVY4K2lMU2p3WGZoc09oZTNsS2JXb0RLZS9QYnlQTmdWcFZ4V2FSckE2?= =?utf-8?B?V05henAwZDUzZVRRTnZXOHpDQmIzNUwvMmdUczhjdDBDU013S3Vva1gvK3d3?= =?utf-8?B?dDlRN1doTSt5RkppWDRNVUxNaHduQmF6Mk5NZzg4a1djZlhTOEc1NzBYdEFD?= =?utf-8?B?bUw1RmFSZlFDeXRLWGxGWHRMRmdyQUxQSUdHcmQxMWE4d1BhVnpnY3NYSkJI?= =?utf-8?B?YlZDM2FPQ2lMVTlWdmEvVHNSZlRFc1duT0cyeUhLZTJuTUhSMmtBbStyTVZH?= =?utf-8?B?UExTR2ZmSy9ycmd2OWc0SHBqVXUvUDliQUJZUmVYa3ZYNlNzKzc5UEVZNWsz?= =?utf-8?B?MkpGUnVudHJMQk9WaUw3K3JiVFdpcDdGNnp4bjBQeUZSNUo0TkJGQXRmR3Za?= =?utf-8?B?V0NOQ0Nia3NiRWx2dWtRdDlCekRyZndEeEp0V0VORFJVZkEyNnZhUEV0elBH?= =?utf-8?B?K3h4d3ptRnFQMm4yVUNWSTUzblRhSkZMNnNqMmF6NGo0MTlIdFJBTzlBVW5s?= =?utf-8?B?TjBtQUlyaEFoQXdraXlPWTRGd1lWU2g4dC9IWURmNndGMkxibURWSnNtUmxT?= =?utf-8?B?UkJaNFhjZU9iUGNjdC84ckpiMmZYZyt4RVVOZmxzWUM4THJrQ1Fnc2NHcWQ0?= =?utf-8?B?dFhjMERsQlRxZ3NsUkZwZ2ZVYkhCYk9rRzVhVHZVczNvakwwNi9PbVFZNGhM?= =?utf-8?B?enAzUWFIVWhQYTVPWlBKc2dsT1htK1p0WTA1MFZndjlsejZhNXBBSVRWdkJh?= =?utf-8?B?UllvejF0NWd3SUlsT2xPL1JFRHNDZUdjeXhKZzhpbWRvWVd1T0RkNHhUWmd4?= =?utf-8?B?cjJZYTR1cmtYM29HYThoaG5iYlo0MmhmaTd6bFFHbmdFU3ZQdWVlempvM2do?= =?utf-8?B?Ty9odTBKSWZrZkpEYTFUSlpyUjd6aUtKT0NUUGduZmFuN1M2cnkxRFBTSjFB?= =?utf-8?B?b2ZUUU9oMVdQUmpSc1F3THhLbXRpZjVlWExJeE9KR2JWeUc2aUxrTDBSaHI4?= =?utf-8?B?SmZRNTU2OFh6THIzZzFHb0lOV0ozUUUvUTRxcTk4cUJMZU5lTTFtVFU3b2V2?= =?utf-8?B?ZDNrUHFNRmZsMFlwY2o1blBzcXAwcUdFOFJyd3pVQk90U1hRdC9TREh5Y2ps?= =?utf-8?B?TmNHVC9Qd2pvWjZMMzZZNUJmcDJrOVdnR012L2c3VjN0a1Z5U2dEZlZEbGQv?= =?utf-8?B?WGVKUkMzTlBUQ2VqOVJKem40d1UyQy9yalJrOCtSSUJFWFNDODd0Q1FPOVJI?= =?utf-8?B?cXpFbVF5UWFMVlhkSldlYkZOV21FRDFHbVdwS1NncStjQ3I4VmtMaDFyeGtP?= =?utf-8?B?M0Z3ZlFNa1B4K1B1bnkyNnlBTkYrUjFPcGc4VzBkSXgwUVJmTWEyVHVlelBG?= =?utf-8?B?TUZHR2hrZHB3QTZxSzVia0RJV09ncGpCOWNnVjdPQzE5bFlEeXN4SzFGM0NT?= =?utf-8?B?WWVNaVNoVkVSdTlYb0RITGRUUkNKa1g4bUF1bHZGMStnNmExdzIzakZXUExp?= =?utf-8?B?aGdmeURHdUpNUzJLYU00ZDBDWEFndHFHaU9sOU1hOEMwaDNyNVJPTDIyeUxl?= =?utf-8?B?S2ltbmIxOWhVNmRkUGJqdVVaOHFaYklUZUtWK01kM0V6RWYxeTdydFg5Q29I?= =?utf-8?B?TzVySUlROThFeU1lNXgwQjFzYU5HZ0JJN3NObStmWG5HMGRjVXJTUTJybmc3?= =?utf-8?B?S2t0Skh6RkszY0JScDFiYjNkdVFkL2dnQ05hQzR2Q0pxSlN5RStkL1JQb05W?= =?utf-8?B?NjZUMnZ4UGt5bmFKcmk0Skp4ZUdWRWpxWmlwRzNheWZPd3FxdEtGNTdsbEdv?= =?utf-8?B?NisyUXpiZ0hxaEQwQVlwNUt0akJScUY5dDR2bkloMG1yS0hweHpsejExVjEz?= =?utf-8?B?NFhwd0c4Q0xDdXAra2F5MENWRjZLck1qYmc2Smg2TkIwb05OVS9BMU1XZWxa?= =?utf-8?B?bDVldnRoL05GdjVIWUVpb293QkZFa21IQSs5T2JsM1BaZGdwb2JNWmROM3do?= =?utf-8?B?QWJKM0RXdWtmMGsxdk9FaEtqamZVck85bm84RkplbkRsdGpZUDdaV2RWVkpl?= =?utf-8?B?YmRvWitmM0JLQXhPQXp4TVJ4R21jVWVIRzh6cUY3WFNjaDBNMEVBTzNFK2RF?= =?utf-8?Q?PN34oGdC1aE2rMKcaxAyODerbBmgf83MAXix2SXteZbQ?= 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: IA1PR12MB6332.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6216462a-2637-4895-0f9a-08daf97a36e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2023 17:34:12.7767 (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: bw3frDKpF5SLBsdRoYUAOEue1VRw+T7/iQuZijZ5PByUXwF4y25GZkzyLJz3iQzLXky59ny2kiaEe1twlWeJeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5789 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 SGVsbG8gVGhvbWFzLA0KDQpbXQ0KDQo+ID4gQ3VycmVudCBBUEkgYWxsb3dzIGVpdGhlciBxdWVy eSBvciB1cGRhdGUgaW5kaXJlY3QgZmxvdyBhY3Rpb24uDQo+ID4gSWYgcG9ydCBoYXJkd2FyZSBh bGxvd3MgYm90aCB1cGRhdGUgYW5kIHF1ZXJ5IGluIGEgc2luZ2xlIG9wZXJhdGlvbiwNCj4gPiBh cHBsaWNhdGlvbiBzdGlsbCBoYXMgdG8gaXNzdWUgMiBzZXBhcmF0ZSBoYXJkd2FyZSByZXF1ZXN0 cy4NCj4gPg0KPiA+IFRoZSBwYXRjaCBhZGRzIGBydGVfZmxvd19hY3Rpb25faGFuZGxlX3F1ZXJ5 X3VwZGF0ZWAgZnVuY3Rpb24gY2FsbCwNCj4gPiBhbmQgaXQncyBhc3luYyB2ZXJzaW9uIGBydGVf Zmxvd19hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZWANCj4gPiB0byBhdG9taWNhbGx5 IHF1ZXJ5IGFuZCB1cGRhdGUgZmxvdyBhY3Rpb24uDQo+IA0KPiBXaGF0IGlzIHRoZSBiZW5lZml0 Pw0KPiBJcyBpdCBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbj8gSG93IG11Y2g/DQo+DQoNCnJ0 ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlKCkgY2FuIHF1ZXJ5IGRhdGEgYW5kIGNv bmRpdGlvbmFsbHkgdXBkYXRlIGl0IGluIGEgc2luZ2xlIEhXIG9wZXJhdGlvbi4NClRoYXQgcHJv dmlkZXMgYWNjdXJhY3kgdGhhdCBjYW5ub3QgYmUgYWNoaWV2ZWQgd2l0aCBleGlzdGluZyBBUEku DQpGb3IgZXhhbXBsZSwgcXVvdGEgZmxvdyBhY3Rpb24gbXVzdCBiZSB1cGRhdGVkIHdoZW4gaXQg aW4gdGhlIFBBU1Mgc3RhdGUgb25seS4gDQpJZiBhcHBsaWNhdGlvbiB1c2UgZXhpc3RpbmcgcXVl cnksIGJ5IHRoZSB0aW1lIGl0IGdldHMgcXVlcnkgZGF0YSBhbmQgYW5hbHl6ZXMgaXQsIEhXIG9i amVjdCBzdGF0ZSBjYW4gY2hhbmdlLg0KQXMgdGhlIHJlc3VsdCBhcHBsaWNhdGlvbiB1cGRhdGUg YWN0aW9uIHdpbGwgbm90IHJlZmxlY3QgSFcgY29uZmlndXJhdGlvbi4NCg0KVGhlIGZ1bmN0aW9u IGNhbiBwcm92aWRlIGdlbmVyYWwgb3B0aW1pemF0aW9uLCBidXQgdGhhdCB3YXMgbm90IHRlc3Rl ZC4NCiANCj4gPiBpbnQNCj4gPiBydGVfZmxvd19hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZQ0K PiA+ICAgICAgICAodWludDE2X3QgcG9ydF9pZCwgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9oYW5k bGUgKmhhbmRsZSwNCj4gPiAgICAgICAgIGNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqcXVlcnks DQo+ID4gICAgICAgICBlbnVtIHJ0ZV9mbG93X3F1ZXJ5X3VwZGF0ZV9tb2RlIG1vZGUsDQo+ID4g ICAgICAgICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPg0KPiA+IGludA0KPiA+ IHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlDQo+ID4gICAgICAgICh1 aW50MTZfdCBwb3J0X2lkLCB1aW50MzJfdCBxdWV1ZV9pZCwNCj4gPiAgICAgICAgIGNvbnN0IHN0 cnVjdCBydGVfZmxvd19vcF9hdHRyICpvcF9hdHRyLA0KPiA+ICAgICAgICAgc3RydWN0IHJ0ZV9m bG93X2FjdGlvbl9oYW5kbGUgKmFjdGlvbl9oYW5kbGUsDQo+ID4gICAgICAgICBjb25zdCB2b2lk ICp1cGRhdGUsIHZvaWQgKnF1ZXJ5LA0KPiA+ICAgICAgICAgZW51bSBydGVfZmxvd19xdWVyeV91 cGRhdGVfbW9kZSBtb2RlLA0KPiA+ICAgICAgICAgdm9pZCAqdXNlcl9kYXRhLCBzdHJ1Y3QgcnRl X2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gDQo+IE5vIG5lZWQgdG8gY29weSB0aGUgZnVuY3Rpb25z IGluIHRoZSBjb21taXQgbG9nLg0KPiANCg0KV2lsbCBiZSB1cGRhdGVkIGluIHY1DQoNCj4gPiBB cHBsaWNhdGlvbiBjYW4gY29udHJvbCBxdWVyeSBhbmQgdXBkYXRlIG9yZGVyLCBpZiB0aGF0IGlz IHN1cHBvcnRlZA0KPiA+IGJ5IHBvcnQgaGFyZHdhcmUsIGJ5IHNldHRpbmcgcXVfbW9kZSBwYXJh bWV0ZXIgdG8NCj4gPiBSVEVfRkxPV19RVV9RVUVSWV9GSVJTVCBvciBSVEVfRkxPV19RVV9VUERB VEVfRklSU1QuDQo+ID4NCj4gPiBSVEVfRkxPV19RVV9RVUVSWSBhbmQgUlRFX0ZMT1dfUVVfVVBE QVRFIHBhcmFtZXRlciB2YWx1ZXMNCj4gcHJvdmlkZQ0KPiA+IHF1ZXJ5IG9ubHkgYW5kIHVwZGF0 ZSBvbmx5IGZ1bmN0aW9uYWxpdHkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkNCj4gPiB3aXRo IGV4aXN0aW5nIEFQSS4NCj4gDQo+IFdoeSBkbyB3ZSBuZWVkIHN1Y2ggY29tcGF0aWJpbGl0eT8N Cj4gVGhlIGV4aXN0aW5nIGZ1bmN0aW9ucyB3aWxsIHN0YXksIGlzbid0IGl0Pw0KPiANCg0KcnRl X2Zsb3dfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGUoKSBoYXMgZXh0ZW5kZWQgZnVuY3Rpb25h bGl0eSB3aXRoIGJldHRlciBIVyBzdXBwb3J0Lg0KVGhlIHBsYW4gaXMgdG8gZGVwcmVjYXRlIGFu ZCByZXBsYWNlIGV4aXN0aW5nIHF1ZXJ5IGFuZCB1cGRhdGUgZnVuY3Rpb25zLg0KDQo+IFsuLi5d DQo+ID4gKyAqIFJURV9GTE9XX1FVX1FVRVJZX0ZJUlNUDQo+ID4gKyAqICAgRm9yY2UgcG9ydCB0 byBxdWVyeSBhY3Rpb24gYmVmb3JlIHVwZGF0ZS4NCj4gPiArICogUlRFX0ZMT1dfUVVfVVBEQVRF X0ZJUlNUDQo+ID4gKyAqICAgRm9yY2UgcG9ydCB0byB1cGRhdGUgYWN0aW9uIGJlZm9yZSB1cGRh dGUuDQo+IA0KPiBZb3UgbWVhbiAiYmVmb3JlIHF1ZXJ5Ii4NCj4gQW55d2F5IHlvdSBkb24ndCBu ZWVkIHRvIHJlcGVhdCB0aGUgZW51bSBpbiB0aGUgY29tbWVudC4NCj4gDQoNCkNvcnJlY3QsIG11 c3QgYmUgImJlZm9yZSBxdWVyeSIuDQpXaWxsIGZpeCBpbiB2NS4NCg0KPiA+ICsgKg0KPiA+ICsg KiBAc2VlIHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlKCkNCj4gPiArICogQHNl ZSBydGVfZmxvd19hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZSgpDQo+ID4gKyAqLw0K PiA+ICtlbnVtIHJ0ZV9mbG93X3F1ZXJ5X3VwZGF0ZV9tb2RlIHsNCj4gPiArICAgICBSVEVfRkxP V19RVV9RVUVSWV9GSVJTVCwgIC8qIHF1ZXJ5IGJlZm9yZSB1cGRhdGUgKi8NCj4gPiArICAgICBS VEVfRkxPV19RVV9VUERBVEVfRklSU1QsIC8qIHF1ZXJ5IGFmdGVyICB1cGRhdGUgKi8NCj4gPiAr fTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklN RU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4gKyAq DQo+ID4gKyAqIFF1ZXJ5IGFuZC9vciB1cGRhdGUgaW5kaXJlY3QgZmxvdyBhY3Rpb24uDQo+ID4g KyAqIElmIHVwZGF0ZSBwYXJhbWV0ZXIgaXMgTlVMTCB0aGUgZnVuY3Rpb24gcXVlcmllcyBpbmRp cmVjdCBhY3Rpb24uDQo+ID4gKyAqIElmIHF1ZXJ5IHBhcmFtZXRlciBpcyBOVUxMIHRoZSBmdW5j dGlvbiB1cGRhdGVzIGluZGlyZWN0IGFjdGlvbi4NCj4gPiArICogSWYgYm90aCBxdWVyeSBhbmQg dXBkYXRlIG5vdCBOVUxMLCB0aGUgZnVuY3Rpb24gYXRvbWljYWxseQ0KPiA+ICsgKiBxdWVyaWVz IGFuZCB1cGRhdGVzIGluZGlyZWN0IGFjdGlvbi4gUXVlcnkgYW5kIHVwZGF0ZSBjYXJyaWVkIGlu DQo+IG9yZGVyDQo+IA0KPiAiYXJlIiBjYXJyaWVkPw0KPiANCg0KVHlwby4gV2lsbCBmaXggaW4g djUuDQoNCj4gPiArICogc3BlY2lmaWVkIGluIHRoZSBtb2RlIHBhcmFtZXRlci4NCj4gPiArICoN Cj4gPiArICogQHBhcmFtIHBvcnRfaWQNCj4gPiArICogICBQb3J0IGlkZW50aWZpZXIgb2YgRXRo ZXJuZXQgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW0gaGFuZGxlDQo+ID4gKyAqICAgSGFuZGxlIGZv ciB0aGUgaW5kaXJlY3QgYWN0aW9uIG9iamVjdCB0byBiZSB1cGRhdGVkLg0KPiA+ICsgKiBAcGFy YW0gdXBkYXRlDQo+ID4gKyAqICAgVXBkYXRlIHByb2ZpbGUgc3BlY2lmaWNhdGlvbiB1c2VkIHRv IG1vZGlmeSB0aGUgYWN0aW9uIHBvaW50ZWQgYnkNCj4gaGFuZGxlLg0KPiA+ICsgKiAgICp1cGRh dGUqIGNvdWxkIGJlIHdpdGggdGhlIHNhbWUgdHlwZSBvZiB0aGUgaW1tZWRpYXRlIGFjdGlvbg0K PiBjb3JyZXNwb25kaW5nDQo+IA0KPiBjb3VsZCBiZSAib2YiIHRoZSBzYW1lIHR5cGUNCj4gDQoN CldpbGwgZml4IGluIHY1Lg0KDQo+ID4gKyAqICAgdG8gdGhlICpoYW5kbGUqIGFyZ3VtZW50IHdo ZW4gY3JlYXRpbmcsIG9yIGEgd3JhcHBlciBzdHJ1Y3R1cmUNCj4gaW5jbHVkZXMNCj4gPiArICog ICBhY3Rpb24gY29uZmlndXJhdGlvbiB0byBiZSB1cGRhdGVkIGFuZCBiaXQgZmllbGRzIHRvIGlu ZGljYXRlIHRoZQ0KPiBtZW1iZXINCj4gPiArICogICBvZiBmaWVsZHMgaW5zaWRlIHRoZSBhY3Rp b24gdG8gdXBkYXRlLg0KPiA+ICsgKiBAcGFyYW0gcXVlcnkNCj4gPiArICogICBQb2ludGVyIHRv IHN0b3JhZ2UgZm9yIHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IGRhdGEgdHlwZS4NCj4gPiArICogQHBh cmFtIG1vZGUNCj4gPiArICogICBPcGVyYXRpb25hbCBtb2RlLg0KPiA+ICsgKiBAcGFyYW0gZXJy b3INCj4gPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxM Lg0KPiA+ICsgKiAgIFBNRHMgaW5pdGlhbGl6ZSB0aGlzIHN0cnVjdHVyZSBpbiBjYXNlIG9mIGVy cm9yIG9ubHkuDQo+ID4gKyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogMCBvbiBzdWNjZXNz LCBhIG5lZ2F0aXZlIGVycm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4N Cj4gPiArICogLSAoRU5PVFNVUCkgaWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9y dCB0aGlzIGZ1bmN0aW9uYWxpdHkuDQo+ID4gKyAqIC0gKEVJTlZBTCkgLSBpZiAqaGFuZGxlKiBp bnZhbGlkDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiAraW50DQo+ID4g K3J0ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19hY3Rp b25faGFuZGxlICpoYW5kbGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqcXVlcnksDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVudW0gcnRlX2Zsb3dfcXVlcnlfdXBkYXRlX21vZGUgbW9kZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9y ICplcnJvcik7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogQHdhcm5pbmcNCj4gPiArICogQGIg RVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0K PiA+ICsgKg0KPiA+ICsgKiBFbnF1ZXVlIGFzeW5jIGluZGlyZWN0IGZsb3cgYWN0aW9uIHF1ZXJ5 IGFuZC9vciB1cGRhdGUNCj4gPiArICoNCj4gPiArICogQHBhcmFtIHBvcnRfaWQNCj4gPiArICog ICBQb3J0IGlkZW50aWZpZXIgb2YgRXRoZXJuZXQgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW0gcXVl dWVfaWQNCj4gPiArICogICBGbG93IHF1ZXVlIHdoaWNoIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBy dWxlLg0KPiA+ICsgKiBAcGFyYW0gYXR0cg0KPiA+ICsgKiAgIEluZGlyZWN0IGFjdGlvbiB1cGRh dGUgb3BlcmF0aW9uIGF0dHJpYnV0ZXMuDQo+ID4gKyAqIEBwYXJhbSBoYW5kbGUNCj4gPiArICog ICBIYW5kbGUgZm9yIHRoZSBpbmRpcmVjdCBhY3Rpb24gb2JqZWN0IHRvIGJlIHVwZGF0ZWQuDQo+ ID4gKyAqIEBwYXJhbSB1cGRhdGUNCj4gPiArICogICBVcGRhdGUgcHJvZmlsZSBzcGVjaWZpY2F0 aW9uIHVzZWQgdG8gbW9kaWZ5IHRoZSBhY3Rpb24gcG9pbnRlZCBieQ0KPiBoYW5kbGUuDQo+ID4g KyAqICAgKnVwZGF0ZSogY291bGQgYmUgd2l0aCB0aGUgc2FtZSB0eXBlIG9mIHRoZSBpbW1lZGlh dGUgYWN0aW9uDQo+IGNvcnJlc3BvbmRpbmcNCj4gPiArICogICB0byB0aGUgKmhhbmRsZSogYXJn dW1lbnQgd2hlbiBjcmVhdGluZywgb3IgYSB3cmFwcGVyIHN0cnVjdHVyZQ0KPiBpbmNsdWRlcw0K PiANCj4gaW5jbHVkZXMgLT4gaW5jbHVkaW5nDQo+IA0KDQpXaWxsIGZpeCBpbiB2NS4NCg0KPiA+ ICsgKiAgIGFjdGlvbiBjb25maWd1cmF0aW9uIHRvIGJlIHVwZGF0ZWQgYW5kIGJpdCBmaWVsZHMg dG8gaW5kaWNhdGUgdGhlDQo+IG1lbWJlcg0KPiA+ICsgKiAgIG9mIGZpZWxkcyBpbnNpZGUgdGhl IGFjdGlvbiB0byB1cGRhdGUuDQo+IA0KPiBXaGVyZSBjYW4gd2UgZmluZCBob3cgc3VjaCB3cmFw cGVyIHNob3VsZCBsb29rIGxpa2U/DQo+DQoNClRoYXQgcGF0Y2ggd2lsbCBiZSBzZW50IGxhdGVy Lg0KSSdsbCByZXBocmFzZS4NCiANCj4gPiArICogQHBhcmFtIHF1ZXJ5DQo+ID4gKyAqICAgUG9p bnRlciB0byBzdG9yYWdlIGZvciB0aGUgYXNzb2NpYXRlZCBxdWVyeSBkYXRhIHR5cGUuDQo+ID4g KyAqICAgUXVlcnkgcmVzdWx0IHJldHVybmVkIG9uIGFzeW5jIGNvbXBsZXRpb24gZXZlbnQuDQo+ ID4gKyAqIEBwYXJhbSBtb2RlDQo+ID4gKyAqICAgT3BlcmF0aW9uYWwgbW9kZS4NCj4gPiArICog QHBhcmFtIHVzZXJfZGF0YQ0KPiA+ICsgKiAgIFRoZSB1c2VyIGRhdGEgdGhhdCB3aWxsIGJlIHJl dHVybmVkIG9uIGFzeW5jIGNvbXBsZXRpb24gZXZlbnQuDQo+ID4gKyAqIEBwYXJhbSBlcnJvcg0K PiA+ICsgKiAgIFBlcmZvcm0gdmVyYm9zZSBlcnJvciByZXBvcnRpbmcgaWYgbm90IE5VTEwuDQo+ ID4gKyAqICAgUE1EcyBpbml0aWFsaXplIHRoaXMgc3RydWN0dXJlIGluIGNhc2Ugb2YgZXJyb3Ig b25seS4NCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIDAgb24gc3VjY2Vzcywg YSBuZWdhdGl2ZSBlcnJubyB2YWx1ZSBvdGhlcndpc2UgYW5kIHJ0ZV9lcnJubyBpcyBzZXQuDQo+ ID4gKyAqIC0gKEVOT1RTVVApIGlmIHVuZGVybHlpbmcgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQg dGhpcyBmdW5jdGlvbmFsaXR5Lg0KPiA+ICsgKiAtIChFSU5WQUwpIC0gaWYgKmhhbmRsZSogaW52 YWxpZA0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2ludA0KPiA+ICty dGVfZmxvd19hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lk LCB1aW50MzJfdA0KPiBxdWV1ZV9pZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wX2F0dHIgKmF0dHIsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19hY3Rp b25faGFuZGxlICpoYW5kbGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqcXVlcnksDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gcnRlX2Zsb3dfcXVlcnlfdXBkYXRlX21v ZGUgbW9kZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p ZCAqdXNlcl9kYXRhLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gDQo+ID4gLS0tIGEvbGliL2V0aGRl di92ZXJzaW9uLm1hcA0KPiA+ICsrKyBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gPiBAQCAt Mjk4LDYgKzI5OCwxMSBAQCBFWFBFUklNRU5UQUwgew0KPiA+ICAgICAgIHJ0ZV9mbG93X2dldF9x X2FnZWRfZmxvd3M7DQo+ID4gICAgICAgcnRlX210cl9tZXRlcl9wb2xpY3lfZ2V0Ow0KPiA+ICAg ICAgIHJ0ZV9tdHJfbWV0ZXJfcHJvZmlsZV9nZXQ7DQo+ID4gKw0KPiA+ICsgICAgICMgZnV0dXJl DQo+IA0KPiBJdCBzaG91bGQgYmUgIiMgYWRkZWQgaW4gMjMuMDMiDQo+IA0KDQpXaWxsIGZpeCBp biB2NS4NCg0KPiA+ICsgICAgIHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlOw0K PiA+ICsgICAgIHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlOw0KPiAN Cj4gDQoNCg==