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 586EC4A9F3 for ; Thu, 6 Jun 2024 15:55:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F90B68D17B; Thu, 6 Jun 2024 18:55:06 +0300 (EEST) Received: from mail-vs1-f53.google.com (mail-vs1-f53.google.com [209.85.217.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3964068D494 for ; Thu, 6 Jun 2024 18:55:00 +0300 (EEST) Received: by mail-vs1-f53.google.com with SMTP id ada2fe7eead31-48bdbaab67aso360921137.2 for ; Thu, 06 Jun 2024 08:55:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717689298; x=1718294098; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ZzRg/HMMfWFlFUk+TwchROQe3I/saGTF8FLS0hu85cY=; b=bMof32NQb+gtvYovrEX3+UXguBL97oQ9NoaJqET5Ex2JSzhHZMjmcKOJUoFaaZHm54 7io5FSYyGzVOaNcjRpM7gMu07Ds+zhKIDFmpg/hK1pacLIJnAvAoyibJjn8BmYmcAJKx PGgM05PRadXphlwnmtk6YDQKT8PG+KHD26mZLWUSrPX1JGHs4XSuf5XgaBaolmj7ysze SXngdEo1Oe69wgosEVda6Dls51nroNXmg7RmzBlk1G91Tn0Zl2MMW5t33xR2Y3ouvvnF GKEtURAL9ytyR0smNtTjfs3iZBRgzwEX19BOoDNFcAV0HWRiaVCz/AUZMIjmBiuQlPQH lh0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717689298; x=1718294098; h=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=ZzRg/HMMfWFlFUk+TwchROQe3I/saGTF8FLS0hu85cY=; b=nesA5FhVrPSmWBVLzZHMN5qLFTYnI6JBYuhtivO+bUVfxnH8n8FSBdCg06B0aTdnf7 WVbt2cWK3r82YvExNO2csWlc+d2YSF3a4F0tLIusayUq+NWz82WTqgCgmqnhg2HxkFOG xJ0OoLjgV2/2HfRGh5abzVjBViUTWGHZOf99NCBc6IZcxcxKjhQUfXUT8TUiMLswMgvp YYrrzp3xeesxKIILM/4AVYU410f1yp/s6bKM+rzVwaFyw64UpEBiopOt1QQCKT0VLWFS +sEI4+x2sEffPFrp4XfSD0LiqD3XFhjcoFQL39KJajHJ0PsRD/tH5kIm9NnUErYil9bh wQDA== X-Gm-Message-State: AOJu0YwRTMY14kwEjioFQJKdBSUVURmVSRK6cXQi5km2jfsUtXpBdrIk 7jywQB0gmp/ROtznmFYbYy4kT5BxmgqzMa+qqrBwiBuKPdQmbXJ2FjTYZwOoQ+baxKwGbL9lAve Be9GciWxwlbcYfLvIAfu22+ql5FsDmA== X-Google-Smtp-Source: AGHT+IGs/G6wbBLfpvkivo8fyfzqL3Bd1H4he64bujLW6c3ofdB36pulhYRAykhmDGJ6mqgImPsRM7oONGdxEW0XurI= X-Received: by 2002:a67:e8c5:0:b0:48b:9255:4a89 with SMTP id ada2fe7eead31-48c0483d779mr6534933137.10.1717689297530; Thu, 06 Jun 2024 08:54:57 -0700 (PDT) MIME-Version: 1.0 References: <20240605174126.2948000-1-dev@lynne.ee> In-Reply-To: <20240605174126.2948000-1-dev@lynne.ee> From: Paul B Mahol Date: Thu, 6 Jun 2024 17:54:44 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] aacdec_usac: correctly set and use the layout map 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: Lynne 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: T24gV2VkLCBKdW4gNSwgMjAyNCBhdCA3OjQx4oCvUE0gTHlubmUgdmlhIGZmbXBlZy1kZXZlbCA8 CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnPiB3cm90ZToKCj4gLS0tCj4gIGxpYmF2Y29kZWMvYWFj L2FhY2RlY191c2FjLmMgfCAxMDUgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0K PiAgMSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFjL2FhY2RlY191c2FjLmMgYi9saWJhdmNvZGVjL2Fh Yy9hYWNkZWNfdXNhYy5jCj4gaW5kZXggMDRkZDVmYWNmZi4uNTYxNzM0ZjkzMCAxMDA2NDQKPiAt LS0gYS9saWJhdmNvZGVjL2FhYy9hYWNkZWNfdXNhYy5jCj4gKysrIGIvbGliYXZjb2RlYy9hYWMv YWFjZGVjX3VzYWMuYwo+IEBAIC0yNjgsMTcgKzI2OCwyNSBAQCBpbnQgZmZfYWFjX3VzYWNfcmVz ZXRfc3RhdGUoQUFDRGVjQ29udGV4dCAqYWMsCj4gT3V0cHV0Q29uZmlndXJhdGlvbiAqb2MpCj4g ICAgICAvKiBJbml0aWFsaXplIHN0YXRlICovCj4gICAgICBmb3IgKGludCBpID0gMDsgaSA8IHVz YWMtPm5iX2VsZW1zOyBpKyspIHsKPiAgICAgICAgICBBQUNVc2FjRWxlbUNvbmZpZyAqZSA9ICZ1 c2FjLT5lbGVtc1tpXTsKPiAtICAgICAgICBpZiAoZS0+dHlwZSAhPSBJRF9VU0FDX1NDRSAmJiBl LT50eXBlICE9IElEX1VTQUNfQ1BFKQo+ICsgICAgICAgIGlmIChlLT50eXBlID09IElEX1VTQUNf RVhUKQo+ICAgICAgICAgICAgICBjb250aW51ZTsKPgo+IC0gICAgICAgIGlmIChlLT50eXBlID09 IElEX1VTQUNfU0NFKSB7Cj4gKyAgICAgICAgc3dpdGNoIChlLT50eXBlKSB7Cj4gKyAgICAgICAg Y2FzZSBJRF9VU0FDX1NDRToKPiAgICAgICAgICAgICAgY2ggPSAxOwo+ICAgICAgICAgICAgICB0 eXBlID0gVFlQRV9TQ0U7Cj4gICAgICAgICAgICAgIGlkID0gZWxlbV9pZFswXSsrOwo+IC0gICAg ICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIGNhc2UgSURfVVNB Q19DUEU6Cj4gICAgICAgICAgICAgIGNoID0gMjsKPiAgICAgICAgICAgICAgdHlwZSA9IFRZUEVf Q1BFOwo+ICAgICAgICAgICAgICBpZCA9IGVsZW1faWRbMV0rKzsKPiArICAgICAgICAgICAgYnJl YWs7Cj4gKyAgICAgICAgY2FzZSBJRF9VU0FDX0xGRToKPiArICAgICAgICAgICAgY2ggPSAxOwo+ ICsgICAgICAgICAgICB0eXBlID0gVFlQRV9MRkU7Cj4gKyAgICAgICAgICAgIGlkID0gZWxlbV9p ZFsyXSsrOwo+ICsgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICB9Cj4KPiAgICAgICAgICBj aGUgPSBmZl9hYWNfZ2V0X2NoZShhYywgdHlwZSwgaWQpOwo+IEBAIC0zMTgsNyArMzI2LDggQEAg aW50IGZmX2FhY191c2FjX2NvbmZpZ19kZWNvZGUoQUFDRGVjQ29udGV4dCAqYWMsCj4gQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LAo+ICAgICAgQUFDVVNBQ0NvbmZpZyAqdXNhYyA9ICZvYy0+dXNhYzsK PiAgICAgIGludCBlbGVtX2lkWzMgLyogU0NFLCBDUEUsIExGRSAqL107Cj4KPiAtICAgIHVpbnQ4 X3QgbGF5b3V0X21hcFtNQVhfRUxFTV9JRCo0XVszXTsKPiArICAgIGludCBtYXBfcG9zX3NldCA9 IDA7Cj4gKyAgICB1aW50OF90IGxheW91dF9tYXBbTUFYX0VMRU1fSUQqNF1bM10gPSB7IDAgfTsK Pgo+ICAgICAgbWVtc2V0KHVzYWMsIDAsIHNpemVvZigqdXNhYykpOwo+Cj4gQEAgLTM5MSw2ICs0 MDAsOCBAQCBpbnQgZmZfYWFjX3VzYWNfY29uZmlnX2RlY29kZShBQUNEZWNDb250ZXh0ICphYywK PiBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gICAgICAgICAgLyogRmlsbCBpbiB0aGUgbnVtYmVy IG9mIGV4cGVjdGVkIGNoYW5uZWxzICovCj4gICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBu Yl9lbGVtZW50czsgaSsrKQo+ICAgICAgICAgICAgICBuYl9jaGFubmVscyArPSBsYXlvdXRfbWFw W2ldWzBdID09IFRZUEVfQ1BFID8gMiA6IDE7Cj4gKwo+ICsgICAgICAgIG1hcF9wb3Nfc2V0ID0g MTsKPiAgICAgIH0KPgo+ICAgICAgLyogVXNhY0RlY29kZXJDb25maWcgKi8KPiBAQCAtNDA0LDEy ICs0MTUsMTIgQEAgaW50IGZmX2FhY191c2FjX2NvbmZpZ19kZWNvZGUoQUFDRGVjQ29udGV4dCAq YWMsCj4gQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+ICAgICAgfQo+Cj4gICAgICBmb3IgKGludCBp ID0gMDsgaSA8IHVzYWMtPm5iX2VsZW1zOyBpKyspIHsKPiArICAgICAgICBpbnQgbWFwX2NvdW50 ID0gZWxlbV9pZFswXSArIGVsZW1faWRbMV0gKyBlbGVtX2lkWzJdOwo+ICAgICAgICAgIEFBQ1Vz YWNFbGVtQ29uZmlnICplID0gJnVzYWMtPmVsZW1zW2ldOwo+ICAgICAgICAgIG1lbXNldChlLCAw LCBzaXplb2YoKmUpKTsKPgo+ICAgICAgICAgIGUtPnR5cGUgPSBnZXRfYml0cyhnYiwgMik7IC8q IHVzYWNFbGVtZW50VHlwZSAqLwo+IC0gICAgICAgIGlmIChlLT50eXBlICE9IElEX1VTQUNfRVhU ICYmCj4gLSAgICAgICAgICAgIChlbGVtX2lkWzBdICsgZWxlbV9pZFsxXSArIGVsZW1faWRbMl0g KyAxKSA+IG5iX2NoYW5uZWxzKSB7Cj4gKyAgICAgICAgaWYgKGUtPnR5cGUgIT0gSURfVVNBQ19F WFQgJiYgKG1hcF9jb3VudCArIDEpID4gbmJfY2hhbm5lbHMpIHsKPiAgICAgICAgICAgICAgYXZf bG9nKGFjLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiVG9vIG1hbnkgY2hhbm5lbHMgZm9yIHRoZQo+ IGNoYW5uZWwgIgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJjb25maWd1cmF0aW9uXG4iKTsKPiAgICAgICAgICAgICAgdXNhYy0+bmJfZWxlbXMgPSAwOwo+ IEBAIC00MjUsMzAgKzQzNiwzMSBAQCBpbnQgZmZfYWFjX3VzYWNfY29uZmlnX2RlY29kZShBQUNE ZWNDb250ZXh0ICphYywKPiBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gICAgICAgICAgICAgIGRl Y29kZV91c2FjX2VsZW1lbnRfY29yZShlLCBnYiwgc2JyX3JhdGlvKTsKPiAgICAgICAgICAgICAg aWYgKGUtPnNici5yYXRpbyA+IDApCj4gICAgICAgICAgICAgICAgICBkZWNvZGVfdXNhY19zYnJf ZGF0YShlLCBnYik7Cj4gLSAgICAgICAgICAgIGxheW91dF9tYXBbaV1bMF0gPSBUWVBFX1NDRTsK PiAtICAgICAgICAgICAgbGF5b3V0X21hcFtpXVsxXSA9IGk7Cj4gLSAgICAgICAgICAgIGxheW91 dF9tYXBbaV1bMl0gPSBBQUNfQ0hBTk5FTF9GUk9OVDsKPiAtICAgICAgICAgICAgZWxlbV9pZFsw XSsrOwo+ICsgICAgICAgICAgICBsYXlvdXRfbWFwW21hcF9jb3VudF1bMF0gPSBUWVBFX1NDRTsK PiArICAgICAgICAgICAgbGF5b3V0X21hcFttYXBfY291bnRdWzFdID0gZWxlbV9pZFswXSsrOwo+ ICsgICAgICAgICAgICBpZiAoIW1hcF9wb3Nfc2V0KQo+ICsgICAgICAgICAgICAgICAgbGF5b3V0 X21hcFttYXBfY291bnRdWzJdID0gQUFDX0NIQU5ORUxfRlJPTlQ7Cj4KPiAgICAgICAgICAgICAg YnJlYWs7Cj4gICAgICAgICAgY2FzZSBJRF9VU0FDX0NQRTogLyogVXNhY0NoYW5uZWxQYWlyRWxl bWVudENvbmYgKi8KPiAgICAgICAgICAgICAgLyogVXNhY0NvcmVDb25maWcgKi8KPiAgICAgICAg ICAgICAgZGVjb2RlX3VzYWNfZWxlbWVudF9jb3JlKGUsIGdiLCBzYnJfcmF0aW8pOwo+ICAgICAg ICAgICAgICBkZWNvZGVfdXNhY19lbGVtZW50X3BhaXIoZSwgZ2IpOwo+IC0gICAgICAgICAgICBs YXlvdXRfbWFwW2ldWzBdID0gVFlQRV9DUEU7Cj4gLSAgICAgICAgICAgIGxheW91dF9tYXBbaV1b MV0gPSBpOwo+IC0gICAgICAgICAgICBsYXlvdXRfbWFwW2ldWzJdID0gQUFDX0NIQU5ORUxfRlJP TlQ7Cj4gLSAgICAgICAgICAgIGVsZW1faWRbMV0rKzsKPiArICAgICAgICAgICAgbGF5b3V0X21h cFttYXBfY291bnRdWzBdID0gVFlQRV9DUEU7Cj4gKyAgICAgICAgICAgIGxheW91dF9tYXBbbWFw X2NvdW50XVsxXSA9IGVsZW1faWRbMV0rKzsKPiArICAgICAgICAgICAgaWYgKCFtYXBfcG9zX3Nl dCkKPiArICAgICAgICAgICAgICAgIGxheW91dF9tYXBbbWFwX2NvdW50XVsyXSA9IEFBQ19DSEFO TkVMX0ZST05UOwo+Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSURfVVNB Q19MRkU6IC8qIExGRSAqLwo+ICAgICAgICAgICAgICAvKiBMRkUgaGFzIG5vIG5lZWQgZm9yIGFu eSBjb25maWd1cmF0aW9uICovCj4gICAgICAgICAgICAgIGUtPnR3X21kY3QgPSAwOwo+ICAgICAg ICAgICAgICBlLT5ub2lzZV9maWxsID0gMDsKPiAtICAgICAgICAgICAgbGF5b3V0X21hcFtpXVsw XSA9IFRZUEVfTEZFOwo+IC0gICAgICAgICAgICBsYXlvdXRfbWFwW2ldWzFdID0gaTsKPiAtICAg ICAgICAgICAgbGF5b3V0X21hcFtpXVsyXSA9IEFBQ19DSEFOTkVMX0xGRTsKPiAtICAgICAgICAg ICAgZWxlbV9pZFsyXSsrOwo+ICsgICAgICAgICAgICBsYXlvdXRfbWFwW21hcF9jb3VudF1bMF0g PSBUWVBFX0xGRTsKPiArICAgICAgICAgICAgbGF5b3V0X21hcFttYXBfY291bnRdWzFdID0gZWxl bV9pZFsyXSsrOwo+ICsgICAgICAgICAgICBpZiAoIW1hcF9wb3Nfc2V0KQo+ICsgICAgICAgICAg ICAgICAgbGF5b3V0X21hcFttYXBfY291bnRdWzJdID0gQUFDX0NIQU5ORUxfTEZFOwo+ICsKPiAg ICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBJRF9VU0FDX0VYVDogLyogRVhUICov Cj4gICAgICAgICAgICAgIHJldCA9IGRlY29kZV91c2FjX2V4dGVuc2lvbihhYywgZSwgZ2IpOwo+ IEBAIC00NTgsNyArNDcwLDggQEAgaW50IGZmX2FhY191c2FjX2NvbmZpZ19kZWNvZGUoQUFDRGVj Q29udGV4dCAqYWMsCj4gQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+ICAgICAgICAgIH07Cj4gICAg ICB9Cj4KPiAtICAgIHJldCA9IGZmX2FhY19vdXRwdXRfY29uZmlndXJlKGFjLCBsYXlvdXRfbWFw LCBlbGVtX2lkWzBdICsgZWxlbV9pZFsxXQo+ICsgZWxlbV9pZFsyXSwgT0NfR0xPQkFMX0hEUiwg MCk7Cj4gKyAgICByZXQgPSBmZl9hYWNfb3V0cHV0X2NvbmZpZ3VyZShhYywgbGF5b3V0X21hcCwg ZWxlbV9pZFswXSArIGVsZW1faWRbMV0KPiArIGVsZW1faWRbMl0sCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPQ19HTE9CQUxfSERSLCAwKTsKPiAgICAgIGlmIChyZXQgPCAw KSB7Cj4gICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJVbmFibGUgdG8gcGFy c2UgY2hhbm5lbCBjb25maWchXG4iKTsKPiAgICAgICAgICB1c2FjLT5uYl9lbGVtcyA9IDA7Cj4g QEAgLTE1MzEsOSArMTU0NCwxMSBAQCBzdGF0aWMgaW50IHBhcnNlX2V4dF9lbGUoQUFDRGVjQ29u dGV4dCAqYWMsCj4gQUFDVXNhY0VsZW1Db25maWcgKmUsCj4gIGludCBmZl9hYWNfdXNhY19kZWNv ZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBQUNEZWNDb250ZXh0ICphYywKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRCaXRDb250ZXh0ICpnYiwgaW50ICpnb3RfZnJh bWVfcHRyKQo+ICB7Cj4gLSAgICBpbnQgcmV0LCBuYl9jaF9lbCwgaXNfZG1vbm8gPSAwOwo+ICsg ICAgaW50IHJldCwgaXNfZG1vbm8gPSAwOwo+ICAgICAgaW50IGluZGVwX2ZsYWcsIHNhbXBsZXMg PSAwOwo+IC0gICAgaW50IGF1ZGlvX2ZvdW5kID0gMCwgc2NlX2NvdW50ID0gMDsKPiArICAgIGlu dCBhdWRpb19mb3VuZCA9IDA7Cj4gKyAgICBpbnQgZWxlbV9pZFszIC8qIFNDRSwgQ1BFLCBMRkUg Ki9dID0geyAwLCAwLCAwIH07Cj4gKwo+ICAgICAgQVZGcmFtZSAqZnJhbWUgPSBhYy0+ZnJhbWU7 Cj4KPiAgICAgIGZmX2FhY19vdXRwdXRfY29uZmlndXJlKGFjLCBhYy0+b2NbMV0ubGF5b3V0X21h cCwKPiBhYy0+b2NbMV0ubGF5b3V0X21hcF90YWdzLAo+IEBAIC0xNTQzLDQyICsxNTU4LDQ2IEBA IGludCBmZl9hYWNfdXNhY19kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQKPiAqYXZjdHgsIEFB Q0RlY0NvbnRleHQgKmFjLAo+Cj4gICAgICBpbmRlcF9mbGFnID0gZ2V0X2JpdHMxKGdiKTsKPgo+ IC0gICAgbmJfY2hfZWwgPSAwOwo+ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhYy0+b2NbMV0u dXNhYy5uYl9lbGVtczsgaSsrKSB7Cj4gKyAgICAgICAgaW50IGxheW91dF9pZDsKPiArICAgICAg ICBpbnQgbGF5b3V0X3R5cGU7Cj4gICAgICAgICAgQUFDVXNhY0VsZW1Db25maWcgKmUgPSAmYWMt Pm9jWzFdLnVzYWMuZWxlbXNbaV07Cj4gICAgICAgICAgQ2hhbm5lbEVsZW1lbnQgKmNoZTsKPgo+ ICsgICAgICAgIGlmIChlLT50eXBlID09IElEX1VTQUNfU0NFKSB7Cj4gKyAgICAgICAgICAgIGxh eW91dF9pZCA9IGVsZW1faWRbMF0rKzsKPiArICAgICAgICAgICAgbGF5b3V0X3R5cGUgPSBUWVBF X1NDRTsKPiArICAgICAgICAgICAgY2hlID0gZmZfYWFjX2dldF9jaGUoYWMsIFRZUEVfU0NFLCBs YXlvdXRfaWQpOwo+ICsgICAgICAgIH0gZWxzZSBpZiAoZS0+dHlwZSA9PSBJRF9VU0FDX0NQRSkg ewo+ICsgICAgICAgICAgICBsYXlvdXRfaWQgPSBlbGVtX2lkWzFdKys7Cj4gKyAgICAgICAgICAg IGxheW91dF90eXBlID0gVFlQRV9DUEU7Cj4gKyAgICAgICAgICAgIGNoZSA9IGZmX2FhY19nZXRf Y2hlKGFjLCBUWVBFX0NQRSwgbGF5b3V0X2lkKTsKPiArICAgICAgICB9IGVsc2UgaWYgKGUtPnR5 cGUgPT0gSURfVVNBQ19MRkUpIHsKPiArICAgICAgICAgICAgbGF5b3V0X2lkID0gZWxlbV9pZFsy XSsrOwo+ICsgICAgICAgICAgICBsYXlvdXRfdHlwZSA9IFRZUEVfTEZFOwo+ICsgICAgICAgICAg ICBjaGUgPSBmZl9hYWNfZ2V0X2NoZShhYywgVFlQRV9MRkUsIGxheW91dF9pZCk7Cj4gKyAgICAg ICB9Cj4gKwo+ICsgICAgICAgaWYgKGUtPnR5cGUgIT0gSURfVVNBQ19FWFQgJiYgIWNoZSkgewo+ ICsgICAgICAgICAgICBhdl9sb2coYWMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsCj4gKyAgICAgICAg ICAgICAgICAgICAiY2hhbm5lbCBlbGVtZW50ICVkLiVkIGlzIG5vdCBhbGxvY2F0ZWRcbiIsCj4g KyAgICAgICAgICAgICAgICAgICBsYXlvdXRfdHlwZSwgbGF5b3V0X2lkKTsKPiArICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICB9Cj4gKwo+ICAgICAgICAg IHN3aXRjaCAoZS0+dHlwZSkgewo+ICAgICAgICAgIGNhc2UgSURfVVNBQ19MRkU6Cj4gICAgICAg ICAgICAgIC8qIEZhbGx0aHJvdWdoICovCj4gICAgICAgICAgY2FzZSBJRF9VU0FDX1NDRToKPiAt ICAgICAgICAgICAgY2hlID0gZmZfYWFjX2dldF9jaGUoYWMsIFRZUEVfU0NFLCBuYl9jaF9lbCsr KTsKPiAtICAgICAgICAgICAgaWYgKCFjaGUpIHsKPiAtICAgICAgICAgICAgICAgIGF2X2xvZyhh Yy0+YXZjdHgsIEFWX0xPR19FUlJPUiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAiY2hhbm5l bCBlbGVtZW50ICVkLiVkIGlzIG5vdCBhbGxvY2F0ZWRcbiIsCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgVFlQRV9TQ0UsIG5iX2NoX2VsIC0gMSk7Cj4gLSAgICAgICAgICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsKPiAtICAgICAgICAgICAgfQo+IC0KPiAgICAgICAgICAgICAg cmV0ID0gZGVjb2RlX3VzYWNfY29yZV9jb2RlcihhYywgJmFjLT5vY1sxXS51c2FjLCBlLCBjaGUs IGdiLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVwX2Zs YWcsIDEpOwo+ICAgICAgICAgICAgICBpZiAocmV0IDwgMCkKPiAgICAgICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4KPiAtICAgICAgICAgICAgc2NlX2NvdW50Kys7Cj4gICAgICAgICAgICAgIGF1 ZGlvX2ZvdW5kID0gMTsKPiAgICAgICAgICAgICAgY2hlLT5wcmVzZW50ID0gMTsKPiAtICAgICAg ICAgICAgc2FtcGxlcyA9IGFjLT5vY1sxXS5tNGFjLmZyYW1lX2xlbmd0aF9zaG9ydCA/IDc2OCA6 IDEwMjQ7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSURfVVNBQ19DUEU6 Cj4gLSAgICAgICAgICAgIGNoZSA9IGZmX2FhY19nZXRfY2hlKGFjLCBUWVBFX0NQRSwgbmJfY2hf ZWwrKyk7Cj4gLSAgICAgICAgICAgIGlmICghY2hlKSB7Cj4gLSAgICAgICAgICAgICAgICBhdl9s b2coYWMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgImNo YW5uZWwgZWxlbWVudCAlZC4lZCBpcyBub3QgYWxsb2NhdGVkXG4iLAo+IC0gICAgICAgICAgICAg ICAgICAgICAgIFRZUEVfQ1BFLCBuYl9jaF9lbCAtIDEpOwo+IC0gICAgICAgICAgICAgICAgcmV0 dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gLSAgICAgICAgICAgIH0KPiAtCj4gICAgICAgICAg ICAgIHJldCA9IGRlY29kZV91c2FjX2NvcmVfY29kZXIoYWMsICZhYy0+b2NbMV0udXNhYywgZSwg Y2hlLCBnYiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRl cF9mbGFnLCAyKTsKPiAgICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gQEAgLTE1ODYsNyArMTYw NSw2IEBAIGludCBmZl9hYWNfdXNhY19kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 LAo+IEFBQ0RlY0NvbnRleHQgKmFjLAo+Cj4gICAgICAgICAgICAgIGF1ZGlvX2ZvdW5kID0gMTsK PiAgICAgICAgICAgICAgY2hlLT5wcmVzZW50ID0gMTsKPiAtICAgICAgICAgICAgc2FtcGxlcyA9 IGFjLT5vY1sxXS5tNGFjLmZyYW1lX2xlbmd0aF9zaG9ydCA/IDc2OCA6IDEwMjQ7Cj4gICAgICAg ICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSURfVVNBQ19FWFQ6Cj4gICAgICAgICAgICAg IHJldCA9IHBhcnNlX2V4dF9lbGUoYWMsIGUsIGdiKTsKPiBAQCAtMTU5Niw2ICsxNjE0LDkgQEAg aW50IGZmX2FhY191c2FjX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gQUFD RGVjQ29udGV4dCAqYWMsCj4gICAgICAgICAgfQo+ICAgICAgfQo+Cj4gKyAgICBpZiAoYXVkaW9f Zm91bmQpCj4gKyAgICAgICAgc2FtcGxlcyA9IGFjLT5vY1sxXS5tNGFjLmZyYW1lX2xlbmd0aF9z aG9ydCA/IDc2OCA6IDEwMjQ7Cj4gKwo+ICAgICAgaWYgKGFjLT5vY1sxXS5zdGF0dXMgJiYgYXVk aW9fZm91bmQpIHsKPiAgICAgICAgICBhdmN0eC0+c2FtcGxlX3JhdGUgPSBhYy0+b2NbMV0ubTRh Yy5zYW1wbGVfcmF0ZTsKPiAgICAgICAgICBhdmN0eC0+ZnJhbWVfc2l6ZSA9IHNhbXBsZXM7Cj4g QEAgLTE2MTksNyArMTY0MCw3IEBAIGludCBmZl9hYWNfdXNhY19kZWNvZGVfZnJhbWUoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LAo+IEFBQ0RlY0NvbnRleHQgKmFjLAo+ICAgICAgfQo+Cj4gICAgICAv KiBmb3IgZHVhbC1tb25vIGF1ZGlvIChTQ0UgKyBTQ0UpICovCj4gLSAgICBpc19kbW9ubyA9IGFj LT5kbW9ub19tb2RlICYmIHNjZV9jb3VudCA9PSAyICYmCj4gKyAgICBpc19kbW9ubyA9IGFjLT5k bW9ub19tb2RlICYmIGVsZW1faWRbMF0gPT0gMiAmJgo+ICAgICAgICAgICAgICAgICAhYXZfY2hh bm5lbF9sYXlvdXRfY29tcGFyZSgmYWMtPm9jWzFdLmNoX2xheW91dCwKPgo+ICAmKEFWQ2hhbm5l bExheW91dClBVl9DSEFOTkVMX0xBWU9VVF9TVEVSRU8pOwo+ICAgICAgaWYgKGlzX2Rtb25vKSB7 Cj4gLS0KPiAyLjQzLjAuMzgxLmdiNDM1YTk2Y2U4Cj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZt cGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5m by9mZm1wZWctZGV2ZWwKPgo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBl bWFpbAo+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1 YnNjcmliZSIuCj4KCgpEbyB5b3UgYWxzbyBnZXQgKHVuYmVhcmFibGUpIGhhcmQtbm9pc2Ugd2hl biBzZWVraW5nIGZvcndhcmQgaW4gZmlsZSAoYm90aApmZnBsYXkvbXB2KSAgPwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGlu ZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs IG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIuCg==