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 D1585C4167B for ; Thu, 30 Nov 2023 07:12:57 +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=ia9VJPq61HN4lYiKTmfI6ujMBCCN32Y0EXrgxC41oeM=; b=A73jq92J+Wkmsi /xU/QumWmGfyNu+LUFQFgm0QiY6f4JiGj9oYrjeYILfiJZVddT4EmhCpIrdA1K1MX92dszAvT0jGA v10JV6ThnKbA7JRNxBfrKpvjU2zIJG0w94WK9VZRCu300hR/guqlMLX+JKuUNJ7Lr/XS6kDsYRdjX 5mVC0qikN35LKJh/DdjyJt8IXkzFu9Q9kYDUetorJIRFEn9CkF04FuWSYo18LbbuZhiRzAhNV2mIO 4XmSYgdqKeYTMGsQhIS92lybJJKjJ0mZpGxpFSxdbHK78ifk+MczM+vcqlauriTCUe6QOkEhc0SaR K4ZxOMWe+njPTSMI7Zvw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r8bEH-00A4FA-1m; Thu, 30 Nov 2023 07:12:57 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r8bED-00A4EE-0B for linux-phy@lists.infradead.org; Thu, 30 Nov 2023 07:12:56 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 069A061089; Thu, 30 Nov 2023 07:12:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21673C433C7; Thu, 30 Nov 2023 07:12:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701328370; bh=Nvr3s9a9nquft77vyd+DXYqvI9sRAvSV7ZSd+qVY2cA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=khhBIH+Y1UgeplrVX6OYu0+sC6c56AZrE6aVM7rhmO5pncLa92oxUP+Gsh/CAAR+j zeG/UCMQJLyCzJN/f+QJ+PeyPTrpFRQv7QXn3lRjXxCgxiyP05Mx2pHpi7vAoR7JLb pm6XMlQUGIEerBuG3SkG4bSgVb606gWu5IoK4+vwC5C17TEbsuJWr3LriHzzH2emYc 6kstRiMwGH1P6W4S88z+ZyskLBMGaikEhL1+W2+HYpDj3Onz+qtPr0lX8XWVzepvaV j3XOpiC/l2zey/fo6W/i1QmwUd3uqR/04FbcTALnIOKz1KhXar21AWMMtsWuL+FJl1 NonrRMnNcy1cQ== Date: Thu, 30 Nov 2023 12:42:40 +0530 From: Manivannan Sadhasivam To: Can Guo Cc: bvanassche@acm.org, adrian.hunter@intel.com, cmd4@qualcomm.com, beanhuo@micron.com, avri.altman@wdc.com, junwoo80.lee@samsung.com, martin.petersen@oracle.com, linux-scsi@vger.kernel.org, linux-arm-msm@vger.kernel.org, Andy Gross , Bjorn Andersson , Konrad Dybcio , Vinod Koul , Kishon Vijay Abraham I , "open list:GENERIC PHY FRAMEWORK" , open list Subject: Re: [PATCH v6 08/10] phy: qualcomm: phy-qcom-qmp-ufs: Add High Speed Gear 5 support for SM8550 Message-ID: <20231130071240.GG3043@thinkpad> References: <1701246516-11626-1-git-send-email-quic_cang@quicinc.com> <1701246516-11626-9-git-send-email-quic_cang@quicinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1701246516-11626-9-git-send-email-quic_cang@quicinc.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231129_231253_662482_05D63597 X-CRM114-Status: GOOD ( 25.79 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org T24gV2VkLCBOb3YgMjksIDIwMjMgYXQgMTI6Mjg6MzNBTSAtMDgwMCwgQ2FuIEd1byB3cm90ZToK PiBPbiBTTTg1NTAsIHR3byBzZXRzIG9mIFVGUyBQSFkgc2V0dGluZ3MgYXJlIHByb3ZpZGVkLCBv bmUgc2V0IGlzIHRvIHN1cHBvcnQKPiBIUy1HNSwgYW5vdGhlciBzZXQgaXMgdG8gc3VwcG9ydCBI Uy1HNCBhbmQgbG93ZXIgZ2VhcnMuIFRoZSB0d28gc2V0cyBvZiBQSFkKPiBzZXR0aW5ncyBhcmUg cHJvZ3JhbW1pbmcgZGlmZmVyZW50IHZhbHVlcyB0byBkaWZmZXJlbnQgcmVnaXN0ZXJzLCBtaXhp bmcKPiB0aGUgdHdvIHNldHMgYW5kL29yIG92ZXJ3cml0aW5nIG9uZSBzZXQgd2l0aCBhbm90aGVy IHNldCBpcyBkZWZpbml0ZWx5IG5vdAo+IGJsZXNzZWQgYnkgVUZTIFBIWSBkZXNpZ25lcnMuCj4g Cj4gVG8gYWRkIEhTLUc1IHN1cHBvcnQgZm9yIFNNODU1MCwgc3BsaXQgdGhlIHR3byBzZXRzIG9m IFBIWSBzZXR0aW5ncyBpbnRvCj4gdGhlaXIgZGVkaWNhdGVkIG92ZXJsYXkgdGFibGVzLCBvbmx5 IHRoZSBjb21tb24gcGFydHMgb2YgdGhlIHR3byBzZXRzIG9mCj4gUEhZIHNldHRpbmdzIGFyZSBs ZWZ0IGluIHRoZSAudGJscy4KPiAKPiBDb25zaWRlciB3ZSBhcmUgZ29pbmcgdG8gYWRkIGV2ZW4g aGlnaGVyIGdlYXIgc3VwcG9ydCBpbiBmdXR1cmUsIHRvIGF2b2lkCj4gYWRkaW5nIG1vcmUgdGFi bGVzIHdpdGggZGlmZmVyZW50IG5hbWVzLCByZW5hbWUgdGhlIC50YmxzX2hzX2c0IGFuZCBtYWtl IGl0Cj4gYW4gYXJyYXksIGEgc2l6ZSBvZiAyIGlzIGVub3VnaCBhcyBvZiBub3cuCj4gCj4gSW4g dGhpcyBjYXNlLCAudGJscyBhbG9uZSBpcyBub3QgYSBjb21wbGV0ZSBzZXQgb2YgUEhZIHNldHRp bmdzLCBzbyBlaXRoZXIKPiB0YmxzX2hzX292ZXJsYXlbMF0gb3IgdGJsc19oc19vdmVybGF5WzFd IG11c3QgYmUgYXBwbGllZCBvbiB0b3Agb2YgdGhlCj4gLnRibHMgdG8gYmVjb21lIGEgY29tcGxl dGUgc2V0IG9mIFBIWSBzZXR0aW5ncy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDYW4gR3VvIDxxdWlj X2NhbmdAcXVpY2luYy5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29t LXFtcC1wY3MtdWZzLXY2LmggICAgIHwgICAyICsKPiAgZHJpdmVycy9waHkvcXVhbGNvbW0vcGh5 LXFjb20tcW1wLXFzZXJkZXMtY29tLXY2LmggfCAgIDIgKwo+ICAuLi4vcXVhbGNvbW0vcGh5LXFj b20tcW1wLXFzZXJkZXMtdHhyeC11ZnMtdjYuaCAgICB8ICAgOSArKwo+ICBkcml2ZXJzL3BoeS9x dWFsY29tbS9waHktcWNvbS1xbXAtdWZzLmMgICAgICAgICAgICB8IDE3MCArKysrKysrKysrKysr KysrKystLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29tLXFt cC1wY3MtdWZzLXY2LmggYi9kcml2ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1xbXAtcGNzLXVm cy12Ni5oCj4gaW5kZXggYzIzZDVlNC4uZTU2M2FmNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Bo eS9xdWFsY29tbS9waHktcWNvbS1xbXAtcGNzLXVmcy12Ni5oCj4gKysrIGIvZHJpdmVycy9waHkv cXVhbGNvbW0vcGh5LXFjb20tcW1wLXBjcy11ZnMtdjYuaAo+IEBAIC0xOCw2ICsxOCw3IEBACj4g ICNkZWZpbmUgUVBIWV9WNl9QQ1NfVUZTX0JJU1RfRklYRURfUEFUX0NUUkwJCTB4MDYwCj4gICNk ZWZpbmUgUVBIWV9WNl9QQ1NfVUZTX1RYX0hTR0VBUl9DQVBBQklMSVRZCQkweDA3NAo+ICAjZGVm aW5lIFFQSFlfVjZfUENTX1VGU19SWF9IU0dFQVJfQ0FQQUJJTElUWQkJMHgwYmMKPiArI2RlZmlu ZSBRUEhZX1Y2X1BDU19VRlNfUlhfSFNfRzVfU1lOQ19MRU5HVEhfQ0FQQUJJTElUWQkweDEyYwo+ ICAjZGVmaW5lIFFQSFlfVjZfUENTX1VGU19ERUJVR19CVVNfQ0xLU0VMCQkweDE1OAo+ICAjZGVm aW5lIFFQSFlfVjZfUENTX1VGU19MSU5FQ0ZHX0RJU0FCTEUJCQkweDE3Ywo+ICAjZGVmaW5lIFFQ SFlfVjZfUENTX1VGU19SWF9NSU5fSElCRVJOOF9USU1FCQkweDE4NAo+IEBAIC0yNyw1ICsyOCw2 IEBACj4gICNkZWZpbmUgUVBIWV9WNl9QQ1NfVUZTX1JFQURZX1NUQVRVUwkJCTB4MWE4Cj4gICNk ZWZpbmUgUVBIWV9WNl9QQ1NfVUZTX1RYX01JRF9URVJNX0NUUkwxCQkweDFmNAo+ICAjZGVmaW5l IFFQSFlfVjZfUENTX1VGU19NVUxUSV9MQU5FX0NUUkwxCQkweDFmYwo+ICsjZGVmaW5lIFFQSFlf VjZfUENTX1VGU19SWF9IU0c1X1NZTkNfV0FJVF9USU1FCQkweDIyMAo+ICAKPiAgI2VuZGlmCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29tLXFtcC1xc2VyZGVzLWNv bS12Ni5oIGIvZHJpdmVycy9waHkvcXVhbGNvbW0vcGh5LXFjb20tcW1wLXFzZXJkZXMtY29tLXY2 LmgKPiBpbmRleCBmNDIwZjhmLi5lZjM5MmNlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGh5L3F1 YWxjb21tL3BoeS1xY29tLXFtcC1xc2VyZGVzLWNvbS12Ni5oCj4gKysrIGIvZHJpdmVycy9waHkv cXVhbGNvbW0vcGh5LXFjb20tcW1wLXFzZXJkZXMtY29tLXY2LmgKPiBAQCAtNTYsNiArNTYsOCBA QAo+ICAjZGVmaW5lIFFTRVJERVNfVjZfQ09NX1NZU19DTEtfQ1RSTAkJCQkweGU0Cj4gICNkZWZp bmUgUVNFUkRFU19WNl9DT01fU1lTQ0xLX0JVRl9FTkFCTEUJCQkweGU4Cj4gICNkZWZpbmUgUVNF UkRFU19WNl9DT01fUExMX0lWQ08JCQkJCTB4ZjQKPiArI2RlZmluZSBRU0VSREVTX1Y2X0NPTV9D TU5fSUVUUklNCQkJCTB4ZmMKPiArI2RlZmluZSBRU0VSREVTX1Y2X0NPTV9DTU5fSVBUUklNCQkJ CTB4MTAwCj4gICNkZWZpbmUgUVNFUkRFU19WNl9DT01fU1lTQ0xLX0VOX1NFTAkJCQkweDExMAo+ ICAjZGVmaW5lIFFTRVJERVNfVjZfQ09NX1JFU0VUU01fQ05UUkwJCQkJMHgxMTgKPiAgI2RlZmlu ZSBRU0VSREVTX1Y2X0NPTV9MT0NLX0NNUF9FTgkJCQkweDEyMAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1xbXAtcXNlcmRlcy10eHJ4LXVmcy12Ni5oIGIvZHJp dmVycy9waHkvcXVhbGNvbW0vcGh5LXFjb20tcW1wLXFzZXJkZXMtdHhyeC11ZnMtdjYuaAo+IGlu ZGV4IDY3NGYxNTguLjQ4ZjMxYzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9waHkvcXVhbGNvbW0v cGh5LXFjb20tcW1wLXFzZXJkZXMtdHhyeC11ZnMtdjYuaAo+ICsrKyBiL2RyaXZlcnMvcGh5L3F1 YWxjb21tL3BoeS1xY29tLXFtcC1xc2VyZGVzLXR4cngtdWZzLXY2LmgKPiBAQCAtMTUsOCArMTUs MTUgQEAKPiAgCj4gICNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhfVUNEUl9GQVNUTE9DS19GT19H QUlOX1JBVEUyCQkweDA4Cj4gICNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhfVUNEUl9GQVNUTE9D S19GT19HQUlOX1JBVEU0CQkweDEwCj4gKyNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhfVUNEUl9G QVNUTE9DS19TT19HQUlOX1JBVEU0CQkweDI0Cj4gKyNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhf VUNEUl9GQVNUTE9DS19DT1VOVF9ISUdIX1JBVEU0CTB4NTQKPiAgI2RlZmluZSBRU0VSREVTX1VG U19WNl9SWF9VQ0RSX0ZPX0dBSU5fUkFURTIJCQkweGQ0Cj4gKyNkZWZpbmUgUVNFUkRFU19VRlNf VjZfUlhfVUNEUl9GT19HQUlOX1JBVEU0CQkJMHhkYwo+ICsjZGVmaW5lIFFTRVJERVNfVUZTX1Y2 X1JYX1VDRFJfU09fR0FJTl9SQVRFNAkJCTB4ZjAKPiArI2RlZmluZSBRU0VSREVTX1VGU19WNl9S WF9VQ0RSX1BJX0NPTlRST0xTCQkJMHhmNAo+ICAjZGVmaW5lIFFTRVJERVNfVUZTX1Y2X1JYX1ZH QV9DQUxfTUFOX1ZBTAkJCTB4MTc4Cj4gKyNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhfRVFfT0ZG U0VUX0FEQVBUT1JfQ05UUkwxCQkweDFiYwo+ICsjZGVmaW5lIFFTRVJERVNfVUZTX1Y2X1JYX09G RlNFVF9BREFQVE9SX0NOVFJMMwkJCTB4MWM0Cj4gICNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhf TU9ERV9SQVRFXzBfMV9CMAkJCTB4MjA4Cj4gICNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhfTU9E RV9SQVRFXzBfMV9CMQkJCTB4MjBjCj4gICNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhfTU9ERV9S QVRFXzBfMV9CMwkJCTB4MjE0Cj4gQEAgLTI4LDYgKzM1LDggQEAKPiAgI2RlZmluZSBRU0VSREVT X1VGU19WNl9SWF9NT0RFX1JBVEUzX0I1CQkJCTB4MjY0Cj4gICNkZWZpbmUgUVNFUkRFU19VRlNf VjZfUlhfTU9ERV9SQVRFM19COAkJCQkweDI3MAo+ICAjZGVmaW5lIFFTRVJERVNfVUZTX1Y2X1JY X01PREVfUkFURTRfQjMJCQkJMHgyODAKPiArI2RlZmluZSBRU0VSREVTX1VGU19WNl9SWF9NT0RF X1JBVEU0X0I0CQkJCTB4Mjg0Cj4gICNkZWZpbmUgUVNFUkRFU19VRlNfVjZfUlhfTU9ERV9SQVRF NF9CNgkJCQkweDI4Ywo+ICsjZGVmaW5lIFFTRVJERVNfVUZTX1Y2X1JYX0RMTDBfRlRVTkVfQ1RS TAkJCTB4MmY4Cj4gIAo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvcXVhbGNv bW0vcGh5LXFjb20tcW1wLXVmcy5jIGIvZHJpdmVycy9waHkvcXVhbGNvbW0vcGh5LXFjb20tcW1w LXVmcy5jCj4gaW5kZXggMjE3MzQxOC4uN2U1ZjExNTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9w aHkvcXVhbGNvbW0vcGh5LXFjb20tcW1wLXVmcy5jCj4gKysrIGIvZHJpdmVycy9waHkvcXVhbGNv bW0vcGh5LXFjb20tcW1wLXVmcy5jCj4gQEAgLTQxLDYgKzQxLDggQEAKPiAgCj4gICNkZWZpbmUg UEhZX0lOSVRfQ09NUExFVEVfVElNRU9VVAkJMTAwMDAKPiAgCj4gKyNkZWZpbmUgTlVNX09WRVJM QVkJCQkJMgo+ICsKPiAgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgewo+ICAJdW5zaWduZWQgaW50 IG9mZnNldDsKPiAgCXVuc2lnbmVkIGludCB2YWw7Cj4gQEAgLTc1NCwxNSArNzU2LDIyIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTg1NTBfdWZzcGh5X3NlcmRlc1td ID0gewo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9IU0NMS19TRUxfMSwgMHgx MSksCj4gIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjZfQ09NX0hTQ0xLX0hTX1NXSVRDSF9T RUxfMSwgMHgwMCksCj4gIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjZfQ09NX0xPQ0tfQ01Q X0VOLCAweDAxKSwKPiAtCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WNl9DT01fVkNPX1RVTkVf TUFQLCAweDA0KSwKPiAtCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WNl9DT01fUExMX0lWQ08s IDB4MGYpLAo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9WQ09fVFVORV9JTklU VkFMMiwgMHgwMCksCj4gIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjZfQ09NX0RFQ19TVEFS VF9NT0RFMCwgMHg0MSksCj4gLQlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjZfQ09NX0NQX0NU UkxfTU9ERTAsIDB4MGEpLAo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9QTExf UkNUUkxfTU9ERTAsIDB4MTgpLAo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9Q TExfQ0NUUkxfTU9ERTAsIDB4MTQpLAo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NP TV9MT0NLX0NNUDFfTU9ERTAsIDB4N2YpLAo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2 X0NPTV9MT0NLX0NNUDJfTU9ERTAsIDB4MDYpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNtODU1MF91ZnNwaHlfaHNfYl9zZXJkZXNbXSA9IHsKPiAr CVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WNl9DT01fVkNPX1RVTkVfTUFQLCAweDQ0KSwKPiAr fTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTg1NTBfdWZz cGh5X2c0X3NlcmRlc1tdID0gewo+ICsJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9W Q09fVFVORV9NQVAsIDB4MDQpLAo+ICsJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9Q TExfSVZDTywgMHgwZiksCj4gKwlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjZfQ09NX0NQX0NU UkxfTU9ERTAsIDB4MGEpLAo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9ERUNf U1RBUlRfTU9ERTEsIDB4NGMpLAo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2X0NPTV9D UF9DVFJMX01PREUxLCAweDBhKSwKPiAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WNl9DT01f UExMX1JDVFJMX01PREUxLCAweDE4KSwKPiBAQCAtNzcxLDE5ICs3ODAsMjQgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNtODU1MF91ZnNwaHlfc2VyZGVzW10gPSB7Cj4g IAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjZfQ09NX0xPQ0tfQ01QMl9NT0RFMSwgMHgwNyks Cj4gIH07Cj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc204NTUw X3Vmc3BoeV9oc19iX3NlcmRlc1tdID0gewo+IC0JUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y2 X0NPTV9WQ09fVFVORV9NQVAsIDB4NDQpLAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlf aW5pdF90Ymwgc204NTUwX3Vmc3BoeV9nNV9zZXJkZXNbXSA9IHsKPiArCVFNUF9QSFlfSU5JVF9D RkcoUVNFUkRFU19WNl9DT01fUExMX0lWQ08sIDB4MWYpLAo+ICsJUU1QX1BIWV9JTklUX0NGRyhR U0VSREVTX1Y2X0NPTV9DTU5fSUVUUklNLCAweDFiKSwKPiArCVFNUF9QSFlfSU5JVF9DRkcoUVNF UkRFU19WNl9DT01fQ01OX0lQVFJJTSwgMHgxYyksCj4gKwlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJE RVNfVjZfQ09NX0NQX0NUUkxfTU9ERTAsIDB4MDYpLAo+ICB9Owo+ICAKPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNtODU1MF91ZnNwaHlfdHhbXSA9IHsKPiAgCVFNUF9Q SFlfSU5JVF9DRkcoUVNFUkRFU19VRlNfVjZfVFhfTEFORV9NT0RFXzEsIDB4MDUpLAo+ICAJUU1Q X1BIWV9JTklUX0NGRyhRU0VSREVTX1VGU19WNl9UWF9SRVNfQ09ERV9MQU5FX09GRlNFVF9UWCwg MHgwNyksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwg c204NTUwX3Vmc3BoeV9nNF90eFtdID0gewo+ICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1VG U19WNl9UWF9GUl9EQ0NfQ1RSTCwgMHg0YyksCj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3Ry dWN0IHFtcF9waHlfaW5pdF90Ymwgc204NTUwX3Vmc3BoeV9yeFtdID0gewo+ICAJUU1QX1BIWV9J TklUX0NGRyhRU0VSREVTX1VGU19WNl9SWF9VQ0RSX0ZPX0dBSU5fUkFURTIsIDB4MGMpLAo+IC0J UU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1VGU19WNl9SWF9WR0FfQ0FMX01BTl9WQUwsIDB4MGUp LAo+ICAKPiAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19VRlNfVjZfUlhfTU9ERV9SQVRFXzBf MV9CMCwgMHhjMiksCj4gIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVUZTX1Y2X1JYX01PREVf UkFURV8wXzFfQjEsIDB4YzIpLAo+IEBAIC03OTksMTYgKzgxMyw0NSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc204NTUwX3Vmc3BoeV9yeFtdID0gewo+ICAJUU1QX1BI WV9JTklUX0NGRyhRU0VSREVTX1VGU19WNl9SWF9NT0RFX1JBVEUzX0I4LCAweDAyKSwKPiAgfTsK PiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTg1NTBfdWZzcGh5 X2c0X3J4W10gPSB7Cj4gKwlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVUZTX1Y2X1JYX1ZHQV9D QUxfTUFOX1ZBTCwgMHgwZSksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9w aHlfaW5pdF90Ymwgc204NTUwX3Vmc3BoeV9nNV9yeFtdID0gewo+ICsJUU1QX1BIWV9JTklUX0NG RyhRU0VSREVTX1VGU19WNl9SWF9VQ0RSX0ZPX0dBSU5fUkFURTQsIDB4MGMpLAo+ICsJUU1QX1BI WV9JTklUX0NGRyhRU0VSREVTX1VGU19WNl9SWF9VQ0RSX1NPX0dBSU5fUkFURTQsIDB4MDQpLAo+ ICsJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1VGU19WNl9SWF9FUV9PRkZTRVRfQURBUFRPUl9D TlRSTDEsIDB4MTQpLAo+ICsJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1VGU19WNl9SWF9VQ0RS X1BJX0NPTlRST0xTLCAweDA3KSwKPiArCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19VRlNfVjZf UlhfT0ZGU0VUX0FEQVBUT1JfQ05UUkwzLCAweDBlKSwKPiArCVFNUF9QSFlfSU5JVF9DRkcoUVNF UkRFU19VRlNfVjZfUlhfVUNEUl9GQVNUTE9DS19DT1VOVF9ISUdIX1JBVEU0LCAweDAyKSwKPiAr CVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19VRlNfVjZfUlhfVUNEUl9GQVNUTE9DS19GT19HQUlO X1JBVEU0LCAweDFjKSwKPiArCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19VRlNfVjZfUlhfVUNE Ul9GQVNUTE9DS19TT19HQUlOX1JBVEU0LCAweDA2KSwKPiArCVFNUF9QSFlfSU5JVF9DRkcoUVNF UkRFU19VRlNfVjZfUlhfVkdBX0NBTF9NQU5fVkFMLCAweDA4KSwKPiArCVFNUF9QSFlfSU5JVF9D RkcoUVNFUkRFU19VRlNfVjZfUlhfTU9ERV9SQVRFNF9CMywgMHhiOSksCj4gKwlRTVBfUEhZX0lO SVRfQ0ZHKFFTRVJERVNfVUZTX1Y2X1JYX01PREVfUkFURTRfQjQsIDB4NGYpLAo+ICsJUU1QX1BI WV9JTklUX0NGRyhRU0VSREVTX1VGU19WNl9SWF9NT0RFX1JBVEU0X0I2LCAweGZmKSwKPiArCVFN UF9QSFlfSU5JVF9DRkcoUVNFUkRFU19VRlNfVjZfUlhfRExMMF9GVFVORV9DVFJMLCAweDMwKSwK PiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTg1NTBf dWZzcGh5X3Bjc1tdID0gewo+ICAJUU1QX1BIWV9JTklUX0NGRyhRUEhZX1Y2X1BDU19VRlNfUlhf U0lHREVUX0NUUkwyLCAweDY5KSwKPiAgCVFNUF9QSFlfSU5JVF9DRkcoUVBIWV9WNl9QQ1NfVUZT X1RYX0xBUkdFX0FNUF9EUlZfTFZMLCAweDBmKSwKPiAgCVFNUF9QSFlfSU5JVF9DRkcoUVBIWV9W Nl9QQ1NfVUZTX1RYX01JRF9URVJNX0NUUkwxLCAweDQzKSwKPiAtCVFNUF9QSFlfSU5JVF9DRkco UVBIWV9WNl9QQ1NfVUZTX1BMTF9DTlRMLCAweDJiKSwKPiAgCVFNUF9QSFlfSU5JVF9DRkcoUVBI WV9WNl9QQ1NfVUZTX01VTFRJX0xBTkVfQ1RSTDEsIDB4MDIpLAo+ICt9Owo+ICsKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNtODU1MF91ZnNwaHlfZzRfcGNzW10gPSB7 Cj4gKwlRTVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjZfUENTX1VGU19QTExfQ05UTCwgMHgyYiksCj4g IAlRTVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjZfUENTX1VGU19UWF9IU0dFQVJfQ0FQQUJJTElUWSwg MHgwNCksCj4gIAlRTVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjZfUENTX1VGU19SWF9IU0dFQVJfQ0FQ QUJJTElUWSwgMHgwNCksCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlf aW5pdF90Ymwgc204NTUwX3Vmc3BoeV9nNV9wY3NbXSA9IHsKPiArCVFNUF9QSFlfSU5JVF9DRkco UVBIWV9WNl9QQ1NfVUZTX1BMTF9DTlRMLCAweDMzKSwKPiArCVFNUF9QSFlfSU5JVF9DRkcoUVBI WV9WNl9QQ1NfVUZTX1JYX0hTX0c1X1NZTkNfTEVOR1RIX0NBUEFCSUxJVFksIDB4NGYpLAo+ICsJ UU1QX1BIWV9JTklUX0NGRyhRUEhZX1Y2X1BDU19VRlNfUlhfSFNHNV9TWU5DX1dBSVRfVElNRSwg MHg5ZSksCj4gK307Cj4gKwo+ICBzdHJ1Y3QgcW1wX3Vmc19vZmZzZXRzIHsKPiAgCXUxNiBzZXJk ZXM7Cj4gIAl1MTYgcGNzOwo+IEBAIC04MjgsNiArODcxLDggQEAgc3RydWN0IHFtcF9waHlfY2Zn X3RibHMgewo+ICAJaW50IHJ4X251bTsKPiAgCWNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJs ICpwY3M7Cj4gIAlpbnQgcGNzX251bTsKPiArCS8qIE1heGltdW0gc3VwcG9ydGVkIEdlYXIgb2Yg dGhpcyB0YmxzICovCj4gKwl1MzIgbWF4X2dlYXI7Cj4gIH07Cj4gIAo+ICAvKiBzdHJ1Y3QgcW1w X3BoeV9jZmcgLSBwZXItUEhZIGluaXRpYWxpemF0aW9uIGNvbmZpZyAqLwo+IEBAIC04MzUsMTMg Kzg4MCwxNSBAQCBzdHJ1Y3QgcW1wX3BoeV9jZmcgewo+ICAJaW50IGxhbmVzOwo+ICAKPiAgCWNv bnN0IHN0cnVjdCBxbXBfdWZzX29mZnNldHMgKm9mZnNldHM7Cj4gKwkvKiBNYXhpbXVtIHN1cHBv cnRlZCBHZWFyIG9mIHRoaXMgY29uZmlnICovCj4gKwl1MzIgbWF4X3N1cHBvcnRlZF9nZWFyOwo+ ICAKPiAgCS8qIE1haW4gaW5pdCBzZXF1ZW5jZSBmb3IgUEhZIGJsb2NrcyAtIHNlcmRlcywgdHgs IHJ4LCBwY3MgKi8KPiAgCWNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZ190YmxzIHRibHM7Cj4gIAkv KiBBZGRpdGlvbmFsIHNlcXVlbmNlIGZvciBIUyBTZXJpZXMgQiAqLwo+ICAJY29uc3Qgc3RydWN0 IHFtcF9waHlfY2ZnX3RibHMgdGJsc19oc19iOwo+IC0JLyogQWRkaXRpb25hbCBzZXF1ZW5jZSBm b3IgSFMgRzQgKi8KPiAtCWNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZ190YmxzIHRibHNfaHNfZzQ7 Cj4gKwkvKiBBZGRpdGlvbmFsIHNlcXVlbmNlIGZvciBkaWZmZXJlbnQgSFMgR2VhcnMgKi8KPiAr CWNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZ190YmxzIHRibHNfaHNfb3ZlcmxheVtOVU1fT1ZFUkxB WV07Cj4gIAo+ICAJLyogY2xvY2sgaWRzIHRvIGJlIHJlcXVlc3RlZCAqLwo+ICAJY29uc3QgY2hh ciAqIGNvbnN0ICpjbGtfbGlzdDsKPiBAQCAtOTQ0LDYgKzk5MSw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgcW1wX3BoeV9jZmcgbXNtODk5Nl91ZnNwaHlfY2ZnID0gewo+ICAJLmxhbmVzCQkJPSAx LAo+ICAKPiAgCS5vZmZzZXRzCQk9ICZxbXBfdWZzX29mZnNldHMsCj4gKwkubWF4X3N1cHBvcnRl ZF9nZWFyCT0gVUZTX0hTX0czLAo+ICAKPiAgCS50YmxzID0gewo+ICAJCS5zZXJkZXMJCT0gbXNt ODk5Nl91ZnNwaHlfc2VyZGVzLAo+IEBAIC05NjksNiArMTAxNyw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgcW1wX3BoeV9jZmcgc2E4Nzc1cF91ZnNwaHlfY2ZnID0gewo+ICAJLmxhbmVzCQkJPSAy LAo+ICAKPiAgCS5vZmZzZXRzCQk9ICZxbXBfdWZzX29mZnNldHMsCj4gKwkubWF4X3N1cHBvcnRl ZF9nZWFyCT0gVUZTX0hTX0c0LAo+ICAKPiAgCS50YmxzID0gewo+ICAJCS5zZXJkZXMJCT0gc204 MzUwX3Vmc3BoeV9zZXJkZXMsCj4gQEAgLTk4NCwxMyArMTAzMywxNCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHFtcF9waHlfY2ZnIHNhODc3NXBfdWZzcGh5X2NmZyA9IHsKPiAgCQkuc2VyZGVzCQk9 IHNtODM1MF91ZnNwaHlfaHNfYl9zZXJkZXMsCj4gIAkJLnNlcmRlc19udW0JPSBBUlJBWV9TSVpF KHNtODM1MF91ZnNwaHlfaHNfYl9zZXJkZXMpLAo+ICAJfSwKPiAtCS50YmxzX2hzX2c0ID0gewo+ ICsJLnRibHNfaHNfb3ZlcmxheVswXSA9IHsKPiAgCQkudHgJCT0gc204MzUwX3Vmc3BoeV9nNF90 eCwKPiAgCQkudHhfbnVtCQk9IEFSUkFZX1NJWkUoc204MzUwX3Vmc3BoeV9nNF90eCksCj4gIAkJ LnJ4CQk9IHNtODM1MF91ZnNwaHlfZzRfcngsCj4gIAkJLnJ4X251bQkJPSBBUlJBWV9TSVpFKHNt ODM1MF91ZnNwaHlfZzRfcngpLAo+ICAJCS5wY3MJCT0gc204MzUwX3Vmc3BoeV9nNF9wY3MsCj4g IAkJLnBjc19udW0JPSBBUlJBWV9TSVpFKHNtODM1MF91ZnNwaHlfZzRfcGNzKSwKPiArCQkubWF4 X2dlYXIJPSBVRlNfSFNfRzQsCj4gIAl9LAo+ICAJLmNsa19saXN0CQk9IHNtODQ1MF91ZnNfcGh5 X2Nsa19sLAo+ICAJLm51bV9jbGtzCQk9IEFSUkFZX1NJWkUoc204NDUwX3Vmc19waHlfY2xrX2wp LAo+IEBAIC0xMDAzLDYgKzEwNTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfY2Zn IHNjNzI4MF91ZnNwaHlfY2ZnID0gewo+ICAJLmxhbmVzICAgICAgICAgICAgICAgICAgPSAyLAo+ ICAKPiAgCS5vZmZzZXRzICAgICAgICAgICAgICAgID0gJnFtcF91ZnNfb2Zmc2V0cywKPiArCS5t YXhfc3VwcG9ydGVkX2dlYXIJPSBVRlNfSFNfRzQsCj4gIAo+ICAJLnRibHMgPSB7Cj4gIAkJLnNl cmRlcyAgICAgICAgID0gc204MTUwX3Vmc3BoeV9zZXJkZXMsCj4gQEAgLTEwMTgsMTMgKzEwNjks MTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBzYzcyODBfdWZzcGh5X2NmZyA9 IHsKPiAgCQkuc2VyZGVzICAgICAgICAgPSBzbTgxNTBfdWZzcGh5X2hzX2Jfc2VyZGVzLAo+ICAJ CS5zZXJkZXNfbnVtICAgICA9IEFSUkFZX1NJWkUoc204MTUwX3Vmc3BoeV9oc19iX3NlcmRlcyks Cj4gIAl9LAo+IC0JLnRibHNfaHNfZzQgPSB7Cj4gKwkudGJsc19oc19vdmVybGF5WzBdID0gewo+ ICAJCS50eCAgICAgICAgICAgICA9IHNtODI1MF91ZnNwaHlfaHNfZzRfdHgsCj4gIAkJLnR4X251 bSAgICAgICAgID0gQVJSQVlfU0laRShzbTgyNTBfdWZzcGh5X2hzX2c0X3R4KSwKPiAgCQkucngg ICAgICAgICAgICAgPSBzYzcyODBfdWZzcGh5X2hzX2c0X3J4LAo+ICAJCS5yeF9udW0gICAgICAg ICA9IEFSUkFZX1NJWkUoc2M3MjgwX3Vmc3BoeV9oc19nNF9yeCksCj4gIAkJLnBjcyAgICAgICAg ICAgID0gc204MTUwX3Vmc3BoeV9oc19nNF9wY3MsCj4gIAkJLnBjc19udW0gICAgICAgID0gQVJS QVlfU0laRShzbTgxNTBfdWZzcGh5X2hzX2c0X3BjcyksCj4gKwkJLm1heF9nZWFyCT0gVUZTX0hT X0c0LAo+ICAJfSwKPiAgCS5jbGtfbGlzdCAgICAgICAgICAgICAgID0gc204NDUwX3Vmc19waHlf Y2xrX2wsCj4gIAkubnVtX2Nsa3MgICAgICAgICAgICAgICA9IEFSUkFZX1NJWkUoc204NDUwX3Vm c19waHlfY2xrX2wpLAo+IEBAIC0xMDM3LDYgKzEwODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHFtcF9waHlfY2ZnIHNjODI4MHhwX3Vmc3BoeV9jZmcgPSB7Cj4gIAkubGFuZXMJCQk9IDIsCj4g IAo+ICAJLm9mZnNldHMJCT0gJnFtcF91ZnNfb2Zmc2V0cywKPiArCS5tYXhfc3VwcG9ydGVkX2dl YXIJPSBVRlNfSFNfRzQsCj4gIAo+ICAJLnRibHMgPSB7Cj4gIAkJLnNlcmRlcwkJPSBzbTgzNTBf dWZzcGh5X3NlcmRlcywKPiBAQCAtMTA1MiwxMyArMTEwNSwxNCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHFtcF9waHlfY2ZnIHNjODI4MHhwX3Vmc3BoeV9jZmcgPSB7Cj4gIAkJLnNlcmRlcwkJPSBz bTgzNTBfdWZzcGh5X2hzX2Jfc2VyZGVzLAo+ICAJCS5zZXJkZXNfbnVtCT0gQVJSQVlfU0laRShz bTgzNTBfdWZzcGh5X2hzX2Jfc2VyZGVzKSwKPiAgCX0sCj4gLQkudGJsc19oc19nNCA9IHsKPiAr CS50YmxzX2hzX292ZXJsYXlbMF0gPSB7Cj4gIAkJLnR4CQk9IHNtODM1MF91ZnNwaHlfZzRfdHgs Cj4gIAkJLnR4X251bQkJPSBBUlJBWV9TSVpFKHNtODM1MF91ZnNwaHlfZzRfdHgpLAo+ICAJCS5y eAkJPSBzbTgzNTBfdWZzcGh5X2c0X3J4LAo+ICAJCS5yeF9udW0JCT0gQVJSQVlfU0laRShzbTgz NTBfdWZzcGh5X2c0X3J4KSwKPiAgCQkucGNzCQk9IHNtODM1MF91ZnNwaHlfZzRfcGNzLAo+ICAJ CS5wY3NfbnVtCT0gQVJSQVlfU0laRShzbTgzNTBfdWZzcGh5X2c0X3BjcyksCj4gKwkJLm1heF9n ZWFyCT0gVUZTX0hTX0c0LAo+ICAJfSwKPiAgCS5jbGtfbGlzdAkJPSBzZG04NDVfdWZzX3BoeV9j bGtfbCwKPiAgCS5udW1fY2xrcwkJPSBBUlJBWV9TSVpFKHNkbTg0NV91ZnNfcGh5X2Nsa19sKSwK PiBAQCAtMTA3MSw2ICsxMTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBz ZG04NDVfdWZzcGh5X2NmZyA9IHsKPiAgCS5sYW5lcwkJCT0gMiwKPiAgCj4gIAkub2Zmc2V0cwkJ PSAmcW1wX3Vmc19vZmZzZXRzLAo+ICsJLm1heF9zdXBwb3J0ZWRfZ2Vhcgk9IFVGU19IU19HMywK PiAgCj4gIAkudGJscyA9IHsKPiAgCQkuc2VyZGVzCQk9IHNkbTg0NV91ZnNwaHlfc2VyZGVzLAo+ IEBAIC0xMDk5LDYgKzExNTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnIHNt NjExNV91ZnNwaHlfY2ZnID0gewo+ICAJLmxhbmVzCQkJPSAxLAo+ICAKPiAgCS5vZmZzZXRzCQk9 ICZxbXBfdWZzX29mZnNldHMsCj4gKwkubWF4X3N1cHBvcnRlZF9nZWFyCT0gVUZTX0hTX0czLAo+ ICAKPiAgCS50YmxzID0gewo+ICAJCS5zZXJkZXMJCT0gc202MTE1X3Vmc3BoeV9zZXJkZXMsCj4g QEAgLTExMjcsNiArMTE4Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgc203 MTUwX3Vmc3BoeV9jZmcgPSB7Cj4gIAkubGFuZXMJCQk9IDEsCj4gIAo+ICAJLm9mZnNldHMJCT0g JnFtcF91ZnNfb2Zmc2V0cywKPiArCS5tYXhfc3VwcG9ydGVkX2dlYXIJPSBVRlNfSFNfRzMsCj4g IAo+ICAJLnRibHMgPSB7Cj4gIAkJLnNlcmRlcwkJPSBzZG04NDVfdWZzcGh5X3NlcmRlcywKPiBA QCAtMTE1NSw2ICsxMjEyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBzbTgx NTBfdWZzcGh5X2NmZyA9IHsKPiAgCS5sYW5lcwkJCT0gMiwKPiAgCj4gIAkub2Zmc2V0cwkJPSAm cW1wX3Vmc19vZmZzZXRzLAo+ICsJLm1heF9zdXBwb3J0ZWRfZ2Vhcgk9IFVGU19IU19HNCwKPiAg Cj4gIAkudGJscyA9IHsKPiAgCQkuc2VyZGVzCQk9IHNtODE1MF91ZnNwaHlfc2VyZGVzLAo+IEBA IC0xMTcwLDEzICsxMjI4LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgc204 MTUwX3Vmc3BoeV9jZmcgPSB7Cj4gIAkJLnNlcmRlcwkJPSBzbTgxNTBfdWZzcGh5X2hzX2Jfc2Vy ZGVzLAo+ICAJCS5zZXJkZXNfbnVtCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X2hzX2Jfc2Vy ZGVzKSwKPiAgCX0sCj4gLQkudGJsc19oc19nNCA9IHsKPiArCS50YmxzX2hzX292ZXJsYXlbMF0g PSB7Cj4gIAkJLnR4CQk9IHNtODE1MF91ZnNwaHlfaHNfZzRfdHgsCj4gIAkJLnR4X251bQkJPSBB UlJBWV9TSVpFKHNtODE1MF91ZnNwaHlfaHNfZzRfdHgpLAo+ICAJCS5yeAkJPSBzbTgxNTBfdWZz cGh5X2hzX2c0X3J4LAo+ICAJCS5yeF9udW0JCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X2hz X2c0X3J4KSwKPiAgCQkucGNzCQk9IHNtODE1MF91ZnNwaHlfaHNfZzRfcGNzLAo+ICAJCS5wY3Nf bnVtCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X2hzX2c0X3BjcyksCj4gKwkJLm1heF9nZWFy CT0gVUZTX0hTX0c0LAo+ICAJfSwKPiAgCS5jbGtfbGlzdAkJPSBzZG04NDVfdWZzX3BoeV9jbGtf bCwKPiAgCS5udW1fY2xrcwkJPSBBUlJBWV9TSVpFKHNkbTg0NV91ZnNfcGh5X2Nsa19sKSwKPiBA QCAtMTE4OSw2ICsxMjQ4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBzbTgy NTBfdWZzcGh5X2NmZyA9IHsKPiAgCS5sYW5lcwkJCT0gMiwKPiAgCj4gIAkub2Zmc2V0cwkJPSAm cW1wX3Vmc19vZmZzZXRzLAo+ICsJLm1heF9zdXBwb3J0ZWRfZ2Vhcgk9IFVGU19IU19HNCwKPiAg Cj4gIAkudGJscyA9IHsKPiAgCQkuc2VyZGVzCQk9IHNtODE1MF91ZnNwaHlfc2VyZGVzLAo+IEBA IC0xMjA0LDEzICsxMjY0LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgc204 MjUwX3Vmc3BoeV9jZmcgPSB7Cj4gIAkJLnNlcmRlcwkJPSBzbTgxNTBfdWZzcGh5X2hzX2Jfc2Vy ZGVzLAo+ICAJCS5zZXJkZXNfbnVtCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X2hzX2Jfc2Vy ZGVzKSwKPiAgCX0sCj4gLQkudGJsc19oc19nNCA9IHsKPiArCS50YmxzX2hzX292ZXJsYXlbMF0g PSB7Cj4gIAkJLnR4CQk9IHNtODI1MF91ZnNwaHlfaHNfZzRfdHgsCj4gIAkJLnR4X251bQkJPSBB UlJBWV9TSVpFKHNtODI1MF91ZnNwaHlfaHNfZzRfdHgpLAo+ICAJCS5yeAkJPSBzbTgyNTBfdWZz cGh5X2hzX2c0X3J4LAo+ICAJCS5yeF9udW0JCT0gQVJSQVlfU0laRShzbTgyNTBfdWZzcGh5X2hz X2c0X3J4KSwKPiAgCQkucGNzCQk9IHNtODE1MF91ZnNwaHlfaHNfZzRfcGNzLAo+ICAJCS5wY3Nf bnVtCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X2hzX2c0X3BjcyksCj4gKwkJLm1heF9nZWFy CT0gVUZTX0hTX0c0LAo+ICAJfSwKPiAgCS5jbGtfbGlzdAkJPSBzZG04NDVfdWZzX3BoeV9jbGtf bCwKPiAgCS5udW1fY2xrcwkJPSBBUlJBWV9TSVpFKHNkbTg0NV91ZnNfcGh5X2Nsa19sKSwKPiBA QCAtMTIyMyw2ICsxMjg0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBzbTgz NTBfdWZzcGh5X2NmZyA9IHsKPiAgCS5sYW5lcwkJCT0gMiwKPiAgCj4gIAkub2Zmc2V0cwkJPSAm cW1wX3Vmc19vZmZzZXRzLAo+ICsJLm1heF9zdXBwb3J0ZWRfZ2Vhcgk9IFVGU19IU19HNCwKPiAg Cj4gIAkudGJscyA9IHsKPiAgCQkuc2VyZGVzCQk9IHNtODM1MF91ZnNwaHlfc2VyZGVzLAo+IEBA IC0xMjM4LDEzICsxMzAwLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgc204 MzUwX3Vmc3BoeV9jZmcgPSB7Cj4gIAkJLnNlcmRlcwkJPSBzbTgzNTBfdWZzcGh5X2hzX2Jfc2Vy ZGVzLAo+ICAJCS5zZXJkZXNfbnVtCT0gQVJSQVlfU0laRShzbTgzNTBfdWZzcGh5X2hzX2Jfc2Vy ZGVzKSwKPiAgCX0sCj4gLQkudGJsc19oc19nNCA9IHsKPiArCS50YmxzX2hzX292ZXJsYXlbMF0g PSB7Cj4gIAkJLnR4CQk9IHNtODM1MF91ZnNwaHlfZzRfdHgsCj4gIAkJLnR4X251bQkJPSBBUlJB WV9TSVpFKHNtODM1MF91ZnNwaHlfZzRfdHgpLAo+ICAJCS5yeAkJPSBzbTgzNTBfdWZzcGh5X2c0 X3J4LAo+ICAJCS5yeF9udW0JCT0gQVJSQVlfU0laRShzbTgzNTBfdWZzcGh5X2c0X3J4KSwKPiAg CQkucGNzCQk9IHNtODM1MF91ZnNwaHlfZzRfcGNzLAo+ICAJCS5wY3NfbnVtCT0gQVJSQVlfU0la RShzbTgzNTBfdWZzcGh5X2c0X3BjcyksCj4gKwkJLm1heF9nZWFyCT0gVUZTX0hTX0c0LAo+ICAJ fSwKPiAgCS5jbGtfbGlzdAkJPSBzZG04NDVfdWZzX3BoeV9jbGtfbCwKPiAgCS5udW1fY2xrcwkJ PSBBUlJBWV9TSVpFKHNkbTg0NV91ZnNfcGh5X2Nsa19sKSwKPiBAQCAtMTI1Nyw2ICsxMzIwLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBzbTg0NTBfdWZzcGh5X2NmZyA9IHsK PiAgCS5sYW5lcwkJCT0gMiwKPiAgCj4gIAkub2Zmc2V0cwkJPSAmcW1wX3Vmc19vZmZzZXRzLAo+ ICsJLm1heF9zdXBwb3J0ZWRfZ2Vhcgk9IFVGU19IU19HNCwKPiAgCj4gIAkudGJscyA9IHsKPiAg CQkuc2VyZGVzCQk9IHNtODM1MF91ZnNwaHlfc2VyZGVzLAo+IEBAIC0xMjcyLDEzICsxMzM2LDE0 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgc204NDUwX3Vmc3BoeV9jZmcgPSB7 Cj4gIAkJLnNlcmRlcwkJPSBzbTgzNTBfdWZzcGh5X2hzX2Jfc2VyZGVzLAo+ICAJCS5zZXJkZXNf bnVtCT0gQVJSQVlfU0laRShzbTgzNTBfdWZzcGh5X2hzX2Jfc2VyZGVzKSwKPiAgCX0sCj4gLQku dGJsc19oc19nNCA9IHsKPiArCS50YmxzX2hzX292ZXJsYXlbMF0gPSB7Cj4gIAkJLnR4CQk9IHNt ODM1MF91ZnNwaHlfZzRfdHgsCj4gIAkJLnR4X251bQkJPSBBUlJBWV9TSVpFKHNtODM1MF91ZnNw aHlfZzRfdHgpLAo+ICAJCS5yeAkJPSBzbTgzNTBfdWZzcGh5X2c0X3J4LAo+ICAJCS5yeF9udW0J CT0gQVJSQVlfU0laRShzbTgzNTBfdWZzcGh5X2c0X3J4KSwKPiAgCQkucGNzCQk9IHNtODM1MF91 ZnNwaHlfZzRfcGNzLAo+ICAJCS5wY3NfbnVtCT0gQVJSQVlfU0laRShzbTgzNTBfdWZzcGh5X2c0 X3BjcyksCj4gKwkJLm1heF9nZWFyCT0gVUZTX0hTX0c0LAo+ICAJfSwKPiAgCS5jbGtfbGlzdAkJ PSBzbTg0NTBfdWZzX3BoeV9jbGtfbCwKPiAgCS5udW1fY2xrcwkJPSBBUlJBWV9TSVpFKHNtODQ1 MF91ZnNfcGh5X2Nsa19sKSwKPiBAQCAtMTI5MSw2ICsxMzU2LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBxbXBfcGh5X2NmZyBzbTg1NTBfdWZzcGh5X2NmZyA9IHsKPiAgCS5sYW5lcwkJCT0gMiwK PiAgCj4gIAkub2Zmc2V0cwkJPSAmcW1wX3Vmc19vZmZzZXRzX3Y2LAo+ICsJLm1heF9zdXBwb3J0 ZWRfZ2Vhcgk9IFVGU19IU19HNSwKPiAgCj4gIAkudGJscyA9IHsKPiAgCQkuc2VyZGVzCQk9IHNt ODU1MF91ZnNwaHlfc2VyZGVzLAo+IEBAIC0xMzA2LDYgKzEzNzIsMjYgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBxbXBfcGh5X2NmZyBzbTg1NTBfdWZzcGh5X2NmZyA9IHsKPiAgCQkuc2VyZGVzCQk9 IHNtODU1MF91ZnNwaHlfaHNfYl9zZXJkZXMsCj4gIAkJLnNlcmRlc19udW0JPSBBUlJBWV9TSVpF KHNtODU1MF91ZnNwaHlfaHNfYl9zZXJkZXMpLAo+ICAJfSwKPiArCS50YmxzX2hzX292ZXJsYXlb MF0gPSB7Cj4gKwkJLnNlcmRlcwkJPSBzbTg1NTBfdWZzcGh5X2c0X3NlcmRlcywKPiArCQkuc2Vy ZGVzX251bQk9IEFSUkFZX1NJWkUoc204NTUwX3Vmc3BoeV9nNF9zZXJkZXMpLAo+ICsJCS50eAkJ PSBzbTg1NTBfdWZzcGh5X2c0X3R4LAo+ICsJCS50eF9udW0JCT0gQVJSQVlfU0laRShzbTg1NTBf dWZzcGh5X2c0X3R4KSwKPiArCQkucngJCT0gc204NTUwX3Vmc3BoeV9nNF9yeCwKPiArCQkucnhf bnVtCQk9IEFSUkFZX1NJWkUoc204NTUwX3Vmc3BoeV9nNF9yeCksCj4gKwkJLnBjcwkJPSBzbTg1 NTBfdWZzcGh5X2c0X3BjcywKPiArCQkucGNzX251bQk9IEFSUkFZX1NJWkUoc204NTUwX3Vmc3Bo eV9nNF9wY3MpLAo+ICsJCS5tYXhfZ2Vhcgk9IFVGU19IU19HNCwKPiArCX0sCj4gKwkudGJsc19o c19vdmVybGF5WzFdID0gewo+ICsJCS5zZXJkZXMJCT0gc204NTUwX3Vmc3BoeV9nNV9zZXJkZXMs Cj4gKwkJLnNlcmRlc19udW0JPSBBUlJBWV9TSVpFKHNtODU1MF91ZnNwaHlfZzVfc2VyZGVzKSwK PiArCQkucngJCT0gc204NTUwX3Vmc3BoeV9nNV9yeCwKPiArCQkucnhfbnVtCQk9IEFSUkFZX1NJ WkUoc204NTUwX3Vmc3BoeV9nNV9yeCksCj4gKwkJLnBjcwkJPSBzbTg1NTBfdWZzcGh5X2c1X3Bj cywKPiArCQkucGNzX251bQk9IEFSUkFZX1NJWkUoc204NTUwX3Vmc3BoeV9nNV9wY3MpLAo+ICsJ CS5tYXhfZ2Vhcgk9IFVGU19IU19HNSwKPiArCX0sCj4gIAkuY2xrX2xpc3QJCT0gc2RtODQ1X3Vm c19waHlfY2xrX2wsCj4gIAkubnVtX2Nsa3MJCT0gQVJSQVlfU0laRShzZG04NDVfdWZzX3BoeV9j bGtfbCksCj4gIAkudnJlZ19saXN0CQk9IHFtcF9waHlfdnJlZ19sLAo+IEBAIC0xMzY4LDE3ICsx NDU0LDU1IEBAIHN0YXRpYyB2b2lkIHFtcF91ZnNfcGNzX2luaXQoc3RydWN0IHFtcF91ZnMgKnFt cCwgY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnX3RibHMKPiAgCXFtcF91ZnNfY29uZmlndXJlKHBj cywgdGJscy0+cGNzLCB0YmxzLT5wY3NfbnVtKTsKPiAgfQo+ICAKPiArc3RhdGljIGludCBxbXBf dWZzX2dldF9nZWFyX292ZXJsYXkoc3RydWN0IHFtcF91ZnMgKnFtcCwgY29uc3Qgc3RydWN0IHFt cF9waHlfY2ZnICpjZmcpCj4gK3sKPiArCXUzMiBtYXhfZ2VhciwgZmxvb3JfbWF4X2dlYXIgPSBj ZmctPm1heF9zdXBwb3J0ZWRfZ2VhcjsKPiArCWludCBpID0gTlVNX09WRVJMQVkgLSAxOwoKSnVz dCB1c2UgaSBkaXJlY3RseSBpbiB0aGUgZm9yIGxvb3AuIEFsc28sIHBsZWFzZSByZW5hbWUgImki IHdpdGggImlkeCIgdG8gbWFrZQppdCBjbGVhci4KCj4gKwlpbnQgcmV0ID0gLUVJTlZBTDsKPiAr Cj4gKwlmb3IgKDsgaSA+PSAwOyBpIC0tKSB7CgppLS0KCj4gKwkJbWF4X2dlYXIgPSBjZmctPnRi bHNfaHNfb3ZlcmxheVtpXS5tYXhfZ2VhcjsKPiArCj4gKwkJaWYgKG1heF9nZWFyID09IDApCj4g KwkJCWNvbnRpbnVlOwoKWW91IGFyZSBzZXR0aW5nIG1heF9nZWFyIGV2ZW4gZm9yIHRhcmdldHMg d2l0aCBhIHNpbmdsZSBvdmVybGF5LiBIb3cgY2FuIHRoaXMKYmVjb21lIDA/Cgo+ICsKPiArCQkv KiBEaXJlY3QgbWF0Y2hpbmcsIGJhaWwgKi8KPiArCQlpZiAocW1wLT5zdWJtb2RlID09IG1heF9n ZWFyKQo+ICsJCQlyZXR1cm4gaTsKPiArCj4gKwkJLyogSWYgbm8gZGlyZWN0IG1hdGNoaW5nLCB0 aGUgbG93ZXN0IGdlYXIgaXMgdGhlIGJlc3QgbWF0Y2hpbmcgKi8KPiArCQlpZiAobWF4X2dlYXIg PCBmbG9vcl9tYXhfZ2Vhcikgewo+ICsJCQlyZXQgPSBpOwo+ICsJCQlmbG9vcl9tYXhfZ2VhciA9 IG1heF9nZWFyOwo+ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICBz dGF0aWMgdm9pZCBxbXBfdWZzX2luaXRfcmVnaXN0ZXJzKHN0cnVjdCBxbXBfdWZzICpxbXAsIGNv bnN0IHN0cnVjdCBxbXBfcGh5X2NmZyAqY2ZnKQo+ICB7Cj4gKwlpbnQgaTsKPiArCWJvb2wgYXBw bHlfb3ZlcmxheSA9IGZhbHNlOwo+ICsKPiArCWkgPSBxbXBfdWZzX2dldF9nZWFyX292ZXJsYXko cW1wLCBjZmcpOwo+ICsJaWYgKGkgPj0gMCkKPiArCQlhcHBseV9vdmVybGF5ID0gdHJ1ZTsKCkhv dyBhYm91dD8KCmBgYAoJaW50IGlkeDsKCglpZHggPSBxbXBfdWZzX2dldF9nZWFyX292ZXJsYXko cW1wLCBjZmcpOwoKCXFtcF91ZnNfc2VyZGVzX2luaXQocW1wLCAmY2ZnLT50YmxzKTsKCXFtcF91 ZnNfbGFuZXNfaW5pdChxbXAsICZjZmctPnRibHMpOwoJLi4uCgoJaWYgKGlkeCA+PSAwKSB7CgkJ cW1wX3Vmc19zZXJkZXNfaW5pdChxbXAsICZjZmctPnRibHNfaHNfb3ZlcmxheVtpZHhdKTsKCQlx bXBfdWZzX2xhbmVzX2luaXQocW1wLCAmY2ZnLT50YmxzX2hzX292ZXJsYXlbaWR4XSk7CgkJLi4u Cgl9CmBgYAoKU2luY2UgdGhlIG9yZGVyaW5nIGRvZXNuJ3QgbWF0dGVyIGZvciBpbml0IHNlcXVl bmNlLCB5b3UgY2FuIHByb2dyYW0gdGhlIG92ZXJsYXkKdGFibGVzIHVuZGVyIGEgc2luZ2xlIGNv bmRpdGlvbi4KCi0gTWFuaQoKLS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTg rr7grprgrr/grrXgrq7gr40KCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LXBoeQo=