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=-11.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,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 191FAC55178 for ; Sat, 24 Oct 2020 07:59:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BC1D2223EA for ; Sat, 24 Oct 2020 07:59:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="ZkPMdGh8" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S465978AbgJXH7a (ORCPT ); Sat, 24 Oct 2020 03:59:30 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:58004 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1759965AbgJXH73 (ORCPT ); Sat, 24 Oct 2020 03:59:29 -0400 X-UUID: c484a6ad49cd4dbeb21f8f055419cc26-20201024 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=d9r4ucj224d8zBybhW8x7NCgzh3nmiqPy1sXs/tIC7Q=; b=ZkPMdGh8eEoA6N/6GS29lR5KH++i10j3EnWHmSdC4lYM+3wAC77cxXPNL7CFNqcOhzR8fc8bBVi3sRPJcKB99kRp7ELoSmkJSk0ENFB0Au8DyDAQM/kCuN1vuaq5Fb9AYpgY0dJWXTY7+ECnNs7ZBs0DSFtJFhQAmrhN2FyfDAw=; X-UUID: c484a6ad49cd4dbeb21f8f055419cc26-20201024 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1699415337; Sat, 24 Oct 2020 15:59:10 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 24 Oct 2020 15:59:08 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 24 Oct 2020 15:59:06 +0800 From: Jiaxin Yu To: , , , , , , , , , CC: , , , , Jiaxin Yu Subject: [PATCH v3 8/9] ASoC: mediatek: mt8192: add machine driver with mt6359, rt1015 and rt5682 Date: Sat, 24 Oct 2020 15:58:58 +0800 Message-ID: <1603526339-15005-9-git-send-email-jiaxin.yu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1603526339-15005-1-git-send-email-jiaxin.yu@mediatek.com> References: <1603526339-15005-1-git-send-email-jiaxin.yu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 8006D4C75FEA930B2AF0E61D7B1A874503AE7E1B673CD58CF42ADA04EFD346AA2000:8 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBtYWNoaW5lIGJvYXJkIHdpdGggbXQ2MzU5 LCBydDEwMTUNCmFuZCBydDU2ODIuDQoNClNpZ25lZC1vZmYtYnk6IEppYXhpbiBZdSA8amlheGlu Lnl1QG1lZGlhdGVrLmNvbT4NCi0tLQ0KIHNvdW5kL3NvYy9tZWRpYXRlay9LY29uZmlnICAgICAg ICAgICAgICAgICAgICB8ICAgMTMgKw0KIHNvdW5kL3NvYy9tZWRpYXRlay9tdDgxOTIvTWFrZWZp bGUgICAgICAgICAgICB8ICAgIDIgKw0KIC4uLi9tdDgxOTIvbXQ4MTkyLW10NjM1OS1ydDEwMTUt cnQ1NjgyLmMgICAgICB8IDEwNTggKysrKysrKysrKysrKysrKysNCiAzIGZpbGVzIGNoYW5nZWQs IDEwNzMgaW5zZXJ0aW9ucygrKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBzb3VuZC9zb2MvbWVkaWF0 ZWsvbXQ4MTkyL210ODE5Mi1tdDYzNTktcnQxMDE1LXJ0NTY4Mi5jDQoNCmRpZmYgLS1naXQgYS9z b3VuZC9zb2MvbWVkaWF0ZWsvS2NvbmZpZyBiL3NvdW5kL3NvYy9tZWRpYXRlay9LY29uZmlnDQpp bmRleCAxMDU4OGNmODA5ZGM3Li5kYzYyOGZiNmMxMDI1IDEwMDY0NA0KLS0tIGEvc291bmQvc29j L21lZGlhdGVrL0tjb25maWcNCisrKyBiL3NvdW5kL3NvYy9tZWRpYXRlay9LY29uZmlnDQpAQCAt MTY3LDMgKzE2NywxNiBAQCBjb25maWcgU05EX1NPQ19NVDgxOTINCiAJICB0aGF0IGNhbiBiZSB1 c2VkIHdpdGggb3RoZXIgY29kZWNzLg0KIAkgIFNlbGVjdCBZIGlmIHlvdSBoYXZlIHN1Y2ggZGV2 aWNlLg0KIAkgIElmIHVuc3VyZSBzZWxlY3QgIk4iLg0KKw0KK2NvbmZpZyBTTkRfU09DX01UODE5 Ml9NVDYzNTlfUlQxMDE1X1JUNTY4Mg0KKwl0cmlzdGF0ZSAiQVNvQyBBdWRpbyBkcml2ZXIgZm9y IE1UODE5MiB3aXRoIE1UNjM1OSBSVDEwMTUgUlQ1NjgyIGNvZGVjIg0KKwlkZXBlbmRzIG9uIEky Qw0KKwlkZXBlbmRzIG9uIFNORF9TT0NfTVQ4MTkyDQorCXNlbGVjdCBTTkRfU09DX01UNjM1OQ0K KwlzZWxlY3QgU05EX1NPQ19SVDEwMTUNCisJc2VsZWN0IFNORF9TT0NfUlQ1NjgyX0kyQw0KKwlo ZWxwDQorCSAgVGhpcyBhZGRzIEFTb0MgZHJpdmVyIGZvciBNZWRpYXRlayBNVDgxOTIgYm9hcmRz DQorCSAgd2l0aCB0aGUgTVQ2MzU5IFJUMTAxNSBSVDU2ODIgYXVkaW8gY29kZWMuDQorCSAgU2Vs ZWN0IFkgaWYgeW91IGhhdmUgc3VjaCBkZXZpY2UuDQorCSAgSWYgdW5zdXJlIHNlbGVjdCAiTiIu DQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL21lZGlhdGVrL210ODE5Mi9NYWtlZmlsZSBiL3NvdW5k L3NvYy9tZWRpYXRlay9tdDgxOTIvTWFrZWZpbGUNCmluZGV4IGRkMTg0ODY4ODE3MDguLjhiMjdk ODI2MjZlYTQgMTAwNjQ0DQotLS0gYS9zb3VuZC9zb2MvbWVkaWF0ZWsvbXQ4MTkyL01ha2VmaWxl DQorKysgYi9zb3VuZC9zb2MvbWVkaWF0ZWsvbXQ4MTkyL01ha2VmaWxlDQpAQCAtMTIsMyArMTIs NSBAQCBzbmQtc29jLW10ODE5Mi1hZmUtb2JqcyA6PSBcDQogCW10ODE5Mi1kYWktdGRtLm8NCiAN CiBvYmotJChDT05GSUdfU05EX1NPQ19NVDgxOTIpICs9IHNuZC1zb2MtbXQ4MTkyLWFmZS5vDQor b2JqLSQoQ09ORklHX1NORF9TT0NfTVQ4MTkyX01UNjM1OV9SVDEwMTVfUlQ1NjgyKSArPSBcDQor CW10ODE5Mi1tdDYzNTktcnQxMDE1LXJ0NTY4Mi5vDQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL21l ZGlhdGVrL210ODE5Mi9tdDgxOTItbXQ2MzU5LXJ0MTAxNS1ydDU2ODIuYyBiL3NvdW5kL3NvYy9t ZWRpYXRlay9tdDgxOTIvbXQ4MTkyLW10NjM1OS1ydDEwMTUtcnQ1NjgyLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAwLi40MWQ4YTg1NjdiYjM4DQotLS0gL2Rldi9u dWxsDQorKysgYi9zb3VuZC9zb2MvbWVkaWF0ZWsvbXQ4MTkyL210ODE5Mi1tdDYzNTktcnQxMDE1 LXJ0NTY4Mi5jDQpAQCAtMCwwICsxLDEwNTggQEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMA0KKy8vDQorLy8gbXQ4MTkyLW10NjM1OS1ydDEwMTUtcnQ1NjgyLmMgIC0tDQor Ly8JTVQ4MTkyLU1UNjM1OS1SVDEwMTUtUlQ2MzU4IEFMU0EgU29DIG1hY2hpbmUgZHJpdmVyDQor Ly8NCisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgTWVkaWFUZWsgSW5jLg0KKy8vIEF1dGhvcjogSmlh eGluIFl1IDxqaWF4aW4ueXVAbWVkaWF0ZWsuY29tPg0KKy8vDQorDQorI2luY2x1ZGUgPGxpbnV4 L2lucHV0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9w bV9ydW50aW1lLmg+DQorI2luY2x1ZGUgPHNvdW5kL2phY2suaD4NCisjaW5jbHVkZSA8c291bmQv cGNtX3BhcmFtcy5oPg0KKyNpbmNsdWRlIDxzb3VuZC9ydDU2ODIuaD4NCisjaW5jbHVkZSA8c291 bmQvc29jLmg+DQorDQorI2luY2x1ZGUgIi4uLy4uL2NvZGVjcy9tdDYzNTkuaCINCisjaW5jbHVk ZSAiLi4vLi4vY29kZWNzL3J0MTAxNS5oIg0KKyNpbmNsdWRlICIuLi8uLi9jb2RlY3MvcnQ1Njgy LmgiDQorI2luY2x1ZGUgIi4uL2NvbW1vbi9tdGstYWZlLXBsYXRmb3JtLWRyaXZlci5oIg0KKyNp bmNsdWRlICJtdDgxOTItYWZlLWNvbW1vbi5oIg0KKyNpbmNsdWRlICJtdDgxOTItYWZlLWNsay5o Ig0KKyNpbmNsdWRlICJtdDgxOTItYWZlLWdwaW8uaCINCisNCisjZGVmaW5lIFJUMTAxNV9DT0RF Q19EQUkJInJ0MTAxNS1haWYiDQorI2RlZmluZSBSVDEwMTVfREVWMF9OQU1FCSJydDEwMTUuMS0w MDI4Ig0KKyNkZWZpbmUgUlQxMDE1X0RFVjFfTkFNRQkicnQxMDE1LjEtMDAyOSINCisNCisjZGVm aW5lIFJUNTY4Ml9DT0RFQ19EQUkJInJ0NTY4Mi1haWYxIg0KKyNkZWZpbmUgUlQ1NjgyX0RFVjBf TkFNRQkicnQ1NjgyLjEtMDAxYSINCisNCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfamFjayBoZWFk c2V0X2phY2s7DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0DQor bXQ4MTkyX210NjM1OV9ydDEwMTVfcnQ1NjgyX3dpZGdldHNbXSA9IHsNCisJU05EX1NPQ19EQVBN X1NQSygiTGVmdCBTcGsiLCBOVUxMKSwNCisJU05EX1NPQ19EQVBNX1NQSygiUmlnaHQgU3BrIiwg TlVMTCksDQorCVNORF9TT0NfREFQTV9IUCgiSGVhZHBob25lIEphY2siLCBOVUxMKSwNCisJU05E X1NPQ19EQVBNX01JQygiSGVhZHNldCBNaWMiLCBOVUxMKSwNCit9Ow0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIG10ODE5Ml9tdDYzNTlfcnQxMDE1X3J0NTY4Ml9y b3V0ZXNbXSA9IHsNCisJLyogc3BlYWtlciAqLw0KKwl7ICJMZWZ0IFNwayIsIE5VTEwsICJMZWZ0 IFNQTyIgfSwNCisJeyAiUmlnaHQgU3BrIiwgTlVMTCwgIlJpZ2h0IFNQTyIgfSwNCisJLyogaGVh ZHNldCAqLw0KKwl7ICJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJIUE9MIiB9LA0KKwl7ICJIZWFk cGhvbmUgSmFjayIsIE5VTEwsICJIUE9SIiB9LA0KKwl7ICJJTjFQIiwgTlVMTCwgIkhlYWRzZXQg TWljIiB9LA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IG10 ODE5Ml9tdDYzNTlfcnQxMDE1X3J0NTY4Ml9jb250cm9sc1tdID0gew0KKwlTT0NfREFQTV9QSU5f U1dJVENIKCJMZWZ0IFNwayIpLA0KKwlTT0NfREFQTV9QSU5fU1dJVENIKCJSaWdodCBTcGsiKSwN CisJU09DX0RBUE1fUElOX1NXSVRDSCgiSGVhZHBob25lIEphY2siKSwNCisJU09DX0RBUE1fUElO X1NXSVRDSCgiSGVhZHNldCBNaWMiKSwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgbXQ4MTkyX3J0MTAx NV9pMnNfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLA0KKwkJ CQkgICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpDQorew0KKwlzdHJ1Y3Qg c25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7DQorCXN0 cnVjdCBzbmRfc29jX2NhcmQgKmNhcmQgPSBydGQtPmNhcmQ7DQorCXN0cnVjdCBzbmRfc29jX2Rh aSAqY3B1X2RhaSA9IGFzb2NfcnRkX3RvX2NwdShydGQsIDApOw0KKwlzdHJ1Y3Qgc25kX3NvY19k YWkgKmNvZGVjX2RhaTsNCisJdW5zaWduZWQgaW50IHJhdGUgPSBwYXJhbXNfcmF0ZShwYXJhbXMp Ow0KKwl1bnNpZ25lZCBpbnQgbWNsa19mc19yYXRpbyA9IDEyODsNCisJdW5zaWduZWQgaW50IG1j bGtfZnMgPSByYXRlICogbWNsa19mc19yYXRpbzsNCisJaW50IHJldCwgaTsNCisNCisJZm9yX2Vh Y2hfcnRkX2NvZGVjX2RhaXMocnRkLCBpLCBjb2RlY19kYWkpIHsNCisJCXJldCA9IHNuZF9zb2Nf ZGFpX3NldF9iY2xrX3JhdGlvKGNvZGVjX2RhaSwgNjQpOw0KKwkJaWYgKHJldCkgew0KKwkJCWRl dl9lcnIoY2FyZC0+ZGV2LCAiZmFpbGVkIHRvIHNldCBiY2xrIHJhdGlvXG4iKTsNCisJCQlyZXR1 cm4gcmV0Ow0KKwkJfQ0KKw0KKwkJcmV0ID0gc25kX3NvY19kYWlfc2V0X3BsbChjb2RlY19kYWks IDAsDQorCQkJCQkgIFJUMTAxNV9QTExfU19CQ0xLLA0KKwkJCQkJICBwYXJhbXNfcmF0ZShwYXJh bXMpICogNjQsDQorCQkJCQkgIHBhcmFtc19yYXRlKHBhcmFtcykgKiAyNTYpOw0KKwkJaWYgKHJl dCkgew0KKwkJCWRldl9lcnIoY2FyZC0+ZGV2LCAiZmFpbGVkIHRvIHNldCBwbGxcbiIpOw0KKwkJ CXJldHVybiByZXQ7DQorCQl9DQorDQorCQlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNv ZGVjX2RhaSwNCisJCQkJCSAgICAgUlQxMDE1X1NDTEtfU19QTEwsDQorCQkJCQkgICAgIHBhcmFt c19yYXRlKHBhcmFtcykgKiAyNTYsDQorCQkJCQkgICAgIFNORF9TT0NfQ0xPQ0tfSU4pOw0KKwkJ aWYgKHJldCkgew0KKwkJCWRldl9lcnIoY2FyZC0+ZGV2LCAiZmFpbGVkIHRvIHNldCBzeXNjbGtc biIpOw0KKwkJCXJldHVybiByZXQ7DQorCQl9DQorCX0NCisNCisJcmV0dXJuIHNuZF9zb2NfZGFp X3NldF9zeXNjbGsoY3B1X2RhaSwgMCwgbWNsa19mcywgU05EX1NPQ19DTE9DS19PVVQpOw0KK30N CisNCitzdGF0aWMgaW50IG10ODE5Ml9ydDU2ODJfaTJzX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3Bj bV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwNCisJCQkJICAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3Bh cmFtcyAqcGFyYW1zKQ0KK3sNCisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1 YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOw0KKwlzdHJ1Y3Qgc25kX3NvY19jYXJkICpjYXJkID0gcnRk LT5jYXJkOw0KKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBhc29jX3J0ZF90b19jcHUo cnRkLCAwKTsNCisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBhc29jX3J0ZF90b19j b2RlYyhydGQsIDApOw0KKwl1bnNpZ25lZCBpbnQgcmF0ZSA9IHBhcmFtc19yYXRlKHBhcmFtcyk7 DQorCXVuc2lnbmVkIGludCBtY2xrX2ZzX3JhdGlvID0gMTI4Ow0KKwl1bnNpZ25lZCBpbnQgbWNs a19mcyA9IHJhdGUgKiBtY2xrX2ZzX3JhdGlvOw0KKwlpbnQgYml0d2lkdGg7DQorCWludCByZXQ7 DQorDQorCWJpdHdpZHRoID0gc25kX3BjbV9mb3JtYXRfd2lkdGgocGFyYW1zX2Zvcm1hdChwYXJh bXMpKTsNCisJaWYgKGJpdHdpZHRoIDwgMCkgew0KKwkJZGV2X2VycihjYXJkLT5kZXYsICJpbnZh bGlkIGJpdCB3aWR0aDogJWRcbiIsIGJpdHdpZHRoKTsNCisJCXJldHVybiBiaXR3aWR0aDsNCisJ fQ0KKw0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfdGRtX3Nsb3QoY29kZWNfZGFpLCAweDAwLCAw eDAsIDB4MiwgYml0d2lkdGgpOw0KKwlpZiAocmV0KSB7DQorCQlkZXZfZXJyKGNhcmQtPmRldiwg ImZhaWxlZCB0byBzZXQgdGRtIHNsb3RcbiIpOw0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwly ZXQgPSBzbmRfc29jX2RhaV9zZXRfcGxsKGNvZGVjX2RhaSwgUlQ1NjgyX1BMTDEsDQorCQkJCSAg UlQ1NjgyX1BMTDFfU19CQ0xLMSwNCisJCQkJICBwYXJhbXNfcmF0ZShwYXJhbXMpICogNjQsDQor CQkJCSAgcGFyYW1zX3JhdGUocGFyYW1zKSAqIDUxMik7DQorCWlmIChyZXQpIHsNCisJCWRldl9l cnIoY2FyZC0+ZGV2LCAiZmFpbGVkIHRvIHNldCBwbGxcbiIpOw0KKwkJcmV0dXJuIHJldDsNCisJ fQ0KKw0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNvZGVjX2RhaSwNCisJCQkJICAg ICBSVDU2ODJfU0NMS19TX1BMTDEsDQorCQkJCSAgICAgcGFyYW1zX3JhdGUocGFyYW1zKSAqIDUx MiwNCisJCQkJICAgICBTTkRfU09DX0NMT0NLX0lOKTsNCisJaWYgKHJldCkgew0KKwkJZGV2X2Vy cihjYXJkLT5kZXYsICJmYWlsZWQgdG8gc2V0IHN5c2Nsa1xuIik7DQorCQlyZXR1cm4gcmV0Ow0K Kwl9DQorDQorCXJldHVybiBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNwdV9kYWksIDAsIG1jbGtf ZnMsIFNORF9TT0NfQ0xPQ0tfT1VUKTsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRf c29jX29wcyBtdDgxOTJfcnQxMDE1X2kyc19vcHMgPSB7DQorCS5od19wYXJhbXMgPSBtdDgxOTJf cnQxMDE1X2kyc19od19wYXJhbXMsDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9z b2Nfb3BzIG10ODE5Ml9ydDU2ODJfaTJzX29wcyA9IHsNCisJLmh3X3BhcmFtcyA9IG10ODE5Ml9y dDU2ODJfaTJzX2h3X3BhcmFtcywNCit9Ow0KKw0KK3N0YXRpYyBpbnQgbXQ4MTkyX210NjM1OV9t dGthaWZfY2FsaWJyYXRpb24oc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCkNCit7DQor CXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY21wbnRfYWZlID0NCisJCXNuZF9zb2NfcnRkY29t X2xvb2t1cChydGQsIEFGRV9QQ01fTkFNRSk7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAq Y21wbnRfY29kZWMgPQ0KKwkJYXNvY19ydGRfdG9fY29kZWMocnRkLCAwKS0+Y29tcG9uZW50Ow0K KwlzdHJ1Y3QgbXRrX2Jhc2VfYWZlICphZmUgPSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0 YShjbXBudF9hZmUpOw0KKwlzdHJ1Y3QgbXQ4MTkyX2FmZV9wcml2YXRlICphZmVfcHJpdiA9IGFm ZS0+cGxhdGZvcm1fcHJpdjsNCisJaW50IHBoYXNlOw0KKwl1bnNpZ25lZCBpbnQgbW9uaXRvcjsN CisJaW50IHRlc3RfZG9uZV8xLCB0ZXN0X2RvbmVfMiwgdGVzdF9kb25lXzM7DQorCWludCBjeWNs ZV8xLCBjeWNsZV8yLCBjeWNsZV8zOw0KKwlpbnQgcHJldl9jeWNsZV8xLCBwcmV2X2N5Y2xlXzIs IHByZXZfY3ljbGVfMzsNCisJaW50IGNob3Nlbl9waGFzZV8xLCBjaG9zZW5fcGhhc2VfMiwgY2hv c2VuX3BoYXNlXzM7DQorCWludCBjb3VudGVyOw0KKwlpbnQgbXRrYWlmX2NhbGliX29rOw0KKw0K KwlkZXZfaW5mbyhhZmUtPmRldiwgIiVzKCksIHN0YXJ0XG4iLCBfX2Z1bmNfXyk7DQorDQorCXBt X3J1bnRpbWVfZ2V0X3N5bmMoYWZlLT5kZXYpOw0KKwltdDgxOTJfYWZlX2dwaW9fcmVxdWVzdChh ZmUtPmRldiwgdHJ1ZSwgTVQ4MTkyX0RBSV9BRERBLCAxKTsNCisJbXQ4MTkyX2FmZV9ncGlvX3Jl cXVlc3QoYWZlLT5kZXYsIHRydWUsIE1UODE5Ml9EQUlfQUREQSwgMCk7DQorCW10ODE5Ml9hZmVf Z3Bpb19yZXF1ZXN0KGFmZS0+ZGV2LCB0cnVlLCBNVDgxOTJfREFJX0FEREFfQ0gzNCwgMSk7DQor CW10ODE5Ml9hZmVfZ3Bpb19yZXF1ZXN0KGFmZS0+ZGV2LCB0cnVlLCBNVDgxOTJfREFJX0FEREFf Q0gzNCwgMCk7DQorDQorCW10NjM1OV9tdGthaWZfY2FsaWJyYXRpb25fZW5hYmxlKGNtcG50X2Nv ZGVjKTsNCisNCisJLyogc2V0IGNsb2NrIHByb3RvY29sIDIgKi8NCisJcmVnbWFwX3VwZGF0ZV9i aXRzKGFmZS0+cmVnbWFwLCBBRkVfQVVEX1BBRF9UT1AsIDB4ZmYsIDB4MzgpOw0KKwlyZWdtYXBf dXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsIEFGRV9BVURfUEFEX1RPUCwgMHhmZiwgMHgzOSk7DQor DQorCS8qIHNldCB0ZXN0IHR5cGUgdG8gc3luY2hyb25pemVyIHB1bHNlICovDQorCXJlZ21hcF91 cGRhdGVfYml0cyhhZmVfcHJpdi0+dG9wY2tnZW4sDQorCQkJICAgQ0tTWVNfQVVEX1RPUF9DRkcs IDB4ZmZmZiwgMHg0KTsNCisNCisJbXRrYWlmX2NhbGliX29rID0gdHJ1ZTsNCisJYWZlX3ByaXYt Pm10a2FpZl9jYWxpYnJhdGlvbl9udW1fcGhhc2UgPSA0MjsJLyogbXQ2MzU5OiAwIH4gNDIgKi8N CisJYWZlX3ByaXYtPm10a2FpZl9jaG9zZW5fcGhhc2VbMF0gPSAtMTsNCisJYWZlX3ByaXYtPm10 a2FpZl9jaG9zZW5fcGhhc2VbMV0gPSAtMTsNCisJYWZlX3ByaXYtPm10a2FpZl9jaG9zZW5fcGhh c2VbMl0gPSAtMTsNCisNCisJZm9yIChwaGFzZSA9IDA7DQorCSAgICAgcGhhc2UgPD0gYWZlX3By aXYtPm10a2FpZl9jYWxpYnJhdGlvbl9udW1fcGhhc2UgJiYNCisJICAgICBtdGthaWZfY2FsaWJf b2s7DQorCSAgICAgcGhhc2UrKykgew0KKwkJbXQ2MzU5X3NldF9tdGthaWZfY2FsaWJyYXRpb25f cGhhc2UoY21wbnRfY29kZWMsDQorCQkJCQkJICAgIHBoYXNlLCBwaGFzZSwgcGhhc2UpOw0KKw0K KwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZV9wcml2LT50b3Bja2dlbiwNCisJCQkJICAgQ0tTWVNf QVVEX1RPUF9DRkcsIDB4MSwgMHgxKTsNCisNCisJCXRlc3RfZG9uZV8xID0gMDsNCisJCXRlc3Rf ZG9uZV8yID0gMDsNCisJCXRlc3RfZG9uZV8zID0gMDsNCisJCWN5Y2xlXzEgPSAtMTsNCisJCWN5 Y2xlXzIgPSAtMTsNCisJCWN5Y2xlXzMgPSAtMTsNCisJCWNvdW50ZXIgPSAwOw0KKwkJd2hpbGUg KHRlc3RfZG9uZV8xID09IDAgfHwNCisJCSAgICAgICB0ZXN0X2RvbmVfMiA9PSAwIHx8DQorCQkg ICAgICAgdGVzdF9kb25lXzMgPT0gMCkgew0KKwkJCXJlZ21hcF9yZWFkKGFmZV9wcml2LT50b3Bj a2dlbiwNCisJCQkJICAgIENLU1lTX0FVRF9UT1BfTU9OLCAmbW9uaXRvcik7DQorDQorCQkJdGVz dF9kb25lXzEgPSAobW9uaXRvciA+PiAyOCkgJiAweDE7DQorCQkJdGVzdF9kb25lXzIgPSAobW9u aXRvciA+PiAyOSkgJiAweDE7DQorCQkJdGVzdF9kb25lXzMgPSAobW9uaXRvciA+PiAzMCkgJiAw eDE7DQorCQkJaWYgKHRlc3RfZG9uZV8xID09IDEpDQorCQkJCWN5Y2xlXzEgPSBtb25pdG9yICYg MHhmOw0KKw0KKwkJCWlmICh0ZXN0X2RvbmVfMiA9PSAxKQ0KKwkJCQljeWNsZV8yID0gKG1vbml0 b3IgPj4gNCkgJiAweGY7DQorDQorCQkJaWYgKHRlc3RfZG9uZV8zID09IDEpDQorCQkJCWN5Y2xl XzMgPSAobW9uaXRvciA+PiA4KSAmIDB4ZjsNCisNCisJCQkvKiBoYW5kbGUgaWYgbmV2ZXIgdGVz dCBkb25lICovDQorCQkJaWYgKCsrY291bnRlciA+IDEwMDAwKSB7DQorCQkJCWRldl9lcnIoYWZl LT5kZXYsICIlcygpLCB0ZXN0IGZhaWwsIGN5Y2xlXzEgJWQsIGN5Y2xlXzIgJWQsIGN5Y2xlXzMg JWQsIG1vbml0b3IgMHgleFxuIiwNCisJCQkJCV9fZnVuY19fLA0KKwkJCQkJY3ljbGVfMSwgY3lj bGVfMiwgY3ljbGVfMywgbW9uaXRvcik7DQorCQkJCW10a2FpZl9jYWxpYl9vayA9IGZhbHNlOw0K KwkJCQlicmVhazsNCisJCQl9DQorCQl9DQorDQorCQlpZiAocGhhc2UgPT0gMCkgew0KKwkJCXBy ZXZfY3ljbGVfMSA9IGN5Y2xlXzE7DQorCQkJcHJldl9jeWNsZV8yID0gY3ljbGVfMjsNCisJCQlw cmV2X2N5Y2xlXzMgPSBjeWNsZV8zOw0KKwkJfQ0KKw0KKwkJaWYgKGN5Y2xlXzEgIT0gcHJldl9j eWNsZV8xICYmDQorCQkgICAgYWZlX3ByaXYtPm10a2FpZl9jaG9zZW5fcGhhc2VbMF0gPCAwKSB7 DQorCQkJYWZlX3ByaXYtPm10a2FpZl9jaG9zZW5fcGhhc2VbMF0gPSBwaGFzZSAtIDE7DQorCQkJ YWZlX3ByaXYtPm10a2FpZl9waGFzZV9jeWNsZVswXSA9IHByZXZfY3ljbGVfMTsNCisJCX0NCisN CisJCWlmIChjeWNsZV8yICE9IHByZXZfY3ljbGVfMiAmJg0KKwkJICAgIGFmZV9wcml2LT5tdGth aWZfY2hvc2VuX3BoYXNlWzFdIDwgMCkgew0KKwkJCWFmZV9wcml2LT5tdGthaWZfY2hvc2VuX3Bo YXNlWzFdID0gcGhhc2UgLSAxOw0KKwkJCWFmZV9wcml2LT5tdGthaWZfcGhhc2VfY3ljbGVbMV0g PSBwcmV2X2N5Y2xlXzI7DQorCQl9DQorDQorCQlpZiAoY3ljbGVfMyAhPSBwcmV2X2N5Y2xlXzMg JiYNCisJCSAgICBhZmVfcHJpdi0+bXRrYWlmX2Nob3Nlbl9waGFzZVsyXSA8IDApIHsNCisJCQlh ZmVfcHJpdi0+bXRrYWlmX2Nob3Nlbl9waGFzZVsyXSA9IHBoYXNlIC0gMTsNCisJCQlhZmVfcHJp di0+bXRrYWlmX3BoYXNlX2N5Y2xlWzJdID0gcHJldl9jeWNsZV8zOw0KKwkJfQ0KKw0KKwkJcmVn bWFwX3VwZGF0ZV9iaXRzKGFmZV9wcml2LT50b3Bja2dlbiwNCisJCQkJICAgQ0tTWVNfQVVEX1RP UF9DRkcsIDB4MSwgMHgwKTsNCisNCisJCWlmIChhZmVfcHJpdi0+bXRrYWlmX2Nob3Nlbl9waGFz ZVswXSA+PSAwICYmDQorCQkgICAgYWZlX3ByaXYtPm10a2FpZl9jaG9zZW5fcGhhc2VbMV0gPj0g MCAmJg0KKwkJICAgIGFmZV9wcml2LT5tdGthaWZfY2hvc2VuX3BoYXNlWzJdID49IDApDQorCQkJ YnJlYWs7DQorCX0NCisNCisJaWYgKGFmZV9wcml2LT5tdGthaWZfY2hvc2VuX3BoYXNlWzBdIDwg MCkNCisJCWNob3Nlbl9waGFzZV8xID0gMDsNCisJZWxzZQ0KKwkJY2hvc2VuX3BoYXNlXzEgPSBh ZmVfcHJpdi0+bXRrYWlmX2Nob3Nlbl9waGFzZVswXTsNCisNCisJaWYgKGFmZV9wcml2LT5tdGth aWZfY2hvc2VuX3BoYXNlWzFdIDwgMCkNCisJCWNob3Nlbl9waGFzZV8yID0gMDsNCisJZWxzZQ0K KwkJY2hvc2VuX3BoYXNlXzIgPSBhZmVfcHJpdi0+bXRrYWlmX2Nob3Nlbl9waGFzZVsxXTsNCisN CisJaWYgKGFmZV9wcml2LT5tdGthaWZfY2hvc2VuX3BoYXNlWzJdIDwgMCkNCisJCWNob3Nlbl9w aGFzZV8zID0gMDsNCisJZWxzZQ0KKwkJY2hvc2VuX3BoYXNlXzMgPSBhZmVfcHJpdi0+bXRrYWlm X2Nob3Nlbl9waGFzZVsyXTsNCisNCisJbXQ2MzU5X3NldF9tdGthaWZfY2FsaWJyYXRpb25fcGhh c2UoY21wbnRfY29kZWMsDQorCQkJCQkgICAgY2hvc2VuX3BoYXNlXzEsDQorCQkJCQkgICAgY2hv c2VuX3BoYXNlXzIsDQorCQkJCQkgICAgY2hvc2VuX3BoYXNlXzMpOw0KKw0KKwkvKiBkaXNhYmxl IHJ4IGZpZm8gKi8NCisJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLCBBRkVfQVVEX1BB RF9UT1AsIDB4ZmYsIDB4MzgpOw0KKw0KKwltdDYzNTlfbXRrYWlmX2NhbGlicmF0aW9uX2Rpc2Fi bGUoY21wbnRfY29kZWMpOw0KKw0KKwltdDgxOTJfYWZlX2dwaW9fcmVxdWVzdChhZmUtPmRldiwg ZmFsc2UsIE1UODE5Ml9EQUlfQUREQSwgMSk7DQorCW10ODE5Ml9hZmVfZ3Bpb19yZXF1ZXN0KGFm ZS0+ZGV2LCBmYWxzZSwgTVQ4MTkyX0RBSV9BRERBLCAwKTsNCisJbXQ4MTkyX2FmZV9ncGlvX3Jl cXVlc3QoYWZlLT5kZXYsIGZhbHNlLCBNVDgxOTJfREFJX0FEREFfQ0gzNCwgMSk7DQorCW10ODE5 Ml9hZmVfZ3Bpb19yZXF1ZXN0KGFmZS0+ZGV2LCBmYWxzZSwgTVQ4MTkyX0RBSV9BRERBX0NIMzQs IDApOw0KKwlwbV9ydW50aW1lX3B1dChhZmUtPmRldik7DQorDQorCWRldl9pbmZvKGFmZS0+ZGV2 LCAiJXMoKSwgbXRrYWlmX2Nob3Nlbl9waGFzZVswLzEvMl06JWQvJWQvJWRcbiIsDQorCQkgX19m dW5jX18sDQorCQkgYWZlX3ByaXYtPm10a2FpZl9jaG9zZW5fcGhhc2VbMF0sDQorCQkgYWZlX3By aXYtPm10a2FpZl9jaG9zZW5fcGhhc2VbMV0sDQorCQkgYWZlX3ByaXYtPm10a2FpZl9jaG9zZW5f cGhhc2VbMl0pOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBtdDgxOTJfbXQ2 MzU5X2luaXQoc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCkNCit7DQorCXN0cnVjdCBz bmRfc29jX2NvbXBvbmVudCAqY21wbnRfYWZlID0NCisJCXNuZF9zb2NfcnRkY29tX2xvb2t1cChy dGQsIEFGRV9QQ01fTkFNRSk7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY21wbnRfY29k ZWMgPQ0KKwkJYXNvY19ydGRfdG9fY29kZWMocnRkLCAwKS0+Y29tcG9uZW50Ow0KKwlzdHJ1Y3Qg bXRrX2Jhc2VfYWZlICphZmUgPSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjbXBudF9h ZmUpOw0KKwlzdHJ1Y3QgbXQ4MTkyX2FmZV9wcml2YXRlICphZmVfcHJpdiA9IGFmZS0+cGxhdGZv cm1fcHJpdjsNCisNCisJLyogc2V0IG10a2FpZiBwcm90b2NvbCAqLw0KKwltdDYzNTlfc2V0X210 a2FpZl9wcm90b2NvbChjbXBudF9jb2RlYywNCisJCQkJICAgTVQ2MzU5X01US0FJRl9QUk9UT0NP TF8yX0NMS19QMik7DQorCWFmZV9wcml2LT5tdGthaWZfcHJvdG9jb2wgPSBNVEtBSUZfUFJPVE9D T0xfMl9DTEtfUDI7DQorDQorCS8qIG10a2FpZiBjYWxpYnJhdGlvbiAqLw0KKwltdDgxOTJfbXQ2 MzU5X210a2FpZl9jYWxpYnJhdGlvbihydGQpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3Rh dGljIGludCBtdDgxOTJfcnQ1NjgyX2luaXQoc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0 ZCkNCit7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY21wbnRfY29kZWMgPQ0KKwkJYXNv Y19ydGRfdG9fY29kZWMocnRkLCAwKS0+Y29tcG9uZW50Ow0KKwlzdHJ1Y3Qgc25kX3NvY19qYWNr ICpqYWNrID0gJmhlYWRzZXRfamFjazsNCisJaW50IHJldDsNCisNCisJcmV0ID0gc25kX3NvY19j YXJkX2phY2tfbmV3KHJ0ZC0+Y2FyZCwgIkhlYWRzZXQgSmFjayIsDQorCQkJCSAgICBTTkRfSkFD S19IRUFEU0VUIHwgU05EX0pBQ0tfQlROXzAgfA0KKwkJCQkgICAgU05EX0pBQ0tfQlROXzEgfCBT TkRfSkFDS19CVE5fMiB8DQorCQkJCSAgICBTTkRfSkFDS19CVE5fMywNCisJCQkJICAgIGphY2ss IE5VTEwsIDApOw0KKwlpZiAocmV0KSB7DQorCQlkZXZfZXJyKHJ0ZC0+ZGV2LCAiSGVhZHNldCBK YWNrIGNyZWF0aW9uIGZhaWxlZDogJWRcbiIsIHJldCk7DQorCQlyZXR1cm4gcmV0Ow0KKwl9DQor DQorCXNuZF9qYWNrX3NldF9rZXkoamFjay0+amFjaywgU05EX0pBQ0tfQlROXzAsIEtFWV9QTEFZ UEFVU0UpOw0KKwlzbmRfamFja19zZXRfa2V5KGphY2stPmphY2ssIFNORF9KQUNLX0JUTl8xLCBL RVlfVk9JQ0VDT01NQU5EKTsNCisJc25kX2phY2tfc2V0X2tleShqYWNrLT5qYWNrLCBTTkRfSkFD S19CVE5fMiwgS0VZX1ZPTFVNRVVQKTsNCisJc25kX2phY2tfc2V0X2tleShqYWNrLT5qYWNrLCBT TkRfSkFDS19CVE5fMywgS0VZX1ZPTFVNRURPV04pOw0KKw0KKwlyZXQgPSBzbmRfc29jX2NvbXBv bmVudF9zZXRfamFjayhjbXBudF9jb2RlYywgamFjaywgTlVMTCk7DQorCWlmIChyZXQpIHsNCisJ CWRldl9lcnIocnRkLT5kZXYsICJIZWFkc2V0IEphY2sgc2V0IGZhaWxlZDogJWRcbiIsIHJldCk7 DQorCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQorCXJldHVybiAwOw0KK307DQorDQorc3RhdGljIGlu dCBtdDgxOTJfaTJzX2h3X3BhcmFtc19maXh1cChzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAq cnRkLA0KKwkJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykNCit7DQor CS8qIGZpeCBCRSBpMnMgZm9ybWF0IHRvIDMyYml0LCBjbGVhbiBwYXJhbSBtYXNrIGZpcnN0ICov DQorCXNuZF9tYXNrX3Jlc2V0X3JhbmdlKGh3X3BhcmFtX21hc2socGFyYW1zLCBTTkRSVl9QQ01f SFdfUEFSQU1fRk9STUFUKSwNCisJCQkgICAgIDAsIFNORFJWX1BDTV9GT1JNQVRfTEFTVCk7DQor DQorCXBhcmFtc19zZXRfZm9ybWF0KHBhcmFtcywgU05EUlZfUENNX0ZPUk1BVF9TMjRfTEUpOw0K Kw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludA0KK210ODE5Ml9tdDYzNTlfcnQxMDE1 X3J0NTY4Ml9jYXAxX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0p DQorew0KKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2 YXRlX2RhdGE7DQorCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY29tcG9uZW50ID0NCisJCXNu ZF9zb2NfcnRkY29tX2xvb2t1cChydGQsIEFGRV9QQ01fTkFNRSk7DQorCXN0cnVjdCBtdGtfYmFz ZV9hZmUgKmFmZSA9IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVudCk7DQor CWludCByZXQ7DQorDQorCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgY2hhbm5lbHNbXSA9IHsN CisJCTEsIDIsIDQNCisJfTsNCisJc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNtX2h3X2NvbnN0 cmFpbnRfbGlzdCBjb25zdHJhaW50c19jaGFubmVscyA9IHsNCisJCS5jb3VudCA9IEFSUkFZX1NJ WkUoY2hhbm5lbHMpLA0KKwkJLmxpc3QgPSBjaGFubmVscywNCisJCS5tYXNrID0gMCwNCisJfTsN CisJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCByYXRlc1tdID0gew0KKwkJODAwMCwgMTYwMDAs IDMyMDAwLCA0ODAwMCwgOTYwMDAsIDE5MjAwMA0KKwl9Ow0KKwlzdGF0aWMgY29uc3Qgc3RydWN0 IHNuZF9wY21faHdfY29uc3RyYWludF9saXN0IGNvbnN0cmFpbnRzX3JhdGVzID0gew0KKwkJLmNv dW50ID0gQVJSQVlfU0laRShyYXRlcyksDQorCQkubGlzdCAgPSByYXRlcywNCisJCS5tYXNrID0g MCwNCisJfTsNCisNCisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVh bS0+cnVudGltZTsNCisNCisJcmV0ID0gc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QocnVudGlt ZSwgMCwNCisJCQkJCSBTTkRSVl9QQ01fSFdfUEFSQU1fQ0hBTk5FTFMsDQorCQkJCQkgJmNvbnN0 cmFpbnRzX2NoYW5uZWxzKTsNCisJaWYgKHJldCA8IDApIHsNCisJCWRldl9lcnIoYWZlLT5kZXYs ICJod19jb25zdHJhaW50X2xpc3QgY2hhbm5lbHMgZmFpbGVkXG4iKTsNCisJCXJldHVybiByZXQ7 DQorCX0NCisNCisJcmV0ID0gc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QocnVudGltZSwgMCwN CisJCQkJCSBTTkRSVl9QQ01fSFdfUEFSQU1fUkFURSwNCisJCQkJCSAmY29uc3RyYWludHNfcmF0 ZXMpOw0KKwlpZiAocmV0IDwgMCkgew0KKwkJZGV2X2VycihhZmUtPmRldiwgImh3X2NvbnN0cmFp bnRfbGlzdCByYXRlIGZhaWxlZFxuIik7DQorCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQorCXJldHVy biAwOw0KK30NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2Nfb3BzIG10ODE5Ml9tdDYz NTlfcnQxMDE1X3J0NTY4Ml9jYXB0dXJlMV9vcHMgPSB7DQorCS5zdGFydHVwID0gbXQ4MTkyX210 NjM1OV9ydDEwMTVfcnQ1NjgyX2NhcDFfc3RhcnR1cCwNCit9Ow0KKw0KKy8qIEZFICovDQorU05E X1NPQ19EQUlMSU5LX0RFRlMocGxheWJhY2sxLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVko Q09NUF9DUFUoIkRMMSIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVko KSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRf U09DX0RBSUxJTktfREVGUyhwbGF5YmFjazEyLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVko Q09NUF9DUFUoIkRMMTIiKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1Z KCkpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05E X1NPQ19EQUlMSU5LX0RFRlMocGxheWJhY2syLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVko Q09NUF9DUFUoIkRMMiIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVko KSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRf U09DX0RBSUxJTktfREVGUyhwbGF5YmFjazMsDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShD T01QX0NQVSgiREwzIikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1NWSgp KSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NORF9T T0NfREFJTElOS19ERUZTKHBsYXliYWNrNCwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENP TVBfQ1BVKCJETDQiKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkp LA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NP Q19EQUlMSU5LX0RFRlMocGxheWJhY2s1LA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09N UF9DUFUoIkRMNSIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSks DQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09D X0RBSUxJTktfREVGUyhwbGF5YmFjazYsDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01Q X0NQVSgiREw2IikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1NWSgpKSwN CisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NORF9TT0Nf REFJTElOS19ERUZTKHBsYXliYWNrNywNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBf Q1BVKCJETDciKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0K KwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19E QUlMSU5LX0RFRlMocGxheWJhY2s4LA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9D UFUoIkRMOCIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSksDQor CQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09DX0RB SUxJTktfREVGUyhwbGF5YmFjazksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NQ VSgiREw5IikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1NWSgpKSwNCisJ CSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJ TElOS19ERUZTKGNhcHR1cmUxLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUo IlVMMSIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSksDQorCQkg ICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09DX0RBSUxJ TktfREVGUyhjYXB0dXJlMiwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJV TDIiKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0KKwkJICAg ICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5L X0RFRlMoY2FwdHVyZTMsDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NQVSgiVUwz IikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1NWSgpKSwNCisJCSAgICAg REFJTElOS19DT01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJTElOS19E RUZTKGNhcHR1cmU0LA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUoIlVMNCIp KSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSksDQorCQkgICAgIERB SUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09DX0RBSUxJTktfREVG UyhjYXB0dXJlNSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJVTDUiKSks DQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0KKwkJICAgICBEQUlM SU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5LX0RFRlMo Y2FwdHVyZTYsDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NQVSgiVUw2IikpLA0K KwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1NWSgpKSwNCisJCSAgICAgREFJTElO S19DT01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJTElOS19ERUZTKGNh cHR1cmU3LA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUoIlVMNyIpKSwNCisJ CSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSksDQorCQkgICAgIERBSUxJTktf Q09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09DX0RBSUxJTktfREVGUyhjYXB0 dXJlOCwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJVTDgiKSksDQorCQkg ICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0KKwkJICAgICBEQUlMSU5LX0NP TVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5LX0RFRlMoY2FwdHVy ZV9tb25vMSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJVTF9NT05PXzEi KSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0KKwkJICAgICBE QUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5LX0RF RlMoY2FwdHVyZV9tb25vMiwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJV TF9NT05PXzIiKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0K KwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19E QUlMSU5LX0RFRlMoY2FwdHVyZV9tb25vMywNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENP TVBfQ1BVKCJVTF9NT05PXzMiKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0RV TU1ZKCkpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQor U05EX1NPQ19EQUlMSU5LX0RFRlMocGxheWJhY2tfaGRtaSwNCisJCSAgICAgREFJTElOS19DT01Q X0FSUkFZKENPTVBfQ1BVKCJIRE1JIikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09N UF9EVU1NWSgpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0K Kw0KKy8qIEJFICovDQorU05EX1NPQ19EQUlMSU5LX0RFRlMocHJpbWFyeV9jb2RlYywNCisJCSAg ICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJBRERBIikpLA0KKwkJICAgICBEQUlMSU5L X0NPTVBfQVJSQVkoQ09NUF9DT0RFQygibXQ2MzU5LXNvdW5kIiwNCisJCQkJCQkgICAibXQ2MzU5 LXNuZC1jb2RlYy1haWYxIikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBU WSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5LX0RFRlMocHJpbWFyeV9jb2RlY19jaDM0LA0KKwkJ ICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUoIkFEREFfQ0gzNCIpKSwNCisJCSAgICAg REFJTElOS19DT01QX0FSUkFZKENPTVBfQ09ERUMoIm10NjM1OS1zb3VuZCIsDQorCQkJCQkJICAg Im10NjM1OS1zbmQtY29kZWMtYWlmMiIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENP TVBfRU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJTElOS19ERUZTKGFwX2RtaWMsDQorCQkgICAg IERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NQVSgiQVBfRE1JQyIpKSwNCisJCSAgICAgREFJTElO S19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShD T01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09DX0RBSUxJTktfREVGUyhhcF9kbWljX2NoMzQsDQor CQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NQVSgiQVBfRE1JQ19DSDM0IikpLA0KKwkJ ICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1NWSgpKSwNCisJCSAgICAgREFJTElOS19D T01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJTElOS19ERUZTKGkyczAs DQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NQVSgiSTJTMCIpKSwNCisJCSAgICAg REFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9B UlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09DX0RBSUxJTktfREVGUyhpMnMxLA0KKwkJ ICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUoIkkyUzEiKSksDQorCQkgICAgIERBSUxJ TktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVko Q09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5LX0RFRlMoaTJzMiwNCisJCSAgICAg REFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJJMlMyIikpLA0KKwkJICAgICBEQUlMSU5LX0NP TVBfQVJSQVkoQ09NUF9EVU1NWSgpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBf RU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJTElOS19ERUZTKGkyczMsDQorCQkgICAgIERBSUxJ TktfQ09NUF9BUlJBWShDT01QX0NQVSgiSTJTMyIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FS UkFZKENPTVBfQ09ERUMoUlQxMDE1X0RFVjBfTkFNRSwNCisJCQkJCQkgICBSVDEwMTVfQ09ERUNf REFJKSwNCisJCQkJCUNPTVBfQ09ERUMoUlQxMDE1X0RFVjFfTkFNRSwNCisJCQkJCQkgICBSVDEw MTVfQ09ERUNfREFJKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkp KTsNCisNCitTTkRfU09DX0RBSUxJTktfREVGUyhpMnM1LA0KKwkJICAgICBEQUlMSU5LX0NPTVBf QVJSQVkoQ09NUF9DUFUoIkkyUzUiKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01Q X0RVTU1ZKCkpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQor DQorU05EX1NPQ19EQUlMSU5LX0RFRlMoaTJzNiwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZ KENPTVBfQ1BVKCJJMlM2IikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1N WSgpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NO RF9TT0NfREFJTElOS19ERUZTKGkyczcsDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01Q X0NQVSgiSTJTNyIpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRFVNTVkoKSks DQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0VNUFRZKCkpKTsNCisNCitTTkRfU09D X0RBSUxJTktfREVGUyhpMnM4LA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUo IkkyUzgiKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NPREVDKFJUNTY4Ml9E RVYwX05BTUUsDQorCQkJCQkJICAgUlQ1NjgyX0NPREVDX0RBSSkpLA0KKwkJICAgICBEQUlMSU5L X0NPTVBfQVJSQVkoQ09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5LX0RFRlMoaTJz OSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJJMlM5IikpLA0KKwkJICAg ICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DT0RFQyhSVDU2ODJfREVWMF9OQU1FLA0KKwkJCQkJ CSAgIFJUNTY4Ml9DT0RFQ19EQUkpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBf RU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJTElOS19ERUZTKGNvbm5zeXNfaTJzLA0KKwkJICAg ICBEQUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9DUFUoIkNPTk5TWVNfSTJTIikpLA0KKwkJICAgICBE QUlMSU5LX0NPTVBfQVJSQVkoQ09NUF9EVU1NWSgpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FS UkFZKENPTVBfRU1QVFkoKSkpOw0KKw0KK1NORF9TT0NfREFJTElOS19ERUZTKHBjbTEsDQorCQkg ICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01QX0NQVSgiUENNIDEiKSksDQorCQkgICAgIERBSUxJ TktfQ09NUF9BUlJBWShDT01QX0RVTU1ZKCkpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJSQVko Q09NUF9FTVBUWSgpKSk7DQorDQorU05EX1NPQ19EQUlMSU5LX0RFRlMocGNtMiwNCisJCSAgICAg REFJTElOS19DT01QX0FSUkFZKENPTVBfQ1BVKCJQQ00gMiIpKSwNCisJCSAgICAgREFJTElOS19D T01QX0FSUkFZKENPTVBfRFVNTVkoKSksDQorCQkgICAgIERBSUxJTktfQ09NUF9BUlJBWShDT01Q X0VNUFRZKCkpKTsNCisNCitTTkRfU09DX0RBSUxJTktfREVGUyh0ZG0sDQorCQkgICAgIERBSUxJ TktfQ09NUF9BUlJBWShDT01QX0NQVSgiVERNIikpLA0KKwkJICAgICBEQUlMSU5LX0NPTVBfQVJS QVkoQ09NUF9EVU1NWSgpKSwNCisJCSAgICAgREFJTElOS19DT01QX0FSUkFZKENPTVBfRU1QVFko KSkpOw0KKw0KK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayBtdDgxOTJfbXQ2MzU5X3J0 MTAxNV9ydDU2ODJfZGFpX2xpbmtzW10gPSB7DQorCS8qIEZyb250IEVuZCBEQUkgbGlua3MgKi8N CisJew0KKwkJLm5hbWUgPSAiUGxheWJhY2tfMSIsDQorCQkuc3RyZWFtX25hbWUgPSAiUGxheWJh Y2tfMSIsDQorCQkudHJpZ2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkUsDQorCQkJICAg IFNORF9TT0NfRFBDTV9UUklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9IDEsDQorCQkuZHBjbV9w bGF5YmFjayA9IDEsDQorCQlTTkRfU09DX0RBSUxJTktfUkVHKHBsYXliYWNrMSksDQorCX0sDQor CXsNCisJCS5uYW1lID0gIlBsYXliYWNrXzEyIiwNCisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFj a18xMiIsDQorCQkudHJpZ2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkUsDQorCQkJICAg IFNORF9TT0NfRFBDTV9UUklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9IDEsDQorCQkuZHBjbV9w bGF5YmFjayA9IDEsDQorCQlTTkRfU09DX0RBSUxJTktfUkVHKHBsYXliYWNrMTIpLA0KKwl9LA0K Kwl7DQorCQkubmFtZSA9ICJQbGF5YmFja18yIiwNCisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFj a18yIiwNCisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BSRSwNCisJCQkgICAg U05EX1NPQ19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwNCisJCS5kcGNtX3Bs YXliYWNrID0gMSwNCisJCVNORF9TT0NfREFJTElOS19SRUcocGxheWJhY2syKSwNCisJfSwNCisJ ew0KKwkJLm5hbWUgPSAiUGxheWJhY2tfMyIsDQorCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2tf MyIsDQorCQkudHJpZ2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkUsDQorCQkJICAgIFNO RF9TT0NfRFBDTV9UUklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9IDEsDQorCQkuZHBjbV9wbGF5 YmFjayA9IDEsDQorCQlTTkRfU09DX0RBSUxJTktfUkVHKHBsYXliYWNrMyksDQorCX0sDQorCXsN CisJCS5uYW1lID0gIlBsYXliYWNrXzQiLA0KKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrXzQi LA0KKwkJLnRyaWdnZXIgPSB7U05EX1NPQ19EUENNX1RSSUdHRVJfUFJFLA0KKwkJCSAgICBTTkRf U09DX0RQQ01fVFJJR0dFUl9QUkV9LA0KKwkJLmR5bmFtaWMgPSAxLA0KKwkJLmRwY21fcGxheWJh Y2sgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhwbGF5YmFjazQpLA0KKwl9LA0KKwl7DQor CQkubmFtZSA9ICJQbGF5YmFja181IiwNCisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFja181IiwN CisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BSRSwNCisJCQkgICAgU05EX1NP Q19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwNCisJCS5kcGNtX3BsYXliYWNr ID0gMSwNCisJCVNORF9TT0NfREFJTElOS19SRUcocGxheWJhY2s1KSwNCisJfSwNCisJew0KKwkJ Lm5hbWUgPSAiUGxheWJhY2tfNiIsDQorCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2tfNiIsDQor CQkudHJpZ2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkUsDQorCQkJICAgIFNORF9TT0Nf RFBDTV9UUklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9IDEsDQorCQkuZHBjbV9wbGF5YmFjayA9 IDEsDQorCQlTTkRfU09DX0RBSUxJTktfUkVHKHBsYXliYWNrNiksDQorCX0sDQorCXsNCisJCS5u YW1lID0gIlBsYXliYWNrXzciLA0KKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrXzciLA0KKwkJ LnRyaWdnZXIgPSB7U05EX1NPQ19EUENNX1RSSUdHRVJfUFJFLA0KKwkJCSAgICBTTkRfU09DX0RQ Q01fVFJJR0dFUl9QUkV9LA0KKwkJLmR5bmFtaWMgPSAxLA0KKwkJLmRwY21fcGxheWJhY2sgPSAx LA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhwbGF5YmFjazcpLA0KKwl9LA0KKwl7DQorCQkubmFt ZSA9ICJQbGF5YmFja184IiwNCisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFja184IiwNCisJCS50 cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BSRSwNCisJCQkgICAgU05EX1NPQ19EUENN X1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwNCisJCS5kcGNtX3BsYXliYWNrID0gMSwN CisJCVNORF9TT0NfREFJTElOS19SRUcocGxheWJhY2s4KSwNCisJfSwNCisJew0KKwkJLm5hbWUg PSAiUGxheWJhY2tfOSIsDQorCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2tfOSIsDQorCQkudHJp Z2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkUsDQorCQkJICAgIFNORF9TT0NfRFBDTV9U UklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9IDEsDQorCQkuZHBjbV9wbGF5YmFjayA9IDEsDQor CQlTTkRfU09DX0RBSUxJTktfUkVHKHBsYXliYWNrOSksDQorCX0sDQorCXsNCisJCS5uYW1lID0g IkNhcHR1cmVfMSIsDQorCQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZV8xIiwNCisJCS50cmlnZ2Vy ID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BSRSwNCisJCQkgICAgU05EX1NPQ19EUENNX1RSSUdH RVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwNCisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJLm9w cyA9ICZtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODJfY2FwdHVyZTFfb3BzLA0KKwkJU05EX1NP Q19EQUlMSU5LX1JFRyhjYXB0dXJlMSksDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkNhcHR1cmVf MiIsDQorCQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZV8yIiwNCisJCS50cmlnZ2VyID0ge1NORF9T T0NfRFBDTV9UUklHR0VSX1BSRSwNCisJCQkgICAgU05EX1NPQ19EUENNX1RSSUdHRVJfUFJFfSwN CisJCS5keW5hbWljID0gMSwNCisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJU05EX1NPQ19EQUlM SU5LX1JFRyhjYXB0dXJlMiksDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkNhcHR1cmVfMyIsDQor CQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZV8zIiwNCisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBD TV9UUklHR0VSX1BSRSwNCisJCQkgICAgU05EX1NPQ19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5k eW5hbWljID0gMSwNCisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JF RyhjYXB0dXJlMyksDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkNhcHR1cmVfNCIsDQorCQkuc3Ry ZWFtX25hbWUgPSAiQ2FwdHVyZV80IiwNCisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklH R0VSX1BSRSwNCisJCQkgICAgU05EX1NPQ19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWlj ID0gMSwNCisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhjYXB0 dXJlNCksDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkNhcHR1cmVfNSIsDQorCQkuc3RyZWFtX25h bWUgPSAiQ2FwdHVyZV81IiwNCisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BS RSwNCisJCQkgICAgU05EX1NPQ19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwN CisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhjYXB0dXJlNSks DQorCX0sDQorCXsNCisJCS5uYW1lID0gIkNhcHR1cmVfNiIsDQorCQkuc3RyZWFtX25hbWUgPSAi Q2FwdHVyZV82IiwNCisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BSRSwNCisJ CQkgICAgU05EX1NPQ19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwNCisJCS5k cGNtX2NhcHR1cmUgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhjYXB0dXJlNiksDQorCX0s DQorCXsNCisJCS5uYW1lID0gIkNhcHR1cmVfNyIsDQorCQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVy ZV83IiwNCisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BSRSwNCisJCQkgICAg U05EX1NPQ19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwNCisJCS5kcGNtX2Nh cHR1cmUgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhjYXB0dXJlNyksDQorCX0sDQorCXsN CisJCS5uYW1lID0gIkNhcHR1cmVfOCIsDQorCQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZV84IiwN CisJCS50cmlnZ2VyID0ge1NORF9TT0NfRFBDTV9UUklHR0VSX1BSRSwNCisJCQkgICAgU05EX1NP Q19EUENNX1RSSUdHRVJfUFJFfSwNCisJCS5keW5hbWljID0gMSwNCisJCS5kcGNtX2NhcHR1cmUg PSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhjYXB0dXJlOCksDQorCX0sDQorCXsNCisJCS5u YW1lID0gIkNhcHR1cmVfTW9ub18xIiwNCisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlX01vbm9f MSIsDQorCQkudHJpZ2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkUsDQorCQkJICAgIFNO RF9TT0NfRFBDTV9UUklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9IDEsDQorCQkuZHBjbV9jYXB0 dXJlID0gMSwNCisJCVNORF9TT0NfREFJTElOS19SRUcoY2FwdHVyZV9tb25vMSksDQorCX0sDQor CXsNCisJCS5uYW1lID0gIkNhcHR1cmVfTW9ub18yIiwNCisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0 dXJlX01vbm9fMiIsDQorCQkudHJpZ2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkUsDQor CQkJICAgIFNORF9TT0NfRFBDTV9UUklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9IDEsDQorCQku ZHBjbV9jYXB0dXJlID0gMSwNCisJCVNORF9TT0NfREFJTElOS19SRUcoY2FwdHVyZV9tb25vMiks DQorCX0sDQorCXsNCisJCS5uYW1lID0gIkNhcHR1cmVfTW9ub18zIiwNCisJCS5zdHJlYW1fbmFt ZSA9ICJDYXB0dXJlX01vbm9fMyIsDQorCQkudHJpZ2dlciA9IHtTTkRfU09DX0RQQ01fVFJJR0dF Ul9QUkUsDQorCQkJICAgIFNORF9TT0NfRFBDTV9UUklHR0VSX1BSRX0sDQorCQkuZHluYW1pYyA9 IDEsDQorCQkuZHBjbV9jYXB0dXJlID0gMSwNCisJCVNORF9TT0NfREFJTElOS19SRUcoY2FwdHVy ZV9tb25vMyksDQorCX0sDQorCXsNCisJCS5uYW1lID0gInBsYXliYWNrX2hkbWkiLA0KKwkJLnN0 cmVhbV9uYW1lID0gIlBsYXliYWNrX0hETUkiLA0KKwkJLnRyaWdnZXIgPSB7U05EX1NPQ19EUENN X1RSSUdHRVJfUFJFLA0KKwkJCSAgICBTTkRfU09DX0RQQ01fVFJJR0dFUl9QUkV9LA0KKwkJLmR5 bmFtaWMgPSAxLA0KKwkJLmRwY21fcGxheWJhY2sgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JF RyhwbGF5YmFja19oZG1pKSwNCisJfSwNCisJLyogQmFjayBFbmQgREFJIGxpbmtzICovDQorCXsN CisJCS5uYW1lID0gIlByaW1hcnkgQ29kZWMiLA0KKwkJLm5vX3BjbSA9IDEsDQorCQkuZHBjbV9w bGF5YmFjayA9IDEsDQorCQkuZHBjbV9jYXB0dXJlID0gMSwNCisJCS5pZ25vcmVfc3VzcGVuZCA9 IDEsDQorCQkuaW5pdCA9IG10ODE5Ml9tdDYzNTlfaW5pdCwNCisJCVNORF9TT0NfREFJTElOS19S RUcocHJpbWFyeV9jb2RlYyksDQorCX0sDQorCXsNCisJCS5uYW1lID0gIlByaW1hcnkgQ29kZWMg Q0gzNCIsDQorCQkubm9fcGNtID0gMSwNCisJCS5kcGNtX3BsYXliYWNrID0gMSwNCisJCS5kcGNt X2NhcHR1cmUgPSAxLA0KKwkJLmlnbm9yZV9zdXNwZW5kID0gMSwNCisJCVNORF9TT0NfREFJTElO S19SRUcocHJpbWFyeV9jb2RlY19jaDM0KSwNCisJfSwNCisJew0KKwkJLm5hbWUgPSAiQVBfRE1J QyIsDQorCQkubm9fcGNtID0gMSwNCisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJLmlnbm9yZV9z dXNwZW5kID0gMSwNCisJCVNORF9TT0NfREFJTElOS19SRUcoYXBfZG1pYyksDQorCX0sDQorCXsN CisJCS5uYW1lID0gIkFQX0RNSUNfQ0gzNCIsDQorCQkubm9fcGNtID0gMSwNCisJCS5kcGNtX2Nh cHR1cmUgPSAxLA0KKwkJLmlnbm9yZV9zdXNwZW5kID0gMSwNCisJCVNORF9TT0NfREFJTElOS19S RUcoYXBfZG1pY19jaDM0KSwNCisJfSwNCisJew0KKwkJLm5hbWUgPSAiSTJTMCIsDQorCQkubm9f cGNtID0gMSwNCisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJLmlnbm9yZV9zdXNwZW5kID0gMSwN CisJCS5iZV9od19wYXJhbXNfZml4dXAgPSBtdDgxOTJfaTJzX2h3X3BhcmFtc19maXh1cCwNCisJ CVNORF9TT0NfREFJTElOS19SRUcoaTJzMCksDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkkyUzEi LA0KKwkJLm5vX3BjbSA9IDEsDQorCQkuZHBjbV9wbGF5YmFjayA9IDEsDQorCQkuaWdub3JlX3N1 c3BlbmQgPSAxLA0KKwkJLmJlX2h3X3BhcmFtc19maXh1cCA9IG10ODE5Ml9pMnNfaHdfcGFyYW1z X2ZpeHVwLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhpMnMxKSwNCisJfSwNCisJew0KKwkJLm5h bWUgPSAiSTJTMiIsDQorCQkubm9fcGNtID0gMSwNCisJCS5kcGNtX2NhcHR1cmUgPSAxLA0KKwkJ Lmlnbm9yZV9zdXNwZW5kID0gMSwNCisJCS5iZV9od19wYXJhbXNfZml4dXAgPSBtdDgxOTJfaTJz X2h3X3BhcmFtc19maXh1cCwNCisJCVNORF9TT0NfREFJTElOS19SRUcoaTJzMiksDQorCX0sDQor CXsNCisJCS5uYW1lID0gIkkyUzMiLA0KKwkJLm5vX3BjbSA9IDEsDQorCQkuZHBjbV9wbGF5YmFj ayA9IDEsDQorCQkuaWdub3JlX3N1c3BlbmQgPSAxLA0KKwkJLmJlX2h3X3BhcmFtc19maXh1cCA9 IG10ODE5Ml9pMnNfaHdfcGFyYW1zX2ZpeHVwLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhpMnMz KSwNCisJCS5vcHMgPSAmbXQ4MTkyX3J0MTAxNV9pMnNfb3BzLA0KKwl9LA0KKwl7DQorCQkubmFt ZSA9ICJJMlM1IiwNCisJCS5ub19wY20gPSAxLA0KKwkJLmRwY21fcGxheWJhY2sgPSAxLA0KKwkJ Lmlnbm9yZV9zdXNwZW5kID0gMSwNCisJCS5iZV9od19wYXJhbXNfZml4dXAgPSBtdDgxOTJfaTJz X2h3X3BhcmFtc19maXh1cCwNCisJCVNORF9TT0NfREFJTElOS19SRUcoaTJzNSksDQorCX0sDQor CXsNCisJCS5uYW1lID0gIkkyUzYiLA0KKwkJLm5vX3BjbSA9IDEsDQorCQkuZHBjbV9jYXB0dXJl ID0gMSwNCisJCS5pZ25vcmVfc3VzcGVuZCA9IDEsDQorCQkuYmVfaHdfcGFyYW1zX2ZpeHVwID0g bXQ4MTkyX2kyc19od19wYXJhbXNfZml4dXAsDQorCQlTTkRfU09DX0RBSUxJTktfUkVHKGkyczYp LA0KKwl9LA0KKwl7DQorCQkubmFtZSA9ICJJMlM3IiwNCisJCS5ub19wY20gPSAxLA0KKwkJLmRw Y21fcGxheWJhY2sgPSAxLA0KKwkJLmlnbm9yZV9zdXNwZW5kID0gMSwNCisJCS5iZV9od19wYXJh bXNfZml4dXAgPSBtdDgxOTJfaTJzX2h3X3BhcmFtc19maXh1cCwNCisJCVNORF9TT0NfREFJTElO S19SRUcoaTJzNyksDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkkyUzgiLA0KKwkJLm5vX3BjbSA9 IDEsDQorCQkuZHBjbV9jYXB0dXJlID0gMSwNCisJCS5pZ25vcmVfc3VzcGVuZCA9IDEsDQorCQku aW5pdCA9IG10ODE5Ml9ydDU2ODJfaW5pdCwNCisJCS5iZV9od19wYXJhbXNfZml4dXAgPSBtdDgx OTJfaTJzX2h3X3BhcmFtc19maXh1cCwNCisJCVNORF9TT0NfREFJTElOS19SRUcoaTJzOCksDQor CQkub3BzID0gJm10ODE5Ml9ydDU2ODJfaTJzX29wcywNCisJfSwNCisJew0KKwkJLm5hbWUgPSAi STJTOSIsDQorCQkubm9fcGNtID0gMSwNCisJCS5kcGNtX3BsYXliYWNrID0gMSwNCisJCS5pZ25v cmVfc3VzcGVuZCA9IDEsDQorCQkuYmVfaHdfcGFyYW1zX2ZpeHVwID0gbXQ4MTkyX2kyc19od19w YXJhbXNfZml4dXAsDQorCQlTTkRfU09DX0RBSUxJTktfUkVHKGkyczkpLA0KKwkJLm9wcyA9ICZt dDgxOTJfcnQ1NjgyX2kyc19vcHMsDQorCX0sDQorCXsNCisJCS5uYW1lID0gIkNPTk5TWVNfSTJT IiwNCisJCS5ub19wY20gPSAxLA0KKwkJLmRwY21fY2FwdHVyZSA9IDEsDQorCQkuaWdub3JlX3N1 c3BlbmQgPSAxLA0KKwkJU05EX1NPQ19EQUlMSU5LX1JFRyhjb25uc3lzX2kycyksDQorCX0sDQor CXsNCisJCS5uYW1lID0gIlBDTSAxIiwNCisJCS5ub19wY20gPSAxLA0KKwkJLmRwY21fcGxheWJh Y2sgPSAxLA0KKwkJLmRwY21fY2FwdHVyZSA9IDEsDQorCQkuaWdub3JlX3N1c3BlbmQgPSAxLA0K KwkJU05EX1NPQ19EQUlMSU5LX1JFRyhwY20xKSwNCisJfSwNCisJew0KKwkJLm5hbWUgPSAiUENN IDIiLA0KKwkJLm5vX3BjbSA9IDEsDQorCQkuZHBjbV9wbGF5YmFjayA9IDEsDQorCQkuZHBjbV9j YXB0dXJlID0gMSwNCisJCS5pZ25vcmVfc3VzcGVuZCA9IDEsDQorCQlTTkRfU09DX0RBSUxJTktf UkVHKHBjbTIpLA0KKwl9LA0KKwl7DQorCQkubmFtZSA9ICJURE0iLA0KKwkJLm5vX3BjbSA9IDEs DQorCQkuZHBjbV9wbGF5YmFjayA9IDEsDQorCQkuaWdub3JlX3N1c3BlbmQgPSAxLA0KKwkJU05E X1NPQ19EQUlMSU5LX1JFRyh0ZG0pLA0KKwl9LA0KK307DQorDQorc3RhdGljIHN0cnVjdCBzbmRf c29jX2NvZGVjX2NvbmYgcnQxMDE1X2FtcF9jb25mW10gPSB7DQorCXsNCisJCS5kbGMgPSBDT01Q X0NPREVDX0NPTkYoUlQxMDE1X0RFVjBfTkFNRSksDQorCQkubmFtZV9wcmVmaXggPSAiTGVmdCIs DQorCX0sDQorCXsNCisJCS5kbGMgPSBDT01QX0NPREVDX0NPTkYoUlQxMDE1X0RFVjFfTkFNRSks DQorCQkubmFtZV9wcmVmaXggPSAiUmlnaHQiLA0KKwl9LA0KK307DQorDQorc3RhdGljIHN0cnVj dCBzbmRfc29jX2NhcmQgbXQ4MTkyX210NjM1OV9ydDEwMTVfcnQ1NjgyX3NvY19jYXJkID0gew0K KwkubmFtZSA9ICJtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODIiLA0KKwkub3duZXIgPSBUSElT X01PRFVMRSwNCisJLmRhaV9saW5rID0gbXQ4MTkyX210NjM1OV9ydDEwMTVfcnQ1NjgyX2RhaV9s aW5rcywNCisJLm51bV9saW5rcyA9IEFSUkFZX1NJWkUobXQ4MTkyX210NjM1OV9ydDEwMTVfcnQ1 NjgyX2RhaV9saW5rcyksDQorCS5jb250cm9scyA9IG10ODE5Ml9tdDYzNTlfcnQxMDE1X3J0NTY4 Ml9jb250cm9scywNCisJLm51bV9jb250cm9scyA9IEFSUkFZX1NJWkUobXQ4MTkyX210NjM1OV9y dDEwMTVfcnQ1NjgyX2NvbnRyb2xzKSwNCisJLmRhcG1fd2lkZ2V0cyA9IG10ODE5Ml9tdDYzNTlf cnQxMDE1X3J0NTY4Ml93aWRnZXRzLA0KKwkubnVtX2RhcG1fd2lkZ2V0cyA9IEFSUkFZX1NJWkUo bXQ4MTkyX210NjM1OV9ydDEwMTVfcnQ1NjgyX3dpZGdldHMpLA0KKwkuZGFwbV9yb3V0ZXMgPSBt dDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODJfcm91dGVzLA0KKwkubnVtX2RhcG1fcm91dGVzID0g QVJSQVlfU0laRShtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODJfcm91dGVzKSwNCisJLmNvZGVj X2NvbmYgPSBydDEwMTVfYW1wX2NvbmYsDQorCS5udW1fY29uZmlncyA9IEFSUkFZX1NJWkUocnQx MDE1X2FtcF9jb25mKSwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgbXQ4MTkyX210NjM1OV9ydDEwMTVf cnQ1NjgyX2Rldl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KK3sNCisJc3Ry dWN0IHNuZF9zb2NfY2FyZCAqY2FyZCA9ICZtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODJfc29j X2NhcmQ7DQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGxhdGZvcm1fbm9kZTsNCisJaW50IHJldCwg aTsNCisJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKmRhaV9saW5rOw0KKw0KKwljYXJkLT5kZXYg PSAmcGRldi0+ZGV2Ow0KKw0KKwlwbGF0Zm9ybV9ub2RlID0gb2ZfcGFyc2VfcGhhbmRsZShwZGV2 LT5kZXYub2Zfbm9kZSwNCisJCQkJCSAibWVkaWF0ZWsscGxhdGZvcm0iLCAwKTsNCisJaWYgKCFw bGF0Zm9ybV9ub2RlKSB7DQorCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJQcm9wZXJ0eSAncGxhdGZv cm0nIG1pc3Npbmcgb3IgaW52YWxpZFxuIik7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0K Kwlmb3JfZWFjaF9jYXJkX3ByZWxpbmtzKGNhcmQsIGksIGRhaV9saW5rKSB7DQorCQlpZiAoIWRh aV9saW5rLT5wbGF0Zm9ybXMtPm5hbWUpDQorCQkJZGFpX2xpbmstPnBsYXRmb3Jtcy0+b2Zfbm9k ZSA9IHBsYXRmb3JtX25vZGU7DQorCX0NCisNCisJcmV0ID0gbXQ4MTkyX2FmZV9ncGlvX2luaXQo JnBkZXYtPmRldik7DQorCWlmIChyZXQpIHsNCisJCWRldl9lcnIoJnBkZXYtPmRldiwgImluaXQg Z3BpbyBlcnJvciAlZFxuIiwgcmV0KTsNCisJCXJldHVybiByZXQ7DQorCX0NCisNCisJcmV0dXJu IGRldm1fc25kX3NvY19yZWdpc3Rlcl9jYXJkKCZwZGV2LT5kZXYsIGNhcmQpOw0KK30NCisNCisj aWZkZWYgQ09ORklHX09GDQorc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXQ4MTky X210NjM1OV9ydDEwMTVfcnQ1NjgyX2R0X21hdGNoW10gPSB7DQorCXsuY29tcGF0aWJsZSA9ICJt ZWRpYXRlayxtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODIiLH0sDQorCXt9DQorfTsNCisjZW5k aWYNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgbXQ4MTkyX210NjM1OV9ydDEw MTVfcnQ1NjgyX3BtX29wcyA9IHsNCisJLnBvd2Vyb2ZmID0gc25kX3NvY19wb3dlcm9mZiwNCisJ LnJlc3RvcmUgPSBzbmRfc29jX3Jlc3VtZSwNCit9Ow0KKw0KK3N0YXRpYyBzdHJ1Y3QgcGxhdGZv cm1fZHJpdmVyIG10ODE5Ml9tdDYzNTlfcnQxMDE1X3J0NTY4Ml9kcml2ZXIgPSB7DQorCS5kcml2 ZXIgPSB7DQorCQkubmFtZSA9ICJtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODIiLA0KKyNpZmRl ZiBDT05GSUdfT0YNCisJCS5vZl9tYXRjaF90YWJsZSA9IG10ODE5Ml9tdDYzNTlfcnQxMDE1X3J0 NTY4Ml9kdF9tYXRjaCwNCisjZW5kaWYNCisJCS5wbSA9ICZtdDgxOTJfbXQ2MzU5X3J0MTAxNV9y dDU2ODJfcG1fb3BzLA0KKwl9LA0KKwkucHJvYmUgPSBtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2 ODJfZGV2X3Byb2JlLA0KK307DQorDQorbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihtdDgxOTJfbXQ2 MzU5X3J0MTAxNV9ydDU2ODJfZHJpdmVyKTsNCisNCisvKiBNb2R1bGUgaW5mb3JtYXRpb24gKi8N CitNT0RVTEVfREVTQ1JJUFRJT04oIk1UODE5Mi1NVDYzNTktUlQxMDE1LVJUNTY4MiBBTFNBIFNv QyBtYWNoaW5lIGRyaXZlciIpOw0KK01PRFVMRV9BVVRIT1IoIkppYXhpbiBZdSA8amlheGluLnl1 QG1lZGlhdGVrLmNvbT4iKTsNCitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7DQorTU9EVUxFX0FM SUFTKCJtdDgxOTJfbXQ2MzU5X3J0MTAxNV9ydDU2ODIgc29jIGNhcmQiKTsNCi0tIA0KMi4xOC4w DQo=