From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 59BEB43B68;
	Thu, 22 Feb 2024 06:37:30 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 00BA240608;
	Thu, 22 Feb 2024 06:37:25 +0100 (CET)
Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com
 [67.231.156.173])
 by mails.dpdk.org (Postfix) with ESMTP id 33CCC402DA
 for <dev@dpdk.org>; Thu, 22 Feb 2024 06:37:23 +0100 (CET)
Received: from pps.filterd (m0045851.ppops.net [127.0.0.1])
 by mx0b-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 41LNpFnK007495; Wed, 21 Feb 2024 21:37:22 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=
 from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding:content-type; s=
 pfpt0220; bh=zu2uSK0CYXPOFPrEI1rDf/WUnhTzA/sQOnXb8xkqw3g=; b=BG7
 5qcV+EiLrxAV30NTHcRGbTBrZcCMrrehWmEvmCZmXEmCYrk3KbE/tlHwQlr/pd/W
 0EX0r1yR3cclK2F1ER/AWQAgo3CjxY6azN/pLAzPVHT408YEV14jiTP1KseqJy9m
 3EOHLJTJkJYNXIWIRXy3f+BRsU5SMsee3JeaEzrMJdpRtUrqPEGt7OGs4Attwwpo
 qwelOCs0Jsg6aHviAwckXCSQE8oV+FTS+0oqBEGKRSv1eWD4pfeXToBYzhTNuhtb
 sQfno9i4LANb/PfpjGRtSPgbsX1ElofaY9Eja2BqxIPx9ZrrT3Ny8SpHJBjE8uvz
 Wlu36L1NSXWuFZhagQw==
Received: from dc5-exch01.marvell.com ([199.233.59.181])
 by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3wd21kf9q0-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);
 Wed, 21 Feb 2024 21:37:22 -0800 (PST)
Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com
 (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48;
 Wed, 21 Feb 2024 21:36:56 -0800
Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com
 (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.48 via Frontend
 Transport; Wed, 21 Feb 2024 21:36:56 -0800
Received: from MININT-80QBFE8.corp.innovium.com (MININT-80QBFE8.marvell.com
 [10.28.8.42])
 by maili.marvell.com (Postfix) with ESMTP id A112B3F70A7;
 Wed, 21 Feb 2024 21:36:54 -0800 (PST)
From: <pbhagavatula@marvell.com>
To: <jerinj@marvell.com>, <ndabilpuram@marvell.com>, <kirankumark@marvell.com>,
 <zhirun.yan@intel.com>
CC: <dev@dpdk.org>, Pavan Nikhilesh <pbhagavatula@marvell.com>
Subject: [24.11 PATCH v2 3/5] graph: add stats for node specific errors
Date: Thu, 22 Feb 2024 11:06:37 +0530
Message-ID: <20240222053639.15057-3-pbhagavatula@marvell.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20240222053639.15057-1-pbhagavatula@marvell.com>
References: <20240221162608.10412-1-pbhagavatula@marvell.com>
 <20240222053639.15057-1-pbhagavatula@marvell.com>
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: text/plain
X-Proofpoint-GUID: qJm9bYAINN69TpKfPPMB8Hiap8RP3e2v
X-Proofpoint-ORIG-GUID: qJm9bYAINN69TpKfPPMB8Hiap8RP3e2v
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2024-02-22_03,2024-02-22_01,2023-05-22_02
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

RnJvbTogUGF2YW4gTmlraGlsZXNoIDxwYmhhZ2F2YXR1bGFAbWFydmVsbC5jb20+CgpBZGQgc3Vw
cG9ydCBmb3IgcmV0cmlldmluZy9wcmludGluZyBzdGF0cyBmb3Igbm9kZSBzcGVjaWZpYwplcnJv
cnMgdXNpbmcgcnRlX2dyYXBoX2NsdXN0ZXJfc3RhdHNfZ2V0KCkuCgpTaWduZWQtb2ZmLWJ5OiBQ
YXZhbiBOaWtoaWxlc2ggPHBiaGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT4KLS0tCiBsaWIvZ3JhcGgv
Z3JhcGhfc3RhdHMuYyB8IDgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KystCiBsaWIvZ3JhcGgvcnRlX2dyYXBoLmggICB8ICA0ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDg0
IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWIvZ3JhcGgvZ3Jh
cGhfc3RhdHMuYyBiL2xpYi9ncmFwaC9ncmFwaF9zdGF0cy5jCmluZGV4IGNjMzIyNDVjMDUuLjdl
MDI2ZjBjNjggMTAwNjQ0Ci0tLSBhL2xpYi9ncmFwaC9ncmFwaF9zdGF0cy5jCisrKyBiL2xpYi9n
cmFwaC9ncmFwaF9zdGF0cy5jCkBAIC0xMjIsNiArMTIyLDI2IEBAIHByaW50X25vZGUoRklMRSAq
ZiwgY29uc3Qgc3RydWN0IHJ0ZV9ncmFwaF9jbHVzdGVyX25vZGVfc3RhdHMgKnN0YXQpCiAJfQog
fQogCitzdGF0aWMgaW5saW5lIHZvaWQKK3ByaW50X2VycihGSUxFICpmLCBjb25zdCBzdHJ1Y3Qg
cnRlX2dyYXBoX2NsdXN0ZXJfbm9kZV9zdGF0cyAqc3RhdCkKK3sKKwlpbnQgaTsKKworCWlmIChy
dGVfZ3JhcGhfd29ya2VyX21vZGVsX2dldChTVEFJTFFfRklSU1QoZ3JhcGhfbGlzdF9oZWFkX2dl
dCgpKS0+Z3JhcGgpID09CisJICAgIFJURV9HUkFQSF9NT0RFTF9NQ09SRV9ESVNQQVRDSCkgewor
CQlmb3IgKGkgPSAwOyBpIDwgc3RhdC0+bm9kZV9lcnJvcl9jbnRyczsgaSsrKQorCQkJZnByaW50
ZihmLAorCQkJCSJ8XHQlLTI0c3wlMTVzfCUtMTUiIFBSSXU2NCAifCUxNXN8JTE1c3wlMTVzfCUx
NXN8JTE1c3wlMTEuNHN8XG4iLAorCQkJCXN0YXQtPm5vZGVfZXJyb3JfZGVzY1tpXSwgIiIsIHN0
YXQtPm5vZGVfZXJyb3JfY291bnRbaV0sICIiLCAiIiwgIiIsCisJCQkJIiIsICIiLCAiIik7CisJ
fSBlbHNlIHsKKwkJZm9yIChpID0gMDsgaSA8IHN0YXQtPm5vZGVfZXJyb3JfY250cnM7IGkrKykK
KwkJCWZwcmludGYoZiwgInxcdCUtMjRzfCUxNXN8JS0xNSIgUFJJdTY0ICJ8JTE1c3wlMTUuM3N8
JTE1LjZzfCUxMS40c3xcbiIsCisJCQkJc3RhdC0+bm9kZV9lcnJvcl9kZXNjW2ldLCAiIiwgc3Rh
dC0+bm9kZV9lcnJvcl9jb3VudFtpXSwgIiIsICIiLCAiIiwKKwkJCQkiIik7CisJfQorfQorCiBz
dGF0aWMgaW50CiBncmFwaF9jbHVzdGVyX3N0YXRzX2NiKGJvb2wgaXNfZmlyc3QsIGJvb2wgaXNf
bGFzdCwgdm9pZCAqY29va2llLAogCQkgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9ncmFwaF9jbHVz
dGVyX25vZGVfc3RhdHMgKnN0YXQpCkBAIC0xMzMsOCArMTUzLDExIEBAIGdyYXBoX2NsdXN0ZXJf
c3RhdHNfY2IoYm9vbCBpc19maXJzdCwgYm9vbCBpc19sYXN0LCB2b2lkICpjb29raWUsCiAKIAlp
ZiAodW5saWtlbHkoaXNfZmlyc3QpKQogCQlwcmludF9iYW5uZXIoZik7Ci0JaWYgKHN0YXQtPm9i
anMpCisJaWYgKHN0YXQtPm9ianMpIHsKIAkJcHJpbnRfbm9kZShmLCBzdGF0KTsKKwkJaWYgKHN0
YXQtPm5vZGVfZXJyb3JfY250cnMpCisJCQlwcmludF9lcnIoZiwgc3RhdCk7CisJfQogCWlmICh1
bmxpa2VseShpc19sYXN0KSkgewogCQlpZiAobW9kZWwgPT0gUlRFX0dSQVBIX01PREVMX01DT1JF
X0RJU1BBVENIKQogCQkJYm9hcmRlcl9tb2RlbF9kaXNwYXRjaCgpOwpAQCAtMTg4LDYgKzIxMSw3
IEBAIHN0YXRzX21lbV9wb3B1bGF0ZShzdHJ1Y3QgcnRlX2dyYXBoX2NsdXN0ZXJfc3RhdHMgKipz
dGF0c19pbiwKIAlzdHJ1Y3QgY2x1c3Rlcl9ub2RlICpjbHVzdGVyOwogCXN0cnVjdCBydGVfbm9k
ZSAqbm9kZTsKIAlydGVfbm9kZV90IGNvdW50OworCXVpbnQ4X3QgaTsKIAogCWNsdXN0ZXIgPSBz
dGF0cy0+Y2x1c3RlcnM7CiAKQEAgLTIyNSw2ICsyNDksMzYgQEAgc3RhdHNfbWVtX3BvcHVsYXRl
KHN0cnVjdCBydGVfZ3JhcGhfY2x1c3Rlcl9zdGF0cyAqKnN0YXRzX2luLAogCQlTRVRfRVJSX0pN
UChFTk9FTlQsIGZyZWUsICJGYWlsZWQgdG8gZmluZCBub2RlICVzIGluIGdyYXBoICVzIiwKIAkJ
CSAgICBncmFwaF9ub2RlLT5ub2RlLT5uYW1lLCBncmFwaC0+bmFtZSk7CiAJY2x1c3Rlci0+bm9k
ZXNbY2x1c3Rlci0+bmJfbm9kZXMrK10gPSBub2RlOworCWlmIChncmFwaF9ub2RlLT5ub2RlLT5l
cnJzKSB7CisJCWNsdXN0ZXItPnN0YXQubm9kZV9lcnJvcl9jbnRycyA9IGdyYXBoX25vZGUtPm5v
ZGUtPmVycnMtPm5iX2Vycm9yczsKKwkJY2x1c3Rlci0+c3RhdC5ub2RlX2Vycm9yX2NvdW50ID0g
cnRlX3ptYWxsb2Nfc29ja2V0KAorCQkJTlVMTCwgc2l6ZW9mKHVpbnQ2NF90KSAqIGdyYXBoX25v
ZGUtPm5vZGUtPmVycnMtPm5iX2Vycm9ycywKKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIHN0YXRz
LT5zb2NrZXRfaWQpOworCQlpZiAoY2x1c3Rlci0+c3RhdC5ub2RlX2Vycm9yX2NvdW50ID09IE5V
TEwpCisJCQlTRVRfRVJSX0pNUChFTk9NRU0sIGZyZWUsICJGYWlsZWQgdG8gYWxsb2NhdGUgbWVt
b3J5IG5vZGUgJXMgZ3JhcGggJXMiLAorCQkJCSAgICBncmFwaF9ub2RlLT5ub2RlLT5uYW1lLCBn
cmFwaC0+bmFtZSk7CisKKwkJY2x1c3Rlci0+c3RhdC5ub2RlX2Vycm9yX2Rlc2MgPSBydGVfem1h
bGxvY19zb2NrZXQoCisJCQlOVUxMLCBzaXplb2YoUlRFX05PREVfRVJST1JfREVTQ19TSVpFKSAq
IGdyYXBoX25vZGUtPm5vZGUtPmVycnMtPm5iX2Vycm9ycywKKwkJCVJURV9DQUNIRV9MSU5FX1NJ
WkUsIHN0YXRzLT5zb2NrZXRfaWQpOworCQlpZiAoY2x1c3Rlci0+c3RhdC5ub2RlX2Vycm9yX2Rl
c2MgPT0gTlVMTCkgeworCQkJcnRlX2ZyZWUoY2x1c3Rlci0+c3RhdC5ub2RlX2Vycm9yX2NvdW50
KTsKKwkJCVNFVF9FUlJfSk1QKEVOT01FTSwgZnJlZSwgIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1v
cnkgbm9kZSAlcyBncmFwaCAlcyIsCisJCQkJICAgIGdyYXBoX25vZGUtPm5vZGUtPm5hbWUsIGdy
YXBoLT5uYW1lKTsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBjbHVzdGVyLT5zdGF0Lm5vZGVf
ZXJyb3JfY250cnM7IGkrKykgeworCQkJaWYgKHJ0ZV9zdHJzY3B5KGNsdXN0ZXItPnN0YXQubm9k
ZV9lcnJvcl9kZXNjW2ldLAorCQkJCQlncmFwaF9ub2RlLT5ub2RlLT5lcnJzLT5lcnJfZGVzY1tp
XSwKKwkJCQkJUlRFX05PREVfRVJST1JfREVTQ19TSVpFKSA8IDApIHsKKwkJCQlydGVfZnJlZShj
bHVzdGVyLT5zdGF0Lm5vZGVfZXJyb3JfY291bnQpOworCQkJCXJ0ZV9mcmVlKGNsdXN0ZXItPnN0
YXQubm9kZV9lcnJvcl9kZXNjKTsKKwkJCQlTRVRfRVJSX0pNUChFMkJJRywgZnJlZSwKKwkJCQkJ
ICAgICJFcnJvciBkZXNjcmlwdGlvbiBvdmVyZmxvdyBub2RlICVzIGdyYXBoICVzIiwKKwkJCQkJ
ICAgIGdyYXBoX25vZGUtPm5vZGUtPm5hbWUsIGdyYXBoLT5uYW1lKTsKKwkJCX0KKwkJfQorCX0K
IAogCXN0YXRzLT5zeiArPSBzdGF0cy0+Y2x1c3Rlcl9ub2RlX3NpemU7CiAJc3RhdHMtPm1heF9u
b2RlcysrOwpAQCAtMzcxLDYgKzQyNSwxOCBAQCBydGVfZ3JhcGhfY2x1c3Rlcl9zdGF0c19jcmVh
dGUoY29uc3Qgc3RydWN0IHJ0ZV9ncmFwaF9jbHVzdGVyX3N0YXRzX3BhcmFtICpwcm0pCiB2b2lk
CiBydGVfZ3JhcGhfY2x1c3Rlcl9zdGF0c19kZXN0cm95KHN0cnVjdCBydGVfZ3JhcGhfY2x1c3Rl
cl9zdGF0cyAqc3RhdCkKIHsKKwlzdHJ1Y3QgY2x1c3Rlcl9ub2RlICpjbHVzdGVyOworCXJ0ZV9u
b2RlX3QgY291bnQ7CisKKwljbHVzdGVyID0gc3RhdC0+Y2x1c3RlcnM7CisJZm9yIChjb3VudCA9
IDA7IGNvdW50IDwgc3RhdC0+bWF4X25vZGVzOyBjb3VudCsrKSB7CisJCWlmIChjbHVzdGVyLT5z
dGF0Lm5vZGVfZXJyb3JfY250cnMpIHsKKwkJCXJ0ZV9mcmVlKGNsdXN0ZXItPnN0YXQubm9kZV9l
cnJvcl9jb3VudCk7CisJCQlydGVfZnJlZShjbHVzdGVyLT5zdGF0Lm5vZGVfZXJyb3JfZGVzYyk7
CisJCX0KKworCQljbHVzdGVyID0gUlRFX1BUUl9BREQoY2x1c3Rlciwgc3RhdC0+Y2x1c3Rlcl9u
b2RlX3NpemUpOworCX0KIAlyZXR1cm4gcnRlX2ZyZWUoc3RhdCk7CiB9CiAKQEAgLTM4Miw5ICs0
NDgsMTMgQEAgY2x1c3Rlcl9ub2RlX2FycmVnYXRlX3N0YXRzKHN0cnVjdCBjbHVzdGVyX25vZGUg
KmNsdXN0ZXIpCiAJdWludDY0X3Qgc2NoZWRfb2JqcyA9IDAsIHNjaGVkX2ZhaWwgPSAwOwogCXN0
cnVjdCBydGVfbm9kZSAqbm9kZTsKIAlydGVfbm9kZV90IGNvdW50OworCXVpbnQ2NF90ICplcnI7
CisJdWludDhfdCBpOwogCWludCBtb2RlbDsKIAogCW1vZGVsID0gcnRlX2dyYXBoX3dvcmtlcl9t
b2RlbF9nZXQoU1RBSUxRX0ZJUlNUKGdyYXBoX2xpc3RfaGVhZF9nZXQoKSktPmdyYXBoKTsKKwor
CW1lbXNldChzdGF0LT5ub2RlX2Vycm9yX2NvdW50LCAwLCBzaXplb2YodWludDY0X3QpICogc3Rh
dC0+bm9kZV9lcnJvcl9jbnRycyk7CiAJZm9yIChjb3VudCA9IDA7IGNvdW50IDwgY2x1c3Rlci0+
bmJfbm9kZXM7IGNvdW50KyspIHsKIAkJbm9kZSA9IGNsdXN0ZXItPm5vZGVzW2NvdW50XTsKIApA
QCAtMzk3LDYgKzQ2NywxMiBAQCBjbHVzdGVyX25vZGVfYXJyZWdhdGVfc3RhdHMoc3RydWN0IGNs
dXN0ZXJfbm9kZSAqY2x1c3RlcikKIAkJb2JqcyArPSBub2RlLT50b3RhbF9vYmpzOwogCQljeWNs
ZXMgKz0gbm9kZS0+dG90YWxfY3ljbGVzOwogCQlyZWFsbG9jX2NvdW50ICs9IG5vZGUtPnJlYWxs
b2NfY291bnQ7CisKKwkJaWYgKG5vZGUtPmVycl9vZmYgPT0gMCkKKwkJCWNvbnRpbnVlOworCQll
cnIgPSBSVEVfUFRSX0FERChub2RlLCBub2RlLT5lcnJfb2ZmKTsKKwkJZm9yIChpID0gMDsgaSA8
IHN0YXQtPm5vZGVfZXJyb3JfY250cnM7IGkrKykKKwkJCXN0YXQtPm5vZGVfZXJyb3JfY291bnRb
aV0gKz0gZXJyW2ldOwogCX0KIAogCXN0YXQtPmNhbGxzID0gY2FsbHM7CkBAIC00NDksNiArNTI1
LDcgQEAgcnRlX2dyYXBoX2NsdXN0ZXJfc3RhdHNfcmVzZXQoc3RydWN0IHJ0ZV9ncmFwaF9jbHVz
dGVyX3N0YXRzICpzdGF0KQogewogCXN0cnVjdCBjbHVzdGVyX25vZGUgKmNsdXN0ZXI7CiAJcnRl
X25vZGVfdCBjb3VudDsKKwl1aW50OF90IGk7CiAKIAljbHVzdGVyID0gc3RhdC0+Y2x1c3RlcnM7
CiAKQEAgLTQ2NCw2ICs1NDEsOCBAQCBydGVfZ3JhcGhfY2x1c3Rlcl9zdGF0c19yZXNldChzdHJ1
Y3QgcnRlX2dyYXBoX2NsdXN0ZXJfc3RhdHMgKnN0YXQpCiAJCW5vZGUtPnByZXZfb2JqcyA9IDA7
CiAJCW5vZGUtPnByZXZfY3ljbGVzID0gMDsKIAkJbm9kZS0+cmVhbGxvY19jb3VudCA9IDA7CisJ
CWZvciAoaSA9IDA7IGkgPCBub2RlLT5ub2RlX2Vycm9yX2NudHJzOyBpKyspCisJCQlub2RlLT5u
b2RlX2Vycm9yX2NvdW50W2ldID0gMDsKIAkJY2x1c3RlciA9IFJURV9QVFJfQUREKGNsdXN0ZXIs
IHN0YXQtPmNsdXN0ZXJfbm9kZV9zaXplKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9saWIvZ3JhcGgv
cnRlX2dyYXBoLmggYi9saWIvZ3JhcGgvcnRlX2dyYXBoLmgKaW5kZXggNzBiNjg2NzNjMS4uMzVm
NGM4ZGIwYyAxMDA2NDQKLS0tIGEvbGliL2dyYXBoL3J0ZV9ncmFwaC5oCisrKyBiL2xpYi9ncmFw
aC9ydGVfZ3JhcGguaApAQCAtMjIzLDYgKzIyMywxMCBAQCBzdHJ1Y3QgcnRlX2dyYXBoX2NsdXN0
ZXJfbm9kZV9zdGF0cyB7CiAKIAl1aW50NjRfdCByZWFsbG9jX2NvdW50OyAvKio8IFJlYWxsb2Mg
Y291bnQuICovCiAKKwl1aW50OF90IG5vZGVfZXJyb3JfY250cnM7CQkJICAgLyoqPCBOdW1iZXIg
b2YgTm9kZSBlcnJvciBjb3VudGVycy4gKi8KKwljaGFyICgqbm9kZV9lcnJvcl9kZXNjKVtSVEVf
Tk9ERV9FUlJPUl9ERVNDX1NJWkVdOyAvKio8IE5hbWVzIG9mIHRoZSBOb2RlIGVycm9yIGNvdW50
ZXJzLiAqLworCXVpbnQ2NF90ICpub2RlX2Vycm9yX2NvdW50OwkJCSAgIC8qKjwgVG90YWwgZXJy
b3IgY291bnQgcGVyIGVhY2ggZXJyb3IuICovCisKIAlydGVfbm9kZV90IGlkOwkvKio8IE5vZGUg
aWRlbnRpZmllciBvZiBzdGF0cy4gKi8KIAl1aW50NjRfdCBoejsJLyoqPCBDeWNsZXMgcGVyIHNl
Y29uZHMuICovCiAJY2hhciBuYW1lW1JURV9OT0RFX05BTUVTSVpFXTsJLyoqPCBOYW1lIG9mIHRo
ZSBub2RlLiAqLwotLSAKMi4yNS4xCgo=