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 3771FC83F11 for ; Mon, 28 Aug 2023 19:25:04 +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=egDZtYADuMr5XL5PfX3/PStomCQYQp0DaLRHaaTnWno=; b=pZ118ocxixr9Hp VLgPtcrvth+Rfhe7mnxNsXz8kNewyvApYXABR74sC3m08nwNK3yEA+BSfFQJXh/O+QpgtXmKP+p0q +52c7fLS+oqWo/Jj4w38VFC7ZCKvmLH0YBQb4NAJ+FCLzBFCsmxhaNJk2muEMGCYeLrUFnYgiEIDm 7BYzFiMwrVhBn6LhLeD7VXzi1Iwx7GdAiG20CIsplEDrmn7ySmvS01t1I8mBe35eddnkrHXf6ZSJM AuMhf2Gc8miJ0xwG2sFyHeyidNOInu+pVzx1rTAp3UpYG6w9a4Sf+23yEAXTNMDs2ezpG5sNedqG4 wLtLgd3h2FUSmYWeurPQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qahqg-00A8l3-22; Mon, 28 Aug 2023 19:24:30 +0000 Received: from phobos.denx.de ([2a01:238:438b:c500:173d:9f52:ddab:ee01]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qahqd-00A8jj-1u for linux-arm-kernel@lists.infradead.org; Mon, 28 Aug 2023 19:24:29 +0000 Received: from [127.0.0.1] (p578adb1c.dip0.t-ipconnect.de [87.138.219.28]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: marex@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id A5ABE86459; Mon, 28 Aug 2023 21:24:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1693250663; bh=nbLcBuArj4cJoR+vRUR1xWwCX4W9JgQxLJnt+II29Xg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=UVnQC/5v6dwD5jenHe6LV4YN/Ld0wZnAPsd7PEf9FcgRmd5aNbfTczXFIysIvR9Aa hApSI5gtIK7CaloobSFdLaSgrJ1JKvELukm8IdswH5cHjshW9hNF+JuURxhTsag4mp vMv6DvlDyvolDu08YznyQ92EjDbOuBCKaFCpZm4/CiFeg8/theq3BtAmeAQpEhcwe5 R/u5SMW2gdEUajHC04qLu9jDVYFsSlxbOnjE6h33n1ArDMEi9/8/wkQqSk/f2oOsFf wHdw4WFGaKUyqHFp1IvQcDxjp5UXhpyBknGJglsgWuZuChubw6vz/TO7OPHpOBroz3 5rjcRDt0a19jQ== Message-ID: Date: Mon, 28 Aug 2023 21:24:22 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 Subject: Re: imx8mp pci hang during init Content-Language: en-US To: Tim Harvey , "Maciej W. Rozycki" , Bjorn Helgaas Cc: linux-pci@vger.kernel.org, Richard Zhu , Lucas Stach , Linux ARM Mailing List , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam References: <20230817171242.GA320904@bhelgaas> From: Marek Vasut In-Reply-To: X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230828_122428_129911_B63DEC8B X-CRM114-Status: GOOD ( 41.32 ) 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 T24gOC8yOC8yMyAyMDo1MSwgVGltIEhhcnZleSB3cm90ZToKPiBPbiBGcmksIEF1ZyAxOCwgMjAy MyBhdCAzOjEy4oCvUE0gVGltIEhhcnZleSA8dGhhcnZleUBnYXRld29ya3MuY29tPiB3cm90ZToK Pj4KPj4gT24gVGh1LCBBdWcgMTcsIDIwMjMgYXQgNTowNeKAr1BNIE1hY2llaiBXLiBSb3p5Y2tp IDxtYWNyb0BvcmNhbS5tZS51az4gd3JvdGU6Cj4+Pgo+Pj4gT24gVGh1LCAxNyBBdWcgMjAyMywg Qmpvcm4gSGVsZ2FhcyB3cm90ZToKPj4+Cj4+Pj4gWytjYyBNYWNpZWosIHNtZWxscyBzaW1pbGFy IHRvIGE4OWM4MjI0OWMzNyAoIlBDSTogV29yayBhcm91bmQgUENJZQo+Pj4+IGxpbmsgdHJhaW5p bmcgZmFpbHVyZXMiKSBdCj4+Pgo+Pj4gICBRdWl0ZSBzbyBpbmRlZWQuCj4+Pgo+Pj4+PiBbIDAu NDk5NjYwXSBpbXg2cS1wY2llIDMzODAwMDAwLnBjaWU6IGhvc3QgYnJpZGdlIC9zb2NAMC9wY2ll QDMzODAwMDAwIHJhbmdlczoKPj4+Pj4gWyAwLjUwMDI3Nl0gY2xrOiBOb3QgZGlzYWJsaW5nIHVu dXNlZCBjbG9ja3MKPj4+Pj4gWyAwLjUwNjk2MF0gaW14NnEtcGNpZSAzMzgwMDAwMC5wY2llOiBJ TyAweDAwMWZmODAwMDAuLjB4MDAxZmY4ZmZmZiAtPgo+Pj4+PiAweDAwMDAwMDAwMDAKPj4+Pj4g WyAwLjUxOTQwMV0gaW14NnEtcGNpZSAzMzgwMDAwMC5wY2llOiBNRU0gMHgwMDE4MDAwMDAwLi4w eDAwMWZlZmZmZmYKPj4+Pj4gLT4gMHgwMDE4MDAwMDAwCj4+Pj4+IFsgMC43NDM1NTRdIGlteDZx LXBjaWUgMzM4MDAwMDAucGNpZTogaUFUVTogdW5yb2xsIFQsIDQgb2IsIDQgaWIsCj4+Pj4+IGFs aWduIDY0SywgbGltaXQgMTZHCj4+Pj4+IFsgMC44NTE1NzhdIGlteDZxLXBjaWUgMzM4MDAwMDAu cGNpZTogUENJZSBHZW4uMSB4MSBsaW5rIHVwCj4+Pj4+IF5eXiBoYW5nIGF0IHRoaXMgcG9pbnQg dW50aWwgd2F0Y2hkb2cgcmVzZXRzCj4+Pgo+Pgo+PiBNYWNpZWogYW5kIEJqb3JuLAo+Pgo+PiBU aGFuayB5b3UgZm9yIHRoZSByZXNwb25zZXMhCj4+Cj4+PiAgIFNvIEkgdGhpbmsgaXQncyBpbXBv cnRhbnQgdG8gZmlndXJlIG91dCB3aGVyZSBleGFjdGx5IGluIHRoZSBrZXJuZWwgY29kZQo+Pj4g dGhlIGhhbmcgaGFwcGVuczsgdGhpcyBpcyBwcmVzdW1hYmx5IGluIGhvc3QtYnJpZGdlLXNwZWNp ZmljIGxpbmsgYnJpbmctdXAKPj4+IGNvZGUgcG9sbGluZyBsaW5rIHN0YXR1cywgd2hpY2ggbWF5 IGhhdmUgdG8gYmUgdXBkYXRlZCBhY2NvcmRpbmcgdG8gb3IKPj4+IG90aGVyd2lzZSBtYWtlIHVz ZSBvZiBhODljODIyNDljMzcuICBJdCBtYXkgYWxzbyBiZSBzb21ldGhpbmcgY29tcGxldGVseQo+ Pj4gZGlmZmVyZW50IG9mIGNvdXJzZS4KPj4+Cj4+Cj4+IEl0J3MgaGFuZ2luZyBpbiBpbXg2X3Bj aWVfc3RhcnRfbGluaygpIGFmdGVyIHRoZSBQQ0lfRVhQX0xOS0NBUAo+PiByZWdpc3RlciBpcyB1 cGRhdGVkIHRvIGFsbG93IGdlbjIgZHVyaW5nIHRoZSBzdWJzZXF1ZW50Cj4+IGR3X3BjaWVfd2Fp dF9mb3JfbGluaywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgZHdfcGNpZV9yZWFkX2RiaQo+PiBm dW5jdGlvbiB0aGF0IGRvZXMgYSBtZW1vcnkgcmVhZC4gRHVlIHRvIHRoZSBtZW0gcmVhZCBoYW5n aW5nIHRoZSBDUFUKPj4gdGhpcyB0ZWxscyBtZSB0aGF0IHRoZSBEV0MgY29yZSBoYXMgY3Jhc2hl ZCBhdCB0aGlzIHBvaW50Lgo+Pgo+PiBXaGF0IEkgZm91bmQgaXMgdGhhdCBpZiBJIGVzc2VudGlh bGx5IHJldmVydCB0aGUgZWZmZWN0IG9mIGNvbW1pdAo+PiBmYTMzYTZkODdlYWMgKCJQQ0k6IGlt eDY6IFN0YXJ0IGxpbmsgaW4gR2VuMSBiZWZvcmUgbmVnb3RpYXRpbmcgZm9yCj4+IEdlbjIgbW9k ZSIpIHRvIHN0YXJ0IGxpbmtpbmcgYXQgZ2VuMyAob3IgZm9yY2VkIHRvIGdlbjIpIGl0IGFwcGVh cnMgdG8KPj4gZG93bmdyYWRlIHRvIGdlbjIgKGR1ZSB0byB0aGUgUEk3QzlYMkc2MDhHUEIgYmVp bmcgYSBnZW4yIHN3aXRjaCkgYW5kCj4+IHdvcmsgZmluZToKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPj4gYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2ktaW14Ni5jCj4+IGluZGV4IDI3YWFhMmE2YmYzOS4uODFjYWFlZjc2ZThhIDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCj4+ICsr KyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPj4gQEAgLTg3Niw2ICs4 NzYsNyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9zdGFydF9saW5rKHN0cnVjdCBkd19wY2llICpw Y2kpCj4+ICAgICAgICAgIHUzMiB0bXA7Cj4+ICAgICAgICAgIGludCByZXQ7Cj4+Cj4+ICsjaWYg MAo+PiAgICAgICAgICAvKgo+PiAgICAgICAgICAgKiBGb3JjZSBHZW4xIG9wZXJhdGlvbiB3aGVu IHN0YXJ0aW5nIHRoZSBsaW5rLiAgSW4gY2FzZSB0aGUgbGluayBpcwo+PiAgICAgICAgICAgKiBz dGFydGVkIGluIEdlbjIgbW9kZSwgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGUgZGV2aWNlcyBv biB0aGUKPj4gQEAgLTg4Nyw2ICs4ODgsNyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9zdGFydF9s aW5rKHN0cnVjdCBkd19wY2llICpwY2kpCj4+ICAgICAgICAgIHRtcCB8PSBQQ0lfRVhQX0xOS0NB UF9TTFNfMl81R0I7Cj4+ICAgICAgICAgIGR3X3BjaWVfd3JpdGVsX2RiaShwY2ksIG9mZnNldCAr IFBDSV9FWFBfTE5LQ0FQLCB0bXApOwo+PiAgICAgICAgICBkd19wY2llX2RiaV9yb193cl9kaXMo cGNpKTsKPj4gKyNlbmRpZgo+Pgo+PiAgICAgICAgICAvKiBTdGFydCBMVFNTTS4gKi8KPj4gICAg ICAgICAgaW14Nl9wY2llX2x0c3NtX2VuYWJsZShkZXYpOwo+PiBAQCAtODk1LDYgKzg5Nyw3IEBA IHN0YXRpYyBpbnQgaW14Nl9wY2llX3N0YXJ0X2xpbmsoc3RydWN0IGR3X3BjaWUgKnBjaSkKPj4g ICAgICAgICAgaWYgKHJldCkKPj4gICAgICAgICAgICAgICAgICBnb3RvIGVycl9yZXNldF9waHk7 Cj4+Cj4+ICsjaWYgMAo+PiAgICAgICAgICBpZiAocGNpLT5saW5rX2dlbiA+IDEpIHsKPj4gICAg ICAgICAgICAgICAgICAvKiBBbGxvdyBmYXN0ZXIgbW9kZXMgYWZ0ZXIgdGhlIGxpbmsgaXMgdXAg Ki8KPj4gICAgICAgICAgICAgICAgICBkd19wY2llX2RiaV9yb193cl9lbihwY2kpOwo+PiBAQCAt OTM3LDYgKzk0MCw3IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX3N0YXJ0X2xpbmsoc3RydWN0IGR3 X3BjaWUgKnBjaSkKPj4gICAgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAgICAgICBkZXZf aW5mbyhkZXYsICJMaW5rOiBPbmx5IEdlbjEgaXMgZW5hYmxlZFxuIik7Cj4+ICAgICAgICAgIH0K Pj4gKyNlbmRpZgo+Pgo+PiAgICAgICAgICBpbXg2X3BjaWUtPmxpbmtfaXNfdXAgPSB0cnVlOwo+ PiAgICAgICAgICB0bXAgPSBkd19wY2llX3JlYWR3X2RiaShwY2ksIG9mZnNldCArIFBDSV9FWFBf TE5LU1RBKTsKPj4KPj4gU28gSSB0aGluayB5b3UgYXJlIGNvcnJlY3QgaW4gdGhhdCBJIG5lZWQg dG8gZG8gdGhlIHNhbWUgdGhpbmcgdGhhdAo+PiB3YXMgZG9uZSBpbiBhODljODIyNDljMzcgZm9y IHRoZSBpbXg2IGR3YyBkcml2ZXIgd2hpY2ggZXNzZW50aWFsbHkKPj4gZm9yY2VzIGl0IHRoZSBv dGhlciB3YXkgZ29pbmcgZnJvbSBnZW4xLT5nZW4yLT5nZW4zICh1cHdhcmQpIGluc3RlYWQKPj4g b2YgZ2VuMy0+Z2VuMi0+Z2VuMSAoZG93bmFyZCkuCj4+Cj4+IEkndmUgY2MnZCBNYXJlayB3aG8g YXV0aG9yZWQgY29tbWl0IGZhMzNhNmQ4N2VhYyAoIlBDSTogaW14NjogU3RhcnQKPj4gbGluayBp biBHZW4xIGJlZm9yZSBuZWdvdGlhdGluZyBmb3IgR2VuMiBtb2RlIikgaW4gaG9wZXMgdGhhdCBo ZSBtaWdodAo+PiByZW1lbWJlciB3aGF0IHN3aXRjaCBvciBzd2l0Y2hlcyBoZSBuZWVkZWQgdGhp cyBjaGFuZ2UgZm9yLiBJJ20gbm90Cj4+IGV2ZW4gY2xlYXIgd2hhdCBJTVg2IFNvQyAxMCB5ZWFy cyBhZ28gZXZlbiBoYWQgZ2VuMiBjYXBhYmlsaXR5Lgo+Pgo+PiBJIGZvdW5kIHRoYXQgdGhlIFBJ N0M5WDJHNjA4R1BCIHVzZWQgaGVyZSBoYXMgYW4gZXJyYXRhICJFMTE6IEdFTjIKPj4gQ2hhbmdl LVJhdGUgSXNzdWUgd2l0aCBDZXJ0YWluIFJvb3QgQ29tcGxleCBQbGF0Zm9ybXMiIHRoYXQgZGVz Y3JpYmVzCj4+IGFuIGlzc3VlIG9ic2VydmVkIGluIGNlcnRhaW4gUENJZSBnZW4zIHBsYXRmb3Jt cyBkdXJpbmcgYSByYXRlIGNoYW5nZQo+PiBmcm9tIDIuNUdicHMgdG8gNUdicHMgY2F1c2VkIGJ5 IHRoZSBzd2l0Y2ggZW50ZXJpbmcgYSByZWNvdmVyeSBzdGF0ZQo+PiB0aGF0IGNhbiB0aW1lb3V0 IGF0IHdoaWNoIHBvaW50IGFjY29yZGluZyB0byB0aGUgZXJyYXRhICJBZnRlciB0aGUKPj4gbGlu ay1kb3duIHByb2Nlc3MsIGFsbCB0aGUgcmVnaXN0ZXJzIGFyZSByZXNldCB0byB0aGUgZGVmYXVs dCB2YWx1ZXMiCj4+IHdoaWNoIGlzIGxpa2VseSB3aGF0cyBjYXVzaW5nIHRoZSBEV0MgY29udHJv bGxlciB0byBoYW5nLgo+Pgo+PiBNeSBndXQgZmVlbCBpcyB0aGF0IGNvbW1pdCBhODljODIyNDlj MzcgKCJQQ0k6IFdvcmsgYXJvdW5kIFBDSWUgbGluawo+PiB0cmFpbmluZyBmYWlsdXJlcyIpIGxp a2VseSB3b3VsZCByZXNvbHZlIHRoZSBpc3N1ZXMgdGhhdCBNYXJlayBoYWQKPj4gd2hpY2ggcHJv bXB0ZWQgaGltIHRvIG1ha2UgdGhlIGlteDYgZHJpdmVyIGdvIGZyb20gZ2VuMSB1cHdhcmQgYW5k Cj4+IHRoYXQgaWYgd2UgY2hhbmdlZCB0aGUgZHJpdmVyIHRvIGdvIGZyb20gZ2VuMyBkb3dud2Fy ZCBpdCB3b3VsZAo+PiByZXNvbHZlIG15IGlzc3VlIGFzIHdlbGwuIEhvd2V2ZXIsIEkgZG9uJ3Qg a25vdyB3aGF0IHRoZSAnY29ycmVjdCcKPj4gbGluayB0cmFpbmluZyBzZXF1ZW5jZSBzaG91bGQg cmVhbGx5IGJlICh1cHdhcmQgb3IgZG93bndhcmQpIHNvIGl0J3MKPj4gaGFyZCB0byBzYXkgd2hh dCB0aGUgcmlnaHQgd29ya2Fyb3VuZCBpcy4gSXMgdGhlcmUgYSBjb3JyZWN0IGxpbmsKPj4gdHJh aW5pbmcgc2VxdWVuY2UgYW5kIGlmIHNvIGhvdyBtYW55IGNvbnRyb2xsZXJzIGFyZSB1c2luZyBp dCB2cwo+PiBoYXZpbmcgdG8gcmV2ZXJzZSBpdCB0byB3b3JrYXJvdW5kIGhhcmR3YXJlIHF1aXJr cz8KPj4KPj4+ICAgQ2FuIHlvdSBzZWUgaWYgeW91IGNhbiBidW1wIHRoZSBsaW5rIHVwIGJleW9u ZCAyLjVHVC9zIGJ5IHBva2luZyBhdCBob3N0Cj4+PiBicmlkZ2UgcmVnaXN0ZXJzIGJ5IGhhbmQg d2l0aCBgc2V0cGNpJyBvbmNlIHRoZSBsaW5rIGJlZW4gc3VjY2Vzc2Z1bGx5Cj4+PiBlc3RhYmxp c2hlZCBhdCAyLjVHVC9zPwo+Pj4KPj4KPj4gSSdsbCBoYXZlIHRvIHRyeSB0aGF0LiBJbnN0ZWFk IG9mIHVzaW5nIHRoZSBQQ0lfRVhQX0xOS0NUTCBsaWtlIHRoZQo+PiBwY2llX3JldHJhaW5fbGlu aygpIGZ1bmN0aW9uIGRvZXMgdGhlIGlteDYgZHJpdmVyIHRvdWNoZXMgc29tZSBEV0MKPj4gcmVn aXN0ZXIgdGhhdCBJIGRvbid0IGhhdmUgZG9jdW1lbnRhdGlvbiBmb3Igc28gZXNzZW50aWFsbHkg d2hhdCB5b3VyCj4+IGFza2luZyB3aWxsIHRlc3QgcmV0cmFpbmluZyB0aGUgbW9yZSBzdGFuZGFy ZCB3YXkgdXNpbmcgdGhlIGNvbmZpZwo+PiByZWdpc3RlcnM6Cj4+ICAgICAgICAgICAgICAgICAg LyoKPj4gICAgICAgICAgICAgICAgICAgKiBTdGFydCBEaXJlY3RlZCBTcGVlZCBDaGFuZ2Ugc28g dGhlIGJlc3QgcG9zc2libGUKPj4gICAgICAgICAgICAgICAgICAgKiBzcGVlZCBib3RoIGxpbmsg cGFydG5lcnMgc3VwcG9ydCBjYW4gYmUgbmVnb3RpYXRlZC4KPj4gICAgICAgICAgICAgICAgICAg Ki8KPj4gICAgICAgICAgICAgICAgICB0bXAgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIFBDSUVf TElOS19XSURUSF9TUEVFRF9DT05UUk9MKTsKPj4gICAgICAgICAgICAgICAgICB0bXAgfD0gUE9S VF9MT0dJQ19TUEVFRF9DSEFOR0U7Cj4+ICAgICAgICAgICAgICAgICAgZHdfcGNpZV93cml0ZWxf ZGJpKHBjaSwgUENJRV9MSU5LX1dJRFRIX1NQRUVEX0NPTlRST0wsIHRtcCk7Cj4+ICAgICAgICAg ICAgICAgICAgZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHBjaSk7Cj4+Cj4+IEJlc3QgcmVnYXJkcywK Pj4KPj4gVGltCj4gCj4gTWFjaWVqIGFuZCBCam9ybiwKPiAKPiBTZWVpbmcgYXMgTWFyZWsgZW5j b3VudGVyZWQgYSBzd2l0Y2ggdGhhdCBoYWQgc29tZSBpc3N1ZSBzdGFydGluZyBhdAo+IEdlbjIg YW5kIEkndmUgZW5jb3VudGVyZWQgYSBzd2l0Y2ggdGhhdCBoYXMgYW4gaXNzdWUgc3RhcnRpbmcg YXQgR2VuMQo+IHRoZW4gbW92aW5nIHRvIEdlbjIgaG93IGRvIHlvdSBzdWdnZXN0IGRlYWxpbmcg d2l0aCB0aGlzPwo+IAo+IEl0IHNlZW1zIHRvIG1lIHRoYXQgcGNpIHF1aXJrcyByZXF1aXJlIGtu b3dpbmcgdGhlIGRldmljZSBzbyBkb24ndAo+IGhlbHAgdW50aWwgeW91J3ZlIGVzdGFibGlzaGVk IGEgbGluayBhbmQgY2FuIGdldCB0byBjb25maWcgc3BhY2UsIG9yCj4gcGVyaGFwcyB0aGlzIG1l YW5zIHRoZSBzd2l0Y2ggbmVlZHMgdG8gYmUgZGVmaW5lZCBpbiBEVCBzbyB0aGF0IGEgZHQKPiBj b21wYXRpYmxlIGNvdWxkIGJlIHVzZWQgZm9yIHRoZSBxdWlyaz8KPiAKPiBEb2VzIHRoZSBQQ0ll IHNwZWNpZmljYXRpb24gc3BlY2lmeSB0aGF0IGxpbmsgdHJhaW5pbmcgc2hvdWxkIHN0YXJ0Cj4g d2l0aCB0aGUgaGlnaGVzdCBwb3NzaWJsZSBzcGVlZCB0aGVuIGRvd25ncmFkZT8gSSBmaW5kIHRo YXQgbW9zdCBvZgo+IHRoZSBvdGhlciBQQ0kgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMgSSd2ZSBs b29rZWQgYXQgYWxsIHdvcmsgdGhpcwo+IHdheS4gSSBoYXZlIG9ubHkgZm91bmQgdGhlIGZvcmNl IGdlbjIgZmlyc3QgYmVoYXZpb3IgaW4gcGNpLWlteDYuYyBhbmQKPiBwY2llLWZ1NzQwLmMuIE1h eWJlIGEgZHQgcHJvcGVydHkgdG8gZm9yY2UgZ2VuMiBmaXJzdCBpcyBuZWVkZWQgdG8KPiByZXNv bHZlIHRoaXMuCgpPbmUgaWRlYSB3aGljaCBjYW1lIHRvIG1pbmQganVzdCBub3cgLS0gbWF5YmUg eW91IGNhbiBkZXNjcmliZSB0aGUgUENJZSAKZGV2aWNlIGluIERUOgoKYXJjaC9hcm0vYm9vdC9k dHMvbnhwL2lteC9pbXg2cS11dGlsaXRlLXByby5kdHMKCjMyNiAmcGNpZSB7CjMyNyAgICAgICAg IHBjaWVAMCwwIHsKMzI4ICAgICAgICAgICAgICAgICByZWcgPSA8MHgwMDAwMDAgMCAwIDAgMD47 CjMyOSAgICAgICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8Mz47CjMzMCAgICAgICAgICAg ICAgICAgI3NpemUtY2VsbHMgPSA8Mj47CjMzMQozMzIgICAgICAgICAgICAgICAgIC8qIG5vbi1y ZW1vdmFibGUgaTIxMSBldGhlcm5ldCBjYXJkICovCjMzMyAgICAgICAgICAgICAgICAgZXRoMTog aW50ZWwsaTIxMUBwY2llMCwwIHsKLi4uCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==