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 DF79141B8F; Tue, 31 Jan 2023 15:45:21 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CC7E04067B; Tue, 31 Jan 2023 15:45:21 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2069.outbound.protection.outlook.com [40.107.223.69]) by mails.dpdk.org (Postfix) with ESMTP id BAE9140041 for ; Tue, 31 Jan 2023 15:45:20 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lnWklpUL4oFQ59+6E6eFsAVyoDbylP9vjY70n9Ikji/PglgiEUJ3uUo38F/CbqohM7ehENb/SpJC5Cy74EFkwzb4BW/+UsigNZRmKWjekRx2n+28tt/QpSWy1rYXsXoHH2sa4OvFQ+zpxBOI0i1u2ozR95rLb/FpW92Q8UQyLqw6tiHYu5vPFr0VgdyT2xQLU2gmHnDauVIdamcipS3wbZVGY7/+laEZZyeawgJ9CfPUyG9Hl+GDj3Y1YjO7f262lWPFIA6cOSh1Ig9FG6l8g4cd/CpP5ND7Hbb2G1+Z4wT/Irf2PNP6iA2LjvzP00I0Ggf9MU8uJBT4VFWnbLvUFw== 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=j1o4yL14FDKISHdhv4t779hwQe7WHyenCOcVcfeVeFY=; b=UzY1692k+B/JOztvcAUmTbY1Bv7iQpcxUPf9fnWG2rfjL5nAPjio9IoZdvoKfGZYTY6z3qofbEwoMfxMxOlKyTKvNwiLhr+6Gg0QsEFIx4OuczlICc40qS/TeXwaYHM3G6SrfFnqn1ul4K6ZukCRFwI2NzffbVKYRWawkopS/k3K9lCkqJ77xxHbY9YbSHHbKB8vu17lNgpl4WQg7O237SKhWP/4b5Ivgu7No7p9lTmNjWPkKSw9c/UYIfrBS84apSbh3jhLF0Hrn4P09iUeC/gabNGw0T3MMQUKWfEF+uYUR33ChrOipZaTuvKCXqZuF8tyGyJK7E11QRroseIWqA== 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=j1o4yL14FDKISHdhv4t779hwQe7WHyenCOcVcfeVeFY=; b=DtDsyPNzxrs7tpiY71NnQuBL9Go1YoojSTtyI9ifqbvJLezb8qDzZ9Cv3nQM65JX59ugbSUn/dajVKt/UMjc5D4lRaVHJq6POmKPb2aa8TWVOSHw9KWQv2wtuCcdNIkUynqVrCOcJ/vV61kJO1yg7gTQ0beno8gRXXurN6kEUA4qU525Ax8v2xH7Zqrcu1e/RAmjFVEGtm4yeXxX6lwYinTF7gIBKGOVzNydCe+7QX2YTJzagObErkCQ/SGI/LF8qh5qWzLjHl50yVVCEwUw90qH0rEul9xWMemSLCxDrSh8djKL75FujxOZnRjZjsOFlVv9o0HWemCocOeeJhdn3Q== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by MW4PR12MB7310.namprd12.prod.outlook.com (2603:10b6:303:22c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Tue, 31 Jan 2023 14:45:15 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::6ba4:b9e8:d439:59e4]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::6ba4:b9e8:d439:59e4%4]) with mapi id 15.20.6043.036; Tue, 31 Jan 2023 14:45:15 +0000 From: Ori Kam To: Jerin Jacob , Rongwei Liu CC: "dev@dpdk.org" , Matan Azrad , Slava Ovsiienko , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "stephen@networkplumber.org" , Raslan Darawsheh , Ferruh Yigit , Andrew Rybchenko Subject: RE: [PATCH v4 3/3] ethdev: add standby flags for live migration Thread-Topic: [PATCH v4 3/3] ethdev: add standby flags for live migration Thread-Index: AQHZK1Pvpic0y7vVVkiOfTGy2/6dwa6sBDiAgApPb4CAAPEPAIAAov2AgABic4CAAAR1AIAAXcYAgAAAmCA= Date: Tue, 31 Jan 2023 14:45:15 +0000 Message-ID: References: <20221221090017.3715030-2-rongweil@nvidia.com> <20230118154447.595231-1-rongweil@nvidia.com> <20230118154447.595231-4-rongweil@nvidia.com> In-Reply-To: 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: MW2PR12MB4666:EE_|MW4PR12MB7310:EE_ x-ms-office365-filtering-correlation-id: 5e8f4a4b-2f31-4009-2395-08db0399c3f2 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: jv5wvBNHrltDSrsnRRuzv4H7nLgM8xNwGZCcSDzz/MbmXGCREHvBgSrOIKrozw8F1gdZgpCBAr88gvlQfmBIyQ8fzUMASYXIF3dNAXKvr5L5VqbHYh7XKQjE+wUihpq6oGs8hFBrWsPut8F+uWL09ES9QKG9kbRJbHurPs23VaJRwqxC9kHEX2sYP9wtN9YH4YiEFoVUA9rYF7gNykkrS23wCcKiKpwuiLp74IbxGjaPM/fFGheWgYKUBB4jkOv7l/z5nvwPgjf5YVzoueAlrulfAZt1mbFIKEQC56xsT/d1jy+1tc8Xx1bs79pNXkz3E4auGgwlYjWN2bpEocZFd8fscKP4elL50nwEeZg51rInsq7oWlqqqYnPFx/3k+CWVzRm6KBwIqwKTKsZCxJv76fB91Mm8QIx4up6UWwpW4P/w2X1BlYt0Gvwvw9rqNBE3g7NYsX5nyvijFZRbLkdZ0M4f0aWKPYnilkPGJWZPoJ4SIAXd5rrD7s3EoAXbpMKNARaVLCKCCXGCL2CGkWn5KEzZF9GrZtFRy2D/t00afD6pU4y+mcOYuTjhWvEuQMnMFGudRv/FwmrzzwpHXaTteo6x+hmQ6/r1B57EskZ8xc+FJWEs2EWaYi4+VKtFXNC8FCJ77+254iKmgWz9Q4ixsFRlRwPbxMnoDdamZHaqDJGc4wj6oyf3CK0fwffRHuAunXOwANjW1mKROd9hRvFvg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(39860400002)(366004)(136003)(346002)(396003)(376002)(451199018)(316002)(110136005)(54906003)(6636002)(33656002)(38100700002)(122000001)(41300700001)(2906002)(52536014)(8936002)(5660300002)(55016003)(83380400001)(8676002)(4326008)(64756008)(66446008)(76116006)(66946007)(66556008)(66476007)(478600001)(26005)(186003)(86362001)(9686003)(6506007)(53546011)(38070700005)(7696005)(66899018)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N0RDUHc1TThvZCtLRytYZ1UrWW5sMnNTTGxUVnVCRU1YODlKRGtHWmd3NFdF?= =?utf-8?B?ckJxWU9ZVGFBZEVybWgxT1FzSTlLZTE5bXJXOFBpOVZwRnhGYml3aC93Q0Zv?= =?utf-8?B?UVUxYzVRM0lMazQ2L1J4aVJHbUF6UmlueXd1Y0Ixa2tpU3lWN2NJZkpXK2NU?= =?utf-8?B?WHFrQm1yRFJFbXVodThCZElPT3ljRVlxQU1kQk5ZWFpobmN6dzJZQUM0aHQ0?= =?utf-8?B?S1dVcWRzenFOU1Z4L2ErdHlkWnVYTzNnZlBPajZ4ZEJSZnlkRW1kWlZCY1F2?= =?utf-8?B?TUdPbUlXaG0zWmoxbXhFdU12dy9LQk5vVjFSem9IeHVvNStoaXJpbGxyTGpM?= =?utf-8?B?OUkwdmZPc1VjdWJKN3Q5ckRXMzlpR01YbG92NzU2aWlJRFpYejR6S25YTDRq?= =?utf-8?B?cTdpckxsclNxTmV5WmpBa3JIcXZtM01aRFlPZGMyWDdlTXRQVG1kdzlCeDln?= =?utf-8?B?SUJZRmkzRmQ4ZU94cW5FUVdNMHJWc2xCK1NrMjVaZ2w5ZC9maXpMTjlCWDF2?= =?utf-8?B?R0IwMGIxcC8vWndwNXR6OWs0cXZKd0t3YUxEM0RGNlAxV1BQNFg0dUpUaWNL?= =?utf-8?B?RVdpVzZydHhqVzdtNlZUNXdNWkVjSWlzMUdxMmFrRTRkNWN4b0FJV2k5c05q?= =?utf-8?B?YVRlTWlyaDB5WnF5Uk9zSlZpYk1ETjVkcnZoTUgzK0N6STVwR3pDT3VUZTQ3?= =?utf-8?B?UjRrZnBjTFA2SnZaVlBQSnl4UCtQWHo3ME4zckM4V2xKNUsyUzFWNlNwTlV6?= =?utf-8?B?SURmdUIzazlJL2ZndUlUZENtK3hzUEVubDhTbkMyWkNxajFsTy9MMWpDTURL?= =?utf-8?B?ZDVYc3RRTFFKRGdDLzdVb01IYlorLzQrWnhVZnc5eWdnWkhlKzRRSzFBRU1S?= =?utf-8?B?QmlzcEFMdExONkJvZEwySDhHOGNNTkI4dEl5c1J2ZUNXM3VId3lmazNuUFo0?= =?utf-8?B?WURSYTlWeTBNY2VDNFNOQVdDeWQ4V1cyejRkWXlVbHJiS3pGN1NmR21Ud2Nt?= =?utf-8?B?eGNnRC83czFOSWtNZ1A4YmUvWnpQTkRQL052YjJha0FPcTJzcGFiUlFpL1RV?= =?utf-8?B?N3crdXpWRnZLc3orUXJVNGZRZFFTSHc0aHd1cHJLMUloZUZDK2pMZGZwNk5j?= =?utf-8?B?UDhYTjFhdUJPMktTZXZoMkZmUEZQaXhzWTNzY2FITnRyby85aENEK2NJL2du?= =?utf-8?B?MGgwZTUrQ05sSGFUU3AycU10V3NyNXFoWkZVdSswN1lkV3R0SmRkUFFCL2pi?= =?utf-8?B?d1BBM2VsdU03WFEzSHhnS0lTZitzaFhnVXpPV2RHdmFRbUdML21OVVR4eGtq?= =?utf-8?B?eDdRSUI3OHB2cUs5Wm9RNmg2VTNydXRXMm1BaFlOeUJnR2x2UW1TR1NXRmkr?= =?utf-8?B?dldoM1ZhbGk4cHlGVzBXbHpuS1Y2TWxpNWpRRFpyOFk1TWhIR2lBdHhCVTFk?= =?utf-8?B?T1pWK2ZpemtWL2pYaXdGS2grdG94M1pRdDU1Qm4xcUNpSEdIdlRiNjBWdU9O?= =?utf-8?B?L3VZNDZQWGdNWXRMRXFPRlE1UTVxOHl6cld4cU9DTDRIMm9BT0RlTVpaZFFY?= =?utf-8?B?enRsQ09tSlZZUzNnMWZvS09tWEVhSTh1WW1RSmY4LzkyQ1ZPNzB6KzJnYTB1?= =?utf-8?B?ZU5hUEtBMjVVU3BOamdzelV0WE1BaUQzVDhoSTVnZitrTXd1ZzNtbnhlM1pC?= =?utf-8?B?VmNmN3FxVEc0amxlUXA0UTRsVWV5a29IT2Y2VnNZMkRsS0ZCVkF6aFo5OHNQ?= =?utf-8?B?Z2hGb0JRMzBhbTZMMGhQUzUwajdOWElxVU1oZ1Yzb2Fqc0U1NW54bU1zZ05M?= =?utf-8?B?Z0tRTEdzWnMrZFpuZzBtSXB5RDNFVVJXY3NuNVM3Yml3TE1ZTHdSTGlsKzc4?= =?utf-8?B?akllazV3TnRGai9oTzBiZDdoRDBvQ1lQcWEwMmxHTDZsQm9aQTR3ay92U3oz?= =?utf-8?B?c3l2bkUwKzJjRXFlb3VlaGxFaGpwbXgwbzd5QjRGUnEwaGdDaEJ5VHFWcG5S?= =?utf-8?B?WURKbWpVV29YN21Ga2J2amk0ejVkc2RFWnhBVUdoOTFVczN5dDRvb2tEcmta?= =?utf-8?B?UE85T3IzLzIrZHhkbUtUejBCUVFUVXZ1cFVKdkFXMFpubjZiSjRMQjlvVkt2?= =?utf-8?Q?/aHzrRBnCx8p5dZudnJXG4LBv?= 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: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e8f4a4b-2f31-4009-2395-08db0399c3f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2023 14:45:15.4893 (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: vJpBsnymfVgA8T3Tok74jZLbJ/rTidXwdrqzizbYwJHA00RDhkCNb0HYnkQQskzOxMrDpx1yY6y2xfXpD+DMIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7310 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 SGkgSmVyaW4gYW5kIFJvbmd3ZWksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogSmVyaW4gSmFjb2IgPGplcmluamFjb2JrQGdtYWlsLmNvbT4NCj4gU2VudDogVHVlc2Rh eSwgMzEgSmFudWFyeSAyMDIzIDE2OjM3DQo+IA0KPiBPbiBUdWUsIEphbiAzMSwgMjAyMyBhdCAy OjMxIFBNIFJvbmd3ZWkgTGl1IDxyb25nd2VpbEBudmlkaWEuY29tPiB3cm90ZToNCj4gPg0KPiA+ IEhpIEplcmluOg0KPiA+DQo+ID4gQlINCj4gPiBSb25nd2VpDQo+ID4NCj4gPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBKZXJpbiBKYWNvYiA8amVyaW5qYWNvYmtA Z21haWwuY29tPg0KPiA+ID4gU2VudDogVHVlc2RheSwgSmFudWFyeSAzMSwgMjAyMyAxNjo0Ng0K PiA+ID4gVG86IFJvbmd3ZWkgTGl1IDxyb25nd2VpbEBudmlkaWEuY29tPg0KPiA+ID4gQ2M6IGRl dkBkcGRrLm9yZzsgTWF0YW4gQXpyYWQgPG1hdGFuQG52aWRpYS5jb20+OyBTbGF2YSBPdnNpaWVu a28NCj4gPiA+IDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPjsgT3JpIEthbSA8b3Jpa2FAbnZpZGlh LmNvbT47IE5CVS1Db250YWN0LQ0KPiA+ID4gVGhvbWFzIE1vbmphbG9uIChFWFRFUk5BTCkgPHRo b21hc0Btb25qYWxvbi5uZXQ+Ow0KPiA+ID4gc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IFJh c2xhbiBEYXJhd3NoZWgNCj4gPHJhc2xhbmRAbnZpZGlhLmNvbT47DQo+ID4gPiBGZXJydWggWWln aXQgPGZlcnJ1aC55aWdpdEBhbWQuY29tPjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+ID4gPGFuZHJl dy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCAz LzNdIGV0aGRldjogYWRkIHN0YW5kYnkgZmxhZ3MgZm9yIGxpdmUgbWlncmF0aW9uDQo+ID4gPg0K PiA+ID4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNo bWVudHMNCj4gPiA+DQo+ID4gPg0KPiA+ID4gT24gVHVlLCBKYW4gMzEsIDIwMjMgYXQgODoyMyBB TSBSb25nd2VpIExpdSA8cm9uZ3dlaWxAbnZpZGlhLmNvbT4NCj4gd3JvdGU6DQo+ID4gPiA+DQo+ ID4gPiA+IEhJIEplcmluOg0KPiA+ID4gPg0KPiA+ID4gPiBCUg0KPiA+ID4gPiBSb25nd2VpDQo+ ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBG cm9tOiBKZXJpbiBKYWNvYiA8amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiA+ID4gPiA+IFNlbnQ6 IFR1ZXNkYXksIEphbnVhcnkgMzEsIDIwMjMgMDE6MTANCj4gPiA+ID4gPiBUbzogUm9uZ3dlaSBM aXUgPHJvbmd3ZWlsQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gQ2M6IGRldkBkcGRrLm9yZzsgTWF0 YW4gQXpyYWQgPG1hdGFuQG52aWRpYS5jb20+OyBTbGF2YQ0KPiBPdnNpaWVua28NCj4gPiA+ID4g PiA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE9yaSBLYW0gPG9yaWthQG52aWRpYS5jb20+OyBO QlUtDQo+IENvbnRhY3QtDQo+ID4gPiA+ID4gVGhvbWFzIE1vbmphbG9uIChFWFRFUk5BTCkgPHRo b21hc0Btb25qYWxvbi5uZXQ+Ow0KPiA+ID4gPiA+IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3Jn OyBSYXNsYW4gRGFyYXdzaGVoDQo+IDxyYXNsYW5kQG52aWRpYS5jb20+Ow0KPiA+ID4gPiA+IEZl cnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGFtZC5jb20+OyBBbmRyZXcgUnliY2hlbmtvDQo+ID4g PiA+ID4gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+ID4gPiA+IFN1YmplY3Q6 IFJlOiBbUEFUQ0ggdjQgMy8zXSBldGhkZXY6IGFkZCBzdGFuZGJ5IGZsYWdzIGZvciBsaXZlDQo+ ID4gPiA+ID4gbWlncmF0aW9uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBFeHRlcm5hbCBlbWFpbDog VXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiA+ID4gPiA+DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBPbiBNb24sIEphbiAzMCwgMjAyMyBhdCA4OjE3IEFNIFJvbmd3ZWkg TGl1DQo+IDxyb25nd2VpbEBudmlkaWEuY29tPg0KPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gSGkgSmVyaW4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBCUg0KPiA+ID4g PiA+ID4gUm9uZ3dlaQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluamFjb2Jr QGdtYWlsLmNvbT4NCj4gPiA+ID4gPiA+ID4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDIzLCAyMDIz IDIxOjIwDQo+ID4gPiA+ID4gPiA+IFRvOiBSb25nd2VpIExpdSA8cm9uZ3dlaWxAbnZpZGlhLmNv bT4NCj4gPiA+ID4gPiA+ID4gQ2M6IGRldkBkcGRrLm9yZzsgTWF0YW4gQXpyYWQgPG1hdGFuQG52 aWRpYS5jb20+OyBTbGF2YQ0KPiA+ID4gPiA+ID4gPiBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52 aWRpYS5jb20+OyBPcmkgS2FtDQo+IDxvcmlrYUBudmlkaWEuY29tPjsNCj4gPiA+ID4gPiA+ID4g TkJVLUNvbnRhY3QtIFRob21hcyBNb25qYWxvbiAoRVhURVJOQUwpDQo+IDx0aG9tYXNAbW9uamFs b24ubmV0PjsNCj4gPiA+ID4gPiA+ID4gc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IFJhc2xh biBEYXJhd3NoZWgNCj4gPiA+ID4gPiA+ID4gPHJhc2xhbmRAbnZpZGlhLmNvbT47IEZlcnJ1aCBZ aWdpdCA8ZmVycnVoLnlpZ2l0QGFtZC5jb20+Ow0KPiA+ID4gPiA+ID4gPiBBbmRyZXcgUnliY2hl bmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gPiA+ID4gPiA+ID4gU3ViamVj dDogUmU6IFtQQVRDSCB2NCAzLzNdIGV0aGRldjogYWRkIHN0YW5kYnkgZmxhZ3MgZm9yIGxpdmUN Cj4gPiA+ID4gPiA+ID4gbWlncmF0aW9uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEV4 dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE9uIFdlZCwgSmFuIDE4 LCAyMDIzIGF0IDk6MTUgUE0gUm9uZ3dlaSBMaXUNCj4gPiA+ID4gPiA+ID4gPHJvbmd3ZWlsQG52 aWRpYS5jb20+DQo+ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiBTb21lIGZsYWdzIGFyZSBhZGRlZCB0byB0aGUgcHJvY2VzcyBzdGF0ZSBBUEkgZm9yIGxp dmUNCj4gPiA+ID4gPiA+ID4gPiBtaWdyYXRpb24gaW4gb3JkZXIgdG8gY2hhbmdlIHRoZSBiZWhh dmlvciBvZiB0aGUgZmxvdyBydWxlcyBpbiBhDQo+ID4gPiBzdGFuZGJ5IHByb2Nlc3MuDQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSb25nd2VpIExpdSA8 cm9uZ3dlaWxAbnZpZGlhLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ID4g PiAgbGliL2V0aGRldi9ydGVfZXRoZGV2LmggfCAyMSArKysrKysrKysrKysrKysrKysrKysNCj4g PiA+ID4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykNCj4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9ldGhk ZXYuaCBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4gPiA+ID4gPiA+ID4gaW5kZXgNCj4g PiA+ID4gPiA+ID4gPiAxNTA1Mzk2Y2VkLi45YWU0ZjQyNmE3IDEwMDY0NA0KPiA+ID4gPiA+ID4g PiA+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4gPiA+ID4gPiA+ID4gKysrIGIv bGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPiA+ID4gPiA+ID4gPiBAQCAtMjI2MCw2ICsyMjYw LDI3IEBAIGludCBydGVfZXRoX2Rldl9vd25lcl9nZXQoY29uc3QNCj4gPiA+ID4gPiA+ID4gPiB1 aW50MTZfdCBwb3J0X2lkLCAgX19ydGVfZXhwZXJpbWVudGFsICBpbnQNCj4gPiA+ID4gPiA+ID4g PiBydGVfZXRoX3Byb2Nlc3Nfc2V0X3JvbGUoYm9vbCBzdGFuZGJ5LCB1aW50MzJfdCBmbGFncyk7 DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiArLyoqQHtAbmFtZSBQcm9jZXNzIHJv bGUgZmxhZ3MNCj4gPiA+ID4gPiA+ID4gPiArICogdXNlZCB3aGVuIG1pZ3JhdGluZyBmcm9tIGFu IGFwcGxpY2F0aW9uIHRvIGFub3RoZXIgb25lLg0KPiA+ID4gPiA+ID4gPiA+ICsgKiBAc2VlIHJ0 ZV9ldGhfcHJvY2Vzc19zZXRfYWN0aXZlICAqLw0KPiA+ID4gPiA+ID4gPiA+ICsvKioNCj4gPiA+ ID4gPiA+ID4gPiArICogV2hlbiBzZXQgb24gYSBzdGFuZGJ5IHByb2Nlc3MsIGluZ3Jlc3MgZmxv dyBydWxlcyB3aWxsIGJlDQo+ID4gPiA+ID4gPiA+ID4gK2VmZmVjdGl2ZQ0KPiA+ID4gPiA+ID4g PiA+ICsgKiBpbiBhY3RpdmUgYW5kIHN0YW5kYnkgcHJvY2Vzc2VzLCBzbyB0aGUgaW5ncmVzcyB0 cmFmZmljDQo+ID4gPiA+ID4gPiA+ID4gK21heSBiZQ0KPiA+ID4gPiA+IGR1cGxpY2F0ZWQuDQo+ ID4gPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gPiA+ICsjZGVmaW5lDQo+IFJURV9FVEhf UFJPQ0VTU19GTEFHX1NUQU5EQllfRFVQX0ZMT1dfSU5HUkVTUw0KPiA+ID4gPiA+ID4gPiBSVEVf QklUMzIoMCkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSG93 IHRvIGR1cGxpY2F0ZSBpZiBhY3Rpb24gaGFzIHN0YXRlZnVsbCBpdGVtcyBmb3IgZXhhbXBsZSwN Cj4gPiA+ID4gPiA+ID4gcnRlX2Zsb3dfYWN0aW9uX3NlY3VyaXR5OjpzZWN1cml0eV9zZXNzaW9u IC0+IGl0IHN0b3JlIHRoZSBsaXZlDQo+ID4gPiA+ID4gPiA+IHBvaW50ZXIgcnRlX2Zsb3dfYWN0 aW9uX21ldGVyOjptdHJfaWQ7IC0+IE1UUiBvYmplY3QgSUQgY3JlYXRlZA0KPiA+ID4gPiA+ID4g PiB3aXRoDQo+ID4gPiA+ID4gPiA+IHJ0ZV9tdHJfY3JlYXRlKCkNCj4gPiA+ID4gPiA+IEkgYWdy ZWUgd2l0aCB5b3UsIG5vdCBhbGwgYWN0aW9ucyBjYW4gYmUgc3VwcG9ydGVkIGluIHRoZQ0KPiA+ ID4gPiA+ID4gYWN0aXZlL3N0YW5kYnkNCj4gPiA+ID4gPiBtb2RlbC4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IElNTywgV2hlcmUgZXZlciBydWxlcyBhcmUgbm90IHN0YW5kYWxvbmUgKGxpa2UgUVVF VUUsIFJTUykgZXRjLCBJdA0KPiA+ID4gPiA+IHdpbGwgYmUgYXJjaGl0ZWN0dXJhbGx5IGlzIG5v dCBwb3NzaWJsZSB0byBtaWdyYXRlIHdpdGggcG9pbnRlcnMuDQo+ID4gPiA+ID4gVGhhdCdzIHdo ZXJlIEkgaGF2ZSBjb25jZXJuIGdlbmVyYWxpemluZyB0aGlzIGZlYXR1cmUgZm9yIHRoaXMgZXRo ZGV2Lg0KPiA+ID4gPiA+DQo+ID4gPiA+IE5vdCBzdXJlIEkgdW5kZXJzdGFuZCB5b3VyIGNvbmNl cm4gY29ycmVjdGx5LiBXaGF0JyB0aGUgcG9pbnRlcg0KPiBjb25jZXB0DQo+ID4gPiBoZXJlPw0K PiA+ID4NCj4gPiA+IEkgbWVhbnQsIEFueSBIVyByZXNvdXJjZSBkcml2ZXIgZGVhbHMgd2l0aCAi cG9pbnRlcnMiIG9yICJmaXhlZCBJRCINCj4gPiA+IGNhbiBub3QgZ2V0IHRoZSBzYW1lIHZhbHVl DQo+ID4gPiBmb3IgdGhlIG5ldyBhcHBsaWNhdGlvbi4gVGhhdCdzIHdoZXJlIEkgYmVsaWV2ZSB0 aGlzIHdob2xlIGNvbmNlcHRzIHdvcmtzDQo+IGZvcg0KPiA+ID4gdmVyeSBzdGFuZGFsb25lIHJ0 ZV9mbG93IHBhdHRlcm5zIGFuZCBhY3Rpb25zLg0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+IFF1ZXVl IFJTUyBhY3Rpb25zIGNhbiBiZSBtaWdyYXRlZCBwZXIgbXkgbG9jYWwgdGVzdC4gQWN0aXZlL1N0 YW5kYnkNCj4gPiA+IGFwcGxpY2F0aW9uIGhhdmUgaXRzIGZ1bGx5IG93biByeHEvdHhxLg0KPiA+ ID4NCj4gPiA+IFllcy4gSXQgYmVjYXVzZSBpdCBpcyBzdGFuZGFsb25lLg0KPiA+ID4NCj4gPiA+ ID4gVGhleSBhcmUgdG90YWxseSBzZXBhcmF0ZWQgcHJvY2Vzc2VzIGFuZCBsaWtlIHR3byBtZW1i ZXJzIGluIHBpcGVsaW5lLg0KPiAybmQNCj4gPiA+IG1lbWJlciBjYW4ndCBiZSBmZWVkIGlmIDFz dCBtZW1iZXIgYWxpdmUgYW5kIGhhbmRsZSB0aGUgdHJhZmZpYy4NCj4gPiA+ID4NCj4gPiA+ID4g PiBBbHNvLCBJIGRvbid0IGJlbGlldmUgdGhlcmUgaXMgYW55IHJlYWwgSFcgc3VwcG9ydCBuZWVk ZWQgZm9yIHRoaXMuDQo+ID4gPiA+ID4gSU1PLCBIYXZpbmcgRFBESyBzdGFuZGFyZCBtdWx0aXBy b2Nlc3MgY2FuIGRvIHRoaXMgYnkga2VlcGluZw0KPiA+ID4gPiA+IHNlY29uZGFyeSBhcHBsaWNh dGlvbiBjYW4gbWlncmF0ZSwga2VlcGluZyBhbGwgdGhlIFNXIGxvZ2ljIGluIHRoZQ0KPiA+ID4g PiA+IHByaW1hcnkgcHJvY2VzcyBieSBkb2luZyB0aGUgaG91c2VrZWVwaW5nIGluIHRoZSBhcHBs aWNhdGlvbi4gT24NCj4gPiA+ID4gPiBwbHVzIHNpZGUsIGl0IHdvcmtzIHdpdGggcG9pbnRlcnMg dG9vLg0KPiA+ID4NCj4gPiA+ID4gSU1PLCBpbiBtdWx0aXBsZSBwcm9jZXNzIG1vZGVsLCBwcmlt YXJ5IHByb2Nlc3MgdXN1YWxseSBvd25zIHRoZQ0KPiBoYXJkd2FyZQ0KPiA+ID4gcmVzb3VyY2Vz IHZpYSBtbWFwL2lvbWFwL3BjaV9tYXAgZXRjLg0KPiA+ID4gPiBTZWNvbmRhcnkgcHJvY2VzcyBp cyBub3QgYWJsZSB0byBydW4gaWYgcHJpbWFyeSBxdWl0cyBubyBtYXR0ZXINCj4gZ3JhY2VmdWxs eSBvcg0KPiA+ID4gY3Jhc2hpbmcuDQo+ID4gPiA+IFRoaXMgcGF0Y2ggd2FudHMgdG8gaW50cm9k dWNlIGEgImJhY2t1cCB0byBhbGl2ZSIgbW9kZWwuDQo+ID4gPiA+IEFzc3VtZSB1c2VyIHdhbnRz IHRvIHVwZ3JhZGUgZnJvbSBEUERLIHZlcnNpb24gMjIuMDMgdG8gMjMuMDMsIDIyLjAzDQo+IGlz DQo+ID4gPiBydW5uaW5nIGFuZCBhY3RpdmUgcm9sZSB3aGlsZSAyMy4wMyBjb21lcyB1cCBpbiBz dGFuZGJ5Lg0KPiA+ID4gPiBCb3RoIERQREsgcHJvY2Vzc2VzIGhhdmUgaXRzIG93biByZXNvdXJj ZXMgYW5kIGRvZXNuJ3QgcmVseSBvbiBlYWNoDQo+IG90aGVyLg0KPiA+ID4gPiBVc2VyIGNhbiBt aWdyYXRlIHRoZSBhcHBsaWNhdGlvbiBmb2xsb3dpbmcgdGhlIHN0ZXBzIGluIGNvbW1pdCBtZXNz YWdlDQo+ID4gPiB3aXRoIG1pbmltdW0gdHJhZmZpYyBkb3dudGltZS4NCj4gPiA+ID4gU1cgbG9n aWMgbGlrZSBmbG93IHJ1bGVzIGNhbiBiZSBkb25lIGZvbGxvd2luZyBpcHRhYmxlcy1zYXZlL2lw dGFibGVzLQ0KPiByZXN0b3JlDQo+ID4gPiBhcHByb2FjaC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IEkgYW0gbm90IHN1cmUgaG93IG11Y2ggaG91c2VrZWVwaW5nIG9mZmxvYWQgdG8gX0hXXyBpbiB5 b3VyIGNhc2UuDQo+IEluDQo+ID4gPiA+ID4gbXkgdmlldywgaXQgc2hvdWxkIGJlIGdlbmVyaWMg dXRpbHMgZnVuY3Rpb25zIHRvIHRyYWNrIHRoZSBmbG93IGFuZA0KPiA+ID4gPiA+IGluc3RhbGxp bmcgdGhlIHJ1bGVzIHVzaW5nIHJ0ZV9mbG93IEFQSXMgYW5kIGtlZXAgdGhlIHNjb3BlIG9ubHkg Zm9yDQo+ID4gPiBydGVfZmxvdy4NCj4gPiA+ID4gRm9yIHJ1bGVzIHBhcnQsIHRvdGFsbHkgYWdy ZWUgd2l0aCB5b3UuIElzc3VlIGlzIHRoZXJlIG1heWJlIG1pbGxpb25zDQo+ID4gPiA+IG9mIGZs b3cgcnVsZXMgaW4gZmllbGQgYW5kIGVhY2ggcnVsZSBtYXkgdGFrZSBkaWZmZXJlbnQgc3RlcHMg dG8gcmUtaW5zdGFsbA0KPiBwZXINCj4gPiA+IHZlbmRvcicgaW1wbGVtZW50YXRpb25zLg0KPiA+ ID4NCj4gPiA+IEkgdW5kZXJzdGFuZCB0aGUgZGVzaXJlIGZvciBtaWxsb24gZmxvdyBtaWdyYXRp b25zLiBXaGljaCBtYWtlcw0KPiBzZW5zZS5JTU8sIEl0DQo+ID4gPiBtYXkgYmUganVzdCBlYXN5 IHRvIG1ha2UgdGhpcyBmZWF0dXJlIGp1c3QgZm9yIHJ0ZV9mbG93IG5hbWUgc3BhY2UuIEp1c3QN Cj4gaGF2ZQ0KPiA+ID4gQVBJcyB0byBleHBvcnQoKSBleGlzdGluZyBydWxlcyBmb3IgdGhlIGdp dmVuIHBvcnQgYW5kIGltcG9ydCgpIHRoZSBydWxlcw0KPiA+ID4gZXhwb3J0ZWQgcmF0aGVyIHRo YW4gZ29pbmcgdG8gZXRoZGV2IHNwYWNlIGFuZCBjYWxsIGl0IGFzICJsaXZlIG1pZ3JhdGlvbiIu DQo+ID4gPg0KPiA+IERvIHlvdSBtZWFuIHRoZSBBUEkgbmFtaW5nIHNob3VsZCBiZSAicnRlX2Zs b3dfcHJvY2Vzc19zZXRfcm9sZSgpIg0KPiBpbnN0ZWFkIG9mICJydGVfZXRoX3Byb2Nlc3Nfc2V0 X3JvbGUoKSIgPw0KPiA+IEFsc28gbW92ZSB0byBydGVfZmxvdy5jLy5oIGZpbGVzPyBBcmUgd2Ug Z29vZCB0byBrZWVwIHRoZSBQTUQgY2FsbGJhY2sgaW4NCj4gZXRoX2RldiBsYXllcj8NCj4gDQo+ IFllcy4gc29tZXRoaW5nIHdpdGggcnRlX2Zsb3dfIHByZWZpeCBhbmQgbm90IHN1cmUgX3NldF9y b2xlKCkga2luZCBvZg0KPiBzY2hlbWUuDQoNCkkgdGhpbmsgdGhhdCB0aGUgcHJvY2VzcyBvZiB1 cGdyYWRlIHJlbGF0ZXMgdG8gdGhlIGVudGlyZSBwb3J0IGFuZCBub3Qgb25seSB0aGUgcnRlX2Zs b3csDQpJIGRvbid0IG1pbmQgdGhhdCB0aGlzIGZsYWcgd2lsbCBiZSBwYXJ0ICBvZiBydGVfZmxv dywgYnV0IGl0IGxvb2tzIGxpa2UgdGhpcyBpbmZvcm1hdGlvbiBpcyBpbiBoaWdoZXIgbGV2ZWwu DQoNCj4gDQo+ID4gU2ltcGxlIGV4cG9ydCgpL2ltcG9ydCgpIG1heSBub3Qgd29yay4gSW1hZ2Ug c29tZSBmbG93IHJ1bGVzIGFyZQ0KPiBleGNsdXNpdmUgYW5kIGNhbid0IGJlIGlzc3VlZCBmcm9t IGJvdGggYXBwbGljYXRpb25zLg0KPiA+IFdlIG5lZWQgdG8gc3RvcCBvbGQgYXBwbGljYXRpb24u IEkgYW0gYWZyYWlkIHRoaXMgd2lsbCBpbnRyb2R1Y2UgYmlnIHRpbWUNCj4gd2luZG93IHdoaWNo IHRyYWZmaWMgc3RvcHMuDQo+IA0KPiBZZXMsIEkgdGhpbmsgdGhlICBzZXF1ZW5jZSBpcw0KPiBy dGVfZmxvd19ydWxlc19leHBvcnQoKSBvbiBhcHAgMQ0KPiBzdG9wIHRoZSBhcHAgMQ0KPiBydGVf Zmxvd19ydWxlc19pbXBvcnQoKSBvZiBhcHAgMSBieSBhcHAyLg0KPiANCkkgZG9uJ3QgdGhpbmsg ZXhwb3J0IGlzIHRoZSBiZXN0IHNvbHV0aW9uLCBzaW5jZSBtYXliZSB0aGUgc2Vjb25kIGFwcGxp Y2F0aW9uIGRvZXNuJ3Qgd2FudA0KYWxsIHJ1bGVzLg0KRnJvbSBteSB1bmRlcnN0YW5kaW5nIHRo ZSBpZGVhIGlzIHRvIHNldCBwcmlvcml0eSBiZXR3ZWVuIHR3byBwcm9jZXNzIHNvIHdoZW4gDQpv bmUgYXBwbGljYXRpb24gY2xvc2VzIHRoZSB0cmFmZmljIGlzIGdvaW5nIHRvIGJlIHJlY2VpdmVk IGJ5IHRoZSBzZWNvbmQgYXBwbGljYXRpb24uDQpXZSBoYXZlIGFsc28gdGhlIG9wdGlvbiB0aGF0 IHRoZSBzZWNvbmQgcHJvY2VzcyB3aWxsIGdldCBkdXBsaWNhdGVkIHRyYWZmaWMgd2l0aCB0aGUN CkZpcnN0IGFwcGxpY2F0aW9uLg0KDQo+IA0KPiA+IEFwcGxpY2F0aW9uIHdvbid0IGxpa2UgdGhp cyBiZWhhdmlvci4NCj4gPiBXaXRoIHRoaXMgY2FsbGJhY2ssIGVhY2ggUE1EIGNhbiBzcGVjaWZ5 IGVhY2ggcnVsZSwgcXVldWUgaXQgb3IgdXNlIGxvd2VyDQo+IHByaW9yaXR5IGlmIGV4Y2x1c2l2 ZS4gT3IgcmV0dXJuIGVycm9yLg0KPiA+DQo+ID4gPiA+IFRoaXMgc2VyaWFsIHdhbnRzIHRvIHBy b3Bvc2UgYSB1bmlmaWVkIGludGVyZmFjZSBmb3IgdXBwZXIgbGF5ZXINCj4gYXBwbGljYXRpb24n DQo+ID4gPiBlYXN5IHVzZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYXQncyBqdXN0IG15IHZp ZXcuIEkgbGVhdmUgdG8gZXRoZGV2IG1haW50YWluZXJzIGZvciB0aGUgcmVzdCBvZg0KPiA+ID4g PiA+IHRoZSByZXZpZXcgYW5kIGRlY2lzaW9uIG9uIHRoaXMgc2VyaWVzLg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBUaGF0JyB3aHkgd2UgaGF2ZSByZXR1cm4gdmFsdWUgY2hlY2tpbmcgYW5kIHJv bGxiYWNrLg0KPiA+ID4gPiA+ID4gSW4gTnZpZGlhIGRyaXZlciBkb2MsIHdlIHN1Z2dlc3RlZCB1 c2VyIHRvIHN0YXJ0IGZyb20NCj4gJ3Jzcy9xdWV1ZS9qdW1wJw0KPiA+ID4gPiA+IGFjdGlvbnMu DQo+ID4gPiA+ID4gPiBNZXRlciBpcyBwb3NzaWJsZSwgYXQgbGVhc3QgcGVyIG15IHZpZXcuDQo+ ID4gPiA+ID4gPiBBc3N1bWU6ICJtZXRlciBnX2FjdGlvbiBxdWV1ZSAwIC8geV9hY3Rpb24gZHJv cCAvIHJfYWN0aW9uIGRyb3AiDQo+ID4gPiA+ID4gPiBPbGQgYXBwbGljYXRpb246IGNyZWF0ZSBt ZXRlcl9pZCAnQScgd2l0aCBwcmUtZGVmaW5lZCBsaW1pdGF0aW9uLg0KPiA+ID4gPiA+ID4gTmV3 IGFwcGxpY2F0aW9uOiBjcmVhdGUgbWV0ZXJfaWQgJ0InIHdoaWNoIGhhcyB0aGUgc2FtZQ0KPiBw YXJhbWV0ZXJzDQo+ID4gPiA+ID4gPiB3aXRoDQo+ID4gPiA+ID4gJ0EnLg0KPiA+ID4gPiA+ID4g MS4gMXN0IHBvc3NpYmxlIGFwcHJvYWNoOg0KPiA+ID4gPiA+ID4gICAgICAgICBIYXJkd2FyZSBk dXBsaWNhdGVzIHRoZSB0cmFmZmljOyBvbGQgYXBwbGljYXRpb24gdXNlIG1ldGVyDQo+ID4gPiA+ ID4gPiAnQScgYW5kIG5ldw0KPiA+ID4gPiA+IGFwcGxpY2F0aW9uIHVzZXMgbWV0ZXIgJ0InIHRv IGNvbnRyb2wgdHJhZmZpYyB0aHJvdWdocHV0cy4NCj4gPiA+ID4gPiA+ICAgICAgICAgU2luY2Ug dHJhZmZpYyBpcyBkdXBsaWNhdGVkLCBzbyBpdCBjYW4gZ28gdG8gZGlmZmVyZW50IG1ldGVycy4N Cj4gPiA+ID4gPiA+IDIuIDJuZCBwb3NzaWJsZSBhcHByb2FjaDoNCj4gPiA+ID4gPiA+ICAgICAg ICAgICAgICBNZXRlciAnQScgYW5kICdCJyBwb2ludCB0byB0aGUgc2FtZSBoYXJkd2FyZQ0KPiA+ ID4gPiA+ID4gcmVzb3VyY2UsIGFuZCB0cmFmZmljDQo+ID4gPiA+ID4gcmVhY2hlcyB0aGlzIHBh cnQgZmlyc3QgYW5kIGlmIGdyZWVuLCBkdXBsaWNhdGlvbiBoYXBwZW5zLg0K