From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 8/8] ASoC: AMD: Add machine driver for cz rt5650 Date: Fri, 23 Jun 2017 12:35:06 -0400 Message-ID: <1498235706-31111-9-git-send-email-alexander.deucher@amd.com> References: <1498235706-31111-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1498235706-31111-1-git-send-email-alexander.deucher-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org, airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Vijendar.Mukunda-5C7GfCeVMHo@public.gmane.org, rajeevkumar.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: tiwai-l3A5Bk7waGM@public.gmane.org, Alex Deucher , Akshu Agrawal , lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, perex-/Fr2/VpizcU@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogQWtzaHUgQWdyYXdhbCA8YWtzaHUuYWdyYXdhbEBhbWQuY29tPgoKVGhlIGRyaXZlciBp cyB1c2VkIGZvciBBTUQgYm9hcmQgdXNpbmcgcnQ1NjUwIGNvZGVjLgoKUmV2aWV3ZWQtYnk6IEFs ZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogQWtz aHUgQWdyYXdhbCA8YWtzaHUuYWdyYXdhbEBhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERl dWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Ci0tLQogc291bmQvc29jL2FtZC9LY29u ZmlnICAgICAgfCAgIDcgKysKIHNvdW5kL3NvYy9hbWQvTWFrZWZpbGUgICAgIHwgICAyICsKIHNv dW5kL3NvYy9hbWQvYWNwLXJ0NTY0NS5jIHwgMjEwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMTkgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNvdW5kL3NvYy9hbWQvYWNwLXJ0NTY0NS5jCgpkaWZmIC0tZ2l0 IGEvc291bmQvc29jL2FtZC9LY29uZmlnIGIvc291bmQvc29jL2FtZC9LY29uZmlnCmluZGV4IDc4 MTg3ZWIuLmViMGFlNjAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hbWQvS2NvbmZpZworKysgYi9z b3VuZC9zb2MvYW1kL0tjb25maWcKQEAgLTIsMyArMiwxMCBAQCBjb25maWcgU05EX1NPQ19BTURf QUNQCiAJdHJpc3RhdGUgIkFNRCBBdWRpbyBDb3Byb2Nlc3NvciBzdXBwb3J0IgogCWhlbHAKIAkg VGhpcyBvcHRpb24gZW5hYmxlcyBBQ1AgRE1BIHN1cHBvcnQgb24gQU1EIHBsYXRmb3JtLgorY29u ZmlnIFNORF9TT0NfQU1EX0NaX1JUNTY0NV9NQUNICisJdHJpc3RhdGUgIkFNRCBDWiBzdXBwb3J0 IGZvciBSVDU2NDUiCisJc2VsZWN0IFNORF9TT0NfUlQ1NjQ1CisJc2VsZWN0IFNORF9TT0NfQU1E X0FDUAorCWRlcGVuZHMgb24gSTJDX0RFU0lHTldBUkVfUExBVEZPUk0KKwloZWxwCisJIFRoaXMg b3B0aW9uIGVuYWJsZXMgbWFjaGluZSBkcml2ZXIgZm9yIHJ0NTY0NS4KZGlmZiAtLWdpdCBhL3Nv dW5kL3NvYy9hbWQvTWFrZWZpbGUgYi9zb3VuZC9zb2MvYW1kL01ha2VmaWxlCmluZGV4IDFhNjZl YzAuLmVlZDY0ZmYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hbWQvTWFrZWZpbGUKKysrIGIvc291 bmQvc29jL2FtZC9NYWtlZmlsZQpAQCAtMSwzICsxLDUgQEAKIHNuZC1zb2MtYWNwLXBjbS1vYmpz CTo9IGFjcC1wY20tZG1hLm8KK3NuZC1zb2MtYWNwLXJ0NTY0NS1tYWNoLW9ianMgOj0gYWNwLXJ0 NTY0NS5vCiAKIG9iai0kKENPTkZJR19TTkRfU09DX0FNRF9BQ1ApICs9IHNuZC1zb2MtYWNwLXBj bS5vCitvYmotJChDT05GSUdfU05EX1NPQ19BTURfQ1pfUlQ1NjQ1X01BQ0gpICs9IHNuZC1zb2Mt YWNwLXJ0NTY0NS1tYWNoLm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hbWQvYWNwLXJ0NTY0NS5j IGIvc291bmQvc29jL2FtZC9hY3AtcnQ1NjQ1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZWJhYWZhZAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hbWQvYWNwLXJ0 NTY0NS5jCkBAIC0wLDAgKzEsMjEwIEBACisvKgorICogTWFjaGluZSBkcml2ZXIgZm9yIEFNRCBB Q1AgQXVkaW8gZW5naW5lIHVzaW5nIFJlYWx0ZWsgUlQ1NjQ1IGNvZGVjCisgKgorICogQ29weXJp Z2h0IDIwMTcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFRoaXMgZmlsZSBp cyBtb2RpZmllZCBmcm9tIHJ0Mjg4IG1hY2hpbmUgZHJpdmVyCisgKgorICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBw ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp bmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg U29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElO RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAor ICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g IElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1Io UykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAor ICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgor ICoKKyAqLworCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5o PgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4K KyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorI2luY2x1ZGUgPHNvdW5kL2phY2suaD4KKyNp bmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVk ZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgorCisjaW5jbHVkZSAiLi4v Y29kZWNzL3J0NTY0NS5oIgorCisjZGVmaW5lIENaX1BMQVRfQ0xLIDI0MDAwMDAwCisKK3N0YXRp YyBzdHJ1Y3Qgc25kX3NvY19qYWNrIGN6X2phY2s7CisKK3N0YXRpYyBpbnQgY3pfYWlmMV9od19w YXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgIHN0cnVj dCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCWludCByZXQgPSAwOworCXN0cnVjdCBz bmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1 Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+Y29kZWNfZGFpOworCisJcmV0ID0gc25k X3NvY19kYWlfc2V0X3BsbChjb2RlY19kYWksIDAsIFJUNTY0NV9QTEwxX1NfTUNMSywKKwkJCQkg IENaX1BMQVRfQ0xLLCBwYXJhbXNfcmF0ZShwYXJhbXMpICogNTEyKTsKKwlpZiAocmV0IDwgMCkg eworCQlkZXZfZXJyKHJ0ZC0+ZGV2LCAiY2FuJ3Qgc2V0IGNvZGVjIHBsbDogJWRcbiIsIHJldCk7 CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2Rl Y19kYWksIFJUNTY0NV9TQ0xLX1NfUExMMSwKKwkJCQlwYXJhbXNfcmF0ZShwYXJhbXMpICogNTEy LCBTTkRfU09DX0NMT0NLX09VVCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihydGQtPmRl diwgImNhbid0IHNldCBjb2RlYyBzeXNjbGs6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0Owor CX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY3pfaW5pdChzdHJ1Y3Qgc25kX3Nv Y19wY21fcnVudGltZSAqcnRkKQoreworCWludCByZXQ7CisJc3RydWN0IHNuZF9zb2NfY2FyZCAq Y2FyZDsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisKKwljb2RlYyA9IHJ0ZC0+Y29k ZWM7CisJY2FyZCA9IHJ0ZC0+Y2FyZDsKKworCXJldCA9IHNuZF9zb2NfY2FyZF9qYWNrX25ldyhj YXJkLCAiSGVhZHNldCBKYWNrIiwKKwkJCQlTTkRfSkFDS19IRUFEUEhPTkUgfCBTTkRfSkFDS19N SUNST1BIT05FIHwKKwkJCQlTTkRfSkFDS19CVE5fMCB8IFNORF9KQUNLX0JUTl8xIHwKKwkJCQlT TkRfSkFDS19CVE5fMiB8IFNORF9KQUNLX0JUTl8zLAorCQkJCSZjel9qYWNrLCBOVUxMLCAwKTsK KwlpZiAocmV0KSB7CisJCWRldl9lcnIoY2FyZC0+ZGV2LCAiSFAgamFjayBjcmVhdGlvbiBmYWls ZWQgJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcnQ1NjQ1X3NldF9qYWNrX2Rl dGVjdChjb2RlYywgJmN6X2phY2ssICZjel9qYWNrLCAmY3pfamFjayk7CisKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHN0cnVjdCBzbmRfc29jX29wcyBjel9haWYxX29wcyA9IHsKKwkuaHdfcGFy YW1zID0gY3pfYWlmMV9od19wYXJhbXMsCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGFp X2xpbmsgY3pfZGFpX3J0NTY1MFtdID0geworCXsKKwkJLm5hbWUgPSAiYW1kLXJ0NTY0NS1wbGF5 IiwKKwkJLnN0cmVhbV9uYW1lID0gIlJUNTY0NV9BSUYxIiwKKwkJLnBsYXRmb3JtX25hbWUgPSAi YWNwX2F1ZGlvX2RtYS4wLmF1dG8iLAorCQkuY3B1X2RhaV9uYW1lID0gImRlc2lnbndhcmUtaTJz LjEuYXV0byIsCisJCS5jb2RlY19kYWlfbmFtZSA9ICJydDU2NDUtYWlmMSIsCisJCS5jb2RlY19u YW1lID0gImkyYy0xMEVDNTY1MDowMCIsCisJCS5kYWlfZm10ID0gU05EX1NPQ19EQUlGTVRfSTJT IHwgU05EX1NPQ19EQUlGTVRfTkJfTkYKKwkJCQl8IFNORF9TT0NfREFJRk1UX0NCTV9DRk0sCisJ CS5pbml0ID0gY3pfaW5pdCwKKwkJLm9wcyA9ICZjel9haWYxX29wcywKKwl9LAorCXsKKwkJLm5h bWUgPSAiYW1kLXJ0NTY0NS1jYXAiLAorCQkuc3RyZWFtX25hbWUgPSAiUlQ1NjQ1X0FJRjEiLAor CQkucGxhdGZvcm1fbmFtZSA9ICJhY3BfYXVkaW9fZG1hLjAuYXV0byIsCisJCS5jcHVfZGFpX25h bWUgPSAiZGVzaWdud2FyZS1pMnMuMi5hdXRvIiwKKwkJLmNvZGVjX2RhaV9uYW1lID0gInJ0NTY0 NS1haWYxIiwKKwkJLmNvZGVjX25hbWUgPSAiaTJjLTEwRUM1NjUwOjAwIiwKKwkJLmRhaV9mbXQg PSBTTkRfU09DX0RBSUZNVF9JMlMgfCBTTkRfU09DX0RBSUZNVF9OQl9ORgorCQkJCXwgU05EX1NP Q19EQUlGTVRfQ0JNX0NGTSwKKwkJLmluaXQgPSBjel9pbml0LAorCQkub3BzID0gJmN6X2FpZjFf b3BzLAorCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQg Y3pfd2lkZ2V0c1tdID0geworCVNORF9TT0NfREFQTV9IUCgiSGVhZHBob25lcyIsIE5VTEwpLAor CVNORF9TT0NfREFQTV9TUEsoIlNwZWFrZXJzIiwgTlVMTCksCisJU05EX1NPQ19EQVBNX01JQygi SGVhZHNldCBNaWMiLCBOVUxMKSwKKwlTTkRfU09DX0RBUE1fTUlDKCJJbnQgTWljIiwgTlVMTCks Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBjel9hdWRpb19y b3V0ZVtdID0geworCXsiSGVhZHBob25lcyIsIE5VTEwsICJIUE9MIn0sCisJeyJIZWFkcGhvbmVz IiwgTlVMTCwgIkhQT1IifSwKKwl7IlJFQ01JWEwiLCBOVUxMLCAiSGVhZHNldCBNaWMifSwKKwl7 IlJFQ01JWFIiLCBOVUxMLCAiSGVhZHNldCBNaWMifSwKKwl7IlNwZWFrZXJzIiwgTlVMTCwgIlNQ T0wifSwKKwl7IlNwZWFrZXJzIiwgTlVMTCwgIlNQT1IifSwKKwl7IkRNSUMgTDIiLCBOVUxMLCAi SW50IE1pYyJ9LAorCXsiRE1JQyBSMiIsIE5VTEwsICJJbnQgTWljIn0sCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgY3pfbWNfY29udHJvbHNbXSA9IHsKKwlTT0Nf REFQTV9QSU5fU1dJVENIKCJIZWFkcGhvbmVzIiksCisJU09DX0RBUE1fUElOX1NXSVRDSCgiU3Bl YWtlcnMiKSwKKwlTT0NfREFQTV9QSU5fU1dJVENIKCJIZWFkc2V0IE1pYyIpLAorCVNPQ19EQVBN X1BJTl9TV0lUQ0goIkludCBNaWMiKSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19jYXJk IGN6X2NhcmQgPSB7CisJLm5hbWUgPSAiYWNwcnQ1NjUwIiwKKwkub3duZXIgPSBUSElTX01PRFVM RSwKKwkuZGFpX2xpbmsgPSBjel9kYWlfcnQ1NjUwLAorCS5udW1fbGlua3MgPSBBUlJBWV9TSVpF KGN6X2RhaV9ydDU2NTApLAorCS5kYXBtX3dpZGdldHMgPSBjel93aWRnZXRzLAorCS5udW1fZGFw bV93aWRnZXRzID0gQVJSQVlfU0laRShjel93aWRnZXRzKSwKKwkuZGFwbV9yb3V0ZXMgPSBjel9h dWRpb19yb3V0ZSwKKwkubnVtX2RhcG1fcm91dGVzID0gQVJSQVlfU0laRShjel9hdWRpb19yb3V0 ZSksCisJLmNvbnRyb2xzID0gY3pfbWNfY29udHJvbHMsCisJLm51bV9jb250cm9scyA9IEFSUkFZ X1NJWkUoY3pfbWNfY29udHJvbHMpLAorfTsKKworc3RhdGljIGludCBjel9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCWludCByZXQ7CisJc3RydWN0IHNuZF9zb2NfY2Fy ZCAqY2FyZDsKKworCWNhcmQgPSAmY3pfY2FyZDsKKwljel9jYXJkLmRldiA9ICZwZGV2LT5kZXY7 CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2FyZCk7CisJcmV0ID0gc25kX3NvY19yZWdp c3Rlcl9jYXJkKGNhcmQpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LAorCQkJ CSJzbmRfc29jX3JlZ2lzdGVyX2NhcmQoJXMpIGZhaWxlZDogJWRcbiIsCisJCQkJY3pfY2FyZC5u YW1lLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBjel9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25k X3NvY19jYXJkICpjYXJkOworCisJY2FyZCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwor CXNuZF9zb2NfdW5yZWdpc3Rlcl9jYXJkKGNhcmQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgY3pfYXVkaW9fYWNwaV9tYXRjaFtdID0gewor CXsgIkkyU0MxMDAyIiwgMCB9LAorCXt9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgY3pfcGNtX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJjei1ydDU2 NDUiLAorCQkuYWNwaV9tYXRjaF90YWJsZSA9IEFDUElfUFRSKGN6X2F1ZGlvX2FjcGlfbWF0Y2gp LAorCQkucG0gPSAmc25kX3NvY19wbV9vcHMsCisJfSwKKwkucHJvYmUgPSBjel9wcm9iZSwKKwku cmVtb3ZlID0gY3pfcmVtb3ZlLAorfTsKKworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihjel9wY21f ZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiYWtzaHUuYWdyYXdhbEBhbWQuY29tIik7CitNT0RV TEVfREVTQ1JJUFRJT04oImN6LXJ0NTY0NSBhdWRpbyBzdXBwb3J0Iik7CitNT0RVTEVfTElDRU5T RSgiR1BMIHYyIik7Ci0tIAoyLjUuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4Cg==