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 459C7C43334 for ; Tue, 19 Jul 2022 12:07:32 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=F+6MoWpqpbnxh1qIumVBhNsv55aZt+J1ttqS3oyS0y8=; b=ogw8kxW5oNlAhu KSBvB+wswwlLEt3pHn/nPuPIaqUH9UAN+5QZnFMcOPKAfSzqU76md2S/Mvu5B+eS2366oxJ6Xuh+T zcY17ED2pphBs6mlUFOxsI3VBV5CJo+AbiSER/9ZCp2NCsffGpDGiNu+SrBqrBylXI/PNeyhfRUZE 6MBivS4EsvHvN8QvFu/LFTXkfIgusBfS9eK0wcE+uevFjXed/LWpqI7MZcChSFIcfLx67vgIr/beR 8imXw6I+a5M6c+8eleqOPha3VCUPlhz8iHRaCZTBXtjZIc/rkZM/3jVrrmFoUIWGUoATixFkxRZoj Wr8gd4E5l4gweSXc9++w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oDlzZ-008XUt-77; Tue, 19 Jul 2022 12:06:21 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oDlzU-008XTO-QK for linux-arm-kernel@lists.infradead.org; Tue, 19 Jul 2022 12:06:19 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 45B206175D; Tue, 19 Jul 2022 12:06:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF6A4C341CB; Tue, 19 Jul 2022 12:06:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1658232376; bh=uwACB1yuObS8U+E/T/PUesn+NshojJNg3KPoba6GifE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=P5nrzWujzDqIndV4XVXajZPIvbUcjqKAtF6FAI5FhVGpEn7ny8uokTaD5IBVi1Lht AOh0+8o1yyA7lmyryyYP23TFBDq5QYHiRH1d3jfkQdmk5KuVNbRwTfvSj6npmSejGk X+U2W57C4AwDaUUCnb4aZcTDlwBThQ0WjrlRepIyH/nNHVBjF01oLCs33iAl/m4WUP EW9nb/MI+C2MZUIGQ2sqE4YmJoAve+kBs6EKV3LQdjvBNTaeqX0t/9wXKzjZroeU/w mXK5EIUY8ly4aDHEJxZeuLcCy+0J1qwr2KBbcim/6QL036N6nrurrzScIWYVUVWPd5 n5DAexrtujngg== Received: by pali.im (Postfix) id D46B4F3C; Tue, 19 Jul 2022 14:06:12 +0200 (CEST) Date: Tue, 19 Jul 2022 14:06:12 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Elad Nachman Cc: Ratheesh Kannoth , Tanmay Jagdale , Shijith Thotton , Arun Easi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Lorenzo Pieralisi , Thomas Petazzoni , Bjorn Helgaas , Marek =?utf-8?B?QmVow7pu?= , Remi Pommarel , Xogium , "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Bharat Bhushan , Veerasenareddy Burru , Wojciech Bartczak Subject: Re: [EXT] Re: Issues with A3720 PCIe controller driver pci-aardvark.c Message-ID: <20220719120612.eziy4magdznr6uek@pali> References: <20210723221710.wtztsrddudnxeoj3@pali> <20220216200940.fwdwk5rcb4zq6dyg@pali> <20220710112108.jegpz4khfsrb4ahd@pali> <20220719093323.nzkpe2kcibszzgzm@pali> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220719_050616_964345_68A0BC32 X-CRM114-Status: GOOD ( 55.95 ) 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 SGVsbG8gRWxhZCBhbmQgdGhhbmsgeW91IGZvciBpbmZvcm1hdGlvbiEKCkkgaGF2ZSBsb29rZWQg YXQgcmVnaXN0ZXIgMHg0MDAwMDQwOCwgYnV0IGl0IGNhbm5vdCBiZSBhY2Nlc3NlZCBmcm9tCkEz NzIwIEFSTSBBNTMgY29yZSwgYmVjYXVzZSB0aGF0IHJlZ2lzdGVyIGlzIGluIGFkZHJlc3Mgc3Bh Y2Ugb2Ygc2VjdXJlCkFSTSBDTTMgY29yZSwgdG8gd2hpY2ggTGludXgga2VybmVsIGRvZXMgbm90 IGFjY2Vzcy4KCkkgbG9va2VkIGludG8gbXkgbm90ZXMgYW5kIGJpdCA2IG9mIHJlZ2lzdGVyIDB4 NDAwMDA0MDggY29udHJvbHMgQVhJClNMVkVSUiBwcm9wYWdhdGlvbiBqdXN0IGZyb20gQkNNIHNs YXZlIHRvIENNMyBjb3JlLiBCQ00gaXMgQmFzZQpjcnlwdG9ncmFwaGljIG1vZHVsZSwgd2hpY2gg aXMgdXNlZCBieSB0aGUgc2VjdXJlIGZpcm13YXJlIHJ1bm5pbmcgb24KQ00zIGNvcmUuIFNvIGl0 IGxvb2tzIGxpa2UgaXQgaXMgaXJyZWxldmFudCB0byBBUk0gQTUzIGNvcmVzIG9uIHdoaWNoIGlz CnJ1bm5pbmcgTGludXgga2VybmVsIGFuZCB3aGljaCByZWNlaXZlIHRoZXNlIGNyYXNoZXMsIGFu ZCBhbHNvIGRvZXMgbm90CmFwcGx5IGZvciBQQ0llIEFYSSBzbGF2ZSB3aGljaCBpcyBjb25uZWN0 ZWQgQTM3MjAgU291dGggRmFicmljLgpJIGd1ZXNzIHRoYXQgcmVnaXN0ZXIgMHg0MDAwMDQwOCBj b250cm9scyBvbmx5IEZhYnJpYyBkaXJlY3RseSBjb25uZWN0ZWQKdG8gQVJNIENNMyBjb3JlLgoK U28gaXQgaXMgbmVlZGVkIHRvIGtub3cgd2hhdCBpcyBlcXVpdmFsZW50IHJlZ2lzdGVyIGZvciBB NTMgYW5kIEEzNzIwClNvdXRoIEZhYnJpYy4gT3IgcmVnaXN0ZXIgc3BlY2lmaWMgZm9yIEEzNzIw IFBDSWUgYmxvY2ssIHNvIGZvcgpVbnN1cHBvcnRlZCBSZXF1ZXN0LCBDb21wbGV0ZXIgQWJvcnQs IENvbmZpZ3VyYXRpb24gcmVxdWVzdCByZXRyeSBzdGF0dXMKYW5kIENvbXBsZXRpb24gVGltZW91 dCBkb2VzIG5vdCB0aHJvdyBBWEkgU0xWRVJSIHRvIEE1MyBjb3JlLgoKV2hvbGUgZGVzY3JpcHRp b24gb2YgZXJyYXRhIGlzIGltcG9ydGFudCBmb3Iga2VybmVsIGRldmVsb3BlcnMgLwptYWludGFp bmVycyB3aG8gd2lsbCBiZSByZXZpZXdpbmcgY29kZS4gV2UgZG8gbm90IG5lZWQgd2hvbGUgZG9j dW1lbnQsCmp1c3QgdGhhdCBvbmUgZXJyYXRhLiBJdCB3b3VsZCByZWFsbHkgaGVscCBpZiBNYXJ2 ZWxsIGNvdWxkIGdldApwZXJtaXNzaW9uIGZvciBzaGFyaW5nIHRoaXMgZXJyYXRhIGZvciBrZXJu ZWwgZGV2ZWxvcGVycy4gQmVjYXVzZSBpdCBpcwpyZWFsbHkgYSBwYWluIGlmIGV2ZXJ5IGtlcm5l bCBkZXZlbG9wZXIgaGFzIHRvIGdvIHRocm93IE5EQS9MVUxBIHByb2Nlc3MKYW5kIHdhaXQgZm9y IFNhbGVzIHRlYW0gaWYgdGhleSBhcHByb3ZlIGFjY2VzcyBvciBub3QuCgpJbiBwYXN0IGRvY3Vt ZW50YXRpb24gZm9yIE1hcnZlbGwgU29DcyB3YXMgcHVibGljIGFuZCBldmVyeSBkZXZlbG9wZXIK d2FzIGFibGUgdG8gZG93bmxvYWQgaXQgZnJvbSBtYXJ2ZWxsLmNvbSB3ZWJzaXRlIHdpdGhvdXQg cmVnaXN0cmF0aW9uLgpCdXQgbm93IGFsbCBsaW5rcyB0byBwdWJsaWMgZG9jdW1lbnRhdGlvbiBk byBub3Qgd29yayBhbnltb3JlLgpUaGFua2Z1bGx5IHdlYi5hcmNoaXZlLm9yZyBjcmVhdGVkIGJh Y2t1cCBvZiBzb21lIG9mIHRoZW0gYW5kIHRoZXkgYXJlCmxpbmtlZCBmcm9tIEtlcm5lbCBkb2N1 bWVudGF0aW9uIGZpbGU6Cmh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbGF0ZXN0L2Fy bS9tYXJ2ZWxsLmh0bWwKKHNlZSBob3cgbWFueSBkb2N1bWVudHMgd2VyZSBsb3N0Li4uKQoKQW55 d2F5LCBJIGhhdmUgYWNjZXNzIHRvIE1hcnZlbGwgcG9ydGFsIGFuZCBzb21lIEEzNzIwIGRvY3Vt ZW50cywgYnV0CmxvdCBvZiBwYXJ0cyBpbiB0aG9zZSBkb2N1bWVudHMgdG8gd2hpY2ggSSBoYXZl IGFjY2VzcyBhcmUgaW5jb21wbGV0ZQpvciByZWdpc3RlcnMgdW5kb2N1bWVudGVkLgoKU28gdG8g cmVjYXAsIHdvcmthcm91bmQgc2hvdWxkIGJlIHRvIGRpc2FibGUgb3JkZXJpbmcgY2hlY2tzIHZp YQpESVNfT1JEX0NISyBiaXQsIGFkZGluZyBEU0IgYmFycmllciB3aGVuIGVudGVyaW5nIGFhcmR2 YXJrIHN1bW1hcnkgaXJxCmhhbmRsZXIgYW5kIGlkZWFsbHkgYWxzbyBlbmFibGUgcmVsYXhlZCBv cmRlcmluZyBiaXQsIHNvIGluaXRpYXRlZAp0cmFuc2FjdGlvbnMgY291bGQgdXNlIHJlbGF4ZWQg b3JkZXJpbmcgd2hlbiByZXF1ZXN0ZWQgKGFzIHN0cm9uZwpvcmRlcmluZyBkb2VzIG5vdCB3b3Jr KS4KCk9uIFR1ZXNkYXkgMTkgSnVseSAyMDIyIDEwOjUwOjU5IEVsYWQgTmFjaG1hbiB3cm90ZToK PiBIaSBQYWxpLAo+IAo+IFJlZ2FyZGluZyB5b3VyIHJlcXVlc3QgLSB3aGlsZSBJIHVuZGVyc3Rh bmQgdGhlIG5lZWQsIEkgYW0gYm91bmQgYnkgdGhlIGludGVybmFsIHJlZ3VsYXRpb24gc2V0IGZv cnRoIGJ5IG15IGVtcGxveWVyLgo+IFBhc3Npbmcgb2YgYW55IGRvY3VtZW50IG11c3QgYnkgZG9u ZSB2aWEgdGhlIE1hcnZlbGwgU3VwcG9ydCBzaXRlIGZvbGxvd2luZyBhY2NvdW50IGNyZWF0aW9u IHdpdGggdGhlIHByb3BlciBOREEgYW5kIExVTEEgKExpbWl0ZWQgVXNlIExpY2Vuc2UgQWdyZWVt ZW50KSBpbiBwbGFjZS4KPiBVbmZvcnR1bmF0ZWx5IEkgZG8gbm90IGhhdmUgdGhlIHBvd2VyIHRv IGJ5cGFzcyB0aGlzIGludGVybmFsLCBoYXJkIHJlcXVpcmVtZW50Lgo+IEFueW9uZSBuZWVkaW5n IHRoZXNlIGRvY3VtZW50cyBzaG91bGQgYXBwbHkgZm9yIGEgTWFydmVsbCBzdXBwb3J0IHNpdGUg YWNjb3VudC4KPiBJIGNhbiB0cnkgdG8gZXhwZWRpdGUgcmVxdWVzdCBpbnRlcm5hbGx5IG9yIGlm IGFuIGFjY291bnQgaXMgc2V0IGluIHBsYWNlLCByZXF1ZXN0IG9uIHlvdXIgYmVoYWxmIGFjY2Vz cyB0byBBcmFtZGEgMzd4eCBkb2N1bWVudHMuCj4gVGhlIGZpbmFsIGRlY2lzaW9uIGlzIG9mIHRo ZSBNYXJ2ZWxsIFN1cHBvcnQgYW5kIHNhbGVzLgo+IAo+IFJlZ2FyZGluZyBBWEkgU0xWRVJSLCB0 aGlzIGlzIHRoZSBwcm9wYWdhdGlvbiBvZiB0aGUgZm9sbG93aW5nIFBDSWUgZXJyb3JzOiBVbnN1 cHBvcnRlZCBSZXF1ZXN0LCBDb21wbGV0ZXIgQWJvcnQsIENvbmZpZ3VyYXRpb24gcmVxdWVzdCBy ZXRyeSBzdGF0dXMgYW5kIENvbXBsZXRpb24gVGltZW91dC4KPiAKPiBUbyBwcmV2ZW50IFNMVkVS UiBnZW5lcmF0ZWQgZm9yIG91dC1vZi1yYW5nZSBlcnJvcnMsIGNsZWFyIGJpdCA2ICgweDQwKSBv ZiByZWdpc3RlciAweDQwMDAwNDA4IChwaHlzaWNhbCBhZGRyZXNzKS4KPiAKPiBSZWdhcmRpbmcg b3JkZXJpbmcgbW9kZWwsIEVycmF0dW0gaXMgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZmluYWwgSFcg YmVoYXZpb3Igd2hpY2ggZGV2aWF0ZXMgZnJvbSB0aGUgZGVzaWduLgo+IFRoZSBkZXNpZ24gd2Fz IG1lYW50IHRvIHN1cHBvcnQgc3Ryb25nIG9yZGVyaW5nLCB1bmZvcnR1bmF0ZWx5IGR1ZSB0byBz b21lIGtpbmQgb2YgbWlzLWltcGxlbWVudGF0aW9uLCB0aGlzIGZlYXR1cmUgZG9lcyBub3Qgd29y ayBhcyBkZXNpZ25lZC4gVGhlIGVycmF0dW0gaXMgZGVzaWduZWQgdG8gcHJvdmlkZSBhIHdvcmth cm91bmQsIHdoaWNoIHBlcmhhcHMgaXMgbm90IHBlcmZlY3QgKHdoaWNoIHdoeSB5b3UgYXJlIGNv bmZ1c2VkIGFzIHRvIHdoYXQgb3JkZXJpbmcgbW9kZWwgaXMgc3VwcG9ydGVkKSwgYnV0IGlzIHRo ZSBiZXN0IGF2YWlsYWJsZSB3aXRoIHRoZSBhY3R1YWwgcGh5c2ljYWwgSFcgYmVoYXZpb3IuCj4g Cj4gUmVnYXJkaW5nIHRoZSBSZWxheGVkIG9yZGVyaW5nIGJpdCB5b3UgaGF2ZSBkZXNjcmliZWQs IHRoaXMgYml0IG9ubHkgY29udHJvbHMgd2hldGhlciB0aGUgcmVsYXhlZCBvcmRlcmluZyBiaXQg Y2FuIGJlIHNldCBpbiB0aGUgYXR0cmlidXRlIGZpZWxkcyBvZiB0aGUgdHJhbnNhY3Rpb25zIGlu aXRpYXRlZCBieSBpdC4gCj4gSSBhZ3JlZSwgaG93ZXZlciwgdGhhdCB0byBiZSBmdWxseSBjb2hl cmVudCBpbiB0aGUgZHJpdmVyIHNvZnR3YXJlIGRlc2lnbiB3aXRoIHRoZSB3b3JrYXJvdW5kIGlt cGxlbWVudGF0aW9uLCBJIHdvdWxkIHNldCB0aGlzIGJpdCwgYWx0aG91Z2ggaXQgaXMgbm90IHJl cXVpcmVkIGJ5IHRoZSBFcnJhdHVtIHdvcmthcm91bmQuCj4gCj4gUmVnYXJkaW5nIHRoZSBtZW1v cnkgYmFycmllciwgeW91IHVuZGVyc3Rvb2QgbWUgcGVyZmVjdGx5LiBJIHRoaW5rIERTQiBzaG91 bGQgYmUgZXhlY3V0ZWQgYnkgdGhlIEFhcmR2YXJrIElSUSBoYW5kbGVyIGJlZm9yZSBpbnZva2lu ZyB0aGUgUENJIEVQIElSUSBkcml2ZXIgaGFuZGxlci4KPiAKPiBFbGFkLgo+IAo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4g Cj4gU2VudDogVHVlc2RheSwgSnVseSAxOSwgMjAyMiAxMjozMyBQTQo+IFRvOiBFbGFkIE5hY2ht YW4gPGVuYWNobWFuQG1hcnZlbGwuY29tPgo+IENjOiBSYXRoZWVzaCBLYW5ub3RoIDxya2Fubm90 aEBtYXJ2ZWxsLmNvbT47IFRhbm1heSBKYWdkYWxlIDx0YW5tYXlAbWFydmVsbC5jb20+OyBTaGlq aXRoIFRob3R0b24gPHN0aG90dG9uQG1hcnZlbGwuY29tPjsgQXJ1biBFYXNpIDxhZWFzaUBtYXJ2 ZWxsLmNvbT47IEtyenlzenRvZiBXaWxjennFhHNraSA8a3dAbGludXguY29tPjsgTG9yZW56byBQ aWVyYWxpc2kgPGxvcmVuem8ucGllcmFsaXNpQGFybS5jb20+OyBUaG9tYXMgUGV0YXp6b25pIDx0 aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29tPjsgQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29v Z2xlLmNvbT47IE1hcmVrIEJlaMO6biA8a2FiZWxAa2VybmVsLm9yZz47IFJlbWkgUG9tbWFyZWwg PHJlcGtAdHJpcGxlZmF1Lmx0PjsgWG9naXVtIDxjb250YWN0QHhvZ2l1bS5tZT47IGxpbnV4LXBj aUB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsgQmhhcmF0IEJodXNoYW4gPGJiaHVzaGFuMkBt YXJ2ZWxsLmNvbT47IFZlZXJhc2VuYXJlZGR5IEJ1cnJ1IDx2YnVycnVAbWFydmVsbC5jb20+OyBX b2pjaWVjaCBCYXJ0Y3phayA8d2JhcnRjemFrQG1hcnZlbGwuY29tPgo+IFN1YmplY3Q6IFJlOiBb RVhUXSBSZTogSXNzdWVzIHdpdGggQTM3MjAgUENJZSBjb250cm9sbGVyIGRyaXZlciBwY2ktYWFy ZHZhcmsuYwo+IAo+IEhlbGxvIEVsYWQhCj4gCj4gVGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91 ciByZXNwb25zZSEgVG9nZXRoZXIgd2l0aCBLcnp5c3p0b2Ygd2Ugd2VyZSB1bmFibGUgdG8gZ2V0 IGFueSByZXNwb25zZSByZWdhcmRpbmcgdGhpcyBpc3N1ZSBmb3IgbW9yZSB0aGFuIHllYXIuCj4g Cj4gSSB3b3VsZCBraW5kbHkgYXNrIGlmIHlvdS9NYXJ2ZWxsIGNvdWxkIHB1Ymxpc2ggZGVzY3Jp cHRpb24gb2YgdGhpcyBlcnJhdGEgdG8gTGludXgga2VybmVsIGRldmVsb3BlcnMsIHNvIG1vcmUg a2VybmVsIGRldmVsb3BlcnMgY2FuIGxvb2sgYXQgaXQgYW5kIHRyeSB0byBpbXBsZW1lbnQgd29y a2Fyb3VuZHMuCj4gCj4gVG9nZXRoZXIgd2l0aCBLcnp5c3p0b2Ygd2UgaGF2ZSByZWFsbHkgYW4g aXNzdWUgdG8gcmV0cmlldmUgYW55IGtpbmQgb2YgZG9jdW1lbnRhdGlvbiBvciB1c2VyIGd1aWRl IGZvciBBcm1hZGEgMzcyMCBlcnJhdGFzL2J1Z3MuCj4gCj4gUmVzdCBvZiBteSBjb21tZW50cyBJ J20gcHV0dGluZyBpbmxpbmUgYmVsb3cuCj4gCj4gT24gU3VuZGF5IDE3IEp1bHkgMjAyMiAwOTo0 NzoxNCBFbGFkIE5hY2htYW4gd3JvdGU6Cj4gPiBIaSBQYWxpLAo+ID4gCj4gPiBDYW4geW91IHBs ZWFzZSBpbmRpY2F0ZSB3aGF0IGlzIHRoZSBIVyBzb3VyY2UgKGUuZy4gd2hpY2ggcmVnaXN0ZXIg aW4gdGhlIFBDSWUgY29udHJvbGxlcikgYml0cyBpcyB0cmFuc2xhdGVkIHRvIHRoZSBmYXRhbCBh Ym9ydD8KPiAKPiBJIG9ic2VydmVkIHRoaXMgZmF0YWwgYWJvcnQgb24gQ1BVIHdoZW4gZW5kcG9p bnQgUENJZSBjYXJkIHNlbnQgaW50ZXJydXB0IHRvIEEzNzIwIFBDSWUgY29udHJvbGxlciBhbmQg aW50ZXJydXB0IGhhbmRsZXIgaW4gZHJpdmVyIGZvciBlbmRwb2ludCBjYXJkIGRpZCBQQ0llIG1l bW9yeSB3cml0ZSB0byBQQ0llIGNhcmQgbWVtb3J5IHNwYWNlLgo+IAo+IFdyaXRpbmcgdG8gUENJ ZSBhZGRyZXNzIHJhbmdlIGZvciBQQ0llIE1FTSBvZiBlbmRwb2ludCBjYXJkIGNhdXNlIHRoYXQK PiBBMzcyMCBQQ0llIGNvbnRyb2xsZXIgc2VuZHMgZmF0YWwgdW5yZWNvdmVyYWJsZSBlcnJvciB0 byBDUFUuCj4gCj4gSGVyZSBpcyB0aGUgY3Jhc2hsb2cgZnJvbSBtZWRpYXRlayB3aWZpIGNhcmQg d2hpY2ggSSBjYXB0dXJlZCB5ZWFyIGFnby4KPiAKPiBbICAgNzEuNDU3MDA3XSBJbnRlcm5hbCBl cnJvcjogc3luY2hyb25vdXMgZXh0ZXJuYWwgYWJvcnQ6IDk2MDAwMjEwIFsjMV0gU01QCj4gWyAg IDcxLjQ2NDAyMV0gTW9kdWxlcyBsaW5rZWQgaW46IHh0X2Nvbm5saW1pdCBwcHBvZSBwcHBfYXN5 bmMgbmZfY29ubmNvdW50IGlwdGFibGVfbmF0IGF0aDlrIHh0X3N0YXRlIHh0X25hdCB4dF9oZWxw ZXIgeHRfY29ubnRyYWNrIHh0X2Nvbm5tYXJrIHh0X2Nvbm5ieXRlcyB4dF9SRURJUkVsCj4gWyAg IDcxLjQ2NDE4N10gIGJ0aW50ZWwgYnJfbmV0ZmlsdGVyIGJuZXAgYmx1ZXRvb3RoIGF0aDlrX2h3 IGF0aDEwa19wY2kgYXRoMTBrX2NvcmUgYXRoIHNjaF90YmYgc2NoX2luZ3Jlc3Mgc2NoX2h0YiBz Y2hfaGZzYyBlbV91MzIgY2xzX3UzMiBjbHNfdGNpbmRleCBjbHNfcm91dGUgY2xzX21nCj4gWyAg IDcxLjYyOTU4OV0gQ1BVOiAwIFBJRDogMTI5OCBDb21tOiBrd29ya2VyL3U1OjMgTm90IHRhaW50 ZWQgNS40LjExNCAjMAo+IFsgICA3MS42MzYzMTldIEhhcmR3YXJlIG5hbWU6IENaLk5JQyBUdXJy aXMgTW94IEJvYXJkIChEVCkKPiBbICAgNzEuNjQxNzI1XSBXb3JrcXVldWU6IG5hcGlfd29ya3Eg bmFwaV93b3JrZm4KPiBbICAgNzEuNjQ2MjIxXSBwc3RhdGU6IDgwNDAwMDg1IChOemN2IGRhSWYg K1BBTiAtVUFPKQo+IFsgICA3MS42NTExNjldIHBjIDogbXQ3Nl9zZXRfaXJxX21hc2srMHgxMTgv MHgxNTAgW210NzZdCj4gWyAgIDcxLjY1NjM4NV0gbHIgOiBtdDc5MTVfaW5pdF9kZWJ1Z2ZzKzB4 MzU4LzB4MzY4IFttdDc5MTVlXQo+IFsgICA3MS42NjIwMzhdIHNwIDogZmZmZmZmYzAxMDAwM2Nk MAo+IFsgICA3MS42NjU0NTFdIHgyOTogZmZmZmZmYzAxMDAwM2NkMCB4Mjg6IDAwMDAwMDAwMDAw MDAwNjAgCj4gWyAgIDcxLjY3MDkyOV0geDI3OiBmZmZmZmZjMDEwYTU2Zjk4IHgyNjogZmZmZmZm YzAxMGMwZmE5YSAKPiBbICAgNzEuNjc2NDA3XSB4MjU6IGZmZmZmZmMwMTBiYTg3ODggeDI0OiBm ZmZmZmY4MDNlMDFmZTAwIAo+IFsgICA3MS42ODE4ODVdIHgyMzogMDAwMDAwMDAwMDAwMDAzMCB4 MjI6IGZmZmZmZmMwMTAwMDNkYzQgCj4gWyAgIDcxLjY4NzM2MV0geDIxOiAwMDAwMDAwMDAwMDAw MDAwIHgyMDogZmZmZmZmODAzZTAxZmVhNCAKPiBbICAgNzEuNjkyODM5XSB4MTk6IGZmZmZmZjgw M2NiNzI1YzAgeDE4OiAwMDAwMDAwMDJkNjYwNzgwIAo+IFsgICA3MS42OTgzMTddIHgxNzogMDAw MDAwMDAwMDAwMDAwMCB4MTY6IDAwMDAwMDAwMDAwMDAwMDEgCj4gWyAgIDcxLjcwMzc5NV0geDE1 OiAwMDAwMDAwMDAwMDA1ZWUwIHgxNDogZmZmZmZmYzAxMGQxZDAwMCAKPiBbICAgNzEuNzA5Mjcy XSB4MTM6IDAwMDAwMDAwMDAwMDJmNzAgeDEyOiAwMDAwMDAwMDAwMDAwMDAwIAo+IFsgICA3MS43 MTQ3NDldIHgxMTogMDAwMDAwMDAwMDAwMDAwMCB4MTA6IDAwMDAwMDAwMDAwMDAwNDAgCj4gWyAg IDcxLjcyMDIyNl0geDkgOiBmZmZmZmZjMDEwYmJlOTgwIHg4IDogZmZmZmZmYzAxMGJiZTk3OCAK PiBbICAgNzEuNzI1NzA0XSB4NyA6IGZmZmZmZjgwM2U0MDAzZjAgeDYgOiAwMDAwMDAwMDAwMDAw MDAwIAo+IFsgICA3MS43MzExODFdIHg1IDogZmZmZmZmYzAyZjI0MDAwMCB4NCA6IGZmZmZmZmMw MTAwMDNlMDAgCj4gWyAgIDcxLjczNjY1OF0geDMgOiAwMDAwMDAwMDAwMDAwMDAwIHgyIDogZmZm ZmZmYzAwOGUzZjIzMCAKPiBbICAgNzEuNzQyMTM1XSB4MSA6IDAwMDAwMDAwMDAwZDcwMTAgeDAg OiBmZmZmZmZjMDExNGQ3MDEwIAo+IFsgICA3MS43NDc2MTNdIENhbGwgdHJhY2U6Cj4gWyAgIDcx Ljc1MDEzN10gIG10NzZfc2V0X2lycV9tYXNrKzB4MTE4LzB4MTUwIFttdDc2XQo+IFsgICA3MS43 NTQ5OTBdICBtdDc5MTVfZHVhbF9oaWZfc2V0X2lycV9tYXNrKzB4MTA4LzB4ZGMwIFttdDc5MTVl XQo+IFsgICA3MS43NjEwOThdICBfX2hhbmRsZV9pcnFfZXZlbnRfcGVyY3B1KzB4NmMvMHgxNzAK PiBbICAgNzEuNzY1OTUwXSAgaGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHgzNC8weDg4Cj4gWyAg IDcxLjc3MDUzMV0gIGhhbmRsZV9pcnFfZXZlbnQrMHg0MC8weGIwCj4gWyAgIDcxLjc3NDQ4Nl0g IGhhbmRsZV9sZXZlbF9pcnErMHhlMC8weDE3MAo+IFsgICA3MS43Nzg1MzBdICBnZW5lcmljX2hh bmRsZV9pcnErMHgyNC8weDM4Cj4gWyAgIDcxLjc4MjY2N10gIGFkdmtfcGNpZV9pcnFfaGFuZGxl cisweDExYy8weDIzOAo+IFsgICA3MS43ODcyNDldICBfX2hhbmRsZV9pcnFfZXZlbnRfcGVyY3B1 KzB4NmMvMHgxNzAKPiBbICAgNzEuNzkyMDk5XSAgaGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHgz NC8weDg4Cj4gWyAgIDcxLjc5NjY4MF0gIGhhbmRsZV9pcnFfZXZlbnQrMHg0MC8weGIwCj4gWyAg IDcxLjgwMDYzM10gIGhhbmRsZV9mYXN0ZW9pX2lycSsweGRjLzB4MTkwCj4gWyAgIDcxLjgwNDg1 NV0gIGdlbmVyaWNfaGFuZGxlX2lycSsweDI0LzB4MzgKPiBbICAgNzEuODA4OTg4XSAgX19oYW5k bGVfZG9tYWluX2lycSsweDYwLzB4YjgKPiBbICAgNzEuODEzMjEzXSAgZ2ljX2hhbmRsZV9pcnEr MHg4Yy8weDE5OAo+IFsgICA3MS44MTcwNzddICBlbDFfaXJxKzB4ZjAvMHgxYzAKPiBbICAgNzEu ODIwMzE0XSAgZWwxX2RhKzB4Yy8weGMwCj4gWyAgIDcxLjgyMzI4OF0gIG10NzZfc2V0X2lycV9t YXNrKzB4MTE4LzB4MTUwIFttdDc2XQo+IFsgICA3MS44MjgxNDFdICBtdDc5MTVfbWFjX3R4X2Zy ZWUrMHg0YzQvMHg4MjggW210NzkxNWVdCj4gWyAgIDcxLjgzMzM1Ml0gIG10NzkxNV9xdWV1ZV9y eF9za2IrMHg1Yy8weGE4IFttdDc5MTVlXQo+IFsgICA3MS44Mzg0NzNdICBtdDc2X2RtYV9jbGVh bnVwKzB4ODljLzB4MTI0OCBbbXQ3Nl0KPiBbICAgNzEuODQzMzI5XSAgX19uYXBpX3BvbGwrMHgz OC8weGY4Cj4gWyAgIDcxLjg0NjgzNV0gIG5hcGlfd29ya2ZuKzB4NTgvMHhiMAo+IFsgICA3MS44 NTAzNDJdICBwcm9jZXNzX29uZV93b3JrKzB4MWZjLzB4MzkwCj4gWyAgIDcxLjg1NDQ3NV0gIHdv cmtlcl90aHJlYWQrMHg0OC8weDRkMAo+IFsgICA3MS44NTgyNTJdICBrdGhyZWFkKzB4MTIwLzB4 MTI4Cj4gWyAgIDcxLjg2MTU4MV0gIHJldF9mcm9tX2ZvcmsrMHgxMC8weDFjCj4gWyAgIDcxLjg2 NTI3M10gQ29kZTogNTI4MDAwMDAgZDY1ZjAzYzAgZjk1NjJjMDAgOGIyMTQwMDAgKGI5NDAwMDAw KSAKPiBbICAgNzEuODcxNTYwXSAtLS1bIGVuZCB0cmFjZSAxZDRlMjk5ODcwMTE0MTFiIF0tLS0K PiBbICAgNzEuODc2MzIwXSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0 aW9uIGluIGludGVycnVwdAo+IFsgICA3MS44ODI4NzVdIFNNUDogc3RvcHBpbmcgc2Vjb25kYXJ5 IENQVXMKPiBbICAgNzEuODg2OTIzXSBLZXJuZWwgT2Zmc2V0OiBkaXNhYmxlZAo+IFsgICA3MS44 OTA1MTldIENQVSBmZWF0dXJlczogMHgwMDAyLDAwMDAyMDA4Cj4gWyAgIDcxLjg5NDY0OV0gTWVt b3J5IExpbWl0OiBub25lCj4gWyAgIDcxLjg5Nzc5OV0gUmVib290aW5nIGluIDMgc2Vjb25kcy4u Cj4gCj4gKGluIG90aGVyIFNvQy9zeXN0ZW1zLCBpbmNsdWRpbmcgTWFydmVsbCwgaXMgdGhpcyBj YXJkIHdvcmtpbmcgZmluZSkKPiAKPiBJdCBpcyBmcm9tIG9sZGVyIGtlcm5lbCwgYnV0IGlzc3Vl IGlzIHN0aWxsIHRoZXJlIGFuZCBoYXBwZW5zIGFsc28gd2l0aCBuZXcga2VybmVscy4gTWVkaWF0 ZWsgZHJpdmVyIGluIGl0cyBpbnRlcnJ1cHQgaGFuZGxlciBpcyBtYXNraW5nIHNvbWUgaW50ZXJy dXB0cyBpbiBpdHMgaW50ZXJydXB0IGhhbmRsZXIsIHdoaWNoIGlzIGRvbmUgYnkgd3JpdGluZyB0 byBQQ0llIGFkZHJlc3Mgc3BhY2Ugb2YgZW5kcG9pbnQgY2FyZC4KPiAKPiBBbnl3YXksIEkgY2Fu IHJlcHJvZHVjZSBzYW1lIGNyYXNoIHdoZW4gSSBzZXQgUENJZSBsaW5rIGRvd24gb3IgcmVzZXQg bGluayBhbmQgdHJ5aW5nIHRvIHJlYWQgZnJvbSBQQ0llIE1FTSBvciBDRkcgc3BhY2UuIFNlZW1z IHRoYXQgUENJZSBjb250cm9sbGVyIGluY29ycmVjdGx5IHJlcG9ydHMgZXJyb3JzIHRvIENQVSwg aXQgc2hvdWxkIHJldHVybiBhbGwtb25lcyB3aGVuIFBDSWUgZGV2aWNlIGlzIG5vdCBwcmVzZW50 IChlLmcuIGR1cmluZyBsaW5rIGRvd24pIGFuZCBub3Qgc2VuZCBmYXRhbCBhYm9ydCB0byBDUFUu IEkuZS4gaW5zdGVhZCBvZiBBWEkgT0sgd2l0aCAweGZmZmZmZmZmIGRhdGEsIGl0IHNlbmRzIEFY SSBTTFZFUlIgdG8gQ1BVIHdoaWNoIGNhdXNlIHRoYXQgY3Jhc2guCj4gCj4gVGhpcyBpcyBzb21l dGhpbmcgd2hpY2ggc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSBidXQgSSdtIG5vdCBhYmxlIHRvIGZp bmQgYW55IEEzNzIwIGRvY3VtZW50YXRpb24gd2hpY2ggd291bGQgZGVzY3JpYmUgaG93IHRvIGNv bmZpZ3VyZSBpdC4KPiAKPiA+IFJlZ2FyZGluZyB0aGUgRXJyYXR1bSwgYmFzaWNhbGx5IHRvIHRo ZSBiZXN0IG9mIG15IHVuZGVyc3RhbmRpbmcsIGlmIHRoZSBFbmQgUG9pbnQgaXMgcG9zdGluZyBh IFBDSWUgd3JpdGUgdG8gdGhlIGhvc3QsIGFuZCB0aGUgaG9zdCBpcyB0cnlpbmcgdG8gcmVhZCB0 aGUgRW5kIFBvaW50IHJlZ2lzdGVycyB2aWEgUENJZSwgQ29tcGxldGlvbiBkYXRhIGlzIGdlbmVy YXRlZCAuIFdpdGggdGhlIHN0cm9uZyBvcmRlcmVkIG1vZGUsIG9uZSB3b3VsZCBleHBlY3QgdGhh dCBmaXJzdCB0aGUgcG9zdCB3cml0ZSB3aWxsIGZpbmlzaCwgYW5kIG9ubHkgdGhlbiB0aGUgY29t cGxldGlvbiBkYXRhIHdpbGwgYmUgcHJvY2Vzc2VkLiBUaGUgRXJyYXR1bSBtZWFucyB0aGF0IHRo aXMgbW9kZSBpcyBub3Qgc3VwcG9ydGVkLiBUaGUgRElTX09SRF9DSEsgbXVzdCBiZSBzZXQgdG8g ZGlzYWJsZSB0aGlzIGZlYXR1cmUsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgSFcuCj4gCj4g T2ssIHRoYW5rIHlvdSBmb3IgZXhwbGFuYXRpb24hCj4gCj4gPiBSZWdhcmRpbmcgQmpvcm4gY29t bWVudCwgbm90IGVuYWJsaW5nIHRoaXMgYml0IHdpbGwgbm90IGhlbHAgYXMgdGhlIHN0cm9uZy1v cmRlciBmZWF0dXJlIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBIVy4KPiA+IExlYXZpbmcgdGhpcyBi aXQgZGlzYWJsZWQgd2lsbCBub3QgbWFrZSB0aGUgSFcgZW5mb3JjZSBzdHJvbmctb3JkZXIuIFRo ZXJlIGlzIG5vIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBIVyBiZWhhdmlvciB3aGVuIHRo ZSBiaXQgaXMgZGlzYWJsZWQgcGVyIHRoZSBkZWZhdWx0LCBidXQgYXMgaXMgY2xlYXJseSBldmlk ZW50IGZyb20gdGhlIEVycmF0dW0gYW5kIGZyb20geW91ciBvd24gZXhwZXJpZW5jZSwgbGVhdmlu ZyB0aGlzIGJpdCBkaXNhYmxlZCB3b3VsZCBub3QgY3JlYXRlIHRoZSBjb3JyZWN0LCBleHBlY3Rl ZCBiZWhhdmlvciBmcm9tIHRoZSBIVywgd2hpY2ggaXMgd2h5IGl0IG11c3QgYmUgZW5hYmxlZCBm b3IgY29ycmVjdCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBzeXN0ZW0gKGJvdGggaGFyZHdhcmUgYW5k IHNvZnR3YXJlKS4KPiAKPiBXaGF0IGRvZXMgaXQgbWVhbiB0aGF0IHN0cm9uZy1vcmRlciBmZWF0 dXJlIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBIVz8KPiBTdHJvbmctb3JkZXIgbW9kZWwgaXMgcmVx dWlyZW1lbnQgaW4gUENJZS4gVGhpcyBpcyByZWFsbHkgc3RyYW5nZSBpZiBQQ0llIGNvcmUgcmVx dWlyZW1lbnQgZG9lcyBub3Qgd29yayBpbiBBMzcyMCBIVy4KPiAKPiBBbnl3YXksIGluIE1hcnZl bGwgb3JpZ2luYWwgQTM3MjAgUENJZSBkcml2ZXIgaXMgZXhwbGljaXRseSB0dXJuZWQgb2ZmIFJl bGF4ZWQgUENJZSBvcmRlcmluZyAoYW5kIHNhbWUgaXMgaW4gbWFpbmxpbmUgcGNpLWFhcmR2YXJr LmMgZHJpdmVyKToKPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9 aHR0cHMtM0FfX2dpdGh1Yi5jb21fTWFydmVsbEVtYmVkZGVkUHJvY2Vzc29yc19saW51eC0yRG1h cnZlbGxfYmxvYl9mMTJiMzU1NzA5NWZmMWQ5YjdiZTc4YmVmN2EzMjM3ZTI3Yjc3NzhlX2RyaXZl cnNfcGNpX2hvc3RfcGNpLTJEYWR2ay0yRGFybTY0LmMtMjNMMzk3JmQ9RHdJRGFRJmM9bktqV2Vj MmI2UjBtT3lQYXo3eHRmUSZyPWVUZU5UTEVLNS1UeFhjempPY0tQaEFOSUZ0bEI5cFA0bHE5cWhk bEZyd1EmbT1Rb1dCVnRsbUs4ZGNucWZxUHVMbHJZWlc5ZExrTEFYalFzWG5TVHN5TFh0QUc1eHdW clVqMzRwc2N3ZEhuMHF2JnM9ZEpPeDlqU3RUTDc3cEZoZDVLQjdaakEtUUpyMWhyeUt5QmFPOGl5 a0tRSSZlPSAKPiAKPiBTbyBpZiBib3RoIFJlbGF4ZWQgYW5kIFN0cm9uZyBvcmRlcmluZyBhcmUg Z29pbmcgdG8gYmUgZGlzYWJsZWQsIHdoYXQga2luZCBvZiBvcmRlcmluZyBtb2RlbCBpcyB0aGVu IHVzZWQ/IFRoaXMgaXMgc29tZXRoaW5nIHdoaWNoIEkgZG8gbm90IHVuZGVyc3RhbmQgaGVyZS4K PiAKPiA+IFJlZ2FyZGluZyB0aGUgcGF0Y2ggLSBJIHdvdWxkIGFsc28gYWRkIGEgZnVsbCBtZW1v cnkgYmFycmllciAoaWYgeW91IHVzZSBpbnRlcnJ1cHRzIG9uIHRoZSBob3N0IHRvIGhhbmRsZSB0 aGUgd3JpdGUgY29tcGxldGlvbiAtIHRoZW4gaW4gdGhlIFBDSWUgZHJpdmVyIGludGVycnVwdCBo YW5kbGVyLCBvdGhlcndpc2UgdGhpcyB3aWxsIHJlcXVpcmUgbW9kaWZ5aW5nIHRoZSBzcGVjaWZp YyBXSUZJIGRyaXZlcikgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhlIHJpc2sgZm9yIHRoZSByYWNl IGNvbmRpdGlvbiBkb2N1bWVudGVkIGluIHRoZSBFcnJhdHVtIGJldHdlZW4gdGhlIERNQSBkb25l IHN0YXR1cyByZWFkaW5nIGFuZCB0aGUgY29tcGxldGlvbiBvZiB3cml0aW5nIHRvIHRoZSBob3N0 IG1lbW9yeS4gVGhpcyBvZiBjb3Vyc2UgZG9lcyBub3QgZ3VhcmFudGVlIG9yZGVyLCBidXQgaXQg aXMgYmV0dGVyIHRoYW4gbGVhdmluZyBpdCB0aGUgd2F5IGl0IGlzLgo+IAo+IEknbSBub3Qgc3Vy ZSBpZiBJIHVuZGVyc3RhbmQgeW91IGNvcnJlY3RseS4gRG8geW91IG1lYW4gdG8gY2FsbCBBUk0g RFNCIGluc3RydWN0aW9uIGZvciBEYXRhIFN5bmNocm9uaXphdGlvbiBCYXJyaWVyIGluIEEzNzIw IFBDSWUgc3VtbWFyeSBpbnRlcnJ1cHQgaGFuZGxlciBpbiBwY2ktYWFyZHZhcmsuYyBwcmlvciBj aGFpbmluZyB0byB3aWZpIGRyaXZlciBpbnRlcnJ1cHQgaGFuZGxlcj8KPiAKPiA+IEhvcGVmdWxs eSB0aGlzIGhlbHBzLAo+ID4gCj4gPiBFbGFkLgo+ID4gCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQo+ID4gRnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KPiA+IFNlbnQ6 IFN1bmRheSwgSnVseSAxMCwgMjAyMiAyOjIxIFBNCj4gPiBUbzogRWxhZCBOYWNobWFuIDxlbmFj aG1hbkBtYXJ2ZWxsLmNvbT47IFJhdGhlZXNoIEthbm5vdGggCj4gPiA8cmthbm5vdGhAbWFydmVs bC5jb20+OyBUYW5tYXkgSmFnZGFsZSA8dGFubWF5QG1hcnZlbGwuY29tPjsgU2hpaml0aCAKPiA+ IFRob3R0b24gPHN0aG90dG9uQG1hcnZlbGwuY29tPjsgQXJ1biBFYXNpIDxhZWFzaUBtYXJ2ZWxs LmNvbT4KPiA+IENjOiBLcnp5c3p0b2YgV2lsY3p5xYRza2kgPGt3QGxpbnV4LmNvbT47IExvcmVu em8gUGllcmFsaXNpIAo+ID4gPGxvcmVuem8ucGllcmFsaXNpQGFybS5jb20+OyBUaG9tYXMgUGV0 YXp6b25pIAo+ID4gPHRob21hcy5wZXRhenpvbmlAYm9vdGxpbi5jb20+OyBCam9ybiBIZWxnYWFz IDxiaGVsZ2Fhc0Bnb29nbGUuY29tPjsgCj4gPiBNYXJlayBCZWjDum4gPGthYmVsQGtlcm5lbC5v cmc+OyBSZW1pIFBvbW1hcmVsIDxyZXBrQHRyaXBsZWZhdS5sdD47IAo+ID4gWG9naXVtIDxjb250 YWN0QHhvZ2l1bS5tZT47IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7IAo+ID4gbGludXgta2Vy bmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn OyAKPiA+IEJoYXJhdCBCaHVzaGFuIDxiYmh1c2hhbjJAbWFydmVsbC5jb20+OyBWZWVyYXNlbmFy ZWRkeSBCdXJydSAKPiA+IDx2YnVycnVAbWFydmVsbC5jb20+OyBXb2pjaWVjaCBCYXJ0Y3phayA8 d2JhcnRjemFrQG1hcnZlbGwuY29tPgo+ID4gU3ViamVjdDogW0VYVF0gUmU6IElzc3VlcyB3aXRo IEEzNzIwIFBDSWUgY29udHJvbGxlciBkcml2ZXIgCj4gPiBwY2ktYWFyZHZhcmsuYwo+ID4gCj4g PiBFeHRlcm5hbCBFbWFpbAo+ID4gCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiArIE90aGVyIHBlb3Bs ZSBmcm9tIE1hcnZlbGwgYWN0aXZlIG9uIExLTUwuCj4gPiAKPiA+IENvdWxkIHlvdSBwbGVhc2Ug bG9vayBhdCB0aGlzIGlzc3VlIGFuZCBnaXZlIHVzIHNvbWUgY29tbWVudD8gSXQgaXMgcmVhbGx5 IGNyaXRpY2FsIGlzc3VlIHdoaWNoIG5lZWRzIHRvIGJlIHNvbHZlZC4KPiA+IAo+ID4gT24gV2Vk bmVzZGF5IDE2IEZlYnJ1YXJ5IDIwMjIgMjE6MDk6NDAgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gPiA+ ICsgQmhhcmF0LCBWZWVyYXNlbmFyZWRkeSBhbmQgV29qY2llY2ggZnJvbSBNYXJ2ZWxsCj4gPiA+ IAo+ID4gPiBIZWxsbyEgQ291bGQgeW91IHBsZWFzZSBsb29rIGF0IHRoaXMgZW1haWwgYW5kIGhl bHAgdXMgd2l0aCB0aGlzIE1hcnZlbGwgSFcgaXNzdWU/Cj4gPiA+IAo+ID4gPiBPbiBTYXR1cmRh eSAyNCBKdWx5IDIwMjEgMDA6MTc6MTAgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gPiA+ID4gSGVsbG8g S29uc3RhbnRpbiEKPiA+ID4gPiAKPiA+ID4gPiBUaGVyZSBhcmUgaXNzdWVzIHdpdGggTWFydmVs bCBBcm1hZGEgMzcyMCBQQ0llIGNvbnRyb2xsZXIgd2hlbiAKPiA+ID4gPiBoaWdoIHBlcmZvcm1h bmNlIFBDSWUgY2FyZCAoZS5nLiBXaUZpIEFYKSBpcyBjb25uZWN0ZWQgdG8gdGhpcyAKPiA+ID4g PiBTT0MuIFVuZGVyIGhlYXZ5IGxvYWQgUENJZSBjb250cm9sbGVyIHNlbmRzIGZhdGFsIGFib3J0 IHRvIENQVSBhbmQga2VybmVsIGNyYXNoLgo+ID4gPiA+IAo+ID4gPiA+IEluIE1hcnZlbGwgQXJt YWRhIDM3MDAgRnVuY3Rpb25hbCBFcnJhdGEsIEd1aWRlbGluZXMsIGFuZCAKPiA+ID4gPiBSZXN0 cmljdGlvbnMgZG9jdW1lbnQgaXMgZGVzY3JpYmVkIGVycmF0dW0gMy4xMiBQQ0llIENvbXBsZXRp b24gCj4gPiA+ID4gVGltZW91dCAoUmVmICM6IDI1MSkgd2hpY2ggbWF5IGJlIHJlbGV2YW50LiBC dXQgbmVpdGhlciBCam9ybiwgCj4gPiA+ID4gVGhvbWFzIG5vciBtZSB3ZXJlIGFibGUgdG8gdW5k ZXJzdG9vZCB0ZXh0IG9mIHRoaXMgZXJyYXR1bS4gQW5kIHdlIAo+ID4gPiA+IGhhdmUgYWxyZWFk eSBzcGVudCBsb3Qgb2YgdGltZSBvbiB0aGlzIGVycmF0dW0uIE15IGd1ZXNzIHRoYXQgaXMgCj4g PiA+ID4gdGhhdCBpbiBlcnJhdHVtIGl0c2VsZiBhcmUgbWlzdGFrZXMgYW5kIHRoZXJlIGFyZSBt aXNzaW5nIHNvbWUgb3RoZXIgaW1wb3J0YW50IGRldGFpbHMuCj4gPiA+ID4gCj4gPiA+ID4gS29u c3RhbnRpbiwgYXJlIHlvdSBhYmxlIHRvIHVuZGVyc3RhbmQgdGhpcyBlcnJhdHVtPyBPciBkbyB5 b3UgCj4gPiA+ID4ga25vdyBzb21lYm9keSBpbiBNYXJ2ZWxsIHdobyB1bmRlcnN0YW5kIHRoaXMg ZXJyYXR1bSBhbmQgY2FuIAo+ID4gPiA+IGV4cGxhaW4gZGV0YWlscyB0byB1cz8gT3IgZG8geW91 IGtub3cgc29tZSBtb3JlIGRldGFpbHMgYWJvdXQgdGhpcyBlcnJhdHVtPwo+ID4gPiA+IAo+ID4g PiA+IEFsc28gaXQgd291bGQgYmUgdXNlZnVsIGlmIHlvdSAvIE1hcnZlbGwgY291bGQgc2hhcmUg dGV4dCBvZiB0aGlzIAo+ID4gPiA+IGVycmF0dW0gd2l0aCBsaW51eC1wY2kgcGVvcGxlIGFzIGN1 cnJlbnRseSBpdCBpcyBhdmFpbGFibGUgb25seSBvbiAKPiA+ID4gPiBNYXJ2ZWxsIEN1c3RvbWVy IFBvcnRhbCB3aGljaCByZXF1aXJlcyByZWdpc3RyYXRpb24gd2l0aCBzaWduZWQgTkRBLgo+ID4g PiA+IAo+ID4gPiA+IEluIHBhc3QgVGhvbWFzIHdyb3RlIHBhdGNoICJhY2NvcmRpbmcgdG8gdGhp cyBlcnJhdHVtIiBhbmQgSSBoYXZlIAo+ID4gPiA+IHJlYmFzZWQsIHJld3JpdHRlbiBhbmQgcmVz ZW50IGl0IHRvIGxpbnV4LXBjaSBtYWlsaW5nIGxpc3QgZm9yIHJldmlldzoKPiA+ID4gPiBodHRw czovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2xvcmUua2Vy bmVsLm8KPiA+ID4gPiByZyAKPiA+ID4gPiBfbGludXgtMkRwY2lfMjAyMTA2MjQyMjI2MjEuNDc3 Ni0yRDYtMkRwYWxpLTQwa2VybmVsLm9yZ18mZD1Ed0lEYVEKPiA+ID4gPiAmYyAKPiA+ID4gPiA9 bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWVUZU5UTEVLNS1UeFhjempPY0tQaEFOSUZ0bEI5cFA0 bHE5cWhkbEYKPiA+ID4gPiBydwo+ID4gPiA+IFEmbT1vcFlzUXN2X3NmU3ZUdEE1b0p3YzFwYVpy UEFXTUhWaFR4XzlKMVZXQlZEa3NCRVRDWFZzQzNyUkRiNWVqZwo+ID4gPiA+IGctICZzPUFLYkVC V09JeGE0QTBRU0ZYaXE2SGhLcEJ5bjBoUEp1WnZieHN1M204b28mZT0KPiA+ID4gPiAKPiA+ID4g PiBTaW1pbGFyIHBhdGNoIGlzIGF2YWlsYWJsZSBhbHNvIGluIGtlcm5lbCB3aGljaCBpcyBwYXJ0 IG9mIE1hcnZlbGwgU0RLLgo+ID4gPiA+IAo+ID4gPiA+IEJqb3JuIGhhcyBvYmplY3Rpb25zIGZv ciB0aGlzIHBhdGNoIGFzIGhlIHRoaW5rcyB0aGF0IGJpdCAKPiA+ID4gPiBESVNfT1JEX0NISyBp biB0aGF0IHBhdGNoIHNob3VsZCBiZSBkaXNhYmxlZC4gU2VlbXMgdGhhdCBlbmFibGluZyAKPiA+ ID4gPiB0aGlzIGJpdCBlZmZlY3RpdmVseSBkaXNhYmxlcyBQQ0llIHN0cm9uZyBvcmRlcmluZyBt b2RlbC4gUENJZSAKPiA+ID4gPiBrZXJuZWwgZHJpdmVycyByZWx5IG9uIFBDSWUgc3Ryb25nIG9y ZGVyaW5nLCBzbyBpdCB3b3VsZCBpbXBsaWNhdGUgCj4gPiA+ID4gdGhhdCB0aGF0IGJpdCBzaG91 bGQgbm90IGJlIGVuYWJsZWQuIFdoaWNoIGlzIG9wcG9zaXRlIG9mIHdoYXQgaXMgbWVudGlvbmVk IHBhdGNoIGRvaW5nLgo+ID4gPiA+IAo+ID4gPiA+IEtvbnN0YW50aW4sIGNvdWxkIHlvdSBoZWxw IHVzIHdpdGggdGhpcyBwcm9ibGVtPwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=