From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 4F4E94B5B5 for ; Mon, 21 Jul 2025 13:49:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id F170968C037; Mon, 21 Jul 2025 16:48:55 +0300 (EEST) Received: from mail-ua1-f53.google.com (mail-ua1-f53.google.com [209.85.222.53]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 396FC68B349 for ; Mon, 21 Jul 2025 16:48:49 +0300 (EEST) Received: by mail-ua1-f53.google.com with SMTP id a1e0cc1a2514c-87ec4ec218fso2378368241.3 for ; Mon, 21 Jul 2025 06:48:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753105727; x=1753710527; 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=SXNZYmEwON4BL9CJXT79gN7LoU7FqHdPzmEPSDrrUCM=; b=VNhuCFks5ldTg34Cs/meWzdfBHkvjpi3v82KCEZpMv/wIUNZ9+1btadDejuqOMhFs2 NOqu5L6l/xj2guF4rmcjzfPkAG2VLmxodh67TUrVwDP8f4a99tkx4ZDXGjGhz1DflfRu TuxCO8Z4s5s6IhYh9YrkIkI2X37qoQIBaKSF0NrQDoA7SBqyh0vLKqDZeCScEbqjXZN6 s4rvYtcVKKGEF5HbEJncACBG1JLcOvae2UW8LeUwzERAep35iU4rRHPeOzvmd/DJFyON jiVHlHi4gtewUkwTYgXN4xe8+F3pnTf9nWfXILHROB0q7Li3Pikka7Pc9TVdmr3hbd3P EUrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753105727; x=1753710527; 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=SXNZYmEwON4BL9CJXT79gN7LoU7FqHdPzmEPSDrrUCM=; b=FIwTipCeZeiadnHK6fgu8cJblJm6LQhX/vIh1hMmJrceMvZe/uNaxTjW34hWUBP4te Ha5OStVcw9zcX8nZZJDnIv2gsihggv40M9uH9hZLrJkOFmSzqUL7AtNbDpKsjfGFVbzw avSkIhvFhJRYP+uArTACVQtRUPMcTOJ7SAnuxPCJ4y5pyq2cc0Xr6OqbImEOR/T03w3Z I3lIHfmq+E+rruDvFYyg7Z/NnfcFlkb3VzDE4Ld7J6zAgQNe7W/HPRSE3zjNbT5NwXT3 mjz6dV71VALINj3Yl+0RzJZeac6CiNnkQGG4G6J9sAKoHRcaMV5YHik1jSUV9kKaFOH6 rDdQ== X-Gm-Message-State: AOJu0YxP8mPghEGg2UtuHqR2rz73WEBydwu/b1HDpZqBEwEC4mAZu8k0 BTnpwTiMPandGYSse+BbCKTFQ493NJUt33LYrizhdnx/BwmseHEZ1fgSNu2gIwpf7YbTz3wzCru 7vxA/P0kKA/m4zFk2ZEA2TTg5w3fuuwA8KM9r X-Gm-Gg: ASbGnctI8YrFiJl4aRdcmjW6mgFd888/UHCeAy+zlYi+8yY3YhVw7HlSwLVnbaCCt3P 1Pr2Bp1uAQECiboH90mhrfQjiCopVBvSIVoaiML00BV6HlgzkpDHItTA3JNoeXWa5woEdfu/fKl guuSsgydNf9oWe9PShqbQw27eYGbhmyyjMp9h+eW8+tris0VagPeWPWoT8J6eoUvQ5pMuy1uvdM POXG2avvw== X-Google-Smtp-Source: AGHT+IHXIxQYKj6Skf318Xu949aWgNiKYB47Vp+/rUJ3UV2fZvA0bZDJNT+u47v922mzbf2nnNeS6Pg0FA4DUujFqIo= X-Received: by 2002:a05:6122:4d0f:b0:531:236f:1295 with SMTP id 71dfb90a1353d-5373fbda52dmr8672053e0c.5.1753105727187; Mon, 21 Jul 2025 06:48:47 -0700 (PDT) MIME-Version: 1.0 References: <20250721112752.2105845-1-cenzhanquan2@gmail.com> <20250721120444.2125750-1-cenzhanquan2@gmail.com> <20250721120444.2125750-2-cenzhanquan2@gmail.com> In-Reply-To: <20250721120444.2125750-2-cenzhanquan2@gmail.com> From: Steven Liu Date: Mon, 21 Jul 2025 21:48:35 +0800 X-Gm-Features: Ac12FXyPUzspp6D54j1UtxPpbSj5TpYxw3TZLXGgEQ8rw7Gstu9LUCwMoNIcWNc Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v2 1/3] avfilter/volume: add volume scaling utilities. 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: zhanquan cen , your_email@domain.com 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: PGNlbnpoYW5xdWFuMkBnbWFpbC5jb20+IOS6jjIwMjXlubQ35pyIMjHml6XlkajkuIAgMjA6MTPl hpnpgZPvvJoKPgo+IEZyb206IHpoYW5xdWFuIGNlbiA8Y2VuemhhbnF1YW4yQGdtYWlsLmNvbT4K SGkgWmhhbnF1YW4gQ2VuLAo+Cj4gLS0tCj4gIHZvbHVtZS5jIHwgMTY4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgdm9sdW1lLmggfCAg NDQgKysrKysrKysrKysrKysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMjEyIGluc2VydGlvbnMoKykK PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHZvbHVtZS5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB2b2x1 bWUuaAo+Cj4gZGlmZiAtLWdpdCBhL3ZvbHVtZS5jIGIvdm9sdW1lLmMKSXMgdGhpcyBmaWxlIGNy ZWF0ZWQgYXQgdGhlIEZGbXBlZyBzb3VyY2UgY29kZSdzIHJvb3QgZGlyZWN0b3J5PwoKCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwLi4zNzM4OTU5MjRjCj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL3ZvbHVtZS5jCj4gQEAgLTAsMCArMSwxNjggQEAKPiArCj4gKy8qCj4g KyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiArICoKPiArICogRkZtcGVnIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ICsgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAq IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu Cj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB Cj4gKyAqLwo+ICsvKioKPiArICogQGZpbGUKPiArICogYXVkaW8gdm9sdW1lIGZvciBzcmMgZmls dGVyCj4gKyAqLwo+ICsjaW5jbHVkZSAibGliYXZ1dGlsL21lbS5oIgo+ICsjaW5jbHVkZSAidm9s dW1lLmgiCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBmYWRlX3NhbXBsZXNfczE2X3NtYWxsKGludDE2 X3QgKmRzdCwgY29uc3QgaW50MTZfdCAqc3JjLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgbmJfc2FtcGxlcywgaW50IGNocywgaW50MTZfdCBkc3Rfdm9s dW1lLCBpbnQxNl90IHNyY192b2x1bWUpCj4gK3sKPiArICAgIGludCBpLCBqLCBrID0gMDsKPiAr ICAgIGludDMyX3Qgc3RlcDsKPiArICAgIHN0ZXAgPSAoKGRzdF92b2x1bWUgLSBzcmNfdm9sdW1l KSA8PCAxNSkgLyBuYl9zYW1wbGVzOwo+ICsgICAgZm9yIChpID0gMDsgaSA8IG5iX3NhbXBsZXM7 IGkrKykgewo+ICsgICAgICAgIGZvciAoaiA9IDA7IGogPCBjaHM7IGorKywgaysrKSB7Cj4gKyAg ICAgICAgICAgIGRzdFtrXSA9IGF2X2NsaXBfaW50MTYoKHNyY1trXSAqIChzcmNfdm9sdW1lICsg KHN0ZXAgKiBpID4+IDE1KSkgKyAweDQwMDApID4+IDE1KTsKPiArICAgICAgICB9Cj4gKyAgICB9 Cj4gK30KPiArc3RhdGljIGlubGluZSB2b2lkIHNjYWxlX3NhbXBsZXNfdTgodWludDhfdCAqZHN0 LCBjb25zdCB1aW50OF90ICpzcmMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBuYl9zYW1wbGVzLCBpbnQgdm9sdW1lKQo+ICt7Cj4gKyAgICBpbnQgaTsKPiArICAg IGZvciAoaSA9IDA7IGkgPCBuYl9zYW1wbGVzOyBpKyspCj4gKyAgICAgICAgZHN0W2ldID0gYXZf Y2xpcF91aW50OCgoKCgoaW50NjRfdClzcmNbaV0gLSAxMjgpICogdm9sdW1lICsgMTI4KSA+PiA4 KSArIDEyOCk7Cj4gK30KPiArc3RhdGljIGlubGluZSB2b2lkIHNjYWxlX3NhbXBsZXNfdThfc21h bGwodWludDhfdCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYl9zYW1wbGVzLCBpbnQgdm9sdW1lKQo+ICt7 Cj4gKyAgICBpbnQgaTsKPiArICAgIGZvciAoaSA9IDA7IGkgPCBuYl9zYW1wbGVzOyBpKyspCj4g KyAgICAgICAgZHN0W2ldID0gYXZfY2xpcF91aW50OCgoKChzcmNbaV0gLSAxMjgpICogdm9sdW1l ICsgMTI4KSA+PiA4KSArIDEyOCk7Cj4gK30KPiArc3RhdGljIGlubGluZSB2b2lkIHNjYWxlX3Nh bXBsZXNfczE2KHVpbnQ4X3QgKmRzdCwgY29uc3QgdWludDhfdCAqc3JjLAo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5iX3NhbXBsZXMsIGludCB2b2x1bWUpCj4g K3sKPiArICAgIGludCBpOwo+ICsgICAgaW50MTZfdCAqc21wX2RzdCA9IChpbnQxNl90ICopZHN0 Owo+ICsgICAgY29uc3QgaW50MTZfdCAqc21wX3NyYyA9IChjb25zdCBpbnQxNl90ICopc3JjOwo+ ICsgICAgZm9yIChpID0gMDsgaSA8IG5iX3NhbXBsZXM7IGkrKykKPiArICAgICAgICBzbXBfZHN0 W2ldID0gYXZfY2xpcF9pbnQxNigoKGludDY0X3Qpc21wX3NyY1tpXSAqIHZvbHVtZSArIDEyOCkg Pj4gOCk7Cj4gK30KPiArc3RhdGljIGlubGluZSB2b2lkIHNjYWxlX3NhbXBsZXNfczE2X3NtYWxs KHVpbnQ4X3QgKmRzdCwgY29uc3QgdWludDhfdCAqc3JjLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5iX3NhbXBsZXMsIGludCB2b2x1bWUpCj4gK3sK PiArICAgIGludCBpOwo+ICsgICAgaW50MTZfdCAqc21wX2RzdCA9IChpbnQxNl90ICopZHN0Owo+ ICsgICAgY29uc3QgaW50MTZfdCAqc21wX3NyYyA9IChjb25zdCBpbnQxNl90ICopc3JjOwo+ICsg ICAgZm9yIChpID0gMDsgaSA8IG5iX3NhbXBsZXM7IGkrKykKPiArICAgICAgICBzbXBfZHN0W2ld ID0gYXZfY2xpcF9pbnQxNigoc21wX3NyY1tpXSAqIHZvbHVtZSArIDEyOCkgPj4gOCk7Cj4gK30K PiArc3RhdGljIGlubGluZSB2b2lkIHNjYWxlX3NhbXBsZXNfczMyKHVpbnQ4X3QgKmRzdCwgY29u c3QgdWludDhfdCAqc3JjLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IG5iX3NhbXBsZXMsIGludCB2b2x1bWUpCj4gK3sKPiArICAgIGludCBpOwo+ICsgICAgaW50 MzJfdCAqc21wX2RzdCA9IChpbnQzMl90ICopZHN0Owo+ICsgICAgY29uc3QgaW50MzJfdCAqc21w X3NyYyA9IChjb25zdCBpbnQzMl90ICopc3JjOwo+ICsgICAgZm9yIChpID0gMDsgaSA8IG5iX3Nh bXBsZXM7IGkrKykKPiArICAgICAgICBzbXBfZHN0W2ldID0gYXZfY2xpcGxfaW50MzIoKCgoaW50 NjRfdClzbXBfc3JjW2ldICogdm9sdW1lICsgMTI4KSA+PiA4KSk7Cj4gK30KPiArc3RhdGljIGF2 X2NvbGQgdm9pZCBzY2FsZXJfaW5pdChWb2x1bWVDb250ZXh0ICp2b2wpCj4gK3sKPiArICAgIGlu dDMyX3Qgdm9sdW1lX2kgPSAoaW50MzJfdCkodm9sLT52b2x1bWUgKiAyNTYgKyAwLjUpOwo+ICsg ICAgdm9sLT5zYW1wbGVzX2FsaWduID0gMTsKPiArICAgIHN3aXRjaCAoYXZfZ2V0X3BhY2tlZF9z YW1wbGVfZm10KHZvbC0+c2FtcGxlX2ZtdCkpIHsKPiArICAgIGNhc2UgQVZfU0FNUExFX0ZNVF9V ODoKPiArICAgICAgICBpZiAodm9sdW1lX2kgPCAweDEwMDAwMDApCj4gKyAgICAgICAgICAgIHZv bC0+c2NhbGVfc2FtcGxlcyA9IHNjYWxlX3NhbXBsZXNfdThfc21hbGw7Cj4gKyAgICAgICAgZWxz ZQo+ICsgICAgICAgICAgICB2b2wtPnNjYWxlX3NhbXBsZXMgPSBzY2FsZV9zYW1wbGVzX3U4Owo+ ICsgICAgICAgIGJyZWFrOwo+ICsgICAgY2FzZSBBVl9TQU1QTEVfRk1UX1MxNjoKPiArICAgICAg ICBpZiAodm9sdW1lX2kgPCAweDEwMDAwKQo+ICsgICAgICAgICAgICB2b2wtPnNjYWxlX3NhbXBs ZXMgPSBzY2FsZV9zYW1wbGVzX3MxNl9zbWFsbDsKPiArICAgICAgICBlbHNlCj4gKyAgICAgICAg ICAgIHZvbC0+c2NhbGVfc2FtcGxlcyA9IHNjYWxlX3NhbXBsZXNfczE2Owo+ICsgICAgICAgIGJy ZWFrOwo+ICsgICAgY2FzZSBBVl9TQU1QTEVfRk1UX1MzMjoKPiArICAgICAgICB2b2wtPnNjYWxl X3NhbXBsZXMgPSBzY2FsZV9zYW1wbGVzX3MzMjsKPiArICAgICAgICBicmVhazsKPiArICAgIGNh c2UgQVZfU0FNUExFX0ZNVF9GTFQ6Cj4gKyAgICAgICAgdm9sLT5zYW1wbGVzX2FsaWduID0gNDsK PiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgQVZfU0FNUExFX0ZNVF9EQkw6Cj4gKyAgICAg ICAgdm9sLT5zYW1wbGVzX2FsaWduID0gODsKPiArICAgICAgICBicmVhazsKPiArICAgIH0KPiAr fQo+ICtpbnQgdm9sdW1lX3NldChWb2x1bWVDb250ZXh0ICp2b2wsIGRvdWJsZSB2b2x1bWUpCj4g K3sKPiArICAgIHZvbC0+dm9sdW1lID0gdm9sdW1lOwo+ICsgICAgdm9sLT52b2x1bWVfbGFzdCA9 IC0xLjBmOwo+ICsgICAgc2NhbGVyX2luaXQodm9sKTsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4g K3ZvaWQgdm9sdW1lX3NjYWxlKFZvbHVtZUNvbnRleHQgKnZvbCwgQVZGcmFtZSAqZnJhbWUpCj4g K3sKPiArICAgIGludCBwbGFuYXIsIHBsYW5lcywgcGxhbmVfc2l6ZSwgcDsKPiArICAgIHBsYW5h ciA9IGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpOwo+ICsgICAgcGxhbmVz ID0gcGxhbmFyID8gZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVscyA6IDE7Cj4gKyAgICBwbGFu ZV9zaXplID0gZnJhbWUtPm5iX3NhbXBsZXMgKiAocGxhbmFyID8gMSA6IGZyYW1lLT5jaF9sYXlv dXQubmJfY2hhbm5lbHMpOwo+ICsgICAgaWYgKGZyYW1lLT5mb3JtYXQgPT0gQVZfU0FNUExFX0ZN VF9TMTYgfHwKPiArICAgICAgICBmcmFtZS0+Zm9ybWF0ID09IEFWX1NBTVBMRV9GTVRfUzE2UCkg ewo+ICsgICAgICAgIGludDMyX3Qgdm9sX2lzcmMgPSAoaW50MzJfdCkodm9sLT52b2x1bWVfbGFz dCAqIDI1NiArIDAuNSk7Cj4gKyAgICAgICAgaW50MzJfdCB2b2x1bWVfaSA9IChpbnQzMl90KSh2 b2wtPnZvbHVtZSAqIDI1NiArIDAuNSk7Cj4gKyAgICAgICAgaWYgKHZvbHVtZV9pICE9IHZvbF9p c3JjKSB7Cj4gKyAgICAgICAgICAgIGZvciAocCA9IDA7IHAgPCBwbGFuZXM7IHArKykgewo+ICsg ICAgICAgICAgICAgICAgdm9sLT5mYWRlX3NhbXBsZXMoZnJhbWUtPmV4dGVuZGVkX2RhdGFbcF0s Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZXh0ZW5kZWRfZGF0 YVtwXSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5uYl9zYW1w bGVzLCBwbGFuYXIgPyAxIDogZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVscywKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbHVtZV9pLCB2b2xfaXNyYyk7Cj4gKyAgICAg ICAgICAgIH0KPiArICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICBmb3IgKHAgPSAwOyBw IDwgcGxhbmVzOyBwKyspIHsKPiArICAgICAgICAgICAgICAgIHZvbC0+c2NhbGVfc2FtcGxlcyhm cmFtZS0+ZXh0ZW5kZWRfZGF0YVtwXSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmcmFtZS0+ZXh0ZW5kZWRfZGF0YVtwXSwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwbGFuZV9zaXplLCB2b2x1bWVfaSk7Cj4gKyAgICAgICAgICAgIH0KPiArICAg ICAgICB9Cj4gKyAgICAgICAgdm9sLT52b2x1bWVfbGFzdCA9IHZvbC0+dm9sdW1lOwo+ICsgICAg fSBlbHNlIGlmIChmcmFtZS0+Zm9ybWF0ID09IEFWX1NBTVBMRV9GTVRfRkxUIHx8Cj4gKyAgICAg ICAgICAgICAgICAgICAgICAgZnJhbWUtPmZvcm1hdCA9PSBBVl9TQU1QTEVfRk1UX0ZMVFApIHsK PiArICAgICAgICBmb3IgKHAgPSAwOyBwIDwgcGxhbmVzOyBwKyspIHsKPiArICAgICAgICAgICAg dm9sLT5mZHNwLT52ZWN0b3JfZm11bF9zY2FsYXIoKGZsb2F0ICopZnJhbWUtPmV4dGVuZGVkX2Rh dGFbcF0sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9h dCAqKWZyYW1lLT5leHRlbmRlZF9kYXRhW3BdLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2b2wtPnZvbHVtZSwgcGxhbmVfc2l6ZSk7Cj4gKyAgICAgICAgfQo+ ICsgICAgfSBlbHNlIHsKPiArICAgICAgICBmb3IgKHAgPSAwOyBwIDwgcGxhbmVzOyBwKyspIHsK PiArICAgICAgICAgICAgdm9sLT5mZHNwLT52ZWN0b3JfZG11bF9zY2FsYXIoKGRvdWJsZSAqKWZy YW1lLT5leHRlbmRlZF9kYXRhW3BdLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoZG91YmxlICopZnJhbWUtPmV4dGVuZGVkX2RhdGFbcF0sCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbC0+dm9sdW1lLCBwbGFuZV9zaXpl KTsKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gK30KPiAraW50IHZvbHVtZV9pbml0KFZvbHVtZUNv bnRleHQgKnZvbCwgZW51bSBBVlNhbXBsZUZvcm1hdCBzYW1wbGVfZm10KQo+ICt7Cj4gKyAgICB2 b2wtPnNhbXBsZV9mbXQgPSBzYW1wbGVfZm10Owo+ICsgICAgdm9sLT52b2x1bWVfbGFzdCA9IC0x LjBmOwo+ICsgICAgdm9sLT52b2x1bWUgPSAxLjBmOwo+ICsgICAgdm9sLT5mZHNwID0gYXZwcml2 X2Zsb2F0X2RzcF9hbGxvYygwKTsKPiArICAgIGlmICghdm9sLT5mZHNwKQo+ICsgICAgICAgIHJl dHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gKyAgICBzY2FsZXJfaW5pdCh2b2wpOwo+ICsgICAgdm9s LT5mYWRlX3NhbXBsZXMgPSBmYWRlX3NhbXBsZXNfczE2X3NtYWxsOwo+ICsgICAgcmV0dXJuIDA7 Cj4gK30KPiArdm9pZCB2b2x1bWVfdW5pbml0KFZvbHVtZUNvbnRleHQgKnZvbCkKPiArewo+ICsg ICAgYXZfZnJlZXAoJnZvbC0+ZmRzcCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvdm9sdW1lLmggYi92 b2x1bWUuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4uMTQxZTgz OWU5MAo+IC0tLSAvZGV2L251bGwKPiArKysgYi92b2x1bWUuaAo+IEBAIC0wLDAgKzEsNDQgQEAK PiArCj4gKy8qCj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiArICoKPiArICog RkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogRkZtcGVnIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Cj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9uZyB3aXRo IEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAy MTEwLTEzMDEgVVNBCj4gKyAqLwo+ICsvKioKPiArICogQGZpbGUKPiArICogYXVkaW8gdm9sdW1l IGZvciBzcmMgZmlsdGVyCj4gKyAqLwo+ICsjaWZuZGVmIExJQkFWRklMVEVSX1ZPTFVNRV9ICj4g KyNkZWZpbmUgTElCQVZGSUxURVJfVk9MVU1FX0gKPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ICsj aW5jbHVkZSAibGliYXZ1dGlsL3NhbXBsZWZtdC5oIgo+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2Zs b2F0X2RzcC5oIgo+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2ZyYW1lLmgiCj4gK3R5cGVkZWYgc3Ry dWN0IFZvbHVtZUNvbnRleHQgewo+ICsgICAgQVZGbG9hdERTUENvbnRleHQgKmZkc3A7Cj4gKyAg ICBlbnVtIEFWU2FtcGxlRm9ybWF0IHNhbXBsZV9mbXQ7Cj4gKyAgICBpbnQgc2FtcGxlc19hbGln bjsKPiArICAgIGRvdWJsZSB2b2x1bWVfbGFzdDsKPiArICAgIGRvdWJsZSB2b2x1bWU7Cj4gKyAg ICB2b2lkICgqc2NhbGVfc2FtcGxlcykodWludDhfdCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMs IGludCBuYl9zYW1wbGVzLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2b2x1bWUp Owo+ICsgICAgdm9pZCAoKmZhZGVfc2FtcGxlcykoaW50MTZfdCAqZHN0LCBjb25zdCBpbnQxNl90 ICpzcmMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmJfc2FtcGxlcywgaW50IGNo cywgaW50MTZfdCBkc3Rfdm9sdW1lLCBpbnQxNl90IHNyY192b2x1bWUpOwo+ICt9IFZvbHVtZUNv bnRleHQ7Cj4gK2ludCB2b2x1bWVfaW5pdChWb2x1bWVDb250ZXh0ICp2b2wsIGVudW0gQVZTYW1w bGVGb3JtYXQgc2FtcGxlX2ZtdCk7Cj4gK3ZvaWQgdm9sdW1lX3NjYWxlKFZvbHVtZUNvbnRleHQg KnZvbCwgQVZGcmFtZSAqZnJhbWUpOwo+ICtpbnQgdm9sdW1lX3NldChWb2x1bWVDb250ZXh0ICp2 b2wsIGRvdWJsZSB2b2x1bWUpOwo+ICt2b2lkIHZvbHVtZV91bmluaXQoVm9sdW1lQ29udGV4dCAq dm9sKTsKPiArI2VuZGlmIC8qIExJQkFWRklMVEVSX1ZPTFVNRV9IICovCj4gLS0KPiAyLjM0LjEK Pgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZt cGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6 Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1YnNj cmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBm Zm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgoKVGhhbmtzCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5n IGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4v bGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwg b3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVu c3Vic2NyaWJlIi4K