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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2C4AC77B6E for ; Fri, 14 Apr 2023 11:50:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229950AbjDNLuW (ORCPT ); Fri, 14 Apr 2023 07:50:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229969AbjDNLuV (ORCPT ); Fri, 14 Apr 2023 07:50:21 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 603E230FA; Fri, 14 Apr 2023 04:50:19 -0700 (PDT) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33E8xq5L023005; Fri, 14 Apr 2023 11:49:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=qcppdkim1; bh=lGGtG0ZL06RAk+9DnB1J6y3+oHd/FzVf4TXsIJzgcM0=; b=OBODqnqp7BrvjN73Cmv5z388VcXu9nuSSVSBhOgMVH9zlyBuV/souARnPUnNkceS2zmu W3hlhE1+hNAQ//dGZdtz4Y8not+uMPbk/xzcTHN8AV1hIlAKvWAd4ddamXBlEADBSJCQ vpHF1fVuDhYkm7CGOFjYOdHNT19AQKyX4o765dvaWaDiyOVzFuAxik3pu2/y+ZfFsita 2IfY/8bfkz6u0/3iEItYeen4OuzK4K2PnbZfw1767JMD2Y687HxcDJBhmeXqubEcxRqb tl+o3gHbeLcIDt0HOKchmztuaWAOU0y5OiCgT/4M5Usoz1tkWzcfRxwoZ02nLqXzX2zo vg== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pxqf99r9n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Apr 2023 11:49:56 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 33EBntgf021932 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Apr 2023 11:49:55 GMT Received: from [10.216.56.7] (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Fri, 14 Apr 2023 04:49:40 -0700 Message-ID: <93f5dc05-a91b-0fe6-c7e2-d3457cba8a1f@quicinc.com> Date: Fri, 14 Apr 2023 17:19:26 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2 6/6] remoterproc: qcom: refactor to leverage exported minidump symbol Content-Language: en-US To: Srinivas Kandagatla , , , , , , , , , CC: , , , , , References: <1679491817-2498-1-git-send-email-quic_mojha@quicinc.com> <1679491817-2498-7-git-send-email-quic_mojha@quicinc.com> <6c01d2fc-3155-0dcd-f473-9cbd75dd69ec@linaro.org> <5a872001-dfcb-5c00-3b13-3c29e6be213b@linaro.org> From: Mukesh Ojha In-Reply-To: <5a872001-dfcb-5c00-3b13-3c29e6be213b@linaro.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 3ntYelLKBQ7bxw53Kv7pIpZOL47Q7afW X-Proofpoint-ORIG-GUID: 3ntYelLKBQ7bxw53Kv7pIpZOL47Q7afW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-14_06,2023-04-14_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxscore=0 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304140106 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org On 4/14/2023 5:10 PM, Srinivas Kandagatla wrote: > > > On 14/04/2023 12:14, Mukesh Ojha wrote: >> >> >> On 4/14/2023 4:14 PM, Srinivas Kandagatla wrote: >>> >>> >>> On 22/03/2023 13:30, Mukesh Ojha wrote: >>>> qcom_minidump driver provides qcom_minidump_subsystem_desc() >>>> exported API which other driver can use it query subsystem >>>> descriptor. Refactor qcom_minidump() to use this symbol. >>>> >>>> Signed-off-by: Mukesh Ojha >>>> --- >>>>   drivers/remoteproc/qcom_common.c | 13 ++----------- >>>>   1 file changed, 2 insertions(+), 11 deletions(-) >>>> >>>> diff --git a/drivers/remoteproc/qcom_common.c >>>> b/drivers/remoteproc/qcom_common.c >>>> index 88fc984..240e9f7 100644 >>>> --- a/drivers/remoteproc/qcom_common.c >>>> +++ b/drivers/remoteproc/qcom_common.c >>>> @@ -94,19 +94,10 @@ void qcom_minidump(struct rproc *rproc, unsigned >>>> int minidump_id, >>>>   { >>>>       int ret; >>>>       struct minidump_subsystem *subsystem; >>>> -    struct minidump_global_toc *toc; >>>> -    /* Get Global minidump ToC*/ >>>> -    toc = qcom_smem_get(QCOM_SMEM_HOST_ANY, SBL_MINIDUMP_SMEM_ID, >>>> NULL); >>>> - >>>> -    /* check if global table pointer exists and init is set */ >>>> -    if (IS_ERR(toc) || !toc->status) { >>>> -        dev_err(&rproc->dev, "Minidump TOC not found in SMEM\n"); >>>> +    subsystem = qcom_minidump_subsystem_desc(minidump_id); >>>> +    if (IS_ERR(subsystem)) >>>>           return; >>> >>> Sorry If I am missing something but I got lost looking at the below >>> code snippet in drivers/remoteproc/qcom_common.c >>> >>> >>> -------------------->cut<----------------------------- >>>      subsystem = qcom_minidump_subsystem_desc(minidump_id); >>>      if (IS_ERR(subsystem)) >>>          return; >>> >>>      /** >>>       * Collect minidump if SS ToC is valid and segment table >>>       * is initialized in memory and encryption status is set. >>>       */ >>>      if (subsystem->regions_baseptr == 0 || >>>          le32_to_cpu(subsystem->status) != 1 || >>>          le32_to_cpu(subsystem->enabled) != MINIDUMP_SS_ENABLED || >>>          le32_to_cpu(subsystem->encryption_status) != >>> MINIDUMP_SS_ENCR_DONE) { >>>          dev_err(&rproc->dev, "Minidump not ready, skipping\n"); >>>          return; >>>      } >>> -------------------->cut<----------------------------- >>> >>> where does "subsystem->regions_baseptr" for this ADSP minidump >>> descriptor get set? >> >> Other co-processor such as adsp/cdsp/Mpss has their own way of >> registering their region/segment (mostly they are static known >> regions) with minidump global infra and which could be happening >> from firmware side . > If its happening from firmware side, then that ram phys address range > should be reserved from kernel usage I guess. > > Do you have more details on where exactly is this reserved from within > linux kernel? These regions are inside remoteproc memory carve-out. like. adsp_mem: memory@85e00000 { reg = <0x0 0x85e00000 0x0 0x2100000>; no-map; }; remoteproc_adsp: remoteproc@30000000 { compatible = "qcom,sm8450-adsp-pas"; reg = <0 0x30000000 0 0x100>; ... ... memory-region = <&adsp_mem>; <== -Mukesh > > > --srini > >> >> >> -Mukesh >> >>> >>> >>> --srini >>> >>>> -    } >>>> - >>>> -    /* Get subsystem table of contents using the minidump id */ >>>> -    subsystem = &toc->subsystems[minidump_id]; >>>>       /** >>>>        * Collect minidump if SS ToC is valid and segment table 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 1C4BFC77B6E for ; Fri, 14 Apr 2023 11:51:20 +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=uxWTqCovPBRTEdR+nV/uO0r1iVtDAF63qgFFjdIBEbY=; b=ly0dpoOp9KaPfp xdpvHNc9M7UzgAm9wqCfeSMqDE2V6qd0ebVjSvtGUY9MuE98aN8IjnvXmij5OGmFyOgkzmGzsnHx7 u3aTgnFj8QRlo/zkUI0W7xG92mMzhj7UMyqaZzwXgrNe/FJZ3fRBndOdnWG28dI3T0QYucGmBXu0n 3iUi1G3GRUaIgBcOp/DlQ3WhgaYSX4Si+bGLOOv3IwIo+uRyWO4U8nEBUAqMvnL2PFeuKhKudTfTr rlTP8Ks14r+/laS0aqCHTWUAqhIOVbAyr8CzB+SBB+vvYPUv65YhED0B78y1Knm5ZMif33z07IY52 150L90MqJsPnc3Pra6Ig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pnHwW-009RRN-17; Fri, 14 Apr 2023 11:50:16 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pnHwS-009RPy-1s for linux-arm-kernel@lists.infradead.org; Fri, 14 Apr 2023 11:50:14 +0000 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33E8xq5L023005; Fri, 14 Apr 2023 11:49:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=qcppdkim1; bh=lGGtG0ZL06RAk+9DnB1J6y3+oHd/FzVf4TXsIJzgcM0=; b=OBODqnqp7BrvjN73Cmv5z388VcXu9nuSSVSBhOgMVH9zlyBuV/souARnPUnNkceS2zmu W3hlhE1+hNAQ//dGZdtz4Y8not+uMPbk/xzcTHN8AV1hIlAKvWAd4ddamXBlEADBSJCQ vpHF1fVuDhYkm7CGOFjYOdHNT19AQKyX4o765dvaWaDiyOVzFuAxik3pu2/y+ZfFsita 2IfY/8bfkz6u0/3iEItYeen4OuzK4K2PnbZfw1767JMD2Y687HxcDJBhmeXqubEcxRqb tl+o3gHbeLcIDt0HOKchmztuaWAOU0y5OiCgT/4M5Usoz1tkWzcfRxwoZ02nLqXzX2zo vg== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pxqf99r9n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Apr 2023 11:49:56 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 33EBntgf021932 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Apr 2023 11:49:55 GMT Received: from [10.216.56.7] (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Fri, 14 Apr 2023 04:49:40 -0700 Message-ID: <93f5dc05-a91b-0fe6-c7e2-d3457cba8a1f@quicinc.com> Date: Fri, 14 Apr 2023 17:19:26 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2 6/6] remoterproc: qcom: refactor to leverage exported minidump symbol Content-Language: en-US To: Srinivas Kandagatla , , , , , , , , , CC: , , , , , References: <1679491817-2498-1-git-send-email-quic_mojha@quicinc.com> <1679491817-2498-7-git-send-email-quic_mojha@quicinc.com> <6c01d2fc-3155-0dcd-f473-9cbd75dd69ec@linaro.org> <5a872001-dfcb-5c00-3b13-3c29e6be213b@linaro.org> From: Mukesh Ojha In-Reply-To: <5a872001-dfcb-5c00-3b13-3c29e6be213b@linaro.org> X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 3ntYelLKBQ7bxw53Kv7pIpZOL47Q7afW X-Proofpoint-ORIG-GUID: 3ntYelLKBQ7bxw53Kv7pIpZOL47Q7afW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-14_06,2023-04-14_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxscore=0 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304140106 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230414_045012_781616_950E1AA4 X-CRM114-Status: GOOD ( 18.20 ) 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 CgpPbiA0LzE0LzIwMjMgNToxMCBQTSwgU3Jpbml2YXMgS2FuZGFnYXRsYSB3cm90ZToKPiAKPiAK PiBPbiAxNC8wNC8yMDIzIDEyOjE0LCBNdWtlc2ggT2poYSB3cm90ZToKPj4KPj4KPj4gT24gNC8x NC8yMDIzIDQ6MTQgUE0sIFNyaW5pdmFzIEthbmRhZ2F0bGEgd3JvdGU6Cj4+Pgo+Pj4KPj4+IE9u IDIyLzAzLzIwMjMgMTM6MzAsIE11a2VzaCBPamhhIHdyb3RlOgo+Pj4+IHFjb21fbWluaWR1bXAg ZHJpdmVyIHByb3ZpZGVzIHFjb21fbWluaWR1bXBfc3Vic3lzdGVtX2Rlc2MoKQo+Pj4+IGV4cG9y dGVkIEFQSSB3aGljaCBvdGhlciBkcml2ZXIgY2FuIHVzZSBpdCBxdWVyeSBzdWJzeXN0ZW0KPj4+ PiBkZXNjcmlwdG9yLiBSZWZhY3RvciBxY29tX21pbmlkdW1wKCkgdG8gdXNlIHRoaXMgc3ltYm9s Lgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogTXVrZXNoIE9qaGEgPHF1aWNfbW9qaGFAcXVpY2lu Yy5jb20+Cj4+Pj4gLS0tCj4+Pj4gwqAgZHJpdmVycy9yZW1vdGVwcm9jL3Fjb21fY29tbW9uLmMg fCAxMyArKy0tLS0tLS0tLS0tCj4+Pj4gwqAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZW1vdGVw cm9jL3Fjb21fY29tbW9uLmMgCj4+Pj4gYi9kcml2ZXJzL3JlbW90ZXByb2MvcWNvbV9jb21tb24u Ywo+Pj4+IGluZGV4IDg4ZmM5ODQuLjI0MGU5ZjcgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9y ZW1vdGVwcm9jL3Fjb21fY29tbW9uLmMKPj4+PiArKysgYi9kcml2ZXJzL3JlbW90ZXByb2MvcWNv bV9jb21tb24uYwo+Pj4+IEBAIC05NCwxOSArOTQsMTAgQEAgdm9pZCBxY29tX21pbmlkdW1wKHN0 cnVjdCBycHJvYyAqcnByb2MsIHVuc2lnbmVkIAo+Pj4+IGludCBtaW5pZHVtcF9pZCwKPj4+PiDC oCB7Cj4+Pj4gwqDCoMKgwqDCoCBpbnQgcmV0Owo+Pj4+IMKgwqDCoMKgwqAgc3RydWN0IG1pbmlk dW1wX3N1YnN5c3RlbSAqc3Vic3lzdGVtOwo+Pj4+IC3CoMKgwqAgc3RydWN0IG1pbmlkdW1wX2ds b2JhbF90b2MgKnRvYzsKPj4+PiAtwqDCoMKgIC8qIEdldCBHbG9iYWwgbWluaWR1bXAgVG9DKi8K Pj4+PiAtwqDCoMKgIHRvYyA9IHFjb21fc21lbV9nZXQoUUNPTV9TTUVNX0hPU1RfQU5ZLCBTQkxf TUlOSURVTVBfU01FTV9JRCwgCj4+Pj4gTlVMTCk7Cj4+Pj4gLQo+Pj4+IC3CoMKgwqAgLyogY2hl Y2sgaWYgZ2xvYmFsIHRhYmxlIHBvaW50ZXIgZXhpc3RzIGFuZCBpbml0IGlzIHNldCAqLwo+Pj4+ IC3CoMKgwqAgaWYgKElTX0VSUih0b2MpIHx8ICF0b2MtPnN0YXR1cykgewo+Pj4+IC3CoMKgwqDC oMKgwqDCoCBkZXZfZXJyKCZycHJvYy0+ZGV2LCAiTWluaWR1bXAgVE9DIG5vdCBmb3VuZCBpbiBT TUVNXG4iKTsKPj4+PiArwqDCoMKgIHN1YnN5c3RlbSA9IHFjb21fbWluaWR1bXBfc3Vic3lzdGVt X2Rlc2MobWluaWR1bXBfaWQpOwo+Pj4+ICvCoMKgwqAgaWYgKElTX0VSUihzdWJzeXN0ZW0pKQo+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+Pgo+Pj4gU29ycnkgSWYgSSBhbSBtaXNz aW5nIHNvbWV0aGluZyBidXQgSSBnb3QgbG9zdCBsb29raW5nIGF0IHRoZSBiZWxvdyAKPj4+IGNv ZGUgc25pcHBldCBpbiBkcml2ZXJzL3JlbW90ZXByb2MvcWNvbV9jb21tb24uYwo+Pj4KPj4+Cj4+ PiAtLS0tLS0tLS0tLS0tLS0tLS0tLT5jdXQ8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4+IMKgwqDCoMKgwqBzdWJzeXN0ZW0gPSBxY29tX21pbmlkdW1wX3N1YnN5c3RlbV9kZXNjKG1p bmlkdW1wX2lkKTsKPj4+IMKgwqDCoMKgwqBpZiAoSVNfRVJSKHN1YnN5c3RlbSkpCj4+PiDCoMKg wqDCoMKgwqDCoMKgIHJldHVybjsKPj4+Cj4+PiDCoMKgwqDCoMKgLyoqCj4+PiDCoMKgwqDCoMKg ICogQ29sbGVjdCBtaW5pZHVtcCBpZiBTUyBUb0MgaXMgdmFsaWQgYW5kIHNlZ21lbnQgdGFibGUK Pj4+IMKgwqDCoMKgwqAgKiBpcyBpbml0aWFsaXplZCBpbiBtZW1vcnkgYW5kIGVuY3J5cHRpb24g c3RhdHVzIGlzIHNldC4KPj4+IMKgwqDCoMKgwqAgKi8KPj4+IMKgwqDCoMKgwqBpZiAoc3Vic3lz dGVtLT5yZWdpb25zX2Jhc2VwdHIgPT0gMCB8fAo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBsZTMyX3Rv X2NwdShzdWJzeXN0ZW0tPnN0YXR1cykgIT0gMSB8fAo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBsZTMy X3RvX2NwdShzdWJzeXN0ZW0tPmVuYWJsZWQpICE9IE1JTklEVU1QX1NTX0VOQUJMRUQgfHwKPj4+ IMKgwqDCoMKgwqDCoMKgwqAgbGUzMl90b19jcHUoc3Vic3lzdGVtLT5lbmNyeXB0aW9uX3N0YXR1 cykgIT0gCj4+PiBNSU5JRFVNUF9TU19FTkNSX0RPTkUpIHsKPj4+IMKgwqDCoMKgwqDCoMKgwqAg ZGV2X2VycigmcnByb2MtPmRldiwgIk1pbmlkdW1wIG5vdCByZWFkeSwgc2tpcHBpbmdcbiIpOwo+ Pj4gwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+PiDCoMKgwqDCoMKgfQo+Pj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0+Y3V0PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pgo+Pj4gd2hl cmUgZG9lcyAic3Vic3lzdGVtLT5yZWdpb25zX2Jhc2VwdHIiIGZvciB0aGlzIEFEU1AgbWluaWR1 bXAgCj4+PiBkZXNjcmlwdG9yIGdldCBzZXQ/Cj4+Cj4+IE90aGVyIGNvLXByb2Nlc3NvciBzdWNo IGFzIGFkc3AvY2RzcC9NcHNzIGhhcyB0aGVpciBvd24gd2F5IG9mIAo+PiByZWdpc3RlcmluZyB0 aGVpciByZWdpb24vc2VnbWVudCAobW9zdGx5IHRoZXkgYXJlIHN0YXRpYyBrbm93bgo+PiByZWdp b25zKSB3aXRoIG1pbmlkdW1wIGdsb2JhbCBpbmZyYSBhbmQgd2hpY2ggY291bGQgYmUgaGFwcGVu aW5nCj4+IGZyb20gZmlybXdhcmUgc2lkZSAuCj4gSWYgaXRzIGhhcHBlbmluZyBmcm9tIGZpcm13 YXJlIHNpZGUsIHRoZW4gdGhhdCByYW0gcGh5cyBhZGRyZXNzIHJhbmdlIAo+IHNob3VsZCBiZSBy ZXNlcnZlZCBmcm9tIGtlcm5lbCB1c2FnZSBJIGd1ZXNzLgo+IAo+IERvIHlvdSBoYXZlIG1vcmUg ZGV0YWlscyBvbiB3aGVyZSBleGFjdGx5IGlzIHRoaXMgcmVzZXJ2ZWQgZnJvbSB3aXRoaW4gCj4g bGludXgga2VybmVsPwoKVGhlc2UgcmVnaW9ucyBhcmUgaW5zaWRlIHJlbW90ZXByb2MgbWVtb3J5 IGNhcnZlLW91dC4KbGlrZS4KCmFkc3BfbWVtOiBtZW1vcnlAODVlMDAwMDAgewoJcmVnID0gPDB4 MCAweDg1ZTAwMDAwIDB4MCAweDIxMDAwMDA+OwoJbm8tbWFwOwp9OwoKCgpyZW1vdGVwcm9jX2Fk c3A6IHJlbW90ZXByb2NAMzAwMDAwMDAgewoJY29tcGF0aWJsZSA9ICJxY29tLHNtODQ1MC1hZHNw LXBhcyI7CglyZWcgPSA8MCAweDMwMDAwMDAwIDAgMHgxMDA+OwogICAgICAgICAgICAuLi4KICAg ICAgICAgICAgLi4uCgltZW1vcnktcmVnaW9uID0gPCZhZHNwX21lbT47IDw9PQoKLU11a2VzaAoJ Cj4gCj4gCj4gLS1zcmluaQo+IAo+Pgo+Pgo+PiAtTXVrZXNoCj4+Cj4+Pgo+Pj4KPj4+IC0tc3Jp bmkKPj4+Cj4+Pj4gLcKgwqDCoCB9Cj4+Pj4gLQo+Pj4+IC3CoMKgwqAgLyogR2V0IHN1YnN5c3Rl bSB0YWJsZSBvZiBjb250ZW50cyB1c2luZyB0aGUgbWluaWR1bXAgaWQgKi8KPj4+PiAtwqDCoMKg IHN1YnN5c3RlbSA9ICZ0b2MtPnN1YnN5c3RlbXNbbWluaWR1bXBfaWRdOwo+Pj4+IMKgwqDCoMKg wqAgLyoqCj4+Pj4gwqDCoMKgwqDCoMKgICogQ29sbGVjdCBtaW5pZHVtcCBpZiBTUyBUb0MgaXMg dmFsaWQgYW5kIHNlZ21lbnQgdGFibGUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK