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 4595249B33 for ; Fri, 7 Jun 2024 02:12:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2BF8C68D72A; Fri, 7 Jun 2024 05:12:39 +0300 (EEST) Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9995A68C178 for ; Fri, 7 Jun 2024 05:12:31 +0300 (EEST) Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-572c65cea55so1386424a12.0 for ; Thu, 06 Jun 2024 19:12:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717726351; x=1718331151; darn=ffmpeg.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=KyCgcn+l40BTsle5mZirs7OliWcJvuR6yv58rSmVY7w=; b=j+UtDwyMFpU3MBeCPkr/BILam4TMempZYCUEHQdE6MLhIImCJX0HtnA61hxZ01cnpr RfbG8IRleq8yRI+Ls4gypzE3v2iPk0wAFap5q7dj9tIZh5B9onO5YQSW9b5VSKMxlLdW F/xeuZau0RIA7Zs99SwoxxPtXpofZGOFHg/m/JYk7vNx2MLaK/teqqkhzdtgA7f7Q28b lqQhU5EDmn8kEafb/drHRb+adNXduNH9xQMUB9H4yL/x+n2irz1YRmYLdsYiP5d+IcRi 55vKzQOm6asmB7yQLHQ1U9e7TsPYdU0DgdMuPMS6rIRly61qGVLiUlIOjHHz/0QFi753 e7uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717726351; x=1718331151; h=content-transfer-encoding:cc: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=KyCgcn+l40BTsle5mZirs7OliWcJvuR6yv58rSmVY7w=; b=FI6P+o0Vu3d2CI8cRikaesvBF5sp2IzPdWEsgWB228//aOWHlJ//pqUHkG8rujM/mX udLeDm3l9o6AwAxXxfcwZ1AyrYD/k2hjcRwM/5/0c/IJFrkpIUYgjafxosKpJNtaowyM D0mnoUNMQjt/SrVZu+T5+zE6bAmOOFdUEyP+WUVe7T4rJ9exhfiF4fbOr6jDu7bSvXlS tnEZ3nXbsD3kft0XgAeK4adxLguU7Gw9WBr61XRi5bh0iXF0yoXFyrT1WbwenJSguYrP U2L5Icb8jhm+D18VsaKvufYDvY2TEzGdYIt/NEfIKJxeznqoNj0DFSVzgTPG87lP9oNr aGsQ== X-Gm-Message-State: AOJu0YyL8mO50C9BOG1pIZpyt9i6W8C4O3C82L/CP72+rtabQ4AHvNGS 6J4QVR3lLSWhDCqzK3j+gVnLbOAEvRUw82oWfqm6/wIVaAt4WZ5xYC0rPU8qCz6eWdFlQajGBeN nnq6eiqWYW8s3xtPfnxFMV0jcG3M= X-Google-Smtp-Source: AGHT+IHHLLHhGdxIIJXuSu9rA+BdkatTI9DXsXEp1EhhLlbDabnsrYW27oIPbVVUiM+uo7R4+QB597vBKKZRJRvGQzE= X-Received: by 2002:a50:9ece:0:b0:578:e204:bfb6 with SMTP id 4fb4d7f45d1cf-57aa5411068mr3655726a12.9.1717726350316; Thu, 06 Jun 2024 19:12:30 -0700 (PDT) MIME-Version: 1.0 References: <20240606115100.44233-1-hiccupzhu@gmail.com> In-Reply-To: From: Hiccup Zhu Date: Fri, 7 Jun 2024 10:12:19 +0800 Message-ID: To: Zhao Zhili Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add sdlvsink for video display 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 Cc: 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: T24gVGh1LCA2IEp1biAyMDI0IGF0IDIwOjIwLCBaaGFvIFpoaWxpIDxxdWlua2JsYWNrQGZveG1h aWwuY29tPiB3cm90ZToKPgo+Cj4gT24gSnVuIDYsIDIwMjQsIGF0IDE5OjUxLCBTaGlxaSBaaHUg PGhpY2N1cHpodUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4KPiBJ4oCZbSBhZnJhaWQgdGhpcyBoYXMg dGhlIHNhbWUgaXNzdWUgYXMgbGliYXZkZXZpY2Uvc2RsWzFdLgo+Cj4gWzFdIGh0dHBzOi8vcGF0 Y2h3b3JrLmZmbXBlZy5vcmcvcHJvamVjdC9mZm1wZWcvcGF0Y2gvMjAyMzA5MTgwNjM3MjguMTk4 Mzc3LTEtaGFpaGFvLnhpYW5nQGludGVsLmNvbS8KPgoKVGhhbmsgeW91IGZvciB0aGUgcmVtaW5k ZXIuIFRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSB0aGF0IGlzc3VlLiBBbGwKU0RMIGluaXRpYWxp emF0aW9uIGlzIHdpdGhpbiB0aGUgZmlsdGVyX2ZyYW1lKCkgZnVuY3Rpb24sIHNvIHRoZXJlJ3MK bm8gcHJvYmxlbSB3aXRoIGRpZmZlcmVudCB0aHJlYWRzIGJlaW5nIGNyZWF0ZWQuCgpGdXJ0aGVy bW9yZSwgbXkgZXhwZXJ0aXNlIGxpZXMgcHJpbWFyaWx5IGluIG11bHRpbWVkaWEgZnJhbWV3b3Jr CmRldmVsb3BtZW50LiBJJ3ZlIG5vdGljZWQgdGhhdCB0aGUgbGliYXZmaWx0ZXIgbm93IG9mZmVy cyBhCmNvbXByZWhlbnNpdmUgYmFzaWMgZnJhbWV3b3JrLCBwcm92aWRpbmcgdmFyaW91cyB0eXBl cyBvZiBmaWx0ZXJzIHN1Y2gKYXMgc3JjLCB0cmFucywgYW5kIHNpbmsgd2l0aGluIHRoZSBmaWx0 ZXItZ3JhcGguCgpUaGVyZSBhcmUgYWxyZWFkeSBtYW55IHNyYyBhbmQgdHJhbnMgdHlwZSBmaWx0 ZXJzIGluIHRoZSBleGlzdGluZwpjb2RlYmFzZSwgd2l0aCByaWNoIGZ1bmN0aW9uYWxpdGllcy4g SG93ZXZlciwgdGhlcmUgYXJlIG9ubHkgdHdvIHNpbmsKZmlsdGVyczogYnVmZmVyc2luayBhbmQg bnVsbHNpbmssIHdoaWNoIGlzIG5vdCBxdWl0ZSBzdWZmaWNpZW50IGZvcgp0aGUgZGV2ZWxvcG1l bnQgb2YgZmlsdGVyLWdyYXBocy4KClRodXMsIEkgc3VibWl0dGVkIHRoaXMgcGF0Y2ggd2l0aCB0 aGUgaW50ZW50aW9uIG9mIGVucmljaGluZyB0aGUgdHlwZXMKb2Ygc2luayBmaWx0ZXJzIGF2YWls YWJsZS4KCk1hbnkgdGhhbmtzIGZvciB5b3VyIHZhbHVhYmxlIGNvbW1lbnRzLgoKPgo+IFNpZ25l ZC1vZmYtYnk6IFNoaXFpIFpodSA8aGljY3Vwemh1QGdtYWlsLmNvbT4KPiAtLS0KPiBjb25maWd1 cmUgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiBsaWJhdmZpbHRlci9NYWtlZmlsZSAgICAg ICAgIHwgICAxICsKPiBsaWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgICAgIHwgICAxICsKPiBsaWJh dmZpbHRlci92c2lua19zZGx2c2luay5jIHwgMTQyICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gNCBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKQo+IGNyZWF0ZSBt b2RlIDEwMDY0NCBsaWJhdmZpbHRlci92c2lua19zZGx2c2luay5jCj4KPiBkaWZmIC0tZ2l0IGEv Y29uZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggNmM1YjhhYWI5YS4uOTY4YjVjODkxMiAxMDA3 NTUKPiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1cmUKPiBAQCAtMzk3Nyw2ICszOTc3 LDcgQEAgeHN0YWNrX3Fzdl9maWx0ZXJfZGVwcz0ibGlibWZ4Igo+IHhzdGFja19xc3ZfZmlsdGVy X3NlbGVjdD0icXN2dnBwIgo+IHBhZF92YWFwaV9maWx0ZXJfZGVwcz0idmFhcGlfMSIKPiBkcmF3 Ym94X3ZhYXBpX2ZpbHRlcl9kZXBzPSJ2YWFwaV8xIgo+ICtzZGx2c2lua19maWx0ZXJfZGVwcz0i c2RsMiIKPgo+ICMgZXhhbXBsZXMKPiBhdmlvX2h0dHBfc2VydmVfZmlsZXNfZGVwcz0iYXZmb3Jt YXQgYXZ1dGlsIGZvcmsiCj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL01ha2VmaWxlIGIvbGli YXZmaWx0ZXIvTWFrZWZpbGUKPiBpbmRleCA1OTkyZmQxNjFmLi5mZWFjNmI0NjRkIDEwMDY0NAo+ IC0tLSBhL2xpYmF2ZmlsdGVyL01ha2VmaWxlCj4gKysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUK PiBAQCAtNjE2LDYgKzYxNiw3IEBAIE9CSlMtJChDT05GSUdfWVVWVEVTVFNSQ19GSUxURVIpICAg ICAgICAgICAgICs9IHZzcmNfdGVzdHNyYy5vCj4gT0JKUy0kKENPTkZJR19aT05FUExBVEVfRklM VEVSKSAgICAgICAgICAgICAgKz0gdnNyY190ZXN0c3JjLm8KPgo+IE9CSlMtJChDT05GSUdfTlVM TFNJTktfRklMVEVSKSAgICAgICAgICAgICAgICs9IHZzaW5rX251bGxzaW5rLm8KPiArT0JKUy0k KENPTkZJR19TRExWU0lOS19GSUxURVIpICAgICAgICAgICAgICAgKz0gdnNpbmtfc2RsdnNpbmsu bwo+Cj4gIyBtdWx0aW1lZGlhIGZpbHRlcnMKPiBPQkpTLSQoQ09ORklHX0EzRFNDT1BFX0ZJTFRF UikgICAgICAgICAgICAgICArPSBhdmZfYTNkc2NvcGUubwo+IGRpZmYgLS1naXQgYS9saWJhdmZp bHRlci9hbGxmaWx0ZXJzLmMgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKPiBpbmRleCBjNTMy NjgyZmMyLi5kNWY5NDJmZmI1IDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMu Ywo+ICsrKyBiL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYwo+IEBAIC01NzksNiArNTc5LDcgQEAg ZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZzcmNfeXV2dGVzdHNyYzsKPiBleHRlcm4gY29uc3Qg QVZGaWx0ZXIgZmZfdnNyY196b25lcGxhdGU7Cj4KPiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZf dnNpbmtfbnVsbHNpbms7Cj4gK2V4dGVybiBjb25zdCBBVkZpbHRlciBmZl92c2lua19zZGx2c2lu azsKPgo+IC8qIG11bHRpbWVkaWEgZmlsdGVycyAqLwo+IGV4dGVybiBjb25zdCBBVkZpbHRlciBm Zl9hdmZfYTNkc2NvcGU7Cj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZzaW5rX3NkbHZzaW5r LmMgYi9saWJhdmZpbHRlci92c2lua19zZGx2c2luay5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwMDAwLi42MzBmNzE5YzdlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xp YmF2ZmlsdGVyL3ZzaW5rX3NkbHZzaW5rLmMKPiBAQCAtMCwwICsxLDE0MiBAQAo+ICsvKgo+ICsg KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPiArICogbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsgKiBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIKPiArICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ICsgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQo+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ ICsgKgo+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPiArICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+ ICsgKi8KPiArCj4gKyNpbmNsdWRlICJhdmZpbHRlci5oIgo+ICsjaW5jbHVkZSAiaW50ZXJuYWwu aCIKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5hbC5oIgo+ICsjaW5jbHVkZSA8U0RMMi9T REwuaD4KPiArI2luY2x1ZGUgPHVuaXN0ZC5oPgo+ICsKPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ICsg ICAgU0RMX1dpbmRvdyAgICp3aW5kb3c7Cj4gKyAgICBTRExfUmVuZGVyZXIgKnJlbmRlcjsKPiAr ICAgIFNETF9UZXh0dXJlICAqdGV4dHVyZTsKPiArfSBTRExWaWRlb0NvbnRleHQ7Cj4gKwo+ICtz dGF0aWMgaW50IGluaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCj4gK3sKPiArICAgIGlmIChTRExf SW5pdChTRExfSU5JVF9WSURFTykgPCAwKQo+ICsgICAgewo+ICsgICAgICAgIGF2X2xvZyhjdHgs IEFWX0xPR19FUlJPUiwgIlNETDIgY291bGQgbm90IGluaXRpYWxpemUhICVzXG4iLCBTRExfR2V0 RXJyb3IoKSk7Cj4gKyAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKyAgICB9Cj4gKwo+ICsgICAg U0RMX1BvbGxFdmVudChOVUxMKTsKPiArICAgIFNETF9TZXRIaW50KFNETF9ISU5UX1ZJREVPX1gx MV9ORVRfV01fQllQQVNTX0NPTVBPU0lUT1IsICIwIik7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIHVuaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKPiArewo+ ICsgICAgU0RMVmlkZW9Db250ZXh0ICpzaW5rID0gY3R4LT5wcml2Owo+ICsKPiArICAgIGlmIChz aW5rLT50ZXh0dXJlKSB7Cj4gKyAgICAgICAgU0RMX0Rlc3Ryb3lUZXh0dXJlKHNpbmstPnRleHR1 cmUpOwo+ICsgICAgICAgIHNpbmstPnRleHR1cmUgPSBOVUxMOwo+ICsgICAgfQo+ICsKPiArICAg IGlmIChzaW5rLT5yZW5kZXIpIHsKPiArICAgICAgICBTRExfRGVzdHJveVJlbmRlcmVyKHNpbmst PnJlbmRlcik7Cj4gKyAgICAgICAgc2luay0+cmVuZGVyID0gTlVMTDsKPiArICAgIH0KPiArCj4g KyAgICBpZiAoc2luay0+d2luZG93KSB7Cj4gKyAgICAgICAgU0RMX0Rlc3Ryb3lXaW5kb3coc2lu ay0+d2luZG93KTsKPiArICAgICAgICBzaW5rLT53aW5kb3cgPSBOVUxMOwo+ICsgICAgfQo+ICsK PiArICAgIFNETF9RdWl0KCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZmlsdGVyX2ZyYW1lKEFW RmlsdGVyTGluayAqbGluaywgQVZGcmFtZSAqZnJhbWUpCj4gK3sKPiArICAgIEFWRmlsdGVyQ29u dGV4dCAqY3R4ID0gbGluay0+ZHN0Owo+ICsgICAgU0RMVmlkZW9Db250ZXh0ICpzaW5rID0gY3R4 LT5wcml2Owo+ICsgICAgU0RMX1JlbmRlcmVySW5mbyByZW5kZXJlcl9pbmZvOwo+ICsKPiArICAg IGlmICghc2luay0+d2luZG93KSB7Cj4gKyAgICAgICAgc2luay0+d2luZG93ID0gU0RMX0NyZWF0 ZVdpbmRvdygiWVVWIFBsYXllciIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0RMX1dJTkRPV1BPU19VTkRFRklORUQsIFNETF9XSU5ET1dQT1NfVU5ERUZJTkVE LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT53aWR0 aCwgZnJhbWUtPmhlaWdodCwgU0RMX1dJTkRPV19TSE9XTiB8IFNETF9XSU5ET1dfUkVTSVpBQkxF KTsKPiArICAgICAgICBpZiAoIXNpbmstPndpbmRvdykgewo+ICsgICAgICAgICAgICBhdl9sb2co Y3R4LCBBVl9MT0dfRVJST1IsICJTREwyIGNvdWxkIG5vdCBjcmVhdGUgd2luZG93ICVzXG4iLCBT RExfR2V0RXJyb3IoKSk7Cj4gKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsgICAgICAg IH0KPiArICAgIH0KPiArCj4gKyAgICBpZiAoIXNpbmstPnJlbmRlcikgewo+ICsgICAgICAgIHNp bmstPnJlbmRlciA9IFNETF9DcmVhdGVSZW5kZXJlcihzaW5rLT53aW5kb3csIC0xLCAwKTsKPiAr ICAgICAgICBpZiAoIXNpbmstPnJlbmRlcikgewo+ICsgICAgICAgICAgICBhdl9sb2coY3R4LCBB Vl9MT0dfRVJST1IsICJTREwyIGNvdWxkIG5vdCBjcmVhdGUgcmVuZGVyICVzXG4iLCBTRExfR2V0 RXJyb3IoKSk7Cj4gKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsgICAgICAgIH0KPiAr ICAgICAgICBTRExfU2V0SGludChTRExfSElOVF9SRU5ERVJfU0NBTEVfUVVBTElUWSwgImxpbmVh ciIpOwo+ICsKPiArICAgICAgICBTRExfR2V0UmVuZGVyZXJJbmZvKHNpbmstPnJlbmRlciwgJnJl bmRlcmVyX2luZm8pOwo+ICsgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAic2RsMiBy ZW5kZXJlciBuYW1lOiVzXG4iLCByZW5kZXJlcl9pbmZvLm5hbWUpOwo+ICsgICAgfQo+ICsKPiAr ICAgIGlmICghc2luay0+dGV4dHVyZSkgewo+ICsgICAgICAgIHNpbmstPnRleHR1cmUgPSBTRExf Q3JlYXRlVGV4dHVyZShzaW5rLT5yZW5kZXIsIFNETF9QSVhFTEZPUk1BVF9JWVVWLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0RMX1RFWFRVUkVBQ0NFU1Nf U1RSRUFNSU5HLCBmcmFtZS0+d2lkdGgsIGZyYW1lLT5oZWlnaHQpOwo+ICsgICAgICAgIGlmICgh c2luay0+dGV4dHVyZSkgewo+ICsgICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1Is ICJjcmVhdGUgdGV4dHVyZSBmYWlsZWQgJXNcbiIsIFNETF9HZXRFcnJvcigpKTsKPiArICAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsKPiArICAgIFNE TF9VcGRhdGVZVVZUZXh0dXJlKHNpbmstPnRleHR1cmUsIE5VTEwsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBmcmFtZS0+ZGF0YVswXSwgZnJhbWUtPmxpbmVzaXplWzBdLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgZnJhbWUtPmRhdGFbMV0sIGZyYW1lLT5saW5lc2l6ZVsxXSwKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kYXRhWzJdLCBmcmFtZS0+bGluZXNpemVb Ml0pOwo+ICsKPiArICAgIFNETF9SZW5kZXJDbGVhcihzaW5rLT5yZW5kZXIpOwo+ICsKPiArICAg IFNETF9SZW5kZXJDb3B5KHNpbmstPnJlbmRlciwgc2luay0+dGV4dHVyZSwgTlVMTCwgTlVMTCk7 Cj4gKyAgICBTRExfUmVuZGVyUHJlc2VudChzaW5rLT5yZW5kZXIpOwo+ICsKPiArICAgIGF2X2Zy YW1lX2ZyZWUoJmZyYW1lKTsKPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGlj IGNvbnN0IEFWRmlsdGVyUGFkIGF2ZmlsdGVyX3ZzaW5rX3NkbHZzaW5rX2lucHV0c1tdID0gewo+ ICsgICAgewo+ICsgICAgICAgIC5uYW1lICAgICAgICA9ICJkZWZhdWx0IiwKPiArICAgICAgICAu dHlwZSAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCj4gKyAgICAgICAgLmZpbHRlcl9mcmFt ZSA9IGZpbHRlcl9mcmFtZSwKPiArICAgIH0sCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgQVZG aWx0ZXJQYWQgYXZmaWx0ZXJfdnNpbmtfc2RsdnNpbmtfb3V0cHV0c1tdID0gewo+ICsgICAgewo+ ICsgICAgICAgIC5uYW1lID0gTlVMTCwKPiArICAgICAgICAudHlwZSA9IEFWTUVESUFfVFlQRV9W SURFTywKPiArICAgIH0sCj4gK307Cj4gKwo+ICtjb25zdCBBVkZpbHRlciBmZl92c2lua19zZGx2 c2luayA9IHsKPiArICAgIC5uYW1lICAgICAgICA9ICJzZGx2c2luayIsCj4gKyAgICAuZGVzY3Jp cHRpb24gPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiRG8gYWJzb2x1dGVseSBub3RoaW5nIHdpdGgg dGhlIGlucHV0IHZpZGVvLiIpLAo+ICsgICAgLnByaXZfc2l6ZSAgID0gc2l6ZW9mKFNETFZpZGVv Q29udGV4dCksCj4gKyAgICAuaW5pdCAgICAgICAgPSBpbml0LAo+ICsgICAgLnVuaW5pdCAgICAg ID0gdW5pbml0LAo+ICsgICAgRklMVEVSX0lOUFVUUyhhdmZpbHRlcl92c2lua19zZGx2c2lua19p bnB1dHMpLAo+ICsgICAgRklMVEVSX09VVFBVVFMoYXZmaWx0ZXJfdnNpbmtfc2RsdnNpbmtfb3V0 cHV0cyksCj4gK307Cj4gLS0KPiAyLjM0LjEKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBl Zy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1h aWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJz Y3JpYmUiLgo+Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2Ny aWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1w ZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=