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 C2AD546538 for ; Wed, 9 Apr 2025 00:34:03 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 52BAB40267; Wed, 9 Apr 2025 00:34:03 +0200 (CEST) Received: from mx0a-00196b01.pphosted.com (mx0b-00196b01.pphosted.com [67.231.157.166]) by mails.dpdk.org (Postfix) with ESMTP id CFCF240265 for ; Wed, 9 Apr 2025 00:34:01 +0200 (CEST) Received: from pps.filterd (m0096262.ppops.net [127.0.0.1]) by mx0b-00196b01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 538KSM7b014620; Tue, 8 Apr 2025 18:34:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netscout.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= netscout.com.09.24.2020; bh=XXiZvCUvmEOdoFZMbz2lLyD5QhiCDVS2uSmm 19vEOCg=; b=G8ghQyzMWShOXqlgZpX0JHHMN2htexyNRKUZyLLhgqxIjxcwcFhE gictsWaV/XRHhFBPZOp0NmeyG9SSEKFToyNF241jwbXIcV9hGQJbFDDoGYuaeTQf wdtgQGP99EcKBxIJxIMyAISUTJGnrhBvFXw7AuR77gHI1trj7WvXtCoSlGl6H6ZI e7XkBG/FHBQmeE6zfqGMHXubAPAk20e4fEV5eVAKCuK0/ucSLtoU2t8NR4c0dEeo CpMsMu0NF4VZ2LUB8XusqinryEJQvtQlUL9nBpEAQzQpNBL79tPy6aokkj4TGHqT BJOyMsYSm4zDYXR0eEN68aWaw7451QqOvw== Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2042.outbound.protection.outlook.com [104.47.74.42]) by mx0b-00196b01.pphosted.com (PPS) with ESMTPS id 45u171by9q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 08 Apr 2025 18:34:00 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pDmTnk/t3XWdE8r0uMGHavfQkxOPSYcrD+tUpeHlQxraQ8WBjVYqiBCH/9e6DY3wTyX83Qk5YjLhXmoXwRYF/ufPqn+LgQp80oxE2HB8SVCxE3nOST9nVLwVgjxWv6rgibTIQLxIgpzf2PnxGJNA3FphfEp4cx9OqgDWzt8h28v71KlvE6FA6CNpgCx9AnxRi9Vf//vUO7CEO9IG/FzQU4FdidfSDOXuM/ZxzWye2lZfKTsyuy1wSoEjBJI44kc4ys/QHz9/IqB0aBwWvtunRI53kMu6ZXeVljSdFGWoZ2qVdyPYub6YLA03QzGJULeIprYca0udTWOYxeGNuoRQRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=XXiZvCUvmEOdoFZMbz2lLyD5QhiCDVS2uSmm19vEOCg=; b=O3CFT/8EqTrt3dKjT8BmW/0ukTYyM/mx4sHIkwQwgS95zphiWmKA7ekW14JcKIeJOxiY75fsuMOlo4FCpAZ5hgmFOmOX5WB48AefPl+1E6PGLjwcgikvGwxzfd4o0xj3bJb4pBfN648Gt9HqjdPYj7uCudj0ui2JtdqyV1R/WcnZrgEI928RnadMmCFO188cYWhJL/2Fo6dd/akoe1guiERlLVN1v2Hxkf5sJAmDiRa4bLZuJCLRrS45TN/P6LcBY6AuANM62fT4SU9+ablfklTXEzz86Xd7Xi07Z5Mrg+R7GjCGHyDSS6HDKUqIu4jaUQCwgOVUjZTa3Vzh26SYCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=netscout.com; dmarc=pass action=none header.from=netscout.com; dkim=pass header.d=netscout.com; arc=none Received: from CH3PR01MB8470.prod.exchangelabs.com (2603:10b6:610:1a4::21) by SA1PR01MB6752.prod.exchangelabs.com (2603:10b6:806:1a3::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Tue, 8 Apr 2025 22:33:57 +0000 Received: from CH3PR01MB8470.prod.exchangelabs.com ([fe80::80c4:7216:f070:e5fd]) by CH3PR01MB8470.prod.exchangelabs.com ([fe80::80c4:7216:f070:e5fd%5]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025 22:33:56 +0000 From: "Lombardo, Ed" To: Dmitry Kozlyuk , "users@dpdk.org" Subject: RE: mbuf refcnt issue Thread-Topic: mbuf refcnt issue Thread-Index: AdulnN5IfTxeCHcXQsa3xaXr7ECZhQAFBrWAAGffZNAAOS6kYA== Date: Tue, 8 Apr 2025 22:33:56 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR01MB8470:EE_|SA1PR01MB6752:EE_ x-ms-office365-filtering-correlation-id: aedaf12c-39e3-49d2-d185-08dd76ed72e7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?QWlJTTJFNnQvL2xtWEN5aGJaL1lmVU5OMk5mZ0pOWWVYa0hFTk1LVmk0dHRk?= =?utf-8?B?TTZnTVJyaDh4Z0Y3eURJWXp6OVJmVDFremxlTjZUVWRrb1RiVUVHK3U4bThq?= =?utf-8?B?ODBDbDJHOGMrSWRvOHN3RExscnlMQ1hBOGdHR2VrS1ExUyt4MHU2b21YZDFZ?= =?utf-8?B?OGNMZFlyaGVKckdhL3NuY2RWTlhCd3phOWZQSmJ4RVJtK0xLRHc2MXJZOUUy?= =?utf-8?B?QmJaa2VHQWxpYmxWMHVJZWl4cTlsR25jK0I1cG9XQWYvVGZUSm55dHNweDdh?= =?utf-8?B?RkpPQlBjVTBMWGVienRsaEpoLzAvL1Rsa1BxZVRKbm5iaUxjNkd0SFl2QUV5?= =?utf-8?B?WW9nY0pzME1QZ1lMOXZsN1RvYUI5VG1iS0hSeWtldTFnRnZ6ZWlOLzJPb3lq?= =?utf-8?B?b2UvN2JCUEMweUZ4Z0ZJeHRULzdNMUVRbmRQamZrL1YwL01OK21mUWd6U1hO?= =?utf-8?B?eTY2SmwrU2U2bkNvSmljQjBFNlVSMDNyNWFMclRjNlgvM1lNS3k5MmxnekJw?= =?utf-8?B?YitJMzhMeE1tdGIxeVdPVTFHcUx3VmUybXgxenl1eFMrVWVZY016azZqM1Bz?= =?utf-8?B?M2o5MFREUmZlaTVOR2RhWWlyZG9JbTRla2ZxQTdSNElTUnBRVys5cjBOK1ps?= =?utf-8?B?ZTdIM0JjMDhDU0NHcWUwZllQd1BYSVpXVllJYUhsQVhSQ0Uvbng5bEk2bmRG?= =?utf-8?B?cEdwdEJCNVRsbHVVc0NQd2lYYlVGUmVNcVZCZEpDa2I0enlNZzZzbndLQ0R3?= =?utf-8?B?MzRQTlhhT0tKQUY4dVlmRTBicStJaWdWeTVJTzU0bkJjUVc5Vlc1aVJWbDNU?= =?utf-8?B?K2dYbExEQUxKVTRKRXVlVmN0dk8xQTFiUnk1cTZIS0p6OFZDQ3lveCtZZEVK?= =?utf-8?B?RVgzaVBNaXpITkdYWGd0eS9uWEhKRHFhSmc1QVZOdXFySGNBd1NpYjFHdTlI?= =?utf-8?B?WE1uSnoxSmFGL2tQSnlEMzgxL3FNZFJQVW9lTnJMSDd0SUJKRGpOZHNpSUVj?= =?utf-8?B?K1Q3SGFCUDVFdjJTSk9qQnIxQk1KamllWW1tUzVkcEZJY1RTOWNhU3Q5WEZI?= =?utf-8?B?TGhPUGNCbEVGVk96RVBhQWRidlEwdTJmRExtMlprckh6K1lPblNJOHNsQkE1?= =?utf-8?B?NHhEd0l4SkxUd21Vd0JiZkRyenJ1Qk9tKzRJTFlNSHBoT04zbXp0MkRpdEZr?= =?utf-8?B?eGx3dWRWWGMwYUhTRVpBaFJDZGRpQmJ1SnAzYVRKY21oU3JZRDUxNjFTbldW?= =?utf-8?B?OGRINUVhRExLUTNYaUQxKy9lbmZxWEc0UUVQUXdpY0w3QU9Hczh3czFWb2Jj?= =?utf-8?B?b3N2bUQ4T25HdDl3OWNpdCtOUzU3bXFNTUlaV005U0t5UWxvWXZXa3FTanl6?= =?utf-8?B?cUxRU0RCQ0gxdFdibUFJWElIaDBrOFNLcnNCZWxwRXJoOUxGekRHQ2NhcFZX?= =?utf-8?B?NnVhQ2llaXlWbXlweUNlbVVFbWlCTmR2T1NnQ0ZJS1hBL0JkM0N4THhjS0tX?= =?utf-8?B?WW12TkoxVS8zdG00WlhuT1dhUGJlc0I5VFNrcC9SVWlpRUFUNklhczVrQ2xl?= =?utf-8?B?Vm5hSG16RnNqWERwQ0xMbkt2d0pOamF5Z0tURmtBUHYrL1loZEIvTW11Y3lj?= =?utf-8?B?MC9PNCtBOXg4QW1Yenp4Y3dVMnVSckdGM1JhZGdrbzRVNHhzMEt2QldNUXVl?= =?utf-8?B?UXQvbk1uZUgzQWtVZTNyZ2Y1emJTOC9RYjExTCtzNjBOZ1dRZFNJaGRuQzN6?= =?utf-8?B?eno5R1hNUmFBdzBEd3grZE43SDdWMmxQbmZic044Zy91UFRnZmFiVENFaUFv?= =?utf-8?B?b0JMMWtSbjNCUzVacFFXU0lsa3JwcFBYSWwraEp6OW51WDdTVkZTd2Z2bHlF?= =?utf-8?B?ZHExZkxqelZMb0pleGE3d3lPSzBKOWY2bXJmalMvT3F1L2s1ZW40SE84OUgw?= =?utf-8?Q?D5RWNcMHju+PODSbPj3gQbUxWumOeRuk?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR01MB8470.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TnFrNVgxSjNjTGtqY2NOU3lKaE5SemtYQ0lwTWlCMmVjcmpYMWN0SitpU25E?= =?utf-8?B?NklUa2VxeUpKZmpMODg3RzNBUlF4bFF6b0orQ0hrTXVPMmxaQ0tWV3R1bEhS?= =?utf-8?B?a09ldzRHMXJXUldKVWl2Wlk3OEJZLzNneEQyY0ExTmFkRDJuTzFGa2VVU2kx?= =?utf-8?B?Q21tTkp1Z05VWFhBM2hqQ1VWYVU1SjU4OUo1QXMrYXRlUkpBTFBRVUF1eDZU?= =?utf-8?B?TUNhNUU5d3BIMTNNZEVjaXk4Q0wyNWF4RVF3bXFBT2IyN0xzc0IvbmlabmVu?= =?utf-8?B?dW9MT3JKUmdsb2h5RGxQbXlKY2Z1bXVWYjlaMVFpTm9sTlNoc2tnYXhtR0x0?= =?utf-8?B?Y3dzcGZJRVNxdHdGMTlSeE94dnNBMGR4NlVBQlNKcW9DSTExVzFLcmlIMkFa?= =?utf-8?B?NUpCUSthUVFoNW1uaytrdHcrU1Via05HMUw5M1dqQ3REWCtscTgveFFwRTkx?= =?utf-8?B?RmpjaERWK2R6emhoZ21wN1dJcjNtQitZWDZDNUVMKzgxYnVDWDNFNmRtajli?= =?utf-8?B?WkgxR1ZTc0dUcUJkM1RHYXhtUFZEZWR4cFk5VUE4ZW53aUEzWWxpQkR1TzZU?= =?utf-8?B?T01ud0dYWnhjcU54a2pnSW0vWndheDFsOCsvY0RuMlhQZllSYWtVZ2IrL1Zl?= =?utf-8?B?OGxCWUpKR0FRbEV4L0ZRbVU4QXgwdjNZd2doOUV3enFtbzBSRjVnZC9oNkJ2?= =?utf-8?B?U3hXNGVVbnVMeWgxUWs4OHFtQmtBNjJ2WGptUFpSVUNRek9iYlNMRFBybEc2?= =?utf-8?B?cVNhRFJURzg3dmVYVkQ2b0FlUlBZcjFPQ1huVy9NamZyalFkTS96aHpNMUJ1?= =?utf-8?B?VUtCY2NsSWlINUhYUjI5NUc3TTZ1c3F6ODExUDZsNWEzSjI4eHVOMjMrUFgw?= =?utf-8?B?bVdXcEthQ1FucTQ2M3d3V1dQYk9jM1psNjRXcGFpa0pBS1N4eW9tM3BBWXBU?= =?utf-8?B?cm9xdzBybGI3RDh5ZWt6eTBYZmFkN3JOU3FlbFRuTjBITE40THR3Q2xQQUN1?= =?utf-8?B?UWJObmRXUnMzelN4L29tQ3JCNjNoUUtzTDYyUUdMekN3U2x5NVZtdVp6SE5I?= =?utf-8?B?T1p2Z0JzS2IyTjV6dTd2V1BTYmJCTExVdyt1bWJCNWs5RXNXRitsV1Z5Q3lB?= =?utf-8?B?Q2xWYUtFV0hPTzNvdnQ5dHJUL1JvN0NKcDN5RnR5QWpZZGJwcVpGTUpVTnRt?= =?utf-8?B?UlRwT3lUUnkvSkoyYVZ6azN6VHFaS1pZYlZOTDN1Zmorb01VV0g2V3JRazZV?= =?utf-8?B?aFVBWjd3d0g4N0gyVmhFOXJlWHhpZENZTWRDSW1NQy8zWDZOQldrS0xUMXJX?= =?utf-8?B?bGlPbXpmd0JZRHNlTm04Rk11UzBpSVNTT2VWS09YU29TdkNZWk5SdTZFYnRV?= =?utf-8?B?RUdqLzN2QU9RTFZIQUpoZEx2c0M4RWg0OFdRb1hNQ3RNQzJaUWZRZ004dnNt?= =?utf-8?B?LzhScjJsamJJZS9TbThkK0tyVCtMYjVoUm9UUTI5WG9DZ0Q1VzFJL2ZqQ2RM?= =?utf-8?B?VFBCdUpkNHU1cElyb0VFS2k5TmtSZldGZWJlbjZFZXZJaW0vSHoraGNaUWhE?= =?utf-8?B?djhFdEZrUlA2ajBrMmJYS284NFhwTWZmOHExMExQWWN6WmVwbkZuV2g4aFUw?= =?utf-8?B?OXJ2SHNZMzNuRHIxTXBBTXR5L2lNS01Nam9kZ1FQa211eXpZdFpXNm1YNUJY?= =?utf-8?B?L1NBMkoxQmROZWtDdGhKQWloYW5Wa3pMVGhVWmNxWFQ2Mmo2cml0allZL1lP?= =?utf-8?B?Q3dSOUx4WmR4UkQwK1lDS1JUa0VFV3Q2UjhONnJtclo2aDZ0NzhmRDFqZXFs?= =?utf-8?B?SGh2RFhYYlVqK2Mzd1FoMUZMRDhvMUdvdndoNWtjb2U0aTVsRkxaOEo0NHVP?= =?utf-8?B?dUY2bDY5UER4cWJ4K1RXNnN0Zjcxamh4U1VyZG1xZXREc1F2T0ZOZGJCUS8r?= =?utf-8?B?WHBnUklmUjE1MTcwTTFpekxqbnNxTmpjZXQ1cmZhYUo5eUlWOHRiTTErM1h3?= =?utf-8?B?MlBJSjUvbnlSYjVqdU9IVG5CcHBRU3VVbVdxUG8yQ3lWMU5idis4MW1kbnpG?= =?utf-8?B?cFUwME9rNUtXVGRLUEdyRlo2Uy9ld3lvSnpDRFRpRFdTV0Z3b2t5MlFTTlpi?= =?utf-8?Q?HE1Ul0AaihQCnMMw4DCUMINyI?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6RCf8yyxdB7fAPpw/Gfu486F2dCb3vqZIK8oJStDd6EZ9XjkyX0MTjI6wmTnuWeGSuLgW5FM2H/74OSw5tIB25aBEIoD001RhODPmRdiUdFllrj6uzVLDFtT/hFYpddEgt+zFLFC6Ncq0EXD/0+9fJVTDLAW+m1bP6xRS5I82INkFv6kjiM4epUka8aYNppS4UAup+DGxi/6Ru3xVc85fr8ueC+hlcd+Jiwnjpb2mHJYfdBKzR4OYnFeEKgLsKe2X2Fhwg029jDq28I+l4SZHpGI/7OEY6Jrqj/QisWqFqQPtnjrPptAxnoEYu5Z/AS1PBK6KQPIto2H2W+/V/p9COi7KILW5WVAYJhU93jKdK+xluiRygf6+s5zEh3TIEFKBOHjsLOA30/R+eB1zqJFFGSNYQs1W/mlVXBl1XNv+SPcAjFdTjqrjjmgJcdN8fBz1Y9m5FL4/J8Udi9DuwHWJiATxcLbluAvRbPqx256LvnOz4Y6sPNBZCaExUU6NT3zf/XROo8mHq0bBxBtRFgMc9B4PoSq+ZTEr/l22h2SzngeBoh3oaGMjA8Bg57yAPbnGWugqqNLwGalPEexLAPsR7qL23oJgoa4TITTlAXa6dfMQDTPGwWQptSXSNJEkEIQ X-OriginatorOrg: netscout.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR01MB8470.prod.exchangelabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: aedaf12c-39e3-49d2-d185-08dd76ed72e7 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2025 22:33:56.3454 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 54f11205-d4aa-4809-bd36-0b542199c5b2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3gbzTExqddEJC8Ufur4VShBcNGve5pRulSCdDjclxpJjutgL8sg/YWEnq29+RRUzRKk5ra0aLyTmYnlwl+Z/vQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR01MB6752 X-Proofpoint-GUID: xl_l17-EiUX2T-nhd1rs-uZX-pIzmKv9 X-Authority-Analysis: v=2.4 cv=KfrSsRYD c=1 sm=1 tr=0 ts=67f5a458 cx=c_pps a=CZyBIZNk7+VlD+/eRBofeA==:117 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=XR8D0OoHHMoA:10 a=pGLkceISAAAA:8 a=8rWy6zfcAAAA:8 a=jQOgFn-ZAAAA:8 a=SPQjoa2gOVli3jt6_X4A:9 a=QEXdDO2ut3YA:10 a=YjdVzJdQTyZRADMV7wFX:22 a=mT82qxFQzDvLIExZS32s:22 cc=ntf X-Proofpoint-ORIG-GUID: xl_l17-EiUX2T-nhd1rs-uZX-pIzmKv9 X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 priorityscore=1501 adultscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 clxscore=1015 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc=notification route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502280000 definitions=main-2504080156 X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org SGkgRG1pdHJ5LA0KSSBhZGRlZCBtYnVmIHJlZmNudCBjaGVjayBhdCB0aGUgcG9pbnQgd2hlcmUg d2UgZ2V0IHRoZSBwYWNrZXRzIGZyb20gRFBESyBydGVfZXRoX3J4X2J1cnN0KCkgYW5kIEkgYW0g ZmluZGluZyBtYW55IG1idWZzIHJlZmNudCBzZXQgdG8gMiB3aGVuIEkgZXhwZWN0IHRoZW0gdG8g YmUgMS4gIFRoaXMgaXMgbW9yZSBldmlkZW5jZSB0aGF0IHNvbWV0aGluZyBoYXMgZ29uZSB3cm9u ZyB3aXRoaW4gRFBESyBhbmQgdGhlIG1lbXBvb2wgbWFuYWdlbWVudCwgcGVyaGFwcywgYW5kIEkg ZG9uJ3Qga25vdyBob3cgbXkgc2V0dXAgd2VudCBpbnRvIHRoaXMgc3RhdGUuICBJIGNoYW5nZWQg dGhlIHRyYWZmaWMgdHlwZSBmcm9tIFRlbG5ldCB0byBFbnRlcnByaXNlIHRyYWZmaWMgYW5kIHJ0 ZV9ldGhfdHhfYnVyc3QoKSBubyBsb25nZXIgYWNjZXB0cyBtYnVmcy4gDQoNCkhvd2V2ZXIsIHRo ZSBtZW1idWYgcG9vbCBpcyBub3QgZGVwbGV0ZWQgYWZ0ZXIgSSBoaXQgdGhlIHBvaW50IHRoZSBU eCBzdG9wcy4NCg0KKioqIERQREsgTUVNT1JZIFNUQVRTICoqDQpSZXNlcnZlZCBtYnVmcyAgICAg IDogICAgICAgICAgICAgICA3ODY0MzINCkF2YWlsYWJsZSBtYnVmcyAgICAgOiAgICAgICAgICAg ICAgIDc4NjQzMg0KQWxsb2NhdGVkIG1idWZzICAgICA6ICAgICAgICAgICAgICAgICAgICAwDQpJ cyBNZW1wb29sIEZ1bGwgICAgIDogICAgICAgICAgICAgICAgICAgIDENCklzIE1lbXBvb2wgRW1w dHkgICAgOiAgICAgICAgICAgICAgICAwDQoNClRoZSByZWNlaXZpbmcgb2YgbWJ1ZnMgZnJvbSBy dGVfZXRoX3J4X2J1cnN0KCkgdGhhdCBoYXZlIHJlZmNudCA9PSAyIGlzIGxlYWRpbmcgbWUgdG8g YmVsaWV2ZSB0aGF0IG91ciBhcHBsaWNhdGlvbiBwaXBlbGluZSBzdGFnZSBzZXRzIHRoZSByZWZj bnQgdG8gMiBidXQgd2hlbiB0aGUgVHggdGhyZWFkIGlzIGJsb2NrZWQsIHRoZSBtZW1wb29sIHN0 aWxsIGFsbG93cyB0aGUgcnRlX2V0aF9yeF9idXJzdCgpIHRvIHJldXNlIHRoZXNlIG1idWZzIGFu ZCBkb2VzIG5vdCB0b3VjaCB0aGUgbWJ1ZiByZWZjbnQ/ICBPciBkb2VzIGFueSBtYnVmcyBwcm92 aWRlZCBieSBydGVfZXRoX3J4X2J1cnN0KCkgZ3VhcmFudGVlIHRoZSBtYnVmIHJlZmNudCB3aWxs IGJlIGluaXRpYWxpemVkIHRvIDE/DQoNCkkgYWxzbyB0cmllZCBEUERLIDIzLjExLjIgYW5kIHNl ZSBzYW1lIGlzc3VlLg0KDQpUaGlzIG1vcm5pbmcsIEkgZm91bmQgdGhhdCBvbmNlIHRoZSBUeCBv cGVyYXRpb24gc3RvcHMsIEkgY2FuIHNldCB0aGUgYnJlYWtwb2ludCBqdXN0IGJlZm9yZSBydGVf ZXRoX3R4X2J1cnN0KCkgYW5kIGNoYW5nZSB0aGUgdHhfcXVldWVfaWQgdG8gZGlmZmVyZW50IHZh bHVlIHRoZW4gdGhlIHR4IG9mIHBhY2tldHMgcGlja3VwIGFnYWluIGFuZCB0aGVuIHN0b3BzIHNo b3J0bHkuICBPbmNlIHRoZSBUeCBzdG9wcyBvbiBhIHR4X3F1ZXVlX2lkIHRoZW4gdHggcGFja2V0 cyBmYWlsIGFuZCBuZXZlciBjbGVhcnMgdXAgYWdhaW4uDQoNCkFueSB0aG91Z2h0cyB0byBteSBp c3N1ZT8NCg0KVGhhbmtzLA0KRWQNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206 IExvbWJhcmRvLCBFZCANClNlbnQ6IE1vbmRheSwgQXByaWwgNywgMjAyNSAzOjU0IFBNDQpUbzog RG1pdHJ5IEtvemx5dWsgPGRtaXRyeS5rb3psaXVrQGdtYWlsLmNvbT47IHVzZXJzQGRwZGsub3Jn DQpTdWJqZWN0OiBSRTogbWJ1ZiByZWZjbnQgaXNzdWUNCg0KSGkgRG1pdHJ5LA0KSSBzZWUgaXNz dWVzIHdoZXJlIHNwb3R0eSBtYnVmcyBzaG93IGluY29ycmVjdCByZWZjbnQsIGkuZS4gc2hvdWxk IGJlIDEgYnV0IEkgc2VlIDIgb3IgMywgb3Igc2hvdWxkIGJlIDIgYnV0IEkgc2VlIDMuICBMaWtl IHRoZSBtYnVmIGlzIHJldHVybmVkIHRvIG1lbXBvb2wgYW5kIHJldXNlZCBieSBEUERLIHJlY2Vp dmUgKGFuZCBhcHBlYXJzIHRoYXQgbWJ1ZiByZWZjbnQgaXMgbm90IGluaXRpYWxpemVkIHRvIDEs IGFzIEkgd291bGQgZXhwZWN0KS4gIEkgdHJpZWQgdG8gcGF5IGF0dGVudGlvbiBpbiB0aGUgc29m dHdhcmUgdG8gZWxpbWluYXRlIGFueSBhc3luY2hyb25vdXMgZXZlbnRzIGJ5IG11bHRpcGxlIHRo cmVhZHMgdGhhdCBwZXJmb3JtIGVpdGhlciBydGVfbWJ1Zl9yZWZjbnRfdXBkYXRlKCkgYW5kIHJ0 ZV9wa3RtYnVmX2ZyZWUoKSB0aGF0IGNvdWxkIGNhdXNlIGEgd2VpcmQgYmVoYXZpb3IuICBNZWFu aW5nLCBvbiByZWNlaXZlIG9mIHBhY2tldHMgdGhlIGFwcGxpY2F0aW9uIGZpcnN0IGNhbGxzIHRv IHJlcXVlc3QgcGFja2V0cyBpcyB3aGVyZSBJIGluY3JlbWVudCB0aGUgbWJ1ZiByZWZjbnQsIHRo ZW4gSSByZXR1cm4gdGhlIGxpc3Qgb2YgcGFja2V0cyB0byB0aGUgYXBwbGljYXRpb24gd2hpY2gg d2lsbCB0aGVuIHByb2Nlc3MgdGhlIHBhY2tldHMgYW5kIGRldGVybWluZSB3aGljaCBvbmVzIHRv IGRyb3AgKHNob3VsZCBiZSB2ZXJ5IGZldyBkcm9wcykuICBJbiBteSB0ZXN0aW5nLCBJIGFtIHRy YW5zbWl0dGluZyBhbGwgdGhlIHBhY2tldHMgcmVjZWl2ZWQgc28gaXMgbXVjaCBzaW1wbGlmaWVk LiAgRnJvbSB0aGlzIHBvaW50IG9uIHRoZXJlIGFyZSBtdWx0aXBsZSB0aHJlYWRzIHRvdWNoaW5n IHRoZSBtYnVmIHJlZmNudCAoZWl0aGVyIERQREsgcnRlX2V0aF90eF9idXJzdCgpb3IgcnRlX3Br dG1idWZfZnJlZSgpKS4NCg0KSSBhbSB0ZXN0aW5nIGFnYWluc3QgRFBESyAyNC4xMS4xIGFzIGdl bmVyaWMgcGxhdGZvcm0gYnVpbGQuDQoNClRoZSBQaXBlbGluZSB3aXRoIG1hbnkgdGhyZWFkcyBh cmUgZXhwbGFpbmVkIHNvbWV3aGF0IGJlbG93Lg0KMS4gUnggdGhyZWFkOiAodHdvIHRocmVhZHMg MSwyKQ0KICAgIEZyZWUgbWJ1ZnMgcHJvY2Vzc2VkIGJ5IGFwcGxpY2F0aW9uIGluIEFjayByaW5n Lg0KICAgIFJlY2VpdmUgbWJ1ZnMgZnJvbSBOSUMgdmlhIHJ0ZV9yaW5nX2RlcXVldWVfYnVyc3Qo KQ0KICAgIFB1dCBtYnVmcyBpbnRvIFdvcmtlciByaW5nLg0KDQoyLiBBcHAgcmVxdWVzdCBmb3Ig cGFja2V0czogKHR3byB0aHJlYWRzLCAzLCA0KQ0KICAgIFByb2Nlc3MgcGFja2V0cyBmcm9tIHdv cmtlciByaW5nLCBhbmQgbWFyayB0aGUgcGFja2V0cyB0byB0eCAodmlhIGludGVybmFsIGFycmF5 IG9mIHBrdCBpbmZvKQ0KICAgIEluY3JlbWVudCBtYnVmIHJlZmNudCBieSAxIChhc3N1bWUgd2ls bCB0cmFuc21pdCBhbGwgcGFja2V0cykNCiAgICBBZGQgbWJ1ZnMgdG8gQWNrIHJpbmcgZm9yIGZy ZWVpbmcgbGF0ZXIuDQogICAgQXQgdGhpcyBwb2ludCwgbm8gb3RoZXIgdGhyZWFkIHNob3VsZCB0 b3VjaCB0aGVzZSBtYnVmcy4NCg0KMy4gQXBwIHByb2Nlc3MgcGFja2V0cyBhbmQgdXBkYXRlIGlu dGVybmFsIGFycmF5IG9mIHBrdCBpbmZvLiAodHdvIG9yIG1vcmUgdGhyZWFkcywgeCkNCiAgICAg KGhlcmUgSSBzaW11bGF0ZSB0aGF0IHRoZSBBcHAgaXMgcHJvY2Vzc2luZyBwYWNrZXRzLCBJIG1h cmsgdGhlbSBhbGwgZm9yIHR4LikNCg0KNC4gQXBwIGNhbGxzIHRvIHJlcXVlc3QgdG8gc2VuZCBi dXJzdCBvZiBwYWNrZXRzOiAoMiB0aHJlYWRzLCB4KzIpDQogICAgUHJvY2VzcyBwYWNrZXRzIG1h cmtlZCBmb3IgdHJhbnNtaXQgYW5kIHB1dCBpbiBydGVfbWJ1ZiBwb2ludGVyIGFycmF5cy4NCiAg ICBUaG9zZSBwYWNrZXRzIHRvIGRyb3AgY2FsbCAgcnRlX3BrdG1idWZfZnJlZSgpICh0aGlzIHN0 ZXAgaXMgbm90IGV4ZWN1dGVkIGJlY2F1c2UgYWxsIHBhY2tldHMgYXJlIG1hcmtlZCBmb3IgdHJh bnNtaXQpDQogICAgV2hlbiBkb25lIHRoZW4gYWRkIG1idWZzIHRvIHR4IHJpbmdzLiAgVHdvIFR4 IHRocmVhZHMgd2lsbCBwcm9jZXNzIHBhY2tldHMgZnJvbSB0aGVpciB0eCByaW5nLCBvbmUgcGVy IE5JQyBwb3J0Lg0KDQo1LiBBcHAgY2FsbHMgYW4gQVBJIHRvIGZyZWUgbWJ1ZnMgaW4gdGhlIEFj ayByaW5nLg0KDQoqIFR4IHRocmVhZCAodHdvIHRocmVhZHMpDQogICAgTW9uaXRvciB0eCByaW5n cyBhbmQgdHJhbnNtaXQgd2l0aCBydGVfZXRoX3R4X2J1cnN0KCkNCiAgICBJZiBEUERLIGZhaWxz IHRvIHNlbmQgYW55IG1idWZzLCBwZXJmb3JtIHJ0ZV9wa3RtYnVmX2ZyZWUoKSBvbiB0aG9zZSBt YnVmcyB0aGF0IGNvdWxkIG5vdCBiZSB0cmFuc21pdHRlZC4gIFRoaXMgZXZlbnQgaXMgcHJldmVu dGVkIGJlY2F1c2UgVHggcmF0ZSBpcyBsb3cuICBXYW50ZWQgdG8gcnVsZSB0aGlzIG91dC4NCg0K VGhlIG9yZGVyIG9mIHBpcGVsaW5lICM0IGFuZCAjNSBjYW5ub3QgYmUgY29udHJvbGxlZCwgYnV0 IGNvdW50aW5nIG9uIHRoZSBtYnVmIHJlZmNudCB0byBob2xkIGNvcnJlY3QgdmFsdWVzIHNvIGF0 IHRoZSBlbmQgdGhlIG1idWYgaXMgZnJlZWQgdG8gdGhlIG1lbXBvb2wgZm9yIERQREsgcmV1c2Ug b24gcmVjZWl2ZS4NCg0KSSBhZGRlZCBkZWJ1ZyBhbmQgSSBzZWUgbWJ1ZiByZWZjbnRzIGFyZSBu b3QgY29ycmVjdC4gIEkgZG9uJ3QgYmVsaWV2ZSB0aGUgbWVtcG9vbCBpcyBhIGZpcnN0IGluIGZp cnN0IG91dCBzbyBtYnVmIGFkZHJlc3NlcyBhcmUgc2hvd2luZyBpbiByYW5kb20sIG1heWJlIGNh Y2hlZC4NCg0KQWxzbyB3b3J0aCBtZW50aW9uaW5nIGlmIHRoZSBEUERLIFR4IGJ1cnN0IGZhaWxz IHRvIHRyYW5zbWl0IGFsbCB0aGUgc3VwcGxpZWQgbWJ1ZnMgSSBhbSBwbGFubmluZyB0byBpc3N1 ZSB0aGUgcnRlX3BrdG1idWZfZnJlZSgpIGZvciB0aG9zZSBub3QgdHJhbnNtaXR0ZWQuICBBbm90 aGVyIHRocmVhZCB0b3VjaGluZyBtYnVmcy4NCg0KSXMgdGhpcyBtdWx0aS10aHJlYWQgYXBwcm9h Y2ggYSBwcm9ibGVtIGluIERQREs/DQoNClRoYW5rcywNCkVkDQoNCiAgICANCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IERtaXRyeSBLb3pseXVrIDxkbWl0cnkua296bGl1a0Bn bWFpbC5jb20+DQpTZW50OiBGcmlkYXksIEFwcmlsIDQsIDIwMjUgNjoyOSBQTQ0KVG86IExvbWJh cmRvLCBFZCA8RWQuTG9tYmFyZG9AbmV0c2NvdXQuY29tPjsgdXNlcnNAZHBkay5vcmcNClN1Ympl Y3Q6IFJlOiBtYnVmIHJlZmNudCBpc3N1ZQ0KDQpFeHRlcm5hbCBFbWFpbDogVGhpcyBtZXNzYWdl IG9yaWdpbmF0ZWQgb3V0c2lkZSBvZiBORVRTQ09VVC4gRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9w ZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNvZ25pemUgdGhlIHNlbmRlciBhbmQga25vdyB0 aGUgY29udGVudCBpcyBzYWZlLg0KDQpIaSBFZCwNCg0KT24gMDUuMDQuMjAyNSAwMTowMCwgTG9t YmFyZG8sIEVkIHdyb3RlOg0KPg0KPiBIaSwNCj4NCj4gSSBoYXZlIGFuIGFwcGxpY2F0aW9uIHdo ZXJlIHdlIHJlY2VpdmUgcGFja2V0cyBhbmQgdHJhbnNtaXQgdGhlbS7CoCBUaGUgDQo+IHBhY2tl dCBkYXRhIGlzIGluc3BlY3RlZCBhbmQgbGF0ZXIgbWJ1ZiBpcyBmcmVlZCB0byBtZW1wb29sLg0K Pg0KPiBUaGUgcGlwZWxpbmUgaXMgc3VjaCB0aGF0IHRoZSBSeCBwYWNrZXQgbWJ1ZiBpcyBzYXZl ZCB0byByeCB3b3JrZXIgDQo+IHJpbmcsIHRoZW4gdGhlIGFwcGxpY2F0aW9uIHRocmVhZHMgcHJv Y2VzcyB0aGUgcGFja2V0cyBhbmQgZGVjaWRlcyBpZiANCj4gdG8gdHJhbnNtaXQgdGhlIHBhY2tl dCBhbmQgaWYgdHJ1ZSB0aGVuIGluY3JlbWVudHMgdGhlIG1idWYgdG8gYSB2YWx1ZSANCj4gb2Yg Mi4NCj4NCkRvIEkgdW5kZXJzdGFuZCB0aGUgcGlwZWxpbmUgY29ycmVjdGx5Pw0KDQpSeCB0aHJl YWQ6DQoNCiDCoMKgwqAgcmVjZWl2ZSBtYnVmDQogwqDCoMKgIHB1dCBtYnVmIGludG8gdGhlIHJp bmcNCiDCoMKgwqAgaW5zcGVjdCBtYnVmDQogwqDCoMKgIGZyZWUgbWJ1Zg0KDQpXb3JrZXIgdGhy ZWFkOg0KDQogwqDCoMKgIHRha2UgbWJ1ZiBmcm9tIHRoZSByaW5nDQogwqDCoMKgIGlmIGRlY2lk ZWQgdG8gdHJhbnNtaXQgaXQsDQogwqDCoMKgIMKgwqDCoCBpbmNyZW1lbnQgcmVmY250DQogwqDC oMKgIMKgwqDCoCB0cmFuc21pdCBtYnVmDQoNCklmIHNvLCB0aGVyZSdzIGEgcHJvYmxlbSB0aGF0 IGFmdGVyIFJ4IHRocmVhZCBwdXRzIG1idWYgaW50byB0aGUgcmluZywgbWJ1ZiBpcyBvd25lZCBi eSBSeCB0aHJlYWQgYW5kIHRoZSByaW5nLCBzbyBpdHMgcmVmY250IG11c3QgYmUgMiB3aGVuIGl0 IGVudGVycyB0aGUgcmluZzoNCg0KUnggdGhyZWFkOg0KDQogwqDCoMKgIHJlY2VpdmUgbWJ1Zg0K IMKgwqDCoCBpbmNyZW1lbnQgcmVmY250DQogwqDCoMKgIHB1dCBtYnVmIGludG8gdGhlIHJpbmcN CiDCoMKgwqAgaW5zcGVjdCBtYnVmDQogwqDCoMKgIGZyZWUgbWJ1ZiAoanVzdCBkZWNyZW1lbnRz IHJlZmNudCBpZiA+IDEpDQoNCldvcmtlciB0aHJlYWQ6DQoNCiDCoMKgwqAgdGFrZSBtYnVmIGZy b20gdGhlIHJpbmcNCiDCoMKgwqAgaWYgZGVjaWRlZCB0byB0cmFuc21pdCBpdCwNCiDCoMKgwqAg wqDCoMKgIHRyYW5zbWl0IChvciBwdXQgaW50byB0aGUgYnVsayB0cmFuc21pdHRlZCBsYXRlcikN CiDCoMKgwqAgZWxzZQ0KIMKgwqDCoCDCoMKgwqAgZnJlZSBtYnVmIChqdXN0IGRlY3JlbWVudHMg cmVmY250IGlmID4gMSkNCg0KPiBUaGUgYmF0Y2ggb2YgbWJ1ZnMgdG8gdHJhbnNtaXQgYXJlIHB1 dCBpbiBhIFR4IHJpbmcgcXVldWUgZm9yIHRoZSBUeCANCj4gdGhyZWFkIHRvIHB1bGwgZnJvbSBh bmQgY2FsbCB0aGUgRFBESyBydGVfZXRoX3R4X2J1cnN0KCkgd2l0aCB0aGUgDQo+IGJhdGNoIG9m IG1idWZzIChsaW1pdGVkIHRvIDQwMCBtYnVmcykuwqAgSW4gdGhlb3J5IHRoZSB0cmFuc21pdCAN Cj4gb3BlcmF0aW9uIHdpbGwgZGVjcmVtZW50IHRoZSBtYnVmIHJlZmNudC7CoCBJbiBvdXIgYXBw bGljYXRpb24gd2UgY291bGQgDQo+IHNlZSB0aGUgdHggb2YgdGhlIG1idWYgZm9sbG93ZWQgYnkg YW5vdGhlciBhcHBsaWNhdGlvbiB0aHJlYWQgdGhhdCANCj4gY2FsbHMgdG8gZnJlZSB0aGUgbWJ1 ZnMsIG9yIHZpY2UgdmVyc2EuwqAgV2UgaGF2ZSBubyB3YXkgdG8gc3luY2hyb25pemUgDQo+IHRo ZXNlIHRocmVhZHMuDQo+DQo+IElzIHRoZSBtYnVmIHJlZmNudCB1cGRhdGVzIHRocmVhZCBzYWZl IHRvIGFsbG93IHVuLWRldGVybWluaXN0aWMgDQo+IGhhbmRsaW5nIG9mIHRoZSBtYnVmcyBhbW9u ZyBtdWx0aXBsZSB0aHJlYWRzP8KgIFRoZSBkZWNpc2lvbiB0byANCj4gdHJhbnNtaXQgdGhlIG1i dWYgYW5kIGluY3JlbWVudCB0aGUgbWJ1ZiByZWZjbnQgYW5kIGxvYWQgaW4gdGhlIHR4IA0KPiBy aW5nIGlzIGNvbXBsZXRlZCBiZWZvcmUgdGhlIGFwcGxpY2F0aW9uIHNheXMgaXQgaXMgZmluaXNo ZWQgYW5kIGZyZWVzIA0KPiB0aGUgbWJ1ZnMuDQo+DQpIYXZlIHlvdSB2YWxpZGF0ZWQgdGhpcyBh c3N1bXB0aW9uPw0KSWYgbXkgdW5kZXJzdGFuZGluZyBhYm92ZSBpcyBjb3JyZWN0LCB0aGVyZSdz IG5vIHN5bmNocm9uaXphdGlvbiBhbmQgdGh1cyBubyBndWFyYW50ZWVzLg0KPg0KPiBJIGFtIHNl ZWluZyBpbiBteSBlcnJvciBjaGVja2luZyBjb2RlIHRoZSBtYnVmIHJlZmNudCBjb250YWlucyBs YXJnZSANCj4gdmFsdWVzIGxpa2UgNjU1MjAsIDY1NTI5LCA2NTUzMCwgNjU1MzQsIDY1NTM1IGlu IHRoZSBlYXJseSBwaXBlbGluZSANCj4gc3RhZ2UgcmVmY250IGNoZWNrcy4NCj4NCj4gSSByZWFk IG9ubGluZSBhbmQgaW4gdGhlIERQREsgY29kZSB0aGF0IHRoZSBtYnVmIHJlZmNudCB1cGRhdGUg aXMgDQo+IGF0b21pYywgYW5kIGlzIHRocmVhZCBzYWZlOyBzbywgdGhpcyBpcyBnb29kLg0KPg0K PiBOb3cgdGhpcyBwYXJ0IGlzIHVuY2xlYXIgdG8gbWUgYW5kIHRoYXQgaXMgd2hlbiB0aGUgcnRl X2V0aF90eF9idXJzdCgpIA0KPiBpcyBjYWxsZWQgYW5kIHJldHVybnMgdGhlIG51bWJlciBvZiBw YWNrZXRzIHRyYW5zbWl0dGVkICwgZG9lcyB0aGlzDQo+IMKgbWVhbiB0aGF0IHRyYW5zbWl0IG9m IHRoZSBwYWNrZXRzIGFyZSBjb21wbGV0ZWQgYW5kIG1idWYgcmVmY250IGlzIA0KPiBkZWNyZW1l bnRlZCBieSAxIG9uIHJldHVybiwgb3IgbWF5YmUgdGhlIFR4IGVuZ2luZSBxdWV1ZSBpcyBwb3B1 bGF0ZWQgDQo+IGFuZCBtYnVmIHJlZmNudCBpcyBub3QgZGVjcmVtZW50ZWQgdW50aWwgaXQgaXMg YWN0dWFsbHkgdHJhbnNtaXR0ZWQsIA0KPiBvciBtdWNoIHdvcnNlIGxhdGVyIGluIHRpbWUuDQo+ DQo+IElzIHRoZSBEUERLIFR4IG9wZXJhdGlvbiBpbnRlbmRlZCB0byBiZSB0aGUgbGFzdCBzdGFn ZSBvZiBhbnkgcGlwZWxpbmUgDQo+IHRoYXQgd2lsbCBmcmVlIHRoZSBtYnVmIGlmIHN1Y2Nlc3Nm dWxseSB0cmFuc21pdHRlZD8NCj4NClJldHVybiBmcm9tIHJ0ZV9ldGhfdHhfYnVyc3QoKSBtZWFu cyB0aGF0IG1idWZzIGFyZSBxdWV1ZWQgZm9yIHRyYW5zbWlzc2lvbi4NCkhhcmR3YXJlIGNvbXBs ZXRlcyB0cmFuc21pc3Npb24gYXN5bmNocm9ub3VzbHkuDQpUaGUgbmV4dCBjYWxsIHRvIHJ0ZV9l dGhfdHhfYnVyc3QoKSB3aWxsIHBvbGwgSFcsIGxlYXJuIHN0YXR1cyBvZiBtYnVmcyAqcHJldmlv dXNseSogcXVldWVkLCBhbmQgY2FsbHMgcnRlX3BrdG1idWZfZnJlZSgpIGZvciB0aG9zZSB0aGF0 IGFyZSB0cmFuc21pdHRlZC4NClRoZSBsYXR0ZXIgd2lsbCBmcmVlIG1idWZzIHRvIG1lbXBvb2wg aWYgYW5kIG9ubHkgaWYgcmVmY250ID09IDEuDQo=