From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id hHRaJmITp2rTdwkAWB0awg (envelope-from ) for ; Sun, 13 Sep 2026 17:19:30 -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=Bx39h2cv; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 7FE4F1E051; Sun, 13 Sep 2026 17:19:30 -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 B53701E033 for ; Sun, 13 Sep 2026 17:19:27 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2F3D94BB24C7 for ; Sun, 13 Sep 2026 21:19:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2F3D94BB24C7 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=Bx39h2cv Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) by sourceware.org (Postfix) with ESMTPS id A9A474BB1C0A for ; Sun, 13 Sep 2026 21:18:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A9A474BB1C0A 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 A9A474BB1C0A Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=198.175.65.18 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1789334335; cv=fail; b=cTCaxRKoH5h6x6CeYC1uvcZdGUvJJaOViiLw04iMBtX1iNOSsaPZVleXwRDhMsG38vu7mO8nUYrF77n/nfXRx2f+0e3Um5P8xx9RfhLMfl1DjCcKuPI7uONhjNG6dJZEhf9qntYh+UCQ8Uy1CKSoevHw/KEC+BNygMya8ZN8AA0= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1789334335; c=relaxed/simple; bh=PjFHEGxIo4/dcNXPbL8f6uP5RGISYrF0sUOGV90/1vQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=R1zNs3f7lSxQFcBQuuLJpw0kUP3DoMAfhGNczbcfFfCDSXCbV69IndsdMdWFI2WRmqxCSSEgTCXDJjuCCgwNpEakTG2doSaX7kernMP/VjZrtJw+oc1ambKYg6tIZBycNGxpXmcZ45kAhRmYyGQcJG/f+hnu9RQa419nfGj+7+c= 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=Bx39h2cv DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A9A474BB1C0A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1789334335; x=1820870335; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=PjFHEGxIo4/dcNXPbL8f6uP5RGISYrF0sUOGV90/1vQ=; b=Bx39h2cvwMLmgEjFfEAvforh/CyNWm/BN9LmJO2FCiiKahMpdG1+rI7g 9AWiiYw+FsQCuWJ8SJtgz4UyH38KcQSgkDDcQ3VtSDuIxlviFcSFGgES8 9AhzlwUPAlaMoKBevRRuh+rzowkNSogSlJpUJuCO8H5ubApHUaWMg8wtx kbC/3xne9nNnDiLlYfn5zXFzT2d/wRMKtKrXSt2uW8frkyL8LwJ+pXk1g ec/60zS3jiK7pFCWR0n8lKZaWXk9vMv+2L9Y/9AoJ4NSu0Gsk0heyW+Km FWh/E8nt+XY1BLgj5QIw2Hwusc431eOA7H90qG8t1hpCRM0+y6BNUN3ML A==; X-CSE-ConnectionGUID: PebSh1w8RzqKRRn0PhvOZQ== X-CSE-MsgGUID: AoRrdNyhQ1qaIUIJ3Pli/w== X-IronPort-AV: E=McAfee;i="6800,10657,11904"; a="89741146" X-IronPort-AV: E=Sophos;i="6.27,100,1787036400"; d="scan'208";a="89741146" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2026 14:18:54 -0700 X-CSE-ConnectionGUID: AeDyAW5cRhm31b4maVPOAw== X-CSE-MsgGUID: lQAlaxwiT0yfBopDyIKGHA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.27,100,1787036400"; d="scan'208";a="276207868" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by orviesa004.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2026 14:18:53 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) 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.46; Sun, 13 Sep 2026 14:18:53 -0700 Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) 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.46 via Frontend Transport; Sun, 13 Sep 2026 14:18:52 -0700 Received: from SN4PR0501CU005.outbound.protection.outlook.com (40.93.194.64) by edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Sun, 13 Sep 2026 14:18:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zMiK5zYDfyD1lrroETMHo7yY76FXc+UkFt67BQ41VRRE88Pm9Lzx8SIDeQj4pnOI6vM5kWc3A1hHyJfUQ4wjykn/VJx3OAlxs0JMvKMMAqDfCsKVNOdkBMFVqS62572JdF8r0vGa6ImGflzmRuWk6C9Uv7aKRIQ7MJprpdtMmWte/Mr9K+O3EKnWFDEaOAcV3vxR+2DItK1V4p4PvK013uRS58JF7sHn4bhUNaOm+bSKjKnOSDV4L+IvAdb/niwobZr1rwb+p2iAm8+Tv4OjGa/WopgKtJIbrgD4ivRytOtjXCZWe3PT/7WvihrDEz3qUAXI5c7wYwTNqmbx9E7zkw== 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=Ua6uoxwM1gbYIrONCPlrPS2LKXIg7DuO+z0V5sqXNLk=; b=hvQs37MbBeL9qZf1ASseb+HztnzEh3KHSgV2rxdubRAlCFecWzod2d51ZFKWLO92FHN7lovjjQVdG3qTgL6vrosC+JjS8tSKnaAUsKNLgQ0aeJrS8pCo/M0q39JJmw3g+eE5ItzNWeIHAdFob4JHs/b1uz1jWkccMtIHlwcmnwtiUqCxe08B6TAcdRALvp1IWcP4OuihUMDA6DhYnd/nSs0l+I+hOHW4cMBmAlNts+mrC1tlhfXZTMwAZgUhHrkJWjgJTj/BG4caBCcljtiUR/cmfC3g4s02aeGyPwkOBR8SDHheWFtj24B2VVWVzNJ1WnLH29nousViNz6Lew99gw== 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 BL3PR11MB6361.namprd11.prod.outlook.com (2603:10b6:208:3b4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Sun, 13 Sep 2026 21:18:50 +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.0406.007; Sun, 13 Sep 2026 21:18:50 +0000 From: "Joos, Christina" To: Hannes Domani , "Rohr, Stephan" , "gdb-patches@sourceware.org" CC: Tom Tromey Subject: RE: [PATCH v3 8/8] Windows gdb: Implement AVX-512 register support Thread-Topic: [PATCH v3 8/8] Windows gdb: Implement AVX-512 register support Thread-Index: AQHdP5KoV+W541XuQkaFNCyepQWWBrbHdbTAgABvdQCABSXLsA== Date: Sun, 13 Sep 2026 21:18:50 +0000 Message-ID: References: <20260829145823.1034821-1-ssbssa@yahoo.de> <20260829145823.1034821-8-ssbssa@yahoo.de> <1124964361.369140.1789051156372@mail.yahoo.com> In-Reply-To: <1124964361.369140.1789051156372@mail.yahoo.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_|BL3PR11MB6361:EE_ x-ms-office365-filtering-correlation-id: ae2b4c7c-8e63-4c38-6ec7-08df11dc9b08 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|23010399003|376014|10067099003|4143699003|6133799003|3023799007|22082099003|18002099003|56012099006|11063799006|38070700021; x-microsoft-antispam-message-info: ehjtKYp1fvzCXtjGIq/ojPOHbygzNjYUvLol6XPkbpxOc1GOhSiW81GXYmQH8zDU1ck5CWLwjHnLkWntLnbHs80+7CnMPot4uPkqVuIXRSjeQc3P28wqlIKG4oWimY6i1tAwCbovMM4t5RcnT2WGWmzBG/D01ZPVF7/WpAZtHmvERHiGKcikhalCVuMVKz3Y0xibI0U5mDnSC1IvYXjsqc/uAo7i5+8UaBGVeTAbPXfM3t8RdrI3jRhYl6Wj72IfKnxtpKdLeg/5jBC5olYo81ee8lj3s7WR3LnczNUg7PlHAniyeOjmUQYc26Kbx5BTwJOemT3rMMCMzyKDg16ZF+sMVxJlXBlPbf/sTXJsPbORU8KfVztfba13jZ9pzHRlTrtcfWgDHeoxR63oUIr9FVuTStdiaJ3HCVfcclfCIrxnYyhtVuXceaGH5Qp3/sw9ulT/voFSudM/oOuEMDe8UD1k/dg5gu5oVISlUI3AEr+rDO5rqQaxXLylzNe8Fnih+FwfQ2IwJ27iKuhsGJTOVubJj3ekEyexdNOppF7GftA/Q4/tEgIu3tupXW/A2JT4+RaWNzH4U7A3LsGB6gQKgxOkUJ8fMbbo4724l5bU8CKjlt9p69yo4s5xABhAeZ1gOOSZR1unyVBvYC1ZI5TTB/rPbV8Bsn4KytL4hBt7dq7L96jirCrqriaDljgh9l4z 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)(23010399003)(376014)(10067099003)(4143699003)(6133799003)(3023799007)(22082099003)(18002099003)(56012099006)(11063799006)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eEVGRzA1SzNrYmRwY1p6eUQxWUJ4Wkx5aTdhWDdxc21FREFqdzNmYzdGeGFE?= =?utf-8?B?bHdNelhoT2ExUTRXUjhKTm8xS2FXV3p0Szlla0loaUtJc05oNnJLeDNGQTFm?= =?utf-8?B?OUwyLzVmaFhGVjhCTTk3MXJuem1ZaG1JcDdtSzFDTktYektxYnFsM0VSdGdJ?= =?utf-8?B?WmE2RUYzNWZ3cnAxeEhoUVpXZWt1NGZ3cFAzbkZxajJFQWpNNXJROUY1eDVS?= =?utf-8?B?S2Rkc3laRGFKU0ZiVmRPOGQyc2FBbmtna0taY3JEZEhJbGptMVljeGxuOFFG?= =?utf-8?B?bSt3Vk5MeTUrWG0wZjhZdDV2NFhDd2FES00yQ01pSDF1UURaeHNjL2VRREh2?= =?utf-8?B?NmJhZ3M5RS82VWV0YndZTG5GNHR4VHpRUHp2cGtzYXBab3J6akZ2VEtEV1VZ?= =?utf-8?B?VVpmOWtsYlZLRnRCd2NwcFIvMTJSUHY1RkRzaG9ONFVOak1rbVpQWnNXMG9C?= =?utf-8?B?YkxmVFhONStJZkhDWjdjelhhVjdYd0JVWVpiWVdiNzV2ZU52UWE1MUVnU1dJ?= =?utf-8?B?RDFuTmRaeTUwY0JOWHdjMkllTHg0angzcjA4eCs0Y3Z3b1hjVVhMSzRVcWRW?= =?utf-8?B?aXJZM0M4U0NSODkvdlMzS3dvQnBkSzNTZW51ME1Fck5veXdVT1p4eERYWTdV?= =?utf-8?B?UG9OUURzS2d1VVhsb3hSaDdkaTNKVWNHRERPaFBaRFhuTVE1dHpSV3BoRXk0?= =?utf-8?B?U29VZVVjQWIxbDVOT0NjWnY4VXZMWGdMbVBMS1JHbm85ai9MTC9pcWNKNlV5?= =?utf-8?B?S1VKV05TeXZuUWplSVhpNXUyakp6TDhjRXgzSjk3ZWdRY1ZuQitHYllaQjhL?= =?utf-8?B?MWJlaGFNblVjUWhrQ3ZUeStHV2Z0QWZMMTBxamk1OFNaUkRMWWU2WThCRmhs?= =?utf-8?B?dUZ5ekRmZHF2UWxJSGwyeDkxdlo0TzZkMmFwbGlrS2xSUEkvVUlMVDA2M1J4?= =?utf-8?B?akZsREJQMi9Vd1lsbndDajc3Z1h1SitORHdwM2pvZjFlV3hrbUY3bFFuSTZJ?= =?utf-8?B?Yll6dmJqWDJQcnFxREdRcEtENnJTOHUwVytVa1RadktEL2dxaG1nVld0UjYz?= =?utf-8?B?UFkzVEk4TFBaaEV1MXRFKy82dlpmdmh1TGhSenlFeGwxUzRYbEpMSDhudGZt?= =?utf-8?B?RXAyalo1cFZmakJxUXFLeVRTRmJYQzZWNVlGN3gvM0xiRE9MdjFjZlhqMmdt?= =?utf-8?B?KzhFYzl4S1lCbC90WnlTeDR3V0Nja0hWY3RaV1Z2QUlmazQ1M3YyQzNkTGJC?= =?utf-8?B?V2YyMVAweUlrenR2c3hHOUJNZWszem4ydTZ3TDYyOHQ3R25QUjBndVovd0gw?= =?utf-8?B?MmJtVUorcVZzSm9FYkkxU3FQcnpRTkZDeTgyTlFQOE1VN2hzOWpQQWJlOHZx?= =?utf-8?B?cngrSVM3TENybjhBdUIwWTNWSWRQaHBiSmlqd2VvYnFSK3lleDhsUjNKU280?= =?utf-8?B?dlBRVGhiUnNjMHI0a20ycHo5UkdqTlZka0Y4VWFWckdJU1VLandrMThld2w2?= =?utf-8?B?eWNhNHZwNzU4dlJMZnVXV01pVVZxRnFsTCtiZk5EUEczYnB3L3dkcXk0ZEFk?= =?utf-8?B?T3ZiSEZpWDBHd2dTZkRIK3dOcEtIVVpkTkhyeXFOdXJsdUJyRXVOZGZhcDVH?= =?utf-8?B?WHFDTVdLN3lrT3UwcXJXWkdqeTlLUGcwUElUTU10MGpkWlBPUUUydTYxL25z?= =?utf-8?B?MjRzV05mUFJpb1R4VGY3Vk04VjZHREdJUmxYVW0wNUhhdXZ1aEtWQmplTXAx?= =?utf-8?B?YjlvdHg5ZEoyZmp3NzVBVThWN3BhbXVhZTlDeXQ0S05ybktydFBySTh1cnJ2?= =?utf-8?B?WE8zN2g2cUNEYkZ3bnBHaUFYdVdlY2ZoVXNhR0NMTFB4c2dQMjBNRmtVcmhp?= =?utf-8?B?MkZKQk92b3ZNd2FDU1phWXRveGtGQmZLeTE0ZTlPK1hicUVMa1RjTHV1b1Q4?= =?utf-8?B?em00WGZ1ZzNhNlh2M25jNjJqRWNvSmlHNCtmVXd0dWtZNngxZk5zdnlPY3Bv?= =?utf-8?B?MGJmajhzbFFUV3d2aGt5eHRrcVdsOXZ1eS9oVGlHL0NuaVdUbStTQ29oeFpm?= =?utf-8?B?L0dsNGprdEZKOW1acTBoZG8xV0RJaks5eEI1YjNsVVJ4SHQ1RDBOOWEvVE4r?= =?utf-8?B?b3ZlZ2NPZ1FuaTJhbDZsZHRrakIydFp3dG90NlV1clVZWTBQZ3puTEV6bytY?= =?utf-8?B?d0Njb1JOaVpDRDNUaGN5ajVPdWZmRmdRTGVRbVZRNUo5OEtOMDhQLzI5MEJz?= =?utf-8?B?WHh2L1hlbDFUUFdXVVJXemNBZUdPZXJBZ3ZZajFOZ0tleStEV2lVTm45MExq?= =?utf-8?B?aFBtdTJ1QmZhclBVK0hHK3FFWFRQNjV5eVNMaGNJVGowZWtaMTNTdz09?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: Od+wT5JEcrWL+uyvkr6zMFY4l/19HKlfRSktKH/LYA0HUrps8R9Odhq5CbK4zTSM3ruku/HJizPK9OezI5A95JF4M8rKAhJB+XGQ3hbxugLDTbCuV6mpnOMKMLigM7rN8cP1SwlzXSvMEp8E6vCFBTeuxdd8O9ogHmVRCS1iU8vM4IAPWYMvwvC1yCED83U8UQUAlqsxEnmzwb2DrLwV5CQZGtoV2s4tLEYQ95zQxiBB8XNFRNVg+4fhnKfwBcycMPq4KJQusxiCt7Jyftn2d9J/AQkndLKpiSILKrt5Nok0UrhlJt68tAzMGgWudA7uWdtmoOR9d5Dfy+wti7i/sQ== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ae2b4c7c-8e63-4c38-6ec7-08df11dc9b08 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2026 21:18:50.0959 (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: bdj7rYj9+a97BIReK1gKktArqZALF6AO+bUpct4NCBIr+p1tHMSwRDs5ESt9LoiSSPhXhI0AdXwzW8s9TuJXGln2RwvcwfzyTWOIUE7oq1g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB6361 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBIYW5uZXMgRG9tYW5pIDxzc2Jz c2FAeWFob28uZGU+DQo+IFNlbnQ6IERvbm5lcnN0YWcsIDEwLiBTZXB0ZW1iZXIgMjAyNiAxNjoz OQ0KPiBUbzogUm9ociwgU3RlcGhhbiA8c3RlcGhhbi5yb2hyQGludGVsLmNvbT47IGdkYi1wYXRj aGVzQHNvdXJjZXdhcmUub3JnOw0KPiBKb29zLCBDaHJpc3RpbmEgPGNocmlzdGluYS5qb29zQGlu dGVsLmNvbT4NCj4gQ2M6IFRvbSBUcm9tZXkgPHRvbUB0cm9tZXkuY29tPg0KPiBTdWJqZWN0OiBS ZTogW1BBVENIIHYzIDgvOF0gV2luZG93cyBnZGI6IEltcGxlbWVudCBBVlgtNTEyIHJlZ2lzdGVy DQo+IHN1cHBvcnQNCj4gDQo+ICBBbSBEb25uZXJzdGFnLCAxMC4gU2VwdGVtYmVyIDIwMjYgdW0g MTM6MzM6MjAgTUVTWiBoYXQgSm9vcywgQ2hyaXN0aW5hDQo+IDxjaHJpc3RpbmEuam9vc0BpbnRl bC5jb20+IEZvbGdlbmRlcyBnZXNjaHJpZWJlbjoNCj4gDQo+ID4gSGkgSGFubmVzLA0KPiA+DQo+ ID4gSSBzYXcgdGhhdCBTdGVwaGFuIGFscmVhZHkgcmV2aWV3ZWQgdGhpcyAodGhhbmtzISkuDQo+ ID4gSSBhZGRlZCBteSByZW1hcmtzIG9uIHRvcCwgc2VlIGJlbG93Lg0KPiA+DQo+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogUm9ociwgU3RlcGhhbiA8c3RlcGhh bi5yb2hyQGludGVsLmNvbT4NCj4gPiA+IFNlbnQ6IERpZW5zdGFnLCA4LiBTZXB0ZW1iZXIgMjAy NiAxNTowNQ0KPiA+ID4gVG86IEhhbm5lcyBEb21hbmkgPHNzYnNzYUB5YWhvby5kZT47IGdkYi1w YXRjaGVzQHNvdXJjZXdhcmUub3JnOw0KPiA+ID4gZ2RiLSBwYXRjaGVzQHNvdXJjZXdhcmUub3Jn DQo+ID4gPiBDYzogSm9vcywgQ2hyaXN0aW5hIDxjaHJpc3RpbmEuam9vc0BpbnRlbC5jb20+OyBU b20gVHJvbWV5DQo+ID4gPiA8dG9tQHRyb21leS5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW1BB VENIIHYzIDcvOF0gV2luZG93cyBnZGI6IEltcGxlbWVudCBBVlggcmVnaXN0ZXINCj4gPiA+IHN1 cHBvcnQNCj4gPiA+DQo+ID4gPiBIaSBIYW5uZXMsDQo+ID4gPg0KPiA+ID4gcGxlYXNlIHNlZSBz b21lIGZlZWRiYWNrIGlubGluZWQgYmVsb3cuDQo+ID4gPg0KPiA+ID4gTGV0IG1lIGtub3cgaWYg eW91IGhhdmUgYW55IHF1ZXN0aW9ucy4NCj4gPiA+DQo+ID4gPiBUaGFua3MNCj4gPiA+IFN0ZXBo YW4NCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZy b206IEhhbm5lcyBEb21hbmkgPHNzYnNzYUB5YWhvby5kZT4NCj4gPiA+ID4gU2VudDogU2F0dXJk YXksIDI5IEF1Z3VzdCAyMDI2IDE2OjQ5DQo+ID4gPiA+IFRvOiBnZGItcGF0Y2hlc0Bzb3VyY2V3 YXJlLm9yZw0KPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggdjMgNy84XSBXaW5kb3dzIGdkYjogSW1w bGVtZW50IEFWWCByZWdpc3Rlcg0KPiA+ID4gPiBzdXBwb3J0DQo+ID4gPiA+DQo+ID4gPiA+IFRo aXMgYWRkcyBzdXBwb3J0IGZvciB0aGUgSW50ZWwgQVZYIHJlZ2lzdGVycyBvbiBXaW5kb3dzLg0K PiA+ID4gPiBJdCBlbmFibGVzIGFjY2Vzc2luZyByZWdpc3RlcnMgJHltbTAgLSAkeW1tMTUgd2hl cmUgdGhleSBhcmUgYXZhaWxhYmxlLg0KPiA+ID4gPg0KPiA+ID4gPiBBZnRlciB0aGlzIHBhdGNo IGdkYi5hcmNoL2kzODYtYXZ4LmV4cCBwYXNzZXMgb24gd2luZG93cy4NCj4gPiA+ID4gLS0tDQo+ ID4gPiA+IHYzOg0KPiA+ID4gPsKgIC0gbWVyZ2VkIGdkYitnZGJzZXJ2ZXIgcGFydHMsIGFuZCBz cGxpdCBhZ2FpbiBBVlgvQVZYLTUxMiBwYXJ0cw0KPiA+ID4gPiAtLS0NCj4gPiA+ID7CoCBnZGIv TkVXU8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHzCoCAzICsrDQo+ID4gPiA+wqAgZ2Ri L25hdC93aW5kb3dzLW5hdC5jwqAgwqAgwqAgfMKgIDIgKy0NCj4gPiA+ID7CoCBnZGIveDg2LXdp bmRvd3MtbmF0LmPCoCDCoCDCoCB8IDY3DQo+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0NCj4gPiA+ID7CoCBnZGJzZXJ2ZXIvd2luMzItaTM4Ni1sb3cuY2MgfCA2 MQ0KPiA+ID4gPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQ0KPiA+ID4gPsKgIGdk YnNlcnZlci93aW4zMi1sb3cuY2PCoCDCoCDCoCB8IDE1ICsrKysrKy0tLQ0KPiA+ID4gPsKgIDUg ZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQ0KPiA+ID4g Pg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUw0KPiA+ID4gPiBpbmRl eCAxMGMxODIwNjdmOS4uZjdlZmZjODIyZTkgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2dkYi9ORVdT DQo+ID4gPiA+ICsrKyBiL2dkYi9ORVdTDQo+ID4gPiA+IEBAIC0xMTgsNiArMTE4LDkgQEANCj4g PiA+ID7CoCDCoCBpbnRlbnQgdG8gcmVtb3ZlIGl0IGluIGEgZnV0dXJlIHJlbGVhc2UuDQo+ID4g PiA+wqAgwqAgVGhlIHMzOTAgNjQtYml0IHRhcmdldCAoczM5MHgtKikgcmVtYWlucyBzdXBwb3J0 ZWQuDQo+ID4gPiA+DQo+ID4gPiA+ICsqIFN1cHBvcnQgZm9yIEludGVsIEFWWCByZWdpc3RlcnMg b24gV2luZG93cy4NCj4gPiA+ID4gK8KgIFN1cHBvcnQgZGlzcGxheWluZyBhbmQgbW9kaWZ5aW5n IEludGVsIEFWWCByZWdpc3RlcnMgJHltbTAgLQ0KPiAkeW1tMzEuDQo+ID4gPiA+ICsNCj4gPiA+ DQo+ID4gPiBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIHJlZ2lzdGVycyAkeW1tMCAtICR5bW0xNSA/ DQo+ID4NCj4gPiBZZXMsIEkgYWdyZWUgd2l0aCBTdGVwaGFuJ3MgZmVlZGJhY2sgaGVyZS4NCj4g PiBUaGUgQVZYIHN0YXRlIG9ubHkgY29tcHJpc2VzIG9ubHkgWU1NMOKAk1lNTTE1IGZvciA2NCBi aXQuDQo+ID4gRm9yIDMyLWJpdCBtb2RlLCBpdCdzIFlNTTAtIFlNTTcgb25seS4NCj4gPiBTZWUg dGhlIGRvY3MgYWRkZWQgaW4gY29tbWl0ICJBZGQgb3JnLmdudS5nZGIuaTM4Ni5hdnguIg0KPiAN Cj4gWWVzLCBJIG1pc3NlZCB0aGlzIHdoZW4gSSBzcGxpdCBBVlgvQVZYLTUxMi4NCj4gDQo+IA0K PiA+ID4gPsKgICogQ29uZmlndXJlIGNoYW5nZXMNCj4gPiA+ID4NCj4gPiA+ID7CoCAqKiAtLXdp dGgtYmFiZWx0cmFjZSBoYXMgYmVlbiByZW1vdmVkLsKgIFRoZSBiYWJlbHRyYWNlIGxpYnJhcnkN Cj4gPiA+ID53YXMgIGRpZmYgLS1naXQgYS9nZGIvbmF0L3dpbmRvd3MtbmF0LmMgYi9nZGIvbmF0 L3dpbmRvd3MtbmF0LmMNCj4gPiA+ID5pbmRleCAgODkzMDUzNmYzYmEuLmM5YTIxZDdjNDFmIDEw MDY0NA0KPiA+ID4gPiAtLS0gYS9nZGIvbmF0L3dpbmRvd3MtbmF0LmMNCj4gPiA+ID4gKysrIGIv Z2RiL25hdC93aW5kb3dzLW5hdC5jDQo+ID4gPiA+IEBAIC0xMzM5LDcgKzEzMzksNyBAQCBpbml0 aWFsaXplX2xvYWRhYmxlICgpDQo+ID4gPiA+wqAgwqAgwqAgew0KPiA+ID4gPsKgIMKgIMKgIMKg IC8qIEF2YWlsYWJsZSBYU3RhdGUgZmVhdHVyZXMgbWFza2VkIHdpdGggaW1wbGVtZW50ZWQNCj4g PiA+ID5mZWF0dXJlcy7CoCAqLw0KPiA+ID4gPsKgIMKgIMKgIMKgIHhzdGF0ZV9mZWF0dXJlcyA9 IChHZXRFbmFibGVkWFN0YXRlRmVhdHVyZXMgKCkNCj4gPiA+ID4gLcKgIMKgIMKgIMKgIMKgIMKg ICYgWDg2X1hTVEFURV9TU0VfTUFTSyk7DQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCDCoCAmIFg4 Nl9YU1RBVEVfQVZYX01BU0spOw0KPiA+ID4gPsKgIMKgIMKgIMKgIC8qIFRoZSBleHRlbmRlZCBY U3RhdGUgZnVuY3Rpb25zIGFyZSBvbmx5IG5lZWRlZCBpZiB0aGUNCj4gPiA+ID5hdmFpbGFibGUN Cj4gPiA+ID7CoCDCoCDCoCBmZWF0dXJlcyBleGNlZWQgU1NFLsKgICovDQo+ID4gPiA+wqAgwqAg wqAgwqAgaWYgKCh4c3RhdGVfZmVhdHVyZXMgJiB+WDg2X1hTVEFURV9TU0VfTUFTSykgPT0gMCkg ZGlmZg0KPiA+ID4gPi0tZ2l0ICBhL2dkYi94ODYtd2luZG93cy1uYXQuYyBiL2dkYi94ODYtd2lu ZG93cy1uYXQuYyBpbmRleA0KPiA+ID4gPjNhZjVlZjRkYWUwLi4xY2VmZTYxNzFiZSAxMDA2NDQN Cj4gPiA+ID4gLS0tIGEvZ2RiL3g4Ni13aW5kb3dzLW5hdC5jDQo+ID4gPiA+ICsrKyBiL2dkYi94 ODYtd2luZG93cy1uYXQuYw0KPiA+ID4gPiBAQCAtMjcsNiArMjcsOSBAQA0KPiA+ID4gPg0KPiA+ ID4gPsKgICNpbmNsdWRlICJpMzg2LXRkZXAuaCINCj4gPiA+ID7CoCAjaW5jbHVkZSAiaTM4Ny10 ZGVwLmgiDQo+ID4gPiA+ICsjaWZkZWYgX194ODZfNjRfXw0KPiA+ID4gPiArI2luY2x1ZGUgImFt ZDY0LXRkZXAuaCINCj4gPiA+ID4gKyNlbmRpZg0KPiA+ID4gPg0KPiA+ID4gPsKgIHVzaW5nIG5h bWVzcGFjZSB3aW5kb3dzX25hdDsNCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTcwLDYgKzczLDggQEAg c3RydWN0IHg4Nl93aW5kb3dzX25hdF90YXJnZXQgZmluYWwgOiBwdWJsaWMNCj4gPiA+ID54ODZf bmF0X3RhcmdldDx3aW5kb3dzX25hdF90YXJnZXQ+DQo+ID4gPiA+wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgd2luZG93c190aHJlYWRfaW5mbyAqdGgsIGludCByKSBvdmVycmlkZTsNCj4gPiA+ID4N Cj4gPiA+ID7CoCDCoCBib29sIGlzX3N3X2JyZWFrcG9pbnQgKGNvbnN0IEVYQ0VQVElPTl9SRUNP UkQgKmVyKSBjb25zdA0KPiA+ID4gPm92ZXJyaWRlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICvCoCBj b25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnJlYWRfZGVzY3JpcHRpb24gKCkgb3ZlcnJpZGU7DQo+ ID4gPiA+wqAgfTsNCj4gPiA+ID4NCj4gPiA+ID7CoCAvKiBUaGUgY3VycmVudCBwcm9jZXNzLsKg ICovDQo+ID4gPiA+IEBAIC0xMDksNyArMTE0LDMxIEBAIHg4Nl93aW5kb3dzX3Blcl9pbmZlcmlv cjo6ZmlsbF90aHJlYWRfY29udGV4dA0KPiA+ID4gPiAod2luZG93c190aHJlYWRfaW5mbyAqdGgp DQo+ID4gPiA+wqAgwqAgwqAgwqAgaWYgKGNvbnRleHQtPkNvbnRleHRGbGFncyA9PSAwKQ0KPiA+ ID4gPsKgIMKgIMKgIHsNCj4gPiA+ID7CoCDCoCDCoCDCoCBjb250ZXh0LT5Db250ZXh0RmxhZ3Mg PQ0KPiA+ID4gPldpbmRvd3NDb250ZXh0PGRlY2x0eXBlKGNvbnRleHQpPjo6YWxsOw0KPiA+ID4g PiArwqAgwqAgwqAgaWYgKHhzdGF0ZV9mZWF0dXJlcyAhPSAwKQ0KPiA+ID4gPiArwqAgwqAgwqAg wqAgew0KPiA+ID4gPiArwqAgwqAgwqAgwqAgwqAgY29udGV4dC0+Q29udGV4dEZsYWdzIHw9IENP TlRFWFRfWFNUQVRFX0ZMQUc7DQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCBzZXRfeHN0YXRlX2Zl YXR1cmVzX21hc2sgKGNvbnRleHQsIHhzdGF0ZV9mZWF0dXJlcyk7DQo+ID4gPiA+ICvCoCDCoCDC oCDCoCB9DQo+ID4gPg0KPiA+ID4gV2UgaGF2ZSB0aGUgc2FtZSBjb2RlIGluICJpMzg2X2dldF90 aHJlYWRfY29udGV4dCIgaW4gIndpbjMyLWkzODYtDQo+IGxvdy5jYyIuDQo+ID4gPiBNYWtlIGEg c2hhcmVkIGZ1bmN0aW9uIGluIGdkYi9uYXQvd2luZG93cy1uYXQuaD8NCj4gPiA+DQo+ID4gPiA+ wqAgwqAgwqAgwqAgQ0hFQ0sgKGdldF90aHJlYWRfY29udGV4dCAodGgtPmgsIGNvbnRleHQpKTsN Cj4gPiA+ID4gKw0KPiA+ID4gPiArwqAgwqAgwqAgaWYgKHhzdGF0ZV9mZWF0dXJlcyAhPSAwKQ0K PiA+ID4gPiArwqAgwqAgwqAgwqAgew0KPiA+ID4gPiArwqAgwqAgwqAgwqAgwqAgRFdPUkQ2NCBm ZWF0dXJlcyA9IDA7DQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCBDSEVDSyAoZ2V0X3hzdGF0ZV9m ZWF0dXJlc19tYXNrIChjb250ZXh0LCAmZmVhdHVyZXMpKTsNCj4gPiA+DQo+ID4gPiBTaG91bGQg dGhpcyBiZSBjaGFuZ2VkIHRvIHN0aC4gbGlrZQ0KPiA+ID4NCj4gPiA+wqAgaWYgKCFnZXRfeHN0 YXRlX2ZlYXR1cmVzX21hc2sgKGNvbnRleHQsICZmZWF0dXJlcykpDQo+ID4gPsKgIMKgIHsNCj4g PiA+wqAgwqAgwqAgd2FybmluZyAoLi4pDQo+ID4gPsKgIMKgIMKgIHJldHVybjsNCj4gPiA+wqAg wqAgfQ0KPiA+ID4NCj4gPiA+IFRoZSBjYWxsIG9mICJDSEVDSyIgb25seSBwcmludHMgYSBtZXNz YWdlIGJ1dCBkb2Vzbid0IGVycm9yIG91dC7CoCBJZg0KPiA+ID4gdGhpcyBjYWxsIGZhaWxzIHdl IG1heSBzdGlsbCBoYXZlIGZlYXR1cmVzID09IDAuwqAgVGhpcyBpbXBsaWVzDQo+ID4gPiAiemVy b2VkX2ZlYXR1cmVzID09IHhzdGF0ZV9mZWF0dXJlcyIuwqAgV2l0aCB0aGlzLCB0aGUgbG9vcCBj bGVhcnMgYWxsIGZlYXR1cmVzLg0KPiA+ID4gSUlVQywgdGhpcyB3b3VsZCBjbGVhciB0aGUgQVZY IHJlZ2lzdGVycyBvbiB0aGUgbmV4dCBjYWxsIG9mDQo+ICJTZXRUaHJlYWRDb250ZXh0Ii4NCj4g PiA+DQo+ID4gPiBBbHNvIHJlZmVyIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiBnZGJzZXJ2ZXIv d2luMzItaTM4Ni1sb3cuY2M6DQo+ID4gPg0KPiA+ID7CoCDCoCDCoCBEV09SRDY0IGZlYXR1cmVz ID0gMDsNCj4gPiA+wqAgwqAgwqAgaWYgKHhzdGF0ZV9mZWF0dXJlcyAhPSAwDQo+ID4gPsKgIMKg IMKgIMKgJiYgZ2V0X3hzdGF0ZV9mZWF0dXJlc19tYXNrIChjb250ZXh0LCAmZmVhdHVyZXMpKQ0K PiA+ID7CoCDCoCDCoHsNCj4gPiA+DQo+ID4gPiBJIHRoaW5rIGl0IG1ha2VzIHNlbnNlIHRvIHVu aWZ5IHRob3NlIGFzIHRoZSByZXN0IG9mIHRoZSBjb2RlIGlzIGJhc2ljYWxseQ0KPiBpZGVudGlj YWwuDQo+ID4gPiBQdXQgc2hhcmVkIGZ1bmN0aW9uIGludG8gZ2RiL25hdC93aW5kb3dzLW5hdC5o P8KgIFRoaXMga2VlcHMgdGhlIGNvZGUNCj4gPiA+IGNvbnNpc3RlbnQuDQo+IA0KPiBJIHdpbGwg dHJ5IHRoYXQuDQo+IA0KPiANCj4gPiA+ID4gK8KgIMKgIMKgIMKgIMKgIERXT1JENjQgemVyb2Vk X2ZlYXR1cmVzID0geHN0YXRlX2ZlYXR1cmVzICYgfmZlYXR1cmVzOw0KPiA+ID4gPiArDQo+ID4g PiA+ICvCoCDCoCDCoCDCoCDCoCBmb3IgKGludCBmID0gWDg2X1hTVEFURV9BVlhfSUQ7IGYgPD0N Cj4gPiA+ID4gK1g4Nl9YU1RBVEVfQ0VUX1VfSUQ7IGYrKykNCj4gPg0KPiA+IEluIGFkZGl0aW9u IHRvIFN0ZXBoYW4ncyBmZWVkYmFjayBmb3IgdGhpcyBjb2RlIGFyZWE6DQo+ID4gU2luY2Ugd2Ug ZGVjaWRlZCB0byBub3QgYWRkIENFVCwgYW5kIHRoaXMgcGF0Y2ggaXMgZXZlbiBmb3IgQVZYIG9u bHkgZm9yIG5vdw0KPiBvbmx5LCBkbyB3ZSBuZWVkIGEgbG9vcCBhdCB0aGlzIHBvaW50IGFscmVh ZHk/DQo+ID4NCj4gPiBGb3IgdGhlIGZvbGxvdyB1cCBBVlgtNTEyIHBhdGNoIEkgdGhpbmsgd2Ug Y2FuIHN0b3AgYXQgdGhlIGhpZ2hlc3Qgc3VwcG9ydGVkDQo+IGZlYXR1cmUgKEFWWC01MTIpIGlu IHdpbmRvd3MsIGNhbid0IHdlPw0KPiANCj4gSSB3b3VsZCBwcmVmZXIgaXQgaWYgd2UgY291bGQg a2VlcCBpdCBhIGxvb3AsIGV2ZW4gaWYgaXQncyBvbmx5IFg4Nl9YU1RBVEVfQVZYX0lEDQo+IGlu IHRoZSBBVlggcGF0Y2guDQo+IEFuZCB5ZXMsIEkgZm9yZ290IHRvIGNoYW5nZSBpdCB0byBYODZf WFNUQVRFX1pNTV9JRCB3aGVuIEkgcmVtb3ZlZCB0aGUgQ0VUDQo+IHN0dWZmLg0KPiANCj4gDQo+ ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCBEV09SRDY0IGZsYWcgPSAxVUxMIDw8IGY7DQo+ID4gPiA+ ICvCoCDCoCDCoCDCoCDCoCBpZiAoKHplcm9lZF9mZWF0dXJlcyAmIGZsYWcpICE9IDApDQo+ID4g PiA+ICvCoCDCoCDCoCDCoCDCoCDCoCB7DQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCBE V09SRCBzaXplID0gMDsNCj4gPiA+ID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIHZvaWQgKmxvYyA9 IGxvY2F0ZV94c3RhdGVfZmVhdHVyZSAoY29udGV4dCwgZiwNCj4gPiA+ID4gKyZzaXplKTsNCj4g PiA+ID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIGlmIChsb2MgIT0gbnVsbHB0ciAmJiBzaXplID4g MCkNCj4gPiA+ID4gK8KgIMKgIMKgIMKgIMKgIMKgIG1lbXNldCAobG9jLCAwLCBzaXplKTsNCj4g PiA+ID4gK8KgIMKgIMKgIMKgIMKgIMKgIH0NCj4gPiA+ID4gK8KgIMKgIMKgIMKgIH0NCj4gPiA+ ID4gK8KgIMKgIMKgIMKgIH0NCj4gPiA+ID7CoCDCoCDCoCB9DQo+ID4gPiA+wqAgwqAgwqAgfSk7 DQo+ID4gPiA+wqAgfQ0KPiA+ID4gPiBAQCAtMTk4LDYgKzIyNywxNCBAQA0KPiA+ID4gPiB4ODZf d2luZG93c19uYXRfdGFyZ2V0Ojp0aHJlYWRfY29udGV4dF9jb250aW51ZQ0KPiA+ID4gPih3aW5k b3dzX3RocmVhZF9pbmZvICAqdGgsDQo+ID4gPiA+wqAgwqAgwqAgwqAgaWYgKEdldEV4aXRDb2Rl VGhyZWFkICh0aC0+aCwgJmVjKQ0KPiA+ID4gPsKgIMKgIMKgIMKgIMKgIMKgICYmIGVjID09IFNU SUxMX0FDVElWRSkNCj4gPiA+ID7CoCDCoCDCoCDCoCDCoCB7DQo+ID4gPiA+ICvCoCDCoCDCoCDC oCDCoCBEV09SRCBkZWJ1Z19yZWdpc3RlcnMgPQ0KPiA+ID4gPiBXaW5kb3dzQ29udGV4dDxkZWNs dHlwZShjb250ZXh0KT46OmRlYnVnOw0KPiA+ID4gPiArwqAgwqAgwqAgwqAgwqAgaWYgKHhzdGF0 ZV9mZWF0dXJlcyAhPSAwDQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCAmJiAoY29udGV4dC0+Q29u dGV4dEZsYWdzICYgfmRlYnVnX3JlZ2lzdGVycykgIT0gMCkNCj4gPiA+ID4gK8KgIMKgIMKgIMKg IHsNCj4gPiA+ID4gK8KgIMKgIMKgIMKgIMKgIGNvbnRleHQtPkNvbnRleHRGbGFncyB8PSBDT05U RVhUX1hTVEFURV9GTEFHOw0KPiA+ID4gPiArwqAgwqAgwqAgwqAgwqAgc2V0X3hzdGF0ZV9mZWF0 dXJlc19tYXNrIChjb250ZXh0LCB4c3RhdGVfZmVhdHVyZXMpOw0KPiA+ID4gPiArwqAgwqAgwqAg wqAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+wqAgwqAgwqAgwqAgwqAgwqAgQk9PTCBzdGF0dXMgPSBz ZXRfdGhyZWFkX2NvbnRleHQgKHRoLT5oLCBjb250ZXh0KTsNCj4gPiA+ID4NCj4gPiA+ID7CoCDC oCDCoCDCoCDCoCDCoCBpZiAoIWtpbGxlZCkNCj4gPiA+ID4gQEAgLTIyNyw3ICsyNjQsNyBAQCB4 ODZfd2luZG93c19uYXRfdGFyZ2V0Ojp0aHJlYWRfY29udGV4dF9zdGVwDQo+ID4gPiA+ICh3aW5k b3dzX3RocmVhZF9pbmZvICp0aCwNCj4gPiA+ID4NCj4gPiA+ID7CoCB0ZW1wbGF0ZTx0eXBlbmFt ZSBDb250ZXh0Pg0KPiA+ID4gPsKgIHN0YXRpYyBjaGFyICoNCj4gPiA+ID4gLWdldF9jb250ZXh0 X3JlZ19wdHIgKENvbnRleHQgKmNvbnRleHQsIGludCByKQ0KPiA+ID4gPiArZ2V0X2NvbnRleHRf cmVnX3B0ciAoQ29udGV4dCAqY29udGV4dCwgaW50IHIsIGkzODZfZ2RiYXJjaF90ZGVwDQo+ID4g PiA+ICsqdGRlcCkNCj4gPiA+ID7CoCB7DQo+ID4gPiA+wqAgwqAgY29uc3QgaW50ICptYXBwaW5n czsNCj4gPiA+ID7CoCDCoCBpbnQgbWFwcGluZ3NfY291bnQ7DQo+ID4gPiA+IEBAIC0yNDcsNiAr Mjg0LDEzIEBAIGdldF9jb250ZXh0X3JlZ19wdHIgKENvbnRleHQgKmNvbnRleHQsIGludCByKQ0K PiA+ID4gPsKgIMKgIGNoYXIgKmNvbnRleHRfb2Zmc2V0Ow0KPiA+ID4gPsKgIMKgIGlmIChyIDwg bWFwcGluZ3NfY291bnQpDQo+ID4gPiA+wqAgwqAgwqAgY29udGV4dF9vZmZzZXQgPSAoY2hhciAq KSBjb250ZXh0ICsgbWFwcGluZ3Nbcl07DQo+ID4gPiA+ICvCoCBlbHNlIGlmIChJMzg3X1lNTTBI X1JFR05VTSAodGRlcCkgPiAwICYmIHIgPj0NCj4gPiA+IEkzODdfWU1NMEhfUkVHTlVNDQo+ID4g PiA+ICh0ZGVwKQ0KPiA+ID4gPiArwqAgwqAgwqAgJiYgciA8IEkzODdfWU1NRU5ESF9SRUdOVU0g KHRkZXApKQ0KPiA+ID4NCj4gPiA+IFRoZSBpbXBsZW1lbnRhdGlvbiBvbiBnZGJzZXJ2ZXIgc2lk ZSBndWFyZHMgYWdhaW5zdA0KPiA+ID4NCj4gPiA+wqAgeHN0YXRlX2ZlYXR1cmVzICYgWDg2X1hT VEFURV9BVlgpICE9IDANCj4gPiA+DQo+ID4gPiBJIHdvbmRlciBpZiB0aGUgc2FtZSBndWFyZCB3 b3VsZCBiZSBoZWxwZnVsIGhlcmUsIHRvby7CoCBJIHVuZGVyc3RhbmQNCj4gPiA+IHRoZSByZWdp c3RlciBudW1iZXIgaXMgaW5pdGlhbGl6ZWQgdG8gLTEsIHNvIHRoaXMgc2hvdWxkIG5vdCBmaXJl Lg0KPiA+ID4gSSdtIG5vdCBzdXJlIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgJHltbTAgcmVn aXN0ZXIgbnVtYmVyID4gMCB3L28NCj4gPiA+IHhzdGF0ZSBzdXBwb3J0LCBlLmcuLCBpZiB0aGUg dGFyZ2V0IGRlc2NyaXB0aW9uIGlzIHJlYWQgZnJvbSBmaWxlLCBzZWUNCj4gInRhcmdldF9maW5k X2Rlc2NyaXB0aW9uIj8NCj4gDQo+IE9uIGdkYnNlcnZlciBzaWRlIEkgbmVlZGVkIHRoZSBndWFy ZCBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlZ2lzdGVyIG51bWJlciBJDQo+IGNvdWxkIGNoZWNrLg0K PiBJIGRpZG4ndCB0aGluayBpdCB3YXMgbmVjZXNzYXJ5IG9uIGdkYiBzaWRlIGFzIHdlbGwsIGJ1 dCBpZiB5b3UgcHJlZmVyIGl0IGxpa2UgdGhpcywgSQ0KPiB3aWxsIGFkZCBpdC4NCj4gDQo+IA0K PiA+ID4gPiArwqAgwqAgew0KPiA+ID4gPiArwqAgwqAgwqAgY29udGV4dF9vZmZzZXQgPSAoY2hh ciAqKSBsb2NhdGVfeHN0YXRlX2ZlYXR1cmUNCj4gPiA+ID4gK8KgIMKgIChjb250ZXh0LCBYODZf WFNUQVRFX0FWWF9JRCwgTlVMTCk7DQo+ID4NCj4gPiBXZSBwcmVmZXIgdG8gdXNlIG51bGxwdHIu DQo+IA0KPiBSaWdodC4NCj4gDQo+IA0KPiA+ID4gPiArwqAgwqAgwqAgY29udGV4dF9vZmZzZXQg Kz0gMTYgKiAociAtIEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKSk7DQo+ID4gPiA+ICvCoCDCoCB9 DQo+ID4gPiA+wqAgwqAgZWxzZQ0KPiA+ID4gPsKgIMKgIMKgIGdkYl9hc3NlcnRfbm90X3JlYWNo ZWQgKCJpbnZhbGlkIHJlZ2lzdGVyIG51bWJlciAlZCIsIHIpOw0KPiA+ID4gPg0KPiA+ID4gPiBA QCAtMjY3LDcgKzMxMSw3IEBAIHg4Nl93aW5kb3dzX25hdF90YXJnZXQ6OmZldGNoX29uZV9yZWdp c3Rlcg0KPiA+ID4gPihzdHJ1Y3QgIHJlZ2NhY2hlICpyZWdjYWNoZSwNCj4gPiA+ID7CoCDCoCBj aGFyICpjb250ZXh0X29mZnNldA0KPiA+ID4gPsKgIMKgIMKgID0geDg2X3dpbmRvd3NfcHJvY2Vz cy53aXRoX2NvbnRleHQgKHRoLCBbJl0gKGF1dG8gKmNvbnRleHQpDQo+ID4gPiA+wqAgwqAgwqAg ew0KPiA+ID4gPiAtwqAgwqAgwqAgcmV0dXJuIGdldF9jb250ZXh0X3JlZ19wdHIgKGNvbnRleHQs IHIpOw0KPiA+ID4gPiArwqAgwqAgwqAgcmV0dXJuIGdldF9jb250ZXh0X3JlZ19wdHIgKGNvbnRl eHQsIHIsIHRkZXApOw0KPiA+ID4gPsKgIMKgIMKgIH0pOw0KPiA+ID4gPg0KPiA+ID4gPsKgIMKg IGdkYl9hc3NlcnQgKCFnZGJhcmNoX3JlYWRfcGNfcCAoZ2RiYXJjaCkpOyBAQCAtMzMzLDcgKzM3 Nyw3IEBADQo+ID4gPiA+eDg2X3dpbmRvd3NfbmF0X3RhcmdldDo6c3RvcmVfb25lX3JlZ2lzdGVy IChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUNCj4gPiA+ID4qcmVnY2FjaGUsDQo+ID4gPiA+wqAgwqAg wqAgPSB4ODZfd2luZG93c19wcm9jZXNzLndpdGhfY29udGV4dCAodGgsIFsmXSAoYXV0byAqY29u dGV4dCkNCj4gPiA+ID7CoCDCoCDCoCB7DQo+ID4gPiA+wqAgwqAgwqAgwqAgZ2RiX2Fzc2VydCAo Y29udGV4dC0+Q29udGV4dEZsYWdzICE9IDApOw0KPiA+ID4gPiAtwqAgwqAgwqAgcmV0dXJuIGdl dF9jb250ZXh0X3JlZ19wdHIgKGNvbnRleHQsIHIpOw0KPiA+ID4gPiArwqAgwqAgwqAgcmV0dXJu IGdldF9jb250ZXh0X3JlZ19wdHIgKGNvbnRleHQsIHIsIHRkZXApOw0KPiA+ID4gPsKgIMKgIMKg IH0pOw0KPiA+ID4gPg0KPiA+ID4gPsKgIMKgIC8qIEdEQiB0cmVhdHMgc29tZSByZWdpc3RlcnMg YXMgMzItYml0LCB3aGVyZSB0aGV5IGFyZSBpbiBmYWN0DQo+ID4gPiA+b25seSAgQEAgLTM2OCw2 ICs0MTIsMjMgQEANCj4geDg2X3dpbmRvd3NfbmF0X3RhcmdldDo6aXNfc3dfYnJlYWtwb2ludA0K PiA+ID4gPihjb25zdCAgRVhDRVBUSU9OX1JFQ09SRCAqZXIpIGNvbnN0DQo+ID4gPiA+wqAgwqAg wqAgwqAgfHwgZXItPkV4Y2VwdGlvbkNvZGUgPT0gU1RBVFVTX1dYODZfQlJFQUtQT0lOVCk7wqAg fQ0KPiA+ID4gPg0KPiA+ID4gPiArY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICoNCj4gPiA+ID4g K3g4Nl93aW5kb3dzX25hdF90YXJnZXQ6OnJlYWRfZGVzY3JpcHRpb24gKCkgew0KPiA+ID4gPiAr wqAgaWYgKGluZmVyaW9yX3B0aWQgPT0gbnVsbF9wdGlkKQ0KPiA+ID4gPiArwqAgwqAgcmV0dXJu IHRoaXMtPmJlbmVhdGggKCktPnJlYWRfZGVzY3JpcHRpb24gKCk7DQo+ID4gPiA+ICsNCj4gPiA+ ID4gK8KgIGlmICh4c3RhdGVfZmVhdHVyZXMgPT0gMCkNCj4gPiA+ID4gK8KgIMKgIHJldHVybiBu dWxscHRyOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsjaWZkZWYgX194ODZfNjRfXw0KPiA+ID4gPiAr wqAgaWYgKCF4ODZfd2luZG93c19wcm9jZXNzLndvdzY0X3Byb2Nlc3MpDQo+ID4gPiA+ICvCoCDC oCByZXR1cm4gYW1kNjRfdGFyZ2V0X2Rlc2NyaXB0aW9uICh4c3RhdGVfZmVhdHVyZXMsIGZhbHNl KTsNCj4gPiA+ID4gK8KgIGVsc2UNCj4gPiA+ID4gKyNlbmRpZg0KPiA+ID4gPiArwqAgwqAgcmV0 dXJuIGkzODZfdGFyZ2V0X2Rlc2NyaXB0aW9uICh4c3RhdGVfZmVhdHVyZXMsIGZhbHNlKTsgfQ0K PiA+ID4gPiArDQo+ID4gPiA+wqAgLyogSGFyZHdhcmUgd2F0Y2hwb2ludCBzdXBwb3J0LCBhZGFw dGVkIGZyb20gZ28zMi1uYXQuYyBjb2RlLsKgICovDQo+ID4gPiA+DQo+ID4gPiA+wqAgLyogUGFz cyB0aGUgYWRkcmVzcyBBRERSIHRvIHRoZSBpbmZlcmlvciBpbiB0aGUgSSd0aCBkZWJ1ZyByZWdp c3Rlci4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2dkYnNlcnZlci93aW4zMi1pMzg2LWxvdy5jYw0K PiA+ID4gPmIvZ2Ric2VydmVyL3dpbjMyLWkzODYtbG93LmNjICBpbmRleCBiNzdmNmFkYzZlZC4u YTdlODNjMDIzOWMNCj4gPiA+ID4xMDA2NDQNCj4gPiA+ID4gLS0tIGEvZ2Ric2VydmVyL3dpbjMy LWkzODYtbG93LmNjDQo+ID4gPiA+ICsrKyBiL2dkYnNlcnZlci93aW4zMi1pMzg2LWxvdy5jYw0K PiA+ID4gPiBAQCAtMjUzLDYgKzI1MywxMSBAQCBpMzg2X2dldF90aHJlYWRfY29udGV4dCAod2lu ZG93c190aHJlYWRfaW5mbw0KPiA+ID4gPiAqdGgpDQo+ID4gPiA+wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgfCBXaW5kb3dzQ29udGV4dDxkZWNsdHlwZShjb250ZXh0KT46OmZsb2F0aW5n DQo+ID4gPiA+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCBXaW5kb3dzQ29udGV4dDxk ZWNsdHlwZShjb250ZXh0KT46OmRlYnVnDQo+ID4gPiA+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgfCBleHRlbmRlZF9yZWdpc3RlcnMpOw0KPiA+ID4gPiArwqAgwqAgwqAgaWYgKHhzdGF0 ZV9mZWF0dXJlcyAhPSAwKQ0KPiA+ID4gPiArwqAgwqAgew0KPiA+ID4gPiArwqAgwqAgwqAgY29u dGV4dC0+Q29udGV4dEZsYWdzIHw9IENPTlRFWFRfWFNUQVRFX0ZMQUc7DQo+ID4gPiA+ICvCoCDC oCDCoCBzZXRfeHN0YXRlX2ZlYXR1cmVzX21hc2sgKGNvbnRleHQsIHhzdGF0ZV9mZWF0dXJlcyk7 DQo+ID4gPiA+ICvCoCDCoCB9DQo+ID4gPiA+DQo+ID4gPiA+wqAgwqAgwqAgwqAgQk9PTCByZXQg PSBnZXRfdGhyZWFkX2NvbnRleHQgKHRoLT5oLCBjb250ZXh0KTsNCj4gPiA+ID7CoCDCoCDCoCDC oCBpZiAoIXJldCkNCj4gPiA+ID4gQEAgLTI2Nyw2ICsyNzIsMjQgQEAgaTM4Nl9nZXRfdGhyZWFk X2NvbnRleHQgKHdpbmRvd3NfdGhyZWFkX2luZm8NCj4gPiA+ID4gKnRoKQ0KPiA+ID4gPg0KPiA+ ID4gPsKgIMKgIMKgIMKgIGVycm9yIChfKCJHZXRUaHJlYWRDb250ZXh0IGZhaWx1cmUgJWxkXG4i KSwgKGxvbmcpIGUpOw0KPiA+ID4gPsKgIMKgIMKgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArwqAg wqAgwqAgRFdPUkQ2NCBmZWF0dXJlcyA9IDA7DQo+ID4gPiA+ICvCoCDCoCDCoCBpZiAoeHN0YXRl X2ZlYXR1cmVzICE9IDANCj4gPiA+ID4gK8KgIMKgIMKgICYmIGdldF94c3RhdGVfZmVhdHVyZXNf bWFzayAoY29udGV4dCwgJmZlYXR1cmVzKSkNCj4gPiA+ID4gK8KgIMKgIHsNCj4gPiA+ID4gK8Kg IMKgIMKgIERXT1JENjQgemVyb2VkX2ZlYXR1cmVzID0geHN0YXRlX2ZlYXR1cmVzICYgfmZlYXR1 cmVzOw0KPiA+ID4gPiArwqAgwqAgwqAgZm9yIChpbnQgZiA9IFg4Nl9YU1RBVEVfQVZYX0lEOyBm IDw9IFg4Nl9YU1RBVEVfQ0VUX1VfSUQ7DQo+ID4gPiA+ICtmKyspDQo+ID4gPiA+ICvCoCDCoCDC oCDCoCB7DQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCBEV09SRDY0IGZsYWcgPSAxVUxMIDw8IGY7 DQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCBpZiAoKHplcm9lZF9mZWF0dXJlcyAmIGZsYWcpICE9 IDApDQo+ID4gPiA+ICvCoCDCoCDCoCDCoCB7DQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCBEV09S RCBzaXplID0gMDsNCj4gPiA+ID4gK8KgIMKgIMKgIMKgIMKgIHZvaWQgKmxvYyA9IGxvY2F0ZV94 c3RhdGVfZmVhdHVyZSAoY29udGV4dCwgZiwgJnNpemUpOw0KPiA+ID4gPiArwqAgwqAgwqAgwqAg wqAgaWYgKGxvYyAhPSBudWxscHRyICYmIHNpemUgPiAwKQ0KPiA+ID4gPiArwqAgwqAgwqAgwqAg wqAgwqAgbWVtc2V0IChsb2MsIDAsIHNpemUpOw0KPiA+ID4gPiArwqAgwqAgwqAgwqAgfQ0KPiA+ ID4gPiArwqAgwqAgwqAgwqAgfQ0KPiA+ID4gPiArwqAgwqAgfQ0KPiA+ID4gPsKgIMKgIMKgIH0p Ow0KPiA+ID4gPsKgIH0NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTI5Miw2ICszMTUsMTcgQEAgaTM4 Nl9wcmVwYXJlX3RvX3Jlc3VtZQ0KPiAod2luZG93c190aHJlYWRfaW5mbw0KPiA+ID4gPiAqdGgp DQo+ID4gPiA+DQo+ID4gPiA+wqAgwqAgwqAgwqAgdGgtPmRlYnVnX3JlZ2lzdGVyc19jaGFuZ2Vk ID0gZmFsc2U7DQo+ID4gPiA+wqAgwqAgwqAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICvCoCB3aW5k b3dzX3Byb2Nlc3Mud2l0aF9jb250ZXh0ICh0aCwgWyZdIChhdXRvICpjb250ZXh0KQ0KPiA+ID4g PiArwqAgwqAgew0KPiA+ID4gPiArwqAgwqAgwqAgRFdPUkQgZGVidWdfcmVnaXN0ZXJzID0NCj4g PiA+ID4gK1dpbmRvd3NDb250ZXh0PGRlY2x0eXBlKGNvbnRleHQpPjo6ZGVidWc7DQo+ID4gPiA+ ICvCoCDCoCDCoCBpZiAoeHN0YXRlX2ZlYXR1cmVzICE9IDANCj4gPiA+ID4gK8KgIMKgIMKgICYm IChjb250ZXh0LT5Db250ZXh0RmxhZ3MgJiB+ZGVidWdfcmVnaXN0ZXJzKSAhPSAwKQ0KPiA+ID4g PiArwqAgwqAgew0KPiA+ID4gPiArwqAgwqAgwqAgY29udGV4dC0+Q29udGV4dEZsYWdzIHw9IENP TlRFWFRfWFNUQVRFX0ZMQUc7DQo+ID4gPiA+ICvCoCDCoCDCoCBzZXRfeHN0YXRlX2ZlYXR1cmVz X21hc2sgKGNvbnRleHQsIHhzdGF0ZV9mZWF0dXJlcyk7DQo+ID4gPiA+ICvCoCDCoCB9DQo+ID4g PiA+ICvCoCDCoCB9KTsNCj4gPiA+ID7CoCB9DQo+ID4gPiA+DQo+ID4gPiA+wqAgc3RhdGljIHZv aWQNCj4gPiA+ID4gQEAgLTQ3Nyw3ICs1MTEsNyBAQCBpc19zZWdtZW50X3JlZ2lzdGVyIChpbnQg cikNCj4gPiA+ID4NCj4gPiA+ID7CoCB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250ZXh0Pg0KPiA+ID4g PsKgIHN0YXRpYyBjaGFyICoNCj4gPiA+ID4gLWdldF9jb250ZXh0X3JlZ19wdHIgKENvbnRleHQg KmNvbnRleHQsIGludCByKQ0KPiA+ID4gPiArZ2V0X2NvbnRleHRfcmVnX3B0ciAoQ29udGV4dCAq Y29udGV4dCwgaW50IHIsIGNvbnN0IHRhcmdldF9kZXNjDQo+ID4gPiA+ICsqdGRlc2MpDQo+ID4g PiA+wqAgew0KPiA+ID4gPsKgIMKgIGNvbnN0IGludCAqbWFwcGluZ3M7DQo+ID4gPiA+wqAgwqAg aW50IG1hcHBpbmdzX2NvdW50Ow0KPiA+ID4gPiBAQCAtNDk0LDkgKzUyOCwyMSBAQCBnZXRfY29u dGV4dF9yZWdfcHRyIChDb250ZXh0ICpjb250ZXh0LCBpbnQgcikNCj4gPiA+ID7CoCDCoCDCoCDC oCBtYXBwaW5nc19jb3VudCA9IHNpemVvZiAoaTM4Nl9tYXBwaW5ncykgLyBzaXplb2YNCj4gPiA+ ID4oaTM4Nl9tYXBwaW5nc1swXSk7DQo+ID4gPiA+wqAgwqAgwqAgfQ0KPiA+ID4gPg0KPiA+ID4g PiArwqAgYm9vbCBhbWQ2NCA9IHJlZ2lzdGVyX3NpemUgKHRkZXNjLCAwKSA9PSA4Ow0KPiA+ID4N Cj4gPiA+IFRoZXJlIGlzIGFscmVhZHkgYW4gIiBpZiAoIXdpbmRvd3NfcHJvY2Vzcy53b3c2NF9w cm9jZXNzKSIgYSBmZXcgbGluZXMNCj4gYWJvdmUuDQo+ID4gPiBXb3VsZG4ndCBpdCBtYWtlIHNl bnNlIHRvIG1vdmUgdGhlICJib29sIGFtZDY0IiBpbiB0aGUgaWZkZWYgYmxvY2tzDQo+ID4gPiBh bmQgYXNzaWduIGFjY29yZGluZ2x5Pw0KPiANCj4gWWVzLCBJIGFncmVlLg0KPiANCj4gDQo+ID4g PiA+ICvCoCBpbnQgeW1tMGhfcmVnbnVtOw0KPiA+ID4gPiArwqAgY29uc3QgaW50IG51bV94bW1f cmVnaXN0ZXJzID0gYW1kNjQgPyAxNiA6IDg7DQo+ID4gPiA+ICsNCj4gPiA+ID7CoCDCoCBjaGFy ICpjb250ZXh0X29mZnNldDsNCj4gPiA+ID7CoCDCoCBpZiAociA8IG1hcHBpbmdzX2NvdW50KQ0K PiA+ID4gPsKgIMKgIMKgIGNvbnRleHRfb2Zmc2V0ID0gKGNoYXIgKikgY29udGV4dCArIG1hcHBp bmdzW3JdOw0KPiA+ID4gPiArwqAgZWxzZSBpZiAoKHhzdGF0ZV9mZWF0dXJlcyAmIFg4Nl9YU1RB VEVfQVZYKSAhPSAwDQo+ID4gPiA+ICvCoCDCoCDCoCAmJiByID49ICh5bW0waF9yZWdudW0gPSBm aW5kX3JlZ25vICh0ZGVzYywgInltbTBoIikpDQo+ID4gPiA+ICvCoCDCoCDCoCAmJiByIDwgeW1t MGhfcmVnbnVtICsgbnVtX3htbV9yZWdpc3RlcnMpDQo+ID4gPiA+ICvCoCDCoCB7DQo+ID4gPiA+ ICvCoCDCoCDCoCBjb250ZXh0X29mZnNldCA9IChjaGFyICopIGxvY2F0ZV94c3RhdGVfZmVhdHVy ZQ0KPiA+ID4gPiArwqAgwqAgKGNvbnRleHQsIFg4Nl9YU1RBVEVfQVZYX0lELCBOVUxMKTsNCj4g PiA+ID4gK8KgIMKgIMKgIGNvbnRleHRfb2Zmc2V0ICs9IDE2ICogKHIgLSB5bW0waF9yZWdudW0p Ow0KPiA+ID4gPiArwqAgwqAgfQ0KPiA+ID4gPsKgIMKgIGVsc2UNCj4gPiA+ID7CoCDCoCDCoCBn ZGJfYXNzZXJ0X25vdF9yZWFjaGVkICgiaW52YWxpZCByZWdpc3RlciBudW1iZXIgJWQiLCByKTsN Cj4gPiA+ID4NCj4gPiA+ID4gQEAgLTUxMCw3ICs1NTYsNyBAQCBpMzg2X2ZldGNoX2luZmVyaW9y X3JlZ2lzdGVyIChzdHJ1Y3QgcmVnY2FjaGUNCj4gPiA+ID4qcmVnY2FjaGUswqAgew0KPiA+ID4g PsKgIMKgIGNoYXIgKmNvbnRleHRfb2Zmc2V0ID0gd2luZG93c19wcm9jZXNzLndpdGhfY29udGV4 dCAodGgsIFsmXQ0KPiA+ID4gPihhdXRvDQo+ID4gPiA+ICpjb250ZXh0KQ0KPiA+ID4gPsKgIMKg IMKgIHsNCj4gPiA+ID4gLcKgIMKgIMKgIHJldHVybiBnZXRfY29udGV4dF9yZWdfcHRyIChjb250 ZXh0LCByKTsNCj4gPiA+ID4gK8KgIMKgIMKgIHJldHVybiBnZXRfY29udGV4dF9yZWdfcHRyIChj b250ZXh0LCByLCByZWdjYWNoZS0+dGRlc2MpOw0KPiA+ID4gPsKgIMKgIMKgIH0pOw0KPiA+ID4g Pg0KPiA+ID4gPsKgIMKgIC8qIEdEQiB0cmVhdHMgc29tZSByZWdpc3RlcnMgYXMgMzItYml0LCB3 aGVyZSB0aGV5IGFyZSBpbiBmYWN0DQo+ID4gPiA+b25seSAgQEAgLTUzOCw3ICs1ODQsNyBAQCBp Mzg2X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVyIChzdHJ1Y3QNCj4gPiA+ID5yZWdjYWNoZSAgKnJl Z2NhY2hlLMKgIHsNCj4gPiA+ID7CoCDCoCBjaGFyICpjb250ZXh0X29mZnNldCA9IHdpbmRvd3Nf cHJvY2Vzcy53aXRoX2NvbnRleHQgKHRoLCBbJl0NCj4gPiA+ID4oYXV0bw0KPiA+ID4gPiAqY29u dGV4dCkNCj4gPiA+ID7CoCDCoCDCoCB7DQo+ID4gPiA+IC3CoCDCoCDCoCByZXR1cm4gZ2V0X2Nv bnRleHRfcmVnX3B0ciAoY29udGV4dCwgcik7DQo+ID4gPiA+ICvCoCDCoCDCoCByZXR1cm4gZ2V0 X2NvbnRleHRfcmVnX3B0ciAoY29udGV4dCwgciwgcmVnY2FjaGUtPnRkZXNjKTsNCj4gPiA+ID7C oCDCoCDCoCB9KTsNCj4gPiA+ID4NCj4gPiA+ID7CoCDCoCAvKiBHREIgdHJlYXRzIHNvbWUgcmVn aXN0ZXJzIGFzIDMyLWJpdCwgd2hlcmUgdGhleSBhcmUgaW4gZmFjdA0KPiA+ID4gPm9ubHkgIEBA IC01NzEsMTQgKzYxNywxNyBAQCBpMzg2X2FyY2hfc2V0dXAgKHZvaWQpwqAgew0KPiA+ID4gPsKg IHRhcmdldF9kZXNjX3VwIHRkZXNjOw0KPiA+ID4gPg0KPiA+ID4gPiArwqAgRFdPUkQ2NCB4Y3Iw ID0geHN0YXRlX2ZlYXR1cmVzOw0KPiA+ID4gPiArwqAgaWYgKHhjcjAgPT0gMCkNCj4gPiA+ID4g K8KgIMKgIHhjcjAgPSBYODZfWFNUQVRFX1NTRV9NQVNLOw0KPiA+ID4gPiArDQo+ID4gPiA+wqAg I2lmZGVmIF9feDg2XzY0X18NCj4gPiA+ID4gLcKgIHRkZXNjID0gYW1kNjRfY3JlYXRlX3Rhcmdl dF9kZXNjcmlwdGlvbiAoWDg2X1hTVEFURV9TU0VfTUFTSywNCj4gPiA+ID5mYWxzZSwNCj4gPiA+ ID4gLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGZhbHNlLCBmYWxzZSk7DQo+ID4g PiA+ICvCoCB0ZGVzYyA9IGFtZDY0X2NyZWF0ZV90YXJnZXRfZGVzY3JpcHRpb24gKHhjcjAsIGZh bHNlLCBmYWxzZSwNCj4gPiA+ID4gK2ZhbHNlKTsNCj4gPiA+ID7CoCDCoCBpbml0X3RhcmdldF9k ZXNjICh0ZGVzYy5nZXQgKCksIGFtZDY0X2V4cGVkaXRlX3JlZ3MsDQo+ID4gPiA+V0lORE9XU19P U0FCSSk7DQo+ID4gPiA+wqAgwqAgd2luMzJfdGRlc2MgPSBzdGQ6Om1vdmUgKHRkZXNjKTsNCj4g PiA+ID7CoCAjZW5kaWYNCj4gPiA+ID4NCj4gPiA+ID4gLcKgIHRkZXNjID0gaTM4Nl9jcmVhdGVf dGFyZ2V0X2Rlc2NyaXB0aW9uIChYODZfWFNUQVRFX1NTRV9NQVNLLA0KPiA+ID4gPiBmYWxzZSwg ZmFsc2UpOw0KPiA+ID4gPiArwqAgdGRlc2MgPSBpMzg2X2NyZWF0ZV90YXJnZXRfZGVzY3JpcHRp b24gKHhjcjAsIGZhbHNlLCBmYWxzZSk7DQo+ID4gPiA+wqAgwqAgaW5pdF90YXJnZXRfZGVzYyAo dGRlc2MuZ2V0ICgpLCBpMzg2X2V4cGVkaXRlX3JlZ3MsDQo+ID4gPiA+V0lORE9XU19PU0FCSSk7 ICAjaWZkZWYgX194ODZfNjRfXw0KPiA+ID4gPsKgIMKgIHdvdzY0X3dpbjMyX3RkZXNjID0gc3Rk Ojptb3ZlICh0ZGVzYyk7IGRpZmYgLS1naXQNCj4gPiA+ID5hL2dkYnNlcnZlci93aW4zMi1sb3cu Y2MgYi9nZGJzZXJ2ZXIvd2luMzItbG93LmNjIGluZGV4DQo+ID4gPiA+NzYyOWJlY2EyMTMuLjVj Y2RjODlhN2VmIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9nZGJzZXJ2ZXIvd2luMzItbG93LmNjDQo+ ID4gPiA+ICsrKyBiL2dkYnNlcnZlci93aW4zMi1sb3cuY2MNCj4gPiA+ID4gQEAgLTMzLDYgKzMz LDcgQEANCj4gPiA+ID7CoCAjaW5jbHVkZSA8cHJvY2Vzcy5oPg0KPiA+ID4gPsKgICNpbmNsdWRl ICJnZGJzdXBwb3J0L2dkYl90aWxkZV9leHBhbmQuaCINCj4gPiA+ID7CoCAjaW5jbHVkZSAiZ2Ri c3VwcG9ydC9jb21tb24taW5mZXJpb3IuaCINCj4gPiA+ID4gKyNpbmNsdWRlICJ0ZGVzYy5oIg0K PiA+ID4gPg0KPiA+ID4gPsKgIHVzaW5nIG5hbWVzcGFjZSB3aW5kb3dzX25hdDsNCj4gPiA+ID4N Cj4gPiA+ID4gQEAgLTQyNiw4ICs0MjcsOSBAQCBjaGlsZF9mZXRjaF9pbmZlcmlvcl9yZWdpc3Rl cnMgKHN0cnVjdA0KPiA+ID4gPnJlZ2NhY2hlICAqcmVnY2FjaGUsIGludCByKQ0KPiA+ID4gPsKg IMKgIGludCByZWdubzsNCj4gPiA+ID7CoCDCoCB3aW5kb3dzX3RocmVhZF9pbmZvICp0aCA9IHdp bmRvd3NfcHJvY2Vzcy5maW5kX3RocmVhZA0KPiA+ID4gPiAoY3VycmVudF90aHJlYWQtDQo+ID4g PiA+ID5pZCk7DQo+ID4gPiA+wqAgwqAgd2luMzJfcmVxdWlyZV9jb250ZXh0ICh0aCk7DQo+ID4g PiA+IC3CoCBpZiAociA9PSAtMSB8fCByID4gTlVNX1JFR1MpDQo+ID4gPiA+IC3CoCDCoCBjaGls ZF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMgKHJlZ2NhY2hlLCBOVU1fUkVHUyk7DQo+ID4gPg0K PiA+ID4gSUlVQyB0aGlzIHdhcyB0aGUgb25seSB1c2Ugb2YgdGhlIE5VTV9SRUdTIGRlZmluZS7C oCBXZSBjYW4gcmVtb3ZlIGl0Lg0KPiA+DQo+ID4gWWVzLCBJIGFncmVlLiBXb3VsZCB5b3UgbWlu ZCBleHBsYWluaW5nIHdoeSB3ZSBkb24ndCBuZWVkIHRoaXMgY2hlY2sNCj4gPiBhbnltb3JlLCB0 b28gPyA6KSBJIGRvbid0IHVuZGVyc3RhbmQgaXQgeWV0LCB1bmZvcnR1bmF0ZWx5LiBXYXMgaXQg bmVjZXNzYXJ5DQo+IGJlZm9yZSBvciBpcyB0aGlzIGR1ZSB0byBBVlg/DQo+IA0KPiBJIGRvbid0 IHRoaW5rIHRoZSBjaGVjayB3YXMgbmVjZXNzYXJ5IGJlZm9yZSBBVlguDQo+IEJ1dCB3aXRoIEFW WCBpdCBkb2Vzbid0IHdvcmssIGJlY2F1c2UgTlVNX1JFR1MgaXMgdGhlIG51bWJlciBvZiBmaXgN Cj4gcmVnaXN0ZXJzLCBzbyBmb3IgYW55IEFWWCByZWdpc3RlciBpdCB3b3VsZCBnbyB0byB0aGUg J2Vsc2UnIHBhcnQuDQo+IA0KPiANCj4gPiA+IFNhbWUgZm9yICIgaTM4Nl93aW4zMl9udW1fcmVn cyAodm9pZCkiIGFuZCAiYWFyY2g2NF93aW4zMl9udW1fcmVncw0KPiAoKSIuDQo+ID4gPiBUaGlz IGFsbG93cyByZW1vdmluZyB0aGUgbnVtX3JlZ3MgaG9vayBpbiB3aW4zMl90YXJnZXRfb3BzLg0K PiA+DQo+ID4gPiA+ICvCoCBpZiAociA9PSAtMSkNCj4gPiA+ID4gK8KgIMKgIGNoaWxkX2ZldGNo X2luZmVyaW9yX3JlZ2lzdGVycyAocmVnY2FjaGUsDQo+ID4gPiA+ICvCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCByZWdjYWNoZS0+dGRlc2MtPnJlZ19kZWZzLnNpemUgKCkpOw0KPiA+ID4g PsKgIMKgIGVsc2UNCj4gPiA+ID7CoCDCoCDCoCBmb3IgKHJlZ25vID0gMDsgcmVnbm8gPCByOyBy ZWdubysrKQ0KPiA+ID4gPsKgIMKgIMKgIMKgICgqdGhlX2xvd190YXJnZXQuZmV0Y2hfaW5mZXJp b3JfcmVnaXN0ZXIpIChyZWdjYWNoZSwgdGgsDQo+ID4gPiA+cmVnbm8pOyBAQCAtNDQxLDggKzQ0 Myw5IEBAIGNoaWxkX3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyAoc3RydWN0DQo+ID4gPiA+cmVn Y2FjaGUgKnJlZ2NhY2hlLCBpbnQgcikNCj4gPiA+ID7CoCDCoCBpbnQgcmVnbm87DQo+ID4gPiA+ wqAgwqAgd2luZG93c190aHJlYWRfaW5mbyAqdGggPSB3aW5kb3dzX3Byb2Nlc3MuZmluZF90aHJl YWQNCj4gPiA+ID4gKGN1cnJlbnRfdGhyZWFkLQ0KPiA+ID4gPiA+aWQpOw0KPiA+ID4gPsKgIMKg IHdpbjMyX3JlcXVpcmVfY29udGV4dCAodGgpOw0KPiA+ID4gPiAtwqAgaWYgKHIgPT0gLTEgfHwg ciA9PSAwIHx8IHIgPiBOVU1fUkVHUykNCj4gPiA+ID4gLcKgIMKgIGNoaWxkX3N0b3JlX2luZmVy aW9yX3JlZ2lzdGVycyAocmVnY2FjaGUsIE5VTV9SRUdTKTsNCj4gPiA+ID4gK8KgIGlmIChyID09 IC0xKQ0KPiA+ID4gPiArwqAgwqAgY2hpbGRfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChyZWdj YWNoZSwNCj4gPiA+ID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJlZ2NhY2hlLT50 ZGVzYy0+cmVnX2RlZnMuc2l6ZSAoKSk7DQo+ID4NCj4gPiBJIGFzc3VtZSByZW1vdmluZyByID09 IDAgaXMgbm90IHJlbGF0ZWQgdG8gQVZYIHJlZ2lzdGVyIHN1cHBvcnQgYW5kIGp1c3QgYQ0KPiBj bGVhbnVwLCByaWdodD8NCj4gPiBDb3VsZCB3ZSBtYWtlIGl0IGEgc2VwYXJhdGUgY2xlYW51cCBw YXRjaCAod2l0aCByZWFzb24pPw0KPiA+DQo+ID4gSSBrbm93IGl0IHNlZW1zIGxpa2UgYSBzdXBl ciB0aW55IG5pdCwgYnV0IGl0IHdvdWxkIGhlbHAgdG8gdW5kZXJzdGFuZA0KPiA+IHdoeSB0aGF0 IGtpbmQgb2YgcmVmYWN0b3JpbmcvY2xlYW51cCBpcyBuZWNlc3NhcnkgKGUuZy4gZHVlIHRvIEFW WCBvciBub3QpLg0KPiANCj4gSSByZW1vdmVkIHIgPT0gMCBiZWNhdXNlIGl0IHdhc24ndCB0aGVy ZSBpbiBjaGlsZF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMgZWl0aGVyLA0KPiBhbmQgSSBkaWRu J3QgbGlrZSB0aGUgdGhpcyBpbmNvbnNpc3RlbmN5Lg0KDQpPaywgYW55IGNoYW5nZSB3aGljaCBp cyBub3QgcmVsYXRlZCB0byB0aGUgQVZYIHBhdGNoIHNob3VsZCBiZSBpbiBhIHNlcGFyYXRlDQpj bGVhbnVwIHBhdGNoLg0KDQpUaGFua3MsDQpDaHJpc3RpbmENCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCkludGVsIERldXRzY2hsYW5kIEdtYkggDQoNClJlZ2lzdGVy ZWQgQWRkcmVzczogRG9ybmFjaGVyIFN0cmFzc2UgMSwgODU2MjIgRmVsZGtpcmNoZW4sIEdlcm1h bnkgDQoNClRlbDogKzQ5ICg4OSkgOTkxNDMtMCANCg0Kd3d3LmludGVsLmRlIA0KDQpNYW5hZ2lu ZyBEaXJlY3RvcnM6IENhbmRpY2UgTW9vcmUsIEplZmZyZXkgU2NobmVpZGVybWFuLCBSYW1hY2hh bmRyYW4gU2l0YXJhbWFuDQoNCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2FyZDog U29uamEgUGllcmVyDQoNClJlZ2lzdGVyZWQgU2VhdDogTXVuaWNoIENvbW1lcmNpYWwgUmVnaXN0 ZXIgQjogQW10c2dlcmljaHQgTXVuaWNoIEhSQiAxODY5MjgNCg0KVGhpcyBlLW1haWwgYW5kIGFu eSBhdHRhY2htZW50cyBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgbWF0ZXJpYWwgZm9yDQp0aGUg c29sZSB1c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBkaXN0 cmlidXRpb24NCmJ5IG90aGVycyBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiBJZiB5b3UgYXJlIG5v dCB0aGUgaW50ZW5kZWQNCnJlY2lwaWVudCwgcGxlYXNlIGNvbnRhY3QgdGhlIHNlbmRlciBhbmQg ZGVsZXRlIGFsbCBjb3BpZXMuCg==