From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id CSKDKiV+z2or1wgAWB0awg (envelope-from ) for ; Wed, 14 Oct 2026 09:05:41 -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=ErOJ2j8N; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id A62251E051; Wed, 14 Oct 2026 09:05:41 -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 0BEDC1E04E for ; Wed, 14 Oct 2026 09:05:39 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 391294BA23CD for ; Wed, 14 Oct 2026 13:05:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 391294BA23CD 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=ErOJ2j8N Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by sourceware.org (Postfix) with ESMTPS id 2C7C34BA2E08 for ; Wed, 14 Oct 2026 13:05:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2C7C34BA2E08 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 2C7C34BA2E08 Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=192.198.163.14 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1791983104; cv=fail; b=V5I9tpOOQIkwZEuid4hurf7taDy0qtVnC7WxWxQ3396RG3I2vy/z7rdIhGl1/7HMy3rne2nwFv3WSho7r05JmV0wwjbnm8qj8t3qhAoaD//oWHNNZNf85LywhQcJK5C2oMXy4HodeQRkhfJp+5mAw+dTcAaCwvK3IvfUV97z7ZU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1791983104; c=relaxed/simple; bh=+5g5X+8e4qIk1Gm+IN1GatUYFzKZ6aSJ/9NExNEOaKA=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=NpqI/V8Z9+ouMLfwzsSVPKXyA0AgaJpSonChdJ+9VWaRtBQYH5c8rD8+g5NjrFGB2gJxFOlSZeN/9ZZ9962z6Nm47cLot4ddyP6KKYIVtjym6fuWnp3MDKXypXoTMJ33qCv6NISABl4jBUgs/Mj+3OVmbfu0q++F0QuRIfttS1U= 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=ErOJ2j8N DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2C7C34BA2E08 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1791983105; x=1823519105; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=+5g5X+8e4qIk1Gm+IN1GatUYFzKZ6aSJ/9NExNEOaKA=; b=ErOJ2j8N8fWhFDFlbvkAeB3H4ZXpCjF+GWbrHaHpYBNooo/2GEIkyjni D3c/arDhWlVbmg0zAsYS3KNCxZNbn/rkuYGofh58aUb16JSeoPIZAwY0+ XZLFT2OUjSmRv2ohPu+s5e+DE+rC1OEwsLa+RH5XKigCZf9gfSiQNWWPJ BQkMqvZxh0afbXDqK28xQdnaYDwY7FGBs3cv5BZ2mRKK7tz+9l9fxD6a+ Aftmu3npKmQWGmy9dixz9AWj0zk6ZVOft9H0WTXbDKQhoqPD/NSHfjM3F Zd+mKo7HqHG9oLnSIiJnh5o5pLvEI/QkWgnCuCplXTT0KxoMICIFNkNZK Q==; X-CSE-ConnectionGUID: XGxZCvgmTHifzgxk7tq9aw== X-CSE-MsgGUID: hp9CigElQlCiXn25hQhwVw== X-IronPort-AV: E=McAfee;i="6800,10657,11934"; a="738211" X-IronPort-AV: E=Sophos;i="6.27,157,1787036400"; d="scan'208";a="738211" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2026 06:05:02 -0700 X-CSE-ConnectionGUID: o8nmpNgQRFWYqp65gmqRiQ== X-CSE-MsgGUID: LF4kDAm9TPKx+p5glar3rA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.27,157,1787036400"; d="scan'208";a="1869890" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2026 06:05:02 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) 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.49; Wed, 14 Oct 2026 06:05:00 -0700 Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by FMSMSX903.amr.corp.intel.com (10.18.126.92) 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, 14 Oct 2026 06:05:00 -0700 Received: from SN4PR0501CU005.outbound.protection.outlook.com (40.93.194.48) by edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 14 Oct 2026 06:05:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QF/GO+nErgxz3vX2+dLYwP7dba3/9TdPhnG/GXALfg/93OFyvlP4PZhbaX32o0G4OL9ZbUcIdwBtPaT0eEc1+CGkUGUc+u6J8c+UOKG7eBeA/lwY4EKOCR4M/h0YOQLVbYjc/v96mdZODvugCnqAYRVJhwi6GhdPCn1zABZ3En8tqVt0trlWvVN4/d9X76o64/tZiIDkKnmsUu/eOgY7C6MhrJATv/39nKkerGTt94payw5MazT8ZtmoOikwFcyPHrUirCSoSv366PeC7VXbytJIIhylr0rSVqFqVOQKf9Kb+5yAsw+vtSvxpyg17udaercm63vjTXnR8d7QWYAJmg== 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=v7vElSKrjafekDxl7ey04QbDYCHAzzJ4dWgEcw5B69Y=; b=D5xyoFdAWKx0eCLXZUrxOMGhf2bFhdde30WidpnhpyaLXqpw+c/eYNUvSdbbFeObVSftP/XNMcdlM2U/ABQxKLqFL36v2FpaCzGM8qdPjQLAZItcWACCEWUBy6e8+kx0SJGRoerX7h0ZGEuSnBq8ZbZwsoDjtpw944OtRPQtKZLt9Ynl5EVp5tMPaY3ZaNaSVV3Z14W4sZlC+CZS6LBKZxWt32rsDpf4JAy2dpo1yS5DwWB1ZEj1lvRO27jScDYEdl3NWtXSrHOPc3BuFDKNK0Q4t/N6b1/jvDQpcK/Kxjh5iMFvSge6Tg6115mKDPOtBYv/e9/DLkbIdXUFV2os7A== 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 IA0PR11MB7912.namprd11.prod.outlook.com (2603:10b6:208:3dd::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.27; Wed, 14 Oct 2026 13:04:58 +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.0496.021; Wed, 14 Oct 2026 13:04:58 +0000 From: "Joos, Christina" To: Hannes Domani , "gdb-patches@sourceware.org" , "Rohr, Stephan" Subject: RE: [PATCH v4 7/9] Windows gdb: Implement AVX register support Thread-Topic: [PATCH v4 7/9] Windows gdb: Implement AVX register support Thread-Index: AQHdUO6eHuUySVqc2kevvuMvKCAa4bbu7AoAgAZng4CABLW3AA== Date: Wed, 14 Oct 2026 13:04:58 +0000 Message-ID: References: <20260930151403.774660-1-ssbssa@yahoo.de> <20260930151403.774660-7-ssbssa@yahoo.de> <1692895176.1669233.1791556219817@mail.yahoo.com> In-Reply-To: <1692895176.1669233.1791556219817@mail.yahoo.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: SN7PR11MB7638:EE_|IA0PR11MB7912:EE_ x-ms-office365-filtering-correlation-id: 662850b6-46b5-4eb3-fade-08df29f3bfdf x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|23010399003|6133799003|10063799003|10067099003|3023799007|261009223027099003|22082099003|18002099003|38070700021|4143699003|261009221227099003|56012099006|5023799004|11063799006; x-microsoft-antispam-message-info: L/kYsGJkN0bDCfrkUMvEVqL4NmGoGYS9WOIWmNJ8NV/wfaWwGbMMSJmwFiIyS4zuNpiyulYRFxT5WpxHYtVNQvrL71rCY7DtEI7BSHuz1eXcLnI/tFQT2VCh9Bn1vcbfPf+Gy61RXYSR915OtGCFTmKGRzJXMkHitwNP/Qxnq+d8RX4q0GtsvNoOBcBQ4Q7T6MXOxC0ouJul55Jjsedy/D/Tnlon/ICa4YjDliIO1Cqy7i7Pvs7ndyiK8ztyKzu8mahrTLQZFdNQZEttT4V34Wc8i0Zcc3qbE+gwQH/nj12AK7WG8n7j9jIR8/vHf0QCN/osOfq585w1jbwto3wNB97PMDyBLxq1hR3Rpvu320FY0WDF/XuOQGYJE1PryptIIruqgnuRUKejGqWoERPZOGzz16bffVX5w4XBqS0W2v6CnOpUcsFWKJym5bBrNys3aMgFX+cCxWGtVp6IkJ8OSqlMMDoc1pDjjzVVG2DRESSEUjBHEI/rDUuJNivjtnWyD/5NRGQlxT7OGANIV6GA106PnjT75Sye1xKbPEfS96tUbadwZ9T+DtEVEzyPLwbPpC8H2i8VZM8rzYdtiXi4syRFX19KQuq8G4LrLOb05koOMRmeUt8713KdCaiefgBlJvOonJ3Yu5dYvi4e5xSQSN5zaZynaTA7LnXLo5aZB+Y= 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)(1800799024)(366016)(376014)(23010399003)(6133799003)(10063799003)(10067099003)(3023799007)(261009223027099003)(22082099003)(18002099003)(38070700021)(4143699003)(261009221227099003)(56012099006)(5023799004)(11063799006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SWlPMmVnSURoNWVMRlpnY29UY3dXSlNGSXFwNmJxb0I2MzIxNVZpSXozT1BW?= =?utf-8?B?djVKU2hLWTcyUUd6MkN5Y2lmVW1vSzZIbEpyN2UrSTlCWG50R1RqR3VIVFIv?= =?utf-8?B?cDBENXpzTC96eGk3eWY0ZUtrSC92NVpBcENOU1dHM0YyUHQwS3puN056aDdV?= =?utf-8?B?MHVibWdLbzB1c0xJSWpacWdORXRGN2x2cWU3M2VCVjRWQUFNdXk4TFIrZnhL?= =?utf-8?B?SWtLQ3E0VnRRSFVuL1UvaXJzY0dYazdFRHBLQmc1bnQrVjhZVFh0YURSV2JT?= =?utf-8?B?TWlQSG1WNnY3RU5ZVmNpNkFFT01oVDVSMkJJVVBhTTlzQ0UxeUJtYm8wVVRw?= =?utf-8?B?SHdPd2NHbEdhd3JoTGtYRVY1VmN2dk12MVF0WHNDTEU5VURncjBoRE12cWFJ?= =?utf-8?B?RWppK2VCdjVzdWp4TmtIT1FaVnRYdFVneUxJRDNNVGV6S3lhOGhrQkMvbDFE?= =?utf-8?B?aTNEODR2RFRDU1pkdjIxTm5pVCtFcDNLcDlXMGwwUk8ybW5uWWZaQS9HSVlO?= =?utf-8?B?eTE2OTdCL3I5bEJ6S05TRDFtdCtMeUd4cVlZZG1VMnlYd2xQSTlkd0gwcDVa?= =?utf-8?B?MGdIclpuTy9hd3VNV2lrS3NTa2R0UVBvaURIanA3V2Y2aHVORUR2ajU1UDRs?= =?utf-8?B?Yi94RXRkRlByVGRrSU85VjJYaHA1WDAyVlg5K1JGSHhvckV2TUY4QmRZaEd6?= =?utf-8?B?SERNRDk3amVCQ2FIbGVuSW1iWUl5Vi80QUdJY3R0Yjl0ci9JSmNLMVBrSTlp?= =?utf-8?B?NkZLQ2NUUjVKOWU2akpQSm9mM0YrNVNoZENTUUNZVFBBRUFJUzAxbUkyTEw1?= =?utf-8?B?bkUwbGdVNE9mSlluMUNsWGg4bHhBOXJxSkN5TkkyZnJYSVFCVWhEeThPM1JZ?= =?utf-8?B?OU1LT0w5dUpOMEk1VTRxS2xETElERE9tM3RBNFFCaGNKM0paSVJTTTUveWIw?= =?utf-8?B?T01Pb28xTy92Sk02MCt0ekxpVzJtS1h3TlNFK1VNTndpb2lTV1ppeGhNVi8w?= =?utf-8?B?L2lnd24vK3RWQWZxMytqNTlKSzhwVzVPbmt2MXVRM3dyaHZLdnBhMm5Mc2RF?= =?utf-8?B?WTNBWll0OGMyYkNwc0lzMGdDNmpXZnVDUk5yakNCMkxBU0ExbjBPS2NVcFpD?= =?utf-8?B?QjhuRGZVVFhHNHJra2Fva0xvM2lnUlRpTkE0WFVIdStnL1JZc0JMNUZra0Fu?= =?utf-8?B?bXl2R2doNjFBNnMyVitVc3o5ZTA5a3BJdmpjMXVOWEUvYUtTZFJCTlNKWE8x?= =?utf-8?B?U3NGS1RvUGxjTW5GMXd2Z0x6SHphK3k4NHFGNVBwT3BpRFp4eDQraklpMCth?= =?utf-8?B?K3VTYUloTG5HOTdZdjRiNGg1U3pMVW9ha1ZOTTljbjA5L1hPUzN6THJBU25q?= =?utf-8?B?ZG5CUmJQek96WUNtcGZRYTZwRkt5VDJuZmFwWTNYOVllNjhCTEVFNndDQ016?= =?utf-8?B?SHlJWnNYUHJxK0RjOUlka0xyZkd1TW50Qm9oUUxhL0hFMHdrL25ONzRrYXBX?= =?utf-8?B?dEJHTFZqUFZoTnNmTWROakhZMkRHcThhd05ENVI4SkVpYjZJakUxK09iN2Vv?= =?utf-8?B?OHF4UGwzY2krUjRPZlM3TFpWV3NsZk1Sbk9qMTl3d3FLSFc5bTJpdTJSQkVF?= =?utf-8?B?aU8zSGtrdXhHQ1NmbDduN0xnM091aWNiSTFpSG1BUVArSmlpSldReVRiMnlN?= =?utf-8?B?SGE1OEpWSDhGcytrcSs2UlNYWHZxWDUwMWtiQlZKTTJLRUowKzl6TXR4SkVJ?= =?utf-8?B?U2V0dmpheksvOHhLUWlvUGZjajJSRWZuTnViZkdpM0dHa2ZLUkxiT3l0Szh4?= =?utf-8?B?VmtTMytxTGVBWVRWdCtVQVhmMnRhMTFFSDhJUmtOU0FJZlNyU2RoVHh0T0Jh?= =?utf-8?B?QXI1M3NpZXJ0QnUyQXpCNjdBd3hacUZxSHBKQmUyQTZMcGNmVTF4RjFNMUJp?= =?utf-8?B?RXB6V3BlWitwMkxaQ2s5MTRMUUp5aUpXSDg0bzhmMnorMFJIQ0pXSW5GSUtR?= =?utf-8?B?M05BSTM2MU1FdzkrTFQ4MGlrQ2syM2FXTjYvRElGNXE0TWRVYXdRZG5laVg3?= =?utf-8?B?dnNmMVhPOXFzVlBqM1ZkcDUzbjNJMzVYeGwyTzBvdnNVTE9veE9qQkZqcThj?= =?utf-8?B?Z0NRd1ljU0g4SWRqZHEvUHp2TEF2K3llMEJvY2REb0ErOUd4V1E3MklyYkRY?= =?utf-8?B?cjNRLzZzQmQ4UWhLeDFUKzdGbnVKUnJOVXZKc1hwa3NSTG8yVWUwNTZMd0Rs?= =?utf-8?B?cDE0bTZTSW1JVzVaYlRWVGtJOFdiclZ3RlIzSUF2OVA1MHVJVVNtV005RFoz?= =?utf-8?B?R2VmdzhydytpUExoVGtTTnFSemROVzBqRHlsZzNtTzNOa0phT05DZz09?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: 22miX+EK2XM7OSEPHC0tSLgKATRALxKjmOo6HRvhlN0c+n9UdXbAaHI+MIZX22oSb2ODTn9SCc+zFLCOMckDlC9ZrSjQMg54WIuOz7jfziZArueWDRm9jpsZBHCGZHhrAKkh5NkGtOh7rPTLWb4gmUTxzuXxPSW83vq2u030X0/1MzS7sWYk4wAY1oLfdhV2Eoxu6R04XBs0iwUMML8qLLcy6VT46SsRVwceXlYg/xStbndhXDSN0GrgXa/WmkRjGIuGVCCEmAiBF56jshEJommaVdJ/AvcANn8vErEkBTyzYIr4RWiFU1t+32ML9hpLhX2rYmenG/IF6sj3PDNAdw== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 662850b6-46b5-4eb3-fade-08df29f3bfdf X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Oct 2026 13:04:58.2329 (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: Ik/gYDCTbWiBhqZ9GgW1/4DOE5Y0aznpLk2YPrRgFAlFkyC0nETI9UaTd4P69qkvll6Y3FyzXEkiCjwD8P+7sLTrrdgaUdUQDVy77tcpuD4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR11MB7912 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 SGkgSGFubmVzLCANCg0KUGxlYXNlIGZpbmQgbXkgZmVlZGJhY2sgYmVsb3cuDQoNClRoZSBjb21t ZW50cyBpbiB0aGlzIGVtYWlsIGFyZSBtb3N0bHkgbWlub3Igbml0cywgYW5kIHNvbWUgY2FuIGJl IGNvbnNpZGVyZWQgb3B0aW9uYWwuDQoNClRoZSBvbmUgdG9waWMgSSdkIGxpa2UgdG8gZGlzY3Vz cyBpbiBhIGJpdCBtb3JlIGRldGFpbCBpcyB0aGUgcGVyLXJlZ2lzdGVyIHVzZSBvZiBsb2NhdGVf eHN0YXRlX2ZlYXR1cmUuDQpJIGJlbGlldmUgd2UgYWxyZWFkeSB0b3VjaGVkIG9uIHRoaXMgaW4g dGhlIHYzIHJldmlldywgYnV0IHRoZSBkaXNjdXNzaW9uIGRpZCBub3QgZnVsbHkgY29uY2x1ZGUs IGFuZCBJIGluaXRpYWxseSBtaXN1bmRlcnN0b29kIHlvdXIgbGF0ZXN0IGNvbW1lbnQgcmVnYXJk aW5nIHRoZSBvZmZzZXRzLg0KSSBhZGRlZCBteSBmZWVkYmFjayBub3cgaW4gdGhlIHNlcGFyYXRl IHRocmVhZCB3aGljaCBhbHNvIGRlc2NyaWJlcyB0aGUgYmFja2dyb3VuZCBhIGJpdDoNCmh0dHBz Oi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVzLzIwMjYtT2N0b2Jlci8yMzEw NTcuaHRtbA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEhhbm5lcyBE b21hbmkgPHNzYnNzYUB5YWhvby5kZT4NCj4gU2VudDogRnJlaXRhZywgOS4gT2t0b2JlciAyMDI2 IDE2OjMwDQo+IFRvOiBnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZzsgUm9ociwgU3RlcGhhbiA8 c3RlcGhhbi5yb2hyQGludGVsLmNvbT4NCj4gQ2M6IEpvb3MsIENocmlzdGluYSA8Y2hyaXN0aW5h Lmpvb3NAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY0IDcvOV0gV2luZG93cyBn ZGI6IEltcGxlbWVudCBBVlggcmVnaXN0ZXIgc3VwcG9ydA0KPiANCj4gIEFtIE1vbnRhZywgNS4g T2t0b2JlciAyMDI2IHVtIDE2OjA5OjIyIE1FU1ogaGF0IFJvaHIsIFN0ZXBoYW4NCj4gPHN0ZXBo YW4ucm9ockBpbnRlbC5jb20+IEZvbGdlbmRlcyBnZXNjaHJpZWJlbjoNCj4gDQo+ID4gSGkgSGFu bmVzLA0KPiA+DQo+ID4gc29tZSBtaW5vciBmaW5kaW5ncyBiZWxvdy4NCj4gPg0KPiA+IFdpdGgg dGhvc2UgZml4ZWQuDQo+ID4NCj4gPiBSZXZpZXdlZC1CeTogUm9ociwgU3RlcGhhbiA8c3RlcGhh bi5yb2hyQGludGVsLmNvbT4NCj4gPg0KPiA+IFRoYW5rcw0KPiA+IFN0ZXBoYW4NCj4gPg0KPiA+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEhhbm5lcyBEb21hbmkg PHNzYnNzYUB5YWhvby5kZT4NCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgMzAgU2VwdGVtYmVyIDIw MjYgMTc6MTINCj4gPiA+IFRvOiBnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZw0KPiA+ID4gU3Vi amVjdDogW1BBVENIIHY0IDcvOV0gV2luZG93cyBnZGI6IEltcGxlbWVudCBBVlggcmVnaXN0ZXIg c3VwcG9ydA0KPiA+ID4NCj4gPiA+IFRoaXMgYWRkcyBzdXBwb3J0IGZvciB0aGUgSW50ZWwgQVZY IHJlZ2lzdGVycyBvbiBXaW5kb3dzLg0KPiA+ID4gSXQgZW5hYmxlcyBhY2Nlc3NpbmcgcmVnaXN0 ZXJzICR5bW0wIC0gJHltbTE1IHdoZXJlIHRoZXkgYXJlIGF2YWlsYWJsZS4NCj4gPiA+DQo+ID4g PiBBZnRlciB0aGlzIHBhdGNoIGdkYi5hcmNoL2kzODYtYXZ4LmV4cCBwYXNzZXMgb24gd2luZG93 cy4NCj4gPiA+IC0tLQ0KPiA+ID4gdjM6DQo+ID4gPiAtIG1lcmdlZCBnZGIrZ2Ric2VydmVyIHBh cnRzLCBhbmQgc3BsaXQgYWdhaW4gQVZYL0FWWC01MTIgcGFydHMNCj4gPiA+IHY0Og0KPiA+ID4g LSBmaXhlZCAkeW1tMTUgaW4gTkVXUw0KPiA+ID4gLSBBZGQgY29tbW9uIGZ1bmN0aW9uIHdpbmRv d3NfdGhyZWFkX2luZm86Onplcm9feHN0YXRlX2ZlYXR1cmVzLA0KPiA+ID4gYW5kIGZpeCBtYXhp bXVtIHN1cHBvcnRlZCBmZWF0dXJlIGluIGZvci1sb29wDQo+ID4gPiAtIEFkZCBjaGVjayBmb3Ig ZW5hYmxlZCB4c3RhdGVfZmVhdHVyZXMgaW4gZ2V0X2NvbnRleHRfcmVnX3B0ciBvZg0KPiA+ID4g eDg2LXdpbmRvd3MtbmF0LmMNCj4gPiA+IC0gTW92ZSBhbWQ2NCB2YXJpYWJsZSBpbiBnZXRfY29u dGV4dF9yZWdfcHRyIG9mIHdpbjMyLWkzODYtbG93LmNjDQo+ID4gPiAtIENoYW5nZWQgYWxsIE5V TEwgdG8gbnVsbHB0cg0KPiA+ID4gLSBEb24ndCByZW1vdmUgJ3IgPT0gMCcgZnJvbSBjaGlsZF9z dG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMNCj4gPiA+IC0tLQ0KPiA+ID4gZ2RiL05FV1MgfCAzICsr Kw0KPiA+ID4gZ2RiL25hdC93aW5kb3dzLW5hdC5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysr KysrKy0NCj4gPiA+IGdkYi9uYXQvd2luZG93cy1uYXQuaCB8IDYgKysrKysgZ2RiL3g4Ni13aW5k b3dzLW5hdC5jIHwgNTENCj4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0NCj4gPiA+IGdkYnNlcnZlci93aW4zMi1pMzg2LWxvdy5jYyB8IDQ3ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0NCj4gPiA+IGdkYnNlcnZlci93aW4zMi1sb3cuY2MgfCAxNSAr KysrKysrLS0tLQ0KPiA+ID4gNiBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgMTUg ZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05F V1MNCj4gPiA+IGluZGV4IDVkMGM0NzQ1NjUzLi5kYTRiYzgxMWMzYSAxMDA2NDQNCj4gPiA+IC0t LSBhL2dkYi9ORVdTDQo+ID4gPiArKysgYi9nZGIvTkVXUw0KPiA+ID4gQEAgLTE5NCw2ICsxOTQs OSBAQCBpbmZvIGxvY2Fscw0KPiA+ID4gaW50ZW50IHRvIHJlbW92ZSBpdCBpbiBhIGZ1dHVyZSBy ZWxlYXNlLg0KPiA+ID4gVGhlIHMzOTAgNjQtYml0IHRhcmdldCAoczM5MHgtKikgcmVtYWlucyBz dXBwb3J0ZWQuDQo+ID4gPg0KPiA+ID4gKyogU3VwcG9ydCBmb3IgSW50ZWwgQVZYIHJlZ2lzdGVy cyBvbiBXaW5kb3dzLg0KPiA+ID4gKyBTdXBwb3J0IGRpc3BsYXlpbmcgYW5kIG1vZGlmeWluZyBJ bnRlbCBBVlggcmVnaXN0ZXJzICR5bW0wIC0gJHltbTE1Lg0KPiA+ID4gKw0KPiA+ID4gKiBDb25m aWd1cmUgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICoqIC0td2l0aC1iYWJlbHRyYWNlIGhhcyBiZWVu IHJlbW92ZWQuIFRoZSBiYWJlbHRyYWNlIGxpYnJhcnkgd2FzDQo+ID4gPiBkaWZmIC0tZ2l0IGEv Z2RiL25hdC93aW5kb3dzLW5hdC5jIGIvZ2RiL25hdC93aW5kb3dzLW5hdC5jIGluZGV4DQo+ID4g PiA1OGJlNTM2OGE3OS4uY2QzYzgyN2E1ZDUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nZGIvbmF0L3dp bmRvd3MtbmF0LmMNCj4gPiA+ICsrKyBiL2dkYi9uYXQvd2luZG93cy1uYXQuYw0KPiA+ID4gQEAg LTI3MSw2ICsyNzEsNDAgQEAgd2luZG93c190aHJlYWRfaW5mbzo6eGZlcl9zaWdpbmZvIChnZGJf Ynl0ZQ0KPiA+ID4gKnJlYWRidWYsIHJldHVybiB0cnVlOyB9DQo+ID4gPg0KPiA+ID4gKyNpZiBk ZWZpbmVkIF9faTM4Nl9fIHx8IGRlZmluZWQgX194ODZfNjRfXw0KPiA+ID4gKy8qIFNlZSBuYXQv d2luZG93cy1uYXQuaC4gKi8NCj4gPiA+ICsNCj4gPiA+ICt2b2lkDQo+ID4gPiArd2luZG93c190 aHJlYWRfaW5mbzo6emVyb194c3RhdGVfZmVhdHVyZXMgKCkgeyAgaWYgKHhzdGF0ZV9mZWF0dXJl cw0KPiA+ID4gKz09IDApICByZXR1cm47DQo+ID4gPiArDQo+ID4gPiArIHByb2MtPndpdGhfY29u dGV4dCAodGhpcywgW10gKGF1dG8gKmNvbnRleHQpDQo+ID4gPiArIHsNCj4gPiA+ICsgRFdPUkQ2 NCBmZWF0dXJlcyA9IDA7DQo+ID4gPiArIGlmICghZ2V0X3hzdGF0ZV9mZWF0dXJlc19tYXNrIChj b250ZXh0LCAmZmVhdHVyZXMpKSByZXR1cm47DQo+ID4gPiArDQo+ID4gPiArIERXT1JENjQgemVy b2VkX2ZlYXR1cmVzID0geHN0YXRlX2ZlYXR1cmVzICYgfmZlYXR1cmVzOyBpZg0KPiA+ID4gKyAo emVyb2VkX2ZlYXR1cmVzID09IDApIHJldHVybjsNCj4gPiA+ICsNCj4gPiA+ICsgZm9yIChpbnQg ZiA9IFg4Nl9YU1RBVEVfQVZYX0lEOyBmIDw9IFg4Nl9YU1RBVEVfQVZYX0lEOyBmKyspDQo+ID4N Cj4gPiBTdGFydCA9PSBFbmQuDQo+IA0KPiBUaGF0J3MgaW50ZW50aW9uYWwsIGl0IGNoYW5nZXMg d2l0aCB0aGUgbmV4dCBwYXRjaCBhbnl3YXlzLg0KDQpJIHN0dW1ibGVkIG92ZXIgdGhpcyBhcyB3 ZWxsLiBIb3dldmVyLCBJIHVuZGVyc3RhbmQgd2h5IHlvdSBjaG9zZSB0byBrZWVwIGl0IHRoaXMg d2F5LA0KZ2l2ZW4gdGhhdCB0aGUgbmV4dCBwYXRjaCBjaGFuZ2VzIGl0LCBhbmQgSSdtIGZpbmUg d2l0aCB0aGF0Lg0KDQo+IA0KPiA+ID4gKyB7DQo+ID4gPiArIERXT1JENjQgZmxhZyA9IDFVTEwg PDwgZjsNCj4gPiA+ICsgaWYgKCh6ZXJvZWRfZmVhdHVyZXMgJiBmbGFnKSAhPSAwKSAgeyAgRFdP UkQgc2l6ZSA9IDA7ICB2b2lkICpsb2MNCj4gPiA+ICs9IGxvY2F0ZV94c3RhdGVfZmVhdHVyZSAo Y29udGV4dCwgZiwgJnNpemUpOyAgaWYgKGxvYyAhPSBudWxscHRyICYmDQo+ID4gPiArc2l6ZSA+ IDApICBtZW1zZXQgKGxvYywgMCwgc2l6ZSk7ICB9ICB9ICB9KTsgfSAjZW5kaWYNCj4gPiA+ICsN Cj4gPiA+IC8qIFRyeSB0byBkZXRlcm1pbmUgdGhlIGV4ZWN1dGFibGUgZmlsZW5hbWUuDQo+ID4g Pg0KPiA+ID4gRVhFX05BTUVfUkVUIGlzIGEgcG9pbnRlciB0byBhIGJ1ZmZlciB3aG9zZSBzaXpl IGlzIEVYRV9OQU1FX01BWF9MRU4uDQo+ID4gPiBAQCAtMTMzOSw3ICsxMzczLDcgQEAgaW5pdGlh bGl6ZV9sb2FkYWJsZSAoKSB7DQo+ID4gPiAvKiBBdmFpbGFibGUgWFN0YXRlIGZlYXR1cmVzIG1h c2tlZCB3aXRoIGltcGxlbWVudGVkIGZlYXR1cmVzLiAqLw0KPiA+ID4geHN0YXRlX2ZlYXR1cmVz ID0gKEdldEVuYWJsZWRYU3RhdGVGZWF0dXJlcyAoKQ0KPiA+ID4gLSAmIFg4Nl9YU1RBVEVfU1NF X01BU0spOw0KPiA+ID4gKyAmIFg4Nl9YU1RBVEVfQVZYX01BU0spOw0KPiA+ID4gLyogVGhlIGV4 dGVuZGVkIFhTdGF0ZSBmdW5jdGlvbnMgYXJlIG9ubHkgbmVlZGVkIGlmIHRoZSBhdmFpbGFibGUN Cj4gPiA+IGZlYXR1cmVzIGV4Y2VlZCBTU0UuICovIGlmICgoeHN0YXRlX2ZlYXR1cmVzICYgflg4 Nl9YU1RBVEVfU1NFX01BU0spDQo+ID4gPiA9PSAwKSBkaWZmIC0tZ2l0IGEvZ2RiL25hdC93aW5k b3dzLW5hdC5oIGIvZ2RiL25hdC93aW5kb3dzLW5hdC5oDQo+ID4gPiBpbmRleCBhN2Q0YWY4NGUx My4uNGNkNzVjYjZhMGUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nZGIvbmF0L3dpbmRvd3MtbmF0LmgN Cj4gPiA+ICsrKyBiL2dkYi9uYXQvd2luZG93cy1uYXQuaA0KPiA+ID4gQEAgLTkwLDYgKzkwLDEy IEBAIHN0cnVjdCB3aW5kb3dzX3RocmVhZF9pbmZvIFVMT05HRVNUIG9mZnNldCwNCj4gPiA+IFVM T05HRVNUIGxlbiwgVUxPTkdFU1QgKnhmZXJlZF9sZW4pOw0KPiA+ID4NCj4gPiA+ICsjaWYgZGVm aW5lZCBfX2kzODZfXyB8fCBkZWZpbmVkIF9feDg2XzY0X18NCj4gPiA+ICsgLyogWmVybyBhbGwg WFN0YXRlIGZlYXR1cmUgYXJlYXMgdGhhdCB3ZXJlIG5vdCBwcm92aWRlZCBieQ0KPiA+ID4gK0dl dFRocmVhZENvbnRleHQuICovICB2b2lkIHplcm9feHN0YXRlX2ZlYXR1cmVzICgpOyAjZW5kaWYN Cj4gPiA+ICsNCj4gPiA+IC8qIFRoZSBwcm9jZXNzIHRoaXMgdGhyZWFkIGJlbG9uZ3MgdG8uICov IHdpbmRvd3NfcHJvY2Vzc19pbmZvDQo+ID4gPiAqY29uc3QgcHJvYzsNCj4gPiA+DQo+ID4gPiBk aWZmIC0tZ2l0IGEvZ2RiL3g4Ni13aW5kb3dzLW5hdC5jIGIvZ2RiL3g4Ni13aW5kb3dzLW5hdC5j IGluZGV4DQo+ID4gPiAzYWY1ZWY0ZGFlMC4uMWU0NGE0NTE3MWMgMTAwNjQ0DQo+ID4gPiAtLS0g YS9nZGIveDg2LXdpbmRvd3MtbmF0LmMNCj4gPiA+ICsrKyBiL2dkYi94ODYtd2luZG93cy1uYXQu Yw0KPiA+ID4gQEAgLTI3LDYgKzI3LDkgQEANCj4gPiA+DQo+ID4gPiAjaW5jbHVkZSAiaTM4Ni10 ZGVwLmgiDQo+ID4gPiAjaW5jbHVkZSAiaTM4Ny10ZGVwLmgiDQo+ID4gPiArI2lmZGVmIF9feDg2 XzY0X18NCj4gPiA+ICsjaW5jbHVkZSAiYW1kNjQtdGRlcC5oIg0KPiA+ID4gKyNlbmRpZg0KPiA+ ID4NCj4gPiA+IHVzaW5nIG5hbWVzcGFjZSB3aW5kb3dzX25hdDsNCj4gPiA+DQo+ID4gPiBAQCAt NzAsNiArNzMsOCBAQCBzdHJ1Y3QgeDg2X3dpbmRvd3NfbmF0X3RhcmdldCBmaW5hbCA6IHB1Ymxp Yw0KPiA+ID4geDg2X25hdF90YXJnZXQ8d2luZG93c19uYXRfdGFyZ2V0Pg0KPiA+ID4gd2luZG93 c190aHJlYWRfaW5mbyAqdGgsIGludCByKSBvdmVycmlkZTsNCj4gPiA+DQo+ID4gPiBib29sIGlz X3N3X2JyZWFrcG9pbnQgKGNvbnN0IEVYQ0VQVElPTl9SRUNPUkQgKmVyKSBjb25zdCBvdmVycmlk ZTsNCj4gPiA+ICsNCj4gPiA+ICsgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICpyZWFkX2Rlc2Ny aXB0aW9uICgpIG92ZXJyaWRlOw0KPiA+ID4gfTsNCj4gPiA+DQo+ID4gPiAvKiBUaGUgY3VycmVu dCBwcm9jZXNzLiAqLw0KPiA+ID4gQEAgLTEwOSw3ICsxMTQsMTQgQEAgeDg2X3dpbmRvd3NfcGVy X2luZmVyaW9yOjpmaWxsX3RocmVhZF9jb250ZXh0DQo+ID4gPiAod2luZG93c190aHJlYWRfaW5m byAqdGgpDQo+ID4gPiBpZiAoY29udGV4dC0+Q29udGV4dEZsYWdzID09IDApDQo+ID4gPiB7DQo+ ID4gPiBjb250ZXh0LT5Db250ZXh0RmxhZ3MgPSBXaW5kb3dzQ29udGV4dDxkZWNsdHlwZShjb250 ZXh0KT46OmFsbDsNCj4gPiA+ICsgaWYgKHhzdGF0ZV9mZWF0dXJlcyAhPSAwKQ0KPiA+ID4gKyB7 DQo+ID4gPiArIGNvbnRleHQtPkNvbnRleHRGbGFncyB8PSBDT05URVhUX1hTVEFURV9GTEFHOw0K PiA+ID4gKyBzZXRfeHN0YXRlX2ZlYXR1cmVzX21hc2sgKGNvbnRleHQsIHhzdGF0ZV9mZWF0dXJl cyk7IH0NCj4gPiA+IENIRUNLIChnZXRfdGhyZWFkX2NvbnRleHQgKHRoLT5oLCBjb250ZXh0KSk7 DQo+ID4gPiArDQo+ID4gPiArIHRoLT56ZXJvX3hzdGF0ZV9mZWF0dXJlcyAoKTsNCj4gPiA+IH0N Cj4gPiA+IH0pOw0KPiA+ID4gfQ0KPiA+ID4gQEAgLTE5OCw2ICsyMTAsMTQgQEANCj4gPiA+IHg4 Nl93aW5kb3dzX25hdF90YXJnZXQ6OnRocmVhZF9jb250ZXh0X2NvbnRpbnVlICh3aW5kb3dzX3Ro cmVhZF9pbmZvDQo+ID4gPiAqdGgsDQo+ID4gPiBpZiAoR2V0RXhpdENvZGVUaHJlYWQgKHRoLT5o LCAmZWMpDQo+ID4gPiAmJiBlYyA9PSBTVElMTF9BQ1RJVkUpDQo+ID4gPiB7DQo+ID4gPiArIERX T1JEIGRlYnVnX3JlZ2lzdGVycyA9DQo+ID4gPiBXaW5kb3dzQ29udGV4dDxkZWNsdHlwZShjb250 ZXh0KT46OmRlYnVnOw0KPiA+ID4gKyBpZiAoeHN0YXRlX2ZlYXR1cmVzICE9IDANCj4gPiA+ICsg JiYgKGNvbnRleHQtPkNvbnRleHRGbGFncyAmIH5kZWJ1Z19yZWdpc3RlcnMpICE9IDApDQo+ID4g PiArIHsNCj4gPiA+ICsgY29udGV4dC0+Q29udGV4dEZsYWdzIHw9IENPTlRFWFRfWFNUQVRFX0ZM QUc7DQo+ID4gPiArIHNldF94c3RhdGVfZmVhdHVyZXNfbWFzayAoY29udGV4dCwgeHN0YXRlX2Zl YXR1cmVzKTsNCj4gPiA+ICsgfQ0KPiA+ID4gKw0KPiA+ID4gQk9PTCBzdGF0dXMgPSBzZXRfdGhy ZWFkX2NvbnRleHQgKHRoLT5oLCBjb250ZXh0KTsNCj4gPiA+DQo+ID4gPiBpZiAoIWtpbGxlZCkN Cj4gPiA+IEBAIC0yMjcsNyArMjQ3LDcgQEAgeDg2X3dpbmRvd3NfbmF0X3RhcmdldDo6dGhyZWFk X2NvbnRleHRfc3RlcA0KPiA+ID4gKHdpbmRvd3NfdGhyZWFkX2luZm8gKnRoLA0KPiA+ID4NCj4g PiA+IHRlbXBsYXRlPHR5cGVuYW1lIENvbnRleHQ+DQo+ID4gPiBzdGF0aWMgY2hhciAqDQo+ID4g PiAtZ2V0X2NvbnRleHRfcmVnX3B0ciAoQ29udGV4dCAqY29udGV4dCwgaW50IHIpDQo+ID4gPiAr Z2V0X2NvbnRleHRfcmVnX3B0ciAoQ29udGV4dCAqY29udGV4dCwgaW50IHIsIGkzODZfZ2RiYXJj aF90ZGVwICp0ZGVwKQ0KPiA+ID4gew0KDQpOaXQ6IGV4cGxhaW4gdGhlIG5ldyBwYXJhbWV0ZXIg aW4gdGhlIGZ1bmN0aW9uIGNvbW1lbnQgYW5kIGluIHdoaWNoIGNhc2VzIHRoaXMgaXMgcmVxdWly ZWQuDQoNCj4gPiA+IGNvbnN0IGludCAqbWFwcGluZ3M7DQo+ID4gPiBpbnQgbWFwcGluZ3NfY291 bnQ7DQo+ID4gPiBAQCAtMjQ3LDYgKzI2NywxNCBAQCBnZXRfY29udGV4dF9yZWdfcHRyIChDb250 ZXh0ICpjb250ZXh0LCBpbnQgcikNCj4gPiA+IGNoYXIgKmNvbnRleHRfb2Zmc2V0Ow0KPiA+ID4g aWYgKHIgPCBtYXBwaW5nc19jb3VudCkNCj4gPiA+IGNvbnRleHRfb2Zmc2V0ID0gKGNoYXIgKikg Y29udGV4dCArIG1hcHBpbmdzW3JdOw0KPiA+ID4gKyBlbHNlIGlmICgoeHN0YXRlX2ZlYXR1cmVz ICYgWDg2X1hTVEFURV9BVlgpICE9IDANCj4gPiA+ICsgJiYgSTM4N19ZTU0wSF9SRUdOVU0gKHRk ZXApID4gMCAmJiByID49DQo+ID4gPiBJMzg3X1lNTTBIX1JFR05VTSAodGRlcCkNCj4gPiA+ICsg JiYgciA8IEkzODdfWU1NRU5ESF9SRUdOVU0gKHRkZXApKQ0KPiA+ID4gKyB7DQo+ID4gPiArIGNv bnRleHRfb2Zmc2V0ID0gKGNoYXIgKikgbG9jYXRlX3hzdGF0ZV9mZWF0dXJlDQo+ID4gPiArIChj b250ZXh0LCBYODZfWFNUQVRFX0FWWF9JRCwgbnVsbHB0cik7DQo+ID4gPiArIGNvbnRleHRfb2Zm c2V0ICs9IDE2ICogKHIgLSBJMzg3X1lNTTBIX1JFR05VTSAodGRlcCkpOw0KPiA+ID4gKyB9DQo+ ID4gPiBlbHNlDQo+ID4gPiBnZGJfYXNzZXJ0X25vdF9yZWFjaGVkICgiaW52YWxpZCByZWdpc3Rl ciBudW1iZXIgJWQiLCByKTsNCj4gPiA+DQo+ID4gPiBAQCAtMjY3LDcgKzI5NSw3IEBAIHg4Nl93 aW5kb3dzX25hdF90YXJnZXQ6OmZldGNoX29uZV9yZWdpc3RlciAoc3RydWN0DQo+ID4gPiByZWdj YWNoZSAqcmVnY2FjaGUsDQo+ID4gPiBjaGFyICpjb250ZXh0X29mZnNldA0KPiA+ID4gPSB4ODZf d2luZG93c19wcm9jZXNzLndpdGhfY29udGV4dCAodGgsIFsmXSAoYXV0byAqY29udGV4dCkNCj4g PiA+IHsNCj4gPiA+IC0gcmV0dXJuIGdldF9jb250ZXh0X3JlZ19wdHIgKGNvbnRleHQsIHIpOw0K PiA+ID4gKyByZXR1cm4gZ2V0X2NvbnRleHRfcmVnX3B0ciAoY29udGV4dCwgciwgdGRlcCk7DQo+ ID4gPiB9KTsNCj4gPiA+DQo+ID4gPiBnZGJfYXNzZXJ0ICghZ2RiYXJjaF9yZWFkX3BjX3AgKGdk YmFyY2gpKTsNCj4gPiA+IEBAIC0zMzMsNyArMzYxLDcgQEAgeDg2X3dpbmRvd3NfbmF0X3Rhcmdl dDo6c3RvcmVfb25lX3JlZ2lzdGVyIChjb25zdA0KPiA+ID4gc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwNCj4gPiA+ID0geDg2X3dpbmRvd3NfcHJvY2Vzcy53aXRoX2NvbnRleHQgKHRoLCBbJl0g KGF1dG8gKmNvbnRleHQpDQo+ID4gPiB7DQo+ID4gPiBnZGJfYXNzZXJ0IChjb250ZXh0LT5Db250 ZXh0RmxhZ3MgIT0gMCk7DQo+ID4gPiAtIHJldHVybiBnZXRfY29udGV4dF9yZWdfcHRyIChjb250 ZXh0LCByKTsNCj4gPiA+ICsgcmV0dXJuIGdldF9jb250ZXh0X3JlZ19wdHIgKGNvbnRleHQsIHIs IHRkZXApOw0KPiA+ID4gfSk7DQo+ID4gPg0KPiA+ID4gLyogR0RCIHRyZWF0cyBzb21lIHJlZ2lz dGVycyBhcyAzMi1iaXQsIHdoZXJlIHRoZXkgYXJlIGluIGZhY3Qgb25seQ0KPiA+ID4gQEAgLTM2 OCw2ICszOTYsMjMgQEAgeDg2X3dpbmRvd3NfbmF0X3RhcmdldDo6aXNfc3dfYnJlYWtwb2ludCAo Y29uc3QNCj4gPiA+IEVYQ0VQVElPTl9SRUNPUkQgKmVyKSBjb25zdA0KPiA+ID4gfHwgZXItPkV4 Y2VwdGlvbkNvZGUgPT0gU1RBVFVTX1dYODZfQlJFQUtQT0lOVCk7DQo+ID4gPiB9DQo+ID4gPg0K PiA+DQo+ID4gQWRkDQo+ID4NCj4gPiAvKiBTZWUgdGFyZ2V0LmguICovDQo+IA0KPiBPay4NCj4g DQo+IA0KPiA+ID4gK2NvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYyAqDQo+ID4gPiAreDg2X3dpbmRv d3NfbmF0X3RhcmdldDo6cmVhZF9kZXNjcmlwdGlvbiAoKQ0KPiA+ID4gK3sNCj4gPiA+ICsgaWYg KGluZmVyaW9yX3B0aWQgPT0gbnVsbF9wdGlkKQ0KPiA+ID4gKyByZXR1cm4gdGhpcy0+YmVuZWF0 aCAoKS0+cmVhZF9kZXNjcmlwdGlvbiAoKTsNCj4gPiA+ICsNCj4gPiA+ICsgaWYgKHhzdGF0ZV9m ZWF0dXJlcyA9PSAwKQ0KPiA+ID4gKyByZXR1cm4gbnVsbHB0cjsNCj4gPiA+ICsNCj4gPiA+ICsj aWZkZWYgX194ODZfNjRfXw0KPiA+ID4gKyBpZiAoIXg4Nl93aW5kb3dzX3Byb2Nlc3Mud293NjRf cHJvY2VzcykNCj4gPiA+ICsgcmV0dXJuIGFtZDY0X3RhcmdldF9kZXNjcmlwdGlvbiAoeHN0YXRl X2ZlYXR1cmVzLCBmYWxzZSk7DQo+ID4gPiArIGVsc2UNCj4gPiA+ICsjZW5kaWYNCj4gPiA+ICsg cmV0dXJuIGkzODZfdGFyZ2V0X2Rlc2NyaXB0aW9uICh4c3RhdGVfZmVhdHVyZXMsIGZhbHNlKTsN Cj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiAvKiBIYXJkd2FyZSB3YXRjaHBvaW50IHN1cHBvcnQs IGFkYXB0ZWQgZnJvbSBnbzMyLW5hdC5jIGNvZGUuICovDQo+ID4gPg0KPiA+ID4gLyogUGFzcyB0 aGUgYWRkcmVzcyBBRERSIHRvIHRoZSBpbmZlcmlvciBpbiB0aGUgSSd0aCBkZWJ1ZyByZWdpc3Rl ci4NCj4gPiA+IGRpZmYgLS1naXQgYS9nZGJzZXJ2ZXIvd2luMzItaTM4Ni1sb3cuY2MgYi9nZGJz ZXJ2ZXIvd2luMzItaTM4Ni1sb3cuY2MNCj4gPiA+IGluZGV4IGI3N2Y2YWRjNmVkLi4xYTQ1YjE1 ZTBjZiAxMDA2NDQNCj4gPiA+IC0tLSBhL2dkYnNlcnZlci93aW4zMi1pMzg2LWxvdy5jYw0KPiA+ ID4gKysrIGIvZ2Ric2VydmVyL3dpbjMyLWkzODYtbG93LmNjDQo+ID4gPiBAQCAtMjUzLDYgKzI1 MywxMSBAQCBpMzg2X2dldF90aHJlYWRfY29udGV4dCAod2luZG93c190aHJlYWRfaW5mbw0KPiA+ ID4gKnRoKQ0KPiA+ID4gfCBXaW5kb3dzQ29udGV4dDxkZWNsdHlwZShjb250ZXh0KT46OmZsb2F0 aW5nDQo+ID4gPiB8IFdpbmRvd3NDb250ZXh0PGRlY2x0eXBlKGNvbnRleHQpPjo6ZGVidWcNCj4g PiA+IHwgZXh0ZW5kZWRfcmVnaXN0ZXJzKTsNCj4gPiA+ICsgaWYgKHhzdGF0ZV9mZWF0dXJlcyAh PSAwKQ0KPiA+ID4gKyB7DQo+ID4gPiArIGNvbnRleHQtPkNvbnRleHRGbGFncyB8PSBDT05URVhU X1hTVEFURV9GTEFHOw0KPiA+ID4gKyBzZXRfeHN0YXRlX2ZlYXR1cmVzX21hc2sgKGNvbnRleHQs IHhzdGF0ZV9mZWF0dXJlcyk7DQo+ID4gPiArIH0NCj4gPiA+DQo+ID4gPiBCT09MIHJldCA9IGdl dF90aHJlYWRfY29udGV4dCAodGgtPmgsIGNvbnRleHQpOw0KPiA+ID4gaWYgKCFyZXQpDQo+ID4g PiBAQCAtMjY3LDYgKzI3Miw4IEBAIGkzODZfZ2V0X3RocmVhZF9jb250ZXh0ICh3aW5kb3dzX3Ro cmVhZF9pbmZvICp0aCkNCj4gPiA+DQo+ID4gPiBlcnJvciAoXygiR2V0VGhyZWFkQ29udGV4dCBm YWlsdXJlICVsZFxuIiksIChsb25nKSBlKTsNCj4gPiA+IH0NCj4gPiA+ICsNCj4gPiA+ICsgdGgt Pnplcm9feHN0YXRlX2ZlYXR1cmVzICgpOw0KPiA+ID4gfSk7DQo+ID4gPiB9DQo+ID4gPg0KPiA+ ID4gQEAgLTI5Miw2ICsyOTksMTcgQEAgaTM4Nl9wcmVwYXJlX3RvX3Jlc3VtZSAod2luZG93c190 aHJlYWRfaW5mbw0KPiA+ID4gKnRoKQ0KPiA+ID4NCj4gPiA+IHRoLT5kZWJ1Z19yZWdpc3RlcnNf Y2hhbmdlZCA9IGZhbHNlOw0KPiA+ID4gfQ0KPiA+ID4gKw0KPiA+ID4gKyB3aW5kb3dzX3Byb2Nl c3Mud2l0aF9jb250ZXh0ICh0aCwgWyZdIChhdXRvICpjb250ZXh0KQ0KPiA+ID4gKyB7DQo+ID4g PiArIERXT1JEIGRlYnVnX3JlZ2lzdGVycyA9IFdpbmRvd3NDb250ZXh0PGRlY2x0eXBlKGNvbnRl eHQpPjo6ZGVidWc7DQo+ID4gPiArIGlmICh4c3RhdGVfZmVhdHVyZXMgIT0gMA0KPiA+ID4gKyAm JiAoY29udGV4dC0+Q29udGV4dEZsYWdzICYgfmRlYnVnX3JlZ2lzdGVycykgIT0gMCkNCj4gPiA+ ICsgew0KPiA+ID4gKyBjb250ZXh0LT5Db250ZXh0RmxhZ3MgfD0gQ09OVEVYVF9YU1RBVEVfRkxB RzsNCj4gPiA+ICsgc2V0X3hzdGF0ZV9mZWF0dXJlc19tYXNrIChjb250ZXh0LCB4c3RhdGVfZmVh dHVyZXMpOw0KPiA+ID4gKyB9DQo+ID4gPiArIH0pOw0KPiA+ID4gfQ0KPiA+ID4NCj4gPiA+IHN0 YXRpYyB2b2lkDQo+ID4gPiBAQCAtNDc3LDI2ICs0OTUsNDAgQEAgaXNfc2VnbWVudF9yZWdpc3Rl ciAoaW50IHIpDQo+ID4gPg0KPiA+ID4gdGVtcGxhdGU8dHlwZW5hbWUgQ29udGV4dD4NCj4gPiA+ IHN0YXRpYyBjaGFyICoNCj4gPiA+IC1nZXRfY29udGV4dF9yZWdfcHRyIChDb250ZXh0ICpjb250 ZXh0LCBpbnQgcikNCj4gPiA+ICtnZXRfY29udGV4dF9yZWdfcHRyIChDb250ZXh0ICpjb250ZXh0 LCBpbnQgciwgY29uc3QgdGFyZ2V0X2Rlc2MgKnRkZXNjKQ0KDQpTaW1pbGFyIGZlZWRiYWNrIGZv ciB0aGUgdGRlc2MgcGFyYW1ldGVyIGZvciB0aGUgZnVuY3Rpb24gY29tbWVudC4NCg0KPiA+ID4g ew0KPiA+ID4gY29uc3QgaW50ICptYXBwaW5nczsNCj4gPiA+IGludCBtYXBwaW5nc19jb3VudDsN Cj4gPiA+ICsgYm9vbCBhbWQ2NDsNCj4gPiA+ICNpZmRlZiBfX3g4Nl82NF9fDQo+ID4gPiBpZiAo IXdpbmRvd3NfcHJvY2Vzcy53b3c2NF9wcm9jZXNzKQ0KPiA+ID4gew0KPiA+ID4gbWFwcGluZ3Mg PSBhbWQ2NF9tYXBwaW5nczsNCj4gPiA+IG1hcHBpbmdzX2NvdW50ID0gc2l6ZW9mIChhbWQ2NF9t YXBwaW5ncykgLyBzaXplb2YNCj4gPiA+IChhbWQ2NF9tYXBwaW5nc1swXSk7DQo+ID4gPiArIGFt ZDY0ID0gdHJ1ZTsNCj4gPiA+IH0NCj4gPiA+IGVsc2UNCj4gPiA+ICNlbmRpZg0KPiA+ID4gew0K PiA+ID4gbWFwcGluZ3MgPSBpMzg2X21hcHBpbmdzOw0KPiA+ID4gbWFwcGluZ3NfY291bnQgPSBz aXplb2YgKGkzODZfbWFwcGluZ3MpIC8gc2l6ZW9mIChpMzg2X21hcHBpbmdzWzBdKTsNCj4gPiA+ ICsgYW1kNjQgPSBmYWxzZTsNCj4gPiA+IH0NCj4gPiA+DQo+ID4gPiArIGludCB5bW0waF9yZWdu dW07DQo+ID4gPiArIGNvbnN0IGludCBudW1feG1tX3JlZ2lzdGVycyA9IGFtZDY0ID8gMTYgOiA4 Ow0KPiA+ID4gKw0KPiA+ID4gY2hhciAqY29udGV4dF9vZmZzZXQ7DQo+ID4gPiBpZiAociA8IG1h cHBpbmdzX2NvdW50KQ0KPiA+ID4gY29udGV4dF9vZmZzZXQgPSAoY2hhciAqKSBjb250ZXh0ICsg bWFwcGluZ3Nbcl07DQo+ID4gPiArIGVsc2UgaWYgKCh4c3RhdGVfZmVhdHVyZXMgJiBYODZfWFNU QVRFX0FWWCkgIT0gMA0KPiA+ID4gKyAmJiByID49ICh5bW0waF9yZWdudW0gPSBmaW5kX3JlZ25v ICh0ZGVzYywgInltbTBoIikpDQo+ID4gPiArICYmIHIgPCB5bW0waF9yZWdudW0gKyBudW1feG1t X3JlZ2lzdGVycykNCj4gPiA+ICsgY29udGV4dF9vZmZzZXQgPSAoY2hhciAqKSBsb2NhdGVfeHN0 YXRlX2ZlYXR1cmUNCj4gPiA+ICsgKGNvbnRleHQsIFg4Nl9YU1RBVEVfQVZYX0lELCBudWxscHRy KTsNCj4gPg0KPiA+IFdlIGRvbid0IGNoZWNrICJjb250ZXh0X29mZnNldCIgZm9yIG51bGx0cHIg YmVmb3JlIGFkZGluZyB0aGUgb2Zmc2V0cy4gV2UncmUNCj4gPiBjaGVja2luZyBmb3IgbnVsbHB0 ciBhbmQgc2l6ZSBleHBsaWNpdGx5IGluICJ6ZXJvX3hzdGF0ZV9mZWF0dXJlcyIuIFNvLCBJIHdh cw0KPiA+IHdvbmRlcmluZyBpZiB3ZSBzaG91bGQgYWRkIGNoZWNrcyBoZXJlLCB0b28uIElJVUMs IGl0IHNob3VsZCBub3QgYmUgcG9zc2libGUNCj4gPiB0byBoYXZlICJsb2NhdGVfeHN0YXRlX2Zl YXR1cmUgKCkgPT0gbnVsbHB0ciIgYXQgdGhpcyBwb2ludC4gTWF5YmUgYWRkIGFuDQo+ID4gYXNz ZXJ0IGZvciBjb25zaXN0ZW5jeT8NCj4gDQo+IFNhbWUgZm9yIHg4Ni13aW5kb3dzLW5hdC5jPw0K DQpJZiB3ZSBrZWVwIHRoZSBjb2RlIGFzIGlzLCBpdCBtaWdodCBiZSBhIGdvb2QgaWRlYS4gQnV0 IHRoaXMgbWlnaHQgYWxzbyBjaGFuZ2Ugd2l0aCB0aGUNCnJlc3VsdCBvZiBvdXIgZ2VuZXJhbCBk aXNjdXNzaW9uIGZvciB0aGUgdXNlIG9mIGxvY2F0ZV94c3RhdGVfZmVhdHVyZS4NCg0KPiA+ID4g KyBjb250ZXh0X29mZnNldCArPSAxNiAqIChyIC0geW1tMGhfcmVnbnVtKTsNCj4gPiA+ICsgfQ0K PiA+ID4gZWxzZQ0KPiA+ID4gZ2RiX2Fzc2VydF9ub3RfcmVhY2hlZCAoImludmFsaWQgcmVnaXN0 ZXIgbnVtYmVyICVkIiwgcik7DQo+ID4gPg0KPiA+ID4gQEAgLTUxMCw3ICs1NDIsNyBAQCBpMzg2 X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVyIChzdHJ1Y3QgcmVnY2FjaGUNCj4gPiA+ICpyZWdjYWNo ZSwNCj4gPiA+IHsNCj4gPiA+IGNoYXIgKmNvbnRleHRfb2Zmc2V0ID0gd2luZG93c19wcm9jZXNz LndpdGhfY29udGV4dCAodGgsIFsmXSAoYXV0bw0KPiA+ID4gKmNvbnRleHQpDQo+ID4gPiB7DQo+ ID4gPiAtIHJldHVybiBnZXRfY29udGV4dF9yZWdfcHRyIChjb250ZXh0LCByKTsNCj4gPiA+ICsg cmV0dXJuIGdldF9jb250ZXh0X3JlZ19wdHIgKGNvbnRleHQsIHIsIHJlZ2NhY2hlLT50ZGVzYyk7 DQo+ID4gPiB9KTsNCj4gPiA+DQo+ID4gPiAvKiBHREIgdHJlYXRzIHNvbWUgcmVnaXN0ZXJzIGFz IDMyLWJpdCwgd2hlcmUgdGhleSBhcmUgaW4gZmFjdCBvbmx5DQo+ID4gPiBAQCAtNTM4LDcgKzU3 MCw3IEBAIGkzODZfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXIgKHN0cnVjdCByZWdjYWNoZQ0KPiA+ ID4gKnJlZ2NhY2hlLA0KPiA+ID4gew0KPiA+ID4gY2hhciAqY29udGV4dF9vZmZzZXQgPSB3aW5k b3dzX3Byb2Nlc3Mud2l0aF9jb250ZXh0ICh0aCwgWyZdIChhdXRvDQo+ID4gPiAqY29udGV4dCkN Cj4gPiA+IHsNCj4gPiA+IC0gcmV0dXJuIGdldF9jb250ZXh0X3JlZ19wdHIgKGNvbnRleHQsIHIp Ow0KPiA+ID4gKyByZXR1cm4gZ2V0X2NvbnRleHRfcmVnX3B0ciAoY29udGV4dCwgciwgcmVnY2Fj aGUtPnRkZXNjKTsNCj4gPiA+IH0pOw0KPiA+ID4NCj4gPiA+IC8qIEdEQiB0cmVhdHMgc29tZSBy ZWdpc3RlcnMgYXMgMzItYml0LCB3aGVyZSB0aGV5IGFyZSBpbiBmYWN0IG9ubHkNCj4gPiA+IEBA IC01NzEsMTQgKzYwMywxNyBAQCBpMzg2X2FyY2hfc2V0dXAgKHZvaWQpDQo+ID4gPiB7DQo+ID4g PiB0YXJnZXRfZGVzY191cCB0ZGVzYzsNCj4gPiA+DQo+ID4gPiArIERXT1JENjQgeGNyMCA9IHhz dGF0ZV9mZWF0dXJlczsNCj4gPiA+ICsgaWYgKHhjcjAgPT0gMCkNCj4gPiA+ICsgeGNyMCA9IFg4 Nl9YU1RBVEVfU1NFX01BU0s7DQoNCllvdSBjb3VsZCBjYWxsIHRoaXMgeHN0YXRlX2J2IGluc3Rl YWQgZXZlbiB0aG91Z2ggeW91IHNoYWRvdyBzdGFja3MgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0Lg0K VGhpcyBoYXMgY2hhbmdlZCBpbiBjb21taXQ6ICIgZ2RiLCBnZGJzZXJ2ZXI6IFVzZSB4c3RhdGVf YnYgZm9yIHRhcmdldCBkZXNjcmlwdGlvbiBjcmVhdGlvbiBvbiB4ODYuIg0KDQo+ID4gPiArDQo+ ID4gPiAjaWZkZWYgX194ODZfNjRfXw0KPiA+ID4gLSB0ZGVzYyA9IGFtZDY0X2NyZWF0ZV90YXJn ZXRfZGVzY3JpcHRpb24gKFg4Nl9YU1RBVEVfU1NFX01BU0ssIGZhbHNlLA0KPiA+ID4gLSBmYWxz ZSwgZmFsc2UpOw0KPiA+ID4gKyB0ZGVzYyA9IGFtZDY0X2NyZWF0ZV90YXJnZXRfZGVzY3JpcHRp b24gKHhjcjAsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOw0KPiA+ID4gaW5pdF90YXJnZXRfZGVzYyAo dGRlc2MuZ2V0ICgpLCBhbWQ2NF9leHBlZGl0ZV9yZWdzLCBXSU5ET1dTX09TQUJJKTsNCj4gPiA+ IHdpbjMyX3RkZXNjID0gc3RkOjptb3ZlICh0ZGVzYyk7DQo+ID4gPiAjZW5kaWYNCj4gPiA+DQo+ ID4gPiAtIHRkZXNjID0gaTM4Nl9jcmVhdGVfdGFyZ2V0X2Rlc2NyaXB0aW9uIChYODZfWFNUQVRF X1NTRV9NQVNLLCBmYWxzZSwNCj4gPiA+IGZhbHNlKTsNCj4gPiA+ICsgdGRlc2MgPSBpMzg2X2Ny ZWF0ZV90YXJnZXRfZGVzY3JpcHRpb24gKHhjcjAsIGZhbHNlLCBmYWxzZSk7DQo+ID4gPiBpbml0 X3RhcmdldF9kZXNjICh0ZGVzYy5nZXQgKCksIGkzODZfZXhwZWRpdGVfcmVncywgV0lORE9XU19P U0FCSSk7DQo+ID4gPiAjaWZkZWYgX194ODZfNjRfXw0KPiA+ID4gd293NjRfd2luMzJfdGRlc2Mg PSBzdGQ6Om1vdmUgKHRkZXNjKTsNCj4gPiA+IGRpZmYgLS1naXQgYS9nZGJzZXJ2ZXIvd2luMzIt bG93LmNjIGIvZ2Ric2VydmVyL3dpbjMyLWxvdy5jYw0KPiA+ID4gaW5kZXggMTEwM2E4MDJkYjcu LjNlODA0MDVmNjUxIDEwMDY0NA0KPiA+ID4gLS0tIGEvZ2Ric2VydmVyL3dpbjMyLWxvdy5jYw0K PiA+ID4gKysrIGIvZ2Ric2VydmVyL3dpbjMyLWxvdy5jYw0KPiA+ID4gQEAgLTMzLDYgKzMzLDcg QEANCj4gPiA+ICNpbmNsdWRlIDxwcm9jZXNzLmg+DQo+ID4gPiAjaW5jbHVkZSAiZ2Ric3VwcG9y dC9nZGJfdGlsZGVfZXhwYW5kLmgiDQo+ID4gPiAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9jb21tb24t aW5mZXJpb3IuaCINCj4gPiA+ICsjaW5jbHVkZSAidGRlc2MuaCINCj4gPiA+DQo+ID4gPiB1c2lu ZyBuYW1lc3BhY2Ugd2luZG93c19uYXQ7DQo+ID4gPg0KPiA+ID4gQEAgLTQyNyw4ICs0MjgsOSBA QCBjaGlsZF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMgKHN0cnVjdCByZWdjYWNoZQ0KPiA+ID4g KnJlZ2NhY2hlLCBpbnQgcikNCj4gPiA+IGludCByZWdubzsNCj4gPiA+IHdpbmRvd3NfdGhyZWFk X2luZm8gKnRoID0gd2luZG93c19wcm9jZXNzLmZpbmRfdGhyZWFkIChjdXJyZW50X3RocmVhZC0N Cj4gPiA+ID5pZCk7DQo+ID4gPiB3aW4zMl9yZXF1aXJlX2NvbnRleHQgKHRoKTsNCj4gPiA+IC0g aWYgKHIgPT0gLTEgfHwgciA+IE5VTV9SRUdTKQ0KPiA+ID4gLSBjaGlsZF9mZXRjaF9pbmZlcmlv cl9yZWdpc3RlcnMgKHJlZ2NhY2hlLCBOVU1fUkVHUyk7DQo+ID4gV2l0aCByICE9IC0xIGFuZCBy ID4gcmVnY2FjaGUtPnRkZXNjLT5yZWdfZGVmcy5zaXplICgpLCB0aGlzIG1heSBmYWxsIHRocm91 Z2ggaW50bw0KPiA+ICJnZXRfY29udGV4dF9yZWdfcHRyIiBhbmQgZXZlbnR1YWxseSBpbnRvIHRo ZSBnZGJfYXNzZXJ0X25vdF9yZWFjaGVkX3BhcnQuDQo+ID4NCj4gPiBNYXliZSBhZGQgYW5vdGhl ciBjaGVjaywgZS5nLiwNCj4gPg0KPiA+IGludCBudW1fcmVncyA9IHJlZ2NhY2hlLT50ZGVzYy0+ cmVnX2RlZnMuc2l6ZSAoKTsNCj4gPiBpZiAociA9PSAtMSB8fCByID4gbnVtX3JlZ3MpDQo+ID4g ciA9IG51bV9yZWdzOw0KPiA+DQo+ID4gU2FtZSBmb3IgY2hpbGRfc3RvcmVfaW5mZXJpb3JfcmVn aXN0ZXJzLg0KPiANCj4gQWRkaW5nIHRoaXMgaXMgZmluZSB3aXRoIG1lLCBidXQgSSBqdXN0IHdv bmRlciB3aHkgciA+IHJlZ19kZWZzLnNpemUoKQ0KPiBzaG91bGRuJ3QgZ2V0IHRvIGdkYl9hc3Nl cnRfbm90X3JlYWNoZWRfcGFydC4NCg0KSSBhbSArMSBmb3IganVzdCBoYXZpbmcgdGhlIGdkYl9h c3NlcnRfbm90X3JlYWNoZWQgZGVlcGVyIGRvd24gaW4gdGhlIHN0YWNrIC0gdG8gYXZvaWQgZHVw bGljYXRpb24uDQpCdXQgU3RlcGhhbiBtaWdodCBoYXZlIGEgZGlmZmVyZW50IG9waW5pb24gb24g dGhhdC4NCg0KSSdkIHJhdGhlciBpbXByb3ZlIHRoZSBmdW5jdGlvbiBkZXNjcmlwdGlvbiBmb3Ig dGhlIHBhcmFtZXRlciBSLCBidXQgdGhpcyBzaG91bGQgYmUNCmJlIGFuIGFkZGl0aW9uYWwgcGF0 Y2ggKHNpbmNlIHlvdSBkb24ndCB0b3VjaCB0aGUgZnVuY3Rpb24gZGVzY3JpcHRpb24pLg0KQW5k IHlvdSBvZiBjb3Vyc2UgZG9uJ3QgaGF2ZSB0byBkbyB0aGlzLiBJZiB5b3Ugd2FudCB0byBkbyB0 aGlzLCBpdCBjb3VsZCBhbHNvIGJlIGluZGVwZW5kZW50IG9mIHRoaXMgc2VyaWVzLg0KDQpTaW1p bGFyIHN1Z2dlc3Rpb24gZm9yIHRoZSByZW1vdmFsIG9mICJyPT0wIiBpbiAgY2hpbGRfc3RvcmVf aW5mZXJpb3JfcmVnaXN0ZXJzIGJlbG93DQood2hpY2ggeW91IGhhZCBpbiB2MykuIEkgdGhpbmsg aXQncyBhIGdvb2QgaWRlYS4NCkJ1dCBzYW1lIGFzIGFib3ZlOiBpZiB5b3Ugd2FudCB0byBkbyB0 aGlzLCBpdCBjb3VsZCBhbHNvIGJlIGluZGVwZW5kZW50IG9mIHRoaXMgc2VyaWVzIGFuZCBzaG91 bGQgYmUgYSBzZXBhcmF0ZSBwYXRjaC4NCg0KPiA+ID4gKyBpZiAociA9PSAtMSkNCj4gPiA+ICsg Y2hpbGRfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzIChyZWdjYWNoZSwNCj4gPiA+ICsgcmVnY2Fj aGUtPnRkZXNjLT5yZWdfZGVmcy5zaXplICgpKTsNCj4gPiA+IGVsc2UNCj4gPiA+IGZvciAocmVn bm8gPSAwOyByZWdubyA8IHI7IHJlZ25vKyspDQo+ID4gPiAoKnRoZV9sb3dfdGFyZ2V0LmZldGNo X2luZmVyaW9yX3JlZ2lzdGVyKSAocmVnY2FjaGUsIHRoLCByZWdubyk7DQo+ID4gPiBAQCAtNDQy LDggKzQ0NCw5IEBAIGNoaWxkX3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyAoc3RydWN0IHJlZ2Nh Y2hlDQo+ID4gPiAqcmVnY2FjaGUsIGludCByKQ0KPiA+ID4gaW50IHJlZ25vOw0KPiA+ID4gd2lu ZG93c190aHJlYWRfaW5mbyAqdGggPSB3aW5kb3dzX3Byb2Nlc3MuZmluZF90aHJlYWQgKGN1cnJl bnRfdGhyZWFkLQ0KPiA+ID4gPmlkKTsNCj4gPiA+IHdpbjMyX3JlcXVpcmVfY29udGV4dCAodGgp Ow0KPiA+ID4gLSBpZiAociA9PSAtMSB8fCByID09IDAgfHwgciA+IE5VTV9SRUdTKQ0KPiA+ID4g LSBjaGlsZF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMgKHJlZ2NhY2hlLCBOVU1fUkVHUyk7DQo+ ID4gPiArIGlmIChyID09IC0xIHx8IHIgPT0gMCkNCj4gPiA+ICsgY2hpbGRfc3RvcmVfaW5mZXJp b3JfcmVnaXN0ZXJzIChyZWdjYWNoZSwNCj4gPiA+ICsgcmVnY2FjaGUtPnRkZXNjLT5yZWdfZGVm cy5zaXplICgpKTsNCj4gPiA+IGVsc2UNCj4gPiA+IGZvciAocmVnbm8gPSAwOyByZWdubyA8IHI7 IHJlZ25vKyspDQo+ID4gPiAoKnRoZV9sb3dfdGFyZ2V0LnN0b3JlX2luZmVyaW9yX3JlZ2lzdGVy KSAocmVnY2FjaGUsIHRoLCByZWdubyk7DQo+ID4gPiBAQCAtMTM0Nyw3ICsxMzUwLDkgQEAgdm9p ZA0KPiA+ID4gaW5pdGlhbGl6ZV9sb3cgKHZvaWQpDQo+ID4gPiB7DQo+ID4gPiBzZXRfdGFyZ2V0 X29wcyAoJnRoZV93aW4zMl90YXJnZXQpOw0KPiA+ID4gLSB0aGVfbG93X3RhcmdldC5hcmNoX3Nl dHVwICgpOw0KPiA+ID4NCj4gPiA+IGluaXRpYWxpemVfbG9hZGFibGUgKCk7DQo+ID4gPiArIC8q IEhhcyB0byBiZSBkb25lIGFmdGVyIGluaXRpYWxpemVfbG9hZGFibGUsIGJlY2F1c2UgaXQgdXNl cyB0aGUgeHN0YXRlDQo+ID4gPiArIGZ1bmN0aW9ucyBpZiBhdmFpbGFibGUuICovDQo+ID4gPiAr IHRoZV9sb3dfdGFyZ2V0LmFyY2hfc2V0dXAgKCk7DQo+ID4gPiB9DQo+ID4gPiAtLQ0KPiA+ID4g Mi41NS4wDQo+IA0KPiANCj4gSGFubmVzDQoNCkNocmlzdGluYQ0KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXw0KSW50ZWwgRGV1dHNjaGxhbmQgR21iSCANCg0KUmVnaXN0 ZXJlZCBBZGRyZXNzOiBEb3JuYWNoZXIgU3RyYXNzZSAxLCA4NTYyMiBGZWxka2lyY2hlbiwgR2Vy bWFueSANCg0KVGVsOiArNDkgKDg5KSA5OTE0My0wIA0KDQp3d3cuaW50ZWwuZGUgDQoNCk1hbmFn aW5nIERpcmVjdG9yczogQ2FuZGljZSBNb29yZSwgSmVmZnJleSBTY2huZWlkZXJtYW4sIFJhbWFj aGFuZHJhbiBTaXRhcmFtYW4NCg0KQ2hhaXJwZXJzb24gb2YgdGhlIFN1cGVydmlzb3J5IEJvYXJk OiBTb25qYSBQaWVyZXINCg0KUmVnaXN0ZXJlZCBTZWF0OiBNdW5pY2ggQ29tbWVyY2lhbCBSZWdp c3RlciBCOiBBbXRzZ2VyaWNodCBNdW5pY2ggSFJCIDE4NjkyOA0KDQpUaGlzIGUtbWFpbCBhbmQg YW55IGF0dGFjaG1lbnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBtYXRlcmlhbCBmb3INCnRo ZSBzb2xlIHVzZSBvZiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkgcmV2aWV3IG9yIGRp c3RyaWJ1dGlvbg0KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUg bm90IHRoZSBpbnRlbmRlZA0KcmVjaXBpZW50LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGFu ZCBkZWxldGUgYWxsIGNvcGllcy4K