From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by sourceware.org (Postfix) with ESMTPS id 0A380383E50A for ; Wed, 26 Jun 2024 14:18:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0A380383E50A 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 0A380383E50A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.198.163.14 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1719411523; cv=pass; b=LyHsMvER3/T/mRQByUGFoYb4TYlPEqkR3fT9pT8k0I5/9RUqRqNrak8Jem444QBUUgoKaZAARlin8b+exaQydGg0WH+MMKuqqaf+pEADRYCJHYTpdXk/LPqupP/R03Ae7C+EVcvA+PB+vFMUtxX2u21Piiyl4SPkG4zItLEiZ9A= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1719411523; c=relaxed/simple; bh=CAh8CNYo8KuJNTM6/OPj+S0JJAji2eByovMRpGvbqF0=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=EYTGjXuAEpxz/3hlx3oYEqFu0ydzNAYt/5PZRIRZi9vG4P0ucTA+XBLR6QcZ6PD1gbKdeNJW8SswG3qzaxwAUeCKOx5KjY+hCoy2EuG96LDlGebRKZkEiIJcC5BzChuXn2RwmjFz/PJlcYqLli0JnUXHhDX/f1QsKWvV6uDUYpY= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719411513; x=1750947513; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=CAh8CNYo8KuJNTM6/OPj+S0JJAji2eByovMRpGvbqF0=; b=DCoFpmTX3eohR5j8MOYh2u+xUMUlUXEGYE+GE9/5Uwya4quWwXCuqE2m 07PRYF3D2BRWzfGZSC9EwGQaTS2jSs+7to88NAP+yWFaigwyLNVgU2rIQ rgq0zkjAbfAdNYQmOE+h59YD+g3MFGzXcbjSdxq+potO4gKxDdyS6LVCQ CZZuxy8zwYBsSli9JIhtP+eweJQLY87x84kX7DbitSSCbhgJ/JfzmhOpX LGCxTjwTClTpi/4OGRkv+aob5UJ2EooujrlqajW/2mXygy4C9R/OduYmJ b7AmcEFgqq7+2dhrY3NhVNUh0vK/DdNopvLODhMMqtnW/Vj5ygvnq/inI A==; X-CSE-ConnectionGUID: 3PVK9Yc2Qb2Kx2vZX39sHQ== X-CSE-MsgGUID: XDUjvvhBQ1SktXXJYms04g== X-IronPort-AV: E=McAfee;i="6700,10204,11115"; a="16709937" X-IronPort-AV: E=Sophos;i="6.08,267,1712646000"; d="scan'208";a="16709937" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jun 2024 07:18:31 -0700 X-CSE-ConnectionGUID: 7y5LUaixT12Mwz6cFOv/OQ== X-CSE-MsgGUID: nTOElYQ0RUi35cEw7AEiJg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,267,1712646000"; d="scan'208";a="48467507" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmviesa005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 26 Jun 2024 07:18:31 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 26 Jun 2024 07:18:31 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 26 Jun 2024 07:18:30 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Wed, 26 Jun 2024 07:18:30 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.169) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 26 Jun 2024 07:18:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hrRv7DFLYXKi2nW3BVrlnfD5c+1R9RLzyczHqqIBGjqktJ/gf4jfqgsq4rBhZ2aD3/ShMeo/Huaxup32TAW/Wq6j0h4kkQ9NEVwe8rJq67lpWpmgu1zYFTzcy8qbTC9lULZM6s+3cHyqEYQ+fDp77j+Ujc115NE6c3X2YJ8Jm2t5Rue3o0pXmvWd7aHikmpKsP6uJQe8R+nz1nrpHNw9S8ADKrEtGjhYLJZ95Vr6v7c3rFjtmoTUnP2eM62V/zMgdIcOqP4jrowGOuuXebTDQwbr6ryNdvly/Hll2W+UfH7CJhnEEy6nSAAcpoqF+Anfyb4V9CHMn5c/LaO/C+pkvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=CAh8CNYo8KuJNTM6/OPj+S0JJAji2eByovMRpGvbqF0=; b=nSG6wfgqyb0Vb4NuR7oojBT5jkB9juuIL4Ty+FrXdfC24QbskwfN0JOemX8KUWtg2AAPnc2cCLQBkZwQilWrmgvIpGyh6T3lccdRKyC9/ujSprykW65AZpFU5N40Ilbb6LnADH+OjZnmkaUDO4P9r24Lgus3JhMJbT5i+PkKsFeWZV9gxG9ARLkr8ZcW67R2TnE8muNjQ8AmKqFY48ScFFSp/oPUXnyLdc8wHUV+tzYNJJCxMvawRCei35Yg9XoxD+DVG0F7Jzrm407Lfcd8uRyj3xM43qcYUAbg6KT4hMaEbLuvCFxeK3xoiVpj+l4UeeC9BUMkforFqVFtfc/a9w== 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 MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by DS0PR11MB6493.namprd11.prod.outlook.com (2603:10b6:8:c3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Wed, 26 Jun 2024 14:18:28 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59%3]) with mapi id 15.20.7698.025; Wed, 26 Jun 2024 14:18:27 +0000 From: "Li, Pan2" To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "kito.cheng@gmail.com" , "jeffreyalaw@gmail.com" , "rdapp.gcc@gmail.com" Subject: RE: [PATCH v1] Internal-fn: Support new IFN SAT_TRUNC for unsigned scalar int Thread-Topic: [PATCH v1] Internal-fn: Support new IFN SAT_TRUNC for unsigned scalar int Thread-Index: AQHax2qvRud8Ay7ST0ObAklemkBBSrHaERqAgAAHZTA= Date: Wed, 26 Jun 2024 14:18:27 +0000 Message-ID: References: <20240626014559.765149-1-pan2.li@intel.com> In-Reply-To: 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: MW5PR11MB5908:EE_|DS0PR11MB6493:EE_ x-ms-office365-filtering-correlation-id: b13fd6c2-c28e-4885-f5b5-08dc95ead93e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230038|1800799022|376012|366014|38070700016; x-microsoft-antispam-message-info: =?utf-8?B?UDR6MEdCeU5uSjB2WlRsaldIbFV0ZzVtY3YrNlhEaG9GS2pHM0p6dFpPaTdW?= =?utf-8?B?ckdyZ2JIcmJjN3RSeS9UcnY3Y1JvYURlOC95bWhjSVlWM2RFRXdUMUhkaFEx?= =?utf-8?B?TTNNcFRUSithV1JtdzU2aERmQjVidDdYUTdIK1Fhalp5c2N5MU9sT3VWWkFw?= =?utf-8?B?Tm04QVNZeVlicXc5QXVDMVZqcGRrZEYyM1RBUkhmT3hGWitEaWpndGlBd3Rp?= =?utf-8?B?Q01KTXVsQXVLOUJsbHFPTk1oaVJRaFFlYjNlVHZuclhzbVFndlM1dGNxK2Jk?= =?utf-8?B?SEUzelVMeGdFcEVzcXlWQjRtc2I2RGxia3BYMTJWWi93cGd5MjJnNGx5UU1P?= =?utf-8?B?K1FFYm1HVWtKR0htdjRSRzQ1MDU5dXFQSFVwRDVEOHY0Kzh5c2FaaE5Lc2ZX?= =?utf-8?B?akp5V3dMZ04wK2J2eTlrUi9MRVBGMFk4eVoyemVOekRtOEVwcTF0NHBuOEVq?= =?utf-8?B?WXNLMmEwVWFkbkNTLzFWenJva0xEZGtXMERSNk8vQ2xPV1h3amNjRUo1Yjdo?= =?utf-8?B?aXByci85eEp5ZS9vOEh0K1FqZTV0TGJHRDhpd09sRlZxUGtSNU9mUWRISkRu?= =?utf-8?B?NEN5V2RNMEkyUnVua01ycVl0c0xDUklubS8xS3JNSmYrTEl5ckZMaHoxOE02?= =?utf-8?B?NjJEanZVakQ3N1RTZ045SlNzaTRvN2dqbU4xUjRHNDBPM2wwMDFBbVBoRyt4?= =?utf-8?B?WS9qQ3RjTkpnYW9KNnhmdlp1TC9JeGF0VVhaQ0JoK0dneW95U1J1c2RkcDFy?= =?utf-8?B?eTI3SEZkVXozVWVZWS9xK1g3U3ptUDFSSVFmQWU1MmV1U2k2eU4yWkxPYmRM?= =?utf-8?B?MytvY1FiNjBnMHViMHlwUG4zZ3BvZCt4NU5lR2hHaXBpMUN1UVQ2OVZHcHNw?= =?utf-8?B?c1hqMTVTMTBjMVJveTJKUmI2SHovZEgvNk5mbjN0RTR5Y0R0TWtKQndtYldz?= =?utf-8?B?dWJ4SFQ0cSticlMwRHRyLzdnS0NNckZCOWk5RjZDVWRGalh3bkQ3YTNGVEw2?= =?utf-8?B?SXM4ekRCYlh0TUQ0dlJPU0ppNUdPR0RoTGJ1R0NCZ2ZGM083Zmx0ZUJlQXBO?= =?utf-8?B?UlhHdHdKT1lUZ04rZDFabG1PTFVoRkF4SU56ZWc1SzVFV2hnaHZma2tCMTFa?= =?utf-8?B?a0JJU0Fid2tiZ2M1NWliTDV6b2oxNlRpWkp4QU8vbWppQTVMN0lVOTVUYkIw?= =?utf-8?B?R21LUUNWZU5iZklqeXl0OTFGZExySXBaY0Evak9SRVBxQ20vdnFTTWhRV0VX?= =?utf-8?B?dDhCaS9nTEY4ZWdOZUFKVUhOVEYycnZuNVc5Nm5vSE9laWZ3TjdaN25ZM1dJ?= =?utf-8?B?SVU4d05MNGkyUFVod0xrL1J3VWFpNE81ZSszd2J0RkZwME1tT1JKMUhXeG5q?= =?utf-8?B?cG5ueWg5b0o3MFgvYnAraXlFcjZVcEJtNFNjUVVPbE5BTnQ5UmlrNDcvNmRj?= =?utf-8?B?bWUxK2o3OWtUcTNicnowTVlhM05qaXp5LzlqTklJU1NHdUtTKzE0SkM1SWZY?= =?utf-8?B?aTdFS3I0VVNXRjJUV3h3THBjNHErVU9vM0tOcWgrbDc3Y29IMGxJbFA2R0cz?= =?utf-8?B?YkgxK1lOVmxmNG9QQmIrZ2UvK1h5TVJUdTVSN1ExTnB6MTgrRlg3ai9uZGxN?= =?utf-8?B?Si9TK3dpN1k4SnJkd1RveldVWnVpUFZIWHZIZEFEMEY2aVdDT3dPRHROSEJ1?= =?utf-8?B?UHk1MkVobDNRSktDUTNVR2pVTldCdGFwUHBQSVVCTzZrTjhJeXJSemx4L1po?= =?utf-8?B?NTYwUEF3ajBGQURFcXhuU2NSMlA3TUtsclB2MFpxUkJsRDBQZkZBR0ZONGRZ?= =?utf-8?Q?KR2aEsvdjJJ9dw3T1m8jYg6vQESuXQggYKoj0=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230038)(1800799022)(376012)(366014)(38070700016);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MHorZFVqUlVyaGRZSmRUOU9oK0hXakoweFJsNU9DSzlzU0dzVmhncjVDOEFP?= =?utf-8?B?a2loUGZnVGV5OG91Z3l3MVVpR1B6WDlBVFpLaGNsdUFpTk5sM096TjJGUVlm?= =?utf-8?B?ZnhMRGI2eHFMZElyUzdDeWl2dmt0VHArRmFlcDRFRDFieEVmVFlHTmswcER1?= =?utf-8?B?cGdUMHNWamV2VDJ5NGNUMjM3V2F4dk1WM0RVSncvN0F6eDZ1OW9hL29QYm5J?= =?utf-8?B?dy9uc29NYWRWY2tWT3JDSDluRHFQSG9OVjJtK0U2c0dhZy85dXFCVWJjOXB4?= =?utf-8?B?R2JDNXBjTHRrZE1WUUhheElacGtHbjhSL0kweTVXZS9aMlcxOVQwUzhLMGIr?= =?utf-8?B?UWZ2TU51V1JXOGJiU0dqYmpnMzZZZkRPckRkUWpWeFF3eGdsR01HdEttNjhG?= =?utf-8?B?VndncldEWDVkb0hEMlZIMm5XVXh6TTdrNlpsV0xTc292QUNlZXZQNEJNaVBT?= =?utf-8?B?elhuV2NDWm5ib1VIQzRhbUk1NVBhRFozbisxRFFuNVpuRzkzMlEvbDdkenNz?= =?utf-8?B?UWVoUGdSS0IrYXhBeU1XTlAxeXEvak9FY21HU29oSXhPcGRuOHZlcXd5Yjdr?= =?utf-8?B?TGlKVWxvWXJtQjZaNHZUbE8zRG9GM3RkeXk2MUw2T3F3MXpVOStiaW1hVnlY?= =?utf-8?B?M3l6OGQwaHRqSzFPMmhtZXNVTHV0UnlxM1JnNXA4T1Z2VjNLT2ZSMDU0Rm1S?= =?utf-8?B?anN6TmdXdTJUTFVWYXBVYi9pb0QwYzFPSXNCU3hDVzRDa2JyM09PZTVSZzJv?= =?utf-8?B?eHpQZlNrSHBxSUQxSFRTQ2VUbVRNUDVvTUNJZUlvNGI1Y2lxQnRjOWlLUlFa?= =?utf-8?B?RzI5ZWMzdmdQbWdtMW5OKzJ3Y1pZdFIwZy9PQU83Nko3U2l3T3p3SnFWTExp?= =?utf-8?B?TDVGMGZqUlZTZEFwSmNjWGdoQllwamVPL2VicDgvUGlBVG0ybFlaVklxSmhH?= =?utf-8?B?aDJjVzhkbk8yM3hCYjBQVXo3R3BZbVFoOTkyVGw3Y1Q4aTJIdW12Tk5YMGRF?= =?utf-8?B?SlE4NnhzOVlLeWthWFdTVzd6cnpJcTZOZWMxY2xxWVp2Q1N6TTNBdVBHeUVE?= =?utf-8?B?RUp1eFlmeHNncHdtenpLYUQvWWJhYnVGNjNZcHJvSzVObmg1K1NqSTYxU1Vs?= =?utf-8?B?RDR1RjcvVncrUjRUWDc1bEU0VSszZ2ZsWHU4TjVuN2h2Y29ETnpRR3pFdG94?= =?utf-8?B?QmU3TEdlUGZJdkl6SHVZdDFFQ09nTnZkZ1EwbGJObzJzZkdublg1dU9CUEZa?= =?utf-8?B?eG5hUzZpUVNJQXVKcStoTmhScC81MlJLajRhV3NoMjFGTWZtSFNiVEFLY2Jl?= =?utf-8?B?cVR0aldocVc4VEMvVDNZazdMdldwWm9LcEp1VXpMd3VSM091a3Vad3ZNRGVo?= =?utf-8?B?YTJWV2tqVnIwMWRmRDUxekpsbWRYc2RlUm9vQmF1WGd5RVhtdmV3d2xHRGVL?= =?utf-8?B?RTBkSFdLbEh0NWtWV3ZGbXBRU0RWbjJYRVBvYWFWUksrejRyMUVFanQ5QmZ2?= =?utf-8?B?SGYxWG5oTm9HVlJ3ZnQ3U0hyNnRFb0t0MnV1cmM2RWE3VnN3VnFXQm9sanRJ?= =?utf-8?B?SjJUdTV2aTZaUThWVHJNaDF6SExDbkZJczZZeCtCakRseWxyelNOWWxTWEs5?= =?utf-8?B?VzlyQ0hsMFU3MXpDREl2U2k2dVR5M1pkRGVhUStKSDg3Vkk4Qk5VSXp5ZzdX?= =?utf-8?B?QnpoZ1dSZXJTM25aZjJtMGRhQVp1VXdZLzBJbmladTFhOG1xZ3ZtOVVkOGtR?= =?utf-8?B?VUcyV0U2enNvNkVpaUJXTkpUN0Y4elo1SmlPR1pxaWl2bWpUWGJWTW8ya1U5?= =?utf-8?B?ek95dytmZXlGVmJoVGdVVmprS2NPclpWaS95RmpROWZyVDRoQ0kxRXRBNlRl?= =?utf-8?B?ZGVSQURrOVRsc05wMDR6K2wySlVQRGhzVGVqQXdjdldKQW5JQUpVa3pacWpG?= =?utf-8?B?bzRGZjdGZE1YQ3h2ZUJnaTRYL0ZQUFlyK2llSlkxcGhFTXVRUkZBT29mbU9u?= =?utf-8?B?ZVJ4cUlTU1JCQ3dRSUkwY290V1o2TUxwTlA4eG0rN28rdFcvcnlBV29yaFQv?= =?utf-8?B?TiszM2s5UW5OTzlxd09TZ2FWV2NnN1BPTStvd01uN0Y5K1dkdUVDQ0RCUldP?= =?utf-8?Q?RgSA=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b13fd6c2-c28e-4885-f5b5-08dc95ead93e X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jun 2024 14:18:27.8912 (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: RcisSEuPxCorlseGXAJ//5UdZ62CPfYj8NEmPEoJrDJrFZDExxrivZdxFlXvHC7LxhgsmcnbC2vkF4+aRnH32g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6493 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: VGhhbmtzIFJpY2hhcmQsIHdpbGwgYWRkcmVzcyB0aGUgY29tbWVudHMgaW4gdjIuDQoNClBhbg0K DQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogUmljaGFyZCBCaWVuZXIgPHJpY2hh cmQuZ3VlbnRoZXJAZ21haWwuY29tPiANClNlbnQ6IFdlZG5lc2RheSwgSnVuZSAyNiwgMjAyNCA5 OjUyIFBNDQpUbzogTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPg0KQ2M6IGdjYy1wYXRjaGVz QGdjYy5nbnUub3JnOyBqdXpoZS56aG9uZ0ByaXZhaS5haTsga2l0by5jaGVuZ0BnbWFpbC5jb207 IGplZmZyZXlhbGF3QGdtYWlsLmNvbTsgcmRhcHAuZ2NjQGdtYWlsLmNvbQ0KU3ViamVjdDogUmU6 IFtQQVRDSCB2MV0gSW50ZXJuYWwtZm46IFN1cHBvcnQgbmV3IElGTiBTQVRfVFJVTkMgZm9yIHVu c2lnbmVkIHNjYWxhciBpbnQNCg0KT24gV2VkLCBKdW4gMjYsIDIwMjQgYXQgMzo0NuKAr0FNIDxw YW4yLmxpQGludGVsLmNvbT4gd3JvdGU6DQo+DQo+IEZyb206IFBhbiBMaSA8cGFuMi5saUBpbnRl bC5jb20+DQo+DQo+IFRoaXMgcGF0Y2ggd291bGQgbGlrZSB0byBhZGQgdGhlIG1pZGRsZS1lbmQg cHJlc2VudGF0aW9uIGZvciB0aGUNCj4gc2F0dXJhdGlvbiB0cnVuY2F0aW9uLiAgQWthIHNldCB0 aGUgcmVzdWx0IG9mIHRydW5jYXRlZCB2YWx1ZSB0bw0KPiB0aGUgbWF4IHZhbHVlIHdoZW4gb3Zl cmZsb3cuICBJdCB3aWxsIHRha2UgdGhlIHBhdHRlcm4gc2ltaWxhcg0KPiBhcyBiZWxvdy4NCj4N Cj4gRm9ybSAxOg0KPiAgICNkZWZpbmUgREVGX1NBVF9VX1RSVUNfRk1UXzEoV1QsIE5UKSBcDQo+ ICAgTlQgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSAgICAgICAgIFwNCj4gICBzYXRfdV90cnVj XyMjVCMjX2ZtdF8xIChXVCB4KSAgICAgICAgXA0KPiAgIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ICAgICBib29sIG92ZXJmbG93ID0geCA+IChXVCkoTlQpKC0xKTsg IFwNCj4gICAgIHJldHVybiAoKE5UKXgpIHwgKE5UKS1vdmVyZmxvdzsgICAgXA0KPiAgIH0NCj4N Cj4gRm9yIGV4YW1wbGUsIHRydW5jYXRlZCB1aW50MTZfdCB0byB1aW50OF90LCB3ZSBoYXZlDQo+ DQo+ICogU0FUX1RSVU5DICgyNTQpICAgPT4gMjU0DQo+ICogU0FUX1RSVU5DICgyNTUpICAgPT4g MjU1DQo+ICogU0FUX1RSVU5DICgyNTYpICAgPT4gMjU1DQo+ICogU0FUX1RSVU5DICg2NTUzNikg PT4gMjU1DQo+DQo+IEdpdmVuIGJlbG93IFNBVF9UUlVOQyBmcm9tIHVpbnQ2NF90IHRvIHVpbnQz Ml90Lg0KPg0KPiBERUZfU0FUX1VfVFJVQ19GTVRfMSAodWludDY0X3QsIHVpbnQzMl90KQ0KPg0K PiBCZWZvcmUgdGhpcyBwYXRjaDoNCj4gX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQ0KPiB1aW50 MzJfdCBzYXRfdV90cnVjX1RfZm10XzEgKHVpbnQ2NF90IHgpDQo+IHsNCj4gICBfQm9vbCBvdmVy ZmxvdzsNCj4gICB1bnNpZ25lZCBpbnQgXzE7DQo+ICAgdW5zaWduZWQgaW50IF8yOw0KPiAgIHVu c2lnbmVkIGludCBfMzsNCj4gICB1aW50MzJfdCBfNjsNCj4NCj4gOzsgICBiYXNpYyBibG9jayAy LCBsb29wIGRlcHRoIDANCj4gOzsgICAgcHJlZDogICAgICAgRU5UUlkNCj4gICBvdmVyZmxvd181 ID0geF80KEQpID4gNDI5NDk2NzI5NTsNCj4gICBfMSA9ICh1bnNpZ25lZCBpbnQpIHhfNChEKTsN Cj4gICBfMiA9ICh1bnNpZ25lZCBpbnQpIG92ZXJmbG93XzU7DQo+ICAgXzMgPSAtXzI7DQo+ICAg XzYgPSBfMSB8IF8zOw0KPiAgIHJldHVybiBfNjsNCj4gOzsgICAgc3VjYzogICAgICAgRVhJVA0K Pg0KPiB9DQo+DQo+IEFmdGVyIHRoaXMgcGF0Y2g6DQo+IF9fYXR0cmlidXRlX18oKG5vaW5saW5l KSkNCj4gdWludDMyX3Qgc2F0X3VfdHJ1Y19UX2ZtdF8xICh1aW50NjRfdCB4KQ0KPiB7DQo+ICAg dWludDMyX3QgXzY7DQo+DQo+IDs7ICAgYmFzaWMgYmxvY2sgMiwgbG9vcCBkZXB0aCAwDQo+IDs7 ICAgIHByZWQ6ICAgICAgIEVOVFJZDQo+ICAgXzYgPSAuU0FUX1RSVU5DICh4XzQoRCkpOyBbdGFp bCBjYWxsXQ0KPiAgIHJldHVybiBfNjsNCj4gOzsgICAgc3VjYzogICAgICAgRVhJVA0KPg0KPiB9 DQo+DQo+IFRoZSBiZWxvdyB0ZXN0cyBhcmUgcGFzc2VkIGZvciB0aGlzIHBhdGNoOg0KPiAqLiBU aGUgcnY2NGdjdiBmdWxseSByZWdyZXNzaW9uIHRlc3RzLg0KPiAqLiBUaGUgcnY2NGdjdiBidWls ZCB3aXRoIGdsaWJjLg0KPiAqLiBUaGUgeDg2IGJvb3RzdHJhcCB0ZXN0cy4NCj4gKi4gVGhlIHg4 NiBmdWxseSByZWdyZXNzaW9uIHRlc3RzLg0KPg0KPiBnY2MvQ2hhbmdlTG9nOg0KPg0KPiAgICAg ICAgICogaW50ZXJuYWwtZm4uZGVmIChTQVRfVFJVTkMpOiBBZGQgbmV3IHNpZ25lZCBJRk4gc2F0 X3RydW5jIGFzDQo+ICAgICAgICAgdW5hcnlfY29udmVydC4NCj4gICAgICAgICAqIG1hdGNoLnBk OiBBZGQgbmV3IG1hdGNoaW5nIHBhdHRlcm4gZm9yIHVuc2lnbmVkIGludCBzYXRfdHJ1bmMuDQo+ ICAgICAgICAgKiBvcHRhYnMuZGVmIChPUFRBQl9DTCk6IEFkZCB1bnNpZ25lZCBhbmQgc2lnbmVk IG9wdGFiLg0KPiAgICAgICAgICogdHJlZS1zc2EtbWF0aC1vcHRzLmNjIChnaW1wbGVfdW5zaWdl bmRfaW50ZWdlcl9zYXRfdHJ1bmMpOiBBZGQNCj4gICAgICAgICBuZXcgZGVjbCBmb3IgdGhlIG1h dGNoaW5nIHBhdHRlcm4gZ2VuZXJhdGVkIGZ1bmMuDQo+ICAgICAgICAgKG1hdGNoX3Vuc2lnbmVk X3NhdHVyYXRpb25fdHJ1bmMpOiBBZGQgbmV3IGZ1bmMgaW1wbCB0byBtYXRjaA0KPiAgICAgICAg IHRoZSAuU0FUX1RSVU5DLg0KPiAgICAgICAgIChtYXRoX29wdHNfZG9tX3dhbGtlcjo6YWZ0ZXJf ZG9tX2NoaWxkcmVuKTogQWRkIC5TQVRfVFJVTkMgbWF0Y2gNCj4gICAgICAgICBmdW5jdGlvbiB1 bmRlciBCSVRfSU9SX0VYUFIgY2FzZS4NCj4gICAgICAgICAqIHRyZWUuY2MgKGludGVnZXJfaGFs Zl90cnVuY2F0ZWRfYWxsX29uZXNfcCk6IEFkZCBuZXcgZnVuYyBpbXBsDQo+ICAgICAgICAgdG8g ZmlsdGVyIHRoZSB0cnVuY2F0ZWQgdGhyZXNob2xkLg0KPiAgICAgICAgICogdHJlZS5oIChpbnRl Z2VyX2hhbGZfdHJ1bmNhdGVkX2FsbF9vbmVzX3ApOiBBZGQgbmV3IGZ1bmMgZGVjbC4NCj4NCj4g U2lnbmVkLW9mZi1ieTogUGFuIExpIDxwYW4yLmxpQGludGVsLmNvbT4NCj4gLS0tDQo+ICBnY2Mv aW50ZXJuYWwtZm4uZGVmICAgICAgIHwgIDIgKysNCj4gIGdjYy9tYXRjaC5wZCAgICAgICAgICAg ICAgfCAxMiArKysrKysrKysrKy0NCj4gIGdjYy9vcHRhYnMuZGVmICAgICAgICAgICAgfCAgMyAr KysNCj4gIGdjYy90cmVlLXNzYS1tYXRoLW9wdHMuY2MgfCAzMiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiAgZ2NjL3RyZWUuY2MgICAgICAgICAgICAgICB8IDIyICsrKysrKysr KysrKysrKysrKysrKysNCj4gIGdjYy90cmVlLmggICAgICAgICAgICAgICAgfCAgNiArKysrKysN Cj4gIDYgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPg0K PiBkaWZmIC0tZ2l0IGEvZ2NjL2ludGVybmFsLWZuLmRlZiBiL2djYy9pbnRlcm5hbC1mbi5kZWYN Cj4gaW5kZXggYThjODM0MzdhZGEuLjkxNWQzMjljMDVhIDEwMDY0NA0KPiAtLS0gYS9nY2MvaW50 ZXJuYWwtZm4uZGVmDQo+ICsrKyBiL2djYy9pbnRlcm5hbC1mbi5kZWYNCj4gQEAgLTI3OCw2ICsy NzgsOCBAQCBERUZfSU5URVJOQUxfU0lHTkVEX09QVEFCX0ZOIChNVUxIUlMsIEVDRl9DT05TVCB8 IEVDRl9OT1RIUk9XLCBmaXJzdCwNCj4gIERFRl9JTlRFUk5BTF9TSUdORURfT1BUQUJfRk4gKFNB VF9BREQsIEVDRl9DT05TVCwgZmlyc3QsIHNzYWRkLCB1c2FkZCwgYmluYXJ5KQ0KPiAgREVGX0lO VEVSTkFMX1NJR05FRF9PUFRBQl9GTiAoU0FUX1NVQiwgRUNGX0NPTlNULCBmaXJzdCwgc3NzdWIs IHVzc3ViLCBiaW5hcnkpDQo+DQo+ICtERUZfSU5URVJOQUxfU0lHTkVEX09QVEFCX0ZOIChTQVRf VFJVTkMsIEVDRl9DT05TVCwgZmlyc3QsIHNzdHJ1bmMsIHVzdHJ1bmMsIHVuYXJ5X2NvbnZlcnQp DQo+ICsNCj4gIERFRl9JTlRFUk5BTF9DT05EX0ZOIChBREQsIEVDRl9DT05TVCwgYWRkLCBiaW5h cnkpDQo+ICBERUZfSU5URVJOQUxfQ09ORF9GTiAoU1VCLCBFQ0ZfQ09OU1QsIHN1YiwgYmluYXJ5 KQ0KPiAgREVGX0lOVEVSTkFMX0NPTkRfRk4gKE1VTCwgRUNGX0NPTlNULCBzbXVsLCBiaW5hcnkp DQo+IGRpZmYgLS1naXQgYS9nY2MvbWF0Y2gucGQgYi9nY2MvbWF0Y2gucGQNCj4gaW5kZXggM2Qw Njg5YzkzMTIuLmQ0MDYyNDM0Y2M3IDEwMDY0NA0KPiAtLS0gYS9nY2MvbWF0Y2gucGQNCj4gKysr IGIvZ2NjL21hdGNoLnBkDQo+IEBAIC0zOSw3ICszOSw4IEBAIGFsb25nIHdpdGggR0NDOyBzZWUg dGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlDQo+ICAgICBIT05PUl9OQU5TDQo+ICAgICB1 bmlmb3JtX3ZlY3Rvcl9wDQo+ICAgICBleHBhbmRfdmVjX2NtcF9leHByX3ANCj4gLSAgIGJpdG1h c2tfaW52X2NzdF92ZWN0b3JfcCkNCj4gKyAgIGJpdG1hc2tfaW52X2NzdF92ZWN0b3JfcA0KPiAr ICAgaW50ZWdlcl9oYWxmX3RydW5jYXRlZF9hbGxfb25lc19wKQ0KPg0KPiAgLyogT3BlcmF0b3Ig bGlzdHMuICAqLw0KPiAgKGRlZmluZV9vcGVyYXRvcl9saXN0IHRjY19jb21wYXJpc29uDQo+IEBA IC0zMjEwLDYgKzMyMTEsMTUgQEAgREVGSU5FX0lOVF9BTkRfRkxPQVRfUk9VTkRfRk4gKFJJTlQp DQo+ICAgKGlmIChJTlRFR1JBTF9UWVBFX1AgKHR5cGUpICYmIFRZUEVfVU5TSUdORUQgKHR5cGUp DQo+ICAgICAgICAmJiB0eXBlc19tYXRjaCAodHlwZSwgQDAsIEAxKSkpKQ0KPg0KPiArLyogVW5z aWduZWQgc2F0dXJhdGlvbiB0cnVuY2F0ZSwgY2FzZSAxICgpLCBzaXplb2YgKFdUKSA+IHNpemVv ZiAoTlQpLg0KPiArICAgU0FUX1VfVFJVTkMgPSAoTlQpeCB8IChOVCkoLShYID4gKFdUKShOVCko LTEpKSkuICAqLw0KPiArKG1hdGNoICh1bnNpZ2VuZF9pbnRlZ2VyX3NhdF90cnVuYyBAMCkNCg0K dW5zaWduZWQNCg0KPiArIChiaXRfaW9yOmMgKG5lZ2F0ZSAoY29udmVydCAoZ3QgQDAgaW50ZWdl cl9oYWxmX3RydW5jYXRlZF9hbGxfb25lc19wKSkpDQo+ICsgICAoY29udmVydCBAMCkpDQo+ICsg KGlmIChJTlRFR1JBTF9UWVBFX1AgKHR5cGUpICYmIFRZUEVfVU5TSUdORUQgKHR5cGUpDQo+ICsg ICAgICAmJiBUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKEAwKSkNCj4gKyAgICAgICYmIHRyZWVf aW50X2NzdF9sdCAoVFlQRV9TSVpFICh0eXBlKSwgVFlQRV9TSVpFIChUUkVFX1RZUEUgKEAwKSkp KSkpDQoNClRoaXMgdHlwZSBzaXplIHJlbGF0aW9uIGRvZXNuJ3QgbWF0Y2gNCmludGVnZXJfaGFs Zl90cnVuY2F0ZWRfYWxsX29uZXNfcCwgdGhhdCB3b3Jrcw0KYmFzZWQgb24gVFlQRV9QUkVDSVNJ T04uICBEb24ndCB5b3UgbWF5YmUgd2FudCB0byBzY3JhcA0KaW50ZWdlcl9oYWxmX3RydW5jYXRl ZF9hbGxfb25lc19wDQphcyB0b28gcmVzdHJpY3RpdmUgYW5kIGluc3RlYWQgdmVyaWZ5IHRoYXQg VFlQRV9QUkVDSVNJT04gKHR5cGUpIGlzDQpsZXNzIHRoYW4gdGhlDQpwcmVjaXNpb24gb2YgQDAg YW5kIHRoYXQgdGhlIElOVEVHRVJfQ1NUIGNvbXBhcmVkIGFnYWluc3QgbWF0Y2hlcw0KJ3R5cGUn cyBwcmVjaXNpb24gbWFzaz8NCg0KPiArDQo+ICAvKiB4ID4gIHkgICYmICB4ICE9IFhYWF9NSU4g IC0tPiAgeCA+IHkNCj4gICAgIHggPiAgeSAgJiYgIHggPT0gWFhYX01JTiAgLS0+ICBmYWxzZSAu ICovDQo+ICAoZm9yIGVxbmUgKGVxIG5lKQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL29wdGFicy5kZWYg Yi9nY2Mvb3B0YWJzLmRlZg0KPiBpbmRleCBiYzI2MTFhYmRjMi4uNGVhZmZlOTZjMTkgMTAwNjQ0 DQo+IC0tLSBhL2djYy9vcHRhYnMuZGVmDQo+ICsrKyBiL2djYy9vcHRhYnMuZGVmDQo+IEBAIC02 Myw2ICs2Myw5IEBAIE9QVEFCX0NYKGZyYWN0dW5zX29wdGFiLCAiZnJhY3R1bnMkUSRiJEkkYTIi KQ0KPiAgT1BUQUJfQ0woc2F0ZnJhY3Rfb3B0YWIsICJzYXRmcmFjdCRiJFEkYTIiLCBTQVRfRlJB Q1QsICJzYXRmcmFjdCIsIGdlbl9zYXRmcmFjdF9jb252X2xpYmZ1bmMpDQo+ICBPUFRBQl9DTChz YXRmcmFjdHVuc19vcHRhYiwgInNhdGZyYWN0dW5zJEkkYiRRJGEyIiwgVU5TSUdORURfU0FUX0ZS QUNULCAic2F0ZnJhY3R1bnMiLCBnZW5fc2F0ZnJhY3R1bnNfY29udl9saWJmdW5jKQ0KPg0KPiAr T1BUQUJfQ0wodXN0cnVuY19vcHRhYiwgInVzdHJ1bmMkYiRhMiIsIFVTX1RSVU5DQVRFLCAidXN0 cnVuYyIsIGdlbl9zYXRmcmFjdF9jb252X2xpYmZ1bmMpDQo+ICtPUFRBQl9DTChzc3RydW5jX29w dGFiLCAic3N0cnVuYyRiJGEyIiwgU1NfVFJVTkNBVEUsICJzc3RydW5jIiwgZ2VuX3NhdGZyYWN0 X2NvbnZfbGliZnVuYykNCg0KVGhvc2UgbGliZnVuY3MgZG8gbm90IGV4aXN0IHNvIHVzZSBOVUxM IGZvciB0aGVtLg0KDQo+ICsNCj4gIE9QVEFCX0NEKHNmaXh0cnVuY19vcHRhYiwgImZpeF90cnVu YyRGJGIkSSRhMiIpDQo+ICBPUFRBQl9DRCh1Zml4dHJ1bmNfb3B0YWIsICJmaXh1bnNfdHJ1bmMk RiRiJEkkYTIiKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtc3NhLW1hdGgtb3B0cy5jYyBi L2djYy90cmVlLXNzYS1tYXRoLW9wdHMuY2MNCj4gaW5kZXggNTcwODU0ODg3MjIuLjY0YmM3MGMy OWIzIDEwMDY0NA0KPiAtLS0gYS9nY2MvdHJlZS1zc2EtbWF0aC1vcHRzLmNjDQo+ICsrKyBiL2dj Yy90cmVlLXNzYS1tYXRoLW9wdHMuY2MNCj4gQEAgLTQwODgsNiArNDA4OCw3IEBAIGFyaXRoX292 ZXJmbG93X2NoZWNrX3AgKGdpbXBsZSAqc3RtdCwgZ2ltcGxlICpjYXN0X3N0bXQsIGdpbXBsZSAq JnVzZV9zdG10LA0KPg0KPiAgZXh0ZXJuIGJvb2wgZ2ltcGxlX3Vuc2lnbmVkX2ludGVnZXJfc2F0 X2FkZCAodHJlZSwgdHJlZSosIHRyZWUgKCopKHRyZWUpKTsNCj4gIGV4dGVybiBib29sIGdpbXBs ZV91bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIgKHRyZWUsIHRyZWUqLCB0cmVlICgqKSh0cmVlKSk7 DQo+ICtleHRlcm4gYm9vbCBnaW1wbGVfdW5zaWdlbmRfaW50ZWdlcl9zYXRfdHJ1bmMgKHRyZWUs IHRyZWUqLCB0cmVlICgqKSh0cmVlKSk7DQo+DQo+ICBzdGF0aWMgdm9pZA0KPiAgYnVpbGRfc2F0 dXJhdGlvbl9iaW5hcnlfYXJpdGhfY2FsbCAoZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaSwgaW50 ZXJuYWxfZm4gZm4sDQo+IEBAIC00MjE2LDYgKzQyMTcsMzYgQEAgbWF0Y2hfdW5zaWduZWRfc2F0 dXJhdGlvbl9zdWIgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2ksIGdwaGkgKnBoaSkNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wc1swXSwgb3BzWzFdKTsNCj4g IH0NCj4NCj4gKy8qDQo+ICsgKiBUcnkgdG8gbWF0Y2ggc2F0dXJhdGlvbiB1bnNpZ25lZCBzdWIu DQo+ICsgKiB1aW50MTZfdCB4XzQoRCk7DQo+ICsgKiB1aW50OF90IF82Ow0KPiArICogb3ZlcmZs b3dfNSA9IHhfNChEKSA+IDI1NTsNCj4gKyAqIF8xID0gKHVuc2lnbmVkIGNoYXIpIHhfNChEKTsN Cj4gKyAqIF8yID0gKHVuc2lnbmVkIGNoYXIpIG92ZXJmbG93XzU7DQo+ICsgKiBfMyA9IC1fMjsN Cj4gKyAqIF82ID0gXzEgfCBfMzsNCj4gKyAqID0+DQo+ICsgKiBfNiA9IC5TQVRfVFJVTkMgKHhf NChEKSk7DQo+ICsgKiAqLw0KPiArc3RhdGljIHZvaWQNCj4gK21hdGNoX3Vuc2lnbmVkX3NhdHVy YXRpb25fdHJ1bmMgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2ksIGdhc3NpZ24gKnN0bXQpDQo+ ICt7DQo+ICsgIHRyZWUgb3BzWzFdOw0KPiArICB0cmVlIGxocyA9IGdpbXBsZV9hc3NpZ25fbGhz IChzdG10KTsNCj4gKyAgdHJlZSB0eXBlID0gVFJFRV9UWVBFIChsaHMpOw0KPiArDQo+ICsgIGlm IChnaW1wbGVfdW5zaWdlbmRfaW50ZWdlcl9zYXRfdHJ1bmMgKGxocywgb3BzLCBOVUxMKQ0KPiAr ICAgICYmIGRpcmVjdF9pbnRlcm5hbF9mbl9zdXBwb3J0ZWRfcCAoSUZOX1NBVF9UUlVOQywNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9wYWlyICh0eXBlLCBU UkVFX1RZUEUgKG9wc1swXSkpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPUFRJTUlaRV9GT1JfQk9USCkpDQo+ICsgICAgew0KPiArICAgICAgZ2NhbGwgKmNhbGwg PSBnaW1wbGVfYnVpbGRfY2FsbF9pbnRlcm5hbCAoSUZOX1NBVF9UUlVOQywgMSwgb3BzWzBdKTsN Cj4gKyAgICAgIGdpbXBsZV9jYWxsX3NldF9saHMgKGNhbGwsIGxocyk7DQo+ICsgICAgICBnc2lf cmVwbGFjZSAoZ3NpLCBjYWxsLCAvKiB1cGRhdGVfZWhfaW5mbyAqLyB0cnVlKTsNCj4gKyAgICB9 DQo+ICt9DQo+ICsNCj4gIC8qIFJlY29nbml6ZSBmb3IgdW5zaWduZWQgeA0KPiAgICAgeCA9IHkg LSB6Ow0KPiAgICAgaWYgKHggPiB5KQ0KPiBAQCAtNjE4OCw2ICs2MjE5LDcgQEAgbWF0aF9vcHRz X2RvbV93YWxrZXI6OmFmdGVyX2RvbV9jaGlsZHJlbiAoYmFzaWNfYmxvY2sgYmIpDQo+DQo+ICAg ICAgICAgICAgIGNhc2UgQklUX0lPUl9FWFBSOg0KPiAgICAgICAgICAgICAgIG1hdGNoX3Vuc2ln bmVkX3NhdHVyYXRpb25fYWRkICgmZ3NpLCBhc19hPGdhc3NpZ24gKj4gKHN0bXQpKTsNCj4gKyAg ICAgICAgICAgICBtYXRjaF91bnNpZ25lZF9zYXR1cmF0aW9uX3RydW5jICgmZ3NpLCBhc19hPGdh c3NpZ24gKj4gKHN0bXQpKTsNCj4gICAgICAgICAgICAgICAvKiBmYWxsLXRocm91Z2ggICovDQo+ ICAgICAgICAgICAgIGNhc2UgQklUX1hPUl9FWFBSOg0KPiAgICAgICAgICAgICAgIG1hdGNoX3Vh ZGRjX3VzdWJjICgmZ3NpLCBzdG10LCBjb2RlKTsNCj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLmNj IGIvZ2NjL3RyZWUuY2MNCj4gaW5kZXggMmQyZDViNmRiNmUuLjQ1NzJlNmZjNDJiIDEwMDY0NA0K PiAtLS0gYS9nY2MvdHJlZS5jYw0KPiArKysgYi9nY2MvdHJlZS5jYw0KPiBAQCAtMjk0NCw2ICsy OTQ0LDI4IEBAIGludGVnZXJfYWxsX29uZXNwIChjb25zdF90cmVlIGV4cHIpDQo+ICAgICAgICAg ICA9PSB3aTo6dG9fd2lkZSAoZXhwcikpOw0KPiAgfQ0KPg0KPiArLyogUmV0dXJuIHRydWUgaWYg RVhQUiBpcyBhbiBpbnRlZ2VyIGNvbnN0YW50IG9mIGFsbCBvbmVzIHdpdGggaGFsZg0KPiArICAg dHJ1bmNhdGVkIGluIHByZWNpc2lvbi4gIE9yIHJldHVybiBmYWxzZS4gIEZvciBleGFtcGxlOg0K PiArICAgdWludDE2X3QgYSA9IDI1NTsgICAvLyB0cnVlLg0KPiArICAgdWludDE2X3QgYiA9IDA7 ICAgICAvLyBmYWxzZS4NCj4gKyAgIHVpbnQxNl90IGMgPSA2NTU0NTsgLy8gZmFsc2UuICAqLw0K PiArYm9vbA0KPiAraW50ZWdlcl9oYWxmX3RydW5jYXRlZF9hbGxfb25lc19wIChjb25zdF90cmVl IGV4cHIpDQo+ICt7DQo+ICsgIGlmIChUUkVFX0NPREUgKGV4cHIpICE9IElOVEVHRVJfQ1NUKQ0K PiArICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiArICB1bnNpZ25lZCBwcmVjaXNpb24gPSBUWVBF X1BSRUNJU0lPTiAoVFJFRV9UWVBFIChleHByKSk7DQo+ICsNCj4gKyAgZ2NjX2Fzc2VydCAocHJl Y2lzaW9uIDw9IDY0KTsNCj4gKw0KPiArICB1bnNpZ25lZCB0cnVuY19wcmVjID0gcHJlY2lzaW9u IC8gMjsNCj4gKyAgd2lkZV9pbnQgdHJ1bmNfbWF4ID0gd2k6OnVod2kgKCh1aW50NjRfdCktMSA+ PiAoNjQgLSB0cnVuY19wcmVjKSwgcHJlY2lzaW9uKTsNCg0KVGhlcmUgaXMgd2k6Om1hc2sgd2hp Y2ggZG9lc24ndCBzdWZmZXIgZnJvbSBiZWluZyBsaW1pdGVkIHRvIG1heCA2NGJpdHMuDQoNCj4g KyAgd2lkZV9pbnQgZXhwcl9pbnQgPSB3aTo6dG9fd2lkZSAoZXhwciwgcHJlY2lzaW9uKTsNCj4g Kw0KPiArICByZXR1cm4gdHJ1bmNfbWF4ID09IGV4cHJfaW50Ow0KPiArfQ0KPiArDQo+ICAvKiBS ZXR1cm4gdHJ1ZSBpZiBFWFBSIGlzIHRoZSBpbnRlZ2VyIGNvbnN0YW50IG1pbnVzIG9uZSwgb3Ig YSBsb2NhdGlvbg0KPiAgICAgd3JhcHBlciBmb3Igc3VjaCBhIGNvbnN0YW50LiAgKi8NCj4NCj4g ZGlmZiAtLWdpdCBhL2djYy90cmVlLmggYi9nY2MvdHJlZS5oDQo+IGluZGV4IDI4ZThlNzFiMDM2 Li4wMjM3ODI2ZGQyMyAxMDA2NDQNCj4gLS0tIGEvZ2NjL3RyZWUuaA0KPiArKysgYi9nY2MvdHJl ZS5oDQo+IEBAIC01MjA1LDYgKzUyMDUsMTIgQEAgZXh0ZXJuIGJvb2wgaW50ZWdlcl9lYWNoX29u ZXAgKGNvbnN0X3RyZWUpOw0KPg0KPiAgZXh0ZXJuIGJvb2wgaW50ZWdlcl9hbGxfb25lc3AgKGNv bnN0X3RyZWUpOw0KPg0KPiArLyogaW50ZWdlcl9oYWxmX3RydW5jYXRlZF9hbGxfb25lc19wICh0 cmVlIHgpIHdpbGwgcmV0dXJuIHRydWUgaWYgeCBpcw0KPiArICAgdGhlIGludGVnZXIgY29uc3Rh bnQgdGhhdCB0aGUgaGFsZiB0cnVuY2F0ZWQgYml0cyBhcmUgYWxsIDEuDQo+ICsgICBGb3IgZXhh bXBsZSwgdWludDE2X3QgdHlwZSB3aXRoIDI1NSBjb25zdGFudCBpbnRlZ2VyIHdpbGwgYmUgdHJ1 ZS4gICovDQo+ICsNCj4gK2V4dGVybiBib29sIGludGVnZXJfaGFsZl90cnVuY2F0ZWRfYWxsX29u ZXNfcCAoY29uc3RfdHJlZSBleHByKTsNCj4gKw0KPiAgLyogaW50ZWdlcl9taW51c19vbmVwICh0 cmVlIHgpIGlzIG5vbnplcm8gaWYgWCBpcyBhbiBpbnRlZ2VyIGNvbnN0YW50IG9mDQo+ICAgICB2 YWx1ZSAtMS4gICovDQo+DQo+IC0tDQo+IDIuMzQuMQ0KPg0K