From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Walleij Subject: [PATCH 2/4] power: reset: Add a driver for the Gemini poweroff Date: Mon, 30 Jan 2017 20:36:33 +0100 Message-ID: <20170130193635.18644-2-linus.walleij@linaro.org> References: <20170130193635.18644-1-linus.walleij@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170130193635.18644-1-linus.walleij@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" To: Hans Ulli Kroll , Florian Fainelli , linux-arm-kernel@lists.infradead.org, Sebastian Reichel Cc: openwrt-devel@openwrt.org, Janos Laube , Paulius Zaleckas , linux-pm@vger.kernel.org List-Id: linux-pm@vger.kernel.org VGhlIEdlbWluaSAoU0wzNTE2KSBTb0MgaGFzIGEgc3BlY2lhbCBwb3dlciBjb250cm9sbGVyIGJs b2NrCnRoYXQgb25seSBkZWFsIHdpdGggc2h1dHRpbmcgZG93biB0aGUgc3lzdGVtLgoKSWYgeW91 IGRvIG5vdCByZWdpc3RlciBhIGRyaXZlciBhbmQgYWN0aXZhdGUgdGhlIGJsb2NrLCB0aGUKcG93 ZXIgYnV0dG9uIG9uIHRoZSBzeXN0ZW1zIHV0aWxpemluZyB0aGlzIFNvQyB3aWxsIGRvIGFuCnVu Y29udHJvbGxlZCBwb3dlciBjdXQsIHdoaWNoIGlzIHdoeSBpdCBpcyBpbXBvcnRhbnQgdG8gaGF2 ZQphIHNwZWNpYWwgcG93ZXJvZmYgZHJpdmVyLgoKVGhlIG1vc3QgYmFzaWMgZnVuY3Rpb25hbGl0 eSBpcyB0byBqdXN0IHNodXQgZG93biB0aGUgc3lzdGVtCmJ5IHdyaXRpbmcgYSBzcGVjaWFsIGJp dCBpbiB0aGUgY29udHJvbCByZWdpc3RlciBhZnRlciB0aGUKc3lzdGVtIGhhcyByZWFjaGVkIHBt X3Bvd2Vyb2ZmLgoKSXQgYWxzbyBoYW5kbGVzIHRoZSBwb3dlcm9mZiBmcm9tIGEgYnV0dG9uIG9y IG90aGVyIHNvdXJjZXM6CgpXaGVuIHRoZSBwb3dlcm9mZiBidXR0b24gaXMgcHJlc3NlZCwgb3Ig YSBzaWduYWwgaXMgc2VudCB0bwpwb3dlcm9mZiBmcm9tIGFuIGluZnJhcmVkIHJlbW90ZSBjb250 cm9sLCBvciB3aGVuIHRoZSBSVEMKZmlyZXMgYSBzcGVjaWFsIGFsYXJtICghKSB0aGUgc3lzdGVt IGVtaXRzIGFuIGludGVycnVwdC4KQXQgdGhpcyBwb2ludCwgTGludXggbXVzdCBhY2tub3dsZWRn ZSB0aGUgaW50ZXJydXB0IGFuZApwcm9jZWVkIHRvIGRvIGFuIG9yZGVybHkgc2h1dGRvd24gb2Yg dGhlIHN5c3RlbS4KCkFmdGVyIGFkZGluZyB0aGlzIGRyaXZlciwgcHJlc3NpbmcgdGhlIHBvd2Vy b2ZmIGJ1dHRvbiBnaXZlcwp0aGlzIGRtZXNnOgoKcm9vdEBnZW1pbmk6Lwpyb290QGdlbWluaTov IGdlbWluaS1wb3dlcm9mZiA0YjAwMDAwMC5wb3dlci1jb250cm9sbGVyOgpwb3dlcm9mZiBidXR0 b24gcHJlc3NlZAoKY2FsbGluZyBzaHV0ZG93biBzY3JpcHRzLi4Kc2V0dGluZyAvZGV2L3J0YzAg ZnJvbSBzeXN0ZW0gdGltZQp1bm1vdW50aW5nIGZpbGUgc3lzdGVtcy4uLgp1bW91bnQ6IHRtcGZz IGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5CnVtb3VudDogY2FuJ3QgdW5tb3VudCAvOiBJbnZh bGlkIGFyZ3VtZW50ClRoZSBzeXN0ZW0gaXMgZ29pbmcgZG93biBOT1chClNlbnQgU0lHVEVSTSB0 byBhbGwgcHJvY2Vzc2VzClNlbnQgU0lHS0lMTCB0byBhbGwgcHJvY2Vzc2VzClJlcXVlc3Rpbmcg c3lzdGVtIHBvd2Vyb2ZmCnVoY2lfaGNkIDAwMDA6MDA6MDkuMTogSENSRVNFVCBub3QgY29tcGxl dGVkIHlldCEKdWhjaV9oY2QgMDAwMDowMDowOS4wOiBIQ1JFU0VUIG5vdCBjb21wbGV0ZWQgeWV0 IQpyZWJvb3Q6IFBvd2VyIGRvd24KZ2VtaW5pLXBvd2Vyb2ZmIDRiMDAwMDAwLnBvd2VyLWNvbnRy b2xsZXI6IEdlbWluaSBwb3dlciBvZmYKCkNjOiBKYW5vcyBMYXViZSA8amFub3MuZGV2QGdtYWls LmNvbT4KQ2M6IFBhdWxpdXMgWmFsZWNrYXMgPHBhdWxpdXMuemFsZWNrYXNAZ21haWwuY29tPgpD YzogSGFucyBVbGxpIEtyb2xsIDx1bGxpLmtyb2xsQGdvb2dsZW1haWwuY29tPgpDYzogRmxvcmlh biBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkNjOiBsaW51eC1wbUB2Z2VyLmtlcm5l bC5vcmcKQ2M6IFNlYmFzdGlhbiBSZWljaGVsIDxzcmVAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1i eTogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3JnPgotLS0KU2ViYXN0aWFu OiBwbGVhc2UganVzdCBtZXJnZSB0aGlzIHdoZW4geW91ciBhcmUgcGxlYXNlZAp3aXRoIGl0LiBJ IHdpbGwgZnVubmVsIHRoZSBBUk0gcGFydHMgdGhyb3VnaCB0aGUgQVJNIFNvQyB0cmVlLgotLS0K IGRyaXZlcnMvcG93ZXIvcmVzZXQvS2NvbmZpZyAgICAgICAgICAgfCAgIDkgKysKIGRyaXZlcnMv cG93ZXIvcmVzZXQvTWFrZWZpbGUgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9wb3dlci9yZXNl dC9nZW1pbmktcG93ZXJvZmYuYyB8IDE2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9wb3dlci9yZXNldC9nZW1pbmktcG93ZXJvZmYuYwoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcG93ZXIvcmVzZXQvS2NvbmZpZyBiL2RyaXZlcnMvcG93ZXIvcmVzZXQvS2NvbmZpZwpp bmRleCBhYmViNzcyMTdhMjEuLjBkMmM0MTgzZDBmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dl ci9yZXNldC9LY29uZmlnCisrKyBiL2RyaXZlcnMvcG93ZXIvcmVzZXQvS2NvbmZpZwpAQCAtNjcs NiArNjcsMTUgQEAgY29uZmlnIFBPV0VSX1JFU0VUX0JSQ01TVEIKIAkgIFNheSBZIGhlcmUgaWYg eW91IGhhdmUgYSBCcm9hZGNvbSBTVEIgYm9hcmQgYW5kIHlvdSB3aXNoCiAJICB0byBoYXZlIHJl c3RhcnQgc3VwcG9ydC4KIAorY29uZmlnIFBPV0VSX1JFU0VUX0dFTUlOSV9QT1dFUk9GRgorCWJv b2wgIkNvcnRpbmEgR2VtaW5pIHBvd2VyLW9mZiBkcml2ZXIiCisJZGVwZW5kcyBvbiBBUkNIX0dF TUlOSSB8fCBDT01QSUxFX1RFU1QKKwlkZXBlbmRzIG9uIE9GICYmIEhBU19JT01FTQorCWRlZmF1 bHQgQVJDSF9HRU1JTkkKKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyB0dXJuaW5nIG9m ZiB0aGUgQ29ydGluYSBHZW1pbmkgU29DLgorCSAgU2VsZWN0IHRoaXMgaWYgeW91J3JlIGJ1aWxk aW5nIGEga2VybmVsIHdpdGggR2VtaW5pIFNvQyBzdXBwb3J0LgorCiBjb25maWcgUE9XRVJfUkVT RVRfR1BJTwogCWJvb2wgIkdQSU8gcG93ZXItb2ZmIGRyaXZlciIKIAlkZXBlbmRzIG9uIE9GX0dQ SU8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG93ZXIvcmVzZXQvTWFrZWZpbGUgYi9kcml2ZXJzL3Bv d2VyL3Jlc2V0L01ha2VmaWxlCmluZGV4IDExZGFlM2I1NmZmOS4uNThjZjViMzA1NTlmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3Jlc2V0L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcG93ZXIv cmVzZXQvTWFrZWZpbGUKQEAgLTUsNiArNSw3IEBAIG9iai0kKENPTkZJR19QT1dFUl9SRVNFVF9B VDkxX1NBTUE1RDJfU0hEV0MpICs9IGF0OTEtc2FtYTVkMl9zaGR3Yy5vCiBvYmotJChDT05GSUdf UE9XRVJfUkVTRVRfQVhYSUEpICs9IGF4eGlhLXJlc2V0Lm8KIG9iai0kKENPTkZJR19QT1dFUl9S RVNFVF9CUkNNS09OQSkgKz0gYnJjbS1rb25hLXJlc2V0Lm8KIG9iai0kKENPTkZJR19QT1dFUl9S RVNFVF9CUkNNU1RCKSArPSBicmNtc3RiLXJlYm9vdC5vCitvYmotJChDT05GSUdfUE9XRVJfUkVT RVRfR0VNSU5JX1BPV0VST0ZGKSArPSBnZW1pbmktcG93ZXJvZmYubwogb2JqLSQoQ09ORklHX1BP V0VSX1JFU0VUX0dQSU8pICs9IGdwaW8tcG93ZXJvZmYubwogb2JqLSQoQ09ORklHX1BPV0VSX1JF U0VUX0dQSU9fUkVTVEFSVCkgKz0gZ3Bpby1yZXN0YXJ0Lm8KIG9iai0kKENPTkZJR19QT1dFUl9S RVNFVF9ISVNJKSArPSBoaXNpLXJlYm9vdC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3Jl c2V0L2dlbWluaS1wb3dlcm9mZi5jIGIvZHJpdmVycy9wb3dlci9yZXNldC9nZW1pbmktcG93ZXJv ZmYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRlODc4ZmQyNmYy NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcG93ZXIvcmVzZXQvZ2VtaW5pLXBvd2Vyb2Zm LmMKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBHZW1pbmkgcG93ZXIgbWFuYWdlbWVudCBjb250 cm9sbGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVp akBsaW5hcm8ub3JnPgorICoKKyAqIEluc3BpcmVkIGJ5IGNvZGUgZnJvbSB0aGUgU0wzNTE2IGJv YXJkIHN1cHBvcnQgYnkgSmFzb24gTGVlCisgKiBJbnNwaXJlZCBieSBjb2RlIGZyb20gSmFub3Mg TGF1YmUgPGphbm9zLmRldkBnbWFpbC5jb20+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgor I2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1f ZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcG0uaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMu aD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgor I2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorCisjZGVmaW5lIEdFTUlOSV9QV0NfSUQJCTB4MDAw MTA1MDAKKyNkZWZpbmUJR0VNSU5JX1BXQ19JRFJFRwkweDAwCisjZGVmaW5lCUdFTUlOSV9QV0Nf Q1RSTFJFRwkweDA0CisjZGVmaW5lCUdFTUlOSV9QV0NfU1RBVFJFRwkweDA4CisKKyNkZWZpbmUg R0VNSU5JX0NUUkxfU0hVVERPV04JQklUKDApCisjZGVmaW5lIEdFTUlOSV9DVFJMX0VOQUJMRQlC SVQoMSkKKyNkZWZpbmUgR0VNSU5JX0NUUkxfSVJRX0NMUglCSVQoMikKKworI2RlZmluZSBHRU1J TklfU1RBVF9DSVIJCUJJVCg0KQorI2RlZmluZQlHRU1JTklfU1RBVF9SVEMJCUJJVCg1KQorI2Rl ZmluZQlHRU1JTklfU1RBVF9QT1dFUkJVVFRPTglCSVQoNikKKworc3RydWN0IGdlbWluaV9wb3dl cmNvbiB7CisgICAgICAgIHN0cnVjdCBkZXZpY2UgICAgICAgICAgICpkZXY7CisgICAgICAgIHZv aWQgX19pb21lbSAgICAgICAgICAgICpiYXNlOworfTsKKworc3RhdGljIGlycXJldHVybl90IGdl bWluaV9wb3dlcmJ1dHRvbl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1 Y3QgZ2VtaW5pX3Bvd2VyY29uICpncHcgPSBkYXRhOworCXUzMiB2YWw7CisKKwkvKiBBQ0sgdGhl IElSUSAqLworCXZhbCA9IHJlYWRsKGdwdy0+YmFzZSArIEdFTUlOSV9QV0NfQ1RSTFJFRyk7CisJ dmFsIHw9IEdFTUlOSV9DVFJMX0lSUV9DTFI7CisJd3JpdGVsKHZhbCwgZ3B3LT5iYXNlICsgR0VN SU5JX1BXQ19DVFJMUkVHKTsKKworCXZhbCA9IHJlYWRsKGdwdy0+YmFzZSArIEdFTUlOSV9QV0Nf U1RBVFJFRyk7CisJdmFsICY9IDB4NzBVOworCXN3aXRjaCAodmFsKSB7CisJY2FzZSBHRU1JTklf U1RBVF9DSVI6CisJCWRldl9pbmZvKGdwdy0+ZGV2LCAiaW5mcmFyZWQgcG93ZXJvZmZcbiIpOwor CQlvcmRlcmx5X3Bvd2Vyb2ZmKHRydWUpOworCQlicmVhazsKKwljYXNlIEdFTUlOSV9TVEFUX1JU QzoKKwkJZGV2X2luZm8oZ3B3LT5kZXYsICJSVEMgcG93ZXJvZmZcbiIpOworCQlvcmRlcmx5X3Bv d2Vyb2ZmKHRydWUpOworCQlicmVhazsKKwljYXNlIEdFTUlOSV9TVEFUX1BPV0VSQlVUVE9OOgor CQlkZXZfaW5mbyhncHctPmRldiwgInBvd2Vyb2ZmIGJ1dHRvbiBwcmVzc2VkXG4iKTsKKwkJb3Jk ZXJseV9wb3dlcm9mZih0cnVlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X2luZm8oZ3B3 LT5kZXYsICJvdGhlciBwb3dlciBtYW5hZ2VtZW50IElSUVxuIik7CisJCWJyZWFrOworCX0KKwor CXJldHVybiBJUlFfSEFORExFRDsKK30KKworLyogVGhpcyBjYWxsYmFjayBuZWVkcyB0aGlzIHN0 YXRpYyBsb2NhbCBhcyBpdCBoYXMgdm9pZCBhcyBhcmd1bWVudCAqLworc3RhdGljIHN0cnVjdCBn ZW1pbmlfcG93ZXJjb24gKmdwd19wb3dlcm9mZjsKKworc3RhdGljIHZvaWQgZ2VtaW5pX3Bvd2Vy b2ZmKHZvaWQpCit7CisJc3RydWN0IGdlbWluaV9wb3dlcmNvbiAqZ3B3ID0gZ3B3X3Bvd2Vyb2Zm OworCXUzMiB2YWw7CisKKwlkZXZfY3JpdChncHctPmRldiwgIkdlbWluaSBwb3dlciBvZmZcbiIp OworCXZhbCA9IHJlYWRsKGdwdy0+YmFzZSArIEdFTUlOSV9QV0NfQ1RSTFJFRyk7CisJdmFsIHw9 IEdFTUlOSV9DVFJMX0VOQUJMRSB8IEdFTUlOSV9DVFJMX0lSUV9DTFI7CisJd3JpdGVsKHZhbCwg Z3B3LT5iYXNlICsgR0VNSU5JX1BXQ19DVFJMUkVHKTsKKworCXZhbCAmPSB+R0VNSU5JX0NUUkxf RU5BQkxFOworCXZhbCB8PSBHRU1JTklfQ1RSTF9TSFVURE9XTjsKKwl3cml0ZWwodmFsLCBncHct PmJhc2UgKyBHRU1JTklfUFdDX0NUUkxSRUcpOworfQorCitzdGF0aWMgaW50IGdlbWluaV9wb3dl cm9mZl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZwZGV2LT5kZXY7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisJc3RydWN0IGdl bWluaV9wb3dlcmNvbiAqZ3B3OworCXUzMiB2YWw7CisJaW50IGlycTsKKwlpbnQgcmV0OworCisJ Z3B3ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpncHcpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IWdwdykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2Uo cGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWdwdy0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNv dXJjZShkZXYsIHJlcyk7CisJaWYgKElTX0VSUihncHctPmJhc2UpKQorCQlyZXR1cm4gUFRSX0VS UihncHctPmJhc2UpOworCisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlpZiAo IWlycSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlncHctPmRldiA9IGRldjsKKworCXZhbCA9IHJl YWRsKGdwdy0+YmFzZSArIEdFTUlOSV9QV0NfSURSRUcpOworCXZhbCAmPSAweEZGRkZGRjAwVTsK KwlpZiAodmFsICE9IEdFTUlOSV9QV0NfSUQpIHsKKwkJZGV2X2VycihkZXYsICJ3cm9uZyBwb3dl ciBjb250cm9sbGVyIElEOiAlMDh4XG4iLAorCQkJdmFsKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJ fQorCisJLyogQ2xlYXIgdGhlIHBvd2VyIG1hbmFnZW1lbnQgSVJRICovCisJdmFsID0gcmVhZGwo Z3B3LT5iYXNlICsgR0VNSU5JX1BXQ19DVFJMUkVHKTsKKwl2YWwgfD0gR0VNSU5JX0NUUkxfSVJR X0NMUjsKKwl3cml0ZWwodmFsLCBncHctPmJhc2UgKyBHRU1JTklfUFdDX0NUUkxSRUcpOworCisJ cmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwgZ2VtaW5pX3Bvd2VyYnV0dG9uX2ludGVy cnVwdCwgMCwKKwkJCSAgICAgICAicG93ZXJvZmYiLCBncHcpOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisKKwlwbV9wb3dlcl9vZmYgPSBnZW1pbmlfcG93ZXJvZmY7CisJZ3B3X3Bvd2Vyb2Zm ID0gZ3B3OworCisJLyoKKwkgKiBFbmFibGUgdGhlIHBvd2VyIGNvbnRyb2xsZXIuIFRoaXMgaXMg Y3J1Y2lhbCBvbiBHZW1pbmkKKwkgKiBzeXN0ZW1zOiBpZiB0aGlzIGlzIG5vdCBkb25lLCBwcmVz c2luZyB0aGUgcG93ZXIgYnV0dG9uCisJICogd2lsbCByZXN1bHQgaW4gdW5jb25kaXRpb25hbCBw b3dlcm9mZiB3aXRob3V0IGFueSB3YXJuaW5nLgorCSAqIFRoaXMgbWFrZXMgdGhlIGtlcm5lbCBo YW5kbGUgdGhlIHBvd2Vyb2ZmLgorCSAqLworCXZhbCA9IHJlYWRsKGdwdy0+YmFzZSArIEdFTUlO SV9QV0NfQ1RSTFJFRyk7CisJdmFsIHw9IEdFTUlOSV9DVFJMX0VOQUJMRTsKKwl3cml0ZWwodmFs LCBncHctPmJhc2UgKyBHRU1JTklfUFdDX0NUUkxSRUcpOworCisJZGV2X2luZm8oZGV2LCAiR2Vt aW5pIHBvd2Vyb2ZmIGRyaXZlciByZWdpc3RlcmVkXG4iKTsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnZW1pbmlfcG93ZXJvZmZfb2ZfbWF0Y2hb XSA9IHsKKwl7CisJCS5jb21wYXRpYmxlID0gImNvcnRpbmEsZ2VtaW5pLXBvd2VyLWNvbnRyb2xs ZXIiLAorCX0sCisJe30KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdlbWlu aV9wb3dlcm9mZl9kcml2ZXIgPSB7CisJLnByb2JlID0gZ2VtaW5pX3Bvd2Vyb2ZmX3Byb2JlLAor CS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImdlbWluaS1wb3dlcm9mZiIsCisJCS5vZl9tYXRjaF90 YWJsZSA9IGdlbWluaV9wb3dlcm9mZl9vZl9tYXRjaCwKKwl9LAorfTsKK2J1aWx0aW5fcGxhdGZv cm1fZHJpdmVyKGdlbWluaV9wb3dlcm9mZl9kcml2ZXIpOwotLSAKMi45LjMKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kb3BlbndydC1kZXZlbCBtYWlsaW5n IGxpc3QKb3BlbndydC1kZXZlbEBsaXN0cy5vcGVud3J0Lm9yZwpodHRwczovL2xpc3RzLm9wZW53 cnQub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9vcGVud3J0LWRldmVsCg==