From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DFF23C77B72 for ; Thu, 20 Apr 2023 14:32:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References:Cc:To:From: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=xp4/dPwWYHJWi/W4HB7JmIMM082Izej1ht8gW6yJFmY=; b=OyPVzMQUKEWKRCDgjCtAR9OMXa xZ3pE+G7A5l51E//w6yBRoOXWruNh8V2Db2D39nPJogzJgpUyx4DLGJi8+zSHLl4djxOg+q7bWq2/ WwiJSlEmMW1TRvbBa+McT8lg8zsjnTpjKnSasLCN1BOhbRa4jcWXpfpu0t7Ac59UkhKGn2uOM2paP QbL1TqbnShuM8SWjQ264flmxfOen010aOipSCYhTlseXtChJ4S2mM3+GEkEWjMMEA6+MwaOSFcx+z +VcGSzfdPJ31KcVuw+eS1MWH1eB9pIuTS8xwZAjXOIOZuHvhsvoI2A+vKXR3CkGBNbED42CSwqot2 OKjWxDBQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1ppVJJ-008JDT-27; Thu, 20 Apr 2023 14:30:57 +0000 Received: from mail-dm6nam11on20703.outbound.protection.outlook.com ([2a01:111:f400:7eaa::703] helo=NAM11-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1ppVJE-008JCH-2t for linux-arm-kernel@lists.infradead.org; Thu, 20 Apr 2023 14:30:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JXh+sKFGsThdho3+kVBWOI7U2yeMVz/fYUdeHMAaj5B5pjcEQ3Ocf/AXXIefhD/vehq9MElZijSPlWmrOxHernmi2MHFGCVwemLjP3VNY/3upCVTqOJZAgTO0AwvXZN5m+ZDUnZR95HK8J+rWuk33zJubYEq7ezTUF0BdiIseVh2DRufve5pLth8E5H+VTZ6IB0ULloeMKkyZUaFK5DGDC1sD0Pih3eNtA+l57Q2Pb+onFwNH4ksMssFnG+dBlDbq+/YwJvqEIZ9347LZUJmww0tbvtC3QsEXA9XMmdS8SZLI0CXpnHfaEZipz3yxJz7cVWbp02JcBif0c0sEAG9hw== 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=gkwPc5fxWyZmOB+42WtFDtMgsAqipY1iXwQwno6PQ8Y=; b=GIQQpMorxZnvNDWIQGIEVXAwCeJhAfH6WhGqrnU//DF1U3AJNdm01ax/6u1K0mAX3OpWwPuY+LHTc2Gd8L/B+cMo6VXJW9Ez8l7MeZ+vxJC5zL3hwhAXSpvgTt4y8kYMkHozSAFDNB8ACKGqL0A5OL5Cl76rY/i2JZ7DdV/VFyUveB5fMBrR/o6uqnaDmFkuHGQYcBsfcuhSnQSG9eVpQf3d9+t+oIIwgXS44Z/CfhUv4qbDtPZEtwwx/2kisCjMUi1yIhUKKX6bGe3rsSfbmcZWReeoQVQ8xgJ6pX0XoilLN+cfGClQieg+KjDxQqLy53ShLwEzgdTiQvYD3XlfCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gkwPc5fxWyZmOB+42WtFDtMgsAqipY1iXwQwno6PQ8Y=; b=FenkkH4eKNTdigRdBsKW1CadIQfapDgheYe+CWsgUpLAzcEzGedz8K7ougchTtvcjLym/9V45sLqJ72tFHChU7LtvZZ/KeqcijOekIr6pxeQTQxjwgqIl3jRhk7i94ZWhYzLZhzpinilF17IctpoDztWpZGO+0I1WiFVfEZyMbc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from DM8PR01MB6824.prod.exchangelabs.com (2603:10b6:8:23::24) by BN6PR01MB2804.prod.exchangelabs.com (2603:10b6:404:d6::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.11; Thu, 20 Apr 2023 14:30:42 +0000 Received: from DM8PR01MB6824.prod.exchangelabs.com ([fe80::5cf:2baf:f5ab:ac87]) by DM8PR01MB6824.prod.exchangelabs.com ([fe80::5cf:2baf:f5ab:ac87%5]) with mapi id 15.20.6319.022; Thu, 20 Apr 2023 14:30:42 +0000 Message-ID: <20f17fa9-d584-e0e5-9017-bd8e6c7fa502@os.amperecomputing.com> Date: Thu, 20 Apr 2023 20:00:34 +0530 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH] perf cs-etm: Add support for coresight trace for any range of CPUs Content-Language: en-US From: Ganapatrao Kulkarni To: James Clark Cc: mathieu.poirier@linaro.org, acme@kernel.org, darren@os.amperecomputing.com, scott@os.amperecomputing.com, scclevenger@os.amperecomputing.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, mike.leach@linaro.org, suzuki.poulose@arm.com References: <20230419172101.78638-1-gankulkarni@os.amperecomputing.com> <84eb3363-2ef8-d3f1-4613-805959dbf334@os.amperecomputing.com> <91ba66e7-737f-6526-a703-a755e114f9d4@arm.com> In-Reply-To: X-ClientProxiedBy: CH2PR14CA0006.namprd14.prod.outlook.com (2603:10b6:610:60::16) To DM8PR01MB6824.prod.exchangelabs.com (2603:10b6:8:23::24) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR01MB6824:EE_|BN6PR01MB2804:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a3458b9-e54b-453a-c13a-08db41abd228 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dYvQ8SBJd2VKGWE/VSy4xKh/rbzbP7aH84RS6Qr/v1Ti/bsKPd5us1nUG02bPJxzN6hISehUNVLEWIkl2XvAPyv6EZ4bZ23lexx6AyogyKw+YS56rkPEbImXQtPBZ9a6X96p2RGclMSq5q10/64e1zKA5dmslWTJ+sg/QQLPTaOS/RqG5d0RpZSPb/+IOdihe+TYrgtQ0JZxGvyzxjJr7pcg443nCLZJLGQ0n4/AH3Jy9wcrVPerI9ldpf1aRoZlyEADblryYy9nk4QDqYa+5pcbiCevaJaG7lfIgcgYMo+sbTgLvFy3epWstZ3pSDuQWNKa7CdrGEt+Zqx21EWUZOoVKfcCsA7SPO3iLTvD6hakr0rmA5HydW6ddMnyxhTrgB9yVWhN0wPSRnvjbUqGtCcuaYCBMrahmSOf+pHPDRl98pP83fPIBVxHAMrdgZYtJ1US2vwTyJAlPpGNHRTIXJO3pWgnreUemJ+n6FNEwMd1Gl4dm1Z2bgXeJk/UCVDpB25XC2rLTzvHE5UUrFqqgZxwuk9A9MT706lpkWg1qs0dZlvp4+mbtyxNNoph/N762IkwFqyiTlTkwEeuWA9Ht14bTfbu3Ev0cYnWqugYaDE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR01MB6824.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(136003)(376002)(39850400004)(396003)(366004)(346002)(451199021)(31686004)(6916009)(4326008)(316002)(966005)(66946007)(66556008)(66476007)(186003)(26005)(6506007)(53546011)(6512007)(38100700002)(2616005)(83380400001)(5660300002)(41300700001)(8676002)(8936002)(478600001)(6666004)(6486002)(86362001)(31696002)(30864003)(2906002)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TU9lZFBtTGx3NExvbEhpT0FDWHI1N3JrbWc1WDZXZUFrT0pXd2hnRzJKNGw4?= =?utf-8?B?WEw3LytvbHB0OUl5a0ZJcmZoQmFGNmRnNFNzMzhsYnlLSGR5VkNBZmdzVWZj?= =?utf-8?B?cFN1M2RsbVM4RUVmWlRCc2RMNVVlYXpTS1JyUFVEUnUzMlRiM1ZRUFhZZlRD?= =?utf-8?B?NWpKaU8xVUVqN0hjczliTkNRNTBCWjQ2YUhqSlRFQUd1Q3ArZWhXcmF1RW9L?= =?utf-8?B?Q0dLOG9uNWFKNmlDY0FTQmlPcFUrYk1pdFVDS01jZ1JsYnBxRnFXZ2hhRzFY?= =?utf-8?B?cmVDWWNpTlQvR21HWmRjZzBWRHVRWHA3NnVsNjQ4SWh2V1RuYk5CVG8xWmdz?= =?utf-8?B?TjdIVVZLRmpVWktOL2Y1UERWT3FPT0FjbjlpVFRTL1JCc3ZaTWxmanFVb09S?= =?utf-8?B?NHMvajY5RmZaOGRiWC84eS9aTnlPKzY1RWc5Qkg1NjRPS3UrS05OdXo0TVZQ?= =?utf-8?B?UXFueGVTWStJUEpJYnppUEo2alZqZmJUYUpvUHlVNGZGcDM0cnJuMllxS0lN?= =?utf-8?B?NTFaT3cwL1Y5VHY3Sno4dlFHcmRpUmlGMlRhUnpFQmphck9YOGtGMWQxTWRH?= =?utf-8?B?L2ZlemVHQ0FzTzIxOFkzQk9KN3FlWE5qbys5ZGxFMVV6bTIxSUx4Y2xka21p?= =?utf-8?B?NjkwRmp0b1ljSDJCT1ZrVEpkSjVkZGgzWnNZNi9VVTVIZ2VWcE9BZUVIZDJ3?= =?utf-8?B?a2VQclFmMCtmOSsyczRQbGtqWjdRK05rRkJ4RWx1NkpxS3A2d2llYnNpV0kv?= =?utf-8?B?TzkyVk1vcVAvb2ZwNEhZVWY5bENqeVVmWDZiSTNySVRKOFlSeHZuMmx6VFJB?= =?utf-8?B?cGNFenZMTHVIWnFvZGE0bEZoQzdhVExGUmZPcFl1WHhEcnlOWG8xMGFrQVdP?= =?utf-8?B?UFphT3ZtalhkSjBqaVdjcGNZYXd4cHE1dWZzOFo2d2wyRnRaNTUyUGtHVDV5?= =?utf-8?B?QkZTTkFRYVJHZEhhNVlSbWtBcEt4U1J0YmowTHpTbVk0Mi9Ub1Z3eGFrMFFy?= =?utf-8?B?cDVtK0tXL1RNSEFTNWJUQWZhNDh6Zno0YnZodlIvZ0pIS2ZmbGFBNU05QzJo?= =?utf-8?B?RGcwVHdSd0RLVjR2THRqYk5QNWVwS3FVdjlDS2Q4d2FSR2JGNzZvaEZnenFS?= =?utf-8?B?NTZMV05lQ05BeUI1YVMrMm5sY0p1YmNQVHRZdURSSFlnSGdzZ3h1WklibTc0?= =?utf-8?B?bUx6RnBwNDNVY2w2UlMvVFpnbTNtSTdqRWF5SDhhYUJPRVFMeGpYOElpUm4y?= =?utf-8?B?WEN5UGFjREg2ZEtPZUZEQ2VyeXlNM2dLUUFWcU1maTRvaVN4TFRqQTNkanA0?= =?utf-8?B?ek4xOHdCaERwc3M0MjQwS1d5NzZIY1pwd0RhNUkxeGwvRFFuZXVCZWdQVUhT?= =?utf-8?B?SXVDb0dJanI4N2d1REUwRUowRHQyV0N1bHExR1kweUdFSHFmUlpuNDNaVTFq?= =?utf-8?B?SEM5R2YzMng1d3lDRTZoNytUVnkzUnVkNlI0UDJreXcwUlRuOTh2eUErV1ZR?= =?utf-8?B?dmtQei9BNk1tR0l5ODVOOTdWYkVzZk05NDBHQjhjUnUya0JuOUZmOXdwNTRQ?= =?utf-8?B?MmNidkhhb0hXOTYxSC9XcnNUQ1pWSjdTZVZDeWROdUhvTFBpWVZSYUt3dWZG?= =?utf-8?B?Y2xlaVREbU1semxaL2hkNFRWT1dVRDJJU1A1T3Q4czBubktUVVZCZHliRFpH?= =?utf-8?B?L1B2UGVtSG9OdDhUMUw5bFpvaXBodHZtcjlWUVhsa1ArWlVXcmlMcXJsSkw2?= =?utf-8?B?OFVYODd2cG1FTENEQmRJVjZCUGZtZncydUVvRXdBam1wTzhDSnJReW1MajJi?= =?utf-8?B?OEpGdHR6T3RVdFlHOUhzM3gxT2h0T0RDZjdOZGhnSGU2YW9LYUFDdWNkN3pR?= =?utf-8?B?dDBtck4zNjZQNXp5RVkxejRQMXJGTVNFeEtXM3hKaDNyTGVyRzUzTUVPbDF6?= =?utf-8?B?SitqZGpiQnpVTUtSOVJYb1pFcjc5aGdkTTZGeXVKTzNHSTFGRklSamtQRmxX?= =?utf-8?B?WDRjQ2Rpbko1TXpmVHp4Ukx2d3FWUVdFZGVyb3JVWmdXN1dMbVhkWjZlekFK?= =?utf-8?B?bFIvODNLVHpXbU1JaExZZnZ5OWFFOFd6ZFp0QmVTejd2TmxMUVFLbVRqancw?= =?utf-8?B?U1BTNHlMeGRFdllqNTZYZ0paWG9hSVA2N1A5U0tPcGF6bjl1b1dwUkR3TkYz?= =?utf-8?Q?obwXnuGsxI87ihi6l1zRRfJGCIOAD/fj72x0OlGf3iAh?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a3458b9-e54b-453a-c13a-08db41abd228 X-MS-Exchange-CrossTenant-AuthSource: DM8PR01MB6824.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2023 14:30:42.5438 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qF3g93y6JGPqg4lJlOL1zKSMVh/mzADE5b8N134bgI6g54YJklJPzU6XrUTWJk5lBmp4OsYpy7p7mN0373Lho5MZqj2pKs/Op2XtcwGnzxdrnQOCPaadYM0vzrxVtP4r X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR01MB2804 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230420_073053_036435_D5DBFAC8 X-CRM114-Status: GOOD ( 14.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgSmFtZXMsCgpPbiAyMC0wNC0yMDIzIDA2OjA3IHBtLCBHYW5hcGF0cmFvIEt1bGthcm5pIHdy b3RlOgo+IAo+IAo+IE9uIDIwLTA0LTIwMjMgMDY6MDAgcG0sIEphbWVzIENsYXJrIHdyb3RlOgo+ Pgo+Pgo+PiBPbiAyMC8wNC8yMDIzIDEyOjQ3LCBHYW5hcGF0cmFvIEt1bGthcm5pIHdyb3RlOgo+ Pj4KPj4+IEhpIEphbWVzLAo+Pj4KPj4+IE9uIDIwLTA0LTIwMjMgMDM6MTMgcG0sIEphbWVzIENs YXJrIHdyb3RlOgo+Pj4+Cj4+Pj4KPj4+PiBPbiAxOS8wNC8yMDIzIDE4OjIxLCBHYW5hcGF0cmFv IEt1bGthcm5pIHdyb3RlOgo+Pj4+PiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0 cyBjb3Jlc2lnaHQgdHJhY2UgZm9yIGEgcmFuZ2Ugb2YKPj4+Pj4gQ1BVcywgaWYgdGhlIGZpcnN0 IENQVSBpcyBDUFUwLgo+Pj4+Pgo+Pj4+PiBBZGRpbmcgY2hhbmdlcyB0byBlbmFibGUgY29yZXNp Z2h0IHRyYWNlIGZvciBhbnkgcmFuZ2Ugb2YgQ1BVcyBieQo+Pj4+PiBkZWNvZGluZyB0aGUgZmly c3QgQ1BVIGFsc28gZnJvbSB0aGUgaGVhZGVyLgo+Pj4+PiBMYXRlciwgZmlyc3QgQ1BVIGlkIGlz IHVzZWQgaW5zdGVhZCBvZiBDUFUwIGFjcm9zcyB0aGUgZGVjb2Rlcgo+Pj4+PiBmdW5jdGlvbnMu Cj4+Pj4+Cj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEdhbmFwYXRyYW8gS3Vsa2FybmkgCj4+Pj4+IDxn YW5rdWxrYXJuaUBvcy5hbXBlcmVjb21wdXRpbmcuY29tPgo+Pj4+PiAtLS0KPj4+Pj4gwqDCoCAu Li4vcGVyZi91dGlsL2NzLWV0bS1kZWNvZGVyL2NzLWV0bS1kZWNvZGVyLmMgfMKgIDQgKy0KPj4+ Pj4gwqDCoCAuLi4vcGVyZi91dGlsL2NzLWV0bS1kZWNvZGVyL2NzLWV0bS1kZWNvZGVyLmggfMKg IDMgKy0KPj4+Pj4gwqDCoCB0b29scy9wZXJmL3V0aWwvY3MtZXRtLmPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA2MiAKPj4+Pj4gKysrKysrKysrKysrLS0tLS0t LQo+Pj4+PiDCoMKgIDMgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRp b25zKC0pCj4+Pj4+Cj4+Pj4+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvY3MtZXRtLWRl Y29kZXIvY3MtZXRtLWRlY29kZXIuYwo+Pj4+PiBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0tZGVj b2Rlci9jcy1ldG0tZGVjb2Rlci5jCj4+Pj4+IGluZGV4IDgyYTI3YWI5MGM4Yi4uNDFhYjI5OWI2 NDNiIDEwMDY0NAo+Pj4+PiAtLS0gYS90b29scy9wZXJmL3V0aWwvY3MtZXRtLWRlY29kZXIvY3Mt ZXRtLWRlY29kZXIuYwo+Pj4+PiArKysgYi90b29scy9wZXJmL3V0aWwvY3MtZXRtLWRlY29kZXIv Y3MtZXRtLWRlY29kZXIuYwo+Pj4+PiBAQCAtNzI0LDcgKzcyNCw3IEBAIGNzX2V0bV9kZWNvZGVy X19jcmVhdGVfZXRtX2RlY29kZXIoc3RydWN0Cj4+Pj4+IGNzX2V0bV9kZWNvZGVyX3BhcmFtcyAq ZF9wYXJhbXMsCj4+Pj4+IMKgwqAgfQo+Pj4+PiDCoMKgIMKgIHN0cnVjdCBjc19ldG1fZGVjb2Rl ciAqCj4+Pj4+IC1jc19ldG1fZGVjb2Rlcl9fbmV3KGludCBkZWNvZGVycywgc3RydWN0IGNzX2V0 bV9kZWNvZGVyX3BhcmFtcwo+Pj4+PiAqZF9wYXJhbXMsCj4+Pj4+ICtjc19ldG1fZGVjb2Rlcl9f bmV3KGludCBmaXJzdF9kZWNvZGVyLCBpbnQgZGVjb2RlcnMsIHN0cnVjdAo+Pj4+PiBjc19ldG1f ZGVjb2Rlcl9wYXJhbXMgKmRfcGFyYW1zLAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHN0cnVjdCBjc19ldG1fdHJhY2VfcGFyYW1zIHRfcGFyYW1zW10pCj4+Pj4+IMKgwqAgewo+ Pj4+PiDCoMKgwqDCoMKgwqAgc3RydWN0IGNzX2V0bV9kZWNvZGVyICpkZWNvZGVyOwo+Pj4+PiBA QCAtNzY5LDcgKzc2OSw3IEBAIGNzX2V0bV9kZWNvZGVyX19uZXcoaW50IGRlY29kZXJzLCBzdHJ1 Y3QKPj4+Pj4gY3NfZXRtX2RlY29kZXJfcGFyYW1zICpkX3BhcmFtcywKPj4+Pj4gwqDCoMKgwqDC oMKgIC8qIGluaXQgcmF3IGZyYW1lIGxvZ2dpbmcgaWYgcmVxdWlyZWQgKi8KPj4+Pj4gwqDCoMKg wqDCoMKgIGNzX2V0bV9kZWNvZGVyX19pbml0X3Jhd19mcmFtZV9sb2dnaW5nKGRfcGFyYW1zLCBk ZWNvZGVyKTsKPj4+Pj4gwqDCoCAtwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBkZWNvZGVyczsgaSsr KSB7Cj4+Pj4+ICvCoMKgwqAgZm9yIChpID0gZmlyc3RfZGVjb2RlcjsgaSA8IGRlY29kZXJzOyBp KyspIHsKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gY3NfZXRtX2RlY29kZXJfX2Ny ZWF0ZV9ldG1fZGVjb2RlcihkX3BhcmFtcywKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnRfcGFyYW1zW2ldLAo+Pj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBkZWNvZGVyKTsKPj4+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9jcy1l dG0tZGVjb2Rlci9jcy1ldG0tZGVjb2Rlci5oCj4+Pj4+IGIvdG9vbHMvcGVyZi91dGlsL2NzLWV0 bS1kZWNvZGVyL2NzLWV0bS1kZWNvZGVyLmgKPj4+Pj4gaW5kZXggOTJhODU1ZmJlNWI4Li5iMDYx OTNmYzc1YjQgMTAwNjQ0Cj4+Pj4+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0tZGVjb2Rl ci9jcy1ldG0tZGVjb2Rlci5oCj4+Pj4+ICsrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0tZGVj b2Rlci9jcy1ldG0tZGVjb2Rlci5oCj4+Pj4+IEBAIC05MCw3ICs5MCw4IEBAIGludCBjc19ldG1f ZGVjb2Rlcl9fcHJvY2Vzc19kYXRhX2Jsb2NrKHN0cnVjdAo+Pj4+PiBjc19ldG1fZGVjb2RlciAq ZGVjb2RlciwKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc2l6ZV90IGxlbiwgc2l6ZV90ICpjb25zdW1lZCk7Cj4+Pj4+IMKgwqAgwqAgc3Ry dWN0IGNzX2V0bV9kZWNvZGVyICoKPj4+Pj4gLWNzX2V0bV9kZWNvZGVyX19uZXcoaW50IG51bV9j cHUsCj4+Pj4+ICtjc19ldG1fZGVjb2Rlcl9fbmV3KGludCBmaXJzdF9kZWNvZGVyLAo+Pj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgZGVjb2RlcnMsCj4+Pj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3RydWN0IGNzX2V0bV9kZWNvZGVyX3BhcmFtcyAqZF9wYXJhbXMsCj4+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGNzX2V0bV90cmFjZV9wYXJh bXMgdF9wYXJhbXNbXSk7Cj4+Pj4+IMKgwqAgZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9j cy1ldG0uYyBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYwo+Pj4+PiBpbmRleCA5NGUyZDAyMDA5 ZWIuLjI2MTk1MTNhZTA4OCAxMDA2NDQKPj4+Pj4gLS0tIGEvdG9vbHMvcGVyZi91dGlsL2NzLWV0 bS5jCj4+Pj4+ICsrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYwo+Pj4+PiBAQCAtNTUsNiAr NTUsOCBAQCBzdHJ1Y3QgY3NfZXRtX2F1eHRyYWNlIHsKPj4+Pj4gwqDCoMKgwqDCoMKgIHU4IGhh c192aXJ0dWFsX3RzOyAvKiBWaXJ0dWFsL0tlcm5lbCB0aW1lc3RhbXBzIGluIHRoZSAKPj4+Pj4g dHJhY2UuICovCj4+Pj4+IMKgwqAgwqDCoMKgwqDCoCBpbnQgbnVtX2NwdTsKPj4+Pj4gK8KgwqDC oCBpbnQgZmlyc3RfY3B1Owo+Pj4+PiArwqDCoMKgIGludCBsYXN0X2NwdTsKPj4+Pj4gwqDCoMKg wqDCoMKgIHU2NCBsYXRlc3Rfa2VybmVsX3RpbWVzdGFtcDsKPj4+Pj4gwqDCoMKgwqDCoMKgIHUz MiBhdXh0cmFjZV90eXBlOwo+Pj4+PiDCoMKgwqDCoMKgwqAgdTY0IGJyYW5jaGVzX3NhbXBsZV90 eXBlOwo+Pj4+PiBAQCAtNjM4LDE0ICs2NDAsMTMgQEAgc3RhdGljIHZvaWQgY3NfZXRtX19zZXRf dHJhY2VfcGFyYW1fZXRlKHN0cnVjdAo+Pj4+PiBjc19ldG1fdHJhY2VfcGFyYW1zICp0X3BhcmFt cywKPj4+Pj4gwqDCoCB9Cj4+Pj4+IMKgwqAgwqAgc3RhdGljIGludCBjc19ldG1fX2luaXRfdHJh Y2VfcGFyYW1zKHN0cnVjdCBjc19ldG1fdHJhY2VfcGFyYW1zCj4+Pj4+ICp0X3BhcmFtcywKPj4+ Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGNzX2V0 bV9hdXh0cmFjZSAqZXRtLAo+Pj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpbnQgZGVjb2RlcnMpCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cnVjdCBjc19ldG1fYXV4dHJhY2UgKmV0bSkKPj4+Pj4gwqDCoCB7Cj4+ Pj4+IMKgwqDCoMKgwqDCoCBpbnQgaTsKPj4+Pj4gwqDCoMKgwqDCoMKgIHUzMiBldG1pZHI7Cj4+ Pj4+IMKgwqDCoMKgwqDCoCB1NjQgYXJjaGl0ZWN0dXJlOwo+Pj4+PiDCoMKgIC3CoMKgwqAgZm9y IChpID0gMDsgaSA8IGRlY29kZXJzOyBpKyspIHsKPj4+Pj4gK8KgwqDCoCBmb3IgKGkgPSBldG0t PmZpcnN0X2NwdTsgaSA8IGV0bS0+bGFzdF9jcHU7IGkrKykgewo+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoCBhcmNoaXRlY3R1cmUgPSBldG0tPm1ldGFkYXRhW2ldW0NTX0VUTV9NQUdJQ107Cj4+ Pj4+IMKgwqAgwqDCoMKgwqDCoMKgwqDCoMKgIHN3aXRjaCAoYXJjaGl0ZWN0dXJlKSB7Cj4+Pj4+ IEBAIC04MTcsNyArODE4LDcgQEAgc3RhdGljIHZvaWQgY3NfZXRtX19mcmVlKHN0cnVjdCBwZXJm X3Nlc3Npb24KPj4+Pj4gKnNlc3Npb24pCj4+Pj4+IMKgwqDCoMKgwqDCoCAvKiBUaGVuIHRoZSBS QiB0cmVlIGl0c2VsZiAqLwo+Pj4+PiDCoMKgwqDCoMKgwqAgaW50bGlzdF9fZGVsZXRlKHRyYWNl aWRfbGlzdCk7Cj4+Pj4+IMKgwqAgLcKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgYXV4LT5udW1fY3B1 OyBpKyspCj4+Pj4+ICvCoMKgwqAgZm9yIChpID0gYXV4LT5maXJzdF9jcHU7IGkgPCBhdXgtPmxh c3RfY3B1OyBpKyspCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHpmcmVlKCZhdXgtPm1ldGFk YXRhW2ldKTsKPj4+Pj4gwqDCoCDCoMKgwqDCoMKgIHRocmVhZF9fenB1dChhdXgtPnVua25vd25f dGhyZWFkKTsKPj4+Pj4gQEAgLTkyMSw3ICs5MjIsOCBAQCBzdGF0aWMgc3RydWN0IGNzX2V0bV9x dWV1ZQo+Pj4+PiAqY3NfZXRtX19hbGxvY19xdWV1ZShzdHJ1Y3QgY3NfZXRtX2F1eHRyYWNlICpl dG0sCj4+Pj4+IMKgwqDCoMKgwqDCoMKgICogRWFjaCBxdWV1ZSBjYW4gb25seSBjb250YWluIGRh dGEgZnJvbSBvbmUgQ1BVIHdoZW4KPj4+Pj4gdW5mb3JtYXR0ZWQsIHNvIG9ubHkgb25lIGRlY29k ZXIgaXMKPj4+Pj4gwqDCoMKgwqDCoMKgwqAgKiBuZWVkZWQuCj4+Pj4+IMKgwqDCoMKgwqDCoMKg ICovCj4+Pj4+IC3CoMKgwqAgaW50IGRlY29kZXJzID0gZm9ybWF0dGVkID8gZXRtLT5udW1fY3B1 IDogMTsKPj4+Pj4gK8KgwqDCoCBpbnQgZmlyc3RfZGVjb2RlciA9IGZvcm1hdHRlZCA/IGV0bS0+ Zmlyc3RfY3B1IDogMDsKPj4+Pj4gK8KgwqDCoCBpbnQgZGVjb2RlcnMgPSBmaXJzdF9kZWNvZGVy ICsgKGZvcm1hdHRlZCA/IGV0bS0+bnVtX2NwdSA6IDEpOwo+Pj4+PiDCoMKgIMKgwqDCoMKgwqAg ZXRtcSA9IHphbGxvYyhzaXplb2YoKmV0bXEpKTsKPj4+Pj4gwqDCoMKgwqDCoMKgIGlmICghZXRt cSkKPj4+Pj4gQEAgLTkzNyw3ICs5MzksNyBAQCBzdGF0aWMgc3RydWN0IGNzX2V0bV9xdWV1ZQo+ Pj4+PiAqY3NfZXRtX19hbGxvY19xdWV1ZShzdHJ1Y3QgY3NfZXRtX2F1eHRyYWNlICpldG0sCj4+ Pj4+IMKgwqDCoMKgwqDCoCBpZiAoIXRfcGFyYW1zKQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oCBnb3RvIG91dF9mcmVlOwo+Pj4+PiDCoMKgIC3CoMKgwqAgaWYgKGNzX2V0bV9faW5pdF90cmFj ZV9wYXJhbXModF9wYXJhbXMsIGV0bSwgZGVjb2RlcnMpKQo+Pj4+PiArwqDCoMKgIGlmIChjc19l dG1fX2luaXRfdHJhY2VfcGFyYW1zKHRfcGFyYW1zLCBldG0pKQo+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoCBnb3RvIG91dF9mcmVlOwo+Pj4+PiDCoMKgIMKgwqDCoMKgwqAgLyogU2V0IGRlY29k ZXIgcGFyYW1ldGVycyB0byBkZWNvZGUgdHJhY2UgcGFja2V0cyAqLwo+Pj4+PiBAQCAtOTQ3LDgg Kzk0OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY3NfZXRtX3F1ZXVlCj4+Pj4+ICpjc19ldG1fX2FsbG9j X3F1ZXVlKHN0cnVjdCBjc19ldG1fYXV4dHJhY2UgKmV0bSwKPj4+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9ybWF0dGVkKSkKPj4+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgwqAgZ290byBvdXRfZnJlZTsKPj4+Pj4gwqDCoCAtwqDCoMKgIGV0bXEtPmRlY29k ZXIgPSBjc19ldG1fZGVjb2Rlcl9fbmV3KGRlY29kZXJzLCAmZF9wYXJhbXMsCj4+Pj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRfcGFyYW1zKTsKPj4+ Pj4gK8KgwqDCoCBldG1xLT5kZWNvZGVyID0gY3NfZXRtX2RlY29kZXJfX25ldyhmaXJzdF9kZWNv ZGVyLCBkZWNvZGVycywKPj4+Pj4gJmRfcGFyYW1zLCB0X3BhcmFtcyk7Cj4+Pj4+IMKgwqAgwqDC oMKgwqDCoCBpZiAoIWV0bXEtPmRlY29kZXIpCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdv dG8gb3V0X2ZyZWU7Cj4+Pj4+IEBAIC0yOTU5LDExICsyOTYwLDExIEBAIHN0YXRpYyBpbnQgY3Nf ZXRtX19xdWV1ZV9hdXhfcmVjb3JkcyhzdHJ1Y3QKPj4+Pj4gcGVyZl9zZXNzaW9uICpzZXNzaW9u KQo+Pj4+PiDCoMKgwqAgKiBMb29wIHRocm91Z2ggdGhlIEVUTXMgYW5kIGNvbXBsYWluIGlmIHdl IGZpbmQgYXQgbGVhc3Qgb25lIHdoZXJlCj4+Pj4+IHRzX3NvdXJjZSAhPSAxICh2aXJ0dWFsCj4+ Pj4+IMKgwqDCoCAqIHRpbWVzdGFtcHMpLgo+Pj4+PiDCoMKgwqAgKi8KPj4+Pj4gLXN0YXRpYyBi b29sIGNzX2V0bV9faGFzX3ZpcnR1YWxfdHModTY0ICoqbWV0YWRhdGEsIGludCBudW1fY3B1KQo+ Pj4+PiArc3RhdGljIGJvb2wgY3NfZXRtX19oYXNfdmlydHVhbF90cyh1NjQgKiptZXRhZGF0YSwg c3RydWN0Cj4+Pj4+IGNzX2V0bV9hdXh0cmFjZSAqZXRtKQo+Pj4+PiDCoMKgIHsKPj4+Pj4gwqDC oMKgwqDCoMKgIGludCBqOwo+Pj4+PiDCoMKgIC3CoMKgwqAgZm9yIChqID0gMDsgaiA8IG51bV9j cHU7IGorKykgewo+Pj4+PiArwqDCoMKgIGZvciAoaiA9IGV0bS0+Zmlyc3RfY3B1OyBqIDwgZXRt LT5sYXN0X2NwdTsgaisrKSB7Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN3aXRjaCAobWV0 YWRhdGFbal1bQ1NfRVRNX01BR0lDXSkgewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNl IF9fcGVyZl9jc19ldG12NF9tYWdpYzoKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBpZiAoSEFTX1BBUkFNKGosIEVUTVY0LCBUU19TT1VSQ0UpIHx8Cj4+Pj4+IG1ldGFkYXRhW2pd W0NTX0VUTVY0X1RTX1NPVVJDRV0gIT0gMSkKPj4+Pj4gQEAgLTI5ODIsMTMgKzI5ODMsMTQgQEAg c3RhdGljIGJvb2wgY3NfZXRtX19oYXNfdmlydHVhbF90cyh1NjQKPj4+Pj4gKiptZXRhZGF0YSwg aW50IG51bV9jcHUpCj4+Pj4+IMKgwqAgfQo+Pj4+PiDCoMKgIMKgIC8qIG1hcCB0cmFjZSBpZHMg dG8gY29ycmVjdCBtZXRhZGF0YSBibG9jaywgZnJvbSBpbmZvcm1hdGlvbiBpbgo+Pj4+PiBtZXRh ZGF0YSAqLwo+Pj4+PiAtc3RhdGljIGludCBjc19ldG1fX21hcF90cmFjZV9pZHNfbWV0YWRhdGEo aW50IG51bV9jcHUsIHU2NCAKPj4+Pj4gKiptZXRhZGF0YSkKPj4+Pj4gK3N0YXRpYyBpbnQgY3Nf ZXRtX19tYXBfdHJhY2VfaWRzX21ldGFkYXRhKHN0cnVjdCBjc19ldG1fYXV4dHJhY2UgCj4+Pj4+ ICpldG0pCj4+Pj4+IMKgwqAgewo+Pj4+PiDCoMKgwqDCoMKgwqAgdTY0IGNzX2V0bV9tYWdpYzsK Pj4+Pj4gK8KgwqDCoCB1NjQgKiptZXRhZGF0YSA9IGV0bS0+bWV0YWRhdGE7Cj4+Pj4+IMKgwqDC oMKgwqDCoCB1OCB0cmFjZV9jaGFuX2lkOwo+Pj4+PiDCoMKgwqDCoMKgwqAgaW50IGksIGVycjsK Pj4+Pj4gwqDCoCAtwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBudW1fY3B1OyBpKyspIHsKPj4+Pj4g K8KgwqDCoCBmb3IgKGkgPSBldG0tPmZpcnN0X2NwdTsgaSA8IGV0bS0+bGFzdF9jcHU7IGkrKykg ewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjc19ldG1fbWFnaWMgPSBtZXRhZGF0YVtpXVtD U19FVE1fTUFHSUNdOwo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzd2l0Y2ggKGNzX2V0bV9t YWdpYykgewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIF9fcGVyZl9jc19ldG12M19t YWdpYzoKPj4+Pj4gQEAgLTMwMTUsMTIgKzMwMTcsMTMgQEAgc3RhdGljIGludCBjc19ldG1fX21h cF90cmFjZV9pZHNfbWV0YWRhdGEoaW50Cj4+Pj4+IG51bV9jcHUsIHU2NCAqKm1ldGFkYXRhKQo+ Pj4+PiDCoMKgwqAgKiBJZiB3ZSBmb3VuZCBBVVhfSFdfSUQgcGFja2V0cywgdGhlbiBzZXQgYW55 IG1ldGFkYXRhIG1hcmtlZCBhcwo+Pj4+PiB1bnVzZWQgdG8gdGhlCj4+Pj4+IMKgwqDCoCAqIHVu dXNlZCB2YWx1ZSB0byByZWR1Y2UgdGhlIG51bWJlciBvZiB1bm5lZWRlZCBkZWNvZGVycyBjcmVh dGVkLgo+Pj4+PiDCoMKgwqAgKi8KPj4+Pj4gLXN0YXRpYyBpbnQgY3NfZXRtX19jbGVhcl91bnVz ZWRfdHJhY2VfaWRzX21ldGFkYXRhKGludCBudW1fY3B1LCB1NjQKPj4+Pj4gKiptZXRhZGF0YSkK Pj4+Pj4gK3N0YXRpYyBpbnQgY3NfZXRtX19jbGVhcl91bnVzZWRfdHJhY2VfaWRzX21ldGFkYXRh KHN0cnVjdAo+Pj4+PiBjc19ldG1fYXV4dHJhY2UgKmV0bSkKPj4+Pj4gwqDCoCB7Cj4+Pj4+IMKg wqDCoMKgwqDCoCB1NjQgY3NfZXRtX21hZ2ljOwo+Pj4+PiArwqDCoMKgIHU2NCAqKm1ldGFkYXRh ID0gZXRtLT5tZXRhZGF0YTsKPj4+Pj4gwqDCoMKgwqDCoMKgIGludCBpOwo+Pj4+PiDCoMKgIC3C oMKgwqAgZm9yIChpID0gMDsgaSA8IG51bV9jcHU7IGkrKykgewo+Pj4+PiArwqDCoMKgIGZvciAo aSA9IGV0bS0+Zmlyc3RfY3B1OyBpIDwgZXRtLT5sYXN0X2NwdTsgaSsrKSB7Cj4+Pj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgIGNzX2V0bV9tYWdpYyA9IG1ldGFkYXRhW2ldW0NTX0VUTV9NQUdJQ107 Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN3aXRjaCAoY3NfZXRtX21hZ2ljKSB7Cj4+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgX19wZXJmX2NzX2V0bXYzX21hZ2ljOgo+Pj4+PiBA QCAtMzA0OSw3ICszMDUyLDcgQEAgaW50IGNzX2V0bV9fcHJvY2Vzc19hdXh0cmFjZV9pbmZvX2Z1 bGwodW5pb24KPj4+Pj4gcGVyZl9ldmVudCAqZXZlbnQsCj4+Pj4+IMKgwqDCoMKgwqDCoCBpbnQg ZXZlbnRfaGVhZGVyX3NpemUgPSBzaXplb2Yoc3RydWN0IHBlcmZfZXZlbnRfaGVhZGVyKTsKPj4+ Pj4gwqDCoMKgwqDCoMKgIGludCB0b3RhbF9zaXplID0gYXV4dHJhY2VfaW5mby0+aGVhZGVyLnNp emU7Cj4+Pj4+IMKgwqDCoMKgwqDCoCBpbnQgcHJpdl9zaXplID0gMDsKPj4+Pj4gLcKgwqDCoCBp bnQgbnVtX2NwdTsKPj4+Pj4gK8KgwqDCoCBpbnQgbnVtX2NwdSwgZmlyc3RfY3B1ID0gMCwgbGFz dF9jcHU7Cj4+Pj4+IMKgwqDCoMKgwqDCoCBpbnQgZXJyID0gMDsKPj4+Pj4gwqDCoMKgwqDCoMKg IGludCBhdXhfaHdfaWRfZm91bmQ7Cj4+Pj4+IMKgwqDCoMKgwqDCoCBpbnQgaSwgajsKPj4+Pj4g QEAgLTMwNjgsMjIgKzMwNzEsMzEgQEAgaW50IGNzX2V0bV9fcHJvY2Vzc19hdXh0cmFjZV9pbmZv X2Z1bGwodW5pb24KPj4+Pj4gcGVyZl9ldmVudCAqZXZlbnQsCj4+Pj4+IMKgwqDCoMKgwqDCoCAv KiBGaXJzdCB0aGUgZ2xvYmFsIHBhcnQgKi8KPj4+Pj4gwqDCoMKgwqDCoMKgIHB0ciA9ICh1NjQg KikgYXV4dHJhY2VfaW5mby0+cHJpdjsKPj4+Pj4gwqDCoMKgwqDCoMKgIG51bV9jcHUgPSBwdHJb Q1NfUE1VX1RZUEVfQ1BVU10gJiAweGZmZmZmZmZmOwo+Pj4+PiAtwqDCoMKgIG1ldGFkYXRhID0g emFsbG9jKHNpemVvZigqbWV0YWRhdGEpICogbnVtX2NwdSk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDC oCAvKiBTdGFydCBwYXJzaW5nIGFmdGVyIHRoZSBjb21tb24gcGFydCBvZiB0aGUgaGVhZGVyICov Cj4+Pj4+ICvCoMKgwqAgaSA9IENTX0hFQURFUl9WRVJTSU9OX01BWDsKPj4+Pj4gKwo+Pj4+PiAr wqDCoMKgIC8qR2V0IENQVSBpZCBvZiBmaXJzdCBldmVudCAqLwo+Pj4+PiArwqDCoMKgIGZpcnN0 X2NwdSA9IHB0cltpICsgQ1NfRVRNX0NQVV07Cj4+Pj4+ICvCoMKgwqAgbGFzdF9jcHUgPSBmaXJz dF9jcHUgKyBudW1fY3B1Owo+Pj4+PiArCj4+Pj4+ICvCoMKgwqAgaWYgKGZpcnN0X2NwdSA+IGNw dV9fbWF4X2NwdSgpLmNwdSB8fAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsYXN0X2Nw dSA+IGNwdV9fbWF4X2NwdSgpLmNwdSkKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlO VkFMOwo+Pj4+PiArCj4+Pj4+ICvCoMKgwqAgbWV0YWRhdGEgPSB6YWxsb2Moc2l6ZW9mKCptZXRh ZGF0YSkgKiBsYXN0X2NwdSk7Cj4+Pj4KPj4+PiBIaSBHYW5hcGF0cmFvLAo+Pj4+Cj4+Pj4gSSB0 aGluayBJIHNlZSB3aGF0IHRoZSBwcm9ibGVtIGlzLCBidXQgSSdtIHdvbmRlcmluZyBpZiBhIGJl dHRlciBmaXgKPj4+PiB3b3VsZCBiZSB0byBmdXJ0aGVyIGRlY291cGxlIHRoZSBDUFUgSUQgZnJv bSB0aGUgaW5kZXggaW4gdGhlIGFycmF5Lgo+Pj4+Cj4+Pj4gV2l0aCB5b3VyIGNoYW5nZSBpdCdz IG5vdCBjbGVhciB3aGF0IGhhcHBlbnMgd2l0aCBzcGFyc2UgcmVjb3JkaW5ncywgCj4+Pj4gZm9y Cj4+Pj4gZXhhbXBsZSAncGVyZiByZWNvcmQgLWUgY3NfZXRtLy8gLUMgMSwzLDUnLiBBbmQgaXQg c2VlbXMgbGlrZSB0aGVyZSBpcwo+Pj4KPj4+IFRoaXMgcGF0Y2ggZml4ZXMgZm9yIGFueSByYW5n ZSBvZiBDUFVzLgo+Pj4gUmVjb3JkIHdpdGggc3BhcnNlIGxpc3Qgb2YgQ1BVcyB3aWxsIG5vdCB3 b3JrIHdpdGggY3VycmVudCBjb2RlIHN0aWxsLgo+Pj4KPj4KPj4gSXMgdGhlcmUgYSBtYWpvciBp c3N1ZSB0aGF0IG1lYW5zIHNwYXJzZSBjYW4ndCBiZSBkb25lPyBJJ20gdGhpbmtpbmcgaXQKPj4g d291bGQgYmUgYmVzdCB0byBmaXggYm90aCBpc3N1ZXMgd2l0aCBvbmUgY2hhbmdlIHdoaWxlIHdl IHVuZGVyc3RhbmQKPj4gdGhpcyBwYXJ0IHJhdGhlciB0aGFuIGEgaGFsZiBmaXggdGhhdCBtaWdo dCBoYXZlIGRvIGJlIGNvbXBsZXRlbHkKPj4gcmUtdW5kZXJzdG9vZCBhbmQgcmUtZG9uZSBsYXRl ciBhbnl3YXkuIFVubGVzcyB0aGVyZSBpcyBzb21lIGJpZyBibG9ja2VyCj4+IGJ1dCBJIGNhbid0 IHNlZSBpdD8KPj4KPj4+PiBzb21lIHdhc3RhZ2UgaW4gdGhlIHphbGxvYyBoZXJlIGZvciBleGFt cGxlIGlmIG9ubHkgQ1BVIDI1NiBpcyB0cmFjZWQKPj4+PiB0aGVuIHdlJ2Qgc3RpbGwgbWFrZSAy NTYgZGVjb2RlcnMgYnV0IDI1NSBvZiB0aGVtIHdvdWxkIGJlIHVudXNlZD8KPj4+Pgo+Pj4+IEkg dHJpZWQgdG8gdGVzdCBzcGFyc2UgcmVjb3JkaW5ncywgYnV0IHlvdXIgY2hhbmdlIGRvZXNuJ3Qg YXBwbHkgdG8gdGhlCj4+Pj4gbGF0ZXN0IGNvcmVzaWdodC9uZXh0IGJyYW5jaC4gSSBkaWQgbm90 aWNlIHRoYXQgJ3BlcmYgcmVwb3J0IC1EJyAKPj4+PiBkb2Vzbid0Cj4+Pj4gd29yayB3aXRoIHRo ZW0gb24gY29yZXNpZ2h0L25leHQgKGl0IGp1c3QgcXVpdHMpLCBidXQgSSBjb3VsZG4ndCBzZWUg aWYKPj4+PiB0aGF0J3MgZml4ZWQgd2l0aCB5b3VyIGNoYW5nZS4KPj4+Cj4+PiBNeSBwYXRjaCBp cyByZWJhc2VkIG9uIDYuMy1SQzcgY29kZWJhc2Ugd2l0aCBNaWtlJ3MgMyBwZXJmIHBhdGNoZXMK Pj4+IHJlbGF0ZWQgdG8gZHluYW1pYyBpZCBbMV0gc3VwcG9ydChxdWV1ZWQgZm9yIDYuNCkuCj4+ Pgo+Pj4gInBlcmYgcmVwb3J0IC1EIiB3b3JrcyBmb3IgbWUuCj4+Cj4+IEkgd2FzIHJlZmVycmlu ZyB0byBzcGFyc2UgQ1BVIGxpc3RzLCB3aGljaCBJIHRoaW5rIHlvdSBtZW50aW9uZWQgYWJvdmUK Pj4gZG9lc24ndCB3b3JrIGV2ZW4gd2l0aCB0aGlzIHBhdGNoLgo+Pgo+Pj4KPj4+IFsxXSBodHRw czovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC1wZXJmLXVzZXJzL21zZzI3NDUyLmh0bWwK Pj4+Cj4+Cj4+IEl0IHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgbmV4dCBicmFuY2ggaGVyZToKPj4g Z2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2NvcmVzaWdodC9s aW51eC5naXQKPiAKPiBPSy4KPj4KPj4+Pgo+Pj4+IFdvdWxkIGEgYmV0dGVyIGZpeCBub3QgYmUg dG8ga2VlcCB0aGUgbWV0YWRhdGEgbG9vcHMgZnJvbSAwLU4gYW5kCj4+Pj4gaW5zdGVhZCBzYXZl IHRoZSBDUFUgSUQgaW4gY3NfZXRtX2RlY29kZXJfcGFyYW1zIG9yIHRoZSBkZWNvZGVyLiBUaGF0 Cj4+Pj4gd2F5IGl0IHdvdWxkIHN1cHBvcnQgYm90aCBzcGFyc2UgYW5kIG5vdCBzdGFydGluZyBm cm9tIDAgY2FzZXM/IEkgdGhpbmsKPj4+Cj4+PiBZZXAsIEkgdGhvdWdoIHRoaXMgaW5pdGlhbGx5 LCBpdCBnb3QgY29tcGxpY2F0ZWQgZHVlIHRvIGZvciBtb3JlCj4+PiBmb3ItbG9vcHMuIEkgd2ls bCB0cnkgYWdhaW4gYW5kIHBvc3QgVjIuCj4+Pgo+Pgo+PiBJIGNhbid0IGltYWdpbmUgaXQgd291 bGQgbmVlZCBhbnkgZXh0cmEgZm9yIGxvb3BzIG9mZiB0aGUgdG9wIG9mIG15Cj4+IGhlYWQuIEp1 c3Qgc2F2aW5nIHRoZSBDUFUgSUQgaW4gYSBmZXcgc3RydWN0cyBhbmQgdXNpbmcgaXQgd2hlcmV2 ZXIgaXQncwo+PiBuZWVkZWQgaW5zdGVhZCBvZiB0aGUgbG9vcCBpbmRleC4gSSBpbWFnaW5lIG1v c3Qgb2YgdGhlIGxvb3BzIHdvdWxkCj4+IGFjdHVhbGx5IHN0YXkgdGhlIHNhbWUgcmF0aGVyIHRo YW4gYmUgY2hhbmdlZCBsaWtlIHlvdSBoYXZlIGluIFYxLgo+IAo+IFdvcmtpbmcgb24gVjIsIEkg d2lsbCBwb3N0IGl0IGF0IHRoZSBlYXJsaWVzdC4KCk15IGNvZGViYXNlIGlzICI2LjMtUkM3ICsg TWlrZSdzIHBhdGNoZVsxXSArIEFuc2h1bWFuL1N1enVraSBwYXRjaGVzWzNdIiAKYW5kIGJlbG93 IGRpZmYgd29ya3MgZm9yIGFueSBDUFUgcmFuZ2UgYW5kIHNwYXJzZSBsaXN0IGFzIHdlbGwuCgpJ IHdpbGwgc2VuZCB0aGUgVjIgQVNBUC4KCltyb290QEIwLTIxMyBwZXJmXSMgZ2l0IGRpZmYKZGlm ZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYyBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1l dG0uYwppbmRleCA5NGUyZDAyMDA5ZWIuLmJmZWQwYmI4YmU5OCAxMDA2NDQKLS0tIGEvdG9vbHMv cGVyZi91dGlsL2NzLWV0bS5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYwpAQCAtMjc0 LDYgKzI3NCwyMiBAQCBzdGF0aWMgaW50IGNzX2V0bV9fbWV0YWRhdGFfc2V0X3RyYWNlX2lkKHU4 IAp0cmFjZV9jaGFuX2lkLCB1NjQgKmNwdV9tZXRhZGF0YSkKICAgICAgICAgICAgICAgICAodHlw ZW9mKF9tYXNrKSkoKChfcmVnKSAmIChfbWFzaykpID4+IF9fYmZfc2hmKF9tYXNrKSk7IFwKICAg ICAgICAgfSkKCisKK3N0YXRpYyB1NjQgKmdldF9jcHVfZGF0YShzdHJ1Y3QgY3NfZXRtX2F1eHRy YWNlICpldG0sIGludCBjcHUpCit7CisgICAgICAgaW50IGk7CisgICAgICAgdTY0ICptZXRhZGF0 YSA9IE5VTEw7CisKKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgZXRtLT5udW1fY3B1OyBpKyspIHsK KyAgICAgICAgICAgICAgIGlmIChldG0tPm1ldGFkYXRhW2ldW0NTX0VUTV9DUFVdID09ICh1NjQp Y3B1KSB7CisgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZXRtLT5tZXRhZGF0YVtp XTsKKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAg ICAgfQorCisgICAgICAgcmV0dXJuIG1ldGFkYXRhOworfQorCiAgLyoKICAgKiBIYW5kbGUgdGhl IFBFUkZfUkVDT1JEX0FVWF9PVVRQVVRfSFdfSUQgZXZlbnQuCiAgICoKQEAgLTM0NCw3ICszNjAs NyBAQCBzdGF0aWMgaW50IGNzX2V0bV9fcHJvY2Vzc19hdXhfb3V0cHV0X2h3X2lkKHN0cnVjdCAK cGVyZl9zZXNzaW9uICpzZXNzaW9uLAogICAgICAgICB9CgogICAgICAgICAvKiBub3Qgb25lIHdl J3ZlIHNlZW4gYmVmb3JlIC0gbGV0cyBtYXAgaXQgKi8KLSAgICAgICBjcHVfZGF0YSA9IGV0bS0+ bWV0YWRhdGFbY3B1XTsKKyAgICAgICBjcHVfZGF0YSA9IGdldF9jcHVfZGF0YShldG0sIGNwdSk7 CiAgICAgICAgIGVyciA9IGNzX2V0bV9fbWFwX3RyYWNlX2lkKHRyYWNlX2NoYW5faWQsIGNwdV9k YXRhKTsKICAgICAgICAgaWYgKGVycikKICAgICAgICAgICAgICAgICByZXR1cm4gZXJyOwoKCkkg dHJpZWQgYmVsb3cgY29tbWFuZHMgYW5kIHdvcmtzIHdlbGwgd2l0aCB0aGlzIGRpZmYuCgp0aW1l b3V0IDhzIC4vcGVyZiByZWNvcmQgLWUgY3NfZXRtLy8gLUMgMCBkZCBpZj0vZGV2L3plcm8gb2Y9 L2Rldi9udWxsCnRpbWVvdXQgOHMgLi9wZXJmIHJlY29yZCAtZSBjc19ldG0vLyAtQyAxIGRkIGlm PS9kZXYvemVybyBvZj0vZGV2L251bGwKdGltZW91dCA4cyAuL3BlcmYgcmVjb3JkIC1lIGNzX2V0 bS8vIC1DIDEsMyw1IGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L251bGwKdGltZW91dCA4cyAuL3Bl cmYgcmVjb3JkIC1lIGNzX2V0bS8vIC1DIDEwLDMsMTIgZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYv bnVsbAp0aW1lb3V0IDhzIC4vcGVyZiByZWNvcmQgLWUgY3NfZXRtLy91IC1DIDAtMTAgZGQgaWY9 L2Rldi96ZXJvIG9mPS9kZXYvbnVsbAp0aW1lb3V0IDhzIC4vcGVyZiByZWNvcmQgLWUgY3NfZXRt Ly91IC1DIDEwLTIwIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L251CgpIb3dldmVyIEkgY291bGQg bm90IGJlIGFibGUgdG8gYXBwbHkgdG8gbmV4dCBicmFuY2ggb2YgY29yZXNpZ2h0IHJlcG8KZ2l0 Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2NvcmVzaWdodC9saW51 eC5naXQKClRoZW4gSSBsb29rZWQgYXQgdGhlIGNvZGUsIGl0IGRvZXMgbm90IGhhdmUgTWlrZSdz IGR5bmFtaWMgSUQgcGF0Y2hlc1sxXSAKd2hpY2ggYXJlIG1lcmdlZCB0byBwZXJmL25leHQuCkl0 IHNlZW1zIHRoZSBjb2RlIGlzIG5vdCB0aGUgbGF0ZXN0IG9yIGl0IGlzIG5leHQgZm9yIGNvcmVz aWdodCBkcml2ZXIgb25seS4KCkkgdGhpbmsgZWl0aGVyIHBhdGNoIHNob3VsZCBiZSByZWJhc2Vk IHRvIG1vc3QtcmVjZW50IGtlcm5lbCAKUkMxL1JDeCh3aGljaCBJIGRpZCkgb3IgcGVyZi10b29s cy1uZXh0IG9mIFsyXSBmb3IgcGVyZiB0b29sLgoKWzFdIGh0dHBzOi8vd3d3LnNwaW5pY3MubmV0 L2xpc3RzL2xpbnV4LXBlcmYtdXNlcnMvbXNnMjc0NTIuaHRtbApbMl0gZ2l0Oi8vZ2l0Lmtlcm5l bC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2FjbWUvbGludXguZ2l0ClszXSBodHRwczov L3d3dy5zcGluaWNzLm5ldC9saXN0cy9hcm0ta2VybmVsL21zZzEwNTkwMTIuaHRtbAoKPj4KPj4+ PiB0aGUgY29kZSB3b3VsZCBiZSBiZXR0ZXIgaWYgaXQncyB3b3JkZWQgbGlrZSAiaSA8IHJlY29y ZGVkX2NwdXMiIHJhdGhlcgo+Pj4+IHRoYW4gImkgPCBjcHUiIHRvIG1ha2UgaXQgY2xlYXIgdGhh dCBpIGlzbid0IGFjdHVhbGx5IHRoZSBDUFUgSUQgaXQncwo+Pj4+IGp1c3QgYW4gaW5kZXguCj4+ Pgo+Pj4gWWVzLCBtYWtlcyBzZW5zZSB0byBjYWxsIGl0ICJyZWNvcmRlZF9jcHVzIi4KPj4+Cj4+ Pj4KPj4+PiBBbHNvIGEgbmV3IHRlc3QgZm9yIHRoaXMgc2NlbmFyaW8gd291bGQgcHJvYmFibHkg YmUgYSBnb29kIGlkZWEuCj4+Pj4KPj4+PiBUaGFua3MKPj4+PiBKYW1lcwo+Pj4+Cj4+PiBUaGFu a3MsCj4+PiBHYW5hcGF0Cj4gCj4gVGhhbmtzLAo+IEdhbmFwYXQKClRoYW5rcywKR2FuYXBhdAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=