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 X-Spam-Level: X-Spam-Status: No, score=-11.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BCA55C4338F for ; Thu, 12 Aug 2021 14:25:07 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 6FF3B60EFE for ; Thu, 12 Aug 2021 14:25:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 6FF3B60EFE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=C6dLtj9wihY1InkQ7hDVJOGYa/ws+nploA80wF1dhRM=; b=1c2YqLmgCaaZiACy9zaWZxr2dF PQ1Y/sWHiX919KEifCXgeQR6y5j/Tt/JuT0jxAqiUwTCuUVZONMTlRINqVtl046dQBhSiaO8KrMnj 9YDm0NA6haIAj+h1H07hy/+d72cN3Wfrx/RM/tNDi0OI8fPkoPuciAho+ttA8Y/YYuO119/oesuQp FyUywEfFM0zlqYwkiVciPUQHtHh4AJEn46VOD7Hau/Uj8HFd/jYH7DXS3Al1lpNibl0hr2L2LxHVk PJMINWEXzK4NrWqZeqr2HEOQJm+dNSqVsAoWJy6WB2JVpLkSHDp8Ne7wOaLfuhput25S7k6YkUfhu B1MO+eLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mEBbu-00AROt-Mi; Thu, 12 Aug 2021 14:23:06 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mEBbn-00ARNr-MS for linux-arm-kernel@lists.infradead.org; Thu, 12 Aug 2021 14:23:04 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8D4031042; Thu, 12 Aug 2021 07:22:56 -0700 (PDT) Received: from [192.168.0.110] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7F7663F70D; Thu, 12 Aug 2021 07:22:55 -0700 (PDT) Subject: Re: [PATCH] irqchip/gic-v3: Fix priority comparison when non-secure priorities are used To: Marc Zyngier Cc: Chen-Yu Tsai , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20210811171505.1502090-1-wenst@chromium.org> <87fsvfal4n.wl-maz@kernel.org> <79eabae1-e4a3-7a12-7aa0-3680569584e5@arm.com> <871r6yajy7.wl-maz@kernel.org> From: Alexandru Elisei Message-ID: <061bafb6-b0fe-bd7c-1567-a642d3ddd4a5@arm.com> Date: Thu, 12 Aug 2021 15:24:03 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <871r6yajy7.wl-maz@kernel.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210812_072259_884275_2D395C58 X-CRM114-Status: GOOD ( 31.54 ) 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 SGkgTWFyYywKCk9uIDgvMTIvMjEgMjowOSBQTSwgTWFyYyBaeW5naWVyIHdyb3RlOgo+IE9uIFRo dSwgMTIgQXVnIDIwMjEgMTI6NTE6MzQgKzAxMDAsCj4gQWxleGFuZHJ1IEVsaXNlaSA8YWxleGFu ZHJ1LmVsaXNlaUBhcm0uY29tPiB3cm90ZToKPj4gSGksCj4+Cj4+IEFmdGVyIHJlLWZhbWlsaWFy aXppbmcgbXlzZWxmIHdpdGggdGhlIHNwZWMsIGl0IHN0YXJ0aW5nIHRvIGxvb2sgdG8KPj4gbWUg bGlrZSBpbmRlZWQgdGhlcmUncyBzb21ldGhpbmcgbm90IHF1aXRlIHJpZ2h0IChyZWFkIGFzOiB0 b3RhbGx5Cj4+IGJyb2tlbikgd2l0aCBteSBwYXRjaC4KPj4KPj4gQXJtIElISSAwMDY5RiwgdGhl IHBzZXVkb2NvZGUgZm9yIHJlYWRpbmcgSUNDX1JQUl9FTDEgKHBhZ2UgMTEtNzk3KSwKPj4gc2F5 cyB0aGF0IHRoZSBwcmlvcml0eSByZXR1cm5lZCBpcyB1bmNoYW5nZWQgaWYgU0NUTFJfRUwzLkZJ USA9PQo+PiAwLgo+IFN1cmUsIGJ1dCBsb29rIGF0IHdoYXQgSUNDX1JQUl9FTDEgZG9lcyBmb3Ig RklRPT0xOgo+Cj4gPHF1b3RlPgo+IGlmIEhhdmVFTChFTDMpICYmICFJc1NlY3VyZSgpICYmIFND Ul9FTDMuRklRID09ICcxJyB0aGVuCj4gICAgIC8vIEEgTm9uLXNlY3VyZSBHSUMgYWNjZXNzIGFu ZCBHcm91cCAwIGluYWNjZXNzaWJsZSB0byBOb24tc2VjdXJlLgo+ICAgICAgICAgaWYgcFByaW9y aXR5PDc+ID09ICcwJyB0aGVuCj4gCSAgICAvLyBQcmlvcml0eSBpcyBpbiBTZWN1cmUgaGFsZiBh bmQgbm90IHZpc2libGUgdG8gTm9uLXNlY3VyZQo+IAkgICAgUHJpb3JpdHkgPSBaZXJvcygpOwo+ ICAgICAgICAgZWxzaWYgIUlzT25lcyhwUHJpb3JpdHkpIHRoZW4KPiAJICAgIC8vIE5vbi1zZWN1 cmUgYWNjZXNzIGFuZCBub3QgaWRsZSwgc28gcGh5c2ljYWwgcHJpb3JpdHkgbXVzdCBiZSBzaGlm dGVkCj4gICAgICAgICAgICAgcFByaW9yaXR5PDc6MD4gPSAocFByaW9yaXR5IEFORCBQUklNYXNr KCkpPDY6MD46JzAnOwo+Cj4gcmV0dXJuIFplcm9FeHRlbmQocFByaW9yaXR5KTsKPiA8L3F1b3Rl Pgo+Cj4gU2VlIGhvdyB0aGUgdGhlIHByaW9yaXR5IGlzIHNoaWZ0ZWQgKmxlZnQqIChiaXRzIFs2 OjBdIGVuZCB1cCBpbgo+IFs3OjFdKT8KClllcywgd2hlbiBTQ1JfRUwzLkZJUT0xLCBidXQgZ2lj X25vbnNlY3VyZV9wcmlvcml0aWVzIGlzIGVuYWJsZWQgd2hlbgpTQ1JfRUwzLkZJUT0wIChnaWNf aGFzX2dyb3VwMCgpKS4gSW4gdGhhdCBjYXNlIElDQ19SUFJfRUwxIHJldHVybnMgKHdoYXQgSSBh c3N1bWUKdG8gYmUpIHRoZSBoaWdoZXN0IHByaW9yaXR5IGludGVycnVwdCBmcm9tIElDQ19BUDBS X0VMMSwgSUNDX0FQMVJfRUwxTlMgYW5kCklDQ19BUDFSX0VMMVMuIElzbid0IHRoYXQgdGhlIHNl Y3VyZSB2aWV3IChvciBEaXN0cmlidXRvciB2YWx1ZSkgb2YgdGhlIHByaW9yaXR5PwoKPgo+PiBU aGlzIG1lYW5zIHRoYXQgdGhlIElDQ19SUFJfRUwxIHJlYWQgd2lsbCByZXR1cm4gdGhlIHNlY3Vy ZSB2aWV3Cj4+ICh0aGUgdmFsdWUgYXMgaXQgaXMgc3RvcmVkIGJ5IHRoZSBHSUMpIG9mIHRoZSBw cmlvcml0eSwgc28gZm9yCj4+IHBzZXVkby1ubWlzIGl0IHdpbGwgcmV0dXJuIChHSUNEX0lOVF9O TUlfUFJJID4+IDEpIHwgMHg4MCwgd2hpY2gKPj4gZGVmaW5pdGVseSAhPSBHSUNEX0lOVF9OTUlf UFJJLgo+IFRoYXQncyBub3QgbXkgcmVhZGluZyBvZiB0aGUgcHNldWRvY29kZS4KPgo+PiBUaGlz IGlzIGZ1cnRoZXIgY29uZmlybWVkIGJ5IHRoaXMgc3RhdGVtZW50IG9uIHBhZ2UgNC02NzoKPj4K Pj4gIldoZW4gR0lDRF9DVExSLkRTID09IDAsIFsuLl0gRm9yIE5vbi1zZWN1cmUgYWNjZXNzIHRv IElDQ19QTVJfRUwxCj4+IGFuZCBJQ0NfUlBSX0VMMSB3aGVuIFNDUl9FTDMuRklRID09IDA6IFRo ZSBTZWN1cmUsIHVuc2hpZnRlZCB2aWV3Cj4+IGFwcGxpZXMuIgo+Pgo+PiBJIGRvbid0IGtub3cg aG93IEkgbWlzc2VkIHRoYXQgZHVyaW5nIHRlc3RpbmcuCj4+Cj4+IERpZCBhIHF1aWNrIHRlc3Qg b24gdGhlIG1vZGVsIHdpdGggUE1VIE5NSXMgKEdJQ0RfQ1RSTC5EUyA9IDAsCj4+IFNDVExSX0VM Mi5GSVEgPSAwKSwgZ2ljX2hhbmRsZV9ubWkoKSB3YXMgbm90IGJlaW5nIGNhbGxlZCBhdCBhbGws Cj4gMD8gUmVhbGx5Pz8/PwoKWWVzLCBJIHdhcyBhbHNvIHZlcnkgc3VycHJpc2VkIG15c2VsZiwg SSB3YXMgY2VydGFpbiB0aGF0IEkgdGVzdGVkIG15IHBhdGNoIG9uIHRoZQptb2RlbCB3aXRoIFBN VSBOTUlzLiBIZXJlJ3Mgd2hhdCBJIGRpZCB0byBnZXQgdGhpcyByZXN1bHQsIEkgd291bGQgdmVy eSBtdWNoCmFwcHJlY2lhdGUgYW55b25lIHBvaW50aW5nIG91dCB3aGF0IEkgZGlkIHdyb25nIGhl cmUuCgokIGdpdCBkaWZmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lycWNoaXAvaXJxLWdpYy12My5j IGIvZHJpdmVycy9pcnFjaGlwL2lycS1naWMtdjMuYwppbmRleCBlMGY0ZGViZTY0ZTEuLjc0OTc0 OGRmMjQ2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pcnFjaGlwL2lycS1naWMtdjMuYworKysgYi9k cml2ZXJzL2lycWNoaXAvaXJxLWdpYy12My5jCkBAIC02MjMsNiArNjIzLDggQEAgc3RhdGljIGlu bGluZSB2b2lkIGdpY19oYW5kbGVfbm1pKHUzMiBpcnFuciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CsKgwqDCoMKgwqDCoMKgIGJvb2wgaXJxc19lbmFibGVkID0gaW50ZXJydXB0c19lbmFibGVkKHJl Z3MpOwrCoMKgwqDCoMKgwqDCoCBpbnQgZXJyOwrCoAorwqDCoMKgwqDCoMKgIHBhbmljKCJQc2V1 ZG8tTk1JIik7CisKwqDCoMKgwqDCoMKgwqAgaWYgKGlycXNfZW5hYmxlZCkKwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG5taV9lbnRlcigpOwrCoApAQCAtMTY1NCw4ICsxNjU2LDEwIEBA IHN0YXRpYyB2b2lkIGdpY19lbmFibGVfbm1pX3N1cHBvcnQodm9pZCkKwqDCoMKgwqDCoMKgwqDC oCAqIGJlIGluIHRoZSBub24tc2VjdXJlIHJhbmdlLCB3ZSB1c2UgYSBkaWZmZXJlbnQgUE1SIHZh bHVlIHRvIG1hc2sgSVJRcwrCoMKgwqDCoMKgwqDCoMKgICogYW5kIHRoZSByZXN0IG9mIHRoZSB2 YWx1ZXMgdGhhdCB3ZSB1c2UgcmVtYWluIHVuY2hhbmdlZC4KwqDCoMKgwqDCoMKgwqDCoCAqLwot wqDCoMKgwqDCoMKgIGlmIChnaWNfaGFzX2dyb3VwMCgpICYmICFnaWNfZGlzdF9zZWN1cml0eV9k aXNhYmxlZCgpKQorwqDCoMKgwqDCoMKgIGlmIChnaWNfaGFzX2dyb3VwMCgpICYmICFnaWNfZGlz dF9zZWN1cml0eV9kaXNhYmxlZCgpKSB7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBy X2luZm8oImVuYWJsaW5nIGdpY19ub25zZWN1cmVfcHJpb3JpdGllcyIpOwrCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3RhdGljX2JyYW5jaF9lbmFibGUoJmdpY19ub25zZWN1cmVfcHJp b3JpdGllcyk7CivCoMKgwqDCoMKgwqAgfQrCoArCoMKgwqDCoMKgwqDCoCBzdGF0aWNfYnJhbmNo X2VuYWJsZSgmc3VwcG9ydHNfcHNldWRvX25taXMpOwrCoApBbmQgYSB0cnVuY2F0ZWQgbG9nIGZv ciBGVlA6CgpCb290LXdyYXBwZXIgdjAuMgoKWy4uXQpbwqDCoMKgIDAuMDAwMDAwXSBLZXJuZWwg Y29tbWFuZCBsaW5lOiBlYXJseWNvbj1wbDAxMSwweDFjMDkwMDAwIGNvbnNvbGU9dHR5QU1BMApr cHRpPW9mZiByb290PS9kZXYvdmRhIGlycWNoaXAuZ2ljdjNfcHNldWRvX25taT0xClsuLl0KW8Kg wqDCoCAwLjAwMDAwMF0gTlJfSVJRUzogNjQsIG5yX2lycXM6IDY0LCBwcmVhbGxvY2F0ZWQgaXJx czogMApbwqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogR0lDOiBVc2luZyBzcGxpdCBFT0kvRGVhY3Rp dmF0ZSBtb2RlClvCoMKgwqAgMC4wMDAwMDBdIEdJQ3YzOiAyMjQgU1BJcyBpbXBsZW1lbnRlZApb wqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogMCBFeHRlbmRlZCBTUElzIGltcGxlbWVudGVkClvCoMKg wqAgMC4wMDAwMDBdIEdJQ3YzOiBEaXN0cmlidXRvciBoYXMgbm8gUmFuZ2UgU2VsZWN0b3Igc3Vw cG9ydApbwqDCoMKgIDAuMDAwMDAwXSBSb290IElSUSBoYW5kbGVyOiBnaWNfaGFuZGxlX2lycQpb wqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogMTYgUFBJcyBpbXBsZW1lbnRlZApbwqDCoMKgIDAuMDAw MDAwXSBHSUN2MzogQ1BVMDogZm91bmQgcmVkaXN0cmlidXRvciAwIHJlZ2lvbiAwOjB4MDAwMDAw MDAyZjEwMDAwMApbwqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogUHNldWRvLU5NSXMgZW5hYmxlZCB1 c2luZyByZWxheGVkIElDQ19QTVJfRUwxIHN5bmNocm9uaXNhdGlvbgpbwqDCoMKgIDAuMDAwMDAw XSBHSUN2MzogZW5hYmxpbmcgZ2ljX25vbnNlY3VyZV9wcmlvcml0aWVzClsuLl0KW8KgwqDCoCAw LjAzNzc4NF0gYXJtdjgtcG11IHBtdTogaHcgcGVyZmV2ZW50czogbm8gaW50ZXJydXB0LWFmZmlu aXR5IHByb3BlcnR5LCBndWVzc2luZy4KW8KgwqDCoCAwLjAzNzkwMV0gaHcgcGVyZmV2ZW50czog ZW5hYmxlZCB3aXRoIGFybXY4X3BtdXYzIFBNVSBkcml2ZXIsIDkgY291bnRlcnMKYXZhaWxhYmxl LCB1c2luZyBOTUlzClsuLl0KIyBjYXQgL3Byb2MvaW50ZXJydXB0cwrCoMKgwqDCoMKgwqDCoMKg wqDCoCBDUFUwwqDCoMKgwqDCoMKgIENQVTHCoMKgwqDCoMKgwqAgQ1BVMsKgwqDCoMKgwqDCoCBD UFUzwqDCoMKgwqDCoMKgCsKgIDk6wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKg wqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoCBHSUN2 M8KgIDI1IExldmVswqDCoMKgwqAgdmdpYwrCoDExOsKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKg wqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDC oMKgwqAgR0lDdjPCoCAzMCBMZXZlbMKgwqDCoMKgIGt2bSBndWVzdApwdGltZXIKwqAxMjrCoMKg wqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDC oMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgIEdJQ3YzwqAgMjcgTGV2ZWzCoMKgwqDCoCBrdm0g Z3Vlc3QKdnRpbWVyCsKgMTM6wqDCoMKgwqDCoMKgwqDCoCA4M8KgwqDCoMKgwqDCoMKgwqAgNzfC oMKgwqDCoMKgwqDCoMKgIDY5wqDCoMKgwqDCoMKgwqDCoCA4OMKgwqDCoMKgIEdJQ3YzwqAgMjYg TGV2ZWzCoMKgwqDCoCBhcmNoX3RpbWVyCsKgMTY6wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDC oMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKg wqDCoCBHSUN2M8KgIDkyIExldmVswqDCoMKgwqAgYXJtLXBtdQrCoDE3OsKgwqDCoMKgwqDCoMKg wqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDC oMKgwqDCoCAwwqDCoMKgwqAgR0lDdjPCoCA5MyBMZXZlbMKgwqDCoMKgIGFybS1wbXUKwqAxODrC oMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKg IDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgIEdJQ3YzwqAgOTQgTGV2ZWzCoMKgwqDCoCBh cm0tcG11CsKgMTk6wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDC oMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoCBHSUN2M8KgIDk1IExl dmVswqDCoMKgwqAgYXJtLXBtdQrCoDIyOsKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKg wqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqAg R0lDdjPCoCA0NyBMZXZlbMKgwqDCoMKgIGV0aDAKwqAyNDrCoMKgwqDCoMKgwqDCoMKgIDMzwqDC oMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAw wqDCoMKgwqAgR0lDdjPCoCAzNyBMZXZlbMKgwqDCoMKgIHVhcnQtcGwwMTEKwqAyOTrCoMKgwqDC oMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKg wqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgIEdJQ3YzwqAgMzYgTGV2ZWzCoMKgwqDCoCBydGMtcGww MzEKwqAzMTrCoMKgwqDCoMKgwqDCoCAxMzjCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDC oMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoCBHSUN2M8KgIDc0IExldmVswqDC oMKgwqAgdmlydGlvMApJUEkwOsKgwqDCoMKgwqDCoCAyNTHCoMKgwqDCoMKgwqDCoCAzMzTCoMKg wqDCoMKgwqDCoCAyNTLCoMKgwqDCoMKgwqDCoCAxNzLCoMKgwqDCoMKgwqAgUmVzY2hlZHVsaW5n IGludGVycnVwdHMKSVBJMTrCoMKgwqDCoMKgwqDCoCAyNsKgwqDCoMKgwqDCoMKgwqAgMjPCoMKg wqDCoMKgwqDCoMKgIDEwwqDCoMKgwqDCoMKgwqDCoCAyMMKgwqDCoMKgwqDCoCBGdW5jdGlvbiBj YWxsIGludGVycnVwdHMKSVBJMjrCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAg MMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqAgQ1BV IHN0b3AgaW50ZXJydXB0cwpJUEkzOsKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDC oCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoCBD UFUgc3RvcCAoZm9yIGNyYXNoIGR1bXApCmludGVycnVwdHMKSVBJNDrCoMKgwqDCoMKgwqDCoMKg IDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDC oMKgIDDCoMKgwqDCoMKgwqAgVGltZXIgYnJvYWRjYXN0IGludGVycnVwdHMKSVBJNTrCoMKgwqDC oMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKg wqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqAgSVJRIHdvcmsgaW50ZXJydXB0cwpJUEk2OsKgwqDC oMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKg wqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoCBDUFUgd2FrZS11cCBpbnRlcnJ1cHRzCkVycjrC oMKgwqDCoMKgwqDCoMKgwqAgMAojIHBlcmYgcmVjb3JkIC1hIC0tIHNsZWVwIDUKCl5DWyBwZXJm IHJlY29yZDogV29rZW4gdXAgMSB0aW1lcyB0byB3cml0ZSBkYXRhIF0KW8KgwqDCoCA2LjkwODgy MF0gcmFuZG9tOiBwZXJmOiB1bmluaXRpYWxpemVkIHVyYW5kb20gcmVhZCAoNiBieXRlcyByZWFk KQoKW8KgwqDCoCA3LjU5NjEzOV0gcmFuZG9tOiBwZXJmOiB1bmluaXRpYWxpemVkIHVyYW5kb20g cmVhZCAoNiBieXRlcyByZWFkKQpbIHBlcmYgcmVjb3JkOiBDYXB0dXJlZCBhbmQgd3JvdGUgMC4w MTMgTUIgcGVyZi5kYXRhICgyNCBzYW1wbGVzKSBdCgojCiMgY2F0IC9wcm9jL2ludGVycnVwdHMK wqDCoMKgwqDCoMKgwqDCoMKgwqAgQ1BVMMKgwqDCoMKgwqDCoCBDUFUxwqDCoMKgwqDCoMKgIENQ VTLCoMKgwqDCoMKgwqAgQ1BVM8KgwqDCoMKgwqDCoArCoCA5OsKgwqDCoMKgwqDCoMKgwqDCoCAw wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDC oCAwwqDCoMKgwqAgR0lDdjPCoCAyNSBMZXZlbMKgwqDCoMKgIHZnaWMKwqAxMTrCoMKgwqDCoMKg wqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDC oMKgwqDCoMKgwqAgMMKgwqDCoMKgIEdJQ3YzwqAgMzAgTGV2ZWzCoMKgwqDCoCBrdm0gZ3Vlc3QK cHRpbWVyCsKgMTI6wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDC oMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoCBHSUN2M8KgIDI3IExl dmVswqDCoMKgwqAga3ZtIGd1ZXN0CnZ0aW1lcgrCoDEzOsKgwqDCoMKgwqDCoMKgIDU0NsKgwqDC oMKgwqDCoMKgIDExNcKgwqDCoMKgwqDCoMKgwqAgODLCoMKgwqDCoMKgwqDCoCAxMzLCoMKgwqDC oCBHSUN2M8KgIDI2IExldmVswqDCoMKgwqAgYXJjaF90aW1lcgrCoDE2OsKgwqDCoMKgwqDCoMKg wqDCoCA2wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDC oMKgwqDCoCAwwqDCoMKgwqAgR0lDdjPCoCA5MiBMZXZlbMKgwqDCoMKgIGFybS1wbXUKwqAxNzrC oMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqAgMTDCoMKgwqDCoMKgwqDCoMKgwqAg MMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqAgR0lDdjPCoCA5MyBMZXZlbMKgwqDCoMKgIGFy bS1wbXUKwqAxODrCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKg wqDCoMKgwqDCoMKgIDTCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgIEdJQ3YzwqAgOTQgTGV2 ZWzCoMKgwqDCoCBhcm0tcG11CsKgMTk6wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDC oMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDTCoMKgwqDCoCBH SUN2M8KgIDk1IExldmVswqDCoMKgwqAgYXJtLXBtdQrCoDIyOsKgwqDCoMKgwqDCoMKgwqDCoCAw wqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDC oCAwwqDCoMKgwqAgR0lDdjPCoCA0NyBMZXZlbMKgwqDCoMKgIGV0aDAKwqAyNDrCoMKgwqDCoMKg wqDCoMKgIDgwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKg wqDCoMKgwqDCoCAwwqDCoMKgwqAgR0lDdjPCoCAzNyBMZXZlbMKgwqDCoMKgIHVhcnQtcGwwMTEK wqAyOTrCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKg wqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgIEdJQ3YzwqAgMzYgTGV2ZWzCoMKg wqDCoCBydGMtcGwwMzEKwqAzMTrCoMKgwqDCoMKgwqDCoCAxOTXCoMKgwqDCoMKgwqDCoMKgwqAg MMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoCBHSUN2M8Kg IDc0IExldmVswqDCoMKgwqAgdmlydGlvMApJUEkwOsKgwqDCoMKgwqDCoCAyNTnCoMKgwqDCoMKg wqDCoCAzNjfCoMKgwqDCoMKgwqDCoCAyNjPCoMKgwqDCoMKgwqDCoCAyMjTCoMKgwqDCoMKgwqAg UmVzY2hlZHVsaW5nIGludGVycnVwdHMKSVBJMTrCoMKgwqDCoMKgwqDCoCAyN8KgwqDCoMKgwqDC oMKgwqAgNTHCoMKgwqDCoMKgwqDCoMKgIDE2wqDCoMKgwqDCoMKgwqDCoCAyNMKgwqDCoMKgwqDC oCBGdW5jdGlvbiBjYWxsIGludGVycnVwdHMKSVBJMjrCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDC oMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKg wqDCoMKgwqAgQ1BVIHN0b3AgaW50ZXJydXB0cwpJUEkzOsKgwqDCoMKgwqDCoMKgwqAgMMKgwqDC oMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKg wqDCoMKgwqDCoCBDUFUgc3RvcCAoZm9yIGNyYXNoIGR1bXApCmludGVycnVwdHMKSVBJNDrCoMKg wqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDC oMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqAgVGltZXIgYnJvYWRjYXN0IGludGVycnVwdHMK SVBJNTrCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKg wqDCoCAwwqDCoMKgwqDCoMKgwqDCoMKgIDDCoMKgwqDCoMKgwqAgSVJRIHdvcmsgaW50ZXJydXB0 cwpJUEk2OsKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKg wqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKgwqAgMMKgwqDCoMKgwqDCoCBDUFUgd2FrZS11cCBpbnRl cnJ1cHRzCkVycjrCoMKgwqDCoMKgwqDCoMKgwqAgMAojCgpXaXRoIHRoaXMgY2hhbmdlIHRvIHRo ZSBkcml2ZXI6CgokIGdpdCBkaWZmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lycWNoaXAvaXJxLWdp Yy12My5jIGIvZHJpdmVycy9pcnFjaGlwL2lycS1naWMtdjMuYwppbmRleCBlMGY0ZGViZTY0ZTEu LmU1OGU2MmFiNjRmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pcnFjaGlwL2lycS1naWMtdjMuYwor KysgYi9kcml2ZXJzL2lycWNoaXAvaXJxLWdpYy12My5jCkBAIC02MjMsNiArNjIzLDggQEAgc3Rh dGljIGlubGluZSB2b2lkIGdpY19oYW5kbGVfbm1pKHUzMiBpcnFuciwgc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpCsKgwqDCoMKgwqDCoMKgIGJvb2wgaXJxc19lbmFibGVkID0gaW50ZXJydXB0c19lbmFi bGVkKHJlZ3MpOwrCoMKgwqDCoMKgwqDCoCBpbnQgZXJyOwrCoAorwqDCoMKgwqDCoMKgIHBhbmlj KCJQc2V1ZG8tTk1JIik7CisKwqDCoMKgwqDCoMKgwqAgaWYgKGlycXNfZW5hYmxlZCkKwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5taV9lbnRlcigpOwrCoApAQCAtNjg3LDcgKzY4OSw3 IEBAIHN0YXRpYyBhc21saW5rYWdlIHZvaWQgX19leGNlcHRpb25faXJxX2VudHJ5CmdpY19oYW5k bGVfaXJxKHN0cnVjdCBwdF9yZWdzICpyZWdzCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCByZXR1cm47CsKgCsKgwqDCoMKgwqDCoMKgIGlmIChnaWNfc3VwcG9ydHNfbm1pKCkgJiYKLcKg wqDCoMKgwqDCoMKgwqDCoMKgIHVubGlrZWx5KGdpY19yZWFkX3JwcigpID09IEdJQ0RfSU5UX05N SV9QUkkpKSB7CivCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bmxpa2VseShnaWNfcmVhZF9ycHIoKSA9 PSAoKEdJQ0RfSU5UX05NSV9QUkkgPj4gMSkgfCAweDgwKSkpIHsKwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGdpY19oYW5kbGVfbm1pKGlycW5yLCByZWdzKTsKwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHJldHVybjsKwqDCoMKgwqDCoMKgwqAgfQpAQCAtMTY1NCw4ICsxNjU2 LDEwIEBAIHN0YXRpYyB2b2lkIGdpY19lbmFibGVfbm1pX3N1cHBvcnQodm9pZCkKwqDCoMKgwqDC oMKgwqDCoCAqIGJlIGluIHRoZSBub24tc2VjdXJlIHJhbmdlLCB3ZSB1c2UgYSBkaWZmZXJlbnQg UE1SIHZhbHVlIHRvIG1hc2sgSVJRcwrCoMKgwqDCoMKgwqDCoMKgICogYW5kIHRoZSByZXN0IG9m IHRoZSB2YWx1ZXMgdGhhdCB3ZSB1c2UgcmVtYWluIHVuY2hhbmdlZC4KwqDCoMKgwqDCoMKgwqDC oCAqLwotwqDCoMKgwqDCoMKgIGlmIChnaWNfaGFzX2dyb3VwMCgpICYmICFnaWNfZGlzdF9zZWN1 cml0eV9kaXNhYmxlZCgpKQorwqDCoMKgwqDCoMKgIGlmIChnaWNfaGFzX2dyb3VwMCgpICYmICFn aWNfZGlzdF9zZWN1cml0eV9kaXNhYmxlZCgpKSB7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHByX2luZm8oImVuYWJsaW5nIGdpY19ub25zZWN1cmVfcHJpb3JpdGllcyIpOwrCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RhdGljX2JyYW5jaF9lbmFibGUoJmdpY19ub25zZWN1 cmVfcHJpb3JpdGllcyk7CivCoMKgwqDCoMKgwqAgfQrCoArCoMKgwqDCoMKgwqDCoCBzdGF0aWNf YnJhbmNoX2VuYWJsZSgmc3VwcG9ydHNfcHNldWRvX25taXMpOwrCoAoKVGhpcyBpcyB3aGF0IEkg Z2V0IGZyb20gRlZQIChhbHNvIHRydW5jYXRlZCk6CgpCb290LXdyYXBwZXIgdjAuMgoKWy4uXQpb wqDCoMKgIDAuMDAwMDAwXSBLZXJuZWwgY29tbWFuZCBsaW5lOiBlYXJseWNvbj1wbDAxMSwweDFj MDkwMDAwIGNvbnNvbGU9dHR5QU1BMAprcHRpPW9mZiByb290PS9kZXYvdmRhIGlycWNoaXAuZ2lj djNfcHNldWRvX25taT0xClsuLl0KW8KgwqDCoCAwLjAwMDAwMF0gTlJfSVJRUzogNjQsIG5yX2ly cXM6IDY0LCBwcmVhbGxvY2F0ZWQgaXJxczogMApbwqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogR0lD OiBVc2luZyBzcGxpdCBFT0kvRGVhY3RpdmF0ZSBtb2RlClvCoMKgwqAgMC4wMDAwMDBdIEdJQ3Yz OiAyMjQgU1BJcyBpbXBsZW1lbnRlZApbwqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogMCBFeHRlbmRl ZCBTUElzIGltcGxlbWVudGVkClvCoMKgwqAgMC4wMDAwMDBdIEdJQ3YzOiBEaXN0cmlidXRvciBo YXMgbm8gUmFuZ2UgU2VsZWN0b3Igc3VwcG9ydApbwqDCoMKgIDAuMDAwMDAwXSBSb290IElSUSBo YW5kbGVyOiBnaWNfaGFuZGxlX2lycQpbwqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogMTYgUFBJcyBp bXBsZW1lbnRlZApbwqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogQ1BVMDogZm91bmQgcmVkaXN0cmli dXRvciAwIHJlZ2lvbiAwOjB4MDAwMDAwMDAyZjEwMDAwMApbwqDCoMKgIDAuMDAwMDAwXSBHSUN2 MzogUHNldWRvLU5NSXMgZW5hYmxlZCB1c2luZyByZWxheGVkIElDQ19QTVJfRUwxIHN5bmNocm9u aXNhdGlvbgpbwqDCoMKgIDAuMDAwMDAwXSBHSUN2MzogZW5hYmxpbmcgZ2ljX25vbnNlY3VyZV9w cmlvcml0aWVzClsuLl0KW8KgwqDCoCAwLjAzNzc0OV0gYXJtdjgtcG11IHBtdTogaHcgcGVyZmV2 ZW50czogbm8gaW50ZXJydXB0LWFmZmluaXR5IHByb3BlcnR5LCBndWVzc2luZy4KW8KgwqDCoCAw LjAzNzg2MF0gaHcgcGVyZmV2ZW50czogZW5hYmxlZCB3aXRoIGFybXY4X3BtdXYzIFBNVSBkcml2 ZXIsIDkgY291bnRlcnMKYXZhaWxhYmxlLCB1c2luZyBOTUlzClsuLl0KIyBwZXJmIHJlY29yZCAt YSAtLSBzbGVlcCAxMApbwqDCoMKgIDMuNTU2NjY5XSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2lu ZzogUHNldWRvLU5NSQpbwqDCoMKgIDMuNTU2Njc2XSBDUFU6IDAgUElEOiAxNDUgQ29tbTogcGVy ZiBOb3QgdGFpbnRlZCA1LjE0LjAtcmM1LWRpcnR5ICMyMwpbwqDCoMKgIDMuNTU2NjkwXSBIYXJk d2FyZSBuYW1lOiBGVlAgQmFzZSAoRFQpClvCoMKgwqAgMy41NTY2OTJdIENhbGwgdHJhY2U6ClvC oMKgwqAgMy41NTY3MDBdwqAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MTljClvCoMKgwqAgMy41NTY3 MTBdwqAgc2hvd19zdGFjaysweDFjLzB4NzAKW8KgwqDCoCAzLjU1NjcyNV3CoCBkdW1wX3N0YWNr X2x2bCsweDY4LzB4ODQKW8KgwqDCoCAzLjU1NjcyOV3CoCBkdW1wX3N0YWNrKzB4MWMvMHgzOApb wqDCoMKgIDMuNTU2NzQxXcKgIHBhbmljKzB4MTZjLzB4MzQwClvCoMKgwqAgMy41NTY3NTBdwqAg Z2ljX2hhbmRsZV9pcnErMHgxNzgvMHgxYTQKW8KgwqDCoCAzLjU1Njc2MF3CoCBjYWxsX29uX2ly cV9zdGFjaysweDJjLzB4NTgKW8KgwqDCoCAzLjU1Njc3Nl3CoCBkb19pbnRlcnJ1cHRfaGFuZGxl cisweDU0LzB4NjAKW8KgwqDCoCAzLjU1Njc5MV3CoCBlbDFfaW50ZXJydXB0KzB4MzAvMHhhMApb wqDCoMKgIDMuNTU2ODAwXcKgIGVsMWhfNjRfaXJxX2hhbmRsZXIrMHgxYy8weDJjClvCoMKgwqAg My41NTY4MDldwqAgZWwxaF82NF9pcnErMHg3OC8weDdjClvCoMKgwqAgMy41NTY4MTldwqAgZG9f dmZzX2lvY3RsKzB4OTAvMHhkMzAKW8KgwqDCoCAzLjU1NjgzMF3CoCBfX2FybTY0X3N5c19pb2N0 bCsweDg4LzB4ZjAKW8KgwqDCoCAzLjU1Njg0Ml3CoCBpbnZva2Vfc3lzY2FsbCsweDQ4LzB4MTE0 ClvCoMKgwqAgMy41NTY4NDldwqAgZWwwX3N2Y19jb21tb24rMHg0OC8weDE3YwpbwqDCoMKgIDMu NTU2ODU5XcKgIGRvX2VsMF9zdmMrMHgyYy8weDk0ClvCoMKgwqAgMy41NTY4NzNdwqAgZWwwX3N2 YysweDJjLzB4NWMKW8KgwqDCoCAzLjU1Njg3OV3CoCBlbDB0XzY0X3N5bmNfaGFuZGxlcisweGE4 LzB4MTMwClvCoMKgwqAgMy41NTY4ODldwqAgZWwwdF82NF9zeW5jKzB4MTk4LzB4MTljClvCoMKg wqAgMy41NTY5MDddIFNNUDogc3RvcHBpbmcgc2Vjb25kYXJ5IENQVXMKW8KgwqDCoCAzLjU1Njkx OV0gS2VybmVsIE9mZnNldDogMHg1N2M1Y2I0ODAwMDAgZnJvbSAweGZmZmY4MDAwMTAwMDAwMDAK W8KgwqDCoCAzLjU1NjkyMl0gUEhZU19PRkZTRVQ6IDB4ZmZmZmViYjU4MDAwMDAwMApbwqDCoMKg IDMuNTU2OTMwXSBDUFUgZmVhdHVyZXM6IDB4MDAwMDAwYzEsZmYzZDRlZWYKW8KgwqDCoCAzLjU1 Njk0MF0gTWVtb3J5IExpbWl0OiBub25lClvCoMKgwqAgMy41NTY5NDldIC0tLVsgZW5kIEtlcm5l bCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBQc2V1ZG8tTk1JIF0tLS0KCj4KPj4gYnV0IHdoZW4gSSBj aGFuZ2VkIHRoZSBjb21wYXJpc29uIHRvIGdpY19yZWFkX3JwcigpID09Cj4+ICgoR0lDRF9JTlRf Tk1JX1BSSSA+PiAxKSB8IDB4ODApLCBOTUlzIHdlcmUgYmVpbmcgY29ycmVjdGx5IGhhbmRsZWQK Pj4gYWdhaW4uCj4gWW91IGhhdmUgY29tcGxldGVseSBsb3N0IG1lLiBUaGlzIGNvbnRyYWRpY3Rz IHdoYXQgeW91IGhhdmUgd3JpdHRlbgo+IGFib3ZlLgoKSSBkb24ndCBzZWUgaG93IHRoYXQgaXMg dGhlIGNhc2UgLSBJQ0NfUlBSX0VMMSBjb250YWlucyB0aGUgcHJpb3JpdHkgdmFsdWUgYXMgc2Vl bgpieSB0aGUgRGlzdHJpYnV0b3IsIGFuZCBub24tc2VjdXJlIHByaW9yaXRpZXMgZ2V0IHJpZ2h0 LXNoaWZ0ZWQgd2hlbgpTQ1JfRUwzLkZJUT0wLCBtZWFuaW5nIHRoYXQgR0lDRF9JTlRfTk1JX1BS SSBiZWNvbWVzIChHSUNEX0lOVF9OTUlfUFJJID4+IDEpIHwKMHg4MCBpbiB0aGUgRGlzdHJpYnV0 b3IuIENhbiB5b3UgZWxhYm9yYXRlIHdoZXJlIEknbSBjb250cmFkaWN0aW5nIG15c2VsZj8KClRo YW5rcywKCkFsZXgKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==