From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id toiyDMDxYGqBDSYAWB0awg (envelope-from ) for ; Wed, 22 Jul 2026 12:37:20 -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=H2P7scDt; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 145D81E09E; Wed, 22 Jul 2026 12:37:20 -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 [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 A2C3C1E033 for ; Wed, 22 Jul 2026 12:37:18 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0C8C14BA2E33 for ; Wed, 22 Jul 2026 16:37:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0C8C14BA2E33 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=H2P7scDt Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by sourceware.org (Postfix) with ESMTPS id CAEAD4BA2E07 for ; Wed, 22 Jul 2026 16:36:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CAEAD4BA2E07 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 CAEAD4BA2E07 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=192.198.163.13 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1784738203; cv=pass; b=woX1dRBU51l5LozriEnlfTL9kmbFbwvzrvrOMd0nPaQrBjvfix/OfrrkRV3X7omrUT6hnsisNuNW7foDHU6VFrGHRz3hGZo4UuJDc8ptE3GQVHcTESVMUWdW5aakpEXLv9cpi53rnIQRmpc9JAusfiDNWEUJqbmTqVqOzLjkxJ0= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1784738203; c=relaxed/simple; bh=EyRwFGGI3CJaj/A0UqiZ3/voLRyBJnunj7sDrVbFR/g=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=GNB4AadEvjYvZNBTSlY1YFecJGvjMnhEwMaMeAZ0+fjwMAqDd8dWku+gppYOr36SGFSj2i8ghLX8P55pTPHUdDgIHc43faljYEu3l5mHb/7I52lkSClWbFKs4m7ICDX7y4JC6FuAX9vQH1UgvFx0V7IrmO+ut7P1QBk1wXZahd0= 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=H2P7scDt DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CAEAD4BA2E07 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1784738203; x=1816274203; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=EyRwFGGI3CJaj/A0UqiZ3/voLRyBJnunj7sDrVbFR/g=; b=H2P7scDtNMdRAOISVusA0yrkYfSlrERxkmQJ2jlC9NKlJKKrm8DADRZn UI0D0sdYJktO9a2YXk+v9lDH1UOIloDfJPqcTm7BjW/VwxDAUO+CNwLPK BOc748UhOXNkFKvAl/4+cDhJVXaQouGawi+L3S1XorbxXFnPbp/nS+FGD wKNiguz/Dvc7jBrvfUrqGYsXkPeZzwnFNowssKS/GgNaVUh2qcfcNNjwa Vb/qhkiPVqi7njDJ0XfZtE/YZwgURzEzFLa2sLV+XMAHI4RjOrdQaeYGm 9mzHmq6kfIBWTLXfD6h74Hy0gwSQbPdeojYtbEEFlSwFh/x4uzx8m+VWY Q==; X-CSE-ConnectionGUID: 2NUQXh8SRPCii9732wk5hw== X-CSE-MsgGUID: ae6/ZL44RpauYgty6khvJw== X-IronPort-AV: E=McAfee;i="6800,10657,11854"; a="87916550" X-IronPort-AV: E=Sophos;i="6.25,178,1779174000"; d="scan'208";a="87916550" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jul 2026 09:36:36 -0700 X-CSE-ConnectionGUID: pd0lX+fHT1G4AyAlw8NeLQ== X-CSE-MsgGUID: 5TgFvo92QdWg2jpfS/lCqg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,178,1779174000"; d="scan'208";a="256907838" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jul 2026 09:36:37 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) 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.43; Wed, 22 Jul 2026 09:36:35 -0700 Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43 via Frontend Transport; Wed, 22 Jul 2026 09:36:35 -0700 Received: from CY7PR03CU001.outbound.protection.outlook.com (40.93.198.36) by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 22 Jul 2026 09:36:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D8AqY/mmFh8ldlEOn4huSEFfjaLvXGHHDltJYFr8kagVazLXlxokjlm006a3AJe5nERFzDbzIlP4UPX+iGOedxOqI8pnVJNoCyhm1HV4D4/oQ/+1zHHX9MY08BLOH4pvoc7jE766jQwG+JXW5vOs5Uc30+7HNVSFt4ZTpbzwhunel2Ap0owKaNYlB5mRh1m1ZVHeAvmlziLONagXIu/OfkOfUxFJ1BHhBHBIUUhcoeDzPKsE/Y25Bg/vbCNCuCLTljeomPMrVjM/3SGCBDE0zuENi99d1+ta0YyunsywH1ual25q5y80SQ0c6mxtei6WYlqaIZ8sa41Vi1J2m6AnSw== 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=EyRwFGGI3CJaj/A0UqiZ3/voLRyBJnunj7sDrVbFR/g=; b=NLg27xmMtXOlrNn8pzedA2cnwv4jbj6bRdeZ94LGG6A0UbM7+UGjRe/Hi9zhu5Tt2ECaJfWsGNRqrfB/QJM9WSC2/bEKCAuzlSh7nIRmDwCIqFfFEYonIhpILVvcAvU5dKJ00NsgKdiWw/II2sfw7Gxc146jF4Q/MGAWEV7lYM0V00Q3GvWwqE/PzOeSDZKHA0C+24BYTZBllzNp1PL1jXVoyEw55XucTfPB9onA8R/TQLUMknDdkeHTPvcYGSZVcv72opTAPiFHaZOGi8le0HBmhH/fIElGqKqAIGTDkXpp69gYzuyGhFqsdjEXkDlE1bwU5gGtAXIQebcEe6Qmkg== 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 SN7PR11MB7638.namprd11.prod.outlook.com (2603:10b6:806:34b::22) by PH7PR11MB5765.namprd11.prod.outlook.com (2603:10b6:510:139::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Wed, 22 Jul 2026 16:36:33 +0000 Received: from SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011]) by SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011%4]) with mapi id 15.21.0245.009; Wed, 22 Jul 2026 16:36:33 +0000 From: "Joos, Christina" To: Matthieu Longo , "gdb-patches@sourceware.org" Subject: RE: [PATCH v1 05/10] gdb: introduce helper class file_reader_t Thread-Topic: [PATCH v1 05/10] gdb: introduce helper class file_reader_t Thread-Index: AQHdDiiJVRwfP6VP6kivBuZ5eZrOubZnABjAgAS5QICADhg2oA== Date: Wed, 22 Jul 2026 16:36:33 +0000 Message-ID: References: <20260707154900.94542-1-matthieu.longo@arm.com> <20260707154900.94542-6-matthieu.longo@arm.com> <7cac4b13-581f-4b3c-b42f-65f47848e800@arm.com> In-Reply-To: <7cac4b13-581f-4b3c-b42f-65f47848e800@arm.com> 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: SN7PR11MB7638:EE_|PH7PR11MB5765:EE_ x-ms-office365-filtering-correlation-id: f234b444-002a-4d8c-5c5f-08dee80f6422 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|23010399003|22082099003|18002099003|4143699003|38070700021|10067099003|56012099006|5023799004|11063799006|6133799003; x-microsoft-antispam-message-info: +b/gjuyCb5K+bF2pkvt6MZdMedTf2Nk9NJuSwwswwzpSxhzmn+Hr4+dnn/d4Fp1Q0EPnPX7hPDCNVHVUj1hiaAVYL7EBcAYSj6kRarE8rJOynkNMf22AGyXGV1SaZxUNk17rraPy0fouctt0JzIJdS0/37QYxxbfi2n3IEVy+F3Z1HwvEaCX3ocR1BKL8gxCaP6Pk3OBUbCyoslw9X0iQvsgLaaSc6tf08tBna6QBjm6O8Xsgwq9/r3h6AowjUPxuct0An8CScp9hTI5RySSh5rdjS9qBCFNatpxZcGYnaaM8emM72+si81pY6zUALhhX/Fp0xv5DZDBgbZFuZbjs103pIlNzIDAzoB9du8NGbScKC8hef3ITGY+J0zhQkVUIY1H84qV6MtMwcOOvuGW/Zg2DYTmEPL2lbAwK7QqGr8zVXNr+0W5HiBDlPHo+oP5h9+H7ZA25/coPqDF/2v9IyOS/gtm8eLsfm9vCdFQSSWyjGWkSHV/VbN44549UJ1ubcqYzTn6CZuS7W6l+hTYL0dBKvWRrE52mkZ8VDnVNPYnVa7HIgK2mRXkoUBatcf49psuXPwz5/KQmxocAuKnWyXnIpZlczRV4ChTDQQ+TC4vJ/pEmQ9flrRvT3mSPEogfIGz93ErV8GUlzTmn/v3IrxQrohLrgJxUMtRT/o0aBO//SVwXdJW4LFz77zqdXgQhDpesGzVGzJ0Xs2IQsK6Q6dv/qtUmwt417ginoTWLhY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR11MB7638.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(22082099003)(18002099003)(4143699003)(38070700021)(10067099003)(56012099006)(5023799004)(11063799006)(6133799003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cW95ejkzN0FlaE9qVzkxTU5YcjR0M1NmMG9iSjZuMHFIVnpQbXI0anZBcEM5?= =?utf-8?B?aDVEMk5jdXJiWUdtdDdmS3F3ajRrSFVZYi84U0J4RHlaeWJSUnNiNUNiTFpN?= =?utf-8?B?RVFhNHBFRTQxbHBwYUo2WUJCeGpOTzdWbFZhZ1FkR2FXeVRjVS9wNU1aN01L?= =?utf-8?B?bElwTEpyUmtBV2NLVFR3bnlwOFBWSTdUVmV0WEwzWHhidHNYVENrYXQ1ZDB1?= =?utf-8?B?QVlBNnpRbEpJaWFmeE9IeHBxaFh0dG5jZlR1ZThORzZOc0paVWZVVEdyT29O?= =?utf-8?B?am1oZ3dFbnNRY2dxT3R4WVBOem1GOWhZNDB2RktJSzBuQld5ZDNlbmFVc1lC?= =?utf-8?B?V2s3dUx1TlJkSmhGd2xCa1lZbjE2VFdIUW5nM0k4bGhUZXIrWXR2NnRhR21s?= =?utf-8?B?a3NPd1kyZXFKb0pWcVBsQzM5UWlJWkhyd2NkZlZFcnBKOE1KcTFZeHQzbi9Q?= =?utf-8?B?bUkzRTN5YjNTOHFqUWZjSTZRbHZNV1FPOUUxWWoxTllkRzJKdXdWUGl2RWJi?= =?utf-8?B?dHZMalk4ekxTanpYclgrR3VzQktVYWxHOWRwVGRtTUJvNjNUUGQvRHZUaFVx?= =?utf-8?B?UWg4UFBaQUhCbnphMUxrZ3F6WUkyV0pIWGJhdzJQcFpMOGNIZlRnM1BvZFAr?= =?utf-8?B?QUZnUWY5cW5lYllHeGFFVjIxbWs4UzlTT2hDK3RYRkFON0VYNXVDU2NndThQ?= =?utf-8?B?dklIMlYyYlM0V0RmZitFaWZZazk3VmZNUUhSeVZTUGNrTzA5VkZGSVNlR2Zn?= =?utf-8?B?aGVFRTJISlEzUmp4S1FmY05XWTBYT0pmbStCcEZuemNzTmxIM0Q5S0tLUHdt?= =?utf-8?B?K00rTW5kd25kTWd1K3VjMHVocVpVRmYzUVBGcDAvRzdwRXBSM2VXcVFEUi9q?= =?utf-8?B?NUhQUlUrd0tGWFluNysxUDBrZmxNMUp4MEpzY09RdXJ5ZkRLKy9Vd25qR0M2?= =?utf-8?B?QUg4UDVLVzZHSFRQMlZuekJIcEhEUlN2dlpFd3JMU2REKy9OdXFZQnNvWUcw?= =?utf-8?B?c3J4c2c2Y3g4R1E2S05zK1RDcWFabGx2WGNsZVdjR3lEWjhHVWVVbzZWQkNQ?= =?utf-8?B?WCtNbkNSdWxPV0ZiNXZRRGI5a05BeU5ORlBqeHduZUpuV1dUdlZHMVc0bTNN?= =?utf-8?B?V0lYY28wa3dMWFU0aUpQR2orSTFwQktJVURCNDgwbitPRDhqNnYyNUpmbEJ4?= =?utf-8?B?ZVFDVyt4VFhXK3JxN2pOQmpURjdZdjVCYmRkaDRRSWlCV2xoTC9zcVJQU0Fa?= =?utf-8?B?R0VqVGVSTlBEelFUb0pqOEE3YnlFcjJ5Umt1YUtZUFZ3UFRWcGs3WGgwTFhH?= =?utf-8?B?Nk50L3djVVJNZWJ6dVBIYXpCVzU4NHJRM2ZPRzJKdHdWL0t4WFE3cTg5OUpW?= =?utf-8?B?dlQybkhRV2tKcCtmWDVWS1F2U1Q0bWlOSk1kVFRQYjdSdHFzYlJ1czh5aEhN?= =?utf-8?B?bFZOc0M3dXJWM0tqMFYzd3FPZlZvWmM1TUVHSFVqb1FnQjIvQ0U0ZGpJbFJT?= =?utf-8?B?cjA0blVoUVc5YWtwQVVlNmMvZWlWdGsvWTY2UUprQ2x1RytKQWJKdm1tdTZR?= =?utf-8?B?azZJbVptR2pjclMxVHRtVHdpWk4vTE96K0x2a0VEdlFMTldncjBwT3FIM0Ur?= =?utf-8?B?OGJ4QStQaFYwRnYrQW14dEZ4YS9uVFZ1WUxMZ3JTSVpVOENWVnVBcW1Hd2li?= =?utf-8?B?TGpHSFQ3WE1YYlBQdEtLSDJBVkVNRUhMM2FSZkY5VXhzNS9XMzNFb1RMSUJW?= =?utf-8?B?SUE3cURzckhZVTZESWlLM2tDbzkvRnRvTlFVZ0ZkeDNLbmFKQVVYSGZwb2JR?= =?utf-8?B?NUoxK2RZeS9mS1k1a1ZzMDdERW9mdnptd2ZKb1R1TERLUUthMFBCeHdCbVF0?= =?utf-8?B?L0sxbkVlL3hPR2trLzhUc3dkOUZXaGVpMmtaOFh6SWYzRWx3dzJhZ1NIaW9P?= =?utf-8?B?U2pyRnE0aW5XaUxjb2o3T0c1dmN1a3NNMi9CRFR6eEN4T3d0cDQ0TGxCSWl3?= =?utf-8?B?MzR4RTE1eXhZQ1R0MVVZL1g2Zi9QaFIwaVdTczR2SlpaWVJZalRGQlpBb2Zx?= =?utf-8?B?OTEwOWw4Tlh4OWdvNGpkVjFSTDhRUkVNckNSVFFCTExJaStZS3I3aS9iM3li?= =?utf-8?B?Zjg1WWtDcXI1Sk4vZktjdWI1eFUxQjZ2RzlCekJVdVMwZHRJMEFiekZpakdQ?= =?utf-8?B?QU9lN29yeXh4TWQzMTkwQ21WYUQwMEY1MGRTUVNLd1d3NmZQZVVnc0o4cUYv?= =?utf-8?B?VFFXYk9vRS9hSTFZTGlxa01uR3NzRHYwN3hOWVZHM3R2eGVkMm1ZK3ppVkp1?= =?utf-8?B?RlA4VGd4Qkd5STVrQklRRnJzWlkzYTRyMkh4ZEFLc2IycEUwM0xNZz09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: cj6dgiHb/6Et/s9980CiTjcyDsQRP2d5IYfDtWcwc4a9KiYnYZofutXcY+1r3bsppVihqbbb3h0inKrieD+0ILjmgR67mbaTQSX6xq5vGdJohe39y7Kyqe+/Bc+N1OuujVc+1tpz6Xt2xpkOordVfMubR+wCggS7hrnN03x6+5CZIrjZFXq9BvDjV6d39dIefc6+qpeER3uEM7g9ltgtuD2N5Tr44xb4Ewqedu8+H3IceZjuvPjVZebgGlWnDWdvvSBaWlLvuRhfbu+RmJD91GJhCk8MXLrl2XksyysoZGTtpYWsLPaBUwVb5qkWZoheJLDWaToPN2CvlTUD/YNcJw== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f234b444-002a-4d8c-5c5f-08dee80f6422 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2026 16:36:33.4708 (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: 3nGlTN/yZxOX07xAypKYhViXn2tZP75sHsoslRXHUJKKOCbEqPeWQrh9zKNml34P3lhcaifPZa6FeZ46iCDtw2Gs0JzF3NoyghHL2Vts3UA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5765 X-OriginatorOrg: intel.com 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXR0aGlldSBMb25nbyA8bWF0 dGhpZXUubG9uZ29AYXJtLmNvbT4NCj4gU2VudDogTW9udGFnLCAxMy4gSnVsaSAyMDI2IDE5OjEz DQo+IFRvOiBTY2hpbXBlLCBDaHJpc3RpbmEgPGNocmlzdGluYS5zY2hpbXBlQGludGVsLmNvbT47 IGdkYi0NCj4gcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZw0KPiBDYzogTHVpcyBNYWNoYWRvIDxsdWlz Lm1hY2hhZG9AYW1kLmNvbT47IEx1aXMgTWFjaGFkbw0KPiA8bHVpcy5tYWNoYWRvLmZvc3NAZ21h aWwuY29tPjsgQW5kcmV3IEJ1cmdlc3MgPGFidXJnZXNzQHJlZGhhdC5jb20+Ow0KPiBZdXJ5IEto cnVzdGFsZXYgPHl1cnkua2hydXN0YWxldkBhcm0uY29tPjsgUGVkcm8gQWx2ZXMNCj4gPHBlZHJv QHBhbHZlcy5uZXQ+OyBUb20gVHJvbWV5IDx0b21AdHJvbWV5LmNvbT47IEtldmluIEJ1ZXR0bmVy DQo+IDxrZXZpbmJAcmVkaGF0LmNvbT47IFRoaWFnbyBKdW5nIEJhdWVybWFubg0KPiA8dGhpYWdv LmJhdWVybWFubkBsaW5hcm8ub3JnPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYxIDA1LzEwXSBn ZGI6IGludHJvZHVjZSBoZWxwZXIgY2xhc3MgZmlsZV9yZWFkZXJfdA0KPiANCj4gT24gMTMvMDcv MjAyNiAxNjo1MCwgU2NoaW1wZSwgQ2hyaXN0aW5hIHdyb3RlOg0KPiA+PiBAQCAtMjgwMiw5ICsy NzkwLDYgQEAgbGludXhfZ2RiX3NpZ25hbF90b190YXJnZXQgKHN0cnVjdCBnZGJhcmNoDQo+ID4+ ICpnZGJhcmNoLCAgc3RhdGljIGJvb2wgIGxpbnV4X3ZzeXNjYWxsX3JhbmdlX3JhdyAoc3RydWN0 IGdkYmFyY2gNCj4gPj4gKmdkYmFyY2gsIHN0cnVjdCBtZW1fcmFuZ2UgKnJhbmdlKSAgew0KPiA+ PiAtICBjaGFyIGZpbGVuYW1lWzEwMF07DQo+ID4+IC0gIGxvbmcgcGlkOw0KPiA+PiAtDQo+ID4+ ICAgIGlmICh0YXJnZXRfYXV4dl9zZWFyY2ggKEFUX1NZU0lORk9fRUhEUiwgJnJhbmdlLT5zdGFy dCkgPD0gMCkNCj4gPj4gICAgICByZXR1cm4gZmFsc2U7DQo+ID4+DQo+ID4+IEBAIC0yODQyLDcg KzI4MjcsNyBAQCBsaW51eF92c3lzY2FsbF9yYW5nZV9yYXcgKHN0cnVjdCBnZGJhcmNoDQo+ID4+ ICpnZGJhcmNoLCBzdHJ1Y3QgbWVtX3JhbmdlICpyYW5nZSkNCj4gPj4gICAgaWYgKGN1cnJlbnRf aW5mZXJpb3IgKCktPmZha2VfcGlkX3ApDQo+ID4+ICAgICAgcmV0dXJuIGZhbHNlOw0KPiA+Pg0K PiA+PiAtICBwaWQgPSBjdXJyZW50X2luZmVyaW9yICgpLT5waWQ7DQo+ID4+ICsgIGxvbmcgcGlk ID0gY3VycmVudF9pbmZlcmlvciAoKS0+cGlkOw0KPiA+Pg0KPiA+PiAgICAvKiBOb3RlIHRoYXQg cmVhZGluZyAvcHJvYy9QSUQvdGFzay9QSUQvbWFwcyAoMSkgaXMgbXVjaCBmYXN0ZXIgdGhhbg0K PiA+PiAgICAgICByZWFkaW5nIC9wcm9jL1BJRC9tYXBzICgyKS4gIFRoZSBsYXRlciBpZGVudGlm aWVzIHRocmVhZCBzdGFja3MNCj4gPj4gQEAgLQ0KPiA+PiAyODUyLDE1ICsyODM3LDE0IEBAIGxp bnV4X3ZzeXNjYWxsX3JhbmdlX3JhdyAoc3RydWN0IGdkYmFyY2gNCj4gPj4gKmdkYmFyY2gsIHN0 cnVjdCBtZW1fcmFuZ2UgKnJhbmdlKQ0KPiA+PiAgICAgICBhIGZldyB0aG91c2FuZCB0aHJlYWRz LCAoMSkgdGFrZXMgYSBmZXcgbWlsbGlzZWNvbmRzLCB3aGlsZSAoMikNCj4gPj4gICAgICAgdGFr ZXMgc2V2ZXJhbCBzZWNvbmRzLiAgQWxzbyBub3RlIHRoYXQgInNtYXBzIiwgd2hhdCB3ZSByZWFk IGZvcg0KPiA+PiAgICAgICBkZXRlcm1pbmluZyBjb3JlIGR1bXAgbWFwcGluZ3MsIGlzIGV2ZW4g c2xvd2VyIHRoYW4gIm1hcHMiLiAgKi8NCj4gPj4gLSAgeHNucHJpbnRmIChmaWxlbmFtZSwgc2l6 ZW9mIGZpbGVuYW1lLCAiL3Byb2MvJWxkL3Rhc2svJWxkL21hcHMiLA0KPiA+PiBwaWQsIHBpZCk7 DQo+ID4+IC0gIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNoYXI+IGRhdGENCj4gPj4gLSAgICA9 IHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoTlVMTCwgZmlsZW5hbWUpOw0KPiA+PiAtICBp ZiAoZGF0YSAhPSBOVUxMKQ0KPiA+PiArICBmaWxlX3JlYWRlcl90PGNoYXI+IHRhc2tfbWFwc19m cmVhZGVyDQo+ID4+ICsgICAgKHN0cmluZ19wcmludGYgKCIvcHJvYy8lbGQvdGFzay8lbGQvbWFw cyIsIHBpZCwgcGlkKSk7ICBpZg0KPiA+PiArICh0YXNrX21hcHNfZnJlYWRlcikNCj4gPj4gICAg ICB7DQo+ID4+ICAgICAgICBjaGFyICpsaW5lOw0KPiA+PiAgICAgICAgY2hhciAqc2F2ZXB0ciA9 IE5VTEw7DQo+ID4+DQo+ID4+IC0gICAgICBmb3IgKGxpbmUgPSBzdHJ0b2tfciAoZGF0YS5nZXQg KCksICJcbiIsICZzYXZlcHRyKTsNCj4gPj4gKyAgICAgIGZvciAobGluZSA9IHN0cnRva19yICh0 YXNrX21hcHNfZnJlYWRlci5kYXRhICgpLCAiXG4iLA0KPiA+PiArICZzYXZlcHRyKTsNCj4gPj4g IAkgICBsaW5lICE9IE5VTEw7DQo+ID4+ICAJICAgbGluZSA9IHN0cnRva19yIChOVUxMLCAiXG4i LCAmc2F2ZXB0cikpDQo+ID4+ICAJew0KPiA+PiBAQCAtMjg3OSw3ICsyODYzLDggQEAgbGludXhf dnN5c2NhbGxfcmFuZ2VfcmF3IChzdHJ1Y3QgZ2RiYXJjaA0KPiA+PiAqZ2RiYXJjaCwgc3RydWN0 IG1lbV9yYW5nZSAqcmFuZ2UpDQo+ID4+ICAJfQ0KPiA+PiAgICAgIH0NCj4gPj4gICAgZWxzZQ0K PiA+PiAtICAgIHdhcm5pbmcgKF8oInVuYWJsZSB0byBvcGVuIC9wcm9jIGZpbGUgJyVzJyIpLCBm aWxlbmFtZSk7DQo+ID4+ICsgICAgd2FybmluZyAoXygidW5hYmxlIHRvIG9wZW4gL3Byb2MgZmls ZSAnJXMnIiksDQo+ID4+ICsJICAgICB0YXNrX21hcHNfZnJlYWRlci5jX2ZpbGVwYXRoICgpKTsN Cj4gPg0KPiA+IElJVUMsIGJlZm9yZSB5b3VyIGNoYW5nZSwgaWYgdGhlIGZpbGUgd2FzIGVtcHR5 LCB3ZSBkaWQgbm90IHNob3cgYQ0KPiA+IHdhcm5pbmcsIHNpbmNlIHRhcmdldF9maWxlaW9fcmVh ZF9zdHJhbGxvYyBoYW5kbGVzIHRoZSBjYXNlIGxpa2UgdGhpczoNCj4gPiAiRW1wdHkgb2JqZWN0 cyBhcmUgcmV0dXJuZWQgYXMgYWxsb2NhdGVkIGJ1dCBlbXB0eSBzdHJpbmdzLiINCj4gPg0KPiA+ IEJhc2VkIG9uIHlvdXIgZmlsZV9yZWFkZXJfdCBpbXBsZW1lbnRhdGlvbiwgSSB0aGluayB3ZSBn ZXQgaGVyZSBpbg0KPiA+IGNhc2Ugd2UgY2FuIG9wZW4gdGhlIGZpbGUgYnV0IHRoZSBmaWxlIGlz IGVtcHR5LiBOb3Qgc3VyZSBpZiBpbiB0aGF0DQo+ID4gY2FzZSB0aGUgZmlsZSBjYW4gYmUgZW1w dHkgYXQgYWxsLCBidXQgaXQgaXMgYSBiZWhhdmlvdXJhbCBjaGFuZ2UgdGhhdCBzaG91bGQNCj4g YmUgYXZvaWRlZCBpbiBteSBvcGluaW9uLg0KPiA+IFRoZXJlIGFyZSBmdXJ0aGVyIHNpbWlsYXIg Y2FzZXMgaW4gdGhpcyBwYXRjaC4NCj4gDQo+IEFuIGVtcHR5IGZpbGUgaXMgbm9ybWFsbHkgZmlu ZSwgYnV0IGluIG1vc3Qgb2YgY2FzZXMsIHByZXR0eSB1c2VsZXNzIGhlbmNlIHRoZQ0KPiBwcm9w b3NlZCBjaGFuZ2UgaW4gYmVoYXZpb3IuDQo+IA0KPiBIb3dldmVyLCBJIGNhbiBzZWUgYSByZWFz b24gd2hlbiBhIGZpbGUgaXMgZW1wdHkgYW5kIGEgcHJvY2VzcyBzdGlsbCBhbGl2ZS4NCj4gRnJv bSBtYW4gNSBwcm9jX3BpZF9jbWRsaW5lOg0KPiAgID4gVGhpcyAgcmVhZC1vbmx5ICBmaWxlICBo b2xkcyB0aGUgY29tcGxldGUgY29tbWFuZCBsaW5lIGZvciB0aGUgcHJvY2VzcywNCj4gdW5sZXNz IHRoZQ0KPiAgID4gcHJvY2VzcyBpcyBhIHpvbWJpZS4gIEluIHRoZSBsYXR0ZXIgY2FzZSwgdGhl cmUgaXMgbm90aGluZyBpbiB0aGlzIGZpbGU6IHRoYXQgaXMsDQo+ICAgPiBhIHJlYWQgb24gdGhp cyBmaWxlIHdpbGwgcmV0dXJuIDAgY2hhcmFjdGVycy4NCj4gICA+IC4uLg0KPiAgID4gSWYsIGFm dGVyIGFuIGV4ZWN2ZSgyKSwgdGhlIHByb2Nlc3MgbW9kaWZpZXMgaXRzIGFyZ3Ygc3RyaW5ncywg dGhvc2UgY2hhbmdlcw0KPiB3aWxsDQo+ICAgPiBzaG93IHVwIGhlcmUuDQo+ICAgPiAuLi4NCj4g ICA+IEZ1cnRoZXJtb3JlLCBhIHByb2Nlc3MgbWF5IGNoYW5nZSB0aGUgbWVtb3J5IGxvY2F0aW9u IHRoYXQgdGhpcyBmaWxlDQo+IHJlZmVycyB2aWENCj4gICA+IHByY3RsKDIpIG9wZXJhdGlvbnMg c3VjaCBhcyBQUl9TRVRfTU1fQVJHX1NUQVJULg0KPiANCj4gVGhlIGxhc3Qgc2VudGVuY2Ugc3Vn Z2VzdHMgdGhhdCBhbiBlbXB0eSBmaWxlIGlzIHN0aWxsIHZhbGlkLCBhbmQgY2FuIGhhdmUgYQ0K PiBkaWZmZXJlbnQgY2F1c2UgdGhhbiBhIGRlY2Vhc2VkIHByb2Nlc3MuIFRoZXJlIG1pZ2h0IGJl IG90aGVycyBzaW1pbGFyIGNhc2VzLg0KPiANCj4gSSB3aWxsIGNoYW5nZSB0aGUgYmVoYXZpb3Ig YmFjayB0byB3aGF0IGl0IHdhcyBmb3IgZW1wdHkgZmlsZXMuDQo+IA0KPiA+IFdvdWxkIGl0IG1h a2Ugc2Vuc2UgdG8gY2hhbmdlIHRoZSBmaWxlX3JlYWRlcl90IGJvb2wgb3BlcmF0b3IgdG8NCj4g PiByZXR1cm4gdHJ1ZSBpbiBjYXNlIHRoZSBmaWxlIGlzIGVtcHR5PyBNYXliZSB3ZSBjb3VsZCB0 aGVuIGFkZGl0aW9uYWxseQ0KPiBpbnRyb2R1Y2UgYSBuZXcgbWV0aG9kIGJvb2wgZW1wdHkgKCku DQo+ID4NCj4gDQo+IFllcywgaXQgd291bGQgbWFrZSBzZW5zZSB0byBhZGQgYSBuZXcgbWV0aG9k IGVtcHR5KCkgYW5kIGV2ZW4gZXJyb3IgKCkuDQo+IEkgd2lsbCBhbHNvIGNoYW5nZSB0aGUgYmVo YXZpb3Igb2YgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9jIGluIGNhc2Ugb2YgZXJyb3JzDQo+ IChzZWUgY29tbWVudCBmcm9tIEtldmluIEJ1ZXR0bmVyKS4NCj4gDQo+IGJvb2wgZW1wdHkgKCkg Y29uc3QNCj4geyBtX2RhdGEgIT0gbnVsbHB0ciAmJiBtX3NpemUgPiAwOyB9DQo+IA0KPiBib29s IGVycm9yICgpIGNvbnN0DQo+IHsgbV9kYXRhID09IG51bGxwdHIgJiYgbV9zaXplID09IC0xOyB9 DQo+IA0KPiBBbmQgYm9vbCBvcGVyYXRvcigpIGNvdWxkIGJlIHRoZSBjb21iaW5hdGlvbiBvZiBi b3RoOg0KPiANCj4gYm9vbCBvcGVyYXRvciAoKSBjb25zdA0KPiB7IHJldHVybiAhKGVycm9yICgp IHx8ZW1wdHkgKCkpOyB9DQo+IA0KPiA+PiArLyogSGVscGVyIGNsYXNzIGZvciByZWFkaW5nIGEg ZmlsZS4gICovIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcw0KPiA+PiArZmlsZV9yZWFkZXJf dCB7DQo+ID4+ICsgIC8qIFRoZSBmaWxlcGF0aCBvZiB0aGUgZmlsZSBiZWluZyByZWFkLiAgKi8N Cj4gPj4gKyAgc3RkOjpzdHJpbmcgbV9maWxlcGF0aDsNCj4gPj4gKyAgLyogU21hcnQgcG9pbnRl ciB0byB0aGUgZGF0YS4gICovDQo+ID4+ICsgIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPFQ+IG1f ZGF0YTsNCj4gPj4gKyAgLyogU2l6ZSBvZiB0aGUgZGF0YS4gICovDQo+ID4+ICsgIHNpemVfdCBt X3NpemU7DQo+ID4+ICsNCj4gPj4gK3B1YmxpYzoNCj4gPj4gKyAgZmlsZV9yZWFkZXJfdCAoY29u c3Qgc3RkOjpzdHJpbmcgJmZpbGVwYXRoKQ0KPiA+PiArICAgIDogbV9maWxlcGF0aCAoZmlsZXBh dGgpDQo+ID4+ICsgICAgLCBtX3NpemUgKDApDQo+ID4+ICsgIHsNCj4gPj4gKyAgICBpZiBjb25z dGV4cHIgKHN0ZDo6aXNfc2FtZV92PFQsIGNoYXI+KQ0KPiA+PiArICAgICAgbV9kYXRhID0gdGFy Z2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9jIChudWxscHRyLCBtX2ZpbGVwYXRoLmNfc3RyICgpLA0K PiA+PiArCQkJCQkgICAgJm1fc2l6ZSk7DQo+ID4+ICsgICAgZWxzZQ0KPiA+PiArICAgICAgew0K PiA+PiArCWdkYl9ieXRlICpidWYgPSBudWxscHRyOw0KPiA+PiArCW1fc2l6ZSA9IHRhcmdldF9m aWxlaW9fcmVhZF9hbGxvYyAobnVsbHB0ciwgbV9maWxlcGF0aC5jX3N0ciAoKSwgJmJ1Zik7DQo+ ID4+ICsJbV9kYXRhID0gZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8VD4gKHJlaW50ZXJwcmV0X2Nh c3Q8VCAqPihidWYpKTsNCj4gPj4gKyAgICAgIH0NCj4gPj4gKyAgfQ0KPiA+PiArDQo+ID4+ICsg IC8qIFJldHVybiB0cnVlIGlmIHRoZSBmaWxlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseS4gICovICBv cGVyYXRvcg0KPiA+PiArIGJvb2wNCj4gPj4gKyAoKSBjb25zdCBub2V4Y2VwdCAgeyByZXR1cm4g bV9kYXRhICE9IG51bGxwdHIgJiYgbV9zaXplID4gMDsgfQ0KPiA+DQo+ID4gSSB0aGluayB3ZSBz aG91bGQgbWFrZSB0aGlzIGV4cGxpY2l0Lg0KPiA+DQo+IA0KPiBIb3dldmVyLCBtYWtpbmcgdGhl IGJvb2xlYW4gb3BlcmF0b3IgZXhwbGljaXQgd291bGQgbWFrZSBpdCB2ZXJ5DQo+IGluY29udmVu aWVudC4NCj4gSSB3b3VsZCBwcmVmZXIgdG8gYXZvaWQgdGhpcyBleHRyYSB2ZXJib3NlOg0KPiAN Cj4gaWYgKCFzdGF0aWNfY2FzdDxib29sPihmcmVhZGVyKSkNCj4gICB7DQo+ICAgICAvLyBoYW5k bGUgdGhlIGVycm9yIG9yIGVtcHR5DQo+ICAgfQ0KDQpIaSBNYXR0aGlldSwNCg0KVGhpcyBwYXJ0 IEkgY2Fubm90IGZ1bGx5IGZvbGxvdywgYnV0IG1heWJlIEkgYW0gbWlzc2luZyBzb21ldGhpbmcu DQpBRkFJSyBubyBzdGF0aWNfY2FzdCBpcyBuZWNlc3NhcnkgaWYgd2UgbWFrZSB0aGlzIGV4cGxp Y2l0Lg0KDQpFeGFtcGxlIGluIGdkYjoNCn5+fg0KY2xhc3MgZnJhbWVfaW5mb19wdHIgOiBwdWJs aWMgaW50cnVzaXZlX2xpc3Rfbm9kZTxmcmFtZV9pbmZvX3B0cj4NCnsNCnB1YmxpYzoNCiAgLyog Q3JlYXRlIGEgZnJhbWVfaW5mb19wdHIgZnJvbSBhIHJhdyBwb2ludGVyLiAgKi8NCiAgZXhwbGlj aXQgZnJhbWVfaW5mb19wdHIgKHN0cnVjdCBmcmFtZV9pbmZvICpwdHIpOw0KWy4uLl0NCg0KICAv KiBUaGlzIGV4aXN0cyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZS1leGlzdGluZyBjb2RlIHRo YXQgY2hlY2tlZA0KICAgICBhICJmcmFtZV9pbmZvICoiIGxpa2UgImlmIChwdHIpIi4gICovDQog IGV4cGxpY2l0IG9wZXJhdG9yIGJvb2wgKCkgY29uc3QNCiAgew0KICAgIHJldHVybiAhdGhpcy0+ aXNfbnVsbCAoKTsNCiAgfQ0Kfn5+DQoNCkhlcmUgdGhlIG9wZXJhdG9yIGlzIGV4cGxpY2l0IGFu ZCB1c2VkIGluIHNldmVyYWwgbG9jYXRpb25zIGluIGdkYiB3aXRob3V0IGNhc3QuDQoNCktpbmQg UmVnYXJkcywNCkNocmlzdGluYQ0K