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,URIBL_BLOCKED, 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 DD82EC433DB for ; Thu, 4 Mar 2021 09:05:59 +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 B27F364F1E for ; Thu, 4 Mar 2021 09:05:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B27F364F1E 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=/wN1G6vtsJ8ByvDdmGNU62GWC7UZ/M+H/3OKSXOB76A=; b=NNyJSfiZqo7Oxe0GXtyJ4sbAJ f3l6WzvEAr7Vpu3v3cJ8r9n7oV+I4dVh7aO4Dl+y8erVXUjabgXQRXOtIjXHf58/aq+xYynuqZwY/ b47vLtMd+DvcDwoBfIJ8B+/XgKLqklZ0ygHdLHToKZ9xlxyvEXF0bLhIErhsUGqB6om9wO3OZbUFH JJBJDXXlZkocAdCmSFj7/zBiZQ3hYjVBGZnNBPl0qL9G8Sbk2FJnmh3Aa7aIiuDjxNdgoHCsXjv+3 n0wSfuugX/LsFDdF2ODQ+oZNZEx6roFLH3MxZ0qfW/Ux+Devoc6DOQd/d54BkC7UF3DSYLMpEwoE5 LOW2UXBhA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHjqv-008D1X-74; Thu, 04 Mar 2021 09:01:03 +0000 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHjnQ-008C3v-Ob for linux-arm-kernel@lists.infradead.org; Thu, 04 Mar 2021 08:57:28 +0000 Received: by mail-wr1-x436.google.com with SMTP id h98so26681048wrh.11 for ; Thu, 04 Mar 2021 00:57:24 -0800 (PST) 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=dpCEXYH1fAh6zHfGzPa7zNGe3vCvVQ5rj3XsJOIM84U=; b=t0o/c2Qm1wtSvcNEEqUhxOMxtVUN1vunNT9MZ38fxjFwn/vdlqjz3wlLrZp111tfzS R4J+VlGnJG1/gasL8KT8Ff5QHYS6LN+fM2SGBgxLZ4pFO+cN7T3ola5qYmdMeUma0f3S 6ua4To2eg3+BtbgChLGBjT8KehMOmDj5s8Jkv8v0VANz7N/Bu6h1sGF1fpm1BzBo5/tj 4OSTYsel6ZU822lIgxDmk53U3dTWarTkSK32j4F0Gq42CqLAPzGNxZWrK5EG1pOPXlYy 57/A9RDyequFg0NcAPhIZSJzywhvZHj+f3nmD+0aOrGqHpW4jz4fVKBp9PeXU5NBVg+T rJfA== 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=dpCEXYH1fAh6zHfGzPa7zNGe3vCvVQ5rj3XsJOIM84U=; b=IhnZIrLDDN53/t+PrC4Zc7lf5NiViiSDrkEwvDTffCzaOliHRW/2bsr2NXczMVrKsh AlyJRmDBPjPqxDpiZz+EnI9VsacfYNRD+a/xZiQk7knQIsh27X7TwDJ5esOYN8Ysd08n iGsrFvGh/Bnlrkayr+kCaXYVcq+NOGYNVUmnVXQDQiyJwiUMXSnwyJNZg/hB1m4X1tvf clLyagCGZUgzc4q5Etw9ZXUqbxRdaGuk8oQgVzYJJJxjsacwWbQ5KmgdQDIMpwcMeYye uoKF0AVmMsCpA+IIP83Yk+0u3AjhTNYlB4LSpd3i+FaaXThnqaO+7MlUIDy2rPNKEWTj Wv6Q== X-Gm-Message-State: AOAM533rgLy7OYUlgbeInEl/dFAjXyycnxIQC4483vrNCMFKKLS7O8U2 CBvLmP+2iynSB22lPXcOyUc= X-Google-Smtp-Source: ABdhPJxTkoy/0fg3RSSbtoPlrFbrOZwo8bKx5q8t/EUZvieV+rEr/R5axw1yS/aXJH/7Rdq3D/utEg== X-Received: by 2002:adf:f351:: with SMTP id e17mr2801506wrp.416.1614848244109; Thu, 04 Mar 2021 00:57:24 -0800 (PST) Received: from skynet.lan (170.red-88-1-105.dynamicip.rima-tde.net. [88.1.105.170]) by smtp.gmail.com with ESMTPSA id q15sm2828976wrx.56.2021.03.04.00.57.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Mar 2021 00:57:23 -0800 (PST) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Rob Herring , Michael Walle , Bartosz Golaszewski , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, =?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-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 11/15] pinctrl: add a pincontrol driver for BCM6368 Date: Thu, 4 Mar 2021 09:57:06 +0100 Message-Id: <20210304085710.7128-12-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210304085710.7128-1-noltari@gmail.com> References: <20210304085710.7128-1-noltari@gmail.com> MIME-Version: 1.0 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzNjguIEJDTTYzNjggYWxsb3dzIG11eGlu ZyB0aGUgZmlyc3QgMzIKR1BJT3Mgb250byBhbHRlcm5hdGl2ZSBmdW5jdGlvbnMuIE5vdCBhbGwg YXJlIGRvY3VtZW50ZWQuCgpTaWduZWQtb2ZmLWJ5OiDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMg PG5vbHRhcmlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdv cnNraUBnbWFpbC5jb20+Ci0tLQogdjQ6IG5vIGNoYW5nZXMKIHYzOiB1c2UgbmV3IHNoYXJlZCBj b2RlCiB2Mjogc3dpdGNoIHRvIEdQSU9fUkVHTUFQCgogZHJpdmVycy9waW5jdHJsL2JjbS9LY29u ZmlnICAgICAgICAgICB8ICAgOCArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlICAgICAg ICAgIHwgICAxICsKIGRyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzY4LmMgfCA1MjMg KysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTMyIGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNt NjM2OC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnIGIvZHJpdmVy cy9waW5jdHJsL2JjbS9LY29uZmlnCmluZGV4IGQzMTAxZDVlNzUwZi4uYWFiZDRiNzYyYWVkIDEw MDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcKKysrIGIvZHJpdmVycy9waW5j dHJsL2JjbS9LY29uZmlnCkBAIC02MCw2ICs2MCwxNCBAQCBjb25maWcgUElOQ1RSTF9CQ002MzYy CiAJaGVscAogCSAgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBCcm9hZGNvbSBCQ002MzYyIEdQ SU8gZHJpdmVyLgogCitjb25maWcgUElOQ1RSTF9CQ002MzY4CisJYm9vbCAiQnJvYWRjb20gQkNN NjM2OCBHUElPIGRyaXZlciIKKwlkZXBlbmRzIG9uIChCTUlQU19HRU5FUklDIHx8IENPTVBJTEVf VEVTVCkKKwlzZWxlY3QgUElOQ1RSTF9CQ002M1hYCisJZGVmYXVsdCBCTUlQU19HRU5FUklDCisJ aGVscAorCSAgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBCcm9hZGNvbSBCQ002MzY4IEdQSU8g ZHJpdmVyLgorCiBjb25maWcgUElOQ1RSTF9JUFJPQ19HUElPCiAJYm9vbCAiQnJvYWRjb20gaVBy b2MgR1BJTyAod2l0aCBQSU5DT05GKSBkcml2ZXIiCiAJZGVwZW5kcyBvbiBPRl9HUElPICYmIChB UkNIX0JDTV9JUFJPQyB8fCBDT01QSUxFX1RFU1QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0 cmwvYmNtL01ha2VmaWxlIGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQppbmRleCBiOWIw OWU1YjkxNGMuLmExMzMxYmI5NjgwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9N YWtlZmlsZQorKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCkBAIC03LDYgKzcsNyBA QCBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002M1hYKQkJKz0gcGluY3RybC1iY202M3h4Lm8KIG9i ai0kKENPTkZJR19QSU5DVFJMX0JDTTYzMjgpCQkrPSBwaW5jdHJsLWJjbTYzMjgubwogb2JqLSQo Q09ORklHX1BJTkNUUkxfQkNNNjM1OCkJCSs9IHBpbmN0cmwtYmNtNjM1OC5vCiBvYmotJChDT05G SUdfUElOQ1RSTF9CQ002MzYyKQkJKz0gcGluY3RybC1iY202MzYyLm8KK29iai0kKENPTkZJR19Q SU5DVFJMX0JDTTYzNjgpCQkrPSBwaW5jdHJsLWJjbTYzNjgubwogb2JqLSQoQ09ORklHX1BJTkNU UkxfSVBST0NfR1BJTykJKz0gcGluY3RybC1pcHJvYy1ncGlvLm8KIG9iai0kKENPTkZJR19QSU5D VFJMX0NZR05VU19NVVgpCSs9IHBpbmN0cmwtY3lnbnVzLW11eC5vCiBvYmotJChDT05GSUdfUElO Q1RSTF9OUykJCSs9IHBpbmN0cmwtbnMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2Jj bS9waW5jdHJsLWJjbTYzNjguYyBiL2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzY4 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNWNlOTkzMTk4ZTUK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2OC5j CkBAIC0wLDAgKzEsNTIzIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsK Ky8qCisgKiBEcml2ZXIgZm9yIEJDTTYzNjggR1BJTyB1bml0IChwaW5jdHJsICsgR1BJTykKKyAq CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgw4FsdmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJp QGdtYWlsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBKb25hcyBHb3Jza2kgPGpvbmFzLmdv cnNraUBnbWFpbC5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KKyNpbmNsdWRl IDxsaW51eC9ncGlvL2RyaXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1 ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvcGluY3RybC9waW5tdXguaD4KKyNpbmNs dWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4K KworI2luY2x1ZGUgIi4uL3BpbmN0cmwtdXRpbHMuaCIKKworI2luY2x1ZGUgInBpbmN0cmwtYmNt NjN4eC5oIgorCisjZGVmaW5lIEJDTTYzNjhfTlVNX0dQSU9TCTM4CisKKyNkZWZpbmUgQkNNNjM2 OF9NT0RFX1JFRwkweDE4CisjZGVmaW5lIEJDTTYzNjhfQkFTRU1PREVfUkVHCTB4MzgKKyNkZWZp bmUgIEJDTTYzNjhfQkFTRU1PREVfTUFTSwkweDcKKyNkZWZpbmUgIEJDTTYzNjhfQkFTRU1PREVf R1BJTwkweDAKKyNkZWZpbmUgIEJDTTYzNjhfQkFTRU1PREVfVUFSVDEJMHgxCisKK3N0cnVjdCBi Y202MzY4X3Bpbmdyb3VwIHsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IHVuc2lnbmVkICog Y29uc3QgcGluczsKKwljb25zdCB1bnNpZ25lZCBudW1fcGluczsKK307CisKK3N0cnVjdCBiY202 MzY4X2Z1bmN0aW9uIHsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IGNoYXIgKiBjb25zdCAq Z3JvdXBzOworCWNvbnN0IHVuc2lnbmVkIG51bV9ncm91cHM7CisKKwl1bnNpZ25lZCBkaXJfb3V0 OjE2OworCXVuc2lnbmVkIGJhc2Vtb2RlOjM7Cit9OworCitzdHJ1Y3QgYmNtNjM2OF9wcml2IHsK KwlzdHJ1Y3QgcmVnbWFwX2ZpZWxkICpvdmVybGF5czsKK307CisKKyNkZWZpbmUgQkNNNjM2OF9C QVNFTU9ERV9QSU4oYSwgYikJCVwKKwl7CQkJCQlcCisJCS5udW1iZXIgPSBhLAkJCVwKKwkJLm5h bWUgPSBiLAkJCVwKKwkJLmRydl9kYXRhID0gKHZvaWQgKil0cnVlCVwKKwl9CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBiY202MzY4X3BpbnNbXSA9IHsKKwlQSU5DVFJM X1BJTigwLCAiZ3BpbzAiKSwKKwlQSU5DVFJMX1BJTigxLCAiZ3BpbzEiKSwKKwlQSU5DVFJMX1BJ TigyLCAiZ3BpbzIiKSwKKwlQSU5DVFJMX1BJTigzLCAiZ3BpbzMiKSwKKwlQSU5DVFJMX1BJTig0 LCAiZ3BpbzQiKSwKKwlQSU5DVFJMX1BJTig1LCAiZ3BpbzUiKSwKKwlQSU5DVFJMX1BJTig2LCAi Z3BpbzYiKSwKKwlQSU5DVFJMX1BJTig3LCAiZ3BpbzciKSwKKwlQSU5DVFJMX1BJTig4LCAiZ3Bp bzgiKSwKKwlQSU5DVFJMX1BJTig5LCAiZ3BpbzkiKSwKKwlQSU5DVFJMX1BJTigxMCwgImdwaW8x MCIpLAorCVBJTkNUUkxfUElOKDExLCAiZ3BpbzExIiksCisJUElOQ1RSTF9QSU4oMTIsICJncGlv MTIiKSwKKwlQSU5DVFJMX1BJTigxMywgImdwaW8xMyIpLAorCVBJTkNUUkxfUElOKDE0LCAiZ3Bp bzE0IiksCisJUElOQ1RSTF9QSU4oMTUsICJncGlvMTUiKSwKKwlQSU5DVFJMX1BJTigxNiwgImdw aW8xNiIpLAorCVBJTkNUUkxfUElOKDE3LCAiZ3BpbzE3IiksCisJUElOQ1RSTF9QSU4oMTgsICJn cGlvMTgiKSwKKwlQSU5DVFJMX1BJTigxOSwgImdwaW8xOSIpLAorCVBJTkNUUkxfUElOKDIwLCAi Z3BpbzIwIiksCisJUElOQ1RSTF9QSU4oMjEsICJncGlvMjEiKSwKKwlQSU5DVFJMX1BJTigyMiwg ImdwaW8yMiIpLAorCVBJTkNUUkxfUElOKDIzLCAiZ3BpbzIzIiksCisJUElOQ1RSTF9QSU4oMjQs ICJncGlvMjQiKSwKKwlQSU5DVFJMX1BJTigyNSwgImdwaW8yNSIpLAorCVBJTkNUUkxfUElOKDI2 LCAiZ3BpbzI2IiksCisJUElOQ1RSTF9QSU4oMjcsICJncGlvMjciKSwKKwlQSU5DVFJMX1BJTigy OCwgImdwaW8yOCIpLAorCVBJTkNUUkxfUElOKDI5LCAiZ3BpbzI5IiksCisJQkNNNjM2OF9CQVNF TU9ERV9QSU4oMzAsICJncGlvMzAiKSwKKwlCQ002MzY4X0JBU0VNT0RFX1BJTigzMSwgImdwaW8z MSIpLAorCUJDTTYzNjhfQkFTRU1PREVfUElOKDMyLCAiZ3BpbzMyIiksCisJQkNNNjM2OF9CQVNF TU9ERV9QSU4oMzMsICJncGlvMzMiKSwKKwlQSU5DVFJMX1BJTigzNCwgImdwaW8zNCIpLAorCVBJ TkNUUkxfUElOKDM1LCAiZ3BpbzM1IiksCisJUElOQ1RSTF9QSU4oMzYsICJncGlvMzYiKSwKKwlQ SU5DVFJMX1BJTigzNywgImdwaW8zNyIpLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGdwaW8wX3Bp bnNbXSA9IHsgMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xX3BpbnNbXSA9IHsgMSB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8yX3BpbnNbXSA9IHsgMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8z X3BpbnNbXSA9IHsgMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80X3BpbnNbXSA9IHsgNCB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW81X3BpbnNbXSA9IHsgNSB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW82X3BpbnNbXSA9IHsgNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW83X3BpbnNbXSA9IHsgNyB9 Oworc3RhdGljIHVuc2lnbmVkIGdwaW84X3BpbnNbXSA9IHsgOCB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW85X3BpbnNbXSA9IHsgOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xMF9waW5zW10gPSB7 IDEwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzExX3BpbnNbXSA9IHsgMTEgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMTJfcGluc1tdID0geyAxMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xM19w aW5zW10gPSB7IDEzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE0X3BpbnNbXSA9IHsgMTQgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvMTVfcGluc1tdID0geyAxNSB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8xNl9waW5zW10gPSB7IDE2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE3X3BpbnNbXSA9 IHsgMTcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMThfcGluc1tdID0geyAxOCB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW8xOV9waW5zW10gPSB7IDE5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzIw X3BpbnNbXSA9IHsgMjAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjFfcGluc1tdID0geyAyMSB9 Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMl9waW5zW10gPSB7IDIyIH07CitzdGF0aWMgdW5zaWdu ZWQgZ3BpbzIzX3BpbnNbXSA9IHsgMjMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjRfcGluc1td ID0geyAyNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNV9waW5zW10gPSB7IDI1IH07CitzdGF0 aWMgdW5zaWduZWQgZ3BpbzI2X3BpbnNbXSA9IHsgMjYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlv MjdfcGluc1tdID0geyAyNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yOF9waW5zW10gPSB7IDI4 IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI5X3BpbnNbXSA9IHsgMjkgfTsKK3N0YXRpYyB1bnNp Z25lZCBncGlvMzBfcGluc1tdID0geyAzMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zMV9waW5z W10gPSB7IDMxIH07CitzdGF0aWMgdW5zaWduZWQgdWFydDFfZ3JwX3BpbnNbXSA9IHsgMzAsIDMx LCAzMiwgMzMgfTsKKworI2RlZmluZSBCQ002MzY4X0dST1VQKG4pCQkJCVwKKwl7CQkJCQkJXAor CQkubmFtZSA9ICNuLAkJCQlcCisJCS5waW5zID0gbiMjX3BpbnMsCQkJXAorCQkubnVtX3BpbnMg PSBBUlJBWV9TSVpFKG4jI19waW5zKSwJXAorCX0KKworc3RhdGljIHN0cnVjdCBiY202MzY4X3Bp bmdyb3VwIGJjbTYzNjhfZ3JvdXBzW10gPSB7CisJQkNNNjM2OF9HUk9VUChncGlvMCksCisJQkNN NjM2OF9HUk9VUChncGlvMSksCisJQkNNNjM2OF9HUk9VUChncGlvMiksCisJQkNNNjM2OF9HUk9V UChncGlvMyksCisJQkNNNjM2OF9HUk9VUChncGlvNCksCisJQkNNNjM2OF9HUk9VUChncGlvNSks CisJQkNNNjM2OF9HUk9VUChncGlvNiksCisJQkNNNjM2OF9HUk9VUChncGlvNyksCisJQkNNNjM2 OF9HUk9VUChncGlvOCksCisJQkNNNjM2OF9HUk9VUChncGlvOSksCisJQkNNNjM2OF9HUk9VUChn cGlvMTApLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzExKSwKKwlCQ002MzY4X0dST1VQKGdwaW8xMiks CisJQkNNNjM2OF9HUk9VUChncGlvMTMpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzE0KSwKKwlCQ002 MzY4X0dST1VQKGdwaW8xNSksCisJQkNNNjM2OF9HUk9VUChncGlvMTYpLAorCUJDTTYzNjhfR1JP VVAoZ3BpbzE3KSwKKwlCQ002MzY4X0dST1VQKGdwaW8xOCksCisJQkNNNjM2OF9HUk9VUChncGlv MTkpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzIwKSwKKwlCQ002MzY4X0dST1VQKGdwaW8yMSksCisJ QkNNNjM2OF9HUk9VUChncGlvMjIpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzIzKSwKKwlCQ002MzY4 X0dST1VQKGdwaW8yNCksCisJQkNNNjM2OF9HUk9VUChncGlvMjUpLAorCUJDTTYzNjhfR1JPVVAo Z3BpbzI2KSwKKwlCQ002MzY4X0dST1VQKGdwaW8yNyksCisJQkNNNjM2OF9HUk9VUChncGlvMjgp LAorCUJDTTYzNjhfR1JPVVAoZ3BpbzI5KSwKKwlCQ002MzY4X0dST1VQKGdwaW8zMCksCisJQkNN NjM2OF9HUk9VUChncGlvMzEpLAorCUJDTTYzNjhfR1JPVVAodWFydDFfZ3JwKSwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW5hbG9nX2FmZV8wX2dyb3Vwc1tdID0geworCSJncGlv MCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFuYWxvZ19hZmVfMV9ncm91cHNb XSA9IHsKKwkiZ3BpbzEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzeXNfaXJx X2dyb3Vwc1tdID0geworCSJncGlvMiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHNlcmlhbF9sZWRfZGF0YV9ncm91cHNbXSA9IHsKKwkiZ3BpbzMiLAorfTsKKworc3RhdGljIGNv bnN0IGNoYXIgKiBjb25zdCBzZXJpYWxfbGVkX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzQiLAor fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbmV0X2xlZF9ncm91cHNbXSA9IHsKKwki Z3BpbzUiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5MF9sZWRfZ3JvdXBz W10gPSB7CisJImdwaW82IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTFf bGVkX2dyb3Vwc1tdID0geworCSJncGlvNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGVwaHkyX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzgiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBlcGh5M19sZWRfZ3JvdXBzW10gPSB7CisJImdwaW85IiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xlZF9kYXRhX2dyb3Vwc1tdID0geworCSJn cGlvMTAiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByb2Jvc3dfbGVkX2Nsa19n cm91cHNbXSA9IHsKKwkiZ3BpbzExIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg cm9ib3N3X2xlZDBfZ3JvdXBzW10gPSB7CisJImdwaW8xMiIsCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IHJvYm9zd19sZWQxX2dyb3Vwc1tdID0geworCSJncGlvMTMiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1c2JfZGV2aWNlX2xlZF9ncm91cHNbXSA9IHsKKwki Z3BpbzE0IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGNpX3JlcTFfZ3JvdXBz W10gPSB7CisJImdwaW8xNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjaV9n bnQxX2dyb3Vwc1tdID0geworCSJncGlvMTciLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBwY2lfaW50Yl9ncm91cHNbXSA9IHsKKwkiZ3BpbzE4IiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3QgcGNpX3JlcTBfZ3JvdXBzW10gPSB7CisJImdwaW8xOSIsCit9OworCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjaV9nbnQwX2dyb3Vwc1tdID0geworCSJncGlvMjAi LAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwY21jaWFfY2QxX2dyb3Vwc1tdID0g eworCSJncGlvMjIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwY21jaWFfY2Qy X2dyb3Vwc1tdID0geworCSJncGlvMjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBwY21jaWFfdnMxX2dyb3Vwc1tdID0geworCSJncGlvMjQiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBwY21jaWFfdnMyX2dyb3Vwc1tdID0geworCSJncGlvMjUiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlYmlfY3MyX2dyb3Vwc1tdID0geworCSJncGlvMjYi LAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlYmlfY3MzX2dyb3Vwc1tdID0gewor CSJncGlvMjciLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzcGlfY3MyX2dyb3Vw c1tdID0geworCSJncGlvMjgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzcGlf Y3MzX2dyb3Vwc1tdID0geworCSJncGlvMjkiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBzcGlfY3M0X2dyb3Vwc1tdID0geworCSJncGlvMzAiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBzcGlfY3M1X2dyb3Vwc1tdID0geworCSJncGlvMzEiLAorfTsKKworc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0MV9ncm91cHNbXSA9IHsKKwkidWFydDFfZ3JwIiwK K307CisKKyNkZWZpbmUgQkNNNjM2OF9GVU4obiwgb3V0KQkJCQlcCisJewkJCQkJCVwKKwkJLm5h bWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBz ID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkuZGlyX291dCA9IG91dCwJCQkJXAorCX0K KworI2RlZmluZSBCQ002MzY4X0JBU0VNT0RFX0ZVTihuLCB2YWwsIG91dCkJCVwKKwl7CQkJCQkJ XAorCQkubmFtZSA9ICNuLAkJCQlcCisJCS5ncm91cHMgPSBuIyNfZ3JvdXBzLAkJCVwKKwkJLm51 bV9ncm91cHMgPSBBUlJBWV9TSVpFKG4jI19ncm91cHMpLAlcCisJCS5iYXNlbW9kZSA9IEJDTTYz NjhfQkFTRU1PREVfIyN2YWwsCVwKKwkJLmRpcl9vdXQgPSBvdXQsCQkJCVwKKwl9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgYmNtNjM2OF9mdW5jdGlvbiBiY202MzY4X2Z1bmNzW10gPSB7CisJQkNN NjM2OF9GVU4oYW5hbG9nX2FmZV8wLCAxKSwKKwlCQ002MzY4X0ZVTihhbmFsb2dfYWZlXzEsIDEp LAorCUJDTTYzNjhfRlVOKHN5c19pcnEsIDEpLAorCUJDTTYzNjhfRlVOKHNlcmlhbF9sZWRfZGF0 YSwgMSksCisJQkNNNjM2OF9GVU4oc2VyaWFsX2xlZF9jbGssIDEpLAorCUJDTTYzNjhfRlVOKGlu ZXRfbGVkLCAxKSwKKwlCQ002MzY4X0ZVTihlcGh5MF9sZWQsIDEpLAorCUJDTTYzNjhfRlVOKGVw aHkxX2xlZCwgMSksCisJQkNNNjM2OF9GVU4oZXBoeTJfbGVkLCAxKSwKKwlCQ002MzY4X0ZVTihl cGh5M19sZWQsIDEpLAorCUJDTTYzNjhfRlVOKHJvYm9zd19sZWRfZGF0YSwgMSksCisJQkNNNjM2 OF9GVU4ocm9ib3N3X2xlZF9jbGssIDEpLAorCUJDTTYzNjhfRlVOKHJvYm9zd19sZWQwLCAxKSwK KwlCQ002MzY4X0ZVTihyb2Jvc3dfbGVkMSwgMSksCisJQkNNNjM2OF9GVU4odXNiX2RldmljZV9s ZWQsIDEpLAorCUJDTTYzNjhfRlVOKHBjaV9yZXExLCAwKSwKKwlCQ002MzY4X0ZVTihwY2lfZ250 MSwgMCksCisJQkNNNjM2OF9GVU4ocGNpX2ludGIsIDApLAorCUJDTTYzNjhfRlVOKHBjaV9yZXEw LCAwKSwKKwlCQ002MzY4X0ZVTihwY2lfZ250MCwgMCksCisJQkNNNjM2OF9GVU4ocGNtY2lhX2Nk MSwgMCksCisJQkNNNjM2OF9GVU4ocGNtY2lhX2NkMiwgMCksCisJQkNNNjM2OF9GVU4ocGNtY2lh X3ZzMSwgMCksCisJQkNNNjM2OF9GVU4ocGNtY2lhX3ZzMiwgMCksCisJQkNNNjM2OF9GVU4oZWJp X2NzMiwgMSksCisJQkNNNjM2OF9GVU4oZWJpX2NzMywgMSksCisJQkNNNjM2OF9GVU4oc3BpX2Nz MiwgMSksCisJQkNNNjM2OF9GVU4oc3BpX2NzMywgMSksCisJQkNNNjM2OF9GVU4oc3BpX2NzNCwg MSksCisJQkNNNjM2OF9GVU4oc3BpX2NzNSwgMSksCisJQkNNNjM2OF9CQVNFTU9ERV9GVU4odWFy dDEsIFVBUlQxLCAweDYpLAorfTsKKworc3RhdGljIGludCBiY202MzY4X3BpbmN0cmxfZ2V0X2dy b3VwX2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJSQVlf U0laRShiY202MzY4X2dyb3Vwcyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpiY202MzY4X3Bp bmN0cmxfZ2V0X2dyb3VwX25hbWUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCQkJ ICB1bnNpZ25lZCBncm91cCkKK3sKKwlyZXR1cm4gYmNtNjM2OF9ncm91cHNbZ3JvdXBdLm5hbWU7 Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2OF9waW5jdHJsX2dldF9ncm91cF9waW5zKHN0cnVjdCBw aW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJICB1bnNpZ25lZCBncm91cCwgY29uc3QgdW5zaWdu ZWQgKipwaW5zLAorCQkJCQkgIHVuc2lnbmVkICpudW1fcGlucykKK3sKKwkqcGlucyA9IGJjbTYz NjhfZ3JvdXBzW2dyb3VwXS5waW5zOworCSpudW1fcGlucyA9IGJjbTYzNjhfZ3JvdXBzW2dyb3Vw XS5udW1fcGluczsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJjbTYzNjhfcGluY3Ry bF9nZXRfZnVuY19jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYpCit7CisJcmV0dXJu IEFSUkFZX1NJWkUoYmNtNjM2OF9mdW5jcyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpiY202 MzY4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJ CQkJCQkgdW5zaWduZWQgc2VsZWN0b3IpCit7CisJcmV0dXJuIGJjbTYzNjhfZnVuY3Nbc2VsZWN0 b3JdLm5hbWU7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2OF9waW5jdHJsX2dldF9ncm91cHMoc3Ry dWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICAgIHVuc2lnbmVkIHNlbGVjdG9yLAor CQkJCSAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqKmdyb3VwcywKKwkJCQkgICAgICB1bnNpZ25l ZCAqIGNvbnN0IG51bV9ncm91cHMpCit7CisJKmdyb3VwcyA9IGJjbTYzNjhfZnVuY3Nbc2VsZWN0 b3JdLmdyb3VwczsKKwkqbnVtX2dyb3VwcyA9IGJjbTYzNjhfZnVuY3Nbc2VsZWN0b3JdLm51bV9n cm91cHM7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiY202MzY4X3BpbmN0cmxfc2V0 X211eChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJICAgdW5zaWduZWQgc2VsZWN0 b3IsIHVuc2lnbmVkIGdyb3VwKQoreworCXN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGlu Y3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRldik7CisJc3RydWN0IGJjbTYzNjhfcHJpdiAqcHJp diA9IHBjLT5kcml2ZXJfZGF0YTsKKwljb25zdCBzdHJ1Y3QgYmNtNjM2OF9waW5ncm91cCAqcGcg PSAmYmNtNjM2OF9ncm91cHNbZ3JvdXBdOworCWNvbnN0IHN0cnVjdCBiY202MzY4X2Z1bmN0aW9u ICpmdW4gPSAmYmNtNjM2OF9mdW5jc1tzZWxlY3Rvcl07CisJaW50IGksIHBpbjsKKworCWlmIChm dW4tPmJhc2Vtb2RlKSB7CisJCXVuc2lnbmVkIGludCBtYXNrID0gMDsKKworCQlmb3IgKGkgPSAw OyBpIDwgcGctPm51bV9waW5zOyBpKyspIHsKKwkJCXBpbiA9IHBnLT5waW5zW2ldOworCQkJaWYg KHBpbiA8IEJDTTYzWFhfQkFOS19HUElPUykKKwkJCQltYXNrIHw9IEJJVChwaW4pOworCQl9CisK KwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdzLCBCQ002MzY4X01PREVfUkVHLCBtYXNrLCAw KTsKKwkJcmVnbWFwX2ZpZWxkX3dyaXRlKHByaXYtPm92ZXJsYXlzLCBmdW4tPmJhc2Vtb2RlKTsK Kwl9IGVsc2UgeworCQlwaW4gPSBwZy0+cGluc1swXTsKKworCQlpZiAoYmNtNjM2OF9waW5zW3Bp bl0uZHJ2X2RhdGEpCisJCQlyZWdtYXBfZmllbGRfd3JpdGUocHJpdi0+b3ZlcmxheXMsCisJCQkJ CSAgIEJDTTYzNjhfQkFTRU1PREVfR1BJTyk7CisKKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5y ZWdzLCBCQ002MzY4X01PREVfUkVHLCBCSVQocGluKSwKKwkJCQkgICBCSVQocGluKSk7CisJfQor CisJZm9yIChwaW4gPSAwOyBwaW4gPCBwZy0+bnVtX3BpbnM7IHBpbisrKSB7CisJCXN0cnVjdCBw aW5jdHJsX2dwaW9fcmFuZ2UgKnJhbmdlOworCQlpbnQgaHdfZ3BpbyA9IGJjbTYzNjhfcGluc1tw aW5dLm51bWJlcjsKKworCQlyYW5nZSA9IHBpbmN0cmxfZmluZF9ncGlvX3JhbmdlX2Zyb21fcGlu KHBjdGxkZXYsIGh3X2dwaW8pOworCQlpZiAocmFuZ2UpIHsKKwkJCXN0cnVjdCBncGlvX2NoaXAg KmdjID0gcmFuZ2UtPmdjOworCisJCQlpZiAoZnVuLT5kaXJfb3V0ICYgQklUKHBpbikpCisJCQkJ Z2MtPmRpcmVjdGlvbl9vdXRwdXQoZ2MsIGh3X2dwaW8sIDApOworCQkJZWxzZQorCQkJCWdjLT5k aXJlY3Rpb25faW5wdXQoZ2MsIGh3X2dwaW8pOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBpbnQgYmNtNjM2OF9ncGlvX3JlcXVlc3RfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2Rl diAqcGN0bGRldiwKKwkJCQkgICAgICAgc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFuZ2Us CisJCQkJICAgICAgIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJs ICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCXN0cnVjdCBiY202MzY4 X3ByaXYgKnByaXYgPSBwYy0+ZHJpdmVyX2RhdGE7CisKKwlpZiAob2Zmc2V0ID49IEJDTTYzWFhf QkFOS19HUElPUyAmJiAhYmNtNjM2OF9waW5zW29mZnNldF0uZHJ2X2RhdGEpCisJCXJldHVybiAw OworCisJLyogZGlzYWJsZSBhbGwgZnVuY3Rpb25zIHVzaW5nIHRoaXMgcGluICovCisJaWYgKG9m ZnNldCA8IEJDTTYzWFhfQkFOS19HUElPUykKKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdz LCBCQ002MzY4X01PREVfUkVHLCBCSVQob2Zmc2V0KSwgMCk7CisKKwlpZiAoYmNtNjM2OF9waW5z W29mZnNldF0uZHJ2X2RhdGEpCisJCXJlZ21hcF9maWVsZF93cml0ZShwcml2LT5vdmVybGF5cywg QkNNNjM2OF9CQVNFTU9ERV9HUElPKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0 IHBpbmN0cmxfb3BzIGJjbTYzNjhfcGN0bF9vcHMgPSB7CisJLmdldF9ncm91cHNfY291bnQgPSBi Y202MzY4X3BpbmN0cmxfZ2V0X2dyb3VwX2NvdW50LAorCS5nZXRfZ3JvdXBfbmFtZSA9IGJjbTYz NjhfcGluY3RybF9nZXRfZ3JvdXBfbmFtZSwKKwkuZ2V0X2dyb3VwX3BpbnMgPSBiY202MzY4X3Bp bmN0cmxfZ2V0X2dyb3VwX3BpbnMsCisJLmR0X25vZGVfdG9fbWFwID0gcGluY29uZl9nZW5lcmlj X2R0X25vZGVfdG9fbWFwX3BpbiwKKwkuZHRfZnJlZV9tYXAgPSBwaW5jdHJsX3V0aWxzX2ZyZWVf bWFwLAorfTsKKworc3RhdGljIHN0cnVjdCBwaW5tdXhfb3BzIGJjbTYzNjhfcG14X29wcyA9IHsK KwkuZ2V0X2Z1bmN0aW9uc19jb3VudCA9IGJjbTYzNjhfcGluY3RybF9nZXRfZnVuY19jb3VudCwK KwkuZ2V0X2Z1bmN0aW9uX25hbWUgPSBiY202MzY4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZSwKKwku Z2V0X2Z1bmN0aW9uX2dyb3VwcyA9IGJjbTYzNjhfcGluY3RybF9nZXRfZ3JvdXBzLAorCS5zZXRf bXV4ID0gYmNtNjM2OF9waW5jdHJsX3NldF9tdXgsCisJLmdwaW9fcmVxdWVzdF9lbmFibGUgPSBi Y202MzY4X2dwaW9fcmVxdWVzdF9lbmFibGUsCisJLnN0cmljdCA9IHRydWUsCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGJjbTYzeHhfcGluY3RybF9zb2MgYmNtNjM2OF9zb2MgPSB7CisJLm5n cGlvcyA9IEJDTTYzNjhfTlVNX0dQSU9TLAorCS5ucGlucyA9IEFSUkFZX1NJWkUoYmNtNjM2OF9w aW5zKSwKKwkucGN0bF9vcHMgPSAmYmNtNjM2OF9wY3RsX29wcywKKwkucGlucyA9IGJjbTYzNjhf cGlucywKKwkucG14X29wcyA9ICZiY202MzY4X3BteF9vcHMsCit9OworCitzdGF0aWMgaW50IGJj bTYzNjhfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0 cnVjdCByZWdfZmllbGQgb3ZlcmxheXMgPSBSRUdfRklFTEQoQkNNNjM2OF9CQVNFTU9ERV9SRUcs IDAsIDE1KTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBiY202 M3h4X3BpbmN0cmwgKnBjOworCXN0cnVjdCBiY202MzY4X3ByaXYgKnByaXY7CisJaW50IGVycjsK KworCXByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsK KwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJZXJyID0gYmNtNjN4eF9waW5jdHJs X3Byb2JlKHBkZXYsICZiY202MzY4X3NvYywgKHZvaWQgKikgcHJpdik7CisJaWYgKGVycikKKwkJ cmV0dXJuIGVycjsKKworCXBjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlwcml2 LT5vdmVybGF5cyA9IGRldm1fcmVnbWFwX2ZpZWxkX2FsbG9jKGRldiwgcGMtPnJlZ3MsIG92ZXJs YXlzKTsKKwlpZiAoSVNfRVJSKHByaXYtPm92ZXJsYXlzKSkKKwkJcmV0dXJuIFBUUl9FUlIocHJp di0+b3ZlcmxheXMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIGJjbTYzNjhfcGluY3RybF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAi YnJjbSxiY202MzY4LXBpbmN0cmwiLCB9LAorCXsgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZHJpdmVyIGJjbTYzNjhfcGluY3RybF9kcml2ZXIgPSB7CisJLnByb2JlID0gYmNtNjM2 OF9waW5jdHJsX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImJjbTYzNjgtcGluY3Ry bCIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGJjbTYzNjhfcGluY3RybF9tYXRjaCwKKwl9LAorfTsK KworYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoYmNtNjM2OF9waW5jdHJsX2RyaXZlcik7Ci0tIAoy LjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==