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 EEAE146546 for ; Wed, 9 Apr 2025 18:15:45 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BEFEA4064F; Wed, 9 Apr 2025 18:15:45 +0200 (CEST) Received: from mx0a-00196b01.pphosted.com (mx0a-00196b01.pphosted.com [67.231.149.170]) by mails.dpdk.org (Postfix) with ESMTP id 4A681402B7 for ; Wed, 9 Apr 2025 18:15:44 +0200 (CEST) Received: from pps.filterd (m0096263.ppops.net [127.0.0.1]) by mx0a-00196b01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 539FLMAx005868; Wed, 9 Apr 2025 12:15:43 -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=hnIukrUG/hYE4FEBRoVDaFITBj/wEbrDReHv K0qCZjc=; b=AjBxRMS2NE5hV40ikpiPOu+RVM3SiksINisaUN/H7trCgGqLbhAR 4PuVCT2XNvTvEsEE4V6p9HpfmOUITOjsWH2vKUfjtS189s4Yxmv65jZdTLj2rcjE QvHn5gm49Gwrl0sKcE0QlmGRismxyIDBZR6wQVOJFxvyVgdJWDdCDP6+roW4+TMr ZgWHJcC65z36vRLPi1JKSSBhONFFf9CLQKIy11zwoZl7MmZpqg068Fc10dso5fqh MhozXk0lTms6qh866CeTXolmXKji7ENRFUsYItFFdsiRTEi4hfAolEJc1Wo4AKEh tUHgV0uv5GKDChtwEqeMfSHYf72kqbOR/g== Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazlp17010004.outbound.protection.outlook.com [40.93.11.4]) by mx0a-00196b01.pphosted.com (PPS) with ESMTPS id 45u18evx2p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 09 Apr 2025 12:15:42 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kNzEupzVFF6BzkHMNqVBgbvFw6ZEae4Mzmck8tep5MBn/BqLlHaW2nGlxcEzgAuzhWOJVBE1Gf1S2FkdL4sorZ/Qi9TxerOukbTQSdYf2CiJFi5C4VYgmoYDaqZQ20M6MOAd5YU9U31/CpWJJqWGOKWHaH/hSYi5ChWjFUG+ikYdLe3X0/kH15Ldk44nBiQjibSkhDFMQsVA+AScqRYFcBRNPpj7nbEjmQDiwtsbBj/QdnCopq2uCHVpYFninI8GsPNob0o/rxJDQdKDsevS0ibTsyBtBj01KMazoI5EQbdK+CuSiXrDHteqVaUNiXswsUtkJnETB7CCvvMvEpTbSw== 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=hnIukrUG/hYE4FEBRoVDaFITBj/wEbrDReHvK0qCZjc=; b=dpjhneiYosxekSgklwP8JMwKF3zMLa37+jIzeho4EPjX9xbc7Ruep2VeI0BLD4EEx2TNKm5shIoa3wrwLBgfCp87HuyN91t1M8r6rXBNnDT3VLmikflTaiGQtxHwj8WKqPlARmg4EnF7tUd8IUIRUMfOA/biUJeTL67hfEirw/sc2H9w35/JLCNcgmC6QqaykAoSobOYC+DLM7VQCwfCMr62Rg1EXujicBp1CLR4USRsJKDTpNaZWgPsUxqABZZh0QvJ52fjQ4oyAcibamDn7JGsCP0qAVoI33tC0G3SEb9xu6iFAS4sum7bEGSN/e8iR5+DyQ49fnr5E0n+UHW0Ig== 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 PH7PR01MB7911.prod.exchangelabs.com (2603:10b6:510:279::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Wed, 9 Apr 2025 16:15:37 +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; Wed, 9 Apr 2025 16:15:36 +0000 From: "Lombardo, Ed" To: Dmitry Kozlyuk , "users@dpdk.org" Subject: RE: mbuf refcnt issue Thread-Topic: mbuf refcnt issue Thread-Index: AdulnN5IfTxeCHcXQsa3xaXr7ECZhQAFBrWAAGffZNAAOS6kYABMuwXw Date: Wed, 9 Apr 2025 16:15:36 +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_|PH7PR01MB7911:EE_ x-ms-office365-filtering-correlation-id: 28dce959-94d3-438c-552d-08dd7781c2f6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?eWlMMExwZ3M5L0RSQ0c2WVk4ZkNxcUp1eXJwWVk4aFZIUW5oTUVqOTBOY0kv?= =?utf-8?B?L2RyNDlldDVzeW1icjV2U1E4VXBzaXc5d2ZZT0tyUGpyb0lsbjRadkRxUnUv?= =?utf-8?B?WUdPOGpCU3haYnMrVTdqV0NuQ3Y1UGc0by9wcDRpUmgxVTJhNGI2ZzVzclNE?= =?utf-8?B?YWFwRnlObnpiR3Z4UlRzUFJhTXdwUk04VUwzalBvVHhpb2NlTUl2ZHdVTktr?= =?utf-8?B?emhMK1c1M3VJVEVPa0lNQmduODYwQjlURzBDaXZ2R044UEo4OERCbVdhVEtQ?= =?utf-8?B?ZTRpZnFSSHhsc1R3OFJjSjFCY2s3ZnB6TUZCQmpPS0xLSmh2QlRmc3dxcWFR?= =?utf-8?B?UGNNWU11eTBGMEF3Mkt2cGtNUWxhSEt3Y1ZCSkx6VE0vc0V2NUNmVi9TT2NQ?= =?utf-8?B?aFNlV3h5dWtmVmpRWEFrWTVLbXYxaVlUUkVtNlltcGRLSnYwejM5Q2xhdFMw?= =?utf-8?B?T1BqcjIvcDNibDNVUGxXdkIxSDcwKzdZc1N1T2Y5VkFJWWsySlk0c3ZFeUNH?= =?utf-8?B?ZXFWaGF1dlVuRW9JZmZTRXRwUkJzOHNFSTZxQlRoazlwS1Q1VURDMCtyMzlI?= =?utf-8?B?bkNxOGYxdVJRQ1RDT1M0SjBxWUlEOXN4MUZicS9MaW8reFVPNHhOK2JXaWkw?= =?utf-8?B?SjhHdVU2UTVzOFovT1piMnhYVjBTYytIS3VqZEhhYy9kMXZnZ25vUDZhVW5o?= =?utf-8?B?NzRiaDdZNDhlZDJISjdWSHQ1cWdRTDB4R01OK2hpYUVkQlEyNGpOSmwyazRz?= =?utf-8?B?UEtDRGZZTWUzTWJhd2oyTFZqWWYzK01INDJOL3B2M2RrL0VyZVBIMEovVzNn?= =?utf-8?B?d21hL2h0YW5qdStoK2tHOUgyK1hPeWZIVG11cnBuZy9pcUhsQTcxVzBibHNI?= =?utf-8?B?b09DTmRUWnZianVoRzdlbFZXL29KYWdBSUoxT1lKdzVlc3dDOGMzMVB2YTFj?= =?utf-8?B?K3FwN1RxWStZdzNQNjRrTnA0ZVR4YkQ2STMwODRPUTJsUVJ5ZFJHbngxa1Ez?= =?utf-8?B?bFY5bjRTUHg4d3BGbVZpdkx2M0RCMlNRQmtYMHg3WTFZdTU2eFk2MkJLRzNl?= =?utf-8?B?djdQNlhOZm5NdUJBVFRtYjJJVUZHNUx3cUFIUS9RSzdYTFRySTZIMkRjMkNv?= =?utf-8?B?VFNlMUxxSkpKc3JrUWpYTDllK2ZCWTdvb1htNTFGWDdBVXVYZkJTY3dVbVFL?= =?utf-8?B?NDRvNnhnQUhoYU10bmFtcjRWN3NOb1FOTXhVUTgzSlRvQTZhZFArMmNLWHJt?= =?utf-8?B?d05iVnYzS2dyQllUbE9tNG1aeWFzaVhMTXdGMWZFME9Kd1ZVNEV6emo1Qmo3?= =?utf-8?B?QmZWVHF3WmcrY3lqNFZ4aEdFNkk2R0RDSXp0ZVdBblFxRzVSSkNuMUhFNGpj?= =?utf-8?B?UzVuWGtvdGxsNVV4N1hBZFYrSWw1SkVrYjVJMVo0SkJCbEpHMjdyRkwranJx?= =?utf-8?B?dXp6S1FkSzVuRUVFRHJIcHo5VG9KMHBPQnB2OThmLy9rMUZtUTlUQVYzSXRx?= =?utf-8?B?ZHJGd0dVNjNHVkQvUmdITFhUc2ZSYXhySnVteE5zcW1XRjFTK1dGVldtN1Ez?= =?utf-8?B?d1dqQXIvQURnSFpBZDZscUE3VlNrZ01RM1lVZzNTOHBCeHJOVGRhWTNYTzBF?= =?utf-8?B?YkZQbXkvdDRRZXB2bWNtTjNPOVpuUWppY0NDYVNUbVhia3crNnFIdnh4Y2di?= =?utf-8?B?MFhrS0tPSzBNa3RFSVRDTDRzTUl4SDg0K1pPVUxhWHkxc3FsQUdscmVKa2lO?= =?utf-8?B?L0Z2NlZWZklMZVZOb0ZWVk5UUHA5N2NXZU9rOWl2NCtDREQ1eFlxU3lFN2VV?= =?utf-8?B?MVZZb2Y3aWJNTjFmcTdoNWthcGtlMkJJaG9oK20rcE1WNWNaY2dlUURHMDlw?= =?utf-8?B?VG40ZzZjYnB2WER0Y1AyaWo5eTlsY0RUMzFSYjB0TGJGRzFCQmZCUWlPVUdG?= =?utf-8?B?Sk1aWWFRaS90bmQzZ29LRVFSd3dOMFlwZ04rbTBsbXc3NEl2SUpYVDcwaHRa?= =?utf-8?B?cS9hdzc0d3RBPT0=?= 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)(1800799024)(376014)(366016)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UUU1NW1VYjhpSktEUTJMNDhhVWR2QjdodzhjSDhaOWRBMUJWajFUbzBBbUJM?= =?utf-8?B?S3dqblgrazJzMkV1V3oyTVoyQURLWXRtN3NzUXc4b3FJY3FpUDVaUnpCa25q?= =?utf-8?B?ZTFlMmpyNHJrOEFQZjNOZTFreUhMdnRDUDJKdDZMelA2WDdoRndmQVIwZDZJ?= =?utf-8?B?ZUFTdlpkOHlGNFZZakp5bVVURkQvTS9YeGp0WVpLSEloWE1VZ21sM2pKanpY?= =?utf-8?B?M3dHTjk1dnE2QUNBMmNGcGt6WUtHVFZhR2FBcXJ1MzgzY0IwYUc5TWVuL1JD?= =?utf-8?B?aHEyam5KcE91N1g2WWNuZG80NFRuOFlFUTFJblpLZmpqU1FTa2l5NmhpZFhp?= =?utf-8?B?TW1HclpvK0RoaEJnMUZPZ0ZUWnNDdG1CNG40V1Z5Vk1JbkwrUG1xS09mcEdN?= =?utf-8?B?S3JRMzBjUHAvTzNkWTZRZE1lbE4zTjZiM3MwTVBNdWx5Ynp4QytGQkNhdUIw?= =?utf-8?B?WTlpZm9xSTZkT0xROWh5ZHA2UDJlL1c1TlJLVDd3WDlQbjVST21PM2hKc21u?= =?utf-8?B?RUlQYlpKV3l4Y0ZPVitHdHBxUEZCMDh5eWswVDAvUGhQTzZBS0thVkx0bGl1?= =?utf-8?B?L2poMkNKeURhbTh0dHlXRUd3cDdiVW5FL3VHRkt6WTBmK0J4R1BVZHN5Zkt2?= =?utf-8?B?dUxnMlkvN2orcmRMYmhmWU9hWU8ydWFKVTkxYXJlczB1UXZNcEJHUWFFdjM5?= =?utf-8?B?dk5HV0gyTlpFeEVUb2lWNG51K2dRSVlTbTRrU1loYlV3c3dTQVVON2FvSk82?= =?utf-8?B?UzlvZkx5aE9RSk5nUkUyTXFmc21VZ2tsUFYwemk5RFdBbDFNeEI2MTdtTW1H?= =?utf-8?B?MWRhc1VBQW1wMnZHUGJkNE5pQVdZTE5GMU1LQUNvQnlpYlc4QWQvckp0SEtF?= =?utf-8?B?M0pNZHdjU2xrcXZBQ016aXJ1NE9QRkI4S1JIRWxnOCtrM1JWcVovMzNHY25r?= =?utf-8?B?b1lUcFlTM3l2NkF5QXlVdEc2MHlXcjBFaHBaOTQ5MFZBSktXZXgza2JKVEZD?= =?utf-8?B?WkxicnIrenNGZXFIWlQySWwvd3hVL0I5d3BiZzFMYmtCdDRhb1g4aTJFVnM3?= =?utf-8?B?eS85U2U2eDkxbEQ3R0dqVmNubmo4UWtqRU1vanZsSko1OUlaeVZlbmJvbjV4?= =?utf-8?B?RWdpaEV6ZlNjMFU4MWpsTDNNVEJWZUxadnBBZFB1eHRMdGN1ZU9qK0hwVjBD?= =?utf-8?B?eW55Mis4c0hiWTdRQTBsUEU3cmhlT1lEOUo3Y0NhSUJaSmgxRGNUWUtVSVhE?= =?utf-8?B?YWQzSmxraVljNnY0bE40Tkh0b005TVprdlZEUXcvQnd6NUdsZWduT0Zqc1ZO?= =?utf-8?B?VVRpR0hvRGZIcjBLdWh4WWwzbkRrSUN5Z01jbkQ2NHBTSVdnckxZM3RHVnU3?= =?utf-8?B?eC9KbWp1OFVFelBTNCtUL3RFdlBiZFNvVEUxMzQwUW5qT3ZHTDFsanE0cW9L?= =?utf-8?B?RXF2aVROY3dsR2ZIYVlnUVExMm92MjJadU1XLzZaaUJRWTgvVGF6UDZWN3dF?= =?utf-8?B?TnlPNC9WNlRiNWdQc1U4SE5jRlc4a3BkWU5YbEl3RlpjUWJLSG11ejhxQk0w?= =?utf-8?B?cVo1bGxkdUFOMlE4cW9xeUkrN29sKzdtK3ZyUmZGd2plTWdLRTAzNFUyRzlX?= =?utf-8?B?RFg3MW1lU2FyLzJmVFh0QnFHM2d4SFI4SnVZNjgvdFZ3R3dlTzdFZ3Q2NWJY?= =?utf-8?B?TC9KQ0RZL0lqTlNXWS9pam1OeFB0enRoLzh1ODd6UGNoNGlNL3MvbTZ5NkVE?= =?utf-8?B?WmNiUW43eGk3azBFYUVvOFZKNWd2ZFpHRUo5RXU2K1RSK2l6WmFkMXZHZURm?= =?utf-8?B?b25zSXA1NE12QnR6VnhsMHIzYURwakU5L2JhVkU4bS8yTGllcWZaazlDanh0?= =?utf-8?B?Tzg1NFhYTGhTZEY4RmFaMmI2bWRTb3VWS3Y0ekthV1dUcGlFWXphOTJoMWtI?= =?utf-8?B?Y2xkdVdneDYrQjEya3hJdk9ibGFseFlCaTdGRlZEK254RDhmNWtsdHZITWNa?= =?utf-8?B?b2llWmhHeTlUWnVPS1dRRXMxamZJTFM3Wk10Mi94NEFkZlRkQ1RRL3lteUpt?= =?utf-8?B?bUE1VElEQ1haT3ZQaUM0c1oyTHJwNDFsamtTOHZlNmpGSU9KdDVhRXRrQ28y?= =?utf-8?Q?mGF3RPmazRNfgA07ysfxllPp3?= 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: o2axUhD2Xi/HmEAcLc3iOQ+zDJNempO2dqtXY0MquxNmOrrU4X39DFw3nTdsB9FBSs/2Ly7JpGK63o8JRJltiNbb26p5VTKHoaQyF+f8vCf+7RvZr10PzM9UuUDmSrNnpVFae7EuOBwJqut6/5mwhqXcN5EHKvfYKhr1tmfpqqdlrG8zl1aCOC1Xzk81cbSJ9/HxnDr9xcVxRJQPhLbmpGJUyZfj/K7bLBQek999bDTYbXGFYRILF7tVpEKWrHkUzfSRhaKV/bWB4ymiD4SCoW47X46lDWopLTyN/JvO02zX/nbiXlmMlJGw6PNl5GmGSR+uMqn+xlwRTI4dIQQKjTiUg1J6WK6g1JDS2ugIBZGYtdRNOrmmvoh7CzkzH4/NO1QP0PF6ughEn7ZDTb1Q6eK4nN2gXDbyPDWgVHKzpDEAcOhKnoGIrfWAoIGLqpyfT01roF5nrDLsdxNPyMbZcSLXBvkSmPLxCmoYSXoaI4kDIkNzRrVvNSQqSBQAHVbf6NScA20JVtNqPdFUT+zL3AEBvAWf6wlt0sJBD+tzj8EUmVWQSwNgtlm7CwwTjsbpUiZQ1R+AEZN8pslR1pabGYwnsTC6Vj7lqoULWJpDNzSpm55d2fQKs8WvAise1Dm4 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: 28dce959-94d3-438c-552d-08dd7781c2f6 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2025 16:15:36.1569 (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: jPBp9yHbJ1jduyXUEAFarmKFakzNWNFzN4Q7/yvKqfNVzEF1CkRH2EC2pAUVui0RWYjfLkYmCnSrhgjWmVQDSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR01MB7911 X-Proofpoint-GUID: KSSnKpbx1ZY8S4CFcTee10CuLU7vj-QG X-Proofpoint-ORIG-GUID: KSSnKpbx1ZY8S4CFcTee10CuLU7vj-QG X-Authority-Analysis: v=2.4 cv=VcP3PEp9 c=1 sm=1 tr=0 ts=67f69d2f cx=c_pps a=uYdjBAypVXkA+ZVpDPXefQ==: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=_QTj0uDPxTnaJklfFG4A:9 a=QEXdDO2ut3YA:10 a=YjdVzJdQTyZRADMV7wFX:22 a=mT82qxFQzDvLIExZS32s:22 cc=ntf X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 malwarescore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 spamscore=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-2504090104 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 SGksDQpJIGFkZGVkIHRvIG15IHNvdXJjZSBjb2RlOg0KI2RlZmluZSBSVEVfTElUUlRFX01CVUZf REVCVUcgMQ0KI2RlZmluZSBSVEVfTElCUlRFX01FTVBPT0xfREVCVUcgMQ0KI2RlZmluZSBSVEVf RU5BQkxFX0FTU0VSVCAxDQoNCldoZW4gSSBzZW5kIHRyYWZmaWMgYSBjb3JlIGZpbGUgaXMgZ2Vu ZXJhdGVkLiAgSXQgZmFpbGVkIG9uIHRoZSBydGVfbWJ1Zl9mcmVlKCkgd2hlbiB0aGUgX19ydGVf bWJ1Zl9yYXdfc2FudHlfY2hlY2soKSBpcyBjYWxsZWQuICANCg0KQmVsb3cgaXQgc2hvd3MgUlRF X0FTU0VSVChydGVfbWJ1Zl9yZWZjbnRfcmVhZChtKSA9PSAxKSB0aGF0IGZhaWxzIGJlY2F1c2Ug dGhpcyBtYnVmIGhhcyByZWZjbnQ9Mi4NCg0KcnRlX21idWYuaCBzaG93cyB0aGUgUlRFX0FTU0VS VCBjaGVjayBvbiByZWZjbnQuDQo1NjUgc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0K IDU2NiBfX3J0ZV9tYnVmX3Jhd19zYW5pdHlfY2hlY2soX19ydGVfdW51c2VkIGNvbnN0IHN0cnVj dCBydGVfbWJ1ZiAqbSkNCiA1Njcgew0KIDU2OCAgICAgUlRFX0FTU0VSVChydGVfbWJ1Zl9yZWZj bnRfcmVhZChtKSA9PSAxKTsNCiA1NjkgICAgIFJURV9BU1NFUlQobS0+bmV4dCA9PSBOVUxMKTsN CiA1NzAgICAgIFJURV9BU1NFUlQobS0+bmJfc2VncyA9PSAxKTsNCiA1NzEgICAgIF9fcnRlX21i dWZfc2FuaXR5X2NoZWNrKG0sIDApOw0KIDU3MiB9DQoNCkluIGdkYiBJIGluc3BlY3RlZCB0aGUg bWJ1ZiBhbmQgaXQgc2hvd3MgcmVmY250PTIuICBXaGljaCBpcyBwb3NzaWJsZSBpbiBvdXIgbXVs dGktdGhyZWFkZWQgZGVzaWduLiAgU28sIG15IHVuZGVyc3RhbmRpbmcgd2FzIHRoYXQgdGhlIHJl ZmNudCBpcyB1c2VkIHRvIGRlY2lkZSB3aGVuIHRoZSBtYnVmKHMpIHNob3VsZCBiZSByZXR1cm5l ZCB0byB0aGUgbWVtcG9vbC4gIEluIG91ciBkZXNpZ24gaWYgdGhlIHJlZmNudCBpcyAyIHRoZW4g dGhlIHR4IHRocmVhZCBpcyBhbHNvIHRhcmdldGVkIGZvciB0aGlzIG1idWYgd2hpY2ggbWF5IG5v dCBoYXZlIGJlZW4gdHJhbnNtaXR0ZWQgYW5kIGZyZWVkIHlldCBieSB0aGUgVHggdGhyZWFkLiAg V2hhdCBpZiBJIHdhbnRlZCB0byB0cmFuc21pdCB0aGlzIG1idWYgdG8gZGlmZmVyZW50IHR4IHRo cmVhZHMsIGlzIGV2ZW4gd29yc2UgZm9yIG15IGlzc3VlLg0KDQoNCg0KKGdkYikgYnQNCiMwICAw eDAwMDA3ZmM5MDU0OGJhYWMgaW4gX19wdGhyZWFkX2tpbGxfaW1wbGVtZW50YXRpb24gKCkgZnJv bSAvbGliL2xpYmMuc28uNg0KIzEgIDB4MDAwMDdmYzkwNTQzZTY4NiBpbiByYWlzZSAoKSBmcm9t IC9saWIvbGliYy5zby42DQojMiAgMHgwMDAwN2ZjOTA1NDI4ODMzIGluIGFib3J0ICgpIGZyb20g L2xpYi9saWJjLnNvLjYNCiMzICAweDAwMDAwMDAwMDA0MmUyYmEgaW4gX19ydGVfcGFuaWMgKGZ1 bmNuYW1lPTxvcHRpbWl6ZWQgb3V0PiwgZm9ybWF0PTB4MzM4YTg0OCAibGluZSAlZFx0YXNzZXJ0 IFwiJXNcIiBmYWlsZWRcbiUuMHMiKQ0KICAgIGF0IC4uL2xpYi9lYWwvY29tbW9uL2VhbF9jb21t b25fZGVidWcuYzoyNg0KIzQgIDB4MDAwMDAwMDAwMWNmYTcxMyBpbiBfX3J0ZV9tYnVmX3Jhd19z YW5pdHlfY2hlY2sgKG09MHgxOTBlZjkzYzApDQogICAgYXQgL3VzZXJzL2xvbWJhcmRvZS83MF9J U05HX0FFRF9NZXJnZV9uZXcvbnNhZ2VudC9saWIvZHBkay0yNDExLjFfZ2VuX2RiZy9pbmNsdWRl L2RwZGsvcnRlX21idWYuaDo1NjgNCiM1ICBydGVfbWJ1Zl9yYXdfZnJlZSAobT0weDE5MGVmOTNj MCkNCiAgICBhdCAvdXNlcnMvbG9tYmFyZG9lLzcwX0lTTkdfQUVEX01lcmdlX25ldy9uc2FnZW50 L2xpYi9kcGRrLTI0MTEuMV9nZW5fZGJnL2luY2x1ZGUvZHBkay9ydGVfbWJ1Zi5oOjYyOA0KIzYg IHJ0ZV9wa3RtYnVmX2ZyZWVfc2VnIChtPTB4MTkwZWY5M2MwKQ0KICAgIGF0IC91c2Vycy9sb21i YXJkb2UvNzBfSVNOR19BRURfTWVyZ2VfbmV3L25zYWdlbnQvbGliL2RwZGstMjQxMS4xX2dlbl9k YmcvaW5jbHVkZS9kcGRrL3J0ZV9tYnVmLmg6MTQwMw0KIzcgIHJ0ZV9wa3RtYnVmX2ZyZWUgKG09 MHgxOTBlZjkzYzApDQogICAgYXQgL3VzZXJzL2xvbWJhcmRvZS83MF9JU05HX0FFRF9NZXJnZV9u ZXcvbnNhZ2VudC9saWIvZHBkay0yNDExLjFfZ2VuX2RiZy9pbmNsdWRlL2RwZGsvcnRlX21idWYu aDoxNDI0DQoNCkkgZW5hYmxlZCBpbiBtZXNvbiB0aGUgQXRvbWljIGd1YXJkIHRvIG1idWYgcmVm Y250Lg0KbWJ1Zl9yZWZjbnRfYXRvbWljICB0cnVlICAgICAgICAgICAgICAgICAgW3RydWUsIGZh bHNlXSAgICAgICAgIEF0b21pY2FsbHkgYWNjZXNzIHRoZSBtYnVmIHJlZmNudC4NCkFuZCB0aGUg cnRlX2J1aWxkX2NvbmZpZy5oIGZpbGUgc2hvd3MgIiNkZWZpbmUgUlRFX01CVUZfUkVGQ05UX0FU T01JQyINCg0KVGhpcyBhcHBlYXJzIHRvIG1lIGFzIGEgY29sbGlzaW9uIHdpdGggc2FtZSBtYnVm IGFuZCByZWZjbnQgaW4gbXVsdGktdGhyZWFkZWQgZGVzaWduLiAgQW5kIHRoZSBydGVfcGt0bWJ1 Zl9mcmVlKCkgZG9lcyBub3QgZGVjcmVtZW50IHJlZmNudCBpZiBub3QgZXF1YWwgdG8gMSwgaXQg dHJpZXMgdG8gZnJlZSB0aGUgbWJ1Zi4gIEkgZG9uJ3Qgc2VlIGhvdyB0aGUgbWJ1ZihzKSBjYW4g YmUgaGFuZGxlZCBieSBtdWx0aXBsZSB0aHJlYWRzIChpLmUuIHR4IHBhdGggYW5kIGZyZWUgdGhv c2Ugbm90IHR4KS4NCg0KDQoNClRoYW5rcywNCkVkDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQpGcm9tOiBMb21iYXJkbywgRWQgDQpTZW50OiBUdWVzZGF5LCBBcHJpbCA4LCAyMDI1IDY6 MzQgUE0NClRvOiBEbWl0cnkgS296bHl1ayA8ZG1pdHJ5LmtvemxpdWtAZ21haWwuY29tPjsgdXNl cnNAZHBkay5vcmcNClN1YmplY3Q6IFJFOiBtYnVmIHJlZmNudCBpc3N1ZQ0KDQpIaSBEbWl0cnks DQpJIGFkZGVkIG1idWYgcmVmY250IGNoZWNrIGF0IHRoZSBwb2ludCB3aGVyZSB3ZSBnZXQgdGhl IHBhY2tldHMgZnJvbSBEUERLIHJ0ZV9ldGhfcnhfYnVyc3QoKSBhbmQgSSBhbSBmaW5kaW5nIG1h bnkgbWJ1ZnMgcmVmY250IHNldCB0byAyIHdoZW4gSSBleHBlY3QgdGhlbSB0byBiZSAxLiAgVGhp cyBpcyBtb3JlIGV2aWRlbmNlIHRoYXQgc29tZXRoaW5nIGhhcyBnb25lIHdyb25nIHdpdGhpbiBE UERLIGFuZCB0aGUgbWVtcG9vbCBtYW5hZ2VtZW50LCBwZXJoYXBzLCBhbmQgSSBkb24ndCBrbm93 IGhvdyBteSBzZXR1cCB3ZW50IGludG8gdGhpcyBzdGF0ZS4gIEkgY2hhbmdlZCB0aGUgdHJhZmZp YyB0eXBlIGZyb20gVGVsbmV0IHRvIEVudGVycHJpc2UgdHJhZmZpYyBhbmQgcnRlX2V0aF90eF9i dXJzdCgpIG5vIGxvbmdlciBhY2NlcHRzIG1idWZzLiANCg0KSG93ZXZlciwgdGhlIG1lbWJ1ZiBw b29sIGlzIG5vdCBkZXBsZXRlZCBhZnRlciBJIGhpdCB0aGUgcG9pbnQgdGhlIFR4IHN0b3BzLg0K DQoqKiogRFBESyBNRU1PUlkgU1RBVFMgKioNClJlc2VydmVkIG1idWZzICAgICAgOiAgICAgICAg ICAgICAgIDc4NjQzMg0KQXZhaWxhYmxlIG1idWZzICAgICA6ICAgICAgICAgICAgICAgNzg2NDMy DQpBbGxvY2F0ZWQgbWJ1ZnMgICAgIDogICAgICAgICAgICAgICAgICAgIDANCklzIE1lbXBvb2wg RnVsbCAgICAgOiAgICAgICAgICAgICAgICAgICAgMQ0KSXMgTWVtcG9vbCBFbXB0eSAgICA6ICAg ICAgICAgICAgICAgIDANCg0KVGhlIHJlY2VpdmluZyBvZiBtYnVmcyBmcm9tIHJ0ZV9ldGhfcnhf YnVyc3QoKSB0aGF0IGhhdmUgcmVmY250ID09IDIgaXMgbGVhZGluZyBtZSB0byBiZWxpZXZlIHRo YXQgb3VyIGFwcGxpY2F0aW9uIHBpcGVsaW5lIHN0YWdlIHNldHMgdGhlIHJlZmNudCB0byAyIGJ1 dCB3aGVuIHRoZSBUeCB0aHJlYWQgaXMgYmxvY2tlZCwgdGhlIG1lbXBvb2wgc3RpbGwgYWxsb3dz IHRoZSBydGVfZXRoX3J4X2J1cnN0KCkgdG8gcmV1c2UgdGhlc2UgbWJ1ZnMgYW5kIGRvZXMgbm90 IHRvdWNoIHRoZSBtYnVmIHJlZmNudD8gIE9yIGRvZXMgYW55IG1idWZzIHByb3ZpZGVkIGJ5IHJ0 ZV9ldGhfcnhfYnVyc3QoKSBndWFyYW50ZWUgdGhlIG1idWYgcmVmY250IHdpbGwgYmUgaW5pdGlh bGl6ZWQgdG8gMT8NCg0KSSBhbHNvIHRyaWVkIERQREsgMjMuMTEuMiBhbmQgc2VlIHNhbWUgaXNz dWUuDQoNClRoaXMgbW9ybmluZywgSSBmb3VuZCB0aGF0IG9uY2UgdGhlIFR4IG9wZXJhdGlvbiBz dG9wcywgSSBjYW4gc2V0IHRoZSBicmVha3BvaW50IGp1c3QgYmVmb3JlIHJ0ZV9ldGhfdHhfYnVy c3QoKSBhbmQgY2hhbmdlIHRoZSB0eF9xdWV1ZV9pZCB0byBkaWZmZXJlbnQgdmFsdWUgdGhlbiB0 aGUgdHggb2YgcGFja2V0cyBwaWNrdXAgYWdhaW4gYW5kIHRoZW4gc3RvcHMgc2hvcnRseS4gIE9u Y2UgdGhlIFR4IHN0b3BzIG9uIGEgdHhfcXVldWVfaWQgdGhlbiB0eCBwYWNrZXRzIGZhaWwgYW5k IG5ldmVyIGNsZWFycyB1cCBhZ2Fpbi4NCg0KQW55IHRob3VnaHRzIHRvIG15IGlzc3VlPw0KDQpU aGFua3MsDQpFZA0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTG9tYmFyZG8s IEVkDQpTZW50OiBNb25kYXksIEFwcmlsIDcsIDIwMjUgMzo1NCBQTQ0KVG86IERtaXRyeSBLb3ps eXVrIDxkbWl0cnkua296bGl1a0BnbWFpbC5jb20+OyB1c2Vyc0BkcGRrLm9yZw0KU3ViamVjdDog UkU6IG1idWYgcmVmY250IGlzc3VlDQoNCkhpIERtaXRyeSwNCkkgc2VlIGlzc3VlcyB3aGVyZSBz cG90dHkgbWJ1ZnMgc2hvdyBpbmNvcnJlY3QgcmVmY250LCBpLmUuIHNob3VsZCBiZSAxIGJ1dCBJ IHNlZSAyIG9yIDMsIG9yIHNob3VsZCBiZSAyIGJ1dCBJIHNlZSAzLiAgTGlrZSB0aGUgbWJ1ZiBp cyByZXR1cm5lZCB0byBtZW1wb29sIGFuZCByZXVzZWQgYnkgRFBESyByZWNlaXZlIChhbmQgYXBw ZWFycyB0aGF0IG1idWYgcmVmY250IGlzIG5vdCBpbml0aWFsaXplZCB0byAxLCBhcyBJIHdvdWxk IGV4cGVjdCkuICBJIHRyaWVkIHRvIHBheSBhdHRlbnRpb24gaW4gdGhlIHNvZnR3YXJlIHRvIGVs aW1pbmF0ZSBhbnkgYXN5bmNocm9ub3VzIGV2ZW50cyBieSBtdWx0aXBsZSB0aHJlYWRzIHRoYXQg cGVyZm9ybSBlaXRoZXIgcnRlX21idWZfcmVmY250X3VwZGF0ZSgpIGFuZCBydGVfcGt0bWJ1Zl9m cmVlKCkgdGhhdCBjb3VsZCBjYXVzZSBhIHdlaXJkIGJlaGF2aW9yLiAgTWVhbmluZywgb24gcmVj ZWl2ZSBvZiBwYWNrZXRzIHRoZSBhcHBsaWNhdGlvbiBmaXJzdCBjYWxscyB0byByZXF1ZXN0IHBh Y2tldHMgaXMgd2hlcmUgSSBpbmNyZW1lbnQgdGhlIG1idWYgcmVmY250LCB0aGVuIEkgcmV0dXJu IHRoZSBsaXN0IG9mIHBhY2tldHMgdG8gdGhlIGFwcGxpY2F0aW9uIHdoaWNoIHdpbGwgdGhlbiBw cm9jZXNzIHRoZSBwYWNrZXRzIGFuZCBkZXRlcm1pbmUgd2hpY2ggb25lcyB0byBkcm9wIChzaG91 bGQgYmUgdmVyeSBmZXcgZHJvcHMpLiAgSW4gbXkgdGVzdGluZywgSSBhbSB0cmFuc21pdHRpbmcg YWxsIHRoZSBwYWNrZXRzIHJlY2VpdmVkIHNvIGlzIG11Y2ggc2ltcGxpZmllZC4gIEZyb20gdGhp cyBwb2ludCBvbiB0aGVyZSBhcmUgbXVsdGlwbGUgdGhyZWFkcyB0b3VjaGluZyB0aGUgbWJ1ZiBy ZWZjbnQgKGVpdGhlciBEUERLIHJ0ZV9ldGhfdHhfYnVyc3QoKW9yIHJ0ZV9wa3RtYnVmX2ZyZWUo KSkuDQoNCkkgYW0gdGVzdGluZyBhZ2FpbnN0IERQREsgMjQuMTEuMSBhcyBnZW5lcmljIHBsYXRm b3JtIGJ1aWxkLg0KDQpUaGUgUGlwZWxpbmUgd2l0aCBtYW55IHRocmVhZHMgYXJlIGV4cGxhaW5l ZCBzb21ld2hhdCBiZWxvdy4NCjEuIFJ4IHRocmVhZDogKHR3byB0aHJlYWRzIDEsMikNCiAgICBG cmVlIG1idWZzIHByb2Nlc3NlZCBieSBhcHBsaWNhdGlvbiBpbiBBY2sgcmluZy4NCiAgICBSZWNl aXZlIG1idWZzIGZyb20gTklDIHZpYSBydGVfcmluZ19kZXF1ZXVlX2J1cnN0KCkNCiAgICBQdXQg bWJ1ZnMgaW50byBXb3JrZXIgcmluZy4NCg0KMi4gQXBwIHJlcXVlc3QgZm9yIHBhY2tldHM6ICh0 d28gdGhyZWFkcywgMywgNCkNCiAgICBQcm9jZXNzIHBhY2tldHMgZnJvbSB3b3JrZXIgcmluZywg YW5kIG1hcmsgdGhlIHBhY2tldHMgdG8gdHggKHZpYSBpbnRlcm5hbCBhcnJheSBvZiBwa3QgaW5m bykNCiAgICBJbmNyZW1lbnQgbWJ1ZiByZWZjbnQgYnkgMSAoYXNzdW1lIHdpbGwgdHJhbnNtaXQg YWxsIHBhY2tldHMpDQogICAgQWRkIG1idWZzIHRvIEFjayByaW5nIGZvciBmcmVlaW5nIGxhdGVy Lg0KICAgIEF0IHRoaXMgcG9pbnQsIG5vIG90aGVyIHRocmVhZCBzaG91bGQgdG91Y2ggdGhlc2Ug bWJ1ZnMuDQoNCjMuIEFwcCBwcm9jZXNzIHBhY2tldHMgYW5kIHVwZGF0ZSBpbnRlcm5hbCBhcnJh eSBvZiBwa3QgaW5mby4gKHR3byBvciBtb3JlIHRocmVhZHMsIHgpDQogICAgIChoZXJlIEkgc2lt dWxhdGUgdGhhdCB0aGUgQXBwIGlzIHByb2Nlc3NpbmcgcGFja2V0cywgSSBtYXJrIHRoZW0gYWxs IGZvciB0eC4pDQoNCjQuIEFwcCBjYWxscyB0byByZXF1ZXN0IHRvIHNlbmQgYnVyc3Qgb2YgcGFj a2V0czogKDIgdGhyZWFkcywgeCsyKQ0KICAgIFByb2Nlc3MgcGFja2V0cyBtYXJrZWQgZm9yIHRy YW5zbWl0IGFuZCBwdXQgaW4gcnRlX21idWYgcG9pbnRlciBhcnJheXMuDQogICAgVGhvc2UgcGFj a2V0cyB0byBkcm9wIGNhbGwgIHJ0ZV9wa3RtYnVmX2ZyZWUoKSAodGhpcyBzdGVwIGlzIG5vdCBl eGVjdXRlZCBiZWNhdXNlIGFsbCBwYWNrZXRzIGFyZSBtYXJrZWQgZm9yIHRyYW5zbWl0KQ0KICAg IFdoZW4gZG9uZSB0aGVuIGFkZCBtYnVmcyB0byB0eCByaW5ncy4gIFR3byBUeCB0aHJlYWRzIHdp bGwgcHJvY2VzcyBwYWNrZXRzIGZyb20gdGhlaXIgdHggcmluZywgb25lIHBlciBOSUMgcG9ydC4N Cg0KNS4gQXBwIGNhbGxzIGFuIEFQSSB0byBmcmVlIG1idWZzIGluIHRoZSBBY2sgcmluZy4NCg0K KiBUeCB0aHJlYWQgKHR3byB0aHJlYWRzKQ0KICAgIE1vbml0b3IgdHggcmluZ3MgYW5kIHRyYW5z bWl0IHdpdGggcnRlX2V0aF90eF9idXJzdCgpDQogICAgSWYgRFBESyBmYWlscyB0byBzZW5kIGFu eSBtYnVmcywgcGVyZm9ybSBydGVfcGt0bWJ1Zl9mcmVlKCkgb24gdGhvc2UgbWJ1ZnMgdGhhdCBj b3VsZCBub3QgYmUgdHJhbnNtaXR0ZWQuICBUaGlzIGV2ZW50IGlzIHByZXZlbnRlZCBiZWNhdXNl IFR4IHJhdGUgaXMgbG93LiAgV2FudGVkIHRvIHJ1bGUgdGhpcyBvdXQuDQoNClRoZSBvcmRlciBv ZiBwaXBlbGluZSAjNCBhbmQgIzUgY2Fubm90IGJlIGNvbnRyb2xsZWQsIGJ1dCBjb3VudGluZyBv biB0aGUgbWJ1ZiByZWZjbnQgdG8gaG9sZCBjb3JyZWN0IHZhbHVlcyBzbyBhdCB0aGUgZW5kIHRo ZSBtYnVmIGlzIGZyZWVkIHRvIHRoZSBtZW1wb29sIGZvciBEUERLIHJldXNlIG9uIHJlY2VpdmUu DQoNCkkgYWRkZWQgZGVidWcgYW5kIEkgc2VlIG1idWYgcmVmY250cyBhcmUgbm90IGNvcnJlY3Qu ICBJIGRvbid0IGJlbGlldmUgdGhlIG1lbXBvb2wgaXMgYSBmaXJzdCBpbiBmaXJzdCBvdXQgc28g bWJ1ZiBhZGRyZXNzZXMgYXJlIHNob3dpbmcgaW4gcmFuZG9tLCBtYXliZSBjYWNoZWQuDQoNCkFs c28gd29ydGggbWVudGlvbmluZyBpZiB0aGUgRFBESyBUeCBidXJzdCBmYWlscyB0byB0cmFuc21p dCBhbGwgdGhlIHN1cHBsaWVkIG1idWZzIEkgYW0gcGxhbm5pbmcgdG8gaXNzdWUgdGhlIHJ0ZV9w a3RtYnVmX2ZyZWUoKSBmb3IgdGhvc2Ugbm90IHRyYW5zbWl0dGVkLiAgQW5vdGhlciB0aHJlYWQg dG91Y2hpbmcgbWJ1ZnMuDQoNCklzIHRoaXMgbXVsdGktdGhyZWFkIGFwcHJvYWNoIGEgcHJvYmxl bSBpbiBEUERLPw0KDQpUaGFua3MsDQpFZA0KDQogICAgDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQpGcm9tOiBEbWl0cnkgS296bHl1ayA8ZG1pdHJ5LmtvemxpdWtAZ21haWwuY29tPg0K U2VudDogRnJpZGF5LCBBcHJpbCA0LCAyMDI1IDY6MjkgUE0NClRvOiBMb21iYXJkbywgRWQgPEVk LkxvbWJhcmRvQG5ldHNjb3V0LmNvbT47IHVzZXJzQGRwZGsub3JnDQpTdWJqZWN0OiBSZTogbWJ1 ZiByZWZjbnQgaXNzdWUNCg0KRXh0ZXJuYWwgRW1haWw6IFRoaXMgbWVzc2FnZSBvcmlnaW5hdGVk IG91dHNpZGUgb2YgTkVUU0NPVVQuIERvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1l bnRzIHVubGVzcyB5b3UgcmVjb2duaXplIHRoZSBzZW5kZXIgYW5kIGtub3cgdGhlIGNvbnRlbnQg aXMgc2FmZS4NCg0KSGkgRWQsDQoNCk9uIDA1LjA0LjIwMjUgMDE6MDAsIExvbWJhcmRvLCBFZCB3 cm90ZToNCj4NCj4gSGksDQo+DQo+IEkgaGF2ZSBhbiBhcHBsaWNhdGlvbiB3aGVyZSB3ZSByZWNl aXZlIHBhY2tldHMgYW5kIHRyYW5zbWl0IHRoZW0uwqAgVGhlIA0KPiBwYWNrZXQgZGF0YSBpcyBp bnNwZWN0ZWQgYW5kIGxhdGVyIG1idWYgaXMgZnJlZWQgdG8gbWVtcG9vbC4NCj4NCj4gVGhlIHBp cGVsaW5lIGlzIHN1Y2ggdGhhdCB0aGUgUnggcGFja2V0IG1idWYgaXMgc2F2ZWQgdG8gcnggd29y a2VyIA0KPiByaW5nLCB0aGVuIHRoZSBhcHBsaWNhdGlvbiB0aHJlYWRzIHByb2Nlc3MgdGhlIHBh Y2tldHMgYW5kIGRlY2lkZXMgaWYgDQo+IHRvIHRyYW5zbWl0IHRoZSBwYWNrZXQgYW5kIGlmIHRy dWUgdGhlbiBpbmNyZW1lbnRzIHRoZSBtYnVmIHRvIGEgdmFsdWUgDQo+IG9mIDIuDQo+DQpEbyBJ IHVuZGVyc3RhbmQgdGhlIHBpcGVsaW5lIGNvcnJlY3RseT8NCg0KUnggdGhyZWFkOg0KDQogwqDC oMKgIHJlY2VpdmUgbWJ1Zg0KIMKgwqDCoCBwdXQgbWJ1ZiBpbnRvIHRoZSByaW5nDQogwqDCoMKg IGluc3BlY3QgbWJ1Zg0KIMKgwqDCoCBmcmVlIG1idWYNCg0KV29ya2VyIHRocmVhZDoNCg0KIMKg wqDCoCB0YWtlIG1idWYgZnJvbSB0aGUgcmluZw0KIMKgwqDCoCBpZiBkZWNpZGVkIHRvIHRyYW5z bWl0IGl0LA0KIMKgwqDCoCDCoMKgwqAgaW5jcmVtZW50IHJlZmNudA0KIMKgwqDCoCDCoMKgwqAg dHJhbnNtaXQgbWJ1Zg0KDQpJZiBzbywgdGhlcmUncyBhIHByb2JsZW0gdGhhdCBhZnRlciBSeCB0 aHJlYWQgcHV0cyBtYnVmIGludG8gdGhlIHJpbmcsIG1idWYgaXMgb3duZWQgYnkgUnggdGhyZWFk IGFuZCB0aGUgcmluZywgc28gaXRzIHJlZmNudCBtdXN0IGJlIDIgd2hlbiBpdCBlbnRlcnMgdGhl IHJpbmc6DQoNClJ4IHRocmVhZDoNCg0KIMKgwqDCoCByZWNlaXZlIG1idWYNCiDCoMKgwqAgaW5j cmVtZW50IHJlZmNudA0KIMKgwqDCoCBwdXQgbWJ1ZiBpbnRvIHRoZSByaW5nDQogwqDCoMKgIGlu c3BlY3QgbWJ1Zg0KIMKgwqDCoCBmcmVlIG1idWYgKGp1c3QgZGVjcmVtZW50cyByZWZjbnQgaWYg PiAxKQ0KDQpXb3JrZXIgdGhyZWFkOg0KDQogwqDCoMKgIHRha2UgbWJ1ZiBmcm9tIHRoZSByaW5n DQogwqDCoMKgIGlmIGRlY2lkZWQgdG8gdHJhbnNtaXQgaXQsDQogwqDCoMKgIMKgwqDCoCB0cmFu c21pdCAob3IgcHV0IGludG8gdGhlIGJ1bGsgdHJhbnNtaXR0ZWQgbGF0ZXIpDQogwqDCoMKgIGVs c2UNCiDCoMKgwqAgwqDCoMKgIGZyZWUgbWJ1ZiAoanVzdCBkZWNyZW1lbnRzIHJlZmNudCBpZiA+ IDEpDQoNCj4gVGhlIGJhdGNoIG9mIG1idWZzIHRvIHRyYW5zbWl0IGFyZSBwdXQgaW4gYSBUeCBy aW5nIHF1ZXVlIGZvciB0aGUgVHggDQo+IHRocmVhZCB0byBwdWxsIGZyb20gYW5kIGNhbGwgdGhl IERQREsgcnRlX2V0aF90eF9idXJzdCgpIHdpdGggdGhlIA0KPiBiYXRjaCBvZiBtYnVmcyAobGlt aXRlZCB0byA0MDAgbWJ1ZnMpLsKgIEluIHRoZW9yeSB0aGUgdHJhbnNtaXQgDQo+IG9wZXJhdGlv biB3aWxsIGRlY3JlbWVudCB0aGUgbWJ1ZiByZWZjbnQuwqAgSW4gb3VyIGFwcGxpY2F0aW9uIHdl IGNvdWxkIA0KPiBzZWUgdGhlIHR4IG9mIHRoZSBtYnVmIGZvbGxvd2VkIGJ5IGFub3RoZXIgYXBw bGljYXRpb24gdGhyZWFkIHRoYXQgDQo+IGNhbGxzIHRvIGZyZWUgdGhlIG1idWZzLCBvciB2aWNl IHZlcnNhLsKgIFdlIGhhdmUgbm8gd2F5IHRvIHN5bmNocm9uaXplIA0KPiB0aGVzZSB0aHJlYWRz Lg0KPg0KPiBJcyB0aGUgbWJ1ZiByZWZjbnQgdXBkYXRlcyB0aHJlYWQgc2FmZSB0byBhbGxvdyB1 bi1kZXRlcm1pbmlzdGljIA0KPiBoYW5kbGluZyBvZiB0aGUgbWJ1ZnMgYW1vbmcgbXVsdGlwbGUg dGhyZWFkcz/CoCBUaGUgZGVjaXNpb24gdG8gDQo+IHRyYW5zbWl0IHRoZSBtYnVmIGFuZCBpbmNy ZW1lbnQgdGhlIG1idWYgcmVmY250IGFuZCBsb2FkIGluIHRoZSB0eCANCj4gcmluZyBpcyBjb21w bGV0ZWQgYmVmb3JlIHRoZSBhcHBsaWNhdGlvbiBzYXlzIGl0IGlzIGZpbmlzaGVkIGFuZCBmcmVl cyANCj4gdGhlIG1idWZzLg0KPg0KSGF2ZSB5b3UgdmFsaWRhdGVkIHRoaXMgYXNzdW1wdGlvbj8N CklmIG15IHVuZGVyc3RhbmRpbmcgYWJvdmUgaXMgY29ycmVjdCwgdGhlcmUncyBubyBzeW5jaHJv bml6YXRpb24gYW5kIHRodXMgbm8gZ3VhcmFudGVlcy4NCj4NCj4gSSBhbSBzZWVpbmcgaW4gbXkg ZXJyb3IgY2hlY2tpbmcgY29kZSB0aGUgbWJ1ZiByZWZjbnQgY29udGFpbnMgbGFyZ2UgDQo+IHZh bHVlcyBsaWtlIDY1NTIwLCA2NTUyOSwgNjU1MzAsIDY1NTM0LCA2NTUzNSBpbiB0aGUgZWFybHkg cGlwZWxpbmUgDQo+IHN0YWdlIHJlZmNudCBjaGVja3MuDQo+DQo+IEkgcmVhZCBvbmxpbmUgYW5k IGluIHRoZSBEUERLIGNvZGUgdGhhdCB0aGUgbWJ1ZiByZWZjbnQgdXBkYXRlIGlzIA0KPiBhdG9t aWMsIGFuZCBpcyB0aHJlYWQgc2FmZTsgc28sIHRoaXMgaXMgZ29vZC4NCj4NCj4gTm93IHRoaXMg cGFydCBpcyB1bmNsZWFyIHRvIG1lIGFuZCB0aGF0IGlzIHdoZW4gdGhlIHJ0ZV9ldGhfdHhfYnVy c3QoKSANCj4gaXMgY2FsbGVkIGFuZCByZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFja2V0cyB0cmFu c21pdHRlZCAsIGRvZXMgdGhpcw0KPiDCoG1lYW4gdGhhdCB0cmFuc21pdCBvZiB0aGUgcGFja2V0 cyBhcmUgY29tcGxldGVkIGFuZCBtYnVmIHJlZmNudCBpcyANCj4gZGVjcmVtZW50ZWQgYnkgMSBv biByZXR1cm4sIG9yIG1heWJlIHRoZSBUeCBlbmdpbmUgcXVldWUgaXMgcG9wdWxhdGVkIA0KPiBh bmQgbWJ1ZiByZWZjbnQgaXMgbm90IGRlY3JlbWVudGVkIHVudGlsIGl0IGlzIGFjdHVhbGx5IHRy YW5zbWl0dGVkLCANCj4gb3IgbXVjaCB3b3JzZSBsYXRlciBpbiB0aW1lLg0KPg0KPiBJcyB0aGUg RFBESyBUeCBvcGVyYXRpb24gaW50ZW5kZWQgdG8gYmUgdGhlIGxhc3Qgc3RhZ2Ugb2YgYW55IHBp cGVsaW5lIA0KPiB0aGF0IHdpbGwgZnJlZSB0aGUgbWJ1ZiBpZiBzdWNjZXNzZnVsbHkgdHJhbnNt aXR0ZWQ/DQo+DQpSZXR1cm4gZnJvbSBydGVfZXRoX3R4X2J1cnN0KCkgbWVhbnMgdGhhdCBtYnVm cyBhcmUgcXVldWVkIGZvciB0cmFuc21pc3Npb24uDQpIYXJkd2FyZSBjb21wbGV0ZXMgdHJhbnNt aXNzaW9uIGFzeW5jaHJvbm91c2x5Lg0KVGhlIG5leHQgY2FsbCB0byBydGVfZXRoX3R4X2J1cnN0 KCkgd2lsbCBwb2xsIEhXLCBsZWFybiBzdGF0dXMgb2YgbWJ1ZnMgKnByZXZpb3VzbHkqIHF1ZXVl ZCwgYW5kIGNhbGxzIHJ0ZV9wa3RtYnVmX2ZyZWUoKSBmb3IgdGhvc2UgdGhhdCBhcmUgdHJhbnNt aXR0ZWQuDQpUaGUgbGF0dGVyIHdpbGwgZnJlZSBtYnVmcyB0byBtZW1wb29sIGlmIGFuZCBvbmx5 IGlmIHJlZmNudCA9PSAxLg0K