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 X-Spam-Level: X-Spam-Status: No, score=-5.9 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 86F12C47097 for ; Thu, 3 Jun 2021 10:41:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 711736138C for ; Thu, 3 Jun 2021 10:41:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229983AbhFCKmp (ORCPT ); Thu, 3 Jun 2021 06:42:45 -0400 Received: from foss.arm.com ([217.140.110.172]:37810 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229506AbhFCKmo (ORCPT ); Thu, 3 Jun 2021 06:42:44 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 11E9A1063; Thu, 3 Jun 2021 03:41:00 -0700 (PDT) Received: from [192.168.0.110] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1959E3F774; Thu, 3 Jun 2021 03:40:58 -0700 (PDT) Subject: Re: [BUG] usb: dwc3: Kernel NULL pointer dereference in dwc3_remove() To: Felipe Balbi , Greg Kroah-Hartman , p.zabel@pengutronix.de, linux-usb@vger.kernel.org, Linux Kernel Mailing List , arm-mail-list , sanm@codeaurora.org References: <87r1hjcvf6.fsf@kernel.org> From: Alexandru Elisei Message-ID: <70be179c-d36b-de6f-6efc-2888055b1312@arm.com> Date: Thu, 3 Jun 2021 11:41:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 In-Reply-To: <87r1hjcvf6.fsf@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Felipe, Thank you for having a look! On 6/3/21 7:30 AM, Felipe Balbi wrote: > Hi, > > Alexandru Elisei writes: >> I've been seeing the following panic when shutting down my rockpro64: >> >> [   21.459064] xhci-hcd xhci-hcd.0.auto: USB bus 5 deregistered >> [   21.683077] Unable to handle kernel NULL pointer dereference at virtual address >> 00000000000000a0 >> [   21.683858] Mem abort info: >> [   21.684104]   ESR = 0x96000004 >> [   21.684375]   EC = 0x25: DABT (current EL), IL = 32 bits >> [   21.684841]   SET = 0, FnV = 0 >> [   21.685111]   EA = 0, S1PTW = 0 >> [   21.685389] Data abort info: >> [   21.685644]   ISV = 0, ISS = 0x00000004 >> [   21.686024]   CM = 0, WnR = 0 >> [   21.686288] user pgtable: 4k pages, 48-bit VAs, pgdp=000000000757a000 >> [   21.686853] [00000000000000a0] pgd=0000000000000000, p4d=0000000000000000 >> [   21.687452] Internal error: Oops: 96000004EEMPT SMP >> [   21.687941] Modules linked in: >> [   21.688214] CPU: 4 PID: 1 Comm: shutdown Not tainted >> 5.12.0-rc7-00262-g568262bf5492 #33 >> [   21.688915] Hardware name: Pine64 RockPro64 v2.0 (DT) >> [   21.689357] pstate: 60000005 (nZCv daif -PAN -UAO -TCO BTYPE=--) >> [   21.689884] pc : down_read_interruptible+0xec/0x200 >> [   21.690321] lr : simple_recursive_removal+0x48/0x280 >> [   21.690761] sp : ffff800011f4b940 >> [   21.691053] x29: ffff800011f4b940 x28: ffff000000809b40 >> [   21.691522] x27: ffff000000809b98 x26: ffff8000114f5170 >> [   21.691990] x25: 00000000000000a0 x24: ffff800011e84030 >> [   21.692459] x23: 0000000000000080 x22: 0000000000000000 >> [   21.692927] x21: ffff800011ecaa5c x20: ffff800011ecaa60 >> [   21.693395] x19: ffff000000809b40 x18: ffffffffffffffff >> [   21.693863] x17: 0000000000000000 x16: 0000000000000000 >> [   21.694331] x15: ffff800091f4ba6d x14: 0000000000000004 >> [   21.694799] x13: 0000000000000000 x12: 0000000000000020 >> [   21.695267] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f >> [   21.695735] x9 : 6f6c746364716e62 x8 : 7f7f7f7f7f7f7f7f >> [   21.696203] x7 : fefefeff6364626d x6 : 0000000000001bd8 >> [   21.696671] x5 : 0000000000000000 x4 : 0000000000000000 >> [   21.697138] x3 : 00000000000000a0 x2 : 0000000000000001 >> [   21.697606] x1 : 0000000000000000 x0 : 00000000000000a0 >> [   21.698075] Call trace: >> [   21.698291]  down_read_interruptible+0xec/0x200 >> [   21.698690]  debugfs_remove+0x60/0x84 >> [   21.699016]  dwc3_debugfs_exit+0x1c/0x6c >> [   21.699363]  dwc3_remove+0x34/0x1a0 >> [   21.699672]  platform_remove+0x28/0x60 >> [   21.700005]  __device_release_driver+0x188/0x230 >> [   21.700414]  device_release_driver+0x2c/0x44 >> [   21.700791]  bus_remove_device+0x124/0x130 >> [   21.701154]  device_del+0x168/0x420 >> [   21.701462]  platform_device_del.part.0+0x1c/0x90 >> [   21.701877]  platform_device_unregister+0x28/0x44 >> [   21.702291]  of_platform_device_destroy+0xe8/0x100 >> [   21.702716]  device_for_each_child_reverse+0x64/0xb4 >> [   21.703153]  of_platform_depopulate+0x40/0x84 >> [   21.703538]  __dwc3_of_simple_teardown+0x20/0xd4 >> [   21.703945]  dwc3_of_simple_shutdown+0x14/0x20 >> [   21.704337]  platform_shutdown+0x28/0x40 >> [   21.704683]  device_shutdown+0x158/0x330 >> [   21.705029]  kernel_power_off+0x38/0x7c >> [   21.705372]  __do_sys_reboot+0x16c/0x2a0 >> [   21.705719]  __arm64_sys_reboot+0x28/0x34 >> [   21.706074]  el0_svc_common.constprop.0+0x60/0x120 >> [   21.706499]  do_el0_svc+0x28/0x94 >> [   21.706794]  el0_svc+0x2c/0x54 >> [   21.707067]  el0_sync_handler+0xa4/0x130 >> [   21.707414]  el0_sync+0x170/0x180 >> [   21.707711] Code: c8047c62 35ffff84 17fffe5f f9800071 (c85ffc60) >> [   21.708250] ---[ end trace 5ae08147542eb468 ]--- >> [   21.708667] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b >> [   21.709456] Kernel Offset: disabled >> [   21.709762] CPU features: 0x00240022,2100600c >> [   21.710146] Memory Limit: 2048 MB >> [   21.710443] ---[ end Kernel panic - not syncing: Attempted to kill init! >> exitcode=0x0000000b ]--- >> >> I've been able to bisect the panic and the offending commit is 568262bf5492 ("usb: >> dwc3: core: Add shutdown callback for dwc3"). I can provide more diagnostic >> information if needed and I can help test the fix. > if you simply revert that commit in HEAD, does the problem really go > away? Kernel built from commit 324c92e5e0ee, which is the kernel tip today, the panic is there. Reverting the offending commit, 568262bf5492, makes the panic disappear. Thanks, Alex > > Oh wait, it should go away, yes. dwc3_shutdown() is just called > dwc3_remove() directly, then we end up calling > debugfs_remove_recursive() twice. > > Sandeep, can you fix this one? > 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 X-Spam-Level: X-Spam-Status: No, score=-6.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F9C9C47096 for ; Thu, 3 Jun 2021 10:42:56 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 2AF7A610A8 for ; Thu, 3 Jun 2021 10:42:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2AF7A610A8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=cV1KgdggCPLUzm89oMbKKBMexlbzKnfoB5rbWJ6IsGc=; b=iov3n2GB/BLm/NDdyZX/Qr0hfK BTYevvCO1fv6Q7LK10weAyPZkLVdTFhe1JboXF+VfZKz5zOVbMoWLMszxoFLDpQJYeK7YfEx2gO74 h3qaGFWjYcDxwyU//WwtBoLgKykKA6amwGHlFatNgWtnYwhhpmmhIDsC73gq6M2tkIgy+YAk/3fkf oxcl83jchGmNDD7MiX/CltWPDoXkwGJSXqiWv6fnnJRFldk+rD7Maaj9R9Ey6lgyNMt779AhWyBRn G4KThfmRRJQ101HhwpiLVNg4ss2yQEMkkOB1GigGEj7Cq7X/1GIDTmphwTRgJrYvhOxMFW9TCVTBm iNEjFQLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lokmh-0089oe-4s; Thu, 03 Jun 2021 10:41:07 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lokme-0089nr-0e for linux-arm-kernel@lists.infradead.org; Thu, 03 Jun 2021 10:41:05 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 11E9A1063; Thu, 3 Jun 2021 03:41:00 -0700 (PDT) Received: from [192.168.0.110] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1959E3F774; Thu, 3 Jun 2021 03:40:58 -0700 (PDT) Subject: Re: [BUG] usb: dwc3: Kernel NULL pointer dereference in dwc3_remove() To: Felipe Balbi , Greg Kroah-Hartman , p.zabel@pengutronix.de, linux-usb@vger.kernel.org, Linux Kernel Mailing List , arm-mail-list , sanm@codeaurora.org References: <87r1hjcvf6.fsf@kernel.org> From: Alexandru Elisei Message-ID: <70be179c-d36b-de6f-6efc-2888055b1312@arm.com> Date: Thu, 3 Jun 2021 11:41:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 In-Reply-To: <87r1hjcvf6.fsf@kernel.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210603_034104_180551_9EE2952C X-CRM114-Status: GOOD ( 15.87 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGVsbG8gRmVsaXBlLAoKVGhhbmsgeW91IGZvciBoYXZpbmcgYSBsb29rIQoKT24gNi8zLzIxIDc6 MzAgQU0sIEZlbGlwZSBCYWxiaSB3cm90ZToKPiBIaSwKPgo+IEFsZXhhbmRydSBFbGlzZWkgPGFs ZXhhbmRydS5lbGlzZWlAYXJtLmNvbT4gd3JpdGVzOgo+PiBJJ3ZlIGJlZW4gc2VlaW5nIHRoZSBm b2xsb3dpbmcgcGFuaWMgd2hlbiBzaHV0dGluZyBkb3duIG15IHJvY2twcm82NDoKPj4KPj4gW8Kg wqAgMjEuNDU5MDY0XSB4aGNpLWhjZCB4aGNpLWhjZC4wLmF1dG86IFVTQiBidXMgNSBkZXJlZ2lz dGVyZWQKPj4gW8KgwqAgMjEuNjgzMDc3XSBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBv aW50ZXIgZGVyZWZlcmVuY2UgYXQgdmlydHVhbCBhZGRyZXNzCj4+IDAwMDAwMDAwMDAwMDAwYTAK Pj4gW8KgwqAgMjEuNjgzODU4XSBNZW0gYWJvcnQgaW5mbzoKPj4gW8KgwqAgMjEuNjg0MTA0XcKg wqAgRVNSID0gMHg5NjAwMDAwNAo+PiBbwqDCoCAyMS42ODQzNzVdwqDCoCBFQyA9IDB4MjU6IERB QlQgKGN1cnJlbnQgRUwpLCBJTCA9IDMyIGJpdHMKPj4gW8KgwqAgMjEuNjg0ODQxXcKgwqAgU0VU ID0gMCwgRm5WID0gMAo+PiBbwqDCoCAyMS42ODUxMTFdwqDCoCBFQSA9IDAsIFMxUFRXID0gMAo+ PiBbwqDCoCAyMS42ODUzODldIERhdGEgYWJvcnQgaW5mbzoKPj4gW8KgwqAgMjEuNjg1NjQ0XcKg wqAgSVNWID0gMCwgSVNTID0gMHgwMDAwMDAwNAo+PiBbwqDCoCAyMS42ODYwMjRdwqDCoCBDTSA9 IDAsIFduUiA9IDAKPj4gW8KgwqAgMjEuNjg2Mjg4XSB1c2VyIHBndGFibGU6IDRrIHBhZ2VzLCA0 OC1iaXQgVkFzLCBwZ2RwPTAwMDAwMDAwMDc1N2EwMDAKPj4gW8KgwqAgMjEuNjg2ODUzXSBbMDAw MDAwMDAwMDAwMDBhMF0gcGdkPTAwMDAwMDAwMDAwMDAwMDAsIHA0ZD0wMDAwMDAwMDAwMDAwMDAw Cj4+IFvCoMKgIDIxLjY4NzQ1Ml0gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDk2MDAwMDA0RUVNUFQg U01QCj4+IFvCoMKgIDIxLjY4Nzk0MV0gTW9kdWxlcyBsaW5rZWQgaW46Cj4+IFvCoMKgIDIxLjY4 ODIxNF0gQ1BVOiA0IFBJRDogMSBDb21tOiBzaHV0ZG93biBOb3QgdGFpbnRlZAo+PiA1LjEyLjAt cmM3LTAwMjYyLWc1NjgyNjJiZjU0OTIgIzMzCj4+IFvCoMKgIDIxLjY4ODkxNV0gSGFyZHdhcmUg bmFtZTogUGluZTY0IFJvY2tQcm82NCB2Mi4wIChEVCkKPj4gW8KgwqAgMjEuNjg5MzU3XSBwc3Rh dGU6IDYwMDAwMDA1IChuWkN2IGRhaWYgLVBBTiAtVUFPIC1UQ08gQlRZUEU9LS0pCj4+IFvCoMKg IDIxLjY4OTg4NF0gcGMgOiBkb3duX3JlYWRfaW50ZXJydXB0aWJsZSsweGVjLzB4MjAwCj4+IFvC oMKgIDIxLjY5MDMyMV0gbHIgOiBzaW1wbGVfcmVjdXJzaXZlX3JlbW92YWwrMHg0OC8weDI4MAo+ PiBbwqDCoCAyMS42OTA3NjFdIHNwIDogZmZmZjgwMDAxMWY0Yjk0MAo+PiBbwqDCoCAyMS42OTEw NTNdIHgyOTogZmZmZjgwMDAxMWY0Yjk0MCB4Mjg6IGZmZmYwMDAwMDA4MDliNDAKPj4gW8KgwqAg MjEuNjkxNTIyXSB4Mjc6IGZmZmYwMDAwMDA4MDliOTggeDI2OiBmZmZmODAwMDExNGY1MTcwCj4+ IFvCoMKgIDIxLjY5MTk5MF0geDI1OiAwMDAwMDAwMDAwMDAwMGEwIHgyNDogZmZmZjgwMDAxMWU4 NDAzMAo+PiBbwqDCoCAyMS42OTI0NTldIHgyMzogMDAwMDAwMDAwMDAwMDA4MCB4MjI6IDAwMDAw MDAwMDAwMDAwMDAKPj4gW8KgwqAgMjEuNjkyOTI3XSB4MjE6IGZmZmY4MDAwMTFlY2FhNWMgeDIw OiBmZmZmODAwMDExZWNhYTYwCj4+IFvCoMKgIDIxLjY5MzM5NV0geDE5OiBmZmZmMDAwMDAwODA5 YjQwIHgxODogZmZmZmZmZmZmZmZmZmZmZgo+PiBbwqDCoCAyMS42OTM4NjNdIHgxNzogMDAwMDAw MDAwMDAwMDAwMCB4MTY6IDAwMDAwMDAwMDAwMDAwMDAKPj4gW8KgwqAgMjEuNjk0MzMxXSB4MTU6 IGZmZmY4MDAwOTFmNGJhNmQgeDE0OiAwMDAwMDAwMDAwMDAwMDA0Cj4+IFvCoMKgIDIxLjY5NDc5 OV0geDEzOiAwMDAwMDAwMDAwMDAwMDAwIHgxMjogMDAwMDAwMDAwMDAwMDAyMAo+PiBbwqDCoCAy MS42OTUyNjddIHgxMTogMDEwMTAxMDEwMTAxMDEwMSB4MTA6IDdmN2Y3ZjdmN2Y3ZjdmN2YKPj4g W8KgwqAgMjEuNjk1NzM1XSB4OSA6IDZmNmM3NDYzNjQ3MTZlNjIgeDggOiA3ZjdmN2Y3ZjdmN2Y3 ZjdmCj4+IFvCoMKgIDIxLjY5NjIwM10geDcgOiBmZWZlZmVmZjYzNjQ2MjZkIHg2IDogMDAwMDAw MDAwMDAwMWJkOAo+PiBbwqDCoCAyMS42OTY2NzFdIHg1IDogMDAwMDAwMDAwMDAwMDAwMCB4NCA6 IDAwMDAwMDAwMDAwMDAwMDAKPj4gW8KgwqAgMjEuNjk3MTM4XSB4MyA6IDAwMDAwMDAwMDAwMDAw YTAgeDIgOiAwMDAwMDAwMDAwMDAwMDAxCj4+IFvCoMKgIDIxLjY5NzYwNl0geDEgOiAwMDAwMDAw MDAwMDAwMDAwIHgwIDogMDAwMDAwMDAwMDAwMDBhMAo+PiBbwqDCoCAyMS42OTgwNzVdIENhbGwg dHJhY2U6Cj4+IFvCoMKgIDIxLjY5ODI5MV3CoCBkb3duX3JlYWRfaW50ZXJydXB0aWJsZSsweGVj LzB4MjAwCj4+IFvCoMKgIDIxLjY5ODY5MF3CoCBkZWJ1Z2ZzX3JlbW92ZSsweDYwLzB4ODQKPj4g W8KgwqAgMjEuNjk5MDE2XcKgIGR3YzNfZGVidWdmc19leGl0KzB4MWMvMHg2Ywo+PiBbwqDCoCAy MS42OTkzNjNdwqAgZHdjM19yZW1vdmUrMHgzNC8weDFhMAo+PiBbwqDCoCAyMS42OTk2NzJdwqAg cGxhdGZvcm1fcmVtb3ZlKzB4MjgvMHg2MAo+PiBbwqDCoCAyMS43MDAwMDVdwqAgX19kZXZpY2Vf cmVsZWFzZV9kcml2ZXIrMHgxODgvMHgyMzAKPj4gW8KgwqAgMjEuNzAwNDE0XcKgIGRldmljZV9y ZWxlYXNlX2RyaXZlcisweDJjLzB4NDQKPj4gW8KgwqAgMjEuNzAwNzkxXcKgIGJ1c19yZW1vdmVf ZGV2aWNlKzB4MTI0LzB4MTMwCj4+IFvCoMKgIDIxLjcwMTE1NF3CoCBkZXZpY2VfZGVsKzB4MTY4 LzB4NDIwCj4+IFvCoMKgIDIxLjcwMTQ2Ml3CoCBwbGF0Zm9ybV9kZXZpY2VfZGVsLnBhcnQuMCsw eDFjLzB4OTAKPj4gW8KgwqAgMjEuNzAxODc3XcKgIHBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVy KzB4MjgvMHg0NAo+PiBbwqDCoCAyMS43MDIyOTFdwqAgb2ZfcGxhdGZvcm1fZGV2aWNlX2Rlc3Ry b3krMHhlOC8weDEwMAo+PiBbwqDCoCAyMS43MDI3MTZdwqAgZGV2aWNlX2Zvcl9lYWNoX2NoaWxk X3JldmVyc2UrMHg2NC8weGI0Cj4+IFvCoMKgIDIxLjcwMzE1M13CoCBvZl9wbGF0Zm9ybV9kZXBv cHVsYXRlKzB4NDAvMHg4NAo+PiBbwqDCoCAyMS43MDM1MzhdwqAgX19kd2MzX29mX3NpbXBsZV90 ZWFyZG93bisweDIwLzB4ZDQKPj4gW8KgwqAgMjEuNzAzOTQ1XcKgIGR3YzNfb2Zfc2ltcGxlX3No dXRkb3duKzB4MTQvMHgyMAo+PiBbwqDCoCAyMS43MDQzMzddwqAgcGxhdGZvcm1fc2h1dGRvd24r MHgyOC8weDQwCj4+IFvCoMKgIDIxLjcwNDY4M13CoCBkZXZpY2Vfc2h1dGRvd24rMHgxNTgvMHgz MzAKPj4gW8KgwqAgMjEuNzA1MDI5XcKgIGtlcm5lbF9wb3dlcl9vZmYrMHgzOC8weDdjCj4+IFvC oMKgIDIxLjcwNTM3Ml3CoCBfX2RvX3N5c19yZWJvb3QrMHgxNmMvMHgyYTAKPj4gW8KgwqAgMjEu NzA1NzE5XcKgIF9fYXJtNjRfc3lzX3JlYm9vdCsweDI4LzB4MzQKPj4gW8KgwqAgMjEuNzA2MDc0 XcKgIGVsMF9zdmNfY29tbW9uLmNvbnN0cHJvcC4wKzB4NjAvMHgxMjAKPj4gW8KgwqAgMjEuNzA2 NDk5XcKgIGRvX2VsMF9zdmMrMHgyOC8weDk0Cj4+IFvCoMKgIDIxLjcwNjc5NF3CoCBlbDBfc3Zj KzB4MmMvMHg1NAo+PiBbwqDCoCAyMS43MDcwNjddwqAgZWwwX3N5bmNfaGFuZGxlcisweGE0LzB4 MTMwCj4+IFvCoMKgIDIxLjcwNzQxNF3CoCBlbDBfc3luYysweDE3MC8weDE4MAo+PiBbwqDCoCAy MS43MDc3MTFdIENvZGU6IGM4MDQ3YzYyIDM1ZmZmZjg0IDE3ZmZmZTVmIGY5ODAwMDcxIChjODVm ZmM2MCkKPj4gW8KgwqAgMjEuNzA4MjUwXSAtLS1bIGVuZCB0cmFjZSA1YWUwODE0NzU0MmViNDY4 IF0tLS0KPj4gW8KgwqAgMjEuNzA4NjY3XSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogQXR0 ZW1wdGVkIHRvIGtpbGwgaW5pdCEgZXhpdGNvZGU9MHgwMDAwMDAwYgo+PiBbwqDCoCAyMS43MDk0 NTZdIEtlcm5lbCBPZmZzZXQ6IGRpc2FibGVkCj4+IFvCoMKgIDIxLjcwOTc2Ml0gQ1BVIGZlYXR1 cmVzOiAweDAwMjQwMDIyLDIxMDA2MDBjCj4+IFvCoMKgIDIxLjcxMDE0Nl0gTWVtb3J5IExpbWl0 OiAyMDQ4IE1CCj4+IFvCoMKgIDIxLjcxMDQ0M10gLS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90 IHN5bmNpbmc6IEF0dGVtcHRlZCB0byBraWxsIGluaXQhCj4+IGV4aXRjb2RlPTB4MDAwMDAwMGIg XS0tLQo+Pgo+PiBJJ3ZlIGJlZW4gYWJsZSB0byBiaXNlY3QgdGhlIHBhbmljIGFuZCB0aGUgb2Zm ZW5kaW5nIGNvbW1pdCBpcyA1NjgyNjJiZjU0OTIgKCJ1c2I6Cj4+IGR3YzM6IGNvcmU6IEFkZCBz aHV0ZG93biBjYWxsYmFjayBmb3IgZHdjMyIpLiBJIGNhbiBwcm92aWRlIG1vcmUgZGlhZ25vc3Rp Ywo+PiBpbmZvcm1hdGlvbiBpZiBuZWVkZWQgYW5kIEkgY2FuIGhlbHAgdGVzdCB0aGUgZml4Lgo+ IGlmIHlvdSBzaW1wbHkgcmV2ZXJ0IHRoYXQgY29tbWl0IGluIEhFQUQsIGRvZXMgdGhlIHByb2Js ZW0gcmVhbGx5IGdvCj4gYXdheT8KCktlcm5lbCBidWlsdCBmcm9tIGNvbW1pdCAzMjRjOTJlNWUw ZWUsIHdoaWNoIGlzIHRoZSBrZXJuZWwgdGlwIHRvZGF5LCB0aGUgcGFuaWMgaXMKdGhlcmUuIFJl dmVydGluZyB0aGUgb2ZmZW5kaW5nIGNvbW1pdCwgNTY4MjYyYmY1NDkyLCBtYWtlcyB0aGUgcGFu aWMgZGlzYXBwZWFyLgoKVGhhbmtzLAoKQWxleAoKPgo+IE9oIHdhaXQsIGl0IHNob3VsZCBnbyBh d2F5LCB5ZXMuIGR3YzNfc2h1dGRvd24oKSBpcyBqdXN0IGNhbGxlZAo+IGR3YzNfcmVtb3ZlKCkg ZGlyZWN0bHksIHRoZW4gd2UgZW5kIHVwIGNhbGxpbmcKPiBkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNp dmUoKSB0d2ljZS4KPgo+IFNhbmRlZXAsIGNhbiB5b3UgZml4IHRoaXMgb25lPwo+CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==