From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id E4EC26E2C2 for ; Tue, 23 Jan 2018 12:56:53 +0000 (UTC) From: Maarten Lankhorst Date: Tue, 23 Jan 2018 13:56:35 +0100 Message-Id: <20180123125642.58698-2-maarten.lankhorst@linux.intel.com> In-Reply-To: <20180123125642.58698-1-maarten.lankhorst@linux.intel.com> References: <20180123125642.58698-1-maarten.lankhorst@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t 1/8] lib/igt_fb: Add igt_put_cairo_ctx as counter to igt_get_cairo_ctx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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: VGhpcyB3aWxsIGFsbG93IHN1cHBvcnQgZm9yIE5WMTIgaW4gdGhlIGZ1dHVyZSwgd2hlcmUgaWd0 X2dldF9jYWlyb19jdHgKd2lsbCByZXR1cm4gYSBSR0IgaW1hZ2UgdG8gZHJhdyB3aXRoLCB3aGlj aCB3aWxsIGJlIGNvbnZlcnRlZCBpbgppZ3RfcHV0X2NhaXJvX2N0eCBzbyB0ZXN0cyBkb24ndCBo YXZlIHRvIGFkZCBzcGVjaWFsIHN1cHBvcnQgZm9yIE5WMTIuCgpUaGlzIGlzIHRoZSBzYW1lIGFz IGNhaXJvX2Rlc3Ryb3kgKyBjaGVja2luZyBmb3IgZXJyb3JzLCBidXQgbm90IGFsbAp0ZXN0cyB1 c2UgdGhpcyBjb3JyZWN0bHkgc28gaXQncyBiZXR0ZXIgdG8gaGF2ZSBhIHNpbmdsZSBoYW5kbGVy IGZvciBpdC4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmto b3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogbGliL2lndF9mYi5jICAgICAgICAgICAgICAgICAg ICAgIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogbGliL2lndF9mYi5o ICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogdGVzdHMva21zX2Nodl9jdXJzb3JfZmFpbC5j ICAgICAgIHwgIDMgKy0tCiB0ZXN0cy9rbXNfY29sb3IuYyAgICAgICAgICAgICAgICAgfCAgNCAr Ky0tCiB0ZXN0cy9rbXNfY29uY3VycmVudC5jICAgICAgICAgICAgfCAgMyArLS0KIHRlc3RzL2tt c19jcnRjX2JhY2tncm91bmRfY29sb3IuYyB8ICAyICstCiB0ZXN0cy9rbXNfY3Vyc29yX2NyYy5j ICAgICAgICAgICAgfCAyMyArKysrKysrKysrKysrKysrKysrLS0tLQogdGVzdHMva21zX2ZsaXAu YyAgICAgICAgICAgICAgICAgIHwgIDMgKy0tCiB0ZXN0cy9rbXNfbW1hcF93cml0ZV9jcmMuYyAg ICAgICAgfCAgNCArKy0tCiB0ZXN0cy9rbXNfcGxhbmUuYyAgICAgICAgICAgICAgICAgfCAgOSAr KystLS0tLS0KIHRlc3RzL2ttc19wbGFuZV9tdWx0aXBsZS5jICAgICAgICB8ICAzICstLQogdGVz dHMva21zX3BsYW5lX3NjYWxpbmcuYyAgICAgICAgIHwgIDMgKy0tCiB0ZXN0cy9rbXNfcHNyX3Np bmtfY3JjLmMgICAgICAgICAgfCAgMiArLQogdGVzdHMva21zX3JlbmRlci5jICAgICAgICAgICAg ICAgIHwgIDIgKy0KIHRlc3RzL2ttc19yb3RhdGlvbl9jcmMuYyAgICAgICAgICB8ICAyICstCiB0 ZXN0cy9rbXNfc2V0bW9kZS5jICAgICAgICAgICAgICAgfCAgMiArLQogdGVzdHMvdGVzdGRpc3Bs YXkuYyAgICAgICAgICAgICAgIHwgIDggKystLS0tLS0KIDE3IGZpbGVzIGNoYW5nZWQsIDYzIGlu c2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBi L2xpYi9pZ3RfZmIuYwppbmRleCBkZWQ2MzllODMzZjEuLjM5YTgzYmFlMTc4YSAxMDA2NDQKLS0t IGEvbGliL2lndF9mYi5jCisrKyBiL2xpYi9pZ3RfZmIuYwpAQCAtNzcxLDggKzc3MSw3IEBAIHVu c2lnbmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LAogCiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwogCWlndF9wYWludF9jb2xv cihjciwgMCwgMCwgd2lkdGgsIGhlaWdodCwgciwgZywgYik7Ci0JaWd0X2Fzc2VydChjYWlyb19z dGF0dXMoY3IpID09IDApOwotCWNhaXJvX2Rlc3Ryb3koY3IpOworCWlndF9wdXRfY2Fpcm9fY3R4 KGZkLCBmYiwgY3IpOwogCiAJcmV0dXJuIGZiX2lkOwogfQpAQCAtODA5LDggKzgwOCw3IEBAIHVu c2lnbmVkIGludCBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsCiAKIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGZkLCBmYik7CiAJaWd0X3BhaW50X3Rl c3RfcGF0dGVybihjciwgd2lkdGgsIGhlaWdodCk7Ci0JaWd0X2Fzc2VydChjYWlyb19zdGF0dXMo Y3IpID09IDApOwotCWNhaXJvX2Rlc3Ryb3koY3IpOworCWlndF9wdXRfY2Fpcm9fY3R4KGZkLCBm YiwgY3IpOwogCiAJcmV0dXJuIGZiX2lkOwogfQpAQCAtODUzLDggKzg1MSw3IEBAIHVuc2lnbmVk IGludCBpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsCiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwogCWlndF9wYWludF9jb2xv cihjciwgMCwgMCwgd2lkdGgsIGhlaWdodCwgciwgZywgYik7CiAJaWd0X3BhaW50X3Rlc3RfcGF0 dGVybihjciwgd2lkdGgsIGhlaWdodCk7Ci0JaWd0X2Fzc2VydChjYWlyb19zdGF0dXMoY3IpID09 IDApOwotCWNhaXJvX2Rlc3Ryb3koY3IpOworCWlndF9wdXRfY2Fpcm9fY3R4KGZkLCBmYiwgY3Ip OwogCiAJcmV0dXJuIGZiX2lkOwogfQpAQCAtODk3LDggKzg5NCw3IEBAIHVuc2lnbmVkIGludCBp Z3RfY3JlYXRlX2ltYWdlX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAogCiAJY3Ig PSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwogCWlndF9wYWludF9pbWFnZShjciwgZmlsZW5h bWUsIDAsIDAsIHdpZHRoLCBoZWlnaHQpOwotCWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNyKSA9 PSAwKTsKLQljYWlyb19kZXN0cm95KGNyKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChmZCwgZmIsIGNy KTsKIAogCXJldHVybiBmYl9pZDsKIH0KQEAgLTk5OCw3ICs5OTQsNyBAQCB1bnNpZ25lZCBpbnQg aWd0X2NyZWF0ZV9zdGVyZW9fZmIoaW50IGRybV9mZCwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAog CQkJbGF5b3V0LnJpZ2h0LngsIGxheW91dC5yaWdodC55LAogCQkJbGF5b3V0LnJpZ2h0LndpZHRo LCBsYXlvdXQucmlnaHQuaGVpZ2h0KTsKIAotCWNhaXJvX2Rlc3Ryb3koY3IpOworCWlndF9wdXRf Y2Fpcm9fY3R4KGRybV9mZCwgJmZiLCBjcik7CiAKIAlyZXR1cm4gZmJfaWQ7CiB9CkBAIC0xMjA2 LDcgKzEyMDIsNyBAQCBjYWlyb19zdXJmYWNlX3QgKmlndF9nZXRfY2Fpcm9fc3VyZmFjZShpbnQg ZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQogICoKICAqIFRoaXMgaW5pdGlhbGl6ZXMgYSBjYWlybyBz dXJmYWNlIGZvciBAZmIgYW5kIHRoZW4gYWxsb2NhdGVzIGEgZHJhd2luZyBjb250ZXh0CiAgKiBm b3IgaXQuIFRoZSByZXR1cm4gY2Fpcm8gZHJhd2luZyBjb250ZXh0IHNob3VsZCBiZSByZWxlYXNl ZCBieSBjYWxsaW5nCi0gKiBjYWlyb19kZXN0cm95KCkuIFRoaXMgYWxzbyBzZXRzIGEgZGVmYXVs dCBmb250IGZvciBkcmF3aW5nIHRleHQgb24KKyAqIGlndF9wdXRfY2Fpcm9fY3R4KCkuIFRoaXMg YWxzbyBzZXRzIGEgZGVmYXVsdCBmb250IGZvciBkcmF3aW5nIHRleHQgb24KICAqIGZyYW1lYnVm ZmVycy4KICAqCiAgKiBSZXR1cm5zOgpAQCAtMTIyOSw2ICsxMjI1LDI0IEBAIGNhaXJvX3QgKmln dF9nZXRfY2Fpcm9fY3R4KGludCBmZCwgc3RydWN0IGlndF9mYiAqZmIpCiAJcmV0dXJuIGNyOwog fQogCisvKioKKyAqIGlndF9wdXRfY2Fpcm9fY3R4OgorICogQGZkOiBvcGVuIGk5MTUgZHJtIGZp bGUgZGVzY3JpcHRvcgorICogQGZiOiBwb2ludGVyIHRvIGFuICNpZ3RfZmIgc3RydWN0dXJlCisg KiBAY3I6IHRoZSBjYWlybyBjb250ZXh0IHJldHVybmVkIGJ5IGlndF9nZXRfY2Fpcm9fY3R4Lgor ICoKKyAqIFRoaXMgcmVsZWFzZXMgdGhlIGNhaXJvIHN1cmZhY2UgQGNyIHJldHVybmVkIGJ5IGln dF9nZXRfY2Fpcm9fY3R4KCkKKyAqIGZvciBAZmIsIGFuZCB3cml0ZXMgdGhlIGNoYW5nZXMgb3V0 IHRvIHRoZSBmcmFtZWJ1ZmZlciBpZiBjYWlybyBkb2Vzbid0CisgKiBoYXZlIG5hdGl2ZSBzdXBw b3J0IGZvciB0aGUgZm9ybWF0LgorICovCit2b2lkIGlndF9wdXRfY2Fpcm9fY3R4KGludCBmZCwg c3RydWN0IGlndF9mYiAqZmIsIGNhaXJvX3QgKmNyKQoreworCWNhaXJvX3N0YXR1c190IHJldCA9 IGNhaXJvX3N0YXR1cyhjcik7CisJaWd0X2Fzc2VydF9mKHJldCA9PSBDQUlST19TVEFUVVNfU1VD Q0VTUywgIkNhaXJvIGZhaWxlZCB0byBkcmF3IHdpdGggJXNcbiIsIGNhaXJvX3N0YXR1c190b19z dHJpbmcocmV0KSk7CisKKwljYWlyb19kZXN0cm95KGNyKTsKK30KKwogLyoqCiAgKiBpZ3RfcmVt b3ZlX2ZiOgogICogQGZkOiBvcGVuIGk5MTUgZHJtIGZpbGUgZGVzY3JpcHRvcgpkaWZmIC0tZ2l0 IGEvbGliL2lndF9mYi5oIGIvbGliL2lndF9mYi5oCmluZGV4IGQzMGE3MzQwYzc2ZS4uMzAwNGYw NjU2MDI5IDEwMDY0NAotLS0gYS9saWIvaWd0X2ZiLmgKKysrIGIvbGliL2lndF9mYi5oCkBAIC0x MzEsNiArMTMxLDcgQEAgdWludDY0X3QgaWd0X2ZiX3RpbGluZ190b19tb2QodWludDY0X3QgdGls aW5nKTsKIGNhaXJvX3N1cmZhY2VfdCAqaWd0X2dldF9jYWlyb19zdXJmYWNlKGludCBmZCwgc3Ry dWN0IGlndF9mYiAqZmIpOwogY2Fpcm9fc3VyZmFjZV90ICppZ3RfY2Fpcm9faW1hZ2Vfc3VyZmFj ZV9jcmVhdGVfZnJvbV9wbmcoY29uc3QgY2hhciAqZmlsZW5hbWUpOwogY2Fpcm9fdCAqaWd0X2dl dF9jYWlyb19jdHgoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYik7Cit2b2lkIGlndF9wdXRfY2Fp cm9fY3R4KGludCBmZCwgc3RydWN0IGlndF9mYiAqZmIsIGNhaXJvX3QgKmNyKTsKIHZvaWQgaWd0 X3BhaW50X2NvbG9yKGNhaXJvX3QgKmNyLCBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwKIAkJ CSBkb3VibGUgciwgZG91YmxlIGcsIGRvdWJsZSBiKTsKIHZvaWQgaWd0X3BhaW50X2NvbG9yX2Fs cGhhKGNhaXJvX3QgKmNyLCBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwKZGlmZiAtLWdpdCBh L3Rlc3RzL2ttc19jaHZfY3Vyc29yX2ZhaWwuYyBiL3Rlc3RzL2ttc19jaHZfY3Vyc29yX2ZhaWwu YwppbmRleCAzZTc0ZGYxMTQyZGEuLjFiY2Y4NDY5MDg4ZSAxMDA2NDQKLS0tIGEvdGVzdHMva21z X2Nodl9jdXJzb3JfZmFpbC5jCisrKyBiL3Rlc3RzL2ttc19jaHZfY3Vyc29yX2ZhaWwuYwpAQCAt ODcsOCArODcsNyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfY3Vyc29yX2ZiKGRhdGFfdCAqZGF0YSwg aW50IGN1cl93LCBpbnQgY3VyX2gpCiAJZWxzZQogCQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoY3Is IDAsIDAsIGRhdGEtPmZiLndpZHRoLCBkYXRhLT5mYi5oZWlnaHQsCiAJCQkJICAgICAgMC4wLCAw LjAsIDAuMCwgMC4wKTsKLQlpZ3RfYXNzZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7Ci0JY2Fp cm9fZGVzdHJveShjcik7CisJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ ZmIsIGNyKTsKIH0KIAogc3RhdGljIHZvaWQgY3Vyc29yX21vdmUoZGF0YV90ICpkYXRhLCBpbnQg eCwgaW50IHksIGludCBpKQpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NvbG9yLmMgYi90ZXN0cy9r bXNfY29sb3IuYwppbmRleCAzYjBhODg4MDJjOTMuLmRjNGZjY2UyNDFiZSAxMDA2NDQKLS0tIGEv dGVzdHMva21zX2NvbG9yLmMKKysrIGIvdGVzdHMva21zX2NvbG9yLmMKQEAgLTg2LDcgKzg2LDcg QEAgc3RhdGljIHZvaWQgcGFpbnRfZ3JhZGllbnRfcmVjdGFuZ2xlcyhkYXRhX3QgKmRhdGEsCiAJ CQkJCSAgICAgICBjb2xvcnNbaV0uYik7CiAJfQogCi0JY2Fpcm9fZGVzdHJveShjcik7CisJaWd0 X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCBmYiwgY3IpOwogfQogCiBzdGF0aWMgdm9pZCBw YWludF9yZWN0YW5nbGVzKGRhdGFfdCAqZGF0YSwKQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMg dm9pZCBwYWludF9yZWN0YW5nbGVzKGRhdGFfdCAqZGF0YSwKIAkJCQljb2xvcnNbaV0uciwgY29s b3JzW2ldLmcsIGNvbG9yc1tpXS5iKTsKIAl9CiAKLQljYWlyb19kZXN0cm95KGNyKTsKKwlpZ3Rf cHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsIGZiLCBjcik7CiB9CiAKIHN0YXRpYyBkb3VibGUg KmdlbmVyYXRlX3RhYmxlKHVpbnQzMl90IGx1dF9zaXplLCBkb3VibGUgZXhwKQpkaWZmIC0tZ2l0 IGEvdGVzdHMva21zX2NvbmN1cnJlbnQuYyBiL3Rlc3RzL2ttc19jb25jdXJyZW50LmMKaW5kZXgg M2IyZTYwMTUwNWM0Li4yODNhY2Y4YzhhN2UgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19jb25jdXJy ZW50LmMKKysrIGIvdGVzdHMva21zX2NvbmN1cnJlbnQuYwpAQCAtMTQ4LDggKzE0OCw3IEBAIGNy ZWF0ZV9mYl9mb3JfbW9kZV9wb3NpdGlvbihkYXRhX3QgKmRhdGEsIGRybU1vZGVNb2RlSW5mbyAq bW9kZSwKIAkJCQlyZWN0X3dbaV0sIHJlY3RfaFtpXSwgMC4wLCAwLjAsIDAuMCk7CiAJfQogCi0J aWd0X2Fzc2VydChjYWlyb19zdGF0dXMoY3IpID09IDApOwotCWNhaXJvX2Rlc3Ryb3koY3IpOwor CWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiW3ByaW1hcnktPmluZGV4 XSwgY3IpOwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NydGNfYmFj a2dyb3VuZF9jb2xvci5jIGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jCmluZGV4 IGU5OWM2N2JkMTg1ZS4uNjQwN2UxOWJhZmNlIDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfY3J0Y19i YWNrZ3JvdW5kX2NvbG9yLmMKKysrIGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5j CkBAIC02OSw3ICs2OSw3IEBAIHBhaW50X2JhY2tncm91bmQoZGF0YV90ICpkYXRhLCBzdHJ1Y3Qg aWd0X2ZiICpmYiwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAogCWIgPSAoZG91YmxlKSAoKGJhY2tn cm91bmQgJiAweEZGMDAwMCkgPj4gMTYpIC8gMjU1LjA7CiAJaWd0X3BhaW50X2NvbG9yX2FscGhh KGNyLCAwLCAwLCB3LCBoLCByLCBnLCBiLCBhbHBoYSk7CiAKLQljYWlyb19kZXN0cm95KGNyKTsK KwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRhLT5mYiwgY3IpOwogfQogCiBz dGF0aWMgdm9pZCBwcmVwYXJlX2NydGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1 dCwgZW51bSBwaXBlIHBpcGUsCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY3Vyc29yX2NyYy5jIGIv dGVzdHMva21zX2N1cnNvcl9jcmMuYwppbmRleCA0YzVlMDBjMDc0YTUuLmExNjQ4MzllZTJjYyAx MDA2NDQKLS0tIGEvdGVzdHMva21zX2N1cnNvcl9jcmMuYworKysgYi90ZXN0cy9rbXNfY3Vyc29y X2NyYy5jCkBAIC0xNDEsMTMgKzE0MSwxNiBAQCBzdGF0aWMgdm9pZCBkb19zaW5nbGVfdGVzdChk YXRhX3QgKmRhdGEsIGludCB4LCBpbnQgeSkKIAlpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmMgPSBk YXRhLT5waXBlX2NyYzsKIAlpZ3RfY3JjX3QgY3JjLCByZWZfY3JjOwogCWlndF9wbGFuZV90ICpj dXJzb3I7Ci0JY2Fpcm9fdCAqY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZk YXRhLT5wcmltYXJ5X2ZiKTsKKwljYWlyb190ICpjcjsKIAlpbnQgcmV0ID0gMDsKIAogCWlndF9w cmludF9hY3Rpdml0eSgpOwogCiAJLyogSGFyZHdhcmUgdGVzdCAqLworCWNyID0gaWd0X2dldF9j YWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+cHJpbWFyeV9mYik7CiAJaWd0X3BhaW50X3Rl c3RfcGF0dGVybihjciwgZGF0YS0+c2NyZWVudywgZGF0YS0+c2NyZWVuaCk7CisJaWd0X3B1dF9j YWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+cHJpbWFyeV9mYiwgY3IpOworCiAJY3Vyc29y X2VuYWJsZShkYXRhKTsKIAljdXJzb3IgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEt Pm91dHB1dCwgRFJNX1BMQU5FX1RZUEVfQ1VSU09SKTsKIAlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9u KGN1cnNvciwgeCwgeSk7CkBAIC0xOTAsNyArMTkzLDkgQEAgc3RhdGljIHZvaWQgZG9fc2luZ2xl X3Rlc3QoZGF0YV90ICpkYXRhLCBpbnQgeCwgaW50IHkpCiAJaWd0X2Rpc3BsYXlfY29tbWl0KGRp c3BsYXkpOwogCiAJLyogTm93IHJlbmRlciB0aGUgc2FtZSBpbiBzb2Z0d2FyZSBhbmQgY29sbGVj dCBjcmMgKi8KKwljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnBy aW1hcnlfZmIpOwogCWRyYXdfY3Vyc29yKGNyLCB4LCB5LCBkYXRhLT5jdXJ3LCBkYXRhLT5jdXJo KTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiLCBj cik7CiAJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOwogCiAJaWd0X3dhaXRfZm9yX3ZibGFu ayhkYXRhLT5kcm1fZmQsIGRhdGEtPnBpcGUpOwpAQCAtMTk4LDIwICsyMDMsMjUgQEAgc3RhdGlj IHZvaWQgZG9fc2luZ2xlX3Rlc3QoZGF0YV90ICpkYXRhLCBpbnQgeCwgaW50IHkpCiAJaWd0X2Fz c2VydF9jcmNfZXF1YWwoJmNyYywgJnJlZl9jcmMpOwogCiAJLyogQ2xlYXIgc2NyZWVuIGFmdGVy d2FyZHMgKi8KKwljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnBy aW1hcnlfZmIpOwogCWlndF9wYWludF9jb2xvcihjciwgMCwgMCwgZGF0YS0+c2NyZWVudywgZGF0 YS0+c2NyZWVuaCwgMC4wLCAwLjAsIDAuMCk7CisJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJt X2ZkLCAmZGF0YS0+cHJpbWFyeV9mYiwgY3IpOwogfQogCiBzdGF0aWMgdm9pZCBkb19mYWlsX3Rl c3QoZGF0YV90ICpkYXRhLCBpbnQgeCwgaW50IHksIGludCBleHBlY3QpCiB7CiAJaWd0X2Rpc3Bs YXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OwogCWlndF9wbGFuZV90ICpjdXJzb3I7Ci0J Y2Fpcm9fdCAqY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5wcmlt YXJ5X2ZiKTsKKwljYWlyb190ICpjcjsKIAlpbnQgcmV0OwogCiAJaWd0X3ByaW50X2FjdGl2aXR5 KCk7CiAKIAkvKiBIYXJkd2FyZSB0ZXN0ICovCisJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRh LT5kcm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiKTsKIAlpZ3RfcGFpbnRfdGVzdF9wYXR0ZXJuKGNy LCBkYXRhLT5zY3JlZW53LCBkYXRhLT5zY3JlZW5oKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRh LT5kcm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiLCBjcik7CisKIAljdXJzb3JfZW5hYmxlKGRhdGEp OwogCWN1cnNvciA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LCBEUk1f UExBTkVfVFlQRV9DVVJTT1IpOwogCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oY3Vyc29yLCB4LCB5 KTsKQEAgLTQ0Niw3ICs0NTYsNyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfY3Vyc29yX2ZiKGRhdGFf dCAqZGF0YSwgaW50IGN1cl93LCBpbnQgY3VyX2gpCiAKIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4 KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiKTsKIAlkcmF3X2N1cnNvcihjciwgMCwgMCwgY3VyX3cs IGN1cl9oKTsKLQlpZ3RfYXNzZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7CisJaWd0X3B1dF9j YWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmIsIGNyKTsKIH0KIAogc3RhdGljIGJvb2wg aGFzX25vbnNxdWFyZV9jdXJzb3JzKHVpbnQzMl90IGRldmlkKQpAQCAtNDg2LDYgKzQ5Niw3IEBA IHN0YXRpYyB2b2lkIHRlc3RfY3Vyc29yX3NpemUoZGF0YV90ICpkYXRhKQogCS8qIFVzZSBhIHNv bGlkIHdoaXRlIHJlY3RhbmdsZSBhcyB0aGUgY3Vyc29yICovCiAJY3IgPSBpZ3RfZ2V0X2NhaXJv X2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYik7CiAJaWd0X3BhaW50X2NvbG9yX2FscGhhKGNy LCAwLCAwLCBjdXJzb3JfbWF4X3NpemUsIGN1cnNvcl9tYXhfc2l6ZSwgMS4wLCAxLjAsIDEuMCwg MS4wKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYiwgY3IpOwog CiAJLyogSGFyZHdhcmUgdGVzdCBsb29wICovCiAJY3Vyc29yX2VuYWJsZShkYXRhKTsKQEAgLTUw MSwxNiArNTEyLDIwIEBAIHN0YXRpYyB2b2lkIHRlc3RfY3Vyc29yX3NpemUoZGF0YV90ICpkYXRh KQogCX0KIAljdXJzb3JfZGlzYWJsZShkYXRhKTsKIAkvKiBTb2Z0d2FyZSB0ZXN0IGxvb3AgKi8K LQljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnByaW1hcnlfZmIp OwogCWZvciAoaSA9IDAsIHNpemUgPSBjdXJzb3JfbWF4X3NpemU7IHNpemUgPj0gNjQ7IHNpemUg Lz0gMiwgaSsrKSB7CiAJCS8qIE5vdyByZW5kZXIgdGhlIHNhbWUgaW4gc29mdHdhcmUgYW5kIGNv bGxlY3QgY3JjICovCisJCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0 YS0+cHJpbWFyeV9mYik7CiAJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgc2l6ZSwg c2l6ZSwgMS4wLCAxLjAsIDEuMCwgMS4wKTsKKwkJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJt X2ZkLCAmZGF0YS0+cHJpbWFyeV9mYiwgY3IpOworCiAJCWlndF9kaXNwbGF5X2NvbW1pdChkaXNw bGF5KTsKIAkJaWd0X3dhaXRfZm9yX3ZibGFuayhkYXRhLT5kcm1fZmQsIGRhdGEtPnBpcGUpOwog CQlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMocGlwZV9jcmMsICZyZWZfY3JjKTsKIAkJLyogQ2xl YXIgc2NyZWVuIGFmdGVyd2FyZHMgKi8KKwkJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5k cm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiKTsKIAkJaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCBk YXRhLT5zY3JlZW53LCBkYXRhLT5zY3JlZW5oLAogCQkJCTAuMCwgMC4wLCAwLjApOworCQlpZ3Rf cHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiLCBjcik7CiAJCWln dF9hc3NlcnRfY3JjX2VxdWFsKCZjcmNbaV0sICZyZWZfY3JjKTsKIAl9CiB9CmRpZmYgLS1naXQg YS90ZXN0cy9rbXNfZmxpcC5jIGIvdGVzdHMva21zX2ZsaXAuYwppbmRleCA3MTBlYTUyYjRhOGEu LmI0M2U3NzEyM2U3ZiAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2ZsaXAuYworKysgYi90ZXN0cy9r bXNfZmxpcC5jCkBAIC05NzYsOCArOTc2LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRfZmxpcF9tb2Rl KHN0cnVjdCBpZ3RfZmIgKmZiLCBib29sIG9kZF9mcmFtZSkKIAljYWlyb19zZXRfc291cmNlX3Jn YihjciwgMSwgMSwgMSk7CiAJY2Fpcm9fZmlsbChjcik7CiAKLQlpZ3RfYXNzZXJ0KCFjYWlyb19z dGF0dXMoY3IpKTsKLQljYWlyb19kZXN0cm95KGNyKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkcm1f ZmQsIGZiLCBjcik7CiB9CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19tbWFw X3dyaXRlX2NyYy5jIGIvdGVzdHMva21zX21tYXBfd3JpdGVfY3JjLmMKaW5kZXggZGQ0NGNlOTcy MzhhLi4yNzlkMGY2N2RkNTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19tbWFwX3dyaXRlX2NyYy5j CisrKyBiL3Rlc3RzL2ttc19tbWFwX3dyaXRlX2NyYy5jCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRp YyB2b2lkIHRlc3QoZGF0YV90ICpkYXRhKQogCiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRh LT5kcm1fZmQsIGZiKTsKIAlpZ3RfcGFpbnRfdGVzdF9wYXR0ZXJuKGNyLCBmYi0+d2lkdGgsIGZi LT5oZWlnaHQpOwotCWNhaXJvX2Rlc3Ryb3koY3IpOworCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEt PmRybV9mZCwgZmIsIGNyKTsKIAogCS8qIGZsaXAgdG8gaXQgdG8gbWFrZSBpdCBVQy9XQyBhbmQg ZnVsbHkgZmx1c2hlZCAqLwogCWlndF9wbGFuZV9zZXRfZmIoZGF0YS0+cHJpbWFyeSwgZmIpOwpA QCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyB2b2lkIHRlc3QoZGF0YV90ICpkYXRhKQogCSAqIGZ1 bGx5IGZsdXNoZWQgKi8KIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgZmIp OwogCWlndF9wYWludF90ZXN0X3BhdHRlcm4oY3IsIGZiLT53aWR0aCwgZmItPmhlaWdodCk7Ci0J Y2Fpcm9fZGVzdHJveShjcik7CisJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCBmYiwg Y3IpOwogCiAJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5wcmltYXJ5LCBmYik7CiAJaWd0X2Rpc3Bs YXlfY29tbWl0KGRpc3BsYXkpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3BsYW5lLmMgYi90ZXN0 cy9rbXNfcGxhbmUuYwppbmRleCA5NjcyNzYzZmU2MTkuLjU0YmNmZmMxNmY0ZiAxMDA2NDQKLS0t IGEvdGVzdHMva21zX3BsYW5lLmMKKysrIGIvdGVzdHMva21zX3BsYW5lLmMKQEAgLTEzOCw4ICsx MzgsNyBAQCBjcmVhdGVfZmJfZm9yX21vZGVfX3Bvc2l0aW9uKGRhdGFfdCAqZGF0YSwgZHJtTW9k ZU1vZGVJbmZvICptb2RlLAogCWlndF9wYWludF9jb2xvcihjciwgMCwgMCwgbW9kZS0+aGRpc3Bs YXksIG1vZGUtPnZkaXNwbGF5LAogCQkJICAgIDAuMCwgMS4wLCAwLjApOwogCWlndF9wYWludF9j b2xvcihjciwgcmVjdF94LCByZWN0X3ksIHJlY3RfdywgcmVjdF9oLCAwLjAsIDAuMCwgMC4wKTsK LQlpZ3RfYXNzZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7Ci0JY2Fpcm9fZGVzdHJveShjcik7 CisJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCBmYiwgY3IpOwogfQogCiBlbnVtIHsK QEAgLTI3OSw4ICsyNzgsNyBAQCBjcmVhdGVfZmJfZm9yX21vZGVfX3Bhbm5pbmcoZGF0YV90ICpk YXRhLCBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCiAJCQltb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRp c3BsYXksCiAJCQkwLjAsIDAuMCwgMS4wKTsKIAotCWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNy KSA9PSAwKTsKLQljYWlyb19kZXN0cm95KGNyKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5k cm1fZmQsIGZiLCBjcik7CiB9CiAKIGVudW0gewpAQCAtNDM2LDggKzQzNCw3IEBAIHN0YXRpYyB2 b2lkIHRlc3RfZm9ybWF0X3BsYW5lKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUsCiAJCQkJ MC4wLCAxLjAsIDAuMCk7CiAJCWlmICh3aWR0aCA+PSAxNjQgJiYgaGVpZ2h0ID49IDE2NCkKIAkJ CWlndF9wYWludF9jb2xvcihjciwgMTAwLCAxMDAsIDY0LCA2NCwgMC4wLCAwLjAsIDAuMCk7Ci0J CWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNyKSA9PSAwKTsKLQkJY2Fpcm9fZGVzdHJveShjcik7 CisJCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmZiLCBjcik7CiAKIAkJaWd0X3Bs YW5lX3NldF9mYihwbGFuZSwgJmZiKTsKIAkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlz cGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxhbmVfbXVs dGlwbGUuYyBiL3Rlc3RzL2ttc19wbGFuZV9tdWx0aXBsZS5jCmluZGV4IGFlYTU5ZGY4NGQ3Ni4u OTViNzEzODU4ZWRjIDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfcGxhbmVfbXVsdGlwbGUuYworKysg Yi90ZXN0cy9rbXNfcGxhbmVfbXVsdGlwbGUuYwpAQCAtMTczLDggKzE3Myw3IEBAIGNyZWF0ZV9m Yl9mb3JfbW9kZV9wb3NpdGlvbihkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBk cm1Nb2RlTW9kZUluZm8KIAkJCQlyZWN0X3dbaV0sIHJlY3RfaFtpXSwgMC4wLCAwLjAsIDAuMCk7 CiAJCX0KIAotCWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNyKSA9PSAwKTsKLQljYWlyb19kZXN0 cm95KGNyKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYltwcmlt YXJ5LT5pbmRleF0sIGNyKTsKIH0KIAogCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxhbmVfc2Nh bGluZy5jIGIvdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYwppbmRleCBjODI4M2EzYjIzZDEuLmQz MmYzNDQxZThjOSAxMDA2NDQKLS0tIGEvdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYworKysgYi90 ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jCkBAIC0xMjAsOCArMTIwLDcgQEAgc3RhdGljIHZvaWQg cGFpbnRfZmIoZGF0YV90ICpkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIAogCWNyID0gaWd0X2dldF9j YWlyb19jdHgoZC0+ZHJtX2ZkLCBmYik7CiAJaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCBmYi0+ d2lkdGgsIGZiLT5oZWlnaHQsIDAuMCwgMS4wLCAwLjApOwotCWlndF9hc3NlcnQoY2Fpcm9fc3Rh dHVzKGNyKSA9PSAwKTsKLQljYWlyb19kZXN0cm95KGNyKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChk LT5kcm1fZmQsIGZiLCBjcik7CiB9CiAKIHN0YXRpYyB2b2lkIGNoZWNrX3NjYWxpbmdfcGlwZV9w bGFuZV9yb3QoZGF0YV90ICpkLCBpZ3RfcGxhbmVfdCAqcGxhbmUsCmRpZmYgLS1naXQgYS90ZXN0 cy9rbXNfcHNyX3NpbmtfY3JjLmMgYi90ZXN0cy9rbXNfcHNyX3NpbmtfY3JjLmMKaW5kZXggMjZj ZjQzNGFmNjRhLi4yYjYwYWNmMzRlNzcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19wc3Jfc2lua19j cmMuYworKysgYi90ZXN0cy9rbXNfcHNyX3NpbmtfY3JjLmMKQEAgLTkxLDcgKzkxLDcgQEAgc3Rh dGljIHZvaWQgY3JlYXRlX2N1cnNvcl9mYihkYXRhX3QgKmRhdGEpCiAKIAljciA9IGlndF9nZXRf Y2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3doaXRlKTsKIAlpZ3RfcGFpbnRfY29s b3JfYWxwaGEoY3IsIDAsIDAsIDY0LCA2NCwgMS4wLCAxLjAsIDEuMCwgMS4wKTsKLQlpZ3RfYXNz ZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7CisJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJt X2ZkLCAmZGF0YS0+ZmJfd2hpdGUsIGNyKTsKIH0KIAogCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNf cmVuZGVyLmMgYi90ZXN0cy9rbXNfcmVuZGVyLmMKaW5kZXggZDIyMDhlMzhmODRlLi4yNWEwYzA1 YjU0N2MgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19yZW5kZXIuYworKysgYi90ZXN0cy9rbXNfcmVu ZGVyLmMKQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIGludCBwYWludF9mYihzdHJ1Y3QgaWd0X2Zi ICpmYiwgY29uc3QgY2hhciAqdGVzdF9uYW1lLAogCWlndF9jYWlyb19wcmludGZfbGluZShjciwg YWxpZ25faGNlbnRlciwgMTAsICIlcyIsIG1vZGVfZm9ybWF0X3N0cik7CiAJaWd0X2NhaXJvX3By aW50Zl9saW5lKGNyLCBhbGlnbl9oY2VudGVyLCAxMCwgIiVzIiwgY2NvbmZfc3RyKTsKIAotCWNh aXJvX2Rlc3Ryb3koY3IpOworCWlndF9wdXRfY2Fpcm9fY3R4KGRybV9mZCwgZmIsIGNyKTsKIAog CXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jIGIvdGVz dHMva21zX3JvdGF0aW9uX2NyYy5jCmluZGV4IDc5OWNmMTE0MjU3OS4uNWIxOTBhMGQwM2NiIDEw MDY0NAotLS0gYS90ZXN0cy9rbXNfcm90YXRpb25fY3JjLmMKKysrIGIvdGVzdHMva21zX3JvdGF0 aW9uX2NyYy5jCkBAIC0xMjAsNyArMTIwLDcgQEAgcGFpbnRfc3F1YXJlcyhkYXRhX3QgKmRhdGEs IGlndF9yb3RhdGlvbl90IHJvdGF0aW9uLAogCWlndF9wYWludF9jb2xvcihjciwgMCwgaCAvIDIs IHcgLyAyLCBoIC8gMiwgUkdCX0NPTE9SKGJsKSk7CiAJaWd0X3BhaW50X2NvbG9yKGNyLCB3IC8g MiwgaCAvIDIsIHcgLyAyLCBoIC8gMiwgUkdCX0NPTE9SKGJyKSk7CiAKLQljYWlyb19kZXN0cm95 KGNyKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsIGZiLCBjcik7CiB9CiAKIHN0 YXRpYyB2b2lkIHByZXBhcmVfY3J0YyhkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0 LCBlbnVtIHBpcGUgcGlwZSwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19zZXRtb2RlLmMgYi90ZXN0 cy9rbXNfc2V0bW9kZS5jCmluZGV4IDIwNmQzNjA2MDdiYi4uMDYyNDFiMTkxYTBmIDEwMDY0NAot LS0gYS90ZXN0cy9rbXNfc2V0bW9kZS5jCisrKyBiL3Rlc3RzL2ttc19zZXRtb2RlLmMKQEAgLTE2 MSw3ICsxNjEsNyBAQCBzdGF0aWMgaW50IHBhaW50X2ZiKHN0cnVjdCBpZ3RfZmIgKmZiLCBjb25z dCBjaGFyICp0ZXN0X25hbWUsCiAJCQkJCSAgY3J0Y19zdHJbaV0pOwogCX0KIAotCWNhaXJvX2Rl c3Ryb3koY3IpOworCWlndF9wdXRfY2Fpcm9fY3R4KGRybV9mZCwgZmIsIGNyKTsKIAogCXJldHVy biAwOwogfQpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdGRpc3BsYXkuYyBiL3Rlc3RzL3Rlc3RkaXNw bGF5LmMKaW5kZXggYjAxNTZjNWNmMGUxLi4wZmY5OGEyYjcwNWUgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L3Rlc3RkaXNwbGF5LmMKKysrIGIvdGVzdHMvdGVzdGRpc3BsYXkuYwpAQCAtMjI3LDkgKzIyNyw3 IEBAIHBhaW50X2NvbG9yX2tleShzdHJ1Y3QgaWd0X2ZiICpmYl9pbmZvKQogCWNhaXJvX3NldF9z b3VyY2VfcmdiKGNyLCAuOCwgLjgsIC44KTsKIAljYWlyb19maWxsKGNyKTsKIAotCWlndF9hc3Nl cnQoIWNhaXJvX3N0YXR1cyhjcikpOwotCi0JY2Fpcm9fZGVzdHJveShjcik7CisJaWd0X3B1dF9j YWlyb19jdHgoZHJtX2ZkLCBmYl9pbmZvLCBjcik7CiB9CiAKIHN0YXRpYyB2b2lkIHBhaW50X2lt YWdlKGNhaXJvX3QgKmNyLCBjb25zdCBjaGFyICpmaWxlKQpAQCAtMjk0LDkgKzI5Miw3IEBAIHN0 YXRpYyB2b2lkIHBhaW50X291dHB1dF9pbmZvKHN0cnVjdCBjb25uZWN0b3IgKmMsIHN0cnVjdCBp Z3RfZmIgKmZiKQogCWlmIChxcl9jb2RlKQogCQlwYWludF9pbWFnZShjciwgInBhc3MucG5nIik7 CiAKLQlpZ3RfYXNzZXJ0KCFjYWlyb19zdGF0dXMoY3IpKTsKLQotCWNhaXJvX2Rlc3Ryb3koY3Ip OworCWlndF9wdXRfY2Fpcm9fY3R4KGRybV9mZCwgZmIsIGNyKTsKIH0KIAogc3RhdGljIHZvaWQg c2lnaGFuZGxlcihpbnQgc2lnbm8pCi0tIAoyLjE1LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo=