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 B3CD0C77B7A for ; Tue, 16 May 2023 09:00:44 +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=dBjXcQoh3hK85FiLip/aHKH0DBkvWhXUZGgTYE42suY=; b=XIqupsOSNnImRV zwbEMIc2YHvXm3lMuFVEt8iL6w2wwivHGhTC1HxOBIS12zf9ISEa6GthK4fDk6DA6Nk3SQYC9B3Tm iHLd5IIHLOixNg/00xxZu7Uj8V408w20LW6A1G0lvwgk1ebeS4w/rjEdQasH5r82daofxFrLWGe4a HcVAo7i3utq8nJtYlI1xEBQrnhc963q+EzIukynN0JZU6Jb86YSRKCAXX2DytBkTpnh1J787nvZiA r8fecPWIubprAwRxSZFuEVDX5lyT07kdYECakrDbCfAI+ySHkQM8cTHH6+0cLEMR1mPfrDI9SDTn0 +R4XV3pAUYR9CREcb7dw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pyqXf-004xry-2r; Tue, 16 May 2023 09:00:23 +0000 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pyqXY-004xnA-1J; Tue, 16 May 2023 09:00:18 +0000 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-3078fa679a7so10273562f8f.3; Tue, 16 May 2023 02:00:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684227613; x=1686819613; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=fsHEp9W20r9XdmKlIDDyodAYlSBIH8ji8/Tkxn0QNCM=; b=EI3yy1gMDzOa3sRNIs4cGVaUpuybteTmQjUSmi39/6T5sWzyPQW8BCk1U7VWtIIlqN X7siL8aqFCh2WyjzTrVq2K+Pmg9FBT3hNlRldbFLJLRZm1KNQcWvxX410ZGf/gI5p6mr SQYB9A8VAaaQ8UlUuHKkUyuIX0UqxBly3i9Nui6T4qS+xbMawfouhaIbPn+bC0amOPNY Gu6vvjzNWfr1swI+Y0oE30/OPEXiX0EdtLdfwzIhUjfkxypBjFianjmeGRLvMcHXRERF io/rk42GKZuU85ACKtf49Ri7yvfsUXzwhzAnVNgsbhvDDTFv1Sz1lwRu3GjgGS0hzAfz J4iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684227613; x=1686819613; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fsHEp9W20r9XdmKlIDDyodAYlSBIH8ji8/Tkxn0QNCM=; b=LZQz3iwU2bW1qWxgNa6gbvMGV9+wVYAUmsv6B5ccs6NXTbKyu0wJIGdBQi4PGVhQlS UgdM/u1qW9crPYLum/2WnhN2tVB5iXSsND9iH+tyu6HyxvaImJj+PYg/4Dk0XeVgIWmY 35DnYU83I4fDcQVBqNqaOL7Vz1vEXyVMFP5JcBwNsyFOP3SHGFPBEnYd9cFGs3WkH7HS YIpafj8Y00O7RJzv4uS5ujd0eJ2aRtI/zfCToBf+UjrSXtguqV5zNcNrx7yyCa9vpZE5 XcZgnpyEdJlazeB13VrJbxmtOmNjGNxhHHwdJPANKaDViAZdNKSdPXIqsDyfqsKaopbX ARRw== X-Gm-Message-State: AC+VfDw6RK2aRrtVyf9/+6KpOGMY0tlMkii1ixgIG8nWCDYc2Sehplfa ltBajD5NR3k299JJ9mMYPUA= X-Google-Smtp-Source: ACHHUZ5K2045tsZAxqNWSGpdXx/aeLKhFn5YwgVE1hM6EJ531hsulbZdDNavi1x1JUWjqgDnzlEItw== X-Received: by 2002:adf:e909:0:b0:306:2db9:cc2c with SMTP id f9-20020adfe909000000b003062db9cc2cmr28921146wrm.32.1684227612710; Tue, 16 May 2023 02:00:12 -0700 (PDT) Received: from skbuf ([188.27.184.189]) by smtp.gmail.com with ESMTPSA id j6-20020adfff86000000b003078cd719ffsm1810033wrr.95.2023.05.16.02.00.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 May 2023 02:00:12 -0700 (PDT) Date: Tue, 16 May 2023 12:00:09 +0300 From: Vladimir Oltean To: "Russell King (Oracle)" Cc: Andrew Lunn , AngeloGioacchino Del Regno , Daniel Machon , "David S. Miller" , Eric Dumazet , Felix Fietkau , Florian Fainelli , Heiner Kallweit , Horatiu Vultur , Ioana Ciornei , Jakub Kicinski , John Crispin , Jose Abreu , Lars Povlsen , Lorenzo Bianconi , Marcin Wojtas , Mark Lee , Matthias Brugger , Maxime Chevallier , Paolo Abeni , Sean Wang , Steen Hegelund , Taras Chornyi , Thomas Petazzoni , UNGLinuxDriver@microchip.com, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, netdev@vger.kernel.org Subject: Re: [PATCH RFC] Providing a helper for PCS inband negotiation Message-ID: <20230516090009.ssq3uedjl53kzsjr@skbuf> References: <20230515195616.uwg62f7hw47mktfu@skbuf> <20230515220833.up43pd76zne2suy2@skbuf> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230516_020016_443010_0C1529C1 X-CRM114-Status: GOOD ( 59.69 ) 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 T24gVHVlLCBNYXkgMTYsIDIwMjMgYXQgMTI6MzY6MzNBTSArMDEwMCwgUnVzc2VsbCBLaW5nIChP cmFjbGUpIHdyb3RlOgo+ID4gQ2xhdXNlIDczIG5lZ290aWF0ZXMgdGhlIGFjdHVhbCB1c2Ugb2Yg MTBHQmFzZS1LUiBhcyBhIFNFUkRFUyBwcm90b2NvbAo+ID4gdGhyb3VnaCB0aGUgY29wcGVyIGJh Y2twbGFuZSBpbiBmYXZvciBvZiBvdGhlciAiQmFzZS1LKiIgYWx0ZXJuYXRpdmUKPiA+IGxpbmsg bW9kZXMsIHNvIGl0J3Mgbm90IHF1aXRlIHByb3BlciB0byBzYXkgdGhhdCAxMEdCYXNlLUtSIGlz IGEgY2xhdXNlCj4gPiA3MyB1c2luZyBwcm90b2NvbC4KPiAKPiBJIGJlbGlldmUgaXQgaXMgY29y cmVjdCB0byBzdGF0ZSBpdCBhcyBzdWNoLCBiZWNhdXNlOgo+IAo+IDcyLjE6IFRhYmxlIDcy4oCT MeKAlFBoeXNpY2FsIExheWVyIGNsYXVzZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSAxMEdCQVNFLUtS IFBNRAo+IAo+IAk3M+KAlEF1dG8tTmVnb3RpYXRpb24gZm9yIEJhY2twbGFuZSBFdGhlcm5ldCAg ICAgICAgICAgICAgUmVxdWlyZWQKPiAKPiBFc3NlbnRpYWxseSwgODAyLjMgZG9lc24ndCBwZXJt aXQgMTBHQkFTRS1LUiB3aXRob3V0IGhhcmR3YXJlIHN1cHBvcnQKPiBmb3IgQ2xhdXNlIDczIEFO IChidXQgdGhhdCBBTiBkb2Vzbid0IGhhdmUgdG8gYmUgZW5hYmxlZCBieSBtYW5hZ2VtZW50Cj4g c29mdHdhcmUuKQoKSnVzdCBsaWtlIGNsYXVzZSA0MCAoUENTIGFuZCBQTUEgZm9yIDEwMDBCQVNF LVQpIHJlcXVpcmVzIGNsYXVzZSAyOCBBTgp0byBiZSBzdXBwb3J0ZWQuIEJ1dCwgd2hlbiB0aGUg YXV0b25lZyBwcm9jZXNzIGJlZ2lucywgdGhlIHVzZSBvZgoxMEdCYXNlLUtSIGFzIGEgcHJvdG9j b2wgb3ZlciB0aGUgYmFja3BsYW5lIGxpbmsgaGFzbid0IGV2ZW4gYmVlbiB5ZXQKZXN0YWJsaXNo ZWQsIHNvIEkgZmluZCBpdCB1bm5hdHVyYWwgdG8gc3BlYWsgb2YgY2xhdXNlIDczIGF1dG9uZWcg YXMKc29tZXRoaW5nIHRoYXQgMTBHQmFzZS1LUiBoYXMuCgpUaGUgcmVhc29uIHdoeSBJJ20gaW5z aXN0aW5nIG9uIHRoaXMgaXMgYmVjYXVzZSB0byBtZSwgdG8gdHJlYXQgY2xhdXNlCjczIGFzIGFu IGluLWJhbmQgYXV0b25lZyBwcm9jZXNzIG9mIDEwR0Jhc2UtS1Igc291bmRzIGxpa2UgYSByZXZl cnNhbCBvZgpjYXVzYWxpdHkuIFRoZSBjbGF1c2UgNzMgbGluayBjb2Rld29yZCBoYXMgYSBUZWNo bm9sb2d5IEFiaWxpdHkgZmllbGQKdGhyb3VnaCB3aGljaCAxMEdCYXNlLUtSLCAxR0Jhc2UtS1gg ZXRjIGFyZSBhZHZlcnRpc2VkIGFzIHN1cHBvcnRlZApwcm90b2NvbHMuIElmIEM3MyBpcyBhbiBp bmJhbmQgcHJvdG9jb2wgb2YgMTBHQmFzZS1LUiwgd2hhdCBzaG91bGQgdGhlCmxvY2FsIFBDUyBh ZHZlcnRpc2UgZm9yIGl0cyBUZWNobm9sb2d5IEFiaWxpdHk/IE9ubHkgMTBHQmFzZS1LUiwgYmVj YXVzZQp0aGlzIGlzIHdoYXQgaXMgaW1wbGllZCBieSB0cmVhdGluZyBpdCBhcyBhbiBhdHRyaWJ1 dGUgb2YgMTBHQmFzZS1LUiwgbm8/CkJ1dCB0aGF0IHdvdWxkIGJlIGEgZGVuYXR1cmVkIHdheSBv ZiBuZWdvdGlhdGluZyAtIGFkdmVydGlzZSBhIHNpbmdsZQpsaW5rIG1vZGUsIHRha2UgaXQgb3Ig bGVhdmUgaXQuIEFuZCB3aGF0IG90aGVyIGluYmFuZCBhdXRvbmVnIHByb3RvY29scwpwZXJtaXQs IHNheSwgc3RhcnRpbmcgZnJvbSBTR01JSSBhbmQgZW5kaW5nIGluIDEwMDBCYXNlLVg/IENsYXVz ZSA3MwpjYW4ndCBiZSBkaXJlY3RseSBjb21wYXJlZCB0byB3aGF0IHdlIGN1cnJlbnRseSBtZWFu IGJ5IG1hbmFnZWQgPQoiaW4tYmFuZC1zdGF0dXMiLgoKTm90IG9ubHkgaXMgQzM3IGF1dG9uZWcg bm90IGRpcmVjdGx5IGNvbXBhcmFibGUgdG8gQzczLCBidXQgdGhleSBhcmUgbm90Cm11dHVhbGx5 IGV4Y2x1c2l2ZSwgZWl0aGVyLiBJIHdvdWxkIHNheSB0aGV5IGFyZSBtb3JlIG9yIGxlc3Mgb3J0 aG9nb25hbC4KTW9yZSBiZWxvdy4KCkkgZG9uJ3QgYmVsaWV2ZSB0aGF0IHRvZ2dsaW5nIGNsYXVz ZSA3MyBhdXRvbmVnIGJhc2VkIG9uIHBoeWxpbmtfcGNzX25lZ19tb2RlKCkKbWFrZXMgbXVjaCBz ZW5zZS4KCj4gPiBUbyBtZSwgdGhlIGdvYWxzIG9mIGNsYXVzZSA3MyBhdXRvbmVnIGFyZSBtdWNo IG1vcmUgc2ltaWxhciB0byB0aG9zZSBvZgo+ID4gdGhlIHR3aXN0ZWQgcGFpciBhdXRvbmVnIHBy b2Nlc3MgLSBjbGF1c2UgMjgsIHdoaWNoIHNpbWlsYXJseSBzZWxlY3RzCj4gPiBiZXR3ZWVuIGRp ZmZlcmVudCBtZWRpYSBzaWRlIHByb3RvY29scyBpbiB0aGUgUEhZLCB1c2luZyBhIHByaW9yaXR5 Cj4gPiByZXNvbHV0aW9uIGZ1bmN0aW9uLiBGb3IgdGhvc2UsIHdlIHVzZSBwaHlsaWIgYW5kIHRo ZSBwaHlfZGV2aWNlCj4gPiBzdHJ1Y3R1cmUuIFdoYXQgYXJlIHRoZSBtZXJpdHMgb2YgdXNpbmcg cGh5bGlua19wY3MgZm9yIGNvcHBlciBiYWNrcGxhbmVzCj4gPiBhbmQgbm90IHBoeWxpYj8KPiAK PiBJIGFncmVlIHdpdGggeW91IG9uIHRoYXQsIGJlY2F1c2Ugbm90IG9ubHkgZG9lcyB0aGF0IGZp dCBiZXR0ZXIgd2l0aAo+IG91ciBldGhlcm5ldCBQSFkgbW9kZWwsIGJ1dCBpdCBhbHNvIG1lYW5z IFBIWV9JTlRFUkZBQ0VfTU9ERV9YTEdNSUkKPiBtYWtlcyBzZW5zZS4KPiAKPiBIb3dldmVyLCBi eSB0aGF0IHNhbWUgdG9rZW4sIDEwMDBCQVNFLVggc2hvdWxkIG5ldmVyIGhhdmUgYmVlbiBhCj4g UEhZX0lOVEVSRkFDRV9NT0RFX3h4eCwgYW5kIHRoaXMgc2hvdWxkIGFsc28gaGF2ZSBiZWVuIHRy ZWF0ZWQgcHVyZWx5Cj4gYXMgYSBQSFkuCj4gCj4gVGFraW5nIHRoYXQgc3RpbGwgZnVydGhlciwg dGhpcyBtZWFucyBTR01JSSwgd2hpY2ggaXMgMTAwMEJBU0UtWCBidXQKPiBtb2RpZmllZCBmb3Ig Q2lzY28ncyBwdXJwb3Nlcywgd291bGQgZWZmZWN0aXZlbHkgYmUgYSBtZWRpYSBjb252ZXJ0aW5n Cj4gUEhZIHNhdCBiZXR3ZWVuIHRoZSBNQUMvUlMgYW5kIHRoZSAicmVhbCIgZXRoZXJuZXQgUEhZ LiBJbiB0aGlzIGNhc2UsCj4gUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJIG1pZ2h0IG1ha2Ugc2Vu c2UgYmVjYXVzZSB0aGUgInJlYWwiIGV0aGVybmV0Cj4gUEhZIG5lZWRzIHRvIGtub3cgdGhhdC4K PiAKPiBUaGVuIHRoZXJlJ3MgMTAwMEJBU0UtWCB1c2VkIHRvIGNvbm5lY3QgYSAicmVhbCIgZXRo ZXJuZXQgUEhZIHRvIHRoZQo+IE1BQy9SUywgd2hpY2ggbWVhbnMgMTAwMEJBU0UtWCBjYW4ndCBy ZWFsbHkgYmUgYW55IGRpZmZlcmVudCBmcm9tCj4gU0dNSUkuCj4gCj4gVGhpcyBhbGwgbWFrZXMg dGhlIHdob2xlIHRoaW5nIGV4dHJlbWVseSBtdWRkeSwgYnV0IHRoaXMgZGV2aWF0ZXMgYXdheQo+ IGZyb20gdGhlIG9yaWdpbmFsIHRvcGljLCBiZWNhdXNlIHdlJ3JlIG5vdyBpbnRvIGEgIndoYXQg c2hvdWxkIHdlIGNhbGwKPiBhIFBDUyIgdnMgIndoYXQgc2hvdWxkIHdlIGNhbGwgYSBQSFkiIGRp c2N1c3Npb24uIFRoZW4gd2UnbGwgZ2V0IGludG8KPiBhIGRpc2N1c3Npb24gYWJvdXQgcGh5bGli LCBkaWZmaWN1bHRpZXMgd2l0aCBuZXRfZGV2aWNlIG9ubHkgYmVpbmcKPiBhYmxlIHRvIGhhdmUg b25lIHBoeWxpYiBkZXZpY2UsIHN0YWNrZWQgUEhZcywgYW5kIHBoeWxpYiBub3QgYmVpbmcKPiBh YmxlIHRvIGNvcGUgd2l0aCBub24tTURJTyBiYXNlZCBkZXZpY2VzIHRoYXQgd2UgZmluZCBvbiBl bWJlZGRlZAo+IHBsYXRmb3JtcyAoc29tZSB3aGljaCBkb24ndCBldmVuIG9mZmVyIGFueXRoaW5n IHRoYXQgYXBwcm94aW1hdGVzIHRoZQo+IDgwMi4zIHJlZ2lzdGVyIHNldCwgc28gY291bGQgbmV2 ZXIgYmUgYSBwaHlsaWIgZHJpdmVyLikKPiAKPiBJdCBldmVuIGltcGFjdHMgb24gdGhlIERUIGRl c2NyaXB0aW9uLCBzaW5jZSB3aGF0IGRvZXMgIm1hbmFnZWQgPQo+ICJpbi1iYW5kLXN0YXR1cyI7 IiBtZWFuIGlmIHdlIHN0YXJ0IGNvbnNpZGVyaW5nIDEwMDBiYXNlLVggdGhlIHNhbWUKPiB3YXkg YXMgMTAwMGJhc2UtVCBhbmQgdGhlICJQSFkiIHByb3RvY29sIGZvciAxMDAwYmFzZS1YIGJlY29t ZXMgR01JSS4KPiBBIEdNSUkgbGluayBoYXMgbm8gaW5iYW5kIEFOLCBzbyAibWFuYWdlZCA9ICJp bi1iYW5kLXN0YXR1cyI7IiBhdAo+IHRoYXQgcG9pbnQgbWFrZXMgbm8gc2Vuc2UuCj4gCj4gVGhh dCBpcyBkZWZpbml0ZWx5IGEgY2FuIG9mIHdvcm1zIEkgZG8gKm5vdCogd2FudCB0byBvcGVuIHdp dGggdGhpcwo+IGRpc2N1c3Npb24gLSBhbmQgbXVjaCBvZiB0aGUgYWJvdmUgaGFzIGEgbG9uZyBo aXN0b3J5IGFuZCBjb25zaWRlcmFibHkKPiBwcmUtZGF0ZXMgcGh5bGluay4KCkkgZG9uJ3QgaGF2 ZSBtdWNoIG9mIGEgcHJvYmxlbSBhY2NlcHRpbmcgdGhhdCBub3QgZXZlcnl0aGluZyB3ZSBoYXZl CmluLXRyZWUgaXMgY29uc2lzdGVudC9jb3JyZWN0LiBCdXQgaWYgeW91IHRoaW5rIGl0J3MgdG9v IGJpZyBvZiBhIGNhbiBvZgp3b3JtcyB0byBvcGVuLCBva2F5LgoKPiAKPiBNeSBvcmlnaW5hbCBx dWVzdGlvbiB3YXMgbW9yZSBhcm91bmQ6IGhvdyBkbyB3ZSBkZWNpZGUgd2hhdCB3ZQo+IGN1cnJl bnRseSBoYXZlIGFzIGEgUENTIHNob3VsZCB1c2UgaW5iYW5kIG5lZ290aWF0aW9uLgo+IAo+IEZv ciBTR01JSSBhbmQgY2xvc2UgcmVsYXRpdmVzLCBhbmQgMTAwMEJBU0UtWCBpdCdzIGJlZW4gb2J2 aW91cy4gRm9yCj4gMjUwMEJBU0UtWCBsZXNzIHNvIChkdWUgdG8gdmVuZG9ycyBjb21pbmcgdXAg d2l0aCBpdCBiZWZvcmUgaXRzIGJlZW4KPiBzdGFuZGFyZGlzZWQuKQo+IAo+IFdlIGhhdmUgaW1w bGVtZW50YXRpb25zIHVzaW5nIHRoaXMgZm9yIG90aGVyIHByb3RvY29scywgc28gaXQncwo+IGEg cXVlc3Rpb24gdGhhdCBuZWVkcyBhbnN3ZXJpbmcgZm9yIHRoZXNlIG90aGVyIHByb3RvY29scy4K PiAKPiAKPiBIb3dldmVyLCBpZiB3ZSBkaWQgd2FudCB0byBleHRlbmQgdGhpcyB0b3BpYywgdGhl biB0aGVyZSBhcmUgYSBudW1iZXIKPiBvZiBxdWVzdGlvbnMgdGhhdCByZWFsbHkgbmVlZCB0byBi ZSBhc2tlZCBpcyBhYm91dCB0aGUgWFBDUyBkcml2ZXIuCj4gU3VjaCBhcyAtIHdoYXQgZG9lcyAx MDAwQkFTRS1LWCwgMTAwMDBCQVNFLUtYNCwgMTAwMDBCQVNFLUtSIGFuZAo+IDI1MDBCQVNFLVgg aGF2ZSB0byBkbyB3aXRoIFVTWEdNSUksIGFuZCB3aHkgYXJlIHRoZXJlIG5vIGNvcHBlcgo+IGV0 aHRvb2wgbW9kZXMgbGlzdGVkIHdoZW4gYSBVU1hHTUlJIGxpbmsgY2FuIGRlZmluaXRlbHkgc3Vw cG9ydAo+IGJlaW5nIGNvbm5lY3RlZCB0byBhIGNvcHBlciBQSFk/IChTZWUgeHBjc191c3hnbWlp X2ZlYXR1cmVzW10pLgo+IAo+IFdoeSBkb2VzIFhQQ1MgdGhpbmsgdGhhdCBVU1hHTUlJIHVzZXMg Q2xhdXNlIDczIEFOPyAoc2VlIHRoZSBmaXJzdAo+IGVudHJ5IGluIHN5bm9wc3lzX3hwY3NfY29t cGF0W10uKQoKRmlyc3QsIGluIHByaW5jaXBsZSBVU1hHTUlJIGFuZCBjbGF1c2UgNzMgYXJlIG5v dCBtdXR1YWxseSBleGNsdXNpdmUuCgpJdCBpcyBwb3NzaWJsZSB0byB1c2UgY2xhdXNlIDczIHRv IGFkdmVydGlzZSAxMEdCYXNlLUtSIGFzIGEgbGluayBtb2RlLAphbmQgdGhhdCB3aWxsIGdpdmUg eW91IGxpbmsgdHJhaW5pbmcgZm9yIHByb3BlciAzLXRhcCBlbGVjdHJpY2FsCmVxdWFsaXphdGlv biBvdmVyIHRoZSBjb3BwZXIgYmFja3BsYW5lLgoKVGhlbiwgb25jZSBDNzMgQU4vTFQgZW5kZWQg YW5kIDEwR0Jhc2UtS1IgaGFzIGJlZW4gZXN0YWJsaXNoZWQsIGlzCnBvc3NpYmxlIHRvIGNvbmZp Z3VyZSB0aGUgMTBHQmFzZS1SIFBDUyB0byBlbmFibGUgQzM3IFVTWEdNSUkgdG8gc2VsZWN0CnRo ZSBhY3R1YWwgZGF0YSByYXRlIHZpYSBzeW1ib2wgcmVwbGljYXRpb24sIHdoaWxlIHRoZSBTRVJE RVMgbGFuZQpyZW1haW5zIGF0IDEwR0JhdWQuIEF0IGxlYXN0LCB0aGUgWFBDUyBzZWVtcyB0byBw ZXJtaXQgZW5hYmxpbmcgc3ltYm9sCnJlcGxpY2F0aW9uIGluIGNvbmp1bmN0aW9uIHdpdGggMTBH QmFzZS1LUi4KCkNyb3NzLWNoZWNraW5nIHdoYXQgdGhlIFhQQ1MgZHJpdmVyIGRvZXMgd2l0aCB0 aGUgWFBDUyBkYXRhYm9vaywgSSB0aGluawppdCdzIHRoaXM6CgpJdCBkb2Vzbid0IHVzZSBDMzcg YXV0b25lZywgYnV0IGl0IHN0aWxsIHVzZXMgdGhlIFVTWEdNSUkgcmVwbGljYXRvci4KSXQgdXNl cyBDNzMgKHN0YW5kYXJkIG9yIHBlcmhhcHMgYSB2ZW5kb3Itc3BlY2lmaWMgZm9ybSkgdG8gYWR2 ZXJ0aXNlCnRoZSAxMDAwYmFzZUtYX0Z1bGwsIDI1MDBiYXNlWF9GdWxsLCAxMDAwMGJhc2VLWDRf RnVsbCwgMTAwMDBiYXNlS1JfRnVsbApsaW5rIG1vZGVzLiBFYWNoIG9mIHRoZXNlIGNvcnJlc3Bv bmRzIHRvIGEgYml0IGluIHRoZSBTUl9BTl9BRFYzCnJlZ2lzdGVyLgoKTm90ZSB0aGF0IDI1MDBi YXNlWF9GdWxsIGRvZXNuJ3QgaGF2ZSBhICJLIiwgYW5kIGZvciBnb29kIHJlYXNvbiAtCmJlY2F1 c2UgODAyLjMgVGFibGUgNzPigJM04oCUIlRlY2hub2xvZ3kgQWJpbGl0eSBGaWVsZCBlbmNvZGlu ZyIgZG9lc24ndApzcGVjaWZ5IDI1MDBCYXNlLUtYIGFzIGEgY29wcGVyIGJhY2twbGFuZSBtb2Rl IHRoYXQgZXhpc3RzLiBCdXQgWFBDUwpkb2VzISBUbyBxdW90ZSB0aGUgZGF0YWJvb2s6Cgp8IFdo ZW4gREFUQVszMl0gaXMgc2V0IHRvIDEsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBsb2NhbCBkZXZp Y2UKfCBzdXBwb3J0cyAyLjVHQkFTRS1LWCBzcGVlZCBtb2RlLgoKQW5kIHNpbmNlIGl0IGFkdmVy dGlzZXMgdGhpcyB0aHJvdWdoIGEgY29kZSB3b3JkIHZpc2libGUgdG8gdGhlIGxpbmsKcGFydG5l ciwgSSB3b3VsZCBzdWdnZXN0IHRoaXMgbWVhbnMgdGhhdCBpdHMgQzczIGhhcmR3YXJlIGltcGxl bWVudGF0aW9uCmlzIG5vbi1zdGFuZGFyZC4KClRoZW4sIHRoZXJlJ3MgdGhlIGVudGlyZSBpc3N1 ZSBvZiB3aGF0IHRoZSBzb2Z0d2FyZSBkb2VzLgoKV2hlbiAxR0Jhc2UtS1ggaXMgZXN0YWJsaXNo ZWQgdGhyb3VnaCBDNzMgYXV0b25lZywgdGhlIFhQQ1MgZHJpdmVyCndpbGwgbGVhdmUgdGhlIGxh bmUgaW4gMTBHQmFzZS1SIG1vZGUsIGFuZCBlbmFibGUgMToxMCBzeW1ib2wgcmVwbGljYXRpb24K aW4gdGhlIFVTWEdNSUkgYmxvY2suIFN1cmUsIHRoaXMgaXMgYSAxR2JpdCBkYXRhIHJhdGUsIGJ1 dCBpdCB1c2VzIHRoZQo2NGIvNjZiIGVuY29kaW5nIChCQVNFLVIpLCBhbmQgbm90IHRoZSBhZHZl cnRpc2VkIDhiLzEwYiBlbmNvZGluZwooQkFTRS1YKSEgU28gaXQgd2lsbCBsaWtlbHkgb25seSB3 b3JrIGJldHdlZW4gMiBYUENTIGRldmljZXMhISEKClRoZW4sIHRoZXJlJ3MgdGhlIGVudGlyZSBp c3N1ZSB0aGF0IHRoZSBjb2RlLCBhcyBpdCB3YXMgb3JpZ2luYWxseQppbnRyb2R1Y2VkLCBpcyBu b3QgdGhlIHNhbWUgYXMgaXQgaXMgbm93LiBGb3IgZXhhbXBsZSwgdGhpcyBiaXQgaW4KeHBjc19k b19jb25maWcoKToKCglzd2l0Y2ggKGNvbXBhdC0+YW5fbW9kZSkgewoJY2FzZSBEV19BTl9DNzM6 CgkJaWYgKHBoeWxpbmtfYXV0b25lZ19pbmJhbmQobW9kZSkpIHsKCQkJcmV0ID0geHBjc19jb25m aWdfYW5lZ19jNzMoeHBjcywgY29tcGF0KTsKCQkJaWYgKHJldCkKCQkJCXJldHVybiByZXQ7CgkJ fQoJCWJyZWFrOwoKdXNlZCB0byBsb29rIGF0IHN0YXRlLT5hbl9lbmFibGVkIHJhdGhlciB0aGFu IHBoeWxpbmtfYXV0b25lZ19pbmJhbmQoKS4KVGhyb3VnaCBteSBpZGlvY3ksIEkgaW5hZHZlcnRl bnRseSBjb252ZXJ0ZWQgdGhhdCBpbiBjb21taXQgMTEwNTk3NDBlNjE2CigibmV0OiBwY3M6IHhw Y3M6IGNvbnZlcnQgdG8gcGh5bGlua19wY3Nfb3BzIikuCgo+IAo+IHhwY3Nfc2dtaWlfZmVhdHVy ZXNbXSBvbmx5IG1lbnRpb25zIGNvcHBlciBsaW5rbW9kZXMsIGJ1dCBhcyB3ZSBrbm93LAo+IGl0 J3MgY29tbW9uIGZvciBjb3BwZXIgUEhZcyB0byBhbHNvIHN1cHBvcnQgZmlicmUgd2l0aCBhbiBh dXRvLQo+IHNlbGVjdGlvbiBtZWNoYW5pc20uIFNvLCAxMDAwQkFTRS1YIGlzIGRlZmluaXRlbHkg cG9zc2libGUgaWYgU0dNSUkKPiBpcyBzdXBwb3J0ZWQsIHNvIHdoeSBpc24ndCBpdCBsaXN0ZWQu CgpNb3N0IGxpa2VseSBleHBsYW5hdGlvbiBpcyB0aGF0IFhQQ1MgaGFzIG5ldmVyIGJlZW4gcGFp cmVkIHVwIHVudGlsIG5vdwp0byBzdWNoIGEgUEhZLgoKPiBBcyBwcmV2aW91c2x5IHNhaWQsIDEw MDBCQVNFLVggY2FuIGJlIGNvbm5lY3RlZCB0byBhIFBIWSB0aGF0IGRvZXMKPiAxMDAwQkFTRS1U LCBzbyB3aHkgZG9lcyB4cGNzXzEwMDBiYXNleF9mZWF0dXJlc1tdIG5vdCBtZW50aW9uCj4gMTAw MGJhc2VUX0Z1bGwuLi4gdGhlcmUncyBwcm9iYWJseSBtb3JlIGhlcmUgYXMgd2VsbC4KPiAKPiBJ bnRlcmVzdGluZ2x5LCB4cGNzXzI1MDBiYXNleF9mZWF0dXJlc1tdIF9kb2VzXyBtZW50aW9uIGJv dGgKPiAyNTAwQkFTRS1YIGFuZCAyNTAwQkFTRS1ULCBidXQgSSB0aGluayB0aGF0IG9ubHkgZG9l cyBiZWNhdXNlIEkKPiBoYXBwZW5lZCB0byBjb21tZW50IG9uIGl0IGR1cmluZyBhIHJldmlldy4K PiAKPiBJIHRoaW5rIHhwY3MgaXMgYW5vdGhlciBjYW4gb2Ygd29ybXMsIGJ1dCBpcyBhbiBlYXNp ZXIgY2FuIG9mIHdvcm1zCj4gdG8gc29sdmUgdGhhbiB0cnlpbmcgdG8gc29ydCBvdXQgdGhhdCAi d2hhdCdzIGFuIGV0aGVybmV0IFBIWSIKPiBxdWVzdGlvbiB3ZSBzZWVtIHRvIGJlIGhlYWRpbmcg dG93YXJkcyAod2hpY2ggSSB0aGluayB3b3VsZCBiZSBhCj4gbWFtbW90aCB0YXNrLCBldmVuIGJh Y2sgd2hlbiBwaHlsaW5rIGRpZG4ndCBleGlzdCwgdG8gc29ydCBvdXQuKQoKSSB3YXNuJ3QgbmVj ZXNzYXJpbHkgZ29pbmcgdG8gZ28gYWxsIHRoZSB3YXkgaW50byAid2hhdCdzIGEgUEhZPyIuCkkg anVzdCB3YW50IHRvIGNsYXJpZnkgc29tZSB0ZXJtcyBzdWNoIHRoYXQgd2UgY2FuIGFncmVlIHdo YXQgaXMgY29ycmVjdAphbmQgd2hhdCBpcyBub3QuIEkgYmVsaWV2ZSB0aGF0IG11Y2ggb2Ygd2hh dCdzIGN1cnJlbnRseSBpbiBYUENTIHcuci50LgpDNzMgaXMgbm90IGNvcnJlY3QsIHBhcnRseSB0 aHJvdWdoIGluaXRpYWwgaW50ZW50aW9uIGFuZCBwYXJ0bHkgdGhyb3VnaApibGluZCBjb252ZXJz aW9ucyBzdWNoIGFzIG1pbmUuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==