From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 630A089BF4 for ; Tue, 16 Apr 2019 12:27:30 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id k45so17709867edb.6 for ; Tue, 16 Apr 2019 05:27:30 -0700 (PDT) Date: Tue, 16 Apr 2019 14:27:25 +0200 From: Daniel Vetter Message-ID: <20190416122725.GI13337@phenom.ffwll.local> References: <20190403125450.17648-1-stanislav.lisovskiy@intel.com> <20190403125450.17648-3-stanislav.lisovskiy@intel.com> <20190403141110.GK2665@phenom.ffwll.local> <20190404125627.GT2665@phenom.ffwll.local> <56e0ecdaf47e35012af9e57962e63dde29d9e281.camel@intel.com> <20190416085207.GE13337@phenom.ffwll.local> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [igt-dev] [PATCH i-g-t v4 2/2] igt/tests/kms_atomic_transition: Tolerate if can't have all planes 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: "Lisovskiy, Stanislav" Cc: "Peres, Martin" , "igt-dev@lists.freedesktop.org" , "daniel@ffwll.ch" List-ID: T24gVHVlLCBBcHIgMTYsIDIwMTkgYXQgMDk6MDc6NTJBTSArMDAwMCwgTGlzb3Zza2l5LCBTdGFu aXNsYXYgd3JvdGU6Cj4gT24gVHVlLCAyMDE5LTA0LTE2IGF0IDEwOjUyICswMjAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4gT24gRnJpLCBBcHIgMDUsIDIwMTkgYXQgMDc6MjA6MTVBTSArMDAw MCwgTGlzb3Zza2l5LCBTdGFuaXNsYXYgd3JvdGU6Cj4gPiA+IE9uIFRodSwgMjAxOS0wNC0wNCBh dCAxNDo1NiArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gPiBPbiBUaHUsIEFwciAw NCwgMjAxOSBhdCAxMTo0NTowM0FNICswMDAwLCBMaXNvdnNraXksIFN0YW5pc2xhdgo+ID4gPiA+ IHdyb3RlOgo+ID4gPiA+ID4gT24gV2VkLCAyMDE5LTA0LTAzIGF0IDE2OjExICswMjAwLCBEYW5p ZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+ID4gPiBPbiBXZWQsIEFwciAwMywgMjAxOSBhdCAwMzo1 NDo1MFBNICswMzAwLCBTdGFuaXNsYXYgTGlzb3Zza2l5Cj4gPiA+ID4gPiA+IHdyb3RlOgo+ID4g PiA+ID4gPiA+IFdpdGggc29tZSB1cGNvbWluZyBjaGFuZ2VzIGk5MTUgbWlnaHQgbm90IGFsbG93 Cj4gPiA+ID4gPiA+ID4gYWxsIHNwcml0ZSBwbGFuZXMgZW5hYmxlZCwgZGVwZW5kaW5nIG9uIGF2 YWlsYWJsZQo+ID4gPiA+ID4gPiA+IGJhbmR3aWR0aCBsaW1pdGF0aW9uLiBUaHVzIHRoZSB0ZXN0 IG5lZWQgdG8gZGVjcmVtZW50Cj4gPiA+ID4gPiA+ID4gYW1vdW50IG9mIHBsYW5lcyBhbmQgdHJ5 IGFnYWluLCBpbnN0ZWFkIG9mIHBhbmlja2luZy4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g PiB2MjogUmVtb3ZlZCBleGNlc3NpdmUgbmVzdGVkIGNvbmRpdGlvbnMsIG1ha2luZyBjb2RlIGEg Yml0Cj4gPiA+ID4gPiA+ID4gICAgIG1vcmUgcmVhZGFibGUoaG9wZWZ1bGx5KS4KPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiB2MzogU3RvcHBlZCB1c2luZyBnbG9iYWwgbl9wbGFuZXMgdmFy aWFibGUgYXMgaXQgbWlnaHQKPiA+ID4gPiA+ID4gPiBjYXVzZQo+ID4gPiA+ID4gPiA+ICAgICBy ZXNvdXJjZXMgYmVpbmcgdW5yZWxlYXNlZC4KPiA+ID4gPiA+ID4gPiAgICAgVXNpbmcgbm93IHBh cm1zW2ldLm1hc2sgYXMgYSB3YXkgdG8gZGV0ZXJtaW5lIGlmIHBsYW5lCj4gPiA+ID4gPiA+ID4g ICAgIGhhcyB0byBiZSBpbmNsdWRlZCBpbnRvIGNvbW1pdC4KPiA+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gPiB2NDogUmVtb3ZlZCB1bm5lZWRlZCBuX292ZXJsYXlzIGluaXRpYWxpemF0aW9uLgo+ ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdiBMaXNv dnNraXkgPAo+ID4gPiA+ID4gPiA+IHN0YW5pc2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgo+ID4g PiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ICB0ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRpb24u YyB8IDEwNyArKysrKysrKysrKysrKysrKy0tLS0tCj4gPiA+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ ID4gPiA+IC0tLS0KPiA+ID4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiA+ID4gIDEgZmlsZSBjaGFu Z2VkLCA1NSBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2F0b21pY190cmFuc2l0aW9uLmMKPiA+ ID4gPiA+ID4gPiBiL3Rlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jCj4gPiA+ID4gPiA+ID4g aW5kZXggNjM4ZmUxN2UuLmEwNDIyMGYzIDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL3Rlc3Rz L2ttc19hdG9taWNfdHJhbnNpdGlvbi5jCj4gPiA+ID4gPiA+ID4gKysrIGIvdGVzdHMva21zX2F0 b21pY190cmFuc2l0aW9uLmMKPiA+ID4gPiA+ID4gPiBAQCAtMjEyLDkgKzIxMiwxMSBAQCBzdGF0 aWMgdm9pZCBzZXR1cF9wYXJtcyhpZ3RfZGlzcGxheV90Cj4gPiA+ID4gPiA+ID4gKmRpc3BsYXks IGVudW0gcGlwZSBwaXBlLAo+ID4gPiA+ID4gPiA+ICAJdW5zaWduZWQgc3ByaXRlX3dpZHRoLCBz cHJpdGVfaGVpZ2h0LCBwcmV2X3csIHByZXZfaDsKPiA+ID4gPiA+ID4gPiAgCWJvb2wgbWF4X3Nw cml0ZV93aWR0aCwgbWF4X3Nwcml0ZV9oZWlnaHQsIGFscGhhID0gdHJ1ZTsKPiA+ID4gPiA+ID4g PiAgCXVpbnQzMl90IG5fcGxhbmVzID0gZGlzcGxheS0+cGlwZXNbcGlwZV0ubl9wbGFuZXM7Cj4g PiA+ID4gPiA+ID4gLQl1aW50MzJfdCBuX292ZXJsYXlzID0gMCwgb3ZlcmxheXNbbl9wbGFuZXNd Owo+ID4gPiA+ID4gPiA+ICsJdWludDMyX3Qgbl9vdmVybGF5cywgb3ZlcmxheXNbbl9wbGFuZXNd Owo+ID4gPiA+ID4gPiA+ICAJaWd0X3BsYW5lX3QgKnBsYW5lOwo+ID4gPiA+ID4gPiA+IC0JdWlu dDMyX3QgaXRlcl9tYXNrID0gMzsKPiA+ID4gPiA+ID4gPiArCXVpbnQzMl90IGl0ZXJfbWFzazsK PiA+ID4gPiA+ID4gPiArCWludCByZXRyaWVzID0gbl9wbGFuZXMgLSAxOwo+ID4gPiA+ID4gPiA+ ICsJaW50IHJldCA9IDA7Cj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+ICAJZG9fb3JfZGll KGRybUdldENhcChkaXNwbGF5LT5kcm1fZmQsCj4gPiA+ID4gPiA+ID4gRFJNX0NBUF9DVVJTT1Jf V0lEVEgsCj4gPiA+ID4gPiA+ID4gJmN1cnNvcl93aWR0aCkpOwo+ID4gPiA+ID4gPiA+ICAJaWYg KGN1cnNvcl93aWR0aCA+PSBtb2RlLT5oZGlzcGxheSkKPiA+ID4gPiA+ID4gPiBAQCAtMjI0LDYg KzIyNiwxMCBAQCBzdGF0aWMgdm9pZCBzZXR1cF9wYXJtcyhpZ3RfZGlzcGxheV90Cj4gPiA+ID4g PiA+ID4gKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLAo+ID4gPiA+ID4gPiA+ICAJaWYgKGN1cnNv cl9oZWlnaHQgPj0gbW9kZS0+dmRpc3BsYXkpCj4gPiA+ID4gPiA+ID4gIAkJY3Vyc29yX2hlaWdo dCA9IG1vZGUtPnZkaXNwbGF5Owo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiArcmV0cnk6 Cj4gPiA+ID4gPiA+ID4gKwluX292ZXJsYXlzID0gMDsKPiA+ID4gPiA+ID4gPiArCWl0ZXJfbWFz ayA9IDM7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICAJZm9yX2VhY2hfcGxhbmVfb25f cGlwZShkaXNwbGF5LCBwaXBlLCBwbGFuZSkgewo+ID4gPiA+ID4gPiA+ICAJCWludCBpID0gcGxh bmUtPmluZGV4Owo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiBAQCAtMjM4LDEyICsyNDQs MTYgQEAgc3RhdGljIHZvaWQgc2V0dXBfcGFybXMoaWd0X2Rpc3BsYXlfdAo+ID4gPiA+ID4gPiA+ ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwKPiA+ID4gPiA+ID4gPiAgCQkJcGFybXNbaV0uaGVp Z2h0ID0gY3Vyc29yX2hlaWdodDsKPiA+ID4gPiA+ID4gPiAgCQkJcGFybXNbaV0ubWFzayA9IDEg PDwgMTsKPiA+ID4gPiA+ID4gPiAgCQl9IGVsc2Ugewo+ID4gPiA+ID4gPiA+IC0JCQlwYXJtc1tp XS5mYiA9IHNwcml0ZV9mYjsKPiA+ID4gPiA+ID4gPiAtCQkJcGFybXNbaV0ubWFzayA9IDEgPDwg MjsKPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gLQkJCWl0ZXJfbWFzayB8PSAxIDw8IDI7 Cj4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+IC0JCQlvdmVybGF5c1tuX292ZXJsYXlzKytd ID0gaTsKPiA+ID4gPiA+ID4gPiArCQkJaWYgKG5fb3ZlcmxheXMgPCAobl9wbGFuZXMgLSAyKSkg ewo+ID4gPiA+ID4gPiA+ICsJCQkJcGFybXNbaV0uZmIgPSBzcHJpdGVfZmI7Cj4gPiA+ID4gPiA+ ID4gKwkJCQlwYXJtc1tpXS5tYXNrID0gMSA8PCAyOwo+ID4gPiA+ID4gPiA+ICsJCQkJaXRlcl9t YXNrIHw9IDEgPDwgMjsKPiA+ID4gPiA+ID4gPiArCQkJCW92ZXJsYXlzW25fb3ZlcmxheXMrK10g PSBpOwo+ID4gPiA+ID4gPiA+ICsJCQl9Cj4gPiA+ID4gPiA+ID4gKwkJCWVsc2Ugewo+ID4gPiA+ ID4gPiA+ICsJCQkJcGFybXNbaV0uZmIgPSBOVUxMOwo+ID4gPiA+ID4gPiA+ICsJCQkJcGFybXNb aV0ubWFzayA9IDA7Cj4gPiA+ID4gPiA+ID4gKwkJCX0KPiA+ID4gPiA+ID4gPiAgCQl9Cj4gPiA+ ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+IEBAIC0yNzgsMTYgKzI4 OCwxMyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9wYXJtcyhpZ3RfZGlzcGxheV90Cj4gPiA+ID4gPiA+ ID4gKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLAo+ID4gPiA+ID4gPiA+ICAJICogUHJlIGdlbjkg bm90IGFsbCBzaXplcyBhcmUgc3VwcG9ydGVkLCBmaW5kIHRoZQo+ID4gPiA+ID4gPiA+IGJpZ2dl c3QKPiA+ID4gPiA+ID4gPiBwb3NzaWJsZQo+ID4gPiA+ID4gPiA+ICAJICogc2l6ZSB0aGF0IGNh biBiZSBlbmFibGVkIG9uIGFsbCBzcHJpdGUgcGxhbmVzLgo+ID4gPiA+ID4gPiA+ICAJICovCj4g PiA+ID4gPiA+ID4gLXJldHJ5Ogo+ID4gPiA+ID4gPiA+ICAJcHJldl93ID0gc3ByaXRlX3dpZHRo ID0gY3Vyc29yX3dpZHRoOwo+ID4gPiA+ID4gPiA+ICAJcHJldl9oID0gc3ByaXRlX2hlaWdodCA9 IGN1cnNvcl9oZWlnaHQ7Cj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+ICAJbWF4X3Nwcml0 ZV93aWR0aCA9IChzcHJpdGVfd2lkdGggPT0gbW9kZS0+aGRpc3BsYXkpOwo+ID4gPiA+ID4gPiA+ ICAJbWF4X3Nwcml0ZV9oZWlnaHQgPSAoc3ByaXRlX2hlaWdodCA9PSBtb2RlLT52ZGlzcGxheSk7 Cj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+IC0Jd2hpbGUgKDEpIHsKPiA+ID4gPiA+ID4g PiAtCQlpbnQgcmV0Owo+ID4gPiA+ID4gPiA+IC0KPiA+ID4gPiA+ID4gPiArCXdoaWxlICghbWF4 X3Nwcml0ZV93aWR0aCAmJiAhbWF4X3Nwcml0ZV9oZWlnaHQpIHsKPiA+ID4gPiA+ID4gPiAgCQlz ZXRfc3ByaXRlX3doKGRpc3BsYXksIHBpcGUsIHBhcm1zLCBzcHJpdGVfZmIsCj4gPiA+ID4gPiA+ ID4gIAkJCSAgICAgIGFscGhhLCBzcHJpdGVfd2lkdGgsCj4gPiA+ID4gPiA+ID4gc3ByaXRlX2hl aWdodCk7Cj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+IEBAIC0yOTUsNTQgKzMwMiw0OSBA QCByZXRyeToKPiA+ID4gPiA+ID4gPiAgCQlyZXQgPSBpZ3RfZGlzcGxheV90cnlfY29tbWl0X2F0 b21pYyhkaXNwbGF5LAo+ID4gPiA+ID4gPiA+IERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgfCBE Uk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwKPiA+ID4gPiA+ID4gPiBOVUxMKTsKPiA+ID4g PiA+ID4gPiAgCQlpZ3RfYXNzZXJ0KCFpc19hdG9taWNfY2hlY2tfZmFpbHVyZV9lcnJubyhyZXQp KQo+ID4gPiA+ID4gPiA+IDsKPiA+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ID4gLQkJaWYgKGlz X2F0b21pY19jaGVja19wbGFuZV9zaXplX2Vycm5vKHJldCkpIHsKPiA+ID4gPiA+ID4gPiAtCQkJ aWYgKGN1cnNvcl93aWR0aCA9PSBzcHJpdGVfd2lkdGggJiYKPiA+ID4gPiA+ID4gPiAtCQkJICAg IGN1cnNvcl9oZWlnaHQgPT0gc3ByaXRlX2hlaWdodCkgewo+ID4gPiA+ID4gPiA+IC0JCQkJaWd0 X2Fzc2VydF9mKGFscGhhLAo+ID4gPiA+ID4gPiA+IC0JCQkJCSAgICAgICJDYW5ub3QgY29uZmln dXJlCj4gPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gdGVzdCB3aXRoIGFsbCBzcHJpdGUg cGxhbmVzIGVuYWJsZWRcbiIpOwo+ID4gPiA+ID4gPiA+IC0KPiA+ID4gPiA+ID4gPiAtCQkJCS8q IHJldHJ5IG9uY2Ugd2l0aCBYUkdCIGZvcm1hdC4KPiA+ID4gPiA+ID4gPiAqLwo+ID4gPiA+ID4g PiA+IC0JCQkJYWxwaGEgPSBmYWxzZTsKPiA+ID4gPiA+ID4gPiAtCQkJCWdvdG8gcmV0cnk7Cj4g PiA+ID4gPiA+ID4gLQkJCX0KPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gLQkJCXNwcml0 ZV93aWR0aCA9IHByZXZfdzsKPiA+ID4gPiA+ID4gPiAtCQkJc3ByaXRlX2hlaWdodCA9IHByZXZf aDsKPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gLQkJCWlmIChtYXhfc3ByaXRlX3dpZHRo ICYmCj4gPiA+ID4gPiA+ID4gbWF4X3Nwcml0ZV9oZWlnaHQpIHsKPiA+ID4gPiA+ID4gPiAtCQkJ CXNldF9zcHJpdGVfd2goZGlzcGxheSwgcGlwZSwKPiA+ID4gPiA+ID4gPiBwYXJtcywKPiA+ID4g PiA+ID4gPiBzcHJpdGVfZmIsCj4gPiA+ID4gPiA+ID4gLQkJCQkJICAgICAgYWxwaGEsCj4gPiA+ ID4gPiA+ID4gc3ByaXRlX3dpZHRoLAo+ID4gPiA+ID4gPiA+IHNwcml0ZV9oZWlnaHQpOwo+ID4g PiA+ID4gPiA+IC0JCQkJYnJlYWs7Cj4gPiA+ID4gPiA+ID4gLQkJCX0KPiA+ID4gPiA+ID4gPiAt Cj4gPiA+ID4gPiA+ID4gLQkJCWlmICghbWF4X3Nwcml0ZV93aWR0aCkKPiA+ID4gPiA+ID4gPiAt CQkJCW1heF9zcHJpdGVfd2lkdGggPSB0cnVlOwo+ID4gPiA+ID4gPiA+IC0JCQllbHNlCj4gPiA+ ID4gPiA+ID4gLQkJCQltYXhfc3ByaXRlX2hlaWdodCA9IHRydWU7Cj4gPiA+ID4gPiA+ID4gLQkJ fSBlbHNlIHsKPiA+ID4gPiA+ID4gPiArCQlpZiAoIWlzX2F0b21pY19jaGVja19wbGFuZV9zaXpl X2Vycm5vKHJldCkpIHsKPiA+ID4gPiA+ID4gPiAgCQkJcHJldl93ID0gc3ByaXRlX3dpZHRoOwo+ ID4gPiA+ID4gPiA+ICAJCQlwcmV2X2ggPSBzcHJpdGVfaGVpZ2h0Owo+ID4gPiA+ID4gPiA+IC0J CX0KPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gLQkJaWYgKCFtYXhfc3ByaXRlX3dpZHRo KSB7Cj4gPiA+ID4gPiA+ID4gLQkJCXNwcml0ZV93aWR0aCAqPSAyOwo+ID4gPiA+ID4gPiA+IC0K PiA+ID4gPiA+ID4gPiArICAgIAo+ID4gPiA+ID4gPiA+ICsJCQlzcHJpdGVfd2lkdGggKj0gbWF4 X3Nwcml0ZV93aWR0aCA/IDEgOgo+ID4gPiA+ID4gPiA+IDI7Cj4gPiA+ID4gPiA+ID4gIAkJCWlm IChzcHJpdGVfd2lkdGggPj0gbW9kZS0+aGRpc3BsYXkpIHsKPiA+ID4gPiA+ID4gPiAgCQkJCW1h eF9zcHJpdGVfd2lkdGggPSB0cnVlOwo+ID4gPiA+ID4gPiA+IC0KPiA+ID4gPiA+ID4gPiAgCQkJ CXNwcml0ZV93aWR0aCA9IG1vZGUtPmhkaXNwbGF5Owo+ID4gPiA+ID4gPiA+ICAJCQl9Cj4gPiA+ ID4gPiA+ID4gLQkJfSBlbHNlIGlmICghbWF4X3Nwcml0ZV9oZWlnaHQpIHsKPiA+ID4gPiA+ID4g PiAtCQkJc3ByaXRlX2hlaWdodCAqPSAyOwo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiAr CQkJc3ByaXRlX2hlaWdodCAqPSBtYXhfc3ByaXRlX2hlaWdodCA/IDEKPiA+ID4gPiA+ID4gPiA6 IDI7Cj4gPiA+ID4gPiA+ID4gIAkJCWlmIChzcHJpdGVfaGVpZ2h0ID49IG1vZGUtPnZkaXNwbGF5 KSB7Cj4gPiA+ID4gPiA+ID4gIAkJCQltYXhfc3ByaXRlX2hlaWdodCA9IHRydWU7Cj4gPiA+ID4g PiA+ID4gLQo+ID4gPiA+ID4gPiA+ICAJCQkJc3ByaXRlX2hlaWdodCA9IG1vZGUtPnZkaXNwbGF5 Owo+ID4gPiA+ID4gPiA+ICAJCQl9Cj4gPiA+ID4gPiA+ID4gLQkJfSBlbHNlCj4gPiA+ID4gPiA+ ID4gLQkJCS8qIE1heCBzaXplZCBzcHJpdGVzIGZvciBhbGwhICovCj4gPiA+ID4gPiA+ID4gLQkJ CWJyZWFrOwo+ID4gPiA+ID4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ID4gPiArCQl9Cj4g PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJCWlmIChjdXJzb3Jfd2lkdGggPT0gc3ByaXRl X3dpZHRoICYmCj4gPiA+ID4gPiA+ID4gKwkJICAgIGN1cnNvcl9oZWlnaHQgPT0gc3ByaXRlX2hl aWdodCkgewo+ID4gPiA+ID4gPiA+ICsJCQlpZ3RfYXNzZXJ0X2YocmV0cmllcyA+IDAsCj4gPiA+ ID4gPiA+ID4gKwkJCQkgICAgICAiQ2Fubm90IGNvbmZpZ3VyZSB0aGUKPiA+ID4gPiA+ID4gPiB0 ZXN0IHdpdGgKPiA+ID4gPiA+ID4gPiBhbGwgc3ByaXRlIHBsYW5lcyBlbmFibGVkXG4iKTsKPiA+ ID4gPiA+ID4gPiArCQkJLS1yZXRyaWVzOwo+ID4gPiA+ID4gPiA+ICsJCQkvKiByZXRyeSBvbmNl IHdpdGggWFJHQiBmb3JtYXQuICovCj4gPiA+ID4gPiA+ID4gKwkJCWlmIChhbHBoYSkgewo+ID4g PiA+ID4gPiA+ICsJCQkJYWxwaGEgPSBmYWxzZTsKPiA+ID4gPiA+ID4gPiArCQkJCWlndF93YXJu KCJSZW1vdmVkIGFscGhhXG4iKTsKPiA+ID4gPiA+ID4gPiArCQkJfQo+ID4gPiA+ID4gPiA+ICsJ CQllbHNlIHsKPiA+ID4gPiA+ID4gPiArCQkJCWlndF9hc3NlcnRfZihuX3BsYW5lcyA+IDEsICJO bwo+ID4gPiA+ID4gPiA+IHBsYW5lcwo+ID4gPiA+ID4gPiA+IGxlZnQgdG8gcHJvY2VlZCB3aXRo ISIpOwo+ID4gPiA+ID4gPiA+ICsJCQkJbl9wbGFuZXMtLTsKPiA+ID4gPiA+ID4gCj4gPiA+ID4g PiA+IFNhbWUgY29tbWVudCBhcyB3aXRoIGttc19jb25jdXJyZW50IGFuZCBhbGwgdGhlIG90aGVy IHBsYW5lCj4gPiA+ID4gPiA+IHRlc3RzOgo+ID4gPiA+ID4gPiBKdXN0Cj4gPiA+ID4gPiA+IGRy b3BwaW5nIHRoZSBsYXN0IHBsYW5lIHJlZHVjZXMgb3VyIHRlc3QgY292ZXJhZ2UsIHdlIG5lZWQg dG8KPiA+ID4gPiA+ID4gcmFuZG9taXplCj4gPiA+ID4gPiA+IHdoaWNoIHBsYW5lIHdlIGRyb3Au Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IEkgdGhpbmsgdGhhdCBpcyBhIGdvb2QgaWRlYSwgSSdtIG5v dyB0ZXN0aW5nIGEgcGF0Y2ggd2hpY2gKPiA+ID4gPiA+IHJhbmRvbWl6ZXMKPiA+ID4gPiA+IHdo aWNoIG9uZSBvZiBhdmFpbGFibGUgcGxhbmVzIGlzIGdvaW5nIHRvIGJlIHJlbW92ZWQuCj4gPiA+ ID4gPiAKPiA+ID4gPiA+IEZvciB0aGUgbGF0dGVyIGNoYW5nZSBJIHdvdWxkIGxlYXZlIGZvciBm dXJ0aGVyIHBhdGNoZXMgYXMKPiA+ID4gPiA+IGN1cnJlbnRseSAKPiA+ID4gPiA+IGl0IGRvZXNu J3QgbWF0dGVyIGFueXdheSwgYnV0IHdlIG5lZWQgdGhlIGlzc3VlcyByZWxhdGVkIHRvIG5ldwo+ ID4gPiA+ID4gYncKPiA+ID4gPiA+IHJlcXVpcmVtZW50cyB0byBiZSBmaXhlZC4KPiA+ID4gPiAK PiA+ID4gPiBKdXN0IGRvaW5nIHNvbWUgYnVnIHNjcnViIGFuZCB3ZSBoYXZlIHNvbWUgRUlOVkFM IGZhaWx1cmVzIGxpa2UKPiA+ID4gPiB0aGlzCj4gPiA+ID4gYWxsCj4gPiA+ID4gb3ZlciB0aGUg cGxhY2UuIFNvIEkgZ3Vlc3MgdGhlcmUncyBzb21lIG90aGVyIGNhc2VzIHdoZXJlIHdlCj4gPiA+ ID4gcmVqZWN0Cj4gPiA+ID4gY29uZmlncyBpbiB0aGUga2VybmVsIGFuZCB0aGVuIHRoZSB0ZXN0 IGZhbGxzIG92ZXIuIFdlJ2xsIG5lZWQKPiA+ID4gPiB0aGlzCj4gPiA+ID4gKGl0J3MKPiA+ID4g PiBob3cgYXRvbWljIGlzIG1lYW50IHRvIHdvcmsgcmVhbGx5KS4KPiA+ID4gPiAKPiA+ID4gPiBB bHNvLCB0aGUgYncgYmFuZC1haWQgZnJvbSBWaWxsZSBpcyBhIHJlYWxseSBiYWQgc29sdXRpb24s IHdlCj4gPiA+ID4gbmVlZAo+ID4gPiA+IHNvbWV0aGluZyBiZXR0ZXIgLSBubyBwb2ludCBpbiBo YXZpbmcgNyBwbGFuZXMgaWYgeW91IGNhbid0IGV2ZW4KPiA+ID4gPiB1c2UKPiA+ID4gPiB0aGVt Lgo+ID4gPiA+IEFkZGluZyBtb3JlIHRyeV9jb21taXQgaW4gdGhlIHdyb25nIHBsYWNlIGZlZWxz IGxpa2UgYSBkZXRvdXIuCj4gPiA+ID4gLURhbmllbAo+ID4gPiAKPiA+ID4gVGhhdCdzIGEgdG9w aWMgZm9yIG11Y2ggbGFyZ2VyIGRpc2N1c3Npb24sIEkgaGF2ZSBiZWVuIGhlYXJpbmcKPiA+ID4g YXJvdW5kCj4gPiA+IGZvciBhbG1vc3QgYSBtb250aCA6KSAKPiA+ID4gSSBoYXZlIGJlZW4gdGFs a2luZyB3aXRoIFZpbGxlIGFuZCBNYXJ0aW4gYSBsb3QgYWJvdXQgdGhpcy4KPiA+ID4gQW5kIHll YWggdG8gbWUgaXQgaXMgYWxzbyBjb250cm92ZXJzaWFsLCB0aGF0IHlvdSBoYXZlIHBsYW5lcywg YnV0Cj4gPiA+IHRoZXkKPiA+ID4gYXJlIG5vdCBhbHdheXMgdXNhYmxlLCBob3dldmVyLi4uCj4g PiA+IEkgY29tcGxldGVseSB1bmRlcnN0YW5kIGFsbCB0aGUgcHJvcyBhbmQgY29ucywgeW91IAo+ ID4gPiBhcmUgZGVzY3JpYmluZyBoZXJlLiBCdXQgdGhhdCByZWFsbHkgZ29lcyBmYXIgYmV5b25k IHRoYXQgSUdUCj4gPiA+IHBhdGNoLgo+ID4gPiBJJ20ganVzdCBkZWFsaW5nIHdpdGggcmVhbGl0 eSB3aGF0IHdlIGhhdmUgY3VycmVudGx5IGhlcmUgYW5kCj4gPiA+IHRyeWluZyB0bwo+ID4gPiBt YWtlIGl0IG5vdCB0byBmYWlsIG1pc2VyYWJseSBhdCBsZWFzdC4gT25jZSB3ZSB3aWxsIGhhdmUK PiA+ID4gInNvbWV0aGluZwo+ID4gPiBiZXR0ZXIiIHRoYXQgeW91IGRlc2NyaWJlLCBJIHdvdWxk IGJlIGhhcHB5IHRvIGltcGxlbWVudCBhCj4gPiA+IGNvcnJlc3BvbmRlbnQgY2hhbmdlcy4gCj4g PiAKPiA+IFdlIF9kb18gaGF2ZSB0aGlzICJzb21ldGhpbmcgYmV0dGVyIiwgc2luY2UgZGF5IDEg b2YgYXRvbWljLiBJdCdzCj4gPiBjYWxsZWQKPiA+IHRyeV9jb21taXQuCj4gPiAKPiA+IEFuZCB5 ZXMgInNvbWUgcGxhbmVzIHNvbWV0aW1lcyBkb24ndCB3b3JrIGZvciByZWFzb25zIG9ubHkgY2xl YXIgdG8KPiA+IHRoZQo+ID4ga2VybmVsIGRyaXZlciIgaGFzIGFsc28gYmVlbiBwYXJ0IG9mIGF0 b21pYyBzaW5jZSBkYXkgb25lLgo+IAo+IFdlbGwsIHRoYXRzIGlzIHdoYXQgbW9zdCBvZiB0aG9z ZSBmaXhlcyBhcmUgYWJvdXQgLSB3ZSBqdXN0IGNoYW5nZSB0ZXN0Cj4gY2FzZSB0byBxdWVyeSBm aXJzdCwgaWYgdGhhdCBjb25maWcgaXMgZ29pbmcgdG8gd29yaywgYmVmb3JlIGFjdHVhbGx5Cj4g Y29tbWl0dGluZyBpdC4gSWYgaXQgZG9lc24ndCB3b3JrIHdlIHRyeSB0byByZWR1Y2UgcGxhbmVz IG51bWJlciBvcgo+IHRoZWlyIHNpemUuIFNvIHdoYXQgZG8geW91IGV4YWN0bHkgbWVhbiBvciBk b24ndCBsaWtlIGhlcmU/IAo+IAo+ID4gCj4gPiBQbGVhc2UgZG9uJ3QgbWVyZ2UgaGFja3MgdG8g aGFuZGxlIG1hbmFnZW1lbnQgcHJlc3N1cmUsIGxldCdzIGRvIHRoZQo+ID4gcmlnaHQKPiA+IHRo aW5nLiBJJ20gaGFwcHkgdG8gaGFuZGxlIG1hbmFnZXJzIGZvciB5b3Ugd2hvIGRvbid0IGdldCB0 aGlzLgo+ID4gQ3V0dGluZwo+ID4gY29ybmVycyBoZXJlIGRvZXNuJ3QgaGVscCBhbnlvbmUgKGFu ZCB5ZXMgdGhpcyBzaG91bGQgaGF2ZSBiZWVuCj4gPiBjYXVnaHQKPiA+IHdoZW4gdGhlIHRlc3Qg d2FzIG9yaWdpbmFsbHkgd3JpdHRlbiwgYnV0IHdlbGwgaXQgd2FzbnQpLgo+IAo+IFdlbGwsIEkg Y2FuJ3QgbGl0ZXJhbGx5ICJtZXJnZSIgYW55dGhpbmcuIFdoYXQgSSdtIGRvaW5nIGlzIGNoYW5n aW5nIAo+IHBhdGNoZXMgdG8gbWF0Y2ggbmV3IGJ3IHBhcmFkaWdtLiBIYXZlIHlvdSBzZWVuIGJ3 IHBhdGNoZXM/Cj4gRHVlIHRob3NlIGNoYW5nZXMgd2Ugbm93IGhhdmUgLUVJTlZBTCByZXR1cm5l ZCwgd2hlbmV2ZXIgd2UgZG9uJ3QgaGF2ZQo+IHJlc291cmNlcyhrbXNfY29uY3VycmVudCwga21z X2F0b21pY190cmFuc2l0aW9uLCBrbXNfcGxhbmVfbXVsdGlwbGUuLikuCj4gU28gYXMgeW91IGhh dmUgc2FpZCB3ZSBuZWVkIHRvIHVzZSB0cnlfY29tbWl0IHRvIHVuZGVyc3RhbmQKPiBmaXJzdCwg aWYgY29uZmlndXJhdGlvbiBpcyBnb2luZyB0byB3b3JrIG9yIG5vdC4gSSdtIGRvaW5nIHRoYXQu Cj4gCj4gQXMgSSB1bmRlcnN0YW5kIGFsc28gQlcgaXMgbm90IHNvbWV0aGluZywgd2UgaGF2ZSBh bnkgb3RoZXIgc29sdXRpb25zCj4gZm9yIGN1cnJlbnRseS4KPiAKPiBJZiB5b3UgYXJlIG5vdCBo YXBweSB3aXRoIGl0LCBJIHVuZGVyc3RhbmQgdGhhdCAtIGJ1dCBhcyB5b3UKPiB1bmRlcnN0YW5k LCBJJ20gZGVmaW5pdGVseSBub3QgdGhlIGZpcnN0IGd1eSB3aG9tIHlvdSBzaG91bGQgcmVmZXIg dG8KPiBoZXJlLgoKTWF5YmUgdGhlcmUncyBhIG1pc3VuZGVyc3RhbmRpbmcuIFdoYXQgdGhpcyBw YXRjaCBkb2VzIGhlcmUgaXMgZmlndXJlIG91dApob3cgbWFueSBwbGFuZXMgY2FuIGJlIHVzZWQg YXQgbW9zdCB1c2luZyB0cnktY29tbWl0LiBCdXQgb25lcyBpdCBkb2VzCnRoYXQsIGl0IGFsc28g YXNzdW1lcyB0aGF0IGFueSBjb21iaW5hdGlvbiBvZiB0aGVzZSBwbGFuZXMgKG5vIG1hdHRlcgp3 aGljaCBkZXN0IHJlY3RhbmdsZXMgd2UgZW5kIHVwIHBpY2tpbmcgZm9yIHRoZW0pIHdpbGwgd29y ayBvdXQuCgpUaGlzIGFnYWluIGVuY29kZXMgYW4gYXNzdW1wdGlvbiBhYm91dCBob3cgaTkxNS5r byB3b3JrcywgbGlrZSB0aGUKcHJldmlvdXMgYXNzdW1wdGlvbiB0aGF0IHdlIGNhbiB1c2UgYWxs IHBsYW5lcy4KCldoYXQgSSdkIGxpa2UgdG8gc2VlLCBhbmQgaG93IGF0b21pYyBpcyBzcGVjaWZp ZWQsIGlzIHRoYXQgX2FueV8gY2hhbmdlIGluCnRoZSBjb25maWd1cmF0aW9uIChkc3Qvc3JjLCBw aXhlbCBmb3JtYXQsIGZiIHN0cmlkZSwgc2l6ZSwgdGlsaW5nLCByZWFsbHkKYW55dGhpbmcpIGNv dWxkIGZsaXAgdGhlIGNvbmZpZ3VyYXRpb24gZnJvbSAid29ya3MiIHRvICJkb2Vzbid0IHdvcmsi LgpXb3JzZSwgdGhlIGFjdHVhbCB0cmFuc2l0aW9uIChpLmUuIHRoZSBwcmV2aW91cyBzdGF0ZSkg YWxzbyBtYXR0ZXJzLiBIZW5jZQp0aGUgdXN1YWwgd2F5IGFuIGF0b21pYyBjb21taXQgc2hvdWxk IHdvcmsgaXM6Cgp3aGlsZSB7dXNlZnVsX2NvbmZpZ19sZWZ0fSB7CglidWlsZF9jb25maWcoKTsK CXJldCA9IHRyeV9jb21taXQoKTsKCglpZiAocmV0ID09IC1FSU5WQUwgfHwgcmV0ID09IC1FUkFO R0UpIHsKCQlyZWR1Y2UgY29uZmlncwoJfSBlbHNlIHsKCQlicmVhazsKCX0KfQoKcmVuZGVyX3N0 dWZmKCk7CmNvbW1pdCgpOwoKSW93IF9ldmVyeV8gY29tbWl0IG5lZWRzIHRvIGZpcnN0IGZpZ3Vy ZSBvdXQgd2hhdCdzIHBvc3NpYmxlLiBBbmQgdGhpcyBpcwp3aGF0IHdlIG5lZWQgdG8gZG8gZm9y IHRoZSBtb3JlIHJhbmRvbWl6ZWQgY292ZXJhZ2UgdGVzdHMgdGhhdCB0cnkgdG8gbWFrZQpzdXJl IGNvcm5lciBjYXNlcyB3b3JrLiBNb3JlIGZlYXR1cmUgc3BlY2lmaWMgKGFuZCBoZW5jZSBsaW1p dGVkKSB0ZXN0cwpjYW4gbWFrZSBtb3JlIGFzc3VtcHRpb24uCgpIb3BlZnVsbHkgdGhhdCBleHBs YWlucyBiZXR0ZXIgd2hhdCBJIG1lYW4gaGVyZS4KClRoaXMgaXMgcmVsZXZhbnQgZm9yIEJXIGNh bGN1bGF0aW9uIHNpbmNlIG9uIG1vc3QgaHcgaXQgbWF0dGVycyB3aGV0aGVyCnBsYW5lcyBhcmUg Y2xvc2UgdG9nZXRoZXIgKGFzIG1lYXN1cmVkIGluIGhvcml6b250YWwgc2NhbiBsaW5lcykgb3Ig bm90LgpJJ20gYXNzdW1pbmcgdGhhdCBpbnRlbCBodyBpcyBzaW1pbGFyIGhlcmUsIGFuZCBWaWxs ZSBhbHJlYWR5IHNhaWQgaGUnbGwKdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCdzIHBvc3NpYmxlIGFu ZCB3aGVyZSB0aGUgcmVhbCBsaW1pdHMgYXJlLiBFLmcuIGlmCnlvdSB1c2UgYWxsIHBsYW5lcyBh cyBob3Jpem9udGFsIGJhcnMsIHdlIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBhbGwgNy4gQnV0Cndl IGNhbid0IHVzZSBhbGwgNyBpZiB5b3Ugc3BsaXQgdGhlIHNjcmVlbiBpbnRvIHZlcnRpY2FsIGJh cnMuCi1EYW5pZWwKCj4gCj4gPiAtRGFuaWVsCj4gPiAKPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiBUaGUgb3RoZXIgYml0OiBXZSBuZWVkIHRvIHJlY29tcHV0ZSBob3cg bWFueSBwbGFuZXMgd2UgY2FuCj4gPiA+ID4gPiA+IGVuYWJsZQo+ID4gPiA+ID4gPiBmb3IKPiA+ ID4gPiA+ID4gZXZlcnkgdHJhbnNpdGlvbi4gUmlnaHQgbm93IHRoYXQncyBub3QgdGhlIGNhc2Ug d2l0aCBWaWxsZSdzCj4gPiA+ID4gPiA+IGN1cnJlbnQKPiA+ID4gPiA+ID4gcGF0Y2gKPiA+ID4g PiA+ID4gc2VyaWVzLCBidXQgdGhhdCdzIGFsc28ganVzdCBhbiBpbnRlcmltIHNvbHV0aW9uLiBB Y3R1YWwgYncKPiA+ID4gPiA+ID4gY29uc3VtcHRpb24KPiA+ID4gPiA+ID4gdmVyeSBtdWNoIGRl cGVuZHMgdXBvbiB3aGVyZSBhbGwgdGhlIHBsYW5lcyBhcmUgcGxhY2UsIGhvdwo+ID4gPiA+ID4g PiBiaWcKPiA+ID4gPiA+ID4gdGhleQo+ID4gPiA+ID4gPiBhcmUKPiA+ID4gPiA+ID4gYW5kIGFs bCB0aGF0IHN0dWZmLiBTbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZS9yZWNoZWNrIHRoYXQKPiA+ID4g PiA+ID4gZXZlcnkKPiA+ID4gPiA+ID4gdHJhbnNpdGlvbgo+ID4gPiA+ID4gPiB3b3JrcywgZm9y IGVhY2ggc3BlY2lmaWMgdHJhbnNpdGlvbi4gQmVjYXVzZSB0aGUgZXhhY3QKPiA+ID4gPiA+ID4g dHJhbnNpdGlvbgo+ID4gPiA+ID4gPiBtaWdodAo+ID4gPiA+ID4gPiBhbHNvIG1hdHRlci4KPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE9yIG1heWJlIEknbSBub3QgZW50aXJlbHkgdW5kZXJzdGFu ZGluZyBob3cgdGhpcyB0ZXN0IHdvcmtzCj4gPiA+ID4gPiA+IGhlcmUuCj4gPiA+ID4gPiA+IC1E YW5pZWwKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gKwkJCQlpZ3Rfd2FybigiUmVkdWNlZCBh dmFpbGFibGUKPiA+ID4gPiA+ID4gPiBwbGFuZXMgdG8KPiA+ID4gPiA+ID4gPiAlZFxuIiwgbl9w bGFuZXMpOwo+ID4gPiA+ID4gPiA+ICsJCQl9Cj4gPiA+ID4gPiA+ID4gKwkJCWdvdG8gcmV0cnk7 Cj4gPiA+ID4gPiA+ID4gKwkJfQo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCQlzcHJp dGVfd2lkdGggPSBwcmV2X3c7Cj4gPiA+ID4gPiA+ID4gKwkJc3ByaXRlX2hlaWdodCA9IHByZXZf aDsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwkJaWYgKCFtYXhfc3ByaXRlX3dpZHRo KQo+ID4gPiA+ID4gPiA+ICsJCQltYXhfc3ByaXRlX3dpZHRoID0gdHJ1ZTsKPiA+ID4gPiA+ID4g PiArCQllbHNlCj4gPiA+ID4gPiA+ID4gKwkJCW1heF9zcHJpdGVfaGVpZ2h0ID0gdHJ1ZTsKPiA+ ID4gPiA+ID4gPiAgCX0KPiA+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ID4gIAlpZ3RfaW5mbygi UnVubmluZyB0ZXN0IG9uIHBpcGUgJXMgd2l0aCByZXNvbHV0aW9uICVkeCVkCj4gPiA+ID4gPiA+ ID4gYW5kCj4gPiA+ID4gPiA+ID4gc3ByaXRlIHNpemUgJWR4JWQgYWxwaGEgJWlcbiIsCj4gPiA+ ID4gPiA+ID4gQEAgLTQ2Myw3ICs0NjUsNiBAQCBydW5fdHJhbnNpdGlvbl90ZXN0KGlndF9kaXNw bGF5X3QKPiA+ID4gPiA+ID4gPiAqZGlzcGxheSwKPiA+ID4gPiA+ID4gPiBlbnVtIHBpcGUgcGlw ZSwgaWd0X291dHB1dF90ICpvdXRwdXQKPiA+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ID4gIAlp ZiAoZmxhZ3MgJiBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCkgewo+ID4gPiA+ID4gPiA+ ICAJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOwo+ID4gPiA+ID4gPiA+ IC0KPiA+ID4gPiA+ID4gPiAgCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9B VE9NSUMpOwo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiAgCQlpZ3Rfb3V0cHV0X3NldF9w aXBlKG91dHB1dCwgcGlwZSk7Cj4gPiA+ID4gPiA+ID4gQEAgLTUyNSw4ICs1MjYsMTAgQEAgcnVu X3RyYW5zaXRpb25fdGVzdChpZ3RfZGlzcGxheV90Cj4gPiA+ID4gPiA+ID4gKmRpc3BsYXksCj4g PiA+ID4gPiA+ID4gZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0Cj4gPiA+ID4g PiA+ID4gIAkJfQo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiAgCQkvKiBmb3JjZSBwbGFu ZXMgdG8gYmUgcGFydCBvZiBjb21taXQgKi8KPiA+ID4gPiA+ID4gPiAtCQlmb3JfZWFjaF9wbGFu ZV9vbl9waXBlKGRpc3BsYXksIHBpcGUsIHBsYW5lKQo+ID4gPiA+ID4gPiA+IC0JCQlpZ3RfcGxh bmVfc2V0X3Bvc2l0aW9uKHBsYW5lLCAwLCAwKTsKPiA+ID4gPiA+ID4gPiArCQlmb3JfZWFjaF9w bGFuZV9vbl9waXBlKGRpc3BsYXksIHBpcGUsIHBsYW5lKSB7Cj4gPiA+ID4gPiA+ID4gKwkJCWlm IChwYXJtc1twbGFuZS0+aW5kZXhdLm1hc2spCj4gPiA+ID4gPiA+ID4gKwkJCQlpZ3RfcGxhbmVf c2V0X3Bvc2l0aW9uKHBsYW5lLAo+ID4gPiA+ID4gPiA+IDAsIDApOwo+ID4gPiA+ID4gPiA+ICsJ CX0KPiA+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ID4gIAkJaWd0X2Rpc3BsYXlfY29tbWl0Mihk aXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKPiA+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ID4gLS0g Cj4gPiA+ID4gPiA+ID4gMi4xNy4xCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiAKPiA+IAo+ID4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWls aW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2