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 27752436FE for ; Sat, 25 Jun 2022 13:28:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D6E3068B7C0; Sat, 25 Jun 2022 16:28:31 +0300 (EEST) Received: from smtpbg.qq.com (smtpbg136.qq.com [106.55.201.188]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 696AA68B642 for ; Sat, 25 Jun 2022 16:28:24 +0300 (EEST) X-QQ-mid: bizesmtp81t1656163565txrjq8sz Received: from [127.0.0.1] ( [114.245.19.167]) by bizesmtp.qq.com (ESMTP) with id ; Sat, 25 Jun 2022 21:26:04 +0800 (CST) X-QQ-SSF: 00100000002000Z0Z000B00A0000000 X-QQ-FEAT: F3yR32iATbhCP6zSI7x+TWg6USL/pTWQvcM7S7N6GQ9/L4C6xUiK+7o5KwwoO Jm99FuIp4jGH2sgfLK2O0XhgBFlw2FzkeM+gNxj22lWMyAYXlMeZl7+y3ApGyVLVm/yRUjq IJ3/VnPbdVK7bLBzJJPUy3cMiw3RYNLLa0d+iNC775jwiiOGYcB6cHkotTY/zbUd3D3V0Vk r0FKQTiTo4yWopyBK08dDN4mAWckYdDcvUfQOPLzTSUbJHKrqNUzj0pNe67JDPfp5eN8oa0 3q0P9c71MShpg1YC58DZn6XmASO5VxTET+dZq+HOTZjuidH++EIzcN/cgC3g3c+qK7w1L6y Cxm/sUmQ95N7bLfyOYPXFMns5XWyg== X-QQ-GoodBg: 0 Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.7\)) From: Steven Liu In-Reply-To: Date: Sat, 25 Jun 2022 21:26:02 +0800 Message-Id: References: <20220623150040.1981341-1-wolfleekay@gmail.com> <72023989-5CD8-4EAF-BF84-F896B23257C0@chinaffmpeg.org> To: FFmpeg development discussions and patches X-Mailer: Apple Mail (2.3445.9.7) X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgspam:qybgspam7 Subject: Re: [FFmpeg-devel] [PATCH] avformat/hls:use EXT-X-START instead of live_start_index if it's in playlist 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: Steven Liu Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Cgo+INTaIDIwMjLE6jbUwjI1yNWjrDEzOjI0o6xMaSBLYWkgPHdvbGZsZWVrYXlAZ21haWwuY29t PiDQtLXAo7oKPiAKPiBPaywgSSBhZGQgYWxsb3dlZF94X3N0YXJ0IG9wdGlvbiwgYW5kIHRoZSBv cHRpb24gZGVmYXVsdCBpcyAwLiBTbyBjdXJyZW50CldoYXQgYWJvdXQgdXNlIKGwcHJlZmVyX3hf c3RhcnShsSBmb3Igb3B0aW9uIG5hbWUuCgpCVFcsIGFkZCBvcHRpb24gZGVzY3JpcHRpb25zIGlu dG8gZG9jdW1lbnQgZG9jL2RlbXV4ZXJzLnRleGkKCgorICAgICAgICB9IGVsc2UgaWYgKGF2X3N0 cnN0YXJ0KGxpbmUsICIjRVhULVgtU1RBUlQ6IiwgJnB0cikpIHsKKyAgICAgICAgICAgIHJldCA9 IGVuc3VyZV9wbGF5bGlzdChjLCAmcGxzLCB1cmwpOworICAgICAgICAgICAgaWYgKHJldCA8IDAp IHsKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBpZiAoYXZfc3Ryc3RhcnQocHRyLCAiVElNRS1PRkZTRVQ9IiwgJnApKSB7CisgICAgICAgICAg ICAgICAgZmxvYXQgb2Zmc2V0ID0gc3RydG9mKHAsIE5VTEwpOworICAgICAgICAgICAgICAgIHBs cy0+c3RhcnRfdGltZV9vZmZzZXQgPSBvZmZzZXQgKiBBVl9USU1FX0JBU0U7CisgICAgICAgICAg ICAgICAgcGxzLT50aW1lX29mZnNldF9mbGFnID0gMTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICAgICAgfQoKc2hvdWxkIHRoaXMgbG9n aWMgZ290byBmYWlsPyAKd2h5IGRvbqGvdCBvdXRwdXQgYSB3YXJuaW5nIGFuZCBjb250aW51ZSB0 cnkgdG8gdXNlIGxpdmVfc3RhcnRfaW5kZXg/IE9yIG1heWJlIHRoZXJlIGhhdmUgc29tZSByZWFz b24sIGFyZSB0aGV5Pwo+IHVzZXJzIHdpbGwgbm90IGJlIGFmZmVjdGVkLgo+IHBsZWFzZSByZXZp ZXcgYWdhaW4uCj4gCj4gQXQgbGFzdCwgVGhhbmtzIHlvdXIgdGlwcy4KPiAKPiBTdGV2ZW4gTGl1 IDxscUBjaGluYWZmbXBlZy5vcmc+INPaMjAyMsTqNtTCMjXI1dbcwfkgMTI6NTHQtLXAo7oKPiAK Pj4gCj4+IAo+Pj4g1NogMjAyMsTqNtTCMjXI1aOsMTI6MzKjrMnZ0+7A7iA8d29sZmxlZWtheUBn bWFpbC5jb20+INC0tcCjugo+Pj4gCj4+PiBIaSBTdGV2ZW4sCj4+PiAKPj4+IFBsZWFzZSByZXZp ZXcgY29kZS4KPj4+IAo+Pj4gSSBjaGFuZ2VkIGNvZGUsIGJ1dCBJIHN0aWxsIGhhdmUgYSBxdWVz dGlvbi4KPj4+IElmIEVYVC1YLVNUQVJUIHRhZyBpbiBwbGF5bGlzdCBhbmQgdXNlcnMgc2V0IGxp dmVfc3RhcnRfaW5kZXgsIHRoZQo+Pj4gbGl2ZV9zdGFydF9pbmRleCB3aWxsIG5vdCB3b3JrCj4+ PiBmb3IgY3VycmVudCBjb2Rlcywgd2hpY2ggbWFrZXMgbWF5YmUgdXNlcnMgY29uZnVzZWQuCj4+ PiBJcyB0aGF0IE9LPwo+PiBmb3IgY3VycmVudCBjb2RlcywgdXNlciBjYW5ub3QgYXdhcmUgdGhl cmUgaGF2ZSBFWFQtWC1TVEFSVCB0YWcgaW4gdGhlCj4+IHBsYXlsaXN0LCBzbyBpIHRoaW5rIHdl IHNob3VsZCByZXNlcnZlIHRoZSBvbGQgdXNlIG1ldGhvZC4KPj4gb3IgbWF5YmUgeW91IGNhbiBh ZGQgYW4gb3B0aW9uIGZvciB1c2VyIHRvIGRlY2lkZSB3aGljaCB3YXkgdGhleSBjYW4gdXNlCj4+ IChlaXRoZXIgRVhULVgtU1RBUlQgb3IgbGl2ZV9zdGFydF9pbmRleCkuCj4+IEJlY2F1c2UgdGhl cmUgc2hvdWxkIGhhdmUgbWFueSBwZW9wbGUgdXNpbmcgbGl2ZV9zdGFydF9pbmRleCBmb3IgJ3Rp bWUKPj4gc2hpZnShryBieSBwbGF5ZXIgKHVzZXIgY29udHJvbCksCj4+IAo+Pj4gCj4+PiBJbiBv dGhlciBoYW5kLCBpZiBtYWtlIGxpdmVfc3RhcnRfaW5kZXggdmFsaWQgd2hlbiBFWFQtWC1TVEFS VCB0YWcgaW4KPj4+IHBsYXlsaXN0LCBtYXliZSBsaXZlX3N0YXJ0X2luZGV4IG5lZWRzIGEgZmxh Zywgb3IKPj4+IG1ha2UgbGl2ZV9zdGFydF9pbmRleCBkZWZhdWx0IHZhbHVlIGlzIElOVF9NSU4g dG8gZGlzdGluZ3Vpc2guCj4+PiBiZWN1YXNlIHRoZSBsaXZlX3N0YXJ0X2luZGV4IGRlZmF1bHQg dmFsdWUgaXMgLTMsIEkgaGF2ZSBubyBpZGVhIHRvCj4+PiBkaXN0aW5ndWlzaCB1c2VycyBhY3Rp b24gb3IKPj4+IGRlZmF1bHQgdmFsdWUgd2hlbiBsaXZlX3N0YXJ0X2luZGV4PS0zLgo+PiB5ZXMg Y2Fubm90IGRpc3Rpbmd1aXNoIHVzZXJzIGFjdGlvbiwgYnV0IHVzZXIgc2hvdWxkIGNhbiBkZWNp ZGVkIHVzZQo+PiBsaXZlX3N0YXJ0X2luZGV4IG9yIEVYVC1YLVNUQVJULgo+PiAKPj4+IAo+Pj4g TWF5IEkgbmVlZCB0byBzZXQgZGVmYXVsdCB2YWx1ZT1JTlRfTUlOIGFzIGxpdmVfc3RhcnRfaW5k ZXggZGVmYXVsdAo+PiB2YWx1ZT8KPj4+IEFuZCBvbmx5IHdoZW4gZG9lcyBub3QgZXhpc3QgRVhU LVgtU1RBUlQKPj4+IHRhZyBpbiBwbGF5bGlzdCwgbWFrZSBsaXZlX3N0YXJ0X2luZGV4ID0gLTMg b3IgdXNlcnMncyBjb25maWd1cmF0aW9uCj4+IHZhbHVlLgo+Pj4gSSBoYXZlIG5vIGlkZWEgd2hp Y2ggaXMgYmV0dGVyfgo+Pj4gCj4+PiBUaGFua3MgYSBsb3QhCj4+PiAKPj4+IFN0ZXZlbiBMaXUg PGxpbmdqaXVqaWFua2VAZ21haWwuY29tPiDT2jIwMjLE6jbUwjI0yNXW3M7lIDE0OjIx0LS1wKO6 Cj4+PiAKPj4+PiDJ2dPuwO4gPHdvbGZsZWVrYXlAZ21haWwuY29tPiDT2jIwMjLE6jbUwjI0yNXW 3M7lIDExOjU40LS1wKO6Cj4+Pj4+PiAKPj4+Pj4+IAo+Pj4+Pj4gSGksIFN0ZXZlbgo+Pj4+PiAK Pj4+Pj4gCj4+Pj4+IEkgZ290IGl0Lgo+Pj4+PiAKPj4+Pj4gVXNlciBjb3VsZCB1c2UgImxpdmVf c3RhcnRfaW5kZXgiIG9wdGlvbiBldmVuIGlmICNFWFQtWC1TVEFSVCBpbiB0aGUKPj4+PiBwbGF5 bGlzdC4KPj4+Pj4gCj4+Pj4+IEkgY2hhbmdlZCB0aGUgcHJpb3JpdHkgYWJvdXQgI0VYVC1YLVNU QVJUL2xpdmVfc3RhcnRfaW5kZXgsCj4+Pj4+IAo+Pj4+PiB0aGlzIGlzIG5ldyBiZWxsb3c6Cj4+ Pj4+IAo+Pj4+PiAtLS0KPj4+Pj4gbGliYXZmb3JtYXQvaGxzLmMgfCA2OSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+Pj4+PiAxIGZpbGUgY2hhbmdlZCwg NjQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4+Pj4gCj4+Pj4+IGRpZmYgLS1naXQg YS9saWJhdmZvcm1hdC9obHMuYyBiL2xpYmF2Zm9ybWF0L2hscy5jCj4+Pj4+IGluZGV4IGI3MzZm MDkzYTkuLjMwOTQ3MWVmY2UgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2xpYmF2Zm9ybWF0L2hscy5jCj4+ Pj4+ICsrKyBiL2xpYmF2Zm9ybWF0L2hscy5jCj4+Pj4+IEBAIC0xMjAsNiArMTIwLDggQEAgc3Ry dWN0IHBsYXlsaXN0IHsKPj4+Pj4gICAgZW51bSBQbGF5bGlzdFR5cGUgdHlwZTsKPj4+Pj4gICAg aW50NjRfdCB0YXJnZXRfZHVyYXRpb247Cj4+Pj4+ICAgIGludDY0X3Qgc3RhcnRfc2VxX25vOwo+ Pj4+PiArICAgIGludCB0aW1lX29mZnNldF9mbGFnOwo+Pj4+PiArICAgIGludDY0X3Qgc3RhcnRf dGltZV9vZmZzZXQ7Cj4+Pj4+ICAgIGludCBuX3NlZ21lbnRzOwo+Pj4+PiAgICBzdHJ1Y3Qgc2Vn bWVudCAqKnNlZ21lbnRzOwo+Pj4+PiAgICBpbnQgbmVlZGVkOwo+Pj4+PiBAQCAtNzQxLDYgKzc0 Myw3IEBAIHN0YXRpYyBpbnQgcGFyc2VfcGxheWxpc3QoSExTQ29udGV4dCAqYywgY29uc3QgY2hh cgo+Pj4+ICp1cmwsCj4+Pj4+ICAgIHN0cnVjdCBzZWdtZW50ICoqcHJldl9zZWdtZW50cyA9IE5V TEw7Cj4+Pj4+ICAgIGludCBwcmV2X25fc2VnbWVudHMgPSAwOwo+Pj4+PiAgICBpbnQ2NF90IHBy ZXZfc3RhcnRfc2VxX25vID0gLTE7Cj4+Pj4+ICsgICAgY29uc3QgY2hhciAqcDsKPj4+Pj4gCj4+ Pj4+ICAgIGlmIChpc19odHRwICYmICFpbiAmJiBjLT5odHRwX3BlcnNpc3RlbnQgJiYgYy0+cGxh eWxpc3RfcGIpIHsKPj4+Pj4gICAgICAgIGluID0gYy0+cGxheWxpc3RfcGI7Cj4+Pj4+IEBAIC04 ODksNiArODkyLDE4IEBAIHN0YXRpYyBpbnQgcGFyc2VfcGxheWxpc3QoSExTQ29udGV4dCAqYywg Y29uc3QKPj4gY2hhcgo+Pj4+ICp1cmwsCj4+Pj4+ICAgICAgICAgICAgICAgIGN1cl9pbml0X3Nl Y3Rpb24tPmtleSA9IE5VTEw7Cj4+Pj4+ICAgICAgICAgICAgfQo+Pj4+PiAKPj4+Pj4gKyAgICAg ICAgfSBlbHNlIGlmIChhdl9zdHJzdGFydChsaW5lLCAiI0VYVC1YLVNUQVJUOiIsICZwdHIpKSB7 Cj4+Pj4+ICsgICAgICAgICAgICByZXQgPSBlbnN1cmVfcGxheWxpc3QoYywgJnBscywgdXJsKTsK Pj4+Pj4gKyAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7Cj4+Pj4+ICsgICAgICAgICAgICAgICAg Z290byBmYWlsOwo+Pj4+PiArICAgICAgICAgICAgfQo+Pj4+PiArICAgICAgICAgICAgaWYgKGF2 X3N0cnN0YXJ0KHB0ciwgIlRJTUUtT0ZGU0VUPSIsICZwKSkgewo+Pj4+PiArICAgICAgICAgICAg ICAgIGZsb2F0IG9mZnNldCA9IHN0cnRvZihwLCBOVUxMKTsKPj4+Pj4gKyAgICAgICAgICAgICAg ICBwbHMtPnN0YXJ0X3RpbWVfb2Zmc2V0ID0gb2Zmc2V0ICogQVZfVElNRV9CQVNFOwo+Pj4+PiAr ICAgICAgICAgICAgICAgIHBscy0+dGltZV9vZmZzZXRfZmxhZyA9IDE7Cj4+Pj4+ICsgICAgICAg ICAgICB9IGVsc2Ugewo+Pj4+PiArICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPj4+Pj4gKyAg ICAgICAgICAgIH0KPj4+Pj4gICAgICAgIH0gZWxzZSBpZiAoYXZfc3Ryc3RhcnQobGluZSwgIiNF WFQtWC1FTkRMSVNUIiwgJnB0cikpIHsKPj4+Pj4gICAgICAgICAgICBpZiAocGxzKQo+Pj4+PiAg ICAgICAgICAgICAgICBwbHMtPmZpbmlzaGVkID0gMTsKPj4+Pj4gQEAgLTE3MjEsMTAgKzE3MzYs NTQgQEAgc3RhdGljIGludDY0X3Qgc2VsZWN0X2N1cl9zZXFfbm8oSExTQ29udGV4dCAqYywKPj4+ PiBzdHJ1Y3QgcGxheWxpc3QgKnBscykKPj4+Pj4gCj4+Pj4+ICAgICAgICAvKiBJZiB0aGlzIGlz IGEgbGl2ZSBzdHJlYW0sIHN0YXJ0IGxpdmVfc3RhcnRfaW5kZXggc2VnbWVudHMKPj4+PiBmcm9t IHRoZQo+Pj4+PiAgICAgICAgICogc3RhcnQgb3IgZW5kICovCj4+Pj4+IC0gICAgICAgIGlmIChj LT5saXZlX3N0YXJ0X2luZGV4IDwgMCkKPj4+Pj4gLSAgICAgICAgICAgIHJldHVybiBwbHMtPnN0 YXJ0X3NlcV9ubyArIEZGTUFYKHBscy0+bl9zZWdtZW50cyArCj4+Pj4gYy0+bGl2ZV9zdGFydF9p bmRleCwgMCk7Cj4+Pj4+IC0gICAgICAgIGVsc2UKPj4+Pj4gLSAgICAgICAgICAgIHJldHVybiBw bHMtPnN0YXJ0X3NlcV9ubyArIEZGTUlOKGMtPmxpdmVfc3RhcnRfaW5kZXgsCj4+Pj4gcGxzLT5u X3NlZ21lbnRzIC0gMSk7Cj4+Pj4+ICsgICAgICAgIGlmIChjLT5saXZlX3N0YXJ0X2luZGV4ICE9 IElOVF9NSU4pIHsKPj4+PiBNYXliZSB5b3Ugc2hvdWxkIG5vdCBjaGFuZ2UgY3VycmVudCBsb2dp Yy4KPj4+PiBZb3UgY2FuIGp1c3QgYWRkICBhYm91dCBwcm9jZXNzIEVYVC1YLVNUQVJUIHNlbmNl LC4KPj4+PiBGb3IgZXhhbXBsZToKPj4+PiBjb21wdXRlIHRoZSBzdGFydF9zZXFfbm8gYW5kIHNh dmUgdGhlIHZhbHVlIHRvIGEgdGVtcCB2YXJpYmxlIGFuZAo+Pj4+IGRvbid0IHJldHVybiBpbW1l ZGlhdGVseSwgY2hlY2sgdGhlIHRoaXJkIHNjZW5jZSB3aGljaCBnZXQgRVhULVgtU1RBUlQKPj4+ PiB0YWcgZnJvbSBwbGF5bGlzdC4KPj4+PiBwcm9jZXNzIHRoZSB0ZW1wIHZhcmlibGUgYWZ0ZXIg c3RhcnRfc2VxX25vIGNvbXB1dGUgZnJvbQo+Pj4+IGxpdmVfc3RhcnRfaW5kZXggb3IgRVhULVgt U1RBUlQuCj4+Pj4gCj4+Pj4+ICsgICAgICAgICAgICBpZiAoYy0+bGl2ZV9zdGFydF9pbmRleCA8 IDApCj4+Pj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHBscy0+c3RhcnRfc2VxX25vICsgRkZN QVgocGxzLT5uX3NlZ21lbnRzICsKPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGMtPmxpdmVfc3RhcnRfaW5kZXgsCj4+IDApOwo+Pj4+PiArICAg ICAgICAgICAgZWxzZQo+Pj4+PiArICAgICAgICAgICAgICAgIHJldHVybiBwbHMtPnN0YXJ0X3Nl cV9ubyArIEZGTUlOKGMtPmxpdmVfc3RhcnRfaW5kZXgsCj4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHMtPm5fc2VnbWVudHMgLSAxKTsKPj4+ Pj4gKyAgICAgICAgfSBlbHNlIGlmIChjLT5saXZlX3N0YXJ0X2luZGV4ID09IElOVF9NSU4gJiYK Pj4+PiAhcGxzLT50aW1lX29mZnNldF9mbGFnKSB7Cj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4g cGxzLT5zdGFydF9zZXFfbm8gKyBGRk1BWChwbHMtPm5fc2VnbWVudHMgLSAzLCAwKTsKPj4+Pj4g KyAgICAgICAgfSBlbHNlIHsKPj4+Pj4gKyAgICAgICAgICAgIC8qIElmIHBsYXlsaXN0IGluZGlj YXRlIGEgVElNRS1PRkZTRVQgYW5kIHVzZXIgbm90IHVzZQo+Pj4+IGxpdmVfc3RhcnRfaW5kZXgs Cj4+Pj4+ICsgICAgICAgICAgICAgKiBuZWVkIHRvIHJlY2FsY3VsYXRlIHNlcV9ubyAqLwo+Pj4+ PiArICAgICAgICAgICAgaW50IGk7Cj4+Pj4+ICsgICAgICAgICAgICBpbnQ2NF90IHN0YXJ0X3Rp bWVzdGFtcDsKPj4+Pj4gKyAgICAgICAgICAgIGludDY0X3QgcGxheWxpc3RfZHVyYXRpb24gPSAw Owo+Pj4+PiArICAgICAgICAgICAgaW50NjRfdCBjdXJfdGltZXN0YW1wID0gYy0+Y3VyX3RpbWVz dGFtcCA9PSBBVl9OT1BUU19WQUxVRQo+Pj4+ID8gMCA6Cj4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjLT5jdXJfdGltZXN0YW1wOwo+Pj4+PiArCj4+Pj4+ICsgICAg ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGxzLT5uX3NlZ21lbnRzOyBpKyspIHsKPj4+Pj4gKyAg ICAgICAgICAgICAgICBwbGF5bGlzdF9kdXJhdGlvbiArPSBwbHMtPnNlZ21lbnRzW2ldLT5kdXJh dGlvbjsKPj4+Pj4gKyAgICAgICAgICAgIH0KPj4+Pj4gKyAgICAgICAgICAgIC8qIElmIHRoZSBh YnNvbHV0ZSB2YWx1ZSBvZiBUSU1FLU9GRlNFVCBleGNlZWRzCj4+Pj4+ICsgICAgICAgICAgICAg KiB0aGUgZHVyYXRpb24gb2YgdGhlIHBsYXlsaXN0LCBpdCBpbmRpY2F0ZXMgZWl0aGVyIHRoZQo+ Pj4+IGVuZCBvZiB0aGUKPj4+Pj4gKyAgICAgICAgICAgICAqIHBsYXlsaXN0IChpZiBwb3NpdGl2 ZSkgb3IgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGxheWxpc3QKPj4+PiAoaWYKPj4+Pj4gKyAgICAg ICAgICAgICAqIG5lZ2F0aXZlKS4gKi8KPj4+Pj4gKyAgICAgICAgICAgIGlmIChwbHMtPnN0YXJ0 X3RpbWVfb2Zmc2V0ID49MCAmJgo+Pj4+PiArICAgICAgICAgICAgICAgIHBscy0+c3RhcnRfdGlt ZV9vZmZzZXQgPiBwbGF5bGlzdF9kdXJhdGlvbikKPj4+Pj4gKyAgICAgICAgICAgICAgICBzdGFy dF90aW1lc3RhbXAgPSBjdXJfdGltZXN0YW1wICsgcGxheWxpc3RfZHVyYXRpb247Cj4+Pj4+ICsg ICAgICAgICAgICBlbHNlIGlmIChwbHMtPnN0YXJ0X3RpbWVfb2Zmc2V0ID49IDAgJiYKPj4+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgIHBscy0+c3RhcnRfdGltZV9vZmZzZXQgPD0gcGxheWxp c3RfZHVyYXRpb24pCj4+Pj4+ICsgICAgICAgICAgICAgICAgc3RhcnRfdGltZXN0YW1wID0gY3Vy X3RpbWVzdGFtcCArCj4+Pj4gcGxzLT5zdGFydF90aW1lX29mZnNldDsKPj4+Pj4gKyAgICAgICAg ICAgIGVsc2UgaWYgKHBscy0+c3RhcnRfdGltZV9vZmZzZXQgPCAwICYmCj4+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICBwbHMtPnN0YXJ0X3RpbWVfb2Zmc2V0IDwgLXBsYXlsaXN0X2R1cmF0 aW9uKQo+Pj4+PiArICAgICAgICAgICAgICAgIHN0YXJ0X3RpbWVzdGFtcCA9IGN1cl90aW1lc3Rh bXA7Cj4+Pj4+ICsgICAgICAgICAgICBlbHNlIGlmIChwbHMtPnN0YXJ0X3RpbWVfb2Zmc2V0IDwg MCAmJgo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgcGxzLT5zdGFydF90aW1lX29mZnNl dCA+IC1wbGF5bGlzdF9kdXJhdGlvbikKPj4+Pj4gKyAgICAgICAgICAgICAgICBzdGFydF90aW1l c3RhbXAgPSBjdXJfdGltZXN0YW1wICsgcGxheWxpc3RfZHVyYXRpb24gKwo+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxzLT5zdGFydF90aW1lX29mZnNldDsKPj4+ Pj4gKyAgICAgICAgICAgIGVsc2UKPj4+Pj4gKyAgICAgICAgICAgICAgICBzdGFydF90aW1lc3Rh bXAgPSBjdXJfdGltZXN0YW1wOwo+Pj4+PiArCj4+Pj4+ICsgICAgICAgICAgICBmaW5kX3RpbWVz dGFtcF9pbl9wbGF5bGlzdChjLCBwbHMsIHN0YXJ0X3RpbWVzdGFtcCwKPj4+PiAmc2VxX25vLCBO VUxMKTsKPj4+Pj4gKyAgICAgICAgICAgIGF2X2xvZyhjLCBBVl9MT0dfREVCVUcsICJzdGFydF90 aW1lc3RhbXA6ICUiIFBSSWQ2NAo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImN1cl90aW1lc3RhbXA6JSIgUFJJZDY0Cj4+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiY3VyX3NlcV9ubzolIiBQUklkNjQgIlxuIiwKPj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3RpbWVzdGFtcCwgY3VyX3RpbWVz dGFtcCwKPj4+PiBzZXFfbm8pOwo+Pj4+PiArICAgICAgICAgICAgcmV0dXJuIHNlcV9ubzsKPj4+ Pj4gKyAgICAgICAgfQo+Pj4+PiAgICB9Cj4+Pj4+IAo+Pj4+PiAgICAvKiBPdGhlcndpc2UganVz dCBzdGFydCBvbiB0aGUgZmlyc3Qgc2VnbWVudC4gKi8KPj4+Pj4gQEAgLTI0NzUsNyArMjUzNCw3 IEBAIHN0YXRpYyBpbnQgaGxzX3Byb2JlKGNvbnN0IEFWUHJvYmVEYXRhICpwKQo+Pj4+PiAjZGVm aW5lIEZMQUdTIEFWX09QVF9GTEFHX0RFQ09ESU5HX1BBUkFNCj4+Pj4+IHN0YXRpYyBjb25zdCBB Vk9wdGlvbiBobHNfb3B0aW9uc1tdID0gewo+Pj4+PiAgICB7ImxpdmVfc3RhcnRfaW5kZXgiLCAi c2VnbWVudCBpbmRleCB0byBzdGFydCBsaXZlIHN0cmVhbXMgYXQKPj4+PiAobmVnYXRpdmUgdmFs dWVzIGFyZSBmcm9tIHRoZSBlbmQpIiwKPj4+Pj4gLSAgICAgICAgT0ZGU0VUKGxpdmVfc3RhcnRf aW5kZXgpLCBBVl9PUFRfVFlQRV9JTlQsIHsuaTY0ID0gLTN9LAo+Pj4+IElOVF9NSU4sIElOVF9N QVgsIEZMQUdTfSwKPj4+Pj4gKyAgICAgICAgT0ZGU0VUKGxpdmVfc3RhcnRfaW5kZXgpLCBBVl9P UFRfVFlQRV9JTlQsIHsuaTY0ID0gSU5UX01JTn0sCj4+Pj4gSU5UX01JTiwgSU5UX01BWCwgRkxB R1N9LAo+Pj4+IFRoaXMgaXMgdW5uZWNlc3NhcnmjrCBiZWNhdXNlIHRoZSBkZWZhdWx0IC0zIGlz IG9rIGFuZCBiZSB1c2luZyBieQo+Pj4+IHVzZXJzIGZyb20gbWFueSB5ZWFycyBhZ28uCj4+Pj4g Cj4+Pj4+ICAgIHsiYWxsb3dlZF9leHRlbnNpb25zIiwgIkxpc3Qgb2YgZmlsZSBleHRlbnNpb25z IHRoYXQgaGxzIGlzIGFsbG93ZWQKPj4+PiB0byBhY2Nlc3MiLAo+Pj4+PiAgICAgICAgT0ZGU0VU KGFsbG93ZWRfZXh0ZW5zaW9ucyksIEFWX09QVF9UWVBFX1NUUklORywKPj4+Pj4gICAgICAgIHsu c3RyID0KPj4+PiAKPj4gIjNncCxhYWMsYXZpLGFjMyxlYWMzLGZsYWMsbWt2LG0zdTgsbTRhLG00 cyxtNHYsbXBnLG1vdixtcDIsbXAzLG1wNCxtcGVnLG1wZWd0cyxvZ2csb2d2LG9nYSx0cyx2b2Is d2F2In0sCj4+Pj4+IC0tCj4+Pj4+IDIuMjQuMSAoQXBwbGUgR2l0LTEyNikKPj4+Pj4gCj4+Pj4+ IAo+Pj4+PiBUaGFua3MgU3RldmVuCj4+Pj4gCj4+PiAKPj4gPDAwMDEtYXZmb3JtYXQtaGxzLXVz ZS1FWFQtWC1TVEFSVC1pbnN0ZWFkLW9mLWxpdmVfc3RhcnRfaS5wYXRjaD5fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4gZmZtcGVnLWRldmVsIG1haWxp bmcgbGlzdAo+Pj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4+IGh0dHBzOi8vZmZtcGVnLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Pj4gCj4+PiBUbyB1bnN1YnNjcmliZSwg dmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPj4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBl Zy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4+IAo+PiBUaGFua3MKPj4gU3RldmVu Cj4+IAo+PiAKPj4gCj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+PiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnCj4+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbAo+PiAKPj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4+ IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmli ZSIuCj4+IAo+IDx2Mi0wMDAxLWF2Zm9ybWF0LWhscy1hZGQtRVhULVgtU1RBUlQtdGFnLXN1cHBv cnQtYnktYWxsb3cucGF0Y2g+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwK PiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgoKVGhh bmtzClN0ZXZlbgoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpo dHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vi c2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBm Zm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=