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=-14.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 E2B81C433DB for ; Mon, 22 Mar 2021 07:27:53 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 125C560295 for ; Mon, 22 Mar 2021 07:27:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 125C560295 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=konsulko.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; 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=xhDXBzG2qgLC4VcEkTREZJW5PpqPnjKWOvm6ZRmLVGM=; b=KqSxk0/fvHxgA6FtbDDl8Zua7 PLPvh918hrJq6zr/QRSbih/rVhnBXDeJ1dkI/KnCdJWgbVE9TmdUlXR1mlpLNhMTsjpNj2osL2Ntr j5AGTF9eibF6SX4fFjzPe1rRLalp8u9rR1bQI7S2El1hWkEASRg8bExmHfmWDLFkAFw0zRIJbXGok xtDTRx6si1uJRzePEXXvPKrCQBVllPOgn7hOFwzonYVGMXcYH9dJO0l+mSicBEbEkdxxTrQjy1QJS weFhMk0uhMN/q75QTOYi8S/pMYyFWm2V6Y11VDn2ZLX3Z4+dI15btjcn6bUpWK5DZruCynKbG07gn E0tCp74pw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lOEyF-00B59T-Kb; Mon, 22 Mar 2021 07:27:27 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lOEy8-00B58h-F0 for linux-riscv@lists.infradead.org; Mon, 22 Mar 2021 07:27:24 +0000 Received: by mail-lf1-x136.google.com with SMTP id f3so11281602lfu.5 for ; Mon, 22 Mar 2021 00:27:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=konsulko.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=LBWcKgFbMN8DE4x+TU36cKRgh76402JWqVXLJIP8PcY=; b=E1e+83Pn4ZHzQ+KmrqHhIlolGk5n0ZjxYMaMiyuON4Yr7WvFrUlWAfDNplRiozm8KW 3DwTyauNWdTJRN5ufiV5uS0Q6uVlc18NIjvsaWmPUsVNX988pJz+TuH1qFbhN6H7E0E/ D1OKo3uBDQ4i0pw9KFVXZSA/DFahJxvd0vdNE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=LBWcKgFbMN8DE4x+TU36cKRgh76402JWqVXLJIP8PcY=; b=pFJDLAEarPqvJZdZfJ6IWaqX1sIlpQLqjY9sF1HpFo2V7o67Ac6rWrvVxY+2z5pUp/ BiUjJRfQCHJNBCDMQuChK8FCpmrqybIRlyk5lEUd1n9gftT9RkkG9MnpH0S/6bIH3B6f rdo+oM7udpz+r6EsCLqSb6JeEai8ANfqTJFjpGzChL2DkeAW+CHFJ32UgJ+qLu7+3m+K oZjnXT+k4DPYrs0IY4+azkZTjZoh+8NNe9h/5A4VrqzJ+HCPB83/BtIEExbiSitc3E4S QABfbjkfJe7bj5ri7cxBEAzfxLN0+0fVxIDCfAINc1M2FIMiVYovoL9E8R7pyzEaBYFS 8ftA== X-Gm-Message-State: AOAM532F1AKZ5qSihQQlCAPeqW8m52/reyQWGKSGniYIh1Qn35uEAu/A 2sFbBAa3MncWPKIzIYPxJZNeTgEvwYgBayqHLSDxfA== X-Google-Smtp-Source: ABdhPJyqnq8Mc3sgtcXHEtirQIDRdD0ZndfsC0s4RgC17M+Ipo86R7q3EfTBFtlWUl2QrpHh2HbowZnw89QpzxRewAA= X-Received: by 2002:a19:b49:: with SMTP id 70mr8715209lfl.342.1616398039264; Mon, 22 Mar 2021 00:27:19 -0700 (PDT) MIME-Version: 1.0 References: <20210310092234.10501-1-vitaly.wool@konsulko.com> <82a05081-5662-c787-44e4-d480774ce31c@ghiti.fr> In-Reply-To: From: Vitaly Wool Date: Mon, 22 Mar 2021 08:27:08 +0100 Message-ID: Subject: Re: [PATCH v5] RISC-V: enable XIP To: Alex Ghiti Cc: linux-riscv , LKML , Bin Meng , Anup Patel , Alistair Francis , Palmer Dabbelt , Nicolas Pitre X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210322_072720_834729_21203BE4 X-CRM114-Status: GOOD ( 51.47 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gTW9uLCBNYXIgMjIsIDIwMjEgYXQgNzo1NSBBTSBBbGV4IEdoaXRpIDxhbGV4QGdoaXRpLmZy PiB3cm90ZToKPgo+IExlIDMvMjEvMjEgw6AgMjowNiBQTSwgVml0YWx5IFdvb2wgYSDDqWNyaXQg Ogo+ID4gSGV5IEFsZXgsCj4gPgo+ID4gT24gU3VuLCBNYXIgMjEsIDIwMjEgYXQgNDoxMSBQTSBB bGV4IEdoaXRpIDxhbGV4QGdoaXRpLmZyPiB3cm90ZToKPiA+Pgo+ID4+IEhpIFZpdGFseSwKPiA+ Pgo+ID4+IExlIDMvMTAvMjEgw6AgNDoyMiBBTSwgVml0YWx5IFdvb2wgYSDDqWNyaXQgOgo+ID4+ PiBJbnRyb2R1Y2UgWElQIChlWGVjdXRlIEluIFBsYWNlKSBzdXBwb3J0IGZvciBSSVNDLVYgcGxh dGZvcm1zLgo+ID4+PiBJdCBhbGxvd3MgY29kZSB0byBiZSBleGVjdXRlZCBkaXJlY3RseSBmcm9t IG5vbi12b2xhdGlsZSBzdG9yYWdlCj4gPj4+IGRpcmVjdGx5IGFkZHJlc3NhYmxlIGJ5IHRoZSBD UFUsIHN1Y2ggYXMgUVNQSSBOT1IgZmxhc2ggd2hpY2ggY2FuCj4gPj4+IGJlIGZvdW5kIG9uIG1h bnkgUklTQy1WIHBsYXRmb3Jtcy4gVGhpcyBtYWtlcyB3YXkgZm9yIHNpZ25pZmljYW50Cj4gPj4+ IG9wdGltaXphdGlvbiBvZiBSQU0gZm9vdHByaW50LiBUaGUgWElQIGtlcm5lbCBpcyBub3QgY29t cHJlc3NlZAo+ID4+PiBzaW5jZSBpdCBoYXMgdG8gcnVuIGRpcmVjdGx5IGZyb20gZmxhc2gsIHNv IGl0IHdpbGwgb2NjdXB5IG1vcmUKPiA+Pj4gc3BhY2Ugb24gdGhlIG5vbi12b2xhdGlsZSBzdG9y YWdlIHRvIFRoZSBwaHlzaWNhbCBmbGFzaCBhZGRyZXNzCj4gPj4KPiA+PiBUaGVyZSBzZWVtcyB0 byBiZSBtaXNzaW5nIHNvbWV0aGluZyBoZXJlLgo+ID4KPiA+Cj4gPiBIbW1tLi4uIHN0cmFuZ2Ug aW5kZWVkLiBJJ2xsIGNvbWUgdXAgd2l0aCBhIHJlc3BpbiBzaG9ydGx5IGFuZCB3aWxsCj4gPiBk b3VibGUgY2hlY2suCj4gPj4KPiA+Pgo+ID4+PiB1c2VkIHRvIGxpbmsgdGhlIGtlcm5lbCBvYmpl Y3QgZmlsZXMgYW5kIGZvciBzdG9yaW5nIGl0IGhhcyB0bwo+ID4+PiBiZSBrbm93biBhdCBjb21w aWxlIHRpbWUgYW5kIGlzIHJlcHJlc2VudGVkIGJ5IGEgS2NvbmZpZyBvcHRpb24uCj4gPj4+Cj4g Pj4+IFhJUCBvbiBSSVNDLVYgd2lsbCBjdXJyZW50bHkgb25seSB3b3JrIG9uIE1NVS1lbmFibGVk IGtlcm5lbHMuCj4gPj4+Cj4gPj4+IFNpZ25lZC1vZmYtYnk6IFZpdGFseSBXb29sIDx2aXRhbHku d29vbEBrb25zdWxrby5jb20+Cj4gPj4KPiA+Pgo+ID4+IFRoaXMgZmFpbHMgdG8gYm9vdCBvbiBj dXJyZW50IGZvci1uZXh0IHdpdGggdGhlIGZvbGxvd2luZyBwYW5pYy4KPiA+PiBUaGlzIGlzIGJl Y2F1c2UgZHRiX2Vhcmx5X3ZhIHBvaW50cyB0byBhbiBhZGRyZXNzIHRoYXQgaXMgbm90IG1hcHBl ZCBpbgo+ID4+IHN3YXBwZXJfcGdfZGlyOiB1c2luZyBfX3ZhKGR0Yl9lYXJseV9wYSkgaW5zdGVh ZCB3b3JrcyBmaW5lLgo+ID4KPiA+IElzIGl0IHdpdGggQ09ORklHX0JVSUxUSU5fRFRCIG9yIHdp dGhvdXQ/Cj4KPiBJdCBpcyB3aXRob3V0IENPTkZJR19CVUlMVElOX0RUQiBlbmFibGVkLgo+Cj4g QW5kIEkgbm90aWNlZCBJIGNhbid0IGxpbmsgYSBYSVBfS0VSTkVMIGVpdGhlcjoKPgo+IC9ob21l L2FsZXgvd2lwL2xwYy9idWlsZHJvb3QvYnVpbGRfcnY2NC9ob3N0L2Jpbi9yaXNjdjY0LWJ1aWxk cm9vdC1saW51eC1nbnUtbGQ6Cj4gc2VjdGlvbiAuZGF0YSBMTUEgWzAwMDAwMDAwMDA4MDAwMDAs MDAwMDAwMDAwMDhjZDc3Zl0gb3ZlcmxhcHMgc2VjdGlvbgo+IC5yb2RhdGEgTE1BIFswMDAwMDAw MDAwNmY2MWMwLDAwMDAwMDAwMDA4NDk5YTddCj4gL2hvbWUvYWxleC93aXAvbHBjL2J1aWxkcm9v dC9idWlsZF9ydjY0L2hvc3QvYmluL3Jpc2N2NjQtYnVpbGRyb290LWxpbnV4LWdudS1sZDoKPiBz ZWN0aW9uIC5wY2lfZml4dXAgTE1BIFswMDAwMDAwMDAwODQ5OWE4LDAwMDAwMDAwMDA4NGNmZDdd IG92ZXJsYXBzCj4gc2VjdGlvbiAuZGF0YSBMTUEgWzAwMDAwMDAwMDA4MDAwMDAsMDAwMDAwMDAw MDhjZDc3Zl0KPiAvaG9tZS9hbGV4L3dpcC9scGMvYnVpbGRyb290L2J1aWxkX3J2NjQvaG9zdC9i aW4vcmlzY3Y2NC1idWlsZHJvb3QtbGludXgtZ251LWxkOgo+IGFyY2gvcmlzY3YvbW0vaW5pdC5v OiBpbiBmdW5jdGlvbiBgLkwxMzgnOgo+IGluaXQuYzooLnRleHQrMHgyMzIpOiB1bmRlZmluZWQg cmVmZXJlbmNlIHRvIGBfX2luaXRfdGV4dF9iZWdpbicKPiAvaG9tZS9hbGV4L3dpcC9scGMvYnVp bGRyb290L2J1aWxkX3J2NjQvaG9zdC9iaW4vcmlzY3Y2NC1idWlsZHJvb3QtbGludXgtZ251LWxk Ogo+IGFyY2gvcmlzY3YvbW0vaW5pdC5vOiBpbiBmdW5jdGlvbiBgcHJvdGVjdF9rZXJuZWxfdGV4 dF9kYXRhJzoKPiBpbml0LmM6KC50ZXh0KzB4MjNhKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg X19pbml0X2RhdGFfYmVnaW4nCj4gL2hvbWUvYWxleC93aXAvbHBjL2J1aWxkcm9vdC9idWlsZF9y djY0L2hvc3QvYmluL3Jpc2N2NjQtYnVpbGRyb290LWxpbnV4LWdudS1sZDoKPiBpbml0LmM6KC50 ZXh0KzB4MjhjKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19pbml0X3RleHRfYmVnaW4nCj4g L2hvbWUvYWxleC93aXAvbHBjL2J1aWxkcm9vdC9idWlsZF9ydjY0L2hvc3QvYmluL3Jpc2N2NjQt YnVpbGRyb290LWxpbnV4LWdudS1sZDoKPiBpbml0LmM6KC50ZXh0KzB4MmEwKTogdW5kZWZpbmVk IHJlZmVyZW5jZSB0byBgX19pbml0X2RhdGFfYmVnaW4nCj4gbWFrZVsyXTogKioqIFtNYWtlZmls ZToxMTk3OiB2bWxpbnV4XSBFcnJvciAxCj4gbWFrZVsxXTogKioqIFtwYWNrYWdlL3BrZy1nZW5l cmljLm1rOjI1MDoKPiAvaG9tZS9hbGV4L3dpcC9scGMvYnVpbGRyb290L2J1aWxkX3J2NjQvYnVp bGQvbGludXgtY3VzdG9tLy5zdGFtcF9idWlsdF0KPiBFcnJvciAyCj4gbWFrZTogKioqIFtNYWtl ZmlsZToyMzogX2FsbF0gRXJyb3IgMgo+Cj4gVGhlIDIgbWlzc2luZyBzeW1ib2xzIGFyZSBub3Qg ZGVmaW5lZCBpbiB2bWxpbnV4LXhpcC5sZHMuUyBhbmQgYXJlCj4gcmVxdWlyZWQgZm9yIENPTkZJ R19TVFJJQ1RfS0VSTkVMX1JXWCwgSSBkb24ndCB0aGluayBib3RoIGNvbmZpZ3MgYXJlCj4gZXhj bHVzaXZlID8gSSBhZGRlZCB0aGVtIGluIGxpbmtlciBzY3JpcHQgYW5kIHRoYXQgd29ya3MuCgpB bGwgdGhlIGV4ZWN1dGFibGUgYW5kIHJlYWQtb25seSBwYXJ0cyBvZiBhbiBYSVAga2VybmVsIHJl c2lkZSBpbiBOT1IKZmxhc2ggd2hpY2ggaXMgcmVhZC1vbmx5IHdoZW4gaXQgaXMgaW4gcmFuZG9t IGFjY2VzcyBtb2RlLCBzbwpDT05GSUdfU1RSSUNUX0tFUk5FTF9SV1ggYmFzaWNhbGx5IGhhcyB6 ZXJvIHZhbHVlIGZvciBYSVAuIEFuZCBzaW5jZQpOT1IgZmxhc2ggc3BhY2UgaXMgdXN1YWxseSBx dWl0ZSBsaW1pdGVkLCBhbnkgb3B0aW9uIHlvdSBjYW4gYXZvaWQKZW5hYmxpbmcgZm9yIGFuIFhJ UCBrZXJuZWwgc2hvdWxkIG5vdCBiZSBlbmFibGVkLgoKPiBCdXQgdGhlbiBJJ20gc3RpbGwgYmxv Y2tlZCB3aXRoIHRoZSBvdmVybGFwcywgYW55IGlkZWEgPwoKQXMgSSd2ZSBzYWlkLCBmbGFzaCBz cGFjZSBpcyB2ZXJ5IGxpbWl0ZWQuIEluIGEgc3RhbmRhcmQgUklTQy1WIGNhc2UKaXQgaXMgMTYg TUIsIGFuZCB0aGUgbGlua2VyIGJhc2ljYWxseSBhc3N1bWVzIHdlIHNwbGl0IGl0IDUwLzUwCmJl dHdlZW4gUk8gYW5kIFJXIHNlY3Rpb25zLgpUaGVuIHRoZSBmaXJzdCA4IE1CIG9mIHRoZSBOT1Ig Zmxhc2ggYXJlIG1hcHBlZCByaWdodCBiZWZvcmUgdGhlCnN0YW5kYXJkIFJBTSBtYXBwaW5nIHRv IGNyZWF0ZSB2aXJ0dWFsbHkgY29udGlndW91cyBzcGFjZSBvZjoKKiBSTy9YIHNlY3Rpb25zIHN0 aWxsIHJlc2lkaW5nIGluIGZsYXNoLCBhbmQKKiBSVyBzZWN0aW9ucyB0aGF0IGhhdmUgYmVlbiBj b3BpZWQgdG8gdGhlIGJlZ2lubmluZyBvZiBSQU0gZm9yIHRoZW0KdG8gYWN0dWFsbHkgYmUgUlcu CgpTbyB0aGUgaWRlYSBpcyBzaW1wbGU6IHlvdSBoYXZlIHRvIHNsaW0gZG93biB5b3VyIGtlcm5l bCBzbyB0aGF0IFJPL1gKc2VjdGlvbnMgb2NjdXB5IGFwcHJveGltYXRlbHkgMzAwSyBsZXNzIHRo YW4gdGhleSBkbyBub3cgOikKClRoYW5rcyBhZ2FpbiBmb3IgdGhlIHJldmlldyBhbmQgZm9yIHRo ZSBpbnRlcmVzdCB0YWtlbiwKCkJlc3QgcmVnYXJkcywKICAgVml0YWx5Cgo+ID4+Cj4gPj4gQW5k IGFzIHRoaXMgbGlrZWx5IG5lZWRzIGFub3RoZXIgdmVyc2lvbiwgSSdtIGdvaW5nIHRvIGFkZCBt eSBjb21tZW50cwo+ID4+IGJlbG93Lgo+ID4+Cj4gPj4gWyAgICAwLjAwMDAwMF0gT0Y6IGZkdDog SWdub3JpbmcgbWVtb3J5IHJhbmdlIDB4ODAwMDAwMDAgLSAweDgwMjAwMDAwCj4gPj4gWyAgICAw LjAwMDAwMF0gTWFjaGluZSBtb2RlbDogcmlzY3YtdmlydGlvLHFlbXUKPiA+PiBbICAgIDAuMDAw MDAwXSBlYXJseWNvbjogc2JpMCBhdCBJL08gcG9ydCAweDAgKG9wdGlvbnMgJycpCj4gPj4gWyAg ICAwLjAwMDAwMF0gcHJpbnRrOiBib290Y29uc29sZSBbc2JpMF0gZW5hYmxlZAo+ID4+IFsgICAg MC4wMDAwMDBdIGVmaTogVUVGSSBub3QgZm91bmQuCj4gPj4gWyAgICAwLjAwMDAwMF0gVW5hYmxl IHRvIGhhbmRsZSBrZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgdmlydHVhbCBhZGRyZXNzCj4gPj4g MDAwMDAwMDA0MDAwMDAwMQo+ID4+IFsgICAgMC4wMDAwMDBdIE9vcHMgWyMxXQo+ID4+IFsgICAg MC4wMDAwMDBdIE1vZHVsZXMgbGlua2VkIGluOgo+ID4+IFsgICAgMC4wMDAwMDBdIENQVTogMCBQ SUQ6IDAgQ29tbTogc3dhcHBlciBOb3QgdGFpbnRlZCA1LjEyLjAtcmMyICMxNTUKPiA+PiBbICAg IDAuMDAwMDAwXSBIYXJkd2FyZSBuYW1lOiByaXNjdi12aXJ0aW8scWVtdSAoRFQpCj4gPj4gWyAg ICAwLjAwMDAwMF0gZXBjIDogZmR0X2NoZWNrX2hlYWRlcisweDAvMHgxZmMKPiA+PiBbICAgIDAu MDAwMDAwXSAgcmEgOiBlYXJseV9pbml0X2R0X3ZlcmlmeSsweDE2LzB4NmUKPiA+PiBbICAgIDAu MDAwMDAwXSBlcGMgOiBmZmZmZmZlMDAwMmI5NTVlIHJhIDogZmZmZmZmZTAwMDgyMTAwYyBzcCA6 Cj4gPj4gZmZmZmZmZTAwMTIwM2YxMAo+ID4+IFsgICAgMC4wMDAwMDBdICBncCA6IGZmZmZmZmUw MDEyZTQwYjggdHAgOiBmZmZmZmZlMDAxMjBiZDgwIHQwIDoKPiA+PiBmZmZmZmZlMjNmZGY3MDAw Cj4gPj4gWyAgICAwLjAwMDAwMF0gIHQxIDogMDAwMDAwMDAwMDAwMDAwMCB0MiA6IDAwMDAwMDAw MDAwMDAwMDAgczAgOgo+ID4+IGZmZmZmZmUwMDEyMDNmMzAKPiA+PiBbICAgIDAuMDAwMDAwXSAg czEgOiAwMDAwMDAwMDQwMDAwMDAwIGEwIDogMDAwMDAwMDA0MDAwMDAwMCBhMSA6Cj4gPj4gMDAw MDAwMDJiZmZmZmZmZgo+ID4+IFsgICAgMC4wMDAwMDBdICBhMiA6IGZmZmZmZmUyM2ZkZjZmMDAg YTMgOiAwMDAwMDAwMDAwMDAwMDAxIGE0IDoKPiA+PiAwMDAwMDAwMDAwMDAwMDE4Cj4gPj4gWyAg ICAwLjAwMDAwMF0gIGE1IDogZmZmZmZmZTAwMGEwYjVlOCBhNiA6IGZmZmZmZmUyM2ZkZjZlZjAg YTcgOgo+ID4+IDAwMDAwMDAwMDAwMDAwMTgKPiA+PiBbICAgIDAuMDAwMDAwXSAgczIgOiAwMDAw MDAwMDgwMDAwMjAwIHMzIDogMDAwMDAwMDAwMDAwMGZmZiBzNCA6Cj4gPj4gZmZmZmZmZTAwMGEw YTk1OAo+ID4+IFsgICAgMC4wMDAwMDBdICBzNSA6IDAwMDAwMDAwMDAwMDAwMDUgczYgOiAwMDAw MDAwMDAwMDAwMTQwIHM3IDoKPiA+PiBmZmZmZmZlMjNmZGY2ZWMwCj4gPj4gWyAgICAwLjAwMDAw MF0gIHM4IDogMDAwMDAwMDA4MTAwMDIwMCBzOSA6IDAwMDAwMDAwODAwMDAyMDAgczEwOgo+ID4+ IGZmZmZmZmUwMDBhMDEwMDAKPiA+PiBbICAgIDAuMDAwMDAwXSAgczExOiAwMDAwMDAwMDAwMDAw ZmZmIHQzIDogZmZmZmZmZmZiZmZmNzAwMCB0NCA6Cj4gPj4gZmZmZmZmZmZmZmZmZmZmZgo+ID4+ IFsgICAgMC4wMDAwMDBdICB0NSA6IDAwMDAwMDAwODBlMDAwMDAgdDYgOiAwMDAwMDAwMDgwMjAy MDAwCj4gPj4gWyAgICAwLjAwMDAwMF0gc3RhdHVzOiAwMDAwMDAwMDAwMDAwMTAwIGJhZGFkZHI6 IDAwMDAwMDAwNDAwMDAwMDEgY2F1c2U6Cj4gPj4gMDAwMDAwMDAwMDAwMDAwZAo+ID4+IFsgICAg MC4wMDAwMDBdIENhbGwgVHJhY2U6Cj4gPj4gWyAgICAwLjAwMDAwMF0gWzxmZmZmZmZlMDAwMmI5 NTVlPl0gZmR0X2NoZWNrX2hlYWRlcisweDAvMHgxZmMKPiA+PiBbICAgIDAuMDAwMDAwXSBbPGZm ZmZmZmUwMDA4MDJhZjI+XSBzZXR1cF9hcmNoKzB4M2E2LzB4NDEyCj4gPj4gWyAgICAwLjAwMDAw MF0gWzxmZmZmZmZlMDAwODAwNmVhPl0gc3RhcnRfa2VybmVsKzB4N2UvMHg1ODAKPiA+PiBbICAg IDAuMDAwMDAwXSByYW5kb206IGdldF9yYW5kb21fYnl0ZXMgY2FsbGVkIGZyb20KPiA+PiBwcmlu dF9vb3BzX2VuZF9tYXJrZXIrMHgyMi8weDQ0IHdpdGggY3JuZ19pbml0PTAKPiA+PiBbICAgIDAu MDAwMDAwXSAtLS1bIGVuZCB0cmFjZSAwMDAwMDAwMDAwMDAwMDAwIF0tLS0KPiA+PiBbICAgIDAu MDAwMDAwXSBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0aW9uCj4gPj4g WyAgICAwLjAwMDAwMF0gLS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFs IGV4Y2VwdGlvbiBdLS0tCj4gPj4KPiA+Pj4KPiA+Pj4gLS0tCj4gPj4+IENoYW5nZXMgaW4gdjI6 Cj4gPj4+IC0gZGVkaWNhdGVkIG1hY3JvIGZvciBYSVAgYWRkcmVzcyBmaXh1cCB3aGVuIE1NVSBp cyBub3QgZW5hYmxlZCB5ZXQKPiA+Pj4gICAgIG8gYm90aCBmb3IgMzItYml0IGFuZCA2NC1iaXQg UklTQy1WCj4gPj4+IC0gU1AgaXMgZXhwbGljaXRseSBzZXQgdG8gYSBzYWZlIHBsYWNlIGluIFJB TSBiZWZvcmUgX19jb3B5X2RhdGEgY2FsbAo+ID4+PiAtIHJlbW92ZWQgcmVkdW5kYW50IGFsaWdu bWVudCByZXF1aXJlbWVudHMgaW4gdm1saW51eC14aXAubGRzLlMKPiA+Pj4gLSBjaGFuZ2VkIGxv bmcgLT4gdWludHB0cl90IHR5cGVjYXN0IGluIF9fWElQX0ZJWFVQIG1hY3JvLgo+ID4+PiBDaGFu Z2VzIGluIHYzOgo+ID4+PiAtIHJlYmFzZWQgYWdhaW5zdCBsYXRlc3QgZm9yLW5leHQKPiA+Pj4g LSBYSVAgYWRkcmVzcyBmaXh1cCBtYWNybyBub3cgdGFrZXMgYW4gYXJndW1lbnQKPiA+Pj4gLSBT TVAgcmVsYXRlZCBmaXhlcwo+ID4+PiBDaGFuZ2VzIGluIHY0Ogo+ID4+PiAtIHJlYmFzZWQgYWdh aW5zdCB0aGUgY3VycmVudCBmb3ItbmV4dAo+ID4+PiAtIGxlc3MgI2lmZGVmJ3MgaW4gQy9BU00g Y29kZQo+ID4+PiAtIGRlZGljYXRlZCBYSVBfRklYVVBfT0ZGU0VUIGFzc2VtYmxlciBtYWNybyBp biBoZWFkLlMKPiA+Pj4gLSBDLXNwZWNpZmljIGRlZmluaXRpb25zIG1vdmVkIGludG8gI2lmbmRl ZiBfX0FTU0VNQkxZX18KPiA+Pj4gLSBGaXhlZCBtdWx0aS1jb3JlIGJvb3QKPiA+Pj4gQ2hhbmdl cyBpbiB2NToKPiA+Pj4gLSBmaXhlZCBidWlsZCBlcnJvciBmb3Igbm9uLVhJUCBrZXJuZWxzCj4g Pj4+Cj4gPj4+ICAgIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAgICAgICAgIHwgIDQ0ICsr KysrKysrKy0KPiA+Pj4gICAgYXJjaC9yaXNjdi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAg IDggKy0KPiA+Pj4gICAgYXJjaC9yaXNjdi9ib290L01ha2VmaWxlICAgICAgICAgICAgfCAgMTMg KysrCj4gPj4+ICAgIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oICAgIHwgIDY1ICsr KysrKysrKysrKy0tCj4gPj4+ICAgIGFyY2gvcmlzY3Yva2VybmVsL2NwdV9vcHNfc2JpLmMgICAg IHwgIDEyICsrLQo+ID4+PiAgICBhcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMgICAgICAgICAgICB8 ICA1OSArKysrKysrKysrKystCj4gPj4+ICAgIGFyY2gvcmlzY3Yva2VybmVsL2hlYWQuaCAgICAg ICAgICAgIHwgICAzICsKPiA+Pj4gICAgYXJjaC9yaXNjdi9rZXJuZWwvc2V0dXAuYyAgICAgICAg ICAgfCAgIDggKy0KPiA+Pj4gICAgYXJjaC9yaXNjdi9rZXJuZWwvdm1saW51eC14aXAubGRzLlMg fCAxMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4+PiAgICBhcmNoL3Jpc2N2L2tl cm5lbC92bWxpbnV4Lmxkcy5TICAgICB8ICAgNiArKwo+ID4+PiAgICBhcmNoL3Jpc2N2L21tL2lu aXQuYyAgICAgICAgICAgICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrLS0KPiA+Pj4gICAg MTEgZmlsZXMgY2hhbmdlZCwgNDMyIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+ID4+ PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9yaXNjdi9rZXJuZWwvdm1saW51eC14aXAubGRz LlMKPiA+Pj4KPiA+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2NvbmZpZyBiL2FyY2gvcmlz Y3YvS2NvbmZpZwo+ID4+PiBpbmRleCA4NWQ2MjZiOGNlNWUuLjU5ZmI5NDVhOTAwZSAxMDA2NDQK PiA+Pj4gLS0tIGEvYXJjaC9yaXNjdi9LY29uZmlnCj4gPj4+ICsrKyBiL2FyY2gvcmlzY3YvS2Nv bmZpZwo+ID4+PiBAQCAtNDM4LDcgKzQzOCw3IEBAIGNvbmZpZyBFRklfU1RVQgo+ID4+Pgo+ID4+ PiAgICBjb25maWcgRUZJCj4gPj4+ICAgICAgICBib29sICJVRUZJIHJ1bnRpbWUgc3VwcG9ydCIK PiA+Pj4gLSAgICAgZGVwZW5kcyBvbiBPRgo+ID4+PiArICAgICBkZXBlbmRzIG9uIE9GICYmICFY SVBfS0VSTkVMCj4gPj4+ICAgICAgICBzZWxlY3QgTElCRkRUCj4gPj4+ICAgICAgICBzZWxlY3Qg VUNTMl9TVFJJTkcKPiA+Pj4gICAgICAgIHNlbGVjdCBFRklfUEFSQU1TX0ZST01fRkRUCj4gPj4+ IEBAIC00NjIsMTEgKzQ2Miw1MSBAQCBjb25maWcgU1RBQ0tQUk9URUNUT1JfUEVSX1RBU0sKPiA+ Pj4gICAgICAgIGRlZl9ib29sIHkKPiA+Pj4gICAgICAgIGRlcGVuZHMgb24gU1RBQ0tQUk9URUNU T1IgJiYgQ0NfSEFWRV9TVEFDS1BST1RFQ1RPUl9UTFMKPiA+Pj4KPiA+Pj4gK2NvbmZpZyBYSVBf S0VSTkVMCj4gPj4+ICsgICAgIGJvb2wgIktlcm5lbCBFeGVjdXRlLUluLVBsYWNlIGZyb20gUk9N Igo+ID4+PiArICAgICBkZXBlbmRzIG9uIE1NVQo+ID4+PiArICAgICBoZWxwCj4gPj4+ICsgICAg ICAgRXhlY3V0ZS1Jbi1QbGFjZSBhbGxvd3MgdGhlIGtlcm5lbCB0byBydW4gZnJvbSBub24tdm9s YXRpbGUgc3RvcmFnZQo+ID4+PiArICAgICAgIGRpcmVjdGx5IGFkZHJlc3NhYmxlIGJ5IHRoZSBD UFUsIHN1Y2ggYXMgTk9SIGZsYXNoLiBUaGlzIHNhdmVzIFJBTQo+ID4+PiArICAgICAgIHNwYWNl IHNpbmNlIHRoZSB0ZXh0IHNlY3Rpb24gb2YgdGhlIGtlcm5lbCBpcyBub3QgbG9hZGVkIGZyb20g Zmxhc2gKPiA+Pj4gKyAgICAgICB0byBSQU0uICBSZWFkLXdyaXRlIHNlY3Rpb25zLCBzdWNoIGFz IHRoZSBkYXRhIHNlY3Rpb24gYW5kIHN0YWNrLAo+ID4+PiArICAgICAgIGFyZSBzdGlsbCBjb3Bp ZWQgdG8gUkFNLiAgVGhlIFhJUCBrZXJuZWwgaXMgbm90IGNvbXByZXNzZWQgc2luY2UKPiA+Pj4g KyAgICAgICBpdCBoYXMgdG8gcnVuIGRpcmVjdGx5IGZyb20gZmxhc2gsIHNvIGl0IHdpbGwgdGFr ZSBtb3JlIHNwYWNlIHRvCj4gPj4+ICsgICAgICAgc3RvcmUgaXQuICBUaGUgZmxhc2ggYWRkcmVz cyB1c2VkIHRvIGxpbmsgdGhlIGtlcm5lbCBvYmplY3QgZmlsZXMsCj4gPj4+ICsgICAgICAgYW5k IGZvciBzdG9yaW5nIGl0LCBpcyBjb25maWd1cmF0aW9uIGRlcGVuZGVudC4gVGhlcmVmb3JlLCBp ZiB5b3UKPiA+Pj4gKyAgICAgICBzYXkgWSBoZXJlLCB5b3UgbXVzdCBrbm93IHRoZSBwcm9wZXIg cGh5c2ljYWwgYWRkcmVzcyB3aGVyZSB0bwo+ID4+PiArICAgICAgIHN0b3JlIHRoZSBrZXJuZWwg aW1hZ2UgZGVwZW5kaW5nIG9uIHlvdXIgb3duIGZsYXNoIG1lbW9yeSB1c2FnZS4KPiA+Pj4gKwo+ ID4+PiArICAgICAgIEFsc28gbm90ZSB0aGF0IHRoZSBtYWtlIHRhcmdldCBiZWNvbWVzICJtYWtl IHhpcEltYWdlIiByYXRoZXIgdGhhbgo+ID4+PiArICAgICAgICJtYWtlIHpJbWFnZSIgb3IgIm1h a2UgSW1hZ2UiLiAgVGhlIGZpbmFsIGtlcm5lbCBiaW5hcnkgdG8gcHV0IGluCj4gPj4+ICsgICAg ICAgUk9NIG1lbW9yeSB3aWxsIGJlIGFyY2gvcmlzY3YvYm9vdC94aXBJbWFnZS4KPiA+Pj4gKwo+ ID4+PiArICAgICAgIElmIHVuc3VyZSwgc2F5IE4uCj4gPj4+ICsKPiA+Pj4gK2NvbmZpZyBYSVBf UEhZU19BRERSCj4gPj4+ICsgICAgIGhleCAiWElQIEtlcm5lbCBQaHlzaWNhbCBMb2NhdGlvbiIK PiA+Pj4gKyAgICAgZGVwZW5kcyBvbiBYSVBfS0VSTkVMCj4gPj4+ICsgICAgIGRlZmF1bHQgIjB4 MjEwMDAwMDAiCj4gPj4+ICsgICAgIGhlbHAKPiA+Pj4gKyAgICAgICBUaGlzIGlzIHRoZSBwaHlz aWNhbCBhZGRyZXNzIGluIHlvdXIgZmxhc2ggbWVtb3J5IHRoZSBrZXJuZWwgd2lsbAo+ID4+PiAr ICAgICAgIGJlIGxpbmtlZCBmb3IgYW5kIHN0b3JlZCB0by4gIFRoaXMgYWRkcmVzcyBpcyBkZXBl bmRlbnQgb24geW91cgo+ID4+PiArICAgICAgIG93biBmbGFzaCB1c2FnZS4KPiA+Pj4gKwo+ID4+ PiArY29uZmlnIFhJUF9QSFlTX1JBTV9CQVNFCj4gPj4+ICsgICAgIGhleCAiUGxhdGZvcm0gUGh5 c2ljYWwgUkFNIGFkZHJlc3MiCj4gPj4+ICsgICAgIGRlcGVuZHMgb24gWElQX0tFUk5FTAo+ID4+ PiArICAgICBkZWZhdWx0ICIweDgwMDAwMDAwIgo+ID4+PiArICAgICBoZWxwCj4gPj4+ICsgICAg ICAgVGhpcyBpcyB0aGUgcGh5c2ljYWwgYWRkcmVzcyBvZiBSQU0gaW4gdGhlIHN5c3RlbS4gSXQg aGFzIHRvIGJlCj4gPj4+ICsgICAgICAgZXhwbGljaXRseSBzcGVjaWZpZWQgdG8gcnVuIGVhcmx5 IHJlbG9jYXRpb25zIG9mIHJlYWQtd3JpdGUgZGF0YQo+ID4+PiArICAgICAgIGZyb20gZmxhc2gg dG8gUkFNLgo+ID4+Cj4gPj4gVGhpcyBpcyBub3QgWElQIHNwZWNpZmljIGFuZCB0aGlzIGlzIHNv bWV0aGluZyBJIGNvbnNpZGVyZWQgdG8gYWRkIGluCj4gPj4gb3JkZXIgdG8gbWFwIHRoZSBsaW5l YXIgbWFwcGluZyB3aXRoIGh1Z2VwYWdlcywgbWF5YmUgc2ltcGx5IHJlbmFtZSB0aGlzCj4gPj4g d2l0aG91dCBYSVBfIHByZWZpeC4KPiA+Cj4gPiBTdXJlLCBsZXQncyBqdXN0IGdvIHdpdGggUEhZ U19SQU1fQkFTRS4gSSB3YXMgcmVsdWN0YW50IHRvIGFkZCB5ZXQKPiA+IGFub3RoZXIgY29uc3Rh bnQgYXQgZmlyc3QgYnV0IGhhdmluZyB0byBkZXJpdmUgaXQgaW4gcnVudGltZSBsZWQgdG8KPiA+ IG92ZXJseSBjb21wbGljYXRlZCBjYWxjdWxhdGlvbnMgd2hpY2ggY291bGQgbm90IGJlIGNvbXBp bGUgdGltZQo+ID4gb3B0aW1pemVkLCBzbyBoZXJlIGl0IGNhbWUuCj4gPgo+ID4+PiArCj4gPj4+ ICAgIGVuZG1lbnUKPiA+Pj4KPiA+Pj4gICAgY29uZmlnIEJVSUxUSU5fRFRCCj4gPj4+IC0gICAg IGRlZl9ib29sIG4KPiA+Pj4gKyAgICAgYm9vbAo+ID4+PiAgICAgICAgZGVwZW5kcyBvbiBPRgo+ ID4+PiArICAgICBkZWZhdWx0IHkgaWYgWElQX0tFUk5FTAo+ID4+Pgo+ID4+PiAgICBtZW51ICJQ b3dlciBtYW5hZ2VtZW50IG9wdGlvbnMiCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L01ha2VmaWxlIGIvYXJjaC9yaXNjdi9NYWtlZmlsZQo+ID4+PiBpbmRleCAxMzY4ZDk0M2Yx ZjMuLjhmY2JlYzAzOTc0ZCAxMDA2NDQKPiA+Pj4gLS0tIGEvYXJjaC9yaXNjdi9NYWtlZmlsZQo+ ID4+PiArKysgYi9hcmNoL3Jpc2N2L01ha2VmaWxlCj4gPj4+IEBAIC04Miw3ICs4MiwxMSBAQCBD SEVDS0ZMQUdTICs9IC1EX19yaXNjdiAtRF9fcmlzY3ZfeGxlbj0kKEJJVFMpCj4gPj4+Cj4gPj4+ ICAgICMgRGVmYXVsdCB0YXJnZXQgd2hlbiBleGVjdXRpbmcgcGxhaW4gbWFrZQo+ID4+PiAgICBi b290ICAgICAgICAgICAgICAgIDo9IGFyY2gvcmlzY3YvYm9vdAo+ID4+PiAraWZlcSAoJChDT05G SUdfWElQX0tFUk5FTCkseSkKPiA+Pj4gK0tCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL3hpcEltYWdl Cj4gPj4+ICtlbHNlCj4gPj4+ICAgIEtCVUlMRF9JTUFHRSAgICAgICAgOj0gJChib290KS9JbWFn ZS5nego+ID4+PiArZW5kaWYKPiA+Pj4KPiA+Pj4gICAgaGVhZC15IDo9IGFyY2gvcmlzY3Yva2Vy bmVsL2hlYWQubwo+ID4+Pgo+ID4+PiBAQCAtOTUsMTIgKzk5LDE0IEBAIFBIT05ZICs9IHZkc29f aW5zdGFsbAo+ID4+PiAgICB2ZHNvX2luc3RhbGw6Cj4gPj4+ICAgICAgICAkKFEpJChNQUtFKSAk KGJ1aWxkKT1hcmNoL3Jpc2N2L2tlcm5lbC92ZHNvICRACj4gPj4+Cj4gPj4+ICtpZm5lcSAoJChD T05GSUdfWElQX0tFUk5FTCkseSkKPiA+Pj4gICAgaWZlcSAoJChDT05GSUdfUklTQ1ZfTV9NT0RF KSQoQ09ORklHX1NPQ19DQU5BQU4pLHl5KQo+ID4+PiAgICBLQlVJTERfSU1BR0UgOj0gJChib290 KS9sb2FkZXIuYmluCj4gPj4+ICAgIGVsc2UKPiA+Pj4gICAgS0JVSUxEX0lNQUdFIDo9ICQoYm9v dCkvSW1hZ2UuZ3oKPiA+Pj4gICAgZW5kaWYKPiA+Pj4gLUJPT1RfVEFSR0VUUyA6PSBJbWFnZSBJ bWFnZS5neiBsb2FkZXIgbG9hZGVyLmJpbgo+ID4+PiArZW5kaWYKPiA+Pj4gK0JPT1RfVEFSR0VU UyA6PSBJbWFnZSBJbWFnZS5neiBsb2FkZXIgbG9hZGVyLmJpbiB4aXBJbWFnZQo+ID4+Pgo+ID4+ PiAgICBhbGw6ICAgICAgICAkKG5vdGRpciAkKEtCVUlMRF9JTUFHRSkpCj4gPj4+Cj4gPj4+IGRp ZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvTWFrZWZpbGUgYi9hcmNoL3Jpc2N2L2Jvb3QvTWFr ZWZpbGUKPiA+Pj4gaW5kZXggMDM0MDRjODRmOTcxLi42YmYyOTlmNzBjMjcgMTAwNjQ0Cj4gPj4+ IC0tLSBhL2FyY2gvcmlzY3YvYm9vdC9NYWtlZmlsZQo+ID4+PiArKysgYi9hcmNoL3Jpc2N2L2Jv b3QvTWFrZWZpbGUKPiA+Pj4gQEAgLTE3LDggKzE3LDIxIEBACj4gPj4+ICAgIEtDT1ZfSU5TVFJV TUVOVCA6PSBuCj4gPj4+Cj4gPj4+ICAgIE9CSkNPUFlGTEFHU19JbWFnZSA6PS1PIGJpbmFyeSAt UiAubm90ZSAtUiAubm90ZS5nbnUuYnVpbGQtaWQgLVIgLmNvbW1lbnQgLVMKPiA+Pj4gK09CSkNP UFlGTEFHU194aXBJbWFnZSA6PS1PIGJpbmFyeSAtUiAubm90ZSAtUiAubm90ZS5nbnUuYnVpbGQt aWQgLVIgLmNvbW1lbnQgLVMKPiA+Pj4KPiA+Pj4gICAgdGFyZ2V0cyA6PSBJbWFnZSBJbWFnZS4q IGxvYWRlciBsb2FkZXIubyBsb2FkZXIubGRzIGxvYWRlci5iaW4KPiA+Pj4gK3RhcmdldHMgOj0g SW1hZ2UgSW1hZ2UuKiBsb2FkZXIgbG9hZGVyLm8gbG9hZGVyLmxkcyBsb2FkZXIuYmluIHhpcElt YWdlCj4gPj4+ICsKPiA+Pj4gK2lmZXEgKCQoQ09ORklHX1hJUF9LRVJORUwpLHkpCj4gPj4+ICsK PiA+Pj4gK3F1aWV0X2NtZF9ta3hpcCA9ICQocXVpZXRfY21kX29iamNvcHkpCj4gPj4+ICtjbWRf bWt4aXAgPSAkKGNtZF9vYmpjb3B5KQo+ID4+PiArCj4gPj4+ICskKG9iaikveGlwSW1hZ2U6IHZt bGludXggRk9SQ0UKPiA+Pj4gKyAgICAgJChjYWxsIGlmX2NoYW5nZWQsbWt4aXApCj4gPj4+ICsg ICAgIEAkKGtlY2hvKSAnICBQaHlzaWNhbCBBZGRyZXNzIG9mIHhpcEltYWdlOiAkKENPTkZJR19Y SVBfUEhZU19BRERSKScKPiA+Pj4gKwo+ID4+PiArZW5kaWYKPiA+Pj4KPiA+Pj4gICAgJChvYmop L0ltYWdlOiB2bWxpbnV4IEZPUkNFCj4gPj4+ICAgICAgICAkKGNhbGwgaWZfY2hhbmdlZCxvYmpj b3B5KQo+ID4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+ID4+PiBpbmRleCBlYmY4MTdjMWJk ZjQuLjRjMmU2OTAyZjJiOCAxMDA2NDQKPiA+Pj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9wZ3RhYmxlLmgKPiA+Pj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgK PiA+Pj4gQEAgLTExLDYgKzExLDMzIEBACj4gPj4+Cj4gPj4+ICAgICNpbmNsdWRlIDxhc20vcGd0 YWJsZS1iaXRzLmg+Cj4gPj4+Cj4gPj4+ICsjaWZkZWYgQ09ORklHX01NVQo+ID4+PiArCj4gPj4+ ICsjZGVmaW5lIFZNQUxMT0NfU1RBUlQgICAgKFBBR0VfT0ZGU0VUIC0gVk1BTExPQ19TSVpFKQo+ ID4+PiArCj4gPj4+ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+Pj4gKyNkZWZpbmUgVk1B TExPQ19TSVpFICAgICAoKEtFUk5fVklSVF9TSVpFID4+IDEpIC0gU1pfMTZNKQo+ID4+PiArI2Rl ZmluZSBWTUFMTE9DX0VORCAgICAgIChQQUdFX09GRlNFVCAtIFNaXzE2TSAtIDEpCj4gPj4+ICsK PiA+Pj4gKyNkZWZpbmUgWElQX09GRlNFVCAgICAgICAgICAgU1pfOE0KPiA+Pj4gKyNkZWZpbmUg WElQX01BU0sgICAgICAgICAgICAgKFNaXzhNIC0gMSkKPiA+Pj4gKyNkZWZpbmUgWElQX1ZJUlRf QUREUihwaHlzYWRkcikgICAgICBcCj4gPj4+ICsgICAgIChQQUdFX09GRlNFVCAtIFhJUF9PRkZT RVQgKyAoKHBoeXNhZGRyKSAmIFhJUF9NQVNLKSkKPiA+Pj4gKwo+ID4+PiArI2Vsc2UKPiA+Pj4g Kwo+ID4+PiArI2RlZmluZSBWTUFMTE9DX1NJWkUgICAgIChLRVJOX1ZJUlRfU0laRSA+PiAxKQo+ ID4+PiArI2RlZmluZSBWTUFMTE9DX0VORCAgICAgIChQQUdFX09GRlNFVCAtIDEpCj4gPj4+ICsK PiA+Pj4gKyNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+ID4+PiArCj4gPj4+ICsjZWxz ZQo+ID4+PiArCj4gPj4+ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+Pj4gKyNkZWZpbmUg WElQX1ZJUlRfQUREUihwaHlzYWRkcikgKHBoeXNhZGRyKQo+ID4+PiArI2VuZGlmIC8qIENPTkZJ R19YSVBfS0VSTkVMICovCj4gPj4+ICsjZW5kaWYgLyogQ09ORklHX01NVSAqLwo+ID4+PiArCj4g Pj4+ICAgICNpZm5kZWYgX19BU1NFTUJMWV9fCj4gPj4+Cj4gPj4+ICAgIC8qIFBhZ2UgVXBwZXIg RGlyZWN0b3J5IG5vdCB1c2VkIGluIFJJU0MtViAqLwo+ID4+PiBAQCAtMjEsOSArNDgsMjUgQEAK PiA+Pj4KPiA+Pj4gICAgI2lmZGVmIENPTkZJR19NTVUKPiA+Pj4KPiA+Pj4gLSNkZWZpbmUgVk1B TExPQ19TSVpFICAgICAoS0VSTl9WSVJUX1NJWkUgPj4gMSkKPiA+Pj4gLSNkZWZpbmUgVk1BTExP Q19FTkQgICAgICAoUEFHRV9PRkZTRVQgLSAxKQo+ID4+PiAtI2RlZmluZSBWTUFMTE9DX1NUQVJU ICAgIChQQUdFX09GRlNFVCAtIFZNQUxMT0NfU0laRSkKPiA+Pj4gKyNpZmRlZiBDT05GSUdfWElQ X0tFUk5FTAo+ID4+PiArLyoKPiA+Pj4gKyAqIFNpbmNlIHdlIHVzZSBzZWN0aW9ucyB0byBtYXAg aXQsIHRoaXMgbWFjcm8gcmVwbGFjZXMgdGhlIHBoeXNpY2FsIGFkZHJlc3MKPiA+Pj4gKyAqIHdp dGggaXRzIHZpcnR1YWwgYWRkcmVzcyB3aGlsZSBrZWVwaW5nIG9mZnNldCBmcm9tIHRoZSBiYXNl IHNlY3Rpb24uCj4gPj4KPiA+PiBJdCBzZWVtcyB0aGUgY29tbWVudCBzaG91bGQgYmUgdGhlIG90 aGVyIHdheSBhcm91bmQ6ICJ0aGlzIG1hY3JvCj4gPj4gcmVwbGFjZXMgdGhlICp2aXJ0dWFsKiBh ZGRyZXNzLi4uZXRjIi4KPgo+IElzbid0IHRoZXJlIGFuIGlzc3VlIHdpdGggdGhlIGNvbW1lbnQg aGVyZSA/Cj4KPiA+Pgo+ID4+PiArICovCj4gPj4+ICsjZGVmaW5lIFhJUF9QSFlTX0FERFIodmEp ICAgICBcCj4gPj4+ICsgICAgICgodWludHB0cl90KSh2YSkgLSBQQUdFX09GRlNFVCArIFhJUF9P RkZTRVQgKyBDT05GSUdfWElQX1BIWVNfQUREUikKPiA+Pj4gKwo+ID4+PiArI2RlZmluZSBYSVBf VklSVF9BRERSX1NUQVJUICBYSVBfVklSVF9BRERSKENPTkZJR19YSVBfUEhZU19BRERSKQo+ID4+ PiArI2RlZmluZSBfX1BIUkFNX0JBU0UgICAgICAgICBDT05GSUdfWElQX1BIWVNfUkFNX0JBU0UK PiA+Pgo+ID4+IEkgZG9uJ3QgdGhpbmsgdGhhdCBpdCBpcyBuZWNlc3NhcnkgdG8gZGVmaW5lIHRo aXMgaW50ZXJtZWRpYXRlCj4gPj4gX19QSFJBTV9CQVNFLgo+ID4KPiA+IFRoYXQgd2FzIGZvciB0 aGUgc2FrZSBvZiBrZWVwaW5nIHNob3J0ZXIgbGluZXMuIDopCj4gPgo+ID4+PiArCj4gPj4+ICsj ZGVmaW5lIFhJUF9GSVhVUChhZGRyKSAgICAgICAgICAgICAgXAo+ID4+PiArICAgICAoKCh1aW50 cHRyX3QpKGFkZHIpID49IENPTkZJR19YSVBfUEhZU19BRERSICYmIFwKPiA+Pj4gKyAgICAgICAo dWludHB0cl90KShhZGRyKSA8PSBDT05GSUdfWElQX1BIWVNfQUREUiArIFNaXzE2TSkgPyBcCj4g Pj4KPiA+PiBUaGF0IHNob3VsZCBiZSA8IENPTkZJR19YSVBfUEhZU19BRERSICsgU1pfMTZNLCBu b3QgPD0uCj4gPgo+ID4gVGhhbmtzLCB3aWxsIGZpeC4KPiA+Cj4gPj4+ICsgICAgICh1aW50cHRy X3QpKGFkZHIpIC0gQ09ORklHX1hJUF9QSFlTX0FERFIgKyBfX1BIUkFNX0JBU0UgLSBYSVBfT0ZG U0VUIDogXAo+ID4+PiArICAgICAodWludHB0cl90KShhZGRyKSkKPiA+Pgo+ID4+IFRoZXJlIGFy ZSBwb3NzaWJsZSBzaWRlLWVmZmVjdHMgaW4gdGhpcyBtYWNybyBkZWZpbml0aW9uLCBjb25zaWRl ciB1c2luZwo+ID4+IGEgdGVtcG9yYXJ5IHZhcmlhYmxlIGZvciBhZGRyLgo+ID4KPiA+IFRoaXMg aXMgYW4gaW50ZXJuYWwgZGVmaW5pdGlvbiBzbyBJIGRpZG4ndCBjYXJlIG11Y2ggYnV0IEZXSVcg aXQncwo+ID4gYmV0dGVyIHRvIGNoYW5nZSBpdCBhcyB5b3Ugc3VnZ2VzdCwgdGhhbmtzLgo+ID4K PiA+Pj4gKyNlbHNlCj4gPj4+ICsjZGVmaW5lIFhJUF9GSVhVUChhZGRyKSAgICAgICAgICAgICAg KGFkZHIpCj4gPj4+ICsjZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiA+Pj4KPiA+Pj4g ICAgI2RlZmluZSBCUEZfSklUX1JFR0lPTl9TSVpFIChTWl8xMjhNKQo+ID4+PiAgICAjZGVmaW5l IEJQRl9KSVRfUkVHSU9OX1NUQVJUICAgICAgICAoUEFHRV9PRkZTRVQgLSBCUEZfSklUX1JFR0lP Tl9TSVpFKQo+ID4+PiBAQCAtNDg0LDggKzUyNywyMCBAQCBzdGF0aWMgaW5saW5lIGludCBwdGVw X2NsZWFyX2ZsdXNoX3lvdW5nKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+ID4+Pgo+ID4+ PiAgICAjZGVmaW5lIGtlcm5fYWRkcl92YWxpZChhZGRyKSAgICgxKSAvKiBGSVhNRSAqLwo+ID4+ Pgo+ID4+PiAtZXh0ZXJuIHZvaWQgKmR0Yl9lYXJseV92YTsKPiA+Pj4gLWV4dGVybiB1aW50cHRy X3QgZHRiX2Vhcmx5X3BhOwo+ID4+PiArZXh0ZXJuIHZvaWQgKl9kdGJfZWFybHlfdmE7Cj4gPj4+ ICtleHRlcm4gdWludHB0cl90IF9kdGJfZWFybHlfcGE7Cj4gPj4+ICsjaWYgZGVmaW5lZChDT05G SUdfWElQX0tFUk5FTCkgJiYgZGVmaW5lZChDT05GSUdfTU1VKQo+ID4+Cj4gPj4gQ09ORklHX1hJ UF9LRVJORUwgYWxyZWFkeSBkZXBlbmRzIG9uIENPTkZJR19NTVUuIEFuZCBtYXliZSB3ZSBjb3Vs ZAo+ID4+IGhhbmRsZSBYSVBfS0VSTkVMIGFuZCAhWElQX0tFUk5FTCBpbiBYSVBfRklYVVAgdG8g YXZvaWQgdGhvc2UgaWZkZWZzID8KPiA+Cj4gPiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGRlcGVuZGVu Y2UsIHdlIGFyZSB3b3JraW5nIG9uIHRoZSBub24tTU1VIGNhc2UgdG9vCj4gPiBzbyBJIHdvdWxk IG5vdCBsaWtlIHRvIGdvIHRoYXQgcGF0aC4KPiA+Cj4gPj4+ICsKPiA+Pj4gKyNkZWZpbmUgZHRi X2Vhcmx5X3ZhICgqKHZvaWQgKiopWElQX0ZJWFVQKCZfZHRiX2Vhcmx5X3ZhKSkKPiA+Pj4gKyNk ZWZpbmUgZHRiX2Vhcmx5X3BhICgqKHVpbnRwdHJfdCAqKVhJUF9GSVhVUCgmX2R0Yl9lYXJseV9w YSkpCj4gPj4+ICsKPiA+Pj4gKyNlbHNlCj4gPj4+ICsKPiA+Pj4gKyNkZWZpbmUgZHRiX2Vhcmx5 X3ZhIF9kdGJfZWFybHlfdmEKPiA+Pj4gKyNkZWZpbmUgZHRiX2Vhcmx5X3BhIF9kdGJfZWFybHlf cGEKPiA+Pj4gKwo+ID4+PiArI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4gPj4+ICsK PiA+Pj4gICAgdm9pZCBzZXR1cF9ib290bWVtKHZvaWQpOwo+ID4+PiAgICB2b2lkIHBhZ2luZ19p bml0KHZvaWQpOwo+ID4+PiAgICB2b2lkIG1pc2NfbWVtX2luaXQodm9pZCk7Cj4gPj4+IGRpZmYg LS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVfb3BzX3NiaS5jIGIvYXJjaC9yaXNjdi9rZXJu ZWwvY3B1X29wc19zYmkuYwo+ID4+PiBpbmRleCA2ODVmYWU3MmI3ZjUuLjdkMzY4YmM2NTZmZiAx MDA2NDQKPiA+Pj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvY3B1X29wc19zYmkuYwo+ID4+PiAr KysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVfb3BzX3NiaS5jCj4gPj4+IEBAIC01MywxMCArNTMs MjAgQEAgc3RhdGljIGludCBzYmlfaHNtX2hhcnRfZ2V0X3N0YXR1cyh1bnNpZ25lZCBsb25nIGhh cnRpZCkKPiA+Pj4gICAgfQo+ID4+PiAgICAjZW5kaWYKPiA+Pj4KPiA+Pj4gK3N0YXRpYyBpbmxp bmUgdW5zaWduZWQgbG9uZyBnZXRfc2Vjb25kYXJ5X3N0YXJ0X3BoeXModm9pZCkKPiA+Pj4gK3sK PiA+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4+PiArICAgICByZXR1cm4gWElQX1BI WVNfQUREUihzZWNvbmRhcnlfc3RhcnRfc2JpKTsKPiA+Pj4gKyNlbHNlCj4gPj4+ICsgICAgIHJl dHVybiBfX3BhX3N5bWJvbChzZWNvbmRhcnlfc3RhcnRfc2JpKTsKPiA+Pj4gKyNlbmRpZgo+ID4+ PiArfQo+ID4+PiArCj4gPj4+ICsKPiA+Pgo+ID4+IFRoZXJlIGFyZSAyIG5ld2xpbmVzIGhlcmUu Cj4gPj4KPiA+Pj4gICAgc3RhdGljIGludCBzYmlfY3B1X3N0YXJ0KHVuc2lnbmVkIGludCBjcHVp ZCwgc3RydWN0IHRhc2tfc3RydWN0ICp0aWRsZSkKPiA+Pj4gICAgewo+ID4+PiAgICAgICAgaW50 IHJjOwo+ID4+PiAtICAgICB1bnNpZ25lZCBsb25nIGJvb3RfYWRkciA9IF9fcGFfc3ltYm9sKHNl Y29uZGFyeV9zdGFydF9zYmkpOwo+ID4+PiArICAgICB1bnNpZ25lZCBsb25nIGJvb3RfYWRkciA9 IGdldF9zZWNvbmRhcnlfc3RhcnRfcGh5cygpOwo+ID4+PiAgICAgICAgaW50IGhhcnRpZCA9IGNw dWlkX3RvX2hhcnRpZF9tYXAoY3B1aWQpOwo+ID4+Pgo+ID4+PiAgICAgICAgY3B1X3VwZGF0ZV9z ZWNvbmRhcnlfYm9vdGRhdGEoY3B1aWQsIHRpZGxlKTsKPiA+Pj4gZGlmZiAtLWdpdCBhL2FyY2gv cmlzY3Yva2VybmVsL2hlYWQuUyBiL2FyY2gvcmlzY3Yva2VybmVsL2hlYWQuUwo+ID4+PiBpbmRl eCBmNWE5YmFkODZlNTguLjE3ZWNmNjA5NTIwOSAxMDA2NDQKPiA+Pj4gLS0tIGEvYXJjaC9yaXNj di9rZXJuZWwvaGVhZC5TCj4gPj4+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2hlYWQuUwo+ID4+ PiBAQCAtOSwxMSArOSwzMyBAQAo+ID4+PiAgICAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgo+ ID4+PiAgICAjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Cj4gPj4+ICAgICNpbmNsdWRlIDxh c20vcGFnZS5oPgo+ID4+PiArI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Cj4gPj4+ICAgICNpbmNs dWRlIDxhc20vY3NyLmg+Cj4gPj4+ICAgICNpbmNsdWRlIDxhc20vaHdjYXAuaD4KPiA+Pj4gICAg I2luY2x1ZGUgPGFzbS9pbWFnZS5oPgo+ID4+PiAgICAjaW5jbHVkZSAiZWZpLWhlYWRlci5TIgo+ ID4+Pgo+ID4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPj4+ICsubWFjcm8gWElQX0ZJ WFVQX09GRlNFVCByZWcKPiA+Pj4gKyNpZmRlZiBDT05GSUdfNjRCSVQKPiA+Pj4gKyAgICAgICAg ICAgICBsZCB0MCwgX3hpcF9maXh1cAo+ID4+PiArI2Vsc2UKPiA+Pj4gKyAgICAgICAgICAgICBs dyB0MCwgX3hpcF9maXh1cAo+ID4+PiArI2VuZGlmCj4gPj4KPiA+PiBVc2UgUkVHX0wgaGVyZS4K PiA+Cj4gPiBXaWxsIGRvLCB0aGFua3MuCj4gPgo+ID4+PiArICAgICAgICAgICAgIGFkZCBccmVn LCBccmVnLCB0MAo+ID4+PiArLmVuZG0KPiA+Pj4gKwo+ID4+PiArX3hpcF9maXh1cDoKPiA+Pj4g KyNpZmRlZiBDT05GSUdfNjRCSVQKPiA+Pj4gKyAgICAgLmR3b3JkIENPTkZJR19YSVBfUEhZU19S QU1fQkFTRSAtIENPTkZJR19YSVBfUEhZU19BRERSIC0gWElQX09GRlNFVAo+ID4+PiArI2Vsc2UK PiA+Pj4gKyAgICAgLndvcmQgQ09ORklHX1hJUF9QSFlTX1JBTV9CQVNFIC0gQ09ORklHX1hJUF9Q SFlTX0FERFIgLSBYSVBfT0ZGU0VUCj4gPj4+ICsjZW5kaWYKPiA+Pj4gKyNlbHNlCj4gPj4+ICsu bWFjcm8gWElQX0ZJWFVQX09GRlNFVCByZWcKPiA+Pj4gKy5lbmRtCj4gPj4+ICsjZW5kaWYgLyog Q09ORklHX1hJUF9LRVJORUwgKi8KPiA+Pj4gKwo+ID4+PiAgICBfX0hFQUQKPiA+Pj4gICAgRU5U UlkoX3N0YXJ0KQo+ID4+PiAgICAgICAgLyoKPiA+Pj4gQEAgLTY5LDcgKzkxLDExIEBAIHBlX2hl YWRfc3RhcnQ6Cj4gPj4+ICAgICNpZmRlZiBDT05GSUdfTU1VCj4gPj4+ICAgIHJlbG9jYXRlOgo+ ID4+PiAgICAgICAgLyogUmVsb2NhdGUgcmV0dXJuIGFkZHJlc3MgKi8KPiA+Pj4gKyNpZmRlZiBD T05GSUdfWElQX0tFUk5FTAo+ID4+PiArICAgICBsaSBhMSwgWElQX1ZJUlRfQUREUihDT05GSUdf WElQX1BIWVNfQUREUikKPiA+Pj4gKyNlbHNlCj4gPj4+ICAgICAgICBsaSBhMSwgUEFHRV9PRkZT RVQKPiA+Pj4gKyNlbmRpZgo+ID4+PiAgICAgICAgbGEgYTIsIF9zdGFydAo+ID4+PiAgICAgICAg c3ViIGExLCBhMSwgYTIKPiA+Pj4gICAgICAgIGFkZCByYSwgcmEsIGExCj4gPj4+IEBAIC05MSw2 ICsxMTcsNyBAQCByZWxvY2F0ZToKPiA+Pj4gICAgICAgICAqIHRvIGVuc3VyZSB0aGUgbmV3IHRy YW5zbGF0aW9ucyBhcmUgaW4gdXNlLgo+ID4+PiAgICAgICAgICovCj4gPj4+ICAgICAgICBsYSBh MCwgdHJhbXBvbGluZV9wZ19kaXIKPiA+Pj4gKyAgICAgWElQX0ZJWFVQX09GRlNFVCBhMAo+ID4+ Cj4gPj4KPiA+PiBGb3IgYWxsIHRob3NlIHBhaXJzIG9mIGxhIGFYLi4uOyBYSVBfRklYVVBfT0ZG U0VUIGFYLi4uOyBtYXliZSBpbnRyb2R1Y2UKPiA+PiBhIG1hY3JvIHRoYXQgZG9lcyBib3RoID8K PiA+Cj4gPiBJIGNhbiBkbyB0aGF0IGJ1dCB3b3VsZG4ndCBpdCBvYnNjdXJlIHRoZSBvcGVyYXRp b25zIHRvbyBtdWNoPwo+ID4KPgo+IElNSE8sIHRoaXMgd291bGQgYXZvaWQgdG8gYnJlYWsgWElQ X0tFUk5FTCBpZiB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5Cj4gYWJvdXQgdGhvc2UgZml4dXAsIGJl Y2F1c2UgYXMgdGhpcyBhZGRzIGEgbmV3IGtlcm5lbCwgSSdtIGEgYml0IHdvcnJpZWQKPiB3ZSBi cmVhayBpdCBvdmVyIHRpbWUgZWFzaWx5Lgo+Cj4gPj4+ICAgICAgICBzcmwgYTAsIGEwLCBQQUdF X1NISUZUCj4gPj4+ICAgICAgICBvciBhMCwgYTAsIGExCj4gPj4+ICAgICAgICBzZmVuY2Uudm1h Cj4gPj4+IEBAIC0xNDQsNyArMTcxLDkgQEAgc2Vjb25kYXJ5X3N0YXJ0X3NiaToKPiA+Pj4KPiA+ Pj4gICAgICAgIHNsbGkgYTMsIGEwLCBMR1JFRwo+ID4+PiAgICAgICAgbGEgYTQsIF9fY3B1X3Vw X3N0YWNrX3BvaW50ZXIKPiA+Pj4gKyAgICAgWElQX0ZJWFVQX09GRlNFVCBhNAo+ID4+PiAgICAg ICAgbGEgYTUsIF9fY3B1X3VwX3Rhc2tfcG9pbnRlcgo+ID4+PiArICAgICBYSVBfRklYVVBfT0ZG U0VUIGE1Cj4gPj4+ICAgICAgICBhZGQgYTQsIGEzLCBhNAo+ID4+PiAgICAgICAgYWRkIGE1LCBh MywgYTUKPiA+Pj4gICAgICAgIFJFR19MIHNwLCAoYTQpCj4gPj4+IEBAIC0xNTYsNiArMTg1LDcg QEAgc2Vjb25kYXJ5X3N0YXJ0X2NvbW1vbjoKPiA+Pj4gICAgI2lmZGVmIENPTkZJR19NTVUKPiA+ Pj4gICAgICAgIC8qIEVuYWJsZSB2aXJ0dWFsIG1lbW9yeSBhbmQgcmVsb2NhdGUgdG8gdmlydHVh bCBhZGRyZXNzICovCj4gPj4+ICAgICAgICBsYSBhMCwgc3dhcHBlcl9wZ19kaXIKPiA+Pj4gKyAg ICAgWElQX0ZJWFVQX09GRlNFVCBhMAo+ID4+PiAgICAgICAgY2FsbCByZWxvY2F0ZQo+ID4+PiAg ICAjZW5kaWYKPiA+Pj4gICAgICAgIGNhbGwgc2V0dXBfdHJhcF92ZWN0b3IKPiA+Pj4gQEAgLTIz NiwxMiArMjY2LDMzIEBAIHBtcF9kb25lOgo+ID4+PiAgICAuTGdvb2RfY29yZXM6Cj4gPj4+ICAg ICNlbmRpZgo+ID4+Pgo+ID4+PiArI2lmbmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4+PiAgICAg ICAgLyogUGljayBvbmUgaGFydCB0byBydW4gdGhlIG1haW4gYm9vdCBzZXF1ZW5jZSAqLwo+ID4+ PiAgICAgICAgbGEgYTMsIGhhcnRfbG90dGVyeQo+ID4+PiAgICAgICAgbGkgYTIsIDEKPiA+Pj4g ICAgICAgIGFtb2FkZC53IGEzLCBhMiwgKGEzKQo+ID4+PiAgICAgICAgYm5leiBhMywgLkxzZWNv bmRhcnlfc3RhcnQKPiA+Pj4KPiA+Pj4gKyNlbHNlCj4gPj4+ICsgICAgIC8qIGhhcnRfbG90dGVy eSBpbiBmbGFzaCBjb250YWlucyBhIG1hZ2ljIG51bWJlciAqLwo+ID4+PiArICAgICBsYSBhMywg aGFydF9sb3R0ZXJ5Cj4gPj4+ICsgICAgIG12IGEyLCBhMwo+ID4+PiArICAgICBYSVBfRklYVVBf T0ZGU0VUIGEyCj4gPj4+ICsgICAgIGx3IHQxLCAoYTMpCj4gPj4+ICsgICAgIGFtb3N3YXAudyB0 MCwgdDEsIChhMikKPiA+Pj4gKyAgICAgLyogZmlyc3QgdGltZSBoZXJlIGlmIGhhcnRfbG90dGVy eSBpbiBSQU0gaXMgbm90IHNldCAqLwo+ID4+PiArICAgICBiZXEgdDAsIHQxLCAuTHNlY29uZGFy eV9zdGFydAo+ID4+PiArCj4gPj4+ICsgICAgIGxhIHNwLCBfZW5kICsgVEhSRUFEX1NJWkUKPiA+ Pj4gKyAgICAgWElQX0ZJWFVQX09GRlNFVCBzcAo+ID4+PiArICAgICBtdiBzMCwgYTAKPiA+Pj4g KyAgICAgY2FsbCBfX2NvcHlfZGF0YQo+ID4+PiArCj4gPj4+ICsgICAgIC8qIFJlc3RvcmUgYTAg Y29weSAqLwo+ID4+PiArICAgICBtdiBhMCwgczAKPiA+Pj4gKyNlbmRpZgo+ID4+PiArCj4gPj4+ ICsjaWZuZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPj4+ICAgICAgICAvKiBDbGVhciBCU1MgZm9y IGZsYXQgbm9uLUVMRiBpbWFnZXMgKi8KPiA+Pj4gICAgICAgIGxhIGEzLCBfX2Jzc19zdGFydAo+ ID4+PiAgICAgICAgbGEgYTQsIF9fYnNzX3N0b3AKPiA+Pj4gQEAgLTI1MSwxNSArMzAyLDE4IEBA IGNsZWFyX2JzczoKPiA+Pj4gICAgICAgIGFkZCBhMywgYTMsIFJJU0NWX1NaUFRSCj4gPj4+ICAg ICAgICBibHQgYTMsIGE0LCBjbGVhcl9ic3MKPiA+Pj4gICAgY2xlYXJfYnNzX2RvbmU6Cj4gPj4+ IC0KPiA+Pj4gKyNlbmRpZgo+ID4+PiAgICAgICAgLyogU2F2ZSBoYXJ0IElEIGFuZCBEVEIgcGh5 c2ljYWwgYWRkcmVzcyAqLwo+ID4+PiAgICAgICAgbXYgczAsIGEwCj4gPj4+ICAgICAgICBtdiBz MSwgYTEKPiA+Pj4gKwo+ID4+PiAgICAgICAgbGEgYTIsIGJvb3RfY3B1X2hhcnRpZAo+ID4+PiAr ICAgICBYSVBfRklYVVBfT0ZGU0VUIGEyCj4gPj4+ICAgICAgICBSRUdfUyBhMCwgKGEyKQo+ID4+ Pgo+ID4+PiAgICAgICAgLyogSW5pdGlhbGl6ZSBwYWdlIHRhYmxlcyBhbmQgcmVsb2NhdGUgdG8g dmlydHVhbCBhZGRyZXNzZXMgKi8KPiA+Pj4gICAgICAgIGxhIHNwLCBpbml0X3RocmVhZF91bmlv biArIFRIUkVBRF9TSVpFCj4gPj4+ICsgICAgIFhJUF9GSVhVUF9PRkZTRVQgc3AKPiA+Pj4gICAg I2lmZGVmIENPTkZJR19CVUlMVElOX0RUQgo+ID4+PiAgICAgICAgbGEgYTAsIF9fZHRiX3N0YXJ0 Cj4gPj4+ICAgICNlbHNlCj4gPj4+IEBAIC0yNjgsNiArMzIyLDcgQEAgY2xlYXJfYnNzX2RvbmU6 Cj4gPj4+ICAgICAgICBjYWxsIHNldHVwX3ZtCj4gPj4+ICAgICNpZmRlZiBDT05GSUdfTU1VCj4g Pj4+ICAgICAgICBsYSBhMCwgZWFybHlfcGdfZGlyCj4gPj4+ICsgICAgIFhJUF9GSVhVUF9PRkZT RVQgYTAKPiA+Pj4gICAgICAgIGNhbGwgcmVsb2NhdGUKPiA+Pj4gICAgI2VuZGlmIC8qIENPTkZJ R19NTVUgKi8KPiA+Pj4KPiA+Pj4gQEAgLTI5Miw3ICszNDcsOSBAQCBjbGVhcl9ic3NfZG9uZToK PiA+Pj4KPiA+Pj4gICAgICAgIHNsbGkgYTMsIGEwLCBMR1JFRwo+ID4+PiAgICAgICAgbGEgYTEs IF9fY3B1X3VwX3N0YWNrX3BvaW50ZXIKPiA+Pj4gKyAgICAgWElQX0ZJWFVQX09GRlNFVCBhMQo+ ID4+PiAgICAgICAgbGEgYTIsIF9fY3B1X3VwX3Rhc2tfcG9pbnRlcgo+ID4+PiArICAgICBYSVBf RklYVVBfT0ZGU0VUIGEyCj4gPj4+ICAgICAgICBhZGQgYTEsIGEzLCBhMQo+ID4+PiAgICAgICAg YWRkIGEyLCBhMywgYTIKPiA+Pj4KPiA+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVs L2hlYWQuaCBiL2FyY2gvcmlzY3Yva2VybmVsL2hlYWQuaAo+ID4+PiBpbmRleCBiNDhkZGEzZDA0 ZjYuLmFhYmJjM2FjM2U0OCAxMDA2NDQKPiA+Pj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvaGVh ZC5oCj4gPj4+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2hlYWQuaAo+ID4+PiBAQCAtMTIsNiAr MTIsOSBAQCBleHRlcm4gYXRvbWljX3QgaGFydF9sb3R0ZXJ5Owo+ID4+Pgo+ID4+PiAgICBhc21s aW5rYWdlIHZvaWQgZG9fcGFnZV9mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4gPj4+ICAg IGFzbWxpbmthZ2Ugdm9pZCBfX2luaXQgc2V0dXBfdm0odWludHB0cl90IGR0Yl9wYSk7Cj4gPj4+ ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+Pj4gK2FzbWxpbmthZ2Ugdm9pZCBfX2luaXQg X19jb3B5X2RhdGEodm9pZCk7Cj4gPj4+ICsjZW5kaWYKPiA+Pj4KPiA+Pj4gICAgZXh0ZXJuIHZv aWQgKl9fY3B1X3VwX3N0YWNrX3BvaW50ZXJbXTsKPiA+Pj4gICAgZXh0ZXJuIHZvaWQgKl9fY3B1 X3VwX3Rhc2tfcG9pbnRlcltdOwo+ID4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwv c2V0dXAuYyBiL2FyY2gvcmlzY3Yva2VybmVsL3NldHVwLmMKPiA+Pj4gaW5kZXggZTg1YmFjZmYx YjUwLi4yOTk1NmM0MWE5Y2MgMTAwNjQ0Cj4gPj4+IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3Nl dHVwLmMKPiA+Pj4gKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvc2V0dXAuYwo+ID4+PiBAQCAtNTAs NyArNTAsMTEgQEAgc3RydWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvIF9fc2VjdGlvbigiLmRh dGEiKSA9IHsKPiA+Pj4gICAgICogVGhpcyBpcyB1c2VkIGJlZm9yZSB0aGUga2VybmVsIGluaXRp YWxpemVzIHRoZSBCU1Mgc28gaXQgY2FuJ3QgYmUgaW4gdGhlCj4gPj4+ICAgICAqIEJTUy4KPiA+ Pj4gICAgICovCj4gPj4+IC1hdG9taWNfdCBoYXJ0X2xvdHRlcnkgX19zZWN0aW9uKCIuc2RhdGEi KTsKPiA+Pj4gK2F0b21pY190IGhhcnRfbG90dGVyeSBfX3NlY3Rpb24oIi5zZGF0YSIpCj4gPj4+ ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+Pj4gKz0gQVRPTUlDX0lOSVQoMHhDMDAxQkVF RikKPiA+Pj4gKyNlbmRpZgo+ID4+PiArOwo+ID4+PiAgICB1bnNpZ25lZCBsb25nIGJvb3RfY3B1 X2hhcnRpZDsKPiA+Pj4gICAgc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBjcHUsIGNwdV9k ZXZpY2VzKTsKPiA+Pj4KPiA+Pj4gQEAgLTI1NCw3ICsyNTgsNyBAQCB2b2lkIF9faW5pdCBzZXR1 cF9hcmNoKGNoYXIgKipjbWRsaW5lX3ApCj4gPj4+ICAgICNpZiBJU19FTkFCTEVEKENPTkZJR19C VUlMVElOX0RUQikKPiA+Pj4gICAgICAgIHVuZmxhdHRlbl9hbmRfY29weV9kZXZpY2VfdHJlZSgp Owo+ID4+PiAgICAjZWxzZQo+ID4+PiAtICAgICBpZiAoZWFybHlfaW5pdF9kdF92ZXJpZnkoX192 YShkdGJfZWFybHlfcGEpKSkKPiA+Pj4gKyAgICAgaWYgKGVhcmx5X2luaXRfZHRfdmVyaWZ5KGR0 Yl9lYXJseV92YSkpCj4gPj4+ICAgICAgICAgICAgICAgIHVuZmxhdHRlbl9kZXZpY2VfdHJlZSgp Owo+ID4+PiAgICAgICAgZWxzZQo+ID4+PiAgICAgICAgICAgICAgICBwcl9lcnIoIk5vIERUQiBm b3VuZCBpbiBrZXJuZWwgbWFwcGluZ3NcbiIpOwo+ID4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNj di9rZXJuZWwvdm1saW51eC14aXAubGRzLlMgYi9hcmNoL3Jpc2N2L2tlcm5lbC92bWxpbnV4LXhp cC5sZHMuUwo+ID4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4+PiBpbmRleCAwMDAwMDAwMDAw MDAuLjlmMGYwOGMzNGNkMwo+ID4+PiAtLS0gL2Rldi9udWxsCj4gPj4+ICsrKyBiL2FyY2gvcmlz Y3Yva2VybmVsL3ZtbGludXgteGlwLmxkcy5TCj4gPj4+IEBAIC0wLDAgKzEsMTMyIEBACj4gPj4+ ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCj4gPj4+ICsvKgo+ ID4+PiArICogQ29weXJpZ2h0IChDKSAyMDEyIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQo+ID4+PiArICogQ29weXJpZ2h0IChDKSAyMDE3IFNpRml2ZQo+ID4+PiArICog Q29weXJpZ2h0IChDKSAyMDIwIFZpdGFseSBXb29sLCBLb25zdWxrbyBBQgo+ID4+PiArICovCj4g Pj4+ICsKPiA+Pj4gKyNkZWZpbmUgTE9BRF9PRkZTRVQgWElQX1ZJUlRfQUREUihDT05GSUdfWElQ X1BIWVNfQUREUikKPiA+Pj4gKy8qIE5vIF9fcm9fYWZ0ZXJfaW5pdCBkYXRhIGluIHRoZSAucm9k YXRhIHNlY3Rpb24gLSB3aGljaCB3aWxsIGFsd2F5cyBiZSBybyAqLwo+ID4+PiArI2RlZmluZSBS T19BRlRFUl9JTklUX0RBVEEKPiA+Pj4gKwo+ID4+PiArI2luY2x1ZGUgPGFzbS92bWxpbnV4Lmxk cy5oPgo+ID4+PiArI2luY2x1ZGUgPGFzbS9wYWdlLmg+Cj4gPj4+ICsjaW5jbHVkZSA8YXNtL3Bn dGFibGUuaD4KPiA+Pj4gKyNpbmNsdWRlIDxhc20vY2FjaGUuaD4KPiA+Pj4gKyNpbmNsdWRlIDxh c20vdGhyZWFkX2luZm8uaD4KPiA+Pj4gKwo+ID4+PiArT1VUUFVUX0FSQ0gocmlzY3YpCj4gPj4+ ICtFTlRSWShfc3RhcnQpCj4gPj4+ICsKPiA+Pj4gK2ppZmZpZXMgPSBqaWZmaWVzXzY0Owo+ID4+ PiArCj4gPj4+ICtTRUNUSU9OUwo+ID4+PiArewo+ID4+PiArICAgICAvKiBCZWdpbm5pbmcgb2Yg Y29kZSBhbmQgdGV4dCBzZWdtZW50ICovCj4gPj4+ICsgICAgIC4gPSBYSVBfVklSVF9BRERSKENP TkZJR19YSVBfUEhZU19BRERSKTsKPiA+Pj4gKyAgICAgX3hpcHJvbSA9IC47Cj4gPj4+ICsgICAg IF9zdGFydCA9IC47Cj4gPj4+ICsgICAgIEhFQURfVEVYVF9TRUNUSU9OCj4gPj4+ICsgICAgIElO SVRfVEVYVF9TRUNUSU9OKFBBR0VfU0laRSkKPiA+Pj4gKyAgICAgLyogd2UgaGF2ZSB0byBkaXNj YXJkIGV4aXQgdGV4dCBhbmQgc3VjaCBhdCBydW50aW1lLCBub3QgbGluayB0aW1lICovCj4gPj4+ ICsgICAgIC5leGl0LnRleHQgOgo+ID4+PiArICAgICB7Cj4gPj4+ICsgICAgICAgICAgICAgRVhJ VF9URVhUCj4gPj4+ICsgICAgIH0KPiA+Pj4gKwo+ID4+PiArICAgICAudGV4dCA6IHsKPiA+Pj4g KyAgICAgICAgICAgICBfdGV4dCA9IC47Cj4gPj4+ICsgICAgICAgICAgICAgX3N0ZXh0ID0gLjsK PiA+Pj4gKyAgICAgICAgICAgICBURVhUX1RFWFQKPiA+Pj4gKyAgICAgICAgICAgICBTQ0hFRF9U RVhUCj4gPj4+ICsgICAgICAgICAgICAgQ1BVSURMRV9URVhUCj4gPj4+ICsgICAgICAgICAgICAg TE9DS19URVhUCj4gPj4+ICsgICAgICAgICAgICAgS1BST0JFU19URVhUCj4gPj4+ICsgICAgICAg ICAgICAgRU5UUllfVEVYVAo+ID4+PiArICAgICAgICAgICAgIElSUUVOVFJZX1RFWFQKPiA+Pj4g KyAgICAgICAgICAgICBTT0ZUSVJRRU5UUllfVEVYVAo+ID4+PiArICAgICAgICAgICAgICooLmZp eHVwKQo+ID4+PiArICAgICAgICAgICAgIF9ldGV4dCA9IC47Cj4gPj4+ICsgICAgIH0KPiA+Pj4g KyAgICAgUk9fREFUQShMMV9DQUNIRV9CWVRFUykKPiA+Pj4gKyAgICAgLnNyb2RhdGEgOiB7Cj4g Pj4+ICsgICAgICAgICAgICAgKiguc3JvZGF0YSopCj4gPj4+ICsgICAgIH0KPiA+Pj4gKyAgICAg LmluaXQucm9kYXRhIDogewo+ID4+PiArICAgICAgICAgICAgIElOSVRfU0VUVVAoMTYpCj4gPj4+ ICsgICAgICAgICAgICAgSU5JVF9DQUxMUwo+ID4+PiArICAgICAgICAgICAgIENPTl9JTklUQ0FM TAo+ID4+PiArICAgICAgICAgICAgIElOSVRfUkFNX0ZTCj4gPj4+ICsgICAgIH0KPiA+Pj4gKyAg ICAgX2V4aXByb20gPSAuOyAgICAgICAgICAgICAgICAgICAvKiBFbmQgb2YgWElQIFJPTSBhcmVh ICovCj4gPj4+ICsKPiA+Pj4gKwo+ID4+PiArLyoKPiA+Pj4gKyAqIEZyb20gdGhpcyBwb2ludCwg c3R1ZmYgaXMgY29uc2lkZXJlZCB3cml0YWJsZSBhbmQgd2lsbCBiZSBjb3BpZWQgdG8gUkFNCj4g Pj4+ICsgKi8KPiA+Pj4gKyAgICAgX19kYXRhX2xvYyA9IEFMSUdOKDE2KTsgICAgICAgICAvKiBs b2NhdGlvbiBpbiBmaWxlICovCj4gPj4+ICsgICAgIC4gPSBQQUdFX09GRlNFVDsgICAgICAgICAg ICAgICAgLyogbG9jYXRpb24gaW4gbWVtb3J5ICovCj4gPj4+ICsKPiA+Pj4gKyAgICAgX3NkYXRh ID0gLjsgICAgICAgICAgICAgICAgICAgICAvKiBTdGFydCBvZiBkYXRhIHNlY3Rpb24gKi8KPiA+ Pj4gKyAgICAgX2RhdGEgPSAuOwo+ID4+PiArICAgICBSV19EQVRBKEwxX0NBQ0hFX0JZVEVTLCBQ QUdFX1NJWkUsIFRIUkVBRF9TSVpFKQo+ID4+PiArICAgICBfZWRhdGEgPSAuOwo+ID4+PiArICAg ICBfX3N0YXJ0X3JvX2FmdGVyX2luaXQgPSAuOwo+ID4+PiArICAgICAuZGF0YS5yb19hZnRlcl9p bml0IDogQVQoQUREUiguZGF0YS5yb19hZnRlcl9pbml0KSAtIExPQURfT0ZGU0VUKSB7Cj4gPj4+ ICsgICAgICAgICAgICAgKiguZGF0YS4ucm9fYWZ0ZXJfaW5pdCkKPiA+Pj4gKyAgICAgfQo+ID4+ PiArICAgICBfX2VuZF9yb19hZnRlcl9pbml0ID0gLjsKPiA+Pj4gKwo+ID4+PiArICAgICAuID0g QUxJR04oUEFHRV9TSVpFKTsKPiA+Pj4gKyAgICAgX19pbml0X2JlZ2luID0gLjsKPiA+Pj4gKyAg ICAgLmluaXQuZGF0YSA6IHsKPiA+Pj4gKyAgICAgICAgICAgICBJTklUX0RBVEEKPiA+Pj4gKyAg ICAgfQo+ID4+PiArICAgICAuZXhpdC5kYXRhIDogewo+ID4+PiArICAgICAgICAgICAgIEVYSVRf REFUQQo+ID4+PiArICAgICB9Cj4gPj4+ICsgICAgIC4gPSBBTElHTig4KTsKPiA+Pj4gKyAgICAg X19zb2NfZWFybHlfaW5pdF90YWJsZSA6IHsKPiA+Pj4gKyAgICAgICAgICAgICBfX3NvY19lYXJs eV9pbml0X3RhYmxlX3N0YXJ0ID0gLjsKPiA+Pj4gKyAgICAgICAgICAgICBLRUVQKCooX19zb2Nf ZWFybHlfaW5pdF90YWJsZSkpCj4gPj4+ICsgICAgICAgICAgICAgX19zb2NfZWFybHlfaW5pdF90 YWJsZV9lbmQgPSAuOwo+ID4+PiArICAgICB9Cj4gPj4+ICsgICAgIF9fc29jX2J1aWx0aW5fZHRi X3RhYmxlIDogewo+ID4+PiArICAgICAgICAgICAgIF9fc29jX2J1aWx0aW5fZHRiX3RhYmxlX3N0 YXJ0ID0gLjsKPiA+Pj4gKyAgICAgICAgICAgICBLRUVQKCooX19zb2NfYnVpbHRpbl9kdGJfdGFi bGUpKQo+ID4+PiArICAgICAgICAgICAgIF9fc29jX2J1aWx0aW5fZHRiX3RhYmxlX2VuZCA9IC47 Cj4gPj4+ICsgICAgIH0KPiA+Pj4gKyAgICAgUEVSQ1BVX1NFQ1RJT04oTDFfQ0FDSEVfQllURVMp Cj4gPj4+ICsKPiA+Pj4gKyAgICAgLiA9IEFMSUdOKFBBR0VfU0laRSk7Cj4gPj4+ICsgICAgIF9f aW5pdF9lbmQgPSAuOwo+ID4+PiArCj4gPj4+ICsgICAgIC5zZGF0YSA6IHsKPiA+Pj4gKyAgICAg ICAgICAgICBfX2dsb2JhbF9wb2ludGVyJCA9IC4gKyAweDgwMDsKPiA+Pj4gKyAgICAgICAgICAg ICAqKC5zZGF0YSopCj4gPj4+ICsgICAgICAgICAgICAgKiguc2JzcyopCj4gPj4+ICsgICAgIH0K PiA+Pj4gKwo+ID4+PiArICAgICBCU1NfU0VDVElPTihQQUdFX1NJWkUsIFBBR0VfU0laRSwgMCkK PiA+Pj4gKyAgICAgRVhDRVBUSU9OX1RBQkxFKDB4MTApCj4gPj4+ICsKPiA+Pj4gKyAgICAgLnJl bC5keW4gOiBBVChBRERSKC5yZWwuZHluKSAtIExPQURfT0ZGU0VUKSB7Cj4gPj4+ICsgICAgICAg ICAgICAgKigucmVsLmR5biopCj4gPj4+ICsgICAgIH0KPiA+Pj4gKwo+ID4+PiArICAgICAvKgo+ ID4+PiArICAgICAgKiBFbmQgb2YgY29waWVkIGRhdGEuIFdlIG5lZWQgYSBkdW1teSBzZWN0aW9u IHRvIGdldCBpdHMgTE1BLgo+ID4+PiArICAgICAgKiBBbHNvIGxvY2F0ZWQgYmVmb3JlIGZpbmFs IEFMSUdOKCkgYXMgdHJhaWxpbmcgcGFkZGluZyBpcyBub3Qgc3RvcmVkCj4gPj4+ICsgICAgICAq IGluIHRoZSByZXN1bHRpbmcgYmluYXJ5IGZpbGUgYW5kIHVzZWxlc3MgdG8gY29weS4KPiA+Pj4g KyAgICAgICovCj4gPj4+ICsgICAgIC5kYXRhLmVuZG1hcmsgOiBBVChBRERSKC5kYXRhLmVuZG1h cmspIC0gTE9BRF9PRkZTRVQpIHsgfQo+ID4+PiArICAgICBfZWRhdGFfbG9jID0gTE9BREFERFIo LmRhdGEuZW5kbWFyayk7Cj4gPj4+ICsKPiA+Pj4gKyAgICAgLiA9IEFMSUdOKFBBR0VfU0laRSk7 Cj4gPj4+ICsgICAgIF9lbmQgPSAuOwo+ID4+PiArCj4gPj4+ICsgICAgIFNUQUJTX0RFQlVHCj4g Pj4+ICsgICAgIERXQVJGX0RFQlVHCj4gPj4+ICsKPiA+Pj4gKyAgICAgRElTQ0FSRFMKPiA+Pj4g K30KPiA+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRzLlMgYi9h cmNoL3Jpc2N2L2tlcm5lbC92bWxpbnV4Lmxkcy5TCj4gPj4+IGluZGV4IGRlMDNjYjIyZDBlOS4u Njc0NWVjMzI1OTMwIDEwMDY0NAo+ID4+PiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC92bWxpbnV4 Lmxkcy5TCj4gPj4+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRzLlMKPiA+Pj4g QEAgLTQsNyArNCwxMiBAQAo+ID4+PiAgICAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgU2lGaXZlCj4g Pj4+ICAgICAqLwo+ID4+Pgo+ID4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPj4+ICsj aW5jbHVkZSAidm1saW51eC14aXAubGRzLlMiCj4gPj4+ICsjZWxzZQo+ID4+PiArCj4gPj4+ICAg ICNkZWZpbmUgTE9BRF9PRkZTRVQgUEFHRV9PRkZTRVQKPiA+Pj4gKwo+ID4+PiAgICAjaW5jbHVk ZSA8YXNtL3ZtbGludXgubGRzLmg+Cj4gPj4+ICAgICNpbmNsdWRlIDxhc20vcGFnZS5oPgo+ID4+ PiAgICAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+Cj4gPj4+IEBAIC0xMzIsMyArMTM3LDQgQEAgU0VD VElPTlMKPiA+Pj4KPiA+Pj4gICAgICAgIERJU0NBUkRTCj4gPj4+ICAgIH0KPiA+Pj4gKyNlbmRp ZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+ID4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9t bS9pbml0LmMgYi9hcmNoL3Jpc2N2L21tL2luaXQuYwo+ID4+PiBpbmRleCAwNjc1ODNhYjFiZDcu LmI1YWM0NTVjYjE1OSAxMDA2NDQKPiA+Pj4gLS0tIGEvYXJjaC9yaXNjdi9tbS9pbml0LmMKPiA+ Pj4gKysrIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKPiA+Pj4gQEAgLTMxLDggKzMxLDggQEAgRVhQ T1JUX1NZTUJPTChlbXB0eV96ZXJvX3BhZ2UpOwo+ID4+Pgo+ID4+PiAgICBleHRlcm4gY2hhciBf c3RhcnRbXTsKPiA+Pj4gICAgI2RlZmluZSBEVEJfRUFSTFlfQkFTRV9WQSAgICAgIFBHRElSX1NJ WkUKPiA+Pj4gLXZvaWQgKmR0Yl9lYXJseV92YSBfX2luaXRkYXRhOwo+ID4+PiAtdWludHB0cl90 IGR0Yl9lYXJseV9wYSBfX2luaXRkYXRhOwo+ID4+PiArdm9pZCAqX2R0Yl9lYXJseV92YSBfX2lu aXRkYXRhOwo+ID4+PiArdWludHB0cl90IF9kdGJfZWFybHlfcGEgX19pbml0ZGF0YTsKPiA+Pj4K PiA+Pj4gICAgc3RydWN0IHB0X2FsbG9jX29wcyB7Cj4gPj4+ICAgICAgICBwdGVfdCAqKCpnZXRf cHRlX3ZpcnQpKHBoeXNfYWRkcl90IHBhKTsKPiA+Pj4gQEAgLTg4LDYgKzg4LDEwIEBAIHN0YXRp YyB2b2lkIHByaW50X3ZtX2xheW91dCh2b2lkKQo+ID4+PiAgICAgICAgICAgICAgICAgICh1bnNp Z25lZCBsb25nKVZNQUxMT0NfRU5EKTsKPiA+Pj4gICAgICAgIHByaW50X21sbSgibG93bWVtIiwg KHVuc2lnbmVkIGxvbmcpUEFHRV9PRkZTRVQsCj4gPj4+ICAgICAgICAgICAgICAgICAgKHVuc2ln bmVkIGxvbmcpaGlnaF9tZW1vcnkpOwo+ID4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4g Pj4+ICsgICAgIHByaW50X21sbSgieGlwIiwgKHVuc2lnbmVkIGxvbmcpWElQX1ZJUlRfQUREUl9T VEFSVCwKPiA+Pj4gKyAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKVhJUF9WSVJUX0FERFJf U1RBUlQgKyBTWl8xNk0pOwo+ID4+PiArI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4g Pj4+ICAgIH0KPiA+Pj4gICAgI2Vsc2UKPiA+Pj4gICAgc3RhdGljIHZvaWQgcHJpbnRfdm1fbGF5 b3V0KHZvaWQpIHsgfQo+ID4+PiBAQCAtMTEzLDYgKzExNywxMCBAQCB2b2lkIF9faW5pdCBzZXR1 cF9ib290bWVtKHZvaWQpCj4gPj4+ICAgICAgICBwaHlzX2FkZHJfdCBkcmFtX2VuZCA9IG1lbWJs b2NrX2VuZF9vZl9EUkFNKCk7Cj4gPj4+ICAgICAgICBwaHlzX2FkZHJfdCBtYXhfbWFwcGVkX2Fk ZHIgPSBfX3BhKH4odWxvbmcpMCk7Cj4gPj4+Cj4gPj4+ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJO RUwKPiA+Pj4gKyAgICAgdm1saW51eF9zdGFydCA9IF9fcGFfc3ltYm9sKCZfc2RhdGEpOwo+ID4+ PiArI2VuZGlmCj4gPj4KPiA+PiBOaXQ6IEkgd291bGQgdXNlIElTX0VOQUJMRUQoQ09ORklHX1hJ UF9LRVJORUwpIHRvIGF2b2lkIGRvdWJsZQo+ID4+IGFzc2lnbm1lbnQgaW4gY2FzZSBDT05GSUdf WElQX0tFUk5FTCBpcyBzZXQuCj4gPj4KPiA+Pj4gKwo+ID4+PiAgICAgICAgLyogVGhlIG1heGlt YWwgcGh5c2ljYWwgbWVtb3J5IHNpemUgaXMgLVBBR0VfT0ZGU0VULiAqLwo+ID4+PiAgICAgICAg bWVtYmxvY2tfZW5mb3JjZV9tZW1vcnlfbGltaXQoLVBBR0VfT0ZGU0VUKTsKPiA+Pj4KPiA+Pj4g QEAgLTE0OCwxMSArMTU2LDI3IEBAIHZvaWQgX19pbml0IHNldHVwX2Jvb3RtZW0odm9pZCkKPiA+ Pj4gICAgICAgIG1lbWJsb2NrX2FsbG93X3Jlc2l6ZSgpOwo+ID4+PiAgICB9Cj4gPj4+Cj4gPj4+ ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+Pj4gKwo+ID4+PiArZXh0ZXJuIGNoYXIgX3hp cHJvbVtdLCBfZXhpcHJvbVtdOwo+ID4+PiArZXh0ZXJuIGNoYXIgX3NkYXRhW10sIF9lZGF0YVtd Owo+ID4+PiArCj4gPj4+ICsjZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiA+Pj4gKwo+ ID4+PiAgICAjaWZkZWYgQ09ORklHX01NVQo+ID4+PiAtc3RhdGljIHN0cnVjdCBwdF9hbGxvY19v cHMgcHRfb3BzOwo+ID4+PiArc3RhdGljIHN0cnVjdCBwdF9hbGxvY19vcHMgX3B0X29wczsKPiA+ Pj4gKwo+ID4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPj4+ICsjZGVmaW5lIHB0X29w cyAoKihzdHJ1Y3QgcHRfYWxsb2Nfb3BzICopWElQX0ZJWFVQKCZfcHRfb3BzKSkKPiA+Pj4gKyNl bHNlCj4gPj4+ICsjZGVmaW5lIHB0X29wcyAgICAgICBfcHRfb3BzCj4gPj4+ICsjZW5kaWYKPiA+ Pj4KPiA+Pj4gICAgdW5zaWduZWQgbG9uZyB2YV9wYV9vZmZzZXQ7Cj4gPj4+ICAgIEVYUE9SVF9T WU1CT0wodmFfcGFfb2Zmc2V0KTsKPiA+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4+ PiArI2RlZmluZSB2YV9wYV9vZmZzZXQgKCooKHVuc2lnbmVkIGxvbmcgKilYSVBfRklYVVAoJnZh X3BhX29mZnNldCkpKQo+ID4+PiArI2VuZGlmCj4gPj4+ICAgIHVuc2lnbmVkIGxvbmcgcGZuX2Jh c2U7Cj4gPj4+ICAgIEVYUE9SVF9TWU1CT0wocGZuX2Jhc2UpOwo+ID4+Pgo+ID4+PiBAQCAtMTYy LDYgKzE4NiwxMiBAQCBwdGVfdCBmaXhtYXBfcHRlW1BUUlNfUEVSX1BURV0gX19wYWdlX2FsaWdu ZWRfYnNzOwo+ID4+Pgo+ID4+PiAgICBwZ2RfdCBlYXJseV9wZ19kaXJbUFRSU19QRVJfUEdEXSBf X2luaXRkYXRhIF9fYWxpZ25lZChQQUdFX1NJWkUpOwo+ID4+Pgo+ID4+PiArI2lmZGVmIENPTkZJ R19YSVBfS0VSTkVMCj4gPj4+ICsjZGVmaW5lIHRyYW1wb2xpbmVfcGdfZGlyICAgICgocGdkX3Qg KilYSVBfRklYVVAodHJhbXBvbGluZV9wZ19kaXIpKQo+ID4+PiArI2RlZmluZSBmaXhtYXBfcHRl ICAgICAgICAgICAoKHB0ZV90ICopWElQX0ZJWFVQKGZpeG1hcF9wdGUpKQo+ID4+PiArI2RlZmlu ZSBlYXJseV9wZ19kaXIgICAgICAgICAoKHBnZF90ICopWElQX0ZJWFVQKGVhcmx5X3BnX2Rpcikp Cj4gPj4+ICsjZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiA+Pj4gKwo+ID4+PiAgICB2 b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHBoeXNfYWRkcl90IHBo eXMsIHBncHJvdF90IHByb3QpCj4gPj4+ICAgIHsKPiA+Pj4gICAgICAgIHVuc2lnbmVkIGxvbmcg YWRkciA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKPiA+Pj4gQEAgLTIzNyw2ICsyNjcsMTUgQEAgcG1k X3QgZml4bWFwX3BtZFtQVFJTX1BFUl9QTURdIF9fcGFnZV9hbGlnbmVkX2JzczsKPiA+Pj4gICAg cG1kX3QgZWFybHlfcG1kW1BUUlNfUEVSX1BNRF0gX19pbml0ZGF0YSBfX2FsaWduZWQoUEFHRV9T SVpFKTsKPiA+Pj4gICAgcG1kX3QgZWFybHlfZHRiX3BtZFtQVFJTX1BFUl9QTURdIF9faW5pdGRh dGEgX19hbGlnbmVkKFBBR0VfU0laRSk7Cj4gPj4+Cj4gPj4+ICsjaWZkZWYgQ09ORklHX1hJUF9L RVJORUwKPiA+Pj4gK3BtZF90IHhpcF9wbWRbUFRSU19QRVJfUE1EXSBfX3BhZ2VfYWxpZ25lZF9i c3M7Cj4gPj4+ICsKPiA+Pj4gKyNkZWZpbmUgdHJhbXBvbGluZV9wbWQgICAgICAgKChwbWRfdCAq KVhJUF9GSVhVUCh0cmFtcG9saW5lX3BtZCkpCj4gPj4+ICsjZGVmaW5lIGZpeG1hcF9wbWQgICAo KHBtZF90ICopWElQX0ZJWFVQKGZpeG1hcF9wbWQpKQo+ID4+PiArI2RlZmluZSB4aXBfcG1kICAg ICAgICAgICAgICAoKHBtZF90ICopWElQX0ZJWFVQKHhpcF9wbWQpKQo+ID4+PiArI2RlZmluZSBl YXJseV9wbWQgICAgKChwbWRfdCAqKVhJUF9GSVhVUChlYXJseV9wbWQpKQo+ID4+PiArI2VuZGlm IC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4gPj4+ICsKPiA+Pj4gICAgc3RhdGljIHBtZF90ICpf X2luaXQgZ2V0X3BtZF92aXJ0X2Vhcmx5KHBoeXNfYWRkcl90IHBhKQo+ID4+PiAgICB7Cj4gPj4+ ICAgICAgICAvKiBCZWZvcmUgTU1VIGlzIGVuYWJsZWQgKi8KPiA+Pj4gQEAgLTM1Myw2ICszOTIs MTkgQEAgc3RhdGljIHVpbnRwdHJfdCBfX2luaXQgYmVzdF9tYXBfc2l6ZShwaHlzX2FkZHJfdCBi YXNlLCBwaHlzX2FkZHJfdCBzaXplKQo+ID4+PiAgICAgICAgcmV0dXJuIFBNRF9TSVpFOwo+ID4+ PiAgICB9Cj4gPj4+Cj4gPj4+ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+Pj4gKy8qIGNh bGxlZCBmcm9tIGhlYWQuUyB3aXRoIE1NVSBvZmYgKi8KPiA+Pj4gK2FzbWxpbmthZ2Ugdm9pZCBf X2luaXQgX19jb3B5X2RhdGEodm9pZCkKPiA+Pj4gK3sKPiA+Pj4gKyAgICAgdm9pZCAqZnJvbSA9 ICh2b2lkICopKCZfc2RhdGEpOwo+ID4+PiArICAgICB2b2lkICplbmQgPSAodm9pZCAqKSgmX2Vu ZCk7Cj4gPj4+ICsgICAgIHZvaWQgKnRvID0gKHZvaWQgKilDT05GSUdfWElQX1BIWVNfUkFNX0JB U0U7Cj4gPj4+ICsgICAgIHNpemVfdCBzeiA9IChzaXplX3QpKGVuZCAtIGZyb20pOwo+ID4+PiAr Cj4gPj4+ICsgICAgIG1lbWNweSh0bywgZnJvbSwgc3opOwo+ID4+PiArfQo+ID4+PiArI2VuZGlm Cj4gPj4+ICsKPiA+Pj4gICAgLyoKPiA+Pj4gICAgICogc2V0dXBfdm0oKSBpcyBjYWxsZWQgZnJv bSBoZWFkLlMgd2l0aCBNTVUtb2ZmLgo+ID4+PiAgICAgKgo+ID4+PiBAQCAtMzczLDcgKzQyNSw4 IEBAIHN0YXRpYyB1aW50cHRyX3QgX19pbml0IGJlc3RfbWFwX3NpemUocGh5c19hZGRyX3QgYmFz ZSwgcGh5c19hZGRyX3Qgc2l6ZSkKPiA+Pj4KPiA+Pj4gICAgYXNtbGlua2FnZSB2b2lkIF9faW5p dCBzZXR1cF92bSh1aW50cHRyX3QgZHRiX3BhKQo+ID4+PiAgICB7Cj4gPj4+IC0gICAgIHVpbnRw dHJfdCB2YSwgcGEsIGVuZF92YTsKPiA+Pj4gKyAgICAgdWludHB0cl90IHZhLCBlbmRfdmE7Cj4g Pj4+ICsgICAgIHVpbnRwdHJfdCBfX21heWJlX3VudXNlZCBwYTsKPiA+Pj4gICAgICAgIHVpbnRw dHJfdCBsb2FkX3BhID0gKHVpbnRwdHJfdCkoJl9zdGFydCk7Cj4gPj4+ICAgICAgICB1aW50cHRy X3QgbG9hZF9zeiA9ICh1aW50cHRyX3QpKCZfZW5kKSAtIGxvYWRfcGE7Cj4gPj4+ICAgICAgICB1 aW50cHRyX3QgbWFwX3NpemU7Cj4gPj4+IEBAIC0zODEsNiArNDM0LDEzIEBAIGFzbWxpbmthZ2Ug dm9pZCBfX2luaXQgc2V0dXBfdm0odWludHB0cl90IGR0Yl9wYSkKPiA+Pj4gICAgICAgIHBtZF90 IGZpeF9ibWFwX3NwbWQsIGZpeF9ibWFwX2VwbWQ7Cj4gPj4+ICAgICNlbmRpZgo+ID4+Pgo+ID4+ PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPj4+ICsgICAgIHVpbnRwdHJfdCB4aXByb20g PSAodWludHB0cl90KUNPTkZJR19YSVBfUEhZU19BRERSOwo+ID4+PiArICAgICB1aW50cHRyX3Qg eGlwcm9tX3N6ID0gKHVpbnRwdHJfdCkoJl9leGlwcm9tKSAtICh1aW50cHRyX3QpKCZfeGlwcm9t KTsKPiA+Pj4gKwo+ID4+PiArICAgICBsb2FkX3BhID0gKHVpbnRwdHJfdClDT05GSUdfWElQX1BI WVNfUkFNX0JBU0U7Cj4gPj4+ICsgICAgIGxvYWRfc3ogPSAodWludHB0cl90KSgmX2VuZCkgLSAo dWludHB0cl90KSgmX3NkYXRhKTsKPiA+Pj4gKyNlbmRpZgo+ID4+PiAgICAgICAgdmFfcGFfb2Zm c2V0ID0gUEFHRV9PRkZTRVQgLSBsb2FkX3BhOwo+ID4+PiAgICAgICAgcGZuX2Jhc2UgPSBQRk5f RE9XTihsb2FkX3BhKTsKPiA+Pj4KPiA+Pj4gQEAgLTQxOSw2ICs0NzksMjEgQEAgYXNtbGlua2Fn ZSB2b2lkIF9faW5pdCBzZXR1cF92bSh1aW50cHRyX3QgZHRiX3BhKQo+ID4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxvYWRfcGEsIFBHRElSX1NJWkUsIFBBR0VfS0VSTkVMX0VYRUMpOwo+ ID4+PiAgICAjZW5kaWYKPiA+Pj4KPiA+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4+ PiArICAgICBjcmVhdGVfcGdkX21hcHBpbmcodHJhbXBvbGluZV9wZ19kaXIsIFhJUF9WSVJUX0FE RFJfU1RBUlQsCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAodWludHB0cl90KXhpcF9w bWQsIFBHRElSX1NJWkUsIFBBR0VfVEFCTEUpOwo+ID4+PiArICAgICBmb3IgKHZhID0gWElQX1ZJ UlRfQUREUl9TVEFSVDsKPiA+Pj4gKyAgICAgICAgICB2YSA8IFhJUF9WSVJUX0FERFJfU1RBUlQg KyB4aXByb21fc3o7Cj4gPj4+ICsgICAgICAgICAgdmEgKz0gUE1EX1NJWkUpIHsKPiA+Pj4gKyAg ICAgICAgICAgICBjcmVhdGVfcG1kX21hcHBpbmcoeGlwX3BtZCwgdmEsCj4gPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHhpcHJvbSArICh2YSAtIFhJUF9WSVJUX0FERFJfU1RB UlQpLAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTURfU0laRSwgUEFH RV9LRVJORUxfRVhFQyk7Cj4gPj4+ICsgICAgIH0KPiA+Pj4gKwo+ID4+PiArICAgICBjcmVhdGVf cGdkX21hcHBpbmcoZWFybHlfcGdfZGlyLCBYSVBfVklSVF9BRERSX1NUQVJULAo+ID4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgKHVpbnRwdHJfdCl4aXBfcG1kLCBQR0RJUl9TSVpFLCBQQUdF X1RBQkxFKTsKPiA+Pj4gKyNlbmRpZgo+ID4+PiArCj4gPj4+ICAgICAgICAvKgo+ID4+PiAgICAg ICAgICogU2V0dXAgZWFybHkgUEdEIGNvdmVyaW5nIGVudGlyZSBrZXJuZWwgd2hpY2ggd2lsbCBh bGxvd3MKPiA+Pj4gICAgICAgICAqIHVzIHRvIHJlYWNoIHBhZ2luZ19pbml0KCkuIFdlIG1hcCBh bGwgbWVtb3J5IGJhbmtzIGxhdGVyCj4gPj4+IEBAIC00NDMsNyArNTE4LDcgQEAgYXNtbGlua2Fn ZSB2b2lkIF9faW5pdCBzZXR1cF92bSh1aW50cHRyX3QgZHRiX3BhKQo+ID4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBhICsgUE1EX1NJWkUsIFBNRF9TSVpFLCBQQUdFX0tFUk5FTCk7Cj4g Pj4+ICAgICAgICBkdGJfZWFybHlfdmEgPSAodm9pZCAqKURUQl9FQVJMWV9CQVNFX1ZBICsgKGR0 Yl9wYSAmIChQTURfU0laRSAtIDEpKTsKPiA+Pj4gICAgI2Vsc2UgLyogQ09ORklHX0JVSUxUSU5f RFRCICovCj4gPj4+IC0gICAgIGR0Yl9lYXJseV92YSA9IF9fdmEoZHRiX3BhKTsKPiA+Pj4gKyAg ICAgZHRiX2Vhcmx5X3ZhID0gX192YShYSVBfRklYVVAoZHRiX3BhKSk7Cj4gPj4+ICAgICNlbmRp ZiAvKiBDT05GSUdfQlVJTFRJTl9EVEIgKi8KPiA+Pj4gICAgI2Vsc2UKPiA+Pj4gICAgI2lmbmRl ZiBDT05GSUdfQlVJTFRJTl9EVEIKPiA+Pj4gQEAgLTQ1NSw3ICs1MzAsNyBAQCBhc21saW5rYWdl IHZvaWQgX19pbml0IHNldHVwX3ZtKHVpbnRwdHJfdCBkdGJfcGEpCj4gPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGEgKyBQR0RJUl9TSVpFLCBQR0RJUl9TSVpFLCBQQUdFX0tFUk5FTCk7 Cj4gPj4+ICAgICAgICBkdGJfZWFybHlfdmEgPSAodm9pZCAqKURUQl9FQVJMWV9CQVNFX1ZBICsg KGR0Yl9wYSAmIChQR0RJUl9TSVpFIC0gMSkpOwo+ID4+PiAgICAjZWxzZSAvKiBDT05GSUdfQlVJ TFRJTl9EVEIgKi8KPiA+Pj4gLSAgICAgZHRiX2Vhcmx5X3ZhID0gX192YShkdGJfcGEpOwo+ID4+ PiArICAgICBkdGJfZWFybHlfdmEgPSBfX3ZhKFhJUF9GSVhVUChkdGJfcGEpKTsKPiA+Pj4gICAg I2VuZGlmIC8qIENPTkZJR19CVUlMVElOX0RUQiAqLwo+ID4+PiAgICAjZW5kaWYKPiA+Pj4gICAg ICAgIGR0Yl9lYXJseV9wYSA9IGR0Yl9wYTsKPiA+Pj4gQEAgLTQ5Niw2ICs1NzEsOSBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgc2V0dXBfdm1fZmluYWwodm9pZCkKPiA+Pj4gICAgICAgIHVpbnRwdHJf dCB2YSwgbWFwX3NpemU7Cj4gPj4+ICAgICAgICBwaHlzX2FkZHJfdCBwYSwgc3RhcnQsIGVuZDsK PiA+Pj4gICAgICAgIHU2NCBpOwo+ID4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPj4+ ICsgICAgIHVpbnRwdHJfdCB4aXByb21fc3ogPSAodWludHB0cl90KSgmX2V4aXByb20pIC0gKHVp bnRwdHJfdCkoJl94aXByb20pOwo+ID4+PiArI2VuZGlmCj4gPj4+Cj4gPj4+ICAgICAgICAvKioK PiA+Pj4gICAgICAgICAqIE1NVSBpcyBlbmFibGVkIGF0IHRoaXMgcG9pbnQuIEJ1dCBwYWdlIHRh YmxlIHNldHVwIGlzIG5vdCBjb21wbGV0ZSB5ZXQuCj4gPj4+IEBAIC01MjcsNiArNjA1LDE2IEBA IHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF92bV9maW5hbCh2b2lkKQo+ID4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBfc2l6ZSwgUEFHRV9LRVJORUxfRVhF Qyk7Cj4gPj4+ICAgICAgICAgICAgICAgIH0KPiA+Pj4gICAgICAgIH0KPiA+Pj4gKyNpZmRlZiBD T05GSUdfWElQX0tFUk5FTAo+ID4+PiArICAgICBtYXBfc2l6ZSA9IGJlc3RfbWFwX3NpemUoQ09O RklHX1hJUF9QSFlTX0FERFIsIHhpcHJvbV9zeik7Cj4gPj4+ICsgICAgIGZvciAodmEgPSBYSVBf VklSVF9BRERSX1NUQVJUOwo+ID4+PiArICAgICAgICAgIHZhIDwgWElQX1ZJUlRfQUREUl9TVEFS VCArIHhpcHJvbV9zejsKPiA+Pj4gKyAgICAgICAgICB2YSArPSBtYXBfc2l6ZSkKPiA+Pj4gKyAg ICAgICAgICAgICBjcmVhdGVfcGdkX21hcHBpbmcoc3dhcHBlcl9wZ19kaXIsIHZhLAo+ID4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05GSUdfWElQX1BIWVNfQUREUiArICh2 YSAtIFhJUF9WSVJUX0FERFJfU1RBUlQpLAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYXBfc2l6ZSwgUEFHRV9LRVJORUxfRVhFQyk7Cj4gPj4+ICsKPiA+Pj4gKyNlbmRp Zgo+ID4+Pgo+ID4+PiAgICAgICAgLyogQ2xlYXIgZml4bWFwIFBURSBhbmQgUE1EIG1hcHBpbmdz ICovCj4gPj4+ICAgICAgICBjbGVhcl9maXhtYXAoRklYX1BURSk7Cj4gPj4+Cj4gPj4KPiA+PiBB bmQgSSdtIG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB3aGljaCB2YXJpYWJsZXMgYXJlIHJlcXVpcmVk IHRvIGJlIGZpeHVwLAo+ID4+IGNhbiB5b3UgZXhwbGFpbiBpdCBhIGJpdCBtb3JlIHBsZWFzZSA/ Cj4gPgo+ID4gT24gYSBoaWdoIGxldmVsLCBhbGwgdGhlIFJXIHNlY3Rpb25zIGFyZSBjb3BpZWQg dG8gUkFNIGJ1dCB3aGlsZSB0aGUKPiA+IE1NVSBpcyBub3QgZW5hYmxlZCwgd2UgYXJlIGRlYWxp bmcgd2l0aCB0aGUgYWRkcmVzc2VzIGluIHRoZSBOT1IgZmxhc2gKPiA+IGFsbCB0aGUgd2F5LiBU byByZWFkIGFuZCBtb2RpZnkgdGhlIFJBTSB2ZXJzaW9ucyBvZiB2YXJpYWJsZXMgd2UgZG8KPiA+ IHRoaXMgWElQX0ZJWFVQIHRoaW5nLgo+Cj4gT2sgdGhhbmtzLCB3ZSdsbCBuZWVkIHRvIGJlIGV4 dHJhIGNhcmVmdWwgd2hlbiB0b3VjaGluZyB0aGUgcHJlLW1tdSB6b25lCj4gdGhlbi4KPgo+ID4K PiA+IFBsZWFzZSBjb21lIGJhY2sgaWYgdGhpcyBleHBsYW5hdGlvbiBpcyBub3QgY2xlYXIgZW5v dWdoLgo+ID4KPiA+PiBBbmQgZmluYWxseSwgaG93IGNhbiB3ZSB0cnkgWElQX0tFUk5FTCBvbiBx ZW11ID8KPiA+Cj4gPiBJdCB3b3JrcyB3aXRoIFBvbGFyZmlyZSBJY2ljbGUgZW11bGF0aW9uLiBJ J20gdXNpbmcgdGhlIGZvbGxsb3dpbmcKPiA+IGNvbW1hbmQgbGluZSBmb3IgdGVzdGluZyBpdDoK PiA+IHFlbXUtc3lzdGVtLXJpc2N2NjQgLU0gbWljcm9jaGlwLWljaWNsZS1raXQgLWJpb3MKPiA+ IHdvcmsvaGFydC1zb2Z0d2FyZS1zZXJ2aWNlcy9oc3MuYmluIC1zbXAgNSAtZHJpdmUKPiA+IGlm PXNkLGZvcm1hdD1yYXcsZmlsZT1zZDEuaW1nIC1uaWMgdXNlcixtb2RlbD1jYWRlbmNlX2dlbSAt ZGlzcGxheQo+ID4gbm9uZSAtc2VyaWFsIG51bGwgLWNoYXJkZXYKPiA+IHNvY2tldCxpZD1zZXJp YWwxLHBhdGg9L3RtcC9zZXJpYWwxLnNvY2ssc2VydmVyIC1zZXJpYWwKPiA+IGNoYXJkZXY6c2Vy aWFsMSAtZGV2aWNlIGxvYWRlcixhZGRyPTB4MjEwMDAwMDAsZmlsZT14aXBJbWFnZSAtRAo+ID4g cWVtdS5sb2cgLW1vbml0b3Igc3RkaW8KPiA+Cj4KPiBUaGFua3MgZm9yIHRoZSBxZW11IGNvbW1h bmQgbGluZSAhCj4KPiA+IFRoYW5rcyBhIGxvdCBmb3IgdGhlIHJldmlldywKPiA+Cj4gPiBCZXN0 IHJlZ2FyZHMsCj4gPiAgICAgVml0YWx5Cj4KPiBUaGFua3MsCj4KPiBBbGV4Cj4KPiA+Cj4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gbGludXgt cmlzY3YgbWFpbGluZyBsaXN0Cj4gPiBsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCj4g PiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2 Cj4gPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=