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 75C0548254 for ; Thu, 14 Dec 2023 23:21:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7CF8968D18E; Fri, 15 Dec 2023 01:21:07 +0200 (EET) Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 794D368D029 for ; Fri, 15 Dec 2023 01:21:01 +0200 (EET) Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-425c3d91b2eso170411cf.0 for ; Thu, 14 Dec 2023 15:21:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702596060; x=1703200860; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=bIJFmnmTOhzPUTyaB6q6naN0CQzH+kU8pK3haO0WVc4=; b=b61UrvrkpHZy94XeOIEZ/5uf8E6kKCjnbnaLd4PWOJxq/XuAkZd3HZUil3JkeHv8nZ NpD5y3MNLGQQrUUV35D6CAFFvSeqagUATD+rzDqRsE2z0WVqwG+Dy5GkX7zgEvQw0vO7 KHldiNDnqEog5LZblC8NArdzBC9ekIsrPQupEly54G9F0dP9EgG4H9UISXVwH1qeVQ16 AQPKHXorJCppIBkrGuDLMJPX7MGABm+pPFpDKR6gUeXWstusvgq2ikUvdm0IQ544KWwI n/vMCiWswTH5Eryqo9rh3lbemUAYci5ddkdkiyIEtp8xsjMQcJTW7BshvgYf4adwdBRo 7/GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702596060; x=1703200860; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bIJFmnmTOhzPUTyaB6q6naN0CQzH+kU8pK3haO0WVc4=; b=HUub5kjhhsYYJwbXKb6Quj62Z8oVTxfNq5PNPoZC6OB6i+87ECuIdf4x77gbpZh9X/ Qxwq3Ptxg4f3O7SN5Z97p6CJpcKnbNRML66J4MPnH6P7arz1Fmz40zT1a5liTdHfPXsi 4cis1ZjqrYDlx/fjzSMUFdz3k5LIjY7NJdwfiQTnYuASpy0ifbKqLOS/eoV88w9fZyD4 HykPWDlYWl2k0/HiUZnbI8njPRQL7ZNBzooLRLGiGGFcBk4ogXPnM5rWLq660LUlwyFF 23IKM3850aDdZt/F6R5osKu1ZsMlntz2Eq9sv7NjkqCxtgweg4veS7g7uHddIeHDRRHx useA== X-Gm-Message-State: AOJu0YyjJxEAAwLmxuq4FjW/U4lGpKGcwGYbNOeaOwtfehXOjLBbQJ6z HsSDGrIDJ139zHUW7X3xjwQdZ0aOzb0= X-Google-Smtp-Source: AGHT+IE2X3lts5Nc0Nrm89iq5xoUHQjWsqr3tZYXFIp7ylUEmHFJqXOm7/fa5MQ6uWuhH5yIGsu3zA== X-Received: by 2002:a05:622a:1113:b0:425:4d8c:93e2 with SMTP id e19-20020a05622a111300b004254d8c93e2mr23417199qty.0.1702596059681; Thu, 14 Dec 2023 15:20:59 -0800 (PST) Received: from [192.168.1.35] (c-68-56-149-176.hsd1.mi.comcast.net. [68.56.149.176]) by smtp.gmail.com with ESMTPSA id t18-20020ac865d2000000b00423829b6d91sm6170839qto.8.2023.12.14.15.20.59 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Dec 2023 15:20:59 -0800 (PST) Message-ID: <1b72fe1f-f408-4378-a1bd-463d26b828a3@gmail.com> Date: Thu, 14 Dec 2023 18:20:58 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US-large From: Leo Izen In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH v2 1/1] avcodec/libjxlenc: Add libjxl_animated encoder 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMTIvMTMvMjMgMTU6NTMsIFpzb2x0IFZhZMOhc3ogdmlhIGZmbXBlZy1kZXZlbCB3cm90ZToK PiAtLS0KPiAgIGNvbmZpZ3VyZSAgICAgICAgICAgICAgfCAgIDEgKwo+ICAgbGliYXZjb2RlYy9h bGxjb2RlY3MuYyB8ICAgMSArCj4gICBsaWJhdmNvZGVjL2xpYmp4bGVuYy5jIHwgMjE0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gICAzIGZpbGVzIGNoYW5nZWQs IDE3NyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvY29u ZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggN2QyZWU2NjAwMC4uYTMzNGE5YjFlMCAxMDA3NTUK PiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1cmUKPiBAQCAtMzQxOCw2ICszNDE4LDcg QEAgbGliaWxiY19kZWNvZGVyX2RlcHM9ImxpYmlsYmMiCj4gICBsaWJpbGJjX2VuY29kZXJfZGVw cz0ibGliaWxiYyIKPiAgIGxpYmp4bF9kZWNvZGVyX2RlcHM9ImxpYmp4bCBsaWJqeGxfdGhyZWFk cyIKPiAgIGxpYmp4bF9lbmNvZGVyX2RlcHM9ImxpYmp4bCBsaWJqeGxfdGhyZWFkcyIKPiArbGli anhsX2FuaW1hdGVkX2VuY29kZXJfZGVwcz0ibGlianhsIGxpYmp4bF90aHJlYWRzIgo+ICAgbGli a3ZhemFhcl9lbmNvZGVyX2RlcHM9ImxpYmt2YXphYXIiCj4gICBsaWJtb2RwbHVnX2RlbXV4ZXJf ZGVwcz0ibGlibW9kcGx1ZyIKPiAgIGxpYm1wM2xhbWVfZW5jb2Rlcl9kZXBzPSJsaWJtcDNsYW1l Igo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jIGIvbGliYXZjb2RlYy9hbGxj b2RlY3MuYwo+IGluZGV4IGIwZjAwNGUxNWMuLmU2NzMzYjBkNGYgMTAwNjQ0Cj4gLS0tIGEvbGli YXZjb2RlYy9hbGxjb2RlY3MuYwo+ICsrKyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPiBAQCAt Nzg0LDYgKzc4NCw3IEBAIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYmlsYmNfZW5jb2RlcjsK PiAgIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYmlsYmNfZGVjb2RlcjsKPiAgIGV4dGVybiBj b25zdCBGRkNvZGVjIGZmX2xpYmp4bF9kZWNvZGVyOwo+ICAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMg ZmZfbGlianhsX2VuY29kZXI7Cj4gK2V4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYmp4bF9hbmlt YXRlZF9lbmNvZGVyOwoKVGhpcyBzaG91bGQgYmUgY2FsbGVkIGxpYmp4bF9hbmltIGZvciBjb25z aXN0ZW5jeS4gQ29tcGFyZSB3aXRoIApsaWJ3ZWJwX2FuaW0gYW5kIGpwZWd4bF9hbmltIGRlbXV4 ZXIuCgoKPiAgIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYm1wM2xhbWVfZW5jb2RlcjsKPiAg IGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYm9wZW5jb3JlX2Ftcm5iX2VuY29kZXI7Cj4gICBl eHRlcm4gY29uc3QgRkZDb2RlYyBmZl9saWJvcGVuY29yZV9hbXJuYl9kZWNvZGVyOwo+IGRpZmYg LS1naXQgYS9saWJhdmNvZGVjL2xpYmp4bGVuYy5jIGIvbGliYXZjb2RlYy9saWJqeGxlbmMuYwo+ IGluZGV4IGQ3MDdmM2E2MWIuLmJmNDQzMDdhMzQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9s aWJqeGxlbmMuYwo+ICsrKyBiL2xpYmF2Y29kZWMvbGlianhsZW5jLmMKPiBAQCAtMzksNiArMzks NyBAQAo+ICAgI2luY2x1ZGUgImF2Y29kZWMuaCIKPiAgICNpbmNsdWRlICJlbmNvZGUuaCIKPiAg ICNpbmNsdWRlICJjb2RlY19pbnRlcm5hbC5oIgo+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiAg IAo+ICAgI2luY2x1ZGUgPGp4bC9lbmNvZGUuaD4KPiAgICNpbmNsdWRlIDxqeGwvdGhyZWFkX3Bh cmFsbGVsX3J1bm5lci5oPgo+IEBAIC00OSwxMSArNTAsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgTGli SnhsRW5jb2RlQ29udGV4dCB7Cj4gICAgICAgdm9pZCAqcnVubmVyOwo+ICAgICAgIEp4bEVuY29k ZXIgKmVuY29kZXI7Cj4gICAgICAgSnhsRW5jb2RlckZyYW1lU2V0dGluZ3MgKm9wdGlvbnM7Cj4g KyAgICBKeGxQaXhlbEZvcm1hdCBqeGxfZm10Owo+ICAgICAgIGludCBlZmZvcnQ7Cj4gICAgICAg ZmxvYXQgZGlzdGFuY2U7Cj4gICAgICAgaW50IG1vZHVsYXI7Cj4gICAgICAgdWludDhfdCAqYnVm ZmVyOwo+ICAgICAgIHNpemVfdCBidWZmZXJfc2l6ZTsKPiArICAgIC8qIE9ubHkgdXNlZCBieSBs aWJqeGxfYW5pbWF0ZWQgKi8KPiArICAgIGludCBhbmltYXRlZDsKCkl0J3Mgbm90IGFjdHVhbGx5 IHRydWUgdGhhdCBjdHgtPmFuaW1hdGVkIGlzIG9ubHkgdXNlZCBieSBsaWJqeGxfYW5pbSAKYmVj YXVzZSBpdCdzIGNoZWNrZWQgYnkgdGhlIHN0YW5kYXJkIGVuY29kZXIgYXMgd2VsbC4KCj4gKyAg ICBBVkZyYW1lICpsYXN0OwoKSSBkb24ndCBzZWUgdGhlIHB1cnBvc2Ugb2Yga2VlcGluZyB0aGlz IGhlcmUuCgo+ICAgfSBMaWJKeGxFbmNvZGVDb250ZXh0Owo+ICAgCj4gICAvKioKPiBAQCAtMTgz LDYgKzE4OCw4IEBAIHN0YXRpYyBhdl9jb2xkIGludCBsaWJqeGxfZW5jb2RlX2luaXQoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4KQo+ICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICAg ICAgIH0KPiAgIAo+ICsgICAgY3R4LT5hbmltYXRlZCA9IDA7Cj4gKwo+ICAgICAgIHJldHVybiAw Owo+ICAgfQo+ICAgCj4gQEAgLTIzNywyOCArMjQ0LDE5IEBAIHN0YXRpYyBpbnQgbGlianhsX3Bv cHVsYXRlX3ByaW1hcmllcyh2b2lkICphdmN0eCwgSnhsQ29sb3JFbmNvZGluZyAqanhsX2NvbG9y LCBlCj4gICAgICAgcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAtLyoqCj4gLSAqIEVuY29kZSBhbiBl bnRpcmUgZnJhbWUuIEN1cnJlbnRseSBhbmltYXRpb24sIGlzIG5vdCBzdXBwb3J0ZWQgYnkKPiAt ICogdGhpcyBlbmNvZGVyLCBzbyB0aGlzIHdpbGwgYWx3YXlzIHJlaW5pdGlhbGl6ZSBhIG5ldyBz dGlsbCBpbWFnZQo+IC0gKiBhbmQgZW5jb2RlIGEgb25lLWZyYW1lIGltYWdlIChmb3IgaW1hZ2Uy IGFuZCBpbWFnZTJwaXBlKS4KPiAtICovCj4gLXN0YXRpYyBpbnQgbGlianhsX2VuY29kZV9mcmFt ZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWUGFja2V0ICpwa3QsIGNvbnN0IEFWRnJhbWUgKmZy YW1lLCBpbnQgKmdvdF9wYWNrZXQpCj4gK3N0YXRpYyBpbnQgbGlianhsX2VuY29kZV9pbml0X2lt YWdlKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgY29uc3QgQVZGcmFtZSAqZnJhbWUpCj4gICB7Cj4g ICAgICAgTGliSnhsRW5jb2RlQ29udGV4dCAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKPiAgICAg ICBBVkZyYW1lU2lkZURhdGEgKnNkOwo+ICAgICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAq cGl4X2Rlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZyYW1lLT5mb3JtYXQpOwo+ICAgICAgIEp4 bEJhc2ljSW5mbyBpbmZvOwo+ICAgICAgIEp4bENvbG9yRW5jb2RpbmcganhsX2NvbG9yOwo+IC0g ICAgSnhsUGl4ZWxGb3JtYXQganhsX2ZtdDsKPiArICAgIEp4bFBpeGVsRm9ybWF0ICpqeGxfZm10 ID0gJmN0eC0+anhsX2ZtdDsKPiAgICAgICBpbnQgYml0c19wZXJfc2FtcGxlOwo+ICAgI2lmIEpQ RUdYTF9OVU1FUklDX1ZFUlNJT04gPj0gSlBFR1hMX0NPTVBVVEVfTlVNRVJJQ19WRVJTSU9OKDAs IDgsIDApCj4gICAgICAgSnhsQml0RGVwdGgganhsX2JpdF9kZXB0aDsKPiAgICNlbmRpZgo+IC0g ICAgSnhsRW5jb2RlclN0YXR1cyBqcmV0Owo+ICAgICAgIGludCByZXQ7Cj4gLSAgICBzaXplX3Qg YXZhaWxhYmxlID0gY3R4LT5idWZmZXJfc2l6ZTsKPiAtICAgIHNpemVfdCBieXRlc193cml0dGVu ID0gMDsKPiAtICAgIHVpbnQ4X3QgKm5leHRfb3V0ID0gY3R4LT5idWZmZXI7Cj4gICAKPiAgICAg ICByZXQgPSBsaWJqeGxfaW5pdF9qeGxfZW5jb2RlcihhdmN0eCk7Cj4gICAgICAgaWYgKHJldCkg ewo+IEBAIC0yNjgsMjMgKzI2NiwzMCBAQCBzdGF0aWMgaW50IGxpYmp4bF9lbmNvZGVfZnJhbWUo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqcGt0LCBjb25zdCBBVkZyYQo+ICAgCj4g ICAgICAgLyogcG9wdWxhdGUgdGhlIGJhc2ljIGluZm8gc2V0dGluZ3MgKi8KPiAgICAgICBKeGxF bmNvZGVySW5pdEJhc2ljSW5mbygmaW5mbyk7Cj4gLSAgICBqeGxfZm10Lm51bV9jaGFubmVscyA9 IHBpeF9kZXNjLT5uYl9jb21wb25lbnRzOwo+ICsgICAganhsX2ZtdC0+bnVtX2NoYW5uZWxzID0g cGl4X2Rlc2MtPm5iX2NvbXBvbmVudHM7Cj4gICAgICAgaW5mby54c2l6ZSA9IGZyYW1lLT53aWR0 aDsKPiAgICAgICBpbmZvLnlzaXplID0gZnJhbWUtPmhlaWdodDsKPiAtICAgIGluZm8ubnVtX2V4 dHJhX2NoYW5uZWxzID0gKGp4bF9mbXQubnVtX2NoYW5uZWxzICsgMSkgJSAyOwo+IC0gICAgaW5m by5udW1fY29sb3JfY2hhbm5lbHMgPSBqeGxfZm10Lm51bV9jaGFubmVscyAtIGluZm8ubnVtX2V4 dHJhX2NoYW5uZWxzOwo+IC0gICAgYml0c19wZXJfc2FtcGxlID0gYXZfZ2V0X2JpdHNfcGVyX3Bp eGVsKHBpeF9kZXNjKSAvIGp4bF9mbXQubnVtX2NoYW5uZWxzOwo+ICsgICAgaW5mby5udW1fZXh0 cmFfY2hhbm5lbHMgPSAoanhsX2ZtdC0+bnVtX2NoYW5uZWxzICsgMSkgJSAyOwo+ICsgICAgaW5m by5udW1fY29sb3JfY2hhbm5lbHMgPSBqeGxfZm10LT5udW1fY2hhbm5lbHMgLSBpbmZvLm51bV9l eHRyYV9jaGFubmVsczsKPiArICAgIGJpdHNfcGVyX3NhbXBsZSA9IGF2X2dldF9iaXRzX3Blcl9w aXhlbChwaXhfZGVzYykgLyBqeGxfZm10LT5udW1fY2hhbm5lbHM7Cj4gICAgICAgaW5mby5iaXRz X3Blcl9zYW1wbGUgPSBhdmN0eC0+Yml0c19wZXJfcmF3X3NhbXBsZSA+IDAgJiYgIShwaXhfZGVz Yy0+ZmxhZ3MgJiBBVl9QSVhfRk1UX0ZMQUdfRkxPQVQpCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/IGF2Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlIDogYml0c19wZXJfc2FtcGxlOwo+ ICAgICAgIGluZm8uYWxwaGFfYml0cyA9IChpbmZvLm51bV9leHRyYV9jaGFubmVscyA+IDApICog aW5mby5iaXRzX3Blcl9zYW1wbGU7Cj4gICAgICAgaWYgKHBpeF9kZXNjLT5mbGFncyAmIEFWX1BJ WF9GTVRfRkxBR19GTE9BVCkgewo+ICAgICAgICAgICBpbmZvLmV4cG9uZW50X2JpdHNfcGVyX3Nh bXBsZSA9IGluZm8uYml0c19wZXJfc2FtcGxlID4gMTYgPyA4IDogNTsKPiAgICAgICAgICAgaW5m by5hbHBoYV9leHBvbmVudF9iaXRzID0gaW5mby5hbHBoYV9iaXRzID8gaW5mby5leHBvbmVudF9i aXRzX3Blcl9zYW1wbGUgOiAwOwo+IC0gICAgICAgIGp4bF9mbXQuZGF0YV90eXBlID0gaW5mby5i aXRzX3Blcl9zYW1wbGUgPiAxNiA/IEpYTF9UWVBFX0ZMT0FUIDogSlhMX1RZUEVfRkxPQVQxNjsK PiArICAgICAgICBqeGxfZm10LT5kYXRhX3R5cGUgPSBpbmZvLmJpdHNfcGVyX3NhbXBsZSA+IDE2 ID8gSlhMX1RZUEVfRkxPQVQgOiBKWExfVFlQRV9GTE9BVDE2Owo+ICAgICAgIH0gZWxzZSB7Cj4g ICAgICAgICAgIGluZm8uZXhwb25lbnRfYml0c19wZXJfc2FtcGxlID0gMDsKPiAgICAgICAgICAg aW5mby5hbHBoYV9leHBvbmVudF9iaXRzID0gMDsKPiAtICAgICAgICBqeGxfZm10LmRhdGFfdHlw ZSA9IGluZm8uYml0c19wZXJfc2FtcGxlIDw9IDggPyBKWExfVFlQRV9VSU5UOCA6IEpYTF9UWVBF X1VJTlQxNjsKPiArICAgICAgICBqeGxfZm10LT5kYXRhX3R5cGUgPSBpbmZvLmJpdHNfcGVyX3Nh bXBsZSA8PSA4ID8gSlhMX1RZUEVfVUlOVDggOiBKWExfVFlQRV9VSU5UMTY7Cj4gKyAgICB9Cj4g KyAgICBpZihjdHgtPmFuaW1hdGVkKSB7Cj4gKyAgICAgICAgaW5mby5oYXZlX2FuaW1hdGlvbiA9 IDE7Cj4gKyAgICAgICAgaW5mby5hbmltYXRpb24uaGF2ZV90aW1lY29kZXMgPSAwOwo+ICsgICAg ICAgIGluZm8uYW5pbWF0aW9uLm51bV9sb29wcyA9IDA7Cj4gKyAgICAgICAgaW5mby5hbmltYXRp b24udHBzX251bWVyYXRvciA9IGZyYW1lLT50aW1lX2Jhc2UuZGVuOwo+ICsgICAgICAgIGluZm8u YW5pbWF0aW9uLnRwc19kZW5vbWluYXRvciA9IGZyYW1lLT50aW1lX2Jhc2UubnVtOwo+ICAgICAg IH0KPiAgIAo+ICAgI2lmIEpQRUdYTF9OVU1FUklDX1ZFUlNJT04gPj0gSlBFR1hMX0NPTVBVVEVf TlVNRVJJQ19WRVJTSU9OKDAsIDgsIDApCj4gQEAgLTM4MiwxOSArMzg3LDE5IEBAIHN0YXRpYyBp bnQgbGlianhsX2VuY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWUGFja2V0ICpw a3QsIGNvbnN0IEFWRnJhCj4gICAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJO SU5HLCAiQ291bGQgbm90IGluY3JlYXNlIGNvZGVzdHJlYW0gbGV2ZWxcbiIpOwo+ICAgICAgIH0K PiAgIAo+IC0gICAganhsX2ZtdC5lbmRpYW5uZXNzID0gSlhMX05BVElWRV9FTkRJQU47Cj4gLSAg ICBqeGxfZm10LmFsaWduID0gZnJhbWUtPmxpbmVzaXplWzBdOwo+ICsgICAganhsX2ZtdC0+ZW5k aWFubmVzcyA9IEpYTF9OQVRJVkVfRU5ESUFOOwo+ICsgICAganhsX2ZtdC0+YWxpZ24gPSBmcmFt ZS0+bGluZXNpemVbMF07Cj4gICAKPiAtICAgIGlmIChKeGxFbmNvZGVyQWRkSW1hZ2VGcmFtZShj dHgtPm9wdGlvbnMsICZqeGxfZm10LCBmcmFtZS0+ZGF0YVswXSwganhsX2ZtdC5hbGlnbiAqIGlu Zm8ueXNpemUpICE9IEpYTF9FTkNfU1VDQ0VTUykgewo+IC0gICAgICAgIGF2X2xvZyhhdmN0eCwg QVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGFkZCBJbWFnZSBGcmFtZVxuIik7Cj4gLSAgICAgICAg cmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Cj4gLSAgICB9Cj4gICAKPiAtICAgIC8qCj4gLSAgICAg KiBSdW4gdGhpcyBhZnRlciB0aGUgbGFzdCBmcmFtZSBpbiB0aGUgaW1hZ2UgaGFzIGJlZW4gcGFz c2VkLgo+IC0gICAgICogVE9ETyBzdXBwb3J0IGFuaW1hdGlvbgo+IC0gICAgICovCj4gLSAgICBK eGxFbmNvZGVyQ2xvc2VJbnB1dChjdHgtPmVuY29kZXIpOwo+ICsgICAgcmV0dXJuIDA7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgbGlianhsX2VuY29kZV9wcm9jZXNzX291dHB1dChBVkNvZGVjQ29u dGV4dCAqYXZjdHgsIHNpemVfdCAqYnl0ZXNfd3JpdHRlbikKPiArewo+ICsgICAgTGliSnhsRW5j b2RlQ29udGV4dCAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKPiArICAgIEp4bEVuY29kZXJTdGF0 dXMganJldDsKPiArICAgIHNpemVfdCBhdmFpbGFibGUgPSBjdHgtPmJ1ZmZlcl9zaXplOwo+ICsg ICAgdWludDhfdCAqbmV4dF9vdXQgPSBjdHgtPmJ1ZmZlcjsKPiAgIAo+ICAgICAgIHdoaWxlICgx KSB7Cj4gICAgICAgICAgIGpyZXQgPSBKeGxFbmNvZGVyUHJvY2Vzc091dHB1dChjdHgtPmVuY29k ZXIsICZuZXh0X291dCwgJmF2YWlsYWJsZSk7Cj4gQEAgLTQwMiw3ICs0MDcsNyBAQCBzdGF0aWMg aW50IGxpYmp4bF9lbmNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAq cGt0LCBjb25zdCBBVkZyYQo+ICAgICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJS T1IsICJVbnNwZWNpZmllZCBsaWJqeGwgZXJyb3Igb2NjdXJyZWRcbiIpOwo+ICAgICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Cj4gICAgICAgICAgIH0KPiAtICAgICAgICBieXRl c193cml0dGVuID0gY3R4LT5idWZmZXJfc2l6ZSAtIGF2YWlsYWJsZTsKPiArICAgICAgICAqYnl0 ZXNfd3JpdHRlbiA9IGN0eC0+YnVmZmVyX3NpemUgLSBhdmFpbGFibGU7Cj4gICAgICAgICAgIC8q IGFsbCBkYXRhIHBhc3NlZCBoYXMgYmVlbiBlbmNvZGVkICovCj4gICAgICAgICAgIGlmIChqcmV0 ID09IEpYTF9FTkNfU1VDQ0VTUykKPiAgICAgICAgICAgICAgIGJyZWFrOwo+IEBAIC00MTksMTQg KzQyNCw0OCBAQCBzdGF0aWMgaW50IGxpYmp4bF9lbmNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQg KmF2Y3R4LCBBVlBhY2tldCAqcGt0LCBjb25zdCBBVkZyYQo+ICAgICAgICAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gICAgICAgICAgICAgICBjdHgtPmJ1ZmZlciA9IHRlbXA7 Cj4gICAgICAgICAgICAgICBjdHgtPmJ1ZmZlcl9zaXplID0gbmV3X3NpemU7Cj4gLSAgICAgICAg ICAgIG5leHRfb3V0ID0gY3R4LT5idWZmZXIgKyBieXRlc193cml0dGVuOwo+IC0gICAgICAgICAg ICBhdmFpbGFibGUgPSBuZXdfc2l6ZSAtIGJ5dGVzX3dyaXR0ZW47Cj4gKyAgICAgICAgICAgIG5l eHRfb3V0ID0gY3R4LT5idWZmZXIgKyAqYnl0ZXNfd3JpdHRlbjsKPiArICAgICAgICAgICAgYXZh aWxhYmxlID0gbmV3X3NpemUgLSAqYnl0ZXNfd3JpdHRlbjsKPiAgICAgICAgICAgICAgIGNvbnRp bnVlOwo+ICAgICAgICAgICB9Cj4gICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9S LCAiQmFkIGxpYmp4bCBldmVudDogJWRcbiIsIGpyZXQpOwo+ICAgICAgICAgICByZXR1cm4gQVZF UlJPUl9FWFRFUk5BTDsKPiAgICAgICB9Cj4gICAKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ ICsvKioKPiArICogRW5jb2RlIGFuIGVudGlyZSBmcmFtZS4gQ3VycmVudGx5IGFuaW1hdGlvbiwg aXMgbm90IHN1cHBvcnRlZCBieQo+ICsgKiB0aGlzIGVuY29kZXIsIHNvIHRoaXMgd2lsbCBhbHdh eXMgcmVpbml0aWFsaXplIGEgbmV3IHN0aWxsIGltYWdlCj4gKyAqIGFuZCBlbmNvZGUgYSBvbmUt ZnJhbWUgaW1hZ2UgKGZvciBpbWFnZTIgYW5kIGltYWdlMnBpcGUpLgo+ICsgKi8KCldhdGNoIHlv dXIgY29weS9wYXN0ZS4KCj4gK3N0YXRpYyBpbnQgbGlianhsX2VuY29kZV9mcmFtZShBVkNvZGVj Q29udGV4dCAqYXZjdHgsIEFWUGFja2V0ICpwa3QsIGNvbnN0IEFWRnJhbWUgKmZyYW1lLCBpbnQg KmdvdF9wYWNrZXQpCj4gK3sKPiArICAgIExpYkp4bEVuY29kZUNvbnRleHQgKmN0eCA9IGF2Y3R4 LT5wcml2X2RhdGE7Cj4gKyAgICBKeGxQaXhlbEZvcm1hdCAqanhsX2ZtdCA9ICZjdHgtPmp4bF9m bXQ7Cj4gKyAgICBpbnQgcmV0Owo+ICsgICAgc2l6ZV90IGJ5dGVzX3dyaXR0ZW4gPSAwOwo+ICsK PiArICAgIGlmKChyZXQgPSBsaWJqeGxfZW5jb2RlX2luaXRfaW1hZ2UoYXZjdHgsIGZyYW1lKSkg PCAwKQo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsgICAgaWYgKEp4bEVuY29kZXJBZGRJ bWFnZUZyYW1lKGN0eC0+b3B0aW9ucywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBqeGxfZm10LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kYXRh WzBdLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp4bF9mbXQtPmFsaWduICog ZnJhbWUtPmhlaWdodCkgIT0gSlhMX0VOQ19TVUNDRVNTKSB7Cj4gKyAgICAgICAgYXZfbG9nKGF2 Y3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gYWRkIEltYWdlIEZyYW1lXG4iKTsKPiArICAg ICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKPiArICAgIH0KPiArCj4gKyAgICAvKgo+ICsg ICAgICogUnVuIHRoaXMgYWZ0ZXIgdGhlIGxhc3QgZnJhbWUgaW4gdGhlIGltYWdlIGhhcyBiZWVu IHBhc3NlZC4KPiArICAgICAqLwo+ICsgICAgSnhsRW5jb2RlckNsb3NlSW5wdXQoY3R4LT5lbmNv ZGVyKTsKPiArCj4gKyAgICBpZigocmV0ID0gbGlianhsX2VuY29kZV9wcm9jZXNzX291dHB1dChh dmN0eCwgJmJ5dGVzX3dyaXR0ZW4pKSA8IDApCj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiArCj4g ICAgICAgcmV0ID0gZmZfZ2V0X2VuY29kZV9idWZmZXIoYXZjdHgsIHBrdCwgYnl0ZXNfd3JpdHRl biwgMCk7Cj4gICAgICAgaWYgKHJldCA8IDApCj4gICAgICAgICAgIHJldHVybiByZXQ7Cj4gQEAg LTQzNyw2ICs0NzYsNzAgQEAgc3RhdGljIGludCBsaWJqeGxfZW5jb2RlX2ZyYW1lKEFWQ29kZWND b250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBrdCwgY29uc3QgQVZGcmEKPiAgICAgICByZXR1cm4g MDsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50IGxpYmp4bF9hbmltYXRlZF9lbmNvZGVfZnJhbWUo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqcGt0LCBjb25zdCBBVkZyYW1lICpmcmFt ZSwgaW50ICpnb3RfcGFja2V0KQo+ICt7Cj4gKyAgICBMaWJKeGxFbmNvZGVDb250ZXh0ICpjdHgg PSBhdmN0eC0+cHJpdl9kYXRhOwo+ICsgICAgaW50IHJldCA9IDA7Cj4gKwo+ICsgICAgaWYoYXZj dHgtPmZyYW1lX251bSA9PSAwKQo+ICsgICAgICAgIGlmKChyZXQgPSBsaWJqeGxfZW5jb2RlX2lu aXRfaW1hZ2UoYXZjdHgsIGZyYW1lKSkgPCAwKQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0OwoK RG9uJ3QgcmVseSBvbiBhdmN0eC0+ZnJhbWVfbnVtIHRvIGJlIHNldC4gWW91IHNob3VsZCB0cmFj ayB0aGUgCnNlbnQtaW5pdGlhbC1mcmFtZSBzdGF0dXMgc2VwYXJhdGVseS4KCgo+ICsKPiArICAg IGlmKCFjdHgtPmxhc3QgJiYgIWF2Y3R4LT5pbnRlcm5hbC0+ZHJhaW5pbmcpIHsgPiArICAgICAg ICBjdHgtPmxhc3QgPSBhdl9mcmFtZV9jbG9uZShmcmFtZSk7Cj4gKyAgICAgICAgKmdvdF9wYWNr ZXQgPSAwOwo+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVBR0FJTik7Ckl0IGxvb2tzIGxpa2Ug eW91J3JlIHRyeWluZyB0byBlbWl0IG9uZSBwYWNrZXQgcGVyIGltYWdlLCByYXRoZXIgdGhhbiAK b25lIHBhY2tldCBwZXIgZW5jb2RlZCBmcmFtZS4gVGhpcyBpcyBmaW5lLCBidXQgeW91IHNob3Vs ZCBub3QgYmUgCmNhbGxpbmcgYXZfZnJhbWVfY2xvbmUsIGFuZCB0aGVyZSdzIG5vIHJlYXNvbiB0 byB1c2UgCmF2Y3R4LT5pbnRlcm5hbC0+ZHJhaW5pbmcgaGVyZS4gSWYgeW91IGFyZSBkb2luZyB0 aGlzLCB5b3UgYWxzbyBoYXZlIG5vIApyZWFzb24gdG8gY2FjaGUgY3R4LT5sYXN0IGF0IGFsbC4K Cgo+ICsgICAgfSBlbHNlIGlmKCFjdHgtPmxhc3QgJiYgYXZjdHgtPmludGVybmFsLT5kcmFpbmlu ZyAmJiAhZnJhbWUpIHsKPiArICAgICAgICAqZ290X3BhY2tldCA9IDA7Cj4gKyAgICB9IGVsc2Ug ewo+ICsgICAgICAgIEp4bFBpeGVsRm9ybWF0ICpqeGxfZm10ID0gJmN0eC0+anhsX2ZtdDsKPiAr ICAgICAgICBKeGxGcmFtZUhlYWRlciBmcmFtZV9oZWFkZXI7Cj4gKyAgICAgICAgc2l6ZV90IGJ5 dGVzX3dyaXR0ZW4gPSAwOwo+ICsKPiArICAgICAgICBKeGxFbmNvZGVySW5pdEZyYW1lSGVhZGVy KCZmcmFtZV9oZWFkZXIpOwo+ICsgICAgICAgIGZyYW1lX2hlYWRlci5kdXJhdGlvbiA9IGN0eC0+ bGFzdC0+ZHVyYXRpb247CgpBVkZyYW1lLT5kdXJhdGlvbiBtYXkgYmUgemVybyBpZiB1bmtub3du LiBZb3UgbmVlZCB0byB0cmFjayBQVFMgaW5zdGVhZC4KCj4gKyAgICAgICAgcGt0LT5kdXJhdGlv biA9IGN0eC0+bGFzdC0+ZHVyYXRpb247Cj4gKyAgICAgICAgcGt0LT5wdHMgPSBBVl9OT1BUU19W QUxVRTsKPiArICAgICAgICBwa3QtPmR0cyA9IEFWX05PUFRTX1ZBTFVFOwoKRG8gbm90IGRvIHRo aXMuIFNldCB0aGUgUFRTIGFuZCBEVFMgY29ycmVjdGx5LgoKCj4gKwo+ICsgICAgICAgIGlmKEp4 bEVuY29kZXJTZXRGcmFtZUhlYWRlcihjdHgtPm9wdGlvbnMsICZmcmFtZV9oZWFkZXIpICE9IEpY TF9FTkNfU1VDQ0VTUykgewo+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJP UiwgIkZhaWxlZCB0byBzZXQgZnJhbWUgaGVhZGVyXG4iKTsKPiArICAgICAgICAgICAgcmV0dXJu IEFWRVJST1JfRVhURVJOQUw7Cj4gKyAgICAgICAgfQo+ICsgICAgICAgIGlmIChKeGxFbmNvZGVy QWRkSW1hZ2VGcmFtZShjdHgtPm9wdGlvbnMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGp4bF9mbXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGN0eC0+bGFzdC0+ZGF0YVswXSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAganhsX2ZtdC0+YWxpZ24gKiBjdHgtPmxhc3QtPmhlaWdodCkgIT0gSlhMX0VOQ19TVUNDRVNT KSB7Cj4gKyAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRv IGFkZCBJbWFnZSBGcmFtZVxuIik7Cj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVS TkFMOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgLyoKPiArICAgICAgICAgKiBSdW4gdGhp cyBhZnRlciB0aGUgbGFzdCBmcmFtZSBpbiB0aGUgaW1hZ2UgaGFzIGJlZW4gcGFzc2VkLgo+ICsg ICAgICAgICAqLwo+ICsgICAgICAgIGlmKGF2Y3R4LT5pbnRlcm5hbC0+ZHJhaW5pbmcpCj4gKyAg ICAgICAgICAgIEp4bEVuY29kZXJDbG9zZUlucHV0KGN0eC0+ZW5jb2Rlcik7CgoKYXZjdHgtPmlu dGVybmFsLT5kcmFpbmluZyBpcyBub3QgYSByZWxpYWJsZSBjaGVjay4gV2hlbiBub3RoaW5nIGlz IGxlZnQgCnRvIGVuY29kZSwgdGhlIGVuY29kZXIgd2lsbCByZWNlaXZlIE5VTEwgYXMgdGhlIEFW RnJhbWUgYXJndW1lbnQuCgo+ICsKPiArICAgICAgICBpZigocmV0ID0gbGlianhsX2VuY29kZV9w cm9jZXNzX291dHB1dChhdmN0eCwgJmJ5dGVzX3dyaXR0ZW4pKSA8IDApCj4gKyAgICAgICAgICAg IHJldHVybiByZXQ7Cj4gKwo+ICsgICAgICAgIHJldCA9IGZmX2dldF9lbmNvZGVfYnVmZmVyKGF2 Y3R4LCBwa3QsIGJ5dGVzX3dyaXR0ZW4sIDApOwo+ICsgICAgICAgIGlmIChyZXQgPCAwKQo+ICsg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsKPiArICAgICAgICBtZW1jcHkocGt0LT5kYXRhLCBj dHgtPmJ1ZmZlciwgYnl0ZXNfd3JpdHRlbik7Cj4gKyAgICAgICAgKmdvdF9wYWNrZXQgPSAxOwo+ ICsKPiArICAgICAgICBpZighYXZjdHgtPmludGVybmFsLT5kcmFpbmluZykgewo+ICsgICAgICAg ICAgICBhdl9mcmFtZV9yZXBsYWNlKGN0eC0+bGFzdCwgZnJhbWUpOwo+ICsgICAgICAgIH0gZWxz ZSB7Cj4gKyAgICAgICAgICAgIGF2X2ZyYW1lX2ZyZWUoJmN0eC0+bGFzdCk7Cj4gKyAgICAgICAg fQo+ICsgICAgfQo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGF2X2Nv bGQgaW50IGxpYmp4bF9lbmNvZGVfY2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+ICAgewo+ ICAgICAgIExpYkp4bEVuY29kZUNvbnRleHQgKmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7Cj4gQEAg LTQ1OCw2ICs1NjEsMTcgQEAgc3RhdGljIGF2X2NvbGQgaW50IGxpYmp4bF9lbmNvZGVfY2xvc2Uo QVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+ICAgICAgIHJldHVybiAwOwo+ICAgfQo+ICAgCj4gK3N0 YXRpYyBhdl9jb2xkIGludCBsaWJqeGxfYW5pbWF0ZWRfZW5jb2RlX2luaXQoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KQo+ICt7Cj4gKyAgICBpbnQgcmV0Owo+ICsgICAgTGliSnhsRW5jb2RlQ29udGV4 dCAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKPiArICAgIGlmKChyZXQgPSBsaWJqeGxfZW5jb2Rl X2luaXQoYXZjdHgpKSA8IDApCj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiArICAgIGN0eC0+YW5p bWF0ZWQgPSAxOwo+ICsgICAgcmV0ID0gbGlianhsX2luaXRfanhsX2VuY29kZXIoYXZjdHgpOwo+ ICsgICAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgICNkZWZpbmUgT0ZGU0VUKHgpIG9mZnNldG9m KExpYkp4bEVuY29kZUNvbnRleHQsIHgpCj4gICAjZGVmaW5lIFZFIEFWX09QVF9GTEFHX1ZJREVP X1BBUkFNIHwgQVZfT1BUX0ZMQUdfRU5DT0RJTkdfUEFSQU0KPiAgIAo+IEBAIC00NzYsNiArNTkw LDE1IEBAIHN0YXRpYyBjb25zdCBBVkNsYXNzIGxpYmp4bF9lbmNvZGVfY2xhc3MgPSB7Cj4gICAg ICAgLnZlcnNpb24gICAgPSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQsCj4gICB9Owo+ICAgCj4gK3N0 YXRpYyBjb25zdCBlbnVtIEFWUGl4ZWxGb3JtYXQgbGlianhsX3BpeF9mbXRzW10gPSB7Cj4gKyAg ICBBVl9QSVhfRk1UX1JHQjI0LCBBVl9QSVhfRk1UX1JHQkEsCj4gKyAgICBBVl9QSVhfRk1UX1JH QjQ4LCBBVl9QSVhfRk1UX1JHQkE2NCwKPiArICAgIEFWX1BJWF9GTVRfR1JBWTgsIEFWX1BJWF9G TVRfWUE4LAo+ICsgICAgQVZfUElYX0ZNVF9HUkFZMTYsIEFWX1BJWF9GTVRfWUExNiwKPiArICAg IEFWX1BJWF9GTVRfR1JBWUYzMiwKPiArICAgIEFWX1BJWF9GTVRfTk9ORQo+ICt9Owo+ICsKPiAg IGNvbnN0IEZGQ29kZWMgZmZfbGlianhsX2VuY29kZXIgPSB7Cj4gICAgICAgLnAubmFtZSAgICAg ICAgICAgPSAibGlianhsIiwKPiAgICAgICBDT0RFQ19MT05HX05BTUUoImxpYmp4bCBKUEVHIFhM IiksCj4gQEAgLTQ5MCwxNCArNjEzLDI3IEBAIGNvbnN0IEZGQ29kZWMgZmZfbGlianhsX2VuY29k ZXIgPSB7Cj4gICAgICAgLmNhcHNfaW50ZXJuYWwgICAgPSBGRl9DT0RFQ19DQVBfTk9UX0lOSVRf VEhSRUFEU0FGRSB8Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICBGRl9DT0RFQ19DQVBfQVVU T19USFJFQURTIHwgRkZfQ09ERUNfQ0FQX0lOSVRfQ0xFQU5VUCB8Cj4gICAgICAgICAgICAgICAg ICAgICAgICAgICBGRl9DT0RFQ19DQVBfSUNDX1BST0ZJTEVTLAo+IC0gICAgLnAucGl4X2ZtdHMg ICAgICAgPSAoY29uc3QgZW51bSBBVlBpeGVsRm9ybWF0W10pIHsKPiAtICAgICAgICBBVl9QSVhf Rk1UX1JHQjI0LCBBVl9QSVhfRk1UX1JHQkEsCj4gLSAgICAgICAgQVZfUElYX0ZNVF9SR0I0OCwg QVZfUElYX0ZNVF9SR0JBNjQsCj4gLSAgICAgICAgQVZfUElYX0ZNVF9HUkFZOCwgQVZfUElYX0ZN VF9ZQTgsCj4gLSAgICAgICAgQVZfUElYX0ZNVF9HUkFZMTYsIEFWX1BJWF9GTVRfWUExNiwKPiAt ICAgICAgICBBVl9QSVhfRk1UX0dSQVlGMzIsCj4gLSAgICAgICAgQVZfUElYX0ZNVF9OT05FCj4g LSAgICB9LAo+ICsgICAgLnAucGl4X2ZtdHMgICAgICAgPSBsaWJqeGxfcGl4X2ZtdHMsCj4gKyAg ICAucC5wcml2X2NsYXNzICAgICA9ICZsaWJqeGxfZW5jb2RlX2NsYXNzLAo+ICsgICAgLnAud3Jh cHBlcl9uYW1lICAgPSAibGlianhsIiwKPiArfTsKPiArCj4gK2NvbnN0IEZGQ29kZWMgZmZfbGli anhsX2FuaW1hdGVkX2VuY29kZXIgPSB7Cj4gKyAgICAucC5uYW1lICAgICAgICAgICA9ICJsaWJq eGxfYW5pbWF0ZWQiLAo+ICsgICAgQ09ERUNfTE9OR19OQU1FKCJsaWJqeGwgQW5pbWF0ZWQgSlBF RyBYTCIpLAo+ICsgICAgLnAudHlwZSAgICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCj4g KyAgICAucC5pZCAgICAgICAgICAgICA9IEFWX0NPREVDX0lEX0pQRUdYTCwKPiArICAgIC5wcml2 X2RhdGFfc2l6ZSAgID0gc2l6ZW9mKExpYkp4bEVuY29kZUNvbnRleHQpLAo+ICsgICAgLmluaXQg ICAgICAgICAgICAgPSBsaWJqeGxfYW5pbWF0ZWRfZW5jb2RlX2luaXQsCj4gKyAgICBGRl9DT0RF Q19FTkNPREVfQ0IobGlianhsX2FuaW1hdGVkX2VuY29kZV9mcmFtZSksCj4gKyAgICAuY2xvc2Ug ICAgICAgICAgICA9IGxpYmp4bF9lbmNvZGVfY2xvc2UsCj4gKyAgICAucC5jYXBhYmlsaXRpZXMg ICA9IEFWX0NPREVDX0NBUF9PVEhFUl9USFJFQURTIHwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgQVZfQ09ERUNfQ0FQX0VOQ09ERVJfUkVPUkRFUkVEX09QQVFVRSB8Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIEFWX0NPREVDX0NBUF9ERUxBWSwKPiArICAgIC5jYXBzX2ludGVybmFsICAg ID0gRkZfQ09ERUNfQ0FQX05PVF9JTklUX1RIUkVBRFNBRkUgfAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBGRl9DT0RFQ19DQVBfQVVUT19USFJFQURTIHwgRkZfQ09ERUNfQ0FQX0lOSVRfQ0xF QU5VUCB8Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEZGX0NPREVDX0NBUF9JQ0NfUFJPRklM RVMgfCBGRl9DT0RFQ19DQVBfRU9GX0ZMVVNILAoKV2h5IEZGX0NPREVDX0NBUF9FT0ZfRkxVU0g/ CgoKPiArICAgIC5wLnBpeF9mbXRzICAgICAgID0gbGlianhsX3BpeF9mbXRzLAo+ICAgICAgIC5w LnByaXZfY2xhc3MgICAgID0gJmxpYmp4bF9lbmNvZGVfY2xhc3MsCj4gICAgICAgLnAud3JhcHBl cl9uYW1lICAgPSAibGlianhsIiwKPiAgIH07Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K