From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80FA26E43D for ; Tue, 2 Apr 2019 16:33:51 +0000 (UTC) From: Ville Syrjala Date: Tue, 2 Apr 2019 19:33:43 +0300 Message-Id: <20190402163348.4680-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/6] tests/kms_color: Nuke local struct definitions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkkg dGhpbmsgd2UgY2FuIGFzc3VtZSBmcmVzaCBlbm91Z2ggaGVhZGVycyBieSBub3csIHNvIHJlbW92 ZQp0aGUgbG9jYWwgX2RybV9jb2xvcl9jdG0gYW5kIF9kcm1fY29sb3JfbHV0IHN0cnVjdHMgZGVm aW5pdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgotLS0KIHRlc3RzL2ttc19jb2xvci5jIHwgNzQgKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyOSBp bnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY29s b3IuYyBiL3Rlc3RzL2ttc19jb2xvci5jCmluZGV4IGRlY2YzYzJhNjgwZS4uMWU1YTVkMzI5YmVh IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfY29sb3IuYworKysgYi90ZXN0cy9rbXNfY29sb3IuYwpA QCAtMzEsMjIgKzMxLDYgQEAKIAogSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgQ29sb3IgRmVh dHVyZXMgYXQgUGlwZSBsZXZlbCIpOwogCi0vKiBEYXRhIHN0cnVjdHVyZXMgZm9yIGdhbW1hL2Rl Z2FtbWEgcmFtcHMgJiBjdG0gbWF0cml4LiAqLwotc3RydWN0IF9kcm1fY29sb3JfY3RtIHsKLQkv KiBUcmFuc2Zvcm1hdGlvbiBtYXRyaXggaW4gUzMxLjMyIGZvcm1hdC4gKi8KLQlfX3M2NCBtYXRy aXhbOV07Ci19OwotCi1zdHJ1Y3QgX2RybV9jb2xvcl9sdXQgewotCS8qCi0JICogRGF0YSBpcyBV MC4xNiBmaXhlZCBwb2ludCBmb3JtYXQuCi0JICovCi0JX191MTYgcmVkOwotCV9fdTE2IGdyZWVu OwotCV9fdTE2IGJsdWU7Ci0JX191MTYgcmVzZXJ2ZWQ7Ci19OwotCiAvKiBJbnRlcm5hbCAqLwog dHlwZWRlZiBzdHJ1Y3QgewogCWRvdWJsZSByLCBnLCBiOwpAQCAtMTYzLDEzICsxNDcsMTMgQEAg c3RhdGljIGRvdWJsZSAqZ2VuZXJhdGVfdGFibGVfemVybyh1aW50MzJfdCBsdXRfc2l6ZSkKIAly ZXR1cm4gY29lZmZzOwogfQogCi1zdGF0aWMgc3RydWN0IF9kcm1fY29sb3JfbHV0ICpjb2VmZnNf dG9fbHV0KGRhdGFfdCAqZGF0YSwKLQkJCQkJICAgIGNvbnN0IGRvdWJsZSAqY29lZmZpY2llbnRz LAotCQkJCQkgICAgdWludDMyX3QgbHV0X3NpemUsCi0JCQkJCSAgICB1aW50MzJfdCBjb2xvcl9k ZXB0aCwKLQkJCQkJICAgIGludCBvZmYpCitzdGF0aWMgc3RydWN0IGRybV9jb2xvcl9sdXQgKmNv ZWZmc190b19sdXQoZGF0YV90ICpkYXRhLAorCQkJCQkgICBjb25zdCBkb3VibGUgKmNvZWZmaWNp ZW50cywKKwkJCQkJICAgdWludDMyX3QgbHV0X3NpemUsCisJCQkJCSAgIHVpbnQzMl90IGNvbG9y X2RlcHRoLAorCQkJCQkgICBpbnQgb2ZmKQogewotCXN0cnVjdCBfZHJtX2NvbG9yX2x1dCAqbHV0 OworCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQ7CiAJdWludDMyX3QgaTsKIAl1aW50MzJfdCBt YXhfdmFsdWUgPSAoMSA8PCAxNikgLSAxOwogCXVpbnQzMl90IG1hc2s7CkBAIC0xNzksNyArMTYz LDcgQEAgc3RhdGljIHN0cnVjdCBfZHJtX2NvbG9yX2x1dCAqY29lZmZzX3RvX2x1dChkYXRhX3Qg KmRhdGEsCiAJZWxzZQogCQltYXNrID0gbWF4X3ZhbHVlOwogCi0JbHV0ID0gbWFsbG9jKHNpemVv ZihzdHJ1Y3QgX2RybV9jb2xvcl9sdXQpICogbHV0X3NpemUpOworCWx1dCA9IG1hbGxvYyhzaXpl b2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpICogbHV0X3NpemUpOwogCiAJaWYgKElTX0NIRVJSWVZJ RVcoZGF0YS0+ZGV2aWQpKQogCQlsdXRfc2l6ZSAtPSAxOwpAQCAtMjExLDggKzE5NSw4IEBAIHN0 YXRpYyB2b2lkIHNldF9kZWdhbW1hKGRhdGFfdCAqZGF0YSwKIAkJCWlndF9waXBlX3QgKnBpcGUs CiAJCQljb25zdCBkb3VibGUgKmNvZWZmaWNpZW50cykKIHsKLQlzaXplX3Qgc2l6ZSA9IHNpemVv ZihzdHJ1Y3QgX2RybV9jb2xvcl9sdXQpICogZGF0YS0+ZGVnYW1tYV9sdXRfc2l6ZTsKLQlzdHJ1 Y3QgX2RybV9jb2xvcl9sdXQgKmx1dCA9IGNvZWZmc190b19sdXQoZGF0YSwKKwlzaXplX3Qgc2l6 ZSA9IHNpemVvZihzdHJ1Y3QgZHJtX2NvbG9yX2x1dCkgKiBkYXRhLT5kZWdhbW1hX2x1dF9zaXpl OworCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBjb2VmZnNfdG9fbHV0KGRhdGEsCiAJCQkJ CQkgICBjb2VmZmljaWVudHMsCiAJCQkJCQkgICBkYXRhLT5kZWdhbW1hX2x1dF9zaXplLAogCQkJ CQkJICAgZGF0YS0+Y29sb3JfZGVwdGgsIDApOwpAQCAtMjI2LDggKzIxMCw4IEBAIHN0YXRpYyB2 b2lkIHNldF9nYW1tYShkYXRhX3QgKmRhdGEsCiAJCSAgICAgIGlndF9waXBlX3QgKnBpcGUsCiAJ CSAgICAgIGNvbnN0IGRvdWJsZSAqY29lZmZpY2llbnRzKQogewotCXNpemVfdCBzaXplID0gc2l6 ZW9mKHN0cnVjdCBfZHJtX2NvbG9yX2x1dCkgKiBkYXRhLT5nYW1tYV9sdXRfc2l6ZTsKLQlzdHJ1 Y3QgX2RybV9jb2xvcl9sdXQgKmx1dCA9IGNvZWZmc190b19sdXQoZGF0YSwKKwlzaXplX3Qgc2l6 ZSA9IHNpemVvZihzdHJ1Y3QgZHJtX2NvbG9yX2x1dCkgKiBkYXRhLT5nYW1tYV9sdXRfc2l6ZTsK KwlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gY29lZmZzX3RvX2x1dChkYXRhLAogCQkJCQkJ ICAgY29lZmZpY2llbnRzLAogCQkJCQkJICAgZGF0YS0+Z2FtbWFfbHV0X3NpemUsCiAJCQkJCQkg ICBkYXRhLT5jb2xvcl9kZXB0aCwgMCk7CkBAIC0yMzksNyArMjIzLDcgQEAgc3RhdGljIHZvaWQg c2V0X2dhbW1hKGRhdGFfdCAqZGF0YSwKIAogc3RhdGljIHZvaWQgc2V0X2N0bShpZ3RfcGlwZV90 ICpwaXBlLCBjb25zdCBkb3VibGUgKmNvZWZmaWNpZW50cykKIHsKLQlzdHJ1Y3QgX2RybV9jb2xv cl9jdG0gY3RtOworCXN0cnVjdCBkcm1fY29sb3JfY3RtIGN0bTsKIAlpbnQgaTsKIAogCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGN0bS5tYXRyaXgpOyBpKyspIHsKQEAgLTU1Miw3ICs1MzYs NyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3BpcGVfbGVnYWN5X2dhbW1hX3Jlc2V0KGRhdGFfdCAqZGF0 YSwKIAlkb3VibGUgKmRlZ2FtbWFfbGluZWFyLCAqZ2FtbWFfemVybzsKIAl1aW50MzJfdCBpLCBs ZWdhY3lfbHV0X3NpemU7CiAJdWludDE2X3QgKnJlZF9sdXQsICpncmVlbl9sdXQsICpibHVlX2x1 dDsKLQlzdHJ1Y3QgX2RybV9jb2xvcl9sdXQgKmx1dDsKKwlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAq bHV0OwogCWRybU1vZGVQcm9wZXJ0eUJsb2JQdHIgYmxvYjsKIAlpZ3Rfb3V0cHV0X3QgKm91dHB1 dDsKIApAQCAtNTc4LDIwICs1NjIsMjAgQEAgc3RhdGljIHZvaWQgdGVzdF9waXBlX2xlZ2FjeV9n YW1tYV9yZXNldChkYXRhX3QgKmRhdGEsCiAKIAkJYmxvYiA9IGdldF9ibG9iKGRhdGEsIHByaW1h cnktPnBpcGUsIElHVF9DUlRDX0RFR0FNTUFfTFVUKTsKIAkJaWd0X2Fzc2VydChibG9iICYmCi0J CQkgICBibG9iLT5sZW5ndGggPT0gKHNpemVvZihzdHJ1Y3QgX2RybV9jb2xvcl9sdXQpICoKKwkJ CSAgIGJsb2ItPmxlbmd0aCA9PSAoc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KSAqCiAJCQkJ CSAgICBkYXRhLT5kZWdhbW1hX2x1dF9zaXplKSk7CiAJCWRybU1vZGVGcmVlUHJvcGVydHlCbG9i KGJsb2IpOwogCiAJCWJsb2IgPSBnZXRfYmxvYihkYXRhLCBwcmltYXJ5LT5waXBlLCBJR1RfQ1JU Q19DVE0pOwogCQlpZ3RfYXNzZXJ0KGJsb2IgJiYKLQkJCSAgIGJsb2ItPmxlbmd0aCA9PSBzaXpl b2Yoc3RydWN0IF9kcm1fY29sb3JfY3RtKSk7CisJCQkgICBibG9iLT5sZW5ndGggPT0gc2l6ZW9m KHN0cnVjdCBkcm1fY29sb3JfY3RtKSk7CiAJCWRybU1vZGVGcmVlUHJvcGVydHlCbG9iKGJsb2Ip OwogCiAJCWJsb2IgPSBnZXRfYmxvYihkYXRhLCBwcmltYXJ5LT5waXBlLCBJR1RfQ1JUQ19HQU1N QV9MVVQpOwogCQlpZ3RfYXNzZXJ0KGJsb2IgJiYKLQkJCSAgIGJsb2ItPmxlbmd0aCA9PSAoc2l6 ZW9mKHN0cnVjdCBfZHJtX2NvbG9yX2x1dCkgKgorCQkJICAgYmxvYi0+bGVuZ3RoID09IChzaXpl b2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpICoKIAkJCQkJICAgIGRhdGEtPmdhbW1hX2x1dF9zaXpl KSk7Ci0JCWx1dCA9IChzdHJ1Y3QgX2RybV9jb2xvcl9sdXQgKikgYmxvYi0+ZGF0YTsKKwkJbHV0 ID0gKHN0cnVjdCBkcm1fY29sb3JfbHV0ICopIGJsb2ItPmRhdGE7CiAJCWZvciAoaSA9IDA7IGkg PCBkYXRhLT5nYW1tYV9sdXRfc2l6ZTsgaSsrKQogCQkJaWd0X2Fzc2VydChsdXRbaV0ucmVkID09 IDAgJiYKIAkJCQkgICBsdXRbaV0uZ3JlZW4gPT0gMCAmJgpAQCAtNjI1LDkgKzYwOSw5IEBAIHN0 YXRpYyB2b2lkIHRlc3RfcGlwZV9sZWdhY3lfZ2FtbWFfcmVzZXQoZGF0YV90ICpkYXRhLAogCiAJ CWJsb2IgPSBnZXRfYmxvYihkYXRhLCBwcmltYXJ5LT5waXBlLCBJR1RfQ1JUQ19HQU1NQV9MVVQp OwogCQlpZ3RfYXNzZXJ0KGJsb2IgJiYKLQkJCSAgIGJsb2ItPmxlbmd0aCA9PSAoc2l6ZW9mKHN0 cnVjdCBfZHJtX2NvbG9yX2x1dCkgKgorCQkJICAgYmxvYi0+bGVuZ3RoID09IChzaXplb2Yoc3Ry dWN0IGRybV9jb2xvcl9sdXQpICoKIAkJCQkJICAgIGxlZ2FjeV9sdXRfc2l6ZSkpOwotCQlsdXQg PSAoc3RydWN0IF9kcm1fY29sb3JfbHV0ICopIGJsb2ItPmRhdGE7CisJCWx1dCA9IChzdHJ1Y3Qg ZHJtX2NvbG9yX2x1dCAqKSBibG9iLT5kYXRhOwogCQlmb3IgKGkgPSAwOyBpIDwgbGVnYWN5X2x1 dF9zaXplOyBpKyspCiAJCQlpZ3RfYXNzZXJ0KGx1dFtpXS5yZWQgPT0gMHhmZmZmICYmCiAJCQkJ ICAgbHV0W2ldLmdyZWVuID09IDB4ZmZmZiAmJgpAQCAtMTA3OSwxMSArMTA2MywxMSBAQCBpbnZh bGlkX2x1dF9zaXplcyhkYXRhX3QgKmRhdGEpCiB7CiAJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9 ICZkYXRhLT5kaXNwbGF5OwogCWlndF9waXBlX3QgKnBpcGUgPSAmZGlzcGxheS0+cGlwZXNbMF07 Ci0Jc2l6ZV90IGRlZ2FtbWFfbHV0X3NpemUgPSBkYXRhLT5kZWdhbW1hX2x1dF9zaXplICogc2l6 ZW9mKHN0cnVjdCBfZHJtX2NvbG9yX2x1dCk7Ci0Jc2l6ZV90IGdhbW1hX2x1dF9zaXplID0gZGF0 YS0+Z2FtbWFfbHV0X3NpemUgKiBzaXplb2Yoc3RydWN0IF9kcm1fY29sb3JfbHV0KTsKKwlzaXpl X3QgZGVnYW1tYV9sdXRfc2l6ZSA9IGRhdGEtPmRlZ2FtbWFfbHV0X3NpemUgKiBzaXplb2Yoc3Ry dWN0IGRybV9jb2xvcl9sdXQpOworCXNpemVfdCBnYW1tYV9sdXRfc2l6ZSA9IGRhdGEtPmdhbW1h X2x1dF9zaXplICogc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KTsKIAotCXN0cnVjdCBfZHJt X2NvbG9yX2x1dCAqZGVnYW1tYV9sdXQgPSBtYWxsb2MoZGF0YS0+ZGVnYW1tYV9sdXRfc2l6ZSAq IHNpemVvZihzdHJ1Y3QgX2RybV9jb2xvcl9sdXQpICogMik7Ci0Jc3RydWN0IF9kcm1fY29sb3Jf bHV0ICpnYW1tYV9sdXQgPSBtYWxsb2MoZGF0YS0+Z2FtbWFfbHV0X3NpemUgKiBzaXplb2Yoc3Ry dWN0IF9kcm1fY29sb3JfbHV0KSAqIDIpOworCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpkZWdhbW1h X2x1dCA9IG1hbGxvYyhkYXRhLT5kZWdhbW1hX2x1dF9zaXplICogc2l6ZW9mKHN0cnVjdCBkcm1f Y29sb3JfbHV0KSAqIDIpOworCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpnYW1tYV9sdXQgPSBtYWxs b2MoZGF0YS0+Z2FtbWFfbHV0X3NpemUgKiBzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpICog Mik7CiAKIAlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIGRpc3BsYXktPmlzX2F0b21pYyA/ IENPTU1JVF9BVE9NSUMgOiBDT01NSVRfTEVHQUNZKTsKIApAQCAtMTA5Nyw3ICsxMDgxLDcgQEAg aW52YWxpZF9sdXRfc2l6ZXMoZGF0YV90ICpkYXRhKQogCQkJCQkJICAgICBkZWdhbW1hX2x1dCwg ZGVnYW1tYV9sdXRfc2l6ZSAtIDEpLAogCQkJICAgICAgLUVJTlZBTCk7CiAJCWlndF9hc3NlcnRf ZXEocGlwZV9zZXRfcHJvcGVydHlfYmxvYihwaXBlLCBJR1RfQ1JUQ19ERUdBTU1BX0xVVCwKLQkJ CQkJCSAgICAgZGVnYW1tYV9sdXQsIGRlZ2FtbWFfbHV0X3NpemUgKyBzaXplb2Yoc3RydWN0IF9k cm1fY29sb3JfbHV0KSksCisJCQkJCQkgICAgIGRlZ2FtbWFfbHV0LCBkZWdhbW1hX2x1dF9zaXpl ICsgc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KSksCiAJCQkgICAgICAtRUlOVkFMKTsKIAkJ aWd0X2Fzc2VydF9lcShwaXBlX3NldF9wcm9wZXJ0eV9ibG9iX2lkKHBpcGUsIElHVF9DUlRDX0RF R0FNTUFfTFVULCBwaXBlLT5jcnRjX2lkKSwKIAkJCSAgICAgIC1FSU5WQUwpOwpAQCAtMTExNiw3 ICsxMTAwLDcgQEAgaW52YWxpZF9sdXRfc2l6ZXMoZGF0YV90ICpkYXRhKQogCQkJCQkJICAgICBn YW1tYV9sdXQsIGdhbW1hX2x1dF9zaXplIC0gMSksCiAJCQkgICAgICAtRUlOVkFMKTsKIAkJaWd0 X2Fzc2VydF9lcShwaXBlX3NldF9wcm9wZXJ0eV9ibG9iKHBpcGUsIElHVF9DUlRDX0dBTU1BX0xV VCwKLQkJCQkJCSAgICAgZ2FtbWFfbHV0LCBnYW1tYV9sdXRfc2l6ZSArIHNpemVvZihzdHJ1Y3Qg X2RybV9jb2xvcl9sdXQpKSwKKwkJCQkJCSAgICAgZ2FtbWFfbHV0LCBnYW1tYV9sdXRfc2l6ZSAr IHNpemVvZihzdHJ1Y3QgZHJtX2NvbG9yX2x1dCkpLAogCQkJICAgICAgLUVJTlZBTCk7CiAJCWln dF9hc3NlcnRfZXEocGlwZV9zZXRfcHJvcGVydHlfYmxvYl9pZChwaXBlLCBJR1RfQ1JUQ19HQU1N QV9MVVQsIHBpcGUtPmNydGNfaWQpLAogCQkJICAgICAgLUVJTlZBTCk7CkBAIC0xMTM4LDE4ICsx MTIyLDE4IEBAIGludmFsaWRfY3RtX21hdHJpeF9zaXplcyhkYXRhX3QgKmRhdGEpCiAJaWYgKCFp Z3RfcGlwZV9vYmpfaGFzX3Byb3AocGlwZSwgSUdUX0NSVENfQ1RNKSkKIAkJcmV0dXJuOwogCi0J cHRyID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgX2RybV9jb2xvcl9jdG0pICogNCk7CisJcHRyID0g bWFsbG9jKHNpemVvZihzdHJ1Y3QgZHJtX2NvbG9yX2N0bSkgKiA0KTsKIAogCWlndF9hc3NlcnRf ZXEocGlwZV9zZXRfcHJvcGVydHlfYmxvYihwaXBlLCBJR1RfQ1JUQ19DVE0sIHB0ciwgMSksCiAJ CSAgICAgIC1FSU5WQUwpOwogCWlndF9hc3NlcnRfZXEocGlwZV9zZXRfcHJvcGVydHlfYmxvYihw aXBlLCBJR1RfQ1JUQ19DVE0sIHB0ciwKLQkJCQkJICAgICBzaXplb2Yoc3RydWN0IF9kcm1fY29s b3JfY3RtKSArIDEpLAorCQkJCQkgICAgIHNpemVvZihzdHJ1Y3QgZHJtX2NvbG9yX2N0bSkgKyAx KSwKIAkJICAgICAgLUVJTlZBTCk7CiAJaWd0X2Fzc2VydF9lcShwaXBlX3NldF9wcm9wZXJ0eV9i bG9iKHBpcGUsIElHVF9DUlRDX0NUTSwgcHRyLAotCQkJCQkgICAgIHNpemVvZihzdHJ1Y3QgX2Ry bV9jb2xvcl9jdG0pIC0gMSksCisJCQkJCSAgICAgc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfY3Rt KSAtIDEpLAogCQkgICAgICAtRUlOVkFMKTsKIAlpZ3RfYXNzZXJ0X2VxKHBpcGVfc2V0X3Byb3Bl cnR5X2Jsb2IocGlwZSwgSUdUX0NSVENfQ1RNLCBwdHIsCi0JCQkJCSAgICAgc2l6ZW9mKHN0cnVj dCBfZHJtX2NvbG9yX2N0bSkgKiAyKSwKKwkJCQkJICAgICBzaXplb2Yoc3RydWN0IGRybV9jb2xv cl9jdG0pICogMiksCiAJCSAgICAgIC1FSU5WQUwpOwogCWlndF9hc3NlcnRfZXEocGlwZV9zZXRf cHJvcGVydHlfYmxvYl9pZChwaXBlLCBJR1RfQ1JUQ19DVE0sIHBpcGUtPmNydGNfaWQpLAogCQkg ICAgICAtRUlOVkFMKTsKLS0gCjIuMTkuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pZ3QtZGV2