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 49A58470D9 for ; Sat, 26 Aug 2023 17:22:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9503068C5BF; Sat, 26 Aug 2023 20:22:30 +0300 (EEST) Received: from mail-vk1-f181.google.com (mail-vk1-f181.google.com [209.85.221.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5795F68C4EC for ; Sat, 26 Aug 2023 20:22:24 +0300 (EEST) Received: by mail-vk1-f181.google.com with SMTP id 71dfb90a1353d-48d1412c5c5so630921e0c.3 for ; Sat, 26 Aug 2023 10:22:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693070542; x=1693675342; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=n+L8UDJs2Fz2TerrUn0Z/SA0aPoKPXDA6gYZS9HK620=; b=ReYSYWP3hsfjEaIdTDv7ZvbbvefFKX9V40N5VmhunE7pJOfznXWA+86zHRxERE+VfK r8iCVxnto1l/8cm2bujrIEu2diQ2IZObaTlPIW0bilAfD4L1hk0vOTjJUCZYvf51ZVMM v8igIfZMYEvJogq6WNXSQtYAZ4cMP5ATUPqUewNdq/OOgs4xd5VBhB9hey8ySkGI08Vg bwLCz4vRtE8XBmgsbcs0i4I7zUBIyWQit7D4fJaSVqSixd6dDhjl2lguSt0cBHxswdVK pzlmV91VXxpaaeTRgMWtxhbB6QglMk3oTcXlV+PZA0STok0jjPoOJEusXH+sTth7+hGc tO1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693070542; x=1693675342; h=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=n+L8UDJs2Fz2TerrUn0Z/SA0aPoKPXDA6gYZS9HK620=; b=f7C2xVDbSo4UkRcTolRK3R47lYrL1NQkH2OVSK9YJEtltquMxeYaJl4tzH5D/NcOuD 5PEhX2IzL5s2lt0XKF3pQXYQi2KxiOvp/XH3RolSzSyXGP0NQ2egRCvIujuLj4rZQI03 kSqsEvdE3kta799meUFA/7GCuKdsViwxUCscx6VFa75hcOSdbVL2EB5EBCeb8XR4LY24 +85tGK0yMR7L5m0zhQ1MkNRa9lFUK0paE73mWR94Ao0Z3OIBoZAb22jJ65zohI+7kpay wrmslbRbB5IDP2k/MfxC0fKF/tlaOAnKzW068+FQfH9LJoCcJa1L2+tQWfspAjok1s7A rHJg== X-Gm-Message-State: AOJu0YxeCt4ze8ZcwqPzFmWAtj9wZXvO9NqoYj4tfW4jF7td2hbtZJ78 siXziBrqmS71fDaghhAq6qNK5gzrALBMqy5dTBZ2u0QL X-Google-Smtp-Source: AGHT+IEO9wlJaGS7NuevLrz3K4a02VDp3VYDZ6+jhCM4/eUTP/RMtVJLKWWHIuIHfnygi1+2Cnq0wIGMPj42ws4AiWE= X-Received: by 2002:a1f:4e45:0:b0:48d:189b:6f3b with SMTP id c66-20020a1f4e45000000b0048d189b6f3bmr15825733vkb.12.1693070542113; Sat, 26 Aug 2023 10:22:22 -0700 (PDT) MIME-Version: 1.0 References: <20230826165350.8838-1-michael@niedermayer.cc> <20230826165350.8838-2-michael@niedermayer.cc> In-Reply-To: <20230826165350.8838-2-michael@niedermayer.cc> From: Paul B Mahol Date: Sat, 26 Aug 2023 19:29:40 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] avcodec/apedec: Implement interim mode detection 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: T24gU2F0LCBBdWcgMjYsIDIwMjMgYXQgNjo1NOKAr1BNIE1pY2hhZWwgTmllZGVybWF5ZXIgPG1p Y2hhZWxAbmllZGVybWF5ZXIuY2M+Cndyb3RlOgoKPiBGaXhlczogTm9MZWdhY3kuYXBlCj4gRm91 bmQtYnk6IE1hdHQgQXNobGFuZCA8bWFpbEBtb25rZXlzYXVkaW8uY29tPgo+IFNpZ25lZC1vZmYt Ynk6IE1pY2hhZWwgTmllZGVybWF5ZXIgPG1pY2hhZWxAbmllZGVybWF5ZXIuY2M+Cj4gLS0tCj4g IGxpYmF2Y29kZWMvYXBlZGVjLmMgfCAxMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDIyIGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYXBlZGVjLmMgYi9saWJhdmNv ZGVjL2FwZWRlYy5jCj4gaW5kZXggOGJkNjI1Y2EwNS4uMjQ5ZmMyMmUyNCAxMDA2NDQKPiAtLS0g YS9saWJhdmNvZGVjL2FwZWRlYy5jCj4gKysrIGIvbGliYXZjb2RlYy9hcGVkZWMuYwo+IEBAIC0x NzEsNiArMTcxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQVBFQ29udGV4dCB7Cj4gICAgICBpbnQzMl90 ICpkZWNvZGVkX2J1ZmZlcjsKPiAgICAgIGludCBkZWNvZGVkX3NpemU7Cj4gICAgICBpbnQzMl90 ICpkZWNvZGVkW01BWF9DSEFOTkVMU107ICAgICAgICAgIC8vLzwgZGVjb2RlZCBkYXRhIGZvciBl YWNoCj4gY2hhbm5lbAo+ICsgICAgaW50MzJfdCAqaW50ZXJpbV9idWZmZXI7Cj4gKyAgICBpbnQg aW50ZXJpbV9zaXplOwo+ICsgICAgaW50MzJfdCAqaW50ZXJpbVtNQVhfQ0hBTk5FTFNdOyAgICAg ICAgICAvLy88IGRlY29kZWQgZGF0YSBmb3IgZWFjaAo+IGNoYW5uZWwKPiAgICAgIGludCBibG9j a3NfcGVyX2xvb3A7ICAgICAgICAgICAgICAgICAgICAgLy8vPCBtYXhpbXVtIG51bWJlciBvZgo+ IHNhbXBsZXMgdG8gZGVjb2RlIGZvciBlYWNoIGNhbGwKPgo+ICAgICAgaW50MTZfdCogZmlsdGVy YnVmW0FQRV9GSUxURVJfTEVWRUxTXTsgICAvLy88IGZpbHRlciBtZW1vcnkKPiBAQCAtMTg3LDYg KzE5MCw3IEBAIHR5cGVkZWYgc3RydWN0IEFQRUNvbnRleHQgewo+ICAgICAgY29uc3QgdWludDhf dCAqcHRyOyAgICAgICAgICAgICAgICAgICAgICAvLy88IGN1cnJlbnQgcG9zaXRpb24gaW4KPiBm cmFtZSBkYXRhCj4KPiAgICAgIGludCBlcnJvcjsKPiArICAgIGludCBpbnRlcmltX21vZGU7Cj4K PiAgICAgIHZvaWQgKCplbnRyb3B5X2RlY29kZV9tb25vKShzdHJ1Y3QgQVBFQ29udGV4dCAqY3R4 LCBpbnQKPiBibG9ja3N0b2RlY29kZSk7Cj4gICAgICB2b2lkICgqZW50cm9weV9kZWNvZGVfc3Rl cmVvKShzdHJ1Y3QgQVBFQ29udGV4dCAqY3R4LCBpbnQKPiBibG9ja3N0b2RlY29kZSk7Cj4gQEAg LTIyMyw2ICsyMjcsNyBAQCBzdGF0aWMgYXZfY29sZCBpbnQgYXBlX2RlY29kZV9jbG9zZShBVkNv ZGVjQ29udGV4dAo+ICphdmN0eCkKPiAgICAgICAgICBhdl9mcmVlcCgmcy0+ZmlsdGVyYnVmW2ld KTsKPgo+ICAgICAgYXZfZnJlZXAoJnMtPmRlY29kZWRfYnVmZmVyKTsKPiArICAgIGF2X2ZyZWVw KCZzLT5pbnRlcmltX2J1ZmZlcik7Cj4gICAgICBhdl9mcmVlcCgmcy0+ZGF0YSk7Cj4gICAgICBz LT5kZWNvZGVkX3NpemUgPSBzLT5kYXRhX3NpemUgPSAwOwo+Cj4gQEAgLTI0OCwxMiArMjUzLDE1 IEBAIHN0YXRpYyBhdl9jb2xkIGludCBhcGVfZGVjb2RlX2luaXQoQVZDb2RlY0NvbnRleHQKPiAq YXZjdHgpCj4gICAgICBzd2l0Y2ggKHMtPmJwcykgewo+ICAgICAgY2FzZSA4Ogo+ICAgICAgICAg IGF2Y3R4LT5zYW1wbGVfZm10ID0gQVZfU0FNUExFX0ZNVF9VOFA7Cj4gKyAgICAgICAgcy0+aW50 ZXJpbV9tb2RlID0gMDsKPiAgICAgICAgICBicmVhazsKPiAgICAgIGNhc2UgMTY6Cj4gICAgICAg ICAgYXZjdHgtPnNhbXBsZV9mbXQgPSBBVl9TQU1QTEVfRk1UX1MxNlA7Cj4gKyAgICAgICAgcy0+ aW50ZXJpbV9tb2RlID0gMDsKPiAgICAgICAgICBicmVhazsKPiAgICAgIGNhc2UgMjQ6Cj4gICAg ICAgICAgYXZjdHgtPnNhbXBsZV9mbXQgPSBBVl9TQU1QTEVfRk1UX1MzMlA7Cj4gKyAgICAgICAg cy0+aW50ZXJpbV9tb2RlID0gLTE7Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICBkZWZhdWx0Ogo+ ICAgICAgICAgIGF2cHJpdl9yZXF1ZXN0X3NhbXBsZShhdmN0eCwKPiBAQCAtMTE4MSw3ICsxMTg5 LDcgQEAgc3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgaW50Cj4gcHJlZGljdG9yX3VwZGF0ZV9maWx0 ZXIoQVBFUHJlZGljdG9yNjQgKnAsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgZGVjb2RlZCwKPiBjb25zdCBpbnQgZmlsdGVy LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgaW50IGRlbGF5QSwKPiBjb25zdCBpbnQgZGVsYXlCLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGFkYXB0QSwKPiBj b25zdCBpbnQgYWRhcHRCLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IGNvbXByZXNzaW9uX2xldmVsKQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGludGVyaW1fbW9kZSkKPiAg ewo+ICAgICAgaW50NjRfdCBwcmVkaWN0aW9uQSwgcHJlZGljdGlvbkI7Cj4gICAgICBpbnQzMl90 IHNpZ247Cj4gQEAgLTEyMDksNyArMTIxNyw3IEBAIHN0YXRpYyBhdl9hbHdheXNfaW5saW5lIGlu dAo+IHByZWRpY3Rvcl91cGRhdGVfZmlsdGVyKEFQRVByZWRpY3RvcjY0ICpwLAo+ICAgICAgICAg ICAgICAgICAgICBwLT5idWZbZGVsYXlCIC0gM10gKiBwLT5jb2VmZnNCW2ZpbHRlcl1bM10gKwo+ ICAgICAgICAgICAgICAgICAgICBwLT5idWZbZGVsYXlCIC0gNF0gKiBwLT5jb2VmZnNCW2ZpbHRl cl1bNF07Cj4KPiAtICAgIGlmIChjb21wcmVzc2lvbl9sZXZlbCA8IENPTVBSRVNTSU9OX0xFVkVM X0lOU0FORSkgewo+ICsgICAgaWYgKGludGVyaW1fbW9kZSA8IDEpIHsKPiAgICAgICAgICBwcmVk aWN0aW9uQSA9IChpbnQzMl90KXByZWRpY3Rpb25BOwo+ICAgICAgICAgIHByZWRpY3Rpb25CID0g KGludDMyX3QpcHJlZGljdGlvbkI7Cj4gICAgICAgICAgcC0+bGFzdEFbZmlsdGVyXSA9IGRlY29k ZWQgKyAoKGludDMyX3QpKHByZWRpY3Rpb25BICsKPiAocHJlZGljdGlvbkIgPj4gMSkpID4+IDEw KTsKPiBAQCAtMTIzNCwzMyArMTI0Miw3NCBAQCBzdGF0aWMgYXZfYWx3YXlzX2lubGluZSBpbnQK PiBwcmVkaWN0b3JfdXBkYXRlX2ZpbHRlcihBUEVQcmVkaWN0b3I2NCAqcCwKPgo+ICBzdGF0aWMg dm9pZCBwcmVkaWN0b3JfZGVjb2RlX3N0ZXJlb18zOTUwKEFQRUNvbnRleHQgKmN0eCwgaW50IGNv dW50KQo+ICB7Cj4gLSAgICBBUEVQcmVkaWN0b3I2NCAqcCA9ICZjdHgtPnByZWRpY3RvcjY0Owo+ IC0gICAgaW50MzJfdCAqZGVjb2RlZDAgPSBjdHgtPmRlY29kZWRbMF07Cj4gLSAgICBpbnQzMl90 ICpkZWNvZGVkMSA9IGN0eC0+ZGVjb2RlZFsxXTsKPiArICAgIEFQRVByZWRpY3RvcjY0ICpwX2Rl ZmF1bHQgPSAmY3R4LT5wcmVkaWN0b3I2NDsKPiArICAgIEFQRVByZWRpY3RvcjY0IHBfaW50ZXJp bTsKPiArICAgIGludCBsY291bnQgPSBjb3VudDsKPiArICAgIGludCBudW1fcGFzc2VzID0gMTsK Pgo+ICAgICAgYXBlX2FwcGx5X2ZpbHRlcnMoY3R4LCBjdHgtPmRlY29kZWRbMF0sIGN0eC0+ZGVj b2RlZFsxXSwgY291bnQpOwo+ICsgICAgaWYgKGN0eC0+aW50ZXJpbV9tb2RlID09IC0xKSB7Cj4g KyAgICAgICAgcF9pbnRlcmltID0gKnBfZGVmYXVsdDsKPiArICAgICAgICBudW1fcGFzc2VzICsr Owo+ICsgICAgICAgIG1lbWNweShjdHgtPmludGVyaW1bMF0sIGN0eC0+ZGVjb2RlZFswXSwKPiBz aXplb2YoKmN0eC0+aW50ZXJpbVswXSkqY291bnQpOwo+ICsgICAgICAgIG1lbWNweShjdHgtPmlu dGVyaW1bMV0sIGN0eC0+ZGVjb2RlZFsxXSwKPiBzaXplb2YoKmN0eC0+aW50ZXJpbVsxXSkqY291 bnQpOwo+ICsgICAgfQo+Cj4gLSAgICB3aGlsZSAoY291bnQtLSkgewo+IC0gICAgICAgIC8qIFBy ZWRpY3RvciBZICovCj4gLSAgICAgICAgKmRlY29kZWQwID0gcHJlZGljdG9yX3VwZGF0ZV9maWx0 ZXIocCwgKmRlY29kZWQwLCAwLCBZREVMQVlBLAo+IFlERUxBWUIsCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUFEQVBUQ09FRkZTQSwgWUFEQVBUQ09FRkZT QiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPmNv bXByZXNzaW9uX2xldmVsKTsKPiAtICAgICAgICBkZWNvZGVkMCsrOwo+IC0gICAgICAgICpkZWNv ZGVkMSA9IHByZWRpY3Rvcl91cGRhdGVfZmlsdGVyKHAsICpkZWNvZGVkMSwgMSwgWERFTEFZQSwK PiBYREVMQVlCLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhBREFQVENPRUZGU0EsIFhBREFQVENPRUZGU0IsCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3R4LT5jb21wcmVzc2lvbl9sZXZlbCk7Cj4gLSAgICAgICAg ZGVjb2RlZDErKzsKPiArICAgIGZvcihpbnQgcGFzcyA9IDA7IHBhc3MgPCBudW1fcGFzc2VzOyBw YXNzKyspIHsKPgoKUGxlYXNlIGZpeCB5b3VyIHN0eWxlIGluIHBhdGNoZXMuCgoKPiArICAgICAg ICBpbnQzMl90ICpkZWNvZGVkMCwgKmRlY29kZWQxOwo+ICsgICAgICAgIGludCBpbnRlcmltX21v ZGUgPSBjdHgtPmludGVyaW1fbW9kZSA+IDAgfHwgcGFzczsKPiArICAgICAgICBBUEVQcmVkaWN0 b3I2NCAqcDsKPgo+IC0gICAgICAgIC8qIENvbWJpbmVkICovCj4gLSAgICAgICAgcC0+YnVmKys7 Cj4gKyAgICAgICAgaWYgKHBhc3MpIHsKPiArICAgICAgICAgICAgcCAgICAgICAgPSAmcF9pbnRl cmltOwo+ICsgICAgICAgICAgICBkZWNvZGVkMCA9IGN0eC0+aW50ZXJpbVswXTsKPiArICAgICAg ICAgICAgZGVjb2RlZDEgPSBjdHgtPmludGVyaW1bMV07Cj4gKyAgICAgICAgfSBlbHNlIHsKPiAr ICAgICAgICAgICAgcCAgICAgICAgPSBwX2RlZmF1bHQ7Cj4gKyAgICAgICAgICAgIGRlY29kZWQw ID0gY3R4LT5kZWNvZGVkWzBdOwo+ICsgICAgICAgICAgICBkZWNvZGVkMSA9IGN0eC0+ZGVjb2Rl ZFsxXTsKPiArICAgICAgICB9Cj4gKyAgICAgICAgcC0+YnVmID0gcC0+aGlzdG9yeWJ1ZmZlcjsK PiArCj4gKyAgICAgICAgY291bnQgPSBsY291bnQ7Cj4gKyAgICAgICAgd2hpbGUgKGNvdW50LS0p IHsKPiArICAgICAgICAgICAgLyogUHJlZGljdG9yIFkgKi8KPiArICAgICAgICAgICAgaW50MzJf dCBhMCA9IHByZWRpY3Rvcl91cGRhdGVfZmlsdGVyKHAsICpkZWNvZGVkMCwgMCwKPiBZREVMQVlB LCBZREVMQVlCLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBZQURBUFRDT0VGRlNBLAo+IFlBREFQVENPRUZGU0IsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyaW1fbW9kZSk7Cj4gKyAgICAgICAg ICAgIGludDMyX3QgYTEgPSBwcmVkaWN0b3JfdXBkYXRlX2ZpbHRlcihwLCAqZGVjb2RlZDEsIDEs Cj4gWERFTEFZQSwgWERFTEFZQiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWEFEQVBUQ09FRkZTQSwKPiBYQURBUFRDT0VGRlNCLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmltX21vZGUpOwo+ ICsgICAgICAgICAgICAqZGVjb2RlZDArKyA9IGEwOwo+ICsgICAgICAgICAgICAqZGVjb2RlZDEr KyA9IGExOwo+ICsgICAgICAgICAgICBpZiAobnVtX3Bhc3NlcyA+IDEpIHsKPiArICAgICAgICAg ICAgICAgIGludDMyX3QgbGVmdCAgPSBhMSAtICh1bnNpZ25lZCkoYTAgLyAyKTsKPiArICAgICAg ICAgICAgICAgIGludDMyX3QgcmlnaHQgPSBsZWZ0ICsgYTA7Cj4gKwo+ICsgICAgICAgICAgICAg ICAgaWYgKEZGTUFYKEZGQUJTKGxlZnQpLCBGRkFCUyhyaWdodCkpID4gKDE8PDIzKSkgewo+ICsg ICAgICAgICAgICAgICAgICAgIGN0eC0+aW50ZXJpbV9tb2RlID0gIWludGVyaW1fbW9kZTsKPiAr ICAgICAgICAgICAgICAgICAgICBhdl9sb2coY3R4LT5hdmN0eCwgQVZfTE9HX1ZFUkJPU0UsICJJ bnRlcmltIG1vZGU6Cj4gJWRcbiIsIGN0eC0+aW50ZXJpbV9tb2RlKTsKPiArICAgICAgICAgICAg ICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgfQo+Cj4g LSAgICAgICAgLyogSGF2ZSB3ZSBmaWxsZWQgdGhlIGhpc3RvcnkgYnVmZmVyPyAqLwo+IC0gICAg ICAgIGlmIChwLT5idWYgPT0gcC0+aGlzdG9yeWJ1ZmZlciArIEhJU1RPUllfU0laRSkgewo+IC0g ICAgICAgICAgICBtZW1tb3ZlKHAtPmhpc3RvcnlidWZmZXIsIHAtPmJ1ZiwKPiAtICAgICAgICAg ICAgICAgICAgICBQUkVESUNUT1JfU0laRSAqIHNpemVvZigqcC0+aGlzdG9yeWJ1ZmZlcikpOwo+ IC0gICAgICAgICAgICBwLT5idWYgPSBwLT5oaXN0b3J5YnVmZmVyOwo+ICsgICAgICAgICAgICAv KiBDb21iaW5lZCAqLwo+ICsgICAgICAgICAgICBwLT5idWYrKzsKPiArCj4gKyAgICAgICAgICAg IC8qIEhhdmUgd2UgZmlsbGVkIHRoZSBoaXN0b3J5IGJ1ZmZlcj8gKi8KPiArICAgICAgICAgICAg aWYgKHAtPmJ1ZiA9PSBwLT5oaXN0b3J5YnVmZmVyICsgSElTVE9SWV9TSVpFKSB7Cj4gKyAgICAg ICAgICAgICAgICBtZW1tb3ZlKHAtPmhpc3RvcnlidWZmZXIsIHAtPmJ1ZiwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgUFJFRElDVE9SX1NJWkUgKiBzaXplb2YoKnAtPmhpc3RvcnlidWZmZXIp KTsKPiArICAgICAgICAgICAgICAgIHAtPmJ1ZiA9IHAtPmhpc3RvcnlidWZmZXI7Cj4gKyAgICAg ICAgICAgIH0KPiAgICAgICAgICB9Cj4gICAgICB9Cj4gKyAgICBpZiAobnVtX3Bhc3NlcyA+IDEg JiYgY3R4LT5pbnRlcmltX21vZGUgPiAwKSB7Cj4gKyAgICAgICAgbWVtY3B5KGN0eC0+ZGVjb2Rl ZFswXSwgY3R4LT5pbnRlcmltWzBdLAo+IHNpemVvZigqY3R4LT5pbnRlcmltWzBdKSpsY291bnQp Owo+ICsgICAgICAgIG1lbWNweShjdHgtPmRlY29kZWRbMV0sIGN0eC0+aW50ZXJpbVsxXSwKPiBz aXplb2YoKmN0eC0+aW50ZXJpbVsxXSkqbGNvdW50KTsKPiArICAgICAgICAqcF9kZWZhdWx0ID0g cF9pbnRlcmltOwo+ICsgICAgICAgIHBfZGVmYXVsdC0+YnVmID0gcF9kZWZhdWx0LT5oaXN0b3J5 YnVmZmVyOwo+ICsgICAgfQo+ICB9Cj4KPiAgc3RhdGljIHZvaWQgcHJlZGljdG9yX2RlY29kZV9t b25vXzM5NTAoQVBFQ29udGV4dCAqY3R4LCBpbnQgY291bnQpCj4gQEAgLTE1OTAsNiArMTYzOSwx OSBAQCBzdGF0aWMgaW50IGFwZV9kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+ IEFWRnJhbWUgKmZyYW1lLAo+ICAgICAgcy0+ZGVjb2RlZFswXSA9IHMtPmRlY29kZWRfYnVmZmVy Owo+ICAgICAgcy0+ZGVjb2RlZFsxXSA9IHMtPmRlY29kZWRfYnVmZmVyICsgRkZBTElHTihibG9j a3N0b2RlY29kZSwgOCk7Cj4KPiArICAgIGlmIChzLT5pbnRlcmltX21vZGUgPCAwKSB7Cj4gKyAg ICAgICAgYXZfZmFzdF9tYWxsb2MoJnMtPmludGVyaW1fYnVmZmVyLCAmcy0+aW50ZXJpbV9zaXpl LAo+IGRlY29kZWRfYnVmZmVyX3NpemUpOwo+ICsgICAgICAgIGlmICghcy0+aW50ZXJpbV9idWZm ZXIpCj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gKyAgICAgICAgbWVt c2V0KHMtPmludGVyaW1fYnVmZmVyLCAwLCBkZWNvZGVkX2J1ZmZlcl9zaXplKTsKPiArICAgICAg ICBzLT5pbnRlcmltWzBdID0gcy0+aW50ZXJpbV9idWZmZXI7Cj4gKyAgICAgICAgcy0+aW50ZXJp bVsxXSA9IHMtPmludGVyaW1fYnVmZmVyICsgRkZBTElHTihibG9ja3N0b2RlY29kZSwgOCk7Cj4g KyAgICB9IGVsc2Ugewo+ICsgICAgICAgIGF2X2ZyZWVwKCZzLT5pbnRlcmltX2J1ZmZlcik7Cj4g KyAgICAgICAgcy0+aW50ZXJpbV9zaXplID0gMDsKPiArICAgICAgICBtZW1zZXQocy0+aW50ZXJp bSwgMCwgc2l6ZW9mKHMtPmludGVyaW0pKTsKPiArICAgIH0KPiArCj4gICAgICBzLT5lcnJvcj0w Owo+Cj4gICAgICBpZiAoKHMtPmNoYW5uZWxzID09IDEpIHx8IChzLT5mcmFtZWZsYWdzICYKPiBB UEVfRlJBTUVDT0RFX1BTRVVET19TVEVSRU8pKQo+IC0tCj4gMi4xNy4xCj4KPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWls aW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxp bmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRo IHN1YmplY3QgInVuc3Vic2NyaWJlIi4KPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZl bAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZl bC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==