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.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,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 2C4D0C433ED for ; Wed, 19 May 2021 09:20:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F3CE460FE4 for ; Wed, 19 May 2021 09:20:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344862AbhESJVW (ORCPT ); Wed, 19 May 2021 05:21:22 -0400 Received: from foss.arm.com ([217.140.110.172]:55830 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344849AbhESJVT (ORCPT ); Wed, 19 May 2021 05:21:19 -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 97957101E; Wed, 19 May 2021 02:19:59 -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 9C3D83F73D; Wed, 19 May 2021 02:19:58 -0700 (PDT) Subject: Re: [BUG] rockpro64: PCI BAR reassignment broken by commit 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses") To: Qu Wenruo , Linux Kernel Mailing List , linux-rockchip@lists.infradead.org, arm-mail-list , heiko.stuebner@theobroma-systems.com, leobras.c@gmail.com, Rob Herring References: <7a1e2ebc-f7d8-8431-d844-41a9c36a8911@arm.com> <09cbf655-0f13-5df6-b6a9-4a6a784e211d@suse.com> <94fbb521-d045-3c2e-eeb8-4029e1f92015@suse.com> From: Alexandru Elisei Message-ID: Date: Wed, 19 May 2021 10:20:39 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <94fbb521-d045-3c2e-eeb8-4029e1f92015@suse.com> 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 Hi, On 5/19/21 8:05 AM, Qu Wenruo wrote: > > > On 2021/5/19 下午2:28, Qu Wenruo wrote: >> >> >> On 2021/5/18 下午5:09, Alexandru Elisei wrote: >>> After doing a git bisect I was able to trace the following error when booting my >>> rockpro64 v2 (rk3399 SoC) with a PCIE NVME expansion card: >> >> I'm also hitting the same problem, with a RockPi 4B board. >> >> [...] >>> [    0.393269] pci_bus 0000:01: busn_res: [bus 01-1f] end is updated to 01 >>> [    0.393311] pci 0000:00:00.0: BAR 14: no space for [mem size 0x00100000] >>> [    0.393333] pci 0000:00:00.0: BAR 14: failed to assign [mem size 0x00100000] >>> [    0.393356] pci 0000:01:00.0: BAR 0: no space for [mem size 0x00004000 64bit] >>> [    0.393375] pci 0000:01:00.0: BAR 0: failed to assign [mem size 0x00004000 >>> 64bit] >> >> The same error here. >> >>> [    0.393397] pci 0000:00:00.0: PCI bridge to [bus 01] >>> [    0.393839] pcieport 0000:00:00.0: PME: Signaling with IRQ 78 >>> [    0.394165] pcieport 0000:00:00.0: AER: enabled with IRQ 78 >>> [..] >>> >>> to the commit 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for >>> 64-bit memory addresses"). For reference, here is the dmesg output when BAR >>> reassignment works: >> >> Great thanks for the pinning down the bug, at least I can try to boot my board >> again with the patch reverted. > > Although after reverting, the kernel just BUG_ON() when alternatives try to > patch the kernel: > > [    0.175009] alternatives: patching kernel code > [    0.175640] ------------[ cut here ]------------ > [    0.176260] kernel BUG at arch/arm64/kernel/alternative.c:157! > [    0.177080] Internal error: Oops - BUG: 0 [#1] SMP > [    0.177579] Modules linked in: > [    0.177910] CPU: 0 PID: 12 Comm: migration/0 Not tainted 5.13.0-rc2-custom+ #11 > [    0.178665] Hardware name: Radxa ROCK Pi 4B (DT) > [    0.179137] Stopper: multi_cpu_stop+0x0/0x1bc <- stop_cpus.constprop.0+0x98/0xf0 > [    0.179927] pstate: 200000c5 (nzCv daIF -PAN -UAO -TCO BTYPE=--) > [    0.180546] pc : __apply_alternatives+0x21c/0x254 > [    0.181047] lr : __apply_alternatives+0x100/0x254 > [    0.181538] sp : ffff800012b0fca0 > [    0.181883] x29: ffff800012b0fca0 x28: ffff800010011128 x27: ffff80001001112c > [    0.182633] x26: ffff8000114dfec4 x25: 00000000001b0020 x24: ffff800011212368 > [    0.183377] x23: 0000000000000000 x22: ffff800011b041e6 x21: ffff800012b0fd20 > [    0.184125] x20: ffff800012b0fd30 x19: ffff8000114dfec8 x18: 0000000000000030 > [    0.184872] x17: 0000000025e8361a x16: 000000004a78ba60 x15: ffff0000020e1cd0 > [    0.185623] x14: ffff8000118dc548 x13: 0000000000000000 x12: 000000000000016b > [    0.186370] x11: 0000000000000079 x10: ffff80001198c548 x9 : 00000000ffffe000 > [    0.187115] x8 : 80000000ffffe000 x7 : ffff8000118dc548 x6 : 0000000000005ffd > [    0.187861] x5 : 0000000000000000 x4 : ffff8000100242b0 x3 : ffffffffffffffc0 > [    0.188606] x2 : ffff8000114fbb54 x1 : 0000000000000004 x0 : 0000000000000000 > [    0.189353] Call trace: > [    0.189612]  __apply_alternatives+0x21c/0x254 > [    0.190073]  __apply_alternatives_multi_stop+0xc4/0xdc > [    0.190610]  multi_cpu_stop+0xa8/0x1bc > [    0.191007]  cpu_stopper_thread+0xb0/0x144 > [    0.191439]  smpboot_thread_fn+0x130/0x240 > [    0.191884]  kthread+0x13c/0x140 > [    0.192226]  ret_from_fork+0x10/0x30 > [    0.192616] Code: aa1c03e1 aa1a03e0 97ffff27 17ffffb8 (d4210000) > [    0.193268] ---[ end trace d8c66e3e26751651 ]--- > [    0.193746] Kernel panic - not syncing: Oops - BUG: Fatal exception > [    0.194395] SMP: stopping secondary CPUs > [    1.361467] SMP: failed to stop secondary CPUs 0-5 > [    1.361980] Rebooting in 5 seconds.. > [    6.362979] SMP: stopping secondary CPUs > [    7.530049] SMP: failed to stop secondary CPUs 0-5 > > Is there anything special needed to boot the kernel with that offending commit > reverted? I believe this is a separate bug which is being investigated [1]. Things that I tried: 1. Reverted the offending commit from v5.13-rc2, kernel booted. 2. Checkout out tag v5.13-rc1, reverted the offending commit from v5.13-rc1, kernel hangs during boot. Didn't clean before building. 3. Did a clean and rebuild, kernel boots correctly. This seems to point at the regression [1], since cleaning was one of the workarounds reported. Another bug that I noticed is a kernel panic on shutdown, but that's unrelated to the offending commit (I'll try to bisect it when I have the time). [1] https://lkml.org/lkml/2021/5/17/2284 Thanks, Alex > > Thanks, > Qu > >> >> Thanks, >> Qu >> >>> >>> [..] >>> [    0.307381] rockchip-pcie f8000000.pcie: host bridge /pcie@f8000000 ranges: >>> [    0.307445] rockchip-pcie f8000000.pcie:      MEM >>> 0x00fa000000..0x00fbdfffff -> >>> 0x00fa000000 >>> [    0.307481] rockchip-pcie f8000000.pcie:       IO >>> 0x00fbe00000..0x00fbefffff -> >>> 0x00fbe00000 >>> [    0.308406] rockchip-pcie f8000000.pcie: supply vpcie1v8 not found, using >>> dummy >>> regulator >>> [    0.308534] rockchip-pcie f8000000.pcie: supply vpcie0v9 not found, using >>> dummy >>> regulator >>> [    0.374676] rockchip-pcie f8000000.pcie: PCI host bridge to bus 0000:00 >>> [    0.374701] pci_bus 0000:00: root bus resource [bus 00-1f] >>> [    0.374723] pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff] >>> [    0.374746] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus >>> address [0xfbe00000-0xfbefffff]) >>> [    0.374808] pci 0000:00:00.0: [1d87:0100] type 01 class 0x060400 >>> [    0.374943] pci 0000:00:00.0: supports D1 >>> [    0.374961] pci 0000:00:00.0: PME# supported from D0 D1 D3hot >>> [    0.379473] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), >>> reconfiguring >>> [    0.379712] pci 0000:01:00.0: [144d:a808] type 00 class 0x010802 >>> [    0.379815] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit] >>> [    0.379997] pci 0000:01:00.0: Max Payload Size set to 256 (was 128, max 256) >>> [    0.380607] pci 0000:01:00.0: 8.000 Gb/s available PCIe bandwidth, limited by >>> 2.5 GT/s PCIe x4 link at 0000:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe >>> x4 link) >>> [    0.394239] pci_bus 0000:01: busn_res: [bus 01-1f] end is updated to 01 >>> [    0.394285] pci 0000:00:00.0: BAR 14: assigned [mem 0xfa000000-0xfa0fffff] >>> [    0.394312] pci 0000:01:00.0: BAR 0: assigned [mem 0xfa000000-0xfa003fff >>> 64bit] >>> [    0.394374] pci 0000:00:00.0: PCI bridge to [bus 01] >>> [    0.394395] pci 0000:00:00.0:   bridge window [mem 0xfa000000-0xfa0fffff] >>> [    0.394569] pcieport 0000:00:00.0: enabling device (0000 -> 0002) >>> [    0.394845] pcieport 0000:00:00.0: PME: Signaling with IRQ 78 >>> [    0.395153] pcieport 0000:00:00.0: AER: enabled with IRQ 78 >>> [..] >>> >>> And here is the output of lspci when BAR reassignment works: >>> >>> # lspci -v >>> 00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd RK3399 PCI Express Root >>> Port (prog-if 00 [Normal decode]) >>>      Flags: bus master, fast devsel, latency 0, IRQ 78 >>>      Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 >>>      I/O behind bridge: 00000000-00000fff [size=4K] >>>      Memory behind bridge: fa000000-fa0fffff [size=1M] >>>      Prefetchable memory behind bridge: 00000000-000fffff [size=1M] >>>      Capabilities: [80] Power Management version 3 >>>      Capabilities: [90] MSI: Enable+ Count=1/1 Maskable+ 64bit+ >>>      Capabilities: [b0] MSI-X: Enable- Count=1 Masked- >>>      Capabilities: [c0] Express Root Port (Slot+), MSI 00 >>>      Capabilities: [100] Advanced Error Reporting >>>      Capabilities: [274] Transaction Processing Hints >>>      Kernel driver in use: pcieport >>> lspci: Unable to load libkmod resources: error -2 >>> >>> 01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD >>> Controller SM981/PM981/PM983 (prog-if 02 [NVM Express]) >>>      Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 >>>      Flags: bus master, fast devsel, latency 0, IRQ 77, NUMA node 0 >>>      Memory at fa000000 (64-bit, non-prefetchable) [size=16K] >>>      Capabilities: [40] Power Management version 3 >>>      Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+ >>>      Capabilities: [70] Express Endpoint, MSI 00 >>>      Capabilities: [b0] MSI-X: Enable+ Count=33 Masked- >>>      Capabilities: [100] Advanced Error Reporting >>>      Capabilities: [148] Device Serial Number 00-00-00-00-00-00-00-00 >>>      Capabilities: [158] Power Budgeting >>>      Capabilities: [168] Secondary PCI Express >>>      Capabilities: [188] Latency Tolerance Reporting >>>      Capabilities: [190] L1 PM Substates >>>      Kernel driver in use: nvme >>> >>> I can provide more information if needed (the board is sitting on my desk) and I >>> can help with testing the fix. >>> >>> Thanks, >>> >>> Alex >>> >>> >>> _______________________________________________ >>> linux-arm-kernel mailing list >>> linux-arm-kernel@lists.infradead.org >>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>> >> >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > 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.6 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,URIBL_BLOCKED,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 29743C433B4 for ; Wed, 19 May 2021 09:20:29 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 86AB7610E9 for ; Wed, 19 May 2021 09:20:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 86AB7610E9 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-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; 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=/vX4PhIt9FuFf1ZjCy8ZUiCf8WsbjxsXTrNYHsdXJFI=; b=fURUGXw5hFpOBf75Tpcy6ArJo e3fUDZD8SyYYOkTewPdLt2Sy+IPq6Xb8XlEz1n3iysF8KMiy8K2/vS3aIwix2PXKANbRcvhxswVCs 6LL87nqbsFAtftiy9AwgXo7cIpk4KJMtABRaAYXAqPYhVlE/H1k5F9+mRdowwXgx6Y6g1sB+gEAId CRzBWlzrKbFhmXDZAgsW2HmSQ8KvmcHk8HIgx0wOaenrLyUJKZXGGuiOjjvMguf/pVACgPJcGfzqK UkgpBoPZmpaxnCsQG1W5WuV029Ns1p3wwkr3Q/bW8Foq4Yw6V2pPD/bYND2Ji+wQBl2+g9C1FiigO vx5bYK0pQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ljINK-003QTL-EH; Wed, 19 May 2021 09:20:22 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljIN6-003QNo-4Z; Wed, 19 May 2021 09:20:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:To: Subject:Sender:Reply-To:Cc:Content-ID:Content-Description; bh=3nEuITFDEmlcYNfKcI3IUnJWhorXALKN/L5JB0Cexz8=; b=gDJvNKo1pAuqHo0sItj5Otixpo rhESo9f2vQMckghW+usAbrmQ5njXAjmswZ1lO07zP+5W8ekY/elK5rXxikSi7e85JmQPVU0xO5PtF bD/jzMdE43qKkqlFm1rzpVAPXvIeZH6ueqhraBtQ+XT23WLPMAe0EkP3RybmkCBXlqF5Al83G6dCB rmegb7j24/zqFgzzSEPoKL4guVRkLu4j4g5L9MceA5Jy8RNodb3p8qdPiHnAIK3ormBi5+gEOS0Tg NpD34hOG/4z8FJyDd8tsln1zXSX6WCgpIdrb9K94j30HFEE0z5gTRF4loVadO0nE86RbI/IN5kgM0 uBr83pYA==; Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ljIN2-00FJWo-Ei; Wed, 19 May 2021 09:20:06 +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 97957101E; Wed, 19 May 2021 02:19:59 -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 9C3D83F73D; Wed, 19 May 2021 02:19:58 -0700 (PDT) Subject: Re: [BUG] rockpro64: PCI BAR reassignment broken by commit 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses") To: Qu Wenruo , Linux Kernel Mailing List , linux-rockchip@lists.infradead.org, arm-mail-list , heiko.stuebner@theobroma-systems.com, leobras.c@gmail.com, Rob Herring References: <7a1e2ebc-f7d8-8431-d844-41a9c36a8911@arm.com> <09cbf655-0f13-5df6-b6a9-4a6a784e211d@suse.com> <94fbb521-d045-3c2e-eeb8-4029e1f92015@suse.com> From: Alexandru Elisei Message-ID: Date: Wed, 19 May 2021 10:20:39 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <94fbb521-d045-3c2e-eeb8-4029e1f92015@suse.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210519_022004_619098_94249FA2 X-CRM114-Status: GOOD ( 28.23 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGksCgpPbiA1LzE5LzIxIDg6MDUgQU0sIFF1IFdlbnJ1byB3cm90ZToKPgo+Cj4gT24gMjAyMS81 LzE5IOS4i+WNiDI6MjgsIFF1IFdlbnJ1byB3cm90ZToKPj4KPj4KPj4gT24gMjAyMS81LzE4IOS4 i+WNiDU6MDksIEFsZXhhbmRydSBFbGlzZWkgd3JvdGU6Cj4+PiBBZnRlciBkb2luZyBhIGdpdCBi aXNlY3QgSSB3YXMgYWJsZSB0byB0cmFjZSB0aGUgZm9sbG93aW5nIGVycm9yIHdoZW4gYm9vdGlu ZyBteQo+Pj4gcm9ja3BybzY0IHYyIChyazMzOTkgU29DKSB3aXRoIGEgUENJRSBOVk1FIGV4cGFu c2lvbiBjYXJkOgo+Pgo+PiBJJ20gYWxzbyBoaXR0aW5nIHRoZSBzYW1lIHByb2JsZW0sIHdpdGgg YSBSb2NrUGkgNEIgYm9hcmQuCj4+Cj4+IFsuLi5dCj4+PiBbwqDCoMKgIDAuMzkzMjY5XSBwY2lf YnVzIDAwMDA6MDE6IGJ1c25fcmVzOiBbYnVzIDAxLTFmXSBlbmQgaXMgdXBkYXRlZCB0byAwMQo+ Pj4gW8KgwqDCoCAwLjM5MzMxMV0gcGNpIDAwMDA6MDA6MDAuMDogQkFSIDE0OiBubyBzcGFjZSBm b3IgW21lbSBzaXplIDB4MDAxMDAwMDBdCj4+PiBbwqDCoMKgIDAuMzkzMzMzXSBwY2kgMDAwMDow MDowMC4wOiBCQVIgMTQ6IGZhaWxlZCB0byBhc3NpZ24gW21lbSBzaXplIDB4MDAxMDAwMDBdCj4+ PiBbwqDCoMKgIDAuMzkzMzU2XSBwY2kgMDAwMDowMTowMC4wOiBCQVIgMDogbm8gc3BhY2UgZm9y IFttZW0gc2l6ZSAweDAwMDA0MDAwIDY0Yml0XQo+Pj4gW8KgwqDCoCAwLjM5MzM3NV0gcGNpIDAw MDA6MDE6MDAuMDogQkFSIDA6IGZhaWxlZCB0byBhc3NpZ24gW21lbSBzaXplIDB4MDAwMDQwMDAK Pj4+IDY0Yml0XQo+Pgo+PiBUaGUgc2FtZSBlcnJvciBoZXJlLgo+Pgo+Pj4gW8KgwqDCoCAwLjM5 MzM5N10gcGNpIDAwMDA6MDA6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAxXQo+Pj4gW8KgwqDC oCAwLjM5MzgzOV0gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBQTUU6IFNpZ25hbGluZyB3aXRoIElS USA3OAo+Pj4gW8KgwqDCoCAwLjM5NDE2NV0gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBBRVI6IGVu YWJsZWQgd2l0aCBJUlEgNzgKPj4+IFsuLl0KPj4+Cj4+PiB0byB0aGUgY29tbWl0IDlkNTdlNjFi ZjcyMyAoIm9mL3BjaTogQWRkIElPUkVTT1VSQ0VfTUVNXzY0IHRvIHJlc291cmNlIGZsYWdzIGZv cgo+Pj4gNjQtYml0IG1lbW9yeSBhZGRyZXNzZXMiKS4gRm9yIHJlZmVyZW5jZSwgaGVyZSBpcyB0 aGUgZG1lc2cgb3V0cHV0IHdoZW4gQkFSCj4+PiByZWFzc2lnbm1lbnQgd29ya3M6Cj4+Cj4+IEdy ZWF0IHRoYW5rcyBmb3IgdGhlIHBpbm5pbmcgZG93biB0aGUgYnVnLCBhdCBsZWFzdCBJIGNhbiB0 cnkgdG8gYm9vdCBteSBib2FyZAo+PiBhZ2FpbiB3aXRoIHRoZSBwYXRjaCByZXZlcnRlZC4KPgo+ IEFsdGhvdWdoIGFmdGVyIHJldmVydGluZywgdGhlIGtlcm5lbCBqdXN0IEJVR19PTigpIHdoZW4g YWx0ZXJuYXRpdmVzIHRyeSB0bwo+IHBhdGNoIHRoZSBrZXJuZWw6Cj4KPiBbwqDCoMKgIDAuMTc1 MDA5XSBhbHRlcm5hdGl2ZXM6IHBhdGNoaW5nIGtlcm5lbCBjb2RlCj4gW8KgwqDCoCAwLjE3NTY0 MF0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCj4gW8KgwqDCoCAwLjE3NjI2 MF0ga2VybmVsIEJVRyBhdCBhcmNoL2FybTY0L2tlcm5lbC9hbHRlcm5hdGl2ZS5jOjE1NyEKPiBb wqDCoMKgIDAuMTc3MDgwXSBJbnRlcm5hbCBlcnJvcjogT29wcyAtIEJVRzogMCBbIzFdIFNNUAo+ IFvCoMKgwqAgMC4xNzc1NzldIE1vZHVsZXMgbGlua2VkIGluOgo+IFvCoMKgwqAgMC4xNzc5MTBd IENQVTogMCBQSUQ6IDEyIENvbW06IG1pZ3JhdGlvbi8wIE5vdCB0YWludGVkIDUuMTMuMC1yYzIt Y3VzdG9tKyAjMTEKPiBbwqDCoMKgIDAuMTc4NjY1XSBIYXJkd2FyZSBuYW1lOiBSYWR4YSBST0NL IFBpIDRCIChEVCkKPiBbwqDCoMKgIDAuMTc5MTM3XSBTdG9wcGVyOiBtdWx0aV9jcHVfc3RvcCsw eDAvMHgxYmMgPC0gc3RvcF9jcHVzLmNvbnN0cHJvcC4wKzB4OTgvMHhmMAo+IFvCoMKgwqAgMC4x Nzk5MjddIHBzdGF0ZTogMjAwMDAwYzUgKG56Q3YgZGFJRiAtUEFOIC1VQU8gLVRDTyBCVFlQRT0t LSkKPiBbwqDCoMKgIDAuMTgwNTQ2XSBwYyA6IF9fYXBwbHlfYWx0ZXJuYXRpdmVzKzB4MjFjLzB4 MjU0Cj4gW8KgwqDCoCAwLjE4MTA0N10gbHIgOiBfX2FwcGx5X2FsdGVybmF0aXZlcysweDEwMC8w eDI1NAo+IFvCoMKgwqAgMC4xODE1MzhdIHNwIDogZmZmZjgwMDAxMmIwZmNhMAo+IFvCoMKgwqAg MC4xODE4ODNdIHgyOTogZmZmZjgwMDAxMmIwZmNhMCB4Mjg6IGZmZmY4MDAwMTAwMTExMjggeDI3 OiBmZmZmODAwMDEwMDExMTJjCj4gW8KgwqDCoCAwLjE4MjYzM10geDI2OiBmZmZmODAwMDExNGRm ZWM0IHgyNTogMDAwMDAwMDAwMDFiMDAyMCB4MjQ6IGZmZmY4MDAwMTEyMTIzNjgKPiBbwqDCoMKg IDAuMTgzMzc3XSB4MjM6IDAwMDAwMDAwMDAwMDAwMDAgeDIyOiBmZmZmODAwMDExYjA0MWU2IHgy MTogZmZmZjgwMDAxMmIwZmQyMAo+IFvCoMKgwqAgMC4xODQxMjVdIHgyMDogZmZmZjgwMDAxMmIw ZmQzMCB4MTk6IGZmZmY4MDAwMTE0ZGZlYzggeDE4OiAwMDAwMDAwMDAwMDAwMDMwCj4gW8KgwqDC oCAwLjE4NDg3Ml0geDE3OiAwMDAwMDAwMDI1ZTgzNjFhIHgxNjogMDAwMDAwMDA0YTc4YmE2MCB4 MTU6IGZmZmYwMDAwMDIwZTFjZDAKPiBbwqDCoMKgIDAuMTg1NjIzXSB4MTQ6IGZmZmY4MDAwMTE4 ZGM1NDggeDEzOiAwMDAwMDAwMDAwMDAwMDAwIHgxMjogMDAwMDAwMDAwMDAwMDE2Ygo+IFvCoMKg wqAgMC4xODYzNzBdIHgxMTogMDAwMDAwMDAwMDAwMDA3OSB4MTA6IGZmZmY4MDAwMTE5OGM1NDgg eDkgOiAwMDAwMDAwMGZmZmZlMDAwCj4gW8KgwqDCoCAwLjE4NzExNV0geDggOiA4MDAwMDAwMGZm ZmZlMDAwIHg3IDogZmZmZjgwMDAxMThkYzU0OCB4NiA6IDAwMDAwMDAwMDAwMDVmZmQKPiBbwqDC oMKgIDAuMTg3ODYxXSB4NSA6IDAwMDAwMDAwMDAwMDAwMDAgeDQgOiBmZmZmODAwMDEwMDI0MmIw IHgzIDogZmZmZmZmZmZmZmZmZmZjMAo+IFvCoMKgwqAgMC4xODg2MDZdIHgyIDogZmZmZjgwMDAx MTRmYmI1NCB4MSA6IDAwMDAwMDAwMDAwMDAwMDQgeDAgOiAwMDAwMDAwMDAwMDAwMDAwCj4gW8Kg wqDCoCAwLjE4OTM1M10gQ2FsbCB0cmFjZToKPiBbwqDCoMKgIDAuMTg5NjEyXcKgIF9fYXBwbHlf YWx0ZXJuYXRpdmVzKzB4MjFjLzB4MjU0Cj4gW8KgwqDCoCAwLjE5MDA3M13CoCBfX2FwcGx5X2Fs dGVybmF0aXZlc19tdWx0aV9zdG9wKzB4YzQvMHhkYwo+IFvCoMKgwqAgMC4xOTA2MTBdwqAgbXVs dGlfY3B1X3N0b3ArMHhhOC8weDFiYwo+IFvCoMKgwqAgMC4xOTEwMDddwqAgY3B1X3N0b3BwZXJf dGhyZWFkKzB4YjAvMHgxNDQKPiBbwqDCoMKgIDAuMTkxNDM5XcKgIHNtcGJvb3RfdGhyZWFkX2Zu KzB4MTMwLzB4MjQwCj4gW8KgwqDCoCAwLjE5MTg4NF3CoCBrdGhyZWFkKzB4MTNjLzB4MTQwCj4g W8KgwqDCoCAwLjE5MjIyNl3CoCByZXRfZnJvbV9mb3JrKzB4MTAvMHgzMAo+IFvCoMKgwqAgMC4x OTI2MTZdIENvZGU6IGFhMWMwM2UxIGFhMWEwM2UwIDk3ZmZmZjI3IDE3ZmZmZmI4IChkNDIxMDAw MCkKPiBbwqDCoMKgIDAuMTkzMjY4XSAtLS1bIGVuZCB0cmFjZSBkOGM2NmUzZTI2NzUxNjUxIF0t LS0KPiBbwqDCoMKgIDAuMTkzNzQ2XSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogT29wcyAt IEJVRzogRmF0YWwgZXhjZXB0aW9uCj4gW8KgwqDCoCAwLjE5NDM5NV0gU01QOiBzdG9wcGluZyBz ZWNvbmRhcnkgQ1BVcwo+IFvCoMKgwqAgMS4zNjE0NjddIFNNUDogZmFpbGVkIHRvIHN0b3Agc2Vj b25kYXJ5IENQVXMgMC01Cj4gW8KgwqDCoCAxLjM2MTk4MF0gUmVib290aW5nIGluIDUgc2Vjb25k cy4uCj4gW8KgwqDCoCA2LjM2Mjk3OV0gU01QOiBzdG9wcGluZyBzZWNvbmRhcnkgQ1BVcwo+IFvC oMKgwqAgNy41MzAwNDldIFNNUDogZmFpbGVkIHRvIHN0b3Agc2Vjb25kYXJ5IENQVXMgMC01Cj4K PiBJcyB0aGVyZSBhbnl0aGluZyBzcGVjaWFsIG5lZWRlZCB0byBib290IHRoZSBrZXJuZWwgd2l0 aCB0aGF0IG9mZmVuZGluZyBjb21taXQKPiByZXZlcnRlZD8KCkkgYmVsaWV2ZSB0aGlzIGlzIGEg c2VwYXJhdGUgYnVnIHdoaWNoIGlzIGJlaW5nIGludmVzdGlnYXRlZCBbMV0uCgpUaGluZ3MgdGhh dCBJIHRyaWVkOgoKMS4gUmV2ZXJ0ZWQgdGhlIG9mZmVuZGluZyBjb21taXQgZnJvbSB2NS4xMy1y YzIsIGtlcm5lbCBib290ZWQuCgoyLiBDaGVja291dCBvdXQgdGFnIHY1LjEzLXJjMSwgcmV2ZXJ0 ZWQgdGhlIG9mZmVuZGluZyBjb21taXQgZnJvbSB2NS4xMy1yYzEsCmtlcm5lbCBoYW5ncyBkdXJp bmcgYm9vdC4gRGlkbid0IGNsZWFuIGJlZm9yZSBidWlsZGluZy4KCjMuIERpZCBhIGNsZWFuIGFu ZCByZWJ1aWxkLCBrZXJuZWwgYm9vdHMgY29ycmVjdGx5LiBUaGlzIHNlZW1zIHRvIHBvaW50IGF0 IHRoZQpyZWdyZXNzaW9uIFsxXSwgc2luY2UgY2xlYW5pbmcgd2FzIG9uZSBvZiB0aGUgd29ya2Fy b3VuZHMgcmVwb3J0ZWQuCgpBbm90aGVyIGJ1ZyB0aGF0IEkgbm90aWNlZCBpcyBhIGtlcm5lbCBw YW5pYyBvbiBzaHV0ZG93biwgYnV0IHRoYXQncyB1bnJlbGF0ZWQgdG8KdGhlIG9mZmVuZGluZyBj b21taXQgKEknbGwgdHJ5IHRvIGJpc2VjdCBpdCB3aGVuIEkgaGF2ZSB0aGUgdGltZSkuCgpbMV0g aHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMjEvNS8xNy8yMjg0CgpUaGFua3MsCgpBbGV4Cgo+Cj4g VGhhbmtzLAo+IFF1Cj4KPj4KPj4gVGhhbmtzLAo+PiBRdQo+Pgo+Pj4KPj4+IFsuLl0KPj4+IFvC oMKgwqAgMC4zMDczODFdIHJvY2tjaGlwLXBjaWUgZjgwMDAwMDAucGNpZTogaG9zdCBicmlkZ2Ug L3BjaWVAZjgwMDAwMDAgcmFuZ2VzOgo+Pj4gW8KgwqDCoCAwLjMwNzQ0NV0gcm9ja2NoaXAtcGNp ZSBmODAwMDAwMC5wY2llOsKgwqDCoMKgwqAgTUVNCj4+PiAweDAwZmEwMDAwMDAuLjB4MDBmYmRm ZmZmZiAtPgo+Pj4gMHgwMGZhMDAwMDAwCj4+PiBbwqDCoMKgIDAuMzA3NDgxXSByb2NrY2hpcC1w Y2llIGY4MDAwMDAwLnBjaWU6wqDCoMKgwqDCoMKgIElPCj4+PiAweDAwZmJlMDAwMDAuLjB4MDBm YmVmZmZmZiAtPgo+Pj4gMHgwMGZiZTAwMDAwCj4+PiBbwqDCoMKgIDAuMzA4NDA2XSByb2NrY2hp cC1wY2llIGY4MDAwMDAwLnBjaWU6IHN1cHBseSB2cGNpZTF2OCBub3QgZm91bmQsIHVzaW5nCj4+ PiBkdW1teQo+Pj4gcmVndWxhdG9yCj4+PiBbwqDCoMKgIDAuMzA4NTM0XSByb2NrY2hpcC1wY2ll IGY4MDAwMDAwLnBjaWU6IHN1cHBseSB2cGNpZTB2OSBub3QgZm91bmQsIHVzaW5nCj4+PiBkdW1t eQo+Pj4gcmVndWxhdG9yCj4+PiBbwqDCoMKgIDAuMzc0Njc2XSByb2NrY2hpcC1wY2llIGY4MDAw MDAwLnBjaWU6IFBDSSBob3N0IGJyaWRnZSB0byBidXMgMDAwMDowMAo+Pj4gW8KgwqDCoCAwLjM3 NDcwMV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbYnVzIDAwLTFmXQo+Pj4g W8KgwqDCoCAwLjM3NDcyM10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVt IDB4ZmEwMDAwMDAtMHhmYmRmZmZmZl0KPj4+IFvCoMKgwqAgMC4zNzQ3NDZdIHBjaV9idXMgMDAw MDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvwqAgMHgwMDAwLTB4ZmZmZmZdIChidXMKPj4+IGFk ZHJlc3MgWzB4ZmJlMDAwMDAtMHhmYmVmZmZmZl0pCj4+PiBbwqDCoMKgIDAuMzc0ODA4XSBwY2kg MDAwMDowMDowMC4wOiBbMWQ4NzowMTAwXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwCj4+PiBbwqDC oMKgIDAuMzc0OTQzXSBwY2kgMDAwMDowMDowMC4wOiBzdXBwb3J0cyBEMQo+Pj4gW8KgwqDCoCAw LjM3NDk2MV0gcGNpIDAwMDA6MDA6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEMSBEM2hv dAo+Pj4gW8KgwqDCoCAwLjM3OTQ3M10gcGNpIDAwMDA6MDA6MDAuMDogYnJpZGdlIGNvbmZpZ3Vy YXRpb24gaW52YWxpZCAoW2J1cyAwMC0wMF0pLAo+Pj4gcmVjb25maWd1cmluZwo+Pj4gW8KgwqDC oCAwLjM3OTcxMl0gcGNpIDAwMDA6MDE6MDAuMDogWzE0NGQ6YTgwOF0gdHlwZSAwMCBjbGFzcyAw eDAxMDgwMgo+Pj4gW8KgwqDCoCAwLjM3OTgxNV0gcGNpIDAwMDA6MDE6MDAuMDogcmVnIDB4MTA6 IFttZW0gMHgwMDAwMDAwMC0weDAwMDAzZmZmIDY0Yml0XQo+Pj4gW8KgwqDCoCAwLjM3OTk5N10g cGNpIDAwMDA6MDE6MDAuMDogTWF4IFBheWxvYWQgU2l6ZSBzZXQgdG8gMjU2ICh3YXMgMTI4LCBt YXggMjU2KQo+Pj4gW8KgwqDCoCAwLjM4MDYwN10gcGNpIDAwMDA6MDE6MDAuMDogOC4wMDAgR2Iv cyBhdmFpbGFibGUgUENJZSBiYW5kd2lkdGgsIGxpbWl0ZWQgYnkKPj4+IDIuNSBHVC9zIFBDSWUg eDQgbGluayBhdCAwMDAwOjAwOjAwLjAgKGNhcGFibGUgb2YgMzEuNTA0IEdiL3Mgd2l0aCA4LjAg R1QvcyBQQ0llCj4+PiB4NCBsaW5rKQo+Pj4gW8KgwqDCoCAwLjM5NDIzOV0gcGNpX2J1cyAwMDAw OjAxOiBidXNuX3JlczogW2J1cyAwMS0xZl0gZW5kIGlzIHVwZGF0ZWQgdG8gMDEKPj4+IFvCoMKg wqAgMC4zOTQyODVdIHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAxNDogYXNzaWduZWQgW21lbSAweGZh MDAwMDAwLTB4ZmEwZmZmZmZdCj4+PiBbwqDCoMKgIDAuMzk0MzEyXSBwY2kgMDAwMDowMTowMC4w OiBCQVIgMDogYXNzaWduZWQgW21lbSAweGZhMDAwMDAwLTB4ZmEwMDNmZmYKPj4+IDY0Yml0XQo+ Pj4gW8KgwqDCoCAwLjM5NDM3NF0gcGNpIDAwMDA6MDA6MDAuMDogUENJIGJyaWRnZSB0byBbYnVz IDAxXQo+Pj4gW8KgwqDCoCAwLjM5NDM5NV0gcGNpIDAwMDA6MDA6MDAuMDrCoMKgIGJyaWRnZSB3 aW5kb3cgW21lbSAweGZhMDAwMDAwLTB4ZmEwZmZmZmZdCj4+PiBbwqDCoMKgIDAuMzk0NTY5XSBw Y2llcG9ydCAwMDAwOjAwOjAwLjA6IGVuYWJsaW5nIGRldmljZSAoMDAwMCAtPiAwMDAyKQo+Pj4g W8KgwqDCoCAwLjM5NDg0NV0gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBQTUU6IFNpZ25hbGluZyB3 aXRoIElSUSA3OAo+Pj4gW8KgwqDCoCAwLjM5NTE1M10gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBB RVI6IGVuYWJsZWQgd2l0aCBJUlEgNzgKPj4+IFsuLl0KPj4+Cj4+PiBBbmQgaGVyZSBpcyB0aGUg b3V0cHV0IG9mIGxzcGNpIHdoZW4gQkFSIHJlYXNzaWdubWVudCB3b3JrczoKPj4+Cj4+PiAjIGxz cGNpIC12Cj4+PiAwMDowMC4wIFBDSSBicmlkZ2U6IEZ1emhvdSBSb2NrY2hpcCBFbGVjdHJvbmlj cyBDby4sIEx0ZCBSSzMzOTkgUENJIEV4cHJlc3MgUm9vdAo+Pj4gUG9ydCAocHJvZy1pZiAwMCBb Tm9ybWFsIGRlY29kZV0pCj4+PiDCoMKgwqDCoCBGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZz ZWwsIGxhdGVuY3kgMCwgSVJRIDc4Cj4+PiDCoMKgwqDCoCBCdXM6IHByaW1hcnk9MDAsIHNlY29u ZGFyeT0wMSwgc3Vib3JkaW5hdGU9MDEsIHNlYy1sYXRlbmN5PTAKPj4+IMKgwqDCoMKgIEkvTyBi ZWhpbmQgYnJpZGdlOiAwMDAwMDAwMC0wMDAwMGZmZiBbc2l6ZT00S10KPj4+IMKgwqDCoMKgIE1l bW9yeSBiZWhpbmQgYnJpZGdlOiBmYTAwMDAwMC1mYTBmZmZmZiBbc2l6ZT0xTV0KPj4+IMKgwqDC oMKgIFByZWZldGNoYWJsZSBtZW1vcnkgYmVoaW5kIGJyaWRnZTogMDAwMDAwMDAtMDAwZmZmZmYg W3NpemU9MU1dCj4+PiDCoMKgwqDCoCBDYXBhYmlsaXRpZXM6IFs4MF0gUG93ZXIgTWFuYWdlbWVu dCB2ZXJzaW9uIDMKPj4+IMKgwqDCoMKgIENhcGFiaWxpdGllczogWzkwXSBNU0k6IEVuYWJsZSsg Q291bnQ9MS8xIE1hc2thYmxlKyA2NGJpdCsKPj4+IMKgwqDCoMKgIENhcGFiaWxpdGllczogW2Iw XSBNU0ktWDogRW5hYmxlLSBDb3VudD0xIE1hc2tlZC0KPj4+IMKgwqDCoMKgIENhcGFiaWxpdGll czogW2MwXSBFeHByZXNzIFJvb3QgUG9ydCAoU2xvdCspLCBNU0kgMDAKPj4+IMKgwqDCoMKgIENh cGFiaWxpdGllczogWzEwMF0gQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5nCj4+PiDCoMKgwqDCoCBD YXBhYmlsaXRpZXM6IFsyNzRdIFRyYW5zYWN0aW9uIFByb2Nlc3NpbmcgSGludHMKPj4+IMKgwqDC oMKgIEtlcm5lbCBkcml2ZXIgaW4gdXNlOiBwY2llcG9ydAo+Pj4gbHNwY2k6IFVuYWJsZSB0byBs b2FkIGxpYmttb2QgcmVzb3VyY2VzOiBlcnJvciAtMgo+Pj4KPj4+IDAxOjAwLjAgTm9uLVZvbGF0 aWxlIG1lbW9yeSBjb250cm9sbGVyOiBTYW1zdW5nIEVsZWN0cm9uaWNzIENvIEx0ZCBOVk1lIFNT RAo+Pj4gQ29udHJvbGxlciBTTTk4MS9QTTk4MS9QTTk4MyAocHJvZy1pZiAwMiBbTlZNIEV4cHJl c3NdKQo+Pj4gwqDCoMKgwqAgU3Vic3lzdGVtOiBTYW1zdW5nIEVsZWN0cm9uaWNzIENvIEx0ZCBO Vk1lIFNTRCBDb250cm9sbGVyIFNNOTgxL1BNOTgxL1BNOTgzCj4+PiDCoMKgwqDCoCBGbGFnczog YnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDc3LCBOVU1BIG5vZGUgMAo+ Pj4gwqDCoMKgwqAgTWVtb3J5IGF0IGZhMDAwMDAwICg2NC1iaXQsIG5vbi1wcmVmZXRjaGFibGUp IFtzaXplPTE2S10KPj4+IMKgwqDCoMKgIENhcGFiaWxpdGllczogWzQwXSBQb3dlciBNYW5hZ2Vt ZW50IHZlcnNpb24gMwo+Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBbNTBdIE1TSTogRW5hYmxl LSBDb3VudD0xLzEgTWFza2FibGUtIDY0Yml0Kwo+Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBb NzBdIEV4cHJlc3MgRW5kcG9pbnQsIE1TSSAwMAo+Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBb YjBdIE1TSS1YOiBFbmFibGUrIENvdW50PTMzIE1hc2tlZC0KPj4+IMKgwqDCoMKgIENhcGFiaWxp dGllczogWzEwMF0gQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5nCj4+PiDCoMKgwqDCoCBDYXBhYmls aXRpZXM6IFsxNDhdIERldmljZSBTZXJpYWwgTnVtYmVyIDAwLTAwLTAwLTAwLTAwLTAwLTAwLTAw Cj4+PiDCoMKgwqDCoCBDYXBhYmlsaXRpZXM6IFsxNThdIFBvd2VyIEJ1ZGdldGluZyA8Pz4KPj4+ IMKgwqDCoMKgIENhcGFiaWxpdGllczogWzE2OF0gU2Vjb25kYXJ5IFBDSSBFeHByZXNzCj4+PiDC oMKgwqDCoCBDYXBhYmlsaXRpZXM6IFsxODhdIExhdGVuY3kgVG9sZXJhbmNlIFJlcG9ydGluZwo+ Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBbMTkwXSBMMSBQTSBTdWJzdGF0ZXMKPj4+IMKgwqDC oMKgIEtlcm5lbCBkcml2ZXIgaW4gdXNlOiBudm1lCj4+Pgo+Pj4gSSBjYW4gcHJvdmlkZSBtb3Jl IGluZm9ybWF0aW9uIGlmIG5lZWRlZCAodGhlIGJvYXJkIGlzIHNpdHRpbmcgb24gbXkgZGVzaykg YW5kIEkKPj4+IGNhbiBoZWxwIHdpdGggdGVzdGluZyB0aGUgZml4Lgo+Pj4KPj4+IFRoYW5rcywK Pj4+Cj4+PiBBbGV4Cj4+Pgo+Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+PiBsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAo+Pj4gbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4+PiBodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKPj4+Cj4+Cj4+Cj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0Cj4+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwo+PiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1yb2NrY2hpcAo= 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.6 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,URIBL_BLOCKED,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 76A73C433ED for ; Wed, 19 May 2021 09:22:56 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 E7489611B0 for ; Wed, 19 May 2021 09:22:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E7489611B0 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=desiato.20200630; 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=0pRjrUoVIBAReE7L+t7ZgfIfrbeUAlvw3m0pPsqm2/0=; b=P4lgKAE31QbEfHCczgnHfByVs hEDwxaXENA7txa0ebyihbE+2IP2vKDaLMoZ6jNdEA/Og8v/xNtsHp/uZJhq1ehLVkgPMr0dIn65SG V5mYtO5hN4ikYF8Xo+1ak/YB0YgBl6eW0x6L+O8BsO3iuP1FCkXeTP3ZJE0dLuO9UlvaeSDu3Xk9E b9bO6ehjjZ7JPS7Ml8Knq/Ad5F3yx6XDYghFVgG3EWcF/thUM/MDYeuqHhsJSgcbddKfsse655xcj le3Ll6OyVCQU6rjkiQ7dymvGfQjDm5eYq3cP+xyIHGHS/JDUVRLRZhPHZSRg/fr1bScC/y7yUW8mC IsXOoYGag==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ljIN9-003QPo-K7; Wed, 19 May 2021 09:20:11 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljIN6-003QNo-4Z; Wed, 19 May 2021 09:20:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:To: Subject:Sender:Reply-To:Cc:Content-ID:Content-Description; bh=3nEuITFDEmlcYNfKcI3IUnJWhorXALKN/L5JB0Cexz8=; b=gDJvNKo1pAuqHo0sItj5Otixpo rhESo9f2vQMckghW+usAbrmQ5njXAjmswZ1lO07zP+5W8ekY/elK5rXxikSi7e85JmQPVU0xO5PtF bD/jzMdE43qKkqlFm1rzpVAPXvIeZH6ueqhraBtQ+XT23WLPMAe0EkP3RybmkCBXlqF5Al83G6dCB rmegb7j24/zqFgzzSEPoKL4guVRkLu4j4g5L9MceA5Jy8RNodb3p8qdPiHnAIK3ormBi5+gEOS0Tg NpD34hOG/4z8FJyDd8tsln1zXSX6WCgpIdrb9K94j30HFEE0z5gTRF4loVadO0nE86RbI/IN5kgM0 uBr83pYA==; Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ljIN2-00FJWo-Ei; Wed, 19 May 2021 09:20:06 +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 97957101E; Wed, 19 May 2021 02:19:59 -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 9C3D83F73D; Wed, 19 May 2021 02:19:58 -0700 (PDT) Subject: Re: [BUG] rockpro64: PCI BAR reassignment broken by commit 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses") To: Qu Wenruo , Linux Kernel Mailing List , linux-rockchip@lists.infradead.org, arm-mail-list , heiko.stuebner@theobroma-systems.com, leobras.c@gmail.com, Rob Herring References: <7a1e2ebc-f7d8-8431-d844-41a9c36a8911@arm.com> <09cbf655-0f13-5df6-b6a9-4a6a784e211d@suse.com> <94fbb521-d045-3c2e-eeb8-4029e1f92015@suse.com> From: Alexandru Elisei Message-ID: Date: Wed, 19 May 2021 10:20:39 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <94fbb521-d045-3c2e-eeb8-4029e1f92015@suse.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210519_022004_619098_94249FA2 X-CRM114-Status: GOOD ( 28.23 ) 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 SGksCgpPbiA1LzE5LzIxIDg6MDUgQU0sIFF1IFdlbnJ1byB3cm90ZToKPgo+Cj4gT24gMjAyMS81 LzE5IOS4i+WNiDI6MjgsIFF1IFdlbnJ1byB3cm90ZToKPj4KPj4KPj4gT24gMjAyMS81LzE4IOS4 i+WNiDU6MDksIEFsZXhhbmRydSBFbGlzZWkgd3JvdGU6Cj4+PiBBZnRlciBkb2luZyBhIGdpdCBi aXNlY3QgSSB3YXMgYWJsZSB0byB0cmFjZSB0aGUgZm9sbG93aW5nIGVycm9yIHdoZW4gYm9vdGlu ZyBteQo+Pj4gcm9ja3BybzY0IHYyIChyazMzOTkgU29DKSB3aXRoIGEgUENJRSBOVk1FIGV4cGFu c2lvbiBjYXJkOgo+Pgo+PiBJJ20gYWxzbyBoaXR0aW5nIHRoZSBzYW1lIHByb2JsZW0sIHdpdGgg YSBSb2NrUGkgNEIgYm9hcmQuCj4+Cj4+IFsuLi5dCj4+PiBbwqDCoMKgIDAuMzkzMjY5XSBwY2lf YnVzIDAwMDA6MDE6IGJ1c25fcmVzOiBbYnVzIDAxLTFmXSBlbmQgaXMgdXBkYXRlZCB0byAwMQo+ Pj4gW8KgwqDCoCAwLjM5MzMxMV0gcGNpIDAwMDA6MDA6MDAuMDogQkFSIDE0OiBubyBzcGFjZSBm b3IgW21lbSBzaXplIDB4MDAxMDAwMDBdCj4+PiBbwqDCoMKgIDAuMzkzMzMzXSBwY2kgMDAwMDow MDowMC4wOiBCQVIgMTQ6IGZhaWxlZCB0byBhc3NpZ24gW21lbSBzaXplIDB4MDAxMDAwMDBdCj4+ PiBbwqDCoMKgIDAuMzkzMzU2XSBwY2kgMDAwMDowMTowMC4wOiBCQVIgMDogbm8gc3BhY2UgZm9y IFttZW0gc2l6ZSAweDAwMDA0MDAwIDY0Yml0XQo+Pj4gW8KgwqDCoCAwLjM5MzM3NV0gcGNpIDAw MDA6MDE6MDAuMDogQkFSIDA6IGZhaWxlZCB0byBhc3NpZ24gW21lbSBzaXplIDB4MDAwMDQwMDAK Pj4+IDY0Yml0XQo+Pgo+PiBUaGUgc2FtZSBlcnJvciBoZXJlLgo+Pgo+Pj4gW8KgwqDCoCAwLjM5 MzM5N10gcGNpIDAwMDA6MDA6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAxXQo+Pj4gW8KgwqDC oCAwLjM5MzgzOV0gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBQTUU6IFNpZ25hbGluZyB3aXRoIElS USA3OAo+Pj4gW8KgwqDCoCAwLjM5NDE2NV0gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBBRVI6IGVu YWJsZWQgd2l0aCBJUlEgNzgKPj4+IFsuLl0KPj4+Cj4+PiB0byB0aGUgY29tbWl0IDlkNTdlNjFi ZjcyMyAoIm9mL3BjaTogQWRkIElPUkVTT1VSQ0VfTUVNXzY0IHRvIHJlc291cmNlIGZsYWdzIGZv cgo+Pj4gNjQtYml0IG1lbW9yeSBhZGRyZXNzZXMiKS4gRm9yIHJlZmVyZW5jZSwgaGVyZSBpcyB0 aGUgZG1lc2cgb3V0cHV0IHdoZW4gQkFSCj4+PiByZWFzc2lnbm1lbnQgd29ya3M6Cj4+Cj4+IEdy ZWF0IHRoYW5rcyBmb3IgdGhlIHBpbm5pbmcgZG93biB0aGUgYnVnLCBhdCBsZWFzdCBJIGNhbiB0 cnkgdG8gYm9vdCBteSBib2FyZAo+PiBhZ2FpbiB3aXRoIHRoZSBwYXRjaCByZXZlcnRlZC4KPgo+ IEFsdGhvdWdoIGFmdGVyIHJldmVydGluZywgdGhlIGtlcm5lbCBqdXN0IEJVR19PTigpIHdoZW4g YWx0ZXJuYXRpdmVzIHRyeSB0bwo+IHBhdGNoIHRoZSBrZXJuZWw6Cj4KPiBbwqDCoMKgIDAuMTc1 MDA5XSBhbHRlcm5hdGl2ZXM6IHBhdGNoaW5nIGtlcm5lbCBjb2RlCj4gW8KgwqDCoCAwLjE3NTY0 MF0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCj4gW8KgwqDCoCAwLjE3NjI2 MF0ga2VybmVsIEJVRyBhdCBhcmNoL2FybTY0L2tlcm5lbC9hbHRlcm5hdGl2ZS5jOjE1NyEKPiBb wqDCoMKgIDAuMTc3MDgwXSBJbnRlcm5hbCBlcnJvcjogT29wcyAtIEJVRzogMCBbIzFdIFNNUAo+ IFvCoMKgwqAgMC4xNzc1NzldIE1vZHVsZXMgbGlua2VkIGluOgo+IFvCoMKgwqAgMC4xNzc5MTBd IENQVTogMCBQSUQ6IDEyIENvbW06IG1pZ3JhdGlvbi8wIE5vdCB0YWludGVkIDUuMTMuMC1yYzIt Y3VzdG9tKyAjMTEKPiBbwqDCoMKgIDAuMTc4NjY1XSBIYXJkd2FyZSBuYW1lOiBSYWR4YSBST0NL IFBpIDRCIChEVCkKPiBbwqDCoMKgIDAuMTc5MTM3XSBTdG9wcGVyOiBtdWx0aV9jcHVfc3RvcCsw eDAvMHgxYmMgPC0gc3RvcF9jcHVzLmNvbnN0cHJvcC4wKzB4OTgvMHhmMAo+IFvCoMKgwqAgMC4x Nzk5MjddIHBzdGF0ZTogMjAwMDAwYzUgKG56Q3YgZGFJRiAtUEFOIC1VQU8gLVRDTyBCVFlQRT0t LSkKPiBbwqDCoMKgIDAuMTgwNTQ2XSBwYyA6IF9fYXBwbHlfYWx0ZXJuYXRpdmVzKzB4MjFjLzB4 MjU0Cj4gW8KgwqDCoCAwLjE4MTA0N10gbHIgOiBfX2FwcGx5X2FsdGVybmF0aXZlcysweDEwMC8w eDI1NAo+IFvCoMKgwqAgMC4xODE1MzhdIHNwIDogZmZmZjgwMDAxMmIwZmNhMAo+IFvCoMKgwqAg MC4xODE4ODNdIHgyOTogZmZmZjgwMDAxMmIwZmNhMCB4Mjg6IGZmZmY4MDAwMTAwMTExMjggeDI3 OiBmZmZmODAwMDEwMDExMTJjCj4gW8KgwqDCoCAwLjE4MjYzM10geDI2OiBmZmZmODAwMDExNGRm ZWM0IHgyNTogMDAwMDAwMDAwMDFiMDAyMCB4MjQ6IGZmZmY4MDAwMTEyMTIzNjgKPiBbwqDCoMKg IDAuMTgzMzc3XSB4MjM6IDAwMDAwMDAwMDAwMDAwMDAgeDIyOiBmZmZmODAwMDExYjA0MWU2IHgy MTogZmZmZjgwMDAxMmIwZmQyMAo+IFvCoMKgwqAgMC4xODQxMjVdIHgyMDogZmZmZjgwMDAxMmIw ZmQzMCB4MTk6IGZmZmY4MDAwMTE0ZGZlYzggeDE4OiAwMDAwMDAwMDAwMDAwMDMwCj4gW8KgwqDC oCAwLjE4NDg3Ml0geDE3OiAwMDAwMDAwMDI1ZTgzNjFhIHgxNjogMDAwMDAwMDA0YTc4YmE2MCB4 MTU6IGZmZmYwMDAwMDIwZTFjZDAKPiBbwqDCoMKgIDAuMTg1NjIzXSB4MTQ6IGZmZmY4MDAwMTE4 ZGM1NDggeDEzOiAwMDAwMDAwMDAwMDAwMDAwIHgxMjogMDAwMDAwMDAwMDAwMDE2Ygo+IFvCoMKg wqAgMC4xODYzNzBdIHgxMTogMDAwMDAwMDAwMDAwMDA3OSB4MTA6IGZmZmY4MDAwMTE5OGM1NDgg eDkgOiAwMDAwMDAwMGZmZmZlMDAwCj4gW8KgwqDCoCAwLjE4NzExNV0geDggOiA4MDAwMDAwMGZm ZmZlMDAwIHg3IDogZmZmZjgwMDAxMThkYzU0OCB4NiA6IDAwMDAwMDAwMDAwMDVmZmQKPiBbwqDC oMKgIDAuMTg3ODYxXSB4NSA6IDAwMDAwMDAwMDAwMDAwMDAgeDQgOiBmZmZmODAwMDEwMDI0MmIw IHgzIDogZmZmZmZmZmZmZmZmZmZjMAo+IFvCoMKgwqAgMC4xODg2MDZdIHgyIDogZmZmZjgwMDAx MTRmYmI1NCB4MSA6IDAwMDAwMDAwMDAwMDAwMDQgeDAgOiAwMDAwMDAwMDAwMDAwMDAwCj4gW8Kg wqDCoCAwLjE4OTM1M10gQ2FsbCB0cmFjZToKPiBbwqDCoMKgIDAuMTg5NjEyXcKgIF9fYXBwbHlf YWx0ZXJuYXRpdmVzKzB4MjFjLzB4MjU0Cj4gW8KgwqDCoCAwLjE5MDA3M13CoCBfX2FwcGx5X2Fs dGVybmF0aXZlc19tdWx0aV9zdG9wKzB4YzQvMHhkYwo+IFvCoMKgwqAgMC4xOTA2MTBdwqAgbXVs dGlfY3B1X3N0b3ArMHhhOC8weDFiYwo+IFvCoMKgwqAgMC4xOTEwMDddwqAgY3B1X3N0b3BwZXJf dGhyZWFkKzB4YjAvMHgxNDQKPiBbwqDCoMKgIDAuMTkxNDM5XcKgIHNtcGJvb3RfdGhyZWFkX2Zu KzB4MTMwLzB4MjQwCj4gW8KgwqDCoCAwLjE5MTg4NF3CoCBrdGhyZWFkKzB4MTNjLzB4MTQwCj4g W8KgwqDCoCAwLjE5MjIyNl3CoCByZXRfZnJvbV9mb3JrKzB4MTAvMHgzMAo+IFvCoMKgwqAgMC4x OTI2MTZdIENvZGU6IGFhMWMwM2UxIGFhMWEwM2UwIDk3ZmZmZjI3IDE3ZmZmZmI4IChkNDIxMDAw MCkKPiBbwqDCoMKgIDAuMTkzMjY4XSAtLS1bIGVuZCB0cmFjZSBkOGM2NmUzZTI2NzUxNjUxIF0t LS0KPiBbwqDCoMKgIDAuMTkzNzQ2XSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogT29wcyAt IEJVRzogRmF0YWwgZXhjZXB0aW9uCj4gW8KgwqDCoCAwLjE5NDM5NV0gU01QOiBzdG9wcGluZyBz ZWNvbmRhcnkgQ1BVcwo+IFvCoMKgwqAgMS4zNjE0NjddIFNNUDogZmFpbGVkIHRvIHN0b3Agc2Vj b25kYXJ5IENQVXMgMC01Cj4gW8KgwqDCoCAxLjM2MTk4MF0gUmVib290aW5nIGluIDUgc2Vjb25k cy4uCj4gW8KgwqDCoCA2LjM2Mjk3OV0gU01QOiBzdG9wcGluZyBzZWNvbmRhcnkgQ1BVcwo+IFvC oMKgwqAgNy41MzAwNDldIFNNUDogZmFpbGVkIHRvIHN0b3Agc2Vjb25kYXJ5IENQVXMgMC01Cj4K PiBJcyB0aGVyZSBhbnl0aGluZyBzcGVjaWFsIG5lZWRlZCB0byBib290IHRoZSBrZXJuZWwgd2l0 aCB0aGF0IG9mZmVuZGluZyBjb21taXQKPiByZXZlcnRlZD8KCkkgYmVsaWV2ZSB0aGlzIGlzIGEg c2VwYXJhdGUgYnVnIHdoaWNoIGlzIGJlaW5nIGludmVzdGlnYXRlZCBbMV0uCgpUaGluZ3MgdGhh dCBJIHRyaWVkOgoKMS4gUmV2ZXJ0ZWQgdGhlIG9mZmVuZGluZyBjb21taXQgZnJvbSB2NS4xMy1y YzIsIGtlcm5lbCBib290ZWQuCgoyLiBDaGVja291dCBvdXQgdGFnIHY1LjEzLXJjMSwgcmV2ZXJ0 ZWQgdGhlIG9mZmVuZGluZyBjb21taXQgZnJvbSB2NS4xMy1yYzEsCmtlcm5lbCBoYW5ncyBkdXJp bmcgYm9vdC4gRGlkbid0IGNsZWFuIGJlZm9yZSBidWlsZGluZy4KCjMuIERpZCBhIGNsZWFuIGFu ZCByZWJ1aWxkLCBrZXJuZWwgYm9vdHMgY29ycmVjdGx5LiBUaGlzIHNlZW1zIHRvIHBvaW50IGF0 IHRoZQpyZWdyZXNzaW9uIFsxXSwgc2luY2UgY2xlYW5pbmcgd2FzIG9uZSBvZiB0aGUgd29ya2Fy b3VuZHMgcmVwb3J0ZWQuCgpBbm90aGVyIGJ1ZyB0aGF0IEkgbm90aWNlZCBpcyBhIGtlcm5lbCBw YW5pYyBvbiBzaHV0ZG93biwgYnV0IHRoYXQncyB1bnJlbGF0ZWQgdG8KdGhlIG9mZmVuZGluZyBj b21taXQgKEknbGwgdHJ5IHRvIGJpc2VjdCBpdCB3aGVuIEkgaGF2ZSB0aGUgdGltZSkuCgpbMV0g aHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMjEvNS8xNy8yMjg0CgpUaGFua3MsCgpBbGV4Cgo+Cj4g VGhhbmtzLAo+IFF1Cj4KPj4KPj4gVGhhbmtzLAo+PiBRdQo+Pgo+Pj4KPj4+IFsuLl0KPj4+IFvC oMKgwqAgMC4zMDczODFdIHJvY2tjaGlwLXBjaWUgZjgwMDAwMDAucGNpZTogaG9zdCBicmlkZ2Ug L3BjaWVAZjgwMDAwMDAgcmFuZ2VzOgo+Pj4gW8KgwqDCoCAwLjMwNzQ0NV0gcm9ja2NoaXAtcGNp ZSBmODAwMDAwMC5wY2llOsKgwqDCoMKgwqAgTUVNCj4+PiAweDAwZmEwMDAwMDAuLjB4MDBmYmRm ZmZmZiAtPgo+Pj4gMHgwMGZhMDAwMDAwCj4+PiBbwqDCoMKgIDAuMzA3NDgxXSByb2NrY2hpcC1w Y2llIGY4MDAwMDAwLnBjaWU6wqDCoMKgwqDCoMKgIElPCj4+PiAweDAwZmJlMDAwMDAuLjB4MDBm YmVmZmZmZiAtPgo+Pj4gMHgwMGZiZTAwMDAwCj4+PiBbwqDCoMKgIDAuMzA4NDA2XSByb2NrY2hp cC1wY2llIGY4MDAwMDAwLnBjaWU6IHN1cHBseSB2cGNpZTF2OCBub3QgZm91bmQsIHVzaW5nCj4+ PiBkdW1teQo+Pj4gcmVndWxhdG9yCj4+PiBbwqDCoMKgIDAuMzA4NTM0XSByb2NrY2hpcC1wY2ll IGY4MDAwMDAwLnBjaWU6IHN1cHBseSB2cGNpZTB2OSBub3QgZm91bmQsIHVzaW5nCj4+PiBkdW1t eQo+Pj4gcmVndWxhdG9yCj4+PiBbwqDCoMKgIDAuMzc0Njc2XSByb2NrY2hpcC1wY2llIGY4MDAw MDAwLnBjaWU6IFBDSSBob3N0IGJyaWRnZSB0byBidXMgMDAwMDowMAo+Pj4gW8KgwqDCoCAwLjM3 NDcwMV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbYnVzIDAwLTFmXQo+Pj4g W8KgwqDCoCAwLjM3NDcyM10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVt IDB4ZmEwMDAwMDAtMHhmYmRmZmZmZl0KPj4+IFvCoMKgwqAgMC4zNzQ3NDZdIHBjaV9idXMgMDAw MDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvwqAgMHgwMDAwLTB4ZmZmZmZdIChidXMKPj4+IGFk ZHJlc3MgWzB4ZmJlMDAwMDAtMHhmYmVmZmZmZl0pCj4+PiBbwqDCoMKgIDAuMzc0ODA4XSBwY2kg MDAwMDowMDowMC4wOiBbMWQ4NzowMTAwXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwCj4+PiBbwqDC oMKgIDAuMzc0OTQzXSBwY2kgMDAwMDowMDowMC4wOiBzdXBwb3J0cyBEMQo+Pj4gW8KgwqDCoCAw LjM3NDk2MV0gcGNpIDAwMDA6MDA6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEMSBEM2hv dAo+Pj4gW8KgwqDCoCAwLjM3OTQ3M10gcGNpIDAwMDA6MDA6MDAuMDogYnJpZGdlIGNvbmZpZ3Vy YXRpb24gaW52YWxpZCAoW2J1cyAwMC0wMF0pLAo+Pj4gcmVjb25maWd1cmluZwo+Pj4gW8KgwqDC oCAwLjM3OTcxMl0gcGNpIDAwMDA6MDE6MDAuMDogWzE0NGQ6YTgwOF0gdHlwZSAwMCBjbGFzcyAw eDAxMDgwMgo+Pj4gW8KgwqDCoCAwLjM3OTgxNV0gcGNpIDAwMDA6MDE6MDAuMDogcmVnIDB4MTA6 IFttZW0gMHgwMDAwMDAwMC0weDAwMDAzZmZmIDY0Yml0XQo+Pj4gW8KgwqDCoCAwLjM3OTk5N10g cGNpIDAwMDA6MDE6MDAuMDogTWF4IFBheWxvYWQgU2l6ZSBzZXQgdG8gMjU2ICh3YXMgMTI4LCBt YXggMjU2KQo+Pj4gW8KgwqDCoCAwLjM4MDYwN10gcGNpIDAwMDA6MDE6MDAuMDogOC4wMDAgR2Iv cyBhdmFpbGFibGUgUENJZSBiYW5kd2lkdGgsIGxpbWl0ZWQgYnkKPj4+IDIuNSBHVC9zIFBDSWUg eDQgbGluayBhdCAwMDAwOjAwOjAwLjAgKGNhcGFibGUgb2YgMzEuNTA0IEdiL3Mgd2l0aCA4LjAg R1QvcyBQQ0llCj4+PiB4NCBsaW5rKQo+Pj4gW8KgwqDCoCAwLjM5NDIzOV0gcGNpX2J1cyAwMDAw OjAxOiBidXNuX3JlczogW2J1cyAwMS0xZl0gZW5kIGlzIHVwZGF0ZWQgdG8gMDEKPj4+IFvCoMKg wqAgMC4zOTQyODVdIHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAxNDogYXNzaWduZWQgW21lbSAweGZh MDAwMDAwLTB4ZmEwZmZmZmZdCj4+PiBbwqDCoMKgIDAuMzk0MzEyXSBwY2kgMDAwMDowMTowMC4w OiBCQVIgMDogYXNzaWduZWQgW21lbSAweGZhMDAwMDAwLTB4ZmEwMDNmZmYKPj4+IDY0Yml0XQo+ Pj4gW8KgwqDCoCAwLjM5NDM3NF0gcGNpIDAwMDA6MDA6MDAuMDogUENJIGJyaWRnZSB0byBbYnVz IDAxXQo+Pj4gW8KgwqDCoCAwLjM5NDM5NV0gcGNpIDAwMDA6MDA6MDAuMDrCoMKgIGJyaWRnZSB3 aW5kb3cgW21lbSAweGZhMDAwMDAwLTB4ZmEwZmZmZmZdCj4+PiBbwqDCoMKgIDAuMzk0NTY5XSBw Y2llcG9ydCAwMDAwOjAwOjAwLjA6IGVuYWJsaW5nIGRldmljZSAoMDAwMCAtPiAwMDAyKQo+Pj4g W8KgwqDCoCAwLjM5NDg0NV0gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBQTUU6IFNpZ25hbGluZyB3 aXRoIElSUSA3OAo+Pj4gW8KgwqDCoCAwLjM5NTE1M10gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBB RVI6IGVuYWJsZWQgd2l0aCBJUlEgNzgKPj4+IFsuLl0KPj4+Cj4+PiBBbmQgaGVyZSBpcyB0aGUg b3V0cHV0IG9mIGxzcGNpIHdoZW4gQkFSIHJlYXNzaWdubWVudCB3b3JrczoKPj4+Cj4+PiAjIGxz cGNpIC12Cj4+PiAwMDowMC4wIFBDSSBicmlkZ2U6IEZ1emhvdSBSb2NrY2hpcCBFbGVjdHJvbmlj cyBDby4sIEx0ZCBSSzMzOTkgUENJIEV4cHJlc3MgUm9vdAo+Pj4gUG9ydCAocHJvZy1pZiAwMCBb Tm9ybWFsIGRlY29kZV0pCj4+PiDCoMKgwqDCoCBGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZz ZWwsIGxhdGVuY3kgMCwgSVJRIDc4Cj4+PiDCoMKgwqDCoCBCdXM6IHByaW1hcnk9MDAsIHNlY29u ZGFyeT0wMSwgc3Vib3JkaW5hdGU9MDEsIHNlYy1sYXRlbmN5PTAKPj4+IMKgwqDCoMKgIEkvTyBi ZWhpbmQgYnJpZGdlOiAwMDAwMDAwMC0wMDAwMGZmZiBbc2l6ZT00S10KPj4+IMKgwqDCoMKgIE1l bW9yeSBiZWhpbmQgYnJpZGdlOiBmYTAwMDAwMC1mYTBmZmZmZiBbc2l6ZT0xTV0KPj4+IMKgwqDC oMKgIFByZWZldGNoYWJsZSBtZW1vcnkgYmVoaW5kIGJyaWRnZTogMDAwMDAwMDAtMDAwZmZmZmYg W3NpemU9MU1dCj4+PiDCoMKgwqDCoCBDYXBhYmlsaXRpZXM6IFs4MF0gUG93ZXIgTWFuYWdlbWVu dCB2ZXJzaW9uIDMKPj4+IMKgwqDCoMKgIENhcGFiaWxpdGllczogWzkwXSBNU0k6IEVuYWJsZSsg Q291bnQ9MS8xIE1hc2thYmxlKyA2NGJpdCsKPj4+IMKgwqDCoMKgIENhcGFiaWxpdGllczogW2Iw XSBNU0ktWDogRW5hYmxlLSBDb3VudD0xIE1hc2tlZC0KPj4+IMKgwqDCoMKgIENhcGFiaWxpdGll czogW2MwXSBFeHByZXNzIFJvb3QgUG9ydCAoU2xvdCspLCBNU0kgMDAKPj4+IMKgwqDCoMKgIENh cGFiaWxpdGllczogWzEwMF0gQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5nCj4+PiDCoMKgwqDCoCBD YXBhYmlsaXRpZXM6IFsyNzRdIFRyYW5zYWN0aW9uIFByb2Nlc3NpbmcgSGludHMKPj4+IMKgwqDC oMKgIEtlcm5lbCBkcml2ZXIgaW4gdXNlOiBwY2llcG9ydAo+Pj4gbHNwY2k6IFVuYWJsZSB0byBs b2FkIGxpYmttb2QgcmVzb3VyY2VzOiBlcnJvciAtMgo+Pj4KPj4+IDAxOjAwLjAgTm9uLVZvbGF0 aWxlIG1lbW9yeSBjb250cm9sbGVyOiBTYW1zdW5nIEVsZWN0cm9uaWNzIENvIEx0ZCBOVk1lIFNT RAo+Pj4gQ29udHJvbGxlciBTTTk4MS9QTTk4MS9QTTk4MyAocHJvZy1pZiAwMiBbTlZNIEV4cHJl c3NdKQo+Pj4gwqDCoMKgwqAgU3Vic3lzdGVtOiBTYW1zdW5nIEVsZWN0cm9uaWNzIENvIEx0ZCBO Vk1lIFNTRCBDb250cm9sbGVyIFNNOTgxL1BNOTgxL1BNOTgzCj4+PiDCoMKgwqDCoCBGbGFnczog YnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDc3LCBOVU1BIG5vZGUgMAo+ Pj4gwqDCoMKgwqAgTWVtb3J5IGF0IGZhMDAwMDAwICg2NC1iaXQsIG5vbi1wcmVmZXRjaGFibGUp IFtzaXplPTE2S10KPj4+IMKgwqDCoMKgIENhcGFiaWxpdGllczogWzQwXSBQb3dlciBNYW5hZ2Vt ZW50IHZlcnNpb24gMwo+Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBbNTBdIE1TSTogRW5hYmxl LSBDb3VudD0xLzEgTWFza2FibGUtIDY0Yml0Kwo+Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBb NzBdIEV4cHJlc3MgRW5kcG9pbnQsIE1TSSAwMAo+Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBb YjBdIE1TSS1YOiBFbmFibGUrIENvdW50PTMzIE1hc2tlZC0KPj4+IMKgwqDCoMKgIENhcGFiaWxp dGllczogWzEwMF0gQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5nCj4+PiDCoMKgwqDCoCBDYXBhYmls aXRpZXM6IFsxNDhdIERldmljZSBTZXJpYWwgTnVtYmVyIDAwLTAwLTAwLTAwLTAwLTAwLTAwLTAw Cj4+PiDCoMKgwqDCoCBDYXBhYmlsaXRpZXM6IFsxNThdIFBvd2VyIEJ1ZGdldGluZyA8Pz4KPj4+ IMKgwqDCoMKgIENhcGFiaWxpdGllczogWzE2OF0gU2Vjb25kYXJ5IFBDSSBFeHByZXNzCj4+PiDC oMKgwqDCoCBDYXBhYmlsaXRpZXM6IFsxODhdIExhdGVuY3kgVG9sZXJhbmNlIFJlcG9ydGluZwo+ Pj4gwqDCoMKgwqAgQ2FwYWJpbGl0aWVzOiBbMTkwXSBMMSBQTSBTdWJzdGF0ZXMKPj4+IMKgwqDC oMKgIEtlcm5lbCBkcml2ZXIgaW4gdXNlOiBudm1lCj4+Pgo+Pj4gSSBjYW4gcHJvdmlkZSBtb3Jl IGluZm9ybWF0aW9uIGlmIG5lZWRlZCAodGhlIGJvYXJkIGlzIHNpdHRpbmcgb24gbXkgZGVzaykg YW5kIEkKPj4+IGNhbiBoZWxwIHdpdGggdGVzdGluZyB0aGUgZml4Lgo+Pj4KPj4+IFRoYW5rcywK Pj4+Cj4+PiBBbGV4Cj4+Pgo+Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+PiBsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAo+Pj4gbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4+PiBodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKPj4+Cj4+Cj4+Cj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0Cj4+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwo+PiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=