From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH i-g-t] tests/kms_fbc_crc.c: No longer dependant on Cairo A setup function that used to use Cairo to draw 2 rectangles covering the whole screen has been changed to use igt_draw Date: Wed, 20 Jan 2016 19:34:35 +0000 Message-ID: <1453318472.22174.93.camel@intel.com> References: <1452872548-4959-1-git-send-email-devon.davies@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id A936D6E199 for ; Wed, 20 Jan 2016 11:34:36 -0800 (PST) In-Reply-To: <1452872548-4959-1-git-send-email-devon.davies@intel.com> Content-Language: en-US Content-ID: <4EB3BC0E294E6D4794C45A448ED11BB2@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" , "Davies, Devon" Cc: "Vetter, Daniel" List-Id: intel-gfx@lists.freedesktop.org SGkNCg0KSW4gb3VyIElHVC9LZXJuZWwgY3VsdHVyZSwgcGF0Y2ggY29tbWl0IHRpdGxlcyAoaGVy ZSwgcHJlc2VudGVkIGFzIHRoZQ0KZW1haWwgc3ViamVjdCkgYXJlIHVzdWFsbHkgc21hbGwgKHVu ZGVyIDcwLTgwIGNoYXJzKSBwcm92aWRpbmcgYSBxdWljaw0Kc3VtbWFyeSBvZiB3aGF0IHRoZSBj aGFuZ2UgZG9lcy4NCg0KQWxzbywgd2UgdHJ5IHRvIG1ha2UgZWFjaCBwYXRjaCBjb250YWluIGEg c2luZ2xlIGxvZ2ljYWwgYW5kIGNvbXBsZXRlDQpjaGFuZ2UuIFNvLCBmb3IgZXhhbXBsZSwgb25l IGFwcHJvYWNoIHlvdSBjb3VsZCBoYXZlIHRha2VuIGhlcmUgd291bGQNCmJlOg0KwqAtIHBhdGNo IDE6IHVwZGF0ZSBsaWIvaWd0X2ZiLmMgc28gaXQgY29tcGlsZXMgb24gQW5kcm9pZCB3aXRob3V0 IGNhaXJvDQrCoC0gcGF0Y2ggMjogc29sdmUgdGhlIGZmcygpIHByb2JsZW0NCsKgLSBwYXRjaCAz OiBzb2x2ZSB0aGUgZHJtTW9kZVNldFBsYW5lKCkgcHJvYmxlbQ0KwqAtIHBhdGNoIDQ6IGNoYW5n ZSBrbXNfZmJjX2NyYyB0byBub3QgbmVlZCBjYWlybw0KwqAtIHBhdGNoIDU6IGNoYW5nZSB0aGUg YnVpbGQgc3lzdGVtIHNvIGl0IGNvbXBpbGVzIHRlc3RzIHRoYXQgbm93IHdvcmsNCm9uIEFuZHJv aWQNCg0KRm9sbG93aW5nIGlzIGFub3RoZXIgdGV4dCBleHBsYWluaW5nIHRoaXMgcGF0dGVybjoN Cmh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0taW50ZWwvdHJlZS9Eb2N1bWVudGF0aW9u L1N1Ym1pdHRpbmdQYXRjDQpoZXMjbjIwMQ0KDQoNCk5vdywgcmVnYXJkaW5nIHRoZSBBbmRyb2lk IHZzIENhaXJvIG1hY3JvczogSSBrbm93IHRoaXMgaGFzIGJlZW4NCmRpc2N1c3NlZCBpbiB0aGUg bWFpbGluZyBsaXN0IGEgZmV3IHRpbWVzIGJ1dCBJIGRpZG4ndCBmb2xsb3cgaXQNCmNsb3NlbHks IGFuZCBJR1QgZXZlbiBoYXMgdGhlIEFORFJPSURfSEFTX0NBSVJPIHN1cHBvcnQsIHNvIEknZCBs aWtlDQpEYW5pZWwgb3Igb3RoZXJzIHRvIGNvbW1lbnQgb24gdGhpcy4gRG8gd2Ugd2FudCB0aGUg aWZkZWYgZGFuY2UgaW4NCmlndF9mYj8gUGVyaGFwcyB3ZSBjb3VsZCBzcGxpdCB0aGUgbGlicyBp bnRvIGlndF9mYiBmb3IgdGhlIG5vbi1jYWlybw0KcGFydHMsIGFuZCBpZ3RfY2Fpcm8gZm9yIHRo ZSBjYWlybyBwYXJ0cz8gVGhlIGlndF9mYiBsaWJyYXJ5IGlzDQpkZWZpbml0ZWx5IHVzZWZ1bCB3 aXRob3V0IGNhaXJvLCBzbyB0aGlzIHdvdWxkIG1ha2Ugc2Vuc2UgdG8gbWUuIEJ1dA0KcGVyaGFw cyB3ZSB3YW50IHRvIGp1c3Qga2VlcCBldmVyeXRoaW5nIGFzLWlzIHNpbmNlIGl0J3MgcG9zc2li bGUgdG8NCmhhdmUgY2Fpcm8gb24gQW5kcm9pZD8NCg0KVGhlcmUgYXJlIHNvbWUgb3RoZXIgY29t bWVudHMgaW5saW5lLiBQbGVhc2Ugc2VlIGJlbG93Lg0KDQoNCkVtIFNleCwgMjAxNi0wMS0xNSDD oHMgMTU6NDIgKzAwMDAsIGRldm9uLmRhdmllc0BpbnRlbC5jb20gZXNjcmV2ZXU6DQo+IEZyb206 IERldm9uIERhdmllcyA8ZGV2b24uZGF2aWVzQGludGVsLmNvbT4NCj4gDQo+IHRlc3RzL2ttc19m cm9udGJ1ZmZlcl90cmFja2luZy5jOiBOb3cgYnVpbGRzIHdpdGggRFJNX1BSSU1BUllfRElTQUJM RQ0KPiDCoMKgwqDCoEVhY2ggY2FsbCB0byB0aGUgZnVuY3Rpb24gZHJtTW9kZVNldFBsYW5lIG5v dyBoYXMgYW4gYWRkdGlvbmFsDQo+IE5VTEwgaW4gdGhlDQo+IMKgwqDCoMKgYXJndW1lbnRzIGlm IERSTV9QUklNQVJZX0RJU0FCTEUgaXMgc2V0Lg0KPiANCj4gdGVzdHMvQW5kcm9pZC5tazogQWxs b3cgdGhlIGFib3ZlIHRlc3RzIHRvIGJlIGJ1aWx0IHdpdGhvdXQgQ2Fpcm8NCj4gwqDCoMKgwqBT aW1wbHkgcmVtb3ZlZCB0aGVtIGZyb20gdGhlIHRlc3RzIHRoZSBiZSBza2lwcGVkLg0KPiANCj4g bGlicy9pZ3Rfa21zLmM6IE5vdyBidWlsZHMgd2l0aCBEUk1fUFJJTUFSWV9ESVNBQkxFDQo+IMKg wqDCoMKgSSBoYWQgdG8gZGVmaW5lIGZmcyBhcyBfX2J1aWx0aW5fZnNzIGR1ZSB0byBjb21waWxl ciBpc3N1ZXMuDQo+IMKgwqDCoMKgRWFjaCBjYWxsIHRvIHRoZSBmdW5jdGlvbiBkcm1Nb2RlU2V0 UGxhbmUgbm93IGhhcyBhbiBhZGR0aW9uYWwNCj4gTlVMTCBpbiB0aGUNCj4gwqDCoMKgwqBhcmd1 bWVudHMgaWYgRFJNX1BSSU1BUllfRElTQUJMRSBpcyBzZXQuDQo+IA0KPiBsaWJzL2lndF9mYi5j OiBXaWxsIG5vdyBidWlsZCBzb21lIGZ1bmN0aW9ucyB3aXRob3V0IENhaXJvDQo+IMKgwqDCoMKg RnVuY3Rpb25zIHdoaWNoIGFyZW4ndCB1c2VkIGJ5IHRoZSBmcmFtZWJ1ZmZlciBjb21wcmVzc2lv biB0ZXN0cw0KPiBhcmUNCj4gwqDCoMKgwqBub3cgYmVoaW5kIGFuICNpZiAoIWRlZmluZWQoQU5E Uk9JRCkpIHx8IChkZWZpbmVkKEFORFJPSUQpICYmDQo+IMKgwqDCoMKgQU5EUk9JRF9IQVNfQ0FJ Uk8NCj4gDQo+IGxpYnMvQW5kcm9pZC5taw0KPiDCoMKgwqDCoGlndF9mYiBhbmQgaWd0X2ttcyBh cmUgbm8gbG9uZ2VyIGlnbm9yZWQgaWYgd2UgZG9uJ3QgaGF2ZSBDYWlyby4NCj4gDQo+IFRoZSB0 ZXN0cyBrbXNfZmJjX2NyYyBhbmQga21zX2Zyb250YnVmZmVyX3RyYWNraW5nIGhhZCBhbiB1bm5l Y2Vzc2FyeQ0KPiBkZXBlbmRhbmNlIG9uIHRoZSBDYWlybyBncmFwaGljcyBlbmdpbmUuDQo+IEFs c28sIGRybU1vZGVTZXRQbGFuZSBtYXkgaGF2ZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IGlmDQo+ IERSTV9QUklNQVJZX0RJU0FCTEUNCj4gaXMgc2V0IChhcyBpdCB3YXMgZm9yIG1lKSwgSSBoYXZl IGZpeGVkIHRoYXQgaXNzdWUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBEZXZvbiBEYXZpZXMgPGRl dm9uLmRhdmllc0BpbnRlbC5jb20+DQo+IC0tLQ0KPiDCoGxpYi9BbmRyb2lkLm1rwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDQgLS0NCj4gwqBsaWIvaWd0X2ZiLmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8IDI2ICsrKysrKysrKysr Ky0NCj4gwqBsaWIvaWd0X2ttcy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHwgMTUgKysrKysrLS0NCj4gwqB0ZXN0cy9BbmRyb2lkLm1rwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHzCoMKgNSArKysNCj4gwqB0ZXN0cy9rbXNfZmJjX2NyYy5jwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgMjAgKysrKysrLS0tLQ0KPiDCoHRlc3RzL2ttc19mcm9u dGJ1ZmZlcl90cmFja2luZy5jIHwgNzkNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLQ0KPiDCoDYgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDMwIGRl bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9BbmRyb2lkLm1rIGIvbGliL0FuZHJv aWQubWsNCj4gaW5kZXggYmFkZWMxZS4uYmJkYjA1MSAxMDA2NDQNCj4gLS0tIGEvbGliL0FuZHJv aWQubWsNCj4gKysrIGIvbGliL0FuZHJvaWQubWsNCj4gQEAgLTM3LDEwICszNyw2IEBAIGlmZXEg KCIke0FORFJPSURfSEFTX0NBSVJPfSIsICIxIikNCj4gwqDCoMKgwqDCoExPQ0FMX0NfSU5DTFVE RVMgKz0gJChBTkRST0lEX0JVSUxEX1RPUCkvZXh0ZXJuYWwvY2Fpcm8tDQo+IDEuMTIuMTYvc3Jj DQo+IMKgwqDCoMKgwqBMT0NBTF9DRkxBR1MgKz0gLURBTkRST0lEX0hBU19DQUlSTz0xIC1ESUdU X0RBVEFESVI9XCIuXCINCj4gLURJR1RfU1JDRElSPVwiLlwiDQo+IMKgZWxzZQ0KPiAtc2tpcF9s aWJfbGlzdCA6PSBcDQo+IC3CoMKgwqDCoGlndF9rbXMuYyBcDQo+IC3CoMKgwqDCoGlndF9rbXMu aCBcDQo+IC3CoMKgwqDCoGlndF9mYi5jDQo+IMKgwqDCoMKgwqAtREFORFJPSURfSEFTX0NBSVJP PTANCj4gwqBlbmRpZg0KPiDCoA0KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9mYi5jIGIvbGliL2ln dF9mYi5jDQo+IGluZGV4IGM5ODU4MjQuLjVhY2RhYTcgMTAwNjQ0DQo+IC0tLSBhL2xpYi9pZ3Rf ZmIuYw0KPiArKysgYi9saWIvaWd0X2ZiLmMNCj4gQEAgLTMzLDYgKzMzLDcgQEANCj4gwqAjaW5j bHVkZSAiaWd0X2ZiLmgiDQo+IMKgI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiDQo+IMKgDQo+ ICsNCg0KUGxlYXNlIGRvbid0IGFkZCByYW5kb20gbGluZXMgdG8gZmlsZXMuDQoNCg0KPiDCoC8q Kg0KPiDCoCAqIFNFQ1RJT046aWd0X2ZiDQo+IMKgICogQHNob3J0X2Rlc2NyaXB0aW9uOiBGcmFt ZWJ1ZmZlciBoYW5kbGluZyBhbmQgZHJhd2luZyBsaWJyYXJ5DQo+IEBAIC01MiwxMSArNTMsMjMg QEANCj4gwqAgKi8NCj4gwqANCj4gwqAvKiBkcm0gZm91cmNjL2NhaXJvIGZvcm1hdCBtYXBzICov DQo+ICsjaWYgKCFkZWZpbmVkKEFORFJPSUQpKSB8fCAoZGVmaW5lZChBTkRST0lEKSAmJiBBTkRS T0lEX0hBU19DQUlSTykNCj4gKw0KPiDCoCNkZWZpbmUgREYoZGlkLCBjaWQsIF9icHAsIF9kZXB0 aCkJXA0KPiDCoAl7IERSTV9GT1JNQVRfIyNkaWQsIENBSVJPX0ZPUk1BVF8jI2NpZCwgIyBkaWQs IF9icHAsIF9kZXB0aA0KPiB9DQo+ICsNCj4gKyNlbHNlDQo+ICsNCj4gKyNkZWZpbmUgREYoZGlk LCBjaWQsIF9icHAsIF9kZXB0aCkJXA0KPiArCXsgRFJNX0ZPUk1BVF8jI2RpZCwgIyBkaWQsIF9i cHAsIF9kZXB0aCB9DQo+ICsNCj4gKyNlbmRpZg0KPiArDQo+IMKgc3RhdGljIHN0cnVjdCBmb3Jt YXRfZGVzY19zdHJ1Y3Qgew0KPiDCoAl1aW50MzJfdCBkcm1faWQ7DQo+ICsjaWYgKCFkZWZpbmVk KEFORFJPSUQpKSB8fCAoZGVmaW5lZChBTkRST0lEKSAmJiBBTkRST0lEX0hBU19DQUlSTykNCj4g wqAJY2Fpcm9fZm9ybWF0X3QgY2Fpcm9faWQ7DQo+ICsjZW5kaWYNCj4gwqAJY29uc3QgY2hhciAq bmFtZTsNCj4gwqAJaW50IGJwcDsNCj4gwqAJaW50IGRlcHRoOw0KPiBAQCAtNzIsNyArODUsNiBA QCBzdGF0aWMgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCB7DQo+IMKgI2RlZmluZSBmb3JfZWFj aF9mb3JtYXQoZikJXA0KPiDCoAlmb3IgKGYgPSBmb3JtYXRfZGVzYzsgZiAtIGZvcm1hdF9kZXNj IDwNCj4gQVJSQVlfU0laRShmb3JtYXRfZGVzYyk7IGYrKykNCj4gwqANCj4gLQ0KDQpQbGVhc2Ug ZG9uJ3QgcmVtb3ZlIHJhbmRvbSBsaW5lcyBmcm9tIGZpbGVzLg0KDQoNCj4gwqAvKiBoZWxwZXJz IHRvIGNyZWF0ZSBuaWNlLWxvb2tpbmcgZnJhbWVidWZmZXJzICovDQo+IMKgc3RhdGljIGludCBj cmVhdGVfYm9fZm9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgYnBwLA0K PiDCoAkJCcKgwqDCoMKgdWludDY0X3QgdGlsaW5nLCB1bnNpZ25lZCBib19zaXplLA0KPiBAQCAt MTI1LDYgKzEzNyw4IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2JvX2Zvcl9mYihpbnQgZmQsIGludCB3 aWR0aCwNCj4gaW50IGhlaWdodCwgaW50IGJwcCwNCj4gwqAJcmV0dXJuIHJldDsNCj4gwqB9DQo+ IMKgDQo+ICsjaWYgKCFkZWZpbmVkKEFORFJPSUQpKSB8fCAoZGVmaW5lZChBTkRST0lEKSAmJiBB TkRST0lEX0hBU19DQUlSTykNCj4gKw0KPiDCoC8qKg0KPiDCoCAqIGlndF9wYWludF9jb2xvcjoN Cj4gwqAgKiBAY3I6IGNhaXJvIGRyYXdpbmcgY29udGV4dA0KPiBAQCAtMzk0LDYgKzQwOCw3IEBA IHZvaWQgaWd0X3BhaW50X2ltYWdlKGNhaXJvX3QgKmNyLCBjb25zdCBjaGFyDQo+ICpmaWxlbmFt ZSwNCj4gwqANCj4gwqAJZmNsb3NlKGYpOw0KPiDCoH0NCj4gKyNlbmRpZg0KPiDCoA0KPiDCoC8q Kg0KPiDCoCAqIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplOg0KPiBAQCAtNDk0LDYgKzUwOSw3 IEBAIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQNCj4g aGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsDQo+IMKgCXJldHVybiBpZ3RfY3JlYXRlX2ZiX3dpdGhf Ym9fc2l6ZShmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LA0KPiB0aWxpbmcsIGZiLA0KPiDCoAkJ CQkJwqDCoDAsIDApOw0KPiDCoH0NCj4gKyNpZiAoIWRlZmluZWQoQU5EUk9JRCkpIHx8IChkZWZp bmVkKEFORFJPSUQpICYmIEFORFJPSURfSEFTX0NBSVJPKQ0KPiDCoA0KPiDCoC8qKg0KPiDCoCAq IGlndF9jcmVhdGVfY29sb3JfZmI6DQo+IEBAIC05ODUsNiArMTAwMSw3IEBAIHZvaWQgaWd0X3dy aXRlX2ZiX3RvX3BuZyhpbnQgZmQsIHN0cnVjdCBpZ3RfZmINCj4gKmZiLCBjb25zdCBjaGFyICpm aWxlbmFtZSkNCj4gwqANCj4gwqAJaWd0X2Fzc2VydChzdGF0dXMgPT0gQ0FJUk9fU1RBVFVTX1NV Q0NFU1MpOw0KPiDCoH0NCj4gKyNlbmRpZg0KPiDCoA0KPiDCoC8qKg0KPiDCoCAqIGlndF9yZW1v dmVfZmI6DQo+IEBAIC05OTcsMTAgKzEwMTQsMTMgQEAgdm9pZCBpZ3Rfd3JpdGVfZmJfdG9fcG5n KGludCBmZCwgc3RydWN0IGlndF9mYg0KPiAqZmIsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQ0KPiDC oCAqLw0KPiDCoHZvaWQgaWd0X3JlbW92ZV9mYihpbnQgZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQ0K PiDCoHsNCj4gKyNpZiAoIWRlZmluZWQoQU5EUk9JRCkpIHx8IChkZWZpbmVkKEFORFJPSUQpICYm IEFORFJPSURfSEFTX0NBSVJPKQ0KPiDCoAljYWlyb19zdXJmYWNlX2Rlc3Ryb3koZmItPmNhaXJv X3N1cmZhY2UpOw0KPiArI2VuZGlmDQo+IMKgCWRvX29yX2RpZShkcm1Nb2RlUm1GQihmZCwgZmIt PmZiX2lkKSk7DQo+IMKgCWdlbV9jbG9zZShmZCwgZmItPmdlbV9oYW5kbGUpOw0KPiDCoH0NCj4g KyNpZiAoIWRlZmluZWQoQU5EUk9JRCkpIHx8IChkZWZpbmVkKEFORFJPSUQpICYmIEFORFJPSURf SEFTX0NBSVJPKQ0KPiDCoA0KPiDCoC8qKg0KPiDCoCAqIGlndF9icHBfZGVwdGhfdG9fZHJtX2Zv cm1hdDoNCj4gQEAgLTEwMjQsNiArMTA0NCw4IEBAIHVpbnQzMl90IGlndF9icHBfZGVwdGhfdG9f ZHJtX2Zvcm1hdChpbnQgYnBwLA0KPiBpbnQgZGVwdGgpDQo+IMKgCQnCoMKgwqDCoMKgZGVwdGgp Ow0KPiDCoH0NCj4gwqANCj4gKyNlbmRpZg0KPiArDQo+IMKgLyoqDQo+IMKgICogaWd0X2RybV9m b3JtYXRfdG9fYnBwOg0KPiDCoCAqIEBkcm1fZm9ybWF0OiBkcm0gZm91cmNjIHBpeGVsIGZvcm1h dCBjb2RlDQo+IEBAIC0xMDYyLDYgKzEwODQsNyBAQCBjb25zdCBjaGFyICppZ3RfZm9ybWF0X3N0 cih1aW50MzJfdCBkcm1fZm9ybWF0KQ0KPiDCoA0KPiDCoAlyZXR1cm4gImludmFsaWQiOw0KPiDC oH0NCj4gKyNpZiAoIWRlZmluZWQoQU5EUk9JRCkpIHx8IChkZWZpbmVkKEFORFJPSUQpICYmIEFO RFJPSURfSEFTX0NBSVJPKQ0KPiDCoA0KPiDCoC8qKg0KPiDCoCAqIGlndF9nZXRfYWxsX2Zvcm1h dHM6DQo+IEBAIC0xMDg5LDMgKzExMTIsNCBAQCB2b2lkIGlndF9nZXRfYWxsX2Zvcm1hdHMoY29u c3QgdWludDMyX3QNCj4gKipmb3JtYXRzLCBpbnQgKmZvcm1hdF9jb3VudCkNCj4gwqAJKmZvcm1h dHMgPSBkcm1fZm9ybWF0czsNCj4gwqAJKmZvcm1hdF9jb3VudCA9IEFSUkFZX1NJWkUoZm9ybWF0 X2Rlc2MpOw0KPiDCoH0NCj4gKyNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBi L2xpYi9pZ3Rfa21zLmMNCj4gaW5kZXggNDk3MTE4YS4uN2I2ODJjYiAxMDA2NDQNCj4gLS0tIGEv bGliL2lndF9rbXMuYw0KPiArKysgYi9saWIvaWd0X2ttcy5jDQo+IEBAIC00OSw2ICs0OSw4IEBA DQo+IMKgI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCINCj4gwqAjaW5jbHVkZSAiaWd0X2RlYnVn ZnMuaCINCj4gwqANCj4gKyNkZWZpbmUgZmZzIF9fYnVpbHRpbl9mZnMNCg0KQSBkZWZpbmUgbGlr ZSB0aGlzIGNhbiBiZSBkYW5nZXJvdXMuIFNob3VsZG4ndCB3ZSBqdXN0IGZpeCBhbGwgdGhlDQpj YWxsZXJzLCBzbyBjb2RlIHJlYWRlcnMga25vdyBleGFjdGx5IHdoaWNoIGZ1bmN0aW9uIGlzIGJl aW5nIHJ1bj8NCg0KT24gdGhlIG90aGVyIGhhbmQsIGl0IHNlZW1zIHRoYXQgdGhpcyBjaGFuZ2Ug d2lsbCByZXN0cmljdCB1cyB0byBnY2MtDQpvbmx5LiBTbyBtYXliZSB3ZSBjb3VsZCBqdXN0IGRl ZmluZSBmZnMgYXMgX19idWlsdGluX2ZmcyBpZiBBTkRST0lEIGlzDQpkZWZpbmVkPw0KDQoNCj4g Kw0KPiDCoC8qIGxpc3Qgb2YgY29ubmVjdG9ycyB0aGF0IG5lZWQgcmVzZXR0aW5nIG9uIGV4aXQg Ki8NCj4gwqAjZGVmaW5lIE1BWF9DT05ORUNUT1JTIDMyDQo+IMKgc3RhdGljIGNoYXIgKmZvcmNl ZF9jb25uZWN0b3JzW01BWF9DT05ORUNUT1JTICsgMV07DQo+IEBAIC0xMzU0LDggKzEzNTYsMTEg QEAgc3RhdGljIGludCBpZ3RfZHJtX3BsYW5lX2NvbW1pdChpZ3RfcGxhbmVfdA0KPiAqcGxhbmUs DQo+IMKgCQkJCcKgwqDCoMKgwqDCoElHVF9GSVhFRCgwLDApLCAvKiBzcmNfeCAqLw0KPiDCoAkJ CQnCoMKgwqDCoMKgwqBJR1RfRklYRUQoMCwwKSwgLyogc3JjX3kgKi8NCj4gwqAJCQkJwqDCoMKg wqDCoMKgSUdUX0ZJWEVEKDAsMCksIC8qIHNyY193ICovDQo+IC0JCQkJwqDCoMKgwqDCoMKgSUdU X0ZJWEVEKDAsMCkgLyogc3JjX2ggKi8pOw0KPiAtDQo+ICsJCQkJwqDCoMKgwqDCoMKgSUdUX0ZJ WEVEKDAsMCkgLyogc3JjX2ggKi8NCj4gKyNpZiBEUk1fUFJJTUFSWV9ESVNBQkxFDQo+ICsJCQkJ CcKgwqAsIE5VTEwNCj4gKyNlbmRpZg0KDQpJZiB3ZSdyZSBnb2luZyB0aGlzIHdheSwgbWF5YmUg dGhlIGJlc3QgYXBwcm9hY2ggd291bGQgYmUgdG8gYWRkIGENCndyYXBwZXIgKGlndF9rbXNfc2V0 X3BsYW5lPykgYW5kIG1ha2UgdGhlIGN1cnJlbnQgY2FsbGVycyB1c2UgaXQuDQoNCk9uIGEgc2lk ZSBub3RlOiB3aHkgaXMgQW5kcm9pZCBkaWZmZXJlbnQgaGVyZSE/DQoNCg0KVGhhbmtzLA0KUGF1 bG8NCg0KPiArCQkJCQnCoMKgKTsNCj4gwqAJCUNIRUNLX1JFVFVSTihyZXQsIGZhaWxfb25fZXJy b3IpOw0KPiDCoAl9IGVsc2UgaWYgKHBsYW5lLT5mYl9jaGFuZ2VkIHx8IHBsYW5lLT5wb3NpdGlv bl9jaGFuZ2VkIHx8DQo+IMKgCQlwbGFuZS0+c2l6ZV9jaGFuZ2VkKSB7DQo+IEBAIC0xMzg2LDcg KzEzOTEsMTEgQEAgc3RhdGljIGludCBpZ3RfZHJtX3BsYW5lX2NvbW1pdChpZ3RfcGxhbmVfdA0K PiAqcGxhbmUsDQo+IMKgCQkJCcKgwqDCoMKgwqDCoGNydGNfeCwgY3J0Y195LA0KPiDCoAkJCQnC oMKgwqDCoMKgwqBjcnRjX3csIGNydGNfaCwNCj4gwqAJCQkJwqDCoMKgwqDCoMKgc3JjX3gsIHNy Y195LA0KPiAtCQkJCcKgwqDCoMKgwqDCoHNyY193LCBzcmNfaCk7DQo+ICsJCQkJwqDCoMKgwqDC oMKgc3JjX3csIHNyY19oDQo+ICsjaWYgRFJNX1BSSU1BUllfRElTQUJMRQ0KPiArCQkJCQnCoMKg LCBOVUxMDQo+ICsjZW5kaWYNCj4gKwkJCQkJwqDCoCk7DQo+IMKgDQo+IMKgCQlDSEVDS19SRVRV Uk4ocmV0LCBmYWlsX29uX2Vycm9yKTsNCj4gwqAJfQ0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvQW5k cm9pZC5tayBiL3Rlc3RzL0FuZHJvaWQubWsNCj4gaW5kZXggODQ1NzEyNS4uZWIyODdhNiAxMDA2 NDQNCj4gLS0tIGEvdGVzdHMvQW5kcm9pZC5taw0KPiArKysgYi90ZXN0cy9BbmRyb2lkLm1rDQo+ IEBAIC02NSw2ICs2NSwxMSBAQCBlbHNlDQo+IMKgDQo+IMKgwqDCoMKgwqB0bXBfbGlzdCA6PSAk KGZvcmVhY2ggdGVzdF9uYW1lLCAkKFRFU1RTX3Byb2dzX00pLFwNCj4gwqDCoMKgwqDCoMKgwqDC oMKgJChpZiAkKGZpbmRzdHJpbmcga21zXywkKHRlc3RfbmFtZSkpLCQodGVzdF9uYW1lKSkpDQo+ ICsNCj4gKyMga21zX2ZiY19jcmMgYW5kIGttc19mcm9udGJ1ZmZlcl90cmFja2luZyBubyBsb25n ZXIgZGVwZW5kIG9uIENhaXJvDQo+ICvCoMKgwqDCoHRtcF9saXN0IDo9ICQoZmlsdGVyLW91dCBr bXNfZmJjX2NyYywgJCh0bXBfbGlzdCkpDQo+ICvCoMKgwqDCoHRtcF9saXN0IDo9ICQoZmlsdGVy LW91dCBrbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcsICQodG1wX2xpc3QpKQ0KPiArDQo+IMKgwqDC oMKgwqBza2lwX3Rlc3RzX2xpc3QgKz0gJCh0bXBfbGlzdCkNCj4gwqANCj4gwqDCoMKgwqDCoElH VF9MT0NBTF9DRkxBR1MgKz0gLURBTkRST0lEX0hBU19DQUlSTz0wDQo+IGRpZmYgLS1naXQgYS90 ZXN0cy9rbXNfZmJjX2NyYy5jIGIvdGVzdHMva21zX2ZiY19jcmMuYw0KPiBpbmRleCAwMmU5NWU1 Li43MTdlODkxIDEwMDY0NA0KPiAtLS0gYS90ZXN0cy9rbXNfZmJjX2NyYy5jDQo+ICsrKyBiL3Rl c3RzL2ttc19mYmNfY3JjLmMNCj4gQEAgLTMzNiwxNCArMzM2LDE4IEBAIHN0YXRpYyB2b2lkIGNy ZWF0ZV9mYnMoZGF0YV90ICpkYXRhLCBib29sDQo+IHRpbGVkLCBzdHJ1Y3QgaWd0X2ZiICpmYnMp DQo+IMKgCXVpbnQ2NF90IHRpbGluZyA9IHRpbGVkID8gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hf VElMRUQgOg0KPiDCoAkJCQnCoMKgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORTsNCj4gwqANCj4g LQlyYyA9IGlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLCBtb2RlLT5oZGlzcGxheSwg bW9kZS0NCj4gPnZkaXNwbGF5LA0KPiAtCQkJCcKgRFJNX0ZPUk1BVF9YUkdCODg4OCwgdGlsaW5n LA0KPiAtCQkJCcKgMC4wLCAwLjAsIDAuMCwgJmZic1swXSk7DQo+IC0JaWd0X2Fzc2VydChyYyk7 DQo+IC0JcmMgPSBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwgbW9kZS0+aGRpc3Bs YXksIG1vZGUtDQo+ID52ZGlzcGxheSwNCj4gLQkJCQnCoERSTV9GT1JNQVRfWFJHQjg4ODgsIHRp bGluZywNCj4gLQkJCQnCoDAuMSwgMC4xLCAwLjEsICZmYnNbMV0pOw0KPiAtCWlndF9hc3NlcnQo cmMpOw0KPiArCXVuc2lnbmVkIGludCBmYl9pZDsNCj4gKw0KPiArCWZiX2lkID0gaWd0X2NyZWF0 ZV9mYihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLQ0KPiA+dmRpc3BsYXksDQo+ ICsJCQkJRFJNX0ZPUk1BVF9YUkdCODg4OCwgdGlsaW5nLA0KPiAmZmJzWzBdKTsNCj4gKwlpZ3Rf YXNzZXJ0KGZiX2lkKTsNCj4gKwlpZ3RfZHJhd19maWxsX2ZiKGRhdGEtPmRybV9mZCwgJmZic1sw XSwgMCk7DQo+ICsNCj4gKwlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZGF0YS0+ZHJtX2ZkLCBtb2Rl LT5oZGlzcGxheSwgbW9kZS0NCj4gPnZkaXNwbGF5LA0KPiArCQkJCURSTV9GT1JNQVRfWFJHQjg4 ODgsIHRpbGluZywNCj4gJmZic1sxXSk7DQo+ICsJaWd0X2Fzc2VydChmYl9pZCk7DQo+ICsJaWd0 X2RyYXdfZmlsbF9mYihkYXRhLT5kcm1fZmQsICZmYnNbMV0sIDB4NzcpOw0KPiArDQo+IMKgfQ0K PiDCoA0KPiDCoC8qIFNpbmNlIHdlIHdhbnQgdG8gYmUgcmVhbGx5IHNhZmUgdGhhdCB0aGUgQ1JD cyBhcmUgYWN0dWFsbHkgd2hhdA0KPiB3ZSByZWFsbHkNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2tt c19mcm9udGJ1ZmZlcl90cmFja2luZy5jDQo+IGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNr aW5nLmMNCj4gaW5kZXggZTdhY2M3Yy4uZjhiOWVjYSAxMDA2NDQNCj4gLS0tIGEvdGVzdHMva21z X2Zyb250YnVmZmVyX3RyYWNraW5nLmMNCj4gKysrIGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3Ry YWNraW5nLmMNCj4gQEAgLTEwNzksNyArMTA3OSwxMSBAQCBzdGF0aWMgdm9pZCB1bnNldF9hbGxf Y3J0Y3Modm9pZCkNCj4gwqANCj4gwqAJZm9yIChpID0gMDsgaSA8IGRybS5wbGFuZV9yZXMtPmNv dW50X3BsYW5lczsgaSsrKSB7DQo+IMKgCQlyYyA9IGRybU1vZGVTZXRQbGFuZShkcm0uZmQsIGRy bS5wbGFuZV9yZXMtDQo+ID5wbGFuZXNbaV0sIDAsIDAsIDAsDQo+IC0JCQkJwqDCoMKgwqDCoDAs IDAsIDAsIDAsIDAsIDAsIDAsIDApOw0KPiArCQkJCcKgwqDCoMKgwqAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwDQo+ICsjaWYgRFJNX1BSSU1BUllfRElTQUJMRQ0KPiArCQkJCcKgwqDCoMKgwqAsIE5V TEwNCj4gKyNlbmRpZg0KPiArCQkJwqDCoMKgwqDCoCk7DQo+IMKgCQlpZ3RfYXNzZXJ0X2VxKHJj LCAwKTsNCj4gwqAJfQ0KPiDCoH0NCj4gQEAgLTE3MTUsNyArMTcxOSwxMSBAQCBzdGF0aWMgdm9p ZCBzZXRfc3ByaXRlX2Zvcl90ZXN0KGNvbnN0IHN0cnVjdA0KPiB0ZXN0X21vZGUgKnQsDQo+IMKg CQkJwqDCoMKgwqDCoHBhcmFtcy0+c3ByaXRlLmZiLT5mYl9pZCwgMCwgMCwgMCwNCj4gwqAJCQnC oMKgwqDCoMKgcGFyYW1zLT5zcHJpdGUudywgcGFyYW1zLT5zcHJpdGUuaCwNCj4gwqAJCQnCoMKg wqDCoMKgMCwgMCwgcGFyYW1zLT5zcHJpdGUudyA8PCAxNiwNCj4gLQkJCcKgwqDCoMKgwqBwYXJh bXMtPnNwcml0ZS5oIDw8IDE2KTsNCj4gKwkJCcKgwqDCoMKgwqBwYXJhbXMtPnNwcml0ZS5oIDw8 IDE2DQo+ICsjaWYgRFJNX1BSSU1BUllfRElTQUJMRQ0KPiArCQkJwqDCoMKgwqDCoCwgTlVMTA0K PiArI2VuZGlmDQo+ICsJCQnCoMKgwqDCoMKgKTsNCj4gwqAJaWd0X2Fzc2VydF9lcShyYywgMCk7 DQo+IMKgDQo+IMKgCWRvX2Fzc2VydGlvbnMoQVNTRVJUX05PX0FDVElPTl9DSEFOR0UpOw0KPiBA QCAtMjIyMCw3ICsyMjI4LDExIEBAIHN0YXRpYyB2b2lkIHNldF9wcmltX3BsYW5lX2Zvcl9wYXJh bXMoc3RydWN0DQo+IG1vZGVzZXRfcGFyYW1zICpwYXJhbXMpDQo+IMKgCQkJwqDCoMKgwqDCoHBh cmFtcy0+bW9kZS0+aGRpc3BsYXksDQo+IMKgCQkJwqDCoMKgwqDCoHBhcmFtcy0+bW9kZS0+dmRp c3BsYXksDQo+IMKgCQkJwqDCoMKgwqDCoHBhcmFtcy0+ZmIueCA8PCAxNiwgcGFyYW1zLT5mYi55 IDw8IDE2LA0KPiAtCQkJwqDCoMKgwqDCoHBhcmFtcy0+ZmIudyA8PCAxNiwgcGFyYW1zLT5mYi5o IDw8DQo+IDE2KTsNCj4gKwkJCcKgwqDCoMKgwqBwYXJhbXMtPmZiLncgPDwgMTYsIHBhcmFtcy0+ ZmIuaCA8PCAxNg0KPiArI2lmIERSTV9QUklNQVJZX0RJU0FCTEUNCj4gKwkJCcKgwqDCoMKgwqAs IE5VTEwNCj4gKyNlbmRpZg0KPiArCQkJwqDCoMKgwqDCoCk7DQo+IMKgCWlndF9hc3NlcnQocmMg PT0gMCk7DQo+IMKgfQ0KPiDCoA0KPiBAQCAtMjQwNiw3ICsyNDE4LDExIEBAIHN0YXRpYyB2b2lk IG1vdmVfc3VidGVzdChjb25zdCBzdHJ1Y3QNCj4gdGVzdF9tb2RlICp0KQ0KPiDCoAkJCQkJwqDC oMKgwqDCoHBhcmFtcy0+c3ByaXRlLmZiLQ0KPiA+ZmJfaWQsIDAsDQo+IMKgCQkJCQnCoMKgwqDC oMKgcmVjdC54LCByZWN0LnksIHJlY3QudywNCj4gwqAJCQkJCcKgwqDCoMKgwqByZWN0LmgsIDAs IDAsIHJlY3QudyA8PA0KPiAxNiwNCj4gLQkJCQkJwqDCoMKgwqDCoHJlY3QuaCA8PCAxNik7DQo+ ICsJCQkJCcKgwqDCoMKgwqByZWN0LmggPDwgMTYNCj4gKyNpZiBEUk1fUFJJTUFSWV9ESVNBQkxF DQo+ICsJCQkJCcKgwqDCoMKgwqAsIE5VTEwNCj4gKyNlbmRpZg0KPiArCQkJwqDCoMKgwqDCoCk7 DQo+IMKgCQkJaWd0X2Fzc2VydF9lcShyYywgMCk7DQo+IMKgCQkJYnJlYWs7DQo+IMKgCQlkZWZh dWx0Og0KPiBAQCAtMjQ2Myw4ICsyNDc5LDExIEBAIHN0YXRpYyB2b2lkIG9ub2ZmX3N1YnRlc3Qo Y29uc3Qgc3RydWN0DQo+IHRlc3RfbW9kZSAqdCkNCj4gwqAJCQkJYnJlYWs7DQo+IMKgCQkJY2Fz ZSBQTEFORV9TUFI6DQo+IMKgCQkJCXJjID0gZHJtTW9kZVNldFBsYW5lKGRybS5mZCwgcGFyYW1z LQ0KPiA+c3ByaXRlX2lkLA0KPiAtCQkJCQkJwqDCoMKgwqDCoDAsIDAsIDAsIDAsIDAsDQo+IDAs IDAsIDAsIDAsDQo+IC0JCQkJCQnCoMKgwqDCoMKgMCwgMCk7DQo+ICsJCQkJCQnCoMKgwqDCoMKg MCwgMCwgMCwgMCwgMCwNCj4gMCwgMCwgMCwgMCwgMCwgMA0KPiArI2lmIERSTV9QUklNQVJZX0RJ U0FCTEUNCj4gKwkJCQkJCcKgwqDCoMKgwqAsIE5VTEwNCj4gKyNlbmRpZg0KPiArCQkJwqDCoMKg wqDCoCk7DQo+IMKgCQkJCWlndF9hc3NlcnRfZXEocmMsIDApOw0KPiDCoAkJCQlicmVhazsNCj4g wqAJCQlkZWZhdWx0Og0KPiBAQCAtMjQ4OSw3ICsyNTA4LDExIEBAIHN0YXRpYyB2b2lkIG9ub2Zm X3N1YnRlc3QoY29uc3Qgc3RydWN0DQo+IHRlc3RfbW9kZSAqdCkNCj4gwqAJCQkJCQnCoMKgwqDC oMKgcGFyYW1zLQ0KPiA+c3ByaXRlLmgsIDAsDQo+IMKgCQkJCQkJwqDCoMKgwqDCoDAsDQo+IMKg CQkJCQkJwqDCoMKgwqDCoHBhcmFtcy0NCj4gPnNwcml0ZS53IDw8IDE2LA0KPiAtCQkJCQkJwqDC oMKgwqDCoHBhcmFtcy0NCj4gPnNwcml0ZS5oIDw8IDE2KTsNCj4gKwkJCQkJCcKgwqDCoMKgwqBw YXJhbXMtDQo+ID5zcHJpdGUuaCA8PCAxNg0KPiArI2lmIERSTV9QUklNQVJZX0RJU0FCTEUNCj4g KwkJCQkJCcKgwqDCoMKgwqAsIE5VTEwNCj4gKyNlbmRpZg0KPiArCQkJwqDCoMKgwqDCoCk7DQo+ IMKgCQkJCWlndF9hc3NlcnRfZXEocmMsIDApOw0KPiDCoAkJCQlicmVhazsNCj4gwqAJCQlkZWZh dWx0Og0KPiBAQCAtMjU2MSw3ICsyNTg0LDExIEBAIHN0YXRpYyB2b2lkIGZ1bGxzY3JlZW5fcGxh bmVfc3VidGVzdChjb25zdA0KPiBzdHJ1Y3QgdGVzdF9tb2RlICp0KQ0KPiDCoAkJCcKgwqDCoMKg wqBmdWxsc2NyZWVuX2ZiLmZiX2lkLCAwLCAwLCAwLA0KPiBmdWxsc2NyZWVuX2ZiLndpZHRoLA0K PiDCoAkJCcKgwqDCoMKgwqBmdWxsc2NyZWVuX2ZiLmhlaWdodCwgMCwgMCwNCj4gwqAJCQnCoMKg wqDCoMKgZnVsbHNjcmVlbl9mYi53aWR0aCA8PCAxNiwNCj4gLQkJCcKgwqDCoMKgwqBmdWxsc2Ny ZWVuX2ZiLmhlaWdodCA8PCAxNik7DQo+ICsJCQnCoMKgwqDCoMKgZnVsbHNjcmVlbl9mYi5oZWln aHQgPDwgMTYNCj4gKyNpZiBEUk1fUFJJTUFSWV9ESVNBQkxFDQo+ICsJCQnCoMKgwqDCoMKgLCBO VUxMDQo+ICsjZW5kaWYNCj4gKwkJCcKgwqDCoMKgwqApOw0KPiDCoAlpZ3RfYXNzZXJ0X2VxKHJj LCAwKTsNCj4gwqAJdXBkYXRlX3dhbnRlZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0 XVswXSk7DQo+IMKgDQo+IEBAIC0yNTgxLDcgKzI2MDgsMTEgQEAgc3RhdGljIHZvaWQgZnVsbHNj cmVlbl9wbGFuZV9zdWJ0ZXN0KGNvbnN0DQo+IHN0cnVjdCB0ZXN0X21vZGUgKnQpDQo+IMKgCWRv X2Fzc2VydGlvbnMoYXNzZXJ0aW9ucyk7DQo+IMKgDQo+IMKgCXJjID0gZHJtTW9kZVNldFBsYW5l KGRybS5mZCwgcGFyYW1zLT5zcHJpdGVfaWQsIDAsIDAsIDAsIDAsDQo+IDAsIDAsIDAsIDAsDQo+ IC0JCQnCoMKgwqDCoMKgMCwgMCwgMCk7DQo+ICsJCQnCoMKgwqDCoMKgMCwgMCwgMA0KPiArI2lm IERSTV9QUklNQVJZX0RJU0FCTEUNCj4gKwkJCcKgwqDCoMKgwqAsIE5VTEwNCj4gKyNlbmRpZg0K PiArCQkJwqDCoMKgwqDCoCk7DQo+IMKgCWlndF9hc3NlcnRfZXEocmMsIDApOw0KPiDCoA0KPiDC oAlpZiAodC0+c2NyZWVuID09IFNDUkVFTl9QUklNKQ0KPiBAQCAtMjY1Nyw3ICsyNjg4LDExIEBA IHN0YXRpYyB2b2lkIHNjYWxlZHByaW1hcnlfc3VidGVzdChjb25zdCBzdHJ1Y3QNCj4gdGVzdF9t b2RlICp0KQ0KPiDCoAkJCcKgwqDCoMKgwqAwLCAwLA0KPiDCoAkJCcKgwqDCoMKgwqBwYXJhbXMt Pm1vZGUtPmhkaXNwbGF5LCBwYXJhbXMtPm1vZGUtDQo+ID52ZGlzcGxheSwNCj4gwqAJCQnCoMKg wqDCoMKgcGFyYW1zLT5mYi54IDw8IDE2LCBwYXJhbXMtPmZiLnkgPDwgMTYsDQo+IC0JCQnCoMKg wqDCoMKgcGFyYW1zLT5mYi53IDw8IDE2LCBwYXJhbXMtPmZiLmggPDwNCj4gMTYpOw0KPiArCQkJ wqDCoMKgwqDCoHBhcmFtcy0+ZmIudyA8PCAxNiwgcGFyYW1zLT5mYi5oIDw8IDE2DQo+ICsjaWYg RFJNX1BSSU1BUllfRElTQUJMRQ0KPiArCQkJwqDCoMKgwqDCoCwgTlVMTA0KPiArI2VuZGlmDQo+ ICsJCQnCoMKgwqDCoMKgKTsNCj4gwqAJaWd0X2Fzc2VydChyYyA9PSAwKTsNCj4gwqAJZG9fYXNz ZXJ0aW9ucyhET05UX0FTU0VSVF9DUkMpOw0KPiDCoA0KPiBAQCAtMjY2OCw3ICsyNzAzLDExIEBA IHN0YXRpYyB2b2lkIHNjYWxlZHByaW1hcnlfc3VidGVzdChjb25zdCBzdHJ1Y3QNCj4gdGVzdF9t b2RlICp0KQ0KPiDCoAkJCcKgwqDCoMKgwqBwYXJhbXMtPm1vZGUtPmhkaXNwbGF5LCBwYXJhbXMt Pm1vZGUtDQo+ID52ZGlzcGxheSwNCj4gwqAJCQnCoMKgwqDCoMKgcGFyYW1zLT5mYi54IDw8IDE2 LCBwYXJhbXMtPmZiLnkgPDwgMTYsDQo+IMKgCQkJwqDCoMKgwqDCoChwYXJhbXMtPmZiLncgLyAy KSA8PCAxNiwNCj4gLQkJCcKgwqDCoMKgwqAocGFyYW1zLT5mYi5oIC8gMikgPDwgMTYpOw0KPiAr CQkJwqDCoMKgwqDCoChwYXJhbXMtPmZiLmggLyAyKSA8PCAxNg0KPiArI2lmIERSTV9QUklNQVJZ X0RJU0FCTEUNCj4gKwkJCcKgwqDCoMKgwqAsIE5VTEwNCj4gKyNlbmRpZg0KPiArCQkJwqDCoMKg wqDCoCk7DQo+IMKgCWlndF9hc3NlcnQocmMgPT0gMCk7DQo+IMKgCWRvX2Fzc2VydGlvbnMoRE9O VF9BU1NFUlRfQ1JDKTsNCj4gwqANCj4gQEAgLTI2ODEsNyArMjcyMCwxMSBAQCBzdGF0aWMgdm9p ZCBzY2FsZWRwcmltYXJ5X3N1YnRlc3QoY29uc3Qgc3RydWN0DQo+IHRlc3RfbW9kZSAqdCkNCj4g wqAJCQnCoMKgwqDCoMKgcGFyYW1zLT5tb2RlLT52ZGlzcGxheSAvIDIsDQo+IMKgCQkJwqDCoMKg wqDCoHBhcmFtcy0+ZmIueCA8PCAxNiwgcGFyYW1zLT5mYi55IDw8IDE2LA0KPiDCoAkJCcKgwqDC oMKgwqAocGFyYW1zLT5mYi53IC8gMikgPDwgMTYsDQo+IC0JCQnCoMKgwqDCoMKgKHBhcmFtcy0+ ZmIuaCAvIDIpIDw8IDE2KTsNCj4gKwkJCcKgwqDCoMKgwqAocGFyYW1zLT5mYi5oIC8gMikgPDwg MTYNCj4gKyNpZiBEUk1fUFJJTUFSWV9ESVNBQkxFDQo+ICsJCQnCoMKgwqDCoMKgLCBOVUxMDQo+ ICsjZW5kaWYNCj4gKwkJCcKgwqDCoMKgwqApOw0KPiDCoAlpZ3RfYXNzZXJ0KHJjID09IDApOw0K PiDCoAlkb19hc3NlcnRpb25zKERPTlRfQVNTRVJUX0NSQyk7DQo+IMKgDQo+IEBAIC0yNjk1LDcg KzI3MzgsMTEgQEAgc3RhdGljIHZvaWQgc2NhbGVkcHJpbWFyeV9zdWJ0ZXN0KGNvbnN0IHN0cnVj dA0KPiB0ZXN0X21vZGUgKnQpDQo+IMKgCQkJwqDCoMKgwqDCoChwYXJhbXMtPmZiLnggKyBwYXJh bXMtPmZiLncgLyAyKSA8PA0KPiAxNiwNCj4gwqAJCQnCoMKgwqDCoMKgKHBhcmFtcy0+ZmIueSAr IHBhcmFtcy0+ZmIuaCAvIDIpIDw8DQo+IDE2LA0KPiDCoAkJCcKgwqDCoMKgwqAocGFyYW1zLT5m Yi53IC8gNCkgPDwgMTYsDQo+IC0JCQnCoMKgwqDCoMKgKHBhcmFtcy0+ZmIuaCAvIDQpIDw8IDE2 KTsNCj4gKwkJCcKgwqDCoMKgwqAocGFyYW1zLT5mYi5oIC8gNCkgPDwgMTYNCj4gKyNpZiBEUk1f UFJJTUFSWV9ESVNBQkxFDQo+ICsJCQnCoMKgwqDCoMKgLCBOVUxMDQo+ICsjZW5kaWYNCj4gKwkJ CcKgwqDCoMKgwqApOw0KPiDCoAlpZ3RfYXNzZXJ0KHJjID09IDApOw0KPiDCoAlkb19hc3NlcnRp b25zKERPTlRfQVNTRVJUX0NSQyk7DQo+IMKgDQo+IEBAIC0yNzA1LDcgKzI3NTIsMTEgQEAgc3Rh dGljIHZvaWQgc2NhbGVkcHJpbWFyeV9zdWJ0ZXN0KGNvbnN0IHN0cnVjdA0KPiB0ZXN0X21vZGUg KnQpDQo+IMKgCQkJwqDCoMKgwqDCoDAsIDAsDQo+IMKgCQkJwqDCoMKgwqDCoHBhcmFtcy0+bW9k ZS0+aGRpc3BsYXksIHBhcmFtcy0+bW9kZS0NCj4gPnZkaXNwbGF5LA0KPiDCoAkJCcKgwqDCoMKg wqBwYXJhbXMtPmZiLnggPDwgMTYsIHBhcmFtcy0+ZmIueSA8PCAxNiwNCj4gLQkJCcKgwqDCoMKg wqBwYXJhbXMtPmZiLncgPDwgMTYsIHBhcmFtcy0+ZmIuaCA8PA0KPiAxNik7DQo+ICsJCQnCoMKg wqDCoMKgcGFyYW1zLT5mYi53IDw8IDE2LCBwYXJhbXMtPmZiLmggPDwgMTYNCj4gKyNpZiBEUk1f UFJJTUFSWV9ESVNBQkxFDQo+ICsJCQnCoMKgwqDCoMKgLCBOVUxMDQo+ICsjZW5kaWYNCj4gKwkJ CcKgwqDCoMKgwqApOw0KPiDCoAlpZ3RfYXNzZXJ0KHJjID09IDApOw0KPiDCoAlkb19hc3NlcnRp b25zKDApOw0KPiDCoApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=