From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id XbQUEwAUvWrAnh4AWB0awg (envelope-from ) for ; Wed, 30 Sep 2026 09:52:00 -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=IhHX0jHg; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 3C69E1E051; Wed, 30 Sep 2026 09:52:00 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.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 autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::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 D8FDC1E01F for ; Wed, 30 Sep 2026 09:51:56 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 895F34BB3BFD for ; Wed, 30 Sep 2026 13:51:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 895F34BB3BFD 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=IhHX0jHg Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) by sourceware.org (Postfix) with ESMTPS id 70B774BB5880 for ; Wed, 30 Sep 2026 13:51:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 70B774BB5880 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 70B774BB5880 Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=198.175.65.12 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790776277; cv=fail; b=uoMfKN2dVz0CdaqnqIPbd4DSDSj9TuufoLjATpakn8OjtM/wutyxareR/VqnBxTMo4UUBk2dvZsK8FB1RAi6FzU/zsMphRCujUfihxt9aRo0Kmv4zRbnu8YPhptW6WSsThQnl8t/0kowiZDIWhD7LddQAsQpyKMtTSTPzW5iIwI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790776277; c=relaxed/simple; bh=TWU6BdSGT9wU+Wdp5iXKTbzRlvze0axW/b5JIppCwtM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=tZeAH8yeCQBJ4ql+cjyiQUcyPFvjko0ekuilP4YhdRD8q32xCrJ/JJ/Qk675xBsyI8PeY+mAUQWYhJnJ05r8dCxDySYQxNNoCUnG5hmuGrlvqr95INp+CDn7nQ85j+x8BAiNofPnZsWBtX6R+Yu7Jx+0gtBRb4pFqOETvk0Vb4A= 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=IhHX0jHg DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 70B774BB5880 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1790776277; x=1822312277; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=TWU6BdSGT9wU+Wdp5iXKTbzRlvze0axW/b5JIppCwtM=; b=IhHX0jHgW+HtJKqgwenLi3Y6i6xM405Z11MDEzdMxhRdPhEYAwCbXbOY 4hUHvcmSW3ihlpRUqgCXTkMvwhqRpSvwbD8od38y3NrZikfljTg+B2yAe 9/Vmp3D12rggRIav5rUcpH11TQEJ4jAZee5x8nGmy7wiG19XjP78lPEx0 AuY1PrWnUdXke93bNUkNN2iR3ShslDf2seT2yP9fRvR31FjO3/T8JtMfD 1NvXpe/bSCqiH6HjaOsv3GaxMqkexjfLM7u+7kbEfOdLI0/vnshCK6/Lf 05HvwY+3I0wHqTACP8sfIwQ7Khe07mvYVKNp70wuYES29bhsUS3xiUDRN w==; X-CSE-ConnectionGUID: hftFuIarSBGl46yuix/z+w== X-CSE-MsgGUID: XaMgPZTxTb6zBWtT1WImTQ== X-IronPort-AV: E=McAfee;i="6800,10657,11920"; a="102039432" X-IronPort-AV: E=Sophos;i="6.27,132,1787036400"; d="scan'208";a="102039432" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2026 06:51:14 -0700 X-CSE-ConnectionGUID: vMkrBPjxQByGP9cQ0fCtlQ== X-CSE-MsgGUID: SxkxQDYSSBy9/F9JEbnlzw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.27,132,1787036400"; d="scan'208";a="305199966" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by orviesa002.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2026 06:51:14 -0700 Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 30 Sep 2026 06:51:13 -0700 Received: from ORSEDG903.ED.cps.intel.com (10.7.248.13) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49 via Frontend Transport; Wed, 30 Sep 2026 06:51:13 -0700 Received: from BN8PR05CU002.outbound.protection.outlook.com (52.101.57.3) by edgegateway.intel.com (134.134.137.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Wed, 30 Sep 2026 06:51:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t2MDR2UglSarMGzCnSVe24HNEQlRuoxwqsK7JSu5qm0MS/Hx5NST6LcuWbgUbaq6zVJi0P3mDQnqe3lP0w2gRZIYNHTY/N+yQDS8EWDVR1Tc68hpIWaafq5hprhRN99wVph90Md0lOE2K4xh99EPeQgX/elrXhUQNGYKMFrWtPY5mEoNgxuWzo1fNlKO1Xjbp+qNLfyFPRCF1L9PC13gmVHutKcUBc/spmN58N6qTAPCnST6hFq+4obkJPAZp1LXJue0huYNpvth6p7fYxvxe7mFzyjHlZ5oEVjV9oWGQfFTJD2nOu+/gVeOxXfKFpff/Kml9RsvszSQH2M8dX2orQ== 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=wIX9sSCNvL3Ik+rc/E1nbM1dyFvrUgw/9UuZEAt34aI=; b=IIV3DiIBViDBS9iDxuT3jtRVrGWy9y7lUZX382TeyH/7yfRiOo527DKxO/JidtzUsT8objot7EhxYrpWMfITEoi+3cF0t35WIrnrFo8OYCqvvqVgrnb4rSp4C2NFvH1pMJ9FfeLhJmZ/3cAhSbq7iDKCuGKQFJcKGrXFbBa7/cBz2BakPi0WJM0CfCLpbQQbDfmTqNkKJpQAyMN/dtV8HUQ39Z+hkmIAOJ/bzR2MajXibx6VOLaI43bB6ycxlPhxGck2XFWLDWipTENsw3hJvKfwHmruXhiteMgYl8UOuCATpQdZ40iBkjFWuzUwAWWZ2xKWn+B2Z5rxbH2M0IbNwQ== 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 DS7PR11MB6247.namprd11.prod.outlook.com (2603:10b6:8:98::22) by DS7PR11MB7808.namprd11.prod.outlook.com (2603:10b6:8:ee::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.15; Wed, 30 Sep 2026 13:51:03 +0000 Received: from DS7PR11MB6247.namprd11.prod.outlook.com ([fe80::af57:631:e7eb:3aea]) by DS7PR11MB6247.namprd11.prod.outlook.com ([fe80::af57:631:e7eb:3aea%4]) with mapi id 15.21.0451.022; Wed, 30 Sep 2026 13:51:03 +0000 From: "Rohr, Stephan" To: Simon Marchi , "gdb-patches@sourceware.org" Subject: RE: [PATCH 7/9] gdb: add matching helpers to global_symbol_searcher Thread-Topic: [PATCH 7/9] gdb: add matching helpers to global_symbol_searcher Thread-Index: AQHdUEqvl99vuRwn4Um+cMCKQ+3jMrbnIwLA Date: Wed, 30 Sep 2026 13:51:03 +0000 Message-ID: References: <20260929194119.155169-1-simon.marchi@efficios.com> <20260929194119.155169-8-simon.marchi@efficios.com> In-Reply-To: <20260929194119.155169-8-simon.marchi@efficios.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DS7PR11MB6247:EE_|DS7PR11MB7808:EE_ x-ms-office365-filtering-correlation-id: 1c025353-99a1-40c8-d9a7-08df1ef9de71 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|10070799003|366016|23010399003|376014|1800799024|18002099003|22082099003|38070700021|4143699003|6133799003|10067099003|11063799006|56012099006; x-microsoft-antispam-message-info: T37aEeHNqlizipYg36sf1SGUfLC9Su9BEN86TfXWlRXTtavtZl6qvjD/7A1YkWYf0u3bR9PDWY+6KT/FEU4Ybk/RKmc2kcGkxw6iUQhOdhpeXcWuMem4nngjdqfiKKUeiYzus68igoig2MYFiyPUP7/cWlq5upMupR4eg8YZwkymWc5ucN7mTgQWyjuDpGAVSzLG62xtPnxq+aypBtS8nh1I2eF2Y1sA85nX/V1VETKxHY2CBAwnY3iEBYgIWwGSdtJhCOcHUX5fDfoVexqX5hZoFD+elI3cBjsQFxGo2BJwDjgo5JqgpLfU9K2HL+flPRX/hxEOFtbGkkr8whyRngiZLXLK+Zz2QnKg+Rq/Fnt6PmUYNfN4b1i3XFvtkbufuUN/FW1omhKsH/L27fCKwluEEKvvlo022UAbpv24VkCimQgGHmHvJZK5v4r0u39Llt3801yTTb6BK0aDuR54ORJ0qCuFerZQdhuJvEz9+pu792/JGmHhpahc0yTesU3/A5XcyAwOxzfic+LBo/OpENcYxi1POFv+aRlRGWqL09nFbUFg1wLv8TDf8R6rULBX7xoXAMS6xQq0dx01zP/t6S9gzKNewM8KweEvryVBrzJIXQDBNct4TywJpxJZO06bzbSCkaFdwXT8SWBvQR9qUemCJyftydeAovXBAvL78MMDNyF3Koo99bXz5I9d4BnqwatuJDMUOlK9qbc9PHZC6Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS7PR11MB6247.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(10070799003)(366016)(23010399003)(376014)(1800799024)(18002099003)(22082099003)(38070700021)(4143699003)(6133799003)(10067099003)(11063799006)(56012099006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QVV1d0wyRitDc3VJYnZ1K0xXYWJ2Z1Uvanlxb1IyM012ekM1MXpDZVVnZVBB?= =?utf-8?B?bmxmWjlZaEluemxQQVg2Rm9odzEzKzFpOUFUbStZQ2dTT0szRE92MTRUK3NR?= =?utf-8?B?aTdocmd2N2dtSnBHZFo3VlFMbThPWmVncFdaU2F4UGRnODB4Ymo3Zkp4eUlK?= =?utf-8?B?SzBlUVhPODkycloyZEdPVzF0VVAwTkJPd0YzQ3JQZ2VxL2U5aWt1WU5LVDFa?= =?utf-8?B?WFFPa1kxbFRsZzNEZVJuNWQ5OEJhWG1tUnNnS09wQWRUSzdvWkRIQ1BFRjJl?= =?utf-8?B?ZkJ6UDgyVSs3dmxhV2Y5TklZVlpUSVgvSzVnU21WTnhURE00UDhOc3hBMElt?= =?utf-8?B?TDZUemZHdUlUL0wxZEVyL3lvNXVLdTNHZU1vZlVoSXlMbWVHYURHS3VRZmdK?= =?utf-8?B?L1NVZ09Cc3RSMFUwWXdDaEJRaEF3MmNFWkQ4bjNNbVpJWjRQK24vdXpJNFZk?= =?utf-8?B?Rkd5dkVkNXdmY0pmMTl6MlhpOTNWOWsyTjJFcGVqazk2UDNzMktpS0hHRFNK?= =?utf-8?B?Vjl4QTZ3aVROekl6QzhBMDNTbnF1RUZ6Z2VlUEI5ZnltU290N3d0TlV1Y2ov?= =?utf-8?B?eFZtYy9KNk0xM0FzdDRFYW5oNWFFdXlPOWdvcFc1cDRNRzFMUEUrT0dKcHpk?= =?utf-8?B?cWFGOHRCSVU4VjZISVA0VzZTdmFNV2xHQnFiRFJyTnMzVG5DNTQ0c1BCVkhz?= =?utf-8?B?VGtTWGNFN2tvOFFRcHFYVjBsSlRqWVdlcG1iempucnhWTVRTeGRRUjQwUFA3?= =?utf-8?B?ZG15bHpvTkttQTZxUFpvOVhPekE2UUJyeUV5S1c2MGU0aiswaWlVUHkwNGFl?= =?utf-8?B?Z0ZHTFNDR3JOZWJaZHBOYlhWM3JOV2prNEJHR2l6ZWZlcGQvMWNMdGdhWFRO?= =?utf-8?B?TjlTWGluYStpckk4TFg3U1YvL1Rvbi93ZW5JTlpBMnRtOW5tSC9UY0hCMnU3?= =?utf-8?B?ekl5bEEvVjJmYWs5WDhkaXpWL0xsQTdCVFA3K0pFQXYxTUJRR2hTZjRvbWJj?= =?utf-8?B?SVdTVkQ5WFA4MkFZaVBvTytOZTB2MTFUQW9DaUNSdk00WTdqa2l1V2tmSm5u?= =?utf-8?B?V1E5RUdDWE9nUFd0WW1IVlJJTzJMV0llekltN2ZXMUlqUXQ2YTZJcHU0VVpH?= =?utf-8?B?aWlmRjI5b3ZoM0dtbjVDSjVVemIrZFpDVTljUEdqZmY2bWFycmY5MzRIeTk3?= =?utf-8?B?NThZVGJrRTJqT1lRWnBGM3BhU1MwYUhJWWVxOGdrSk5PRHlPOHB3aWRiZkpx?= =?utf-8?B?NzdBTWpvWDNPRUZuUHV0dEkzZzhXcWYzYjRKZG9TRXRsK2NnU21Dand2NXY1?= =?utf-8?B?MGJUNmpsTzJtNFFlTGsrelcydlRCME8xaFdFdytkbXVMZmROemEyT0lQY3NI?= =?utf-8?B?MVBYTjF5dmdRWkRQZ20wTzV6TkRTSUdlYVR2YTltcFRha2FVemJZcGo5MnVB?= =?utf-8?B?NEJxT3JzWnVlRm9aR1VMQWZqcE1mVHlpV0tnRUQrby9nNi94d2ZMa0RqaXRm?= =?utf-8?B?RDJmU0VXemhDVmVzQ0lwTkcwWElXeG1LQXNNZ1hQa2w0cUVaeEMwUEU4R292?= =?utf-8?B?cURXTW54ZE5uK1RDdUM4MThhcEk5alBLbFJrYlJUbDlycFl3b1Jhbm9VRlQv?= =?utf-8?B?TkV6M3VEUWpPSlczZWI0T29LTmovbDFNVnVqRGZtQkNqZElkanF0dVVndTUw?= =?utf-8?B?RS9pU21IZk1ITmFidjE4dXJGdUVtSUgwaHoyTGxjSG14NkpnM0V5bWRLSHYx?= =?utf-8?B?S01haS9TT1NncVZQVTBHS20xOCtXV215azkzWFhPMGZpMTJkRlVsME80WVJN?= =?utf-8?B?QVpDU3A0eWZ1RjZMNE11SXFhQXhVSG5GSERjeGVUNFZOaHIvWEVxSEEwRTNR?= =?utf-8?B?TzFQc0x5VzNTbmloOVhkci9VRXJqMFpUUm1JaWM5OHd0WkF3TytiaXRoTkg1?= =?utf-8?B?V1VQb3hoQ0JOWUsxd2tGV1EwZlFQd0FGU2gzdnB4NkVRb25xMFlnbFNsb0do?= =?utf-8?B?MjNncmlmVXoreEFmRXdvNUxzRHhjQStXUVJUZ3I0V1ZPTmh6dGNWVkdmU3A1?= =?utf-8?B?RmtaMm5HNEk2Y1FXdys2OXdvMkw5LzlXOXJzQkRNbmprVi83bndDdFBqOHhj?= =?utf-8?B?Q05veXBRZzVEOW1wZDZ0UHZ1b0xxU3RPcWhoUENzRWtRQWtZN0NGcTd3RFpH?= =?utf-8?B?UFJXQXV1ZE5PMTZkRkQvNGNkWDdORzhiUnFjTHd2MktFMS94cUxYOHBteEVV?= =?utf-8?B?VTRvYUdoaWsvZm1zTVk3a3ROY3lqdExleGtVQlgvbmdTSFYyRFVOdlU5eHBi?= =?utf-8?B?NXorOXNleFM3akNDZDVmeTZlbmtYNkI1V3Z3ZXZMUFRzUWNoM1dlV3ljeXhj?= =?utf-8?Q?Dq+fZzADu4nz5undvaYxSOYC0lL3QUX9T/iRNWkKRE89n?= x-ms-exchange-antispam-messagedata-1: GyAEhP+gRuclaw== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: RgwdKeQT2cO1YJr3dI9/RPQTd+sMmdh8mSl1yfo6la2AsNHMtNX1BFEn9DNGspjJI8rPomjty9Sl8b5ZYDhx3AXbh8cZjX2v+H7hHuhdzRi3w0vxulZrkIzDZgImQ2++N2c7wn88m7WFfI7Q4JOl+bTSwO1kT0vBbe5o1Mo3cG2U5VLT1ZiygSmQgPSTFbGK06NFz4b31VisBHrMg7eHemKslZuoALtIncphY5mbq1bZ6yLIWVg46XTtU/kh2flkEzCdCS8LH9ykUp3rqpOiMvaVla5TdTHmEgOZHdgzrJtOUExRlQCJWJw3+CVcSeyj/pLSmh1+Ue+ZbwpsHcufew== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR11MB6247.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c025353-99a1-40c8-d9a7-08df1ef9de71 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2026 13:51:03.7312 (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: HDVoaNHZPSR0zzrL+pSpMoONEV8kz3DO8S1XtI0Vq576IAisaRCnjLAIO/MHIO73gjwE4UNmj9BlO8t7GgJs6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7808 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU2ltb24gTWFyY2hpIDxz aW1vbi5tYXJjaGlAZWZmaWNpb3MuY29tPg0KPiBTZW50OiBUdWVzZGF5LCAyOSBTZXB0ZW1iZXIg MjAyNiAyMTozOQ0KPiBUbzogZ2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmcNCj4gQ2M6IFNpbW9u IE1hcmNoaSA8c2ltb24ubWFyY2hpQGVmZmljaW9zLmNvbT4NCj4gU3ViamVjdDogW1BBVENIIDcv OV0gZ2RiOiBhZGQgbWF0Y2hpbmcgaGVscGVycyB0byBnbG9iYWxfc3ltYm9sX3NlYXJjaGVyDQo+ IA0KPiBUaGUgbWV0aG9kcyBvZiBnbG9iYWxfc3ltYm9sX3NlYXJjaGVyIHJlcGVhdCB0aGUgc2Ft ZSBjaGVja3MgaW4gc2V2ZXJhbA0KPiBwbGFjZXMuICBBZGQgc29tZSBoZWxwZXJzIHRvIG1ha2Ug dGhlIGNvZGUgZWFzaWVyIHRvIGZvbGxvdzoNCj4gDQo+ICAtIG5hbWVfbWF0Y2hlczogY2hlY2sg YSBuYW1lIGFnYWluc3QgdGhlIChvcHRpb25hbCkgbmFtZSByZWdleHANCj4gDQo+ICAtIHN5bXRh Yl9tYXRjaGVzX2ZpbGVuYW1lczogY2hlY2sgYSBzeW10YWIgYWdhaW5zdCB0aGUgc2VhcmNoZWQg ZmlsZQ0KPiAgICBuYW1lcw0KPiANCj4gIC0gc3ltYm9sX21hdGNoZXM6IGFsbCB0aGUgZmlsdGVy aW5nIGRvbmUgb24gZnVsbCBzeW1ib2xzIGluDQo+ICAgIGFkZF9tYXRjaGluZ19zeW1ib2xzDQo+ IA0KPiAgLSBtc3ltYm9sX21hdGNoZXM6IHRoZSBmaWx0ZXJpbmcgZG9uZSBvbiBtaW5pbWFsIHN5 bWJvbHMsIHNoYXJlZCBieQ0KPiAgICBleHBhbmRfc3ltdGFicyBhbmQgYWRkX21hdGNoaW5nX21z eW1ib2xzDQo+IA0KPiBTd2l0Y2ggZXhwYW5kX3N5bXRhYnMsIGFkZF9tYXRjaGluZ19zeW1ib2xz IGFuZA0KPiBhZGRfbWF0Y2hpbmdfbXN5bWJvbHMgdG8NCj4gdXNlIGVhcmx5IGNvbnRpbnVlcyB0 byBhdm9pZCBkZWVwbHkgbmVzdGVkIGlmcy4NCj4gDQo+IENoYW5nZS1JZDogSTU1M2Y3MGZiOGVh OWM3ZTU1Yjg5YmIxMjA0YTQwMjkzOGMxMTZjM2INCj4gLS0tDQo+ICBnZGIvc3ltdGFiLmMgfCAy MDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ICBnZGIvc3ltdGFiLmggfCAgMTMgKysrKw0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMjcgaW5zZXJ0 aW9ucygrKSwgOTEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bXRhYi5j IGIvZ2RiL3N5bXRhYi5jDQo+IGluZGV4IDljZTY5MTE2NjZjNi4uNzllNDNlYWZkZTE4IDEwMDY0 NA0KPiAtLS0gYS9nZGIvc3ltdGFiLmMNCj4gKysrIGIvZ2RiL3N5bXRhYi5jDQo+IEBAIC00NzQx LDYgKzQ3NDEsOTMgQEAgZ2xvYmFsX3N5bWJvbF9zZWFyY2hlcjo6aXNfc3VpdGFibGVfbXN5bWJv bA0KPiAgICAgIH0NCj4gIH0NCj4gDQo+ICsvKiBSZXR1cm4gdHJ1ZSBpZiBOQU1FIG1hdGNoZXMg TkFNRV9SRUdFWCwgb3IgaWYgTkFNRV9SRUdFWCBpcyBlbXB0eS4NCj4gKi8NCj4gKw0KPiArc3Rh dGljIGJvb2wNCj4gK25hbWVfbWF0Y2hlcyAoY29uc3Qgc3RkOjpvcHRpb25hbDxjb21waWxlZF9y ZWdleD4gJm5hbWVfcmVnZXgsDQo+ICsJICAgICAgY29uc3QgY2hhciAqbmFtZSkNCj4gK3sNCj4g KyAgcmV0dXJuICghbmFtZV9yZWdleC5oYXNfdmFsdWUgKCkNCj4gKwkgIHx8IG5hbWVfcmVnZXgt PmV4ZWMgKG5hbWUsIDAsIG51bGxwdHIsIDApID09IDApOw0KPiArfQ0KPiArDQo+ICsvKiBTZWUg c3ltdGFiLmguICAqLw0KPiArDQo+ICtib29sDQo+ICtnbG9iYWxfc3ltYm9sX3NlYXJjaGVyOjpz eW10YWJfbWF0Y2hlc19maWxlbmFtZXMgKHN5bXRhYiAqc3ltdGFiKQ0KPiBjb25zdA0KPiArew0K PiArICAvKiBDaGVjayBmaXJzdCBzb2xlIFNZTVRBQi0+RklMRU5BTUUuICBJdCBkb2VzIG5vdCBu ZWVkIHRvIGJlIGEgc3Vic3RyaW5nDQo+ICsgICAgIG9mIHN5bXRhYl90b19mdWxsbmFtZSBhcyBp dCBtYXkgY29udGFpbiAiLi8iIGV0Yy4gICovDQo+ICsgIGlmIChmaWxlX21hdGNoZXMgKHN5bXRh Yi0+ZmlsZW5hbWUgKCksIG1fZmlsZW5hbWVzLCBmYWxzZSkpDQo+ICsgICAgcmV0dXJuIHRydWU7 DQo+ICsNCj4gKyAgaWYgKCFiYXNlbmFtZXNfbWF5X2RpZmZlcg0KPiArICAgICAgJiYgIWZpbGVf bWF0Y2hlcyAobGJhc2VuYW1lIChzeW10YWItPmZpbGVuYW1lICgpKSwgbV9maWxlbmFtZXMsIHRy dWUpKQ0KPiArICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiArICByZXR1cm4gZmlsZV9tYXRjaGVz IChzeW10YWJfdG9fZnVsbG5hbWUgKHN5bXRhYiksIG1fZmlsZW5hbWVzLCBmYWxzZSk7DQo+ICt9 DQo+ICsNCj4gKy8qIFNlZSBzeW10YWIuaC4gICovDQo+ICsNCj4gK2Jvb2wNCj4gK2dsb2JhbF9z eW1ib2xfc2VhcmNoZXI6OnN5bWJvbF9tYXRjaGVzDQo+ICsJKGNvbnN0IHN5bWJvbCAqc3ltLA0K PiArCSBjb25zdCBzdGQ6Om9wdGlvbmFsPGNvbXBpbGVkX3JlZ2V4PiAmbmFtZV9yZWdleCwNCj4g KwkgY29uc3Qgc3RkOjpvcHRpb25hbDxjb21waWxlZF9yZWdleD4gJnR5cGVfcmVnZXgpIGNvbnN0 DQo+ICt7DQo+ICsgIGlmICghc3ltdGFiX21hdGNoZXNfZmlsZW5hbWVzIChzeW0tPnN5bXRhYiAo KSkpDQo+ICsgICAgcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsgIGlmICghc3ltLT5tYXRjaGVzICh0 b19zZWFyY2hfZmxhZ3MgKG1fa2luZCkpKQ0KPiArICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiAr ICBpZiAoIW5hbWVfbWF0Y2hlcyAobmFtZV9yZWdleCwgc3ltLT5uYXR1cmFsX25hbWUgKCkpKQ0K PiArICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiArICBzd2l0Y2ggKG1fa2luZCkNCj4gKyAgICB7 DQo+ICsgICAgY2FzZSBzeW1ib2xfc2VhcmNoX2tpbmQ6OlZBUklBQkxFOg0KPiArICAgICAgLyog TE9DX0NPTlNUIGNhbiBiZSB1c2VkIGZvciBtb3JlIHRoYW4ganVzdCBlbnVtcywgZS5nLiwgQysr IHN0YXRpYw0KPiArCSBjb25zdCBtZW1iZXJzLiAgV2Ugb25seSB3YW50IHRvIHNraXAgZW51bXMg aGVyZS4gICovDQo+ICsgICAgICBpZiAoc3ltLT5sb2NfY2xhc3MgKCkgPT0gTE9DX1VOUkVTT0xW RUQNCj4gKwkgIHx8IChzeW0tPmxvY19jbGFzcyAoKSA9PSBMT0NfQ09OU1QNCj4gKwkgICAgICAm JiBzeW0tPnR5cGUgKCktPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0VOVU0pKQ0KPiArCXJldHVybiBm YWxzZTsNCj4gKyAgICAgIFtbZmFsbHRocm91Z2hdXTsNCj4gKw0KPiArICAgIGNhc2Ugc3ltYm9s X3NlYXJjaF9raW5kOjpGVU5DVElPTjoNCj4gKyAgICAgIGlmICh0eXBlX3JlZ2V4Lmhhc192YWx1 ZSAoKQ0KPiArCSAgJiYgIXRyZWdfbWF0Y2hlc19zeW1fdHlwZV9uYW1lICgqdHlwZV9yZWdleCwg c3ltKSkNCj4gKwlyZXR1cm4gZmFsc2U7DQo+ICsgICAgICBicmVhazsNCj4gKw0KPiArICAgIGNh c2Ugc3ltYm9sX3NlYXJjaF9raW5kOjpNT0RVTEU6DQo+ICsgICAgICAvKiBTa2lwIG1vZHVsZSBk ZWNsYXJhdGlvbnMsIGtlZXAgb25seSBkZWZpbml0aW9ucy4gICovDQo+ICsgICAgICBpZiAoc3lt LT5saW5lICgpID09IDApDQo+ICsJcmV0dXJuIGZhbHNlOw0KPiArICAgICAgYnJlYWs7DQo+ICsg ICAgfQ0KPiArDQo+ICsgIHJldHVybiB0cnVlOw0KPiArfQ0KPiArDQo+ICsvKiBTZWUgc3ltdGFi LmguICAqLw0KPiArDQo+ICtib29sDQo+ICtnbG9iYWxfc3ltYm9sX3NlYXJjaGVyOjptc3ltYm9s X21hdGNoZXMNCj4gKwkoY29uc3QgbWluaW1hbF9zeW1ib2wgKm1zeW1ib2wsDQo+ICsJIGNvbnN0 IHN0ZDo6b3B0aW9uYWw8Y29tcGlsZWRfcmVnZXg+ICZuYW1lX3JlZ2V4KSBjb25zdA0KPiArew0K PiArICBpZiAobXN5bWJvbC0+Y3JlYXRlZF9ieV9nZGIpDQo+ICsgICAgcmV0dXJuIGZhbHNlOw0K PiArDQo+ICsgIGlmICghaXNfc3VpdGFibGVfbXN5bWJvbCAobXN5bWJvbCkpDQo+ICsgICAgcmV0 dXJuIGZhbHNlOw0KPiArDQo+ICsgIHJldHVybiBuYW1lX21hdGNoZXMgKG5hbWVfcmVnZXgsIG1z eW1ib2wtPm5hdHVyYWxfbmFtZSAoKSk7DQo+ICt9DQo+ICsNCj4gIC8qIFNlZSBzeW10YWIuaC4g ICovDQo+IA0KPiAgYm9vbA0KPiBAQCAtNDc2Myw4ICs0ODUwLDcgQEAgZ2xvYmFsX3N5bWJvbF9z ZWFyY2hlcjo6ZXhwYW5kX3N5bXRhYnMNCj4gICAgICAgJmxvb2t1cF9uYW1lX2luZm86Om1hdGNo X2FueSAoKSwNCj4gICAgICAgWyZdIChjb25zdCBjaGFyICpzeW1uYW1lKQ0KPiAgICAgICB7DQo+ IC0gICAgICAgcmV0dXJuICghbmFtZV9yZWdleC5oYXNfdmFsdWUgKCkNCj4gLQkgICAgICAgfHwg bmFtZV9yZWdleC0+ZXhlYyAoc3ltbmFtZSwgMCwgTlVMTCwgMCkgPT0gMCk7DQo+ICsgICAgICAg cmV0dXJuIG5hbWVfbWF0Y2hlcyAobmFtZV9yZWdleCwgc3ltbmFtZSk7DQo+ICAgICAgIH0sDQo+ ICAgICAgIE5VTEwsDQo+ICAgICAgIFNFQVJDSF9HTE9CQUxfQkxPQ0sgfCBTRUFSQ0hfU1RBVElD X0JMT0NLLA0KPiBAQCAtNDc5MCwyNSArNDg3NiwxNiBAQCBnbG9iYWxfc3ltYm9sX3NlYXJjaGVy OjpleHBhbmRfc3ltdGFicw0KPiAgCXsNCj4gIAkgIFFVSVQ7DQo+IA0KPiAtCSAgaWYgKG1zeW1i b2wtPmNyZWF0ZWRfYnlfZ2RiKQ0KPiArCSAgaWYgKCFtc3ltYm9sX21hdGNoZXMgKG1zeW1ib2ws IG5hbWVfcmVnZXgpKQ0KPiAgCSAgICBjb250aW51ZTsNCj4gDQo+IC0JICBpZiAoaXNfc3VpdGFi bGVfbXN5bWJvbCAobXN5bWJvbCkpDQo+IC0JICAgIHsNCj4gLQkgICAgICBpZiAoIW5hbWVfcmVn ZXguaGFzX3ZhbHVlICgpDQo+IC0JCSAgfHwgbmFtZV9yZWdleC0+ZXhlYyAobXN5bWJvbC0+bmF0 dXJhbF9uYW1lICgpLCAwLA0KPiAtCQkJCSAgICAgICBOVUxMLCAwKSA9PSAwKQ0KPiAtCQl7DQo+ IC0JCSAgLyogQW4gaW1wb3J0YW50IHNpZGUtZWZmZWN0IG9mIHRoaXMgbG9va3VwIGZ1bmN0aW9u IGlzDQo+IC0JCSAgICAgdG8gZXhwYW5kIHRoZSBzeW1ib2wgdGFibGUgaWYgbXN5bWJvbCBpcyBm b3VuZCwgbGF0ZXINCj4gLQkJICAgICBpbiB0aGUgcHJvY2VzcyB3ZSB3aWxsIGFkZCBtYXRjaGlu ZyBzeW1ib2xzIG9yDQo+IC0JCSAgICAgbXN5bWJvbHMgdG8gdGhlIHJlc3VsdHMgbGlzdCwgYW5k IHRoYXQgcmVxdWlyZXMgdGhhdA0KPiAtCQkgICAgIHRoZSBzeW1ib2xzIHRhYmxlcyBhcmUgZXhw YW5kZWQuICAqLw0KPiAtCQkgIGlmIChmaW5kX2NvbXB1bml0X3N5bXRhYl9mb3JfcGMNCj4gLQkJ CShtc3ltYm9sLT52YWx1ZV9hZGRyZXNzIChvYmpmaWxlKSkgPT0gbnVsbHB0cikNCj4gLQkJICAg IGZvdW5kX2Z1bmNfbXN5bWJvbF93aXRob3V0X2RlYnVnX2luZm8gPSB0cnVlOw0KPiAtCQl9DQo+ IC0JICAgIH0NCj4gKwkgIC8qIEFuIGltcG9ydGFudCBzaWRlLWVmZmVjdCBvZiB0aGlzIGxvb2t1 cCBmdW5jdGlvbiBpcyB0byBleHBhbmQNCj4gKwkgICAgIHRoZSBzeW1ib2wgdGFibGUgaWYgbXN5 bWJvbCBpcyBmb3VuZCwgbGF0ZXIgaW4gdGhlIHByb2Nlc3Mgd2UNCj4gKwkgICAgIHdpbGwgYWRk IG1hdGNoaW5nIHN5bWJvbHMgb3IgbXN5bWJvbHMgdG8gdGhlIHJlc3VsdHMgbGlzdCwgYW5kDQo+ ICsJICAgICB0aGF0IHJlcXVpcmVzIHRoYXQgdGhlIHN5bWJvbHMgdGFibGVzIGFyZSBleHBhbmRl ZC4gICovDQo+ICsJICBpZiAoZmluZF9jb21wdW5pdF9zeW10YWJfZm9yX3BjDQo+ICsJCShtc3lt Ym9sLT52YWx1ZV9hZGRyZXNzIChvYmpmaWxlKSkgPT0gbnVsbHB0cikNCj4gKwkgICAgZm91bmRf ZnVuY19tc3ltYm9sX3dpdGhvdXRfZGVidWdfaW5mbyA9IHRydWU7DQo+ICAJfQ0KPiAgICAgIH0N Cj4gDQo+IEBAIC00ODI0LDggKzQ5MDEsNiBAQCBnbG9iYWxfc3ltYm9sX3NlYXJjaGVyOjphZGRf bWF0Y2hpbmdfc3ltYm9scw0KPiAgCSBjb25zdCBzdGQ6Om9wdGlvbmFsPGNvbXBpbGVkX3JlZ2V4 PiAmdHlwZV9yZWdleCwNCj4gIAkgc3RkOjpzZXQ8c3ltYm9sX3NlYXJjaD4gKnJlc3VsdF9zZXQp IGNvbnN0DQo+ICB7DQo+IC0gIGRvbWFpbl9zZWFyY2hfZmxhZ3MgZG9tYWluID0gdG9fc2VhcmNo X2ZsYWdzIChtX2tpbmQpOw0KDQpJSVVDIHRoaXMgaXMgbW92ZWQgdG8gInN5bWJvbF9tYXRjaGVz Ij8gIFRoaXMgaW1wbGllcyAidG9fc2VhcmNoX2ZsYWdzIiBpcyBydW4NCmZvciBldmVyeSBzeW1i b2wuICBUaGlzIGxvb2tzIHVubmVjZXNzYXJ5LiAgV2UgY291bGQgYWRkIGFuIGFkZGl0aW9uYWwg YXJndW1lbnQgdG8NCiJzeW1ib2xfbWF0Y2hlcyIuDQoNCj4gLQ0KPiAgICAvKiBBZGQgbWF0Y2hp bmcgc3ltYm9scyAoaWYgbm90IGFscmVhZHkgcHJlc2VudCkuICAqLw0KPiAgICBmb3IgKGNvbXB1 bml0X3N5bXRhYiAmY3VzdCA6IG9iamZpbGUtPmNvbXB1bml0cyAoKSkNCj4gICAgICB7DQo+IEBA IC00ODM3LDU0ICs0OTEyLDExIEBADQo+IGdsb2JhbF9zeW1ib2xfc2VhcmNoZXI6OmFkZF9tYXRj aGluZ19zeW1ib2xzDQo+IA0KPiAgCSAgZm9yIChzdHJ1Y3Qgc3ltYm9sICpzeW0gOiBibG9ja19p dGVyYXRvcl9yYW5nZSAoYikpDQo+ICAJICAgIHsNCj4gLQkgICAgICBzdHJ1Y3Qgc3ltdGFiICpy ZWFsX3N5bXRhYiA9IHN5bS0+c3ltdGFiICgpOw0KPiAtDQo+ICAJICAgICAgUVVJVDsNCj4gDQo+ IC0JICAgICAgLyogQ2hlY2sgZmlyc3Qgc29sZSBSRUFMX1NZTVRBQi0+RklMRU5BTUUuICBJdCBk b2VzDQo+IC0JCSBub3QgbmVlZCB0byBiZSBhIHN1YnN0cmluZyBvZiBzeW10YWJfdG9fZnVsbG5h bWUgYXMNCj4gLQkJIGl0IG1heSBjb250YWluICIuLyIgZXRjLiAgKi8NCj4gLQkgICAgICBpZiAo IShmaWxlX21hdGNoZXMgKHJlYWxfc3ltdGFiLT5maWxlbmFtZSAoKSwgbV9maWxlbmFtZXMsIGZh bHNlKQ0KPiAtCQkgICAgfHwgKChiYXNlbmFtZXNfbWF5X2RpZmZlcg0KPiAtCQkJIHx8IGZpbGVf bWF0Y2hlcyAobGJhc2VuYW1lIChyZWFsX3N5bXRhYi0+ZmlsZW5hbWUNCj4gKCkpLA0KPiAtCQkJ CQkgIG1fZmlsZW5hbWVzLCB0cnVlKSkNCj4gLQkJCSYmIGZpbGVfbWF0Y2hlcyAoc3ltdGFiX3Rv X2Z1bGxuYW1lIChyZWFsX3N5bXRhYiksDQo+IC0JCQkJCSBtX2ZpbGVuYW1lcywgZmFsc2UpKSkp DQo+ICsJICAgICAgaWYgKCFzeW1ib2xfbWF0Y2hlcyAoc3ltLCBuYW1lX3JlZ2V4LCB0eXBlX3Jl Z2V4KSkNCj4gIAkJY29udGludWU7DQo+IA0KPiAtCSAgICAgIGlmICghc3ltLT5tYXRjaGVzIChk b21haW4pKQ0KPiAtCQljb250aW51ZTsNCj4gLQ0KPiAtCSAgICAgIGlmIChuYW1lX3JlZ2V4Lmhh c192YWx1ZSAoKQ0KPiAtCQkgICYmIG5hbWVfcmVnZXgtPmV4ZWMgKHN5bS0+bmF0dXJhbF9uYW1l ICgpLCAwLA0KPiAtCQkJCSAgICAgICBudWxscHRyLCAwKSAhPSAwKQ0KPiAtCQljb250aW51ZTsN Cj4gLQ0KPiAtCSAgICAgIHN3aXRjaCAobV9raW5kKQ0KPiAtCQl7DQo+IC0JCWNhc2Ugc3ltYm9s X3NlYXJjaF9raW5kOjpWQVJJQUJMRToNCj4gLQkJICAvKiBMT0NfQ09OU1QgY2FuIGJlIHVzZWQg Zm9yIG1vcmUgdGhhbiBqdXN0IGVudW1zLCBlLmcuLA0KPiAtCQkgICAgIEMrKyBzdGF0aWMgY29u c3QgbWVtYmVycy4gIFdlIG9ubHkgd2FudCB0byBza2lwIGVudW1zDQo+IC0JCSAgICAgaGVyZS4g ICovDQo+IC0JCSAgaWYgKHN5bS0+bG9jX2NsYXNzICgpID09IExPQ19VTlJFU09MVkVEDQo+IC0J CSAgICAgIHx8IChzeW0tPmxvY19jbGFzcyAoKSA9PSBMT0NfQ09OU1QNCj4gLQkJCSAgJiYgc3lt LT50eXBlICgpLT5jb2RlICgpID09IFRZUEVfQ09ERV9FTlVNKSkNCj4gLQkJICAgIGNvbnRpbnVl Ow0KPiAtCQkgIFtbZmFsbHRocm91Z2hdXTsNCj4gLQ0KPiAtCQljYXNlIHN5bWJvbF9zZWFyY2hf a2luZDo6RlVOQ1RJT046DQo+IC0JCSAgaWYgKHR5cGVfcmVnZXguaGFzX3ZhbHVlICgpDQo+IC0J CSAgICAgICYmICF0cmVnX21hdGNoZXNfc3ltX3R5cGVfbmFtZSAoKnR5cGVfcmVnZXgsIHN5bSkp DQo+IC0JCSAgICBjb250aW51ZTsNCj4gLQkJICBicmVhazsNCj4gLQ0KPiAtCQljYXNlIHN5bWJv bF9zZWFyY2hfa2luZDo6TU9EVUxFOg0KPiAtCQkgIC8qIFNraXAgbW9kdWxlIGRlY2xhcmF0aW9u cywga2VlcCBvbmx5IGRlZmluaXRpb25zLiAgKi8NCj4gLQkJICBpZiAoc3ltLT5saW5lICgpID09 IDApDQo+IC0JCSAgICBjb250aW51ZTsNCj4gLQkJICBicmVhazsNCj4gLQkJfQ0KPiAtDQo+ICAJ ICAgICAgLyogTWF0Y2gsIGluc2VydCBpZiBub3QgYWxyZWFkeSBpbiB0aGUgcmVzdWx0cy4gICov DQo+ICAJICAgICAgaWYgKHJlc3VsdF9zZXQtPnNpemUgKCkgPCBtX21heF9zZWFyY2hfcmVzdWx0 cykNCj4gIAkJcmVzdWx0X3NldC0+ZW1wbGFjZSAoYmxvY2ssIHN5bSk7DQo+IEBAIC00OTA4LDM0 ICs0OTQwLDI1IEBADQo+IGdsb2JhbF9zeW1ib2xfc2VhcmNoZXI6OmFkZF9tYXRjaGluZ19tc3lt Ym9scw0KPiAgICAgIHsNCj4gICAgICAgIFFVSVQ7DQo+IA0KPiAtICAgICAgaWYgKG1zeW1ib2wt PmNyZWF0ZWRfYnlfZ2RiKQ0KPiArICAgICAgaWYgKCFtc3ltYm9sX21hdGNoZXMgKG1zeW1ib2ws IG5hbWVfcmVnZXgpKQ0KPiAgCWNvbnRpbnVlOw0KPiANCj4gLSAgICAgIGlmIChpc19zdWl0YWJs ZV9tc3ltYm9sIChtc3ltYm9sKSkNCj4gLQl7DQo+IC0JICBpZiAoIW5hbWVfcmVnZXguaGFzX3Zh bHVlICgpDQo+IC0JICAgICAgfHwgbmFtZV9yZWdleC0+ZXhlYyAobXN5bWJvbC0+bmF0dXJhbF9u YW1lICgpLCAwLA0KPiAtCQkJCSAgIE5VTEwsIDApID09IDApDQo+IC0JICAgIHsNCj4gLQkgICAg ICAvKiBGb3IgZnVuY3Rpb25zIHdlIGNhbiBkbyBhIHF1aWNrIGNoZWNrIG9mIHdoZXRoZXIgdGhl DQo+IC0JCSBzeW1ib2wgbWlnaHQgYmUgZm91bmQgdmlhIGZpbmRfcGNfc3ltdGFiLiAgKi8NCj4g LQkgICAgICBpZiAobV9raW5kICE9IHN5bWJvbF9zZWFyY2hfa2luZDo6RlVOQ1RJT04NCj4gLQkJ ICB8fCAoZmluZF9jb21wdW5pdF9zeW10YWJfZm9yX3BjDQo+IC0JCSAgICAgIChtc3ltYm9sLT52 YWx1ZV9hZGRyZXNzIChvYmpmaWxlKSkgPT0gTlVMTCkpDQo+IC0JCXsNCj4gLQkJICBpZiAobG9v a3VwX3N5bWJvbF9pbl9vYmpmaWxlX2Zyb21fbGlua2FnZV9uYW1lDQo+IC0JCSAgICAgIChvYmpm aWxlLCBtc3ltYm9sLT5saW5rYWdlX25hbWUgKCksDQo+IC0JCSAgICAgICBTRUFSQ0hfVkZUKS5z eW1ib2wgPT0gTlVMTCkNCj4gLQkJICAgIHsNCj4gLQkJICAgICAgLyogTWF0Y2hpbmcgbXN5bWJv bCwgYWRkIGl0IHRvIHRoZSByZXN1bHRzIGxpc3QuICAqLw0KPiAtCQkgICAgICBpZiAocmVzdWx0 cy0+c2l6ZSAoKSA8IG1fbWF4X3NlYXJjaF9yZXN1bHRzKQ0KPiAtCQkJcmVzdWx0cy0+ZW1wbGFj ZV9iYWNrIChHTE9CQUxfQkxPQ0ssIG1zeW1ib2wsDQo+IG9iamZpbGUpOw0KPiAtCQkgICAgICBl bHNlDQo+IC0JCQlyZXR1cm4gZmFsc2U7DQo+IC0JCSAgICB9DQo+IC0JCX0NCj4gLQkgICAgfQ0K PiAtCX0NCj4gKyAgICAgIC8qIEZvciBmdW5jdGlvbnMgd2UgY2FuIGRvIGEgcXVpY2sgY2hlY2sg b2Ygd2hldGhlciB0aGUNCj4gKwkgc3ltYm9sIG1pZ2h0IGJlIGZvdW5kIHZpYSBmaW5kX3BjX3N5 bXRhYi4gICovDQo+ICsgICAgICBpZiAobV9raW5kID09IHN5bWJvbF9zZWFyY2hfa2luZDo6RlVO Q1RJT04NCj4gKwkgICYmIChmaW5kX2NvbXB1bml0X3N5bXRhYl9mb3JfcGMNCj4gKwkgICAgICAo bXN5bWJvbC0+dmFsdWVfYWRkcmVzcyAob2JqZmlsZSkpICE9IE5VTEwpKQ0KPiArCWNvbnRpbnVl Ow0KPiArDQo+ICsgICAgICBpZiAobG9va3VwX3N5bWJvbF9pbl9vYmpmaWxlX2Zyb21fbGlua2Fn ZV9uYW1lDQo+ICsJICAgIChvYmpmaWxlLCBtc3ltYm9sLT5saW5rYWdlX25hbWUgKCksIFNFQVJD SF9WRlQpLnN5bWJvbCAhPSBOVUxMKQ0KPiArCWNvbnRpbnVlOw0KPiArDQo+ICsgICAgICAvKiBN YXRjaGluZyBtc3ltYm9sLCBhZGQgaXQgdG8gdGhlIHJlc3VsdHMgbGlzdC4gICovDQo+ICsgICAg ICBpZiAocmVzdWx0cy0+c2l6ZSAoKSA8IG1fbWF4X3NlYXJjaF9yZXN1bHRzKQ0KPiArCXJlc3Vs dHMtPmVtcGxhY2VfYmFjayAoR0xPQkFMX0JMT0NLLCBtc3ltYm9sLCBvYmpmaWxlKTsNCj4gKyAg ICAgIGVsc2UNCj4gKwlyZXR1cm4gZmFsc2U7DQo+ICAgICAgfQ0KPiANCj4gICAgcmV0dXJuIHRy dWU7DQo+IGRpZmYgLS1naXQgYS9nZGIvc3ltdGFiLmggYi9nZGIvc3ltdGFiLmgNCj4gaW5kZXgg YWNiZTQxZDEzMWI3Li41ZGQwNDc1ZTQ0OTEgMTAwNjQ0DQo+IC0tLSBhL2dkYi9zeW10YWIuaA0K PiArKysgYi9nZGIvc3ltdGFiLmgNCj4gQEAgLTI2NzUsNiArMjY3NSwxOSBAQCBjbGFzcyBnbG9i YWxfc3ltYm9sX3NlYXJjaGVyDQo+ICAgIC8qIENvbXBpbGUgTV9TWU1CT0xfVFlQRV9SRUdFWFAs IGlmIHNldC4gICovDQo+ICAgIHN0ZDo6b3B0aW9uYWw8Y29tcGlsZWRfcmVnZXg+IGNvbXBpbGVf dHlwZV9yZWdleCAoKSBjb25zdDsNCj4gDQo+ICsgIC8qIFJldHVybiB0cnVlIGlmIFNZTVRBQiBt YXRjaGVzIG9uZSBvZiBNX0ZJTEVOQU1FUy4gICovDQo+ICsgIGJvb2wgc3ltdGFiX21hdGNoZXNf ZmlsZW5hbWVzIChzeW10YWIgKnN5bXRhYikgY29uc3Q7DQo+ICsNCj4gKyAgLyogUmV0dXJuIHRy dWUgaWYgU1lNIGlzIG9mIHR5cGUgTV9LSU5ELCBpcyBpbiBhIGZpbGUgbWF0Y2hpbmcNCg0KUmVw aHJhc2UgdG8gImlzIG9mIGtpbmQgTV9LSU5EIj8gDQoNCj4gKyAgICAgTV9GSUxFTkFNRVMsIGFu ZCBtYXRjaGVzIE5BTUVfUkVHRVggYW5kIFRZUEVfUkVHRVguICAqLw0KPiArICBib29sIHN5bWJv bF9tYXRjaGVzIChjb25zdCBzeW1ib2wgKnN5bSwNCj4gKwkJICAgICAgIGNvbnN0IHN0ZDo6b3B0 aW9uYWw8Y29tcGlsZWRfcmVnZXg+ICZuYW1lX3JlZ2V4LA0KPiArCQkgICAgICAgY29uc3Qgc3Rk OjpvcHRpb25hbDxjb21waWxlZF9yZWdleD4gJnR5cGVfcmVnZXgpIGNvbnN0Ow0KPiArDQo+ICsg IC8qIFJldHVybiB0cnVlIGlmIE1TWU1CT0wgaXMgb2YgdHlwZSBNX0tJTkQgYW5kIG1hdGNoZXMg TkFNRV9SRUdFWC4NCj4gKi8NCg0KU2FtZSBoZXJlLg0KDQo+ICsgIGJvb2wgbXN5bWJvbF9tYXRj aGVzIChjb25zdCBtaW5pbWFsX3N5bWJvbCAqbXN5bWJvbCwNCj4gKwkJCWNvbnN0IHN0ZDo6b3B0 aW9uYWw8Y29tcGlsZWRfcmVnZXg+ICZuYW1lX3JlZ2V4KQ0KPiBjb25zdDsNCg0KVGhlIGZ1bmN0 aW9uIGFsc28gY2hlY2tzIHRoZSAiY3JlYXRlZF9ieV9nZGIiIGZsYWcgYW5kICJpc19zdWl0YWJs ZV9tc3ltYm9sIi4NClNob3VsZCB0aGlzIGJlIG1lbnRpb25lZCBpbiB0aGUgY29tbWVudCwgdG9v Pw0KDQo+ICsNCj4gICAgLyogRXhwYW5kIHN5bXRhYnMgaW4gT0JKRklMRSB0aGF0IG1hdGNoIE5B TUVfUkVHRVgsIGFyZSBvZiB0eXBlDQo+IE1fS0lORC4NCj4gICAgICAgUmV0dXJuIHRydWUgaWYg YSBtYXRjaGluZyBmdW5jdGlvbiBtc3ltYm9sIHdpdGhvdXQgZGVidWcgaW5mbyB3YXMNCj4gICAg ICAgc2VlbiwgbWVhbmluZyB0aGF0IG1zeW1ib2xzIHNob3VsZCBsYXRlciBiZSBjb25zaWRlcmVk IGZvciB0aGUgcmVzdWx0cw0KPiAtLQ0KPiAyLjU1LjANCg0KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KSW50ZWwgRGV1dHNjaGxhbmQgR21iSCANCg0KUmVnaXN0ZXJl ZCBBZGRyZXNzOiBEb3JuYWNoZXIgU3RyYXNzZSAxLCA4NTYyMiBGZWxka2lyY2hlbiwgR2VybWFu eSANCg0KVGVsOiArNDkgKDg5KSA5OTE0My0wIA0KDQp3d3cuaW50ZWwuZGUgDQoNCk1hbmFnaW5n IERpcmVjdG9yczogQ2FuZGljZSBNb29yZSwgSmVmZnJleSBTY2huZWlkZXJtYW4sIFJhbWFjaGFu ZHJhbiBTaXRhcmFtYW4NCg0KQ2hhaXJwZXJzb24gb2YgdGhlIFN1cGVydmlzb3J5IEJvYXJkOiBT b25qYSBQaWVyZXINCg0KUmVnaXN0ZXJlZCBTZWF0OiBNdW5pY2ggQ29tbWVyY2lhbCBSZWdpc3Rl ciBCOiBBbXRzZ2VyaWNodCBNdW5pY2ggSFJCIDE4NjkyOA0KDQpUaGlzIGUtbWFpbCBhbmQgYW55 IGF0dGFjaG1lbnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBtYXRlcmlhbCBmb3INCnRoZSBz b2xlIHVzZSBvZiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkgcmV2aWV3IG9yIGRpc3Ry aWJ1dGlvbg0KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90 IHRoZSBpbnRlbmRlZA0KcmVjaXBpZW50LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGFuZCBk ZWxldGUgYWxsIGNvcGllcy4K