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 21B2B4985E for ; Thu, 21 Mar 2024 15:11:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E91CB68D55E; Thu, 21 Mar 2024 17:11:36 +0200 (EET) Received: from out203-205-251-27.mail.qq.com (out203-205-251-27.mail.qq.com [203.205.251.27]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 35E6868D534 for ; Thu, 21 Mar 2024 17:11:28 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1711033883; bh=qi6stZcfLCVlJ/TosB6IfoZaM41ePAxBwUkZjFUPGZg=; h=From:To:References:In-Reply-To:Subject:Date; b=zj4ha9GwlTPJ1RblRBZVfjFtxr44DzPhr9de7DN0urZbQyAXGZ2/99pgxgDWKMxTA A1npQQQtqEx1LOeyIXE3bxKwO5dkLkOpuprGZd4VcDl8j8JNnEPhcqtKH4WQN2/j+I DHU48UpbqrbsELDSU2ZFcZ/Bsm4kiL9gUkgWQ+Ug= Received: from homepc ([113.116.29.47]) by newxmesmtplogicsvrsza1-0.qq.com (NewEsmtp) with SMTP id 2D628E3B; Thu, 21 Mar 2024 23:11:22 +0800 X-QQ-mid: xmsmtpt1711033882twdhfhc0g Message-ID: X-QQ-XMAILINFO: MIAHdi1iQo+zuCoNMTYBprXX9ElXQDdopOKouFIjo1QGjFaUqYtrN6gaZMWukm sphHBtLZI6z0kQ9nyfnIlKwHzisJzxaGOut9zfoyNBygINsvhWVnmgQcFVoYF1Q8CpiVoobIAoWD T4iXmfKSTEHyQZzruFD+B3LQMIVTJMlQcdWC5kSaWOQVoWVINA61qPFg6TAOfxEhK8RTRIFYclLE O4N83xrCGVxEIkZvMCJszQWnHCnpv05Z+G01DyKXyGDy9ntanJq8r/9ewKGJvf+LI9/S7A2cxR46 I40PhH4jUX00u8R1cyBkfgK85GB982rQp1Wi/2HO5D+fjVKOcjEkjoFtgBPMRhY6E5/rmq/EtTel GYl1l9kJBpB7nnrRpVccFJCapcAzwVsbVRwLMN+sHcQlwEYIlU62MF0FwP0DjDuH2hxo/kVSmMme GofvdJqi0Kx9Rv6bjVfNkGhcOyjeYiG3/WqHsA+kBsF1TcN8xerfWrrMyDS6cz2ONKqgyadjYIur wG2mksdc3WP8DHNQQqdHyfpZSy1eR9G7xkeerGAmYkgPHLsN9YV1ihTTFvgt1HhnVb2By6E1as+U W6pcrYkJc9yxBWxwVpaJckPyjDbbUu1e70O0UIKndZiy881GC/f/ccvt2IBHj5YzbIlZEZEr5TWP v+rXBsm+YBDMhQp9T8KizBNQMNCw59uVgsEDrIn3BtIjM01puXEdPX+OYJWk6BN7GCLjCU6YdWpy wjimF2r8PUseR1IuLeKjfuSLHvCUSplSwlSeMnBK/SI38FmK6+ii7ts/hrFg+fK9ZIkfcTuw7zo3 1TlTUV8rAYdiXcN2TDQoS7/OTOMWUf+OzqK1NZANP0j/b1OY+vKTt1dJFFnOVqoV5hABSNm/F8ox 1T2iULRQlxqo7Xpo6ekpz3HTmuyBAeOurubN7B0E7tusa8PLYdnkKw6a8gokeiwCuQxzfpa8imfS u0oYmVdqD77n3Df/ctRHNaM9KmrtD0U/HnbVAKyPRhr4sxxe8Gh2Mylouy4KVI X-QQ-XMRINFO: OWPUhxQsoeAVDbp3OJHYyFg= From: "Zhao Zhili" To: "'FFmpeg development discussions and patches'" References: In-Reply-To: Date: Thu, 21 Mar 2024 23:11:22 +0800 X-OQ-MSGID: <017701da7ba2$08e22e10$1aa68a30$@foxmail.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQEYldCTgJubJ2NREp8M1xRRD/tFNLLGGDUg Content-Language: zh-cn Subject: Re: [FFmpeg-devel] [PATCH v6] avcodec/libx264: fix extradata when config annexb=0 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: UGluZy4gV2lsbCBhcHBseSB0aGlzIHdlZWsgaWYgbm8gbW9yZSBjb21tZW50cy4KCj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBmZm1wZWctZGV2ZWwgPGZmbXBlZy1kZXZlbC1i b3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFsZiBPZiBaaGFvIFpoaWxpCj4gU2VudDogMjAyNOW5 tDPmnIgxN+aXpSAxMTozNQo+IFRvOiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IENjOiBaaGFv IFpoaWxpIDx6aGlsaXpoYW9AdGVuY2VudC5jb20+Cj4gU3ViamVjdDogW0ZGbXBlZy1kZXZlbF0g W1BBVENIIHY2XSBhdmNvZGVjL2xpYngyNjQ6IGZpeCBleHRyYWRhdGEgd2hlbiBjb25maWcgYW5u ZXhiPTAKPiAKPiBGcm9tOiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9AdGVuY2VudC5jb20+Cj4gCj4g LS0tCj4gdjY6IHVzZSBhdl9hc3NlcnQyCj4gICAgIHNlbGVjdCBnb2xvbWIgaW4gY29uZmlndXJl Cj4gICAgIGNvbmRpdGlvbmFsIGNvbXBpbGUgaW4gY2FzZSBvZiBDT05GSUdfTElCWDI2NF9FTkNP REVSPTAKPiB2NTogRGVjb2RlIGNocm9tYV9mb3JtYXRfaWRjIGRpcmVjdGx5IGluc3RlYWQgb2Yg ZmZfaDI2NF9kZWNvZGVfc2VxX3BhcmFtZXRlcl9zZXQKPiB2NDogRml4IG1pc3NpbmcgU0VJIGlu IHNldF9hdmNjX2V4dHJhZGF0YQo+IHYzOiBSZW1vdmUgdW5uZWNlc3NhcnkgaW5jbHVzaW9uCj4g Cj4gIGNvbmZpZ3VyZSAgICAgICAgICAgIHwgICAyICstCj4gIGxpYmF2Y29kZWMvbGlieDI2NC5j IHwgMTY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KPiAgMiBm aWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQo+IGluZGV4IDJiNGM0ZWM5YTIuLmQ5ZDIx ODNhNDcgMTAwNzU1Cj4gLS0tIGEvY29uZmlndXJlCj4gKysrIGIvY29uZmlndXJlCj4gQEAgLTM0 ODQsNyArMzQ4NCw3IEBAIGxpYndlYnBfZW5jb2Rlcl9kZXBzPSJsaWJ3ZWJwIgo+ICBsaWJ3ZWJw X2FuaW1fZW5jb2Rlcl9kZXBzPSJsaWJ3ZWJwIgo+ICBsaWJ4MjYyX2VuY29kZXJfZGVwcz0ibGli eDI2MiIKPiAgbGlieDI2NF9lbmNvZGVyX2RlcHM9ImxpYngyNjQiCj4gLWxpYngyNjRfZW5jb2Rl cl9zZWxlY3Q9ImF0c2NfYTUzIgo+ICtsaWJ4MjY0X2VuY29kZXJfc2VsZWN0PSJhdHNjX2E1MyBn b2xvbWIiCj4gIGxpYngyNjRyZ2JfZW5jb2Rlcl9kZXBzPSJsaWJ4MjY0Igo+ICBsaWJ4MjY0cmdi X2VuY29kZXJfc2VsZWN0PSJsaWJ4MjY0X2VuY29kZXIiCj4gIGxpYngyNjVfZW5jb2Rlcl9kZXBz PSJsaWJ4MjY1Igo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2xpYngyNjQuYyBiL2xpYmF2Y29k ZWMvbGlieDI2NC5jCj4gaW5kZXggMDk5N2M0ZTEzNC4uZGRlYzA2ZDk2MCAxMDA2NDQKPiAtLS0g YS9saWJhdmNvZGVjL2xpYngyNjQuYwo+ICsrKyBiL2xpYmF2Y29kZWMvbGlieDI2NC5jCj4gQEAg LTM4LDYgKzM4LDcgQEAKPiAgI2luY2x1ZGUgInBhY2tldF9pbnRlcm5hbC5oIgo+ICAjaW5jbHVk ZSAiYXRzY19hNTMuaCIKPiAgI2luY2x1ZGUgInNlaS5oIgo+ICsjaW5jbHVkZSAiZ29sb21iLmgi Cj4gCj4gICNpbmNsdWRlIDx4MjY0Lmg+Cj4gICNpbmNsdWRlIDxmbG9hdC5oPgo+IEBAIC04NDcs NiArODQ4LDE0NCBAQCBzdGF0aWMgaW50IGNvbnZlcnRfcGl4X2ZtdChlbnVtIEFWUGl4ZWxGb3Jt YXQgcGl4X2ZtdCkKPiAgICAgIHJldHVybiAwOwo+ICB9Cj4gCj4gK3N0YXRpYyBpbnQgc2F2ZV9z ZWkoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB4MjY0X25hbF90ICpuYWwpCj4gK3sKPiArICAgIFgy NjRDb250ZXh0ICp4NCA9IGF2Y3R4LT5wcml2X2RhdGE7Cj4gKwo+ICsgICAgYXZfbG9nKGF2Y3R4 LCBBVl9MT0dfSU5GTywgIiVzXG4iLCBuYWwtPnBfcGF5bG9hZCArIDI1KTsKPiArICAgIHg0LT5z ZWlfc2l6ZSA9IG5hbC0+aV9wYXlsb2FkOwo+ICsgICAgeDQtPnNlaSA9IGF2X21hbGxvYyh4NC0+ c2VpX3NpemUpOwo+ICsgICAgaWYgKCF4NC0+c2VpKQo+ICsgICAgICAgIHJldHVybiBBVkVSUk9S KEVOT01FTSk7Cj4gKwo+ICsgICAgbWVtY3B5KHg0LT5zZWksIG5hbC0+cF9wYXlsb2FkLCBuYWwt PmlfcGF5bG9hZCk7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gKyNpZiBDT05GSUdf TElCWDI2NF9FTkNPREVSCj4gK3N0YXRpYyBpbnQgc2V0X2F2Y2NfZXh0cmFkYXRhKEFWQ29kZWND b250ZXh0ICphdmN0eCwgeDI2NF9uYWxfdCAqbmFsLCBpbnQgbm5hbCkKPiArewo+ICsgICAgWDI2 NENvbnRleHQgKng0ID0gYXZjdHgtPnByaXZfZGF0YTsKPiArICAgIHgyNjRfbmFsX3QgKnNwc19u YWwgPSBOVUxMOwo+ICsgICAgeDI2NF9uYWxfdCAqcHBzX25hbCA9IE5VTEw7Cj4gKyAgICB1aW50 OF90ICpwLCAqc3BzOwo+ICsgICAgaW50IHJldDsKPiArCj4gKyAgICAvKiBXZSBrbm93IGl0J3Mg aW4gdGhlIG9yZGVyIG9mIFNQUy9QUFMvU0VJLCBidXQgaXQncyBub3QgZG9jdW1lbnRlZCBpbiB4 MjY0IEFQSS4KPiArICAgICAqIFRoZSB4MjY0IHBhcmFtIGlfc3BzX2lkIGltcGxpZXMgdGhlcmUg aXMgYSBzaW5nbGUgcGFpciBvZiBTUFMvUFBTLgo+ICsgICAgICovCj4gKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IG5uYWw7IGkrKykgewo+ICsgICAgICAgIHN3aXRjaCAobmFsW2ldLmlfdHlwZSkg ewo+ICsgICAgICAgIGNhc2UgTkFMX1NQUzoKPiArICAgICAgICAgICAgc3BzX25hbCA9ICZuYWxb aV07Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIGNhc2UgTkFMX1BQUzoKPiArICAg ICAgICAgICAgcHBzX25hbCA9ICZuYWxbaV07Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAg ICAgIGNhc2UgTkFMX1NFSToKPiArICAgICAgICAgICAgcmV0ID0gc2F2ZV9zZWkoYXZjdHgsICZu YWxbaV0pOwo+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiAr ICAgIGlmICghc3BzX25hbCB8fCAhcHBzX25hbCkKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9F WFRFUk5BTDsKPiArCj4gKyAgICBhdmN0eC0+ZXh0cmFkYXRhX3NpemUgPSBzcHNfbmFsLT5pX3Bh eWxvYWQgKyBwcHNfbmFsLT5pX3BheWxvYWQgKyA3Owo+ICsgICAgYXZjdHgtPmV4dHJhZGF0YSA9 IGF2X21hbGxvY3ooYXZjdHgtPmV4dHJhZGF0YV9zaXplICsgQVZfSU5QVVRfQlVGRkVSX1BBRERJ TkdfU0laRSk7Cj4gKyAgICBpZiAoIWF2Y3R4LT5leHRyYWRhdGEpCj4gKyAgICAgICAgcmV0dXJu IEFWRVJST1IoRU5PTUVNKTsKPiArCj4gKyAgICAvLyBOb3cgY3JlYXRlIEFWQ0RlY29kZXJDb25m aWd1cmF0aW9uUmVjb3JkCj4gKyAgICBwID0gYXZjdHgtPmV4dHJhZGF0YTsKPiArICAgIC8vIFNr aXAgc2l6ZSBwYXJ0Cj4gKyAgICBzcHMgPSBzcHNfbmFsLT5wX3BheWxvYWQgKyA0Owo+ICsgICAg KnArKyA9IDE7IC8vIHZlcnNpb24KPiArICAgICpwKysgPSBzcHNbMV07IC8vIEFWQ1Byb2ZpbGVJ bmRpY2F0aW9uCj4gKyAgICAqcCsrID0gc3BzWzJdOyAvLyBwcm9maWxlX2NvbXBhdGliaWxpdHkK PiArICAgICpwKysgPSBzcHNbM107IC8vIEFWQ0xldmVsSW5kaWNhdGlvbgo+ICsgICAgKnArKyA9 IDB4RkY7Cj4gKyAgICAqcCsrID0gMHhFMCB8IDB4MDE7IC8vIDMgYml0cyByZXNlcnZlZCAoMTEx KSArIDUgYml0cyBudW1iZXIgb2Ygc3BzCj4gKyAgICBtZW1jcHkocCwgc3BzX25hbC0+cF9wYXls b2FkICsgMiwgc3BzX25hbC0+aV9wYXlsb2FkIC0gMik7Cj4gKyAgICAvLyBNYWtlIHNwcyBoYXMg QVZfSU5QVVRfQlVGRkVSX1BBRERJTkdfU0laRSBwYWRkaW5nLCBzbyBpdCBjYW4gYmUgdXNlZAo+ ICsgICAgLy8gd2l0aCBHZXRCaXRDb250ZXh0Cj4gKyAgICBzcHMgPSBwICsgMjsKPiArICAgIHAg Kz0gc3BzX25hbC0+aV9wYXlsb2FkIC0gMjsKPiArICAgICpwKysgPSAxOwo+ICsgICAgbWVtY3B5 KHAsIHBwc19uYWwtPnBfcGF5bG9hZCArIDIsIHBwc19uYWwtPmlfcGF5bG9hZCAtIDIpOwo+ICsg ICAgcCArPSBwcHNfbmFsLT5pX3BheWxvYWQgLSAyOwo+ICsKPiArICAgIGlmIChzcHNbM10gIT0g NjYgJiYgc3BzWzNdICE9IDc3ICYmIHNwc1szXSAhPSA4OCkgewo+ICsgICAgICAgIEdldEJpdENv bnRleHQgZ2JjOwo+ICsgICAgICAgIGludCBjaHJvbWFfZm9ybWF0X2lkYzsKPiArICAgICAgICBp bnQgYml0X2RlcHRoX2x1bWFfbWludXM4LCBiaXRfZGVwdGhfY2hyb21hX21pbnVzODsKPiArCj4g KyAgICAgICAgLyogSXQncyBub3QgcG9zc2libGUgdG8gaGF2ZSBlbXVsYXRpb24gcHJldmVudGlv biBieXRlIGJlZm9yZQo+ICsgICAgICAgICAqIGJpdF9kZXB0aF9jaHJvbWFfbWludXM4IGR1ZSB0 byB0aGUgcmFuZ2Ugb2Ygc3BzIGlkLCBjaHJvbWFfZm9ybWF0X2lkYwo+ICsgICAgICAgICAqIGFu ZCBzbyBvbi4gU28gd2UgY2FuIHJlYWQgZGlyZWN0bHkgd2l0aG91dCBuZWVkIHRvIGVzY2FwZSBl bXVsYXRpb24KPiArICAgICAgICAgKiBwcmV2ZW50aW9uIGJ5dGUuCj4gKyAgICAgICAgICoKPiAr ICAgICAgICAgKiArNCB0byBza2lwIHVudGlsIHNwcyBpZC4KPiArICAgICAgICAgKi8KPiArICAg ICAgICBpbml0X2dldF9iaXRzOCgmZ2JjLCBzcHMgKyA0LCBzcHNfbmFsLT5pX3BheWxvYWQgLSA0 IC0gNCk7Cj4gKyAgICAgICAgLy8gU2tpcCBzcHMgaWQKPiArICAgICAgICBnZXRfdWVfZ29sb21i XzMxKCZnYmMpOwo+ICsgICAgICAgIGNocm9tYV9mb3JtYXRfaWRjID0gZ2V0X3VlX2dvbG9tYl8z MSgmZ2JjKTsKPiArICAgICAgICBpZiAoY2hyb21hX2Zvcm1hdF9pZGMgPT0gMykKPiArICAgICAg ICAgICAgc2tpcF9iaXRzMSgmZ2JjKTsKPiArICAgICAgICBiaXRfZGVwdGhfbHVtYV9taW51czgg PSBnZXRfdWVfZ29sb21iXzMxKCZnYmMpOwo+ICsgICAgICAgIGJpdF9kZXB0aF9jaHJvbWFfbWlu dXM4ID0gZ2V0X3VlX2dvbG9tYl8zMSgmZ2JjKTsKPiArCj4gKyAgICAgICAgKnArKyA9IDB4RkMg fCBjaHJvbWFfZm9ybWF0X2lkYzsKPiArICAgICAgICAqcCsrID0gMHhGOCB8IGJpdF9kZXB0aF9s dW1hX21pbnVzODsKPiArICAgICAgICAqcCsrID0gMHhGOCB8IGJpdF9kZXB0aF9jaHJvbWFfbWlu dXM4Owo+ICsgICAgICAgICpwKysgPSAwOwo+ICsgICAgfQo+ICsgICAgYXZfYXNzZXJ0MihhdmN0 eC0+ZXh0cmFkYXRhICsgYXZjdHgtPmV4dHJhZGF0YV9zaXplID49IHApOwo+ICsgICAgYXZjdHgt PmV4dHJhZGF0YV9zaXplID0gcCAtIGF2Y3R4LT5leHRyYWRhdGE7Cj4gKwo+ICsgICAgcmV0dXJu IDA7Cj4gK30KPiArI2VuZGlmCj4gKwo+ICtzdGF0aWMgaW50IHNldF9leHRyYWRhdGEoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4KQo+ICt7Cj4gKyAgICBYMjY0Q29udGV4dCAqeDQgPSBhdmN0eC0+cHJp dl9kYXRhOwo+ICsgICAgeDI2NF9uYWxfdCAqbmFsOwo+ICsgICAgdWludDhfdCAqcDsKPiArICAg IGludCBubmFsLCBzOwo+ICsKPiArICAgIHMgPSB4MjY0X2VuY29kZXJfaGVhZGVycyh4NC0+ZW5j LCAmbmFsLCAmbm5hbCk7Cj4gKyAgICBpZiAocyA8IDApCj4gKyAgICAgICAgcmV0dXJuIEFWRVJS T1JfRVhURVJOQUw7Cj4gKwo+ICsjaWYgQ09ORklHX0xJQlgyNjRfRU5DT0RFUgo+ICsgICAgaWYg KCF4NC0+cGFyYW1zLmJfYW5uZXhiKQo+ICsgICAgICAgIHJldHVybiBzZXRfYXZjY19leHRyYWRh dGEoYXZjdHgsIG5hbCwgbm5hbCk7Cj4gKyNlbmRpZgo+ICsKPiArICAgIGF2Y3R4LT5leHRyYWRh dGEgPSBwID0gYXZfbWFsbG9jeihzICsgQVZfSU5QVVRfQlVGRkVSX1BBRERJTkdfU0laRSk7Cj4g KyAgICBpZiAoIXApCj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiArCj4gKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IG5uYWw7IGkrKykgewo+ICsgICAgICAgIC8qIERvbid0IHB1 dCB0aGUgU0VJIGluIGV4dHJhZGF0YS4gKi8KPiArICAgICAgICBpZiAobmFsW2ldLmlfdHlwZSA9 PSBOQUxfU0VJKSB7Cj4gKyAgICAgICAgICAgIHMgPSBzYXZlX3NlaShhdmN0eCwgJm5hbFtpXSk7 Cj4gKyAgICAgICAgICAgIGlmIChzIDwgMCkKPiArICAgICAgICAgICAgICAgIHJldHVybiBzOwo+ ICsgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICB9Cj4gKyAgICAgICAgbWVtY3B5KHAs IG5hbFtpXS5wX3BheWxvYWQsIG5hbFtpXS5pX3BheWxvYWQpOwo+ICsgICAgICAgIHAgKz0gbmFs W2ldLmlfcGF5bG9hZDsKPiArICAgIH0KPiArICAgIGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSA9IHAg LSBhdmN0eC0+ZXh0cmFkYXRhOwo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICAjZGVm aW5lIFBBUlNFX1gyNjRfT1BUKG5hbWUsIHZhcilcCj4gICAgICBpZiAoeDQtPnZhciAmJiB4MjY0 X3BhcmFtX3BhcnNlKCZ4NC0+cGFyYW1zLCBuYW1lLCB4NC0+dmFyKSA8IDApIHtcCj4gICAgICAg ICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJFcnJvciBwYXJzaW5nIG9wdGlvbiAnJXMn IHdpdGggdmFsdWUgJyVzJy5cbiIsIG5hbWUsIHg0LT52YXIpO1wKPiBAQCAtMTIxNSwzMCArMTM1 NCw5IEBAIEZGX0VOQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUwo+ICAgICAgICAgIHJldHVybiBB VkVSUk9SX0VYVEVSTkFMOwo+IAo+ICAgICAgaWYgKGF2Y3R4LT5mbGFncyAmIEFWX0NPREVDX0ZM QUdfR0xPQkFMX0hFQURFUikgewo+IC0gICAgICAgIHgyNjRfbmFsX3QgKm5hbDsKPiAtICAgICAg ICB1aW50OF90ICpwOwo+IC0gICAgICAgIGludCBubmFsLCBzLCBpOwo+IC0KPiAtICAgICAgICBz ID0geDI2NF9lbmNvZGVyX2hlYWRlcnMoeDQtPmVuYywgJm5hbCwgJm5uYWwpOwo+IC0gICAgICAg IGF2Y3R4LT5leHRyYWRhdGEgPSBwID0gYXZfbWFsbG9jeihzICsgQVZfSU5QVVRfQlVGRkVSX1BB RERJTkdfU0laRSk7Cj4gLSAgICAgICAgaWYgKCFwKQo+IC0gICAgICAgICAgICByZXR1cm4gQVZF UlJPUihFTk9NRU0pOwo+IC0KPiAtICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbm5hbDsgaSsrKSB7 Cj4gLSAgICAgICAgICAgIC8qIERvbid0IHB1dCB0aGUgU0VJIGluIGV4dHJhZGF0YS4gKi8KPiAt ICAgICAgICAgICAgaWYgKG5hbFtpXS5pX3R5cGUgPT0gTkFMX1NFSSkgewo+IC0gICAgICAgICAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfSU5GTywgIiVzXG4iLCBuYWxbaV0ucF9wYXlsb2Fk KzI1KTsKPiAtICAgICAgICAgICAgICAgIHg0LT5zZWlfc2l6ZSA9IG5hbFtpXS5pX3BheWxvYWQ7 Cj4gLSAgICAgICAgICAgICAgICB4NC0+c2VpICAgICAgPSBhdl9tYWxsb2MoeDQtPnNlaV9zaXpl KTsKPiAtICAgICAgICAgICAgICAgIGlmICgheDQtPnNlaSkKPiAtICAgICAgICAgICAgICAgICAg ICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+IC0gICAgICAgICAgICAgICAgbWVtY3B5KHg0LT5z ZWksIG5hbFtpXS5wX3BheWxvYWQsIG5hbFtpXS5pX3BheWxvYWQpOwo+IC0gICAgICAgICAgICAg ICAgY29udGludWU7Cj4gLSAgICAgICAgICAgIH0KPiAtICAgICAgICAgICAgbWVtY3B5KHAsIG5h bFtpXS5wX3BheWxvYWQsIG5hbFtpXS5pX3BheWxvYWQpOwo+IC0gICAgICAgICAgICBwICs9IG5h bFtpXS5pX3BheWxvYWQ7Cj4gLSAgICAgICAgfQo+IC0gICAgICAgIGF2Y3R4LT5leHRyYWRhdGFf c2l6ZSA9IHAgLSBhdmN0eC0+ZXh0cmFkYXRhOwo+ICsgICAgICAgIHJldCA9IHNldF9leHRyYWRh dGEoYXZjdHgpOwo+ICsgICAgICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgICAgICByZXR1cm4g cmV0Owo+ICAgICAgfQo+IAo+ICAgICAgY3BiX3Byb3BzID0gZmZfZW5jb2RlX2FkZF9jcGJfc2lk ZV9kYXRhKGF2Y3R4KTsKPiAtLQo+IDIuNDIuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZm bXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGlu Zm8vZmZtcGVnLWRldmVsCj4gCj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9y IGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVu c3Vic2NyaWJlIi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNj cmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZt cGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K