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 387474965B for ; Sun, 17 Mar 2024 04:33:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C709768D193; Sun, 17 Mar 2024 06:33:28 +0200 (EET) Received: from out162-62-57-252.mail.qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 04F5568C291 for ; Sun, 17 Mar 2024 06:33:21 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1710649996; bh=vpF7Jh8RoahvmzkpsduasQsU/jLDgfVhGWC6pBNCscc=; h=From:Subject:Date:References:To:In-Reply-To; b=Ksa4TDlt8nM8rcixjs0ZKSyEroNoMybV2xDIkfNvbrHO0NQHkDOPUC3/3F9a6ns/+ 7Dge8RTEG4qcQBFFuTZTpW0PdD5Ln8iO3xmehsfBkkvPkLwtb2kzZIStO8jk6hPN+f jPvnjmvbS6WcIJP5fqh00SnQ2+xgsX+2QZdk9s8A= Received: from smtpclient.apple ([121.35.186.33]) by newxmesmtplogicsvrsza1-0.qq.com (NewEsmtp) with SMTP id 84E8E00D; Sun, 17 Mar 2024 12:33:14 +0800 X-QQ-mid: xmsmtpt1710649994tb4kgnmwx Message-ID: X-QQ-XMAILINFO: NN8wcaRHkJbBGP4uvGxqlRoTTzxXi0+vn8UpnKYqVOEaPzFPp3bs+Mg24CQ0vE jJU91yq4R0EPg+WqG+JZXsLFnz+WYYCj9CXsBGSX8Em5jpJZMuO2GVAoS8I2IGGN7cSDUownp2I3 XwNvsRxBAK17/eTnW4RKk/lxkfyHWX357ix7pvXgmFCHyjChrpcetg6QbCEp+RFvNvrwxcwAAz1W 0G3CARSNQzE0tR3jPRRdRjdNoS30ITQAOEg9WHvSV+Wu5fjimeSNiCm3whSoE8nmvw6hrS2w+c8j R1vMYbEry4AtRlmF3x0agz4Z/b7VeLFLuTQUdcGgZmdQwAJkxhm2+yzvYpE/TiV5dJLlk6xOpvyy C46CMT6yuGSPAS2Pc2wxLYDtUgHM9l1QSc/JTEaoKy7D/TVAVZ/I76OiEN90QJSjgaaWaZiQ5YqF nSa4gChzVN5IS+QBY4Gvm0Kqez9k2XU3/Nx/881hiB8GYpNSkPzh1PkhJV3S8GNhkoP1YBQ5Wyiy zLf6a0IJT7wYvtr72tpmdjHEyh9Gt7hzCVpaC64m5wXax3Gha43nR2upEcd0kTmD6L6KIlloqkNK Y0PqdLGBROnGQh14JVn/0xt+lj+yqk63YtF+b3DlCro9rykMZ5cfJgmgvL0XfhUAyMB4j6jgC6Cf VyNfRVP9N5jfpuit99sYzFjC84EZGGqhItIdA6NCzOzPzrx0ANAaEq8m+Z2XK/2U5u3Nz4ETdXD2 qOon76iqeJ3n5lvinNOy/013/Gy6C1sfG5/9MTtH9GeGiOPmBv+oaNGdaV3AztG/1ram9KeGmn/J km6znOgjVr7ZJGw0c9jUAJkdvFWPXN1DOXqj5KLT3gn3saeCOhAVq0be6imB6ZtmuAXzOwmrPRkm e95pawbauhGrg7syLdvIPl7V+8pP5Z2S9RiChVIaZatOILoD1CJlF1lnj6Nhtg43xHrSk5UhVWcz rAJnVo69ZXiS9x4SX7UugG9N5MaOy0etlEHFi/WRkE9vVLjyH2jlJCh3oGDUaR1QoqLl4uLrvhdC /eOyAd/QNn6TowKP0l X-QQ-XMRINFO: OD9hHCdaPRBwq3WW+NvGbIU= From: Zhao Zhili Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\)) Date: Sun, 17 Mar 2024 12:33:04 +0800 References: <20240213230418.457056-1-matthieu.bouron@gmail.com> <20240227145536.281991-1-matthieu.bouron@gmail.com> <20240227145536.281991-3-matthieu.bouron@gmail.com> To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: X-Mailer: Apple Mail (2.3774.200.91.1.1) Subject: Re: [FFmpeg-devel] [PATCH v2 2/6] avformat: add Android content resolver protocol support 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: U29ycnkgZm9yIHRoZSBsb25nIGRlbGF5IG9mIHJldmlldy4KCj4gT24gTWFyIDUsIDIwMjQsIGF0 IDAzOjM3LCBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBnbWFpbC5jb20+IHdyb3Rl Ogo+IAo+IE9uIFR1ZSwgRmViIDI3LCAyMDI0IGF0IDAzOjUwOjM4UE0gKzAxMDAsIE1hdHRoaWV1 IEJvdXJvbiB3cm90ZToKPj4gSGFuZGxlcyBBbmRyb2lkIGNvbnRlbnQtdXJpIHN0YXJ0aW5nIHdp dGggY29udGVudDovLy4KPj4gLS0tCj4gCj4gWy4uLl0KPiAKCj4gSGFuZGxlcyBBbmRyb2lkIGNv bnRlbnQtdXJpIHN0YXJ0aW5nIHdpdGggY29udGVudDovLy4KPiAtLS0KPiAgY29uZmlndXJlICAg ICAgICAgICAgICAgfCAgIDIgKwo+ICBkb2MvQVBJY2hhbmdlcyAgICAgICAgICB8ICAgMyArCj4g IGxpYmF2Y29kZWMvam5pLmMgICAgICAgIHwgICAxICsKPiAgbGliYXZmb3JtYXQvTWFrZWZpbGUg ICAgfCAgIDEgKwo+ICBsaWJhdmZvcm1hdC9maWxlLmMgICAgICB8IDE1NyArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGxpYmF2Zm9ybWF0L3Byb3RvY29scy5jIHwg ICAxICsKPiAgNiBmaWxlcyBjaGFuZ2VkLCAxNjUgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1n aXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKPiBpbmRleCBiYjVlNjMwYmFkLi43OTBhMWRmN2M4 IDEwMDc1NQo+IC0tLSBhL2NvbmZpZ3VyZQo+ICsrKyBiL2NvbmZpZ3VyZQo+IEBAIC0zNjU1LDYg KzM2NTUsOCBAQCB4Y2JncmFiX2luZGV2X3N1Z2dlc3Q9ImxpYnhjYl9zaG0gbGlieGNiX3NoYXBl IGxpYnhjYl94Zml4ZXMiCj4gIHh2X291dGRldl9kZXBzPSJ4bGliX3h2IHhsaWJfeDExIHhsaWJf eGV4dCIKPiAgCj4gICMgcHJvdG9jb2xzCj4gK2FuZHJvaWRfY29udGVudF9wcm90b2NvbF9kZXBz PSJqbmkiCj4gK2FuZHJvaWRfY29udGVudF9wcm90b2NvbF9zZWxlY3Q9ImZpbGVfcHJvdG9jb2wi Cj4gIGFzeW5jX3Byb3RvY29sX2RlcHM9InRocmVhZHMiCj4gIGJsdXJheV9wcm90b2NvbF9kZXBz PSJsaWJibHVyYXkiCj4gIGZmcnRtcGNyeXB0X3Byb3RvY29sX2NvbmZsaWN0PSJsaWJydG1wX3By b3RvY29sIgo+IGRpZmYgLS1naXQgYS9kb2MvQVBJY2hhbmdlcyBiL2RvYy9BUEljaGFuZ2VzCj4g aW5kZXggMTBmNjY2N2U5ZS4uMjU4ZTk1M2NhNiAxMDA2NDQKPiAtLS0gYS9kb2MvQVBJY2hhbmdl cwo+ICsrKyBiL2RvYy9BUEljaGFuZ2VzCj4gQEAgLTIsNiArMiw5IEBAIFRoZSBsYXN0IHZlcnNp b24gaW5jcmVhc2VzIG9mIGFsbCBsaWJyYXJpZXMgd2VyZSBvbiAyMDIzLTAyLTA5Cj4gIAo+ICBB UEkgY2hhbmdlcywgbW9zdCByZWNlbnQgZmlyc3Q6Cj4gIAo+ICsyMDI0LTAyLXh4IC0geHh4eHh4 eHh4eCAtIGxhdmMgNjAuNDEuMTAwIC0gam5pLmgKPiArICBBZGQgYXZfam5pX3NldF9hbmRyb2lk X2FwcF9jdHgoKSBhbmQgYXZfam5pX2dldF9hbmRyb2lkX2FwcF9jdHgoKS4KClNob3VsZCBiZSBh ZGRlZCB0b2dldGhlciB3aXRoIHBhdGNoIDEvNi4KCj4gKwo+ICAyMDI0LTAyLTI2IC0geHh4eHh4 eHh4eCAtIGxhdmYgNjAuMjIuMTAxIC0gYXZmb3JtYXQuaAo+ICAgIEFWX0RJU1BPU0lUSU9OX0RF UEVOREVOVCBtYXkgbm93IGFsc28gYmUgdXNlZCBmb3IgdmlkZW8gc3RyZWFtcwo+ICAgIGludGVu ZGVkIHRvIGJlIG1lcmdlZCB3aXRoIG90aGVyIHZpZGVvIHN0cmVhbXMgZm9yIHByZXNlbnRhdGlv bi4KPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9qbmkuYyBiL2xpYmF2Y29kZWMvam5pLmMKPiBp bmRleCBjZmU5NWJkMWVjLi4xMTkzYzYwOGMzIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvam5p LmMKPiArKysgYi9saWJhdmNvZGVjL2puaS5jCj4gQEAgLTM1LDYgKzM1LDcgQEAKPiAgI2luY2x1 ZGUgImZmam5pLmgiCj4gIAo+ICBzdGF0aWMgdm9pZCAqamF2YV92bTsKPiArc3RhdGljIHZvaWQg KmFuZHJvaWRfYXBwX2N0eDsKPiAgc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBsb2NrID0gUFRIUkVB RF9NVVRFWF9JTklUSUFMSVpFUjsKPiAgCj4gIGludCBhdl9qbmlfc2V0X2phdmFfdm0odm9pZCAq dm0sIHZvaWQgKmxvZ19jdHgpCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlIGIv bGliYXZmb3JtYXQvTWFrZWZpbGUKPiBpbmRleCA0YTM4MDY2OGJkLi4wOGZlOThhNTM1IDEwMDY0 NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4gKysrIGIvbGliYXZmb3JtYXQvTWFrZWZp bGUKPiBAQCAtNjU3LDYgKzY1Nyw3IEBAIE9CSlMtJChDT05GSUdfTElCT1BFTk1QVF9ERU1VWEVS KSAgICAgICAgKz0gbGlib3Blbm1wdC5vCj4gIE9CSlMtJChDT05GSUdfVkFQT1VSU1lOVEhfREVN VVhFUikgICAgICAgKz0gdmFwb3Vyc3ludGgubwo+ICAKPiAgIyBwcm90b2NvbHMgSS9PCj4gK09C SlMtJChDT05GSUdfQU5EUk9JRF9DT05URU5UX1BST1RPQ09MKSAgKz0gZmlsZS5vCj4gIE9CSlMt JChDT05GSUdfQVNZTkNfUFJPVE9DT0wpICAgICAgICAgICAgKz0gYXN5bmMubwo+ICBPQkpTLSQo Q09ORklHX0FQUExFSFRUUF9QUk9UT0NPTCkgICAgICAgICs9IGhsc3Byb3RvLm8KPiAgT0JKUy0k KENPTkZJR19CTFVSQVlfUFJPVE9DT0wpICAgICAgICAgICArPSBibHVyYXkubwo+IGRpZmYgLS1n aXQgYS9saWJhdmZvcm1hdC9maWxlLmMgYi9saWJhdmZvcm1hdC9maWxlLmMKPiBpbmRleCA2NGRm N2ZmNmZiLi4xYjJiNjlmMDkwIDEwMDY0NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L2ZpbGUuYwo+ICsr KyBiL2xpYmF2Zm9ybWF0L2ZpbGUuYwo+IEBAIC00MCw2ICs0MCwxMiBAQAo+ICAjaW5jbHVkZSA8 c3RkbGliLmg+Cj4gICNpbmNsdWRlICJvc19zdXBwb3J0LmgiCj4gICNpbmNsdWRlICJ1cmwuaCIK PiArI2lmIENPTkZJR19BTkRST0lEX0NPTlRFTlRfUFJPVE9DT0wKPiArI2luY2x1ZGUgPGpuaS5o Pgo+ICsjaW5jbHVkZSAibGliYXZjb2RlYy9qbmkuaCIKPiArI2luY2x1ZGUgImxpYmF2Y29kZWMv ZmZqbmkuYyIKPiArI2VuZGlmCj4gKwo+ICAKPiAgLyogU29tZSBzeXN0ZW1zIG1heSBub3QgaGF2 ZSBTX0lTRklGTyAqLwo+ICAjaWZuZGVmIFNfSVNGSUZPCj4gQEAgLTEwMSw2ICsxMDcsMjEgQEAg dHlwZWRlZiBzdHJ1Y3QgRmlsZUNvbnRleHQgewo+ICAgICAgaW50NjRfdCBpbml0aWFsX3BvczsK PiAgfSBGaWxlQ29udGV4dDsKPiAgCj4gKwo+ICsjaWYgQ09ORklHX0FORFJPSURfQ09OVEVOVF9Q Uk9UT0NPTAo+ICtzdGF0aWMgY29uc3QgQVZPcHRpb24gYW5kcm9pZF9jb250ZW50X29wdGlvbnNb XSA9IHsKPiArICAgIHsgImJsb2Nrc2l6ZSIsICJzZXQgSS9PIG9wZXJhdGlvbiBtYXhpbXVtIGJs b2NrIHNpemUiLCBvZmZzZXRvZihGaWxlQ29udGV4dCwgYmxvY2tzaXplKSwgQVZfT1BUX1RZUEVf SU5ULCB7IC5pNjQgPSBJTlRfTUFYIH0sIDEsIElOVF9NQVgsIEFWX09QVF9GTEFHX0VOQ09ESU5H X1BBUkFNIH0sCj4gKyAgICB7IE5VTEwgfQo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IEFWQ2xh c3MgYW5kcm9pZF9jb250ZW50X2NsYXNzID0gewo+ICsgICAgLmNsYXNzX25hbWUgPSAiYW5kcm9p ZF9jb250ZW50IiwKPiArICAgIC5pdGVtX25hbWUgID0gYXZfZGVmYXVsdF9pdGVtX25hbWUsCj4g KyAgICAub3B0aW9uICAgICA9IGFuZHJvaWRfY29udGVudF9vcHRpb25zLAo+ICsgICAgLnZlcnNp b24gICAgPSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQsCj4gK307Cj4gKyNlbmRpZgo+ICsKPiAgc3Rh dGljIGNvbnN0IEFWT3B0aW9uIGZpbGVfb3B0aW9uc1tdID0gewo+ICAgICAgeyAidHJ1bmNhdGUi LCAidHJ1bmNhdGUgZXhpc3RpbmcgZmlsZXMgb24gd3JpdGUiLCBvZmZzZXRvZihGaWxlQ29udGV4 dCwgdHJ1bmMpLCBBVl9PUFRfVFlQRV9CT09MLCB7IC5pNjQgPSAxIH0sIDAsIDEsIEFWX09QVF9G TEFHX0VOQ09ESU5HX1BBUkFNIH0sCj4gICAgICB7ICJibG9ja3NpemUiLCAic2V0IEkvTyBvcGVy YXRpb24gbWF4aW11bSBibG9jayBzaXplIiwgb2Zmc2V0b2YoRmlsZUNvbnRleHQsIGJsb2Nrc2l6 ZSksIEFWX09QVF9UWVBFX0lOVCwgeyAuaTY0ID0gSU5UX01BWCB9LCAxLCBJTlRfTUFYLCBBVl9P UFRfRkxBR19FTkNPRElOR19QQVJBTSB9LAo+IEBAIC01MjQsMyArNTQ1LDEzOSBAQCBjb25zdCBV UkxQcm90b2NvbCBmZl9mZF9wcm90b2NvbCA9IHsKPiAgfTsKPiAgCj4gICNlbmRpZiAvKiBDT05G SUdfRkRfUFJPVE9DT0wgKi8KPiArCj4gKyNpZiBDT05GSUdfQU5EUk9JRF9DT05URU5UX1BST1RP Q09MCj4gKwo+ICtzdHJ1Y3QgSkZpZWxkcyB7Cj4gKyAgICBqY2xhc3MgdXJpX2NsYXNzOwo+ICsg ICAgam1ldGhvZElEIHBhcnNlX2lkOwo+ICsKPiArICAgIGpjbGFzcyBjb250ZXh0X2NsYXNzOwo+ ICsgICAgam1ldGhvZElEIGdldF9jb250ZW50X3Jlc29sdmVyX2lkOwo+ICsKPiArICAgIGpjbGFz cyBjb250ZW50X3Jlc29sdmVyX2NsYXNzOwo+ICsgICAgam1ldGhvZElEIG9wZW5fZmlsZV9kZXNj cmlwdG9yX2lkOwo+ICsKPiArICAgIGpjbGFzcyBwYXJjZWxfZmlsZV9kZXNjcmlwdG9yX2NsYXNz Owo+ICsgICAgam1ldGhvZElEIGRldGFjaF9mZF9pZDsKPiArfTsKCnR5cGVkZWYgc3RydWN0IGlz IHRoZSBwcmVmZXJyZWQgY29kaW5nIHN0eWxlIG9mIEZGbXBlZywgaXTigJlzIG1lbnRpb25lZCBp bgpkZXZlbG9wZXIudGV4aS4KCj4gKwo+ICsjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihzdHJ1 Y3QgSkZpZWxkcywgeCkKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBGRkpuaUZpZWxkIGpmaWVsZHNf bWFwcGluZ1tdID0gewo+ICsgICAgeyAiYW5kcm9pZC9uZXQvVXJpIiwgTlVMTCwgTlVMTCwgRkZf Sk5JX0NMQVNTLCBPRkZTRVQodXJpX2NsYXNzKSwgMSB9LAo+ICsgICAgICAgIHsgImFuZHJvaWQv bmV0L1VyaSIsICJwYXJzZSIsICIoTGphdmEvbGFuZy9TdHJpbmc7KUxhbmRyb2lkL25ldC9Vcmk7 IiwgRkZfSk5JX1NUQVRJQ19NRVRIT0QsIE9GRlNFVChwYXJzZV9pZCksIDEgfSwKPiArCj4gKyAg ICB7ICJhbmRyb2lkL2NvbnRlbnQvQ29udGV4dCIsIE5VTEwsIE5VTEwsIEZGX0pOSV9DTEFTUywg T0ZGU0VUKGNvbnRleHRfY2xhc3MpLCAxIH0sCj4gKyAgICAgICAgeyAiYW5kcm9pZC9jb250ZW50 L0NvbnRleHQiLCAiZ2V0Q29udGVudFJlc29sdmVyIiwgIigpTGFuZHJvaWQvY29udGVudC9Db250 ZW50UmVzb2x2ZXI7IiwgRkZfSk5JX01FVEhPRCwgT0ZGU0VUKGdldF9jb250ZW50X3Jlc29sdmVy X2lkKSwgMSB9LAo+ICsKPiArICAgIHsgImFuZHJvaWQvY29udGVudC9Db250ZW50UmVzb2x2ZXIi LCBOVUxMLCBOVUxMLCBGRl9KTklfQ0xBU1MsIE9GRlNFVChjb250ZW50X3Jlc29sdmVyX2NsYXNz KSwgMSB9LAo+ICsgICAgICAgIHsgImFuZHJvaWQvY29udGVudC9Db250ZW50UmVzb2x2ZXIiLCAi b3BlbkZpbGVEZXNjcmlwdG9yIiwgIihMYW5kcm9pZC9uZXQvVXJpO0xqYXZhL2xhbmcvU3RyaW5n OylMYW5kcm9pZC9vcy9QYXJjZWxGaWxlRGVzY3JpcHRvcjsiLCBGRl9KTklfTUVUSE9ELCBPRkZT RVQob3Blbl9maWxlX2Rlc2NyaXB0b3JfaWQpLCAxIH0sCj4gKwo+ICsgICAgeyAiYW5kcm9pZC9v cy9QYXJjZWxGaWxlRGVzY3JpcHRvciIsIE5VTEwsIE5VTEwsIEZGX0pOSV9DTEFTUywgT0ZGU0VU KHBhcmNlbF9maWxlX2Rlc2NyaXB0b3JfY2xhc3MpLCAxIH0sCj4gKyAgICAgICAgeyAiYW5kcm9p ZC9vcy9QYXJjZWxGaWxlRGVzY3JpcHRvciIsICJkZXRhY2hGZCIsICIoKUkiLCBGRl9KTklfTUVU SE9ELCBPRkZTRVQoZGV0YWNoX2ZkX2lkKSwgMSB9LAo+ICsKPiArICAgIHsgTlVMTCB9Cj4gK307 Cj4gKyN1bmRlZiBPRkZTRVQKPiArCj4gK3N0YXRpYyBpbnQgYW5kcm9pZF9jb250ZW50X29wZW4o VVJMQ29udGV4dCAqaCwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFncykKPiArewo+ICsg ICAgRmlsZUNvbnRleHQgKmMgPSBoLT5wcml2X2RhdGE7Cj4gKyAgICBpbnQgZmQsIHJldDsKPiAr ICAgIGNvbnN0IGNoYXIgKm1vZGVfc3RyID0gInIiOwo+ICsKPiArICAgIEpOSUVudiAqZW52Owo+ ICsgICAgc3RydWN0IEpGaWVsZHMgamZpZWxkcyA9IHsgMCB9Owo+ICsgICAgam9iamVjdCBhcHBs aWNhdGlvbl9jb250ZXh0ID0gTlVMTDsKPiArICAgIGpvYmplY3QgdXJsID0gTlVMTDsKPiArICAg IGpvYmplY3QgbW9kZSA9IE5VTEw7Cj4gKyAgICBqb2JqZWN0IHVyaSA9IE5VTEw7Cj4gKyAgICBq b2JqZWN0IGNvbnRlbnRfcmVzb2x2ZXIgPSBOVUxMOwo+ICsgICAgam9iamVjdCBwYXJjZWxfZmls ZV9kZXNjcmlwdG9yID0gTlVMTDsKPiArCj4gKyAgICBlbnYgPSBmZl9qbmlfZ2V0X2VudihjKTsK PiArICAgIGlmICghZW52KSB7Cj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPiAr ICAgIH0KPiArCj4gKyAgICByZXQgPSBmZl9qbmlfaW5pdF9qZmllbGRzKGVudiwgJmpmaWVsZHMs IGpmaWVsZHNfbWFwcGluZywgMCwgYyk7Cj4gKyAgICBpZiAocmV0IDwgMCkgewo+ICsgICAgICAg IGF2X2xvZyhjLCBBVl9MT0dfRVJST1IsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBqbmkgZmllbGRz XG4iKTsKPiArICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgfQo+ICsKPiArICAgIGFwcGxpY2F0 aW9uX2NvbnRleHQgPSBhdl9qbmlfZ2V0X2FuZHJvaWRfYXBwX2N0eCgpOwo+ICsgICAgaWYgKCFh cHBsaWNhdGlvbl9jb250ZXh0KSB7Cj4gKyAgICAgICAgYXZfbG9nKGMsIEFWX0xPR19FUlJPUiwg ImFwcGxpY2F0aW9uIGNvbnRleHQgaXMgbm90IHNldFxuIik7Cj4gKyAgICAgICAgcmV0ID0gQVZF UlJPUl9FWFRFUk5BTDsKPiArICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICB9Cj4gKwo+ICsgICAg dXJsID0gZmZfam5pX3V0Zl9jaGFyc190b19qc3RyaW5nKGVudiwgZmlsZW5hbWUsIGMpOwo+ICsg ICAgaWYgKCF1cmwpIHsKPiArICAgICAgICByZXQgPSBBVkVSUk9SX0VYVEVSTkFMOwo+ICsgICAg ICAgIGdvdG8gZG9uZTsKPiArICAgIH0KPiArCj4gKyAgICBpZiAoZmxhZ3MgJiBBVklPX0ZMQUdf V1JJVEUgJiYgZmxhZ3MgJiBBVklPX0ZMQUdfUkVBRCkKPiArICAgICAgICBtb2RlX3N0ciA9ICJy dyI7Cj4gKyAgICBlbHNlIGlmIChmbGFncyAmIEFWSU9fRkxBR19XUklURSkKPiArICAgICAgICBt b2RlX3N0ciA9ICJ3IjsKPiArCj4gKyAgICBtb2RlID0gZmZfam5pX3V0Zl9jaGFyc190b19qc3Ry aW5nKGVudiwgbW9kZV9zdHIsIGMpOwo+ICsgICAgaWYgKCFtb2RlKSB7Cj4gKyAgICAgICAgcmV0 ID0gQVZFUlJPUl9FWFRFUk5BTDsKPiArICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICB9Cj4gKwo+ ICsgICAgdXJpID0gKCplbnYpLT5DYWxsU3RhdGljT2JqZWN0TWV0aG9kKGVudiwgamZpZWxkcy51 cmlfY2xhc3MsIGpmaWVsZHMucGFyc2VfaWQsIHVybCk7Cj4gKyAgICByZXQgPSBmZl9qbmlfZXhj ZXB0aW9uX2NoZWNrKGVudiwgMSwgYyk7Cj4gKyAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICBn b3RvIGRvbmU7Cj4gKwo+ICsgICAgY29udGVudF9yZXNvbHZlciA9ICgqZW52KS0+Q2FsbE9iamVj dE1ldGhvZChlbnYsIGFwcGxpY2F0aW9uX2NvbnRleHQsIGpmaWVsZHMuZ2V0X2NvbnRlbnRfcmVz b2x2ZXJfaWQpOwo+ICsgICAgcmV0ID0gZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGMp Owo+ICsgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgZ290byBkb25lOwo+ICsKPiArICAgIHBh cmNlbF9maWxlX2Rlc2NyaXB0b3IgPSAoKmVudiktPkNhbGxPYmplY3RNZXRob2QoZW52LCBjb250 ZW50X3Jlc29sdmVyLCBqZmllbGRzLm9wZW5fZmlsZV9kZXNjcmlwdG9yX2lkLCB1cmksIG1vZGUp Owo+ICsgICAgcmV0ID0gZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGMpOwo+ICsgICAg aWYgKHJldCA8IDApCj4gKyAgICAgICAgZ290byBkb25lOwo+ICsKPiArICAgIGZkID0gKCplbnYp LT5DYWxsSW50TWV0aG9kKGVudiwgcGFyY2VsX2ZpbGVfZGVzY3JpcHRvciwgamZpZWxkcy5kZXRh Y2hfZmRfaWQpOwo+ICsgICAgcmV0ID0gZmZfam5pX2V4Y2VwdGlvbl9jaGVjayhlbnYsIDEsIGMp Owo+ICsgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgZ290byBkb25lOwo+ICsKPiArI2lmIEhB VkVfU0VUTU9ERQo+ICsgICAgc2V0bW9kZShmZCwgT19CSU5BUlkpOwo+ICsjZW5kaWYKClNpbmNl IGl04oCZcyBhbmRyb2lkIHNwZWNpZmljIHByb3RvY29sLCB0aGUgY29uZGl0aW9uYWwgY29tcGls ZSBpcyBhbHdheXMgZmFsc2UsIGlzbuKAmXQgaXQ/Cgo+ICsgICAgYy0+ZmQgPSBmZDsKPiArICAg IGgtPmlzX3N0cmVhbWVkID0gMDsKCkZpcnN0bHksIGlzX3N0cmVhbWVkIGlzIGRlZmF1bHQgdG8g ZmFsc2UsIHNvIHRoZSBhYm92ZSBsaW5lIGlzIHVubmVjZXNzYXJ5LgpTZWNvbmRseSwgSeKAmW0g bm90IHN1cmUgd2hldGhlciBpdOKAmXMgYWx3YXlzIHNlZWFibGUuCgo+ICsKPiArZG9uZToKPiAr ICAgICgqZW52KS0+RGVsZXRlTG9jYWxSZWYoZW52LCB1cmwpOwo+ICsgICAgKCplbnYpLT5EZWxl dGVMb2NhbFJlZihlbnYsIG1vZGUpOwo+ICsgICAgKCplbnYpLT5EZWxldGVMb2NhbFJlZihlbnYs IHVyaSk7Cj4gKyAgICAoKmVudiktPkRlbGV0ZUxvY2FsUmVmKGVudiwgY29udGVudF9yZXNvbHZl cik7Cj4gKyAgICAoKmVudiktPkRlbGV0ZUxvY2FsUmVmKGVudiwgcGFyY2VsX2ZpbGVfZGVzY3Jp cHRvcik7Cj4gKyAgICBmZl9qbmlfcmVzZXRfamZpZWxkcyhlbnYsICZqZmllbGRzLCBqZmllbGRz X21hcHBpbmcsIDAsIGMpOwo+ICsKPiArICAgIHJldHVybiByZXQ7Cj4gK30KPiArCj4gK1VSTFBy b3RvY29sIGZmX2FuZHJvaWRfY29udGVudF9wcm90b2NvbCA9IHsKPiArICAgIC5uYW1lICAgICAg ICAgICAgICAgID0gImNvbnRlbnQiLAo+ICsgICAgLnVybF9vcGVuICAgICAgICAgICAgPSBhbmRy b2lkX2NvbnRlbnRfb3BlbiwKPiArICAgIC51cmxfcmVhZCAgICAgICAgICAgID0gZmlsZV9yZWFk LAo+ICsgICAgLnVybF93cml0ZSAgICAgICAgICAgPSBmaWxlX3dyaXRlLAo+ICsgICAgLnVybF9z ZWVrICAgICAgICAgICAgPSBmaWxlX3NlZWssCj4gKyAgICAudXJsX2Nsb3NlICAgICAgICAgICA9 IGZpbGVfY2xvc2UsCj4gKyAgICAudXJsX2dldF9maWxlX2hhbmRsZSA9IGZpbGVfZ2V0X2hhbmRs ZSwKPiArICAgIC51cmxfY2hlY2sgICAgICAgICAgID0gTlVMTCwKPiArICAgIC5wcml2X2RhdGFf c2l6ZSAgICAgID0gc2l6ZW9mKEZpbGVDb250ZXh0KSwKPiArICAgIC5wcml2X2RhdGFfY2xhc3Mg ICAgID0gJmFuZHJvaWRfY29udGVudF9jbGFzcywKPiArfTsKPiArCj4gKyNlbmRpZiAvKiBDT05G SUdfQU5EUk9JRF9DT05URU5UX1BST1RPQ09MICovCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0 L3Byb3RvY29scy5jIGIvbGliYXZmb3JtYXQvcHJvdG9jb2xzLmMKPiBpbmRleCAzNjAwMThiMTdj Li45M2E2ZDY3MjYxIDEwMDY0NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L3Byb3RvY29scy5jCj4gKysr IGIvbGliYXZmb3JtYXQvcHJvdG9jb2xzLmMKPiBAQCAtMjQsNiArMjQsNyBAQAo+ICAKPiAgI2lu Y2x1ZGUgInVybC5oIgo+ICAKPiArZXh0ZXJuIGNvbnN0IFVSTFByb3RvY29sIGZmX2FuZHJvaWRf Y29udGVudF9wcm90b2NvbDsKPiAgZXh0ZXJuIGNvbnN0IFVSTFByb3RvY29sIGZmX2FzeW5jX3By b3RvY29sOwo+ICBleHRlcm4gY29uc3QgVVJMUHJvdG9jb2wgZmZfYmx1cmF5X3Byb3RvY29sOwo+ ICBleHRlcm4gY29uc3QgVVJMUHJvdG9jb2wgZmZfY2FjaGVfcHJvdG9jb2w7Cj4gLS0gCj4gMi40 NC4wCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpm Zm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8v ZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUs IHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5v cmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==