From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 9ufhILMR+2m0txkAWB0awg (envelope-from ) for ; Wed, 06 May 2026 06:02:27 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=FLJyleqL; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 628A71E0BA; Wed, 06 May 2026 06:02:27 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id EEA761E093 for ; Wed, 06 May 2026 06:02:22 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7ACE44BAD152 for ; Wed, 6 May 2026 10:02:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7ACE44BAD152 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=FLJyleqL Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) by sourceware.org (Postfix) with ESMTPS id 0421E4BA7981 for ; Wed, 6 May 2026 10:01:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0421E4BA7981 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0421E4BA7981 Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=198.175.65.15 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1778061684; cv=fail; b=d+X4YTSBriVIWNdZpKsFJNNhBhOFaYIsLfqNx7DXVUuRMWMsV060e19Aveqvz6i0dQPHrIrJ6SFupmYxF+7xb77lF52krr/o2Ll/0t8GzeN3cC3ydvwb6Mwlr8IyxWAr7IWRN3mSE3S5Vry2cCfx0VoObtcQqAaG7qo+Cw/QpUo= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1778061684; c=relaxed/simple; bh=2f7oNQ7E3bUPgr54/66JVbSIGcVhq+cghmrhV8iYDHg=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=p4pta0SitqkrgJ64QcRtYtbHPFKkszEHn19WH0MktsGi9p9+Yim8CAQfPvthLjZeMky+gIP23tklGKZ15Tbz8Qx3YKLFzUSJE3CebPq9SFl8LgkaLF7ojSP1ouARQPdArhPPsgIKVX6+rrvPV0lJ4y3WIRUP/jAW/WqZJJBBoPw= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=FLJyleqL DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0421E4BA7981 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1778061685; x=1809597685; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=2f7oNQ7E3bUPgr54/66JVbSIGcVhq+cghmrhV8iYDHg=; b=FLJyleqL0FUh16E7jsrE/vMIP02klHCGTf3MDBEFZ9y9eqg9W4kDKlZA WPdb/qT+zkkcPa2PqNBOeeFpqDD1RGz+FH5MvZSCipa1a76tSwWWRCIph zyGxk8C63fV+RFVGcMRF4CfP7nQIXzSR7D20PCjtWtBe5IgSTlqGNdllh d4lyGwrnl7Str/Ycn0TgYjycigyfiVfgZxgXUEJj7KZZBrRmu4+2K/RFP BNubve29RFPiv1i0J5s1K3/iOivZN6JljqiVyMk6udC2fVkOeF/sNvTSc kPUaPx8TOwWZ7ZZtor/MfoU6wCNthBPMt+x1BoLAFePLE8e0A8eXhe8Pc A==; X-CSE-ConnectionGUID: C4Rty4uYTYWFl8COdHs3NQ== X-CSE-MsgGUID: YrP7BI/jQdqLfFKH/x3TqQ== X-IronPort-AV: E=McAfee;i="6800,10657,11777"; a="82593856" X-IronPort-AV: E=Sophos;i="6.23,219,1770624000"; d="scan'208";a="82593856" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2026 03:01:22 -0700 X-CSE-ConnectionGUID: BQ4GZaNNSt6YAfWaWz1qSA== X-CSE-MsgGUID: veRFzotUR9myo4u5WmRdgg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,219,1770624000"; d="scan'208";a="233440810" Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90]) by fmviesa008.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2026 03:01:18 -0700 Received: from FMSMSX902.amr.corp.intel.com (10.18.126.91) by fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Wed, 6 May 2026 03:01:18 -0700 Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by FMSMSX902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Wed, 6 May 2026 03:01:18 -0700 Received: from MW6PR02CU001.outbound.protection.outlook.com (52.101.48.26) by edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Wed, 6 May 2026 03:01:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V7TXVPDbFlMqtfIrqvAm77zPE1PbGtU6QM5W68Orc6lE26uFbdsDn4qqglPyfX/rm0q1m6lrZHs1V9W5kdw7AHGrDjBZGfPzqe9qbHGxVIlGPJSeKmK54f3ZB2O1pgob6jobS8Sr1WP3ooo4tVOoG4WtdrEtkMdfRREVjUdMje6K1vzMuqO/HfibQWwQG1m0m/C4gPG3v4LsVx74qHwC6+gvQBUQ2/8+UrNQWV4pPfBNYZwpXBOn8ojm4pPGNpORaCrBzKmESA6ZixTnuTsFu78Vd8ksnt+7+mTHS2ZBLwSdh39GOONIG05UShzOk2dZOUQXCJGRXRaDd0bFF1Z3dQ== 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=iqzYuDi+5uD0St2STgEo2FFhIWteLsJjgLUaYPSY9Jw=; b=Qhb4sN8uuNFrS0xZ1OrYKJPERn1ch9zue8a5HDHFF1qmPCGhYvYY9MCMAj4aQfHBMElPFVuhP7888jCQqZ6Wm/hRNj8XfsxMJFjdDSIe6+4zvuEHM65B+VHe3i1hQu4mXQHLbwNwRARpOmwec6miOnkxpFuDmvKpgV+MzQnFRSj9te/jCHrJsJFrgb0EcgpMEKOCkDvgvq7WUHaWmqW704uqlb7Of/jM6xZZbEFgduV4RbgPEYWk/8crkZAdyD7L4vEcNbIUourV/5OolhwnCrPxLp9ukbmSqRNqGqFPJIoEiR+7YKdA+rOf8I8u+Xga21LjriohUBDl/rRmKubkYA== 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 IA1PR11MB7175.namprd11.prod.outlook.com (2603:10b6:208:419::5) by SA0PR11MB7160.namprd11.prod.outlook.com (2603:10b6:806:24b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May 2026 10:01:14 +0000 Received: from IA1PR11MB7175.namprd11.prod.outlook.com ([fe80::cc3a:1f73:430f:472]) by IA1PR11MB7175.namprd11.prod.outlook.com ([fe80::cc3a:1f73:430f:472%3]) with mapi id 15.20.9870.023; Wed, 6 May 2026 10:01:14 +0000 From: "Bouhaouel, Mohamed" To: Pedro Alves , "gdb-patches@sourceware.org" Subject: RE: [PATCH v3 09/11] infrun: with AS+NS, prefer process exit over thread exit Thread-Topic: [PATCH v3 09/11] infrun: with AS+NS, prefer process exit over thread exit Thread-Index: AQHc2BVHOCuG70HOUkmDhAaKYHDy7rYAu6XA Date: Wed, 6 May 2026 10:01:14 +0000 Message-ID: References: <20260429201507.480870-1-pedro@palves.net> <20260429201507.480870-10-pedro@palves.net> In-Reply-To: <20260429201507.480870-10-pedro@palves.net> 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR11MB7175:EE_|SA0PR11MB7160:EE_ x-ms-office365-filtering-correlation-id: c52bfb41-9ee4-4578-8dd7-08deab5668d4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700021|13003099007|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: +tpEz/SiyvtDZiGc9R3Lnc6aWrfWPUSfGbQ3l7RhtpJhiUBu7Z1Hx+HcLZpGu8u6N2HZbOflmqbI2hXPPs1F9NCnuwftpUdINg4laV2H2+uWCGqI1t78LybDWG3hjY9IRZMyus0HEDNwU4VAqwNBkSNhvFg5qEEtHOC3CPuGI/PRg0bzCxwQavPJqR369iR02zUKlJKhSmViq0v2aZMHVm0fWJ1ms3KdyJJgAfayRtIgjGRfsErCQOpwJC7Yb6MiWlPWkvg0z9WGLkgi1qOplF/xB1NZ4ELOis2dHsDzk6TFi+KZNT2RSKVBU8EOWH1ERcfb4OchlHx6vmb/0V/n/FqQKficZiDbQQwzUdaoRDMQOKFZqb+ofYXCH4igBp4lw6lTURgWiCPtGLZSsVRWIqX4RzofZvIlQcnXwJYE6gQvDUADnhiAm5llFZHTI82yjXTuD7XdL2FEDleAW4iUZJlUhJ3nQWdkxXUEQCjKnQcHtpkjVbsGlpsuEjbQlj+Ogu6+XUT96rxSjaBvgWDDoXHP6MKGJvkLcCIprNlfwRyaGpc67n3oZv1vnkx5axGztZDNajdlPM88YMETsA2dz45iEzTFq49pEZcrE8Cf0sta3McYyCN/CTnQBQGAiCwgkby5jtMdT4HxOSWcFxyEpyFTRHArmJlUa8zDoj4hIBBqkbMTuuCAM1mxaBuqsO5/fFNWMjRjVyNfos+25E9ImA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR11MB7175.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(13003099007)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VCtRZk0zYjRwNnMraDNYV0ZrN1pXY3k3d0VwWnFqSU5FRzZoY0lGR0ExeHFz?= =?utf-8?B?VjkvTVhNMHM5azBFbENldDIvMmtpR2dSMlZlbjhnaEwzKzR0T21TaFhtVzFu?= =?utf-8?B?elFRVVREUlJobUJqYUpGK1F3WUd2U0YyWXREZUZFR2JLcVNyOEd5QUZIZGxK?= =?utf-8?B?RVhIdWp4V0JzRmJTZXRsV2R5NkdvVWxSWFYyekp4TlJ1NWhRMkozeG5yOWR4?= =?utf-8?B?aVhiRndTK0dLb0IyQUNCbjN1bU9RSGp4QS9VVWltNzkvVmgyL25YREh3Q1E1?= =?utf-8?B?cjhCSDZBc1IzQ1dyNXhVRTZlUUhrTTN1cXBrbTJlaHZ6MW5EcTBYb0t2T3VQ?= =?utf-8?B?OW5HZGVNY21sL3VRbXIwRlBMZ1ZEb09TN1VpRVppTWVVc1FxY0F2U09DMUIr?= =?utf-8?B?RGF2SzZHMXZGYzJSdnZGME9SZDQraEhkZ0ROS21TUnNDRERRQnA4SUQwWlN2?= =?utf-8?B?TWNMaG9LREJjNTdnd1hka2FXUjdNWmtSN2tuS2xaNXluOG9Gd2Jrb0FMRnhs?= =?utf-8?B?SVFLdnphNW5aendDOFpMUGFqYThSVEtHTGUrUFM3RUJJbndxMHZyRzJqdzl6?= =?utf-8?B?M1JydG8xNXhhaDdPWjk0R3JpYWxNOXZ0cStVSWp5UWZLZTErWjN2QW15Qjcy?= =?utf-8?B?YlhyYWdPeEdtbTF4eDNpZHdTNWJWNlN2aVpUOHo2ZTE3ODFDM0ZGZ3dManFs?= =?utf-8?B?eXpSQ0djeG9HTnYvYktPZEJ6SUtWd1dBQ2ozSWpnbWpiMXFtVTBxZWh5WEFy?= =?utf-8?B?QnJCMlZ6bzQ0RlJJWksrOWg5VDIvdWN1OEpCVnZlNlAyZlUwYTlOemdmek9h?= =?utf-8?B?dk1RTk1xRko5ZkRmdW8rVTBVQ29FZUt6WGZNb3IzUTdJYm1NNUxFWFdFaXBN?= =?utf-8?B?cER1R3VwT21wRHFVL2IxOWdnZXdWRHhqZnBYOE9kOUhZdjNTMjFpdFk2RTVx?= =?utf-8?B?ZXczb0hVK0E2ZFFsV1VqOEtJalRielFXTlVZeTE0NzdqQ29RMGRSQW9hRHJ5?= =?utf-8?B?NGtQQzlOVFk4bFl3aytlVC9xSUF1dml1WE5hOTQvNk9pN0VCMG9yZGdSeWJt?= =?utf-8?B?RVBMUHIzT1c1VlV6NW8wbldTVXhCVUJQNjB4Y3p1L0xTeW9UMm54QkNmVVpL?= =?utf-8?B?Ulp2eU9WL1MrN2RJbTN3ZXV3c2JmOTFGbHEzVVY0SExyRGlhbXZTRVM2RVMz?= =?utf-8?B?eTlOOHdIKzNBZlhEbzYwcXdteGJUZ0dtdzFXRHB2QUV0QmlBSXdHeFMyVGxl?= =?utf-8?B?VU0ybUtscVU1QThveVFvemJqM0t1TlF5RW9reENiR2NGWlFLVk0vM2tnOVl5?= =?utf-8?B?UEdvS1NBYkZJZ3FHVGZjNjlNSTQ4dmdzNDZXT1dRcit1RUZaSEFUbWJpckR4?= =?utf-8?B?eE02OVpZb2ZKcU9ON2hxb21yWWhMZ1NsdXhJMWRlT3dnZmErT014L2s4QWVo?= =?utf-8?B?cE1USm5TUEwrRjg3Z3NxVE5Tc3pCTS9lVWpEazd5MHpvWllBeGlqZUdGSUFW?= =?utf-8?B?NXJydXVpczVFbGNnZ1lHemtyR3FKMVhyQkhMM0FoYVRLMVFKYk9EZ1RnNGVk?= =?utf-8?B?MkFhb2p3TVlEWnlJY3NiamwzT1E1ODVTaXRwUlFKM21UNHBzZDJoaGptV2hK?= =?utf-8?B?aXJZaU1IU0JRRzkxRWZCQnRNMDVGOUQ1US9FdmRDUml4dXArWmNvRnJpMnNZ?= =?utf-8?B?MU90Z3Myd1JiU1VBUjErUFFnYTVYblBpT3FSY0FoM2xJNE9pUVB3QWV1bHhN?= =?utf-8?B?SWRWZzI4YXM1MW1SRENDRDhLOVB3SjMzNXIyR0wxTldHeWRtSllGb1lKcmlE?= =?utf-8?B?QjlKZzgxQTBGU1hJTzJLNUdjVHlXVFh5cFNlZG1OWEJ3Y0drWjRvbmtpMGlo?= =?utf-8?B?aEZVclFrT2pQcG9YR0M2WlJiRTJBWXNxa1N0MDd0cUgvQ1RheHo1VllGVFU2?= =?utf-8?B?T1FzeFFCYkdFSXRmajFvZ3dwMzN5L1A5T0NWa0lUUVZEdzdxVzR5WjNIblJr?= =?utf-8?B?aFVxbVBBMUw3KzY2S1oySXZHWnNReHdMU1Y2Ukc2cjlEcEx5ZCtkYnNKZGFL?= =?utf-8?B?TEExV2huT0duRXZKR3hlV0hkUDU1Nk9aVVUySzluUHVFQ0ZWUFpsM0taRGNn?= =?utf-8?B?VnpETEY2WXBDSDFQdEpkU0U5TnNVZmcxK0ZWMjJCNnhqdDZJWXhwTG9idS9Y?= =?utf-8?B?QVNJTzgzMjFuT09JQjdiclpITnVqdzVhRXNjVVRmbUgxRi82dWEvNVBHWUp1?= =?utf-8?B?OG9TTWxtMnRPY0RZN2ZqcWh2YURSUHptTUVRTTFaU2sySkkyK3YxRkZxS1hV?= =?utf-8?B?R1liWlAzVkFnMmxXdlBmUU51S0U0dEVJOWdVc1NWR3RYaWVaSHB4VXRHS1hq?= =?utf-8?Q?mIg8+5jS49jLNAyM=3D?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: M7C7wKgY7YFBfD6K8CiRwv3jVaxV4ejNJC81n2b4ZOr08AFSR0aDCt8p9w75bpoRPxGU94UCsnNCXV6qmzxbJX1FWbU6xQO5VKIleARh6lDm/vvidu4Ft4QJTlaD/HQYmwfbgrLQgU/35irY97edJ1kGgJJ/pBKvgljzIBPWYTN2tezwo6KSSKMmc1GZSdMJLoT0t6xTzUmTXcEsF+VhnSr3z9M2An9/PvNJ4Z0+3LbrvBg4rujoqb3TIKOolbMzDKNegfb/osfAunPQbu8gy6ROgM3+1CCNroCQ/Z1l4AkiqHsOrBDIjeFA5UQGaXxf/3K1FGlq9o1WiUY0KO4eVA== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7175.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c52bfb41-9ee4-4578-8dd7-08deab5668d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2026 10:01:14.6884 (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: edM7Qt4qEN6F2h4B/gA8RGCdrSJjiyeaMxh2hSH6wy86Mbfs++LCcluNkrO7msXT1j947lNPWs6/ZTGPZISPord5Xwz7L1E40AD/vrUEliM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB7160 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org SGkgUGVkcm8sDQoNCk9uIExpbnV4LCB3aXRoIGEgcmVtb3RlIG5vbi1zdG9wIHRhcmdldCAoQVMg b24gdG9wIG9mIE5TKSwgdGhlIHRlc3QgeW91IGFkZGVkDQppcyBmYWlsaW5nISBJc24ndCBpdCBz dXBwb3NlZCB0byBwYXNzIGluIHN1Y2ggc2NlbmFyaW8/DQoNCkkgc2VlIHRoZSBmb2xsb3dpbmcg bG9ncywgd2l0aG91dCB0aGUgIltJbmZlcmlvciAuLi4gZXhpdGVkIG5vcm1hbGx5XSIgbWVzc2Fn ZS4NCg0KICBCcmVha3BvaW50IDEsIG1haW4gKCkgYXQgL2hvbWUvZ3RhL3NvdXJjZXMvZ2RiLXdv cmt0cmVlcy91cHN0cmVhbS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3N0ZXAtb3Zlci1wcm9j ZXNzLWV4aXQuYzozOQ0KICAzOSAgICAgICAgIGFsYXJtICgzMCk7DQogIChnZGIpIHAgb3RoZXJf dGhyZWFkX2V4aXRzID0gMA0KICAkMSA9IDANCiAgKGdkYikgUEFTUzogZ2RiLnRocmVhZHMvc3Rl cC1vdmVyLXByb2Nlc3MtZXhpdC5leHA6IHdoaWNoPW1haW46IHAgb3RoZXJfdGhyZWFkX2V4aXRz ID0gMA0KICBicmVhayA0NA0KICBCcmVha3BvaW50IDIgYXQgMHg1NTU1NTU1NTUyMTY6IGZpbGUg L2hvbWUvZ3RhL3NvdXJjZXMvZ2RiLXdvcmt0cmVlcy91cHN0cmVhbS9nZGIvdGVzdHN1aXRlL2dk Yi50aHJlYWRzL3N0ZXAtb3Zlci1wcm9jZXNzLWV4aXQuYywgbGluZSA0NC4NCiAgKGdkYikgY29u dGludWUNCiAgQ29udGludWluZy4NCiAgW05ldyBUaHJlYWQgMTgxNTMuMTgxNTQgKGlkIDIpXQ0K DQogIFRocmVhZCAxICJzdGVwLW92ZXItcHJvY2UiIGhpdCBCcmVha3BvaW50IDIsIG1haW4gKCkg YXQgL2hvbWUvZ3RhL3NvdXJjZXMvZ2RiLXdvcmt0cmVlcy91cHN0cmVhbS9nZGIvdGVzdHN1aXRl L2dkYi50aHJlYWRzL3N0ZXAtb3Zlci1wcm9jZXNzLWV4aXQuYzo0NA0KICA0NCAgICAgICAgICAg ZXhpdCAoMCk7IC8qIGJyZWFrIGhlcmUgbWFpbiAqLw0KICAoZ2RiKSBQQVNTOiBnZGIudGhyZWFk cy9zdGVwLW92ZXItcHJvY2Vzcy1leGl0LmV4cDogd2hpY2g9bWFpbjogY29udGludWUgdG8gYnJl YWtwb2ludDogZXhpdCBzeXNjYWxsDQogIG1haW50IHNob3cgdGFyZ2V0LW5vbi1zdG9wDQogIFdo ZXRoZXIgdGhlIHRhcmdldCBpcyBhbHdheXMgaW4gbm9uLXN0b3AgbW9kZSBpcyBvbi4NCiAgKGdk YikgbmV4dA0KICBbVGhyZWFkIDE4MTUzLjE4MTUzIChpZCAxKSBleGl0ZWRdDQogIHdhcm5pbmc6 IGVycm9yIHJlbW92aW5nIGJyZWFrcG9pbnQgMCBhdCAweDU1NTU1NTU1NTIyMA0KICB3YXJuaW5n OiBlcnJvciByZW1vdmluZyBicmVha3BvaW50IDAgYXQgMHg1NTU1NTU1NTUyMjANCiAgd2Fybmlu ZzogZXJyb3IgcmVtb3ZpbmcgYnJlYWtwb2ludCAwIGF0IDB4NTU1NTU1NTU1MjIwDQogIFJlbW90 ZSBjb21tdW5pY2F0aW9uIGVycm9yLiAgVGFyZ2V0IGRpc2Nvbm5lY3RlZDogZXJyb3Igd2hpbGUg cmVhZGluZzogQ29ubmVjdGlvbiByZXNldCBieSBwZWVyLg0KICAoZ2RiKSBGQUlMOiBnZGIudGhy ZWFkcy9zdGVwLW92ZXItcHJvY2Vzcy1leGl0LmV4cDogd2hpY2g9bWFpbjogbmV4dA0KDQpUbyBy ZXByb2R1Y2UsIHNpbXBseSBydW4gZ2RiLnRocmVhZHMvc3RlcC1vdmVyLXByb2Nlc3MtZXhpdC5l eHAgd2l0aDoNCg0KICBleHBvcnQgR0RCRkxBR1M9Ii1leCBcIm1haW50IHNldCB0YXJnZXQtbm9u LXN0b3Agb25cIiINCg0KUmVnYXJkcywNCi0tTW9oYW1lZA0KDQoNCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogUGVkcm8gQWx2ZXMgPHBlZHJvQHBhbHZlcy5uZXQ+DQo+IFNl bnQ6IFdlZG5lc2RheSwgMjkgQXByaWwgMjAyNiAyMjoxNQ0KPiBUbzogZ2RiLXBhdGNoZXNAc291 cmNld2FyZS5vcmcNCj4gU3ViamVjdDogW1BBVENIIHYzIDA5LzExXSBpbmZydW46IHdpdGggQVMr TlMsIHByZWZlciBwcm9jZXNzIGV4aXQgb3ZlciB0aHJlYWQNCj4gZXhpdA0KPiANCj4gVGhpcyBw YXRjaCBmaXhlcyBnZGIuYmFzZS9lbmRpbmctcnVuLmV4cCBmb3IgV2luZG93cyB3aGVuIHRoZSB0 YXJnZXQNCj4gYmFja2VuZCBzdXBwb3J0cyBub3RpZnlpbmcgaW5mcnVuIGFib3V0IHRocmVhZCBl eGl0IGV2ZW50cyAod2hpY2ggaXMNCj4gYWRkZWQgYnkgdGhlIFdpbmRvd3Mgbm9uLXN0b3Agc3Vw cG9ydCwgbGF0ZXIpLg0KPiANCj4gV2l0aG91dCB0aGlzIHBhdGNoLCBhbmQgd2l0aCB0aGUgV2lu ZG93cyB0YXJnZXQgaW4gbm9uLXN0b3AgbW9kZQ0KPiAoIm1haW50IHNldCB0YXJnZXQtbm9uLXN0 b3Agb24iKSwgd2UgZ2V0LCB3aGVuIHN0ZXBwaW5nIG91dCBvZiBtYWluOg0KPiANCj4gIChnZGIp IFBBU1M6IGdkYi5iYXNlL2VuZGluZy1ydW4uZXhwOiBTdGVwIHRvIHJldHVybg0KPiAgbmV4dA0K PiAgMzIgICAgICB9DQo+ICAoZ2RiKSBuZXh0DQo+ICBbVGhyZWFkIDc5NTYuMHgyNjU4IGV4aXRl ZF0NCj4gIFtUaHJlYWQgNzk1Ni4weDI1MDAgZXhpdGVkXQ0KPiAgW1RocmVhZCA3OTU2LjB4Mjc5 OCBleGl0ZWRdDQo+ICBDb21tYW5kIGFib3J0ZWQsIHRocmVhZCBleGl0ZWQuDQo+ICAoZ2RiKSBG QUlMOiBnZGIuYmFzZS9lbmRpbmctcnVuLmV4cDogc3RlcCBvdXQgb2YgbWFpbg0KPiANCj4gV2l0 aCB0aGUgcGF0Y2gsIHdlIGdldDoNCj4gDQo+ICAoZ2RiKSBuZXh0DQo+ICBbVGhyZWFkIDk0MjQu MHg0MGMgZXhpdGVkXQ0KPiAgW0luZmVyaW9yIDEgKHByb2Nlc3MgOTQyNCkgZXhpdGVkIG5vcm1h bGx5XQ0KPiAgKGdkYikgUEFTUzogZ2RiLmJhc2UvZW5kaW5nLXJ1bi5leHA6IHN0ZXAgb3V0IG9m IG1haW4NCj4gDQo+IEluIHRoZSBmYWlsaW5nIGNhc2UsIHdoYXQgaGFwcGVucyBpcyB0aGF0ICJu ZXh0IiBlbmFibGVzDQo+IHRhcmdldF90aHJlYWRfZXZlbnRzLiAgVGhlbiwgdGhlIG1haW4gdGhy ZWFkIGNhdXNlcyB0aGUgd2hvbGUgcHJvY2Vzcw0KPiB0byBleGl0LiAgT24gV2luZG93cywgdGhh dCBtYWtlcyB0aGUgbWFpbiB0aHJlYWQgcmVwb3J0IGEgdGhyZWFkIGV4aXQNCj4gZXZlbnQsIGZv bGxvd2VkIGJ5IHRocmVhZCBleGl0IGV2ZW50cyBmb3IgYWxsIG90aGVyIHRocmVhZHMsIGV4Y2Vw dA0KPiB0aGUgbGFzdCB0aHJlYWQgdGhhdCBoYXBwZW5zIHRvIGJlIHRoZSBvbmUgdGhhdCBleGl0 cyBsYXN0LiAgVGhhdCBsYXN0DQo+IG9uZSByZXBvcnRzIGFuIGV4aXQtcHJvY2VzcyBldmVudCBp bnN0ZWFkLg0KPiANCj4gU2luY2UgIm5leHQiIGVuYWJsZWQgdGFyZ2V0X3RocmVhZF9ldmVudHMs IHRoZSBXaW5kb3dzIHRhcmdldCBiYWNrZW5kDQo+IHJlcG9ydHMgdGhlIG1haW4gdGhyZWFkJ3Mg ZXhpdCBldmVudCB0byBpbmZydW4uICBBbmQgdGhlbiwgc2luY2UgdGhlDQo+IHRocmVhZCB0aGF0 IHdhcyBzdGVwcGluZyByZXBvcnRlZCBhIHRocmVhZC1leGl0LCBHREIgYWJvcnRzIHRoZSAibmV4 dCINCj4gY29tbWFuZC4NCj4gDQo+IFN0ZXBwaW5nIG91dCBvZiBtYWluIGlzIGEgdmVyeSBjb21t b24gdGhpbmcgdG8gZG8sIGFuZCBJIHRoaW5rDQo+IHJlcG9ydGluZyB0aGUgdGhyZWFkIGV4aXQg aW4gdGhpcyBjYXNlIHdoZW4gdGhlIHdob2xlIHByb2Nlc3MgaXMNCj4gZXhpdGluZyBpc24ndCB2 ZXJ5IHVzZWZ1bC4gIEkgdGhpbmsgd2UgY2FuIGRvIGJldHRlci4gIFNvIGluc3RlYWQsIGlmDQo+ IHdlJ3JlIGFib3V0IHRvIHJlcG9ydCBhIHRocmVhZCBleGl0IGluIGFsbC1zdG9wIG1vZGUgd2l0 aCB0aGUgYmFja2VuZA0KPiBpbiBub24tc3RvcCBtb2RlLCBhbmQgd2hpbGUgc3RvcHBpbmcgYWxs IHRocmVhZHMsIHdlIHNlZSBhDQo+IHdob2xlLXByb2Nlc3MtZXhpdCBldmVudCwgcHJlZmVyIHBy b2Nlc3NpbmcgdGhhdCBldmVudCBpbnN0ZWFkIG9mDQo+IHJlcG9ydGluZyB0aGUgb3JpZ2luYWwg dGhyZWFkIGV4aXQuDQo+IA0KPiBBIHNpbWlsYXIgaXNzdWUgY2FuIGJlIHRyaWdnZXJlZCBvbiBH TlUvTGludXggYXMgd2VsbCwgaWYgd2Ugc3RlcCBvdmVyDQo+IGFuIGV4aXQgc3lzY2FsbCB0aGF0 IGlzIGNhbGxlZCBieSBhbnkgdGhyZWFkIG90aGVyIHRoYW4gbWFpbi4gIFRoaXMNCj4gc2NlbmFy aW8gaXMgZXhlcmNpc2VkIGJ5IHRoZSBuZXcgdGVzdGNhc2UgYWRkZWQgYnkgdGhpcyBwYXRjaC4N Cj4gDQo+IFdpdGhvdXQgdGhlIHBhdGNoLCB0aGUgdGVzdGNhc2Ugc2hvd3M6DQo+IA0KPiAgKGdk YikgbmV4dA0KPiAgW1RocmVhZCAweDdmZmZmN2EwMDY0MCAoTFdQIDMyMDcyNDMpIGV4aXRlZF0N Cj4gIHdhcm5pbmc6IGVycm9yIHJlbW92aW5nIGJyZWFrcG9pbnQgMCBhdCAweDU1NTU1NTU1NTFj Mw0KPiAgd2FybmluZzogZXJyb3IgcmVtb3ZpbmcgYnJlYWtwb2ludCAwIGF0IDB4NTU1NTU1NTU1 MWMzDQo+ICB3YXJuaW5nOiBlcnJvciByZW1vdmluZyBicmVha3BvaW50IDAgYXQgMHg1NTU1NTU1 NTUxYzMNCj4gIENvbW1hbmQgYWJvcnRlZCwgdGhyZWFkIGV4aXRlZC4NCj4gIENhbm5vdCByZW1v dmUgYnJlYWtwb2ludHMgYmVjYXVzZSBwcm9ncmFtIGlzIG5vIGxvbmdlciB3cml0YWJsZS4NCj4g IEZ1cnRoZXIgZXhlY3V0aW9uIGlzIHByb2JhYmx5IGltcG9zc2libGUuDQo+ICAoZ2RiKQ0KPiAN Cj4gVGhpcyBpcyBmaXhlZCBmb3IgR05VL0xpbnV4IGJ5IHRoZSBwYXRjaCwgd2hpY2ggcmVzdWx0 cyBpbjoNCj4gDQo+ICAoZ2RiKSBuZXh0DQo+ICBbVGhyZWFkIDB4N2ZmZmY3YTAwNjQwIChMV1Ag MzIzMDU1MCkgZXhpdGVkXQ0KPiAgd2FybmluZzogZXJyb3IgcmVtb3ZpbmcgYnJlYWtwb2ludCAw IGF0IDB4NTU1NTU1NTU1MWMzDQo+ICB3YXJuaW5nOiBlcnJvciByZW1vdmluZyBicmVha3BvaW50 IDAgYXQgMHg1NTU1NTU1NTUxYzMNCj4gIHdhcm5pbmc6IGVycm9yIHJlbW92aW5nIGJyZWFrcG9p bnQgMCBhdCAweDU1NTU1NTU1NTFjMw0KPiAgW0luZmVyaW9yIDEgKHByb2Nlc3MgMzIzMDUzOSkg ZXhpdGVkIG5vcm1hbGx5XQ0KPiAgKGdkYikNCj4gDQo+IFB1cmUgYWxsLXN0b3AgdGFyZ2V0cyAo c3VjaCBhcyBHTlUvTGludXggR0RCc2VydmVyIHVubGVzcyB5b3UgZm9yY2UNCj4gbm9uLXN0b3Ag d2l0aCAibWFpbnQgc2V0IHRhcmdldC1ub24tc3RvcCBvbiIpIHdpbGwgdW5mb3J0dW5hdGVseSBz dGlsbA0KPiBoYXZlIHRoZSAiRnVydGhlciBleGVjdXRpb24gaXMgcHJvYmFibHkgaW1wb3NzaWJs ZS4iIGJlaGF2aW9yLCBiZWNhdXNlDQo+IEdEQiBjYW4ndCBzZWUgdGhlIHByb2Nlc3MtZXhpdCBl dmVudCB1bnRpbCB0aGUgdGFyZ2V0IGlzIHJlLXJlc3VtZWQuDQo+IFRoYXQncyB1bmZvcnR1bmF0 ZSwgYnV0IEkgZG9uJ3QgdGhpbmsgdGhhdCBzaG91bGQgcHJldmVudCBpbXByb3ZpbmcNCj4gbm9u LXN0b3AgdGFyZ2V0cy4gIChBbmQgZXZlbnR1YWxseSBJIHdvdWxkIGxpa2UgcmVtb3RlIHRhcmdl dHMgdG8gYmUNCj4gYWx3YXlzICJtYWludCBzZXQgdGFyZ2V0LW5vbi1zdG9wIG9uIiBieSBkZWZh dWx0IGlmIHBvc3NpYmxlLCB0b28uKQ0KPiANCj4gQ2hhbmdlLUlkOiBJNTY1NTlmMTNlMDRhZWFm ZDgxMmQxNWU0YjQwOGM4MzM3YmNhNTI5NA0KPiAtLS0NCj4gIGdkYi9pbmZydW4uYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwOSArKysrKysrKysrKystLS0tLS0NCj4gIC4u Li9nZGIudGhyZWFkcy9zdGVwLW92ZXItcHJvY2Vzcy1leGl0LmMgICAgICB8ICA0OSArKysrDQo+ ICAuLi4vZ2RiLnRocmVhZHMvc3RlcC1vdmVyLXByb2Nlc3MtZXhpdC5leHAgICAgfCAgNjYgKysr KysrDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlvbnMo LSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3N0ZXAt b3Zlci1wcm9jZXNzLWV4aXQuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUv Z2RiLnRocmVhZHMvc3RlcC1vdmVyLXByb2Nlc3MtZXhpdC5leHANCj4gDQo+IGRpZmYgLS1naXQg YS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMNCj4gaW5kZXggYWVkNjZiZjg0NGUuLjExYzVk NTIxNGQ2IDEwMDY0NA0KPiAtLS0gYS9nZGIvaW5mcnVuLmMNCj4gKysrIGIvZ2RiL2luZnJ1bi5j DQo+IEBAIC0xMDksNiArMTA5LDggQEAgc3RhdGljIGJvb2wgc3RlcF9vdmVyX2luZm9fdmFsaWRf cCAodm9pZCk7DQo+IA0KPiAgc3RhdGljIGJvb2wgc2NoZWRsb2NrX2FwcGxpZXMgKHN0cnVjdCB0 aHJlYWRfaW5mbyAqdHApOw0KPiANCj4gK3N0YXRpYyB2b2lkIGhhbmRsZV9wcm9jZXNzX2V4aXRl ZCAoc3RydWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpOw0KPiArDQo+ICAvKiBBc3lu Y2hyb25vdXMgc2lnbmFsIGhhbmRsZXIgcmVnaXN0ZXJlZCBhcyBldmVudCBsb29wIHNvdXJjZSBm b3INCj4gICAgIHdoZW4gd2UgaGF2ZSBwZW5kaW5nIGV2ZW50cyByZWFkeSB0byBiZSBwYXNzZWQg dG8gdGhlIGNvcmUuICAqLw0KPiAgc3RhdGljIHN0cnVjdCBhc3luY19ldmVudF9oYW5kbGVyICpp bmZydW5fYXN5bmNfaW5mZXJpb3JfZXZlbnRfdG9rZW47DQo+IEBAIC00Nzc4LDcgKzQ3ODAsNjgg QEAgZmV0Y2hfaW5mZXJpb3JfZXZlbnQgKCkNCj4gIAkgICAgICAgZG9uJ3Qgd2FudCB0byBzdG9w IGFsbCB0aGUgb3RoZXIgdGhyZWFkcy4gICovDQo+ICAJICAgIGlmIChlY3MuZXZlbnRfdGhyZWFk ID09IG51bGxwdHINCj4gIAkJfHwgIWVjcy5ldmVudF90aHJlYWQtPmNvbnRyb2wuaW5fY29uZF9l dmFsKQ0KPiAtCSAgICAgIHN0b3BfYWxsX3RocmVhZHNfaWZfYWxsX3N0b3BfbW9kZSAoKTsNCj4g KwkgICAgICB7DQo+ICsJCXN0b3BfYWxsX3RocmVhZHNfaWZfYWxsX3N0b3BfbW9kZSAoKTsNCj4g Kw0KPiArCQkvKiBTYXkgdGhlIHVzZXIgZG9lcyAibmV4dCIgb3ZlciBhbiBleGl0KDApIGNhbGws IG9yDQo+ICsJCSAgIG91dCBvZiBtYWluLCBlaXRoZXIgb2Ygd2hpY2ggbWFrZSB0aGUgd2hvbGUg cHJvY2Vzcw0KPiArCQkgICBleGl0LiAgSWYgdGhlIHRhcmdldCBzdXBwb3J0cyB0YXJnZXRfdGhy ZWFkX2V2ZW50cywNCj4gKwkJICAgdGhlbiB0aGF0IGlzIGFjdGl2YXRlZCB3aGlsZSAibmV4dCIg aXMgaW4gcHJvZ3Jlc3MsDQo+ICsJCSAgIGFuZCBjb25zZXF1ZW50bHkgd2UgbWF5IGJlIHByb2Nl c3NpbmcgYSB0aHJlYWQtZXhpdA0KPiArCQkgICBldmVudCAoY2F1c2VkIGJ5IHRoZSBwcm9jZXNz IGV4aXQpIGZvciBhIHRocmVhZA0KPiArCQkgICB0aGF0IHJlcG9ydGVkIGl0cyBleGl0IGJlZm9y ZSB0aGUNCj4gKwkJICAgd2hvbGUtcHJvY2Vzcy1leGl0IGV2ZW50IGlzIHJlcG9ydGVkIGZvciBh bm90aGVyDQo+ICsJCSAgIHRocmVhZCAod2hpY2ggaXMgbm9ybWFsbHkgZ29pbmcgdG8gYmUgdGhl IGxhc3QNCj4gKwkJICAgZXZlbnQgb3V0IG9mIHRoZSBpbmZlcmlvciwgYnV0IHdlIGRvbid0IGtu b3cgZm9yDQo+ICsJCSAgIHdoaWNoIHRocmVhZCBpdCB3aWxsIGJlKS4NCj4gKw0KPiArCQkgICBJ ZiB3ZSdyZSBpbiAnYWxsLXN0b3Agb24gdG9wIG9mIG5vbi1zdG9wJyBtb2RlLCBhbmQNCj4gKwkJ ICAgaW5kZWVkIHRoZSBpbmZlcmlvciBwcm9jZXNzIGlzIGV4aXRpbmcsIHRoZW4gdGhlDQo+ICsJ CSAgIHN0b3BfYWxsX3RocmVhZHNfaWZfYWxsX3N0b3BfbW9kZSBjYWxsIGFib3ZlIG11c3QNCj4g KwkJICAgaGF2ZSBzZWVuIHRoZSBwcm9jZXNzLWV4aXQgZXZlbnQsIGFzIGl0IHdpbGwgc2VlDQo+ ICsJCSAgIG9uZSBzdG9wIGZvciBlYWNoIGFuZCBldmVyeSAocnVubmluZykgdGhyZWFkIG9mIHRo ZQ0KPiArCQkgICBwcm9jZXNzLiAgTG9vayBhdCB0aGUgcGVuZGluZyBzdGF0dXNlcyBvZiBhbGwN Cj4gKwkJICAgdGhyZWFkcywgYW5kIHNlZSBpZiB3ZSBoYXZlIGEgcHJvY2Vzcy1leGl0IHN0YXR1 cy4NCj4gKwkJICAgSWYgc28sIHByZWZlciBoYW5kbGluZyBpdCBub3cgYW5kIHJlcG9ydCB0aGUN Cj4gKwkJICAgaW5mZXJpb3IgZXhpdCB0byB0aGUgdXNlciBpbnN0ZWFkIG9mIHJlcG9ydGluZyB0 aGUNCj4gKwkJICAgb3JpZ2luYWwgdGhyZWFkIGV4aXQuDQo+ICsNCj4gKwkJICAgRG8gbm90IGRv IHRoaXMgaWYgYXJlIGhhbmRsaW5nIGFueSBvdGhlciBraW5kIG9mDQo+ICsJCSAgIGV2ZW50LCBs aWtlIGUuZy4sIGEgYnJlYWtwb2ludCBoaXQsIHdoaWNoIHRoZSB1c2VyDQo+ICsJCSAgIG1heSBi ZSBpbnRlcmVzdGVkIGluIGtub3dpbmcgd2FzIGhpdCBiZWZvcmUgdGhlDQo+ICsJCSAgIHByb2Nl c3MgZXhpdGVkLiAgSWYgd2UgZXZlciBoYXZlIGEgImNhdGNoDQo+ICsJCSAgIHRocmVhZC1leGl0 IiBvciBzb21ldGhpbmcgc2ltaWxhciwgd2UgbWF5IHdhbnQgdG8NCj4gKwkJICAgc2tpcCB0aGlz ICJwcmVmZXIgcHJvY2Vzcy1leGl0IiBpZiBzdWNoIGENCj4gKwkJICAgY2F0Y2hwb2ludCBpcyBp bnN0YWxsZWQuICAqLw0KPiArCQlpZiAoZWNzLndzLmtpbmQgKCkgPT0gVEFSR0VUX1dBSVRLSU5E X1RIUkVBRF9FWElURUQNCj4gKwkJICAgICYmICFub25fc3RvcCAmJiBleGlzdHNfbm9uX3N0b3Bf dGFyZ2V0ICgpKQ0KPiArCQkgIHsNCj4gKwkJICAgIGZvciAodGhyZWFkX2luZm8gJnRocmVhZCA6 IGluZi0+bm9uX2V4aXRlZF90aHJlYWRzICgpKQ0KPiArCQkgICAgICB7DQo+ICsJCQlpZiAodGhy ZWFkLmhhc19wZW5kaW5nX3dhaXRzdGF0dXMgKCkNCj4gKwkJCSAgICAmJiAoKHRocmVhZC5wZW5k aW5nX3dhaXRzdGF0dXMgKCkua2luZCAoKQ0KPiArCQkJCSA9PSBUQVJHRVRfV0FJVEtJTkRfRVhJ VEVEKQ0KPiArCQkJCXx8ICh0aHJlYWQucGVuZGluZ193YWl0c3RhdHVzICgpLmtpbmQgKCkNCj4g KwkJCQkgICAgPT0gVEFSR0VUX1dBSVRLSU5EX1NJR05BTExFRCkpKQ0KPiArCQkJICB7DQo+ICsJ CQkgICAgLyogRm91bmQgYSBwZW5kaW5nIHByb2Nlc3MtZXhpdCBldmVudC4NCj4gKwkJCSAgICAg ICBQcmVmZXIgaGFuZGxpbmcgYW5kIHJlcG9ydGluZyBpdCBub3cNCj4gKwkJCSAgICAgICBvdmVy IHRoZSB0aHJlYWQtZXhpdCBldmVudC4gICovDQo+ICsJCQkgICAgaW5mcnVuX2RlYnVnX3ByaW50 Zg0KPiArCQkJICAgICAgKCJmb3VuZCBwZW5kaW5nIHByb2Nlc3MtZXhpdCBldmVudCwgcHJlZmVy cmluZw0KPiBpdCIpOw0KPiArCQkJICAgIGVjcy53cyA9IHRocmVhZC5wZW5kaW5nX3dhaXRzdGF0 dXMgKCk7DQo+ICsJCQkgICAgdGhyZWFkLmNsZWFyX3BlbmRpbmdfd2FpdHN0YXR1cyAoKTsNCj4g KwkJCSAgICBlY3MuZXZlbnRfdGhyZWFkID0gbnVsbHB0cjsNCj4gKwkJCSAgICBlY3MucHRpZCA9 IHRocmVhZC5wdGlkOw0KPiArCQkJICAgIC8qIFJlLXJlY29yZCB0aGUgbGFzdCB0YXJnZXQgc3Rh dHVzLiAgKi8NCj4gKwkJCSAgICBzZXRfbGFzdF90YXJnZXRfc3RhdHVzIChlY3MudGFyZ2V0LCBl Y3MucHRpZCwNCj4gKwkJCQkJCSAgICBlY3Mud3MpOw0KPiArCQkJICAgIGhhbmRsZV9wcm9jZXNz X2V4aXRlZCAoJmVjcyk7DQo+ICsJCQkgICAgYnJlYWs7DQo+ICsJCQkgIH0NCj4gKwkJICAgICAg fQ0KPiArCQkgIH0NCj4gKwkgICAgICB9DQo+IA0KPiAgCSAgICBjbGVhbl91cF9qdXN0X3N0b3Bw ZWRfdGhyZWFkc19mc21zICgmZWNzKTsNCj4gDQo+IEBAIC02MTA0LDYgKzYxNjcsODEgQEAgaGFu ZGxlX3RocmVhZF9leGl0ZWQgKGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlDQo+ICplY3MpDQo+ICAg IHJldHVybiB0cnVlOw0KPiAgfQ0KPiANCj4gKy8qIEhhbmRsZSBhIHByb2Nlc3MgZXhpdCBldmVu dC4gICovDQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtoYW5kbGVfcHJvY2Vzc19leGl0ZWQgKGV4 ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpDQo+ICt7DQo+ICsgIC8qIERlcGVuZGluZyBvbiB0 aGUgc3lzdGVtLCBlY3MtPnB0aWQgbWF5IHBvaW50IHRvIGEgdGhyZWFkIG9yIHRvIGENCj4gKyAg ICAgcHJvY2Vzcy4gIE9uIHNvbWUgdGFyZ2V0cywgdGFyZ2V0X21vdXJuX2luZmVyaW9yIG1heSBu ZWVkIHRvIGhhdmUNCj4gKyAgICAgYWNjZXNzIHRvIHRoZSBqdXN0LWV4aXRlZCB0aHJlYWQuICBU aGF0IGlzIHRoZSBjYXNlIG9mDQo+ICsgICAgIEdOVS9MaW51eCdzICJjaGVja3BvaW50IiBzdXBw b3J0LCBmb3IgZXhhbXBsZS4gIFN3aXRjaCBjb250ZXh0DQo+ICsgICAgIGFwcHJvcHJpYXRlbHku ICAqLw0KPiArICB0aHJlYWRfaW5mbyAqdGhyID0gZWNzLT50YXJnZXQtPmZpbmRfdGhyZWFkIChl Y3MtPnB0aWQpOw0KPiArICBpZiAodGhyICE9IG51bGxwdHIpDQo+ICsgICAgc3dpdGNoX3RvX3Ro cmVhZCAodGhyKTsNCj4gKyAgZWxzZQ0KPiArICAgIHsNCj4gKyAgICAgIGluZmVyaW9yICppbmYg PSBmaW5kX2luZmVyaW9yX3B0aWQgKGVjcy0+dGFyZ2V0LCBlY3MtPnB0aWQpOw0KPiArICAgICAg c3dpdGNoX3RvX2luZmVyaW9yX25vX3RocmVhZCAoaW5mKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAg aGFuZGxlX3Zmb3JrX2NoaWxkX2V4ZWNfb3JfZXhpdCAoMCk7DQo+ICsgIHRhcmdldF90ZXJtaW5h bDo6b3VycyAoKTsJLyogTXVzdCBkbyB0aGlzIGJlZm9yZSBtb3VybiBhbnl3YXkuICAqLw0KPiAr DQo+ICsgIC8qIENsZWFyaW5nIGFueSBwcmV2aW91cyBzdGF0ZSBvZiBjb252ZW5pZW5jZSB2YXJp YWJsZXMuICAqLw0KPiArICBjbGVhcl9leGl0X2NvbnZlbmllbmNlX3ZhcnMgKCk7DQo+ICsNCj4g KyAgaWYgKGVjcy0+d3Mua2luZCAoKSA9PSBUQVJHRVRfV0FJVEtJTkRfRVhJVEVEKQ0KPiArICAg IHsNCj4gKyAgICAgIC8qIFJlY29yZCB0aGUgZXhpdCBjb2RlIGluIHRoZSBjb252ZW5pZW5jZSB2 YXJpYWJsZSAkX2V4aXRjb2RlLA0KPiArCSBzbyB0aGF0IHRoZSB1c2VyIGNhbiBpbnNwZWN0IHRo aXMgYWdhaW4gbGF0ZXIuICAqLw0KPiArICAgICAgc2V0X2ludGVybmFsdmFyX2ludGVnZXIgKGxv b2t1cF9pbnRlcm5hbHZhciAoIl9leGl0Y29kZSIpLA0KPiArCQkJICAgICAgIChMT05HRVNUKSBl Y3MtPndzLmV4aXRfc3RhdHVzICgpKTsNCj4gKw0KPiArICAgICAgLyogQWxzbyByZWNvcmQgdGhp cyBpbiB0aGUgaW5mZXJpb3IgaXRzZWxmLiAgKi8NCj4gKyAgICAgIGN1cnJlbnRfaW5mZXJpb3Ig KCktPmhhc19leGl0X2NvZGUgPSB0cnVlOw0KPiArICAgICAgY3VycmVudF9pbmZlcmlvciAoKS0+ ZXhpdF9jb2RlID0gKExPTkdFU1QpIGVjcy0+d3MuZXhpdF9zdGF0dXMgKCk7DQo+ICsNCj4gKyAg ICAgIC8qIFN1cHBvcnQgdGhlIC0tcmV0dXJuLWNoaWxkLXJlc3VsdCBvcHRpb24uICAqLw0KPiAr ICAgICAgcmV0dXJuX2NoaWxkX3Jlc3VsdF92YWx1ZSA9IGVjcy0+d3MuZXhpdF9zdGF0dXMgKCk7 DQo+ICsNCj4gKyAgICAgIGludGVycHNfbm90aWZ5X2V4aXRlZCAoZWNzLT53cy5leGl0X3N0YXR1 cyAoKSk7DQo+ICsgICAgfQ0KPiArICBlbHNlDQo+ICsgICAgew0KPiArICAgICAgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2ggPSBjdXJyZW50X2luZmVyaW9yICgpLT5hcmNoICgpOw0KPiArDQo+ICsg ICAgICBpZiAoZ2RiYXJjaF9nZGJfc2lnbmFsX3RvX3RhcmdldF9wIChnZGJhcmNoKSkNCj4gKwl7 DQo+ICsJICAvKiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCB2YXJpYWJsZSAkX2V4aXRz aWduYWwsDQo+ICsJICAgICB3aGljaCBob2xkcyB0aGUgc2lnbmFsIHVuY2F1Z2h0IGJ5IHRoZSBp bmZlcmlvci4gICovDQo+ICsJICBzZXRfaW50ZXJuYWx2YXJfaW50ZWdlciAobG9va3VwX2ludGVy bmFsdmFyICgiX2V4aXRzaWduYWwiKSwNCj4gKwkJCQkgICBnZGJhcmNoX2dkYl9zaWduYWxfdG9f dGFyZ2V0IChnZGJhcmNoLA0KPiArCQkJCQkJCQkgZWNzLT53cy5zaWcNCj4gKCkpKTsNCj4gKwl9 DQo+ICsgICAgICBlbHNlDQo+ICsJew0KPiArCSAgLyogV2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8g dGhlIHRhcmdldCdzIG1ldGhvZCB1c2VkIGZvcg0KPiArCSAgICAgY29udmVydGluZyBiZXR3ZWVu IHNpZ25hbCBudW1iZXJzIChHREIncyBpbnRlcm5hbA0KPiArCSAgICAgcmVwcmVzZW50YXRpb24g PC0+IHRhcmdldCdzIHJlcHJlc2VudGF0aW9uKS4NCj4gKwkgICAgIFRoZXJlZm9yZSwgd2UgY2Fu bm90IGRvIGEgZ29vZCBqb2IgYXQgZGlzcGxheWluZyB0aGlzDQo+ICsJICAgICBpbmZvcm1hdGlv biB0byB0aGUgdXNlci4gIEl0J3MgYmV0dGVyIHRvIGp1c3Qgd2Fybg0KPiArCSAgICAgaGVyIGFi b3V0IGl0IChpZiBpbmZydW4gZGVidWdnaW5nIGlzIGVuYWJsZWQpLCBhbmQNCj4gKwkgICAgIGdp dmUgdXAuICAqLw0KPiArCSAgaW5mcnVuX2RlYnVnX3ByaW50ZiAoIkNhbm5vdCBmaWxsICRfZXhp dHNpZ25hbCB3aXRoIHRoZSBjb3JyZWN0ICINCj4gKwkJCSAgICAgICAic2lnbmFsIG51bWJlci4i KTsNCj4gKwl9DQo+ICsNCj4gKyAgICAgIGludGVycHNfbm90aWZ5X3NpZ25hbF9leGl0ZWQgKGVj cy0+d3Muc2lnICgpKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgZ2RiX2ZsdXNoIChnZGJfc3Rkb3V0 KTsNCj4gKyAgdGFyZ2V0X21vdXJuX2luZmVyaW9yIChpbmZlcmlvcl9wdGlkKTsNCj4gKyAgc3Rv cF9wcmludF9mcmFtZSA9IGZhbHNlOw0KPiArICBzdG9wX3dhaXRpbmcgKGVjcyk7DQo+ICt9DQo+ ICsNCj4gIC8qIEdpdmVuIGFuIGV4ZWN1dGlvbiBjb250cm9sIHN0YXRlIHRoYXQgaGFzIGJlZW4g ZnJlc2hseSBmaWxsZWQgaW4gYnkNCj4gICAgIGFuIGV2ZW50IGZyb20gdGhlIGluZmVyaW9yLCBm aWd1cmUgb3V0IHdoYXQgaXQgbWVhbnMgYW5kIHRha2UNCj4gICAgIGFwcHJvcHJpYXRlIGFjdGlv bi4NCj4gQEAgLTYzMTMsNzQgKzY0NTEsNyBAQCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVj dA0KPiBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQ0KPiANCj4gICAgICBjYXNlIFRBUkdF VF9XQUlUS0lORF9FWElURUQ6DQo+ICAgICAgY2FzZSBUQVJHRVRfV0FJVEtJTkRfU0lHTkFMTEVE Og0KPiAtICAgICAgew0KPiAtCS8qIERlcGVuZGluZyBvbiB0aGUgc3lzdGVtLCBlY3MtPnB0aWQg bWF5IHBvaW50IHRvIGEgdGhyZWFkIG9yDQo+IC0JICAgdG8gYSBwcm9jZXNzLiAgT24gc29tZSB0 YXJnZXRzLCB0YXJnZXRfbW91cm5faW5mZXJpb3IgbWF5DQo+IC0JICAgbmVlZCB0byBoYXZlIGFj Y2VzcyB0byB0aGUganVzdC1leGl0ZWQgdGhyZWFkLiAgVGhhdCBpcyB0aGUNCj4gLQkgICBjYXNl IG9mIEdOVS9MaW51eCdzICJjaGVja3BvaW50IiBzdXBwb3J0LCBmb3IgZXhhbXBsZS4NCj4gLQkg ICBDYWxsIHRoZSBzd2l0Y2hfdG9feHh4IHJvdXRpbmUgYXMgYXBwcm9wcmlhdGUuICAqLw0KPiAt CXRocmVhZF9pbmZvICp0aHIgPSBlY3MtPnRhcmdldC0+ZmluZF90aHJlYWQgKGVjcy0+cHRpZCk7 DQo+IC0JaWYgKHRociAhPSBudWxscHRyKQ0KPiAtCSAgc3dpdGNoX3RvX3RocmVhZCAodGhyKTsN Cj4gLQllbHNlDQo+IC0JICB7DQo+IC0JICAgIGluZmVyaW9yICppbmYgPSBmaW5kX2luZmVyaW9y X3B0aWQgKGVjcy0+dGFyZ2V0LCBlY3MtPnB0aWQpOw0KPiAtCSAgICBzd2l0Y2hfdG9faW5mZXJp b3Jfbm9fdGhyZWFkIChpbmYpOw0KPiAtCSAgfQ0KPiAtICAgICAgfQ0KPiAtICAgICAgaGFuZGxl X3Zmb3JrX2NoaWxkX2V4ZWNfb3JfZXhpdCAoMCk7DQo+IC0gICAgICB0YXJnZXRfdGVybWluYWw6 Om91cnMgKCk7CS8qIE11c3QgZG8gdGhpcyBiZWZvcmUgbW91cm4gYW55d2F5LiAgKi8NCj4gLQ0K PiAtICAgICAgLyogQ2xlYXJpbmcgYW55IHByZXZpb3VzIHN0YXRlIG9mIGNvbnZlbmllbmNlIHZh cmlhYmxlcy4gICovDQo+IC0gICAgICBjbGVhcl9leGl0X2NvbnZlbmllbmNlX3ZhcnMgKCk7DQo+ IC0NCj4gLSAgICAgIGlmIChlY3MtPndzLmtpbmQgKCkgPT0gVEFSR0VUX1dBSVRLSU5EX0VYSVRF RCkNCj4gLQl7DQo+IC0JICAvKiBSZWNvcmQgdGhlIGV4aXQgY29kZSBpbiB0aGUgY29udmVuaWVu Y2UgdmFyaWFibGUgJF9leGl0Y29kZSwgc28NCj4gLQkgICAgIHRoYXQgdGhlIHVzZXIgY2FuIGlu c3BlY3QgdGhpcyBhZ2FpbiBsYXRlci4gICovDQo+IC0JICBzZXRfaW50ZXJuYWx2YXJfaW50ZWdl ciAobG9va3VwX2ludGVybmFsdmFyICgiX2V4aXRjb2RlIiksDQo+IC0JCQkJICAgKExPTkdFU1Qp IGVjcy0+d3MuZXhpdF9zdGF0dXMgKCkpOw0KPiAtDQo+IC0JICAvKiBBbHNvIHJlY29yZCB0aGlz IGluIHRoZSBpbmZlcmlvciBpdHNlbGYuICAqLw0KPiAtCSAgY3VycmVudF9pbmZlcmlvciAoKS0+ aGFzX2V4aXRfY29kZSA9IHRydWU7DQo+IC0JICBjdXJyZW50X2luZmVyaW9yICgpLT5leGl0X2Nv ZGUgPSAoTE9OR0VTVCkgZWNzLT53cy5leGl0X3N0YXR1cyAoKTsNCj4gLQ0KPiAtCSAgLyogU3Vw cG9ydCB0aGUgLS1yZXR1cm4tY2hpbGQtcmVzdWx0IG9wdGlvbi4gICovDQo+IC0JICByZXR1cm5f Y2hpbGRfcmVzdWx0X3ZhbHVlID0gZWNzLT53cy5leGl0X3N0YXR1cyAoKTsNCj4gLQ0KPiAtCSAg aW50ZXJwc19ub3RpZnlfZXhpdGVkIChlY3MtPndzLmV4aXRfc3RhdHVzICgpKTsNCj4gLQl9DQo+ IC0gICAgICBlbHNlDQo+IC0Jew0KPiAtCSAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBjdXJy ZW50X2luZmVyaW9yICgpLT5hcmNoICgpOw0KPiAtDQo+IC0JICBpZiAoZ2RiYXJjaF9nZGJfc2ln bmFsX3RvX3RhcmdldF9wIChnZGJhcmNoKSkNCj4gLQkgICAgew0KPiAtCSAgICAgIC8qIFNldCB0 aGUgdmFsdWUgb2YgdGhlIGludGVybmFsIHZhcmlhYmxlICRfZXhpdHNpZ25hbCwNCj4gLQkJIHdo aWNoIGhvbGRzIHRoZSBzaWduYWwgdW5jYXVnaHQgYnkgdGhlIGluZmVyaW9yLiAgKi8NCj4gLQkg ICAgICBzZXRfaW50ZXJuYWx2YXJfaW50ZWdlciAobG9va3VwX2ludGVybmFsdmFyICgiX2V4aXRz aWduYWwiKSwNCj4gLQkJCQkgICAgICAgZ2RiYXJjaF9nZGJfc2lnbmFsX3RvX3RhcmdldCAoZ2Ri YXJjaCwNCj4gLQkJCQkJCQkgIGVjcy0+d3Muc2lnICgpKSk7DQo+IC0JICAgIH0NCj4gLQkgIGVs c2UNCj4gLQkgICAgew0KPiAtCSAgICAgIC8qIFdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSB0 YXJnZXQncyBtZXRob2QgdXNlZCBmb3INCj4gLQkJIGNvbnZlcnRpbmcgYmV0d2VlbiBzaWduYWwg bnVtYmVycyAoR0RCJ3MgaW50ZXJuYWwNCj4gLQkJIHJlcHJlc2VudGF0aW9uIDwtPiB0YXJnZXQn cyByZXByZXNlbnRhdGlvbikuDQo+IC0JCSBUaGVyZWZvcmUsIHdlIGNhbm5vdCBkbyBhIGdvb2Qg am9iIGF0IGRpc3BsYXlpbmcgdGhpcw0KPiAtCQkgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuICBJ dCdzIGJldHRlciB0byBqdXN0IHdhcm4NCj4gLQkJIGhlciBhYm91dCBpdCAoaWYgaW5mcnVuIGRl YnVnZ2luZyBpcyBlbmFibGVkKSwgYW5kDQo+IC0JCSBnaXZlIHVwLiAgKi8NCj4gLQkgICAgICBp bmZydW5fZGVidWdfcHJpbnRmICgiQ2Fubm90IGZpbGwgJF9leGl0c2lnbmFsIHdpdGggdGhlIGNv cnJlY3QgIg0KPiAtCQkJCSAgICJzaWduYWwgbnVtYmVyLiIpOw0KPiAtCSAgICB9DQo+IC0NCj4g LQkgIGludGVycHNfbm90aWZ5X3NpZ25hbF9leGl0ZWQgKGVjcy0+d3Muc2lnICgpKTsNCj4gLQl9 DQo+IC0NCj4gLSAgICAgIGdkYl9mbHVzaCAoZ2RiX3N0ZG91dCk7DQo+IC0gICAgICB0YXJnZXRf bW91cm5faW5mZXJpb3IgKGluZmVyaW9yX3B0aWQpOw0KPiAtICAgICAgc3RvcF9wcmludF9mcmFt ZSA9IGZhbHNlOw0KPiArICAgICAgaGFuZGxlX3Byb2Nlc3NfZXhpdGVkIChlY3MpOw0KPiAgICAg ICAgc3RvcF93YWl0aW5nIChlY3MpOw0KPiAgICAgICAgcmV0dXJuOw0KPiANCj4gZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc3RlcC1vdmVyLXByb2Nlc3MtZXhpdC5jDQo+ IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zdGVwLW92ZXItcHJvY2Vzcy1leGl0LmMNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmE5Yjg2NzUxNTk2DQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zdGVwLW92 ZXItcHJvY2Vzcy1leGl0LmMNCj4gQEAgLTAsMCArMSw0OSBAQA0KPiArLyogVGhpcyB0ZXN0Y2Fz ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4NCj4gKw0KPiArICAgQ29weXJpZ2h0 IDIwMjUtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKw0KPiArICAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkNCj4gKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ICsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KPiArICAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKw0KPiArICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+ICsgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZg0KPiArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQ0KPiArICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4NCj4gKw0KPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gKyAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8N Cj4gKw0KPiArI2luY2x1ZGUgPHVuaXN0ZC5oPg0KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiAr I2luY2x1ZGUgPHB0aHJlYWQuaD4NCj4gKw0KPiArdm9sYXRpbGUgaW50IG90aGVyX3RocmVhZF9l eGl0cyA9IDA7DQo+ICsNCj4gK3N0YXRpYyB2b2lkICoNCj4gK3RocmVhZF9mdW5jdGlvbiAodm9p ZCAqYXJnKQ0KPiArew0KPiArICBpZiAob3RoZXJfdGhyZWFkX2V4aXRzKQ0KPiArICAgIGV4aXQg KDApOyAvKiBicmVhayBoZXJlIG90aGVyICovDQo+ICsNCj4gKyAgd2hpbGUgKDEpDQo+ICsgICAg c2xlZXAgKDEpOw0KPiArfQ0KPiArDQo+ICtpbnQNCj4gK21haW4gKCkNCj4gK3sNCj4gKyAgcHRo cmVhZF90IHRocmVhZDsNCj4gKw0KPiArICBhbGFybSAoMzApOw0KPiArDQo+ICsgIHB0aHJlYWRf Y3JlYXRlICgmdGhyZWFkLCBOVUxMLCB0aHJlYWRfZnVuY3Rpb24sIE5VTEwpOw0KPiArDQo+ICsg IGlmICghb3RoZXJfdGhyZWFkX2V4aXRzKQ0KPiArICAgIGV4aXQgKDApOyAvKiBicmVhayBoZXJl IG1haW4gKi8NCj4gKw0KPiArICB3aGlsZSAoMSkNCj4gKyAgICBzbGVlcCAoMSk7DQo+ICsgIHJl dHVybiAwOw0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9z dGVwLW92ZXItcHJvY2Vzcy1leGl0LmV4cA0KPiBiL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv c3RlcC1vdmVyLXByb2Nlc3MtZXhpdC5leHANCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAuLjZjOThlYmUzOTU2DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zdGVwLW92ZXItcHJvY2Vzcy1leGl0LmV4cA0KPiBAQCAt MCwwICsxLDY2IEBADQo+ICsjIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuDQo+ICsNCj4gKyMgQ29weXJpZ2h0IDIwMjUtMjAyNiBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4NCj4gKw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0K PiArIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcg0KPiArIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0K PiArIw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwNCj4gKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCj4gKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiArIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArIw0KPiArIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0K PiArIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4NCj4gKw0KPiArIyBUZXN0IHN0ZXBwaW5nIG92ZXIgYW4gZXhpdCBz eXNjYWxsIGZyb20gYm90aCB0aGUgbWFpbiB0aHJlYWQsIGFuZCBhDQo+ICsjIG5vbi1tYWluIHRo cmVhZC4NCj4gKw0KPiAraWYgeyBbdGFyZ2V0X2luZm8gZXhpc3RzIGV4aXRfaXNfcmVsaWFibGVd IH0gew0KPiArICAgIHNldCBleGl0X2lzX3JlbGlhYmxlIFt0YXJnZXRfaW5mbyBleGl0X2lzX3Jl bGlhYmxlXQ0KPiArfSBlbHNlIHsNCj4gKyAgICBzZXQgZXhpdF9pc19yZWxpYWJsZSBbZXhwciB7 IVt0YXJnZXRfaW5mbyBleGlzdHMgdXNlX2dkYl9zdHViXX1dDQo+ICt9DQo+ICtyZXF1aXJlIHtl eHByIHskZXhpdF9pc19yZWxpYWJsZX19DQo+ICsNCj4gK3N0YW5kYXJkX3Rlc3RmaWxlDQo+ICsN Cj4gK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZp bGUgJHNyY2ZpbGUge2RlYnVnDQo+IHB0aHJlYWR9XSB9IHsNCj4gKyAgICByZXR1cm4gLTENCj4g K30NCj4gKw0KPiArIyBXSElDSCBpcyB3aGljaCB0aHJlYWQgZXhpdHMgdGhlIHByb2Nlc3MuICBD YW4gYmUgIm1haW4iIGZvciBtYWluDQo+ICsjIHRocmVhZCwgb3IgIm90aGVyIiBmb3IgdGhlIG5v bi1tYWluIHRocmVhZC4NCj4gKw0KPiArcHJvYyB0ZXN0IHt3aGljaH0gew0KPiArICAgIGlmIHsh W3J1bnRvX21haW5dfSB7DQo+ICsJcmV0dXJuIC0xDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgc2V0 IG90aGVyIFtleHByIHskd2hpY2ggPT0gIm90aGVyIn1dDQo+ICsgICAgZ2RiX3Rlc3QgInAgb3Ro ZXJfdGhyZWFkX2V4aXRzID0gJG90aGVyIiAiID0gJG90aGVyIg0KPiArDQo+ICsgICAgc2V0IGJy ZWFrX2xpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrIGhlcmUgJHdoaWNoIl0NCj4gKyAg ICBnZGJfYnJlYWtwb2ludCAkYnJlYWtfbGluZQ0KPiArICAgIGdkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJleGl0IHN5c2NhbGwiDQo+ICsNCj4gKyAgICBzZXQgdGFyZ2V0X25vbl9zdG9wIFtp c190YXJnZXRfbm9uX3N0b3BdDQo+ICsNCj4gKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAibmV4dCIg IiIgew0KPiArCS1yZSAtd3JhcCAiJDo6aW5mZXJpb3JfZXhpdGVkX3JlIG5vcm1hbGx5XFxcXSIg ew0KPiArCSAgICBwYXNzICRnZGJfdGVzdF9uYW1lDQo+ICsJfQ0KPiArCS1yZSAtd3JhcCAiRnVy dGhlciBleGVjdXRpb24gaXMgcHJvYmFibHkgaW1wb3NzaWJsZVxcLiIgew0KPiArCSAgICAjIFdp dGggYSB0YXJnZXQgaW4gYWxsLXN0b3AsIHRoaXMgaXMgdGhlIGJlc3Qgd2UgY2FuIGRvLg0KPiAr CSAgICAjIFdlIHNob3VsZCBub3Qgc2VlIHRoaXMgd2l0aCBhIHRhcmdldCBiYWNrZW5kIGluIG5v bi1zdG9wDQo+ICsJICAgICMgbW9kZSwgaG93ZXZlci4NCj4gKwkgICAgZ2RiX2Fzc2VydCAhJHRh cmdldF9ub25fc3RvcCAkZ2RiX3Rlc3RfbmFtZQ0KPiArCX0NCj4gKyAgICB9DQo+ICt9DQo+ICsN Cj4gK2ZvcmVhY2hfd2l0aF9wcmVmaXggd2hpY2gge21haW4gb3RoZXJ9IHsNCj4gKyAgICB0ZXN0 ICR3aGljaA0KPiArfQ0KPiAtLQ0KPiAyLjUzLjANCj4gDQoNCkludGVsIERldXRzY2hsYW5kIEdt YkgNClJlZ2lzdGVyZWQgQWRkcmVzczogRG9ybmFjaGVyIFN0cmFzc2UgMSwgODU2MjIgRmVsZGtp cmNoZW4sIEdlcm1hbnkNClRlbDogKzQ5IDg5IDk5MSA0MzAsIHd3dy5pbnRlbC5kZQ0KTWFuYWdp bmcgRGlyZWN0b3JzOiBIYXJyeSBEZW1hcywgSmVmZnJleSBTY2huZWlkZXJtYW4sIFlpbiBDaG9u ZyBTb3JyZWxsDQpDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBM YXUNClJlZ2lzdGVyZWQgU2VhdDogTXVuaWNoDQpDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2Vy aWNodCBNdWVuY2hlbiBIUkIgMTg2OTI4Cg==