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 8D98847F26 for ; Mon, 5 Aug 2024 17:28:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BE32B68D977; Mon, 5 Aug 2024 20:28:22 +0300 (EEST) Received: from mail-ua1-f45.google.com (mail-ua1-f45.google.com [209.85.222.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3544568D668 for ; Mon, 5 Aug 2024 20:28:16 +0300 (EEST) Received: by mail-ua1-f45.google.com with SMTP id a1e0cc1a2514c-81f91171316so2596255241.0 for ; Mon, 05 Aug 2024 10:28:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandflow-com.20230601.gappssmtp.com; s=20230601; t=1722878894; x=1723483694; 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=2ZdJex2tJCFhTJGIfeU9xxrLT1PfHZUxtl94jzPTN4Q=; b=n9bvMTBKO993fpnwfeEnJEVFqCDBZlL5Q4iIFBAreNyFXT7TV5mCNu4dRu1XT/Ck00 9Mil5b3UMYC635wCwTNqD+ZA8Dh4U/I1vs3Xn8pTlpXBLRy1jxfy4MAqdZwqG95I8V95 QaBaUaQ6xRN5EAaRpylZsMXuZAQxMF27JQcGID9ndwDWV+dpWAU/friL5Wy5T0MTmO8E DOXPg0EDBYqAbgG9jJ6ZkKNBRrbrUW+sNs6VEWcFb+YMJc7V2RY2kBUzJkT7refYEo84 00sh/IB+B2EQD+SXFsetYvt3FYAr3nz8mxHCnkISOHgW06RtBFoSpY12kW39VxwB8sxX iNjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722878894; x=1723483694; 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=2ZdJex2tJCFhTJGIfeU9xxrLT1PfHZUxtl94jzPTN4Q=; b=vj7kvlrGfsCMOlkb5wFl454mQ3no5hf8dUqBWqAq/RmcgwcD56U71JCGVq4Sd+GEnO QlUc+FFCDN1bQtYADX28Jxoe3MH0KucPH4d8xnmg8VWDJxlinQN57Q6ZoJ8WX1XO5076 1i0HE5brVaslhySJchlNdGNws8N6AgKLhpuPIk6Yc9QTvK1nhrT3dTJLCPR/7S4ZVT2F p0EryRuzhju6kcdNQZJTKWEnxHwEjGN1Aq5HHGC+kaeOFLVt7OMtknS1+83bX7QX4I8w hZrk63mOL5uWcamAhtyB/JZFDWlqk9w9S8tbRk65sq/qYj+1NZL1fPIS3QujwT9rA+ti aX0w== X-Gm-Message-State: AOJu0YyzsShYBa/FUZV7JZbIlFxYkSK81SpCDvkZCF2xVJkOjt06bJHL WipmE1d+/uue5RhHupgAXNxNrN9dh3+ZM7U+RVTBdXlPbPsSMblwVvt3fCfcprToXaFVa2q8cOA L X-Google-Smtp-Source: AGHT+IEk9eNkJiIU6DRlzAXlXgP98CtvMwqLtlkLKXPyB2DDg+w19IYfsewij8k8Hjn2sIB5TAyGNw== X-Received: by 2002:a05:6102:32c4:b0:48c:3bd8:5bf2 with SMTP id ada2fe7eead31-49457b7a1d2mr8237061137.15.1722878893818; Mon, 05 Aug 2024 10:28:13 -0700 (PDT) Received: from mail-ua1-f52.google.com (mail-ua1-f52.google.com. [209.85.222.52]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4945daf4c50sm1302009137.12.2024.08.05.10.28.13 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 05 Aug 2024 10:28:13 -0700 (PDT) Received: by mail-ua1-f52.google.com with SMTP id a1e0cc1a2514c-8317511fd45so3114707241.1 for ; Mon, 05 Aug 2024 10:28:13 -0700 (PDT) X-Received: by 2002:a05:6102:cd2:b0:48c:37c1:34a8 with SMTP id ada2fe7eead31-49457ab4eccmr9601860137.7.1722878892809; Mon, 05 Aug 2024 10:28:12 -0700 (PDT) MIME-Version: 1.0 References: <20240804052706.292107-1-owatanab@es.takushoku-u.ac.jp> In-Reply-To: <20240804052706.292107-1-owatanab@es.takushoku-u.ac.jp> From: Pierre-Anthony Lemieux Date: Mon, 5 Aug 2024 10:28:03 -0700 X-Gmail-Original-Message-ID: Message-ID: To: Osamu Watanabe Subject: Re: [FFmpeg-devel] [PATCH v7 1/3] avcodec/jpeg2000dec: Add support for CAP and CPF markers 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: ffmpeg-devel@ffmpeg.org 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: SGkgT3NhbXUsCgpCZWxvdyBhcmUgc3VnZ2VzdGVkIGltcHJvdmVtZW50cyB0byBlcnJvciBtZXNz YWdlcy4KClRoZXJlIGFyZSBhbHNvIGEgY291cGxlIG9mIGVycmFudCB0cmFpbGluZyB3aGl0ZSBz cGFjZXMgaW4ganBlZzIwMDBodGRlYy5jLgoKQ2FuIHlvdSBmaXggdGhlbT8KCkJlc3QsCgotLSBQ aWVycmUKCgpPbiBTYXQsIEF1ZyAzLCAyMDI0IGF0IDEwOjI34oCvUE0gT3NhbXUgV2F0YW5hYmUK PG93YXRhbmFiQGVzLnRha3VzaG9rdS11LmFjLmpwPiB3cm90ZToKPgo+IFRoaXMgY29tbWl0IGFk ZHMgc3VwcG9ydCBmb3IgQ0FQIGFuZCBDUEYgbWFya2Vycy4gRGVjb2Rpbmcgd2lsbCBleGl0IHdo ZW4gZW5jb3VudGVyaW5nIElsZWdhbCBpbnB1dCBjb2Rlc3RyZWFtcy4KPgo+IFRoZSB2YXJpYWJs ZSBgSnBlZzIwMDBEZWNvZGVyQ29udGV4dC0+SFRfTUFHQmAgaGFzIGJlZW4gY2hhbmdlZCB0byBg SFRfQmAgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIGluIHRoZSBzcGVjIChJU08vSUVDIDE1 NDQ0LTE1KS4KPgo+IFNpZ25lZC1vZmYtYnk6IE9zYW11IFdhdGFuYWJlIDxvd2F0YW5hYkBlcy50 YWt1c2hva3UtdS5hYy5qcD4KPiAtLS0KPiAgbGliYXZjb2RlYy9qcGVnMjAwMC5oICAgIHwgICA4 ICsrKwo+ICBsaWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMgfCAxMjggKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCj4gIGxpYmF2Y29kZWMvanBlZzIwMDBkZWMuaCB8ICAgNyAr KysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDAuaCBiL2xpYmF2Y29kZWMvanBlZzIw MDAuaAo+IGluZGV4IGQwMDRjMDhmMTAuLjRiZGMzOGRmN2MgMTAwNjQ0Cj4gLS0tIGEvbGliYXZj b2RlYy9qcGVnMjAwMC5oCj4gKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMC5oCj4gQEAgLTM3LDEy ICszNywxNCBAQAo+Cj4gIGVudW0gSnBlZzIwMDBNYXJrZXJzIHsKPiAgICAgIEpQRUcyMDAwX1NP QyA9IDB4ZmY0ZiwgLy8gc3RhcnQgb2YgY29kZXN0cmVhbQo+ICsgICAgSlBFRzIwMDBfQ0FQID0g MHhmZjUwLCAvLyBleHRlbmRlZCBjYXBhYmlsaXRpZXMKPiAgICAgIEpQRUcyMDAwX1NJWiA9IDB4 ZmY1MSwgLy8gaW1hZ2UgYW5kIHRpbGUgc2l6ZQo+ICAgICAgSlBFRzIwMDBfQ09ELCAgICAgICAg ICAvLyBjb2Rpbmcgc3R5bGUgZGVmYXVsdAo+ICAgICAgSlBFRzIwMDBfQ09DLCAgICAgICAgICAv LyBjb2Rpbmcgc3R5bGUgY29tcG9uZW50Cj4gICAgICBKUEVHMjAwMF9UTE0gPSAweGZmNTUsIC8v IHRpbGUtcGFydCBsZW5ndGgsIG1haW4gaGVhZGVyCj4gICAgICBKUEVHMjAwMF9QTE0gPSAweGZm NTcsIC8vIHBhY2tldCBsZW5ndGgsIG1haW4gaGVhZGVyCj4gICAgICBKUEVHMjAwMF9QTFQsICAg ICAgICAgIC8vIHBhY2tldCBsZW5ndGgsIHRpbGUtcGFydCBoZWFkZXIKPiArICAgIEpQRUcyMDAw X0NQRiwgICAgICAgICAgLy8gY29ycmVzcG9uZGluZyBwcm9maWxlCj4gICAgICBKUEVHMjAwMF9R Q0QgPSAweGZmNWMsIC8vIHF1YW50aXphdGlvbiBkZWZhdWx0Cj4gICAgICBKUEVHMjAwMF9RQ0Ms ICAgICAgICAgIC8vIHF1YW50aXphdGlvbiBjb21wb25lbnQKPiAgICAgIEpQRUcyMDAwX1JHTiwg ICAgICAgICAgLy8gcmVnaW9uIG9mIGludGVyZXN0Cj4gQEAgLTU4LDYgKzYwLDEyIEBAIGVudW0g SnBlZzIwMDBNYXJrZXJzIHsKPiAgICAgIEpQRUcyMDAwX0VPQyA9IDB4ZmZkOSwgLy8gZW5kIG9m IGNvZGVzdHJlYW0KPiAgfTsKPgo+ICtlbnVtIEpQRUcyMDAwX0NjYXAxNV9iMTRfMTVfcGFyYW1z IHsKPiArICAgIEhUSjJLX0hUT05MWSA9IDAsICAgICAgLy8gSFRPTkxZLCBiaXQgMTQgYW5kIDE1 IGFyZSAwCj4gKyAgICBIVEoyS19IVERFQ0xBUkVELCAgICAgIC8vIEhUREVDTEFSRUQsIGJpdCAx NCA9IDEgYW5kIGJpdCAxNSA9IDAKPiArICAgIEhUSjJLX01JWEVEID0gMywgICAgICAgLy8gTUlY RUQsIGJpdCAxNCBhbmQgMTUgYXJlIDEKPiArfTsKPiArCj4gICNkZWZpbmUgSlBFRzIwMDBfU09Q X0ZJWEVEX0JZVEVTIDB4RkY5MTAwMDQKPiAgI2RlZmluZSBKUEVHMjAwMF9TT1BfQllURV9MRU5H VEggNgo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYyBiL2xpYmF2Y29k ZWMvanBlZzIwMDBkZWMuYwo+IGluZGV4IDA5MTkzMWIxZmYuLjQ0ZGIxMzFkNzcgMTAwNjQ0Cj4g LS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5jCj4gKysrIGIvbGliYXZjb2RlYy9qcGVnMjAw MGRlYy5jCj4gQEAgLTQwOCw2ICs0MDgsNzMgQEAgc3RhdGljIGludCBnZXRfc2l6KEpwZWcyMDAw RGVjb2RlckNvbnRleHQgKnMpCj4gICAgICBzLT5hdmN0eC0+Yml0c19wZXJfcmF3X3NhbXBsZSA9 IHMtPnByZWNpc2lvbjsKPiAgICAgIHJldHVybiAwOwo+ICB9Cj4gKy8qIGdldCBleHRlbmRlZCBj YXBhYmlsaXRpZXMgKENBUCkgbWFya2VyIHNlZ21lbnQgKi8KPiArc3RhdGljIGludCBnZXRfY2Fw KEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMsIEpwZWcyMDAwQ29kaW5nU3R5bGUgKmMpCj4gK3sK PiArICAgIHVpbnQzMl90IFBjYXA7Cj4gKyAgICB1aW50MTZfdCBDY2FwX2lbMzJdID0geyAwIH07 Cj4gKyAgICB1aW50MTZfdCBDY2FwXzE1Owo+ICsgICAgdWludDhfdCBQOwo+ICsKPiArICAgIGlm IChieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmcy0+ZykgPCA2KSB7Cj4gKyAgICAgICAgYXZf bG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJJbnN1ZmZpY2llbnQgc3BhY2UgZm9yIENBUFxu Iik7Cgphdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIlVuZGVyZmxvdyB3aGlsZSBwYXJz aW5nIHRoZSBDQVAgbWFya2VyXG4iKTsKCj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7Cj4gKyAgICB9Cj4gKwo+ICsgICAgUGNhcCA9IGJ5dGVzdHJlYW0yX2dldF9iZTMydSgm cy0+Zyk7Cj4gKyAgICBzLT5pc0hUID0gKFBjYXAgPj4gKDMxIC0gKDE1IC0gMSkpKSAmIDE7Cj4g KyAgICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspIHsKPiArICAgICAgICBpZiAoKFBjYXAg Pj4gKDMxIC0gaSkpICYgMSkKPiArICAgICAgICAgICAgQ2NhcF9pW2ldID0gYnl0ZXN0cmVhbTJf Z2V0X2JlMTZ1KCZzLT5nKTsKPiArICAgIH0KPiArICAgIENjYXBfMTUgPSBDY2FwX2lbMTRdOwo+ ICsgICAgaWYgKHMtPmlzSFQgPT0gMSkgewo+ICsgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZf TE9HX0lORk8sICJUaGlzIGlzIGFuIEhUSjJLIGNvZGVzdHJlYW0uXG4iKTsKCmF2X2xvZyhzLT5h dmN0eCwgQVZfTE9HX0lORk8sICJUaGlzIGNvZGVzdHJlYW0gY29udGFpbnMgSFQgY29kZWJsb2Nr cy5cbiIpOwoKPiArICAgICAgICAvLyBCaXRzIDE0LTE1Cj4gKyAgICAgICAgc3dpdGNoICgoQ2Nh cF8xNSA+PiAxNCkgJiAweDMpIHsKPiArICAgICAgICAgICAgY2FzZSAweDM6Cj4gKyAgICAgICAg ICAgICAgICBzLT5DY2FwMTVfYjE0XzE1ID0gSFRKMktfTUlYRUQ7Cj4gKyAgICAgICAgICAgICAg ICBicmVhazsKPiArICAgICAgICAgICAgY2FzZSAweDE6Cj4gKyAgICAgICAgICAgICAgICBzLT5D Y2FwMTVfYjE0XzE1ID0gSFRKMktfSFRERUNMQVJFRDsKPiArICAgICAgICAgICAgICAgIGJyZWFr Owo+ICsgICAgICAgICAgICBjYXNlIDB4MDoKPiArICAgICAgICAgICAgICAgIHMtPkNjYXAxNV9i MTRfMTUgPSBIVEoyS19IVE9OTFk7Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg ICAgICAgZGVmYXVsdDoKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9H X0VSUk9SLCAiVW5rbm93biBDQ2FwIHZhbHVlLlxuIik7Cj4gKyAgICAgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUihFSU5WQUwpOwo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAg fQo+ICsgICAgICAgIC8vIEJpdCAxMwo+ICsgICAgICAgIGlmICgoQ2NhcF8xNSA+PiAxMykgJiAx KSB7Cj4gKyAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiTVVMVElI VCBzZXQgaXMgbm90IHN1cHBvcnRlZC5cbiIpOwo+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJP Ul9QQVRDSFdFTENPTUU7Cj4gKyAgICAgICAgfQo+ICsgICAgICAgIC8vIEJpdCAxMgo+ICsgICAg ICAgIHMtPkNjYXAxNV9iMTIgPSAoQ2NhcF8xNSA+PiAxMikgJiAxOwo+ICsgICAgICAgIC8vIEJp dCAxMQo+ICsgICAgICAgIHMtPkNjYXAxNV9iMTEgPSAoQ2NhcF8xNSA+PiAxMSkgJiAxOwo+ICsg ICAgICAgIC8vIEJpdCA1Cj4gKyAgICAgICAgcy0+Q2NhcDE1X2IwNSA9IChDY2FwXzE1ID4+IDUp ICYgMTsKPiArICAgICAgICAvLyBCaXQgMC00Cj4gKyAgICAgICAgUCA9IENjYXBfMTUgJiAweDFG Owo+ICsgICAgICAgIGlmICghUCkKPiArICAgICAgICAgICAgcy0+SFRfQiA9IDg7Cj4gKyAgICAg ICAgZWxzZSBpZiAoUCA8IDIwKQo+ICsgICAgICAgICAgICBzLT5IVF9CID0gUCArIDg7Cj4gKyAg ICAgICAgZWxzZSBpZiAoUCA8IDMxKQo+ICsgICAgICAgICAgICBzLT5IVF9CID0gNCAqIChQIC0g MTkpICsgMjc7Cj4gKyAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICBzLT5IVF9CID0gNzQ7Cj4g Kwo+ICsgICAgICAgIGlmIChzLT5IVF9CID4gMzEpIHsKPiArICAgICAgICAgICAgYXZfbG9nKHMt PmF2Y3R4LCBBVl9MT0dfRVJST1IsICJBdmFpbGFibGUgaW50ZXJuYWwgcHJlY2lzaW9uIGlzIGV4 Y2VlZGVkIChNQUdCPiAzMSkuXG4iKTsKCmF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAi Q29kZXN0cmVhbSBleGNlZWRzIGF2YWlsYWJsZSBpbnRlcm5hbApwcmVjaXNpb24gKEIgPiAzMSku XG4iKTsKCj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09NRTsKPiArICAg ICAgICB9Cj4gKyAgICB9Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+Cj4gIC8qIGdldCBjb21tb24g cGFydCBmb3IgQ09EIGFuZCBDT0Mgc2VnbWVudHMgKi8KPiAgc3RhdGljIGludCBnZXRfY294KEpw ZWcyMDAwRGVjb2RlckNvbnRleHQgKnMsIEpwZWcyMDAwQ29kaW5nU3R5bGUgKmMpCj4gQEAgLTgw Miw2ICs4NjksMTUgQEAgc3RhdGljIGludCByZWFkX2NyZyhKcGVnMjAwMERlY29kZXJDb250ZXh0 ICpzLCBpbnQgbikKPiAgICAgIGJ5dGVzdHJlYW0yX3NraXAoJnMtPmcsIG4gLSAyKTsKPiAgICAg IHJldHVybiAwOwo+ICB9Cj4gKwo+ICtzdGF0aWMgaW50IHJlYWRfY3BmKEpwZWcyMDAwRGVjb2Rl ckNvbnRleHQgKnMsIGludCBuKQo+ICt7Cj4gKyAgICBpZiAoYnl0ZXN0cmVhbTJfZ2V0X2J5dGVz X2xlZnQoJnMtPmcpIDwgKG4gLSAyKSkKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElE REFUQTsKPiArICAgIGJ5dGVzdHJlYW0yX3NraXAoJnMtPmcsIG4gLSAyKTsKPiArICAgIHJldHVy biAwOwo+ICt9Cj4gKwo+ICAvKiBUaWxlLXBhcnQgbGVuZ3Roczogc2VlIElTTyAxNTQ0NC0xOjIw MDIsIHNlY3Rpb24gQS43LjEKPiAgICogVXNlZCB0byBrbm93IHRoZSBudW1iZXIgb2YgdGlsZSBw YXJ0cyBhbmQgbGVuZ3Rocy4KPiAgICogVGhlcmUgbWF5IGJlIG11bHRpcGxlIFRMTXMgaW4gdGhl IGhlYWRlci4KPiBAQCAtOTY1LDYgKzEwNDEsMTQgQEAgc3RhdGljIGludCBpbml0X3RpbGUoSnBl ZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgaW50IHRpbGVubykKPiAgICAgICAgICAgICAgY29tcC0+ cm9pX3NoaWZ0ID0gcy0+cm9pX3NoaWZ0W2NvbXBub107Cj4gICAgICAgICAgaWYgKCFjb2RzdHkt PmluaXQpCj4gICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAg ICAgIGlmIChzLT5pc0hUICYmICghcy0+Q2NhcDE1X2IwNSkgJiYgKCFjb2RzdHktPnRyYW5zZm9y bSkpIHsKPiArICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJUcmFu c2Zvcm1hdGlvbiA9IDAgKGxvc3N5IERXVCkgaXMgZm91bmQgaW4gSFRSRVYgSFQgc2V0XG4iKTsK PiArICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAgfQo+ ICsgICAgICAgIGlmIChzLT5pc0hUICYmIHMtPkNjYXAxNV9iMTRfMTUgIT0gKGNvZHN0eS0+Y2Js a19zdHlsZSA+PiA2KSAmJiBzLT5DY2FwMTVfYjE0XzE1ICE9IEhUSjJLX0hUT05MWSkgewo+ICsg ICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIlNQY29kL1NQY29jIHZh bHVlIGRvZXMgbm90IG1hdGNoIGJpdCAxNC0xNSB2YWx1ZXMgb2YgQ2NhcDE1XG4iKTsKPiArICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAgfQo+ICAgICAg ICAgIGlmIChyZXQgPSBmZl9qcGVnMjAwMF9pbml0X2NvbXBvbmVudChjb21wLCBjb2RzdHksIHFu dHN0eSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+ Y2Jwc1tjb21wbm9dLCBzLT5jZHhbY29tcG5vXSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcy0+Y2R5W2NvbXBub10sIHMtPmF2Y3R4KSkKPiBAQCAtMjE4 NywyMiArMjI3MSw1NyBAQCBzdGF0aWMgaW50IGpwZWcyMDAwX3JlYWRfbWFpbl9oZWFkZXJzKEpw ZWcyMDAwRGVjb2RlckNvbnRleHQgKnMpCj4gICAgICAgICAgICAgIGlmICghcy0+dGlsZSkKPiAg ICAgICAgICAgICAgICAgIHMtPm51bVh0aWxlcyA9IHMtPm51bVl0aWxlcyA9IDA7Cj4gICAgICAg ICAgICAgIGJyZWFrOwo+ICsgICAgICAgIGNhc2UgSlBFRzIwMDBfQ0FQOgo+ICsgICAgICAgICAg ICBpZiAoIXMtPm5jb21wb25lbnRzKSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZj dHgsIEFWX0xPR19FUlJPUiwgIkNBUCBtYXJrZXIgc2VnbWVudCBzaGFsbCBjb21lIGFmdGVyIFNJ WlxuIik7Cj4gKyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiAr ICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICByZXQgPSBnZXRfY2FwKHMsIGNvZHN0eSk7Cj4g KyAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSlBFRzIwMDBfQ09DOgo+ICsgICAg ICAgICAgICBpZiAocy0+aW5fdGlsZV9oZWFkZXJzID09IDEgJiYgcy0+aXNIVCAmJiAoIXMtPkNj YXAxNV9iMTEpKSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19F UlJPUiwgIkNPQyBtYXJrZXIgaXMgZm91bmQgaW4gSE9NT0dFTkVPVVMgSFQgc2V0XG4iKTsKCmF2 X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiQ09DIG1hcmtlciBmb3VuZCBpbiBhIHRpbGUg aGVhZGVyIGJ1dAp0aGUgY29kZXN0cmVhbSBiZWxvbmdzIHRvIHRoZSBIT01PR0VORU9VUyBzZXRc biIpOwoKPiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsg ICAgICAgICAgICB9Cj4gICAgICAgICAgICAgIHJldCA9IGdldF9jb2MocywgY29kc3R5LCBwcm9w ZXJ0aWVzKTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9D T0Q6Cj4gKyAgICAgICAgICAgIGlmIChzLT5pbl90aWxlX2hlYWRlcnMgPT0gMSAmJiBzLT5pc0hU ICYmICghcy0+Q2NhcDE1X2IxMSkpIHsKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0 eCwgQVZfTE9HX0VSUk9SLCAiQ09EIG1hcmtlciBpcyBmb3VuZCBpbiBIT01PR0VORU9VUyBIVCBz ZXRcbiIpOwoKYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJDT0QgbWFya2VyIGZvdW5k IGluIGEgdGlsZSBoZWFkZXIgYnV0CnRoZSBjb2Rlc3RyZWFtIGJlbG9uZ3MgdG8gdGhlIEhPTU9H RU5FT1VTIHNldFxuIik7Cgo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7Cj4gKyAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgcmV0ID0gZ2V0X2NvZChzLCBj b2RzdHksIHByb3BlcnRpZXMpOwo+ICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICBjYXNl IEpQRUcyMDAwX1JHTjoKPiArICAgICAgICAgICAgaWYgKHMtPmluX3RpbGVfaGVhZGVycyA9PSAx ICYmIHMtPmlzSFQgJiYgKCFzLT5DY2FwMTVfYjExKSkgewo+ICsgICAgICAgICAgICAgICAgYXZf bG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJSR0IgbWFya2VyIGlzIGZvdW5kIGluIEhPTU9H RU5FT1VTIEhUIHNldFxuIik7Cgphdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIlJHTiBt YXJrZXIgZm91bmQgaW4gYSB0aWxlIGhlYWRlciBidXQKdGhlIGNvZGVzdHJlYW0gYmVsb25ncyB0 byB0aGUgSE9NT0dFTkVPVVMgc2V0XG4iKTsKCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gQVZF UlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICByZXQgPSBn ZXRfcmduKHMsIGxlbik7Cj4gKyAgICAgICAgICAgIGlmICgoIXMtPkNjYXAxNV9iMTIpICYmIHMt PmlzSFQpIHsKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9S LCAiUkdOIG1hcmtlciBpcyBmb3VuZCBpbiBSR05GUkVFIEhUIHNldFxuIik7Cgphdl9sb2cocy0+ YXZjdHgsIEFWX0xPR19FUlJPUiwgIlJHTiBtYXJrZXIgZm91bmQgYnV0IHRoZSBjb2Rlc3RyZWFt CmJlbG9uZ3MgdG8gdGhlIFJHTkZSRUUgc2V0XG4iKTsKCj4gKyAgICAgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICBi cmVhazsKPiAgICAgICAgICBjYXNlIEpQRUcyMDAwX1FDQzoKPiArICAgICAgICAgICAgaWYgKHMt PmluX3RpbGVfaGVhZGVycyA9PSAxICYmIHMtPmlzSFQgJiYgKCFzLT5DY2FwMTVfYjExKSkgewo+ ICsgICAgICAgICAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJRQ0MgbWFy a2VyIGlzIGZvdW5kIGluIEhPTU9HRU5FT1VTIEhUIHNldFxuIik7Cgphdl9sb2cocy0+YXZjdHgs IEFWX0xPR19FUlJPUiwgIlFDQyBtYXJrZXIgZm91bmQgaW4gYSB0aWxlIGhlYWRlciBidXQKdGhl IGNvZGVzdHJlYW0gYmVsb25ncyB0byB0aGUgSE9NT0dFTkVPVVMgc2V0XG4iKTsKCj4gKyAgICAg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICAgICAgfQo+ ICAgICAgICAgICAgICByZXQgPSBnZXRfcWNjKHMsIGxlbiwgcW50c3R5LCBwcm9wZXJ0aWVzKTsK PiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBKUEVHMjAwMF9RQ0Q6Cj4gKyAg ICAgICAgICAgIGlmIChzLT5pbl90aWxlX2hlYWRlcnMgPT0gMSAmJiBzLT5pc0hUICYmICghcy0+ Q2NhcDE1X2IxMSkpIHsKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9H X0VSUk9SLCAiUUNEIG1hcmtlciBpcyBmb3VuZCBpbiBIT01PR0VORU9VUyBIVCBzZXRcbiIpOwoK YXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJRQ0QgbWFya2VyIGZvdW5kIGluIGEgdGls ZSBoZWFkZXIgYnV0CnRoZSBjb2Rlc3RyZWFtIGJlbG9uZ3MgdG8gdGhlIEhPTU9HRU5FT1VTIHNl dFxuIik7Cgo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4g KyAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgcmV0ID0gZ2V0X3FjZChzLCBsZW4sIHFudHN0 eSwgcHJvcGVydGllcyk7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSlBF RzIwMDBfUE9DOgo+ICsgICAgICAgICAgICBpZiAocy0+aW5fdGlsZV9oZWFkZXJzID09IDEgJiYg cy0+aXNIVCAmJiAoIXMtPkNjYXAxNV9iMTEpKSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2co cy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIlBPQyBtYXJrZXIgaXMgZm91bmQgaW4gSE9NT0dFTkVP VVMgSFQgc2V0XG4iKTsKCmF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiUE9DIG1hcmtl ciBmb3VuZCBpbiBhIHRpbGUgaGVhZGVyIGJ1dAp0aGUgY29kZXN0cmVhbSBiZWxvbmdzIHRvIHRo ZSBIT01PR0VORU9VUyBzZXRcbiIpOwoKPiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9S X0lOVkFMSUREQVRBOwo+ICsgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgIHJldCA9IGdldF9w b2MocywgbGVuLCBwb2MpOwo+ICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICBjYXNlIEpQ RUcyMDAwX1NPVDoKPiBAQCAtMjI1Miw5ICsyMzcxLDE2IEBAIHN0YXRpYyBpbnQganBlZzIwMDBf cmVhZF9tYWluX2hlYWRlcnMoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcykKPiAgICAgICAgICAg ICAgICAgICAgICAgICAiQ2Fubm90IGhhdmUgYm90aCBQUFQgYW5kIFBQTSBtYXJrZXIuXG4iKTsK PiAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICAgICAgICAg ICAgICB9Cj4gLQo+ICsgICAgICAgICAgICBpZiAoKCFzLT5DY2FwMTVfYjExKSAmJiBzLT5pc0hU KSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19FUlJPUiwgIlBQ VCBtYXJrZXIgaXMgZm91bmQgaW4gSE9NT0dFTkVPVVMgSFQgc2V0XG4iKTsKCmF2X2xvZyhzLT5h dmN0eCwgQVZfTE9HX0VSUk9SLCAiUFBUIG1hcmtlciBmb3VuZCBidXQgdGhlIGNvZGVzdHJlYW0K YmVsb25ncyB0byB0aGUgSE9NT0dFTkVPVVMgc2V0XG4iKTsKCj4gKyAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgICAgICAgICAgfQo+ICAgICAgICAgICAg ICByZXQgPSBnZXRfcHB0KHMsIGxlbik7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAg IGNhc2UgSlBFRzIwMDBfQ1BGOgo+ICsgICAgICAgICAgICAvLyBDb3JyZXNwb25kaW5nIHByb2Zp bGUgbWFya2VyCj4gKyAgICAgICAgICAgIHJldCA9IHJlYWRfY3BmKHMsIGxlbik7Cj4gKyAgICAg ICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAgICAgIGF2X2xvZyhz LT5hdmN0eCwgQVZfTE9HX0VSUk9SLAo+ICAgICAgICAgICAgICAgICAgICAgInVuc3VwcG9ydGVk IG1hcmtlciAweCUuNCJQUklYMTYiIGF0IHBvcyAweCVYXG4iLAo+IGRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2pwZWcyMDAwZGVjLmggYi9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmgKPiBpbmRleCBk MGNhNmU3YTc5Li4xNjZjY2U5ZWJhIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvanBlZzIwMDBk ZWMuaAo+ICsrKyBiL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuaAo+IEBAIC0xMTIsNiArMTEyLDEz IEBAIHR5cGVkZWYgc3RydWN0IEpwZWcyMDAwRGVjb2RlckNvbnRleHQgewo+ICAgICAgSnBlZzIw MDBUaWxlICAgICp0aWxlOwo+ICAgICAgSnBlZzIwMDBEU1BDb250ZXh0IGRzcDsKPgo+ICsgICAg dWludDhfdCAgICAgICAgIGlzSFQ7IC8vIEhUSjJLPwo+ICsgICAgdWludDhfdCAgICAgICAgIENj YXAxNV9iMTRfMTU7IC8vIEhUT05MWSg9IDApIG9yIEhUREVDTEFSRUQoPSAxKSBvciBNSVhFRCg9 IDMpID8KPiArICAgIHVpbnQ4X3QgICAgICAgICBDY2FwMTVfYjEyOyAvLyBSR05GUkVFKD0gMCkg b3IgUkdOKD0gMSk/Cj4gKyAgICB1aW50OF90ICAgICAgICAgQ2NhcDE1X2IxMTsgLy8gSE9NT0dF TkVPVVMoPSAwKSBvciBIRVRFUk9HRU5FT1VTKD0gMSkgPwo+ICsgICAgdWludDhfdCAgICAgICAg IENjYXAxNV9iMDU7IC8vIEhUUkVWKD0gMCkgb3IgSFRJUlYoPSAxKSA/Cj4gKyAgICB1aW50OF90 ICAgICAgICAgSFRfQjsgLy8gTUFHQiB2YWx1ZQo+ICsKPiAgICAgIC8qb3B0aW9ucyBwYXJhbWV0 ZXJzKi8KPiAgICAgIGludCAgICAgICAgICAgICByZWR1Y3Rpb25fZmFjdG9yOwo+ICB9IEpwZWcy MDAwRGVjb2RlckNvbnRleHQ7Cj4gLS0KPiAyLjM0LjEKPgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBl Zy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zm bXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZm bXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIu Cg==