From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id BA1FC46857 for ; Tue, 20 Jun 2023 15:58:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6166868AA2F; Tue, 20 Jun 2023 18:58:08 +0300 (EEST) Received: from mail-ua1-f43.google.com (mail-ua1-f43.google.com [209.85.222.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 552DE68BCB6 for ; Tue, 20 Jun 2023 18:58:02 +0300 (EEST) Received: by mail-ua1-f43.google.com with SMTP id a1e0cc1a2514c-78f628079eeso1166602241.1 for ; Tue, 20 Jun 2023 08:58:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687276681; x=1689868681; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=lfNLH29polW55dPEI/WlbZhKHe0QbQNvv7haoNYwbXM=; b=EUQ2pVGviW25pylWjEElMAUVrveJV49nXfqybP3g4FzitQ93QLRqAQ3JM2XHI2iktq gVEM/5hSSrabLd9CIlbRuISvygj64sdZ4eECm17WZTeM7vK4SCdZyGyAlfNpRSyxnBu2 Wc9d8Z7oPkh3d77dBuCURrqmq8xd4/G21INSgYVol8pBT+4+xD7h7QzX00Qywcpcx1j9 Ij71zbSLTIIJ7VJKVsHxDfWQwCtCQvFkEO4d4UEa8UgqpJwaoFLUBdnQKSi16ANNY1UT GhMtAOu2q+nnSMJArrvLgtx9PCKSNYeTVnHrziSAMJvYhXljjUZPS1S6hPLoLW5cfLXi Qw5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687276681; x=1689868681; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lfNLH29polW55dPEI/WlbZhKHe0QbQNvv7haoNYwbXM=; b=l+sxeyIGIVRl+ACK5PXUeSsK2g0ZsnxidEOyKJCrOFOeeeTx5NYNKML8F6mExuH41D /CA7Zl5y0csGDGfMx337NHfDL7b9CrQfYoW7clb5k+pDJHcHNiInP88kjS/VBIfvuf94 sCVWPW8cxC72P95XVcpztuymMFiire8Nz8QQU8QWf46cvC+CDX9uBzyS1e5nrnlFVxFq RPmSvFuKZh6drScYpn0E1dPXsbGMj89syVc/xvouWSN5Poj06CXtXT9NWRkF/PL/9LFX +jDSfKuPvPv4KB00k2D2gTBixabah20qXBPyKcorCBBfbbxoSfWFReLT22RsOMK8idaZ mBLA== X-Gm-Message-State: AC+VfDzWtJMBe3Y4XNFEjizcva4IN9nayJr1P+hYoiRCwXcGDZXuevPM oMfFPCGlS2hQP1vYYBE7dvSPGTmfn9KFdjPEKmpBekeq X-Google-Smtp-Source: ACHHUZ4EaDY5t3wmW3AqZlu3BNjOxnrTDBU8vQfKM8HsDa57k+A/exQuxge+9i/k7LyYKR7Tu2ZqBCm98X7M7DHAZpY= X-Received: by 2002:a67:b90c:0:b0:439:4112:814 with SMTP id q12-20020a67b90c000000b0043941120814mr5899756vsn.2.1687276680537; Tue, 20 Jun 2023 08:58:00 -0700 (PDT) MIME-Version: 1.0 References: <20230619163347.1317-1-mark.ren77@gmail.com> <34fc428a-b788-f9e3-1ee9-444d24765ca7@tiscali.it> In-Reply-To: <34fc428a-b788-f9e3-1ee9-444d24765ca7@tiscali.it> From: Paul B Mahol Date: Tue, 20 Jun 2023 17:57:35 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] libavfilter/vf_drawtext: add letter_spacing as an evaluated parameter 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: T24gVHVlLCBKdW4gMjAsIDIwMjMgYXQgNDoyN+KAr1BNIEZyYW5jZXNjbyBDYXJ1c2kgPGtsaW1r bGltQHRpc2NhbGkuaXQ+Cndyb3RlOgoKPiBZb3UgY2FuIGZpbmQgYW4gb3ZlcnZpZXcgb2YgdGhl IGNoYW5nZXMgaGVyZToKPgo+IGh0dHBzOi8vZ2l0aHViLmNvbS95ZXRoaWUvRkZtcGVnL2Jsb2Iv bWFzdGVyL2RyYXd0ZXh0L0NIQU5HRVMubWQKPgo+IGFuZCB0aGUgbmV3IGNvZGUgaGVyZToKPgo+ IGh0dHBzOi8vZ2l0aHViLmNvbS95ZXRoaWUvRkZtcGVnL2Jsb2IvbWFzdGVyL2xpYmF2ZmlsdGVy L3ZmX2RyYXd0ZXh0LmMKCgpUaGlzIGhhdmUgYmVlbiBhbHJlYWR5IG1lcmdlZCwgd2l0aCBzb21l IG1pbm9yIGNoYW5nZXMuCgoKPgo+Cj4KPiBPbiAxOS8wNi8yMDIzIDE5OjU2LCBNYXJrIFJlbiB3 cm90ZToKPiA+IEFoIGFscmlnaHQgSSBzZWUuIFdoZW4gbWlnaHQgdGhhdCBwdXNoIGNvbWUgdGhy b3VnaCBhbmQgaXMgdGhlcmUKPiBzb21ld2hlcmUKPiA+IEkgY2FuIGxvb2sgYXQgdGhlIGtpbmQg b2YgY2hhbmdlcyBpbiB0aGUgbWVhbnRpbWU/Cj4gPgo+ID4gT24gTW9uLCBKdW4gMTksIDIwMjMg YXQgMTI6MznigK9QTSBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+IHdyb3RlOgo+ID4K PiA+Pgo+ID4+IE9uIE1vbiwgSnVuIDE5LCAyMDIzIGF0IDY6MzTigK9QTSBNYXJrIFJlbiA8bWFy ay5yZW43N0BnbWFpbC5jb20+IHdyb3RlOgo+ID4+Cj4gPj4+IFdoZW4gZW5hYmxlZCBpdCB3aWxs IGFkZCBwaXhlbHMgKG9yIHN1YnRyYWN0IGlmIGdpdmVuIGEgbmVnYXRpdmUgdmFsdWUpCj4gPj4+ IGJldHdlZW4gZWFjaCBsZXR0ZXJzLAo+ID4+PiBzZXQgdXNlX2tlcm5pbmcgdG8gZmFsc2UsCj4g Pj4+IGFuZCBhZGQgdGhlIHBpeGVscyB0byB0ZXh0X3cuCj4gPj4+Cj4gPj4gQ29uZmxpY3RzIHdp dGggYmlnIGRyYXd0ZXh0IGZpbHRlciBzZXQgdGhhdCB3aWxsIGJlIHB1c2hlZCBzb29uLgo+ID4+ Cj4gPj4KPiA+Pj4gU2lnbmVkLW9mZi1ieTogTWFyayBSZW4gPG1hcmsucmVuNzdAZ21haWwuY29t Pgo+ID4+PiAtLS0KPiA+Pj4gICBsaWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jIHwgMjQgKysrKysr KysrKysrKysrKysrKystLS0tCj4gPj4+ICAgMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9kcmF3dGV4dC5jIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwo+ID4+PiBpbmRleCA3MWFi ODUxNDYyLi5lYzgzMTM4MjBkIDEwMDY0NAo+ID4+PiAtLS0gYS9saWJhdmZpbHRlci92Zl9kcmF3 dGV4dC5jCj4gPj4+ICsrKyBiL2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKPiA+Pj4gQEAgLTE4 Myw2ICsxODMsNyBAQCB0eXBlZGVmIHN0cnVjdCBEcmF3VGV4dENvbnRleHQgewo+ID4+PiAgICAg ICB1bnNpZ25lZCBpbnQgZm9udHNpemU7ICAgICAgICAgIC8vLzwgZm9udCBzaXplIHRvIHVzZQo+ ID4+PiAgICAgICB1bnNpZ25lZCBpbnQgZGVmYXVsdF9mb250c2l6ZTsgIC8vLzwgZGVmYXVsdCBm b250IHNpemUgdG8gdXNlCj4gPj4+Cj4gPj4+ICsgICAgaW50IGxldHRlcl9zcGFjaW5nOyAgICAg ICAgICAgICAvLy88IGxldHRlciBzcGFjaW5nIGluIHBpeGVscwo+ID4+PiAgICAgICBpbnQgbGlu ZV9zcGFjaW5nOyAgICAgICAgICAgICAgIC8vLzwgbGluZXMgc3BhY2luZyBpbiBwaXhlbHMKPiA+ Pj4gICAgICAgc2hvcnQgaW50IGRyYXdfYm94OyAgICAgICAgICAgICAvLy88IGRyYXcgYm94IGFy b3VuZCB0ZXh0IC0gdHJ1ZQo+IG9yCj4gPj4+IGZhbHNlCj4gPj4+ICAgICAgIGludCBib3hib3Jk ZXJ3OyAgICAgICAgICAgICAgICAgLy8vPCBib3ggYm9yZGVyIHdpZHRoCj4gPj4+IEBAIC0yMDgs NiArMjA5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250ZXh0IHsKPiA+Pj4gICAgICAg Y2hhciAgICphX2V4cHI7Cj4gPj4+ICAgICAgIEFWRXhwciAqYV9wZXhwcjsKPiA+Pj4gICAgICAg aW50IGFscGhhOwo+ID4+PiArICAgIGNoYXIqIGxldHRlcl9zcGFjaW5nX2V4cHI7ICAgICAgLy8v PCBleHByZXNzaW9uIGZvciBsZXR0ZXIgc3BhY2luZwo+ID4+PiArICAgIEFWRXhwciogbGV0dGVy X3NwYWNpbmdfcGV4cHI7ICAgLy8vPCBwYXJzZWQgZXhwcmVzc2lvbiBmb3IgbGV0dGVyCj4gPj4+ IHNwYWNpbmcKPiA+Pj4gICAgICAgQVZMRkcgIHBybmc7ICAgICAgICAgICAgICAgICAgICAvLy88 IHJhbmRvbQo+ID4+PiAgICAgICBjaGFyICAgICAgICp0Y19vcHRfc3RyaW5nOyAgICAgIC8vLzwg c3BlY2lmaWVkIHRpbWVjb2RlIG9wdGlvbgo+IHN0cmluZwo+ID4+PiAgICAgICBBVlJhdGlvbmFs ICB0Y19yYXRlOyAgICAgICAgICAgIC8vLzwgZnJhbWUgcmF0ZSBmb3IgdGltZWNvZGUKPiA+Pj4g QEAgLTIzNyw2ICsyNDAsNyBAQCBzdGF0aWMgY29uc3QgQVZPcHRpb24gZHJhd3RleHRfb3B0aW9u c1tdPSB7Cj4gPj4+ICAgICAgIHsic2hhZG93Y29sb3IiLCAic2V0IHNoYWRvdyBjb2xvciIsICAg ICBPRkZTRVQoc2hhZG93Y29sb3IucmdiYSksCj4gPj4+ICAgQVZfT1BUX1RZUEVfQ09MT1IsICB7 LnN0cj0iYmxhY2sifSwgMCwgMCwgRkxBR1N9LAo+ID4+PiAgICAgICB7ImJveCIsICAgICAgICAg InNldCBib3giLCAgICAgICAgICAgICAgT0ZGU0VUKGRyYXdfYm94KSwKPiA+Pj4gICBBVl9PUFRf VFlQRV9CT09MLCAgIHsuaTY0PTB9LCAgICAgMCwgICAgICAgIDEgICAgICAgLCBGTEFHU30sCj4g Pj4+ICAgICAgIHsiYm94Ym9yZGVydyIsICAic2V0IGJveCBib3JkZXIgd2lkdGgiLCBPRkZTRVQo Ym94Ym9yZGVydyksCj4gPj4+ICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIElO VF9NSU4sICBJTlRfTUFYICwgRkxBR1N9LAo+ID4+PiArICAgIHsibGV0dGVyX3NwYWNpbmciLCAi c2V0IGxldHRlciBzcGFjaW5nIGluIHBpeGVscyIsCj4gPj4+IE9GRlNFVChsZXR0ZXJfc3BhY2lu Z19leHByKSwgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9LCAwLCAwLAo+IEZMQUdTfSwK PiA+Pj4gICAgICAgeyJsaW5lX3NwYWNpbmciLCAgInNldCBsaW5lIHNwYWNpbmcgaW4gcGl4ZWxz IiwKPiA+Pj4gT0ZGU0VUKGxpbmVfc3BhY2luZyksICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2 ND0wfSwgICAgIElOVF9NSU4sCj4gPj4+IElOVF9NQVgsRkxBR1N9LAo+ID4+PiAgICAgICB7ImZv bnRzaXplIiwgICAgInNldCBmb250IHNpemUiLCAgICAgICAgT0ZGU0VUKGZvbnRzaXplX2V4cHIp LAo+ID4+PiBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3RyPU5VTEx9LCAgMCwgMCAsIEZMQUdTfSwK PiA+Pj4gICAgICAgeyJ4IiwgICAgICAgICAgICJzZXQgeCBleHByZXNzaW9uIiwgICAgIE9GRlNF VCh4X2V4cHIpLAo+ID4+PiAgIEFWX09QVF9UWVBFX1NUUklORywgey5zdHI9IjAifSwgICAwLCAw LCBGTEFHU30sCj4gPj4+IEBAIC04MTIsNyArODE2LDcgQEAgc3RhdGljIGF2X2NvbGQgaW50IGlu aXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBG VF9TVFJPS0VSX0xJTkVKT0lOX1JPVU5ELCAwKTsKPiA+Pj4gICAgICAgfQo+ID4+Pgo+ID4+PiAt ICAgIHMtPnVzZV9rZXJuaW5nID0gRlRfSEFTX0tFUk5JTkcocy0+ZmFjZSk7Cj4gPj4+ICsgICAg cy0+dXNlX2tlcm5pbmcgPSBGVF9IQVNfS0VSTklORyhzLT5mYWNlKSAmJiAhcy0+bGV0dGVyX3Nw YWNpbmc7Cj4gPj4+Cj4gPj4+ICAgICAgIC8qIGxvYWQgdGhlIGZhbGxiYWNrIGdseXBoIHdpdGgg Y29kZSAwICovCj4gPj4+ICAgICAgIGxvYWRfZ2x5cGgoY3R4LCBOVUxMLCAwKTsKPiA+Pj4gQEAg LTg1Nyw4ICs4NjEsOSBAQCBzdGF0aWMgYXZfY29sZCB2b2lkIHVuaW5pdChBVkZpbHRlckNvbnRl eHQgKmN0eCkKPiA+Pj4gICAgICAgYXZfZXhwcl9mcmVlKHMtPnlfcGV4cHIpOwo+ID4+PiAgICAg ICBhdl9leHByX2ZyZWUocy0+YV9wZXhwcik7Cj4gPj4+ICAgICAgIGF2X2V4cHJfZnJlZShzLT5m b250c2l6ZV9wZXhwcik7Cj4gPj4+ICsgICAgYXZfZXhwcl9mcmVlKHMtPmxldHRlcl9zcGFjaW5n X3BleHByKTsKPiA+Pj4KPiA+Pj4gLSAgICBzLT54X3BleHByID0gcy0+eV9wZXhwciA9IHMtPmFf cGV4cHIgPSBzLT5mb250c2l6ZV9wZXhwciA9IE5VTEw7Cj4gPj4+ICsgICAgcy0+eF9wZXhwciA9 IHMtPnlfcGV4cHIgPSBzLT5hX3BleHByID0gcy0+Zm9udHNpemVfcGV4cHIgPQo+ID4+PiBzLT5s ZXR0ZXJfc3BhY2luZ19wZXhwciA9IE5VTEw7Cj4gPj4+Cj4gPj4+ICAgICAgIGF2X2ZyZWVwKCZz LT5wb3NpdGlvbnMpOwo+ID4+PiAgICAgICBzLT5uYl9wb3NpdGlvbnMgPSAwOwo+ID4+PiBAQCAt OTAzLDEzICs5MDgsMTYgQEAgc3RhdGljIGludCBjb25maWdfaW5wdXQoQVZGaWx0ZXJMaW5rICpp bmxpbmspCj4gPj4+ICAgICAgIGF2X2V4cHJfZnJlZShzLT54X3BleHByKTsKPiA+Pj4gICAgICAg YXZfZXhwcl9mcmVlKHMtPnlfcGV4cHIpOwo+ID4+PiAgICAgICBhdl9leHByX2ZyZWUocy0+YV9w ZXhwcik7Cj4gPj4+IC0gICAgcy0+eF9wZXhwciA9IHMtPnlfcGV4cHIgPSBzLT5hX3BleHByID0g TlVMTDsKPiA+Pj4gKyAgICBhdl9leHByX2ZyZWUocy0+bGV0dGVyX3NwYWNpbmdfcGV4cHIpOwo+ ID4+PiArICAgIHMtPnhfcGV4cHIgPSBzLT55X3BleHByID0gcy0+YV9wZXhwciA9IHMtPmxldHRl cl9zcGFjaW5nX3BleHByID0KPiA+Pj4gTlVMTDsKPiA+Pj4KPiA+Pj4gICAgICAgaWYgKChyZXQg PSBhdl9leHByX3BhcnNlKCZzLT54X3BleHByLCBleHByID0gcy0+eF9leHByLAo+IHZhcl9uYW1l cywKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIGZ1bjJf bmFtZXMsIGZ1bjIsIDAsIGN0eCkpCj4gPCAwCj4gPj4+IHx8Cj4gPj4+ICAgICAgICAgICAocmV0 ID0gYXZfZXhwcl9wYXJzZSgmcy0+eV9wZXhwciwgZXhwciA9IHMtPnlfZXhwciwKPiB2YXJfbmFt ZXMsCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBmdW4y X25hbWVzLCBmdW4yLCAwLCBjdHgpKQo+IDwgMAo+ID4+PiB8fAo+ID4+PiAgICAgICAgICAgKHJl dCA9IGF2X2V4cHJfcGFyc2UoJnMtPmFfcGV4cHIsIGV4cHIgPSBzLT5hX2V4cHIsCj4gdmFyX25h bWVzLAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBmdW4y X25hbWVzLCBmdW4yLCAwLCBjdHgpKSA8Cj4gMAo+ID4+PiB8fAo+ID4+PiArICAgICAgICAocmV0 ID0gYXZfZXhwcl9wYXJzZSgmcy0+bGV0dGVyX3NwYWNpbmdfcGV4cHIsIGV4cHIgPQo+ID4+PiBz LT5sZXR0ZXJfc3BhY2luZ19leHByLCB2YXJfbmFtZXMsCj4gPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBmdW4yX25hbWVzLCBmdW4yLCAwLCBjdHgpKQo+IDwg MCkKPiA+Pj4gewo+ID4+PiAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFp bGVkIHRvIHBhcnNlIGV4cHJlc3Npb246ICVzCj4gXG4iLAo+ID4+PiBleHByKTsKPiA+Pj4gICAg ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gPj4+IEBAIC0xNTI1LDYgKzE1MzMsOSBA QCBjb250aW51ZV9vbl9pbnZhbGlkMjoKPiA+Pj4gICAgICAgICAgIGR1bW15LmZvbnRzaXplID0g cy0+Zm9udHNpemU7Cj4gPj4+ICAgICAgICAgICBnbHlwaCA9IGF2X3RyZWVfZmluZChzLT5nbHlw aHMsICZkdW1teSwgZ2x5cGhfY21wLCBOVUxMKTsKPiA+Pj4KPiA+Pj4gKyAgICAgICAgLyogbGV0 dGVyIHNwYWNpbmcgKi8KPiA+Pj4gKyAgICAgICAgeCArPSBzLT5sZXR0ZXJfc3BhY2luZzsKPiA+ Pj4gKwo+ID4+PiAgICAgICAgICAgLyoga2VybmluZyAqLwo+ID4+PiAgICAgICAgICAgaWYgKHMt PnVzZV9rZXJuaW5nICYmIHByZXZfZ2x5cGggJiYgZ2x5cGgtPmNvZGUpIHsKPiA+Pj4gICAgICAg ICAgICAgICBGVF9HZXRfS2VybmluZyhzLT5mYWNlLCBwcmV2X2dseXBoLT5jb2RlLCBnbHlwaC0+ Y29kZSwKPiA+Pj4gQEAgLTE1MzksNyArMTU1MCwxMiBAQCBjb250aW51ZV9vbl9pbnZhbGlkMjoK PiA+Pj4gICAgICAgICAgIGVsc2UgICAgICAgICAgICAgIHggKz0gZ2x5cGgtPmFkdmFuY2U7Cj4g Pj4+ICAgICAgIH0KPiA+Pj4KPiA+Pj4gLSAgICBtYXhfdGV4dF9saW5lX3cgPSBGRk1BWCh4LCBt YXhfdGV4dF9saW5lX3cpOwo+ID4+PiArICAgIHMtPmxldHRlcl9zcGFjaW5nID0gYXZfZXhwcl9l dmFsKHMtPmxldHRlcl9zcGFjaW5nX3BleHByLAo+ID4+PiBzLT52YXJfdmFsdWVzLCAmcy0+cHJu Zyk7Cj4gPj4+ICsgICAgaWYgKHMtPmxldHRlcl9zcGFjaW5nIDwgMCkgewo+ID4+PiArICAgICAg ICBtYXhfdGV4dF9saW5lX3cgPSB4KyBzLT5sZXR0ZXJfc3BhY2luZzsKPiA+Pj4gKyAgICB9IGVs c2Ugewo+ID4+PiArICAgICAgICBtYXhfdGV4dF9saW5lX3cgPSBGRk1BWCh4LCBtYXhfdGV4dF9s aW5lX3cpICsKPiBzLT5sZXR0ZXJfc3BhY2luZzsKPiA+Pj4gKyAgICB9Cj4gPj4+Cj4gPj4+ICAg ICAgIHMtPnZhcl92YWx1ZXNbVkFSX1RXXSA9IHMtPnZhcl92YWx1ZXNbVkFSX1RFWFRfV10gPQo+ IG1heF90ZXh0X2xpbmVfdzsKPiA+Pj4gICAgICAgcy0+dmFyX3ZhbHVlc1tWQVJfVEhdID0gcy0+ dmFyX3ZhbHVlc1tWQVJfVEVYVF9IXSA9IHkgKwo+ID4+PiBzLT5tYXhfZ2x5cGhfaDsKPiA+Pj4g LS0KPiA+Pj4gMi40MC4xCj4gPj4+Cj4gPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gPj4+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+Pj4g ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiA+Pj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4v bGlzdGluZm8vZmZtcGVnLWRldmVsCj4gPj4+Cj4gPj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBs aW5rIGFib3ZlLCBvciBlbWFpbAo+ID4+PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3Jn IHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+ID4+Pgo+ID4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxp c3QKPiA+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gPiBodHRwczovL2ZmbXBlZy5vcmcvbWFp bG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiA+Cj4gPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQg bGluayBhYm92ZSwgb3IgZW1haWwKPiA+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcg d2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVt YWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4KPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBz Oi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3Jp YmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBl Zy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==