From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH i-g-t 3/3] lib/igt_dummyload: Introduce igt_spin_reset Date: Wed, 17 Apr 2019 18:28:34 +0300 Message-ID: <20190417152834.12705-3-mika.kuoppala@linux.intel.com> References: <20190417152834.12705-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id CDA8C6E06E for ; Wed, 17 Apr 2019 15:28:47 +0000 (UTC) In-Reply-To: <20190417152834.12705-1-mika.kuoppala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org TGliaWZ5IHJlc2V0dGluZyBhIHNwaW4gZm9yIHJldXNlLgoKQ2M6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWth Lmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2R1bW15bG9hZC5jICAgICAg ICAgICB8IDIwICsrKysrKysrKysrKysrKysrKysrCiBsaWIvaWd0X2R1bW15bG9hZC5oICAgICAg ICAgICB8ICAyICsrCiB0ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYyB8IDE5ICsrKystLS0t LS0tLS0tLS0tLS0KIHRlc3RzL2k5MTUvZ2VtX3N5bmMuYyAgICAgICAgIHwgMzQgKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25z KCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2R1bW15bG9hZC5jIGIv bGliL2lndF9kdW1teWxvYWQuYwppbmRleCBiOWQ1NDQ1MC4uOTAyMjM4MjggMTAwNjQ0Ci0tLSBh L2xpYi9pZ3RfZHVtbXlsb2FkLmMKKysrIGIvbGliL2lndF9kdW1teWxvYWQuYwpAQCAtMjY4LDYg KzI2OCw4IEBAIGVtaXRfcmVjdXJzaXZlX2JhdGNoKGlndF9zcGluX3QgKnNwaW4sCiAJb2JqW1ND UkFUQ0hdLmZsYWdzID0gRVhFQ19PQkpFQ1RfUElOTkVEOwogCW9ialtCQVRDSF0uZmxhZ3MgPSBF WEVDX09CSkVDVF9QSU5ORUQ7CiAKKwlzcGluLT5jbWRfc3BpbiA9ICpzcGluLT5iYXRjaDsKKwog CXJldHVybiBmZW5jZV9mZDsKIH0KIApAQCAtMzc0LDYgKzM3NiwyNCBAQCB2b2lkIGlndF9zcGlu X3NldF90aW1lb3V0KGlndF9zcGluX3QgKnNwaW4sIGludDY0X3QgbnMpCiAJc3Bpbi0+dGltZXIg PSB0aW1lcjsKIH0KIAorLyoqCisgKiBpZ3Rfc3Bpbl9yZXNldDoKKyAqIEBzcGluOiBzcGluIHN0 YXRlIGZyb20gaWd0X3NwaW5fbmV3KCkKKyAqCisgKiBSZXNldCB0aGUgc3RhdGUgb2Ygc3Bpbiwg YWxsb3dpbmcgaXRzIHJldXNlLgorICovCit2b2lkIGlndF9zcGluX3Jlc2V0KGlndF9zcGluX3Qg KnNwaW4pCit7CisJaWYgKCFzcGluKQorCQlyZXR1cm47CisKKwlpZiAoaWd0X3NwaW5faGFzX3Bv bGwoc3BpbikpCisJCXNwaW4tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOworCisJKnNw aW4tPmJhdGNoID0gc3Bpbi0+Y21kX3NwaW47CisJX19zeW5jX3N5bmNocm9uaXplKCk7Cit9CisK IC8qKgogICogaWd0X3NwaW5fZW5kOgogICogQHNwaW46IHNwaW4gc3RhdGUgZnJvbSBpZ3Rfc3Bp bl9uZXcoKQpkaWZmIC0tZ2l0IGEvbGliL2lndF9kdW1teWxvYWQuaCBiL2xpYi9pZ3RfZHVtbXls b2FkLmgKaW5kZXggZDY0ODIwODkuLmQ3YjFiZTkxIDEwMDY0NAotLS0gYS9saWIvaWd0X2R1bW15 bG9hZC5oCisrKyBiL2xpYi9pZ3RfZHVtbXlsb2FkLmgKQEAgLTM3LDYgKzM3LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgaWd0X3NwaW4gewogCXRpbWVyX3QgdGltZXI7CiAJc3RydWN0IGlndF9saXN0IGxp bms7CiAJdWludDMyX3QgKmJhdGNoOworCXVpbnQzMl90IGNtZF9zcGluOwogCWludCBvdXRfZmVu Y2U7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOwogCXN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKQEAgLTY4LDYgKzY5LDcgQEAgaWd0X3Nw aW5fZmFjdG9yeShpbnQgZmQsIGNvbnN0IHN0cnVjdCBpZ3Rfc3Bpbl9mYWN0b3J5ICpvcHRzKTsK IAlpZ3Rfc3Bpbl9mYWN0b3J5KGZkLCAmKChzdHJ1Y3QgaWd0X3NwaW5fZmFjdG9yeSl7X19WQV9B UkdTX199KSkKIAogdm9pZCBpZ3Rfc3Bpbl9zZXRfdGltZW91dChpZ3Rfc3Bpbl90ICpzcGluLCBp bnQ2NF90IG5zKTsKK3ZvaWQgaWd0X3NwaW5fcmVzZXQoaWd0X3NwaW5fdCAqc3Bpbik7CiB2b2lk IGlndF9zcGluX2VuZChpZ3Rfc3Bpbl90ICpzcGluKTsKIHZvaWQgaWd0X3NwaW5fZnJlZShpbnQg ZmQsIGlndF9zcGluX3QgKnNwaW4pOwogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9leGVj X2xhdGVuY3kuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jCmluZGV4IDZiN2RmYmMw Li4yY2ZiNzhiZiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKKysr IGIvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKQEAgLTczLDE5ICs3MywxNyBAQCBwb2xs X3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBjb25zdCBjaGFyICpuYW1lKQogCXVuc2lnbmVk IGxvbmcgY3ljbGVzOwogCWlndF9zcGluX3QgKnNwaW5bMl07CiAJdWludDY0X3QgZWxhcHNlZDsK LQl1aW50MzJfdCBjbWQ7CiAKIAlnZW1fcmVxdWlyZV9yaW5nKGZkLCByaW5nKTsKIAlpZ3RfcmVx dWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCByaW5nKSk7CiAKIAlzcGluWzBdID0gX19pZ3Rf c3Bpbl9mYWN0b3J5KGZkLCAmb3B0cyk7CiAJaWd0X2Fzc2VydChpZ3Rfc3Bpbl9oYXNfcG9sbChz cGluWzBdKSk7Ci0JY21kID0gKnNwaW5bMF0tPmJhdGNoOwogCiAJc3BpblsxXSA9IF9faWd0X3Nw aW5fZmFjdG9yeShmZCwgJm9wdHMpOwogCWlndF9hc3NlcnQoaWd0X3NwaW5faGFzX3BvbGwoc3Bp blsxXSkpOwogCi0JaWd0X2Fzc2VydChjbWQgPT0gKnNwaW5bMV0tPmJhdGNoKTsKKwlpZ3RfYXNz ZXJ0KCpzcGluWzBdLT5iYXRjaCA9PSAqc3BpblsxXS0+YmF0Y2gpOwogCiAJaWd0X3NwaW5fZW5k KHNwaW5bMF0pOwogCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3BpblsxXSk7CkBA IC05Niw4ICs5NCw4IEBAIHBvbGxfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGNvbnN0IGNo YXIgKm5hbWUpCiAJd2hpbGUgKChlbGFwc2VkID0gaWd0X25zZWNfZWxhcHNlZCgmdHYpKSA8IDJ1 bGwgPDwgMzApIHsKIAkJY29uc3QgdW5zaWduZWQgaW50IGlkeCA9IGN5Y2xlcysrICYgMTsKIAot CQkqc3BpbltpZHhdLT5iYXRjaCA9IGNtZDsKLQkJc3BpbltpZHhdLT5wb2xsW1NQSU5fUE9MTF9T VEFSVF9JRFhdID0gMDsKKwkJaWd0X3NwaW5fcmVzZXQoc3BpbltpZHhdKTsKKwogCQlnZW1fZXhl Y2J1ZihmZCwgJnNwaW5baWR4XS0+ZXhlY2J1Zik7CiAKIAkJaWd0X3NwaW5fZW5kKHNwaW5bIWlk eF0pOwpAQCAtNDE0LDE1ICs0MTIsNiBAQCBzdGF0aWMgdm9pZCBsYXRlbmN5X2Zyb21fcmluZyhp bnQgZmQsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBfX3JlYXJtX3NwaW4oaWd0X3NwaW5fdCAqc3Bp bikKLXsKLQljb25zdCB1aW50MzJfdCBtaV9hcmJfY2hrID0gMHg1IDw8IDIzOwotCi0gICAgICAg KnNwaW4tPmJhdGNoID0gbWlfYXJiX2NoazsKLSAgICAgICBzcGluLT5wb2xsW1NQSU5fUE9MTF9T VEFSVF9JRFhdID0gMDsKLSAgICAgICBfX3N5bmNfc3luY2hyb25pemUoKTsKLX0KLQogc3RhdGlj IHZvaWQKIF9fc3VibWl0X3NwaW4oaW50IGZkLCBpZ3Rfc3Bpbl90ICpzcGluLCB1bnNpZ25lZCBp bnQgZmxhZ3MpCiB7CkBAIC01NTcsNyArNTQ2LDcgQEAgcnRob2dfbGF0ZW5jeV9vbl9yaW5nKGlu dCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSwgY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgaW4K IAkJCQlpZiAobmVuZ2luZSA+IDEpCiAJCQkJCXVzbGVlcCgxMCpuZW5naW5lKTsKIAotCQkJCV9f cmVhcm1fc3BpbihzcGluKTsKKwkJCQlpZ3Rfc3Bpbl9yZXNldChzcGluKTsKIAogCQkJCWlndF9u c2VjX2VsYXBzZWQoJnRzKTsKIAkJCQlfX3N1Ym1pdF9zcGluKGZkLCBzcGluLCBlbmdpbmUpOwpk aWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fc3luYy5jIGIvdGVzdHMvaTkxNS9nZW1fc3luYy5j CmluZGV4IGYxN2VjZDBiLi44YzVhYWExNCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fc3lu Yy5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYwpAQCAtMjA5LDcgKzIwOSw2IEBAIHdha2V1 cF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIGludCB3bGVuKQogCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7CiAJCWRvdWJsZSBlbmQsIHRo aXMsIGVsYXBzZWQsIG5vdywgYmFzZWxpbmU7CiAJCXVuc2lnbmVkIGxvbmcgY3ljbGVzOwotCQl1 aW50MzJfdCBjbWQ7CiAJCWlndF9zcGluX3QgKnNwaW47CiAKIAkJbWVtc2V0KCZvYmplY3QsIDAs IHNpemVvZihvYmplY3QpKTsKQEAgLTIyNiw3ICsyMjUsNiBAQCB3YWtldXBfcmluZyhpbnQgZmQs IHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJCQkgICAgICAuZmxhZ3Mg PSAoSUdUX1NQSU5fUE9MTF9SVU4gfAogCQkJCQkJSUdUX1NQSU5fRkFTVCkpOwogCQlpZ3RfYXNz ZXJ0KGlndF9zcGluX2hhc19wb2xsKHNwaW4pKTsKLQkJY21kID0gKnNwaW4tPmJhdGNoOwogCiAJ CWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAKQEAgLTIzOCw4ICsyMzYsOCBAQCB3YWtldXBf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJCWVs YXBzZWQgPSAwOwogCQkJY3ljbGVzID0gMDsKIAkJCWRvIHsKLQkJCQkqc3Bpbi0+YmF0Y2ggPSBj bWQ7Ci0JCQkJc3Bpbi0+cG9sbFtTUElOX1BPTExfU1RBUlRfSURYXSA9IDA7CisJCQkJaWd0X3Nw aW5fcmVzZXQoc3Bpbik7CisKIAkJCQlnZW1fZXhlY2J1ZihmZCwgJnNwaW4tPmV4ZWNidWYpOwog CQkJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAKQEAgLTI2Miw4ICsy NjAsOCBAQCB3YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBp bnQgd2xlbikKIAkJZWxhcHNlZCA9IDA7CiAJCWN5Y2xlcyA9IDA7CiAJCWRvIHsKLQkJCSpzcGlu LT5iYXRjaCA9IGNtZDsKLQkJCXNwaW4tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOwor CQkJaWd0X3NwaW5fcmVzZXQoc3Bpbik7CisKIAkJCWdlbV9leGVjYnVmKGZkLCAmc3Bpbi0+ZXhl Y2J1Zik7CiAJCQlpZ3Rfc3Bpbl9idXN5d2FpdF91bnRpbF9zdGFydGVkKHNwaW4pOwogCkBAIC0z MjEsMTcgKzMxOSwxNCBAQCBzdGF0aWMgdm9pZCBhY3RpdmVfcmluZyhpbnQgZmQsIHVuc2lnbmVk IHJpbmcsIGludCB0aW1lb3V0KQogCQlkb3VibGUgc3RhcnQsIGVuZCwgZWxhcHNlZDsKIAkJdW5z aWduZWQgbG9uZyBjeWNsZXM7CiAJCWlndF9zcGluX3QgKnNwaW5bMl07Ci0JCXVpbnQzMl90IGNt ZDsKIAogCQlzcGluWzBdID0gX19pZ3Rfc3Bpbl9uZXcoZmQsCiAJCQkJCSAuZW5naW5lID0gcmlu ZywKIAkJCQkJIC5mbGFncyA9IElHVF9TUElOX0ZBU1QpOwotCQljbWQgPSAqc3BpblswXS0+YmF0 Y2g7CiAKIAkJc3BpblsxXSA9IF9faWd0X3NwaW5fbmV3KGZkLAogCQkJCQkgLmVuZ2luZSA9IHJp bmcsCiAJCQkJCSAuZmxhZ3MgPSBJR1RfU1BJTl9GQVNUKTsKLQkJaWd0X2Fzc2VydCgqc3Bpblsx XS0+YmF0Y2ggPT0gY21kKTsKIAogCQlzdGFydCA9IGdldHRpbWUoKTsKIAkJZW5kID0gc3RhcnQg KyB0aW1lb3V0OwpAQCAtMzQzLDcgKzMzOCw4IEBAIHN0YXRpYyB2b2lkIGFjdGl2ZV9yaW5nKGlu dCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQpCiAJCQkJaWd0X3NwaW5fZW5kKHMpOwog CQkJCWdlbV9zeW5jKGZkLCBzLT5oYW5kbGUpOwogCi0JCQkJKnMtPmJhdGNoID0gY21kOworCQkJ CWlndF9zcGluX3Jlc2V0KHMpOworCiAJCQkJZ2VtX2V4ZWNidWYoZmQsICZzLT5leGVjYnVmKTsK IAkJCX0KIAkJCWN5Y2xlcyArPSAxMDI0OwpAQCAtMzkzLDcgKzM4OSw2IEBAIGFjdGl2ZV93YWtl dXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJ ZG91YmxlIGVuZCwgdGhpcywgZWxhcHNlZCwgbm93LCBiYXNlbGluZTsKIAkJdW5zaWduZWQgbG9u ZyBjeWNsZXM7CiAJCWlndF9zcGluX3QgKnNwaW5bMl07Ci0JCXVpbnQzMl90IGNtZDsKIAogCQlt ZW1zZXQoJm9iamVjdCwgMCwgc2l6ZW9mKG9iamVjdCkpOwogCQlvYmplY3QuaGFuZGxlID0gZ2Vt X2NyZWF0ZShmZCwgNDA5Nik7CkBAIC00MDksNyArNDA0LDYgQEAgYWN0aXZlX3dha2V1cF9yaW5n KGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIGludCB3bGVuKQogCQkJCQkgLmZs YWdzID0gKElHVF9TUElOX1BPTExfUlVOIHwKIAkJCQkJCSAgIElHVF9TUElOX0ZBU1QpKTsKIAkJ aWd0X2Fzc2VydChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluWzBdKSk7Ci0JCWNtZCA9ICpzcGluWzBd LT5iYXRjaDsKIAogCQlzcGluWzFdID0gX19pZ3Rfc3Bpbl9uZXcoZmQsCiAJCQkJCSAuZW5naW5l ID0gZXhlY2J1Zi5mbGFncywKQEAgLTQyMyw4ICs0MTcsOCBAQCBhY3RpdmVfd2FrZXVwX3Jpbmco aW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCwgaW50IHdsZW4pCiAJCWdlbV9zeW5j KGZkLCBvYmplY3QuaGFuZGxlKTsKIAogCQlmb3IgKGludCB3YXJtdXAgPSAwOyB3YXJtdXAgPD0g MTsgd2FybXVwKyspIHsKLQkJCSpzcGluWzBdLT5iYXRjaCA9IGNtZDsKLQkJCXNwaW5bMF0tPnBv bGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOworCQkJaWd0X3NwaW5fcmVzZXQoc3BpblswXSk7 CisKIAkJCWdlbV9leGVjYnVmKGZkLCAmc3BpblswXS0+ZXhlY2J1Zik7CiAKIAkJCWVuZCA9IGdl dHRpbWUoKSArIHRpbWVvdXQvMTAuOwpAQCAtNDMzLDggKzQyNyw4IEBAIGFjdGl2ZV93YWtldXBf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJCWRv IHsKIAkJCQlpZ3Rfc3Bpbl9idXN5d2FpdF91bnRpbF9zdGFydGVkKHNwaW5bMF0pOwogCi0JCQkJ KnNwaW5bMV0tPmJhdGNoID0gY21kOwotCQkJCXNwaW5bMV0tPnBvbGxbU1BJTl9QT0xMX1NUQVJU X0lEWF0gPSAwOworCQkJCWlndF9zcGluX3Jlc2V0KHNwaW5bMV0pOworCiAJCQkJZ2VtX2V4ZWNi dWYoZmQsICZzcGluWzFdLT5leGVjYnVmKTsKIAogCQkJCXRoaXMgPSBnZXR0aW1lKCk7CkBAIC00 NTQsOCArNDQ4LDggQEAgYWN0aXZlX3dha2V1cF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywg aW50IHRpbWVvdXQsIGludCB3bGVuKQogCQkJIG5hbWVzW2NoaWxkICUgbnVtX2VuZ2luZXNdID8g IiBiIiA6ICJCIiwKIAkJCSBjeWNsZXMsIGVsYXBzZWQqMWU2L2N5Y2xlcyk7CiAKLQkJKnNwaW5b MF0tPmJhdGNoID0gY21kOwotCQlzcGluWzBdLT5wb2xsW1NQSU5fUE9MTF9TVEFSVF9JRFhdID0g MDsKKwkJaWd0X3NwaW5fcmVzZXQoc3BpblswXSk7CisKIAkJZ2VtX2V4ZWNidWYoZmQsICZzcGlu WzBdLT5leGVjYnVmKTsKIAogCQllbmQgPSBnZXR0aW1lKCkgKyB0aW1lb3V0OwpAQCAtNDY3LDgg KzQ2MSw4IEBAIGFjdGl2ZV93YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0 aW1lb3V0LCBpbnQgd2xlbikKIAkJCWZvciAoaW50IG4gPSAwOyBuIDwgd2xlbjsgbisrKQogCQkJ CWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAKLQkJCSpzcGluWzFdLT5iYXRjaCA9IGNtZDsK LQkJCXNwaW5bMV0tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOworCQkJaWd0X3NwaW5f cmVzZXQoc3BpblsxXSk7CisKIAkJCWdlbV9leGVjYnVmKGZkLCAmc3BpblsxXS0+ZXhlY2J1Zik7 CiAKIAkJCXRoaXMgPSBnZXR0aW1lKCk7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==