From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CE501C433DB for ; Mon, 15 Mar 2021 12:07:20 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B67E664E27 for ; Mon, 15 Mar 2021 12:07:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B67E664E27 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+y+DAP3GT83nwPfNmVzeo7sQDvZI2ZstFU540DUEaNg=; b=khFhjxcO820lPrFxTystDxOZC V2WqdYPUMuZo1oYxLuFGWzzMVo6QJnZDVJa8s40qngp3z6RmX/JKOeWDeBFibBABEahYZy0DDnncb NR4UHH9CrXd8uyC1aX/I2mTavw49hEn9wewQ/wTP+zigi3a1ju5p0/5upvxeTVyDltrjqIZ2bPf1l 1tuXV7Ni/lFYSPr+J++loISyVtUXveA3eUDqwXH4vym3cjdI4qFNLt5vJOdPcwTlocUz+rabplc01 PmJjn0tECmG4zsxDVEAR5Pya0KrXj3vavmCiTUtVBQ2zhVEAYGAdYW0hVtfc19lMeKiMNHfcwnURW FVanIb5JA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLly0-00Fl7H-1i; Mon, 15 Mar 2021 12:05:00 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLld6-00Fh14-0p for linux-arm-kernel@desiato.infradead.org; Mon, 15 Mar 2021 11:43:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:To:From:Sender: Reply-To:Cc:Content-ID:Content-Description; bh=X/b7efsHpxhtxZ6y0js2C6UC0UrjwmZFkOqtIvoImWM=; b=q3B5NwG8laPPBBto5yz/DGm1W/ vNxetuIaZUHeiNHVPiBbJJk9FenBY4uPS7gj0rJ8YboLiAA1t7Dc765CInDfipc1n3DYAIPQRcTlQ eYFYpEyGtP37ff2Gxqy+umgABqxZ4iXATC9Zh96Qnu9CoAgG9sokoxSfO/V2YKcuFYPRTuLAVIUQE 8TVn1N+y5FkXblMUbp9BobAPpYk01hIiS2byfEWxQN9Ugo5zowDFXeN8yBoYu7bznBN/lv3XieqkH gJdVZ4Fd/d0BDUI6sCOPtsxAU3FVFdWtZ/AWQHUjcUccjDZQHHsEw86X2NYudSQp8gKQHZ0KI/MxO fqujs4DQ==; Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by casper.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLlcZ-0005T8-WA for linux-arm-kernel@lists.infradead.org; Mon, 15 Mar 2021 11:43:12 +0000 Received: by mail-wm1-x331.google.com with SMTP id r15-20020a05600c35cfb029010e639ca09eso20073205wmq.1 for ; Mon, 15 Mar 2021 04:42:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=X/b7efsHpxhtxZ6y0js2C6UC0UrjwmZFkOqtIvoImWM=; b=u+TnBu0zQSQ/AekRjpiXSc74OVIp3JnAI+8vvnbXB2Lunlw5mPoIdJkpobVPTKQQML LYnwOqPOvj+bIC2RfzwiGrsyLeWKn6suS9jGTlTae+P/2prwKU85qJbOx5zh7NuShYK3 /kMDeM21fYkXMg/kzKM0Mde/Q2tuvUvtkgUMJ6C2vf+ola+Iduy1tlOB45EyHIQt1q21 3dbdD3CS1LXXkB9if6X5QE/sw9y6xrS938h8SGqqJXv0rZTUwu9tIDgQqn1pMQ4hn6gR M2100sL1UPZR3A5+DYECue3BegCW+tnWplWQpLGoUCxzyNCu/+JinDNfeBIWWOHYxVGv TgcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=X/b7efsHpxhtxZ6y0js2C6UC0UrjwmZFkOqtIvoImWM=; b=rM27HfIE5DbEVbFSjv4wJZUqcfElqiutVgC07Et5AI9d9wnA/OERD6gMOniqcNxi6n awEUJoM8TSqOrZ0WhbMCoLpHnz9GN1DhfKogtn8GlXG9GX1T1++dbc8jkJJWoVBNm7Si zb8RskyAc/Zi9kejv99xunQ5xI3bqwKj+LTug7IhNedQehq0S2LNC3n+ji64rvpz9soT zAf6UVsYz05n1wW6E6Hy2HmSLM0RmEPb9Kc0+P0zQkupYWEy4eSFuYRYhobKCek91X4t epP9/qX9xyn0HS1z40qilg1riH75YnwMHaj9ODEYD3QPVT/Wm+OxVnc9qX3PM9z7mBJ2 vieQ== X-Gm-Message-State: AOAM530l8p50Qjuhss3AC8CMvWilC69karLL3i99wIMuBsMIeW2TwDHL odFgxibqhIxEAw5IKLgWGDI= X-Google-Smtp-Source: ABdhPJz6mQYD9oESqlzsd9Rz0lnVpH02qqOSusPXwz25AWQi30lyVdW3xnpSFSwZeTDa63t+HSJ9XA== X-Received: by 2002:a05:600c:2053:: with SMTP id p19mr25642802wmg.87.1615808558912; Mon, 15 Mar 2021 04:42:38 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:38 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Lee Jones , Michael Walle , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Jonas Gorski , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 22/22] pinctrl: add a pincontrol driver for BCM6318 Date: Mon, 15 Mar 2021 12:42:14 +0100 Message-Id: <20210315114214.3096-23-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210315114214.3096-1-noltari@gmail.com> References: <20210315114214.3096-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210315_114258_939150_F94EC80D X-CRM114-Status: GOOD ( 19.35 ) 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzMTguIEJDTTYzMTggYWxsb3dzIG11eGlu ZyBtb3N0IEdQSU9zCnRvIGRpZmZlcmVudCBmdW5jdGlvbnMuIEJDTTYzMTggaXMgc2ltaWxhciB0 byBCQ002MzI4IHdpdGggdGhlIGFkZGl0aW9uCm9mIGEgcGFkIHJlZ2lzdGVyLCBhbmQgdGhlIEdQ SU8gbWVhbmluZyBvZiB0aGUgbXV4IHJlZ2lzdGVyIGNoYW5nZXMKYmFzZWQgb24gdGhlIEdQSU8g bnVtYmVyLgoKQ28tZGV2ZWxvcGVkLWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogw4FsdmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWls LmNvbT4KLS0tCiB2Nzogbm8gY2hhbmdlcwogdjY6IG5vIGNoYW5nZXMKIHY1OiBhZGQgY2hhbmdl cyBzdWdnZXN0ZWQgYnkgQW5keSBTaGV2Y2hlbmtvCiB2NDogbm8gY2hhbmdlcwogdjM6IHVzZSBu ZXcgc2hhcmVkIGNvZGUKIHYyOiBzd2l0Y2ggdG8gR1BJT19SRUdNQVAKCiBkcml2ZXJzL3BpbmN0 cmwvYmNtL0tjb25maWcgICAgICAgICAgIHwgICA4ICsKIGRyaXZlcnMvcGluY3RybC9iY20vTWFr ZWZpbGUgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYz MTguYyB8IDQ5OCArKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1 MDcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGluY3RybC9iY20v cGluY3RybC1iY202MzE4LmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25m aWcgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcKaW5kZXggMTg2OTg1ODQ2MTIwLi4zMzY2 MGU4ZmVjMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZworKysgYi9k cml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcKQEAgLTM2LDYgKzM2LDE0IEBAIGNvbmZpZyBQSU5D VFJMX0JDTTYzWFgKIAlzZWxlY3QgUElOQ09ORgogCXNlbGVjdCBQSU5NVVgKIAorY29uZmlnIFBJ TkNUUkxfQkNNNjMxOAorCWJvb2wgIkJyb2FkY29tIEJDTTYzMTggR1BJTyBkcml2ZXIiCisJZGVw ZW5kcyBvbiAoQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1QpCisJc2VsZWN0IFBJTkNUUkxf QkNNNjNYWAorCWRlZmF1bHQgQk1JUFNfR0VORVJJQworCWhlbHAKKwkgICBTYXkgWSBoZXJlIHRv IGVuYWJsZSB0aGUgQnJvYWRjb20gQkNNNjMxOCBHUElPIGRyaXZlci4KKwogY29uZmlnIFBJTkNU UkxfQkNNNjMyOAogCWJvb2wgIkJyb2FkY29tIEJDTTYzMjggR1BJTyBkcml2ZXIiCiAJZGVwZW5k cyBvbiAoQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1QpCmRpZmYgLS1naXQgYS9kcml2ZXJz L3BpbmN0cmwvYmNtL01ha2VmaWxlIGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQppbmRl eCA0MTE3ODQ3ZmQyNzkuLjAwYzdiNzc3NWU2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJs L2JjbS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCkBAIC00LDYg KzQsNyBAQAogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNMjgxWFgpCQkrPSBwaW5jdHJsLWJjbTI4 MXh4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTI4MzUpCQkrPSBwaW5jdHJsLWJjbTI4MzUu bwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjNYWCkJCSs9IHBpbmN0cmwtYmNtNjN4eC5vCitv YmotJChDT05GSUdfUElOQ1RSTF9CQ002MzE4KQkJKz0gcGluY3RybC1iY202MzE4Lm8KIG9iai0k KENPTkZJR19QSU5DVFJMX0JDTTYzMjgpCQkrPSBwaW5jdHJsLWJjbTYzMjgubwogb2JqLSQoQ09O RklHX1BJTkNUUkxfQkNNNjM1OCkJCSs9IHBpbmN0cmwtYmNtNjM1OC5vCiBvYmotJChDT05GSUdf UElOQ1RSTF9CQ002MzYyKQkJKz0gcGluY3RybC1iY202MzYyLm8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzE4LmMgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3Bp bmN0cmwtYmNtNjMxOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NzdmZDliNTgwNjdkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9waW5j dHJsLWJjbTYzMTguYwpAQCAtMCwwICsxLDQ5OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjArCisvKgorICogRHJpdmVyIGZvciBCQ002MzE4IEdQSU8gdW5pdCAocGluY3Ry bCArIEdQSU8pCisgKgorICogQ29weXJpZ2h0IChDKSAyMDIxIMOBbHZhcm8gRmVybsOhbmRleiBS b2phcyA8bm9sdGFyaUBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSm9uYXMgR29y c2tpIDxqb25hcy5nb3Jza2lAZ21haWwuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iaXRz Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJu ZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvcGlu bXV4Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGlu dXgvcmVnbWFwLmg+CisKKyNpbmNsdWRlICIuLi9waW5jdHJsLXV0aWxzLmgiCisKKyNpbmNsdWRl ICJwaW5jdHJsLWJjbTYzeHguaCIKKworI2RlZmluZSBCQ002MzE4X05VTV9HUElPUwk1MAorI2Rl ZmluZSBCQ002MzE4X05VTV9NVVgJCTQ4CisKKyNkZWZpbmUgQkNNNjMxOF9NT0RFX1JFRwkweDE4 CisjZGVmaW5lIEJDTTYzMThfTVVYX1JFRwkJMHgxYworI2RlZmluZSAgQkNNNjMyOF9NVVhfTUFT SwlHRU5NQVNLKDEsIDApCisjZGVmaW5lIEJDTTYzMThfUEFEX1JFRwkJMHg1NAorI2RlZmluZSAg QkNNNjMyOF9QQURfTUFTSwlHRU5NQVNLKDMsIDApCisKK3N0cnVjdCBiY202MzE4X3Bpbmdyb3Vw IHsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IHVuc2lnbmVkICogY29uc3QgcGluczsKKwlj b25zdCB1bnNpZ25lZCBudW1fcGluczsKK307CisKK3N0cnVjdCBiY202MzE4X2Z1bmN0aW9uIHsK Kwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IGNoYXIgKiBjb25zdCAqZ3JvdXBzOworCWNvbnN0 IHVuc2lnbmVkIG51bV9ncm91cHM7CisKKwl1bnNpZ25lZCBtb2RlX3ZhbDoxOworCXVuc2lnbmVk IG11eF92YWw6MjsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBi Y202MzE4X3BpbnNbXSA9IHsKKwlQSU5DVFJMX1BJTigwLCAiZ3BpbzAiKSwKKwlQSU5DVFJMX1BJ TigxLCAiZ3BpbzEiKSwKKwlQSU5DVFJMX1BJTigyLCAiZ3BpbzIiKSwKKwlQSU5DVFJMX1BJTigz LCAiZ3BpbzMiKSwKKwlQSU5DVFJMX1BJTig0LCAiZ3BpbzQiKSwKKwlQSU5DVFJMX1BJTig1LCAi Z3BpbzUiKSwKKwlQSU5DVFJMX1BJTig2LCAiZ3BpbzYiKSwKKwlQSU5DVFJMX1BJTig3LCAiZ3Bp bzciKSwKKwlQSU5DVFJMX1BJTig4LCAiZ3BpbzgiKSwKKwlQSU5DVFJMX1BJTig5LCAiZ3Bpbzki KSwKKwlQSU5DVFJMX1BJTigxMCwgImdwaW8xMCIpLAorCVBJTkNUUkxfUElOKDExLCAiZ3BpbzEx IiksCisJUElOQ1RSTF9QSU4oMTIsICJncGlvMTIiKSwKKwlQSU5DVFJMX1BJTigxMywgImdwaW8x MyIpLAorCVBJTkNUUkxfUElOKDE0LCAiZ3BpbzE0IiksCisJUElOQ1RSTF9QSU4oMTUsICJncGlv MTUiKSwKKwlQSU5DVFJMX1BJTigxNiwgImdwaW8xNiIpLAorCVBJTkNUUkxfUElOKDE3LCAiZ3Bp bzE3IiksCisJUElOQ1RSTF9QSU4oMTgsICJncGlvMTgiKSwKKwlQSU5DVFJMX1BJTigxOSwgImdw aW8xOSIpLAorCVBJTkNUUkxfUElOKDIwLCAiZ3BpbzIwIiksCisJUElOQ1RSTF9QSU4oMjEsICJn cGlvMjEiKSwKKwlQSU5DVFJMX1BJTigyMiwgImdwaW8yMiIpLAorCVBJTkNUUkxfUElOKDIzLCAi Z3BpbzIzIiksCisJUElOQ1RSTF9QSU4oMjQsICJncGlvMjQiKSwKKwlQSU5DVFJMX1BJTigyNSwg ImdwaW8yNSIpLAorCVBJTkNUUkxfUElOKDI2LCAiZ3BpbzI2IiksCisJUElOQ1RSTF9QSU4oMjcs ICJncGlvMjciKSwKKwlQSU5DVFJMX1BJTigyOCwgImdwaW8yOCIpLAorCVBJTkNUUkxfUElOKDI5 LCAiZ3BpbzI5IiksCisJUElOQ1RSTF9QSU4oMzAsICJncGlvMzAiKSwKKwlQSU5DVFJMX1BJTigz MSwgImdwaW8zMSIpLAorCVBJTkNUUkxfUElOKDMyLCAiZ3BpbzMyIiksCisJUElOQ1RSTF9QSU4o MzMsICJncGlvMzMiKSwKKwlQSU5DVFJMX1BJTigzNCwgImdwaW8zNCIpLAorCVBJTkNUUkxfUElO KDM1LCAiZ3BpbzM1IiksCisJUElOQ1RSTF9QSU4oMzYsICJncGlvMzYiKSwKKwlQSU5DVFJMX1BJ TigzNywgImdwaW8zNyIpLAorCVBJTkNUUkxfUElOKDM4LCAiZ3BpbzM4IiksCisJUElOQ1RSTF9Q SU4oMzksICJncGlvMzkiKSwKKwlQSU5DVFJMX1BJTig0MCwgImdwaW80MCIpLAorCVBJTkNUUkxf UElOKDQxLCAiZ3BpbzQxIiksCisJUElOQ1RSTF9QSU4oNDIsICJncGlvNDIiKSwKKwlQSU5DVFJM X1BJTig0MywgImdwaW80MyIpLAorCVBJTkNUUkxfUElOKDQ0LCAiZ3BpbzQ0IiksCisJUElOQ1RS TF9QSU4oNDUsICJncGlvNDUiKSwKKwlQSU5DVFJMX1BJTig0NiwgImdwaW80NiIpLAorCVBJTkNU UkxfUElOKDQ3LCAiZ3BpbzQ3IiksCisJUElOQ1RSTF9QSU4oNDgsICJncGlvNDgiKSwKKwlQSU5D VFJMX1BJTig0OSwgImdwaW80OSIpLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGdwaW8wX3BpbnNb XSA9IHsgMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xX3BpbnNbXSA9IHsgMSB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW8yX3BpbnNbXSA9IHsgMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zX3Bp bnNbXSA9IHsgMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80X3BpbnNbXSA9IHsgNCB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW81X3BpbnNbXSA9IHsgNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW82 X3BpbnNbXSA9IHsgNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW83X3BpbnNbXSA9IHsgNyB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW84X3BpbnNbXSA9IHsgOCB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW85X3BpbnNbXSA9IHsgOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xMF9waW5zW10gPSB7IDEw IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzExX3BpbnNbXSA9IHsgMTEgfTsKK3N0YXRpYyB1bnNp Z25lZCBncGlvMTJfcGluc1tdID0geyAxMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xM19waW5z W10gPSB7IDEzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE0X3BpbnNbXSA9IHsgMTQgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvMTVfcGluc1tdID0geyAxNSB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW8xNl9waW5zW10gPSB7IDE2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE3X3BpbnNbXSA9IHsg MTcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMThfcGluc1tdID0geyAxOCB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW8xOV9waW5zW10gPSB7IDE5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzIwX3Bp bnNbXSA9IHsgMjAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjFfcGluc1tdID0geyAyMSB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW8yMl9waW5zW10gPSB7IDIyIH07CitzdGF0aWMgdW5zaWduZWQg Z3BpbzIzX3BpbnNbXSA9IHsgMjMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjRfcGluc1tdID0g eyAyNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNV9waW5zW10gPSB7IDI1IH07CitzdGF0aWMg dW5zaWduZWQgZ3BpbzI2X3BpbnNbXSA9IHsgMjYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjdf cGluc1tdID0geyAyNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yOF9waW5zW10gPSB7IDI4IH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI5X3BpbnNbXSA9IHsgMjkgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMzBfcGluc1tdID0geyAzMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zMV9waW5zW10g PSB7IDMxIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMyX3BpbnNbXSA9IHsgMzIgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMzNfcGluc1tdID0geyAzMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8z NF9waW5zW10gPSB7IDM0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzM1X3BpbnNbXSA9IHsgMzUg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzZfcGluc1tdID0geyAzNiB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8zN19waW5zW10gPSB7IDM3IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzM4X3BpbnNb XSA9IHsgMzggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzlfcGluc1tdID0geyAzOSB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW80MF9waW5zW10gPSB7IDQwIH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzQxX3BpbnNbXSA9IHsgNDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNDJfcGluc1tdID0geyA0 MiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80M19waW5zW10gPSB7IDQzIH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzQ0X3BpbnNbXSA9IHsgNDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNDVfcGlu c1tdID0geyA0NSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80Nl9waW5zW10gPSB7IDQ2IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzQ3X3BpbnNbXSA9IHsgNDcgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvNDhfcGluc1tdID0geyA0OCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80OV9waW5zW10gPSB7 IDQ5IH07CisKKyNkZWZpbmUgQkNNNjMxOF9HUk9VUChuKQkJCQkJXAorCXsJCQkJCQkJXAorCQku bmFtZSA9ICNuLAkJCQkJXAorCQkucGlucyA9IG4jI19waW5zLAkJCQlcCisJCS5udW1fcGlucyA9 IEFSUkFZX1NJWkUobiMjX3BpbnMpLAkJXAorCX0KKworc3RhdGljIHN0cnVjdCBiY202MzE4X3Bp bmdyb3VwIGJjbTYzMThfZ3JvdXBzW10gPSB7CisJQkNNNjMxOF9HUk9VUChncGlvMCksCisJQkNN NjMxOF9HUk9VUChncGlvMSksCisJQkNNNjMxOF9HUk9VUChncGlvMiksCisJQkNNNjMxOF9HUk9V UChncGlvMyksCisJQkNNNjMxOF9HUk9VUChncGlvNCksCisJQkNNNjMxOF9HUk9VUChncGlvNSks CisJQkNNNjMxOF9HUk9VUChncGlvNiksCisJQkNNNjMxOF9HUk9VUChncGlvNyksCisJQkNNNjMx OF9HUk9VUChncGlvOCksCisJQkNNNjMxOF9HUk9VUChncGlvOSksCisJQkNNNjMxOF9HUk9VUChn cGlvMTApLAorCUJDTTYzMThfR1JPVVAoZ3BpbzExKSwKKwlCQ002MzE4X0dST1VQKGdwaW8xMiks CisJQkNNNjMxOF9HUk9VUChncGlvMTMpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzE0KSwKKwlCQ002 MzE4X0dST1VQKGdwaW8xNSksCisJQkNNNjMxOF9HUk9VUChncGlvMTYpLAorCUJDTTYzMThfR1JP VVAoZ3BpbzE3KSwKKwlCQ002MzE4X0dST1VQKGdwaW8xOCksCisJQkNNNjMxOF9HUk9VUChncGlv MTkpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzIwKSwKKwlCQ002MzE4X0dST1VQKGdwaW8yMSksCisJ QkNNNjMxOF9HUk9VUChncGlvMjIpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzIzKSwKKwlCQ002MzE4 X0dST1VQKGdwaW8yNCksCisJQkNNNjMxOF9HUk9VUChncGlvMjUpLAorCUJDTTYzMThfR1JPVVAo Z3BpbzI2KSwKKwlCQ002MzE4X0dST1VQKGdwaW8yNyksCisJQkNNNjMxOF9HUk9VUChncGlvMjgp LAorCUJDTTYzMThfR1JPVVAoZ3BpbzI5KSwKKwlCQ002MzE4X0dST1VQKGdwaW8zMCksCisJQkNN NjMxOF9HUk9VUChncGlvMzEpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzMyKSwKKwlCQ002MzE4X0dS T1VQKGdwaW8zMyksCisJQkNNNjMxOF9HUk9VUChncGlvMzQpLAorCUJDTTYzMThfR1JPVVAoZ3Bp bzM1KSwKKwlCQ002MzE4X0dST1VQKGdwaW8zNiksCisJQkNNNjMxOF9HUk9VUChncGlvMzcpLAor CUJDTTYzMThfR1JPVVAoZ3BpbzM4KSwKKwlCQ002MzE4X0dST1VQKGdwaW8zOSksCisJQkNNNjMx OF9HUk9VUChncGlvNDApLAorCUJDTTYzMThfR1JPVVAoZ3BpbzQxKSwKKwlCQ002MzE4X0dST1VQ KGdwaW80MiksCisJQkNNNjMxOF9HUk9VUChncGlvNDMpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzQ0 KSwKKwlCQ002MzE4X0dST1VQKGdwaW80NSksCisJQkNNNjMxOF9HUk9VUChncGlvNDYpLAorCUJD TTYzMThfR1JPVVAoZ3BpbzQ3KSwKKwlCQ002MzE4X0dST1VQKGdwaW80OCksCisJQkNNNjMxOF9H Uk9VUChncGlvNDkpLAorfTsKKworLyogR1BJT19NT0RFICovCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGxlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorCSJncGlvMSIsCisJImdwaW8yIiwK KwkiZ3BpbzMiLAorCSJncGlvNCIsCisJImdwaW81IiwKKwkiZ3BpbzYiLAorCSJncGlvNyIsCisJ ImdwaW84IiwKKwkiZ3BpbzkiLAorCSJncGlvMTAiLAorCSJncGlvMTEiLAorCSJncGlvMTIiLAor CSJncGlvMTMiLAorCSJncGlvMTQiLAorCSJncGlvMTUiLAorCSJncGlvMTYiLAorCSJncGlvMTci LAorCSJncGlvMTgiLAorCSJncGlvMTkiLAorCSJncGlvMjAiLAorCSJncGlvMjEiLAorCSJncGlv MjIiLAorCSJncGlvMjMiLAorfTsKKworLyogUElOTVVYX1NFTCAqLworc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBlcGh5MF9zcGRfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMCIsCit9OworCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkxX3NwZF9sZWRfZ3JvdXBzW10gPSB7CisJImdw aW8xIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTJfc3BkX2xlZF9ncm91 cHNbXSA9IHsKKwkiZ3BpbzIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5 M19zcGRfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMyIsCit9OworCitzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IGVwaHkwX2FjdF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW80IiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTFfYWN0X2xlZF9ncm91cHNbXSA9IHsKKwkiZ3Bp bzUiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5Ml9hY3RfbGVkX2dyb3Vw c1tdID0geworCSJncGlvNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkz X2FjdF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW83IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3Qgc2VyaWFsX2xlZF9kYXRhX2dyb3Vwc1tdID0geworCSJncGlvNiIsCit9OworCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRfY2xrX2dyb3Vwc1tdID0geworCSJn cGlvNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGluZXRfYWN0X2xlZF9ncm91 cHNbXSA9IHsKKwkiZ3BpbzgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbmV0 X2ZhaWxfbGVkX2dyb3Vwc1tdID0geworCSJncGlvOSIsCit9OworCitzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IGRzbF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8xMCIsCit9OworCitzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IHBvc3RfZmFpbF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8xMSIs Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHdsYW5fd3BzX2xlZF9ncm91cHNbXSA9 IHsKKwkiZ3BpbzEyIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiX3B3cm9u X2dyb3Vwc1tdID0geworCSJncGlvMTMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCB1c2JfZGV2aWNlX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzEzIiwKK307CisKK3N0YXRpYyBj b25zdCBjaGFyICogY29uc3QgdXNiX2FjdGl2ZV9ncm91cHNbXSA9IHsKKwkiZ3BpbzQwIiwKK307 CisKKyNkZWZpbmUgQkNNNjMxOF9NT0RFX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUg PSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0g QVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkubW9kZV92YWwgPSAxLAkJCQlcCisJfQorCisj ZGVmaW5lIEJDTTYzMThfTVVYX0ZVTihuLCBtdXgpCQkJCVwKKwl7CQkJCQkJXAorCQkubmFtZSA9 ICNuLAkJCQlcCisJCS5ncm91cHMgPSBuIyNfZ3JvdXBzLAkJCVwKKwkJLm51bV9ncm91cHMgPSBB UlJBWV9TSVpFKG4jI19ncm91cHMpLAlcCisJCS5tdXhfdmFsID0gbXV4LAkJCQlcCisJfQorCitz dGF0aWMgY29uc3Qgc3RydWN0IGJjbTYzMThfZnVuY3Rpb24gYmNtNjMxOF9mdW5jc1tdID0gewor CUJDTTYzMThfTU9ERV9GVU4obGVkKSwKKwlCQ002MzE4X01VWF9GVU4oZXBoeTBfc3BkX2xlZCwg MSksCisJQkNNNjMxOF9NVVhfRlVOKGVwaHkxX3NwZF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZV TihlcGh5Ml9zcGRfbGVkLCAxKSwKKwlCQ002MzE4X01VWF9GVU4oZXBoeTNfc3BkX2xlZCwgMSks CisJQkNNNjMxOF9NVVhfRlVOKGVwaHkwX2FjdF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZVTihl cGh5MV9hY3RfbGVkLCAxKSwKKwlCQ002MzE4X01VWF9GVU4oZXBoeTJfYWN0X2xlZCwgMSksCisJ QkNNNjMxOF9NVVhfRlVOKGVwaHkzX2FjdF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZVTihzZXJp YWxfbGVkX2RhdGEsIDMpLAorCUJDTTYzMThfTVVYX0ZVTihzZXJpYWxfbGVkX2NsaywgMyksCisJ QkNNNjMxOF9NVVhfRlVOKGluZXRfYWN0X2xlZCwgMSksCisJQkNNNjMxOF9NVVhfRlVOKGluZXRf ZmFpbF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZVTihkc2xfbGVkLCAxKSwKKwlCQ002MzE4X01V WF9GVU4ocG9zdF9mYWlsX2xlZCwgMSksCisJQkNNNjMxOF9NVVhfRlVOKHdsYW5fd3BzX2xlZCwg MSksCisJQkNNNjMxOF9NVVhfRlVOKHVzYl9wd3JvbiwgMSksCisJQkNNNjMxOF9NVVhfRlVOKHVz Yl9kZXZpY2VfbGVkLCAyKSwKKwlCQ002MzE4X01VWF9GVU4odXNiX2FjdGl2ZSwgMiksCit9Owor CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBiY202MzE4X211eF9vZmYodW5zaWduZWQgaW50 IHBpbikKK3sKKwlyZXR1cm4gQkNNNjMxOF9NVVhfUkVHICsgKHBpbiAvIDE2KSAqIDQ7Cit9CisK K3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJjbTYzMThfcGFkX29mZih1bnNpZ25lZCBpbnQg cGluKQoreworCXJldHVybiBCQ002MzE4X1BBRF9SRUcgKyAocGluIC8gOCkgKiA0OworfQorCitz dGF0aWMgaW50IGJjbTYzMThfcGluY3RybF9nZXRfZ3JvdXBfY291bnQoc3RydWN0IHBpbmN0cmxf ZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzMThfZ3JvdXBzKTsKK30K Kworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzMThfcGluY3RybF9nZXRfZ3JvdXBfbmFtZShzdHJ1 Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgIHVuc2lnbmVkIGdyb3VwKQoreworCXJl dHVybiBiY202MzE4X2dyb3Vwc1tncm91cF0ubmFtZTsKK30KKworc3RhdGljIGludCBiY202MzE4 X3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJ CQkgIHVuc2lnbmVkIGdyb3VwLCBjb25zdCB1bnNpZ25lZCAqKnBpbnMsCisJCQkJCSAgdW5zaWdu ZWQgKm51bV9waW5zKQoreworCSpwaW5zID0gYmNtNjMxOF9ncm91cHNbZ3JvdXBdLnBpbnM7CisJ Km51bV9waW5zID0gYmNtNjMxOF9ncm91cHNbZ3JvdXBdLm51bV9waW5zOworCisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMxOF9waW5jdHJsX2dldF9mdW5jX2NvdW50KHN0cnVjdCBw aW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJSQVlfU0laRShiY202MzE4X2Z1bmNz KTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzMThfcGluY3RybF9nZXRfZnVuY19uYW1l KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJCSB1bnNpZ25lZCBzZWxlY3RvcikK K3sKKwlyZXR1cm4gYmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl0ubmFtZTsKK30KKworc3RhdGljIGlu dCBiY202MzE4X3BpbmN0cmxfZ2V0X2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYs CisJCQkJICAgICAgdW5zaWduZWQgc2VsZWN0b3IsCisJCQkJICAgICAgY29uc3QgY2hhciAqIGNv bnN0ICoqZ3JvdXBzLAorCQkJCSAgICAgIHVuc2lnbmVkICogY29uc3QgbnVtX2dyb3VwcykKK3sK KwkqZ3JvdXBzID0gYmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl0uZ3JvdXBzOworCSpudW1fZ3JvdXBz ID0gYmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl0ubnVtX2dyb3VwczsKKworCXJldHVybiAwOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQgYmNtNjMxOF9ybXdfbXV4KHN0cnVjdCBiY202M3h4X3BpbmN0 cmwgKnBjLCB1bnNpZ25lZCBwaW4sCisJCQkJICAgdW5zaWduZWQgaW50IG1vZGUsIHVuc2lnbmVk IGludCBtdXgpCit7CisJaWYgKHBpbiA8IEJDTTYzWFhfQkFOS19HUElPUykKKwkJcmVnbWFwX3Vw ZGF0ZV9iaXRzKHBjLT5yZWdzLCBCQ002MzE4X01PREVfUkVHLCBCSVQocGluKSwKKwkJCQkgICBt b2RlID8gQklUKHBpbikgOiAwKTsKKworCWlmIChwaW4gPCBCQ002MzE4X05VTV9NVVgpCisJCXJl Z21hcF91cGRhdGVfYml0cyhwYy0+cmVncywKKwkJCQkgICBiY202MzE4X211eF9vZmYocGluKSwK KwkJCQkgICBCQ002MzI4X01VWF9NQVNLIDw8ICgocGluICUgMTYpICogMiksCisJCQkJICAgbXV4 IDw8ICgocGluICUgMTYpICogMikpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYmNtNjMxOF9z ZXRfcGFkKHN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjLCB1bnNpZ25lZCBwaW4sCisJCQkJICAg dWludDhfdCB2YWwpCit7CisJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdzLCBiY202MzE4X3Bh ZF9vZmYocGluKSwKKwkJCSAgIEJDTTYzMjhfUEFEX01BU0sgPDwgKChwaW4gJSA4KSAqIDQpLAor CQkJICAgdmFsIDw8ICgocGluICUgOCkgKiA0KSk7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMxOF9w aW5jdHJsX3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgIHVuc2ln bmVkIHNlbGVjdG9yLCB1bnNpZ25lZCBncm91cCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJs ICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCWNvbnN0IHN0cnVjdCBi Y202MzE4X3Bpbmdyb3VwICpwZyA9ICZiY202MzE4X2dyb3Vwc1tncm91cF07CisJY29uc3Qgc3Ry dWN0IGJjbTYzMThfZnVuY3Rpb24gKmYgPSAmYmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl07CisKKwli Y202MzE4X3Jtd19tdXgocGMsIHBnLT5waW5zWzBdLCBmLT5tb2RlX3ZhbCwgZi0+bXV4X3ZhbCk7 CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiY202MzE4X2dwaW9fcmVxdWVzdF9lbmFi bGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICAgICBzdHJ1Y3QgcGluY3Ry bF9ncGlvX3JhbmdlICpyYW5nZSwKKwkJCQkgICAgICAgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0 cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRl dik7CisKKwkvKiBkaXNhYmxlIGFsbCBmdW5jdGlvbnMgdXNpbmcgdGhpcyBwaW4gKi8KKwlpZiAo b2Zmc2V0IDwgMTMpIHsKKwkJLyogR1BJT3MgMC0xMiB1c2UgbXV4IDAgYXMgR1BJTyBmdW5jdGlv biAqLworCQliY202MzE4X3Jtd19tdXgocGMsIG9mZnNldCwgMCwgMCk7CisJfSBlbHNlIGlmIChv ZmZzZXQgPCA0MikgeworCQkvKiBHUElPcyAxMy00MSB1c2UgbXV4IDMgYXMgR1BJTyBmdW5jdGlv biAqLworCQliY202MzE4X3Jtd19tdXgocGMsIG9mZnNldCwgMCwgMyk7CisKKwkJYmNtNjMxOF9z ZXRfcGFkKHBjLCBvZmZzZXQsIDApOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3Ry dWN0IHBpbmN0cmxfb3BzIGJjbTYzMThfcGN0bF9vcHMgPSB7CisJLmR0X2ZyZWVfbWFwID0gcGlu Y3RybF91dGlsc19mcmVlX21hcCwKKwkuZHRfbm9kZV90b19tYXAgPSBwaW5jb25mX2dlbmVyaWNf ZHRfbm9kZV90b19tYXBfcGluLAorCS5nZXRfZ3JvdXBfbmFtZSA9IGJjbTYzMThfcGluY3RybF9n ZXRfZ3JvdXBfbmFtZSwKKwkuZ2V0X2dyb3VwX3BpbnMgPSBiY202MzE4X3BpbmN0cmxfZ2V0X2dy b3VwX3BpbnMsCisJLmdldF9ncm91cHNfY291bnQgPSBiY202MzE4X3BpbmN0cmxfZ2V0X2dyb3Vw X2NvdW50LAorfTsKKworc3RhdGljIHN0cnVjdCBwaW5tdXhfb3BzIGJjbTYzMThfcG14X29wcyA9 IHsKKwkuZ2V0X2Z1bmN0aW9uX2dyb3VwcyA9IGJjbTYzMThfcGluY3RybF9nZXRfZ3JvdXBzLAor CS5nZXRfZnVuY3Rpb25fbmFtZSA9IGJjbTYzMThfcGluY3RybF9nZXRfZnVuY19uYW1lLAorCS5n ZXRfZnVuY3Rpb25zX2NvdW50ID0gYmNtNjMxOF9waW5jdHJsX2dldF9mdW5jX2NvdW50LAorCS5n cGlvX3JlcXVlc3RfZW5hYmxlID0gYmNtNjMxOF9ncGlvX3JlcXVlc3RfZW5hYmxlLAorCS5zZXRf bXV4ID0gYmNtNjMxOF9waW5jdHJsX3NldF9tdXgsCisJLnN0cmljdCA9IHRydWUsCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IGJjbTYzeHhfcGluY3RybF9zb2MgYmNtNjMxOF9zb2MgPSB7CisJ Lm5ncGlvcyA9IEJDTTYzMThfTlVNX0dQSU9TLAorCS5ucGlucyA9IEFSUkFZX1NJWkUoYmNtNjMx OF9waW5zKSwKKwkucGN0bF9vcHMgPSAmYmNtNjMxOF9wY3RsX29wcywKKwkucGlucyA9IGJjbTYz MThfcGlucywKKwkucG14X29wcyA9ICZiY202MzE4X3BteF9vcHMsCit9OworCitzdGF0aWMgaW50 IGJjbTYzMThfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorewor CXJldHVybiBiY202M3h4X3BpbmN0cmxfcHJvYmUocGRldiwgJmJjbTYzMThfc29jLCBOVUxMKTsK K30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNtNjMxOF9waW5jdHJsX21h dGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJicmNtLGJjbTYzMTgtcGluY3RybCIsIH0sCisJ eyAvKiBzZW50aW5lbCAqLyB9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBi Y202MzE4X3BpbmN0cmxfZHJpdmVyID0geworCS5wcm9iZSA9IGJjbTYzMThfcGluY3RybF9wcm9i ZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJiY202MzE4LXBpbmN0cmwiLAorCQkub2ZfbWF0 Y2hfdGFibGUgPSBiY202MzE4X3BpbmN0cmxfbWF0Y2gsCisJfSwKK307CisKK2J1aWx0aW5fcGxh dGZvcm1fZHJpdmVyKGJjbTYzMThfcGluY3RybF9kcml2ZXIpOwotLSAKMi4yMC4xCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=