From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Rajotte Subject: [lttng-tools RFC] Fix: registry can be null on lookup Date: Mon, 6 Feb 2017 15:28:52 -0500 Message-ID: <1486412932-12806-1-git-send-email-jonathan.rajotte-julien__39213.1268083633$1486412968$gmane$org@efficios.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.efficios.com (mail.efficios.com [167.114.142.141]) by lists.lttng.org (Postfix) with ESMTPS id 3vHK0g2VlFzlLJ for ; Mon, 6 Feb 2017 20:32:50 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" To: lttng-dev@lists.lttng.org Cc: jgalar@efficios.com List-Id: lttng-dev@lists.lttng.org QSBzZXNzaW9uIHRlYXJkb3duIGNhbiBiZSBpbml0aWF0ZWQgYnkgYSBkeWluZyBhcHBsaWNhdGlv bi4gSGVuY2UsIGEKc2Vzc2lvbiBvYmplY3QgY2FuIGV4aXN0IHdpdGhvdXQgYSB2YWxpZCByZWdp c3RyeS4gQXMgYSByZXN1bHQsCmdldF9zZXNzaW9uX3JlZ2lzdHJ5IGNhbiByZXR1cm4gbnVsbC4g VG8gcHJldmVudCB0aGlzLCB0aGUgVVNUCmFwcGxpY2F0aW9uIHNlc3Npb24gbG9jayBzaG91bGQg YmUgaGVsZCwgd2hlbiBwb3NzaWJsZSwgd2hlbiBsb29raW5nIHVwCnRoZSByZWdpc3RyeSB0byBl bnN1cmUgc3luY2hyb25pemF0aW9uLiBPdGhlcndpc2UgdGhlIHByZXNlbmNlIG9mIGEKcmVnaXN0 cnkgaXMgbm90IGd1YXJhbnRlZWQuIEluIHN1Y2ggY2FzZSwgaGFuZGxpbmcgYSBudWxsIHJldHVy biB2YWx1ZQpmcm9tIGxvb2stdXAgcmVnaXN0cnkgZnVuY3Rpb24gaXMgbmVjZXNzYXJ5LgoKQ29y ZSBkdW1wcywgdHJpZ2dlcmVkIGJ5IHRoZSAiYXNzZXJ0KHJlZ2lzdHJ5KSIgc3RhdGVtZW50IGZv dW5kIGluCnJlcGx5X3VzdF9yZWdpc3Rlcl9jaGFubmVsLCB3ZXJlIG9ic2VydmVkIHdoZW4ga2ls bGluZyBpbnN0cnVtZW50ZWQKYXBwbGljYXRpb25zLiBJbiB0aGlzIG9jY3VycmVuY2UsIG9idGFp bmluZyB0aGUgVVNUIGFwcGxpY2F0aW9uIGxvY2sKcmVzdWx0IGluIGEgZGVhZGxvY2sgc2luY2Ug dGhlIGxvY2sgaXMgYWxyZWFkeSBoZWxkIGR1cmluZwp1c3RfYXBwX2dsb2JhbF9jcmVhdGUuIEhh bmRsaW5nIHRoZSBudWxsIHZhbHVlIGlzIHNpbXBsZXIgYW5kCmNvcnJlc3BvbmRzIHdpdGggdGhl IGhhbmRsaW5nIG9mIHByZXZpb3VzIGxvb2stdXAgZG9uZSBkdXJpbmcgdGhlCmZ1bmN0aW9uLgoK SGFuZGxpbmcgb2YgbnVsbCB2YWx1ZSBpcyBhbHNvIGFwcGxpZWQgdG86CglhZGRfZXZlbnRfdXN0 X3JlZ2lzdHJ5CglhZGRfZW51bV91c3RfcmVnaXN0cnkKCXVzdF9hcHBfc25hcHNob3RfcmVjb3Jk CgpTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBSYWpvdHRlIDxqb25hdGhhbi5yYWpvdHRlLWp1bGll bkBlZmZpY2lvcy5jb20+Ci0tLQogc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC91c3QtYXBwLmMgfCA1 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNDUgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmlu L2x0dG5nLXNlc3Npb25kL3VzdC1hcHAuYyBiL3NyYy9iaW4vbHR0bmctc2Vzc2lvbmQvdXN0LWFw cC5jCmluZGV4IDVhNDFjMzguLjQzOTVhNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vbHR0bmctc2Vz c2lvbmQvdXN0LWFwcC5jCisrKyBiL3NyYy9iaW4vbHR0bmctc2Vzc2lvbmQvdXN0LWFwcC5jCkBA IC04MTAsNiArODEwLDcgQEAgdm9pZCBkZWxldGVfdXN0X2FwcF9zZXNzaW9uKGludCBzb2NrLCBz dHJ1Y3QgdXN0X2FwcF9zZXNzaW9uICp1YV9zZXNzLAogCXVhX3Nlc3MtPmRlbGV0ZWQgPSB0cnVl OwogCiAJcmVnaXN0cnkgPSBnZXRfc2Vzc2lvbl9yZWdpc3RyeSh1YV9zZXNzKTsKKwkvKiBSZWdp c3RyeSBjYW4gYmUgbnVsbCBvbiBlcnJvciBwYXRoIGR1cmluZyBpbml0aWFsaXphdGlvbiAqLwog CWlmIChyZWdpc3RyeSkgewogCQkvKiBQdXNoIG1ldGFkYXRhIGZvciBhcHBsaWNhdGlvbiBiZWZv cmUgZnJlZWluZyB0aGUgYXBwbGljYXRpb24uICovCiAJCSh2b2lkKSBwdXNoX21ldGFkYXRhKHJl Z2lzdHJ5LCB1YV9zZXNzLT5jb25zdW1lcik7CkBAIC04MzcsNiArODM4LDEwIEBAIHZvaWQgZGVs ZXRlX3VzdF9hcHBfc2Vzc2lvbihpbnQgc29jaywgc3RydWN0IHVzdF9hcHBfc2Vzc2lvbiAqdWFf c2VzcywKIAlpZiAodWFfc2Vzcy0+YnVmZmVyX3R5cGUgPT0gTFRUTkdfQlVGRkVSX1BFUl9QSUQp IHsKIAkJc3RydWN0IGJ1ZmZlcl9yZWdfcGlkICpyZWdfcGlkID0gYnVmZmVyX3JlZ19waWRfZmlu ZCh1YV9zZXNzLT5pZCk7CiAJCWlmIChyZWdfcGlkKSB7CisJCQkvKgorCQkJICogUmVnaXN0cnkg Y2FuIGJlIG51bGwgb24gZXJyb3IgcGF0aCBkdXJpbmcKKwkJCSAqIGluaXRpYWxpemF0aW9uCisJ CQkgKi8KIAkJCWJ1ZmZlcl9yZWdfcGlkX3JlbW92ZShyZWdfcGlkKTsKIAkJCWJ1ZmZlcl9yZWdf cGlkX2Rlc3Ryb3kocmVnX3BpZCk7CiAJCX0KQEAgLTI0NjQsNiArMjQ2OSw4IEBAIGVycm9yOgog LyoKICAqIEFzayB0aGUgY29uc3VtZXIgdG8gY3JlYXRlIGEgY2hhbm5lbCBhbmQgZ2V0IGl0IGlm IHN1Y2Nlc3NmdWwuCiAgKgorICogQ2FsbGVkIHdpdGggVVNUIGFwcCBzZXNzaW9uIGxvY2sgaGVs ZC4KKyAqCiAgKiBSZXR1cm4gMCBvbiBzdWNjZXNzIG9yIGVsc2UgYSBuZWdhdGl2ZSB2YWx1ZS4K ICAqLwogc3RhdGljIGludCBkb19jb25zdW1lcl9jcmVhdGVfY2hhbm5lbChzdHJ1Y3QgbHR0X3Vz dF9zZXNzaW9uICp1c2VzcywKQEAgLTI5MTcsNiArMjkyNCw4IEBAIGVycm9yOgogLyoKICAqIENy ZWF0ZSBhbmQgc2VuZCB0byB0aGUgYXBwbGljYXRpb24gdGhlIGNyZWF0ZWQgYnVmZmVycyB3aXRo IHBlciBQSUQgYnVmZmVycy4KICAqCisgKiBDYWxsZWQgd2l0aCBVU1QgYXBwIHNlc3Npb24gbG9j ayBoZWxkLgorICoKICAqIFJldHVybiAwIG9uIHN1Y2Nlc3MgZWxzZSBhIG5lZ2F0aXZlIHZhbHVl LgogICovCiBzdGF0aWMgaW50IGNyZWF0ZV9jaGFubmVsX3Blcl9waWQoc3RydWN0IHVzdF9hcHAg KmFwcCwKQEAgLTI5MzYsNiArMjk0NSw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2NoYW5uZWxfcGVy X3BpZChzdHJ1Y3QgdXN0X2FwcCAqYXBwLAogCXJjdV9yZWFkX2xvY2soKTsKIAogCXJlZ2lzdHJ5 ID0gZ2V0X3Nlc3Npb25fcmVnaXN0cnkodWFfc2Vzcyk7CisJLyogVGhlIFVTVCBhcHAgc2Vzc2lv biBsb2NrIGlzIGhlbGQsIHJlZ2lzdHJ5IHNoYWxsIG5vdCBiZSBudWxsICovCiAJYXNzZXJ0KHJl Z2lzdHJ5KTsKIAogCS8qIENyZWF0ZSBhbmQgYWRkIGEgbmV3IGNoYW5uZWwgcmVnaXN0cnkgdG8g c2Vzc2lvbi4gKi8KQEAgLTI5NzMsNiArMjk4Myw4IEBAIGVycm9yOgogICogbmVlZCBhbmQgc2Vu ZCBpdCB0byB0aGUgYXBwbGljYXRpb24uIFRoaXMgTVVTVCBiZSBjYWxsZWQgd2l0aCBhIFJDVSBy ZWFkCiAgKiBzaWRlIGxvY2sgYWNxdWlyZWQuCiAgKgorICogQ2FsbGVkIHdpdGggVVNUIGFwcCBz ZXNzaW9uIGxvY2sgaGVsZC4KKyAqCiAgKiBSZXR1cm4gMCBvbiBzdWNjZXNzIG9yIGVsc2UgYSBu ZWdhdGl2ZSB2YWx1ZS4gUmV0dXJucyAtRU5PVENPTk4gaWYKICAqIHRoZSBhcHBsaWNhdGlvbiBl eGl0ZWQgY29uY3VycmVudGx5LgogICovCkBAIC0zMTYwLDYgKzMxNzIsNyBAQCBzdGF0aWMgaW50 IGNyZWF0ZV91c3RfYXBwX21ldGFkYXRhKHN0cnVjdCB1c3RfYXBwX3Nlc3Npb24gKnVhX3Nlc3Ms CiAJYXNzZXJ0KGNvbnN1bWVyKTsKIAogCXJlZ2lzdHJ5ID0gZ2V0X3Nlc3Npb25fcmVnaXN0cnko dWFfc2Vzcyk7CisJLyogVGhlIFVTVCBhcHAgc2Vzc2lvbiBpcyBoZWxkIHJlZ2lzdHJ5IHNoYWxs IG5vdCBiZSBudWxsICovCiAJYXNzZXJ0KHJlZ2lzdHJ5KTsKIAogCXB0aHJlYWRfbXV0ZXhfbG9j aygmcmVnaXN0cnktPmxvY2spOwpAQCAtNDI5Niw2ICs0MzA5LDkgQEAgaW50IHVzdF9hcHBfY3Jl YXRlX2V2ZW50X2dsYihzdHJ1Y3QgbHR0X3VzdF9zZXNzaW9uICp1c2VzcywKIAogLyoKICAqIFN0 YXJ0IHRyYWNpbmcgZm9yIGEgc3BlY2lmaWMgVVNUIHNlc3Npb24gYW5kIGFwcC4KKyAqCisgKiBD YWxsZWQgd2l0aCBVU1QgYXBwIHNlc3Npb24gbG9jayBoZWxkLgorICoKICAqLwogc3RhdGljCiBp bnQgdXN0X2FwcF9zdGFydF90cmFjZShzdHJ1Y3QgbHR0X3VzdF9zZXNzaW9uICp1c2Vzcywgc3Ry dWN0IHVzdF9hcHAgKmFwcCkKQEAgLTQ0NzksNiArNDQ5NSw4IEBAIGludCB1c3RfYXBwX3N0b3Bf dHJhY2Uoc3RydWN0IGx0dF91c3Rfc2Vzc2lvbiAqdXNlc3MsIHN0cnVjdCB1c3RfYXBwICphcHAp CiAJaGVhbHRoX2NvZGVfdXBkYXRlKCk7CiAKIAlyZWdpc3RyeSA9IGdldF9zZXNzaW9uX3JlZ2lz dHJ5KHVhX3Nlc3MpOworCisJLyogVGhlIFVTVCBhcHAgc2Vzc2lvbiBpcyBoZWxkIHJlZ2lzdHJ5 IHNoYWxsIG5vdCBiZSBudWxsICovCiAJYXNzZXJ0KHJlZ2lzdHJ5KTsKIAogCS8qIFB1c2ggbWV0 YWRhdGEgZm9yIGFwcGxpY2F0aW9uIGJlZm9yZSBmcmVlaW5nIHRoZSBhcHBsaWNhdGlvbi4gKi8K QEAgLTUzMjAsNyArNTMzOCw3IEBAIHN0YXRpYyBpbnQgcmVwbHlfdXN0X3JlZ2lzdGVyX2NoYW5u ZWwoaW50IHNvY2ssIGludCBzb2JqZCwgaW50IGNvYmpkLAogCS8qIExvb2t1cCBhcHBsaWNhdGlv bi4gSWYgbm90IGZvdW5kLCB0aGVyZSBpcyBhIGNvZGUgZmxvdyBlcnJvci4gKi8KIAlhcHAgPSBm aW5kX2FwcF9ieV9ub3RpZnlfc29jayhzb2NrKTsKIAlpZiAoIWFwcCkgewotCQlEQkcoIkFwcGxp Y2F0aW9uIHNvY2tldCAlZCBpcyBiZWluZyB0ZWFyZG93bi4gQWJvcnQgZXZlbnQgbm90aWZ5IiwK KwkJREJHKCJBcHBsaWNhdGlvbiBzb2NrZXQgJWQgaXMgYmVpbmcgdG9ybiBkb3duLiBBYm9ydCBl dmVudCBub3RpZnkiLAogCQkJCXNvY2spOwogCQlyZXQgPSAwOwogCQlmcmVlKGZpZWxkcyk7CkBA IC01MzMwLDcgKzUzNDgsNyBAQCBzdGF0aWMgaW50IHJlcGx5X3VzdF9yZWdpc3Rlcl9jaGFubmVs KGludCBzb2NrLCBpbnQgc29iamQsIGludCBjb2JqZCwKIAkvKiBMb29rdXAgY2hhbm5lbCBieSBV U1Qgb2JqZWN0IGRlc2NyaXB0b3IuICovCiAJdWFfY2hhbiA9IGZpbmRfY2hhbm5lbF9ieV9vYmpk KGFwcCwgY29iamQpOwogCWlmICghdWFfY2hhbikgewotCQlEQkcoIkFwcGxpY2F0aW9uIGNoYW5u ZWwgaXMgYmVpbmcgdGVhcmRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIpOworCQlEQkcoIkFwcGxp Y2F0aW9uIGNoYW5uZWwgaXMgYmVpbmcgdG9ybiBkb3duLiBBYm9ydCBldmVudCBub3RpZnkiKTsK IAkJcmV0ID0gMDsKIAkJZnJlZShmaWVsZHMpOwogCQlnb3RvIGVycm9yX3JjdV91bmxvY2s7CkBA IC01MzQxLDcgKzUzNTksMTIgQEAgc3RhdGljIGludCByZXBseV91c3RfcmVnaXN0ZXJfY2hhbm5l bChpbnQgc29jaywgaW50IHNvYmpkLCBpbnQgY29iamQsCiAKIAkvKiBHZXQgcmlnaHQgc2Vzc2lv biByZWdpc3RyeSBkZXBlbmRpbmcgb24gdGhlIHNlc3Npb24gYnVmZmVyIHR5cGUuICovCiAJcmVn aXN0cnkgPSBnZXRfc2Vzc2lvbl9yZWdpc3RyeSh1YV9zZXNzKTsKLQlhc3NlcnQocmVnaXN0cnkp OworCWlmICghcmVnaXN0cnkpIHsKKwkJREJHKCJBcHBsaWNhdGlvbiBzZXNzaW9uIGlzIGJlaW5n IHRvcm4gZG93bi4gQWJvcnQgZXZlbnQgbm90aWZ5Iik7CisJCXJldCA9IDA7CisJCWZyZWUoZmll bGRzKTsKKwkJZ290byBlcnJvcl9yY3VfdW5sb2NrOworCX07CiAKIAkvKiBEZXBlbmRpbmcgb24g dGhlIGJ1ZmZlciB0eXBlLCBhIGRpZmZlcmVudCBjaGFubmVsIGtleSBpcyB1c2VkLiAqLwogCWlm ICh1YV9zZXNzLT5idWZmZXJfdHlwZSA9PSBMVFROR19CVUZGRVJfUEVSX1VJRCkgewpAQCAtNTQz OSw3ICs1NDYyLDcgQEAgc3RhdGljIGludCBhZGRfZXZlbnRfdXN0X3JlZ2lzdHJ5KGludCBzb2Nr LCBpbnQgc29iamQsIGludCBjb2JqZCwgY2hhciAqbmFtZSwKIAkvKiBMb29rdXAgYXBwbGljYXRp b24uIElmIG5vdCBmb3VuZCwgdGhlcmUgaXMgYSBjb2RlIGZsb3cgZXJyb3IuICovCiAJYXBwID0g ZmluZF9hcHBfYnlfbm90aWZ5X3NvY2soc29jayk7CiAJaWYgKCFhcHApIHsKLQkJREJHKCJBcHBs aWNhdGlvbiBzb2NrZXQgJWQgaXMgYmVpbmcgdGVhcmRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIs CisJCURCRygiQXBwbGljYXRpb24gc29ja2V0ICVkIGlzIGJlaW5nIHRvcm4gZG93bi4gQWJvcnQg ZXZlbnQgbm90aWZ5IiwKIAkJCQlzb2NrKTsKIAkJcmV0ID0gMDsKIAkJZnJlZShzaWcpOwpAQCAt NTQ1MSw3ICs1NDc0LDcgQEAgc3RhdGljIGludCBhZGRfZXZlbnRfdXN0X3JlZ2lzdHJ5KGludCBz b2NrLCBpbnQgc29iamQsIGludCBjb2JqZCwgY2hhciAqbmFtZSwKIAkvKiBMb29rdXAgY2hhbm5l bCBieSBVU1Qgb2JqZWN0IGRlc2NyaXB0b3IuICovCiAJdWFfY2hhbiA9IGZpbmRfY2hhbm5lbF9i eV9vYmpkKGFwcCwgY29iamQpOwogCWlmICghdWFfY2hhbikgewotCQlEQkcoIkFwcGxpY2F0aW9u IGNoYW5uZWwgaXMgYmVpbmcgdGVhcmRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIpOworCQlEQkco IkFwcGxpY2F0aW9uIGNoYW5uZWwgaXMgYmVpbmcgdG9ybiBkb3duLiBBYm9ydCBldmVudCBub3Rp ZnkiKTsKIAkJcmV0ID0gMDsKIAkJZnJlZShzaWcpOwogCQlmcmVlKGZpZWxkcyk7CkBAIC01NDYz LDcgKzU0ODYsMTQgQEAgc3RhdGljIGludCBhZGRfZXZlbnRfdXN0X3JlZ2lzdHJ5KGludCBzb2Nr LCBpbnQgc29iamQsIGludCBjb2JqZCwgY2hhciAqbmFtZSwKIAl1YV9zZXNzID0gdWFfY2hhbi0+ c2Vzc2lvbjsKIAogCXJlZ2lzdHJ5ID0gZ2V0X3Nlc3Npb25fcmVnaXN0cnkodWFfc2Vzcyk7Ci0J YXNzZXJ0KHJlZ2lzdHJ5KTsKKwlpZiAoIXJlZ2lzdHJ5KSB7CisJCURCRygiQXBwbGljYXRpb24g c2Vzc2lvbiBpcyBiZWluZyB0b3JuIGRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIpOworCQlyZXQg PSAwOworCQlmcmVlKHNpZyk7CisJCWZyZWUoZmllbGRzKTsKKwkJZnJlZShtb2RlbF9lbWZfdXJp KTsKKwkJZ290byBlcnJvcl9yY3VfdW5sb2NrOworCX0KIAogCWlmICh1YV9zZXNzLT5idWZmZXJf dHlwZSA9PSBMVFROR19CVUZGRVJfUEVSX1VJRCkgewogCQljaGFuX3JlZ19rZXkgPSB1YV9jaGFu LT50cmFjaW5nX2NoYW5uZWxfaWQ7CkBAIC01NTUxLDcgKzU1ODEsMTEgQEAgc3RhdGljIGludCBh ZGRfZW51bV91c3RfcmVnaXN0cnkoaW50IHNvY2ssIGludCBzb2JqZCwgY2hhciAqbmFtZSwKIAl9 CiAKIAlyZWdpc3RyeSA9IGdldF9zZXNzaW9uX3JlZ2lzdHJ5KHVhX3Nlc3MpOwotCWFzc2VydChy ZWdpc3RyeSk7CisJaWYgKCFyZWdpc3RyeSkgeworCQlEQkcoIkFwcGxpY2F0aW9uIHNlc3Npb24g aXMgYmVpbmcgdG9ybiBkb3duLiBBYm9ydGluZyBlbnVtIHJlZ2lzdHJhdGlvbi4iKTsKKwkJZnJl ZShlbnRyaWVzKTsKKwkJZ290byBlcnJvcl9yY3VfdW5sb2NrOworCX0KIAogCXB0aHJlYWRfbXV0 ZXhfbG9jaygmcmVnaXN0cnktPmxvY2spOwogCkBAIC01OTE3LDcgKzU5NTEsMTAgQEAgaW50IHVz dF9hcHBfc25hcHNob3RfcmVjb3JkKHN0cnVjdCBsdHRfdXN0X3Nlc3Npb24gKnVzZXNzLAogCQkJ fQogCiAJCQlyZWdpc3RyeSA9IGdldF9zZXNzaW9uX3JlZ2lzdHJ5KHVhX3Nlc3MpOwotCQkJYXNz ZXJ0KHJlZ2lzdHJ5KTsKKwkJCWlmICghcmVnaXN0cnkpIHsKKwkJCQlEQkcoIkFwcGxpY2F0aW9u IHNlc3Npb24gaXMgYmVpbmcgdG9ybiBkb3duLiBBYm9ydCBzbmFwc2hvdCByZWNvcmQuIik7CisJ CQkJZ290byBlcnJvcjsKKwkJCX0KIAkJCXJldCA9IGNvbnN1bWVyX3NuYXBzaG90X2NoYW5uZWwo c29ja2V0LCByZWdpc3RyeS0+bWV0YWRhdGFfa2V5LCBvdXRwdXQsCiAJCQkJCTEsIHVhX3Nlc3Mt PmV1aWQsIHVhX3Nlc3MtPmVnaWQsIHBhdGhuYW1lLCB3YWl0LCAwKTsKIAkJCWlmIChyZXQgPCAw KSB7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbHR0bmctZGV2IG1haWxpbmcgbGlzdApsdHRuZy1kZXZAbGlzdHMubHR0bmcub3JnCmh0 dHBzOi8vbGlzdHMubHR0bmcub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9sdHRuZy1kZXYK