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 56EFCECAAA1 for ; Mon, 31 Oct 2022 17:24:27 +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=ZeRRLopEMtfn3z8J42z0DyMz7QDQW64sOwMCyuZst3A=; b=fVzl2va4QGiJ18 AKIVc7e0NZEVzSzrh6uGAlXAQlRVvOqktdzVnRW1zWC8UmdXFV3FSInYU/aUDvgqH9XtL1kicepht 2k3yaFslLpLTrO6mPnd+ohMpiupKT6f59aum+rIqEdcRowCZEetrCFzKgDW5mXLRmHQmfAfLmsqJE oib0RnBIG4XjyleSa6LznfLndxTbN2pvskbedvCBnqT5h6QWFj232xY3QZoX00Vtkt0UouEd6XYLK 9pnwyf9SGXp+llvH0L2BBCKBouMT0XvZ+MQpZiGqaa4ZWjM7KJOx6If741cUAqr5E23SqsfDAi+zl OXEsZfRMoHqRm5l+HKLg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1opYVO-00DLPS-BN; Mon, 31 Oct 2022 17:23:22 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1opYVL-00DLOO-KJ for linux-arm-kernel@lists.infradead.org; Mon, 31 Oct 2022 17:23:21 +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 E2D0861316; Mon, 31 Oct 2022 17:23:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E816C433C1; Mon, 31 Oct 2022 17:23:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1667236998; bh=R5DVql+ggtn4spylZiV/KEob6XtjcloHdtXG617w3S8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=LY2n3DiLmp5FpjF/ZWTuAay1igYQyimZp4RSW7KX4LHXCBX+bE3gyaJ93hIiAUugZ yyj7LfXFy7ucXXelA1iqMZTumMfgPKvSlzmLqREirYlMPNFa3TDxXQxRbXGV5cydX+ Nrt21BHpWwjGSwkiRGQdy1qtwBQ6pGeY0tu//ma7KdH98UbEzu0qrB0w+ERszWZXaO 8AlacUyb8Vfe90EfVnMwVbT40CFVGmbfcZr1NhQgOkbnprlhRLVxJuG+ggv1U4uFBk H8IQCfwyIgRSo42Q698k24cyvoOOffEe86JWyOjpW/sTHBQhsI0XgFyNj5u+Mjq0gp TRhupDMkiJXYw== Date: Mon, 31 Oct 2022 17:23:12 +0000 From: Lee Jones To: Hector Martin Cc: Russell King , Arnd Bergmann , Linus Walleij , Alyssa Rosenzweig , asahi@lists.linux.dev, Bartosz Golaszewski , linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, Sven Peter Subject: Re: [PATCH 4/6] platform/apple: Add new Apple Mac SMC driver Message-ID: References: <8f30a490-f970-6605-20cb-c2256daab9de@marcan.st> <82088b05-2a0d-69cc-ba2c-d61c74c9d855@marcan.st> <4faa5e4c-b43b-12e4-2259-c2595bd55b97@marcan.st> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <4faa5e4c-b43b-12e4-2259-c2595bd55b97@marcan.st> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221031_102319_772448_ADDA18F5 X-CRM114-Status: GOOD ( 54.63 ) 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 T24gTW9uLCAzMSBPY3QgMjAyMiwgSGVjdG9yIE1hcnRpbiB3cm90ZToKCj4gT24gMzEvMTAvMjAy MiAxOC4yOSwgTGVlIEpvbmVzIHdyb3RlOgo+ID4gT24gTW9uLCAzMSBPY3QgMjAyMiwgSGVjdG9y IE1hcnRpbiB3cm90ZToKPiA+IAo+ID4+IE9uIDMxLzEwLzIwMjIgMTcuNDgsIExlZSBKb25lcyB3 cm90ZToKPiA+Pj4gT24gU2F0LCAyOSBPY3QgMjAyMiwgSGVjdG9yIE1hcnRpbiB3cm90ZToKPiA+ Pj4KPiA+Pj4+IE9uIDA5LzA5LzIwMjIgMTYuNTAsIExlZSBKb25lcyB3cm90ZToKPiA+Pj4+Pj4g V2hhdCdzIHRoZSBwb2ludCBvZiBqdXN0IGhhdmluZyBlZmZlY3RpdmVseSBhbiBhcnJheSBvZiBt ZmRfY2VsbCBhbmQKPiA+Pj4+Pj4gd3JhcHBlcnMgdG8gY2FsbCBpbnRvIHRoZSBtZmQgY29yZSBp biB0aGUgZHJpdmVycy9tZmQvIHRyZWUgYW5kIHRoZQo+ID4+Pj4+PiByZXN0IG9mIHRoZSBkcml2 ZXIgZWxzZXdoZXJlPwo+ID4+Pj4+Cj4gPj4+Pj4gVGhleSBzaG91bGQgYmUgc2VwYXJhdGUgZHJp dmVycywgd2l0aCBNRkQgcmVnaXN0ZXJpbmcgdGhlIFBsYXRmb3JtLgo+ID4+Pj4KPiA+Pj4+IFdo eT8gV2hhdCBwdXJwb3NlIGRvZXMgdGhpcyBzZXJ2ZT8gSSdtIHN0aWxsIGNvbmZ1c2VkLiBUaGVy ZSdzIG9uZQo+ID4+Pj4gcGFyZW50IGRldmljZSwgd2hpY2ggcHJvdmlkZXMgc2VydmljZXMgdG8g dGhlIGNoaWxkIGRldmljZXMuIFRoZXJlIGlzbid0Cj4gPj4+PiBvbmUgcGFyZW50IGRldmljZSB3 aGljaCB3cmFwcyBhIHBsYXRmb3JtIHNlcnZpY2Ugd2hpY2ggaXMgdXNlZCBieQo+ID4+Pj4gY2hp bGRyZW4uIFRoaXMgbWFrZXMgbm8gc2Vuc2UuIFRoZSBwbGF0Zm9ybSBkZXZpY2UgaXMgdGhlIHJv b3QsIGlmIGl0Cj4gPj4+PiBleHBvc2VzIE1GRCBzZXJ2aWNlcywgdGhlbiBpdCBoYXMgdG8gYmUg aW4gdGhhdCBkaXJlY3Rpb24sIG5vdCB0aGUgb3RoZXIKPiA+Pj4+IHdheSBhcm91bmQuCj4gPj4+ Pgo+ID4+Pj4gTG9vayBhdCBob3cgdGhpcyBwYXRjaCBzZXJpZXMgaXMgYXJjaGl0ZWN0ZWQuIFRo ZXJlIGlzIHNtY19jb3JlLmMsIHdoaWNoCj4gPj4+PiBpbXBsZW1lbnRzIFNNQyBoZWxwZXJzIGFu ZCB3cmFwcGVycyBvbiB0b3Agb2YgYSBnZW5lcmljIGJhY2tlbmQsIGFuZAo+ID4+Pj4gcmVnaXN0 ZXJzIHdpdGggdGhlIE1GRCBzdWJzeXN0ZW0uIEFuZCB0aGVuIHRoZXJlIGlzIHNtY19ydGtpdC5j IHdoaWNoIGlzCj4gPj4+PiB0aGUgYWN0dWFsIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uIG9uIHRv cCBvZiB0aGUgUlRLaXQgZnJhbWV3b3JrLCBhbmQgaXMKPiA+Pj4+IHRoZSBhY3R1YWwgcGxhdGZv cm0gZGV2aWNlIGVudHJ5IHBvaW50Lgo+ID4+Pj4KPiA+Pj4+IEEgcHJpb3JpLCB0aGUgb25seSB0 aGluZyB0aGF0IG1ha2VzIHNlbnNlIHRvIG1lIHJpZ2h0IG5vdyB3b3VsZCBiZSB0bwo+ID4+Pj4g bW92ZSBzbWNfY29yZS5jIGludG8gZHJpdmVycy9tZmQsIGFuZCBsZWF2ZSBzbWNfcnRraXQuYyBp biBwbGF0Zm9ybS4KPiA+Pj4+IFRoYXQgd2F5IHRoZSBtZmQgcmVnaXN0cmF0aW9uIHdvdWxkIGJl IGluIGRyaXZlcnMvbWZkIChhcyB3b3VsZCBiZSB0aGUKPiA+Pj4+IHNlcnZpY2VzIG9mZmVyZWQg dG8gc3ViLWRyaXZlcnMpLCBidXQgdGhlIGFjdHVhbCBiYWNrZW5kIGltcGxlbWVudGF0aW9uCj4g Pj4+PiB3b3VsZCBiZSBpbiBwbGF0Zm9ybS8gKGFuZCB0aGVyZSB3b3VsZCBldmVudHVhbGx5IGJl IG90aGVycywgZS5nLiBhdAo+ID4+Pj4gbGVhc3QgdHdvIG1vcmUgZm9yIHg4NiBzeXN0ZW1zKS4g VGhhdCBkb2VzIG1lYW4gdGhhdCB0aGUgZHJpdmVyIGVudHJ5Cj4gPj4+PiBwb2ludCB3aWxsIGJl IGluIHBsYXRmb3JtLywgd2l0aCBtZmQvc21jX2NvcmUuYyBzZXJ2aW5nIGFzIGVmZmVjdGl2ZWx5 Cj4gPj4+PiBsaWJyYXJ5IGNvZGUgdG8gcGx1bWIgaW4gdGhlIG1mZCBzdHVmZiBpbnRvIG9uZSBv ZiBzZXZlcmFsIHBvc3NpYmxlCj4gPj4+PiBwbGF0Zm9ybSBkZXZpY2VzLiBXb3VsZCB0aGF0IHdv cmsgZm9yIHlvdT8KPiA+Pj4KPiA+Pj4gWWVzLCBzb3VuZHMgc2Vuc2libGUuICBIb3dldmVyLCBr ZWVwIGFsbCBvZiB0aGUgYWJzdHJhY3Rpb24gY3JhemluZXNzCj4gPj4+IHNvbWV3aGVyZSBlbHNl IGFuZCBmZXRjaCBhbmQgc2hhcmUgYWxsIG9mIHlvdXIgc2hhcmVkIHJlc291cmNlcyBmcm9tCj4g Pj4+IHRoZSBNRkQgKFNNQykgZHJpdmVyLgo+ID4+Cj4gPj4gSSdtIG5vdCBzdXJlIHdoYXQgeW91 IG1lYW4gYnkgdGhhdC4gVGhlIGFic3RyYWN0aW9uIChzbWNfY29yZS5jKSAqaXMqCj4gPj4gdGhl IHNoYXJlZCByZXNvdXJjZS4gQWxsIGl0IGRvZXMgaXMgd3JhcCBvcHMgY2FsbGJhY2tzIHdpdGgg YSBtdXRleCBhbmQKPiA+PiBhZGQgYSBjb3VwbGUgaGVscGVycyBmb3IgZmluZGluZyBrZXlzLiBE byB5b3UgbGl0ZXJhbGx5IHdhbnQgdXMgdG8ganVzdAo+ID4+IGhhdmUgdGhpcyBpbiBkcml2ZXJz L21mZD8KPiA+Pgo+ID4+IC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkg T1IgTUlUCj4gPj4gLyoKPiA+PiAgKiBBcHBsZSBTTUMgTUZEIHdyYXBwZXIKPiA+PiAgKiBDb3B5 cmlnaHQgVGhlIEFzYWhpIExpbnV4IENvbnRyaWJ1dG9ycwo+ID4+ICAqLwo+ID4+Cj4gPj4gI2lu Y2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ID4+ICNpbmNsdWRlICJzbWMuaCIKPiA+Pgo+ID4+IHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgYXBwbGVfc21jX2RldnNbXSA9IHsKPiA+PiAJewo+ ID4+IAkJLm5hbWUgPSAibWFjc21jLWdwaW8iLAo+ID4+IAl9LAo+ID4+IAl7Cj4gPj4gCQkubmFt ZSA9ICJtYWNzbWMtaGlkIiwKPiA+PiAJfSwKPiA+PiAJewo+ID4+IAkJLm5hbWUgPSAibWFjc21j LXBvd2VyIiwKPiA+PiAJfSwKPiA+PiAJewo+ID4+IAkJLm5hbWUgPSAibWFjc21jLXJlYm9vdCIs Cj4gPj4gCX0sCj4gPj4gCXsKPiA+PiAJCS5uYW1lID0gIm1hY3NtYy1ydGMiLAo+ID4+IAl9LAo+ ID4+IH07Cj4gPj4KPiA+PiBpbnQgYXBwbGVfc21jX2FkZF9tZmRfZGV2aWNlcyhzdHJ1Y3QgZGV2 aWNlICpkZXYpCj4gPj4gewo+ID4+IAlyZXQgPSBtZmRfYWRkX2RldmljZXMoZGV2LCAtMSwgYXBw bGVfc21jX2RldnMsCj4gPj4gQVJSQVlfU0laRShhcHBsZV9zbWNfZGV2cyksIE5VTEwsIDAsIE5V TEwpOwo+ID4+IAlpZiAocmV0KQo+ID4+IAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQs ICJTdWJkZXZpY2UgaW5pdGlhbGl6YXRpb24gZmFpbGVkIik7Cj4gPj4KPiA+PiAJcmV0dXJuIDA7 Cj4gPj4gfQo+ID4+IEVYUE9SVF9TWU1CT0woYXBwbGVfc21jX2FkZF9tZmRfZGV2aWNlcyk7Cj4g Pj4KPiA+PiBpbnQgYXBwbGVfc21jX3JlbW92ZV9tZmRfZGV2aWNlcyhzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4gPj4gewo+ID4+IAltZmRfcmVtb3ZlX2RldmljZXMoc21jLT5kZXYpOwo+ID4+Cj4gPj4g CXJldHVybiAwOwo+ID4+IH0KPiA+PiBFWFBPUlRfU1lNQk9MKGFwcGxlX3NtY19hZGRfbWZkX2Rl dmljZXMpOwo+ID4+Cj4gPj4gTU9EVUxFX0FVVEhPUigiSGVjdG9yIE1hcnRpbiA8bWFyY2FuQG1h cmNhbi5zdD4iKTsKPiA+PiBNT0RVTEVfTElDRU5TRSgiRHVhbCBNSVQvR1BMIik7Cj4gPj4gTU9E VUxFX0RFU0NSSVBUSU9OKCJBcHBsZSBTTUMgTUZEIHdyYXBwZXIiKTsKPiA+Pgo+ID4+IEJlY2F1 c2UgdGhpcyBmZWVscyAqaW1tZW5zZWx5KiBzaWxseSBhbmQgcG9pbnRsZXNzLgo+ID4gCj4gPiAu Li4gYW5kIGhhY2t5LiAgSSBhZ3JlZS4KPiA+IAo+ID4gW0JUVzogaWYgdGhpcyBpcyBhbGwgeW91 IHdhbnQgdG8gZG8sIGhhdmUgeW91IGNvbnNpZGVyZWQgc2ltcGxlLW1mZD9dCj4gPiAKPiA+IE5v LCBJIHdhbnQgeW91IHRvIGF1dGhvciBhIHByb3BlciBNRkQgZGV2aWNlLgo+IAo+IFlvdSBkb24n dCBzZWVtIHRvIHVuZGVyc3RhbmQgaG93IE1GRCBkZXZpY2VzIGFjdHVhbGx5IG1hcCB0byB0aGUK PiBoYXJkd2FyZSB3ZSdyZSB3b3JraW5nIHdpdGggaGVyZS4KClZpYSBhbiBhYnN0cmFjdGVkIG1l c3NhZ2UgcGFzc2luZyBBUEkgYW5kIGEgbGl0dGxlIHNoYXJlZCBtZW1vcnk/CgpUaGUgZm9ybWVy IGV2ZW50dWFsbHkgZW5kaW5nIHVwIGluIHRoZSBNQk9YIEFQST8KCj4gPiBUaGUgaGFyZHdhcmUg eW91J3JlIGRlc2NyaWJpbmcgaW4gdGhpcyBzdWJtaXNzaW9uICppcyogYW4gTUZELiAgU28gdXNl Cj4gPiB0aGUgc3Vic3lzdGVtIHByb3Blcmx5LCBpbnN0ZWFkIG9mIGFidXNpbmcgaXQgYXMgYSBz aGltIEFQSSB0byBzaW1wbHkKPiA+IHJlZ2lzdGVyIHBsYXRmb3JtIGRldmljZXMuCj4gCj4gKnNp Z2gqIHRoZSBoYXJkd2FyZSBJJ20gZGVzY3JpYmluZyBpcyBhICpjbGFzcyogb2YgTUZEIGRldmlj ZXMuIFRoZXkgYWxsCj4gd29yayB0aGUgc2FtZSB3YXkgYXMgZmFyIGFzIHRoZSBzdWItZGV2aWNl cyBzZWUsIGJ1dCBvcGVyYXRlIG9uCj4gY29tcGxldGVseSBkaWZmZXJlbnQgaGFyZHdhcmUgYmFj a2VuZHMuCgpUaGF0J3MgY29tbW9uLiAgVXN1YWxseSB3ZSdyZSB1c2luZyB0YWxraW5nOyBTUEks IEkyQywgVVNCIGFuZCBNTUlPLApidXQgYSBiZXNwb2tlIG1lc3NhZ2UgcGFzc2luZyBBUEkgaXMg bm90IG91dCBvZiB0aGUgcmVhbG1zIG9mIG5vcm1hbC4KCj4gSWYgeW91IGRvIG5vdCB3YW50ICJn b29leQo+IHBsYXRmb3JtIHN0dWZmIiBpbiBkcml2ZXJzL21mZCwgdGhlbiBpdCAqaGFzKiB0byBi ZSBhIGR1bWIgc2hpbS4KPiAKPiBZb3UgaGF2ZSAzIG9wdGlvbnM6Cj4gCj4gLSBXZSBtb3ZlIGV2 ZXJ5dGhpbmcgaW50byBkcml2ZXJzL21mZCwgd2hpY2ggbWVhbnMgdGhlcmUgd2lsbAo+IChldmVu dHVhbGx5KSBiZSAzIGJhY2tlbmQgbW9kdWxlcyBiaW5kaW5nIHRvIHJlYWwgaGFyZHdhcmUgZGV2 aWNlcyBhbmQKPiBvbmUgc2hhcmVkIGNvcmUgd2hpY2ggYWN0dWFsbHkgZG9lcyB0aGUgTUZEIHJl Z2lzdHJhdGlvbiBhbmQgcHJvdmlkZXMKPiBjb21tb24gc2VydmljZXMuCgpNb3ZpbmcgZXZlcnl0 aGluZyBpc24ndCBhbiBvcHRpb24uICBBIHNwbGl0IHdvdWxkIGJlIHRoZSBtb3N0CnJlYXNvbmFi bGUgYXBwcm9hY2guICBXZSBqdXN0IG5lZWQgdG8gZGVjaWRlIG9uIHdoaWNoIHBhcnRzIHNob3Vs ZApyZXNpZGUgb24gd2hpY2ggc2lkZSBvZiB0aGUgTUZEIC8gUGxhdGZvcm0gYm91bmRhcnkuCgo+ IC0gV2UgbW92ZSBqdXN0IHRoZSBjb3JlIGludG8gZHJpdmVycy9tZmQsIHdoaWNoIG1lYW5zIHRo ZSBkZXZpY2UgYmluZGluZwo+IHdpbGwgaGFwcGVuIGVsc2V3aGVyZSwgYW5kIHRoZSBvbmx5IGNv ZGUgaW4gdGhlIE1GRCBzdWJzeXN0ZW0gd2lsbCBiZQo+IGNvbW1vbiBjb2RlIGFuZCB3aWxsIGJl IGNhbGxlZCBhcyBhIGxpYnJhcnkgKHZpYSBtb2R1bGUgZXhwb3J0cywgbm90IHZpYQo+IGRldmlj ZSBiaW5kaW5nKS4KCldoYXQgYXJlIHlvdSBkZXNjcmliaW5nIGFzICd0aGUgY29yZScgaGVyZT8g IEFuZCB3aGljaCBkZXZpY2UgYmluZGluZwphcmUgeW91IGFsbHVkaW5nIHRvPyAgU3ViLWRldmlj ZSByZWdpc3RyYXRpb24gb3Igc29tZXRoaW5nIGVsc2U/Cgo+IC0gV2UgZ2l2ZSB1cCBhbmQganVz dCBoYXZlIGEgZHVtYiBzaGltIGluIGRyaXZlcnMvbWZkIGFzIGFib3ZlLCBiZWNhdXNlCj4geW91 IGRvbid0IHdhbnQgdG8gd29yayB3aXRoIHVzLgoKSWYgSSB3YXNuJ3Qgd2lsbGluZyB0byB3b3Jr IHdpdGggeW91LCB3aG8gYXJlIHlvdSBjb252ZXJzaW5nIHdpdGg/CgpTaWRlLW5vdGU6IFR3ZWV0 aW5nIGRlcm9nYXRvcnkgY29tbWVudHMgYWJvdXQgdGhlIHBlb3BsZSB3aG8gaGF2ZQogICAgICAg ICAgIHZvbHVudGVlcmVkIHRvIHRha2UgdmFsdWFibGUgdGltZSBvdXQgb2YgdGhlaXIgZGF5IHRv IGhlbHAKCSAgIHlvdSwgaXMgbm8gZ29vZCB3YXkgdG8gZW5jb3VyYWdlIHBlb3BsZSB0byAid29y ayB3aXRoIHlvdSIhCgoJICAgTW9zdCwgaWYgbm90IGFsbCBvZiB1cyBkbyB0aGlzIHdpbGxpbmds eSBhbmQgd2l0aCBubwoJICAgYWRkaXRpb25hbCBiZW5lZml0LCBwdXJlbHkgdG8gaGVscCBvdGhl cnMuICBTZWVpbmcgc3VjaAoJICAgaG9ycmlkIHRoaW5ncyBzcHJlYWQgd2lkZWx5LCBpcyBhIGd1 YXJhbnRlZWQgd2F5IHRvIHNwb2lsCgkgICBzb21lb25lJ3MgZGF5LgoKPiBFaXRoZXIgeW91IHdv cmsgd2l0aCBob3cgb3VyIGhhcmR3YXJlIHdvcmtzIG9yIHdlIGdvIHdpdGggdGhpcyBkdW1iIHNo aW0KPiB3b3JrYXJvdW5kLgoKSXQgc291bmRzIGxpa2UgeW91IGhhdmUgdGhpcyB0aGUgd3Jvbmcg d2F5IGFyb3VuZC4gIExpbnV4IGFuZCBpdHMKYXNzb2NpYXRlZCBzdWJzeXN0ZW1zIGFyZW4ndCBn b2luZyB0byBiZW5kIGFuZCBmbGV4IGFyb3VuZCB5b3VyIGRlc2lnbgpkZWNpc2lvbnMuICBZb3Ug bmVlZCB0byBhcHBseSBhIGxpdHRsZSBmbGV4aWJpbGl0eSBhbmQgd29yayB3aXRoIHVzIHRvCmZp bmQgc29tZXRoaW5nIHRoYXQnbGwgd29yayBmb3IgZXZlcnlvbmUuCgo+IFlvdSBzZWVtIHRvIHdh bnQgdXMgdG8gc2ltdWx0YW5lb3VzbHkgImF1dGhvciBhIHByb3BlciBNRkQKPiBkZXZpY2UiIGFu ZCAibm90IHB1dCBwbGF0Zm9ybSBzdHVmZiBpbiBNRkQiLiBXZSBjYW4ndCBkbyBib3RoIGF0IHRo ZQo+IHNhbWUgdGltZS4gRWl0aGVyIHRoZSBjb2RlIGlzIGhlcmUgb3IgaXQgaXMgZWxzZXdoZXJl LgoKT2YgY291cnNlIHlvdSBjYW4uICBKdXN0IGxpa2UgZXZlcnlvbmUgZWxzZSBkb2VzLgoKQWZ0 ZXIgdGFraW5nIHF1aXRlIGEgYml0IG9mIHRpbWUgb3V0IG9mIG15IGRheSB0byBsb29rIGF0IHRo aXMgdG9kYXksCkkgY2FuIHNlZSB0aGF0IHlvdXIgUlRLaXQgaW5pdGlhbGlzYXRpb24gaW1wbGVt ZW50YXRpb24gaXMgYWN0dWFsbHkKbXVjaCBtb3JlIHN1aXRlZCB0byBNRkQgdGhhbiB0aGUgU01D IHdyYXBwZXJzLgoKT25lIHRoaW5nIHRoYXQgSSdtIHN0aWxsIGEgbGl0dGxlIHVuc3VyZSBhYm91 dCBpcyBmdXR1cmUgdGhlIGhpZXJhcmNoeQphbmQgbGF5ZXJpbmcgb2YgYWxsIHRoZXNlIGRyaXZl cnMuICBXaGljaCBpcyBpdCB5b3Ugc2F5IGNhbiAvIHdpbGwgYmUKc3dhcHBlZCBvdXQgZm9yIGRp ZmZlcmVudCBtZXRob2RzIG9mIGluaXRpYWxpc2F0aW9uPwoKSSBzZWUgdGhhdCB5b3UgcGFzcyBh IGJ1bmNoIG9mIGZ1bmN0aW9uIHBvaW50ZXJzIGZyb20gdGhlIFJUS2l0CmltcGxlbWVudGF0aW9u IGludG8gdGhlIFNNQy4gIFdoaWNoIGluIHR1cm4gb2ZmZXJzIGFuIGV4cG9ydGVkCihhcHBsZV9z bWNfKikgQVBJLiAgSW4gbW9zdCBvZiB0aGUgZnJhbWV3b3JrcyBJIGhhdmUga25vd2xlZGdlIG9m LCB0aGUKY29yZSBwcm92aWRlcyB0aGUgT3BzIHN0cnVjdHVyZSBhbmQgaXQncyBwb3B1bGF0ZWQg YnkgdGhlIGNsaWVudApkZXZpY2UuCgpJJ20gc3VyZSBoYXZpbmcgdGhhdCBjbGVhciBpbiBteSBo ZWFkIHdpbGwgZ28gc29tZSB3YXlzIHRvIHB1dCBtZSBpbiBhCnBvc2l0aW9uIHRvIGFkdmlzZSB5 b3UgZnVydGhlci4KCj4gPiBSZXF1ZXN0IHRoZSBkZXZpY2Utd2lkZSBtZW1vcnkgKGFuZCBvdGhl ciBzaGFyZWQgcmVzb3VyY2VzKSBoZXJlLgo+IAo+IFRoYXQncyB3aGF0IHNtY19ydGtpdC5jIGRv ZXMsIGJ1dCB5b3Ugc2VlbSBub3QgdG8gd2FudCB0aGF0IGNvZGUgaW4gbWZkLgoKSSdtIG5vdCBz dXJlIEkgZXhwbGljaXRseSBzYWlkIHRoYXQuCgo+ID4gQ29uZHVjdCBjb3JlIG9wZXJhdGlvbnMg YW5kIGluaXRpYWxpc2F0aW9uIGhlcmUKPiAKPiBUaGUgUlRLaXQgbGlicmFyeSBpcyBpbiBjaGFy Z2Ugb2YgY29yZSBSVEtpdCBpbml0aWFsaXphdGlvbiwgc21jX3J0a2l0Cj4gaXMgaW4gY2hhcmdl IG9mIFNNQy1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiwgYW5kIHNtY19jb3JlLmMgaXMgaW4gY2hh cmdlCj4gb2YgY29yZSBTTUMgb3BlcmF0aW9ucyBhbmQgaW5pdGlhbGl6YXRpb24uIFdoYXQsIGV4 YWN0bHksIGRvIHlvdSB3YW50IHRvCj4gbW92ZSBpbnRvIGRyaXZlcnMvbWZkPyAoaGludDogbm90 IHRoZSBSVEtpdCBsaWJyYXJ5LCB0aGF0IGlzIHNoYXJlZCBieQo+IG1hbnkgb3RoZXIgZHJpdmVy cykuCj4gCj4gPiB0aGVuIGNhbGwgaW50byB5b3VyIFBsYXRmb3JtIGFuZCBvdGhlciBjaGlsZCBk ZXZpY2VzIHRvIGluaXRpYXRlIHRoZSByZWFsIHdvcmsuCj4gCj4gVGhlcmUgaXMgbm90aGluZyB0 byBjYWxsIGludG8sIHRoZSBjaGlsZCBkZXZpY2VzIHdpbGwgYmluZCBhbmQgY2FsbAo+ICpiYWNr KiBpbnRvIHRoZSBTTUMgY29yZSB0byBkbyB0aGVpciBqb2IuCgoiY2FsbCBpbnRvIiB3YXMgbm90 IGEgZ29vZCBjaG9pY2Ugb2Ygd29yZHMgaGVyZS4gIFNpbXBseSwgbGV0IHRoZQpjaGlsZCBkZXZp Y2VzIGdvIGFib3V0IHRoZWlyIGJ1c2luZXNzIGFuZCBkbyB3aGF0ZXZlciB0aGV5IHdlcmUKZGVz aWduZWQgdG8gZG8uCgotLSAKTGVlIEpvbmVzIFvmnY7nkLzmlq9dCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==