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 4E70D45421 for ; Tue, 28 Feb 2023 12:13:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5127C68AABD; Tue, 28 Feb 2023 14:13:29 +0200 (EET) Received: from out162-62-57-49.mail.qq.com (out162-62-57-49.mail.qq.com [162.62.57.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BB1BD68AA37 for ; Tue, 28 Feb 2023 14:13:22 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1677586399; bh=uKaRlFRGoevMn7PDgILWy3WywOPTBh9AG57QDgzDt6U=; h=From:Subject:Date:References:To:In-Reply-To; b=l229U8r4kXHGt0UPqWK8rllRqZTIdcrKKB0OU/IA5Y5rYWgbYPMQDFyT0byldHi8b vfxhjp5xQ32XqZ2KyYy5rEFD4szzSRrksW8mIs4UsqjMt8eqzXsU3izLsIcin0zwov ilq9X0oxAAUwLqyvMc5bHxt6wTSEkWuS2Ai3977c= Received: from smtpclient.apple ([113.108.77.56]) by newxmesmtplogicsvrszc2-0.qq.com (NewEsmtp) with SMTP id 3528F010; Tue, 28 Feb 2023 20:13:18 +0800 X-QQ-mid: xmsmtpt1677586398tluyd7u9p Message-ID: X-QQ-XMAILINFO: Nfm/+M6ONQ57SUuEoeCPExgFptBp4b2sKXwrC5aLPDia/xCEJ+jgDl9ETphrvP svSWMfqlHz4+U9MEkFN5FN+quq9rd8W2xsgt2461Vj0rDcr/eeJ+k2UlJgoIFLrtxfaMQsGKOvJ3 ZOg2arl3K/tqPZcwijHdXxERUSUcqvolSMzRm3p95E8ovurhUy4wf1p46BbCAaqdCxbCVGg9Oi5Z lrUTls4nMF672zHSSNGYl7Kwr30YwDYvq9eK7L0UHV+1LP/XPGxp7OyUe4BfHwbTSJFqPZ+Cx/4w TaWm3clJZmeOUUBmHeA9RQg19GEVSY6G5SbNQxKEUHPkNnWgBTeR+el6OpQAUDE4xT24W0i0s/V1 XUyYUH1aVktzFTs8tshgsMzKERuBycdcgg/MmaU7g3fvE9g1JRi9hPQuh3BW1lYNEOMg3NPW40SC z5KbXb8wREREWyszA6LZJ4+7y/Sh0TGbLl+543HLH0aTK4WcjFbIlg7ZVRHr3MgsJGLyEtMLlRH+ GeBtfKN2g+3OHbsJyoRksfa3kgzKiFQBFrE9/SAIFr25G0rbrkUvu01PteWyYKNRkzbhkhA3PBrF TQ3B1FuvGHz0ZC9WfsoRgRpe6JCAPh3geuJU50w/6p+fd+leXhQAoMgOcc4z+YUZ0fa8hbw7iLFK POMWg9iFu+4eH6mNbjvvQtJJuhaL/VwFLtT+qHxjjZ7x+LxBptQ7XlUFWDJUDlY02gHrcFwmkd3f kSHKbIm3rqcr2mQUZpqI0DRpg5wpZHwYDFwadM+zbdqIwIxWdy0HG5txvBaehzAlP8mEO/Ld3OCA 2quHwStlU4QtQioCAgHFABKkgvvksew8+rnz5G/oQ2WUVisXCDtlBscdj6b7m2M/QHSaRORN4CNz s1LndLt4TEI78okTdT5fFJzlqBNL05H+qa1jyla4hxF7xUascW1yX5oz2LyKpK2IXYw7C1OxAE3h VPHmr/BP+07LR1DTqitgOpywNX9vaO1Qyw1w0p8wU= From: =?utf-8?B?InpoaWxpemhhbyjotbXlv5fnq4spIg==?= Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Date: Tue, 28 Feb 2023 20:13:19 +0800 References: To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: X-Mailer: Apple Mail (2.3696.120.41.1.1) Subject: Re: [FFmpeg-devel] [PATCH 2/4] lavc/mediacodec_wrapper: Refactor ff_AMediaCodecList_getCodecNameByType() 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: PiAKPiBBIGxvdCBzaG9ydGVyLCBuZXN0ZWQgdmFyaWFibGVzIGFuZCBrZWVwcyBnb2luZyBpbiBj YXNlIG9mIGV4Y2VwdGlvbnMuCj4gTWFrZXMgdXNlIG9mIEM5OSBkZWNsYXJhdGlvbnMuCj4gCj4g VGhpcyBwYXRjaCBoYXMgYmVlbiByZWxlYXNlZCBieSBFcGljIEdhbWVzJyBsZWdhbCBkZXBhcnRt ZW50LgoKVGhpcyBwYXRjaCB0cmlnZ2VyZWQgbXVsdGlwbGUgd2FybmluZzoKCndhcm5pbmc6IG1p eGluZyBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgaXMgaW5jb21wYXRpYmxlIHdpdGggc3RhbmRhcmRz IGJlZm9yZSBDOTkgWy1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQoKQzk5IGFsbG93cyBk ZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQsIGJ1dCBpdOKAmXMgbm90IGFsbG93ZWQgYnkgb3Vy CmNvZGluZyBzdHlsZS4gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgaXMgZW5hYmxlZCBl eHBsaWNpdGx5IGluCmNvbmZpZ3VyZS4KCj4gLS0tCj4gIGxpYmF2Y29kZWMvbWVkaWFjb2RlY193 cmFwcGVyLmMgfCAxNjIgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxl IGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDExNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy9tZWRpYWNvZGVjX3dyYXBwZXIuYyBiL2xpYmF2Y29kZWMvbWVkaWFj b2RlY193cmFwcGVyLmMKPiBpbmRleCAzNGVjMjEzNGFhLi44MmVlYWQyODMzIDEwMDY0NAo+IC0t LSBhL2xpYmF2Y29kZWMvbWVkaWFjb2RlY193cmFwcGVyLmMKPiArKysgYi9saWJhdmNvZGVjL21l ZGlhY29kZWNfd3JhcHBlci5jCj4gQEAgLTIsNiArMiw3IEBACj4gICAqIEFuZHJvaWQgTWVkaWFD b2RlYyBXcmFwcGVyCj4gICAqCj4gICAqIENvcHlyaWdodCAoYykgMjAxNS0yMDE2IE1hdHRoaWV1 IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uIHN0dXBlZmxpeC5jb20+Cj4gKyAqIE1vZGlmaWNhdGlv bnMgYnkgRXBpYyBHYW1lcywgSW5jLiwgMjAyMy4KPiAgICoKPiAgICogVGhpcyBmaWxlIGlzIHBh cnQgb2YgRkZtcGVnLgo+ICAgKgo+IEBAIC0zNjUsMjYgKzM2NiwxMyBAQCBpbnQgZmZfQU1lZGlh Q29kZWNQcm9maWxlX2dldFByb2ZpbGVGcm9tQVZDb2RlY0NvbnRleHQoQVZDb2RlY0NvbnRleHQg KmF2Y3R4KQo+ICBjaGFyICpmZl9BTWVkaWFDb2RlY0xpc3RfZ2V0Q29kZWNOYW1lQnlUeXBlKGNv bnN0IGNoYXIgKm1pbWUsIGludCBwcm9maWxlLCBpbnQgZW5jb2Rlciwgdm9pZCAqbG9nX2N0eCkK PiAgewo+ICAgICAgaW50IHJldDsKPiAtICAgIGludCBpOwo+IC0gICAgaW50IGNvZGVjX2NvdW50 Owo+ICAgICAgaW50IGZvdW5kX2NvZGVjID0gMDsKPiAgICAgIGNoYXIgKm5hbWUgPSBOVUxMOwo+ IC0gICAgY2hhciAqc3VwcG9ydGVkX3R5cGUgPSBOVUxMOwo+ICAKPiAgICAgIEpOSUVudiAqZW52 ID0gTlVMTDsKPiAgICAgIHN0cnVjdCBKTklBTWVkaWFDb2RlY0xpc3RGaWVsZHMgamZpZWxkcyA9 IHsgMCB9Owo+ICAgICAgc3RydWN0IEpOSUFNZWRpYUZvcm1hdEZpZWxkcyBtZWRpYWZvcm1hdF9q ZmllbGRzID0geyAwIH07Cj4gIAo+IC0gICAgam9iamVjdCBjb2RlY19uYW1lID0gTlVMTDsKPiAt Cj4gLSAgICBqb2JqZWN0IGluZm8gPSBOVUxMOwo+IC0gICAgam9iamVjdCB0eXBlID0gTlVMTDsK PiAtICAgIGpvYmplY3RBcnJheSB0eXBlcyA9IE5VTEw7Cj4gLQo+IC0gICAgam9iamVjdCBjYXBh YmlsaXRpZXMgPSBOVUxMOwo+IC0gICAgam9iamVjdCBwcm9maWxlX2xldmVsID0gTlVMTDsKPiAt ICAgIGpvYmplY3RBcnJheSBwcm9maWxlX2xldmVscyA9IE5VTEw7Cj4gLQo+ICAgICAgSk5JX0dF VF9FTlZfT1JfUkVUVVJOKGVudiwgbG9nX2N0eCwgTlVMTCk7Cj4gIAo+ICAgICAgaWYgKChyZXQg PSBmZl9qbmlfaW5pdF9qZmllbGRzKGVudiwgJmpmaWVsZHMsIGpuaV9hbWVkaWFjb2RlY2xpc3Rf bWFwcGluZywgMCwgbG9nX2N0eCkpIDwgMCkgewo+IEBAIC0zOTUsMjkgKzM4MywyNiBAQCBjaGFy ICpmZl9BTWVkaWFDb2RlY0xpc3RfZ2V0Q29kZWNOYW1lQnlUeXBlKGNvbnN0IGNoYXIgKm1pbWUs IGludCBwcm9maWxlLCBpbnQgZQo+ICAgICAgICAgIGdvdG8gZG9uZTsKPiAgICAgIH0KPiAgCj4g LSAgICBjb2RlY19jb3VudCA9ICgqZW52KS0+Q2FsbFN0YXRpY0ludE1ldGhvZChlbnYsIGpmaWVs ZHMubWVkaWFjb2RlY19saXN0X2NsYXNzLCBqZmllbGRzLmdldF9jb2RlY19jb3VudF9pZCk7Cj4g KyAgICBpbnQgY29kZWNfY291bnQgPSAoKmVudiktPkNhbGxTdGF0aWNJbnRNZXRob2QoZW52LCBq ZmllbGRzLm1lZGlhY29kZWNfbGlzdF9jbGFzcywgamZpZWxkcy5nZXRfY29kZWNfY291bnRfaWQp Owo+ICAgICAgaWYgKGZmX2puaV9leGNlcHRpb25fY2hlY2soZW52LCAxLCBsb2dfY3R4KSA8IDAp IHsKPiAgICAgICAgICBnb3RvIGRvbmU7Cj4gICAgICB9Cj4gIAo+IC0gICAgZm9yKGkgPSAwOyBp IDwgY29kZWNfY291bnQ7IGkrKykgewo+IC0gICAgICAgIGludCBqOwo+IC0gICAgICAgIGludCB0 eXBlX2NvdW50Owo+IC0gICAgICAgIGludCBpc19lbmNvZGVyOwo+IC0KPiAtICAgICAgICBpbmZv ID0gKCplbnYpLT5DYWxsU3RhdGljT2JqZWN0TWV0aG9kKGVudiwgamZpZWxkcy5tZWRpYWNvZGVj X2xpc3RfY2xhc3MsIGpmaWVsZHMuZ2V0X2NvZGVjX2luZm9fYXRfaWQsIGkpOwo+ICsgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBjb2RlY19jb3VudCAmJiAhZm91bmRfY29kZWM7IGkrKykgewo+ICsg ICAgICAgIGpvYmplY3QgaW5mbyA9ICgqZW52KS0+Q2FsbFN0YXRpY09iamVjdE1ldGhvZChlbnYs IGpmaWVsZHMubWVkaWFjb2RlY19saXN0X2NsYXNzLCBqZmllbGRzLmdldF9jb2RlY19pbmZvX2F0 X2lkLCBpKTsKPiAgICAgICAgICBpZiAoZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGxv Z19jdHgpIDwgMCkgewo+IC0gICAgICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICAgICAgICAgIGNv bnRpbnVlOwo+ICAgICAgICAgIH0KPiAgCj4gLSAgICAgICAgdHlwZXMgPSAoKmVudiktPkNhbGxP YmplY3RNZXRob2QoZW52LCBpbmZvLCBqZmllbGRzLmdldF9zdXBwb3J0ZWRfdHlwZXNfaWQpOwo+ ICsgICAgICAgIGpvYmplY3QgY29kZWNfbmFtZSA9IE5VTEw7Cj4gKyAgICAgICAgam9iamVjdEFy cmF5IHR5cGVzID0gKCplbnYpLT5DYWxsT2JqZWN0TWV0aG9kKGVudiwgaW5mbywgamZpZWxkcy5n ZXRfc3VwcG9ydGVkX3R5cGVzX2lkKTsKPiAgICAgICAgICBpZiAoZmZfam5pX2V4Y2VwdGlvbl9j aGVjayhlbnYsIDEsIGxvZ19jdHgpIDwgMCkgewo+IC0gICAgICAgICAgICBnb3RvIGRvbmU7Cj4g KyAgICAgICAgICAgIGdvdG8gZG9uZV93aXRoX2luZm87Cj4gICAgICAgICAgfQo+ICAKPiAtICAg ICAgICBpc19lbmNvZGVyID0gKCplbnYpLT5DYWxsQm9vbGVhbk1ldGhvZChlbnYsIGluZm8sIGpm aWVsZHMuaXNfZW5jb2Rlcl9pZCk7Cj4gKyAgICAgICAgaW50IGlzX2VuY29kZXIgPSAoKmVudikt PkNhbGxCb29sZWFuTWV0aG9kKGVudiwgaW5mbywgamZpZWxkcy5pc19lbmNvZGVyX2lkKTsKPiAg ICAgICAgICBpZiAoZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGxvZ19jdHgpIDwgMCkg ewo+IC0gICAgICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICAgICAgICAgIGdvdG8gZG9uZV93aXRo X2luZm87Cj4gICAgICAgICAgfQo+ICAKPiAgICAgICAgICBpZiAoaXNfZW5jb2RlciAhPSBlbmNv ZGVyKSB7Cj4gQEAgLTQyNyw3ICs0MTIsNyBAQCBjaGFyICpmZl9BTWVkaWFDb2RlY0xpc3RfZ2V0 Q29kZWNOYW1lQnlUeXBlKGNvbnN0IGNoYXIgKm1pbWUsIGludCBwcm9maWxlLCBpbnQgZQo+ICAg ICAgICAgIGlmIChqZmllbGRzLmlzX3NvZnR3YXJlX29ubHlfaWQpIHsKPiAgICAgICAgICAgICAg aW50IGlzX3NvZnR3YXJlX29ubHkgPSAoKmVudiktPkNhbGxCb29sZWFuTWV0aG9kKGVudiwgaW5m bywgamZpZWxkcy5pc19zb2Z0d2FyZV9vbmx5X2lkKTsKPiAgICAgICAgICAgICAgaWYgKGZmX2pu aV9leGNlcHRpb25fY2hlY2soZW52LCAxLCBsb2dfY3R4KSA8IDApIHsKPiAtICAgICAgICAgICAg ICAgIGdvdG8gZG9uZTsKPiArICAgICAgICAgICAgICAgIGdvdG8gZG9uZV93aXRoX2luZm87Cj4g ICAgICAgICAgICAgIH0KPiAgCj4gICAgICAgICAgICAgIGlmIChpc19zb2Z0d2FyZV9vbmx5KSB7 Cj4gQEAgLTQzNywxNyArNDIyLDEyIEBAIGNoYXIgKmZmX0FNZWRpYUNvZGVjTGlzdF9nZXRDb2Rl Y05hbWVCeVR5cGUoY29uc3QgY2hhciAqbWltZSwgaW50IHByb2ZpbGUsIGludCBlCj4gIAo+ICAg ICAgICAgIGNvZGVjX25hbWUgPSAoKmVudiktPkNhbGxPYmplY3RNZXRob2QoZW52LCBpbmZvLCBq ZmllbGRzLmdldF9uYW1lX2lkKTsKPiAgICAgICAgICBpZiAoZmZfam5pX2V4Y2VwdGlvbl9jaGVj ayhlbnYsIDEsIGxvZ19jdHgpIDwgMCkgewo+IC0gICAgICAgICAgICBnb3RvIGRvbmU7Cj4gKyAg ICAgICAgICAgIGdvdG8gZG9uZV93aXRoX2luZm87Cj4gICAgICAgICAgfQo+ICAKPiAgICAgICAg ICBuYW1lID0gZmZfam5pX2pzdHJpbmdfdG9fdXRmX2NoYXJzKGVudiwgY29kZWNfbmFtZSwgbG9n X2N0eCk7Cj4gICAgICAgICAgaWYgKCFuYW1lKSB7Cj4gLSAgICAgICAgICAgIGdvdG8gZG9uZTsK PiAtICAgICAgICB9Cj4gLQo+IC0gICAgICAgIGlmIChjb2RlY19uYW1lKSB7Cj4gLSAgICAgICAg ICAgICgqZW52KS0+RGVsZXRlTG9jYWxSZWYoZW52LCBjb2RlY19uYW1lKTsKPiAtICAgICAgICAg ICAgY29kZWNfbmFtZSA9IE5VTEw7Cj4gKyAgICAgICAgICAgIGdvdG8gZG9uZV93aXRoX2luZm87 Cj4gICAgICAgICAgfQo+ICAKPiAgICAgICAgICAvKiBTa2lwIHNvZnR3YXJlIGRlY29kZXJzICov Cj4gQEAgLTQ1OSwxNDEgKzQzOSw4OSBAQCBjaGFyICpmZl9BTWVkaWFDb2RlY0xpc3RfZ2V0Q29k ZWNOYW1lQnlUeXBlKGNvbnN0IGNoYXIgKm1pbWUsIGludCBwcm9maWxlLCBpbnQgZQo+ICAgICAg ICAgICAgICBnb3RvIGRvbmVfd2l0aF9pbmZvOwo+ICAgICAgICAgIH0KPiAgCj4gLSAgICAgICAg dHlwZV9jb3VudCA9ICgqZW52KS0+R2V0QXJyYXlMZW5ndGgoZW52LCB0eXBlcyk7Cj4gLSAgICAg ICAgZm9yIChqID0gMDsgaiA8IHR5cGVfY291bnQ7IGorKykgewo+IC0gICAgICAgICAgICBpbnQg azsKPiAtICAgICAgICAgICAgaW50IHByb2ZpbGVfY291bnQ7Cj4gLQo+IC0gICAgICAgICAgICB0 eXBlID0gKCplbnYpLT5HZXRPYmplY3RBcnJheUVsZW1lbnQoZW52LCB0eXBlcywgaik7Cj4gKyAg ICAgICAgaW50IHR5cGVfY291bnQgPSAoKmVudiktPkdldEFycmF5TGVuZ3RoKGVudiwgdHlwZXMp Owo+ICsgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdHlwZV9jb3VudCAmJiAhZm91bmRfY29k ZWM7IGorKykgewo+ICsgICAgICAgICAgICBqb2JqZWN0IHR5cGUgPSAoKmVudiktPkdldE9iamVj dEFycmF5RWxlbWVudChlbnYsIHR5cGVzLCBqKTsKPiAgICAgICAgICAgICAgaWYgKGZmX2puaV9l eGNlcHRpb25fY2hlY2soZW52LCAxLCBsb2dfY3R4KSA8IDApIHsKPiAtICAgICAgICAgICAgICAg IGdvdG8gZG9uZTsKPiArICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICAgICAgICAgICAgICB9 Cj4gIAo+IC0gICAgICAgICAgICBzdXBwb3J0ZWRfdHlwZSA9IGZmX2puaV9qc3RyaW5nX3RvX3V0 Zl9jaGFycyhlbnYsIHR5cGUsIGxvZ19jdHgpOwo+ICsgICAgICAgICAgICBqb2JqZWN0IGNhcGFi aWxpdGllcyA9IE5VTEw7Cj4gKyAgICAgICAgICAgIGpvYmplY3RBcnJheSBwcm9maWxlX2xldmVs cyA9IE5VTEw7Cj4gKyAgICAgICAgICAgIGNoYXIgKnN1cHBvcnRlZF90eXBlID0gZmZfam5pX2pz dHJpbmdfdG9fdXRmX2NoYXJzKGVudiwgdHlwZSwgbG9nX2N0eCk7Cj4gICAgICAgICAgICAgIGlm ICghc3VwcG9ydGVkX3R5cGUpIHsKPiAtICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKPiArICAg ICAgICAgICAgICAgIGdvdG8gZG9uZV93aXRoX3R5cGU7Cj4gICAgICAgICAgICAgIH0KPiAgCj4g LSAgICAgICAgICAgIGlmIChhdl9zdHJjYXNlY21wKHN1cHBvcnRlZF90eXBlLCBtaW1lKSkgewo+ ICsgICAgICAgICAgICBpbnQgc3RyY2FzZWNtcF9yZXQgPSBhdl9zdHJjYXNlY21wKHN1cHBvcnRl ZF90eXBlLCBtaW1lKTsKPiArICAgICAgICAgICAgYXZfZnJlZXAoJnN1cHBvcnRlZF90eXBlKTsK PiArICAgICAgICAgICAgaWYgKHN0cmNhc2VjbXBfcmV0KSB7Cj4gICAgICAgICAgICAgICAgICBn b3RvIGRvbmVfd2l0aF90eXBlOwo+ICAgICAgICAgICAgICB9Cj4gIAo+ICAgICAgICAgICAgICBj YXBhYmlsaXRpZXMgPSAoKmVudiktPkNhbGxPYmplY3RNZXRob2QoZW52LCBpbmZvLCBqZmllbGRz LmdldF9jb2RlY19jYXBhYmlsaXRpZXNfaWQsIHR5cGUpOwo+ICAgICAgICAgICAgICBpZiAoZmZf am5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGxvZ19jdHgpIDwgMCkgewo+IC0gICAgICAgICAg ICAgICAgZ290byBkb25lOwo+ICsgICAgICAgICAgICAgICAgZ290byBkb25lX3dpdGhfdHlwZTsK PiAgICAgICAgICAgICAgfQo+ICAKPiAgICAgICAgICAgICAgcHJvZmlsZV9sZXZlbHMgPSAoKmVu diktPkdldE9iamVjdEZpZWxkKGVudiwgY2FwYWJpbGl0aWVzLCBqZmllbGRzLnByb2ZpbGVfbGV2 ZWxzX2lkKTsKPiAgICAgICAgICAgICAgaWYgKGZmX2puaV9leGNlcHRpb25fY2hlY2soZW52LCAx LCBsb2dfY3R4KSA8IDApIHsKPiAtICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKPiArICAgICAg ICAgICAgICAgIGdvdG8gZG9uZV93aXRoX3R5cGU7Cj4gICAgICAgICAgICAgIH0KPiAgCj4gLSAg ICAgICAgICAgIHByb2ZpbGVfY291bnQgPSAoKmVudiktPkdldEFycmF5TGVuZ3RoKGVudiwgcHJv ZmlsZV9sZXZlbHMpOwo+IC0gICAgICAgICAgICBpZiAoIXByb2ZpbGVfY291bnQpIHsKPiArICAg ICAgICAgICAgLy8gbWF0Y2ggcHJvZmlsZSBpZiBkZXNpcmVkIGJ5IHVzZXIgKHByb2ZpbGUgPj0g MCkgYW5kIGNvZGVjIGhhcyBub24tZW1wdHkgcHJvZmlsZUxldmVscwo+ICsgICAgICAgICAgICBp bnQgcHJvZmlsZV9jb3VudCA9ICgqZW52KS0+R2V0QXJyYXlMZW5ndGgoZW52LCBwcm9maWxlX2xl dmVscyk7Cj4gKyAgICAgICAgICAgIGlmICghcHJvZmlsZV9jb3VudCB8fCBwcm9maWxlIDwgMCkg ewo+ICAgICAgICAgICAgICAgICAgZm91bmRfY29kZWMgPSAxOwo+IC0gICAgICAgICAgICB9Cj4g LSAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBwcm9maWxlX2NvdW50OyBrKyspIHsKPiAtICAg ICAgICAgICAgICAgIGludCBzdXBwb3J0ZWRfcHJvZmlsZSA9IDA7Cj4gLQo+IC0gICAgICAgICAg ICAgICAgaWYgKHByb2ZpbGUgPCAwKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgZm91bmRfY29k ZWMgPSAxOwo+IC0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+IC0gICAgICAgICAgICAgICAg fQo+IC0KPiAtICAgICAgICAgICAgICAgIHByb2ZpbGVfbGV2ZWwgPSAoKmVudiktPkdldE9iamVj dEFycmF5RWxlbWVudChlbnYsIHByb2ZpbGVfbGV2ZWxzLCBrKTsKPiAtICAgICAgICAgICAgICAg IGlmIChmZl9qbmlfZXhjZXB0aW9uX2NoZWNrKGVudiwgMSwgbG9nX2N0eCkgPCAwKSB7Cj4gLSAg ICAgICAgICAgICAgICAgICAgZ290byBkb25lOwo+IC0gICAgICAgICAgICAgICAgfQo+IC0KPiAt ICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9wcm9maWxlID0gKCplbnYpLT5HZXRJbnRGaWVsZChl bnYsIHByb2ZpbGVfbGV2ZWwsIGpmaWVsZHMucHJvZmlsZV9pZCk7Cj4gLSAgICAgICAgICAgICAg ICBpZiAoZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGxvZ19jdHgpIDwgMCkgewo+IC0g ICAgICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKPiAtICAgICAgICAgICAgICAgIH0KPiAtCj4g LSAgICAgICAgICAgICAgICBmb3VuZF9jb2RlYyA9IHByb2ZpbGUgPT0gc3VwcG9ydGVkX3Byb2Zp bGU7Cj4gKyAgICAgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICBmb3IgKGludCBr ID0gMDsgayA8IHByb2ZpbGVfY291bnQgJiYgIWZvdW5kX2NvZGVjOyBrKyspIHsKPiArICAgICAg ICAgICAgICAgICAgICBqb2JqZWN0IHByb2ZpbGVfbGV2ZWwgPSAoKmVudiktPkdldE9iamVjdEFy cmF5RWxlbWVudChlbnYsIHByb2ZpbGVfbGV2ZWxzLCBrKTsKPiArICAgICAgICAgICAgICAgICAg ICBpZiAoZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGxvZ19jdHgpIDwgMCkgewo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICAgICAgICAgICAgICB9 Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAgIGludCBzdXBwb3J0ZWRfcHJvZmlsZSA9ICgqZW52 KS0+R2V0SW50RmllbGQoZW52LCBwcm9maWxlX2xldmVsLCBqZmllbGRzLnByb2ZpbGVfaWQpOwo+ ICsgICAgICAgICAgICAgICAgICAgIGlmIChmZl9qbmlfZXhjZXB0aW9uX2NoZWNrKGVudiwgMSwg bG9nX2N0eCkgPj0gMCkgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9jb2RlYyA9 IHByb2ZpbGUgPT0gc3VwcG9ydGVkX3Byb2ZpbGU7Cj4gKyAgICAgICAgICAgICAgICAgICAgfQo+ ICAKPiAtICAgICAgICAgICAgICAgIGlmIChwcm9maWxlX2xldmVsKSB7Cj4gICAgICAgICAgICAg ICAgICAgICAgKCplbnYpLT5EZWxldGVMb2NhbFJlZihlbnYsIHByb2ZpbGVfbGV2ZWwpOwo+IC0g ICAgICAgICAgICAgICAgICAgIHByb2ZpbGVfbGV2ZWwgPSBOVUxMOwo+IC0gICAgICAgICAgICAg ICAgfQo+IC0KPiAtICAgICAgICAgICAgICAgIGlmIChmb3VuZF9jb2RlYykgewo+IC0gICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICB9 Cj4gIAo+ICBkb25lX3dpdGhfdHlwZToKPiAgICAgICAgICAgICAgaWYgKHByb2ZpbGVfbGV2ZWxz KSB7Cj4gICAgICAgICAgICAgICAgICAoKmVudiktPkRlbGV0ZUxvY2FsUmVmKGVudiwgcHJvZmls ZV9sZXZlbHMpOwo+IC0gICAgICAgICAgICAgICAgcHJvZmlsZV9sZXZlbHMgPSBOVUxMOwo+ICAg ICAgICAgICAgICB9Cj4gIAo+ICAgICAgICAgICAgICBpZiAoY2FwYWJpbGl0aWVzKSB7Cj4gICAg ICAgICAgICAgICAgICAoKmVudiktPkRlbGV0ZUxvY2FsUmVmKGVudiwgY2FwYWJpbGl0aWVzKTsK PiAtICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IE5VTEw7Cj4gICAgICAgICAgICAgIH0K PiAgCj4gICAgICAgICAgICAgIGlmICh0eXBlKSB7Cj4gICAgICAgICAgICAgICAgICAoKmVudikt PkRlbGV0ZUxvY2FsUmVmKGVudiwgdHlwZSk7Cj4gLSAgICAgICAgICAgICAgICB0eXBlID0gTlVM TDsKPiAtICAgICAgICAgICAgfQo+IC0KPiAtICAgICAgICAgICAgYXZfZnJlZXAoJnN1cHBvcnRl ZF90eXBlKTsKPiAtCj4gLSAgICAgICAgICAgIGlmIChmb3VuZF9jb2RlYykgewo+IC0gICAgICAg ICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgICAgIH0KPiAgICAgICAgICB9Cj4gIAo+ICBkb25l X3dpdGhfaW5mbzoKPiAgICAgICAgICBpZiAoaW5mbykgewo+ICAgICAgICAgICAgICAoKmVudikt PkRlbGV0ZUxvY2FsUmVmKGVudiwgaW5mbyk7Cj4gLSAgICAgICAgICAgIGluZm8gPSBOVUxMOwo+ ICAgICAgICAgIH0KPiAgCj4gICAgICAgICAgaWYgKHR5cGVzKSB7Cj4gICAgICAgICAgICAgICgq ZW52KS0+RGVsZXRlTG9jYWxSZWYoZW52LCB0eXBlcyk7Cj4gLSAgICAgICAgICAgIHR5cGVzID0g TlVMTDsKPiAgICAgICAgICB9Cj4gIAo+IC0gICAgICAgIGlmIChmb3VuZF9jb2RlYykgewo+IC0g ICAgICAgICAgICBicmVhazsKPiArICAgICAgICBpZiAoY29kZWNfbmFtZSkgewo+ICsgICAgICAg ICAgICAoKmVudiktPkRlbGV0ZUxvY2FsUmVmKGVudiwgY29kZWNfbmFtZSk7Cj4gICAgICAgICAg fQo+ICAKPiAtICAgICAgICBhdl9mcmVlcCgmbmFtZSk7Cj4gKyAgICAgICAgaWYgKCFmb3VuZF9j b2RlYykgewo+ICsgICAgICAgICAgICBhdl9mcmVlcCgmbmFtZSk7Cj4gKyAgICAgICAgfQo+ICAg ICAgfQo+ICAKPiAgZG9uZToKPiAtICAgIGlmIChjb2RlY19uYW1lKSB7Cj4gLSAgICAgICAgKCpl bnYpLT5EZWxldGVMb2NhbFJlZihlbnYsIGNvZGVjX25hbWUpOwo+IC0gICAgfQo+IC0KPiAtICAg IGlmIChpbmZvKSB7Cj4gLSAgICAgICAgKCplbnYpLT5EZWxldGVMb2NhbFJlZihlbnYsIGluZm8p Owo+IC0gICAgfQo+IC0KPiAtICAgIGlmICh0eXBlKSB7Cj4gLSAgICAgICAgKCplbnYpLT5EZWxl dGVMb2NhbFJlZihlbnYsIHR5cGUpOwo+IC0gICAgfQo+IC0KPiAtICAgIGlmICh0eXBlcykgewo+ IC0gICAgICAgICgqZW52KS0+RGVsZXRlTG9jYWxSZWYoZW52LCB0eXBlcyk7Cj4gLSAgICB9Cj4g LQo+IC0gICAgaWYgKGNhcGFiaWxpdGllcykgewo+IC0gICAgICAgICgqZW52KS0+RGVsZXRlTG9j YWxSZWYoZW52LCBjYXBhYmlsaXRpZXMpOwo+IC0gICAgfQo+IC0KPiAtICAgIGlmIChwcm9maWxl X2xldmVsKSB7Cj4gLSAgICAgICAgKCplbnYpLT5EZWxldGVMb2NhbFJlZihlbnYsIHByb2ZpbGVf bGV2ZWwpOwo+IC0gICAgfQo+IC0KPiAtICAgIGlmIChwcm9maWxlX2xldmVscykgewo+IC0gICAg ICAgICgqZW52KS0+RGVsZXRlTG9jYWxSZWYoZW52LCBwcm9maWxlX2xldmVscyk7Cj4gLSAgICB9 Cj4gLQo+IC0gICAgYXZfZnJlZXAoJnN1cHBvcnRlZF90eXBlKTsKPiAtCj4gICAgICBmZl9qbmlf cmVzZXRfamZpZWxkcyhlbnYsICZqZmllbGRzLCBqbmlfYW1lZGlhY29kZWNsaXN0X21hcHBpbmcs IDAsIGxvZ19jdHgpOwo+ICAgICAgZmZfam5pX3Jlc2V0X2pmaWVsZHMoZW52LCAmbWVkaWFmb3Jt YXRfamZpZWxkcywgam5pX2FtZWRpYWZvcm1hdF9tYXBwaW5nLCAwLCBsb2dfY3R4KTsKPiAgCj4g LS0gCj4gMi4zMC4yCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RA ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K