From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 307C8E82CBB for ; Wed, 27 Sep 2023 18:54:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5UsDRTT2farwPa7DERhf092icGbAsPTTYsd4noWsLOY=; b=Wr6o2yX1TpUh8U ckKt+J1LIIuve1eJe9ZtyFBtFjcAsbzzaGt8lgTuiMm3nAiIsFj+z8Pt/yk203es9Fa26m93OWaFH J7jQiS1s2kTFNluxpo8TP3s3zYVluKDhEC7pMFed5Cu8T2jCqmYzxRhMz6K56OfyZXtlcHGd+dVuv HnGMjzU6zW87saBv0o7AtAIiEa6zXpsRvBSkyMCrFHa+TBUx424oC//PGLt+SC//qGLfgSEXuFb1I PjDD3dyB67phZ1lm4exrg6LGj024UMtMv6RaU/MpkRyCAy6Z4hJJSfPuyekCShtAdA6pN7pUAX+uo z8qQZfZds43td7YV0fMA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qlZfv-001biF-2n; Wed, 27 Sep 2023 18:54:19 +0000 Received: from mail-il1-x12d.google.com ([2607:f8b0:4864:20::12d]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qlZfs-001bh8-0D for linux-arm-kernel@lists.infradead.org; Wed, 27 Sep 2023 18:54:17 +0000 Received: by mail-il1-x12d.google.com with SMTP id e9e14a558f8ab-35137ab766dso25775ab.0 for ; Wed, 27 Sep 2023 11:54:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1695840855; x=1696445655; darn=lists.infradead.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=pgknUwnq9gIV+tvRlScN3zfltL029CTlXmtn1qWfZ48=; b=cq4NUwapX/cSHlY4keKTouhMcc5ylTLhZaJE4dzqzZa/68dO+8lh6Si88Mj4xRVybR BjmMAyrE21ec4f4Y+h9t/zthboOHI43ArbKWK3Ji6K197y1s3Tt6X71QVUyeDN/6Aq/2 AslygaSfdeprR8vrraSwiTsK0H/GA4qkj5YZcU66LMP7kCp55hpP0Sk7xiwQ9bBphOHW rNJdbAbMC8tBYCPNepHKJ2jqeBYreI8+27sSfUz9sLvv5e/EeBtgqVa6ZX8XJXOWpnjU LJ9zLTu9Q1cyIrpmIctw02CGUb1tSKUUs6g224woNrS473TT/8PWxYZaXpD6hXhJ2elF Qk0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695840855; x=1696445655; 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=pgknUwnq9gIV+tvRlScN3zfltL029CTlXmtn1qWfZ48=; b=eaVryRq1WWLPhcpciUOIM0tEzY9QwVuC5GYIPEW/anjqusEcpjIEdFmY4fZYde/f0J YoEO/3DwCpjTtxPGQCAo2gVsFaoh+pEsu851K5bG/Ztr41amM92+ssvVdV2fcBjR/aAt a3yGm7zCWLS1yZBmO2Zbqs4/zZWi58Y54sJbcdRIYg3M6DkQAjyoanFoDiTHQnZQi7hi KN5G5zY3MmY60Rtyf6La+lzmvoUlIILrNQJmCm6FyLo0Wr2wN5TGPkf7+ZDHe4wXsG7O PYbJMVAY1CqmuBqicMB/cSLbkOse4rHjwUdYZ+CF7sc7IYJybMSwZgC63NbGMYx9jRo5 qCsw== X-Gm-Message-State: AOJu0YwBbfCN8OMt8HmdnGiwDUyHFlf90TEkaGK2F5C4gs8IymPCJN3Q jKVh/Nr1hJhDy24YnhTs3yeo5aF6/dlcXNpIeWiP X-Google-Smtp-Source: AGHT+IGFTNOeIjY0z4z1jsppqGQ/+DkN5LKNzVhtRpc1fe/Zjm0L6bfMROX9KjJp8peSFpnQgwJTEYqVV/8DUuyxQQM= X-Received: by 2002:a92:c242:0:b0:34d:ff4c:5e3a with SMTP id k2-20020a92c242000000b0034dff4c5e3amr748810ilo.10.1695840854718; Wed, 27 Sep 2023 11:54:14 -0700 (PDT) MIME-Version: 1.0 References: <20230911023038.30649-1-yong.wu@mediatek.com> <20230911023038.30649-6-yong.wu@mediatek.com> <20230927134614.kp27moxdw72jiu4y@pop-os.localdomain> In-Reply-To: <20230927134614.kp27moxdw72jiu4y@pop-os.localdomain> From: Jeffrey Kardatzke Date: Wed, 27 Sep 2023 11:54:03 -0700 Message-ID: Subject: Re: [PATCH 5/9] dma-buf: heaps: mtk_sec_heap: Initialise tee session To: Joakim Bech Cc: =?UTF-8?B?WW9uZyBXdSAo5ZC05YuHKQ==?= , "matthias.bgg@gmail.com" , "christian.koenig@amd.com" , "angelogioacchino.delregno@collabora.com" , "robh+dt@kernel.org" , "sumit.semwal@linaro.org" , "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "jstultz@google.com" , "linaro-mm-sig@lists.linaro.org" , "linux-media@vger.kernel.org" , "devicetree@vger.kernel.org" , =?UTF-8?B?SmlhbmppYW8gWmVuZyAo5pu+5YGl5aejKQ==?= , =?UTF-8?B?S3VvaG9uZyBXYW5nICjnjovlnIvptLsp?= , "conor+dt@kernel.org" , "Brian.Starkey@arm.com" , "benjamin.gaignard@collabora.com" , "tjmercier@google.com" , "krzysztof.kozlowski+dt@linaro.org" , "dri-devel@lists.freedesktop.org" , "linux-arm-kernel@lists.infradead.org" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230927_115416_105437_59167708 X-CRM114-Status: GOOD ( 49.93 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBTZXAgMjcsIDIwMjMgYXQgNjo0NuKAr0FNIEpvYWtpbSBCZWNoIDxqb2FraW0uYmVj aEBsaW5hcm8ub3JnPiB3cm90ZToKPgo+IE9uIE1vbiwgU2VwIDI1LCAyMDIzIGF0IDEyOjQ5OjUw UE0gKzAwMDAsIFlvbmcgV3UgKOWQtOWLhykgd3JvdGU6Cj4gPiBPbiBUdWUsIDIwMjMtMDktMTIg YXQgMTE6MzIgKzAyMDAsIEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25vIHdyb3RlOgo+ID4gPiBJ bCAxMi8wOS8yMyAwODoxNywgWW9uZyBXdSAo5ZC05YuHKSBoYSBzY3JpdHRvOgo+ID4gPiA+IE9u IE1vbiwgMjAyMy0wOS0xMSBhdCAxMToyOSArMDIwMCwgQW5nZWxvR2lvYWNjaGlubyBEZWwgUmVn bm8KPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+IElsIDExLzA5LzIzIDA0OjMwLCBZb25nIFd1IGhh IHNjcml0dG86Cj4gPiA+ID4gPiA+IFRoZSBURUUgcHJvYmUgbGF0ZXIgdGhhbiBkbWEtYnVmIGhl YXAsIGFuZCBQUk9CRV9ERURFUiBkb2Vzbid0Cj4gPiA+ID4gPiA+IHdvcmsKPiA+ID4gPiA+ID4g aGVyZSBzaW5jZSB0aGlzIGlzIG5vdCBhIHBsYXRmb3JtIGRyaXZlciwgdGhlcmVmb3JlIGluaXRp YWxpc2UKPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+IFRFRQo+ID4gPiA+ID4gPiBjb250ZXh0 L3Nlc3Npb24gd2hpbGUgd2UgYWxsb2NhdGUgdGhlIGZpcnN0IHNlY3VyZSBidWZmZXIuCj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFlvbmcgV3UgPHlvbmcud3VAbWVkaWF0 ZWsuY29tPgo+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gICAgZHJpdmVycy9kbWEtYnVmL2hl YXBzL210a19zZWN1cmVfaGVhcC5jIHwgNjEKPiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKysr KysrKysrKwo+ID4gPiA+ID4gPiAgICAxIGZpbGUgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKQo+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2hlYXBz L210a19zZWN1cmVfaGVhcC5jCj4gPiA+ID4gPiA+IGIvZHJpdmVycy9kbWEtCj4gPiA+ID4gPiA+ IGJ1Zi9oZWFwcy9tdGtfc2VjdXJlX2hlYXAuYwo+ID4gPiA+ID4gPiBpbmRleCBiYmYxYzhkY2Uy M2UuLmUzZGEzM2EzZDA4MyAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9kbWEtYnVm L2hlYXBzL210a19zZWN1cmVfaGVhcC5jCj4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1 Zi9oZWFwcy9tdGtfc2VjdXJlX2hlYXAuYwo+ID4gPiA+ID4gPiBAQCAtMTAsNiArMTAsMTIgQEAK PiA+ID4gPiA+ID4gICAgI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgo+ID4gPiA+ID4gPiAgICAjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPiA+ID4gPiA+ICAgICNpbmNsdWRlIDxsaW51eC9zbGFi Lmg+Cj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvdGVlX2Rydi5oPgo+ID4gPiA+ID4gPiAr I2luY2x1ZGUgPGxpbnV4L3V1aWQuaD4KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArI2RlZmlu ZSBUWl9UQV9NRU1fVVVJRCAgICAgICAgICAgICAgICI0NDc3NTg4YS04NDc2LTExZTItYWQxNS0K PiA+ID4gPiA+ID4gZTQxZjEzOTBkNjc2Igo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPgo+ID4gPiA+ ID4gSXMgdGhpcyBVVUlEIHRoZSBzYW1lIGZvciBhbGwgU29DcyBhbmQgYWxsIFRaIHZlcnNpb25z Pwo+ID4gPiA+Cj4gPiA+ID4gWWVzLiBJdCBpcyB0aGUgc2FtZSBmb3IgYWxsIFNvQ3MgYW5kIGFs bCBUWiB2ZXJzaW9ucyBjdXJyZW50bHkuCj4gPiA+ID4KPiA+ID4KPiA+ID4gVGhhdCdzIGdvb2Qg bmV3cyEKPiA+ID4KPiA+ID4gSXMgdGhpcyBVVUlEIHVzZWQgaW4gYW55IHVzZXJzcGFjZSBjb21w b25lbnQ/IChleGFtcGxlOiBBbmRyb2lkCj4gPiA+IEhBTHM/KQo+ID4KPiA+IE5vLiBVc2Vyc3Bh Y2UgbmV2ZXIgdXNlIGl0LiBJZiB1c2Vyc3BhY2Ugd291bGQgbGlrZSB0byBhbGxvY2F0ZSB0aGlz Cj4gPiBzZWN1cmUgYnVmZmVyLCBpdCBjYW4gYWNoaWV2ZSB0aHJvdWdoIHRoZSBleGlzdGluZyBk bWFidWYgSU9DVEwgdmlhCj4gPiAvZGV2L2RtYV9oZWFwL210a19zdnAgbm9kZS4KPiA+Cj4gSW4g Z2VuZXJhbCBJIHRoaW5rIGFzIG1lbnRpb25lZCBlbHNld2hlcmUgaW4gY29tbWVudHMsIHRoYXQg dGhlcmUgaXNuJ3QKPiB0aGF0IG11Y2ggaGVyZSB0aGF0IHNlZW1zIHRvIGJlIHVuaXF1ZSBmb3Ig TWVkaWFUZWsgaW4gdGhpcyBwYXRjaAo+IHNlcmllcywgc28gSSB0aGluayBpdCB3b3J0aCB0byBz ZWUgd2hldGhlciB0aGlzIHdob2xlIHBhdGNoIHNldCBjYW4gYmUKPiBtYWRlIG1vcmUgZ2VuZXJp Yy4gSGF2aW5nIHNhaWQgdGhhdCwgdGhlIFVVSUQgaXMgYWx3YXlzIHVuaXF1ZSBmb3IgYQo+IGNl cnRhaW4gVHJ1c3RlZCBBcHBsaWNhdGlvbi4gU28sIGl0J3Mgbm90IGVudGlyZWx5IHRydWUgc2F5 aW5nIHRoYXQgdGhlCj4gVVVJRCBpcyB0aGUgc2FtZSBmb3IgYWxsIFNvQ3MgYW5kIGFsbCBUcnVz dFpvbmUgdmVyc2lvbnMuIEl0IG1pZ2h0IGJlCj4gdHJ1ZSBmb3IgYSBmYW1pbHkgb2YgTWVkaWFU ZWsgZGV2aWNlcyBhbmQgdGhlIFRFRSBpbiB1c2UsIGJ1dCBub3QKPiBnZW5lcmljYWxseS4KPgo+ IFNvLCBpZiB3ZSBuZWVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBkaWZmZXJlbnQgVEEgaW1w bGVtZW50YXRpb25zLAo+IHRoZW4gd2UgbmVlZCBkaWZmZXJlbnQgVVVJRHMuIElmIGl0IHdvdWxk IGJlIHBvc3NpYmxlIHRvIG1ha2UgdGhpcyBwYXRjaAo+IHNldCBnZW5lcmljLCB0aGVuIGl0IHNv dW5kcyBsaWtlIGEgc2luZ2xlIFVVSUQgd291bGQgYmUgc3VmZmljaWVudCwgYnV0Cj4gdGhhdCB3 b3VsZCBpbXBseSB0aGF0IGFsbCBUQSdzIHN1cHBvcnRpbmcgc3VjaCBhIGdlbmVyaWMgVVVJRCB3 b3VsZCBiZQo+IGltcGxlbWVudGVkIHRoZSBzYW1lIGZyb20gYW4gQVBJIHBvaW50IG9mIHZpZXcu IFdoaWNoIGFsc28gbWVhbnMgdGhhdAo+IGZvciBleGFtcGxlIFRydXN0ZWQgQXBwbGljYXRpb24g ZnVuY3Rpb24gSUQncyBuZWVkcyB0byBiZSB0aGUgc2FtZSBldGMuCj4gTm90IGltcG9zc2libGUg dG8gYWNoaWV2ZSwgYnV0IHN0aWxsIG5vdCBlYXN5IChkaWZmZXJlbnQgVEVFIGZvbGxvd3MKPiBk aWZmZXJlbnQgc3BlY2lmaWNhdGlvbnMpIGFuZCBpdCdzIG5vdCB0eXBpY2FsbHkgc29tZXRoaW5n IHdlJ3ZlIGRvbmUgaW4KPiB0aGUgcGFzdC4KPgo+IFVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgbm8g c3RhbmRhcmRpemVkIGRhdGFiYXNlIG9mIFRBJ3MgZGVzY3JpYmluZyB3aGF0Cj4gdGhleSBpbXBs ZW1lbnQgYW5kIHN1cHBvcnQuCj4KPiBBcyBhbiBhbHRlcm5hdGl2ZSwgd2UgY291bGQgaW1wbGVt ZW50IGEgcXVlcnkgY2FsbCBpbiB0aGUgVEVFIGFuc3dlcmluZywKPiAiV2hhdCBVVUlEIGRvZXMg eW91ciBUQSBoYXZlIHRoYXQgaW1wbGVtZW50cyBzZWN1cmUgdW5tYXBwZWQgaGVhcD8iLgo+IEku ZS4sIHNvbWV0aGluZyB0aGF0IHJlbWluZHMgb2YgYSBsb29rdXAgdGFibGUuIFRoZW4gd2Ugd291 bGRuJ3QgaGF2ZSB0bwo+IGNhcnJ5IHRoaXMgaW4gVUFQSSwgRFQgb3IgYW55d2hlcmUgZWxzZS4K PgoKSSB0aGluayB0aGF0J3MgYSBnb29kIGlkZWEuIElmIHdlIGFkZCBrZXJuZWwgQVBJcyB0byB0 aGUgdGVlIGZvcgpvcGVuaW5nIGEgc2Vzc2lvbiBmb3Igc2VjdXJlIG1lbW9yeSBhbGxvY2F0aW9u IGFuZCBmb3IgcGVyZm9ybWluZyB0aGUKYWxsb2NhdGlvbiwgdGhlbiB0aGUgVVVJRCwgVEEgY29t bWFuZHMgYW5kIFRBIHBhcmFtZXRlcnMgY2FuIGFsbCBiZQpkZWNpZGVkIHVwb24gaW4gdGhlIFRF RSBzcGVjaWZpYyBkcml2ZXIgYW5kIHRoZSBjb2RlIGluIGRtYS1oZWFwCmJlY29tZXMgZ2VuZXJp Yy4KCj4gLS0KPiAvLyBSZWdhcmRzCj4gSm9ha2ltCj4KPiA+Cj4gPiA+IElmIGl0IGlzIChhbmQg SSBzb21laG93IGV4cGVjdCB0aGF0IGl0IGlzKSwgdGhlbiB0aGlzIGRlZmluaXRpb24KPiA+ID4g c2hvdWxkIGdvCj4gPiA+IHRvIGEgVUFQSSBoZWFkZXIsIGFzIHN1Z2dlc3RlZCBieSBDaHJpc3Rp YW4uCj4gPiA+Cj4gPiA+IENoZWVycyEKPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGFua3Ms Cj4gPiA+ID4gPiBBbmdlbG8KPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiArI2RlZmlu ZSBNVEtfVEVFX1BBUkFNX05VTSAgICAgICAgICAgIDQKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g ICAgLyoKPiA+ID4gPiA+ID4gICAgICogTWVkaWFUZWsgc2VjdXJlIChjaHVuaykgbWVtb3J5IHR5 cGUKPiA+ID4gPiA+ID4gQEAgLTI4LDE3ICszNCw3MiBAQCBzdHJ1Y3QgbXRrX3NlY3VyZV9oZWFw X2J1ZmZlciB7Cj4gPiA+ID4gPiA+ICAgIHN0cnVjdCBtdGtfc2VjdXJlX2hlYXAgewo+ID4gPiA+ ID4gPiAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAgICAqbmFtZTsKPiA+ID4gPiA+ID4gICAg ICAgY29uc3QgZW51bSBrcmVlX21lbV90eXBlIG1lbV90eXBlOwo+ID4gPiA+ID4gPiArICAgICB1 MzIgICAgICAgICAgICAgICAgICAgICAgbWVtX3Nlc3Npb247Cj4gPiA+ID4gPiA+ICsgICAgIHN0 cnVjdCB0ZWVfY29udGV4dCAgICAgICp0ZWVfY3R4Owo+ID4gPiA+ID4gPiAgICB9Owo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiArc3RhdGljIGludCBtdGtfb3B0ZWVfY3R4X21hdGNoKHN0cnVjdCB0 ZWVfaW9jdGxfdmVyc2lvbl9kYXRhCj4gPiA+ID4gPiA+ICp2ZXIsCj4gPiA+ID4gPiA+IGNvbnN0 IHZvaWQgKmRhdGEpCj4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ICsgICAgIHJldHVybiB2ZXIt PmltcGxfaWQgPT0gVEVFX0lNUExfSURfT1BURUU7Cj4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ID4gK3N0YXRpYyBpbnQgbXRrX2tyZWVfc2VjdXJlX3Nlc3Npb25faW5pdChz dHJ1Y3QgbXRrX3NlY3VyZV9oZWFwCj4gPiA+ID4gPiA+ICpzZWNfaGVhcCkKPiA+ID4gPiA+ID4g K3sKPiA+ID4gPiA+ID4gKyAgICAgc3RydWN0IHRlZV9wYXJhbSB0X3BhcmFtW01US19URUVfUEFS QU1fTlVNXSA9IHswfTsKPiA+ID4gPiA+ID4gKyAgICAgc3RydWN0IHRlZV9pb2N0bF9vcGVuX3Nl c3Npb25fYXJnIGFyZyA9IHswfTsKPiA+ID4gPiA+ID4gKyAgICAgdXVpZF90IHRhX21lbV91dWlk Owo+ID4gPiA+ID4gPiArICAgICBpbnQgcmV0Owo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsg ICAgIHNlY19oZWFwLT50ZWVfY3R4ID0gdGVlX2NsaWVudF9vcGVuX2NvbnRleHQoTlVMTCwKPiA+ ID4gPiA+ID4gbXRrX29wdGVlX2N0eF9tYXRjaCwKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAo+ID4gPiA+ID4gPiBOVUxM KTsKPiA+ID4gPiA+ID4gKyAgICAgaWYgKElTX0VSUihzZWNfaGVhcC0+dGVlX2N0eCkpIHsKPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICBwcl9lcnIoIiVzOiBvcGVuIGNvbnRleHQgZmFpbGVkLCBy ZXQ9JWxkXG4iLAo+ID4gPiA+ID4gPiBzZWNfaGVhcC0KPiA+ID4gPiA+ID4gPiBuYW1lLAo+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICBQVFJfRVJSKHNlY19oZWFw LT50ZWVfY3R4KSk7Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4g PiA+ID4gPiA+ICsgICAgIH0KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArICAgICBhcmcubnVt X3BhcmFtcyA9IE1US19URUVfUEFSQU1fTlVNOwo+ID4gPiA+ID4gPiArICAgICBhcmcuY2xudF9s b2dpbiA9IFRFRV9JT0NUTF9MT0dJTl9QVUJMSUM7Cj4gPiA+ID4gPiA+ICsgICAgIHJldCA9IHV1 aWRfcGFyc2UoVFpfVEFfTUVNX1VVSUQsICZ0YV9tZW1fdXVpZCk7Cj4gPiA+ID4gPiA+ICsgICAg IGlmIChyZXQpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgZ290byBjbG9zZV9jb250ZXh0Owo+ ID4gPiA+ID4gPiArICAgICBtZW1jcHkoJmFyZy51dWlkLCAmdGFfbWVtX3V1aWQuYiwgc2l6ZW9m KHRhX21lbV91dWlkKSk7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyAgICAgcmV0ID0gdGVl X2NsaWVudF9vcGVuX3Nlc3Npb24oc2VjX2hlYXAtPnRlZV9jdHgsICZhcmcsCj4gPiA+ID4gPiA+ IHRfcGFyYW0pOwo+ID4gPiA+ID4gPiArICAgICBpZiAocmV0IDwgMCB8fCBhcmcucmV0KSB7Cj4g PiA+ID4gPiA+ICsgICAgICAgICAgICAgcHJfZXJyKCIlczogb3BlbiBzZXNzaW9uIGZhaWxlZCwg cmV0PSVkOiVkXG4iLAo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICBzZWNfaGVhcC0+ bmFtZSwgcmV0LCBhcmcucmV0KTsKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICByZXQgPSAtRUlO VkFMOwo+ID4gPiA+ID4gPiArICAgICAgICAgICAgIGdvdG8gY2xvc2VfY29udGV4dDsKPiA+ID4g PiA+ID4gKyAgICAgfQo+ID4gPiA+ID4gPiArICAgICBzZWNfaGVhcC0+bWVtX3Nlc3Npb24gPSBh cmcuc2Vzc2lvbjsKPiA+ID4gPiA+ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ID4gK2Nsb3NlX2NvbnRleHQ6Cj4gPiA+ID4gPiA+ICsgICAgIHRlZV9jbGllbnRfY2xv c2VfY29udGV4dChzZWNfaGVhcC0+dGVlX2N0eCk7Cj4gPiA+ID4gPiA+ICsgICAgIHJldHVybiBy ZXQ7Cj4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gICAgc3RhdGljIHN0 cnVjdCBkbWFfYnVmICoKPiA+ID4gPiA+ID4gICAgbXRrX3NlY19oZWFwX2FsbG9jYXRlKHN0cnVj dCBkbWFfaGVhcCAqaGVhcCwgc2l6ZV90IHNpemUsCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBmZF9mbGFncywgdW5zaWduZWQgbG9uZwo+ID4gPiA+ID4gPiBo ZWFwX2ZsYWdzKQo+ID4gPiA+ID4gPiAgICB7Cj4gPiA+ID4gPiA+ICsgICAgIHN0cnVjdCBtdGtf c2VjdXJlX2hlYXAgKnNlY19oZWFwID0KPiA+ID4gPiA+ID4gZG1hX2hlYXBfZ2V0X2RydmRhdGEo aGVhcCk7Cj4gPiA+ID4gPiA+ICAgICAgIHN0cnVjdCBtdGtfc2VjdXJlX2hlYXBfYnVmZmVyICpz ZWNfYnVmOwo+ID4gPiA+ID4gPiAgICAgICBERUZJTkVfRE1BX0JVRl9FWFBPUlRfSU5GTyhleHBf aW5mbyk7Cj4gPiA+ID4gPiA+ICAgICAgIHN0cnVjdCBkbWFfYnVmICpkbWFidWY7Cj4gPiA+ID4g PiA+ICAgICAgIGludCByZXQ7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICsgICAgIC8qCj4gPiA+ ID4gPiA+ICsgICAgICAqIFRFRSBwcm9iZSBtYXkgYmUgbGF0ZS4gSW5pdGlhbGlzZSB0aGUgc2Vj dXJlIHNlc3Npb24KPiA+ID4gPiA+ID4gaW4gdGhlCj4gPiA+ID4gPiA+IGZpcnN0Cj4gPiA+ID4g PiA+ICsgICAgICAqIGFsbG9jYXRpbmcgc2VjdXJlIGJ1ZmZlci4KPiA+ID4gPiA+ID4gKyAgICAg ICovCj4gPiA+ID4gPiA+ICsgICAgIGlmICghc2VjX2hlYXAtPm1lbV9zZXNzaW9uKSB7Cj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgcmV0ID0gbXRrX2tyZWVfc2VjdXJlX3Nlc3Npb25faW5pdChz ZWNfaGVhcCk7Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgaWYgKHJldCkKPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKHJldCk7Cj4gPiA+ID4gPiA+ICsg ICAgIH0KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgICAgICBzZWNfYnVmID0ga3phbGxvYyhz aXplb2YoKnNlY19idWYpLCBHRlBfS0VSTkVMKTsKPiA+ID4gPiA+ID4gICAgICAgaWYgKCFzZWNf YnVmKQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+Cj4gPiA+CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==