From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 771BF14F9E4; Tue, 7 May 2024 12:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.132.182.106 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715085545; cv=none; b=Scqph9jVDk9yxpoGAZpnOoprBaj6vvr7Qx3KEzlQOE9fA7V9LLQJEtjaGmxF6edUov1ZiYW96JuEl0OGgJRGc4JGjB0TCI0rxKoaohaK2i9BWXM1VhyWhUiJtnB/fHwWiJadESr6nr/cKh/36jQAXf9VBNQMWYl3cs1fnHSLUVU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715085545; c=relaxed/simple; bh=+Q3D1pwy5ZS+pAVkDDZ5fVc527hZFvpuS1PEQZU9MPY=; h=Message-ID:Date:MIME-Version:Subject:To:CC:References:From: In-Reply-To:Content-Type; b=HFO4QOIlU96HtUM8UC/sgGzE6rWIAuFm4HGISjemG8A/EG71ZrkjWq+UfWWo7PUty/1O2eV2vzr6zVy8ZCvbgWNb9IFIQcfG4cC9DmFEWd4dTRoSIhuTd+C0bar7hVEODZEPNh9ctkRy+Hcd+lgZbfnSMTi3dJhGxwRaKtR0RjU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=yUpJq8Rb; arc=none smtp.client-ip=185.132.182.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="yUpJq8Rb" Received: from pps.filterd (m0369458.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 447BU3o7015293; Tue, 7 May 2024 14:38:36 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h= message-id:date:mime-version:subject:to:cc:references:from :in-reply-to:content-type:content-transfer-encoding; s= selector1; bh=3qiNad6x8nitVdBqmEwvTox+u+eOjMKAzrRDqOFgNqk=; b=yU pJq8RbP6KPnmwTrLGmrjcNLqKBOgXfewISyJ56HJGVNPlxB8OJSXZtpYCPgLx9FK qVQmy/NnXOuxKJV3lbKDHz9sKvzctFg/v0NrjNu1FJlfWrsEXceSHbUVLuyd8O3h ssMde6+uKwJ8gNT80JL8n3rzuI0wje4rR8Cc5zYzDViXOhQ6WDL8I3DOjrPvCam1 kv+eeYFAFeXedgUOLaZZ75hSVIubXdGx47WzLDBumLqUlz8aCzh7qFvB+RXHv8cE Z1ul+T3OKKFRbu7OZPN3kAqT7RKR6XRXZ09jk3su4OD6LPtdMHwwXSlSTFTjmzjj xrKfe9vGo/yvLCKQ/H5g== Received: from beta.dmz-ap.st.com (beta.dmz-ap.st.com [138.198.100.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3xwxk1hv16-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 May 2024 14:38:35 +0200 (MEST) Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-ap.st.com (STMicroelectronics) with ESMTP id 7F3914002D; Tue, 7 May 2024 14:38:29 +0200 (CEST) Received: from Webmail-eu.st.com (shfdag1node3.st.com [10.75.129.71]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id F2F1921A8F6; Tue, 7 May 2024 14:37:38 +0200 (CEST) Received: from [10.48.86.143] (10.48.86.143) by SHFDAG1NODE3.st.com (10.75.129.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 7 May 2024 14:37:38 +0200 Message-ID: <41d66c51-be2d-43a5-9dfd-9e94304980dd@foss.st.com> Date: Tue, 7 May 2024 14:37:37 +0200 Precedence: bulk X-Mailing-List: dmaengine@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 05/12] dmaengine: Add STM32 DMA3 support To: Christophe JAILLET CC: , , , , , , , , , , , References: <20240423123302.1550592-1-amelie.delaunay@foss.st.com> <20240423123302.1550592-6-amelie.delaunay@foss.st.com> <38193848-597d-47c1-9aea-5357e58f9983@wanadoo.fr> Content-Language: en-US From: Amelie Delaunay In-Reply-To: <38193848-597d-47c1-9aea-5357e58f9983@wanadoo.fr> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SHFCAS1NODE1.st.com (10.75.129.72) To SHFDAG1NODE3.st.com (10.75.129.71) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-07_06,2024-05-06_02,2023-05-22_02 Hi Christophe, Thanks for the review. On 5/4/24 16:27, Christophe JAILLET wrote: > Le 23/04/2024 à 14:32, Amelie Delaunay a écrit : >> STM32 DMA3 driver supports the 3 hardware configurations of the STM32 >> DMA3 >> controller: >> - LPDMA (Low Power): 4 channels, no FIFO >> - GPDMA (General Purpose): 16 channels, FIFO from 8 to 32 bytes >> - HPDMA (High Performance): 16 channels, FIFO from 8 to 256 bytes >> Hardware configuration of the channels is retrieved from the hardware >> configuration registers. >> The client can specify its channel requirements through device tree. >> STM32 DMA3 channels can be individually reserved either because they are >> secure, or dedicated to another CPU. >> Indeed, channels availability depends on Resource Isolation Framework >> (RIF) configuration. RIF grants access to buses with Compartiment ID >> (CIF) filtering, secure and privilege level. It also assigns DMA channels >> to one or several processors. >> DMA channels used by Linux should be CID-filtered and statically assigned >> to CID1 or shared with other CPUs but using semaphore. In case CID >> filtering is not configured, dma-channel-mask property can be used to >> specify available DMA channels to the kernel, otherwise such channels >> will be marked as reserved and can't be used by Linux. >> >> Signed-off-by: Amelie Delaunay >> >> --- > > ... > >> +    pm_runtime_set_active(&pdev->dev); >> +    pm_runtime_enable(&pdev->dev); >> +    pm_runtime_get_noresume(&pdev->dev); >> +    pm_runtime_put(&pdev->dev); >> + >> +    dev_info(&pdev->dev, "STM32 DMA3 registered rev:%lu.%lu\n", >> +         FIELD_GET(VERR_MAJREV, verr), FIELD_GET(VERR_MINREV, verr)); >> + >> +    return 0; >> + >> +err_clk_disable: >> +    clk_disable_unprepare(ddata->clk); >> + >> +    return ret; >> +} >> + >> +static void stm32_dma3_remove(struct platform_device *pdev) >> +{ >> +    pm_runtime_disable(&pdev->dev); > > Hi, > > missing clk_disable_unprepare(ddata->clk);? > > as in the error handling path on the probe just above? > > CJ > Clock is entirely managed by pm_runtime, except in error path of probe since pm_runtime is enabled only at the very end. Clock is enabled with pm_runtime_resume_and_get() when a channel is requested or when an asynchronous register access occurs (filter_fn, debugfs, runtime_resume) and clock is disabled with pm_runtime_put_sync() when releasing a channel or at the end of asynchronous register access (filter_fn, debugfs, runtime_suspend). Adding clk_disable_unprepare(ddata->clk); here leads to clock already disabled/unprepared warnings in drivers/clk/clk.c clk_core_disable()/clk_core_unprepare(). >> +} > > ... > Regards, Amelie 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 522FDC25B4F for ; Tue, 7 May 2024 12:39:03 +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:In-Reply-To:From:References:CC:To:Subject: MIME-Version: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=fwR1SXEAAP3QzrF80EPPzfR03euZ/0BmWmTe3sHcM3I=; b=qHcpGAzc4HPK25 KNoxO/AJn9NQztrja4357g11vEGX+RiGeapLglRTzZi4gYPkEAhKNbWwqGsfSsPwhJkk/gH6TnfKb m7XAC4gPM6PuNGIAVB2sgQr1AsK/t0Jn0jeCRCilT1qXucXOM/+0aC//APOP4jyhhcuP4gG5kHrxv Qs093Tprc8rV+P8zku4Hx2nTJE1Z8Ct3E/GqFXXg3J6KoZz7ypLBb8XdP4aWyLHvJfQnUP1TzHu1S 57LKpuV8yEHkkLx3Oi6C5L2bAKVKFAOTXXYZRX9QDP0X2lMIi8wFar0Tv2BMjQmmOAlmZLUPwuuOu zIDOz7wLWD/53fJHiGsw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4K5r-0000000AyII-0ovS; Tue, 07 May 2024 12:38:51 +0000 Received: from mx07-00178001.pphosted.com ([185.132.182.106]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4K5m-0000000AyEK-35CA for linux-arm-kernel@lists.infradead.org; Tue, 07 May 2024 12:38:49 +0000 Received: from pps.filterd (m0369458.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 447BU3o7015293; Tue, 7 May 2024 14:38:36 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h= message-id:date:mime-version:subject:to:cc:references:from :in-reply-to:content-type:content-transfer-encoding; s= selector1; bh=3qiNad6x8nitVdBqmEwvTox+u+eOjMKAzrRDqOFgNqk=; b=yU pJq8RbP6KPnmwTrLGmrjcNLqKBOgXfewISyJ56HJGVNPlxB8OJSXZtpYCPgLx9FK qVQmy/NnXOuxKJV3lbKDHz9sKvzctFg/v0NrjNu1FJlfWrsEXceSHbUVLuyd8O3h ssMde6+uKwJ8gNT80JL8n3rzuI0wje4rR8Cc5zYzDViXOhQ6WDL8I3DOjrPvCam1 kv+eeYFAFeXedgUOLaZZ75hSVIubXdGx47WzLDBumLqUlz8aCzh7qFvB+RXHv8cE Z1ul+T3OKKFRbu7OZPN3kAqT7RKR6XRXZ09jk3su4OD6LPtdMHwwXSlSTFTjmzjj xrKfe9vGo/yvLCKQ/H5g== Received: from beta.dmz-ap.st.com (beta.dmz-ap.st.com [138.198.100.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3xwxk1hv16-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 May 2024 14:38:35 +0200 (MEST) Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-ap.st.com (STMicroelectronics) with ESMTP id 7F3914002D; Tue, 7 May 2024 14:38:29 +0200 (CEST) Received: from Webmail-eu.st.com (shfdag1node3.st.com [10.75.129.71]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id F2F1921A8F6; Tue, 7 May 2024 14:37:38 +0200 (CEST) Received: from [10.48.86.143] (10.48.86.143) by SHFDAG1NODE3.st.com (10.75.129.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 7 May 2024 14:37:38 +0200 Message-ID: <41d66c51-be2d-43a5-9dfd-9e94304980dd@foss.st.com> Date: Tue, 7 May 2024 14:37:37 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 05/12] dmaengine: Add STM32 DMA3 support To: Christophe JAILLET CC: , , , , , , , , , , , References: <20240423123302.1550592-1-amelie.delaunay@foss.st.com> <20240423123302.1550592-6-amelie.delaunay@foss.st.com> <38193848-597d-47c1-9aea-5357e58f9983@wanadoo.fr> Content-Language: en-US From: Amelie Delaunay In-Reply-To: <38193848-597d-47c1-9aea-5357e58f9983@wanadoo.fr> X-Originating-IP: [10.48.86.143] X-ClientProxiedBy: SHFCAS1NODE1.st.com (10.75.129.72) To SHFDAG1NODE3.st.com (10.75.129.71) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-07_06,2024-05-06_02,2023-05-22_02 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240507_053847_444138_0DA01698 X-CRM114-Status: GOOD ( 15.98 ) 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 SGkgQ2hyaXN0b3BoZSwKClRoYW5rcyBmb3IgdGhlIHJldmlldy4KCk9uIDUvNC8yNCAxNjoyNywg Q2hyaXN0b3BoZSBKQUlMTEVUIHdyb3RlOgo+IExlIDIzLzA0LzIwMjQgw6AgMTQ6MzIsIEFtZWxp ZSBEZWxhdW5heSBhIMOpY3JpdMKgOgo+PiBTVE0zMiBETUEzIGRyaXZlciBzdXBwb3J0cyB0aGUg MyBoYXJkd2FyZSBjb25maWd1cmF0aW9ucyBvZiB0aGUgU1RNMzIgCj4+IERNQTMKPj4gY29udHJv bGxlcjoKPj4gLSBMUERNQSAoTG93IFBvd2VyKTogNCBjaGFubmVscywgbm8gRklGTwo+PiAtIEdQ RE1BIChHZW5lcmFsIFB1cnBvc2UpOiAxNiBjaGFubmVscywgRklGTyBmcm9tIDggdG8gMzIgYnl0 ZXMKPj4gLSBIUERNQSAoSGlnaCBQZXJmb3JtYW5jZSk6IDE2IGNoYW5uZWxzLCBGSUZPIGZyb20g OCB0byAyNTYgYnl0ZXMKPj4gSGFyZHdhcmUgY29uZmlndXJhdGlvbiBvZiB0aGUgY2hhbm5lbHMg aXMgcmV0cmlldmVkIGZyb20gdGhlIGhhcmR3YXJlCj4+IGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJz Lgo+PiBUaGUgY2xpZW50IGNhbiBzcGVjaWZ5IGl0cyBjaGFubmVsIHJlcXVpcmVtZW50cyB0aHJv dWdoIGRldmljZSB0cmVlLgo+PiBTVE0zMiBETUEzIGNoYW5uZWxzIGNhbiBiZSBpbmRpdmlkdWFs bHkgcmVzZXJ2ZWQgZWl0aGVyIGJlY2F1c2UgdGhleSBhcmUKPj4gc2VjdXJlLCBvciBkZWRpY2F0 ZWQgdG8gYW5vdGhlciBDUFUuCj4+IEluZGVlZCwgY2hhbm5lbHMgYXZhaWxhYmlsaXR5IGRlcGVu ZHMgb24gUmVzb3VyY2UgSXNvbGF0aW9uIEZyYW1ld29yawo+PiAoUklGKSBjb25maWd1cmF0aW9u LiBSSUYgZ3JhbnRzIGFjY2VzcyB0byBidXNlcyB3aXRoIENvbXBhcnRpbWVudCBJRAo+PiAoQ0lG KSBmaWx0ZXJpbmcsIHNlY3VyZSBhbmQgcHJpdmlsZWdlIGxldmVsLiBJdCBhbHNvIGFzc2lnbnMg RE1BIGNoYW5uZWxzCj4+IHRvIG9uZSBvciBzZXZlcmFsIHByb2Nlc3NvcnMuCj4+IERNQSBjaGFu bmVscyB1c2VkIGJ5IExpbnV4IHNob3VsZCBiZSBDSUQtZmlsdGVyZWQgYW5kIHN0YXRpY2FsbHkg YXNzaWduZWQKPj4gdG8gQ0lEMSBvciBzaGFyZWQgd2l0aCBvdGhlciBDUFVzIGJ1dCB1c2luZyBz ZW1hcGhvcmUuIEluIGNhc2UgQ0lECj4+IGZpbHRlcmluZyBpcyBub3QgY29uZmlndXJlZCwgZG1h LWNoYW5uZWwtbWFzayBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0bwo+PiBzcGVjaWZ5IGF2YWlsYWJs ZSBETUEgY2hhbm5lbHMgdG8gdGhlIGtlcm5lbCwgb3RoZXJ3aXNlIHN1Y2ggY2hhbm5lbHMKPj4g d2lsbCBiZSBtYXJrZWQgYXMgcmVzZXJ2ZWQgYW5kIGNhbid0IGJlIHVzZWQgYnkgTGludXguCj4+ Cj4+IFNpZ25lZC1vZmYtYnk6IEFtZWxpZSBEZWxhdW5heSAKPj4gPGFtZWxpZS5kZWxhdW5heS1y ajBJZWwvSlI0TkJEZ2pLN3k3VFVRQHB1YmxpYy5nbWFuZS5vcmc+Cj4+IC0tLQo+IAo+IC4uLgo+ IAo+PiArwqDCoMKgIHBtX3J1bnRpbWVfc2V0X2FjdGl2ZSgmcGRldi0+ZGV2KTsKPj4gK8KgwqDC oCBwbV9ydW50aW1lX2VuYWJsZSgmcGRldi0+ZGV2KTsKPj4gK8KgwqDCoCBwbV9ydW50aW1lX2dl dF9ub3Jlc3VtZSgmcGRldi0+ZGV2KTsKPj4gK8KgwqDCoCBwbV9ydW50aW1lX3B1dCgmcGRldi0+ ZGV2KTsKPj4gKwo+PiArwqDCoMKgIGRldl9pbmZvKCZwZGV2LT5kZXYsICJTVE0zMiBETUEzIHJl Z2lzdGVyZWQgcmV2OiVsdS4lbHVcbiIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgIEZJRUxEX0dFVChW RVJSX01BSlJFViwgdmVyciksIEZJRUxEX0dFVChWRVJSX01JTlJFViwgdmVycikpOwo+PiArCj4+ ICvCoMKgwqAgcmV0dXJuIDA7Cj4+ICsKPj4gK2Vycl9jbGtfZGlzYWJsZToKPj4gK8KgwqDCoCBj bGtfZGlzYWJsZV91bnByZXBhcmUoZGRhdGEtPmNsayk7Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4g cmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBzdG0zMl9kbWEzX3JlbW92ZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiArewo+PiArwqDCoMKgIHBtX3J1bnRpbWVfZGlzYWJs ZSgmcGRldi0+ZGV2KTsKPiAKPiBIaSwKPiAKPiBtaXNzaW5nIGNsa19kaXNhYmxlX3VucHJlcGFy ZShkZGF0YS0+Y2xrKTs/Cj4gCj4gYXMgaW4gdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggb24gdGhl IHByb2JlIGp1c3QgYWJvdmU/Cj4gCj4gQ0oKPiAKCkNsb2NrIGlzIGVudGlyZWx5IG1hbmFnZWQg YnkgcG1fcnVudGltZSwgZXhjZXB0IGluIGVycm9yIHBhdGggb2YgcHJvYmUgCnNpbmNlIHBtX3J1 bnRpbWUgaXMgZW5hYmxlZCBvbmx5IGF0IHRoZSB2ZXJ5IGVuZC4KQ2xvY2sgaXMgZW5hYmxlZCB3 aXRoIHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoKSB3aGVuIGEgY2hhbm5lbCBpcyAKcmVxdWVz dGVkIG9yIHdoZW4gYW4gYXN5bmNocm9ub3VzIHJlZ2lzdGVyIGFjY2VzcyBvY2N1cnMgKGZpbHRl cl9mbiwgCmRlYnVnZnMsIHJ1bnRpbWVfcmVzdW1lKSBhbmQgY2xvY2sgaXMgZGlzYWJsZWQgd2l0 aCAKcG1fcnVudGltZV9wdXRfc3luYygpIHdoZW4gcmVsZWFzaW5nIGEgY2hhbm5lbCBvciBhdCB0 aGUgZW5kIG9mIAphc3luY2hyb25vdXMgcmVnaXN0ZXIgYWNjZXNzIChmaWx0ZXJfZm4sIGRlYnVn ZnMsIHJ1bnRpbWVfc3VzcGVuZCkuCkFkZGluZyBjbGtfZGlzYWJsZV91bnByZXBhcmUoZGRhdGEt PmNsayk7IGhlcmUgbGVhZHMgdG8gY2xvY2sgYWxyZWFkeSAKZGlzYWJsZWQvdW5wcmVwYXJlZCB3 YXJuaW5ncyBpbiBkcml2ZXJzL2Nsay9jbGsuYyAKY2xrX2NvcmVfZGlzYWJsZSgpL2Nsa19jb3Jl X3VucHJlcGFyZSgpLgoKPj4gK30KPiAKPiAuLi4KPiAKClJlZ2FyZHMsCkFtZWxpZQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=