From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 782044FAB9 for ; Wed, 25 Jun 2025 20:01:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1BB4B68D86C; Wed, 25 Jun 2025 23:00:01 +0300 (EEST) Received: from smtp.waider.ie (smtp.waider.ie [52.31.250.228]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 8F9FF68D77E for ; Wed, 25 Jun 2025 22:59:59 +0300 (EEST) Received: from smtpclient.apple (unknown [109.255.224.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.waider.ie (Postfix) with ESMTPSA id EB14B4CC60 for ; Wed, 25 Jun 2025 19:59:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=waider.ie; s=waider_ie; t=1750881599; bh=vnqPjqtO752roX402GFkg6tMvV55J8pfzc8cfhlZt5g=; h=Content-Type:Mime-Version:Subject:To:From:In-Reply-To:Date: Content-Transfer-Encoding:Message-Id:References; b=MhWU+XWmC2PXinRW6tmoMTHWkWkuQ6fQ+QEGgfMm1WznXhqvNDHCqG+YsPrUqdcPV VQotvsYHEBIKhX8gAF+DSjav5x2BBimOTJcEUK1rJQQgidu4dwzClVi/gGfMXiQOnA ho+sR5/LjQW0Srxp7DwZRzMbtB0a5qrbQxiY7cKE= Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.600.51.1.1\)) To: FFmpeg development discussions and patches From: Ronan Waide In-Reply-To: <66719B93-9BE4-4F9F-8270-93B11CBB89B7@waider.ie> Date: Wed, 25 Jun 2025 20:59:50 +0100 Message-Id: References: <20250302172331.57779-1-waider@waider.ie> <66719B93-9BE4-4F9F-8270-93B11CBB89B7@waider.ie> Organization: Poor, at best X-Mailer: Apple Mail (2.3826.600.51.1.1) X-Spam-Status: No, score=-102.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, USER_IN_WELCOMELIST,USER_IN_WHITELIST autolearn=ham autolearn_force=no version=3.4.3 X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on ec2.waider.ie Subject: Re: [FFmpeg-devel] [PATCH v5] libavcodec/dvbsubenc.c: add a disable_2bpp option to work around some decoders. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Cgo+IE9uIDI2IE1heSAyMDI1LCBhdCAxOTo0MSwgUm9uYW4gV2FpZGUgPHdhaWRlckB3YWlkZXIu aWU+IHdyb3RlOgo+IAo+PiAKPj4gT24gMTQgQXByIDIwMjUsIGF0IDE2OjUzLCBzb2Z0d29ya3og LiA8c29mdHdvcmt6LWF0LWhvdG1haWwuY29tQGZmbXBlZy5vcmc+IHdyb3RlOgo+PiAKPj4gCj4+ IAo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+IEZyb206IGZmbXBlZy1kZXZlbCA8 ZmZtcGVnLWRldmVsLWJvdW5jZXNAZmZtcGVnLm9yZz4gT24gQmVoYWxmIE9mCj4+PiBSb25hbiBX YWlkZQo+Pj4gU2VudDogU29ubnRhZywgMzAuIE3DpHJ6IDIwMjUgMTI6MTgKPj4+IFRvOiBGRm1w ZWcgZGV2ZWxvcG1lbnQgZGlzY3Vzc2lvbnMgYW5kIHBhdGNoZXMgPGZmbXBlZy0KPj4+IGRldmVs QGZmbXBlZy5vcmc+Cj4+PiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIIHY1XSBs aWJhdmNvZGVjL2R2YnN1YmVuYy5jOiBhZGQgYQo+Pj4gZGlzYWJsZV8yYnBwIG9wdGlvbiB0byB3 b3JrIGFyb3VuZCBzb21lIGRlY29kZXJzLgo+Pj4gCj4+PiAKPj4+IAo+Pj4+IE9uIDggTWFyIDIw MjUsIGF0IDA4OjAyLCBSb25hbiBXYWlkZSA8d2FpZGVyQHdhaWRlci5pZT4gd3JvdGU6Cj4+Pj4g Cj4+Pj4gCj4+Pj4gCj4+Pj4+IE9uIDIgTWFyIDIwMjUsIGF0IDIwOjM4LCBTb2Z0IFdvcmtzIDxz b2Z0d29ya3otYXQtCj4+PiBob3RtYWlsLmNvbUBmZm1wZWcub3JnPiB3cm90ZToKPj4+Pj4gCj4+ Pj4+IAo+Pj4+PiAKPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+PiBGcm9t OiBmZm1wZWctZGV2ZWwgPGZmbXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFs ZiBPZgo+Pj4gUm9uYW4KPj4+Pj4+IFdhaWRlCj4+Pj4+PiBTZW50OiBTb25udGFnLCAyLiBNw6Ry eiAyMDI1IDE4OjI0Cj4+Pj4+PiBUbzogZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4+Pj4+IENj OiBSb25hbiBXYWlkZSA8d2FpZGVyQHdhaWRlci5pZT4KPj4+Pj4+IFN1YmplY3Q6IFtGRm1wZWct ZGV2ZWxdIFtQQVRDSCB2NV0gbGliYXZjb2RlYy9kdmJzdWJlbmMuYzogYWRkIGEKPj4+Pj4+IGRp c2FibGVfMmJwcCBvcHRpb24gdG8gd29yayBhcm91bmQgc29tZSBkZWNvZGVycy4KPj4+Pj4+IAo+ Pj4+Pj4gQXMgbm90ZWQgaW4gdGhlIGNvZGUgaW4gc2V2ZXJhbCBwbGFjZXMsIHNvbWUgRFZCIHN1 YnRpdGxlIGRlY29kZXJzCj4+Pj4+PiBkb24ndCBoYW5kbGUgMmJwcCBjb2xvci4gVGhpcyBwYXRj aCBhZGRzIGEgZGlzYWJsZV8yYnBwIG9wdGlvbgo+Pj4gd2hpY2gKPj4+Pj4+IGRpc2FibGVzIHRo ZSAyYnBwIGZvcm1hdDsgc3VidGl0bGVzIHdoaWNoIHdvdWxkIHVzZSAyYnBwIHdpbGwgYmUKPj4+ IGJ1bXBlZAo+Pj4+Pj4gdXAgdG8gNGJwcC4gUGVyIHN1Z2dlc3Rpb24gZnJvbSBzdywgZGlzYWJs ZV8ycHAgZGVmYXVsdHMgdG8gdHJ1ZS4KPj4+Pj4+IAo+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogUm9u YW4gV2FpZGUgPHdhaWRlckB3YWlkZXIuaWU+Cj4+Pj4+PiAtLS0KPj4+Pj4+IGRvYy9lbmNvZGVy cy50ZXhpICAgICAgfCAyNyArKysrKysrKysrKysrKysrKwo+Pj4+Pj4gbGliYXZjb2RlYy9kdmJz dWJlbmMuYyB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4+PiAt LS0tCj4+Pj4+PiAyIGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9u cygtKQo+Pj4+Pj4gCj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZG9jL2VuY29kZXJzLnRleGkgYi9kb2Mv ZW5jb2RlcnMudGV4aQo+Pj4+Pj4gaW5kZXggZjNmY2MxYWE2MC4uNmVlMDA2NWM3ZCAxMDA2NDQK Pj4+Pj4+IC0tLSBhL2RvYy9lbmNvZGVycy50ZXhpCj4+Pj4+PiArKysgYi9kb2MvZW5jb2RlcnMu dGV4aQo+Pj4+Pj4gQEAgLTQ0ODQsNiArNDQ4NCwzMyBAQCBSZWR1Y2VzIGRldGFpbCBidXQgYXR0 ZW1wdHMgdG8gcHJlc2VydmUKPj4+IGNvbG9yIGF0Cj4+Pj4+PiBleHRyZW1lbHkgbG93IGJpdHJh dGVzLgo+Pj4+Pj4gQGNoYXB0ZXIgU3VidGl0bGVzIEVuY29kZXJzCj4+Pj4+PiBAYyBtYW4gYmVn aW4gU1VCVElUTEVTIEVOQ09ERVJTCj4+Pj4+PiAKPj4+Pj4+ICtAc2VjdGlvbiBkdmJzdWIKPj4+ Pj4+ICsKPj4+Pj4+ICtUaGlzIGNvZGVjIGVuY29kZXMgdGhlIGJpdG1hcCBzdWJ0aXRsZSBmb3Jt YXQgdGhhdCBpcyB1c2VkIGluIERWQgo+Pj4+Pj4gK2Jyb2FkY2FzdHMgYW5kIHJlY29yZGluZ3Mu IFRoZSBiaXRtYXBzIGFyZSB0eXBpY2FsbHkgZW1iZWRkZWQgaW4KPj4+IGEKPj4+Pj4+ICtjb250 YWluZXIgc3VjaCBhcyBNUEVHLVRTIGFzIGEgc2VwYXJhdGUgc3RyZWFtLgo+Pj4+Pj4gKwo+Pj4+ Pj4gK0BzdWJzZWN0aW9uIE9wdGlvbnMKPj4+Pj4+ICsKPj4+Pj4+ICtAdGFibGUgQG9wdGlvbgo+ Pj4+Pj4gK0BpdGVtIGRpc2FibGVfMmJwcCBAdmFye2Jvb2xlYW59Cj4+Pj4+PiArRGlzYWJsZSB0 aGUgMiBiaXRzLXBlci1waXhlbCBlbmNvZGluZyBmb3JtYXQuCj4+Pj4+PiArCj4+Pj4+PiArRFZC IHN1cHBvcnRzIDIsIDQsIGFuZCA4IGJpdHMtcGVyLXBpeGVsIGNvbG9yIGxvb2t1cCB0YWJsZXMu Cj4+PiBIb3dldmVyLAo+Pj4+Pj4gK25vdCBhbGwgcGxheWVycyBzdXBwb3J0IG9yIHByb3Blcmx5 IHN1cHBvcnQgMiBiaXRzLXBlci1waXhlbCwKPj4+Pj4+ICtyZXN1bHRpbmcgaW4gdW51c2FibGUg c3VidGl0bGVzLgo+Pj4+Pj4gK0B0YWJsZSBAb3B0aW9uCj4+Pj4+PiArQGl0ZW0gMAo+Pj4+Pj4g K1RoZSAyIGJpdHMtcGVyLXBpeGVsIGVuY29kaW5nIGZvcm1hdCB3aWxsIGJlIHVzZWQgZm9yIHN1 YnRpdGxlcwo+Pj4gd2l0aCA0Cj4+Pj4+PiArY29sb3JzIG9yIGxlc3MuCj4+Pj4+PiArCj4+Pj4+ PiArQGl0ZW0gMQo+Pj4+Pj4gK1RoZSAyIGJpdHMtcGVyLXBpeGVsIGVuY29kaW5nIGZvcm1hdCB3 aWxsIGJlIGRpc2FibGVkLCBhbmQKPj4+IHN1YnRpdGxlcwo+Pj4+Pj4gK3dpdGggNCBjb2xvcnMg b3IgbGVzcyB3aWxsIHVzZSBhIDQgYml0cy1wZXItcGl4ZWwgZm9ybWF0Lgo+Pj4gKGRlZmF1bHQp Cj4+Pj4+PiArQGVuZCB0YWJsZQo+Pj4+Pj4gKwo+Pj4+Pj4gK0BlbmQgdGFibGUKPj4+Pj4+ICsK Pj4+Pj4+IEBzZWN0aW9uIGR2ZHN1Ygo+Pj4+Pj4gCj4+Pj4+PiBUaGlzIGNvZGVjIGVuY29kZXMg dGhlIGJpdG1hcCBzdWJ0aXRsZSBmb3JtYXQgdGhhdCBpcyB1c2VkIGluCj4+PiBEVkRzLgo+Pj4+ Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHZic3ViZW5jLmMgYi9saWJhdmNvZGVjL2R2YnN1 YmVuYy5jCj4+Pj4+PiBpbmRleCA4MjJlM2E1MzA5Li40ZGIyZTFkZGRhIDEwMDY0NAo+Pj4+Pj4g LS0tIGEvbGliYXZjb2RlYy9kdmJzdWJlbmMuYwo+Pj4+Pj4gKysrIGIvbGliYXZjb2RlYy9kdmJz dWJlbmMuYwo+Pj4+Pj4gQEAgLTIyLDkgKzIyLDEyIEBACj4+Pj4+PiAjaW5jbHVkZSAiYnl0ZXN0 cmVhbS5oIgo+Pj4+Pj4gI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCj4+Pj4+PiAjaW5jbHVk ZSAibGliYXZ1dGlsL2NvbG9yc3BhY2UuaCIKPj4+Pj4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL29w dC5oIgo+Pj4+Pj4gCj4+Pj4+PiB0eXBlZGVmIHN0cnVjdCBEVkJTdWJ0aXRsZUNvbnRleHQgewo+ Pj4+Pj4gKyAgICBBVkNsYXNzICogY2xhc3M7Cj4+Pj4+PiAgaW50IG9iamVjdF92ZXJzaW9uOwo+ Pj4+Pj4gKyAgICBpbnQgZGlzYWJsZV8yYnBwOwo+Pj4+Pj4gfSBEVkJTdWJ0aXRsZUNvbnRleHQ7 Cj4+Pj4+PiAKPj4+Pj4+ICNkZWZpbmUgUFVUQklUUzIodmFsKVwKPj4+Pj4+IEBAIC0yNzQsMTMg KzI3NywxNSBAQCBzdGF0aWMgaW50IGR2YnN1Yl9lbmNvZGUoQVZDb2RlY0NvbnRleHQKPj4+ICph dmN0eCwKPj4+Pj4+IHVpbnQ4X3QgKm91dGJ1ZiwgaW50IGJ1Zl9zaXplLAo+Pj4+Pj4gewo+Pj4+ Pj4gIERWQlN1YnRpdGxlQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7Cj4+Pj4+PiAgdWlu dDhfdCAqcSwgKnBzZWdfbGVuOwo+Pj4+Pj4gLSAgICBpbnQgcGFnZV9pZCwgcmVnaW9uX2lkLCBj bHV0X2lkLCBvYmplY3RfaWQsIGksIGJwcF9pbmRleCwKPj4+Pj4+IHBhZ2Vfc3RhdGU7Cj4+Pj4+ PiArICAgIGludCBwYWdlX2lkLCByZWdpb25faWQsIGNsdXRfaWQsIG9iamVjdF9pZCwgaSwgYnBw X2luZGV4LAo+Pj4+Pj4gcGFnZV9zdGF0ZSwgbWluX2NvbG9yczsKPj4+Pj4+IAo+Pj4+Pj4gCj4+ Pj4+PiAgcSA9IG91dGJ1ZjsKPj4+Pj4+IAo+Pj4+Pj4gIHBhZ2VfaWQgPSAxOwo+Pj4+Pj4gCj4+ Pj4+PiArICAgIG1pbl9jb2xvcnMgPSBzLT5kaXNhYmxlXzJicHAgPyAxNiA6IDA7Cj4+Pj4+PiAr Cj4+Pj4+PiAgaWYgKGgtPm51bV9yZWN0cyAmJiAhaC0+cmVjdHMpCj4+Pj4+PiAgICAgIHJldHVy biBBVkVSUk9SKEVJTlZBTCk7Cj4+Pj4+PiAKPj4+Pj4+IEBAIC0zMjYsMTggKzMzMSwyMCBAQCBz dGF0aWMgaW50IGR2YnN1Yl9lbmNvZGUoQVZDb2RlY0NvbnRleHQKPj4+ICphdmN0eCwKPj4+Pj4+ IHVpbnQ4X3QgKm91dGJ1ZiwgaW50IGJ1Zl9zaXplLAo+Pj4+Pj4gCj4+Pj4+PiAgaWYgKGgtPm51 bV9yZWN0cykgewo+Pj4+Pj4gICAgICBmb3IgKGNsdXRfaWQgPSAwOyBjbHV0X2lkIDwgaC0+bnVt X3JlY3RzOyBjbHV0X2lkKyspIHsKPj4+Pj4+IC0gICAgICAgICAgICBpZiAoYnVmX3NpemUgPCA2 ICsgaC0+cmVjdHNbY2x1dF9pZF0tPm5iX2NvbG9ycyAqIDYpCj4+Pj4+PiArICAgICAgICAgICAg aW50IG5iX2NvbG9ycyA9IEZGTUFYKG1pbl9jb2xvcnMsIGgtPnJlY3RzW2NsdXRfaWRdLQo+Pj4+ Pj4+IG5iX2NvbG9ycyk7Cj4+Pj4+PiArCj4+Pj4+PiArICAgICAgICAgICAgaWYgKGJ1Zl9zaXpl IDwgNiArIG5iX2NvbG9ycyAqIDYpCj4+Pj4+PiAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf QlVGRkVSX1RPT19TTUFMTDsKPj4+Pj4+IAo+Pj4+Pj4gICAgICAgICAgLyogQ0xVVCBzZWdtZW50 ICovCj4+Pj4+PiAKPj4+Pj4+IC0gICAgICAgICAgICBpZiAoaC0+cmVjdHNbY2x1dF9pZF0tPm5i X2NvbG9ycyA8PSA0KSB7Cj4+Pj4+PiArICAgICAgICAgICAgaWYgKG5iX2NvbG9ycyA8PSA0KSB7 Cj4+Pj4+PiAgICAgICAgICAgICAgLyogMiBicHAsIHNvbWUgZGVjb2RlcnMgZG8gbm90IHN1cHBv cnQgaXQgY29ycmVjdGx5Cj4+PiAqLwo+Pj4+Pj4gICAgICAgICAgICAgIGJwcF9pbmRleCA9IDA7 Cj4+Pj4+PiAtICAgICAgICAgICAgfSBlbHNlIGlmIChoLT5yZWN0c1tjbHV0X2lkXS0+bmJfY29s b3JzIDw9IDE2KSB7Cj4+Pj4+PiArICAgICAgICAgICAgfSBlbHNlIGlmIChuYl9jb2xvcnMgPD0g MTYpIHsKPj4+Pj4+ICAgICAgICAgICAgICAvKiA0IGJwcCwgc3RhbmRhcmQgZW5jb2RpbmcgKi8K Pj4+Pj4+ICAgICAgICAgICAgICBicHBfaW5kZXggPSAxOwo+Pj4+Pj4gLSAgICAgICAgICAgIH0g ZWxzZSBpZiAoaC0+cmVjdHNbY2x1dF9pZF0tPm5iX2NvbG9ycyA8PSAyNTYpIHsKPj4+Pj4+ICsg ICAgICAgICAgICB9IGVsc2UgaWYgKG5iX2NvbG9ycyA8PSAyNTYpIHsKPj4+Pj4+ICAgICAgICAg ICAgICAvKiA4IGJwcCwgc3RhbmRhcmQgZW5jb2RpbmcgKi8KPj4+Pj4+ICAgICAgICAgICAgICBi cHBfaW5kZXggPSAyOwo+Pj4+Pj4gICAgICAgICAgfSBlbHNlIHsKPj4+Pj4+IEBAIC0zNTQsMTYg KzM2MSwyNCBAQCBzdGF0aWMgaW50IGR2YnN1Yl9lbmNvZGUoQVZDb2RlY0NvbnRleHQKPj4+ICph dmN0eCwKPj4+Pj4+IHVpbnQ4X3QgKm91dGJ1ZiwgaW50IGJ1Zl9zaXplLAo+Pj4+Pj4gICAgICAg ICAgKnErKyA9IGNsdXRfaWQ7Cj4+Pj4+PiAgICAgICAgICAqcSsrID0gKDAgPDwgNCkgfCAweGY7 IC8qIHZlcnNpb24gPSAwICovCj4+Pj4+PiAKPj4+Pj4+IC0gICAgICAgICAgICBmb3IoaSA9IDA7 IGkgPCBoLT5yZWN0c1tjbHV0X2lkXS0+bmJfY29sb3JzOyBpKyspIHsKPj4+Pj4+ICsgICAgICAg ICAgICBmb3IoaSA9IDA7IGkgPCBuYl9jb2xvcnM7IGkrKykgewo+Pj4+Pj4gICAgICAgICAgICAg ICpxKysgPSBpOyAvKiBjbHV0X2VudHJ5X2lkICovCj4+Pj4+PiAgICAgICAgICAgICAgKnErKyA9 ICgxIDw8ICg3IC0gYnBwX2luZGV4KSkgfCAoMHhmIDw8IDEpIHwgMTsgLyoKPj4+IDIKPj4+Pj4+ IGJpdHMvcGl4ZWwgZnVsbCByYW5nZSAqLwo+Pj4+Pj4gICAgICAgICAgICAgIHsKPj4+Pj4+ICAg ICAgICAgICAgICAgICAgaW50IGEsIHIsIGcsIGI7Cj4+Pj4+PiAtICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCB4PSAoKHVpbnQzMl90KiloLT5yZWN0c1tjbHV0X2lkXS0KPj4+Pj4+PiBkYXRh WzFdKVtpXTsKPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgIGEgPSAoeCA+PiAyNCkgJiAweGZm Owo+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgciA9ICh4ID4+IDE2KSAmIDB4ZmY7Cj4+Pj4+ PiAtICAgICAgICAgICAgICAgICAgICBnID0gKHggPj4gIDgpICYgMHhmZjsKPj4+Pj4+IC0gICAg ICAgICAgICAgICAgICAgIGIgPSAoeCA+PiAgMCkgJiAweGZmOwo+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgaWYgKGkgPCBoLT5yZWN0c1tjbHV0X2lkXS0+bmJfY29sb3JzKSB7Cj4+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgeD0gKCh1aW50MzJfdCopaC0KPj4+PiBy ZWN0c1tjbHV0X2lkXS0KPj4+Pj4+PiBkYXRhWzFdKVtpXTsKPj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICBhID0gKHggPj4gMjQpICYgMHhmZjsKPj4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICByID0gKHggPj4gMTYpICYgMHhmZjsKPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICBnID0gKHggPj4gIDgpICYgMHhmZjsKPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICBiID0gKHggPj4gIDApICYgMHhmZjsKPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7Cj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgLyogcGFkIG91dCB0aGUgQ0xVVCAq Lwo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSAwOwo+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIHIgPSAwOwo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGcg PSAwOwo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAwOwo+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgfQo+Pj4+Pj4gCj4+Pj4+PiAgICAgICAgICAgICAgICAgICpxKysgPSBS R0JfVE9fWV9DQ0lSKHIsIGcsIGIpOwo+Pj4+Pj4gICAgICAgICAgICAgICAgICAqcSsrID0gUkdC X1RPX1ZfQ0NJUihyLCBnLCBiLCAwKTsKPj4+Pj4+IEBAIC0zNzMsNyArMzg4LDcgQEAgc3RhdGlj IGludCBkdmJzdWJfZW5jb2RlKEFWQ29kZWNDb250ZXh0Cj4+PiAqYXZjdHgsCj4+Pj4+PiB1aW50 OF90ICpvdXRidWYsIGludCBidWZfc2l6ZSwKPj4+Pj4+ICAgICAgICAgIH0KPj4+Pj4+IAo+Pj4+ Pj4gICAgICAgICAgYnl0ZXN0cmVhbV9wdXRfYmUxNigmcHNlZ19sZW4sIHEgLSBwc2VnX2xlbiAt IDIpOwo+Pj4+Pj4gLSAgICAgICAgICAgIGJ1Zl9zaXplIC09IDYgKyBoLT5yZWN0c1tjbHV0X2lk XS0+bmJfY29sb3JzICogNjsKPj4+Pj4+ICsgICAgICAgICAgICBidWZfc2l6ZSAtPSA2ICsgbmJf Y29sb3JzICogNjsKPj4+Pj4+ICAgICAgfQo+Pj4+Pj4gCj4+Pj4+PiAgICAgIGlmIChidWZfc2l6 ZSA8IGgtPm51bV9yZWN0cyAqIDIyKQo+Pj4+Pj4gQEAgLTM4MSwxNCArMzk2LDE1IEBAIHN0YXRp YyBpbnQgZHZic3ViX2VuY29kZShBVkNvZGVjQ29udGV4dAo+Pj4gKmF2Y3R4LAo+Pj4+Pj4gdWlu dDhfdCAqb3V0YnVmLCBpbnQgYnVmX3NpemUsCj4+Pj4+PiAgICAgIGZvciAocmVnaW9uX2lkID0g MDsgcmVnaW9uX2lkIDwgaC0+bnVtX3JlY3RzOyByZWdpb25faWQrKykKPj4+IHsKPj4+Pj4+IAo+ Pj4+Pj4gICAgICAgICAgLyogcmVnaW9uIGNvbXBvc2l0aW9uIHNlZ21lbnQgKi8KPj4+Pj4+ICsg ICAgICAgICAgICBpbnQgbmJfY29sb3JzID0gRkZNQVgobWluX2NvbG9ycywgaC0KPj4+PiByZWN0 c1tyZWdpb25faWRdLQo+Pj4+Pj4+IG5iX2NvbG9ycyk7Cj4+Pj4+PiAKPj4+Pj4+IC0gICAgICAg ICAgICBpZiAoaC0+cmVjdHNbcmVnaW9uX2lkXS0+bmJfY29sb3JzIDw9IDQpIHsKPj4+Pj4+ICsg ICAgICAgICAgICBpZiAobmJfY29sb3JzIDw9IDQpIHsKPj4+Pj4+ICAgICAgICAgICAgICAvKiAy IGJwcCwgc29tZSBkZWNvZGVycyBkbyBub3Qgc3VwcG9ydCBpdCBjb3JyZWN0bHkKPj4+ICovCj4+ Pj4+PiAgICAgICAgICAgICAgYnBwX2luZGV4ID0gMDsKPj4+Pj4+IC0gICAgICAgICAgICB9IGVs c2UgaWYgKGgtPnJlY3RzW3JlZ2lvbl9pZF0tPm5iX2NvbG9ycyA8PSAxNikgewo+Pj4+Pj4gKyAg ICAgICAgICAgIH0gZWxzZSBpZiAobmJfY29sb3JzIDw9IDE2KSB7Cj4+Pj4+PiAgICAgICAgICAg ICAgLyogNCBicHAsIHN0YW5kYXJkIGVuY29kaW5nICovCj4+Pj4+PiAgICAgICAgICAgICAgYnBw X2luZGV4ID0gMTsKPj4+Pj4+IC0gICAgICAgICAgICB9IGVsc2UgaWYgKGgtPnJlY3RzW3JlZ2lv bl9pZF0tPm5iX2NvbG9ycyA8PSAyNTYpIHsKPj4+Pj4+ICsgICAgICAgICAgICB9IGVsc2UgaWYg KG5iX2NvbG9ycyA8PSAyNTYpIHsKPj4+Pj4+ICAgICAgICAgICAgICAvKiA4IGJwcCwgc3RhbmRh cmQgZW5jb2RpbmcgKi8KPj4+Pj4+ICAgICAgICAgICAgICBicHBfaW5kZXggPSAyOwo+Pj4+Pj4g ICAgICAgICAgfSBlbHNlIHsKPj4+Pj4+IEBAIC00MjQsMTcgKzQ0MCwxOSBAQCBzdGF0aWMgaW50 IGR2YnN1Yl9lbmNvZGUoQVZDb2RlY0NvbnRleHQKPj4+ICphdmN0eCwKPj4+Pj4+IHVpbnQ4X3Qg Km91dGJ1ZiwgaW50IGJ1Zl9zaXplLAo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQ4X3QgKmJpdG1hcCwgaW50Cj4+PiBsaW5lc2l6ZSwKPj4+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdywgaW50IGgpOwo+Pj4+Pj4gCj4+Pj4+PiAr ICAgICAgICAgICAgaW50IG5iX2NvbG9ycyA9IEZGTUFYKG1pbl9jb2xvcnMsIGgtCj4+Pj4gcmVj dHNbb2JqZWN0X2lkXS0KPj4+Pj4+PiBuYl9jb2xvcnMpOwo+Pj4+Pj4gKwo+Pj4+Pj4gICAgICAg ICAgaWYgKGJ1Zl9zaXplIDwgMTMpCj4+Pj4+PiAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf QlVGRkVSX1RPT19TTUFMTDsKPj4+Pj4+IAo+Pj4+Pj4gICAgICAgICAgLyogYnBwX2luZGV4IG1h dGhzICovCj4+Pj4+PiAtICAgICAgICAgICAgaWYgKGgtPnJlY3RzW29iamVjdF9pZF0tPm5iX2Nv bG9ycyA8PSA0KSB7Cj4+Pj4+PiArICAgICAgICAgICAgaWYgKG5iX2NvbG9ycyA8PSA0KSB7Cj4+ Pj4+PiAgICAgICAgICAgICAgLyogMiBicHAsIHNvbWUgZGVjb2RlcnMgZG8gbm90IHN1cHBvcnQg aXQgY29ycmVjdGx5Cj4+PiAqLwo+Pj4+Pj4gICAgICAgICAgICAgIGR2Yl9lbmNvZGVfcmxlID0g ZHZiX2VuY29kZV9ybGUyOwo+Pj4+Pj4gLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaC0+cmVjdHNb b2JqZWN0X2lkXS0+bmJfY29sb3JzIDw9IDE2KSB7Cj4+Pj4+PiArICAgICAgICAgICAgfSBlbHNl IGlmIChuYl9jb2xvcnMgPD0gMTYpIHsKPj4+Pj4+ICAgICAgICAgICAgICAvKiA0IGJwcCwgc3Rh bmRhcmQgZW5jb2RpbmcgKi8KPj4+Pj4+ICAgICAgICAgICAgICBkdmJfZW5jb2RlX3JsZSA9IGR2 Yl9lbmNvZGVfcmxlNDsKPj4+Pj4+IC0gICAgICAgICAgICB9IGVsc2UgaWYgKGgtPnJlY3RzW29i amVjdF9pZF0tPm5iX2NvbG9ycyA8PSAyNTYpIHsKPj4+Pj4+ICsgICAgICAgICAgICB9IGVsc2Ug aWYgKG5iX2NvbG9ycyA8PSAyNTYpIHsKPj4+Pj4+ICAgICAgICAgICAgICAvKiA4IGJwcCwgc3Rh bmRhcmQgZW5jb2RpbmcgKi8KPj4+Pj4+ICAgICAgICAgICAgICBkdmJfZW5jb2RlX3JsZSA9IGR2 Yl9lbmNvZGVfcmxlODsKPj4+Pj4+ICAgICAgICAgIH0gZWxzZSB7Cj4+Pj4+PiBAQCAtNTA2LDYg KzUyNCwyMCBAQCBzdGF0aWMgaW50IGR2YnN1Yl9lbmNvZGUoQVZDb2RlY0NvbnRleHQKPj4+ICph dmN0eCwKPj4+Pj4+IHVpbnQ4X3QgKm91dGJ1ZiwgaW50IGJ1Zl9zaXplLAo+Pj4+Pj4gIHJldHVy biBxIC0gb3V0YnVmOwo+Pj4+Pj4gfQo+Pj4+Pj4gCj4+Pj4+PiArI2RlZmluZSBPRkZTRVQoeCkg b2Zmc2V0b2YoRFZCU3VidGl0bGVDb250ZXh0LCB4KQo+Pj4+Pj4gKyNkZWZpbmUgU0UgQVZfT1BU X0ZMQUdfU1VCVElUTEVfUEFSQU0gfAo+Pj4gQVZfT1BUX0ZMQUdfRU5DT0RJTkdfUEFSQU0KPj4+ Pj4+ICtzdGF0aWMgY29uc3QgQVZPcHRpb24gb3B0aW9uc1tdID0gewo+Pj4+Pj4gKyAgICB7ImRp c2FibGVfMmJwcCIsICJkaXNhYmxlIHRoZSAyYnBwIHN1YnRpdGxlIGVuY29kZXIiLAo+Pj4+Pj4g T0ZGU0VUKGRpc2FibGVfMmJwcCksIEFWX09QVF9UWVBFX0JPT0wsIHsuaTY0ID0gMX0sIDAsIDEs IFNFfSwKPj4+Pj4+ICsgICAgeyBOVUxMIH0sCj4+Pj4+PiArfTsKPj4+Pj4+ICsKPj4+Pj4+ICtz dGF0aWMgY29uc3QgQVZDbGFzcyBkdmJzdWJlbmNfY2xhc3MgPSB7Cj4+Pj4+PiArICAgIC5jbGFz c19uYW1lID0gIkRWQlNVQiBzdWJ0aXRsZSBlbmNvZGVyIiwKPj4+Pj4+ICsgICAgLml0ZW1fbmFt ZSAgPSBhdl9kZWZhdWx0X2l0ZW1fbmFtZSwKPj4+Pj4+ICsgICAgLm9wdGlvbiAgICAgPSBvcHRp b25zLAo+Pj4+Pj4gKyAgICAudmVyc2lvbiAgICA9IExJQkFWVVRJTF9WRVJTSU9OX0lOVCwKPj4+ Pj4+ICt9Owo+Pj4+Pj4gKwo+Pj4+Pj4gY29uc3QgRkZDb2RlYyBmZl9kdmJzdWJfZW5jb2RlciA9 IHsKPj4+Pj4+ICAucC5uYW1lICAgICAgICAgPSAiZHZic3ViIiwKPj4+Pj4+ICBDT0RFQ19MT05H X05BTUUoIkRWQiBzdWJ0aXRsZXMiKSwKPj4+Pj4+IEBAIC01MTMsNCArNTQ1LDUgQEAgY29uc3Qg RkZDb2RlYyBmZl9kdmJzdWJfZW5jb2RlciA9IHsKPj4+Pj4+ICAucC5pZCAgICAgICAgICAgPSBB Vl9DT0RFQ19JRF9EVkJfU1VCVElUTEUsCj4+Pj4+PiAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9m KERWQlN1YnRpdGxlQ29udGV4dCksCj4+Pj4+PiAgRkZfQ09ERUNfRU5DT0RFX1NVQl9DQihkdmJz dWJfZW5jb2RlKSwKPj4+Pj4+ICsgICAgLnAucHJpdl9jbGFzcyAgID0gJmR2YnN1YmVuY19jbGFz cywKPj4+Pj4+IH07Cj4+Pj4+PiAtLQo+Pj4+PiAKPj4+Pj4gVGVzdGVkICYgTEdUTQo+Pj4+PiAK Pj4+Pj4gVGhhbmtzIGZvciB0aGUgcGF0Y2ghCj4+Pj4gCj4+Pj4gSGVsbG8sCj4+Pj4gCj4+Pj4g bnVkZ2luZyBvbiB0aGlzIC0gZG9lcyBpdCBuZWVkIGFueSBtb3JlIHdvcmssIG9yIHdpbGwgaXQg YmUgbWVyZ2VkPwo+Pj4+IAo+Pj4+IENoZWVycywKPj4+PiBXYWlkZXIuCj4+Pj4gLS0KPj4+PiBS b25hbiBXYWlkZQo+Pj4+IHdhaWRlckB3YWlkZXIuaWUKPj4+PiAKPj4+PiAKPj4+PiAKPj4+PiAK Pj4+IAo+Pj4gSGVsbG8gYWdhaW4sCj4+PiAKPj4+IHRoaXMgc3RpbGwgYXBwbGllcyBjbGVhbmx5 IHRvIHRoZSBjdXJyZW50IEhFQUQsIGkuZS4gbm8gY29uZmxpY3RzIG9uCj4+PiByZWJhc2UuIFdv dWxkIGl0IGJlIHBvc3NpYmxlIHRvIG1lcmdlIGl0LCBvciBpcyB0aGVyZSBhZGRpdGlvbmFsIHdv cmsKPj4+IHJlcXVpcmVkPwo+Pj4gCj4+PiBjaGVlcnMsCj4+PiBXYWlkZXIuCj4+PiAtLQo+Pj4g Um9uYW4gV2FpZGUKPj4+IHdhaWRlckB3YWlkZXIuaWUKPj4gCj4+IAo+PiBIZWxsbyBSb25hbiwK Pj4gCj4+IEknbGwgdHJ5IHRvIHBpY2sgdGhpcyB1cCBuZXh0IG9yIDJuZC1uZXh0IHdlZWsuIFBh dGNoIGxvb2tlZCBnb29kIAo+PiBidXQgSSB3YW50IHRvIHRlc3QgaXQgbG9jYWxseSBiZWZvcmUg bWFraW5nIGEgbGFzdCBjYWxsIGFuZCBhcHBseWluZwo+PiBpdCAtIGFzc3VtaW5nIGFsbCBnb2Vz IHdlbGwuCj4gCj4gbnVkZ2Ugb24gdGhpcy4gVGhlIGN1cnJlbnQgcGF0Y2ggYXBwbGllcyB0byB0 aGUgY3VycmVudCBIRUFEIHdpdGhvdXQgY2hhbmdlcywgc28gSSd2ZSBub3QgcG9zdGVkIGEgcmV2 aXNpb24uCgpudWRnaW5nIG9uIHRoaXMgYWdhaW4uIFBhdGNoIGNvbnRpbnVlcyB0byBhcHBseSBj bGVhbmx5LCBidXQgSSBjYW4gcG9zdCBhIHJlYmFzZWQgdmVyc2lvbiBpZiByZXF1aXJlZC4KCmNo ZWVycywKV2FpZGVyLgotLSAKUm9uYW4gV2FpZGUKd2FpZGVyQHdhaWRlci5pZQoKCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1h aWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFp bG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFi b3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgo=