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 C7593A034C; Thu, 26 May 2022 02:29:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 64B1940150; Thu, 26 May 2022 02:29:05 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 745C840146 for ; Thu, 26 May 2022 02:29:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653524943; x=1685060943; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=g6J+HylHryFlRbgGbCTFSLYp0Gl2T15SrGIHaBUSeZk=; b=eWvwJUu2qGW4zx+wvpWdxoilsVCUqUlVJx653w/3pLhIIb7VFX+8Fcpz XVUSCDOtDy1PLAfY8UDLfTxHpJtMnyj++QyKOtQm5wYO2BbUvAragm3kl UI3q4znyMq1ODjNh3SeenT3YDLwsq7fgWwzwp+Zm36K94EwewzKD23PqT xNeGspoGhvwq0SyLp60sa9YBT7WrQzDaSLFhThQgGc4wVmSOlXp6aSr9J iTVhdPjGz+ZDLiuxbU5Q1AM4SEfjMQP0BubzDpNPT1uKFZ5LtesJiGvxb 7zd1UPohcMczkMN2POdBXTAQTUxhpvR13hukNXYBpHWtkMsvvh+x9HC2t A==; X-IronPort-AV: E=McAfee;i="6400,9594,10358"; a="273977355" X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="273977355" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 May 2022 17:28:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="549283655" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga006.jf.intel.com with ESMTP; 25 May 2022 17:28:39 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 25 May 2022 17:28:39 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 25 May 2022 17:28:39 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.174) 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; Wed, 25 May 2022 17:28:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UGt1ou/7j7o/AI5MScxPyoD1XNmuBBDKq6Yq8kRobKatxpUZjGemw7ch64oaxE9OH9wbdlp1McxF9FriHj7no/24r99sArRs68zT3EHjGaFjDY8c13yndWOi8S+n6q5wRdE8Bm5tdRrH+BofR+AeOT94NkOMo5MqQZUG9QAv54hWKjoIO4De5+SipgbiVew6oj0t3qAkey6opTW9Hodzb9wXs0azi3j/vp6KaB4ZPYZwbbKukZJrrJfINw344zq8zivMSKG3EDB7P1ZM+ixJVtbJBT7R1UjYu5NOOEgFtpEV0OU8DooKY8rtUx33vqL/SLJwaLJDPebLoLwti7/U8g== 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=g6J+HylHryFlRbgGbCTFSLYp0Gl2T15SrGIHaBUSeZk=; b=H1va2oWbJI/RfQicUKUZi6iMgJapfZZ+qk+SSjN2y0F4fl4z3cAUHVBaOjaPG5NGExfa2WDvauDKMDIQAaLpJpODVN+Wa+/PtQW7kXTFokerYNY+UZWTNK6y8MC5UA3agcGq7aPVENT/LgvVGAswdcpEFMGj6kbl1kKr64iWqDWib0BwVL5mPW3CPXtr3GeHW3/FoR2RukI5kWZ7CU45Gr0LDndvWFoQ/bZPPrbIRYGqdA7/v/crTGlSzez5aplX4t0Q/WMU0uzQLxXfm/D7EBV9M1dMI8qkNo1VnY06ZWvUASMbwj4R0inDsZGEDGctNUU0Z0PHQGnNqsyfg7bm0A== 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 DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by BYAPR11MB3510.namprd11.prod.outlook.com (2603:10b6:a03:8b::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.19; Thu, 26 May 2022 00:28:36 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::b4f6:f68:2e31:ddf7]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::b4f6:f68:2e31:ddf7%8]) with mapi id 15.20.5293.013; Thu, 26 May 2022 00:28:36 +0000 From: "Zhang, Qi Z" To: "Daly, Jeff" , Thomas Monjalon , "dev@dpdk.org" CC: Stephen Douthit , "Yang, Qiming" , "Wu, Wenjun1" Subject: RE: [PATCH] net/ixgbe: Treat 1G Cu SFPs as 1G SX on the X550 devices Thread-Topic: [PATCH] net/ixgbe: Treat 1G Cu SFPs as 1G SX on the X550 devices Thread-Index: AQHYMnOyeQTUxssyHEy+SSEKCDh1Cqzuk+wAgDi80mCAATIIgIAD4m+QgACUc4CAAJHc8IACpkeAgACSj7A= Date: Thu, 26 May 2022 00:28:36 +0000 Message-ID: References: <20220307223442.28012-1-jeffd@silicom-usa.com> <1681763.yIU609i1g2@thomas> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.500.17 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: a07b0232-ffe2-466c-01d0-08da3eaeac37 x-ms-traffictypediagnostic: BYAPR11MB3510: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: 98ksD6Itc5R3JUNThqseW6QtoFVB31lbEU9jpPBneL+mXk0c6c0H6YnPgq12Co2bKAoBdc/ofG9evxtdRqGquN4gUGVj/VPEgbekbQe6hWLXXTUaLZu7LJvBgn8LmY+kWLxsgQ2UPioTtlfmAhfzrYFICK5VVGTAQOAhRomqk/fnQb3u7hJcz2AuwMnwg/F3Mye5C+pIKuIuq6Lng4Dw3BU90J8JVyYvRb1GnPjAbuW3b00CrW3Uj1HnncmRgulGXLZ1PjM5pEM4PDW2aW4Xbink3JcOsyrvHLHtSHjpkqMH/FY84ksN21eVaT6/90KkzDYdbjuZfLs7LspmBkfxuNVHkBHZx8jtqpppdQC05oKugFZ07XgLnaLjmtXEAqxPCTSZPD5YQLhkiE3mEeO8UEydtOYfPC2GX7MJIdKDaCSW186J14ps0mj41Mx9+BZOdqZUpeiG78jdj58agq47yGIzNoPIU3uo4egTFukszhgG55cH60z1+nnYUqvXkE4dl8fm3yw6NApid0PEftRWwE2tXsJo/QKi6Jm01TkHVqjeyT3ViL3qz326AmvUPq6gcwpN8dCLZx63+7JTzJztWFRkP1qSAs+mWg4y5Ag0VlK6TgNYVD88AqmSZvGxmy7UAylwBF1iGuKT+51aSFIm8AbpymlBeSkUpNJi00wsfw+3x7N79RB81tjXAv10kMJjJ42YfgdHtUuqoW6SSxNXtvBV/Z3toMhGaBgaytnqLF2vejgZuyEoPWIiJ9NAMJz+h4hiYACwohB0TiZMd+ZfQCHja7rJTVUXFWDMdYHCSn19hOCVsvO+FZp14TplTuMnsNKXvwRhBVQY88jC078dvA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(54906003)(316002)(53546011)(107886003)(9686003)(55016003)(4326008)(66476007)(64756008)(8676002)(66556008)(66446008)(86362001)(76116006)(508600001)(52536014)(966005)(38070700005)(110136005)(82960400001)(38100700002)(122000001)(66946007)(6506007)(26005)(7696005)(71200400001)(2906002)(33656002)(83380400001)(5660300002)(8936002)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?akVMaVNiTjE5anJmQ0dsb3doR05HWHlYaUNrcGk4czJ3ZHM1ZzU3TGJsVWts?= =?utf-8?B?TytDdFlTa2I0WkF5V0l0T2dOWEk4QnBYVGRkVlc3VVV4U3llak11WlhCQy9V?= =?utf-8?B?RUlCWVFRUGs3VGYvNDFQd2o3MU1zWnFTU3pyTXNrcVhxMlZUYStocUNKR1VZ?= =?utf-8?B?YVBIaERhSW1YUmlLNmtNbitlVEo0NWZIVzhkZzR4U1ZiTytkVi9QNkhtK2p2?= =?utf-8?B?dXBBNFZJejBLdVhZWEllMFhLY0hQaE1hSHpXelhxR3BQT0hicmNXdFBQYlFn?= =?utf-8?B?NGcyaGQ3OHI0NzBMYkdLangvQ2RJWmdlb2M2bjBVWTBWbi9sTHJsaHNFWVRp?= =?utf-8?B?dkI3WEZQeEtWUVQxL0VwZDlUTTB2RjliU0E4VWM5NFJEVittTFU0SDdpdXlx?= =?utf-8?B?eG41d0JYaHgwMkpNYWdwMTRXSEY1MnhyQS83UExmZ2tmenRaejNSS2hGcDdu?= =?utf-8?B?bmVmUVNPRHhGVDFHL1NlUFFmVjNHUWYvWmk4Uktyb016bnVQWExoRWEwQWtR?= =?utf-8?B?OVBGS3RtTXpIVmpTTzZBRmo1ditnYVI2bytmT3c3a1pEZElsVXNnV1U1RG5H?= =?utf-8?B?bkM0ZHNVTGRDR2tyeVphWWQyWjI1YVRyLythQnY4L2RJcUJZNFZqcVVLNzgv?= =?utf-8?B?ZVcyQnMwSjBrcUJ2YkUxUHlPV2JqVHJDNElCYS9IMWM5THdyWU1yN1hxYmxv?= =?utf-8?B?R1hScEFmWnFpOXliSmI1c094ZExqbWxWc3VtbEhIUHlQR0l0TEZXY3ZIek9T?= =?utf-8?B?UEdiRGsyODJVUExCRGsxVDVPSnU3aDJlRTZUdDA4ZVBiL1MwK1F6NFV6VnZI?= =?utf-8?B?aEJWYmFhalNYQWNnbXdtY0hvS0hIeWxHY1JmZk11OUZNbDIyU2d3bHY5ZE9u?= =?utf-8?B?SUZ6UGkyNE9hUlg4ci8zYkI4UGM5dDlFVTRDckpmZUlHbmNKRzZxUlIzQWZN?= =?utf-8?B?TWVqbUgxeGtqMTN6cjV3dTI5OG5FMHhpdUZlb2ExVlJBVk02LzE5UlRvektz?= =?utf-8?B?Nm5hbDM0SXZGa2RvTkY1RnBzNk12K0RRWjltNy9Sb3U1VFUrajhqN0VlYTZ2?= =?utf-8?B?K2FORmM0Nk5wS1NxUDlBZ2ZXaUJZR2dMZE5YZzNBc1lBZkw3c2dUN21tV0Rz?= =?utf-8?B?YUNMRmRPeUt1aVg5a294ekZOeFNOMS85RktDdEtpSS9IVXhIZTRDTGlMZFNl?= =?utf-8?B?am1iMDhpdTZCTDJZczJRb1FMMGVoTjgycVZWOTFRTEZ2SkNOMXU2U3pHK25q?= =?utf-8?B?SWxXejRuNHJPUzBUWEM4Y1Y3SGlWQzZ2QTZ4ZkhNMkQzNDFGTEpDU1ZHeXJr?= =?utf-8?B?YmF1S0FKbi96RXAyV083Wm44REFrdnVmOVB3ejc0cjdtelBTU2E3MEd5TEhk?= =?utf-8?B?bjk0MjlQejZHZjcrN1JEc0pkalQ2Yng5K2F6RlB2bnpLVTNmN1hXcnVhdEpy?= =?utf-8?B?bWxGTjBGR3ltQ05FbGRNWnNVRWU4UFhsZHhiZ1VVMFFaUlZNTzhXdHozdGkz?= =?utf-8?B?ZG9zaWtlajFWS3FDckNOQTlpcTVlbXRKaW9XRjhzQkFYbFFncjhqYWJxSUFB?= =?utf-8?B?UTgva3p0RDNWa2pUT1V5YXVjZkE0Ny83NEZOc29PRGorZDkrdGJCcE0xemMv?= =?utf-8?B?MzQ3azhxaDA5azRrNHoyYUFML1dNVld3RnFwNm1reUkvNE5jVUFrM0NzcjdH?= =?utf-8?B?OWJxdG1YdnVVY281eU92V2tuL3RjN3F5UHpuRHhvUDlQZGRMZGxOUUI1MnJ1?= =?utf-8?B?KzNjeEMwWXBoVnpINXFadkduK0ordHd4VTFVMGgvMHNEejhEZFBYQWhQczY3?= =?utf-8?B?d2tNMGpKdUUvQS9WZlFGeVR5WFZ3NUtyeGJRMWxZdXZ2ejZGSEU0TnFUUTds?= =?utf-8?B?TUcwczV1NGdGdEVRajF4d1BJT2ppenNqTWRCQllWcFRNWloydUd3c2NEMW82?= =?utf-8?B?RzZ5MGpEMzM3UTBHZkVVRnE4NkZWd1BqSW1PLzJVZHRyUnRkdmo3NVIrU2lF?= =?utf-8?B?MUJ5bkdXR29yL2p1RU5pNjdVZFJrQXVOYWtmMFF2U1FJejBLbVYwbDJ0OTJV?= =?utf-8?B?V1AwNjZvWTZkK0pvejQydFkxbWtycTRPbXl2VlZrWGZkV29UL3VrOERWLzR5?= =?utf-8?B?MUhiVlhwcjlzbFN6b1laZDRRUDUxdytTekFpYmVNK1JqMWdTMVdRMzEvMjBN?= =?utf-8?B?cmVlWUw3ZU4vckRyV2phVDltSjBRZVo3MkhEdmdGTWpmVUJtcm1URkprWUh5?= =?utf-8?B?RFdhYW9MeUttSytKdExVNERmMVp6VTVQY0oxY09CWEF1ekd1dEc3QTdWbGNh?= =?utf-8?B?cjhCeWlPUEt4UlpYVXpUeDhGcjR5SlpuR2t0OXF4UHVwVnVsOXR6Zz09?= 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: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a07b0232-ffe2-466c-01d0-08da3eaeac37 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 May 2022 00:28:36.0551 (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: iN1vBIUhyr/RJzFFCFXcyjbFvJY8PANeGd92Zqc0EdTjhLMs3Lc7BWsKnfUiGywuPfdxoqIR7JNOWKsm/PVkpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3510 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVmZiBEYWx5IDxqZWZm ZEBzaWxpY29tLXVzYS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTWF5IDI1LCAyMDIyIDExOjIz IFBNDQo+IFRvOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBUaG9tYXMgTW9u amFsb24NCj4gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IFN0ZXBo ZW4gRG91dGhpdCA8c3RlcGhlbmRAc2lsaWNvbS11c2EuY29tPjsgWWFuZywgUWltaW5nDQo+IDxx aW1pbmcueWFuZ0BpbnRlbC5jb20+OyBXdSwgV2VuanVuMSA8d2VuanVuMS53dUBpbnRlbC5jb20+ DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIG5ldC9peGdiZTogVHJlYXQgMUcgQ3UgU0ZQcyBhcyAx RyBTWCBvbiB0aGUgWDU1MA0KPiBkZXZpY2VzDQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5j b20+DQo+ID4gU2VudDogTW9uZGF5LCBNYXkgMjMsIDIwMjIgNzoyMiBQTQ0KPiA+IFRvOiBKZWZm IERhbHkgPGplZmZkQHNpbGljb20tdXNhLmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA+IDx0aG9t YXNAbW9uamFsb24ubmV0PjsgZGV2QGRwZGsub3JnDQo+ID4gQ2M6IFN0ZXBoZW4gRG91dGhpdCA8 c3RlcGhlbmRAc2lsaWNvbS11c2EuY29tPjsgWWFuZywgUWltaW5nDQo+ID4gPHFpbWluZy55YW5n QGludGVsLmNvbT47IFd1LCBXZW5qdW4xIDx3ZW5qdW4xLnd1QGludGVsLmNvbT4NCj4gPiBTdWJq ZWN0OiBSRTogW1BBVENIXSBuZXQvaXhnYmU6IFRyZWF0IDFHIEN1IFNGUHMgYXMgMUcgU1ggb24g dGhlIFg1NTANCj4gPiBkZXZpY2VzDQo+ID4NCj4gPiBDYXV0aW9uOiBUaGlzIGlzIGFuIGV4dGVy bmFsIGVtYWlsLiBQbGVhc2UgdGFrZSBjYXJlIHdoZW4gY2xpY2tpbmcNCj4gPiBsaW5rcyBvciBv cGVuaW5nIGF0dGFjaG1lbnRzLg0KPiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gPiBGcm9tOiBKZWZmIERhbHkgPGplZmZkQHNpbGljb20tdXNhLmNvbT4NCj4g PiA+IFNlbnQ6IE1vbmRheSwgTWF5IDIzLCAyMDIyIDEwOjE0IFBNDQo+ID4gPiBUbzogWmhhbmcs IFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgVGhvbWFzIE1vbmphbG9uDQo+ID4gPiA8dGhv bWFzQG1vbmphbG9uLm5ldD47IGRldkBkcGRrLm9yZw0KPiA+ID4gQ2M6IFN0ZXBoZW4gRG91dGhp dCA8c3RlcGhlbmRAc2lsaWNvbS11c2EuY29tPjsgWWFuZywgUWltaW5nDQo+ID4gPiA8cWltaW5n LnlhbmdAaW50ZWwuY29tPjsgV3UsIFdlbmp1bjEgPHdlbmp1bjEud3VAaW50ZWwuY29tPg0KPiA+ ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gbmV0L2l4Z2JlOiBUcmVhdCAxRyBDdSBTRlBzIGFzIDFH IFNYIG9uIHRoZQ0KPiA+ID4gWDU1MCBkZXZpY2VzDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IFpoYW5nLCBRaSBa IDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gPiA+ID4gU2VudDogTW9uZGF5LCBNYXkgMjMsIDIw MjIgMTozNyBBTQ0KPiA+ID4gPiBUbzogSmVmZiBEYWx5IDxqZWZmZEBzaWxpY29tLXVzYS5jb20+ OyBUaG9tYXMgTW9uamFsb24NCj4gPiA+ID4gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBkZXZAZHBk ay5vcmcNCj4gPiA+ID4gQ2M6IFN0ZXBoZW4gRG91dGhpdCA8c3RlcGhlbmRAc2lsaWNvbS11c2Eu Y29tPjsgWWFuZywgUWltaW5nDQo+ID4gPiA+IDxxaW1pbmcueWFuZ0BpbnRlbC5jb20+OyBXdSwg V2VuanVuMSA8d2VuanVuMS53dUBpbnRlbC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBbUEFU Q0hdIG5ldC9peGdiZTogVHJlYXQgMUcgQ3UgU0ZQcyBhcyAxRyBTWCBvbiB0aGUNCj4gPiA+ID4g WDU1MCBkZXZpY2VzDQo+ID4gPiA+DQo+ID4gPiA+IENhdXRpb246IFRoaXMgaXMgYW4gZXh0ZXJu YWwgZW1haWwuIFBsZWFzZSB0YWtlIGNhcmUgd2hlbiBjbGlja2luZw0KPiA+ID4gPiBsaW5rcyBv ciBvcGVuaW5nIGF0dGFjaG1lbnRzLg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogSmVmZiBEYWx5IDxqZWZmZEBz aWxpY29tLXVzYS5jb20+DQo+ID4gPiA+ID4gU2VudDogU2F0dXJkYXksIE1heSAyMSwgMjAyMiAy OjAzIEFNDQo+ID4gPiA+ID4gVG86IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47 IFRob21hcyBNb25qYWxvbg0KPiA+ID4gPiA+IDx0aG9tYXNAbW9uamFsb24ubmV0PjsgZGV2QGRw ZGsub3JnDQo+ID4gPiA+ID4gQ2M6IFN0ZXBoZW4gRG91dGhpdCA8c3RlcGhlbmRAc2lsaWNvbS11 c2EuY29tPjsgWWFuZywgUWltaW5nDQo+ID4gPiA+ID4gPHFpbWluZy55YW5nQGludGVsLmNvbT47 IFd1LCBXZW5qdW4xIDx3ZW5qdW4xLnd1QGludGVsLmNvbT4NCj4gPiA+ID4gPiBTdWJqZWN0OiBS RTogW1BBVENIXSBuZXQvaXhnYmU6IFRyZWF0IDFHIEN1IFNGUHMgYXMgMUcgU1ggb24gdGhlDQo+ ID4gPiA+ID4gWDU1MCBkZXZpY2VzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gRnJvbTog WmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gU2VudDogVGh1 cnNkYXksIE1heSAxOSwgMjAyMiA4OjE1IFBNDQo+ID4gPiA+ID4gPiBUbzogVGhvbWFzIE1vbmph bG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+ID4gPiBDYzog U3RlcGhlbiBEb3V0aGl0IDxzdGVwaGVuZEBzaWxpY29tLXVzYS5jb20+OyBKZWZmIERhbHkNCj4g PiA+ID4gPiA+IDxqZWZmZEBzaWxpY29tLSB1c2EuY29tPjsgWWFuZywgUWltaW5nDQo+ID4gPiA+ ID4gPiA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgV3UsDQo+ID4gPiA+ID4gPiBXZW5qdW4xIDx3 ZW5qdW4xLnd1QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIG5l dC9peGdiZTogVHJlYXQgMUcgQ3UgU0ZQcyBhcyAxRyBTWCBvbg0KPiA+ID4gPiA+ID4gdGhlDQo+ ID4gPiA+ID4gPiBYNTUwIGRldmljZXMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBDYXV0aW9u OiBUaGlzIGlzIGFuIGV4dGVybmFsIGVtYWlsLiBQbGVhc2UgdGFrZSBjYXJlIHdoZW4NCj4gPiA+ ID4gPiA+IGNsaWNraW5nIGxpbmtzIG9yIG9wZW5pbmcgYXR0YWNobWVudHMuDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+ID4gPiA+ID4gRnJvbTogVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0 Pg0KPiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDEzLCAyMDIyIDEwOjIxIFBN DQo+ID4gPiA+ID4gPiA+IFRvOiBkZXZAZHBkay5vcmcNCj4gPiA+ID4gPiA+ID4gQ2M6IFN0ZXBo ZW4gRG91dGhpdCA8c3RlcGhlbmRAc2lsaWNvbS11c2EuY29tPjsgSmVmZiBEYWx5DQo+ID4gPiA+ ID4gPiA+IDxqZWZmZEBzaWxpY29tLSB1c2EuY29tPjsgV2FuZywgSGFpeXVlDQo+ID4gPiA+ID4g PiA+IDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBZYW5nLCBRaW1pbmcNCj4gPiA+ID4gPiA+ID4g PHFpbWluZy55YW5nQGludGVsLmNvbT47IFd1LCBXZW5qdW4xDQo+IDx3ZW5qdW4xLnd1QGludGVs LmNvbT4NCj4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSF0gbmV0L2l4Z2JlOiBUcmVh dCAxRyBDdSBTRlBzIGFzIDFHIFNYIG9uDQo+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4g PiBYNTUwIGRldmljZXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gUGxlYXNlLCBjb3Vs ZCB3ZSBoYXZlIGEgcmV2aWV3IG9mIHRoaXMgcGF0Y2g/DQo+ID4gPiA+ID4gPiA+ICtDYyBuZXcg aXhnYmUgbWFpbnRhaW5lcnMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gMDcvMDMvMjAyMiAyMzozNCwgamVmZmRAc2lsaWNvbS11c2EuY29tOg0KPiA+ID4gPiA+ ID4gPiA+IEZyb206IFN0ZXBoZW4gRG91dGhpdCA8c3RlcGhlbmRAc2lsaWNvbS11c2EuY29tPg0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gMUcgQ3UgU0ZQcyBhcmUgbm90IG9mZmlj aWFsbHkgc3VwcG9ydGVkIG9uIHRoZSBYNTUyL1g1NTMNCj4gPiA+ID4gPiA+ID4gPiBmYW1pbHkg b2YgZGV2aWNlcyBidXQgdHJlYXQgdGhlbSBhcyAxRyBTWCBtb2R1bGVzIHNpbmNlDQo+ID4gPiA+ ID4gPiA+ID4gdGhleSB1c3VhbGx5DQo+ID4gPiB3b3JrLg0KPiA+ID4gPiA+ID4gPiA+IFByaW50 IGEgd2FybmluZyB0aG91Z2ggc2luY2Ugc3VwcG9ydCBpc24ndCB2YWxpZGF0ZWQsDQo+ID4gPiA+ ID4gPiA+ID4gc2ltaWxhciB0byB3aGF0IGFscmVhZHkgaGFwcGVucyBmb3Igb3RoZXIgdW5vZmZp Y2lhbGx5DQo+ID4gPiA+ID4gPiA+ID4gc3VwcG9ydGVkIFNGUHMgZW5hYmxlZCB2aWEgdGhlIGFs bG93X3Vuc3VwcG9ydGVkX3NmcHMNCj4gPiA+ID4gPiA+ID4gPiBwYXJhbWV0ZXIgaW5oZXJpdGVk IGZyb20gdGhlIG1haW5saW5lDQo+ID4gPiA+ID4gPiBMaW51eCBkcml2ZXIuDQo+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIERvdXRoaXQgPHN0 ZXBoZW5kQHNpbGljb20tdXNhLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBK ZWZmIERhbHkgPGplZmZkQHNpbGljb20tdXNhLmNvbT4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiBJIHRoaW5rIHdlIG5lZWQgYSBkZXZhcmdzIGZvciB0aGlzIGZlYXR1cmUgd2l0aCB3ZWxsDQo+ ID4gPiA+ID4gPiBkb2N1bWVudGF0aW9uIFNvLCBpdCBzaG91bGQgbm90IGJyZWFrIGV4aXN0aW5n IGJlaGF2aW9yIGJ5DQo+ID4gPiA+ID4gPiBkZWZhdWx0LCBidXQgYWxsb3cgcGVvcGxlIHRvIHRh a2UgcmlzayBpZiB0aGV5IGtub3cgd2hhdCB0aGV5DQo+ID4gPiA+ID4gPiBhcmUNCj4gPiBkb2lu Zy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiB0aGVyZSB3YXMgYWxyZWFkeSBh IHBhdGNoIHN1Ym1pdHRlZCB0byBJV0wgbWFpbGluZyBsaXN0IGZvciB0aGlzDQo+ID4gPiA+ID4g ZmVhdHVyZSBpbiB0aGUgYmFzZSBkcml2ZXIsIHdoaWNoIHdhcyByZWplY3RlZC4NCj4gPiA+ID4g PiBodHRwczovL3BhdGNod29yay5vemxhYnMub3JnL3Byb2plY3QvaW50ZWwtd2lyZWQtDQo+ID4g PiA+ID4gbGFuL3BhdGNoLzIwMjIwNDE0MjAxMzI5LjI3NzE0LTEtamVmZmRAc2lsaWNvbS11c2Eu Y29tLw0KPiA+ID4gPg0KPiA+ID4gPiBPSywgdGhhbmtzIGZvciBzaGFyaW5nIHRoaXMsDQo+ID4g PiA+DQo+ID4gPiA+IEJ1dCBiYXNlIG9uIHRoZSBjb25jZXJuIG9mIHRoZSBwcmV2aW91cyBjb21t ZW50DQo+ID4gPiA+DQo+ID4gPiA+ICIgQXMgZm9yIDFHIEN1IFNGUCB0cmVhdGluZyBpdCBhcyAx RyBTWCwgc29tZSAxRy1CYXNlLVQgU0ZQDQo+ID4gPiA+IG1vZHVsZXMgcmVxdWlyZSB0aGUgdXNl IG9mIFJYX0lMT1MgYW5kIHNvbWUgSW50ZWwgRXRoZXJuZXQNCj4gPiA+ID4gcHJvZHVjdHMgZG9u J3Qgc3VwcG9ydA0KPiA+ID4gdGhhdC4iDQo+ID4gPiA+DQo+ID4gPiA+IFdlIG1heSBoYXZlIGEg cmlzayB0byBhY2NlcHQgdGhlIGNvZGUgYXMgZGVmYXVsdCBiZWhhdmlvcg0KPiA+ID4gPg0KPiA+ ID4gPiBCdXQgZGV2YXJncyBpcyBhbGxvd2VkIGluIERQREsgZm9yIGRldmljZS1zcGVjaWZpYyBm ZWF0dXJlcy4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiBvaywgSSB3aWxsIHN1Ym1pdCBhIHJldmlz ZWQgcGF0Y2ggdGhhdCB1c2VzIGEgZGV2YXJncyAob3Igd2hhdGV2ZXIpDQo+ID4gPiBzd2l0Y2gg dG8gYWxsb3cgdGhlIGJlaGF2aW9yIHdoZW4gc2VsZWN0ZWQgZXhwbGljaXRseS4NCj4gPiA+DQo+ ID4gPiBCdXQsIGNhbiB3ZSAqcGxlYXNlKiBTVE9QIG1hcmtpbmcgcGF0Y2hlcyBhcyBzdXBlcnNl ZGVkIHdoZW4gYQ0KPiA+ID4gZm9sbG93LXVwIHBhdGNoDQo+ID4gPiBoYXNuJ3QgYmVlbiBzdWJt aXR0ZWQgeWV0IT8gICAgSSd2ZSBtYXJrZWQgdGhlIHBhdGNoIGFzICdDaGFuZ2VzDQo+ID4gUmVx dWVzdGVkJyBmb3INCj4gPiA+IG5vdy4NCj4gPg0KPiA+IFN1cmUsIEkgc2hvdWxkIGZvbGxvdywg dGhhbmtzIHRvIGNvcnJlY3QgaGlzLCBidXQgYSBsaXR0bGUgYml0DQo+ID4gc3VycHJpc2UsIHdo eSB0aGlzIGxvb2tzIGxpa2UgYSBiaWcgZGVhbCwgaXQganVzdCBhIHNob3J0Y3V0IHdoZW4gSQ0K PiA+IGV4cGVjdGVkIGEgbmV3IHZlcnNpb24gd2lsbCBjb21lIHRoZW4gSSBza2lwIG9uZSBzdGF0 dXMgY2hhbmdlLCBJDQo+ID4gdGhpbmsgbWFpbGluZyBsaXN0IGFscmVhZHkgaGF2ZSBldmVyeXRo aW5nIGFib3V0IHRoZSBwYXRjaCBzdGF0dXMgZm9yIHlvdS4NCj4gPg0KPiANCj4gTWF5YmUgSSdt IG5vdCB1bmRlcnN0YW5kaW5nIHRoZSB0ZXJtcyBiZWluZyB1c2VkIHRoZW4gaW4gdGhlIG1haWxp bmcgbGlzdA0KPiBzdGF0dXMuDQo+IElmIHlvdSBleHBlY3QgYSBuZXcgdmVyc2lvbiAodGhhdCBk b2Vzbid0IGV4aXN0IHlldCkgdGhlbiB3b3VsZG4ndCB0aGlzIGJlDQo+IG1vcmUNCj4gYXB0bHkg IkNoYW5nZXMgUmVxdWVzdGVkIiB2cy4gIlN1cGVyc2VkZWQiLiAgIFN1cGVyc2VkZWQgaW1wbGll cyB0aGVyZSdzIGENCj4gbmV3DQo+IHZlcnNpb24gdGhhdCBleGlzdHMgYW5kIHRoaXMgY3VycmVu dCBvbmUgbm8gbG9uZ2VyIGFwcGxpZXMuICBJZiBJIGp1c3QgY2FtZSBvbnRvDQo+IHRoZSBtYWls aW5nIGxpc3QgYW5kIHJlYWQgYSBwYXRjaCB0aGF0IHdhcyBtYXJrZWQgIlN1cGVyc2VkZWQiIGFu ZCBsb29rZWQNCj4gZm9yIHRoZSBuZXcgb25lIGFuZCBkaWRuJ3QgZmluZCBpdCwgSSdkIGJlIHZl cnkgY29uZnVzZWQuICBJZiBJIHJlYWQgYSBwYXRjaCB0aGF0DQo+IHdhcyBtYXJrZWQgIkNoYW5n ZXMgUmVxdWVzdGVkIiwgSSdkIGtub3cgdGhhdCB0aGlzIHdhcyB0aGUgbGFzdCBwYXRjaCBzZW50 DQo+IGJ5IHRoZSBkZXZlbG9wZXIgYW5kIHRoYXQgdGhlcmUgd291bGQgYmUgYSBmb2xsb3ctdXAg dG8gdGhpcyBvbmUgc29tZXRpbWUuDQoNCk9LLCBJIGp1c3QgdGhvdWdodCB3ZSBhbHJlYWR5IGdl dCBhICBhZ3JlZW1lbnQgaW4gdGhlIG1haWxpbmcgbGlzdCBmb3IgaW50cm9kdWNpbmcgYSBkZXZh cmdzICwgc28gSSBtb3ZlIGFoZWFkDQpCdXQgSSB1bmRlcnN0YW5kIHlvdXIgY29uY2VybiBub3cu DQoNCj4gDQo+ID4gPiBXaGVuIEkgc3VibWl0IGEgZm9sbG93LXVwIEkgd2lsbCBzZXQgdGhpcyBv bmUgdG8gc3VwZXJzZWRlZA0KPiA+DQo+ID4gQWN0dWFsbHkgeW91IGRpZCBOT1QgY2hhbmdlIHRo ZSBiZWxvdyBwYXRjaCB0byBzdXBlcnNlZGVkIGFmdGVyIHlvdQ0KPiA+IHNlbmQgYSBuZXcgdmVy c2lvbiAoSSBkaWQgdGhpcykgYW5kIHlvdSBkaWRuJ3QgcmVwbHkgbXkgbGFzdCBxdWVzdGlvbiB5 ZXQuDQo+ID4gaHR0cHM6Ly9wYXRjaHdvcmsuZHBkay5vcmcvcHJvamVjdC9kcGRrL2xpc3QvP3Nl cmllcz0yMzA0Ng0KPiA+DQo+ID4NCj4gDQo+IHdoeSBhbSBJIGNvbmZ1c2VkIGhlcmU/ICBUaGUg cGF0Y2ggeW91IGxpbmtlZCBhYm92ZSBpcyBub3QgcmVsYXRlZCB0byB0aGlzDQo+IHBhdGNoLg0K PiBUaGUgcGF0Y2ggc2VyaWVzIGxpbmtlZCBhYm92ZSBpcyBhbiB1cGRhdGUgdG8gdGhlIGhvdHBs dWcgcGF0Y2hlcyB0aGF0IHdlcmUNCj4gcmVxdWVzdGVkIHByaW9yLiAgKEkgc2NyZXdlZCB1cCB0 aGUgaW5pdGlhbCBuZXcgc2VyaWVzIHN1Ym1pc3Npb24gSSBhZG1pdCwgYW5kDQo+IG1hcmtlZCB0 aG9zZSBhcyBzdXBlcnNlZGVkKS4NCj4gDQo+ICpUaGlzKiBwYXRjaCBob3dldmVyIEkndmUgbm90 IHN1Ym1pdHRlZCBhIG5ldyB1cGRhdGUgZm9yIHlldC4NCj4gDQo+IEFuZCBJIGRvbid0IHNlZSB3 aGVyZSB5b3UgYXNrZWQgYSBxdWVzdGlvbiA/DQoNClNvcnJ5LCBJIHB1dCB0aGUgd3JvbmcgbGlu aywgaXQgc2hvdWxkIGJlIGJlbG93IHBhdGNoIA0KaHR0cDovL3BhdGNoZXMuZHBkay5vcmcvcHJv amVjdC9kcGRrL3BhdGNoLzIwMjIwNDEyMTc0MjIwLjMxMTk1LTMtamVmZmRAc2lsaWNvbS11c2Eu Y29tLw0KDQpXaGVuIHlvdSBzdWJtaXQgdGhlIG5ldyB2ZXJzaW9uLCB5b3UgZGlkbid0IHN1cGVy c2VkZSB0aGlzLCB0aGlzIGdpdmUgbWUgY29uZnVzaW9uIHNvbWVob3csIHNvIEkgZ3Vlc3Mgd2Ug YXJlIGV2ZW4gbm938J+Yig0KDQpidHcsIEkgc2F3IHlvdSBoYXZlIHJlcGxpZWQgdGhlIGFuc3dl ciwgc28gd2UgYXJlIGFsaWduZWQgb24gdGhhdCB0aHJlYWQgYWxzbw0KDQo+IA0KPiA+ID4NCj4g PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhhbmtzDQo+ID4gPiA+ID4gPiBRaQ0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ ID4gIGRyaXZlcnMvbmV0L2l4Z2JlL2Jhc2UvaXhnYmVfeDU1MC5jIHwgMTQgKysrKysrKysrKysr Ky0NCj4gPiA+ID4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9peGdiZS9iYXNlL2l4Z2JlX3g1NTAuYw0KPiA+ID4gPiA+ID4gPiA+IGIv ZHJpdmVycy9uZXQvaXhnYmUvYmFzZS9peGdiZV94NTUwLmMNCj4gPiA+ID4gPiA+ID4gPiBpbmRl eCA4ODEwZDE2NThlLi44ZDFiYzZjODBkIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+IC0tLSBhL2Ry aXZlcnMvbmV0L2l4Z2JlL2Jhc2UvaXhnYmVfeDU1MC5jDQo+ID4gPiA+ID4gPiA+ID4gKysrIGIv ZHJpdmVycy9uZXQvaXhnYmUvYmFzZS9peGdiZV94NTUwLmMNCj4gPiA+ID4gPiA+ID4gPiBAQCAt MTUzOCw5ICsxNTM4LDIxIEBAIFNUQVRJQyBzMzINCj4gPiA+ID4gPiA+ID4gaXhnYmVfc3VwcG9y dGVkX3NmcF9tb2R1bGVzX1g1NTBlbShzdHJ1Y3QgaXhnYmVfaHcgKmh3LA0KPiBib29sDQo+ID4g PiA+ID4gPiA+ICpsaW5lYXIpDQo+ID4gPiA+ID4gPiA+ID4gICAgIGNhc2UgaXhnYmVfc2ZwX3R5 cGVfMWdfbGhhX2NvcmUxOg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICpsaW5lYXIgPSBm YWxzZTsNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4g PiAtICAgY2FzZSBpeGdiZV9zZnBfdHlwZV91bmtub3duOg0KPiA+ID4gPiA+ID4gPiA+ICsgICAv KiBDb3BwZXIgU0ZQcyBhcmUgbm90IG9mZmljaWFsbHkgc3VwcG9ydGVkIGZvciB4NTUwZW0NCj4g PiA+ID4gPiA+ID4gPiArIGRldmljZXMsIGJ1dA0KPiA+ID4gPiA+ID4gY2FuDQo+ID4gPiA+ID4g PiA+ID4gKyAgICAqIG9mdGVuIGJlIG1hZGUgdG8gd29yayBhdCBmaXhlZCAxRyBzcGVlZHMuICBQ cmV0ZW5kDQo+ID4gPiA+ID4gPiA+ID4gKyB0aGV5J3JlDQo+ID4gPiA+IDFnX3N4DQo+ID4gPiA+ ID4gPiA+ID4gKyAgICAqIG1vZHVsZXMgaGVyZSB0byBhbGxvdyBnLkZhc3QgRFNMIFNGUHMgdG8g d29yay4NCj4gPiA+ID4gPiA+ID4gPiArICAgICovDQo+ID4gPiA+ID4gPiA+ID4gICAgIGNhc2Ug aXhnYmVfc2ZwX3R5cGVfMWdfY3VfY29yZTA6DQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAg RVdBUk4oaHcsICJQcmV0ZW5kaW5nIHRoYXQgdW5zdXBwb3J0ZWQgMWdfY3UNCj4gPiA+ID4gPiA+ ID4gPiArIFNGUCBpcw0KPiA+ID4gPiA+ID4gPiAxZ19zeFxuIik7DQo+ID4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgKmxpbmVhciA9IGZhbHNlOw0KPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg IGh3LT5waHkuc2ZwX3R5cGUgPSBpeGdiZV9zZnBfdHlwZV8xZ19zeF9jb3JlMDsNCj4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4gPiAgICAgY2FzZSBpeGdi ZV9zZnBfdHlwZV8xZ19jdV9jb3JlMToNCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICBFV0FS TihodywgIlByZXRlbmRpbmcgdGhhdCB1bnN1cHBvcnRlZCAxZ19jdQ0KPiA+ID4gPiA+ID4gPiA+ ICsgU0ZQIGlzDQo+ID4gPiA+ID4gPiA+IDFnX3N4XG4iKTsNCj4gPiA+ID4gPiA+ID4gPiArICAg ICAgICAgICAqbGluZWFyID0gZmFsc2U7DQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgaHct PnBoeS5zZnBfdHlwZSA9IGl4Z2JlX3NmcF90eXBlXzFnX3N4X2NvcmUxOw0KPiA+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gPiA+ICsgICBjYXNlIGl4Z2JlX3Nm cF90eXBlX3Vua25vd246DQo+ID4gPiA+ID4gPiA+ID4gICAgIGRlZmF1bHQ6DQo+ID4gPiA+ID4g PiA+ID4gICAgICAgICAgICAgcmV0dXJuIElYR0JFX0VSUl9TRlBfTk9UX1NVUFBPUlRFRDsNCj4g PiA+ID4gPiA+ID4gPiAgICAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KDQo=