From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id oYLpEU2ljWoyaj8AWB0awg (envelope-from ) for ; Tue, 25 Aug 2026 10:23:09 -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=eQrZnDVJ; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 350451E0A3; Tue, 25 Aug 2026 10:23:09 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id D2B1B1E033 for ; Tue, 25 Aug 2026 10:23:04 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 066B64BA23E5 for ; Tue, 25 Aug 2026 14:23:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 066B64BA23E5 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=eQrZnDVJ Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) by sourceware.org (Postfix) with ESMTPS id 096E94BA2E2A for ; Tue, 25 Aug 2026 14:22:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 096E94BA2E2A 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 096E94BA2E2A Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=192.198.163.17 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1787667749; cv=fail; b=k6bRKQkcCcIYsdAlCuu/sSy/g/GapzweWxgmzKXwPJ0W6cqcznmWlmg8r/3dIzX9RtCLCSy2IWc85UlT3xxmaCN3Nn+ZSc2NhigJ+vhhENpMVPcd00RNMCQefM3rYhYx34gXW8iS8hgAOO802jPOBpaK+tHvzP3yKeRVNCk4hXY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1787667749; c=relaxed/simple; bh=Y2x1/m7Qk0wmRkJOkm4/MKED9UmuP0+yqBYXg3+B5A4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=sBJKPHHDVSowWghTu4CFpWRFKktBKozqf6p7UIlWtidJ9MCSicFTnwl2Q+dVfcZx4vKncuRl6Bna47A9gmSxB8UIhqwry5xnWpMJoPT1IDd8y+ZU4VqLd166bbynMeWIAB1u+Myq2V0WBtjcuNnVMOCTVQtLIVHSzmvQQDADZ1g= 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=eQrZnDVJ DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 096E94BA2E2A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1787667749; x=1819203749; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=Y2x1/m7Qk0wmRkJOkm4/MKED9UmuP0+yqBYXg3+B5A4=; b=eQrZnDVJBk8bkB/VTONCnjmeJliW975ojS44O4Hg8jXuxGlq+9bZy9QF pBdzbJERw5sj5Fgpymq7LAGjk967oj4Aqu1eiljac7egpRWrOifcEDEdR EOZ2IqE/2ymRMo1K1+kaStYRH1ogE8JbbLMDktmiXm6Pl8w5ZCbJA/ak9 pKqyVaaRoHtSuuqWGmmsb0ZPKOgwIpm4vKd2GXQayf30Iof68QXcqsUHY N0hlXCelcTo6So7WuCJLF7DqdYqPLgozCSJ6GokTyOgOp5qkDJ562eXP1 7Emm0PFgp9OMgKxD8ZBW6TR6drseVi5nbQx3hs32hPq1AFwKUoFDz/Vqb w==; X-CSE-ConnectionGUID: rFAkm16rSDybyNs2wCO+cQ== X-CSE-MsgGUID: hdSxhkbKTDa7nHOQ8nfjjw== X-IronPort-AV: E=McAfee;i="6800,10657,11885"; a="88009349" X-IronPort-AV: E=Sophos;i="6.25,242,1779174000"; d="scan'208";a="88009349" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2026 07:22:26 -0700 X-CSE-ConnectionGUID: sq4pFVMZS3CPtPL1WgFLQg== X-CSE-MsgGUID: 9CqsfQbiSQKtikTn7025AA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,242,1779174000"; d="scan'208";a="266000851" Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90]) by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2026 07:22:26 -0700 Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) by fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Tue, 25 Aug 2026 07:22:25 -0700 Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45 via Frontend Transport; Tue, 25 Aug 2026 07:22:25 -0700 Received: from CH4PR04CU002.outbound.protection.outlook.com (40.107.201.16) by edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Tue, 25 Aug 2026 07:22:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e2bT1Lu3UlDw3s7C0zoF2I/CB+O3P5+iezRlTwV5qL16OkceHKLaT4TcUUhbvAJl4zVpiofcUdsCwUXWFbfgrvSeSQoJ8V2IRAsfxD34VIzjiec0MpowDWK3CwULSI3FH7jjXHXjEZ42jnIHyFlgA8dxcC5KRKRK/fu/p4Le8OO+xjuAHj1nCS1RibmQKDlhIYr1DHPTGnK9y1MRnlch51yJGtITMt7JINRr3sKRbtxzbEhF5qc6qFYlZWcCrZ6m8kzi/6DDghERuJp+ZNGrVQEfwrtXCbTHC+a3RoIzTpULeO22dqOdR3E8K5DN2jPkR+xzn5ccMaFp8g0Od+Vq2g== 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=R9KZ8JExQZWkEZjlJ2Xe2UzKEySZkI82+ixI100TBqk=; b=OUC/3OLMZUVYun15b8tr3AMsp3wGf0FEXFEDgT048CQYxL4O/poY2Syi4Z/TCISUtxFlbpU4yX/WklIS4aFdt6GyGh6qIChKzcU9RVGGiWdrAh1coDqz3m+Ub6WqP14FnAC3x0EMgduB2Yy8CDPtgUmX+SxFOtwZx6glWO/2dLPFiJBWBRdNxpZDClbI0Kpw0JkKAkSlLV3PHhGF534m5jQxLdeYc1LJESV91FXwAfDs8iK09g8+N8vqUdVOZPF+nAWSgzPo8wK9LcbjpVo3mjJK9reVUTB6TGCgvMjZKTooFqAR/q3NXrZXT5gnNJgC6YfJP+p1/5AC3vFrxKa7oQ== 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 SJ0PR11MB4815.namprd11.prod.outlook.com (2603:10b6:a03:2dd::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.12; Tue, 25 Aug 2026 14:22:22 +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.0339.012; Tue, 25 Aug 2026 14:22:22 +0000 From: "Joos, Christina" To: "Joos, Christina" , "gdb-patches@sourceware.org" CC: "keiths@redhat.com" Subject: RE: [PATCH 1/1] gdb, gdbserver: Add Intel APX register support Thread-Topic: [PATCH 1/1] gdb, gdbserver: Add Intel APX register support Thread-Index: AQHdNJ0k2SLUnh/ZD0eKKn4uFRJmtQ== Date: Tue, 25 Aug 2026 14:22:22 +0000 Message-ID: References: <20260725105335.2664219-1-christina.joos@intel.com> <20260725105335.2664219-2-christina.joos@intel.com> In-Reply-To: <20260725105335.2664219-2-christina.joos@intel.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_|SJ0PR11MB4815:EE_ x-ms-office365-filtering-correlation-id: e334cde8-e4ac-4d21-ec59-08df02b44731 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|10070799003|376014|1800799024|23010399003|366016|38070700021|13003099007|6133799003|11063799006|5023799004|3023799007|56012099006|10067099003|4143699003|18002099003|22082099003; x-microsoft-antispam-message-info: rkbeliln14uq5xFthCrGPJjmZ7WcrxBGTzFeDmk+JjPC2OGy0yByJrXq+auMAP/22ucuZBT0hL6lTrKowdB2mkuvzZG/f84Be09OaS2YfmzSDaL4x1aImoehX+jB2WSe+rSkzhaJIwl8qPWoGE97TaxTUAYB81gbzhjWHSK1CPVU5OieyLaVR5NlyRTpSn3G1F37RFjvR7xFgBOeD/nrUibmTTsBS1eAiP6HGgm659NOv5hY/+NdUnHu51vUhxVWSpTMJvKljmDaLxQLrZyVkHJuC4uwHMDKEeRw618/Yw3iKBivZW+QIo6w4gjfCIJtSX/66kGogyahY5KzSrXrwmp5taodMOeqONRIGMIdwvhcwOT3FuKxZqjnAyNyv2B+oWKTeXi2D5gyjZa4CPGS4wAN60lOdxOKJlN14ne9EIHEEvwMDqyv4JDPv095WgED71srUe/kVOoq2XYDVbjfR6D60yzNICctRKxf0bmDuWC58sZBQY81wD+t0Dox4OR7ey4ZwqQ5H1hoY/cGmGxQOTRmhJnM4wQcPppDUGRSTd/R+DYf7n6WLUdb9cF6gvkuK/odMTSyNXfDSZ7uTitfr4Ikfxdy61EooHuLi4zRCH9vI5XN79YMXTDePRrlJy7iMM2Gmk9IhBNojUX9U9YTEzM4uG0uutsEQA/dx9AoOjg= 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)(10070799003)(376014)(1800799024)(23010399003)(366016)(38070700021)(13003099007)(6133799003)(11063799006)(5023799004)(3023799007)(56012099006)(10067099003)(4143699003)(18002099003)(22082099003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cWRmMkhHSlhVbHFoTDExUEQrbk8vcEhoRVZBdlF6UTZUVXlGOHVuWUZ0ZWFH?= =?utf-8?B?N2NFdkdRL0phQVgyclNBUndMdk1zNkhXZ2RJUzVDeHR6TGttZXZSSnRsQ0ZJ?= =?utf-8?B?eFQ3aUduRytFVVFjRFh0OHhEMC9aT3VoWVFCeXRiRGtjaEdiQlpYNE1OQjlK?= =?utf-8?B?TkJEV0FIOUlzMzhGR2NuQXMxQWY1cWUzZEZvN3ZmbjVTVTNzNmdVWGVQdVJn?= =?utf-8?B?a0l4Wkpqd1RCOGhobzFiRmdHT1ZRZjU5M3dxYy9NMHBLb3ZTSWozenFGN0lM?= =?utf-8?B?ZGV0SXl4bTJtMWJ2cmU1UDJQbG1OUlN5VHdBWXdPbVM3WVY3OVhBRmlwOFZX?= =?utf-8?B?VHh5ZWc1VkJrWjEwKy9pb2hWVUpQUXpwV0JuOFFNUmY2anpLZDJ3L3Ixbkph?= =?utf-8?B?Vy8yaW5oWEVQV2IxTjMyMnNmb0hGNUZDeGF1NHNweDh4UkVkZVhXbFBZQ3Z1?= =?utf-8?B?aGxVTnhoMUlYeDFoWS9IMkhLL3FOd2FOR0dTdG92R21WTjJ3Qmtud1U1K1BK?= =?utf-8?B?UjFmY0RrZWxHMDQzWjlYVkpRS1FiTHVlUGtDd3dzT2hTZWxkVllLcmRGNHJj?= =?utf-8?B?OUVjbWdRbzdUVDlTek9GL29BY0tVR0RLc1pET01SY3hQMU1vR1FWdlN4UGdl?= =?utf-8?B?ZzMrbEtOc2hIWUc1Nmk5bjRQVzhLdUJVUzdReU04aU9zMUlUT2RNYVphbi9h?= =?utf-8?B?MEZ6bzJ6a2ZEYllYL1JHVWd0MFBuUlpOZWxYUzBubU5VS1pvQmg0cEVETm5T?= =?utf-8?B?STBSaDBodDB6c3M5VHV4NHdiR0xMdEVCUk5WQ0d2cEpkUVB6emlzYmRKVUZZ?= =?utf-8?B?cFB3cmJRaWw3UForWnJJT09lWlpYK25yVFNVUnJCR2R0UFg4L3pTbWFrWTRy?= =?utf-8?B?dmdBaUZxVGNjWXF2SWpkeTI4Z3h6Zjdxc3E4c3dKa1VSR3ZFUzdmbHBrT0Yw?= =?utf-8?B?NjZQeEF3M3RaN1AwS2w4clQ3VzNkeTRYM1pISUpGVk1FTW01bmJwZmxndHdF?= =?utf-8?B?RGtQQUl4ejJSakhyaUFnaEVEMyswUGovMGp6cUZIdlVNZWNUOXhoVm12T0x1?= =?utf-8?B?d1FkQ3ZhVmhXdk5peHc4Ykw3R0liV3NGSTBsTGs5Y3RYVjdpcFN2NzluWjhT?= =?utf-8?B?TkRsK3h2ZURMYWxLcWxsMG1jcWo2aDk0aEN1ZTR3VDFRNmxNNGhVRVZObFdy?= =?utf-8?B?ck14eGpVR1VzS0FqSVVMbzhXRjJ3OE1xaTQ5Ti9ER0VNWlpuM0pZaVQxMTBK?= =?utf-8?B?NWRJZDU1c1R2NFpDeGdENm9wT29ybjBvcDZvT2pNTlVJN2EzcEc1K2ExRk5Z?= =?utf-8?B?WU1VWWN1NHFsMUhkR2IzdGVMMFc5TE9ya1JtVFhsKzh4c1Z2Z2RzbVNoNzZh?= =?utf-8?B?Ni9EY0VVM1JudjJHL1dGbWtoekNsdlpwWm9TZ2VBSGJCbW01eTRJNDBHUGpV?= =?utf-8?B?czlVZ01FUnpkSWlKZnZDOG9VTUx4Y2ZmNjljSlNmYjN3SURoT0Z0V1RPb1Zw?= =?utf-8?B?YkhMb3NrY3JpRlh2UTUwZ3NzUnFoMmh1REdvTGhHanIzYm0wV0FhZW9rcG1t?= =?utf-8?B?RGNQYWtya1U2bWdaUUp4MGtJLzY1bEl3TWtkQ1VlQy8rVmQwajZBZkRoNE83?= =?utf-8?B?a2E0YmpGWmJsbkJjTU5CUTZpMDNVaEs4YUNoSGIxM3dMOEtaNm9FK1kxL1hW?= =?utf-8?B?ZHdLM05xV2l5MWZLajJ4bnNVQzBFRVZLVHFyckpkc05xY1RIQ1hrdjZUWm4w?= =?utf-8?B?d3BtZldkWmdmaGphNTJtM1k0b0lHVUVKOFNBUVVWdTJaYk01cWF6czhoR1pi?= =?utf-8?B?b1JGTVZtRjh6MC92b3lvUTJUem9KZG5hRVdmQjVQUml5djVDUHp2OWVOaUg1?= =?utf-8?B?ODB5YlVWc1h3NHl4VURlQVdzdURHYTNwMnlHL29WWG5JS0dqNWJoYkhHZFJy?= =?utf-8?B?Vk1RN1M4SGpxZTZMeXZpU0N2YmZmbU1ET2lILzIyOUE1Ukg0Qlh4MEU0d2lm?= =?utf-8?B?UEF1RitRTTVVVjRnbkRkUDJRdE1FN0pobHFEQWRZa0xlTHhzRlVDTHR3RWpl?= =?utf-8?B?OGtIdVRkbkpHb2h1R3dQV3Zxek9qbDkvckdVS25tbks2TVR5dE5VUjVCSmho?= =?utf-8?B?Q0tmK3hUM0Y5czhWNWVrc1hWdGRVSnhjRWpvU1RKbW9IYmxwVVpxNytPZ09D?= =?utf-8?B?NzZxUnVDL2tYNDREelArZXVpRGNNUEkyTnA4a3l4enRCY2phRS9aWEU3RjdB?= =?utf-8?B?Z0EwU1lKRnZQOGVFMURpUE9hbmtCczdLSVMvaGViWFZGSU1na1VmM2ZxQWRG?= =?utf-8?B?b002SHZycWEwaGJpUlV1c2pQRDRkWjl4b3NOTjB5VWh4SjkxbXIvRVNJREow?= =?utf-8?Q?zekBClQcaUtM5Umjk7TznQRCYeo6zvhaPBH7x7C94Mvg5?= x-ms-exchange-antispam-messagedata-1: gXb54WXta9ZJqg== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: bRW80hCCjVd12E0akP9GGgRJKAFfm6rr+6Sja7zAYEy9FIqnaTvWZSkgmbvNqNJKJeRseveX4EKxf7VIJkWPR1ERepSk84mRKEuPY6WALVZUkYSOQ2rRSx/E5dwI5i38nrYrc/+pDpW7q5BXtzOz3jgGijAmx454m3J4UOymxaG/1oVC84+7qx6Os2j2c5q4mb+r50HdO4Qf4fiZkHjeo26e2ufi7htNDE2d17VUzBqgUO48eFNK2/Hgln/ABS1QJN9OXpXTbKxwychcIdw4/tjMliTihj4QHZTyJWASEIL9raVDxW6izwMY49/XyyfVgVO99kGoJpAY6SWN42fYnA== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e334cde8-e4ac-4d21-ec59-08df02b44731 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2026 14:22:22.1404 (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: ey458aF+Fq/QgSdmMjEsIxdUOH0NAcbiRz3MlbDFqDAushMNEKgJtqjy1vZV61deMAcs4IJ7XxFutLIbKnybkeAIzFOLM9uPapKhMuwLa4w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4815 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaHJpc3RpbmEgSm9vcyA8Y2hy aXN0aW5hLmpvb3NAaW50ZWwuY29tPg0KPiBTZW50OiBTYW1zdGFnLCAyNS4gSnVsaSAyMDI2IDEy OjU0DQo+IFRvOiBnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZw0KPiBDYzoga2VpdGhzQHJlZGhh dC5jb20NCj4gU3ViamVjdDogW1BBVENIIDEvMV0gZ2RiLCBnZGJzZXJ2ZXI6IEFkZCBJbnRlbCBB UFggcmVnaXN0ZXIgc3VwcG9ydA0KPiANCj4gRnJvbTogIkguSi4gTHUiIDxoamwudG9vbHNAZ21h aWwuY29tPg0KPiANCj4gSW50ZWwgQWR2YW5jZWQgUGVyZm9ybWFuY2UgRXh0ZW5zaW9ucyAoQVBY KSBkb3VibGVzIHRoZSBudW1iZXIgb2YNCj4gZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycyAoR1BS cykgZnJvbSAxNiB0byAzMiAocjE2LXIzMSkuDQo+IA0KPiBUaG9zZSBuZXcgNjQtYml0IEV4dGVu ZGVkIEdQUnMgKEVHUFJzKSBkbyBub3QgY2hhbmdlIHRoZSBzaXplIG9mIHRoZQ0KPiBYU0FWRSBh cmVhLCBhcyB0aGV5IHRha2UgdXAgdGhlIHNwYWNlIGxlZnQgYmVoaW5kIGJ5IHRoZSBkZXByZWNh dGVkDQo+IE1QWCByZWdpc3RlcnMuDQo+IA0KPiBJbiBjb250cmFzdCB0byB0aGUgbGVnYWN5IEdQ UlMsIEVHUFJzIGFyZSBub3QgZW5hYmxlZCBieSBkZWZhdWx0IGluIDY0LWJpdA0KPiBtb2RlIGJ1 dCBhcmUgeGNyMCBlbmFibGVkIGJhc2VkIG9uIEFQWF9GIEludGVsIEFQWCBzdGF0ZS4gIERlZmlu ZQ0KPiBYODZfWFNUQVRFX0FQWF9GIHRvIHN1cHBvcnQgdGhpcyBuZXcgY29uZmlndXJhdGlvbi4N Cj4gDQo+IEFkZCBnZGIgYW5kIGdkYnNlcnZlciByZWdpc3RlcnMgc3VwcG9ydCBmb3IgdGhvc2Ug bmV3IDY0LWJpdCBFR1BScy4NCj4gQWxzbyBhZGQgYnl0ZSwgd29yZCBhbmQgZHdvcmQgcHNldWRv IHJlZ2lzdGVyIHN1cHBvcnQuDQo+IA0KPiBDby1BdXRob3JlZC1CeTogIENocmlzdGluYSBKb29z IDxjaHJpc3RpbmEuam9vc0BpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZ2RiL05FV1MgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCj4gIGdkYi9hbWQ2NC1saW51eC10 ZGVwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQo+ICBnZGIvYW1kNjQtdGRlcC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNjIgKysrKysrKysrKysrKystLS0tDQo+ ICBnZGIvYW1kNjQtdGRlcC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0K PiAgZ2RiL2FyY2gvYW1kNjQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsN Cj4gIGdkYi9hcmNoL3g4Ni1saW51eC10ZGVzYy1mZWF0dXJlcy5jICAgICAgICAgICB8ICAgMSAr DQo+ICBnZGIvZG9jL2dkYi50ZXhpbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUg Kw0KPiAgZ2RiL2ZlYXR1cmVzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsNCj4gIGdkYi9mZWF0dXJlcy9pMzg2LzY0Yml0LWFweC5jICAgICAgICAgICAgICAgICB8ICAy OSArKw0KPiAgZ2RiL2ZlYXR1cmVzL2kzODYvNjRiaXQtYXB4LnhtbCAgICAgICAgICAgICAgIHwg IDI2ICsrDQo+ICBnZGIvaTM4Ni10ZGVwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMzIgKystDQo+ICBnZGIvaTM4Ni10ZGVwLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjYgKysNCj4gIGdkYi9pMzg3LXRkZXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDEwNSArKysrKystDQo+ICBnZGIvaTM4Ny10ZGVwLmggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDYgKw0KPiAgZ2RiL25hdC94ODYteHN0YXRlLmMgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsNCj4gIGdkYi90YXJnZXQtZGVidWcuaCAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMSArDQo+ICBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWFw eC1jb3JlLmMgICAgICAgfCAgODggKysrKysrDQo+ICBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2Ft ZDY0LWFweC1jb3JlZmlsZS5jICAgfCAgNzEgKysrKysNCj4gIGdkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gvYW1kNjQtYXB4LWNvcmVmaWxlLmV4cCB8ICA2NyArKysrKw0KPiAgZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9hbWQ2NC1hcHguYyAgICAgICAgICAgIHwgIDY2ICsrKysrDQo+ICBnZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL2FtZDY0LWFweC5leHAgICAgICAgICAgfCAgNzcgKysrKysNCj4gIGdkYi90 ZXN0c3VpdGUvbGliL2dkYi5leHAgICAgICAgICAgICAgICAgICAgICB8ICA1OCArKysrDQo+ICBn ZGJzZXJ2ZXIvaTM4Ny1mcC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDMgKysrDQo+ ICBnZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYyAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0N Cj4gIGdkYnN1cHBvcnQveDg2LXhzdGF0ZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiAr LQ0KPiAgMjUgZmlsZXMgY2hhbmdlZCwgOTMxIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygt KQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi9mZWF0dXJlcy9pMzg2LzY0Yml0LWFweC5jDQo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL2ZlYXR1cmVzL2kzODYvNjRiaXQtYXB4LnhtbA0KPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYXB4LWNvcmUu Yw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYXB4 LWNvcmVmaWxlLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2FtZDY0LWFweC1jb3JlZmlsZS5leHANCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL2FtZDY0LWFweC5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9hbWQ2NC1hcHguZXhwDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1Mg Yi9nZGIvTkVXUw0KPiBpbmRleCA4ZjQwY2E1Y2IxMS4uNWIzYmExNTIxODggMTAwNjQ0DQo+IC0t LSBhL2dkYi9ORVdTDQo+ICsrKyBiL2dkYi9ORVdTDQo+IEBAIC0zLDYgKzMsMTAgQEANCj4gDQo+ ICAqKiogQ2hhbmdlcyBzaW5jZSBHREIgMTcNCj4gDQo+ICsqIFN1cHBvcnQgZm9yIEludGVsIEFQ WCByZWdpc3RlcnMgb24gYW1kNjQgR05VL0xpbnV4Lg0KPiArICBTdXBwb3J0IGRpc3BsYXlpbmcg YW5kIG1vZGlmeWluZyBJbnRlbCBBUFggcmVnaXN0ZXJzIChFeHRlbmRlZCBHUFJzDQo+ICsgICRy MTYgLSAkcjMxKSBpbmNsdWRpbmcgYnl0ZSwgd29yZCBhbmQgZHdvcmQgcHNldWRvIHJlZ2lzdGVy cy4NCj4gKw0KPiAgKiBTdXBwb3J0IGZvciB0aGUgQ29tbW9uIFRyYWNlIEZvcm1hdCAoQ1RGKSBo YXMgYmVlbiByZW1vdmVkLiAgR0RCIG5vdw0KPiAgICBzYXZlcyB0cmFjZSBpbmZvcm1hdGlvbiBl eGNsdXNpdmVseSBpbiBpdHMgb3duICJ0ZmlsZSIgZm9ybWF0Lg0KPiANCj4gZGlmZiAtLWdpdCBh L2dkYi9hbWQ2NC1saW51eC10ZGVwLmMgYi9nZGIvYW1kNjQtbGludXgtdGRlcC5jDQo+IGluZGV4 IDliMjNkYjcyYmJlLi44MWU2NmJlNzVjMSAxMDA2NDQNCj4gLS0tIGEvZ2RiL2FtZDY0LWxpbnV4 LXRkZXAuYw0KPiArKysgYi9nZGIvYW1kNjQtbGludXgtdGRlcC5jDQo+IEBAIC0xMTMsNiArMTEz LDggQEAgaW50IGFtZDY0X2xpbnV4X2dyZWdzZXRfcmVnX29mZnNldFtdID0NCj4gICAgLTEsIC0x LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLA0KPiAgICAtMSwJCQkJLyogUEtFWVMgcmVnaXN0ZXIg cGtydSAgKi8NCj4gICAgLTEsIAkJCQkvKiBDRVQgdXNlciBtb2RlIHJlZ2lzdGVyIFBMM19TU1Au ICAqLw0KPiArICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsICAgICAvKiByMTYgLi4u IHIzMS4gICovDQo+ICsgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwNCj4gDQo+ICAg IC8qIEVuZCBvZiBoYXJkd2FyZSByZWdpc3RlcnMgKi8NCj4gICAgMjEgKiA4LCAyMiAqIDgsCQkg ICAgICAvKiBmc19iYXNlIGFuZCBnc19iYXNlLiAgKi8NCj4gZGlmZiAtLWdpdCBhL2dkYi9hbWQ2 NC10ZGVwLmMgYi9nZGIvYW1kNjQtdGRlcC5jDQo+IGluZGV4IGE5ODJlNjEwNjQyLi4xOGI4ZjJh NGMwYiAxMDA2NDQNCj4gLS0tIGEvZ2RiL2FtZDY0LXRkZXAuYw0KPiArKysgYi9nZGIvYW1kNjQt dGRlcC5jDQo+IEBAIC02MSw2ICs2MSwzNiBAQA0KPiANCj4gIC8qIFJlZ2lzdGVyIGluZm9ybWF0 aW9uLiAgKi8NCj4gDQo+ICsvKiBOdW1iZXIgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycyB3 aXRob3V0IEFQWC4gICovDQo+ICsjZGVmaW5lIEFNRDY0X05VTV9HUFJTIDE2DQo+ICsNCj4gKy8q IE51bWJlciBvZiBsb3dlciBieXRlIHJlZ2lzdGVycyB3aXRob3V0IEFQWC4gICovDQo+ICsjZGVm aW5lIEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1MgQU1ENjRfTlVNX0dQUlMNCj4gKw0KPiArLyog TnVtYmVyIG9mIGJ5dGUgcmVnaXN0ZXJzIHdpdGhvdXQgQVBYLiAgKi8NCj4gKyNkZWZpbmUgQU1E NjRfTlVNX0JZVEVfUkVHUyAoQU1ENjRfTlVNX0xPV0VSX0JZVEVfUkVHUyArIDQpDQo+ICsNCj4g Ky8qIE51bWJlciBvZiB3b3JkIHJlZ2lzdGVycyB3aXRob3V0IEFQWC4gICovDQo+ICsjZGVmaW5l IEFNRDY0X05VTV9XT1JEX1JFR1MgQU1ENjRfTlVNX0dQUlMNCj4gKw0KPiArLyogTnVtYmVyIG9m IGR3b3JkIHJlZ2lzdGVycyB3aXRob3V0IEFQWC4gICovDQo+ICsjZGVmaW5lIEFNRDY0X05VTV9E V09SRF9SRUdTIEFNRDY0X05VTV9HUFJTDQo+ICsNCj4gKy8qIE51bWJlciBvZiBnZW5lcmFsIHB1 cnBvc2UgcmVnaXN0ZXJzIHdpdGggQVBYLiAgKi8NCj4gKyNkZWZpbmUgQU1ENjRfQVBYX05VTV9H UFJTIDMyDQo+ICsNCj4gKy8qIE51bWJlciBvZiBBUFggbG93ZXIgYnl0ZSByZWdpc3RlcnMuICAq Lw0KPiArI2RlZmluZSBBTUQ2NF9BUFhfTlVNX0xPV0VSX0JZVEVfUkVHUyBBTUQ2NF9BUFhfTlVN X0dQUlMNCj4gKw0KPiArLyogTnVtYmVyIG9mIEFQWCBieXRlIHJlZ2lzdGVycy4gICovDQo+ICsj ZGVmaW5lIEFNRDY0X0FQWF9OVU1fQllURV9SRUdTDQo+IChBTUQ2NF9BUFhfTlVNX0xPV0VSX0JZ VEVfUkVHUyArIDQpDQo+ICsNCj4gKy8qIE51bWJlciBvZiBBUFggd29yZCByZWdpc3RlcnMuICAq Lw0KPiArI2RlZmluZSBBTUQ2NF9BUFhfTlVNX1dPUkRfUkVHUyBBTUQ2NF9BUFhfTlVNX0dQUlMN Cj4gKw0KPiArLyogTnVtYmVyIG9mIEFQWCBkd29yZCByZWdpc3RlcnMuICAqLw0KPiArI2RlZmlu ZSBBTUQ2NF9BUFhfTlVNX0RXT1JEX1JFR1MgQU1ENjRfQVBYX05VTV9HUFJTDQo+ICsNCj4gIHN0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW1kNjRfcmVnaXN0ZXJfbmFtZXNbXSA9DQo+ICB7DQo+ ICAgICJyYXgiLCAicmJ4IiwgInJjeCIsICJyZHgiLCAicnNpIiwgInJkaSIsICJyYnAiLCAicnNw IiwNCj4gQEAgLTg3LDYgKzExNywxMiBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFtZDY0 X3ltbV9uYW1lc1tdID0NCj4gICAgInltbTEyIiwgInltbTEzIiwgInltbTE0IiwgInltbTE1Ig0K PiAgfTsNCj4gDQo+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFtZDY0X2FweF9uYW1lc1td ID0NCj4gK3sNCj4gKyAgInIxNiIsICJyMTciLCAicjE4IiwgInIxOSIsICJyMjAiLCAicjIxIiwg InIyMiIsICJyMjMiLA0KPiArICAicjI0IiwgInIyNSIsICJyMjYiLCAicjI3IiwgInIyOCIsICJy MjkiLCAicjMwIiwgInIzMSINCj4gK307DQo+ICsNCj4gIHN0YXRpYyBjb25zdCBjaGFyICogY29u c3QgYW1kNjRfeW1tX2F2eDUxMl9uYW1lc1tdID0NCj4gIHsNCj4gICAgInltbTE2IiwgInltbTE3 IiwgInltbTE4IiwgInltbTE5IiwNCj4gQEAgLTI1Miw3ICsyODgsMjAgQEAgc3RhdGljIGludCBh bWQ2NF9kd2FyZl9yZWdtYXBbXSA9DQo+ICAgIEFNRDY0X0swX1JFR05VTSArIDAsIEFNRDY0X0sw X1JFR05VTSArIDEsDQo+ICAgIEFNRDY0X0swX1JFR05VTSArIDIsIEFNRDY0X0swX1JFR05VTSAr IDMsDQo+ICAgIEFNRDY0X0swX1JFR05VTSArIDQsIEFNRDY0X0swX1JFR05VTSArIDUsDQo+IC0g IEFNRDY0X0swX1JFR05VTSArIDYsIEFNRDY0X0swX1JFR05VTSArIDcNCj4gKyAgQU1ENjRfSzBf UkVHTlVNICsgNiwgQU1ENjRfSzBfUkVHTlVNICsgNywNCj4gKw0KPiArICAvKiBSZXNlcnZlZC4g ICovDQo+ICsgIC0xLCAtMSwgLTEsIC0xLA0KPiArDQo+ICsgIC8qIHIxNi1yMzEuICAqLw0KPiAr ICBBTUQ2NF9SMTZfUkVHTlVNICsgMCwgQU1ENjRfUjE2X1JFR05VTSArIDEsDQo+ICsgIEFNRDY0 X1IxNl9SRUdOVU0gKyAyLCBBTUQ2NF9SMTZfUkVHTlVNICsgMywNCj4gKyAgQU1ENjRfUjE2X1JF R05VTSArIDQsIEFNRDY0X1IxNl9SRUdOVU0gKyA1LA0KPiArICBBTUQ2NF9SMTZfUkVHTlVNICsg NiwgQU1ENjRfUjE2X1JFR05VTSArIDcsDQo+ICsgIEFNRDY0X1IxNl9SRUdOVU0gKyA4LCBBTUQ2 NF9SMTZfUkVHTlVNICsgOSwNCj4gKyAgQU1ENjRfUjE2X1JFR05VTSArIDEwLCBBTUQ2NF9SMTZf UkVHTlVNICsgMTEsDQo+ICsgIEFNRDY0X1IxNl9SRUdOVU0gKyAxMiwgQU1ENjRfUjE2X1JFR05V TSArIDEzLA0KPiArICBBTUQ2NF9SMTZfUkVHTlVNICsgMTQsIEFNRDY0X1IxNl9SRUdOVU0gKyAx NQ0KPiAgfTsNCj4gDQo+ICBzdGF0aWMgY29uc3QgaW50IGFtZDY0X2R3YXJmX3JlZ21hcF9sZW4g PQ0KPiBAQCAtMzIyLDggKzM3MSwxOSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFtZDY0 X2J5dGVfbmFtZXNbXSA9DQo+ICAgICJhaCIsICJiaCIsICJjaCIsICJkaCINCj4gIH07DQo+IA0K PiAtLyogTnVtYmVyIG9mIGxvd2VyIGJ5dGUgcmVnaXN0ZXJzLiAgKi8NCj4gLSNkZWZpbmUgQU1E NjRfTlVNX0xPV0VSX0JZVEVfUkVHUyAxNg0KPiArc3RhdGljX2Fzc2VydCAoQVJSQVlfU0laRSAo YW1kNjRfYnl0ZV9uYW1lcykgPT0NCj4gQU1ENjRfTlVNX0JZVEVfUkVHUyk7DQo+ICsNCj4gK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW1kNjRfYXB4X2J5dGVfbmFtZXNbXSA9DQo+ICt7DQo+ ICsgICJhbCIsICJibCIsICJjbCIsICJkbCIsICJzaWwiLCAiZGlsIiwgImJwbCIsICJzcGwiLA0K PiArICAicjhsIiwgInI5bCIsICJyMTBsIiwgInIxMWwiLCAicjEybCIsICJyMTNsIiwgInIxNGwi LCAicjE1bCIsDQo+ICsgICJyMTZsIiwgInIxN2wiLCAicjE4bCIsICJyMTlsIiwgInIyMGwiLCAi cjIxbCIsICJyMjJsIiwgInIyM2wiLA0KPiArICAicjI0bCIsICJyMjVsIiwgInIyNmwiLCAicjI3 bCIsICJyMjhsIiwgInIyOWwiLCAicjMwbCIsICJyMzFsIiwNCj4gKyAgImFoIiwgImJoIiwgImNo IiwgImRoIg0KPiArfTsNCj4gKw0KPiArc3RhdGljX2Fzc2VydCAoQVJSQVlfU0laRSAoYW1kNjRf YXB4X2J5dGVfbmFtZXMpDQo+ICsJICAgICAgID09IEFNRDY0X0FQWF9OVU1fQllURV9SRUdTKTsN Cj4gDQo+ICAvKiBSZWdpc3RlciBuYW1lcyBmb3Igd29yZCBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8N Cj4gDQo+IEBAIC0zMzMsNiArMzkzLDE5IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW1k NjRfd29yZF9uYW1lc1tdID0NCj4gICAgInI4dyIsICJyOXciLCAicjEwdyIsICJyMTF3IiwgInIx MnciLCAicjEzdyIsICJyMTR3IiwgInIxNXciDQo+ICB9Ow0KPiANCj4gK3N0YXRpY19hc3NlcnQg KEFSUkFZX1NJWkUgKGFtZDY0X3dvcmRfbmFtZXMpID09DQo+IEFNRDY0X05VTV9XT1JEX1JFR1Mp Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFtZDY0X2FweF93b3JkX25hbWVz W10gPQ0KPiArew0KPiArICAiYXgiLCAiYngiLCAiY3giLCAiZHgiLCAic2kiLCAiZGkiLCAiYnAi LCAiIiwNCj4gKyAgInI4dyIsICJyOXciLCAicjEwdyIsICJyMTF3IiwgInIxMnciLCAicjEzdyIs ICJyMTR3IiwgInIxNXciLA0KPiArICAicjE2dyIsICJyMTd3IiwgInIxOHciLCAicjE5dyIsICJy MjB3IiwgInIyMXciLCAicjIydyIsICJyMjN3IiwNCj4gKyAgInIyNHciLCAicjI1dyIsICJyMjZ3 IiwgInIyN3ciLCAicjI4dyIsICJyMjl3IiwgInIzMHciLCAicjMxdyINCj4gK307DQo+ICsNCj4g K3N0YXRpY19hc3NlcnQgKEFSUkFZX1NJWkUgKGFtZDY0X2FweF93b3JkX25hbWVzKQ0KPiArCSAg ICAgICA9PSBBTUQ2NF9BUFhfTlVNX1dPUkRfUkVHUyk7DQo+ICsNCj4gIC8qIFJlZ2lzdGVyIG5h bWVzIGZvciBkd29yZCBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8NCj4gDQo+ICBzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IGFtZDY0X2R3b3JkX25hbWVzW10gPQ0KPiBAQCAtMzQyLDI4ICs0MTUsOTAg QEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhbWQ2NF9kd29yZF9uYW1lc1tdID0NCj4gICAg ImVpcCINCj4gIH07DQo+IA0KPiArc3RhdGljX2Fzc2VydCAoQVJSQVlfU0laRSAoYW1kNjRfZHdv cmRfbmFtZXMpID09DQo+IEFNRDY0X05VTV9EV09SRF9SRUdTICsgMSk7DQo+ICsNCj4gK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3QgYW1kNjRfYXB4X2R3b3JkX25hbWVzW10gPQ0KPiArew0KPiAr ICAiZWF4IiwgImVieCIsICJlY3giLCAiZWR4IiwgImVzaSIsICJlZGkiLCAiZWJwIiwgImVzcCIs DQo+ICsgICJyOGQiLCAicjlkIiwgInIxMGQiLCAicjExZCIsICJyMTJkIiwgInIxM2QiLCAicjE0 ZCIsICJyMTVkIiwNCj4gKyAgInIxNmQiLCAicjE3ZCIsICJyMThkIiwgInIxOWQiLCAicjIwZCIs ICJyMjFkIiwgInIyMmQiLCAicjIzZCIsDQo+ICsgICJyMjRkIiwgInIyNWQiLCAicjI2ZCIsICJy MjdkIiwgInIyOGQiLCAicjI5ZCIsICJyMzBkIiwgInIzMWQiLA0KPiArICAiZWlwIg0KPiArfTsN Cj4gKw0KPiArc3RhdGljX2Fzc2VydCAoQVJSQVlfU0laRSAoYW1kNjRfYXB4X2R3b3JkX25hbWVz KQ0KPiArCSAgICAgICA9PSBBTUQ2NF9BUFhfTlVNX0RXT1JEX1JFR1MgKyAxKTsNCj4gKw0KPiAg LyogUmV0dXJuIHRoZSBuYW1lIG9mIHJlZ2lzdGVyIFJFR05VTS4gICovDQo+IA0KPiAgc3RhdGlj IGNvbnN0IGNoYXIgKg0KPiAgYW1kNjRfcHNldWRvX3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQ0KPiAgew0KPiAgICBpMzg2X2dkYmFyY2hfdGRlcCAq dGRlcCA9IGdkYmFyY2hfdGRlcDxpMzg2X2dkYmFyY2hfdGRlcD4gKGdkYmFyY2gpOw0KPiAtICBp ZiAoaTM4Nl9ieXRlX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQ0KPiAtICAgIHJldHVybiBh bWQ2NF9ieXRlX25hbWVzW3JlZ251bSAtIHRkZXAtPmFsX3JlZ251bV07DQo+IC0gIGVsc2UgaWYg KGkzODZfem1tX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQ0KPiArICBpZiAoaTM4Nl96bW1f cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpDQo+ICAgICAgcmV0dXJuIGFtZDY0X3ptbV9uYW1l c1tyZWdudW0gLSB0ZGVwLT56bW0wX3JlZ251bV07DQo+ICAgIGVsc2UgaWYgKGkzODZfeW1tX3Jl Z251bV9wIChnZGJhcmNoLCByZWdudW0pKQ0KPiAgICAgIHJldHVybiBhbWQ2NF95bW1fbmFtZXNb cmVnbnVtIC0gdGRlcC0+eW1tMF9yZWdudW1dOw0KPiAgICBlbHNlIGlmIChpMzg2X3ltbV9hdng1 MTJfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpDQo+ICAgICAgcmV0dXJuIGFtZDY0X3ltbV9h dng1MTJfbmFtZXNbcmVnbnVtIC0gdGRlcC0+eW1tMTZfcmVnbnVtXTsNCj4gLSAgZWxzZSBpZiAo aTM4Nl93b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQ0KPiAtICAgIHJldHVybiBhbWQ2 NF93b3JkX25hbWVzW3JlZ251bSAtIHRkZXAtPmF4X3JlZ251bV07DQo+ICAgIGVsc2UgaWYgKGkz ODZfZHdvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpDQo+IC0gICAgcmV0dXJuIGFtZDY0 X2R3b3JkX25hbWVzW3JlZ251bSAtIHRkZXAtPmVheF9yZWdudW1dOw0KPiArICAgIHJldHVybiB0 ZGVwLT5kd29yZF9uYW1lc1tyZWdudW0gLSB0ZGVwLT5lYXhfcmVnbnVtXTsNCj4gICAgZWxzZQ0K PiAgICAgIHJldHVybiBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCByZWdudW0p Ow0KPiAgfQ0KPiANCj4gKy8qIFJldHVybiB0aGUgcmF3IGJ5dGUgcmVnaXN0ZXIgbnVtYmVyLiAg KlBBUlQgaXMgc2V0IHRvIDEgZm9yIGhpZ2gNCj4gKyAgIGJ5dGUgcmVnaXN0ZXIgYW5kIDAgb3Ro ZXJ3aXNlLiAgKi8NCj4gKw0KPiArc3RhdGljIGludA0KPiArYW1kNjRfcmF3X2J5dGVfcmVnaXN0 ZXIgKGkzODZfZ2RiYXJjaF90ZGVwICp0ZGVwLCBpbnQgcmVnbnVtLCBpbnQgKnBhcnQpDQo+ICt7 DQo+ICsgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmFsX3JlZ251bTsNCj4gKw0KPiArICAv KiBFeHRyYWN0IChhbHdheXMgbGl0dGxlIGVuZGlhbikuICAqLw0KPiArICBpZiAoZ3BudW0gPj0g dGRlcC0+bnVtX2xvd2VyX2J5dGVfcmVncykNCj4gKyAgICB7DQo+ICsgICAgICAvKiBTcGVjaWFs IGhhbmRsaW5nIGZvciBBSCwgQkgsIENILCBESC4gICovDQo+ICsgICAgICAqcGFydCA9IDE7DQo+ ICsgICAgICBncG51bSAtPSB0ZGVwLT5udW1fbG93ZXJfYnl0ZV9yZWdzOw0KPiArICAgIH0NCj4g KyAgZWxzZQ0KPiArICAgIHsNCj4gKyAgICAgICpwYXJ0ID0gMDsNCj4gKyAgICAgIGlmIChncG51 bSA+PSBBTUQ2NF9OVU1fR1BSUykNCj4gKwl7DQo+ICsJICBnZGJfYXNzZXJ0ICh0ZGVwLT5yMTZf cmVnbnVtICE9IC0xKTsNCj4gKwkgIGdwbnVtICs9IHRkZXAtPnIxNl9yZWdudW0gLSBBTUQ2NF9O VU1fR1BSUzsNCj4gKwl9DQo+ICsgICAgfQ0KPiArICByZXR1cm4gZ3BudW07DQo+ICt9DQo+ICsN Cj4gKy8qIFJldHVybiB0aGUgcmF3IHdvcmQgcmVnaXN0ZXIgbnVtYmVyLiAgKi8NCj4gKw0KPiAr c3RhdGljIGludA0KPiArYW1kNjRfcmF3X3dvcmRfcmVnaXN0ZXIgKGkzODZfZ2RiYXJjaF90ZGVw ICp0ZGVwLCBpbnQgcmVnbnVtKQ0KPiArew0KPiArICBpbnQgZ3BudW0gPSByZWdudW0gLSB0ZGVw LT5heF9yZWdudW07DQo+ICsgIGlmIChncG51bSA+PSBBTUQ2NF9OVU1fR1BSUykNCj4gKyAgICBn cG51bSArPSB0ZGVwLT5yMTZfcmVnbnVtIC0gQU1ENjRfTlVNX0dQUlM7DQo+ICsgIHJldHVybiBn cG51bTsNCj4gK30NCj4gKw0KPiArLyogUmV0dXJuIHRoZSByYXcgZHdvcmQgcmVnaXN0ZXIgbnVt YmVyLiAgRm9yIHgzMiwgdGhlIGxhc3QgZHdvcmQNCj4gKyAgIHJlZ2lzdGVyIGlzIEVJUC4gICov DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK2FtZDY0X3Jhd19kd29yZF9yZWdpc3RlciAoaTM4Nl9n ZGJhcmNoX3RkZXAgKnRkZXAsIGludCByZWdudW0pDQo+ICt7DQo+ICsgIGludCBncG51bSA9IHJl Z251bSAtIHRkZXAtPmVheF9yZWdudW07DQo+ICsgIGlmICh0ZGVwLT5laXBfcmVnbnVtID09IGdw bnVtKQ0KPiArICAgIHJldHVybiBBTUQ2NF9SSVBfUkVHTlVNOw0KPiArICBpZiAoZ3BudW0gPj0g QU1ENjRfTlVNX0dQUlMpDQo+ICsgICAgZ3BudW0gKz0gdGRlcC0+cjE2X3JlZ251bSAtIEFNRDY0 X05VTV9HUFJTOw0KPiArICByZXR1cm4gZ3BudW07DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyB2YWx1 ZSAqDQo+ICBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZF92YWx1ZSAoZ2RiYXJjaCAqZ2RiYXJj aCwgY29uc3QgZnJhbWVfaW5mb19wdHINCj4gJm5leHRfZnJhbWUsDQo+ICAJCQkJICBpbnQgcmVn bnVtKQ0KPiBAQCAtMzcyLDIzICs1MDcsMTggQEAgYW1kNjRfcHNldWRvX3JlZ2lzdGVyX3JlYWRf dmFsdWUgKGdkYmFyY2gNCj4gKmdkYmFyY2gsIGNvbnN0IGZyYW1lX2luZm9fcHRyICZuZXh0X2YN Cj4gDQo+ICAgIGlmIChpMzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpDQo+ICAg ICAgew0KPiAtICAgICAgaW50IGdwbnVtID0gcmVnbnVtIC0gdGRlcC0+YWxfcmVnbnVtOw0KPiAt DQo+IC0gICAgICAvKiBFeHRyYWN0IChhbHdheXMgbGl0dGxlIGVuZGlhbikuICAqLw0KPiAtICAg ICAgaWYgKGdwbnVtID49IEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1MpDQo+IC0Jew0KPiAtCSAg Z3BudW0gLT0gQU1ENjRfTlVNX0xPV0VSX0JZVEVfUkVHUzsNCj4gLQ0KPiAtCSAgLyogU3BlY2lh bCBoYW5kbGluZyBmb3IgQUgsIEJILCBDSCwgREguICAqLw0KPiAtCSAgcmV0dXJuIHBzZXVkb19m cm9tX3Jhd19wYXJ0IChuZXh0X2ZyYW1lLCByZWdudW0sIGdwbnVtLCAxKTsNCj4gLQl9DQo+IC0g ICAgICBlbHNlDQo+IC0JcmV0dXJuIHBzZXVkb19mcm9tX3Jhd19wYXJ0IChuZXh0X2ZyYW1lLCBy ZWdudW0sIGdwbnVtLCAwKTsNCj4gKyAgICAgIGludCBwYXJ0Ow0KPiArICAgICAgY29uc3QgaW50 IGdwbnVtID0gYW1kNjRfcmF3X2J5dGVfcmVnaXN0ZXIgKHRkZXAsIHJlZ251bSwgJnBhcnQpOw0K PiArICAgICAgcmV0dXJuIHBzZXVkb19mcm9tX3Jhd19wYXJ0IChuZXh0X2ZyYW1lLCByZWdudW0s IGdwbnVtLCBwYXJ0KTsNCj4gKyAgICB9DQo+ICsgIGVsc2UgaWYgKGkzODZfd29yZF9yZWdudW1f cCAoZ2RiYXJjaCwgcmVnbnVtKSkNCj4gKyAgICB7DQo+ICsgICAgICBjb25zdCBpbnQgZ3BudW0g PSBhbWQ2NF9yYXdfd29yZF9yZWdpc3RlciAodGRlcCwgcmVnbnVtKTsNCj4gKyAgICAgIHJldHVy biBwc2V1ZG9fZnJvbV9yYXdfcGFydCAobmV4dF9mcmFtZSwgcmVnbnVtLCBncG51bSwgMCk7DQo+ ICAgICAgfQ0KPiAgICBlbHNlIGlmIChpMzg2X2R3b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdu dW0pKQ0KPiAgICAgIHsNCj4gLSAgICAgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmVheF9y ZWdudW07DQo+IC0NCj4gKyAgICAgIGNvbnN0IGludCBncG51bSA9IGFtZDY0X3Jhd19kd29yZF9y ZWdpc3RlciAodGRlcCwgcmVnbnVtKTsNCj4gICAgICAgIHJldHVybiBwc2V1ZG9fZnJvbV9yYXdf cGFydCAobmV4dF9mcmFtZSwgcmVnbnVtLCBncG51bSwgMCk7DQo+ICAgICAgfQ0KPiAgICBlbHNl DQo+IEBAIC00MDMsMTkgKzUzMywxOCBAQCBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKGdk YmFyY2ggKmdkYmFyY2gsDQo+IGNvbnN0IGZyYW1lX2luZm9fcHRyICZuZXh0X2ZyYW1lLA0KPiAN Cj4gICAgaWYgKGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkNCj4gICAgICB7 DQo+IC0gICAgICBpbnQgZ3BudW0gPSByZWdudW0gLSB0ZGVwLT5hbF9yZWdudW07DQo+IC0NCj4g LSAgICAgIGlmIChncG51bSA+PSBBTUQ2NF9OVU1fTE9XRVJfQllURV9SRUdTKQ0KPiAtCXsNCj4g LQkgIGdwbnVtIC09IEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1M7DQo+IC0JICBwc2V1ZG9fdG9f cmF3X3BhcnQgKG5leHRfZnJhbWUsIGJ1ZiwgZ3BudW0sIDEpOw0KPiAtCX0NCj4gLSAgICAgIGVs c2UNCj4gLQlwc2V1ZG9fdG9fcmF3X3BhcnQgKG5leHRfZnJhbWUsIGJ1ZiwgZ3BudW0sIDApOw0K PiArICAgICAgaW50IHBhcnQ7DQo+ICsgICAgICBjb25zdCBpbnQgZ3BudW0gPSBhbWQ2NF9yYXdf Ynl0ZV9yZWdpc3RlciAodGRlcCwgcmVnbnVtLCAmcGFydCk7DQo+ICsgICAgICBwc2V1ZG9fdG9f cmF3X3BhcnQgKG5leHRfZnJhbWUsIGJ1ZiwgZ3BudW0sIHBhcnQpOw0KPiArICAgIH0NCj4gKyAg ZWxzZSBpZiAoaTM4Nl93b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQ0KPiArICAgIHsN Cj4gKyAgICAgIGNvbnN0IGludCBncG51bSA9IGFtZDY0X3Jhd193b3JkX3JlZ2lzdGVyICh0ZGVw LCByZWdudW0pOw0KPiArICAgICAgcHNldWRvX3RvX3Jhd19wYXJ0IChuZXh0X2ZyYW1lLCBidWYs IGdwbnVtLCAwKTsNCj4gICAgICB9DQo+ICAgIGVsc2UgaWYgKGkzODZfZHdvcmRfcmVnbnVtX3Ag KGdkYmFyY2gsIHJlZ251bSkpDQo+ICAgICAgew0KPiAtICAgICAgaW50IGdwbnVtID0gcmVnbnVt IC0gdGRlcC0+ZWF4X3JlZ251bTsNCj4gKyAgICAgIGNvbnN0IGludCBncG51bSA9IGFtZDY0X3Jh d19kd29yZF9yZWdpc3RlciAodGRlcCwgcmVnbnVtKTsNCj4gICAgICAgIHBzZXVkb190b19yYXdf cGFydCAobmV4dF9mcmFtZSwgYnVmLCBncG51bSwgMCk7DQo+ICAgICAgfQ0KPiAgICBlbHNlDQo+ IEBAIC00MzIsMTcgKzU2MSwxOCBAQCBhbWQ2NF9heF9wc2V1ZG9fcmVnaXN0ZXJfY29sbGVjdCAo c3RydWN0IGdkYmFyY2gNCj4gKmdkYmFyY2gsDQo+IA0KPiAgICBpZiAoaTM4Nl9ieXRlX3JlZ251 bV9wIChnZGJhcmNoLCByZWdudW0pKQ0KPiAgICAgIHsNCj4gLSAgICAgIGludCBncG51bSA9IHJl Z251bSAtIHRkZXAtPmFsX3JlZ251bTsNCj4gLQ0KPiAtICAgICAgaWYgKGdwbnVtID49IEFNRDY0 X05VTV9MT1dFUl9CWVRFX1JFR1MpDQo+IC0JYXhfcmVnX21hc2sgKGF4LCBncG51bSAtIEFNRDY0 X05VTV9MT1dFUl9CWVRFX1JFR1MpOw0KPiAtICAgICAgZWxzZQ0KPiAtCWF4X3JlZ19tYXNrIChh eCwgZ3BudW0pOw0KPiArICAgICAgaW50IHBhcnQ7DQo+ICsgICAgICBjb25zdCBpbnQgZ3BudW0g PSBhbWQ2NF9yYXdfYnl0ZV9yZWdpc3RlciAodGRlcCwgcmVnbnVtLCAmcGFydCk7DQo+ICsgICAg ICBheF9yZWdfbWFzayAoYXgsIGdwbnVtKTsNCj4gKyAgICB9DQo+ICsgIGVsc2UgaWYgKGkzODZf d29yZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkNCj4gKyAgICB7DQo+ICsgICAgICBjb25z dCBpbnQgZ3BudW0gPSBhbWQ2NF9yYXdfd29yZF9yZWdpc3RlciAodGRlcCwgcmVnbnVtKTsNCj4g KyAgICAgIGF4X3JlZ19tYXNrIChheCwgZ3BudW0pOw0KPiAgICAgIH0NCj4gICAgZWxzZSBpZiAo aTM4Nl9kd29yZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkNCj4gICAgICB7DQo+IC0gICAg ICBpbnQgZ3BudW0gPSByZWdudW0gLSB0ZGVwLT5lYXhfcmVnbnVtOw0KPiAtDQo+ICsgICAgICBj b25zdCBpbnQgZ3BudW0gPSBhbWQ2NF9yYXdfZHdvcmRfcmVnaXN0ZXIgKHRkZXAsIHJlZ251bSk7 DQo+ICAgICAgICBheF9yZWdfbWFzayAoYXgsIGdwbnVtKTsNCj4gICAgICB9DQo+ICAgIGVsc2UN Cj4gQEAgLTM1NTIsOSArMzY4MiwzMCBAQCBhbWQ2NF9pbml0X2FiaSAoc3RydWN0IGdkYmFyY2hf aW5mbyBpbmZvLCBzdHJ1Y3QNCj4gZ2RiYXJjaCAqZ2RiYXJjaCwNCj4gICAgaWYgKHRkZXNjX2Zp bmRfZmVhdHVyZSAodGRlc2MsICJvcmcuZ251LmdkYi5pMzg2LnBsM19zc3AiKSAhPSBudWxscHRy KQ0KPiAgICAgIHRkZXAtPnNzcF9yZWdudW0gPSBBTUQ2NF9QTDNfU1NQX1JFR05VTTsNCj4gDQo+ IC0gIHRkZXAtPm51bV9ieXRlX3JlZ3MgPSAyMDsNCj4gLSAgdGRlcC0+bnVtX3dvcmRfcmVncyA9 IDE2Ow0KPiAtICB0ZGVwLT5udW1fZHdvcmRfcmVncyA9IDE2Ow0KPiArICBpZiAodGRlc2NfZmlu ZF9mZWF0dXJlICh0ZGVzYywgIm9yZy5nbnUuZ2RiLmkzODYuYXB4IikgIT0gbnVsbHB0cikNCj4g KyAgICB7DQo+ICsgICAgICB0ZGVwLT5hcHhfcmVnaXN0ZXJfbmFtZXMgPSBhbWQ2NF9hcHhfbmFt ZXM7DQo+ICsgICAgICB0ZGVwLT5udW1fYXB4X3JlZ3MgPSAxNjsNCj4gKyAgICAgIHRkZXAtPnIx Nl9yZWdudW0gPSBBTUQ2NF9SMTZfUkVHTlVNOw0KPiArICAgICAgdGRlcC0+Ynl0ZV9uYW1lcyA9 IGFtZDY0X2FweF9ieXRlX25hbWVzOw0KPiArICAgICAgdGRlcC0+d29yZF9uYW1lcyA9IGFtZDY0 X2FweF93b3JkX25hbWVzOw0KPiArICAgICAgdGRlcC0+ZHdvcmRfbmFtZXMgPSBhbWQ2NF9hcHhf ZHdvcmRfbmFtZXM7DQo+ICsgICAgICB0ZGVwLT5udW1fbG93ZXJfYnl0ZV9yZWdzID0gQU1ENjRf QVBYX05VTV9MT1dFUl9CWVRFX1JFR1M7DQo+ICsgICAgICB0ZGVwLT5udW1fYnl0ZV9yZWdzID0g QU1ENjRfQVBYX05VTV9CWVRFX1JFR1M7DQo+ICsgICAgICB0ZGVwLT5udW1fd29yZF9yZWdzID0g QU1ENjRfQVBYX05VTV9XT1JEX1JFR1M7DQo+ICsgICAgICB0ZGVwLT5udW1fZHdvcmRfcmVncyA9 IEFNRDY0X0FQWF9OVU1fRFdPUkRfUkVHUzsNCj4gKyAgICB9DQo+ICsgIGVsc2UNCj4gKyAgICB7 DQo+ICsgICAgICB0ZGVwLT5ieXRlX25hbWVzID0gYW1kNjRfYnl0ZV9uYW1lczsNCj4gKyAgICAg IHRkZXAtPndvcmRfbmFtZXMgPSBhbWQ2NF93b3JkX25hbWVzOw0KPiArICAgICAgdGRlcC0+ZHdv cmRfbmFtZXMgPSBhbWQ2NF9kd29yZF9uYW1lczsNCj4gKyAgICAgIHRkZXAtPm51bV9sb3dlcl9i eXRlX3JlZ3MgPSBBTUQ2NF9OVU1fTE9XRVJfQllURV9SRUdTOw0KPiArICAgICAgdGRlcC0+bnVt X2J5dGVfcmVncyA9IEFNRDY0X05VTV9CWVRFX1JFR1M7DQo+ICsgICAgICB0ZGVwLT5udW1fd29y ZF9yZWdzID0gQU1ENjRfTlVNX1dPUkRfUkVHUzsNCj4gKyAgICAgIHRkZXAtPm51bV9kd29yZF9y ZWdzID0gQU1ENjRfTlVNX0RXT1JEX1JFR1M7DQo+ICsgICAgfQ0KPiArDQo+ICAgIC8qIEF2b2lk IHdpcmluZyBpbiB0aGUgTU1YIHJlZ2lzdGVycyBmb3Igbm93LiAgKi8NCj4gICAgdGRlcC0+bnVt X21teF9yZWdzID0gMDsNCj4gDQo+IEBAIC0zNjYzLDE1ICszODE0LDEzIEBAIHN0YXRpYyBzdHJ1 Y3QgdHlwZSAqDQo+ICBhbWQ2NF94MzJfcHNldWRvX3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQ0KPiAgew0KPiAgICBpMzg2X2dkYmFyY2hfdGRlcCAq dGRlcCA9IGdkYmFyY2hfdGRlcDxpMzg2X2dkYmFyY2hfdGRlcD4gKGdkYmFyY2gpOw0KPiArICBj b25zdCBpbnQgZ3BudW0gPSByZWdudW0gLSB0ZGVwLT5lYXhfcmVnbnVtOw0KPiANCj4gLSAgc3dp dGNoIChyZWdudW0gLSB0ZGVwLT5lYXhfcmVnbnVtKQ0KPiAtICAgIHsNCj4gLSAgICBjYXNlIEFN RDY0X1JCUF9SRUdOVU06CS8qICVlYnAgKi8NCj4gLSAgICBjYXNlIEFNRDY0X1JTUF9SRUdOVU06 CS8qICVlc3AgKi8NCj4gLSAgICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWls dGluX2RhdGFfcHRyOw0KPiAtICAgIGNhc2UgQU1ENjRfUklQX1JFR05VTToJLyogJWVpcCAqLw0K PiAtICAgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fZnVuY19wdHI7 DQo+IC0gICAgfQ0KPiArICBpZiAoZ3BudW0gPT0gdGRlcC0+ZWlwX3JlZ251bSkJCS8qICVlaXAu ICAqLw0KPiArICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2Z1bmNf cHRyOw0KPiArICBlbHNlIGlmIChncG51bSA9PSBBTUQ2NF9SQlBfUkVHTlVNCQkvKiAlZWJwLiAg Ki8NCj4gKwkgICB8fCBncG51bSA9PSBBTUQ2NF9SU1BfUkVHTlVNKQkvKiAlZXNwLiAgKi8NCj4g KyAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsNCj4g DQo+ICAgIHJldHVybiBpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlIChnZGJhcmNoLCByZWdudW0p Ow0KPiAgfQ0KPiBAQCAtMzY4NCw3ICszODMzLDEwIEBAIGFtZDY0X3gzMl9pbml0X2FiaSAoc3Ry dWN0IGdkYmFyY2hfaW5mbyBpbmZvLA0KPiBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCj4gDQo+ ICAgIGFtZDY0X2luaXRfYWJpIChpbmZvLCBnZGJhcmNoLCBkZWZhdWx0X3RkZXNjKTsNCj4gDQo+ IC0gIHRkZXAtPm51bV9kd29yZF9yZWdzID0gMTc7DQo+ICsgIC8qIFNldCAlZWlwIHRvIHRoZSBs YXN0IGR3b3JkIHJlZ2lzdGVyLiAgKi8NCj4gKyAgdGRlcC0+ZWlwX3JlZ251bSA9IHRkZXAtPm51 bV9kd29yZF9yZWdzOw0KPiArICAvKiBJbmNyZW1lbnQgMSBmb3IgJWVpcC4gICovDQo+ICsgIHRk ZXAtPm51bV9kd29yZF9yZWdzICs9IDE7DQo+ICAgIHNldF90ZGVzY19wc2V1ZG9fcmVnaXN0ZXJf dHlwZSAoZ2RiYXJjaCwNCj4gYW1kNjRfeDMyX3BzZXVkb19yZWdpc3Rlcl90eXBlKTsNCj4gDQo+ ICAgIHNldF9nZGJhcmNoX2xvbmdfYml0IChnZGJhcmNoLCAzMik7DQo+IEBAIC0zNzA2LDEyICsz ODU4LDE0IEBAIGNvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYyAqDQo+ICBhbWQ2NF90YXJnZXRfZGVz Y3JpcHRpb24gKHVpbnQ2NF90IHhzdGF0ZV9idiwgYm9vbCBzZWdtZW50cykNCj4gIHsNCj4gICAg c3RhdGljIGNvbnN0X3RhcmdldF9kZXNjX3VwIGFtZDY0X3RkZXNjcyBcDQo+IC0gICAgWzIvKkFW WCovXVsyLypBVlg1MTIqL11bMi8qUEtSVSovXVsyLypDRVRfVSovXVsyLypzZWdtZW50cyovXSA9 IHt9Ow0KPiArICAgIFsyLypBVlgqL11bMi8qQVZYNTEyKi9dWzIvKlBLUlUqL11bMi8qQ0VUX1Uq L11bMi8qQVBYKi9dIFwNCj4gKyAgICBbMi8qc2VnbWVudHMqL10gPSB7fTsNCj4gICAgY29uc3Rf dGFyZ2V0X2Rlc2NfdXAgJnRkZXNjDQo+ICAgICAgPSBhbWQ2NF90ZGVzY3NbKHhzdGF0ZV9idiAm IFg4Nl9YU1RBVEVfQVZYKSA/IDEgOiAwXQ0KPiAgCQkgIFsoeHN0YXRlX2J2ICYgWDg2X1hTVEFU RV9BVlg1MTIpID8gMSA6IDBdDQo+ICAJCSAgWyh4c3RhdGVfYnYgJiBYODZfWFNUQVRFX1BLUlUp ID8gMSA6IDBdDQo+ICAJCSAgWyh4c3RhdGVfYnYgJiBYODZfWFNUQVRFX0NFVF9VKSA/IDEgOiAw XQ0KPiArCQkgIFsoeHN0YXRlX2J2ICYgWDg2X1hTVEFURV9BUFhfRikgPyAxIDogMF0NCj4gIAkJ ICBbc2VnbWVudHMgPyAxIDogMF07DQo+IA0KPiAgICBpZiAodGRlc2MgPT0gbnVsbHB0cikNCj4g ZGlmZiAtLWdpdCBhL2dkYi9hbWQ2NC10ZGVwLmggYi9nZGIvYW1kNjQtdGRlcC5oDQo+IGluZGV4 IDNkZTI4OTUyY2NhLi45M2IzY2I2MWIxNyAxMDA2NDQNCj4gLS0tIGEvZ2RiL2FtZDY0LXRkZXAu aA0KPiArKysgYi9nZGIvYW1kNjQtdGRlcC5oDQo+IEBAIC04Miw2ICs4Miw4IEBAIGVudW0gYW1k NjRfcmVnbnVtDQo+ICAgIEFNRDY0X1pNTTMxSF9SRUdOVU0gPSBBTUQ2NF9aTU0wSF9SRUdOVU0g KyAzMSwNCj4gICAgQU1ENjRfUEtSVV9SRUdOVU0sDQo+ICAgIEFNRDY0X1BMM19TU1BfUkVHTlVN LA0KPiArICBBTUQ2NF9SMTZfUkVHTlVNLA0KPiArICBBTUQ2NF9SMzFfUkVHTlVNID0gQU1ENjRf UjE2X1JFR05VTSArIDE1LA0KPiAgICBBTUQ2NF9GU0JBU0VfUkVHTlVNLA0KPiAgICBBTUQ2NF9H U0JBU0VfUkVHTlVNDQo+ICB9Ow0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2FyY2gvYW1kNjQuYyBiL2dk Yi9hcmNoL2FtZDY0LmMNCj4gaW5kZXggZDFhODcxZGQ2Y2IuLjM5OTJiYmY1MTJlIDEwMDY0NA0K PiAtLS0gYS9nZGIvYXJjaC9hbWQ2NC5jDQo+ICsrKyBiL2dkYi9hcmNoL2FtZDY0LmMNCj4gQEAg LTIzLDYgKzIzLDcgQEANCj4gICNpbmNsdWRlICIuLi9mZWF0dXJlcy9pMzg2LzY0Yml0LWF2eC5j Ig0KPiAgI2luY2x1ZGUgIi4uL2ZlYXR1cmVzL2kzODYvNjRiaXQtYXZ4NTEyLmMiDQo+ICAjaW5j bHVkZSAiLi4vZmVhdHVyZXMvaTM4Ni82NGJpdC1jb3JlLmMiDQo+ICsjaW5jbHVkZSAiLi4vZmVh dHVyZXMvaTM4Ni82NGJpdC1hcHguYyINCj4gICNpbmNsdWRlICIuLi9mZWF0dXJlcy9pMzg2LzY0 Yml0LWxpbnV4LmMiDQo+ICAjaW5jbHVkZSAiLi4vZmVhdHVyZXMvaTM4Ni82NGJpdC1zZWdtZW50 cy5jIg0KPiAgI2luY2x1ZGUgIi4uL2ZlYXR1cmVzL2kzODYvNjRiaXQtc3NlLmMiDQo+IEBAIC03 OCw1ICs3OSw4IEBAIGFtZDY0X2NyZWF0ZV90YXJnZXRfZGVzY3JpcHRpb24gKHVpbnQ2NF90IHhz dGF0ZV9idiwNCj4gYm9vbCBpc194MzIsDQo+ICAJcmVnbnVtID0gY3JlYXRlX2ZlYXR1cmVfaTM4 Nl8zMmJpdF9zc3AgKHRkZXNjLmdldCAoKSwgcmVnbnVtKTsNCj4gICAgICB9DQo+IA0KPiArICBp ZiAoeHN0YXRlX2J2ICYgWDg2X1hTVEFURV9BUFhfRikNCj4gKyAgICByZWdudW0gPSBjcmVhdGVf ZmVhdHVyZV9pMzg2XzY0Yml0X2FweCAodGRlc2MuZ2V0ICgpLCByZWdudW0pOw0KPiArDQo+ICAg IHJldHVybiB0ZGVzYzsNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL2dkYi9hcmNoL3g4Ni1saW51eC10 ZGVzYy1mZWF0dXJlcy5jIGIvZ2RiL2FyY2gveDg2LWxpbnV4LXRkZXNjLQ0KPiBmZWF0dXJlcy5j DQo+IGluZGV4IDVkNmVhN2NjNzAxLi4wMTkxZjMyNjgzNCAxMDA2NDQNCj4gLS0tIGEvZ2RiL2Fy Y2gveDg2LWxpbnV4LXRkZXNjLWZlYXR1cmVzLmMNCj4gKysrIGIvZ2RiL2FyY2gveDg2LWxpbnV4 LXRkZXNjLWZlYXR1cmVzLmMNCj4gQEAgLTY1LDYgKzY1LDcgQEAgc3RydWN0IHg4Nl94c3RhdGVf ZmVhdHVyZSB7DQo+IA0KPiAgc3RhdGljIGNvbnN0ZXhwciB4ODZfeHN0YXRlX2ZlYXR1cmUgeDg2 X2xpbnV4X2FsbF94c3RhdGVfZmVhdHVyZXNbXSA9IHsNCj4gICAgLyogRmVhdHVyZSwgICAgICAg ICAgIGkzODYsCWFtZDY0LAl4MzIuICAqLw0KPiArICB7IFg4Nl9YU1RBVEVfQVBYX0YsCWZhbHNl LAl0cnVlLCAJdHJ1ZSB9LA0KPiAgICB7IFg4Nl9YU1RBVEVfQ0VUX1UsCWZhbHNlLAl0cnVlLCAJ dHJ1ZSB9LA0KPiAgICB7IFg4Nl9YU1RBVEVfUEtSVSwJdHJ1ZSwJdHJ1ZSwgCXRydWUgfSwNCj4g ICAgeyBYODZfWFNUQVRFX0FWWDUxMiwJdHJ1ZSwJdHJ1ZSwgCXRydWUgfSwNCj4gZGlmZiAtLWdp dCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvDQo+IGluZGV4IDAw MzA2OThkY2VlLi42OWEyZDcxNDI5OSAxMDA2NDQNCj4gLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5m bw0KPiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvDQo+IEBAIC01MDc1Myw2ICs1MDc1MywxMSBA QCBhbWQ2NCwgMzIgYml0cyBvbiBhbWQ2NCB3aXRoIDMyLWJpdCBwb2ludGVyDQo+IHNpemUgKFgz MikgYW5kIDMyIGJpdHMgb24gaTM4Ni4NCj4gIEZvbGxvd2luZyB0aGUgcmVzdHJpY3Rpb24gb2Yg dGhlIExpbnV4IGtlcm5lbCwgb25seSBAdmFsdWV7R0RCTn0gZm9yIGFtZDY0DQo+ICB0YXJnZXRz IG1ha2VzIHVzZSBvZiB0aGlzIGZlYXR1cmUgZm9yIG5vdy4NCj4gDQo+ICtUaGUgQHNhbXB7b3Jn LmdudS5nZGIuaTM4Ni5hcHh9IGZlYXR1cmUgaXMgb3B0aW9uYWwuICBJdCBzaG91bGQgZGVzY3Jp YmUNCj4gKzE2IEV4dGVuZGVkIEdlbmVyYWwgUHVycG9zZSByZWdpc3RlcnMgKEBhY3Jvbnlte0VH UFJzfSkNCj4gK0BzYW1we3IxNn0gLSBAc2FtcHtyMzF9IHdpdGggNjQgYml0cyBlYWNoLiAgQWxs IEBhY3Jvbnlte0ludGVsIEFQWH0NCj4gK3JlZ2lzdGVycyBhcmUgdmFsaWQgb25seSBvbiBhbWQ2 NC4NCj4gKw0KPiAgQG5vZGUgTG9vbmdBcmNoIEZlYXR1cmVzDQo+ICBAc3Vic2VjdGlvbiBMb29u Z0FyY2ggRmVhdHVyZXMNCj4gIEBjaW5kZXggdGFyZ2V0IGRlc2NyaXB0aW9ucywgTG9vbmdBcmNo IEZlYXR1cmVzDQo+IGRpZmYgLS1naXQgYS9nZGIvZmVhdHVyZXMvTWFrZWZpbGUgYi9nZGIvZmVh dHVyZXMvTWFrZWZpbGUNCj4gaW5kZXggMTYxYTc0NTNkNjYuLmRmNzE2YWI2YzVlIDEwMDY0NA0K PiAtLS0gYS9nZGIvZmVhdHVyZXMvTWFrZWZpbGUNCj4gKysrIGIvZ2RiL2ZlYXR1cmVzL01ha2Vm aWxlDQo+IEBAIC0yMzEsNiArMjMxLDcgQEAgRkVBVFVSRV9YTUxGSUxFUyA9IGFhcmNoNjQtY29y ZS54bWwgXA0KPiAgCWkzODYvMzJiaXQtYXZ4NTEyLnhtbCBcDQo+ICAJaTM4Ni8zMmJpdC1zZWdt ZW50cy54bWwgXA0KPiAgCWkzODYvMzJiaXQtc3NwLnhtbCBcDQo+ICsJaTM4Ni82NGJpdC1hcHgu eG1sIFwNCj4gIAlpMzg2LzY0Yml0LWF2eDUxMi54bWwgXA0KPiAgCWkzODYvNjRiaXQtY29yZS54 bWwgXA0KPiAgCWkzODYvNjRiaXQtc2VnbWVudHMueG1sIFwNCj4gZGlmZiAtLWdpdCBhL2dkYi9m ZWF0dXJlcy9pMzg2LzY0Yml0LWFweC5jIGIvZ2RiL2ZlYXR1cmVzL2kzODYvNjRiaXQtYXB4LmMN Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjM0Y2Q0NzEzMWQx DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL2ZlYXR1cmVzL2kzODYvNjRiaXQtYXB4LmMN Cj4gQEAgLTAsMCArMSwyOSBAQA0KPiArLyogVEhJUyBGSUxFIElTIEdFTkVSQVRFRC4gIC0qLSBi dWZmZXItcmVhZC1vbmx5OiB0IC0qLSB2aTpzZXQgcm86DQo+ICsgIE9yaWdpbmFsOiA2NGJpdC1h cHgueG1sICovDQo+ICsNCj4gKyNpbmNsdWRlICJnZGJzdXBwb3J0L3RkZXNjLmgiDQo+ICsNCj4g K3N0YXRpYyBpbnQNCj4gK2NyZWF0ZV9mZWF0dXJlX2kzODZfNjRiaXRfYXB4IChzdHJ1Y3QgdGFy Z2V0X2Rlc2MgKnJlc3VsdCwgbG9uZyByZWdudW0pDQo+ICt7DQo+ICsgIHN0cnVjdCB0ZGVzY19m ZWF0dXJlICpmZWF0dXJlOw0KPiArDQo+ICsgIGZlYXR1cmUgPSB0ZGVzY19jcmVhdGVfZmVhdHVy ZSAocmVzdWx0LCAib3JnLmdudS5nZGIuaTM4Ni5hcHgiKTsNCj4gKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgInIxNiIsIHJlZ251bSsrLCAxLCBOVUxMLCA2NCwgImludDY0Iik7DQo+ICsg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyMTciLCByZWdudW0rKywgMSwgTlVMTCwgNjQs ICJpbnQ2NCIpOw0KPiArICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicjE4IiwgcmVnbnVt KyssIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsNCj4gKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInIxOSIsIHJlZ251bSsrLCAxLCBOVUxMLCA2NCwgImludDY0Iik7DQo+ICsgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJyMjAiLCByZWdudW0rKywgMSwgTlVMTCwgNjQsICJpbnQ2NCIp Ow0KPiArICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicjIxIiwgcmVnbnVtKyssIDEsIE5V TEwsIDY0LCAiaW50NjQiKTsNCj4gKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIyMiIs IHJlZ251bSsrLCAxLCBOVUxMLCA2NCwgImludDY0Iik7DQo+ICsgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJyMjMiLCByZWdudW0rKywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOw0KPiArICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicjI0IiwgcmVnbnVtKyssIDEsIE5VTEwsIDY0LCAi aW50NjQiKTsNCj4gKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIyNSIsIHJlZ251bSsr LCAxLCBOVUxMLCA2NCwgImludDY0Iik7DQo+ICsgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJyMjYiLCByZWdudW0rKywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOw0KPiArICB0ZGVzY19jcmVh dGVfcmVnIChmZWF0dXJlLCAicjI3IiwgcmVnbnVtKyssIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsN Cj4gKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIyOCIsIHJlZ251bSsrLCAxLCBOVUxM LCA2NCwgImludDY0Iik7DQo+ICsgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyMjkiLCBy ZWdudW0rKywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOw0KPiArICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAicjMwIiwgcmVnbnVtKyssIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsNCj4gKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIzMSIsIHJlZ251bSsrLCAxLCBOVUxMLCA2NCwgImlu dDY0Iik7DQo+ICsgIHJldHVybiByZWdudW07DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvZmVh dHVyZXMvaTM4Ni82NGJpdC1hcHgueG1sIGIvZ2RiL2ZlYXR1cmVzL2kzODYvNjRiaXQtDQo+IGFw eC54bWwNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjExYTRl YzY3Y2FlDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL2ZlYXR1cmVzL2kzODYvNjRiaXQt YXB4LnhtbA0KPiBAQCAtMCwwICsxLDI2IEBADQo+ICs8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCj4g KzwhLS0gQ29weXJpZ2h0IChDKSAyMDI0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0K PiArDQo+ICsgICAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb24sDQo+ICsgICAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1l ZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodA0KPiArICAgICBub3Rp Y2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAtLT4NCj4gKw0KPiArPCFET0NUWVBF IGZlYXR1cmUgU1lTVEVNICJnZGItdGFyZ2V0LmR0ZCI+DQo+ICs8ZmVhdHVyZSBuYW1lPSJvcmcu Z251LmdkYi5pMzg2LmFweCI+DQo+ICsgIDxyZWcgbmFtZT0icjE2IiBiaXRzaXplPSI2NCIgdHlw ZT0iaW50NjQiLz4NCj4gKyAgPHJlZyBuYW1lPSJyMTciIGJpdHNpemU9IjY0IiB0eXBlPSJpbnQ2 NCIvPg0KPiArICA8cmVnIG5hbWU9InIxOCIgYml0c2l6ZT0iNjQiIHR5cGU9ImludDY0Ii8+DQo+ ICsgIDxyZWcgbmFtZT0icjE5IiBiaXRzaXplPSI2NCIgdHlwZT0iaW50NjQiLz4NCj4gKyAgPHJl ZyBuYW1lPSJyMjAiIGJpdHNpemU9IjY0IiB0eXBlPSJpbnQ2NCIvPg0KPiArICA8cmVnIG5hbWU9 InIyMSIgYml0c2l6ZT0iNjQiIHR5cGU9ImludDY0Ii8+DQo+ICsgIDxyZWcgbmFtZT0icjIyIiBi aXRzaXplPSI2NCIgdHlwZT0iaW50NjQiLz4NCj4gKyAgPHJlZyBuYW1lPSJyMjMiIGJpdHNpemU9 IjY0IiB0eXBlPSJpbnQ2NCIvPg0KPiArICA8cmVnIG5hbWU9InIyNCIgYml0c2l6ZT0iNjQiIHR5 cGU9ImludDY0Ii8+DQo+ICsgIDxyZWcgbmFtZT0icjI1IiBiaXRzaXplPSI2NCIgdHlwZT0iaW50 NjQiLz4NCj4gKyAgPHJlZyBuYW1lPSJyMjYiIGJpdHNpemU9IjY0IiB0eXBlPSJpbnQ2NCIvPg0K PiArICA8cmVnIG5hbWU9InIyNyIgYml0c2l6ZT0iNjQiIHR5cGU9ImludDY0Ii8+DQo+ICsgIDxy ZWcgbmFtZT0icjI4IiBiaXRzaXplPSI2NCIgdHlwZT0iaW50NjQiLz4NCj4gKyAgPHJlZyBuYW1l PSJyMjkiIGJpdHNpemU9IjY0IiB0eXBlPSJpbnQ2NCIvPg0KPiArICA8cmVnIG5hbWU9InIzMCIg Yml0c2l6ZT0iNjQiIHR5cGU9ImludDY0Ii8+DQo+ICsgIDxyZWcgbmFtZT0icjMxIiBiaXRzaXpl PSI2NCIgdHlwZT0iaW50NjQiLz4NCj4gKzwvZmVhdHVyZT4NCj4gZGlmZiAtLWdpdCBhL2dkYi9p Mzg2LXRkZXAuYyBiL2dkYi9pMzg2LXRkZXAuYw0KPiBpbmRleCBmNjljYzJkY2MwMS4uNzZkMWIw Yzk1MzEgMTAwNjQ0DQo+IC0tLSBhL2dkYi9pMzg2LXRkZXAuYw0KPiArKysgYi9nZGIvaTM4Ni10 ZGVwLmMNCj4gQEAgLTQxMiw5ICs0MTIsOSBAQCBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChz dHJ1Y3QgZ2RiYXJjaA0KPiAqZ2RiYXJjaCwgaW50IHJlZ251bSkNCj4gICAgZWxzZSBpZiAoaTM4 Nl96bW1fcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpDQo+ICAgICAgcmV0dXJuIGkzODZfem1t X25hbWVzW3JlZ251bSAtIHRkZXAtPnptbTBfcmVnbnVtXTsNCj4gICAgZWxzZSBpZiAoaTM4Nl9i eXRlX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQ0KPiAtICAgIHJldHVybiBpMzg2X2J5dGVf bmFtZXNbcmVnbnVtIC0gdGRlcC0+YWxfcmVnbnVtXTsNCj4gKyAgICByZXR1cm4gdGRlcC0+Ynl0 ZV9uYW1lc1tyZWdudW0gLSB0ZGVwLT5hbF9yZWdudW1dOw0KPiAgICBlbHNlIGlmIChpMzg2X3dv cmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpDQo+IC0gICAgcmV0dXJuIGkzODZfd29yZF9u YW1lc1tyZWdudW0gLSB0ZGVwLT5heF9yZWdudW1dOw0KPiArICAgIHJldHVybiB0ZGVwLT53b3Jk X25hbWVzW3JlZ251bSAtIHRkZXAtPmF4X3JlZ251bV07DQo+IA0KPiAgICBpbnRlcm5hbF9lcnJv ciAoXygiaW52YWxpZCByZWdudW0iKSk7DQo+ICB9DQo+IEBAIC04NTE5LDcgKzg1MTksOCBAQCBp Mzg2X3hjcjBfZnJvbV90ZGVzYyAoY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjDQo+ICp0ZGVzYykN Cj4gICAgY29uc3Qgc3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmVfY29yZTsNCj4gDQo+ICAg IGNvbnN0IHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlX3NzZSwgKmZlYXR1cmVfYXZ4LA0K PiAtCQkJICAgICAqZmVhdHVyZV9hdng1MTIsICpmZWF0dXJlX3BrZXlzOw0KPiArCQkJICAgICAq ZmVhdHVyZV9hdng1MTIsICpmZWF0dXJlX3BrZXlzLA0KPiArCQkJICAgICAqZmVhdHVyZV9hcHg7 DQo+IA0KPiAgICAvKiBHZXQgY29yZSByZWdpc3RlcnMuICAqLw0KPiAgICBmZWF0dXJlX2NvcmUg PSB0ZGVzY19maW5kX2ZlYXR1cmUgKHRkZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5jb3JlIik7DQo+ IEBAIC04NTM1LDYgKzg1MzYsOSBAQCBpMzg2X3hjcjBfZnJvbV90ZGVzYyAoY29uc3Qgc3RydWN0 IHRhcmdldF9kZXNjDQo+ICp0ZGVzYykNCj4gICAgLyogVHJ5IEFWWDUxMiByZWdpc3RlcnMuICAq Lw0KPiAgICBmZWF0dXJlX2F2eDUxMiA9IHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRlc2MsICJvcmcu Z251LmdkYi5pMzg2LmF2eDUxMiIpOw0KPiANCj4gKyAgLyogVHJ5IEFQWCByZWdpc3RlcnMuICAq Lw0KPiArICBmZWF0dXJlX2FweCA9IHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRlc2MsICJvcmcuZ251 LmdkYi5pMzg2LmFweCIpOw0KPiArDQo+ICAgIC8qIFRyeSBQS0VZUyAgKi8NCj4gICAgZmVhdHVy ZV9wa2V5cyA9IHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRlc2MsICJvcmcuZ251LmdkYi5pMzg2LnBr ZXlzIik7DQo+IA0KPiBAQCAtODU2Miw2ICs4NTY2LDkgQEAgaTM4Nl94Y3IwX2Zyb21fdGRlc2Mg KGNvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYw0KPiAqdGRlc2MpDQo+ICAgICAgICB4Y3IwIHw9IFg4 Nl9YU1RBVEVfQVZYNTEyOw0KPiAgICAgIH0NCj4gDQo+ICsgIGlmIChmZWF0dXJlX2FweCkNCj4g KyAgICB4Y3IwIHw9IFg4Nl9YU1RBVEVfQVBYX0Y7DQo+ICsNCj4gICAgaWYgKGZlYXR1cmVfcGtl eXMpDQo+ICAgICAgeGNyMCB8PSBYODZfWFNUQVRFX1BLUlU7DQo+IA0KPiBAQCAtODU3Nyw3ICs4 NTg0LDcgQEAgaTM4Nl92YWxpZGF0ZV90ZGVzY19wIChpMzg2X2dkYmFyY2hfdGRlcCAqdGRlcCwN Cj4gDQo+ICAgIGNvbnN0IHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlX3NzZSwgKmZlYXR1 cmVfYXZ4LCAqZmVhdHVyZV9hdng1MTIsDQo+ICAJCQkgICAgICpmZWF0dXJlX3BrZXlzLCAqZmVh dHVyZV9zZWdtZW50cywNCj4gLQkJCSAgICAgKmZlYXR1cmVfcGwzX3NzcDsNCj4gKwkJCSAgICAg KmZlYXR1cmVfcGwzX3NzcCwgKmZlYXR1cmVfYXB4Ow0KPiAgICBpbnQgaSwgbnVtX3JlZ3MsIHZh bGlkX3A7DQo+IA0KPiAgICBpZiAoISB0ZGVzY19oYXNfcmVnaXN0ZXJzICh0ZGVzYykpDQo+IEBA IC04NTk3LDYgKzg2MDQsOSBAQCBpMzg2X3ZhbGlkYXRlX3RkZXNjX3AgKGkzODZfZ2RiYXJjaF90 ZGVwICp0ZGVwLA0KPiAgICAvKiBUcnkgQVZYNTEyIHJlZ2lzdGVycy4gICovDQo+ICAgIGZlYXR1 cmVfYXZ4NTEyID0gdGRlc2NfZmluZF9mZWF0dXJlICh0ZGVzYywgIm9yZy5nbnUuZ2RiLmkzODYu YXZ4NTEyIik7DQo+IA0KPiArICAvKiBUcnkgQVBYIHJlZ2lzdGVycy4gICovDQo+ICsgIGZlYXR1 cmVfYXB4ID0gdGRlc2NfZmluZF9mZWF0dXJlICh0ZGVzYywgIm9yZy5nbnUuZ2RiLmkzODYuYXB4 Iik7DQo+ICsNCj4gICAgLyogVHJ5IHNlZ21lbnQgYmFzZSByZWdpc3RlcnMuICAqLw0KPiAgICBm ZWF0dXJlX3NlZ21lbnRzID0gdGRlc2NfZmluZF9mZWF0dXJlICh0ZGVzYywNCj4gIm9yZy5nbnUu Z2RiLmkzODYuc2VnbWVudHMiKTsNCj4gDQo+IEBAIC04NjgxLDYgKzg2OTEsMTggQEAgaTM4Nl92 YWxpZGF0ZV90ZGVzY19wIChpMzg2X2dkYmFyY2hfdGRlcCAqdGRlcCwNCj4gICAgICAgIHRkZXAt Pm51bV94bW1fcmVncyA9IDA7DQo+ICAgICAgfQ0KPiANCj4gKyAgaWYgKGZlYXR1cmVfYXB4DQo+ ICsgICAgICAmJiB0ZGVwLT5yMTZfcmVnbnVtICE9IC0xDQo+ICsgICAgICAmJiB0ZGVwLT5hcHhf cmVnaXN0ZXJfbmFtZXMgIT0gbnVsbHB0cg0KPiArICAgICAgJiYgdGRlcC0+bnVtX2FweF9yZWdz ID4gMCkNCj4gKyAgICB7DQo+ICsgICAgICB0ZGVwLT54Y3IwIHw9IFg4Nl9YU1RBVEVfQVBYX0Y7 DQo+ICsgICAgICBmb3IgKGkgPSAwOyBpIDwgdGRlcC0+bnVtX2FweF9yZWdzOyBpKyspDQo+ICsJ dmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAoZmVhdHVyZV9hcHgsIHRkZXNjX2Rh dGEsDQo+ICsJCQkJCSAgICB0ZGVwLT5yMTZfcmVnbnVtICsgaSwNCj4gKwkJCQkJICAgIHRkZXAt PmFweF9yZWdpc3Rlcl9uYW1lc1tpXSk7DQo+ICsgICAgfQ0KPiArDQo+ICAgIG51bV9yZWdzID0g dGRlcC0+bnVtX2NvcmVfcmVnczsNCj4gICAgZm9yIChpID0gMDsgaSA8IG51bV9yZWdzOyBpKysp DQo+ICAgICAgdmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAoZmVhdHVyZV9jb3Jl LCB0ZGVzY19kYXRhLCBpLA0KPiBAQCAtODk0OCw2ICs4OTcwLDggQEAgaTM4Nl9nZGJhcmNoX2lu aXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0DQo+IGdkYmFyY2hfbGlzdCAqYXJj aGVzKQ0KPiANCj4gICAgdGRlcC0+bnVtX2NvcmVfcmVncyA9IEkzODZfTlVNX0dSRUdTICsgSTM4 N19OVU1fUkVHUzsNCj4gICAgdGRlcC0+cmVnaXN0ZXJfbmFtZXMgPSBpMzg2X3JlZ2lzdGVyX25h bWVzOw0KPiArICB0ZGVwLT5ieXRlX25hbWVzID0gaTM4Nl9ieXRlX25hbWVzOw0KPiArICB0ZGVw LT53b3JkX25hbWVzID0gaTM4Nl93b3JkX25hbWVzOw0KPiANCj4gICAgdGRlcC0+bnVtX2J5dGVf cmVncyA9IDg7DQo+ICAgIHRkZXAtPm51bV93b3JkX3JlZ3MgPSA4Ow0KPiBkaWZmIC0tZ2l0IGEv Z2RiL2kzODYtdGRlcC5oIGIvZ2RiL2kzODYtdGRlcC5oDQo+IGluZGV4IGQ2NGQ1MjQxNzU0Li5i ZGFmZDUyMzgzNCAxMDA2NDQNCj4gLS0tIGEvZ2RiL2kzODYtdGRlcC5oDQo+ICsrKyBiL2dkYi9p Mzg2LXRkZXAuaA0KPiBAQCAtMTA4LDYgKzEwOCw5IEBAIHN0cnVjdCBpMzg2X2dkYmFyY2hfdGRl cCA6IGdkYmFyY2hfdGRlcF9iYXNlDQo+ICAgICAgIHZhbHVlID49IDAuICAqLw0KPiAgICBpbnQg YWxfcmVnbnVtID0gLTE7DQo+IA0KPiArICAvKiBOdW1iZXIgb2YgcHNldWRvIGxvd2VyIGJ5dGUg cmVnaXN0ZXJzLiAgT25seSB1c2VkIGZvciBBTUQ2NC4gICovDQo+ICsgIGludCBudW1fbG93ZXJf Ynl0ZV9yZWdzID0gMDsNCj4gKw0KPiAgICAvKiBOdW1iZXIgb2YgcHNldWRvIHdvcmQgcmVnaXN0 ZXJzLiAgKi8NCj4gICAgaW50IG51bV93b3JkX3JlZ3MgPSAwOw0KPiANCj4gQEAgLTEyMSw5ICsx MjQsMTYgQEAgc3RydWN0IGkzODZfZ2RiYXJjaF90ZGVwIDogZ2RiYXJjaF90ZGVwX2Jhc2UNCj4g ICAgICAgcmVnaXN0ZXJzIGFyZSBzdXBwb3J0ZWQuICAqLw0KPiAgICBpbnQgZWF4X3JlZ251bSA9 IC0xOw0KPiANCj4gKyAgLyogUmVnaXN0ZXIgbnVtYmVyIGZvciAlZWlwLiAgU2V0IHRoaXMgdG8g YSB2YWx1ZSA+PSAwIGluIGNhc2Ugb2YgJWVpcA0KPiArICAgICBzdXBwb3J0LiAgT25seSB1c2Vk IGZvciBBTUQ2NC4gICovDQo+ICsgIGludCBlaXBfcmVnbnVtID0gLTE7DQo+ICsNCj4gICAgLyog TnVtYmVyIG9mIGNvcmUgcmVnaXN0ZXJzLiAgKi8NCj4gICAgaW50IG51bV9jb3JlX3JlZ3MgPSAw Ow0KPiANCj4gKyAgLyogTnVtYmVyIG9mIHJlZ2lzdGVycyBhZGRlZCBpbiBBUFguICBPbmx5IHVz ZWQgZm9yIEFNRDY0LiAgKi8NCj4gKyAgaW50IG51bV9hcHhfcmVncyA9IDA7DQo+ICsNCj4gICAg LyogTnVtYmVyIG9mIFNTRSByZWdpc3RlcnMuICAqLw0KPiAgICBpbnQgbnVtX3htbV9yZWdzID0g MDsNCj4gDQo+IEBAIC0xNTksNiArMTY5LDE1IEBAIHN0cnVjdCBpMzg2X2dkYmFyY2hfdGRlcCA6 IGdkYmFyY2hfdGRlcF9iYXNlDQo+ICAgICAgIHN1cHBvcnRlZC4gICovDQo+ICAgIGludCB5bW0w aF9yZWdudW0gPSAtMTsNCj4gDQo+ICsgIC8qIEJ5dGUgcmVnaXN0ZXIgbmFtZXMuICAqLw0KPiAr ICBjb25zdCBjaGFyICogY29uc3QgKmJ5dGVfbmFtZXMgPSBudWxscHRyOw0KPiArDQo+ICsgIC8q IFdvcmQgcmVnaXN0ZXIgbmFtZXMuICAqLw0KPiArICBjb25zdCBjaGFyICogY29uc3QgKndvcmRf bmFtZXMgPSBudWxscHRyOw0KPiArDQo+ICsgIC8qIER3b3JkIHJlZ2lzdGVyIG5hbWVzLiAgT25s eSB1c2VkIGZvciBBTUQ2NC4gICovDQo+ICsgIGNvbnN0IGNoYXIgKiBjb25zdCAqZHdvcmRfbmFt ZXMgPSBudWxscHRyOw0KPiArDQo+ICAgIC8qIFVwcGVyIFlNTSByZWdpc3RlciBuYW1lcy4gIE9u bHkgdXNlZCBmb3IgdGRlc2NfbnVtYmVyZWRfcmVnaXN0ZXIuICAqLw0KPiAgICBjb25zdCBjaGFy ICogY29uc3QgKnltbWhfcmVnaXN0ZXJfbmFtZXMgPSBudWxscHRyOw0KPiANCj4gQEAgLTE3Myw2 ICsxOTIsMTMgQEAgc3RydWN0IGkzODZfZ2RiYXJjaF90ZGVwIDogZ2RiYXJjaF90ZGVwX2Jhc2UN Cj4gICAgICAgcmVnaXN0ZXJzIGFyZSBzdXBwb3J0ZWQuICAqLw0KPiAgICBpbnQgem1tMGhfcmVn bnVtID0gLTE7DQo+IA0KPiArICAvKiBSZWdpc3RlciBudW1iZXIgZm9yICVyMTYuICBTZXQgdGhp cyB0byBhIHZhbHVlID49IDAgaWYgcjE2LXIzMQ0KPiArICAgICByZWdpc3RlcnMgYXJlIHN1cHBv cnRlZC4gIE9ubHkgdXNlZCBmb3IgQU1ENjQuICAqLw0KPiArICBpbnQgcjE2X3JlZ251bSA9IC0x Ow0KPiArDQo+ICsgIC8qIHIxNi1yMzEgcmVnaXN0ZXIgbmFtZXMuICBPbmx5IHVzZWQgZm9yIHRk ZXNjX251bWJlcmVkX3JlZ2lzdGVyLiAgKi8NCj4gKyAgY29uc3QgY2hhciAqIGNvbnN0ICphcHhf cmVnaXN0ZXJfbmFtZXMgPSBudWxscHRyOw0KPiArDQo+ICAgIC8qIE9wTWFzayByZWdpc3RlciBu YW1lcy4gICovDQo+ICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqa19yZWdpc3Rlcl9uYW1lcyA9IG51 bGxwdHI7DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2kzODctdGRlcC5jIGIvZ2RiL2kzODctdGRl cC5jDQo+IGluZGV4IGYyMmE1ZTAyYmJiLi5lYTNmM2YxNWE1ZCAxMDA2NDQNCj4gLS0tIGEvZ2Ri L2kzODctdGRlcC5jDQo+ICsrKyBiL2dkYi9pMzg3LXRkZXAuYw0KPiBAQCAtODIwLDYgKzgyMCwz NCBAQCBzdGF0aWMgaW50IHhzYXZlX3htbV9hdng1MTJfb2Zmc2V0W10gPQ0KPiAgICAoeHNhdmUg KyAodGRlcCktPnhzYXZlX2xheW91dC56bW1fb2Zmc2V0CQkJCVwNCj4gICAgICsgeHNhdmVfeG1t X2F2eDUxMl9vZmZzZXRbcmVnbnVtIC0gSTM4N19YTU0xNl9SRUdOVU0gKHRkZXApXSkNCj4gDQo+ ICsvKiBBdCB4c2F2ZV9hcHhfZWdwcl9vZmZzZXRbUkVHTlVNXSB5b3UnbGwgZmluZCB0aGUgcmVs YXRpdmUgb2Zmc2V0DQo+ICsgICB3aXRoaW4gdGhlIEFQWCByZWdpb24gb2YgdGhlIFhTQVZFIGV4 dGVuZGVkIHN0YXRlIHdoZXJlIHRoZSBHREINCj4gKyAgIHJlZ2lzdGVycyByMTYgLSByMzEgaXMg c3RvcmVkLiAgKi8NCj4gKw0KPiArc3RhdGljIGludCB4c2F2ZV9hcHhfZWdwcl9vZmZzZXRbXSA9 DQo+ICt7DQo+ICsgIDAgKiA4LAkJCS8qIHIxNi4uLnIzMSByZWdpc3RlcnMuICAqLw0KPiArICAx ICogOCwNCj4gKyAgMiAqIDgsDQo+ICsgIDMgKiA4LA0KPiArICA0ICogOCwNCj4gKyAgNSAqIDgs DQo+ICsgIDYgKiA4LA0KPiArICA3ICogOCwNCj4gKyAgOCAqIDgsDQo+ICsgIDkgKiA4LA0KPiAr ICAxMCAqIDgsDQo+ICsgIDExICogOCwNCj4gKyAgMTIgKiA4LA0KPiArICAxMyAqIDgsDQo+ICsg IDE0ICogOCwNCj4gKyAgMTUgKiA4DQo+ICt9Ow0KPiArDQo+ICsjZGVmaW5lIFhTQVZFX0FQWF9F R1BSX0FERFIodGRlcCwgeHNhdmUsIHJlZ251bSkJCVwNCj4gKyAgKHhzYXZlICsgKHRkZXApLT54 c2F2ZV9sYXlvdXQuYXB4X29mZnNldAkJCVwNCj4gKyAgICsgeHNhdmVfYXB4X2VncHJfb2Zmc2V0 W3JlZ251bSAtIEkzODdfUjE2X1JFR05VTSAodGRlcCldKQ0KPiArDQo+ICAvKiBBdCB4c2F2ZV9h dng1MTJfa19vZmZzZXRbUkVHTlVNXSB5b3UnbGwgZmluZCB0aGUgcmVsYXRpdmUgb2Zmc2V0DQo+ ICAgICB3aXRoaW4gdGhlIEsgcmVnaW9uIG9mIHRoZSBYU0FWRSBleHRlbmRlZCBzdGF0ZSB3aGVy ZSB0aGUgQVZYNTEyDQo+ICAgICBvcG1hc2sgcmVnaXN0ZXIgSzAgKyBSRUdOVU0gaXMgc3RvcmVk LiAgKi8NCj4gQEAgLTkyMiw2ICs5NTAsNyBAQCBpMzg3X2d1ZXNzX3hzYXZlX2xheW91dCAodWlu dDY0X3QgeGNyMCwgc2l6ZV90DQo+IHhzYXZlX3NpemUsDQo+ICAgICAgew0KPiAgICAgICAgLyog SW50ZWwgQ1BVcyBzdXBwb3J0aW5nIFBLUlUuICAqLw0KPiAgICAgICAgbGF5b3V0LmF2eF9vZmZz ZXQgPSA1NzY7DQo+ICsgICAgICBsYXlvdXQuYXB4X29mZnNldCA9IDk2MDsNCj4gICAgICAgIGxh eW91dC5rX29mZnNldCA9IDEwODg7DQo+ICAgICAgICBsYXlvdXQuem1tX2hfb2Zmc2V0ID0gMTE1 MjsNCj4gICAgICAgIGxheW91dC56bW1fb2Zmc2V0ID0gMTY2NDsNCj4gQEAgLTk0MCw2ICs5Njks NyBAQCBpMzg3X2d1ZXNzX3hzYXZlX2xheW91dCAodWludDY0X3QgeGNyMCwgc2l6ZV90DQo+IHhz YXZlX3NpemUsDQo+ICAgICAgew0KPiAgICAgICAgLyogSW50ZWwgQ1BVcyBzdXBwb3J0aW5nIEFW WDUxMi4gICovDQo+ICAgICAgICBsYXlvdXQuYXZ4X29mZnNldCA9IDU3NjsNCj4gKyAgICAgIGxh eW91dC5hcHhfb2Zmc2V0ID0gOTYwOw0KPiAgICAgICAgbGF5b3V0Lmtfb2Zmc2V0ID0gMTA4ODsN Cj4gICAgICAgIGxheW91dC56bW1faF9vZmZzZXQgPSAxMTUyOw0KPiAgICAgICAgbGF5b3V0Lnpt bV9vZmZzZXQgPSAxNjY0Ow0KPiBAQCAtOTcwLDYgKzEwMDAsNyBAQCBpMzg3X2ZhbGxiYWNrX3hz YXZlX2xheW91dCAodWludDY0X3QgeGNyMCkNCj4gICAgICB7DQo+ICAgICAgICAvKiBJbnRlbCBD UFVzIHN1cHBvcnRpbmcgUEtSVS4gICovDQo+ICAgICAgICBsYXlvdXQuYXZ4X29mZnNldCA9IDU3 NjsNCj4gKyAgICAgIGxheW91dC5hcHhfb2Zmc2V0ID0gOTYwOw0KPiAgICAgICAgbGF5b3V0Lmtf b2Zmc2V0ID0gMTA4ODsNCj4gICAgICAgIGxheW91dC56bW1faF9vZmZzZXQgPSAxMTUyOw0KPiAg ICAgICAgbGF5b3V0LnptbV9vZmZzZXQgPSAxNjY0Ow0KPiBAQCAtOTgwLDYgKzEwMTEsNyBAQCBp Mzg3X2ZhbGxiYWNrX3hzYXZlX2xheW91dCAodWludDY0X3QgeGNyMCkNCj4gICAgICB7DQo+ICAg ICAgICAvKiBJbnRlbCBDUFVzIHN1cHBvcnRpbmcgQVZYNTEyLiAgKi8NCj4gICAgICAgIGxheW91 dC5hdnhfb2Zmc2V0ID0gNTc2Ow0KPiArICAgICAgbGF5b3V0LmFweF9vZmZzZXQgPSA5NjA7DQo+ ICAgICAgICBsYXlvdXQua19vZmZzZXQgPSAxMDg4Ow0KPiAgICAgICAgbGF5b3V0LnptbV9oX29m ZnNldCA9IDExNTI7DQo+ICAgICAgICBsYXlvdXQuem1tX29mZnNldCA9IDE2NjQ7DQo+IEBAIC0x MDQ1LDggKzEwNzcsOSBAQCBpMzg3X3N1cHBseV94c2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwgaW50DQo+IHJlZ251bSwNCj4gICAgICAgIGF2eDUxMl95bW1oX2F2eDUxMiA9IDB4NDAs DQo+ICAgICAgICBhdng1MTJfeG1tX2F2eDUxMiA9IDB4ODAsDQo+ICAgICAgICBwa2V5cyA9IDB4 MTAwLA0KPiArICAgICAgYXB4ID0gMHgyMDAsDQo+ICAgICAgICBhbGwgPSB4ODcgfCBzc2UgfCBh dnhoIHwgYXZ4NTEyX2sgfCBhdng1MTJfem1tMF9oIHwgYXZ4NTEyX3ptbTE2X2gNCj4gLQkgICAg fCBhdng1MTJfeW1taF9hdng1MTIgfCBhdng1MTJfeG1tX2F2eDUxMiB8IHBrZXlzDQo+ICsJICAg IHwgYXZ4NTEyX3ltbWhfYXZ4NTEyIHwgYXZ4NTEyX3htbV9hdng1MTIgfCBwa2V5cyB8IGFweA0K PiAgICAgIH0gcmVnY2xhc3M7DQo+IA0KPiAgICBnZGJfYXNzZXJ0IChyZWdzICE9IE5VTEwpOw0K PiBAQCAtMTA1NSw2ICsxMDg4LDkgQEAgaTM4N19zdXBwbHlfeHNhdmUgKHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsIGludA0KPiByZWdudW0sDQo+IA0KPiAgICBpZiAocmVnbnVtID09IC0xKQ0K PiAgICAgIHJlZ2NsYXNzID0gYWxsOw0KPiArICBlbHNlIGlmIChyZWdudW0gPj0gSTM4N19SMTZf UkVHTlVNICh0ZGVwKQ0KPiArCSAgICYmIHJlZ251bSA8IEkzODdfQVBYX0VORF9SRUdOVU0gKHRk ZXApKQ0KPiArICAgIHJlZ2NsYXNzID0gYXB4Ow0KPiAgICBlbHNlIGlmIChyZWdudW0gPj0gSTM4 N19QS1JVX1JFR05VTSAodGRlcCkNCj4gIAkgICAmJiByZWdudW0gPCBJMzg3X1BLRVlTRU5EX1JF R05VTSAodGRlcCkpDQo+ICAgICAgcmVnY2xhc3MgPSBwa2V5czsNCj4gQEAgLTExMDEsNiArMTEz NywxMyBAQCBpMzg3X3N1cHBseV94c2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50 DQo+IHJlZ251bSwNCj4gICAgICBjYXNlIG5vbmU6DQo+ICAgICAgICBicmVhazsNCj4gDQo+ICsg ICAgY2FzZSBhcHg6DQo+ICsgICAgICBpZiAoKGNsZWFyX2J2ICYgWDg2X1hTVEFURV9BUFhfRikp DQo+ICsJcmVnY2FjaGUtPnJhd19zdXBwbHlfemVyb2VkIChyZWdudW0pOw0KPiArICAgICAgZWxz ZQ0KPiArCXJlZ2NhY2hlLT5yYXdfc3VwcGx5IChyZWdudW0sIFhTQVZFX0FQWF9FR1BSX0FERFIg KHRkZXAsIHJlZ3MsDQo+IHJlZ251bSkpOw0KPiArICAgICAgcmV0dXJuOw0KPiArDQo+ICAgICAg Y2FzZSBwa2V5czoNCj4gICAgICAgIGlmICgoY2xlYXJfYnYgJiBYODZfWFNUQVRFX1BLUlUpKQ0K PiAgCXJlZ2NhY2hlLT5yYXdfc3VwcGx5X3plcm9lZCAocmVnbnVtKTsNCj4gQEAgLTEyNzYsNiAr MTMxOSwyNSBAQCBpMzg3X3N1cHBseV94c2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwg aW50DQo+IHJlZ251bSwNCj4gIAkgICAgfQ0KPiAgCX0NCj4gDQo+ICsgICAgICAvKiBIYW5kbGUg dGhlIEFQWCByZWdpc3Rlci4gICovDQo+ICsgICAgICBpZiAoKHRkZXAtPnhjcjAgJiBYODZfWFNU QVRFX0FQWF9GKSAhPSAwKQ0KPiArCXsNCj4gKwkgIGlmICgoY2xlYXJfYnYgJiBYODZfWFNUQVRF X0FQWF9GKSAhPSAwKQ0KPiArCSAgICB7DQo+ICsJICAgICAgZm9yIChpID0gSTM4N19SMTZfUkVH TlVNICh0ZGVwKTsNCj4gKwkJICAgaSA8IEkzODdfQVBYX0VORF9SRUdOVU0gKHRkZXApOw0KPiAr CQkgICBpKyspDQo+ICsJCXJlZ2NhY2hlLT5yYXdfc3VwcGx5X3plcm9lZCAoaSk7DQo+ICsJICAg IH0NCj4gKwkgIGVsc2UNCj4gKwkgICAgew0KPiArCSAgICAgIGZvciAoaSA9IEkzODdfUjE2X1JF R05VTSAodGRlcCk7DQo+ICsJCSAgIGkgPCBJMzg3X0FQWF9FTkRfUkVHTlVNICh0ZGVwKTsNCj4g KwkJICAgaSsrKQ0KPiArCQlyZWdjYWNoZS0+cmF3X3N1cHBseSAoaSwgWFNBVkVfQVBYX0VHUFJf QUREUiAodGRlcCwgcmVncywNCj4gaSkpOw0KPiArCSAgICB9DQo+ICsJfQ0KPiArDQo+ICAgICAg ICAvKiBIYW5kbGUgdGhlIFhNTSByZWdpc3RlcnMuICAqLw0KPiAgICAgICAgaWYgKCh0ZGVwLT54 Y3IwICYgWDg2X1hTVEFURV9TU0UpKQ0KPiAgCXsNCj4gQEAgLTE0MzQsOCArMTQ5Niw5IEBAIGkz ODdfY29sbGVjdF94c2F2ZSAoY29uc3Qgc3RydWN0IHJlZ2NhY2hlDQo+ICpyZWdjYWNoZSwgaW50 IHJlZ251bSwNCj4gICAgICAgIGF2eDUxMl95bW1oX2F2eDUxMiA9IDB4ODAsDQo+ICAgICAgICBh dng1MTJfeG1tX2F2eDUxMiA9IDB4MTAwLA0KPiAgICAgICAgcGtleXMgPSAweDIwMCwNCj4gKyAg ICAgIGFweCA9IDB4NDAwLA0KPiAgICAgICAgYWxsID0geDg3IHwgc3NlIHwgYXZ4aCB8IGF2eDUx Ml9rIHwgYXZ4NTEyX3ptbTBfaCB8IGF2eDUxMl96bW0xNl9oDQo+IC0JICAgIHwgYXZ4NTEyX3lt bWhfYXZ4NTEyIHwgYXZ4NTEyX3htbV9hdng1MTIgfCBwa2V5cw0KPiArCSAgICB8IGF2eDUxMl95 bW1oX2F2eDUxMiB8IGF2eDUxMl94bW1fYXZ4NTEyIHwgcGtleXMgfCBhcHgNCj4gICAgICB9IHJl Z2NsYXNzOw0KPiANCj4gICAgZ2RiX2Fzc2VydCAodGRlcC0+c3QwX3JlZ251bSA+PSBJMzg2X1NU MF9SRUdOVU0pOw0KPiBAQCAtMTQ0Myw2ICsxNTA2LDkgQEAgaTM4N19jb2xsZWN0X3hzYXZlIChj b25zdCBzdHJ1Y3QgcmVnY2FjaGUNCj4gKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLA0KPiANCj4gICAg aWYgKHJlZ251bSA9PSAtMSkNCj4gICAgICByZWdjbGFzcyA9IGFsbDsNCj4gKyAgZWxzZSBpZiAo cmVnbnVtID49IEkzODdfUjE2X1JFR05VTSAodGRlcCkNCj4gKwkgICAmJiByZWdudW0gPCBJMzg3 X0FQWF9FTkRfUkVHTlVNICh0ZGVwKSkNCj4gKyAgICByZWdjbGFzcyA9IGFweDsNCj4gICAgZWxz ZSBpZiAocmVnbnVtID49IEkzODdfUEtSVV9SRUdOVU0gKHRkZXApDQo+ICAJICAgJiYgcmVnbnVt IDwgSTM4N19QS0VZU0VORF9SRUdOVU0gKHRkZXApKQ0KPiAgICAgIHJlZ2NsYXNzID0gcGtleXM7 DQo+IEBAIC0xNTA3LDYgKzE1NzMsMTQgQEAgaTM4N19jb2xsZWN0X3hzYXZlIChjb25zdCBzdHJ1 Y3QgcmVnY2FjaGUNCj4gKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLA0KPiAgICAgICBzZWVtIGp1c3Rp ZmllZCBhdCB0aGlzIHBvaW50LiAgKi8NCj4gICAgaWYgKGNsZWFyX2J2KQ0KPiAgICAgIHsNCj4g KyAgICAgIGlmICgoY2xlYXJfYnYgJiBYODZfWFNUQVRFX0FQWF9GKSkNCj4gKwl7DQo+ICsJICBm b3IgKGkgPSBJMzg3X1IxNl9SRUdOVU0gKHRkZXApOw0KPiArCSAgICAgICBpIDwgSTM4N19BUFhf RU5EX1JFR05VTSAodGRlcCk7DQo+ICsJICAgICAgIGkrKykNCj4gKwkgICAgbWVtc2V0IChYU0FW RV9BUFhfRUdQUl9BRERSICh0ZGVwLCByZWdzLCBpKSwgMCwgOCk7DQo+ICsJfQ0KPiArDQo+ICAg ICAgICBpZiAoKGNsZWFyX2J2ICYgWDg2X1hTVEFURV9QS1JVKSkNCj4gIAlmb3IgKGkgPSBJMzg3 X1BLUlVfUkVHTlVNICh0ZGVwKTsNCj4gIAkgICAgIGkgPCBJMzg3X1BLRVlTRU5EX1JFR05VTSAo dGRlcCk7IGkrKykNCj4gQEAgLTE1NzMsNiArMTY0NywyMyBAQCBpMzg3X2NvbGxlY3RfeHNhdmUg KGNvbnN0IHN0cnVjdCByZWdjYWNoZQ0KPiAqcmVnY2FjaGUsIGludCByZWdudW0sDQo+IA0KPiAg ICBpZiAocmVnY2xhc3MgPT0gYWxsKQ0KPiAgICAgIHsNCj4gKyAgICAgIC8qIENoZWNrIGlmIGFu eSBBUFggcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgKi8NCj4gKyAgICAgIGlmICgodGRlcC0+eGNy MCAmIFg4Nl9YU1RBVEVfQVBYX0YpKQ0KPiArCXsNCj4gKwkgIGZvciAoaSA9IEkzODdfUjE2X1JF R05VTSAodGRlcCk7DQo+ICsJICAgICAgIGkgPCBJMzg3X0FQWF9FTkRfUkVHTlVNICh0ZGVwKTsN Cj4gKwkgICAgICAgaSsrKQ0KPiArCSAgICB7DQo+ICsJICAgICAgcmVnY2FjaGUtPnJhd19jb2xs ZWN0IChpLCByYXcpOw0KPiArCSAgICAgIHAgPSBYU0FWRV9BUFhfRUdQUl9BRERSICh0ZGVwLCBy ZWdzLCBpKTsNCj4gKwkgICAgICBpZiAobWVtY21wIChyYXcsIHAsIDgpICE9IDApDQo+ICsJCXsN Cj4gKwkJICB4c3RhdGVfYnYgfD0gWDg2X1hTVEFURV9BUFhfRjsNCj4gKwkJICBtZW1jcHkgKHAs IHJhdywgOCk7DQo+ICsJCX0NCj4gKwkgICAgfQ0KPiArCX0NCj4gKw0KPiAgICAgICAgLyogQ2hl Y2sgaWYgYW55IFBLRVlTIHJlZ2lzdGVycyBhcmUgY2hhbmdlZC4gICovDQo+ICAgICAgICBpZiAo KHRkZXAtPnhjcjAgJiBYODZfWFNUQVRFX1BLUlUpKQ0KPiAgCWZvciAoaSA9IEkzODdfUEtSVV9S RUdOVU0gKHRkZXApOw0KPiBAQCAtMTcyNSw2ICsxODE2LDE2IEBAIGkzODdfY29sbGVjdF94c2F2 ZSAoY29uc3Qgc3RydWN0IHJlZ2NhY2hlDQo+ICpyZWdjYWNoZSwgaW50IHJlZ251bSwNCj4gIAlk ZWZhdWx0Og0KPiAgCSAgaW50ZXJuYWxfZXJyb3IgKF8oImludmFsaWQgaTM4NyByZWdjbGFzcyIp KTsNCj4gDQo+ICsJY2FzZSBhcHg6DQo+ICsJICByZWdjYWNoZS0+cmF3X2NvbGxlY3QgKHJlZ251 bSwgcmF3KTsNCj4gKwkgIHAgPSBYU0FWRV9BUFhfRUdQUl9BRERSICh0ZGVwLCByZWdzLCByZWdu dW0pOw0KPiArCSAgaWYgKG1lbWNtcCAocmF3LCBwLCA4KSkNCj4gKwkgICAgew0KPiArCSAgICAg IHhzdGF0ZV9idiB8PSBYODZfWFNUQVRFX0FQWF9GOw0KPiArCSAgICAgIG1lbWNweSAocCwgcmF3 LCA4KTsNCj4gKwkgICAgfQ0KPiArCSAgYnJlYWs7DQo+ICsNCj4gIAljYXNlIHBrZXlzOg0KPiAg CSAgLyogVGhpcyBpcyBhIFBLRVlTIHJlZ2lzdGVyLiAgKi8NCj4gIAkgIHAgPSBYU0FWRV9QS0VZ U19BRERSICh0ZGVwLCByZWdzLCByZWdudW0pOw0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2kzODctdGRl cC5oIGIvZ2RiL2kzODctdGRlcC5oDQo+IGluZGV4IDVkMDYzNTAyYmNlLi5mMDI5YzFlNTExOSAx MDA2NDQNCj4gLS0tIGEvZ2RiL2kzODctdGRlcC5oDQo+ICsrKyBiL2dkYi9pMzg3LXRkZXAuaA0K PiBAQCAtMzcsNiArMzcsOSBAQCBzdHJ1Y3QgeDg2X3hzYXZlX2xheW91dDsNCj4gICNkZWZpbmUg STM4N19OVU1fWU1NX1JFR1ModGRlcCkgKCh0ZGVwKS0+bnVtX3ltbV9yZWdzKQ0KPiAgI2RlZmlu ZSBJMzg3X1lNTTBIX1JFR05VTSh0ZGVwKSAoKHRkZXApLT55bW0waF9yZWdudW0pDQo+IA0KPiAr I2RlZmluZSBJMzg3X1IxNl9SRUdOVU0odGRlcCkgKCh0ZGVwKS0+cjE2X3JlZ251bSkNCj4gKyNk ZWZpbmUgSTM4N19OVU1fQVBYX1JFR1ModGRlcCkgKCh0ZGVwKS0+bnVtX2FweF9yZWdzKQ0KPiAr DQo+ICAvKiBTZXQgb2YgY29uc3RhbnRzIHVzZWQgZm9yIDMyIGFuZCA2NC1iaXQuICAqLw0KPiAg I2RlZmluZSBJMzg3X05VTV9LX1JFR1MgOA0KPiAgI2RlZmluZSBJMzg3X05VTV9QS0VZU19SRUdT IDENCj4gQEAgLTc1LDYgKzc4LDkgQEAgc3RydWN0IHg4Nl94c2F2ZV9sYXlvdXQ7DQo+ICAjZGVm aW5lIEkzODdfWE1NX0FWWDUxMl9FTkRfUkVHTlVNKHRkZXApIFwNCj4gICAgKEkzODdfWE1NMTZf UkVHTlVNICh0ZGVwKSArIEkzODdfTlVNX1hNTV9BVlg1MTJfUkVHUyAodGRlcCkpDQo+IA0KPiAr I2RlZmluZSBJMzg3X0FQWF9FTkRfUkVHTlVNKHRkZXApIFwNCj4gKyAgKEkzODdfUjE2X1JFR05V TSAodGRlcCkgKyBJMzg3X05VTV9BUFhfUkVHUyAodGRlcCkpDQo+ICsNCj4gICNkZWZpbmUgSTM4 N19QS0VZU0VORF9SRUdOVU0odGRlcCkgXA0KPiAgICAoSTM4N19QS1JVX1JFR05VTSAodGRlcCkg KyBJMzg3X05VTV9QS0VZU19SRUdTKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2dkYi9uYXQveDg2LXhz dGF0ZS5jIGIvZ2RiL25hdC94ODYteHN0YXRlLmMNCj4gaW5kZXggYzQ1NTcwMTc5YTYuLmYwZjBi MDBlODU5IDEwMDY0NA0KPiAtLS0gYS9nZGIvbmF0L3g4Ni14c3RhdGUuYw0KPiArKysgYi9nZGIv bmF0L3g4Ni14c3RhdGUuYw0KPiBAQCAtNTYsNiArNTYsNyBAQCB4ODZfZmV0Y2hfeHNhdmVfbGF5 b3V0ICh1aW50NjRfdCB4Y3IwLCBpbnQgbGVuKQ0KPiAgICB4ODZfeHNhdmVfbGF5b3V0IGxheW91 dDsNCj4gICAgbGF5b3V0LnNpemVvZl94c2F2ZSA9IGxlbjsNCj4gICAgbGF5b3V0LmF2eF9vZmZz ZXQgPSB4c2F2ZV9mZWF0dXJlX29mZnNldCAoeGNyMCwgWDg2X1hTVEFURV9BVlhfSUQpOw0KPiAr ICBsYXlvdXQuYXB4X29mZnNldCA9IHhzYXZlX2ZlYXR1cmVfb2Zmc2V0ICh4Y3IwLCBYODZfWFNU QVRFX0FQWF9GX0lEKTsNCj4gICAgbGF5b3V0Lmtfb2Zmc2V0ID0geHNhdmVfZmVhdHVyZV9vZmZz ZXQgKHhjcjAsIFg4Nl9YU1RBVEVfS19JRCk7DQo+ICAgIGxheW91dC56bW1faF9vZmZzZXQgPSB4 c2F2ZV9mZWF0dXJlX29mZnNldCAoeGNyMCwgWDg2X1hTVEFURV9aTU1fSF9JRCk7DQo+ICAgIGxh eW91dC56bW1fb2Zmc2V0ID0geHNhdmVfZmVhdHVyZV9vZmZzZXQgKHhjcjAsIFg4Nl9YU1RBVEVf Wk1NX0lEKTsNCj4gZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQtZGVidWcuaCBiL2dkYi90YXJnZXQt ZGVidWcuaA0KPiBpbmRleCBjODZhZmZiYzgzOC4uOTQ5ODQ3YjE4MWMgMTAwNjQ0DQo+IC0tLSBh L2dkYi90YXJnZXQtZGVidWcuaA0KPiArKysgYi9nZGIvdGFyZ2V0LWRlYnVnLmgNCj4gQEAgLTM4 MCw2ICszODAsNyBAQCB0YXJnZXRfZGVidWdfcHJpbnRfeDg2X3hzYXZlX2xheW91dCAoY29uc3QN Cj4geDg2X3hzYXZlX2xheW91dCAmbGF5b3V0KQ0KPiAgICBQT0ZGUyh6bW1faCk7DQo+ICAgIFBP RkZTKHptbSk7DQo+ICAgIFBPRkZTKHBrcnUpOw0KPiArICBQT0ZGUyhhcHgpOw0KPiANCj4gICN1 bmRlZiBQT0ZGUw0KPiANCj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1k NjQtYXB4LWNvcmUuYw0KPiBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYXB4LWNvcmUu Yw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uMzRmNGRhYzg4 NTENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0 LWFweC1jb3JlLmMNCj4gQEAgLTAsMCArMSw4OCBAQA0KPiArLyogQ29weXJpZ2h0IDIwMjQtMjAy NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKw0KPiArICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR0RCLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArICAgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkN Cj4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yDQo+ICsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u Lg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ICsgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQo+ICsgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArDQo+ICsgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQ0KPiArICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICsNCj4gKyAgIFRlc3QgcHJvZ3JhbSBmb3IgQVBY IEV4dGVuZGVkIEdQUnMgKEVHUFJzKS4gICovDQo+ICsNCj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4N Cj4gKw0KPiArdm9sYXRpbGUgaW50IHNob3VsZF9kdW1wX2NvcmVfcCA9IDE7DQo+ICsNCj4gK2xv bmcgZGF0YVtdID0gew0KPiArICAweDAwMDAwMDAwMDQwMzAyMDEsDQo+ICsgIDB4MDAwMDAwMDAx NDEzMTIxMSwNCj4gKyAgMHgwMDAwMDAwMDI0MjMyMjIxLA0KPiArICAweDAwMDAwMDAwMzQzMzMy MzEsDQo+ICsgIDB4MDAwMDAwMDA0NDQzNDI0MSwNCj4gKyAgMHgwMDAwMDAwMDU0NTM1MjUxLA0K PiArICAweDAwMDAwMDAwNjQ2MzYyNjEsDQo+ICsgIDB4MDAwMDAwMDA3NDczNzI3MSwNCj4gKyAg MHgwMDAwMDAwMDg0ODM4MjgxLA0KPiArICAweDAwMDAwMDAwOTQ5MzkyOTEsDQo+ICsgIDB4MDAw MDAwMDBhNGEzYTJhMSwNCj4gKyAgMHgwMDAwMDAwMGI0YjNiMmIxLA0KPiArICAweDAwMDAwMDAw YzRjM2MyYzEsDQo+ICsgIDB4MDAwMDAwMDBkNGQzZDJkMSwNCj4gKyAgMHgwMDAwMDAwMGU0ZTNl MmUxLA0KPiArICAweDAwMDAwMDAwZjRmM2YyZjEsDQo+ICt9Ow0KPiArDQo+ICtpbnQNCj4gK21h aW4gKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gK3sNCj4gKyAgcmVnaXN0ZXIgbG9uZyByMTYg YXNtICgicjE2Iik7DQo+ICsgIHJlZ2lzdGVyIGxvbmcgcjE3IGFzbSAoInIxNyIpOw0KPiArICBy ZWdpc3RlciBsb25nIHIxOCBhc20gKCJyMTgiKTsNCj4gKyAgcmVnaXN0ZXIgbG9uZyByMTkgYXNt ICgicjE5Iik7DQo+ICsgIHJlZ2lzdGVyIGxvbmcgcjIwIGFzbSAoInIyMCIpOw0KPiArICByZWdp c3RlciBsb25nIHIyMSBhc20gKCJyMjEiKTsNCj4gKyAgcmVnaXN0ZXIgbG9uZyByMjIgYXNtICgi cjIyIik7DQo+ICsgIHJlZ2lzdGVyIGxvbmcgcjIzIGFzbSAoInIyMyIpOw0KPiArICByZWdpc3Rl ciBsb25nIHIyNCBhc20gKCJyMjQiKTsNCj4gKyAgcmVnaXN0ZXIgbG9uZyByMjUgYXNtICgicjI1 Iik7DQo+ICsgIHJlZ2lzdGVyIGxvbmcgcjI2IGFzbSAoInIyNiIpOw0KPiArICByZWdpc3RlciBs b25nIHIyNyBhc20gKCJyMjciKTsNCj4gKyAgcmVnaXN0ZXIgbG9uZyByMjggYXNtICgicjI4Iik7 DQo+ICsgIHJlZ2lzdGVyIGxvbmcgcjI5IGFzbSAoInIyOSIpOw0KPiArICByZWdpc3RlciBsb25n IHIzMCBhc20gKCJyMzAiKTsNCj4gKyAgcmVnaXN0ZXIgbG9uZyByMzEgYXNtICgicjMxIik7DQo+ ICsNCj4gKyAgYXNtICgibW92IDAoJTApLCAlJXIxNlxuXHQiDQo+ICsgICAgICAgIm1vdiA4KCUw KSwgJSVyMTdcblx0Ig0KPiArICAgICAgICJtb3YgMTYoJTApLCAlJXIxOFxuXHQiDQo+ICsgICAg ICAgIm1vdiAyNCglMCksICUlcjE5XG5cdCINCj4gKyAgICAgICAibW92IDMyKCUwKSwgJSVyMjBc blx0Ig0KPiArICAgICAgICJtb3YgNDAoJTApLCAlJXIyMVxuXHQiDQo+ICsgICAgICAgIm1vdiA0 OCglMCksICUlcjIyXG5cdCINCj4gKyAgICAgICAibW92IDU2KCUwKSwgJSVyMjNcblx0Ig0KPiAr ICAgICAgICJtb3YgNjQoJTApLCAlJXIyNFxuXHQiDQo+ICsgICAgICAgIm1vdiA3MiglMCksICUl cjI1XG5cdCINCj4gKyAgICAgICAibW92IDgwKCUwKSwgJSVyMjZcblx0Ig0KPiArICAgICAgICJt b3YgODgoJTApLCAlJXIyN1xuXHQiDQo+ICsgICAgICAgIm1vdiA5NiglMCksICUlcjI4XG5cdCIN Cj4gKyAgICAgICAibW92IDEwNCglMCksICUlcjI5XG5cdCINCj4gKyAgICAgICAibW92IDExMigl MCksICUlcjMwXG5cdCINCj4gKyAgICAgICAibW92IDEyMCglMCksICUlcjMxXG5cdCINCj4gKyAg ICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLw0KPiArICAgICAgIDogInIiIChkYXRhKQ0K PiArICAgICAgIDogInIxNiIsICJyMTciLCAicjE4IiwgInIxOSIsICJyMjAiLCAicjIxIiwgInIy MiIsICJyMjMiLA0KPiArCSAicjI0IiwgInIyNSIsICJyMjYiLCAicjI3IiwgInIyOCIsICJyMjki LCAicjMwIiwgInIzMSIpOw0KPiArDQo+ICsgIGlmIChzaG91bGRfZHVtcF9jb3JlX3ApIC8qIGJy ZWFrIGhlcmUgZm9yIGdjb3JlLCBvciBjcmFzaCBmb3IgT1MgY29yZWZpbGUuICovDQo+ICsgICAg YWJvcnQgKCk7DQo+ICsNCj4gKyAgcmV0dXJuIDA7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWFweC1jb3JlZmlsZS5jDQo+IGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9hbWQ2NC1hcHgtY29yZWZpbGUuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwMDAwMC4uOTBjOTBlMjc5OTINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWFweC1jb3JlZmlsZS5jDQo+IEBAIC0wLDAg KzEsNzEgQEANCj4gKy8qIENvcHlyaWdodCAyMDI0LTIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuDQo+ICsNCj4gKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4NCj4gKw0KPiAr ICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkNCj4gKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ICsgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KPiArICAg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKw0KPiArICAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+ ICsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZg0KPiArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiArICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4NCj4gKw0KPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gKyAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ Lg0KPiArDQo+ICsgICBUZXN0IHByb2dyYW0gZm9yIEludGVsIEFQWCBFeHRlbmRlZCBHUFJzIChF R1BScykgaW4gY29yZWZpbGVzLiAgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiAr DQo+ICt2b2xhdGlsZSBpbnQgc2hvdWxkX2R1bXBfY29yZV9wID0gMTsNCj4gKw0KPiArbG9uZyBk YXRhW10gPSB7DQo+ICsgIDB4MDAwMDAwMDAwNDAzMDIwMSwNCj4gKyAgMHgwMDAwMDAwMDE0MTMx MjExLA0KPiArICAweDAwMDAwMDAwMjQyMzIyMjEsDQo+ICsgIDB4MDAwMDAwMDAzNDMzMzIzMSwN Cj4gKyAgMHgwMDAwMDAwMDQ0NDM0MjQxLA0KPiArICAweDAwMDAwMDAwNTQ1MzUyNTEsDQo+ICsg IDB4MDAwMDAwMDA2NDYzNjI2MSwNCj4gKyAgMHgwMDAwMDAwMDc0NzM3MjcxLA0KPiArICAweDAw MDAwMDAwODQ4MzgyODEsDQo+ICsgIDB4MDAwMDAwMDA5NDkzOTI5MSwNCj4gKyAgMHgwMDAwMDAw MGE0YTNhMmExLA0KPiArICAweDAwMDAwMDAwYjRiM2IyYjEsDQo+ICsgIDB4MDAwMDAwMDBjNGMz YzJjMSwNCj4gKyAgMHgwMDAwMDAwMGQ0ZDNkMmQxLA0KPiArICAweDAwMDAwMDAwZTRlM2UyZTEs DQo+ICsgIDB4MDAwMDAwMDBmNGYzZjJmMSwNCj4gK307DQo+ICsNCj4gK2ludA0KPiArbWFpbiAo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiArew0KPiArICBhc20gKCJtb3YgMCglMCksICUlcjE2 XG5cdCINCj4gKyAgICAgICAibW92IDgoJTApLCAlJXIxN1xuXHQiDQo+ICsgICAgICAgIm1vdiAx NiglMCksICUlcjE4XG5cdCINCj4gKyAgICAgICAibW92IDI0KCUwKSwgJSVyMTlcblx0Ig0KPiAr ICAgICAgICJtb3YgMzIoJTApLCAlJXIyMFxuXHQiDQo+ICsgICAgICAgIm1vdiA0MCglMCksICUl cjIxXG5cdCINCj4gKyAgICAgICAibW92IDQ4KCUwKSwgJSVyMjJcblx0Ig0KPiArICAgICAgICJt b3YgNTYoJTApLCAlJXIyM1xuXHQiDQo+ICsgICAgICAgIm1vdiA2NCglMCksICUlcjI0XG5cdCIN Cj4gKyAgICAgICAibW92IDcyKCUwKSwgJSVyMjVcblx0Ig0KPiArICAgICAgICJtb3YgODAoJTAp LCAlJXIyNlxuXHQiDQo+ICsgICAgICAgIm1vdiA4OCglMCksICUlcjI3XG5cdCINCj4gKyAgICAg ICAibW92IDk2KCUwKSwgJSVyMjhcblx0Ig0KPiArICAgICAgICJtb3YgMTA0KCUwKSwgJSVyMjlc blx0Ig0KPiArICAgICAgICJtb3YgMTEyKCUwKSwgJSVyMzBcblx0Ig0KPiArICAgICAgICJtb3Yg MTIwKCUwKSwgJSVyMzFcblx0Ig0KPiArICAgICAgIDogLyogbm8gb3V0cHV0IG9wZXJhbmRzICov DQo+ICsgICAgICAgOiAiciIgKGRhdGEpDQo+ICsgICAgICAgOiAicjE2IiwgInIxNyIsICJyMTgi LCAicjE5IiwgInIyMCIsICJyMjEiLCAicjIyIiwgInIyMyIsDQo+ICsJICJyMjQiLCAicjI1Iiwg InIyNiIsICJyMjciLCAicjI4IiwgInIyOSIsICJyMzAiLCAicjMxIik7DQo+ICsNCj4gKyAgaWYg KHNob3VsZF9kdW1wX2NvcmVfcCkgLyogYnJlYWsgaGVyZSBmb3IgZ2NvcmUsIG9yIGNyYXNoIGZv ciBPUyBjb3JlZmlsZS4gKi8NCj4gKyAgICBhYm9ydCAoKTsNCj4gKw0KPiArICByZXR1cm4gMDsN Cj4gK30NCj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYXB4LWNv cmVmaWxlLmV4cA0KPiBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYXB4LWNvcmVmaWxl LmV4cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uZWQxYjRi YzE0MmINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2Ft ZDY0LWFweC1jb3JlZmlsZS5leHANCj4gQEAgLTAsMCArMSw2NyBAQA0KPiArIyBDb3B5cmlnaHQg MjAyNC0yMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPiArDQo+ICsjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5DQo+ICsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ICsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ICsjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ICsjDQo+ICsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KPiArIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0K PiArIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlDQo+ICsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuDQo+ICsjDQo+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ICsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiArDQo+ICsjIFBs ZWFzZSBlbWFpbCBhbnkgYnVncywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBm aWxlIHRvOg0KPiArIyBidWctZ2RiQGdudS5vcmcNCj4gKw0KPiArIyBUZXN0IEludGVsIEFQWCBj b3JlZmlsZXMuDQo+ICsNCj4gK3JlcXVpcmUgYWxsb3dfYXB4X3Rlc3RzDQo+ICsNCj4gK3N0YW5k YXJkX3Rlc3RmaWxlDQo+ICsNCj4gK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0 byBwcmVwYXJlIiAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwNCj4gKwl7ZGVidWcgYWRkaXRpb25h bF9mbGFncz0tbWFweGZ9XSB9IHsNCj4gKyAgICByZXR1cm4NCj4gK30NCj4gKw0KPiArcHJvYyB0 ZXN0X2FweF9jb3JlZmlsZXMge2NvcmVfZmlsZW5hbWV9IHsNCj4gKyAgICAjIFJlc3RhcnQgZ2Ri IGFuZCBsb2FkIHRoZSBjb3JlZmlsZS4NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICQ6OnRlc3RmaWxl DQo+ICsNCj4gKyAgICBnZGJfdGVzdCAiY29yZSAkY29yZV9maWxlbmFtZSIgIkNvcmUgd2FzIGdl bmVyYXRlZCBieSAuKiIgXA0KPiArCSJsb2FkIGNvcmVmaWxlIg0KPiArDQo+ICsgICAgZm9yIHsg c2V0IHIgMTYgfSB7ICRyIDw9IDMxICB9IHsgaW5jciByIH0gew0KPiArCXNldCBoZXhyIFtmb3Jt YXQgJXggW2V4cHIgeyRyLTE2fV1dDQo+ICsJZ2RiX3Rlc3QgInByaW50L3ogXCRyJHIiIFwNCj4g KwkgICAgIj0gMHgwMDAwMDAwMCR7aGV4cn00JHtoZXhyfTMke2hleHJ9MiR7aGV4cn0xIg0KPiAr ICAgIH0NCj4gK30NCj4gKw0KPiArd2l0aF90ZXN0X3ByZWZpeCAiZ2NvcmUgY29yZWZpbGUiIHsN Cj4gKyAgICBpZiB7ICFbcnVudG9fbWFpbl0gfSB7DQo+ICsJcmV0dXJuDQo+ICsgICAgfQ0KPiAr ICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHNob3VsZF9kdW1wX2NvcmVfcD0wIg0KPiArDQo+ ICsgICAgc2V0IGxpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrIGhlcmUiXQ0KPiArICAg IGdkYl9icmVha3BvaW50ICRsaW5lDQo+ICsgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImJyZWFrIGhlcmUiICIuKiRzcmNmaWxlOiRsaW5lLioiDQo+ICsNCj4gKyAgICBzZXQgZ2NvcmVm aWxlICRiaW5maWxlLmdjb3JlDQo+ICsgICAgaWYgeyBbZ2RiX2djb3JlX2NtZCAkZ2NvcmVmaWxl ICJzYXZlIGEgY29yZWZpbGUiXSB9IHsNCj4gKwl0ZXN0X2FweF9jb3JlZmlsZXMgJGdjb3JlZmls ZQ0KPiArICAgIH0NCj4gK30NCj4gKw0KPiArd2l0aF90ZXN0X3ByZWZpeCAiT1MgZ2VuZXJhdGVk IGNvcmVmaWxlIiB7DQo+ICsgICAgc2V0IGNvcmVmaWxlIFtjb3JlX2ZpbmQgJGJpbmZpbGVdDQo+ ICsgICAgaWYgeyAkY29yZWZpbGUgZXEgIiIgfSB7DQo+ICsJdW5zdXBwb3J0ZWQgInVuYWJsZSB0 byBnZW5lcmF0ZSBjb3JlIGZpbGUiDQo+ICsJcmV0dXJuDQo+ICsgICAgfQ0KPiArICAgIHRlc3Rf YXB4X2NvcmVmaWxlcyAkY29yZWZpbGUNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gvYW1kNjQtYXB4LmMNCj4gYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0 LWFweC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5jOTUz OWQxNmNmMQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv YW1kNjQtYXB4LmMNCj4gQEAgLTAsMCArMSw2NiBAQA0KPiArLyogQ29weXJpZ2h0IDIwMjQtMjAy NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKw0KPiArICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR0RCLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArICAgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkN Cj4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yDQo+ICsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u Lg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ICsgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQo+ICsgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArDQo+ICsgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQ0KPiArICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICsNCj4gKyAgIFRlc3QgcHJvZ3JhbSBmb3IgSW50 ZWwgQVBYIEV4dGVuZGVkIEdQUnMgKEVHUFJzKS4gICovDQo+ICsNCj4gK2xvbmcgZGF0YVtdID0g ew0KPiArICAweDAwMDAwMDAwMDQwMzAyMDEsDQo+ICsgIDB4MDAwMDAwMDAxNDEzMTIxMSwNCj4g KyAgMHgwMDAwMDAwMDI0MjMyMjIxLA0KPiArICAweDAwMDAwMDAwMzQzMzMyMzEsDQo+ICsgIDB4 MDAwMDAwMDA0NDQzNDI0MSwNCj4gKyAgMHgwMDAwMDAwMDU0NTM1MjUxLA0KPiArICAweDAwMDAw MDAwNjQ2MzYyNjEsDQo+ICsgIDB4MDAwMDAwMDA3NDczNzI3MSwNCj4gKyAgMHgwMDAwMDAwMDg0 ODM4MjgxLA0KPiArICAweDAwMDAwMDAwOTQ5MzkyOTEsDQo+ICsgIDB4MDAwMDAwMDBhNGEzYTJh MSwNCj4gKyAgMHgwMDAwMDAwMGI0YjNiMmIxLA0KPiArICAweDAwMDAwMDAwYzRjM2MyYzEsDQo+ ICsgIDB4MDAwMDAwMDBkNGQzZDJkMSwNCj4gKyAgMHgwMDAwMDAwMGU0ZTNlMmUxLA0KPiArICAw eDAwMDAwMDAwZjRmM2YyZjEsDQo+ICt9Ow0KPiArDQo+ICtpbnQNCj4gK21haW4gKGludCBhcmdj LCBjaGFyICoqYXJndikNCj4gK3sNCj4gKyAgYXNtICgibW92IDAoJTApLCAlJXIxNlxuXHQiDQo+ ICsgICAgICAgIm1vdiA4KCUwKSwgJSVyMTdcblx0Ig0KPiArICAgICAgICJtb3YgMTYoJTApLCAl JXIxOFxuXHQiDQo+ICsgICAgICAgIm1vdiAyNCglMCksICUlcjE5XG5cdCINCj4gKyAgICAgICAi bW92IDMyKCUwKSwgJSVyMjBcblx0Ig0KPiArICAgICAgICJtb3YgNDAoJTApLCAlJXIyMVxuXHQi DQo+ICsgICAgICAgIm1vdiA0OCglMCksICUlcjIyXG5cdCINCj4gKyAgICAgICAibW92IDU2KCUw KSwgJSVyMjNcblx0Ig0KPiArICAgICAgICJtb3YgNjQoJTApLCAlJXIyNFxuXHQiDQo+ICsgICAg ICAgIm1vdiA3MiglMCksICUlcjI1XG5cdCINCj4gKyAgICAgICAibW92IDgwKCUwKSwgJSVyMjZc blx0Ig0KPiArICAgICAgICJtb3YgODgoJTApLCAlJXIyN1xuXHQiDQo+ICsgICAgICAgIm1vdiA5 NiglMCksICUlcjI4XG5cdCINCj4gKyAgICAgICAibW92IDEwNCglMCksICUlcjI5XG5cdCINCj4g KyAgICAgICAibW92IDExMiglMCksICUlcjMwXG5cdCINCj4gKyAgICAgICAibW92IDEyMCglMCks ICUlcjMxXG5cdCINCj4gKyAgICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLw0KPiArICAg ICAgIDogInIiIChkYXRhKQ0KPiArICAgICAgIDogInIxNiIsICJyMTciLCAicjE4IiwgInIxOSIs ICJyMjAiLCAicjIxIiwgInIyMiIsICJyMjMiLA0KPiArCSAicjI0IiwgInIyNSIsICJyMjYiLCAi cjI3IiwgInIyOCIsICJyMjkiLCAicjMwIiwgInIzMSIpOw0KPiArDQo+ICsgIGFzbSAoIm5vcCIp OyAvKiBicmVhayBoZXJlICovDQo+ICsNCj4gKyAgcmV0dXJuIDA7DQo+ICt9DQo+IGRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWFweC5leHANCj4gYi9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL2FtZDY0LWFweC5leHANCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAuLjc3ZDgzMWJhNzg2DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1hcHguZXhwDQo+IEBAIC0wLDAgKzEsNzcgQEANCj4g KyMgQ29weXJpZ2h0IDIwMjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4g Kw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiArIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KPiAr IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArIw0KPiArIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwN Cj4gKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YNCj4gKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiArIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLg0KPiArIw0KPiArIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiArIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4N Cj4gKw0KPiArIyBQbGVhc2UgZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRkaXRp b25zIHRvIHRoaXMgZmlsZSB0bzoNCj4gKyMgYnVnLWdkYkBnbnUub3JnDQo+ICsNCj4gKyMgVGVz dCBJbnRlbCBBUFggZHdvcmQsIHdvcmQsIGJ5dGUgYW5kIHJhdyByZWdpc3RlcnMuDQo+ICsNCj4g K3Byb2MgZ2V0X3JlZ192YWwgeyB0eXBlIHIgfSB7DQo+ICsgICAgc2V0IGhleHIgW2Zvcm1hdCAl eCBbZXhwciB7JHIgLSAxNn1dXQ0KPiArICAgIHN3aXRjaCAkdHlwZSB7DQo+ICsJImQiICB7IHJl dHVybiAweCR7aGV4cn00JHtoZXhyfTMke2hleHJ9MiR7aGV4cn0xIH0NCj4gKwkidyIgIHsgcmV0 dXJuIDB4JHtoZXhyfTIke2hleHJ9MSB9DQo+ICsJImwiICB7IHJldHVybiAweCR7aGV4cn0xIH0N Cj4gKwkiIiAgIHsgcmV0dXJuIDB4MDAwMDAwMDAke2hleHJ9NCR7aGV4cn0zJHtoZXhyfTIke2hl eHJ9MSB9DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICtwcm9jIGNoZWNrX3JlZ19jb250ZW50IHsg dHlwZSB9IHsNCj4gKyAgICBmb3IgeyBzZXQgciAxNiB9IHsgJHIgPD0gMzEgIH0geyBpbmNyIHIg fSB7DQo+ICsJc2V0IHJlZ3ZhbCBbZ2V0X3JlZ192YWwgJHR5cGUgJHJdDQo+ICsJZ2RiX3Rlc3Qg InByaW50L3ogXCRyJHIkdHlwZSIgIj0gJHJlZ3ZhbCINCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4g K3JlcXVpcmUgYWxsb3dfYXB4X3Rlc3RzDQo+ICsNCj4gK3N0YW5kYXJkX3Rlc3RmaWxlDQo+ICsN Cj4gK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAke3Rlc3Rm aWxlfSAke3NyY2ZpbGV9IFwNCj4gKwl7ZGVidWcgYWRkaXRpb25hbF9mbGFncz0tbWFweGZ9XSB9 IHsNCj4gKyAgICByZXR1cm4NCj4gK30NCj4gKw0KPiAraWYgeyAhW3J1bnRvX21haW5dIH0gew0K PiArICAgIHJldHVybg0KPiArfQ0KPiArDQo+ICtzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJl ciAiYnJlYWsgaGVyZSJdDQo+ICtnZGJfYnJlYWtwb2ludCAkbGluZQ0KPiArZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgImJyZWFrIGhlcmUiICIuKiRzcmNmaWxlOiRsaW5lLioiDQo+ICsNCj4g KyMgUnVuIHRlc3QgZm9yIGR3b3JkLCB3b3JkLCBieXRlIHBzZXVkbyByZWdpc3RlcnMsIGFzIHdl bGwgYXMgcmF3IHJlZ2lzdGVycy4NCj4gK3NldCByZWd0eXBlcyBbbGlzdCAgImQiICJ3IiAibCIg IiJdDQo+ICtzZXQgcmVndHlwZV9uYW1lcyBbbGlzdCAgImR3b3JkIiAid29yZCIgImJ5dGUiICJy YXciXQ0KPiArDQo+ICsjIENoZWNrIGluaXRpYWwgcmVnaXN0ZXIgY29udGVudCB3cml0dGVuIGJ5 IHRlc3Rwcm9ncmFtLg0KPiArZm9yZWFjaCB0eXBlICRyZWd0eXBlcyB0eXBlX25hbWUgJHJlZ3R5 cGVfbmFtZXMgew0KPiArICAgIHdpdGhfdGVzdF9wcmVmaXggIiR0eXBlX25hbWUgcmVnaXN0ZXIi IHsNCj4gKwljaGVja19yZWdfY29udGVudCAkdHlwZQ0KPiArICAgIH0NCj4gK30NCj4gKw0KPiAr IyBDaGVjayB3cml0aW5nIHJlZ2lzdGVycyB3aXRoIEdEQi4NCj4gK2ZvciB7IHNldCBpIDAgfSB7 ICRpIDwgW2xsZW5ndGggJHJlZ3R5cGVzXSB9IHsgaW5jciBpIH0gew0KPiArICAgIHNldCB0eXBl IFtsaW5kZXggJHJlZ3R5cGVzICRpXQ0KPiArICAgIHNldCB0eXBlX25hbWUgW2xpbmRleCAkcmVn dHlwZV9uYW1lcyAkaV0NCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICIkdHlwZV9uYW1lIHJlZ2lz dGVyIiB7DQo+ICsJZm9yIHsgc2V0IHIgMTYgfSB7ICRyIDw9IDMxICB9IHsgaW5jciByIH0gew0K PiArCSAgICBzZXQgdmFsIFtleHByIHsoJHIgLSAxNikgKyAkaX1dDQo+ICsJICAgIGdkYl90ZXN0 X25vX291dHB1dCAic2V0IHZhciBcJHIkciR0eXBlID0gJHZhbCINCj4gKwkgICAgZ2RiX3Rlc3Qg InByaW50IFwkciRyJHR5cGUiICI9ICR2YWwiDQo+ICsJfQ0KPiArICAgIH0NCj4gK30NCj4gZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwDQo+IGluZGV4IDQxZTlhOGM3MjFlLi4yODI1YjFhNzFmNyAxMDA2NDQNCj4gLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwDQo+IEBAIC00NzY1LDYgKzQ3NjUsNjQgQEAgZ2RiX2NhY2hpbmdfcHJvYyBhbGxvd19sYW1f dGVzdHMge30gew0KPiAgICAgIHJldHVybiAkYWxsb3dfbGFtX3Rlc3RzDQo+ICB9DQo+IA0KPiAr IyBSdW4gYSB0ZXN0IG9uIHRoZSB0YXJnZXQgdG8gc2VlIGlmIGl0IHN1cHBvcnRzIEFQWC4gIFJl dHVybiAxIGlmIHNvLA0KPiArIyAwIGlmIGl0IGRvZXMgbm90Lg0KPiArDQo+ICtnZGJfY2FjaGlu Z19wcm9jIGFsbG93X2FweF90ZXN0cyB7fSB7DQo+ICsgICAgZ2xvYmFsIHNyY2RpciBzdWJkaXIg Z2RiX3Byb21wdCBpbmZlcmlvcl9leGl0ZWRfcmUNCj4gKw0KPiArICAgIHNldCBtZSAiYWxsb3df YXB4X3Rlc3RzIg0KPiArICAgIGlmIHsgIVtpc3RhcmdldCAiaT84Ni0qLSoiXSAmJiAhW2lzdGFy Z2V0ICJ4ODZfNjQtKi0qIl0gfSB7DQo+ICsJdmVyYm9zZSAiJG1lOiAgdGFyZ2V0IGRvZXMgbm90 IHN1cHBvcnQgYXB4LCByZXR1cm5pbmcgMCIgMg0KPiArCXJldHVybiAwDQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgIyBDb21waWxlIGEgdGVzdCBwcm9ncmFtLg0KPiArICAgIHNldCBzcmMgew0KPiAr CWludCBkYXRhW10gPSB7MTIzNDV9Ow0KPiArDQo+ICsJaW50DQo+ICsJbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQ0KPiArCSAgew0KPiArCSAgICBhc20gKCJtb3YgMCglMCksICUlcjMwXG5c dCINCj4gKwkJIDogIC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLw0KPiArCQkgOiAiciIgKGRhdGEp KTsNCj4gKwkgICAgcmV0dXJuIDA7DQo+ICsJICB9DQo+ICsgICAgfQ0KPiArICAgIHNldCBjb21w aWxlX2ZsYWdzICJ7YWRkaXRpb25hbF9mbGFncz0tbWFweGZ9Ig0KPiArICAgIGlmIHsgIVtnZGJf c2ltcGxlX2NvbXBpbGUgJG1lICRzcmMgZXhlY3V0YWJsZSAkY29tcGlsZV9mbGFnc10gfSB7DQo+ ICsJcmV0dXJuIDANCj4gKyAgICB9DQo+ICsNCj4gKyAgICAjIE5vIGVycm9yIG1lc3NhZ2UsIGNv bXBpbGF0aW9uIHN1Y2NlZWRlZCBzbyBub3cgcnVuIGl0IHZpYSBnZGIuDQo+ICsNCj4gKyAgICBn ZGJfZXhpdA0KPiArICAgIGdkYl9zdGFydA0KPiArICAgIGdkYl9yZWluaXRpYWxpemVfZGlyICRz cmNkaXIvJHN1YmRpcg0KPiArICAgIGdkYl9sb2FkICIkb2JqIg0KPiArICAgIGdkYl9ydW5fY21k DQo+ICsgICAgZ2RiX2V4cGVjdCB7DQo+ICsJLXJlICIuKklsbGVnYWwgaW5zdHJ1Y3Rpb24uKiR7 Z2RiX3Byb21wdH0gJCIgew0KPiArCSAgICB2ZXJib3NlIC1sb2cgIiRtZTogIGFweCBoYXJkd2Fy ZSBub3QgZGV0ZWN0ZWQuIg0KPiArCSAgICBzZXQgYWxsb3dfYXB4X3Rlc3RzIDANCj4gKwl9DQo+ ICsJLXJlICIuKiRpbmZlcmlvcl9leGl0ZWRfcmUgbm9ybWFsbHkuKiR7Z2RiX3Byb21wdH0gJCIg ew0KPiArCSAgICB2ZXJib3NlIC1sb2cgIiRtZTogIGFweCBoYXJkd2FyZSBkZXRlY3RlZC4iDQo+ ICsJICAgIHNldCBhbGxvd19hcHhfdGVzdHMgMQ0KPiArCX0NCj4gKwlkZWZhdWx0IHsNCj4gKwkg ICAgd2FybmluZyAiXG4kbWU6ICBkZWZhdWx0IGNhc2UgdGFrZW4uIg0KPiArCSAgICBzZXQgYWxs b3dfYXB4X3Rlc3RzIDANCj4gKwl9DQo+ICsgICAgfQ0KPiArICAgIGdkYl9leGl0DQo+ICsgICAg cmVtb3RlX2ZpbGUgYnVpbGQgZGVsZXRlICRvYmoNCj4gKw0KPiArICAgIHZlcmJvc2UgIiRtZTog IHJldHVybmluZyAkYWxsb3dfYXB4X3Rlc3RzIiAyDQo+ICsgICAgcmV0dXJuICRhbGxvd19hcHhf dGVzdHMNCj4gK30NCj4gKw0KPiAgIyBSdW4gYSB0ZXN0IG9uIHRoZSB0YXJnZXQgdG8gc2VlIGlm IGl0IHN1cHBvcnRzIGJ0cmFjZSBoYXJkd2FyZS4gIFJldHVybiAxIGlmIHNvLA0KPiAgIyAwIGlm IGl0IGRvZXMgbm90LiAgQmFzZWQgb24gJ2NoZWNrX3ZteF9od19hdmFpbGFibGUnIGZyb20gdGhl IEdDQyB0ZXN0c3VpdGUuDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL2kzODctZnAuY2Mg Yi9nZGJzZXJ2ZXIvaTM4Ny1mcC5jYw0KPiBpbmRleCAxNjRiNjY2OTc5Zi4uOTBmMTQ2YTc0ZDIg MTAwNjQ0DQo+IC0tLSBhL2dkYnNlcnZlci9pMzg3LWZwLmNjDQo+ICsrKyBiL2dkYnNlcnZlci9p Mzg3LWZwLmNjDQo+IEBAIC0yMyw2ICsyMyw3IEBADQo+ICAvKiBEZWZhdWx0IHRvIFNTRS4gICov DQo+ICBzdGF0aWMgdWludDY0X3QgeDg2X3hzdGF0ZV9idiA9IFg4Nl9YU1RBVEVfU1NFX01BU0s7 DQo+IA0KPiArc3RhdGljIGNvbnN0IGludCBudW1fYXB4X3JlZ2lzdGVycyA9IDE2Ow0KPiAgc3Rh dGljIGNvbnN0IGludCBudW1fYXZ4NTEyX2tfcmVnaXN0ZXJzID0gODsNCj4gIHN0YXRpYyBjb25z dCBpbnQgbnVtX3BrZXlzX3JlZ2lzdGVycyA9IDE7DQo+IA0KPiBAQCAtMTE2LDYgKzExNywxMCBA QCBwdWJsaWM6DQo+ICAgIHVuc2lnbmVkIGNoYXIgKnltbWhfc3BhY2UgKCkNCj4gICAgeyByZXR1 cm4geHNhdmUgKCkgKyB4c2F2ZV9sYXlvdXQuYXZ4X29mZnNldDsgfQ0KPiANCj4gKyAgLyogTWVt b3J5IGFkZHJlc3Mgb2YgMTYgRUdQUiByZWdpc3RlciB2YWx1ZXMgb2YgNjQgYml0cy4gICovDQo+ ICsgIHVuc2lnbmVkIGNoYXIgKmFweF9zcGFjZSAoKQ0KPiArICB7IHJldHVybiB4c2F2ZSAoKSAr IHhzYXZlX2xheW91dC5hcHhfb2Zmc2V0OyB9DQo+ICsNCj4gICAgLyogTWVtb3J5IGFkZHJlc3Mg b2YgOCBPcE1hc2sgcmVnaXN0ZXIgdmFsdWVzIG9mIDY0IGJpdHMuICAqLw0KPiAgICB1bnNpZ25l ZCBjaGFyICprX3NwYWNlICgpDQo+ICAgIHsgcmV0dXJuIHhzYXZlICgpICsgeHNhdmVfbGF5b3V0 Lmtfb2Zmc2V0OyB9DQo+IEBAIC0zMTIsNiArMzE3LDEwIEBAIGkzODdfY2FjaGVfdG9feHNhdmUg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsDQo+IHZvaWQgKmJ1ZikNCj4gICAgICAgIGlmICgo Y2xlYXJfYnYgJiBYODZfWFNUQVRFX1BLUlUpKQ0KPiAgCWZvciAoaSA9IDA7IGkgPCBudW1fcGtl eXNfcmVnaXN0ZXJzOyBpKyspDQo+ICAJICBtZW1zZXQgKGZwLT5wa3J1X3NwYWNlICgpICsgaSAq IDQsIDAsIDQpOw0KPiArDQo+ICsgICAgICBpZiAoYW1kNjQgJiYgKGNsZWFyX2J2ICYgWDg2X1hT VEFURV9BUFhfRikgIT0gMCkNCj4gKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2FweF9yZWdpc3RlcnM7 IGkrKykNCj4gKwkgIG1lbXNldCAoZnAtPmFweF9zcGFjZSAoKSArIGkgKiA4LCAwLCA4KTsNCj4g ICAgICB9DQo+IA0KPiAgICAvKiBDaGVjayBpZiBhbnkgeDg3IHJlZ2lzdGVycyBhcmUgY2hhbmdl ZC4gICovDQo+IEBAIC00NjUsNiArNDc0LDIzIEBAIGkzODdfY2FjaGVfdG9feHNhdmUgKHN0cnVj dCByZWdjYWNoZSAqcmVnY2FjaGUsDQo+IHZvaWQgKmJ1ZikNCj4gIAl9DQo+ICAgICAgfQ0KPiAN Cj4gKyAgLyogQ2hlY2sgaWYgYW55IEFQWCByZWdpc3RlcnMgYXJlIGNoYW5nZWQuICAqLw0KPiAr ICBpZiAoYW1kNjQgJiYgKHg4Nl94c3RhdGVfYnYgJiBYODZfWFNUQVRFX0FQWF9GKSAhPSAwKQ0K PiArICAgIHsNCj4gKyAgICAgIGludCByMTZfcmVnbnVtID0gZmluZF9yZWdubyAocmVnY2FjaGUt PnRkZXNjLCAicjE2Iik7DQo+ICsNCj4gKyAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fYXB4X3Jl Z2lzdGVyczsgaSsrKQ0KPiArCXsNCj4gKwkgIGNvbGxlY3RfcmVnaXN0ZXIgKHJlZ2NhY2hlLCBp ICsgcjE2X3JlZ251bSwgcmF3KTsNCj4gKwkgIHAgPSBmcC0+YXB4X3NwYWNlICgpICsgaSAqIDg7 DQo+ICsJICBpZiAobWVtY21wIChyYXcsIHAsIDgpICE9IDApDQo+ICsJICAgIHsNCj4gKwkgICAg ICB4c3RhdGVfYnYgfD0gWDg2X1hTVEFURV9BUFhfRjsNCj4gKwkgICAgICBtZW1jcHkgKHAsIHJh dywgOCk7DQo+ICsJICAgIH0NCj4gKwl9DQo+ICsgICAgfQ0KPiArDQo+ICAgIGlmICh4ODZfeHN0 YXRlX2J2ICYgWDg2X1hTVEFURV9YODcpDQo+ICAgICAgew0KPiAgICAgICAgY29sbGVjdF9yZWdp c3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgImZpb2ZmIiwgcmF3KTsNCj4gQEAgLTc5MCw2ICs4MTYs MjMgQEAgaTM4N194c2F2ZV90b19jYWNoZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwNCj4g Y29uc3Qgdm9pZCAqYnVmKQ0KPiAgCX0NCj4gICAgICB9DQo+IA0KPiArICBpZiAoYW1kNjQgJiYg KHg4Nl94c3RhdGVfYnYgJiBYODZfWFNUQVRFX0FQWF9GKSAhPSAwKQ0KPiArICAgIHsNCj4gKyAg ICAgIGludCByMTZfcmVnbnVtID0gZmluZF9yZWdubyAocmVnY2FjaGUtPnRkZXNjLCAicjE2Iik7 DQo+ICsNCj4gKyAgICAgIGlmICgoY2xlYXJfYnYgJiBYODZfWFNUQVRFX0FQWF9GKSAhPSAwKQ0K PiArCXsNCj4gKwkgIGZvciAoaSA9IDA7IGkgPCBudW1fYXB4X3JlZ2lzdGVyczsgaSsrKQ0KPiAr CSAgICBzdXBwbHlfcmVnaXN0ZXJfemVyb2VkIChyZWdjYWNoZSwgaSArIHIxNl9yZWdudW0pOw0K PiArCX0NCj4gKyAgICAgIGVsc2UNCj4gKwl7DQo+ICsJICBwID0gZnAtPmFweF9zcGFjZSAoKTsN Cj4gKwkgIGZvciAoaSA9IDA7IGkgPCBudW1fYXB4X3JlZ2lzdGVyczsgaSsrKQ0KPiArCSAgICBz dXBwbHlfcmVnaXN0ZXIgKHJlZ2NhY2hlLCBpICsgcjE2X3JlZ251bSwgcCArIGkgKiA4KTsNCj4g Kwl9DQo+ICsgICAgfQ0KPiArDQo+ICAgIGlmICgoY2xlYXJfYnYgJiAoWDg2X1hTVEFURV9TU0Ug fCBYODZfWFNUQVRFX0FWWCkpDQo+ICAgICAgICA9PSAoWDg2X1hTVEFURV9TU0UgfCBYODZfWFNU QVRFX0FWWCkpDQo+ICAgICAgew0KPiBkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL2xpbnV4LXg4Ni1s b3cuY2MgYi9nZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYw0KPiBpbmRleCA5MDYxOTFlMDRmNC4u Zjg5MzgyMWZhNDggMTAwNjQ0DQo+IC0tLSBhL2dkYnNlcnZlci9saW51eC14ODYtbG93LmNjDQo+ ICsrKyBiL2dkYnNlcnZlci9saW51eC14ODYtbG93LmNjDQo+IEBAIC0yNjAsNyArMjYwLDkgQEAg c3RhdGljIGNvbnN0IGludCB4ODZfNjRfcmVnbWFwW10gPQ0KPiAgICAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsDQo+ICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwNCj4g ICAgLTEsCQkJCQkvKiBwa3J1ICAqLw0KPiAtICAtMQkJCQkJLyogQ0VUIHVzZXIgbW9kZSByZWdp c3RlciBQTDNfU1NQLiAgKi8NCj4gKyAgLTEsCQkJCQkvKiBDRVQgdXNlciBtb2RlIHJlZ2lzdGVy IFBMM19TU1AuICAqLw0KPiArICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsICAgICAg IC8qIHIxNi4uLnIzMSAoQVBYKS4gICovDQo+ICsgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0x LCAtMSwNCj4gIH07DQo+IA0KPiAgI2RlZmluZSBYODZfNjRfTlVNX1JFR1MgKHNpemVvZiAoeDg2 XzY0X3JlZ21hcCkgLyBzaXplb2YNCj4gKHg4Nl82NF9yZWdtYXBbMF0pKQ0KPiBkaWZmIC0tZ2l0 IGEvZ2Ric3VwcG9ydC94ODYteHN0YXRlLmggYi9nZGJzdXBwb3J0L3g4Ni14c3RhdGUuaA0KPiBp bmRleCBlZTg2NjBmOGNiNC4uMzYwMmZhNDBjZDkgMTAwNjQ0DQo+IC0tLSBhL2dkYnN1cHBvcnQv eDg2LXhzdGF0ZS5oDQo+ICsrKyBiL2dkYnN1cHBvcnQveDg2LXhzdGF0ZS5oDQo+IEBAIC0yOSwx MSArMjksMTMgQEANCj4gICNkZWZpbmUgWDg2X1hTVEFURV9aTU1fSUQJNw0KPiAgI2RlZmluZSBY ODZfWFNUQVRFX1BLUlVfSUQJOQ0KPiAgI2RlZmluZSBYODZfWFNUQVRFX0NFVF9VX0lECTExDQo+ ICsjZGVmaW5lIFg4Nl9YU1RBVEVfQVBYX0ZfSUQJMTkNCj4gDQo+ICAvKiBUaGUgZXh0ZW5kZWQg c3RhdGUgZmVhdHVyZSBiaXRzLiAgKi8NCj4gICNkZWZpbmUgWDg2X1hTVEFURV9YODcJCSgxVUxM IDw8IFg4Nl9YU1RBVEVfWDg3X0lEKQ0KPiAgI2RlZmluZSBYODZfWFNUQVRFX1NTRQkJKDFVTEwg PDwgWDg2X1hTVEFURV9TU0VfSUQpDQo+ICAjZGVmaW5lIFg4Nl9YU1RBVEVfQVZYCQkoMVVMTCA8 PCBYODZfWFNUQVRFX0FWWF9JRCkNCj4gKyNkZWZpbmUgWDg2X1hTVEFURV9BUFhfRgkoMVVMTCA8 PCBYODZfWFNUQVRFX0FQWF9GX0lEKQ0KPiANCj4gIC8qIEFWWCA1MTIgYWRkcyB0aHJlZSBmZWF0 dXJlIGJpdHMuICBBbGwgdGhyZWUgbXVzdCBiZSBlbmFibGVkLiAgKi8NCj4gICNkZWZpbmUgWDg2 X1hTVEFURV9LCQkoMVVMTCA8PCBYODZfWFNUQVRFX0tfSUQpDQo+IEBAIC01Myw2ICs1NSw3IEBA IHN0cnVjdCB4ODZfeHNhdmVfbGF5b3V0DQo+ICB7DQo+ICAgIGludCBzaXplb2ZfeHNhdmUgPSAw Ow0KPiAgICBpbnQgYXZ4X29mZnNldCA9IDA7DQo+ICsgIGludCBhcHhfb2Zmc2V0ID0gMDsNCj4g ICAgaW50IGtfb2Zmc2V0ID0gMDsNCj4gICAgaW50IHptbV9oX29mZnNldCA9IDA7DQo+ICAgIGlu dCB6bW1fb2Zmc2V0ID0gMDsNCj4gQEAgLTY0LDYgKzY3LDcgQEAgY29uc3RleHByIGJvb2wgb3Bl cmF0b3I9PSAoY29uc3QgeDg2X3hzYXZlX2xheW91dA0KPiAmbGhzLA0KPiAgew0KPiAgICByZXR1 cm4gbGhzLnNpemVvZl94c2F2ZSA9PSByaHMuc2l6ZW9mX3hzYXZlDQo+ICAgICAgJiYgbGhzLmF2 eF9vZmZzZXQgPT0gcmhzLmF2eF9vZmZzZXQNCj4gKyAgICAmJiBsaHMuYXB4X29mZnNldCA9PSBy aHMuYXB4X29mZnNldA0KPiAgICAgICYmIGxocy5rX29mZnNldCA9PSByaHMua19vZmZzZXQNCj4g ICAgICAmJiBsaHMuem1tX2hfb2Zmc2V0ID09IHJocy56bW1faF9vZmZzZXQNCj4gICAgICAmJiBs aHMuem1tX29mZnNldCA9PSByaHMuem1tX29mZnNldA0KPiBAQCAtODEsMTQgKzg1LDE5IEBAIGNv bnN0ZXhwciBib29sIG9wZXJhdG9yIT0gKGNvbnN0IHg4Nl94c2F2ZV9sYXlvdXQNCj4gJmxocywN Cj4gICNkZWZpbmUgWDg2X1hTVEFURV9YODdfTUFTSwlYODZfWFNUQVRFX1g4Nw0KPiAgI2RlZmlu ZSBYODZfWFNUQVRFX1NTRV9NQVNLCShYODZfWFNUQVRFX1g4NyB8IFg4Nl9YU1RBVEVfU1NFKQ0K PiAgI2RlZmluZSBYODZfWFNUQVRFX0FWWF9NQVNLCShYODZfWFNUQVRFX1NTRV9NQVNLIHwNCj4g WDg2X1hTVEFURV9BVlgpDQo+ICsjZGVmaW5lIFg4Nl9YU1RBVEVfQVZYX0FQWF9NQVNLCShYODZf WFNUQVRFX0FWWF9NQVNLIHwNCj4gWDg2X1hTVEFURV9BUFhfRikNCj4gICNkZWZpbmUgWDg2X1hT VEFURV9BVlhfQVZYNTEyX01BU0sJKFg4Nl9YU1RBVEVfQVZYX01BU0sgfA0KPiBYODZfWFNUQVRF X0FWWDUxMikNCj4gKyNkZWZpbmUgWDg2X1hTVEFURV9BVlhfQVZYNTEyX0FQWF9NQVNLXA0KPiAr ICAoWDg2X1hTVEFURV9BVlhfQVZYNTEyX01BU0sgfCBYODZfWFNUQVRFX0FQWF9GKQ0KPiAgI2Rl ZmluZSBYODZfWFNUQVRFX0FWWF9BVlg1MTJfUEtVX01BU0sgCShYODZfWFNUQVRFX0FWWF9NQVNL XA0KPiAgCQkJCQl8IFg4Nl9YU1RBVEVfQVZYNTEyIHwNCj4gWDg2X1hTVEFURV9QS1JVKQ0KPiAr I2RlZmluZSBYODZfWFNUQVRFX0FWWF9BVlg1MTJfUEtVX0FQWF9NQVNLXA0KPiArICAoWDg2X1hT VEFURV9BVlhfQVZYNTEyX1BLVV9NQVNLIHwgWDg2X1hTVEFURV9BUFhfRikNCj4gDQo+ICAvKiBT dXBwb3J0ZWQgbWFzayBvZiBzdGF0ZS1jb21wb25lbnQgYml0bWFwIHhzdGF0ZV9idi4gIFRoZSBT RE0gZGVmaW5lcw0KPiAgICAgeHN0YXRlX2J2IGFzIFhDUjAgfCBJQTMyX1hTUy4gICovDQo+IA0K PiAtI2RlZmluZSBYODZfWFNUQVRFX0FMTF9NQVNLDQo+IAkoWDg2X1hTVEFURV9BVlhfQVZYNTEy X1BLVV9NQVNLXA0KPiArI2RlZmluZSBYODZfWFNUQVRFX0FMTF9NQVNLDQo+IAkoWDg2X1hTVEFU RV9BVlhfQVZYNTEyX1BLVV9BUFhfTUFTS1wNCj4gIAkJCQkJfCBYODZfWFNUQVRFX0NFVF9VKQ0K PiANCj4gICNkZWZpbmUgWDg2X1hTVEFURV9TU0VfU0laRQk1NzYNCj4gQEAgLTk3LDYgKzEwNiw3 IEBAIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0gKGNvbnN0IHg4Nl94c2F2ZV9sYXlvdXQNCj4g JmxocywNCj4gDQo+ICAjZGVmaW5lIEhBU19BVlgoWENSMCkgKCgoWENSMCkgJiBYODZfWFNUQVRF X0FWWCkgIT0gMCkNCj4gICNkZWZpbmUgSEFTX0FWWDUxMihYQ1IwKSAoKChYQ1IwKSAmIFg4Nl9Y U1RBVEVfQVZYNTEyKSAhPSAwKQ0KPiArI2RlZmluZSBIQVNfQVBYKFhDUjApICgoKFhDUjApICYg WDg2X1hTVEFURV9BUFhfRikgIT0gMCkNCj4gICNkZWZpbmUgSEFTX1BLUlUoWENSMCkgKCgoWENS MCkgJiBYODZfWFNUQVRFX1BLUlUpICE9IDApDQo+IA0KPiAgLyogSW5pdGlhbCB2YWx1ZSBmb3Ig ZmN0cmwgcmVnaXN0ZXIsIGFzIGRlZmluZWQgaW4gdGhlIFg4NiBtYW51YWwsIGFuZA0KPiAtLQ0K PiAyLjM0LjENCj4gDQo+IEludGVsIERldXRzY2hsYW5kIEdtYkgNCj4gDQo+IFJlZ2lzdGVyZWQg QWRkcmVzczogRG9ybmFjaGVyIFN0cmFzc2UgMSwgODU2MjIgRmVsZGtpcmNoZW4sIEdlcm1hbnkN Cj4gVGVsOiArNDkgODkgOTkxIDQzMCwgd3d3LmludGVsLmRlDQo+IE1hbmFnaW5nIERpcmVjdG9y czogSGFycnkgRGVtYXMsIEplZmZyZXkgU2NobmVpZGVybWFuLCBZaW4gQ2hvbmcgU29ycmVsbA0K PiBDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUNCj4gUmVn aXN0ZXJlZCBTZWF0OiBNdW5pY2gNCj4gQ29tbWVyY2lhbCBSZWdpc3RlcjogQW10c2dlcmljaHQg TXVlbmNoZW4gSFJCIDE4NjkyOA0KPiANCg0KV2hpbGUgd29ya2luZyBvbiB0aGUgdjMgZm9yIHRo aXMgaW4gbm90aWNlZCAyIGlzc3VlczoNCg0KMSkgSSBhY2NpZGVudGFsbHkgYWRkZWQgMiBzb3Vy Y2UgZmlsZXMgZm9yIHRoZSBjb3JlZmlsZSB0ZXN0Og0KZ2RiLmFyY2gvYW1kNjQtYXB4LWNvcmUu YyBhbmQgZ2RiLmFyY2gvYW1kNjQtYXB4LWNvcmVmaWxlLmMNCkkgd2lsbCByZW1vdmUgdGhlIG9u ZSB0aGF0IGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZXhwIGZpbGUNCihhbWQ2 NC1hcHgtY29yZWZpbGUuZXhwKS4gIGFtZDY0LWFweC1jb3JlLmMgaXMgbm90IHVzZWQuDQoNCjIp IEkgZnVydGhlciBub3RpY2VkIHRoYXQgdGhlIHBhdGNoIGludHJvZHVjZXMgc29tZSBtYXNrcyB3 aGljaCBhcmUgb2Jzb2xldGU6DQoNCn5+fg0KZGlmZiAtLWdpdCBhL2dkYnN1cHBvcnQveDg2LXhz dGF0ZS5oIGIvZ2Ric3VwcG9ydC94ODYteHN0YXRlLmgNCmluZGV4IDM2MDJmYTQwY2Q5Li4zY2I3 NWNjZmVkNiAxMDA2NDQNCi0tLSBhL2dkYnN1cHBvcnQveDg2LXhzdGF0ZS5oDQorKysgYi9nZGJz dXBwb3J0L3g4Ni14c3RhdGUuaA0KQEAgLTg1LDEwICs4NSw3IEBAIGNvbnN0ZXhwciBib29sIG9w ZXJhdG9yIT0gKGNvbnN0IHg4Nl94c2F2ZV9sYXlvdXQgJmxocywNCiAjZGVmaW5lIFg4Nl9YU1RB VEVfWDg3X01BU0sgICAgWDg2X1hTVEFURV9YODcNCiAjZGVmaW5lIFg4Nl9YU1RBVEVfU1NFX01B U0sgICAgKFg4Nl9YU1RBVEVfWDg3IHwgWDg2X1hTVEFURV9TU0UpDQogI2RlZmluZSBYODZfWFNU QVRFX0FWWF9NQVNLICAgIChYODZfWFNUQVRFX1NTRV9NQVNLIHwgWDg2X1hTVEFURV9BVlgpDQot I2RlZmluZSBYODZfWFNUQVRFX0FWWF9BUFhfTUFTSyAgICAgICAgKFg4Nl9YU1RBVEVfQVZYX01B U0sgfCBYODZfWFNUQVRFX0FQWF9GKQ0KICNkZWZpbmUgWDg2X1hTVEFURV9BVlhfQVZYNTEyX01B U0sgICAgIChYODZfWFNUQVRFX0FWWF9NQVNLIHwgWDg2X1hTVEFURV9BVlg1MTIpDQotI2RlZmlu ZSBYODZfWFNUQVRFX0FWWF9BVlg1MTJfQVBYX01BU0tcDQotICAoWDg2X1hTVEFURV9BVlhfQVZY NTEyX01BU0sgfCBYODZfWFNUQVRFX0FQWF9GKQ0KICNkZWZpbmUgWDg2X1hTVEFURV9BVlhfQVZY NTEyX1BLVV9NQVNLICAgICAgICAgKFg4Nl9YU1RBVEVfQVZYX01BU0tcDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYODZfWFNUQVRFX0FWWDUxMiB8IFg4Nl9YU1RB VEVfUEtSVSkNCiAjZGVmaW5lIFg4Nl9YU1RBVEVfQVZYX0FWWDUxMl9QS1VfQVBYX01BU0tcDQp+ fn4NCg0KVGhlIG1hc2tzIGFyZSB1bnVzZWQuICBXZSBvbmx5IG5lZWQgdGhlbSBmb3IgdmVjdG9y IHJlZ2lzdGVycyBpbiBpMzg2LXRkZXAuYzppMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3A6DQoNCn5+ fg0KICAgYXZ4NTEyX3AgPSAoKHRkZXAtPnhjcjAgJiBYODZfWFNUQVRFX0FWWF9BVlg1MTJfTUFT SykNCiAgICAgICAgICAgID09IFg4Nl9YU1RBVEVfQVZYX0FWWDUxMl9NQVNLKTsNCiAgIGF2eF9w ID0gKCh0ZGVwLT54Y3IwICYgWDg2X1hTVEFURV9BVlhfQVZYNTEyX01BU0spDQogICAgICAgICAg ICA9PSBYODZfWFNUQVRFX0FWWF9NQVNLKSAmJiAhYXZ4NTEyX3A7DQogICBzc2VfcCA9ICgodGRl cC0+eGNyMCAmIFg4Nl9YU1RBVEVfQVZYX0FWWDUxMl9NQVNLKQ0KICAgICAgICAgICAgPT0gWDg2 X1hTVEFURV9TU0VfTUFTSykgJiYgIWF2eDUxMl9wICYmICEgYXZ4X3A7DQp+fn4NCg0KSSdsbCBm aXggdGhpcyBmb3IgdjMuDQoNCkNocmlzdGluYQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXw0KSW50ZWwgRGV1dHNjaGxhbmQgR21iSCANCg0KUmVnaXN0ZXJlZCBBZGRy ZXNzOiBEb3JuYWNoZXIgU3RyYXNzZSAxLCA4NTYyMiBGZWxka2lyY2hlbiwgR2VybWFueSANCg0K VGVsOiArNDkgKDg5KSA5OTE0My0wIA0KDQp3d3cuaW50ZWwuZGUgDQoNCk1hbmFnaW5nIERpcmVj dG9yczogQ2FuZGljZSBNb29yZSwgSmVmZnJleSBTY2huZWlkZXJtYW4sIFJhbWFjaGFuZHJhbiBT aXRhcmFtYW4NCg0KQ2hhaXJwZXJzb24gb2YgdGhlIFN1cGVydmlzb3J5IEJvYXJkOiBTb25qYSBQ aWVyZXINCg0KUmVnaXN0ZXJlZCBTZWF0OiBNdW5pY2ggQ29tbWVyY2lhbCBSZWdpc3RlciBCOiBB bXRzZ2VyaWNodCBNdW5pY2ggSFJCIDE4NjkyOA0KDQpUaGlzIGUtbWFpbCBhbmQgYW55IGF0dGFj aG1lbnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBtYXRlcmlhbCBmb3INCnRoZSBzb2xlIHVz ZSBvZiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkgcmV2aWV3IG9yIGRpc3RyaWJ1dGlv bg0KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBp bnRlbmRlZA0KcmVjaXBpZW50LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGFuZCBkZWxldGUg YWxsIGNvcGllcy4K