From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 24FAA6ECBA for ; Wed, 31 Jan 2018 17:03:58 +0000 (UTC) Date: Wed, 31 Jan 2018 19:03:52 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Message-ID: <20180131170352.GM5453@intel.com> References: <20180123125642.58698-1-maarten.lankhorst@linux.intel.com> <20180123125642.58698-2-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20180123125642.58698-2-maarten.lankhorst@linux.intel.com> Subject: Re: [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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Maarten Lankhorst Cc: igt-dev@lists.freedesktop.org List-ID: T24gVHVlLCBKYW4gMjMsIDIwMTggYXQgMDE6NTY6MzVQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyB3aWxsIGFsbG93IHN1cHBvcnQgZm9yIE5WMTIgaW4gdGhlIGZ1dHVy ZSwgd2hlcmUgaWd0X2dldF9jYWlyb19jdHgKPiB3aWxsIHJldHVybiBhIFJHQiBpbWFnZSB0byBk cmF3IHdpdGgsIHdoaWNoIHdpbGwgYmUgY29udmVydGVkIGluCj4gaWd0X3B1dF9jYWlyb19jdHgg c28gdGVzdHMgZG9uJ3QgaGF2ZSB0byBhZGQgc3BlY2lhbCBzdXBwb3J0IGZvciBOVjEyLgo+IAo+ IFRoaXMgaXMgdGhlIHNhbWUgYXMgY2Fpcm9fZGVzdHJveSArIGNoZWNraW5nIGZvciBlcnJvcnMs IGJ1dCBub3QgYWxsCj4gdGVzdHMgdXNlIHRoaXMgY29ycmVjdGx5IHNvIGl0J3MgYmV0dGVyIHRv IGhhdmUgYSBzaW5nbGUgaGFuZGxlciBmb3IgaXQuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRl biBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAg bGliL2lndF9mYi5jICAgICAgICAgICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLQo+ICBsaWIvaWd0X2ZiLmggICAgICAgICAgICAgICAgICAgICAgfCAg MSArCj4gIHRlc3RzL2ttc19jaHZfY3Vyc29yX2ZhaWwuYyAgICAgICB8ICAzICstLQo+ICB0ZXN0 cy9rbXNfY29sb3IuYyAgICAgICAgICAgICAgICAgfCAgNCArKy0tCj4gIHRlc3RzL2ttc19jb25j dXJyZW50LmMgICAgICAgICAgICB8ICAzICstLQo+ICB0ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5k X2NvbG9yLmMgfCAgMiArLQo+ICB0ZXN0cy9rbXNfY3Vyc29yX2NyYy5jICAgICAgICAgICAgfCAy MyArKysrKysrKysrKysrKysrKysrLS0tLQo+ICB0ZXN0cy9rbXNfZmxpcC5jICAgICAgICAgICAg ICAgICAgfCAgMyArLS0KPiAgdGVzdHMva21zX21tYXBfd3JpdGVfY3JjLmMgICAgICAgIHwgIDQg KystLQo+ICB0ZXN0cy9rbXNfcGxhbmUuYyAgICAgICAgICAgICAgICAgfCAgOSArKystLS0tLS0K PiAgdGVzdHMva21zX3BsYW5lX211bHRpcGxlLmMgICAgICAgIHwgIDMgKy0tCj4gIHRlc3RzL2tt c19wbGFuZV9zY2FsaW5nLmMgICAgICAgICB8ICAzICstLQo+ICB0ZXN0cy9rbXNfcHNyX3Npbmtf Y3JjLmMgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9rbXNfcmVuZGVyLmMgICAgICAgICAgICAg ICAgfCAgMiArLQo+ICB0ZXN0cy9rbXNfcm90YXRpb25fY3JjLmMgICAgICAgICAgfCAgMiArLQo+ ICB0ZXN0cy9rbXNfc2V0bW9kZS5jICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy90ZXN0 ZGlzcGxheS5jICAgICAgICAgICAgICAgfCAgOCArKy0tLS0tLQo+ICAxNyBmaWxlcyBjaGFuZ2Vk LCA2MyBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGli L2lndF9mYi5jIGIvbGliL2lndF9mYi5jCj4gaW5kZXggZGVkNjM5ZTgzM2YxLi4zOWE4M2JhZTE3 OGEgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9mYi5jCj4gKysrIGIvbGliL2lndF9mYi5jCj4gQEAg LTc3MSw4ICs3NzEsNyBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9jb2xvcl9mYihpbnQgZmQs IGludCB3aWR0aCwgaW50IGhlaWdodCwKPiAgCj4gIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGZk LCBmYik7Cj4gIAlpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIHIsIGcs IGIpOwo+IC0JaWd0X2Fzc2VydChjYWlyb19zdGF0dXMoY3IpID09IDApOwo+IC0JY2Fpcm9fZGVz dHJveShjcik7Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChmZCwgZmIsIGNyKTsKPiAgCj4gIAlyZXR1 cm4gZmJfaWQ7Cj4gIH0KPiBAQCAtODA5LDggKzgwOCw3IEBAIHVuc2lnbmVkIGludCBpZ3RfY3Jl YXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCj4gIAo+ICAJY3Ig PSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwo+ICAJaWd0X3BhaW50X3Rlc3RfcGF0dGVybihj ciwgd2lkdGgsIGhlaWdodCk7Cj4gLQlpZ3RfYXNzZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7 Cj4gLQljYWlyb19kZXN0cm95KGNyKTsKPiArCWlndF9wdXRfY2Fpcm9fY3R4KGZkLCBmYiwgY3Ip Owo+ICAKPiAgCXJldHVybiBmYl9pZDsKPiAgfQo+IEBAIC04NTMsOCArODUxLDcgQEAgdW5zaWdu ZWQgaW50IGlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50 IGhlaWdodCwKPiAgCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZmQsIGZiKTsKPiAgCWlndF9wYWlu dF9jb2xvcihjciwgMCwgMCwgd2lkdGgsIGhlaWdodCwgciwgZywgYik7Cj4gIAlpZ3RfcGFpbnRf dGVzdF9wYXR0ZXJuKGNyLCB3aWR0aCwgaGVpZ2h0KTsKPiAtCWlndF9hc3NlcnQoY2Fpcm9fc3Rh dHVzKGNyKSA9PSAwKTsKPiAtCWNhaXJvX2Rlc3Ryb3koY3IpOwo+ICsJaWd0X3B1dF9jYWlyb19j dHgoZmQsIGZiLCBjcik7Cj4gIAo+ICAJcmV0dXJuIGZiX2lkOwo+ICB9Cj4gQEAgLTg5Nyw4ICs4 OTQsNyBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9pbWFnZV9mYihpbnQgZmQsIGludCB3aWR0 aCwgaW50IGhlaWdodCwKPiAgCj4gIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGZkLCBmYik7Cj4g IAlpZ3RfcGFpbnRfaW1hZ2UoY3IsIGZpbGVuYW1lLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKPiAt CWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNyKSA9PSAwKTsKPiAtCWNhaXJvX2Rlc3Ryb3koY3Ip Owo+ICsJaWd0X3B1dF9jYWlyb19jdHgoZmQsIGZiLCBjcik7Cj4gIAo+ICAJcmV0dXJuIGZiX2lk Owo+ICB9Cj4gQEAgLTk5OCw3ICs5OTQsNyBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9zdGVy ZW9fZmIoaW50IGRybV9mZCwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAo+ICAJCQlsYXlvdXQucmln aHQueCwgbGF5b3V0LnJpZ2h0LnksCj4gIAkJCWxheW91dC5yaWdodC53aWR0aCwgbGF5b3V0LnJp Z2h0LmhlaWdodCk7Cj4gIAo+IC0JY2Fpcm9fZGVzdHJveShjcik7Cj4gKwlpZ3RfcHV0X2NhaXJv X2N0eChkcm1fZmQsICZmYiwgY3IpOwo+ICAKPiAgCXJldHVybiBmYl9pZDsKPiAgfQo+IEBAIC0x MjA2LDcgKzEyMDIsNyBAQCBjYWlyb19zdXJmYWNlX3QgKmlndF9nZXRfY2Fpcm9fc3VyZmFjZShp bnQgZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQo+ICAgKgo+ICAgKiBUaGlzIGluaXRpYWxpemVzIGEg Y2Fpcm8gc3VyZmFjZSBmb3IgQGZiIGFuZCB0aGVuIGFsbG9jYXRlcyBhIGRyYXdpbmcgY29udGV4 dAo+ICAgKiBmb3IgaXQuIFRoZSByZXR1cm4gY2Fpcm8gZHJhd2luZyBjb250ZXh0IHNob3VsZCBi ZSByZWxlYXNlZCBieSBjYWxsaW5nCj4gLSAqIGNhaXJvX2Rlc3Ryb3koKS4gVGhpcyBhbHNvIHNl dHMgYSBkZWZhdWx0IGZvbnQgZm9yIGRyYXdpbmcgdGV4dCBvbgo+ICsgKiBpZ3RfcHV0X2NhaXJv X2N0eCgpLiBUaGlzIGFsc28gc2V0cyBhIGRlZmF1bHQgZm9udCBmb3IgZHJhd2luZyB0ZXh0IG9u Cj4gICAqIGZyYW1lYnVmZmVycy4KPiAgICoKPiAgICogUmV0dXJuczoKPiBAQCAtMTIyOSw2ICsx MjI1LDI0IEBAIGNhaXJvX3QgKmlndF9nZXRfY2Fpcm9fY3R4KGludCBmZCwgc3RydWN0IGlndF9m YiAqZmIpCj4gIAlyZXR1cm4gY3I7Cj4gIH0KPiAgCj4gKy8qKgo+ICsgKiBpZ3RfcHV0X2NhaXJv X2N0eDoKPiArICogQGZkOiBvcGVuIGk5MTUgZHJtIGZpbGUgZGVzY3JpcHRvcgo+ICsgKiBAZmI6 IHBvaW50ZXIgdG8gYW4gI2lndF9mYiBzdHJ1Y3R1cmUKPiArICogQGNyOiB0aGUgY2Fpcm8gY29u dGV4dCByZXR1cm5lZCBieSBpZ3RfZ2V0X2NhaXJvX2N0eC4KPiArICoKPiArICogVGhpcyByZWxl YXNlcyB0aGUgY2Fpcm8gc3VyZmFjZSBAY3IgcmV0dXJuZWQgYnkgaWd0X2dldF9jYWlyb19jdHgo KQo+ICsgKiBmb3IgQGZiLCBhbmQgd3JpdGVzIHRoZSBjaGFuZ2VzIG91dCB0byB0aGUgZnJhbWVi dWZmZXIgaWYgY2Fpcm8gZG9lc24ndAo+ICsgKiBoYXZlIG5hdGl2ZSBzdXBwb3J0IGZvciB0aGUg Zm9ybWF0Lgo+ICsgKi8KPiArdm9pZCBpZ3RfcHV0X2NhaXJvX2N0eChpbnQgZmQsIHN0cnVjdCBp Z3RfZmIgKmZiLCBjYWlyb190ICpjcikKPiArewo+ICsJY2Fpcm9fc3RhdHVzX3QgcmV0ID0gY2Fp cm9fc3RhdHVzKGNyKTsKPiArCWlndF9hc3NlcnRfZihyZXQgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NF U1MsICJDYWlybyBmYWlsZWQgdG8gZHJhdyB3aXRoICVzXG4iLCBjYWlyb19zdGF0dXNfdG9fc3Ry aW5nKHJldCkpOwo+ICsKPiArCWNhaXJvX2Rlc3Ryb3koY3IpOwoKSSB3YXMgbG9va2luZyBhdCB0 aGUgd2hvbGUgY2Fpcm8gc3VyZmFjZSBzdHVmZiwgYW5kIGl0IGxvb2tzIHRvIG1lIGxpa2UKaWd0 X2dldF9jYWlyb19zdXJmYWNlKCkgaXMgbWlzc2luZyBhIGNhaXJvX3N1cmZhY2VfcmVmZXJlbmNl KCkgZm9yIHRoZQpjYXNlIHdoZXJlIGFscmVhZHkgaGF2ZSBmYi0+Y2Fpcm9fc3VyZmFjZS4KCk1h eWJlIHdlIHNob3VsZCBhbHNvIGFkZCBzb21lIGFzc2VydHMgaW50byBlZy4gaWd0X3BsYW5lX3Nl dF9mYigpIHRvCm1ha2Ugc3VyZSB0aGVyZSBpcyBubyBmYi0+Y2Fpcm9fc3VyZmFjZSBhcm91bmQg YW55bW9yZSwgdG8gZ3VhcmFudGVlCnRoYXQgd2UndmUgYWN0dWFsbHkgY29waWVkIHRoZSBjb250 ZW50cyBmcm9tIHRoZSB0ZW1wIHN1cmZhY2UgYmFjawp0byB0aGUgcmVhbCBibz8KCkFueXdheSwg dGhpcyBwYXRjaCBzZWVtcyBmaW5lIHRvIG1lIHNvClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKPiArfQo+ICsKPiAgLyoqCj4gICAq IGlndF9yZW1vdmVfZmI6Cj4gICAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IK PiBkaWZmIC0tZ2l0IGEvbGliL2lndF9mYi5oIGIvbGliL2lndF9mYi5oCj4gaW5kZXggZDMwYTcz NDBjNzZlLi4zMDA0ZjA2NTYwMjkgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9mYi5oCj4gKysrIGIv bGliL2lndF9mYi5oCj4gQEAgLTEzMSw2ICsxMzEsNyBAQCB1aW50NjRfdCBpZ3RfZmJfdGlsaW5n X3RvX21vZCh1aW50NjRfdCB0aWxpbmcpOwo+ICBjYWlyb19zdXJmYWNlX3QgKmlndF9nZXRfY2Fp cm9fc3VyZmFjZShpbnQgZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKTsKPiAgY2Fpcm9fc3VyZmFjZV90 ICppZ3RfY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZnJvbV9wbmcoY29uc3QgY2hhciAqZmls ZW5hbWUpOwo+ICBjYWlyb190ICppZ3RfZ2V0X2NhaXJvX2N0eChpbnQgZmQsIHN0cnVjdCBpZ3Rf ZmIgKmZiKTsKPiArdm9pZCBpZ3RfcHV0X2NhaXJvX2N0eChpbnQgZmQsIHN0cnVjdCBpZ3RfZmIg KmZiLCBjYWlyb190ICpjcik7Cj4gIHZvaWQgaWd0X3BhaW50X2NvbG9yKGNhaXJvX3QgKmNyLCBp bnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwKPiAgCQkJIGRvdWJsZSByLCBkb3VibGUgZywgZG91 YmxlIGIpOwo+ICB2b2lkIGlndF9wYWludF9jb2xvcl9hbHBoYShjYWlyb190ICpjciwgaW50IHgs IGludCB5LCBpbnQgdywgaW50IGgsCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jaHZfY3Vyc29y X2ZhaWwuYyBiL3Rlc3RzL2ttc19jaHZfY3Vyc29yX2ZhaWwuYwo+IGluZGV4IDNlNzRkZjExNDJk YS4uMWJjZjg0NjkwODhlIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ttc19jaHZfY3Vyc29yX2ZhaWwu Ywo+ICsrKyBiL3Rlc3RzL2ttc19jaHZfY3Vyc29yX2ZhaWwuYwo+IEBAIC04Nyw4ICs4Nyw3IEBA IHN0YXRpYyB2b2lkIGNyZWF0ZV9jdXJzb3JfZmIoZGF0YV90ICpkYXRhLCBpbnQgY3VyX3csIGlu dCBjdXJfaCkKPiAgCWVsc2UKPiAgCQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIGRh dGEtPmZiLndpZHRoLCBkYXRhLT5mYi5oZWlnaHQsCj4gIAkJCQkgICAgICAwLjAsIDAuMCwgMC4w LCAwLjApOwo+IC0JaWd0X2Fzc2VydChjYWlyb19zdGF0dXMoY3IpID09IDApOwo+IC0JY2Fpcm9f ZGVzdHJveShjcik7Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5m YiwgY3IpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBjdXJzb3JfbW92ZShkYXRhX3QgKmRhdGEs IGludCB4LCBpbnQgeSwgaW50IGkpCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jb2xvci5jIGIv dGVzdHMva21zX2NvbG9yLmMKPiBpbmRleCAzYjBhODg4MDJjOTMuLmRjNGZjY2UyNDFiZSAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9rbXNfY29sb3IuYwo+ICsrKyBiL3Rlc3RzL2ttc19jb2xvci5jCj4g QEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRfZ3JhZGllbnRfcmVjdGFuZ2xlcyhk YXRhX3QgKmRhdGEsCj4gIAkJCQkJICAgICAgIGNvbG9yc1tpXS5iKTsKPiAgCX0KPiAgCj4gLQlj YWlyb19kZXN0cm95KGNyKTsKPiArCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgZmIs IGNyKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgcGFpbnRfcmVjdGFuZ2xlcyhkYXRhX3QgKmRh dGEsCj4gQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgdm9pZCBwYWludF9yZWN0YW5nbGVzKGRh dGFfdCAqZGF0YSwKPiAgCQkJCWNvbG9yc1tpXS5yLCBjb2xvcnNbaV0uZywgY29sb3JzW2ldLmIp Owo+ICAJfQo+ICAKPiAtCWNhaXJvX2Rlc3Ryb3koY3IpOwo+ICsJaWd0X3B1dF9jYWlyb19jdHgo ZGF0YS0+ZHJtX2ZkLCBmYiwgY3IpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgZG91YmxlICpnZW5lcmF0 ZV90YWJsZSh1aW50MzJfdCBsdXRfc2l6ZSwgZG91YmxlIGV4cCkKPiBkaWZmIC0tZ2l0IGEvdGVz dHMva21zX2NvbmN1cnJlbnQuYyBiL3Rlc3RzL2ttc19jb25jdXJyZW50LmMKPiBpbmRleCAzYjJl NjAxNTA1YzQuLjI4M2FjZjhjOGE3ZSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfY29uY3VycmVu dC5jCj4gKysrIGIvdGVzdHMva21zX2NvbmN1cnJlbnQuYwo+IEBAIC0xNDgsOCArMTQ4LDcgQEAg Y3JlYXRlX2ZiX2Zvcl9tb2RlX3Bvc2l0aW9uKGRhdGFfdCAqZGF0YSwgZHJtTW9kZU1vZGVJbmZv ICptb2RlLAo+ICAJCQkJcmVjdF93W2ldLCByZWN0X2hbaV0sIDAuMCwgMC4wLCAwLjApOwo+ICAJ fQo+ICAKPiAtCWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNyKSA9PSAwKTsKPiAtCWNhaXJvX2Rl c3Ryb3koY3IpOwo+ICsJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJb cHJpbWFyeS0+aW5kZXhdLCBjcik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IuYyBiL3Rlc3RzL2ttc19jcnRjX2Jh Y2tncm91bmRfY29sb3IuYwo+IGluZGV4IGU5OWM2N2JkMTg1ZS4uNjQwN2UxOWJhZmNlIDEwMDY0 NAo+IC0tLSBhL3Rlc3RzL2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IuYwo+ICsrKyBiL3Rlc3Rz L2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IuYwo+IEBAIC02OSw3ICs2OSw3IEBAIHBhaW50X2Jh Y2tncm91bmQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2ZiICpmYiwgZHJtTW9kZU1vZGVJbmZv ICptb2RlLAo+ICAJYiA9IChkb3VibGUpICgoYmFja2dyb3VuZCAmIDB4RkYwMDAwKSA+PiAxNikg LyAyNTUuMDsKPiAgCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgdywgaCwgciwgZywg YiwgYWxwaGEpOwo+ICAKPiAtCWNhaXJvX2Rlc3Ryb3koY3IpOwo+ICsJaWd0X3B1dF9jYWlyb19j dHgoZGF0YS0+Z2Z4X2ZkLCAmZGF0YS0+ZmIsIGNyKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQg cHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlw ZSBwaXBlLAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY3Vyc29yX2NyYy5jIGIvdGVzdHMva21z X2N1cnNvcl9jcmMuYwo+IGluZGV4IDRjNWUwMGMwNzRhNS4uYTE2NDgzOWVlMmNjIDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL2ttc19jdXJzb3JfY3JjLmMKPiArKysgYi90ZXN0cy9rbXNfY3Vyc29yX2Ny Yy5jCj4gQEAgLTE0MSwxMyArMTQxLDE2IEBAIHN0YXRpYyB2b2lkIGRvX3NpbmdsZV90ZXN0KGRh dGFfdCAqZGF0YSwgaW50IHgsIGludCB5KQo+ICAJaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjID0g ZGF0YS0+cGlwZV9jcmM7Cj4gIAlpZ3RfY3JjX3QgY3JjLCByZWZfY3JjOwo+ICAJaWd0X3BsYW5l X3QgKmN1cnNvcjsKPiAtCWNhaXJvX3QgKmNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJt X2ZkLCAmZGF0YS0+cHJpbWFyeV9mYik7Cj4gKwljYWlyb190ICpjcjsKPiAgCWludCByZXQgPSAw Owo+ICAKPiAgCWlndF9wcmludF9hY3Rpdml0eSgpOwo+ICAKPiAgCS8qIEhhcmR3YXJlIHRlc3Qg Ki8KPiArCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+cHJpbWFy eV9mYik7Cj4gIAlpZ3RfcGFpbnRfdGVzdF9wYXR0ZXJuKGNyLCBkYXRhLT5zY3JlZW53LCBkYXRh LT5zY3JlZW5oKTsKPiArCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnBy aW1hcnlfZmIsIGNyKTsKPiArCj4gIAljdXJzb3JfZW5hYmxlKGRhdGEpOwo+ICAJY3Vyc29yID0g aWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsIERSTV9QTEFORV9UWVBFX0NV UlNPUik7Cj4gIAlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGN1cnNvciwgeCwgeSk7Cj4gQEAgLTE5 MCw3ICsxOTMsOSBAQCBzdGF0aWMgdm9pZCBkb19zaW5nbGVfdGVzdChkYXRhX3QgKmRhdGEsIGlu dCB4LCBpbnQgeSkKPiAgCWlndF9kaXNwbGF5X2NvbW1pdChkaXNwbGF5KTsKPiAgCj4gIAkvKiBO b3cgcmVuZGVyIHRoZSBzYW1lIGluIHNvZnR3YXJlIGFuZCBjb2xsZWN0IGNyYyAqLwo+ICsJY3Ig PSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiKTsKPiAg CWRyYXdfY3Vyc29yKGNyLCB4LCB5LCBkYXRhLT5jdXJ3LCBkYXRhLT5jdXJoKTsKPiArCWlndF9w dXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnByaW1hcnlfZmIsIGNyKTsKPiAgCWln dF9kaXNwbGF5X2NvbW1pdChkaXNwbGF5KTsKPiAgCj4gIAlpZ3Rfd2FpdF9mb3JfdmJsYW5rKGRh dGEtPmRybV9mZCwgZGF0YS0+cGlwZSk7Cj4gQEAgLTE5OCwyMCArMjAzLDI1IEBAIHN0YXRpYyB2 b2lkIGRvX3NpbmdsZV90ZXN0KGRhdGFfdCAqZGF0YSwgaW50IHgsIGludCB5KQo+ICAJaWd0X2Fz c2VydF9jcmNfZXF1YWwoJmNyYywgJnJlZl9jcmMpOwo+ICAKPiAgCS8qIENsZWFyIHNjcmVlbiBh ZnRlcndhcmRzICovCj4gKwljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRh dGEtPnByaW1hcnlfZmIpOwo+ICAJaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCBkYXRhLT5zY3Jl ZW53LCBkYXRhLT5zY3JlZW5oLCAwLjAsIDAuMCwgMC4wKTsKPiArCWlndF9wdXRfY2Fpcm9fY3R4 KGRhdGEtPmRybV9mZCwgJmRhdGEtPnByaW1hcnlfZmIsIGNyKTsKPiAgfQo+ICAKPiAgc3RhdGlj IHZvaWQgZG9fZmFpbF90ZXN0KGRhdGFfdCAqZGF0YSwgaW50IHgsIGludCB5LCBpbnQgZXhwZWN0 KQo+ICB7Cj4gIAlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7Cj4gIAlp Z3RfcGxhbmVfdCAqY3Vyc29yOwo+IC0JY2Fpcm9fdCAqY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChk YXRhLT5kcm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiKTsKPiArCWNhaXJvX3QgKmNyOwo+ICAJaW50 IHJldDsKPiAgCj4gIAlpZ3RfcHJpbnRfYWN0aXZpdHkoKTsKPiAgCj4gIAkvKiBIYXJkd2FyZSB0 ZXN0ICovCj4gKwljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnBy aW1hcnlfZmIpOwo+ICAJaWd0X3BhaW50X3Rlc3RfcGF0dGVybihjciwgZGF0YS0+c2NyZWVudywg ZGF0YS0+c2NyZWVuaCk7Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRh LT5wcmltYXJ5X2ZiLCBjcik7Cj4gKwo+ICAJY3Vyc29yX2VuYWJsZShkYXRhKTsKPiAgCWN1cnNv ciA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LCBEUk1fUExBTkVfVFlQ RV9DVVJTT1IpOwo+ICAJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihjdXJzb3IsIHgsIHkpOwo+IEBA IC00NDYsNyArNDU2LDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2N1cnNvcl9mYihkYXRhX3QgKmRh dGEsIGludCBjdXJfdywgaW50IGN1cl9oKQo+ICAKPiAgCWNyID0gaWd0X2dldF9jYWlyb19jdHgo ZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmIpOwo+ICAJZHJhd19jdXJzb3IoY3IsIDAsIDAsIGN1cl93 LCBjdXJfaCk7Cj4gLQlpZ3RfYXNzZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7Cj4gKwlpZ3Rf cHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYiwgY3IpOwo+ICB9Cj4gIAo+ICBz dGF0aWMgYm9vbCBoYXNfbm9uc3F1YXJlX2N1cnNvcnModWludDMyX3QgZGV2aWQpCj4gQEAgLTQ4 Niw2ICs0OTYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2N1cnNvcl9zaXplKGRhdGFfdCAqZGF0YSkK PiAgCS8qIFVzZSBhIHNvbGlkIHdoaXRlIHJlY3RhbmdsZSBhcyB0aGUgY3Vyc29yICovCj4gIAlj ciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiKTsKPiAgCWlndF9w YWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgY3Vyc29yX21heF9zaXplLCBjdXJzb3JfbWF4X3Np emUsIDEuMCwgMS4wLCAxLjAsIDEuMCk7Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1f ZmQsICZkYXRhLT5mYiwgY3IpOwo+ICAKPiAgCS8qIEhhcmR3YXJlIHRlc3QgbG9vcCAqLwo+ICAJ Y3Vyc29yX2VuYWJsZShkYXRhKTsKPiBAQCAtNTAxLDE2ICs1MTIsMjAgQEAgc3RhdGljIHZvaWQg dGVzdF9jdXJzb3Jfc2l6ZShkYXRhX3QgKmRhdGEpCj4gIAl9Cj4gIAljdXJzb3JfZGlzYWJsZShk YXRhKTsKPiAgCS8qIFNvZnR3YXJlIHRlc3QgbG9vcCAqLwo+IC0JY3IgPSBpZ3RfZ2V0X2NhaXJv X2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5wcmltYXJ5X2ZiKTsKPiAgCWZvciAoaSA9IDAsIHNp emUgPSBjdXJzb3JfbWF4X3NpemU7IHNpemUgPj0gNjQ7IHNpemUgLz0gMiwgaSsrKSB7Cj4gIAkJ LyogTm93IHJlbmRlciB0aGUgc2FtZSBpbiBzb2Z0d2FyZSBhbmQgY29sbGVjdCBjcmMgKi8KPiAr CQljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnByaW1hcnlfZmIp Owo+ICAJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgc2l6ZSwgc2l6ZSwgMS4wLCAx LjAsIDEuMCwgMS4wKTsKPiArCQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRh LT5wcmltYXJ5X2ZiLCBjcik7Cj4gKwo+ICAJCWlndF9kaXNwbGF5X2NvbW1pdChkaXNwbGF5KTsK PiAgCQlpZ3Rfd2FpdF9mb3JfdmJsYW5rKGRhdGEtPmRybV9mZCwgZGF0YS0+cGlwZSk7Cj4gIAkJ aWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKHBpcGVfY3JjLCAmcmVmX2NyYyk7Cj4gIAkJLyogQ2xl YXIgc2NyZWVuIGFmdGVyd2FyZHMgKi8KPiArCQljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEt PmRybV9mZCwgJmRhdGEtPnByaW1hcnlfZmIpOwo+ICAJCWlndF9wYWludF9jb2xvcihjciwgMCwg MCwgZGF0YS0+c2NyZWVudywgZGF0YS0+c2NyZWVuaCwKPiAgCQkJCTAuMCwgMC4wLCAwLjApOwo+ ICsJCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPnByaW1hcnlfZmIsIGNy KTsKPiAgCQlpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmY3JjW2ldLCAmcmVmX2NyYyk7Cj4gIAl9Cj4g IH0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2ZsaXAuYyBiL3Rlc3RzL2ttc19mbGlwLmMKPiBp bmRleCA3MTBlYTUyYjRhOGEuLmI0M2U3NzEyM2U3ZiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNf ZmxpcC5jCj4gKysrIGIvdGVzdHMva21zX2ZsaXAuYwo+IEBAIC05NzYsOCArOTc2LDcgQEAgc3Rh dGljIHZvaWQgcGFpbnRfZmxpcF9tb2RlKHN0cnVjdCBpZ3RfZmIgKmZiLCBib29sIG9kZF9mcmFt ZSkKPiAgCWNhaXJvX3NldF9zb3VyY2VfcmdiKGNyLCAxLCAxLCAxKTsKPiAgCWNhaXJvX2ZpbGwo Y3IpOwo+ICAKPiAtCWlndF9hc3NlcnQoIWNhaXJvX3N0YXR1cyhjcikpOwo+IC0JY2Fpcm9fZGVz dHJveShjcik7Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChkcm1fZmQsIGZiLCBjcik7Cj4gIH0KPiAg Cj4gIHN0YXRpYyBpbnQKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX21tYXBfd3JpdGVfY3JjLmMg Yi90ZXN0cy9rbXNfbW1hcF93cml0ZV9jcmMuYwo+IGluZGV4IGRkNDRjZTk3MjM4YS4uMjc5ZDBm NjdkZDUzIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ttc19tbWFwX3dyaXRlX2NyYy5jCj4gKysrIGIv dGVzdHMva21zX21tYXBfd3JpdGVfY3JjLmMKPiBAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgdm9p ZCB0ZXN0KGRhdGFfdCAqZGF0YSkKPiAgCj4gIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEt PmRybV9mZCwgZmIpOwo+ICAJaWd0X3BhaW50X3Rlc3RfcGF0dGVybihjciwgZmItPndpZHRoLCBm Yi0+aGVpZ2h0KTsKPiAtCWNhaXJvX2Rlc3Ryb3koY3IpOwo+ICsJaWd0X3B1dF9jYWlyb19jdHgo ZGF0YS0+ZHJtX2ZkLCBmYiwgY3IpOwo+ICAKPiAgCS8qIGZsaXAgdG8gaXQgdG8gbWFrZSBpdCBV Qy9XQyBhbmQgZnVsbHkgZmx1c2hlZCAqLwo+ICAJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5wcmlt YXJ5LCBmYik7Cj4gQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0KGRhdGFfdCAq ZGF0YSkKPiAgCSAqIGZ1bGx5IGZsdXNoZWQgKi8KPiAgCWNyID0gaWd0X2dldF9jYWlyb19jdHgo ZGF0YS0+ZHJtX2ZkLCBmYik7Cj4gIAlpZ3RfcGFpbnRfdGVzdF9wYXR0ZXJuKGNyLCBmYi0+d2lk dGgsIGZiLT5oZWlnaHQpOwo+IC0JY2Fpcm9fZGVzdHJveShjcik7Cj4gKwlpZ3RfcHV0X2NhaXJv X2N0eChkYXRhLT5kcm1fZmQsIGZiLCBjcik7Cj4gIAo+ICAJaWd0X3BsYW5lX3NldF9mYihkYXRh LT5wcmltYXJ5LCBmYik7Cj4gIAlpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7Cj4gZGlmZiAt LWdpdCBhL3Rlc3RzL2ttc19wbGFuZS5jIGIvdGVzdHMva21zX3BsYW5lLmMKPiBpbmRleCA5Njcy NzYzZmU2MTkuLjU0YmNmZmMxNmY0ZiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfcGxhbmUuYwo+ ICsrKyBiL3Rlc3RzL2ttc19wbGFuZS5jCj4gQEAgLTEzOCw4ICsxMzgsNyBAQCBjcmVhdGVfZmJf Zm9yX21vZGVfX3Bvc2l0aW9uKGRhdGFfdCAqZGF0YSwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAo+ ICAJaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3Bs YXksCj4gIAkJCSAgICAwLjAsIDEuMCwgMC4wKTsKPiAgCWlndF9wYWludF9jb2xvcihjciwgcmVj dF94LCByZWN0X3ksIHJlY3RfdywgcmVjdF9oLCAwLjAsIDAuMCwgMC4wKTsKPiAtCWlndF9hc3Nl cnQoY2Fpcm9fc3RhdHVzKGNyKSA9PSAwKTsKPiAtCWNhaXJvX2Rlc3Ryb3koY3IpOwo+ICsJaWd0 X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCBmYiwgY3IpOwo+ICB9Cj4gIAo+ICBlbnVtIHsK PiBAQCAtMjc5LDggKzI3OCw3IEBAIGNyZWF0ZV9mYl9mb3JfbW9kZV9fcGFubmluZyhkYXRhX3Qg KmRhdGEsIGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKPiAgCQkJbW9kZS0+aGRpc3BsYXksIG1vZGUt PnZkaXNwbGF5LAo+ICAJCQkwLjAsIDAuMCwgMS4wKTsKPiAgCj4gLQlpZ3RfYXNzZXJ0KGNhaXJv X3N0YXR1cyhjcikgPT0gMCk7Cj4gLQljYWlyb19kZXN0cm95KGNyKTsKPiArCWlndF9wdXRfY2Fp cm9fY3R4KGRhdGEtPmRybV9mZCwgZmIsIGNyKTsKPiAgfQo+ICAKPiAgZW51bSB7Cj4gQEAgLTQz Niw4ICs0MzQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Zvcm1hdF9wbGFuZShkYXRhX3QgKmRhdGEs IGVudW0gcGlwZSBwaXBlLAo+ICAJCQkJMC4wLCAxLjAsIDAuMCk7Cj4gIAkJaWYgKHdpZHRoID49 IDE2NCAmJiBoZWlnaHQgPj0gMTY0KQo+ICAJCQlpZ3RfcGFpbnRfY29sb3IoY3IsIDEwMCwgMTAw LCA2NCwgNjQsIDAuMCwgMC4wLCAwLjApOwo+IC0JCWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNy KSA9PSAwKTsKPiAtCQljYWlyb19kZXN0cm95KGNyKTsKPiArCQlpZ3RfcHV0X2NhaXJvX2N0eChk YXRhLT5kcm1fZmQsICZmYiwgY3IpOwo+ICAKPiAgCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAm ZmIpOwo+ICAJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9VTklW RVJTQUwpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxhbmVfbXVsdGlwbGUuYyBiL3Rlc3Rz L2ttc19wbGFuZV9tdWx0aXBsZS5jCj4gaW5kZXggYWVhNTlkZjg0ZDc2Li45NWI3MTM4NThlZGMg MTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX3BsYW5lX211bHRpcGxlLmMKPiArKysgYi90ZXN0cy9r bXNfcGxhbmVfbXVsdGlwbGUuYwo+IEBAIC0xNzMsOCArMTczLDcgQEAgY3JlYXRlX2ZiX2Zvcl9t b2RlX3Bvc2l0aW9uKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGRybU1vZGVN b2RlSW5mbwo+ICAJCQkJcmVjdF93W2ldLCByZWN0X2hbaV0sIDAuMCwgMC4wLCAwLjApOwo+ICAJ CX0KPiAgCj4gLQlpZ3RfYXNzZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7Cj4gLQljYWlyb19k ZXN0cm95KGNyKTsKPiArCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZi W3ByaW1hcnktPmluZGV4XSwgY3IpOwo+ICB9Cj4gIAo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv a21zX3BsYW5lX3NjYWxpbmcuYyBiL3Rlc3RzL2ttc19wbGFuZV9zY2FsaW5nLmMKPiBpbmRleCBj ODI4M2EzYjIzZDEuLmQzMmYzNDQxZThjOSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfcGxhbmVf c2NhbGluZy5jCj4gKysrIGIvdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYwo+IEBAIC0xMjAsOCAr MTIwLDcgQEAgc3RhdGljIHZvaWQgcGFpbnRfZmIoZGF0YV90ICpkLCBzdHJ1Y3QgaWd0X2ZiICpm YikKPiAgCj4gIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGQtPmRybV9mZCwgZmIpOwo+ICAJaWd0 X3BhaW50X2NvbG9yKGNyLCAwLCAwLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIDAuMCwgMS4wLCAw LjApOwo+IC0JaWd0X2Fzc2VydChjYWlyb19zdGF0dXMoY3IpID09IDApOwo+IC0JY2Fpcm9fZGVz dHJveShjcik7Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChkLT5kcm1fZmQsIGZiLCBjcik7Cj4gIH0K PiAgCj4gIHN0YXRpYyB2b2lkIGNoZWNrX3NjYWxpbmdfcGlwZV9wbGFuZV9yb3QoZGF0YV90ICpk LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19wc3Jfc2lua19j cmMuYyBiL3Rlc3RzL2ttc19wc3Jfc2lua19jcmMuYwo+IGluZGV4IDI2Y2Y0MzRhZjY0YS4uMmI2 MGFjZjM0ZTc3IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ttc19wc3Jfc2lua19jcmMuYwo+ICsrKyBi L3Rlc3RzL2ttc19wc3Jfc2lua19jcmMuYwo+IEBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyB2b2lk IGNyZWF0ZV9jdXJzb3JfZmIoZGF0YV90ICpkYXRhKQo+ICAKPiAgCWNyID0gaWd0X2dldF9jYWly b19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfd2hpdGUpOwo+ICAJaWd0X3BhaW50X2NvbG9y X2FscGhhKGNyLCAwLCAwLCA2NCwgNjQsIDEuMCwgMS4wLCAxLjAsIDEuMCk7Cj4gLQlpZ3RfYXNz ZXJ0KGNhaXJvX3N0YXR1cyhjcikgPT0gMCk7Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5k cm1fZmQsICZkYXRhLT5mYl93aGl0ZSwgY3IpOwo+ICB9Cj4gIAo+ICAKPiBkaWZmIC0tZ2l0IGEv dGVzdHMva21zX3JlbmRlci5jIGIvdGVzdHMva21zX3JlbmRlci5jCj4gaW5kZXggZDIyMDhlMzhm ODRlLi4yNWEwYzA1YjU0N2MgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX3JlbmRlci5jCj4gKysr IGIvdGVzdHMva21zX3JlbmRlci5jCj4gQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIGludCBwYWlu dF9mYihzdHJ1Y3QgaWd0X2ZiICpmYiwgY29uc3QgY2hhciAqdGVzdF9uYW1lLAo+ICAJaWd0X2Nh aXJvX3ByaW50Zl9saW5lKGNyLCBhbGlnbl9oY2VudGVyLCAxMCwgIiVzIiwgbW9kZV9mb3JtYXRf c3RyKTsKPiAgCWlndF9jYWlyb19wcmludGZfbGluZShjciwgYWxpZ25faGNlbnRlciwgMTAsICIl cyIsIGNjb25mX3N0cik7Cj4gIAo+IC0JY2Fpcm9fZGVzdHJveShjcik7Cj4gKwlpZ3RfcHV0X2Nh aXJvX2N0eChkcm1fZmQsIGZiLCBjcik7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0t Z2l0IGEvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jIGIvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5j Cj4gaW5kZXggNzk5Y2YxMTQyNTc5Li41YjE5MGEwZDAzY2IgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMv a21zX3JvdGF0aW9uX2NyYy5jCj4gKysrIGIvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jCj4gQEAg LTEyMCw3ICsxMjAsNyBAQCBwYWludF9zcXVhcmVzKGRhdGFfdCAqZGF0YSwgaWd0X3JvdGF0aW9u X3Qgcm90YXRpb24sCj4gIAlpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIGggLyAyLCB3IC8gMiwgaCAv IDIsIFJHQl9DT0xPUihibCkpOwo+ICAJaWd0X3BhaW50X2NvbG9yKGNyLCB3IC8gMiwgaCAvIDIs IHcgLyAyLCBoIC8gMiwgUkdCX0NPTE9SKGJyKSk7Cj4gIAo+IC0JY2Fpcm9fZGVzdHJveShjcik7 Cj4gKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsIGZiLCBjcik7Cj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkIHByZXBhcmVfY3J0YyhkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0 cHV0LCBlbnVtIHBpcGUgcGlwZSwKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3NldG1vZGUuYyBi L3Rlc3RzL2ttc19zZXRtb2RlLmMKPiBpbmRleCAyMDZkMzYwNjA3YmIuLjA2MjQxYjE5MWEwZiAx MDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfc2V0bW9kZS5jCj4gKysrIGIvdGVzdHMva21zX3NldG1v ZGUuYwo+IEBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIGludCBwYWludF9mYihzdHJ1Y3QgaWd0 X2ZiICpmYiwgY29uc3QgY2hhciAqdGVzdF9uYW1lLAo+ICAJCQkJCSAgY3J0Y19zdHJbaV0pOwo+ ICAJfQo+ICAKPiAtCWNhaXJvX2Rlc3Ryb3koY3IpOwo+ICsJaWd0X3B1dF9jYWlyb19jdHgoZHJt X2ZkLCBmYiwgY3IpOwo+ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L3Rlc3RkaXNwbGF5LmMgYi90ZXN0cy90ZXN0ZGlzcGxheS5jCj4gaW5kZXggYjAxNTZjNWNmMGUx Li4wZmY5OGEyYjcwNWUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvdGVzdGRpc3BsYXkuYwo+ICsrKyBi L3Rlc3RzL3Rlc3RkaXNwbGF5LmMKPiBAQCAtMjI3LDkgKzIyNyw3IEBAIHBhaW50X2NvbG9yX2tl eShzdHJ1Y3QgaWd0X2ZiICpmYl9pbmZvKQo+ICAJY2Fpcm9fc2V0X3NvdXJjZV9yZ2IoY3IsIC44 LCAuOCwgLjgpOwo+ICAJY2Fpcm9fZmlsbChjcik7Cj4gIAo+IC0JaWd0X2Fzc2VydCghY2Fpcm9f c3RhdHVzKGNyKSk7Cj4gLQo+IC0JY2Fpcm9fZGVzdHJveShjcik7Cj4gKwlpZ3RfcHV0X2NhaXJv X2N0eChkcm1fZmQsIGZiX2luZm8sIGNyKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgcGFpbnRf aW1hZ2UoY2Fpcm9fdCAqY3IsIGNvbnN0IGNoYXIgKmZpbGUpCj4gQEAgLTI5NCw5ICsyOTIsNyBA QCBzdGF0aWMgdm9pZCBwYWludF9vdXRwdXRfaW5mbyhzdHJ1Y3QgY29ubmVjdG9yICpjLCBzdHJ1 Y3QgaWd0X2ZiICpmYikKPiAgCWlmIChxcl9jb2RlKQo+ICAJCXBhaW50X2ltYWdlKGNyLCAicGFz cy5wbmciKTsKPiAgCj4gLQlpZ3RfYXNzZXJ0KCFjYWlyb19zdGF0dXMoY3IpKTsKPiAtCj4gLQlj YWlyb19kZXN0cm95KGNyKTsKPiArCWlndF9wdXRfY2Fpcm9fY3R4KGRybV9mZCwgZmIsIGNyKTsK PiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgc2lnaGFuZGxlcihpbnQgc2lnbm8pCj4gLS0gCj4gMi4x NS4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBpZ3QtZGV2IG1haWxpbmcgbGlzdAo+IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXYK