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 9064240592 for ; Fri, 25 Feb 2022 08:14:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 46DF168B31D; Fri, 25 Feb 2022 10:14:21 +0200 (EET) Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 28696680CB2 for ; Fri, 25 Feb 2022 10:14:15 +0200 (EET) Received: by mail-ej1-f42.google.com with SMTP id qk11so9334756ejb.2 for ; Fri, 25 Feb 2022 00:14:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=VTAhWw1+cOyIa8wCEU2GzNFtlzmexmQzXUu09idh7y0=; b=evzIftcyUN9OSV6WM+xPzpSGyWKEoXpuLE11TPY5QRKOZcWYx2EjYWLFuT0TS1xuhB mLdqPRwcjQv6AIrnTC3c9CGL54RLF+VxHYsOTgFLThXuf7ZOuJPaXRX7n2ifr3AUn4bh GPnkf57nrLsey2by/OBe0iOyx2yTiSVoYOOjZW29XV76q81JYKGqsTSy7oUr3oDg+jY5 38z/DpyoJRC0HaBeIy0PFRzuH/IfF7Mnt4NStBwAi5gdYtFPG8/7SvnQj6jZnkWexT9w 8yh8Jp6BmapwCBlkUPadOpf+eIHT984Yr2Dnzz3YtYHnqqhmHtKm9Dc5LRKycg1QEZyZ 8tEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=VTAhWw1+cOyIa8wCEU2GzNFtlzmexmQzXUu09idh7y0=; b=DFgX6f5uWSl1VGdP1ChdsWtU1OBXhzw6yUYZyYFh9us/2T2a8tAAFqbIornQerNmAl MNheR1AYB9QqiMtDSd/cu14We44gM04BwfR69g6jjLMcASTxLI0NWj9/bydvT/mkB1e7 idiSe9uZbtYcVQx9AB14mDBFfSqbmLZBpS1G+fHciy3ehAxDuqfcEUt0DUx7Fq5Qr1ci T5Yfyhi4R1Y2C7GDWPD7152t3GRvlN7Gvqv5mQRvSpYJgSeMFsEEJ59xvoiGQ18er6y8 CKZS0nTMFiiuVzNYxSRrIa0eideGSXQWq0o9pIZd+HGknHe8yJCtNtEswTxkCgl6Ti5U smjg== X-Gm-Message-State: AOAM531ygz4DeACHrIqSHYVoCFgj6ekb+zHz1D1Mdi7j0o1+PlU+Ee/A DqO74ue0n6jtSbR03XClqqNfXKjJZVk= X-Google-Smtp-Source: ABdhPJw8CKKcf8Im9qxBeQFjfnqJop8Zmt2+xm7D5Q2kI4c+/TohDoKBmF713DBHy6pxA7E46d/PBQ== X-Received: by 2002:a17:907:2bc4:b0:6cc:e4b7:dcf8 with SMTP id gv4-20020a1709072bc400b006cce4b7dcf8mr5247558ejc.596.1645776854197; Fri, 25 Feb 2022 00:14:14 -0800 (PST) Received: from archlinux ([95.168.116.15]) by smtp.gmail.com with ESMTPSA id g15-20020a170906520f00b006cd07ba40absm692493ejm.160.2022.02.25.00.14.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Feb 2022 00:14:13 -0800 (PST) Date: Fri, 25 Feb 2022 09:15:42 +0100 From: Paul B Mahol To: FFmpeg development discussions and patches Message-ID: References: <43daccc7-c618-993e-912d-54e633e8c7f2@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <43daccc7-c618-993e-912d-54e633e8c7f2@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH] libavcodec, libavformat: Added DFPWM1a codec and raw format 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: T24gRnJpLCBGZWIgMjUsIDIwMjIgYXQgMDI6NTQ6MzVBTSAtMDUwMCwgSmFjayBCcnVpZW5uZSB3 cm90ZToKPiBGcm9tIHRoZSB3aWtpIHBhZ2UgKGh0dHBzOi8vd2lraS52ZXhhdG9zLmNvbS9kZnB3 bSk6Cj4gPiBERlBXTSAoRHluYW1pYyBGaWx0ZXIgUHVsc2UgV2lkdGggTW9kdWxhdGlvbikgaXMg YW4gYXVkaW8gY29kZWMKPiA+IGNyZWF0ZWQgYnkgQmVuIOKAnEdyZWFzZU1vbmtleeKAnSBSdXNz ZWxsIGluIDIwMTIsIG9yaWdpbmFsbHkgdG8gYmUgdXNlZAo+ID4gYXMgYSB2b2ljZSBjb2RlYyBm b3IgYXNpZWtpZXJrYSdzIHBpeG1lc3MsIGEgQyByZW1ha2Ugb2YgNjRwaXhlbHMuCj4gPiBJdCBp cyBhIDEtYml0LXBlci1zYW1wbGUgY29kZWMgd2hpY2ggdXNlcyBhIGR5bmFtaWMtc3RyZW5ndGgg b25lLXBvbGUKPiA+IGxvdy1wYXNzIGZpbHRlciBhcyBhIHByZWRpY3Rvci4gRHVlIHRvIHRoZSBm YWN0IHRoYXQgYSByYXcgRFBGV00gZGVjb2RpbmcKPiA+IGNyZWF0ZXMgYSBoaWdoLXBpdGNoZWQg d2hpbmUsIGl0IGlzIG9mdGVuIGZvbGxvd2VkIGJ5IHNvbWUgcG9zdC1wcm9jZXNzaW5nCj4gPiBm aWx0ZXJzIHRvIG1ha2UgdGhlIHN0cmVhbSBtb3JlIGxpc3RlbmFibGUuCj4gCj4gSXQgaGFzIHJl Y2VudGx5IGdhaW5lZCBwb3B1bGFyaXR5IHRocm91Z2ggdGhlIENvbXB1dGVyQ3JhZnQgbW9kIGZv cgo+IE1pbmVjcmFmdCwgd2hpY2ggYWRkZWQgc3VwcG9ydCBmb3IgYXVkaW8gdGhyb3VnaCB0aGlz IGNvZGVjLCBhcyB3ZWxsIGFzCj4gdGhlIENvbXB1dHJvbmljcyBleHBhbnNpb24gd2hpY2ggcHJl Y2VlZGVkIHRoZSBvZmZpY2lhbCBzdXBwb3J0LiBUaGVzZQo+IGJvdGggaW1wbGVtZW50IHRoZSBz bGlnaHRseSBhZGp1c3RlZCAxYSB2ZXJzaW9uIG9mIHRoZSBjb2RlYywgd2hpY2ggaXMKPiB0aGUg dmVyc2lvbiBJIGhhdmUgY2hvc2VuIGZvciB0aGlzIHBhdGNoLgo+IAo+IFRoaXMgcGF0Y2ggYWRk cyBib3RoIGEgbmV3IGNvZGVjICh3aXRoIGVuY29kaW5nIGFuZCBkZWNvZGluZyksIGFzIHdlbGwg YXMKPiBhIHJhdyBhdWRpbyBmb3JtYXQgdG8gYmUgYWJsZSB0byByZWFkL3dyaXRlIHRoZSByYXcg ZmlsZXMgdGhhdCBhcmUgbW9zdAo+IGNvbW1vbmx5IHVzZWQgKGFzIG5vIG90aGVyIGNvbnRhaW5l ciBmb3JtYXQgc3VwcG9ydHMgaXQgeWV0KS4KPiAKPiBUaGUgY29kZWMgc291cmNlcyBhcmUgcHJl dHR5IHNpbXBsZTogdGhleSB1c2UgdGhlIHJlZmVyZW5jZSBjb2RlYyB3aXRoCj4gYSBiYXNpYyB3 cmFwcGVyIHRvIGNvbm5lY3QgaXQgdG8gdGhlIEZGbXBlZyBBVkNvZGVjIHN5c3RlbS4gVGhlcmUn cyBhCj4gYml0IG9mIGV4dHJhIGNvZGUgdG8gY29udmVydCBmcm9tIHVuc2lnbmVkIHRvIHNpZ25l ZCA4LWJpdCBhdWRpbywgYXMgdGhlCj4gY29kZWMgaW1wbGVtZW50YXRpb24gb3BlcmF0ZXMgb24g c2lnbmVkIGRhdGEsIHdoaWNoIEZGbXBlZyBkb2Vzbid0IHN1cHBvcnQuCj4gCj4gVGhlIG11eGVy cyBhcmUgbW9zdGx5IGNvcGllZCBmcm9tIHRoZSBQQ00gZGVtdXhlciBhbmQgdGhlIHJhdyBtdXhl cnMsIGFzCj4gREZQV00gaXMgdHlwaWNhbGx5IHN0b3JlZCBhcyByYXcgZGF0YS4KPiAKPiBUaGlz IHBhdGNoIHdpbGwgYmUgaGlnaGx5IHVzZWZ1bCB0byBDb21wdXRlckNyYWZ0IGRldmVsb3BlcnMg d2hvIGFyZQo+IHdvcmtpbmcgd2l0aCBhdWRpbywgYXMgaXQgaXMgdGhlIHN0YW5kYXJkIGZvcm1h dCBmb3IgYXVkaW8sIGFuZCB0aGVyZQo+IGFyZSBmZXcgdXNlci1mcmllbmRseSBlbmNvZGVycyBv dXQgdGhlcmUuIEl0IHdpbGwgc3RyZWFtbGluZSB0aGUgcHJvY2Vzcwo+IGZvciBpbXBvcnRpbmcg YXVkaW8sIHJlcGxhY2luZyB0aGUgbmVlZCB0byB3cml0ZSBjb2RlIG9yIHVzZSB0b29scyB0aGF0 Cj4gcmVxdWlyZSB2ZXJ5IHNwZWNpZmljIGlucHV0IGZvcm1hdHMuCj4gCj4gWW91IG1heSB1c2Ug dGhlIENyYWZ0T1MtUEMgcHJvZ3JhbSAoaHR0cHM6Ly93d3cuY3JhZnRvcy1wYy5jYykgdG8gdGVz dAo+IG91dCBERlBXTSBwbGF5YmFjay4gVG8gdXNlIGl0LCBydW4gdGhlIHByb2dyYW0gYW5kIHR5 cGUgdGhpcyBjb21tYW5kOgo+ICJhdHRhY2ggbGVmdCBzcGVha2VyIiBUaGVuIHJ1biAic3BlYWtl ciBwbGF5IDxmaWxlLmRmcHdtPiIgZm9yIGVhY2ggZmlsZS4KPiBUaGUgYXBwIHJ1bnMgaW4gYSBz YW5kYm94LCBzbyBmaWxlcyBoYXZlIHRvIGJlIHRyYW5zZmVycmVkIGluIGZpcnN0Owo+IHRoZSBl YXNpZXN0IHdheSB0byBkbyB0aGlzIGlzIHRvIHNpbXBseSBkcmFnIHRoZSBmaWxlIG9uIHRoZSB3 aW5kb3cuCj4gKE9yIGNvcHkgZmlsZXMgdG8gdGhlIGZvbGRlciBhdCBodHRwczovL3d3dy5jcmFm dG9zLXBjLmNjL2RvY3Mvc2F2ZXMuKQo+IAo+IFNhbXBsZSBERlBXTSBmaWxlcyBjYW4gYmUgZ2Vu ZXJhdGVkIHdpdGggYW4gb25saW5lIHRvb2wgYXQKPiBodHRwczovL211c2ljLm1hZGVmb3IuY2Mu IFRoaXMgaXMgdGhlIGN1cnJlbnQgYmVzdCB3YXkgdG8gZW5jb2RlIERGUFdNCj4gZmlsZXMuIFNp bXBseSBkcmFnIGFuIGF1ZGlvIGZpbGUgb250byB0aGUgcGFnZSwgYW5kIGl0IHdpbGwgZW5jb2Rl IGl0LAo+IGdpdmluZyBhIGRvd25sb2FkIGxpbmsgb24gdGhlIHBhZ2UuCj4gCj4gSSd2ZSBtYWRl IHN1cmUgdG8gdXBkYXRlIGFsbCBvZiB0aGUgZG9jcyBhcyBwZXIgRGV2ZWxvcGVywqc3LCBhbmQg SSd2ZQo+IHRlc3RlZCBpdCBhcyBwZXIgc2VjdGlvbiA4LiBUZXN0IGZpbGVzIGVuY29kZWQgdG8g REZQV00gcGxheSBjb3JyZWN0bHkKPiBpbiBDb21wdXRlckNyYWZ0LCBhbmQgb3RoZXIgZmlsZXMg dGhhdCB3b3JrIGluIENDIGFyZSBjb3JyZWN0bHkgZGVjb2RlZC4KPiBJIGhhdmUgYWxzbyB2ZXJp ZmllZCB0aGF0IGNvcnJ1cHQgZmlsZXMgZG8gbm90IGNyYXNoIHRoZSBkZWNvZGVyIC0gdGhpcwo+ IHNob3VsZCB0aGVvcmV0aWNhbGx5IG5vdCBiZSBhbiBpc3N1ZSBhcyB0aGUgcmVzdWx0IHNpemUg aXMgY29uc3RhbnQgd2l0aAo+IHJlc3BlY3QgdG8gdGhlIGlucHV0IHNpemUuCj4gCj4gT25lIHRo aW5nIEkgbm90aWNlZCBpcyB0aGF0IHRoaXMgc2FtcGxlIGZpbGUgZmFpbHMgdG8gZGVjb2RlIHRv IHJhdzoKPiBodHRwczovL3NhbXBsZXMuZmZtcGVnLm9yZy9vZ2cvdmlyZ2lucmFkaW8tdGhyZWUt Y29uc2VjdXRpdmUtY2hhaW5zLm9nZwo+IEl0IHJlcG9ydHMgIkFwcGxpY2F0aW9uIHByb3ZpZGVk IGludmFsaWQsIG5vbiBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcKPiBkdHMgdG8gbXV4ZXIgaW4g c3RyZWFtIDAiLCB3aGljaCBhcHBlYXJzIHRvIGJlIGJlY2F1c2UgdGhlIGluaXRpYWwKPiB0aW1l c3RhbXAgaXMgbm90IDA6MDAuIFRoaXMgYWZmZWN0cyBhbGwgcmF3IG11eGVycywgaW5jbHVkaW5n IFBDTS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKYWNrIEJydWllbm5lIDxqYWNrYnJ1aWVubmVAZ21h aWwuY29tPgo+IC0tLQo+ICBDaGFuZ2Vsb2cgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgTUFJ TlRBSU5FUlMgICAgICAgICAgICAgICB8ICAgMiArCj4gIGRvYy9nZW5lcmFsX2NvbnRlbnRzLnRl eGkgfCAgIDIgKwo+ICBsaWJhdmNvZGVjL01ha2VmaWxlICAgICAgIHwgICAyICsKPiAgbGliYXZj b2RlYy9hbGxjb2RlY3MuYyAgICB8ICAgMiArCj4gIGxpYmF2Y29kZWMvY29kZWNfZGVzYy5jICAg fCAgIDcgKysKPiAgbGliYXZjb2RlYy9jb2RlY19pZC5oICAgICB8ICAgMSArCj4gIGxpYmF2Y29k ZWMvZGZwd21kZWMuYyAgICAgfCAxMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ICBsaWJhdmNvZGVjL2RmcHdtZW5jLmMgICAgIHwgMTQwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4gIGxpYmF2Y29kZWMvdXRpbHMuYyAgICAgICAgfCAgIDIg Kwo+ICBsaWJhdmNvZGVjL3ZlcnNpb24uaCAgICAgIHwgICAyICstCj4gIGxpYmF2Zm9ybWF0L01h a2VmaWxlICAgICAgfCAgIDIgKwo+ICBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgIHwgICAyICsK PiAgbGliYXZmb3JtYXQvZGZwd21kZWMuYyAgICB8IDEwNyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ICBsaWJhdmZvcm1hdC9yYXdlbmMuYyAgICAgIHwgIDEzICsrKysKPiAgbGliYXZm b3JtYXQvdmVyc2lvbi5oICAgICB8ICAgNCArLQo+ICAxNiBmaWxlcyBjaGFuZ2VkLCA0MjQgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29k ZWMvZGZwd21kZWMuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9kZnB3bWVuYy5j Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZvcm1hdC9kZnB3bWRlYy5jCj4gCj4gZGlmZiAt LWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+IGluZGV4IDVhZDJjZWYuLmVjNjg4ZGEgMTAw NjQ0Cj4gLS0tIGEvQ2hhbmdlbG9nCj4gKysrIGIvQ2hhbmdlbG9nCj4gQEAgLTQsNiArNCw3IEBA IHJlbGVhc2VzIGFyZSBzb3J0ZWQgZnJvbSB5b3VuZ2VzdCB0byBvbGRlc3QuCj4gIHZlcnNpb24g NS4xOgo+ICAtIGRpYWxvZ3VlIGVuaGFuY2UgYXVkaW8gZmlsdGVyCj4gIC0gZHJvcHBlZCBvYnNv bGV0ZSBYdk1DIGh3YWNjZWwKPiArLSBERlBXTSBhdWRpbyBlbmNvZGVyL2RlY29kZXIgYW5kIHJh dyBtdXhlci9kZW11eGVyCgoKS2VlcCBlbXB0eSBsaW5lIGhlcmUgYWJvdmUgYW5kIGV2ZXJ5d2hl cmUgZWxzZSB5b3UgaGFkIHJlbW92ZWQgdGhlbS4KSXMgcGF0Y2ggY29ycnVwdGVkIHNvbWVob3c/ IEp1c3QgYXR0YWNoIGZpbGUuCkFuZCBzcGxpdCBkZW11eGVyIGFuZCBtdXhlciBhZGRpdGlvbiBm cm9tIGRlY29kZXIgYW5kIGVuY29kZXIuCgo+ICAgIHZlcnNpb24gNS4wOgo+IGRpZmYgLS1naXQg YS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCj4gaW5kZXggZjMzY2NiZC4uOTMxY2Y0YiAxMDA2 NDQKPiAtLS0gYS9NQUlOVEFJTkVSUwo+ICsrKyBiL01BSU5UQUlORVJTCj4gQEAgLTE2MSw2ICsx NjEsNyBAQCBDb2RlY3M6Cj4gICAgY3NjZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZWltYXIgRG9lZmZpbmdlcgo+ICAgIGN1dmlkZGVjLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGltbyBSb3RoZW5waWVsZXIKPiAgICBkY2EqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvbzg2Cj4gKyAgZGZwd20qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBKYWNrIEJydWllbm5lCj4gICAgZGlyYWMqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSb3N0aXNsYXYgUGVobGl2YW5vdgo+ICAgIGRueGhkKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQmFwdGlzdGUgQ291ZHVyaWVyCj4gICAgZG9sYnlfZSogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb284Ngo+IEBAIC00MTUsNiArNDE2LDcgQEAgTXV4ZXJzL0RlbXV4ZXJz Ogo+ICAgIGRhc2hkZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RldmVuIExpdQo+ ICAgIGRhc2hlbmMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2FydGhpY2sgSmV5YXBh bAo+ICAgIGRhdWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVpbWFyIERvZWZm aW5nZXIKPiArICBkZnB3bWRlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIEphY2sgQnJ1 aWVubmUKPiAgICBkc3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9sZWtzaWog UmVtcGVsCj4gICAgZHRzZGVjLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb284Ngo+ ICAgIGR0c2hkZGVjLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGF1bCBCIE1haG9sCj4g ZGlmZiAtLWdpdCBhL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkgYi9kb2MvZ2VuZXJhbF9jb250 ZW50cy50ZXhpCj4gaW5kZXggZGYxNjkyYy4uZmNkOWRhMSAxMDA2NDQKPiAtLS0gYS9kb2MvZ2Vu ZXJhbF9jb250ZW50cy50ZXhpCj4gKysrIGIvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQo+IEBA IC01NzgsNiArNTc4LDcgQEAgbGlicmFyeToKPiAgQGl0ZW0gcmF3IGFwdFggICAgICAgICAgICAg ICAgICBAdGFiIFggQHRhYiBYCj4gIEBpdGVtIHJhdyBhcHRYIEhEICAgICAgICAgICAgICAgQHRh YiBYIEB0YWIgWAo+ICBAaXRlbSByYXcgQ2hpbmVzZSBBVlMgdmlkZW8gICAgIEB0YWIgWCBAdGFi IFgKPiArQGl0ZW0gcmF3IERGUFdNICAgICAgICAgICAgICAgICBAdGFiIFggQHRhYiBYCj4gIEBp dGVtIHJhdyBEaXJhYyAgICAgICAgICAgICAgICAgQHRhYiBYIEB0YWIgWAo+ICBAaXRlbSByYXcg RE54SEQgICAgICAgICAgICAgICAgIEB0YWIgWCBAdGFiIFgKPiAgQGl0ZW0gcmF3IERUUyAgICAg ICAgICAgICAgICAgICBAdGFiIFggQHRhYiBYCj4gQEAgLTExOTQsNiArMTE5NSw3IEBAIGZvbGxv d2luZyBpbWFnZSBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQ6Cj4gIEBpdGVtIENSSSBIQ0EgICAgICAg ICAgICAgICAgQHRhYiAgICAgQHRhYiBYCj4gIEBpdGVtIERlbHBoaW5lIFNvZnR3YXJlIEludGVy bmF0aW9uYWwgQ0lOIGF1ZGlvICBAdGFiICAgICBAdGFiICBYCj4gICAgICBAdGFiIENvZGVjIHVz ZWQgaW4gRGVscGhpbmUgU29mdHdhcmUgSW50ZXJuYXRpb25hbCBnYW1lcy4KPiArQGl0ZW0gREZQ V00gICAgICAgICAgICAgICAgICBAdGFiICBYICBAdGFiICBYCj4gIEBpdGVtIERpZ2l0YWwgU3Bl ZWNoIFN0YW5kYXJkIC0gU3RhbmRhcmQgUGxheSBtb2RlIChEU1MgU1ApIEB0YWIgQHRhYiAgWAo+ ICBAaXRlbSBEaXNjd29ybGQgSUkgQk1WIEF1ZGlvIEB0YWIgICAgIEB0YWIgIFgKPiAgQGl0ZW0g Q09PSyAgICAgICAgICAgICAgICAgICBAdGFiICAgICBAdGFiICBYCj4gZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4gaW5kZXggNjA3NmI0YS4u NzQ3NDIyMCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCj4gKysrIGIvbGliYXZj b2RlYy9NYWtlZmlsZQo+IEBAIC0yODksNiArMjg5LDggQEAgT0JKUy0kKENPTkZJR19ERVJGX0RQ Q01fREVDT0RFUikgICAgICAgKz0gZHBjbS5vCj4gIE9CSlMtJChDT05GSUdfRElSQUNfREVDT0RF UikgICAgICAgICAgICs9IGRpcmFjZGVjLm8gZGlyYWMubyBkaXJhY2RzcC5vCj4gZGlyYWN0YWIu byBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmFjX2Fy aXRoLm8gZGlyYWNfZHd0Lm8KPiBkaXJhY192bGMubwo+ICBPQkpTLSQoQ09ORklHX0RGQV9ERUNP REVSKSAgICAgICAgICAgICArPSBkZmEubwo+ICtPQkpTLSQoQ09ORklHX0RGUFdNX0RFQ09ERVIp ICAgICAgICAgICArPSBkZnB3bWRlYy5vCj4gK09CSlMtJChDT05GSUdfREZQV01fRU5DT0RFUikg ICAgICAgICAgICs9IGRmcHdtZW5jLm8KPiAgT0JKUy0kKENPTkZJR19ETlhIRF9ERUNPREVSKSAg ICAgICAgICAgKz0gZG54aGRkZWMubyBkbnhoZGRhdGEubwo+ICBPQkpTLSQoQ09ORklHX0ROWEhE X0VOQ09ERVIpICAgICAgICAgICArPSBkbnhoZGVuYy5vIGRueGhkZGF0YS5vCj4gIE9CSlMtJChD T05GSUdfRE9MQllfRV9ERUNPREVSKSAgICAgICAgICs9IGRvbGJ5X2UubyBkb2xieV9lX3BhcnNl Lm8KPiBrYmR3aW4ubwo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jIGIvbGli YXZjb2RlYy9hbGxjb2RlY3MuYwo+IGluZGV4IGQxZTEwMTkuLmMzYTBjMjYgMTAwNjQ0Cj4gLS0t IGEvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwo+ICsrKyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMK PiBAQCAtNDM3LDYgKzQzNyw4IEBAIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2Jtdl9hdWRpb19k ZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9jb29rX2RlY29kZXI7Cj4gIGV4dGVy biBjb25zdCBBVkNvZGVjIGZmX2RjYV9lbmNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBm Zl9kY2FfZGVjb2RlcjsKPiArZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZGZwd21fZW5jb2RlcjsK PiArZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZGZwd21fZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0 IEFWQ29kZWMgZmZfZG9sYnlfZV9kZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9k c2RfbHNiZl9kZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9kc2RfbXNiZl9kZWNv ZGVyOwo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyBiL2xpYmF2Y29kZWMv Y29kZWNfZGVzYy5jCj4gaW5kZXggNzI1YzY4Ny4uODdjYTU5MSAxMDA2NDQKPiAtLS0gYS9saWJh dmNvZGVjL2NvZGVjX2Rlc2MuYwo+ICsrKyBiL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCj4gQEAg LTMyMzcsNiArMzIzNywxMyBAQCBzdGF0aWMgY29uc3QgQVZDb2RlY0Rlc2NyaXB0b3IgY29kZWNf ZGVzY3JpcHRvcnNbXSA9Cj4gewo+ICAgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NPTkZJ R19TTUFMTCgiTVNOIFNpcmVuIiksCj4gICAgICAgICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BS T1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1BfTE9TU1ksCj4gICAgICB9LAo+ICsgICAgewo+ ICsgICAgICAgIC5pZCAgICAgICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgICAgICAudHlw ZSAgICAgID0gQVZNRURJQV9UWVBFX0FVRElPLAo+ICsgICAgICAgIC5uYW1lICAgICAgPSAiZGZw d20iLAo+ICsgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiREZQV00x YSBhdWRpbyIpLAoKWW91IGNvdWxkIHVzZSBmdWxsIGRlc2NyaXB0aW9uIGhlcmUgaW5zdGVhZCBv ZiBqdXN0IERGUFdNMWEuCgoKPiArICAgICAgICAucHJvcHMgICAgID0gQVZfQ09ERUNfUFJPUF9M T1NTWSwKPiArICAgIH0sCj4gICAgICAgLyogc3VidGl0bGUgY29kZWNzICovCj4gICAgICB7Cj4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvY29kZWNfaWQuaCBiL2xpYmF2Y29kZWMvY29kZWNfaWQu aAo+IGluZGV4IGFiMjY1ZWMuLjNmZmI5YmQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9jb2Rl Y19pZC5oCj4gKysrIGIvbGliYXZjb2RlYy9jb2RlY19pZC5oCj4gQEAgLTUxNiw2ICs1MTYsNyBA QCBlbnVtIEFWQ29kZWNJRCB7Cj4gICAgICBBVl9DT0RFQ19JRF9IQ0EsCj4gICAgICBBVl9DT0RF Q19JRF9GQVNUQVVESU8sCj4gICAgICBBVl9DT0RFQ19JRF9NU05TSVJFTiwKPiArICAgIEFWX0NP REVDX0lEX0RGUFdNLAoKS2VlcCBlbXB0eSBsaW5lIGhlcmUuCgo+ICAgICAgIC8qIHN1YnRpdGxl IGNvZGVjcyAqLwo+ICAgICAgQVZfQ09ERUNfSURfRklSU1RfU1VCVElUTEUgPSAweDE3MDAwLCAg ICAgICAgICAvLy88IEEgZHVtbXkgSUQgcG9pbnRpbmcKPiBhdCB0aGUgc3RhcnQgb2Ygc3VidGl0 bGUgY29kZWNzLgo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2RmcHdtZGVjLmMgYi9saWJhdmNv ZGVjL2RmcHdtZGVjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjlm MTI4NDEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliYXZjb2RlYy9kZnB3bWRlYy5jCj4gQEAg LTAsMCArMSwxMzggQEAKPiArLyoKPiArICogREZQV00gZGVjb2Rlcgo+ICsgKiBDb3B5cmlnaHQg KGMpIDIwMjIgSmFjayBCcnVpZW5uZQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTYgQmVu ICJHcmVhc2VNb25rZXkiIFJ1c3NlbGwKPiArICoKPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2Yg RkZtcGVnLgo+ICsgKgo+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4gKyAqIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsg Kgo+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiArICogTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICoKPiArICogWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsg KiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlCj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMQo+IFVTQQo+ICsgKi8KPiArCj4gKy8qKgo+ICsg KiBAZmlsZQo+ICsgKiBERlBXTTFhIGRlY29kZXIKPiArICovCj4gKwo+ICsjaW5jbHVkZSAibGli YXZ1dGlsL2ludGVybmFsLmgiCj4gKyNpbmNsdWRlICJhdmNvZGVjLmgiCj4gKyNpbmNsdWRlICJj b2RlY19pZC5oIgo+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiArCj4gK3R5cGVkZWYgc3RydWN0 IHsKPiArICAgIGludCBmcSwgcSwgcywgbHQ7Cj4gK30gREZQV01TdGF0ZTsKPiArCj4gKy8vIERG UFdNIGNvZGVjIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL0NoZW5UaHJlYWQvZGZwd20vYmxvYi9t YXN0ZXIvMWEvCj4gKy8vIExpY2Vuc2VkIGluIHRoZSBwdWJsaWMgZG9tYWluCj4gKwo+ICsjaWZu ZGVmIENPTlNUX1BSRUMKPiArI2RlZmluZSBDT05TVF9QUkVDIDEwCj4gKyNlbmRpZgo+ICsKPiAr c3RhdGljIHZvaWQgYXVfZGVjb21wcmVzcyhERlBXTVN0YXRlICpzdGF0ZSwgaW50IGZzLCBpbnQg bGVuLCBpbnQ4X3QKPiAqb3V0YnVmLCB1aW50OF90ICppbmJ1ZikKPiArewo+ICsgICAgaW50IGks IGo7Cj4gKyAgICB1aW50OF90IGQ7Cj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsK PiArICAgICAgICAvLyBnZXQgYml0cwo+ICsgICAgICAgIGQgPSAqKGluYnVmKyspOwo+ICsgICAg ICAgIGZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsKPiArICAgICAgICAgICAgaW50IG5xLCBscSwg c3QsIG5zLCBvdjsKPiArICAgICAgICAgICAgLy8gc2V0IHRhcmdldAo+ICsgICAgICAgICAgICBp bnQgdCA9ICgoZCYxKSA/IDEyNyA6IC0xMjgpOwo+ICsgICAgICAgICAgICBkID4+PSAxOwo+ICsK PiArICAgICAgICAgICAgLy8gYWRqdXN0IGNoYXJnZQo+ICsgICAgICAgICAgICBucSA9IHN0YXRl LT5xICsgKChzdGF0ZS0+cyAqICh0LXN0YXRlLT5xKSArCj4gKDE8PChDT05TVF9QUkVDLTEpKSk+ PkNPTlNUX1BSRUMpOwo+ICsgICAgICAgICAgICBpZihucSA9PSBzdGF0ZS0+cSAmJiBucSAhPSB0 KQo+ICsgICAgICAgICAgICAgICAgc3RhdGUtPnEgKz0gKHQgPT0gMTI3ID8gMSA6IC0xKTsKPiAr ICAgICAgICAgICAgbHEgPSBzdGF0ZS0+cTsKPiArICAgICAgICAgICAgc3RhdGUtPnEgPSBucTsK PiArCj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBzdHJlbmd0aAo+ICsgICAgICAgICAgICBzdCA9 ICh0ICE9IHN0YXRlLT5sdCA/IDAgOiAoMTw8Q09OU1RfUFJFQyktMSk7Cj4gKyAgICAgICAgICAg IG5zID0gc3RhdGUtPnM7Cj4gKyAgICAgICAgICAgIGlmKG5zICE9IHN0KQo+ICsgICAgICAgICAg ICAgICAgbnMgKz0gKHN0ICE9IDAgPyAxIDogLTEpOwo+ICsjaWYgQ09OU1RfUFJFQyA+IDgKPiAr ICAgICAgICAgICAgaWYobnMgPCAxKygxPDwoQ09OU1RfUFJFQy04KSkpIG5zID0gMSsoMTw8KENP TlNUX1BSRUMtOCkpOwo+ICsjZW5kaWYKPiArICAgICAgICAgICAgc3RhdGUtPnMgPSBuczsKPiAr Cj4gKyAgICAgICAgICAgIC8vIEZJTFRFUjogcGVyZm9ybSBhbnRpamVyawo+ICsgICAgICAgICAg ICBvdiA9ICh0ICE9IHN0YXRlLT5sdCA/IChucStscSk+PjEgOiBucSk7Cj4gKwo+ICsgICAgICAg ICAgICAvLyBGSUxURVI6IHBlcmZvcm0gTFBGCj4gKyAgICAgICAgICAgIHN0YXRlLT5mcSArPSAo KGZzKihvdi1zdGF0ZS0+ZnEpICsgMHg4MCk+PjgpOwo+ICsgICAgICAgICAgICBvdiA9IHN0YXRl LT5mcTsKPiArCj4gKyAgICAgICAgICAgIC8vIG91dHB1dCBzYW1wbGUKPiArICAgICAgICAgICAg KihvdXRidWYrKykgPSBvdjsKPiArCj4gKyAgICAgICAgICAgIHN0YXRlLT5sdCA9IHQ7Cj4gKyAg ICAgICAgfQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZGVj X2luaXQoc3RydWN0IEFWQ29kZWNDb250ZXh0ICpjdHgpCj4gK3sKPiArICAgIERGUFdNU3RhdGUg KnN0YXRlID0gY3R4LT5wcml2X2RhdGE7Cj4gKwo+ICsgICAgc3RhdGUtPmZxID0gMDsKPiArICAg IHN0YXRlLT5xID0gMDsKPiArICAgIHN0YXRlLT5zID0gMDsKPiArICAgIHN0YXRlLT5sdCA9IC0x Mjg7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBhdl9jb2xkIGludCBk ZnB3bV9kZWNfZW5kKHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4KQo+ICt7Cj4gKyAgICByZXR1 cm4gMDsKPiArfQoKUmVtb3ZlIGlmIG5vdCBnb25uYSBiZSB1c2VkIGFuZCBpcyBlbXB0eS4KCj4g Kwo+ICtzdGF0aWMgaW50IGRmcHdtX2RlY19mcmFtZShzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmN0 eCwgdm9pZCAqZGF0YSwKPiArICAgIGludCAqZ290X2ZyYW1lLCBzdHJ1Y3QgQVZQYWNrZXQgKnBh Y2tldCkKPiArewo+ICsgICAgREZQV01TdGF0ZSAqc3RhdGUgPSBjdHgtPnByaXZfZGF0YTsKPiAr ICAgIEFWRnJhbWUgKmZyYW1lID0gZGF0YTsKPiArCj4gKyAgICBmcmFtZS0+Zm9ybWF0ID0gQVZf U0FNUExFX0ZNVF9VODsKPiArICAgIGZyYW1lLT5uYl9zYW1wbGVzID0gcGFja2V0LT5zaXplICog ODsKPiArICAgIGZyYW1lLT5jaGFubmVsX2xheW91dCA9IEFWX0NIX0xBWU9VVF9NT05POwo+ICsK PiArICAgIGF2X2ZyYW1lX2dldF9idWZmZXIoZnJhbWUsIDApOwoKVXNlIGZmX2dldF9idWZmZXIo KQoKU2VlIGhvdyBsaWJhdmNvZGVjL3BjbS5jIGNvZGVjcyBoYW5kbGVzIHRoYXQuCgo+ICsKPiAr ICAgIGF1X2RlY29tcHJlc3Moc3RhdGUsIDEwMCwgcGFja2V0LT5zaXplLCBmcmFtZS0+ZGF0YVsw XSwgcGFja2V0LT5kYXRhKTsKPiArCj4gKyAgICAvLyBjb252ZXJ0IGZyb20gc2lnbmVkIHRvIHVu c2lnbmVkIDgtYml0LCBhcyBERlBXTSBvdXRwdXRzIFM4IGJ1dAo+IEZGbXBlZyBuZWVkcyBVOAo+ ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYWNrZXQtPnNpemUgKiA4OyBpKyspIGZyYW1lLT5k YXRhWzBdW2ldID0KPiAoKGludDhfdCopZnJhbWUtPmRhdGFbMF0pW2ldICsgMTI4OwoKQ2FudCB5 b3UgcmVtb3ZlIHRoaXMgd3JhcHBlciwgZm9yIHN1Y2ggdHJpdmlhbCBjb2RlIGlzIG5vdCBoZWxw aW5nIGhlcmUuClRoYW4geW91IGNhbiBkbyBjb252ZXJzaW9uIGZyb20gUzggdG8gVTggb24gdGhl IGZseSB3aXRob3V0IG5lZWQgZm9yIGV4dHJhIGJ1ZmZlci4KCj4gKwo+ICsgICAgaWYgKGdvdF9m cmFtZSkgKmdvdF9mcmFtZSA9IDE7Cj4gKyAgICByZXR1cm4gcGFja2V0LT5zaXplOwo+ICt9Cj4g Kwo+ICtjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2RlY29kZXIgPSB7Cj4gKyAgICAubmFtZSAgICAg ICAgICAgPSAiZGZwd20iLAo+ICsgICAgLmxvbmdfbmFtZSAgICAgID0gTlVMTF9JRl9DT05GSUdf U01BTEwoIkRGUFdNMWEgYXVkaW8iKSwKPiArICAgIC50eXBlICAgICAgICAgICA9IEFWTUVESUFf VFlQRV9BVURJTywKPiArICAgIC5pZCAgICAgICAgICAgICA9IEFWX0NPREVDX0lEX0RGUFdNLAo+ ICsgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKERGUFdNU3RhdGUpLAo+ICsgICAgLmluaXQg ICAgICAgICAgID0gZGZwd21fZGVjX2luaXQsCj4gKyAgICAuY2xvc2UgICAgICAgICAgPSBkZnB3 bV9kZWNfZW5kLAo+ICsgICAgLmRlY29kZSAgICAgICAgID0gZGZwd21fZGVjX2ZyYW1lLAo+ICsg ICAgLmNhcGFiaWxpdGllcyAgID0gMCwKClRoaXMgZmxhZ3MgYXJlIG5vdCBjb3JyZWN0LCBvciBv cHRpbWFsIGluIGFueSB3YXkuCgo+ICsgICAgLmNhcHNfaW50ZXJuYWwgID0gRkZfQ09ERUNfQ0FQ X0lOSVRfVEhSRUFEU0FGRSwKPiArfTsKPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKPiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kZnB3bWVuYy5jIGIvbGliYXZjb2RlYy9kZnB3bWVuYy5j Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi45N2ZjNDJlCj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL2xpYmF2Y29kZWMvZGZwd21lbmMuYwo+IEBAIC0wLDAgKzEsMTQwIEBA Cj4gKy8qCj4gKyAqIERGUFdNIGVuY29kZXIKPiArICogQ29weXJpZ2h0IChjKSAyMDIyIEphY2sg QnJ1aWVubmUKPiArICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE2IEJlbiAiR3JlYXNlTW9ua2V5 IiBSdXNzZWxsCj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiArICoK PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgo+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogRkZtcGVn IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9u ZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BIDAyMTEwLTEzMDEKPiBVU0EKPiArICovCj4gKwo+ICsvKioKPiArICogQGZpbGUKPiArICog REZQV00xYSBlbmNvZGVyCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5h bC5oIgo+ICsjaW5jbHVkZSAiYXZjb2RlYy5oIgo+ICsjaW5jbHVkZSAiY29kZWNfaWQuaCIKPiAr I2luY2x1ZGUgImludGVybmFsLmgiCj4gKwo+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gKyAgICBpbnQg ZnEsIHEsIHMsIGx0Owo+ICt9IERGUFdNU3RhdGU7Cj4gKwo+ICsvLyBERlBXTSBjb2RlYyBmcm9t IGh0dHBzOi8vZ2l0aHViLmNvbS9DaGVuVGhyZWFkL2RmcHdtL2Jsb2IvbWFzdGVyLzFhLwo+ICsv LyBMaWNlbnNlZCBpbiB0aGUgcHVibGljIGRvbWFpbgo+ICsKPiArI2lmbmRlZiBDT05TVF9QUkVD Cj4gKyNkZWZpbmUgQ09OU1RfUFJFQyAxMAo+ICsjZW5kaWYKPiArCj4gKy8vIG5vdGUsIGxlbiBk ZW5vdGVzIGhvdyBtYW55IGNvbXByZXNzZWQgYnl0ZXMgdGhlcmUgYXJlICh1bmNvbXByZXNzZWQK PiBieXRlcyAvIDgpLgo+ICtzdGF0aWMgdm9pZCBhdV9jb21wcmVzcyhERlBXTVN0YXRlICpzdGF0 ZSwgaW50IGxlbiwgdWludDhfdCAqb3V0YnVmLCBpbnQ4X3QKPiAqaW5idWYpCj4gK3sKPiArICAg IGludCBpLCBqOwo+ICsgICAgdWludDhfdCBkID0gMDsKPiArICAgIGZvciAoaSA9IDA7IGkgPCBs ZW47IGkrKykgewo+ICsgICAgICAgIGZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsKPiArICAgICAg ICAgICAgaW50IG5xLCBzdCwgbnM7Cj4gKyAgICAgICAgICAgIC8vIGdldCBzYW1wbGUKPiArICAg ICAgICAgICAgaW50IHYgPSAqKGluYnVmKyspOwo+ICsgICAgICAgICAgICAvLyBzZXQgYml0IC8g dGFyZ2V0Cj4gKyAgICAgICAgICAgIGludCB0ID0gKHYgPCBzdGF0ZS0+cSB8fCB2ID09IC0xMjgg PyAtMTI4IDogMTI3KTsKPiArICAgICAgICAgICAgZCA+Pj0gMTsKPiArICAgICAgICAgICAgaWYo dCA+IDApCj4gKyAgICAgICAgICAgICAgICBkIHw9IDB4ODA7Cj4gKwo+ICsgICAgICAgICAgICAv LyBhZGp1c3QgY2hhcmdlCj4gKyAgICAgICAgICAgIG5xID0gc3RhdGUtPnEgKyAoKHN0YXRlLT5z ICogKHQtc3RhdGUtPnEpICsKPiAoMTw8KENPTlNUX1BSRUMtMSkpKT4+Q09OU1RfUFJFQyk7Cj4g KyAgICAgICAgICAgIGlmKG5xID09IHN0YXRlLT5xICYmIG5xICE9IHQpCj4gKyAgICAgICAgICAg ICAgICBucSArPSAodCA9PSAxMjcgPyAxIDogLTEpOwo+ICsgICAgICAgICAgICBzdGF0ZS0+cSA9 IG5xOwo+ICsKPiArICAgICAgICAgICAgLy8gYWRqdXN0IHN0cmVuZ3RoCj4gKyAgICAgICAgICAg IHN0ID0gKHQgIT0gc3RhdGUtPmx0ID8gMCA6ICgxPDxDT05TVF9QUkVDKS0xKTsKPiArICAgICAg ICAgICAgbnMgPSBzdGF0ZS0+czsKPiArICAgICAgICAgICAgaWYobnMgIT0gc3QpCj4gKyAgICAg ICAgICAgICAgICBucyArPSAoc3QgIT0gMCA/IDEgOiAtMSk7Cj4gKyNpZiBDT05TVF9QUkVDID4g OAo+ICsgICAgICAgICAgICBpZihucyA8IDErKDE8PChDT05TVF9QUkVDLTgpKSkgbnMgPSAxKygx PDwoQ09OU1RfUFJFQy04KSk7Cj4gKyNlbmRpZgo+ICsgICAgICAgICAgICBzdGF0ZS0+cyA9IG5z Owo+ICsKPiArICAgICAgICAgICAgc3RhdGUtPmx0ID0gdDsKPiArCj4gKyAgICAgICAgICAgIC8v ZnByaW50ZihzdGRlcnIsICIlNGkgJTRpICU0aSAlNGlcbiIsIHYsICpxLCAqcywgdCk7Cj4gKyAg ICAgICAgICAgIC8vdXNsZWVwKDEwMDAwKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIC8v IG91dHB1dCBiaXRzCj4gKyAgICAgICAgKihvdXRidWYrKykgPSBkOwo+ICsgICAgfQo+ICt9Cj4g Kwo+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZW5jX2luaXQoc3RydWN0IEFWQ29kZWNDb250 ZXh0ICpjdHgpCj4gK3sKPiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7 Cj4gKwo+ICsgICAgc3RhdGUtPmZxID0gMDsKPiArICAgIHN0YXRlLT5xID0gMDsKPiArICAgIHN0 YXRlLT5zID0gMDsKPiArICAgIHN0YXRlLT5sdCA9IC0xMjg7Cj4gKwo+ICsgICAgcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYyBhdl9jb2xkIGludCBkZnB3bV9lbmNfZW5kKHN0cnVjdCBBVkNv ZGVjQ29udGV4dCAqY3R4KQo+ICt7Cj4gKyAgICByZXR1cm4gMDsKPiArfQoKUGxlYXNlIHJlbW92 ZSBmdW5jdGlvbnMgdGhhdCBkbyBub3RoaW5nLgoKPiArCj4gK3N0YXRpYyBpbnQgZGZwd21fZW5j X2ZyYW1lKHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4LCBzdHJ1Y3QgQVZQYWNrZXQKPiAqcGFj a2V0LAo+ICsgICAgY29uc3Qgc3RydWN0IEFWRnJhbWUgKmZyYW1lLCBpbnQgKmdvdF9wYWNrZXQp Cj4gK3sKPiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7Cj4gKyAgICBp bnQgc2l6ZSA9IGZyYW1lLT5uYl9zYW1wbGVzIC8gOCArIChmcmFtZS0+bmJfc2FtcGxlcyAlIDgg PiAwID8gMSA6IDApOwo+ICsgICAgaW50OF90ICpkYXRhID0gYXZfbWFsbG9jKHNpemUgKiA4KTsK PiArCj4gKyAgICBpZiAoIWRhdGEpIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gKwo+ICsgICAg aWYgKHBhY2tldC0+c2l6ZSA8IHNpemUpIGF2X2dyb3dfcGFja2V0KHBhY2tldCwgc2l6ZSAtIHBh Y2tldC0+c2l6ZSk7Cj4gKyAgICBlbHNlIGlmIChwYWNrZXQtPnNpemUgPiBzaXplKSBhdl9zaHJp bmtfcGFja2V0KHBhY2tldCwgc2l6ZSk7Cj4gKwo+ICsgICAgLy8gbWFrZSBhIHRlbXBvcmFyeSBT OCBidWZmZXIgYXMgREZQV00gbmVlZHMgUzggYnV0IEZGbXBlZyB1c2VzIFU4Cj4gKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IGZyYW1lLT5uYl9zYW1wbGVzOyBpKyspIGRhdGFbaV0gPSBmcmFtZS0+ ZGF0YVswXVtpXQo+IC0gMTI4Owo+ICsgICAgZm9yIChpbnQgaSA9IGZyYW1lLT5uYl9zYW1wbGVz OyBpIDwgc2l6ZSAqIDg7IGkrKykgZGF0YVtpXSA9IDA7Cj4gKwo+ICsgICAgYXVfY29tcHJlc3Mo c3RhdGUsIHNpemUsIHBhY2tldC0+ZGF0YSwgZGF0YSk7Cj4gKyAgICBhdl9mcmVlKGRhdGEpOwoK VXNpbmcgZXh0cmEgYnVmZmVyIGZvciBzdWNoIHRyaXZpYWwgY29kZSBpcyBub3Qgb3B0aW1hbCBz b2x1dGlvbi4KCj4gKwo+ICsgICAgaWYgKGdvdF9wYWNrZXQpICpnb3RfcGFja2V0ID0gMTsKPiAr ICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2VuY29kZXIg PSB7Cj4gKyAgICAubmFtZSAgICAgICAgICAgID0gImRmcHdtIiwKPiArICAgIC5sb25nX25hbWUg ICAgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiREZQV00xYSBhdWRpbyIpLAo+ICsgICAgLnR5 cGUgICAgICAgICAgICA9IEFWTUVESUFfVFlQRV9BVURJTywKPiArICAgIC5pZCAgICAgICAgICAg ICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgIC5wcml2X2RhdGFfc2l6ZSAgPSBzaXplb2Yo REZQV01TdGF0ZSksCj4gKyAgICAuaW5pdCAgICAgICAgICAgID0gZGZwd21fZW5jX2luaXQsCj4g KyAgICAuY2xvc2UgICAgICAgICAgID0gZGZwd21fZW5jX2VuZCwKPiArICAgIC5lbmNvZGUyICAg ICAgICAgPSBkZnB3bV9lbmNfZnJhbWUsCj4gKyAgICAuc2FtcGxlX2ZtdHMgICAgID0gKGNvbnN0 IGVudW0gQVZTYW1wbGVGb3JtYXRbXSl7QVZfU0FNUExFX0ZNVF9VOCwKPiBBVl9TQU1QTEVfRk1U X05PTkV9LAo+ICsgICAgLmNoYW5uZWxfbGF5b3V0cyA9IChjb25zdCB1aW50NjRfdFtdKXtBVl9D SF9MQVlPVVRfTU9OTywgMH0sCj4gKyAgICAuY2FwYWJpbGl0aWVzICAgID0gQVZfQ09ERUNfQ0FQ X1ZBUklBQkxFX0ZSQU1FX1NJWkUsCj4gKyAgICAuY2Fwc19pbnRlcm5hbCAgID0gRkZfQ09ERUNf Q0FQX0lOSVRfVEhSRUFEU0FGRSwKPiArfTsKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy91dGls cy5jIGIvbGliYXZjb2RlYy91dGlscy5jCj4gaW5kZXggNmY5ZDkwYS4uMDY2ZGE3NiAxMDA2NDQK PiAtLS0gYS9saWJhdmNvZGVjL3V0aWxzLmMKPiArKysgYi9saWJhdmNvZGVjL3V0aWxzLmMKPiBA QCAtNTc3LDYgKzU3Nyw4IEBAIGVudW0gQVZDb2RlY0lEIGF2X2dldF9wY21fY29kZWMoZW51bSBB VlNhbXBsZUZvcm1hdCBmbXQsCj4gaW50IGJlKQo+ICBpbnQgYXZfZ2V0X2JpdHNfcGVyX3NhbXBs ZShlbnVtIEFWQ29kZWNJRCBjb2RlY19pZCkKPiAgewo+ICAgICAgc3dpdGNoIChjb2RlY19pZCkg ewo+ICsgICAgY2FzZSBBVl9DT0RFQ19JRF9ERlBXTToKPiArICAgICAgICByZXR1cm4gMTsKPiAg ICAgIGNhc2UgQVZfQ09ERUNfSURfQURQQ01fU0JQUk9fMjoKPiAgICAgICAgICByZXR1cm4gMjsK PiAgICAgIGNhc2UgQVZfQ09ERUNfSURfQURQQ01fU0JQUk9fMzoKPiBkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy92ZXJzaW9uLmggYi9saWJhdmNvZGVjL3ZlcnNpb24uaAo+IGluZGV4IGQ5MDA1MDMu Ljg0ZjM5NzkgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy92ZXJzaW9uLmgKPiArKysgYi9saWJh dmNvZGVjL3ZlcnNpb24uaAo+IEBAIC0yOCw3ICsyOCw3IEBACj4gICNpbmNsdWRlICJsaWJhdnV0 aWwvdmVyc2lvbi5oIgo+ICAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgIDU5Cj4g LSNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SICAyMQo+ICsjZGVmaW5lIExJQkFWQ09E RUNfVkVSU0lPTl9NSU5PUiAgMjIKPiAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8g MTAwCj4gICAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgQVZfVkVSU0lPTl9JTlQoTElC QVZDT0RFQ19WRVJTSU9OX01BSk9SLCBcCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01ha2Vm aWxlIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKPiBpbmRleCA2NTY2ZTQwLi5iODkwNzNhIDEwMDY0 NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4gKysrIGIvbGliYXZmb3JtYXQvTWFrZWZp bGUKPiBAQCAtMTY1LDYgKzE2NSw4IEBAIE9CSlMtJChDT05GSUdfREFVRF9NVVhFUikgICAgICAg ICAgICAgICAgKz0gZGF1ZGVuYy5vCj4gIE9CSlMtJChDT05GSUdfRENTVFJfREVNVVhFUikgICAg ICAgICAgICAgKz0gZGNzdHIubwo+ICBPQkpTLSQoQ09ORklHX0RFUkZfREVNVVhFUikgICAgICAg ICAgICAgICs9IGRlcmYubyBwY20ubwo+ICBPQkpTLSQoQ09ORklHX0RGQV9ERU1VWEVSKSAgICAg ICAgICAgICAgICs9IGRmYS5vCj4gK09CSlMtJChDT05GSUdfREZQV01fREVNVVhFUikgICAgICAg ICAgICAgKz0gZGZwd21kZWMubyBwY20ubwo+ICtPQkpTLSQoQ09ORklHX0RGUFdNX01VWEVSKSAg ICAgICAgICAgICAgICs9IHJhd2VuYy5vCj4gIE9CSlMtJChDT05GSUdfREhBVl9ERU1VWEVSKSAg ICAgICAgICAgICAgKz0gZGhhdi5vCj4gIE9CSlMtJChDT05GSUdfRElSQUNfREVNVVhFUikgICAg ICAgICAgICAgKz0gZGlyYWNkZWMubyByYXdkZWMubwo+ICBPQkpTLSQoQ09ORklHX0RJUkFDX01V WEVSKSAgICAgICAgICAgICAgICs9IHJhd2VuYy5vCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0 L2FsbGZvcm1hdHMuYyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+IGluZGV4IGQwNjZhNzcu LjU4N2FkNTkgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4gKysrIGIv bGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4gQEAgLTEyNCw2ICsxMjQsOCBAQCBleHRlcm4gY29u c3QgQVZPdXRwdXRGb3JtYXQgZmZfZGF1ZF9tdXhlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWSW5wdXRG b3JtYXQgIGZmX2Rjc3RyX2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBm Zl9kZXJmX2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9kZmFfZGVt dXhlcjsKPiArZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2RmcHdtX2RlbXV4ZXI7Cj4g K2V4dGVybiBjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9kZnB3bV9tdXhlcjsKPiAgZXh0ZXJuIGNv bnN0IEFWSW5wdXRGb3JtYXQgIGZmX2RoYXZfZGVtdXhlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWSW5w dXRGb3JtYXQgIGZmX2RpcmFjX2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBBVk91dHB1dEZvcm1h dCBmZl9kaXJhY19tdXhlcjsKPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZGZwd21kZWMuYyBi L2xpYmF2Zm9ybWF0L2RmcHdtZGVjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAuLmFkNWJmYTUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliYXZmb3JtYXQvZGZwd21k ZWMuYwo+IEBAIC0wLDAgKzEsMTA3IEBACj4gKy8qCj4gKyAqIFJBVyBQQ00gZGVtdXhlcnMKPiAr ICogQ29weXJpZ2h0IChjKSAyMDAyIEZhYnJpY2UgQmVsbGFyZAo+ICsgKiBDb3B5cmlnaHQgKGMp IDIwMjIgSmFjayBCcnVpZW5uZQo+ICsgKgo+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1w ZWcuCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPiArICogdmVyc2lvbiAyLjEgb2YgdGhl IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqCj4g KyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAo+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKgo+ICsgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExp Y2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh cmUKPiArICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v ciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxCj4gVVNBCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImxp YmF2dXRpbC9hdnN0cmluZy5oIgo+ICsjaW5jbHVkZSAiYXZmb3JtYXQuaCIKPiArI2luY2x1ZGUg ImludGVybmFsLmgiCj4gKyNpbmNsdWRlICJwY20uaCIKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9s b2cuaCIKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKPiArI2luY2x1ZGUgImxpYmF2dXRp bC9hdmFzc2VydC5oIgo+ICsKPiArdHlwZWRlZiBzdHJ1Y3QgREZQV01BdWRpb0RlbXV4ZXJDb250 ZXh0IHsKPiArICAgIEFWQ2xhc3MgKmNsYXNzOwo+ICsgICAgaW50IHNhbXBsZV9yYXRlOwo+ICt9 IERGUFdNQXVkaW9EZW11eGVyQ29udGV4dDsKPiArCj4gK3N0YXRpYyBpbnQgZGZwd21fcmVhZF9o ZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQo+ICt7Cj4gKyAgICBERlBXTUF1ZGlvRGVtdXhlckNv bnRleHQgKnMxID0gcy0+cHJpdl9kYXRhOwo+ICsgICAgQVZDb2RlY1BhcmFtZXRlcnMgKnBhcjsK PiArICAgIEFWU3RyZWFtICpzdDsKPiArICAgIHVpbnQ4X3QgKm1pbWVfdHlwZSA9IE5VTEw7Cj4g Kwo+ICsgICAgc3QgPSBhdmZvcm1hdF9uZXdfc3RyZWFtKHMsIE5VTEwpOwo+ICsgICAgaWYgKCFz dCkKPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsgICAgcGFyID0gc3QtPmNv ZGVjcGFyOwo+ICsKPiArICAgIHBhci0+Y29kZWNfdHlwZSAgPSBBVk1FRElBX1RZUEVfQVVESU87 Cj4gKyAgICBwYXItPmNvZGVjX2lkICAgID0gcy0+aWZvcm1hdC0+cmF3X2NvZGVjX2lkOwo+ICsg ICAgcGFyLT5zYW1wbGVfcmF0ZSA9IHMxLT5zYW1wbGVfcmF0ZTsKPiArICAgIHBhci0+Y2hhbm5l bHMgICAgPSAxOwo+ICsKPiArICAgIGF2X29wdF9nZXQocy0+cGIsICJtaW1lX3R5cGUiLCBBVl9P UFRfU0VBUkNIX0NISUxEUkVOLCAmbWltZV90eXBlKTsKPiArICAgIGlmIChtaW1lX3R5cGUgJiYg cy0+aWZvcm1hdC0+bWltZV90eXBlKSB7Cj4gKyAgICAgICAgaW50IHJhdGUgPSAwOwo+ICsgICAg ICAgIGNvbnN0IGNoYXIgKm9wdGlvbnM7Cj4gKyAgICAgICAgaWYgKGF2X3N0cmlzdGFydChtaW1l X3R5cGUsIHMtPmlmb3JtYXQtPm1pbWVfdHlwZSwgJm9wdGlvbnMpKSB7IC8qCj4gYXVkaW8vTDE2 ICovCj4gKyAgICAgICAgICAgIHdoaWxlIChvcHRpb25zID0gc3RyY2hyKG9wdGlvbnMsICc7Jykp IHsKPiArICAgICAgICAgICAgICAgIG9wdGlvbnMrKzsKPiArICAgICAgICAgICAgICAgIGlmICgh cmF0ZSkKPiArICAgICAgICAgICAgICAgICAgICBzc2NhbmYob3B0aW9ucywgIiByYXRlPSVkIiwg ICAgICZyYXRlKTsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBpZiAocmF0ZSA8PSAw KSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICJJbnZhbGlkIHNhbXBsZV9yYXRlIGZvdW5kIGluIG1pbWVfdHlwZSBc IiVzXCJcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgbWltZV90eXBlKTsKPiArICAgICAg ICAgICAgICAgIGF2X2ZyZWVwKCZtaW1lX3R5cGUpOwo+ICsgICAgICAgICAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgcGFy LT5zYW1wbGVfcmF0ZSA9IHJhdGU7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsgICAgYXZfZnJl ZXAoJm1pbWVfdHlwZSk7Cj4gKwo+ICsgICAgcGFyLT5iaXRzX3Blcl9jb2RlZF9zYW1wbGUgPSBh dl9nZXRfYml0c19wZXJfc2FtcGxlKHBhci0+Y29kZWNfaWQpOwo+ICsKPiArICAgIGF2X2Fzc2Vy dDAocGFyLT5iaXRzX3Blcl9jb2RlZF9zYW1wbGUgPiAwKTsKPiArCj4gKyAgICBwYXItPmJsb2Nr X2FsaWduID0gMTsKPiArCj4gKyAgICBhdnByaXZfc2V0X3B0c19pbmZvKHN0LCA2NCwgMSwgcGFy LT5zYW1wbGVfcmF0ZSk7Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0 IEFWT3B0aW9uIGRmcHdtX29wdGlvbnNbXSA9IHsKPiArICAgIHsgInNhbXBsZV9yYXRlIiwgIiIs IG9mZnNldG9mKERGUFdNQXVkaW9EZW11eGVyQ29udGV4dCwgc2FtcGxlX3JhdGUpLAo+IEFWX09Q VF9UWVBFX0lOVCwgey5pNjQgPSA0NDEwMH0sIDAsIElOVF9NQVgsIEFWX09QVF9GTEFHX0RFQ09E SU5HX1BBUkFNIH0sCj4gKyAgICB7IE5VTEwgfSwKPiArfTsKPiArc3RhdGljIGNvbnN0IEFWQ2xh c3MgZGZwd21fZGVtdXhlcl9jbGFzcyA9IHsKPiArICAgIC5jbGFzc19uYW1lID0gImRmcHdtIGRl bXV4ZXIiLAo+ICsgICAgLml0ZW1fbmFtZSAgPSBhdl9kZWZhdWx0X2l0ZW1fbmFtZSwKPiArICAg IC5vcHRpb24gICAgID0gZGZwd21fb3B0aW9ucywKPiArICAgIC52ZXJzaW9uICAgID0gTElCQVZV VElMX1ZFUlNJT05fSU5ULAo+ICt9Owo+ICsKPiArY29uc3QgQVZJbnB1dEZvcm1hdCBmZl9kZnB3 bV9kZW11eGVyID0gewo+ICsgICAgLm5hbWUgICAgICAgICAgID0gImRmcHdtIiwKPiArICAgIC5s b25nX25hbWUgICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJyYXcgREZQV00xYSBkYXRhIiks Cj4gKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoREZQV01BdWRpb0RlbXV4ZXJDb250ZXh0 KSwKPiArICAgIC5yZWFkX2hlYWRlciAgICA9IGRmcHdtX3JlYWRfaGVhZGVyLAo+ICsgICAgLnJl YWRfcGFja2V0ICAgID0gZmZfcGNtX3JlYWRfcGFja2V0LAo+ICsgICAgLnJlYWRfc2VlayAgICAg ID0gZmZfcGNtX3JlYWRfc2VlaywKPiArICAgIC5mbGFncyAgICAgICAgICA9IEFWRk1UX0dFTkVS SUNfSU5ERVgsCj4gKyAgICAuZXh0ZW5zaW9ucyAgICAgPSAiZGZwd20iLAo+ICsgICAgLnJhd19j b2RlY19pZCAgID0gQVZfQ09ERUNfSURfREZQV00sCj4gKyAgICAucHJpdl9jbGFzcyAgICAgPSAm ZGZwd21fZGVtdXhlcl9jbGFzcywKPiArfTsKPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcmF3ZW5jLmMgYi9saWJhdmZvcm1hdC9yYXdlbmMu Ywo+IGluZGV4IDRiYmFlNzcuLjE3YjYyN2IgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvcmF3 ZW5jLmMKPiArKysgYi9saWJhdmZvcm1hdC9yYXdlbmMuYwo+IEBAIC0xOTIsNiArMTkyLDE5IEBA IGNvbnN0IEFWT3V0cHV0Rm9ybWF0IGZmX2RhdGFfbXV4ZXIgPSB7Cj4gIH07Cj4gICNlbmRpZgo+ ICArI2lmIENPTkZJR19ERlBXTV9NVVhFUgo+ICtjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9kZnB3 bV9tdXhlciA9IHsKPiArICAgIC5uYW1lICAgICAgICAgICAgICA9ICJkZnB3bSIsCj4gKyAgICAu bG9uZ19uYW1lICAgICAgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgicmF3IERGUFdNMWEgYXVk aW8iKSwKPiArICAgIC5leHRlbnNpb25zICAgICAgICA9ICJkZnB3bSIsCj4gKyAgICAuYXVkaW9f Y29kZWMgICAgICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgIC52aWRlb19jb2RlYyAgICAg ICA9IEFWX0NPREVDX0lEX05PTkUsCj4gKyAgICAuaW5pdCAgICAgICAgICAgICAgPSBmb3JjZV9v bmVfc3RyZWFtLAo+ICsgICAgLndyaXRlX3BhY2tldCAgICAgID0gZmZfcmF3X3dyaXRlX3BhY2tl dCwKPiArICAgIC5mbGFncyAgICAgICAgICAgICA9IEFWRk1UX05PVElNRVNUQU1QUywKPiArfTsK PiArI2VuZGlmCj4gKwo+ICAjaWYgQ09ORklHX0RJUkFDX01VWEVSCj4gIGNvbnN0IEFWT3V0cHV0 Rm9ybWF0IGZmX2RpcmFjX211eGVyID0gewo+ICAgICAgLm5hbWUgICAgICAgICAgICAgID0gImRp cmFjIiwKPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvdmVyc2lvbi5oIGIvbGliYXZmb3JtYXQv dmVyc2lvbi5oCj4gaW5kZXggMjYyMzQ1Ny4uMGY4OWFmNCAxMDA2NDQKPiAtLS0gYS9saWJhdmZv cm1hdC92ZXJzaW9uLmgKPiArKysgYi9saWJhdmZvcm1hdC92ZXJzaW9uLmgKPiBAQCAtMzIsOCAr MzIsOCBAQAo+ICAvLyBNYWpvciBidW1waW5nIG1heSBhZmZlY3QgVGlja2V0NTQ2NywgNTQyMSwg NTQ1MShjb21wYXRpYmlsaXR5IHdpdGgKPiBDaHJvbWl1bSkKPiAgLy8gQWxzbyBwbGVhc2UgYWRk IGFueSB0aWNrZXQgbnVtYmVycyB0aGF0IHlvdSBiZWxpZXZlIG1pZ2h0IGJlIGFmZmVjdGVkCj4g aGVyZQo+ICAjZGVmaW5lIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgIDU5Cj4gLSNkZWZpbmUg TElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiAgMTcKPiAtI2RlZmluZSBMSUJBVkZPUk1BVF9WRVJT SU9OX01JQ1JPIDEwMgo+ICsjZGVmaW5lIExJQkFWRk9STUFUX1ZFUlNJT05fTUlOT1IgIDE4Cj4g KyNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyAxMDAKPiAgICNkZWZpbmUgTElCQVZG T1JNQVRfVkVSU0lPTl9JTlQgQVZfVkVSU0lPTl9JTlQoTElCQVZGT1JNQVRfVkVSU0lPTl9NQUpP UiwKPiBcCj4gCj4gTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiwgXAo+IC0tIAo+IDIuMzUuMQo+ IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZt cGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6 Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gCj4gVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RA ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApm Zm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5m by9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFp bApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3Jp YmUiLgo=