From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 28202 invoked from network); 9 Nov 2021 01:23:12 -0000 Received: from 4ess.inri.net (216.126.196.42) by inbox.vuxu.org with ESMTPUTF8; 9 Nov 2021 01:23:12 -0000 Received: from mail-ed1-f47.google.com ([209.85.208.47]) by 4ess; Mon Nov 8 18:53:13 -0500 2021 Received: by mail-ed1-f47.google.com with SMTP id b15so49905098edd.7 for <9front@9front.org>; Mon, 08 Nov 2021 15:53:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=d/d8srOVe2kRqH8yc6RAdQn0S/ZlfsOlnK6wqacP4jY=; b=C6WWlov5A7YnRZQL+KVEny6h3HDe40Z4RLhZP0z4Z/7wt+icILrj6lsS4JQerjqj8o jotV4lxE1ZwbpnhxVgvAD/EoGOVWOX/SNbIliYdkUkktDSFMubCGUHHO4bP3EyJdTFh5 VSPNBTnsksauRhupGsCpYlSagN8lvhPcsHGrz0eERrZUggplZ2CLkl+H9urtzYavG5lR wwh+ohDcX4jC+lZLXwfMJGPa+xfYbuQUP/5bjsla9iP5jzaOiZCrvNWdq2S9TxqfJQvn yBKGdqyq6a7rRC7gsS/68PIMmA57mk5kkmJazgpfHIHjv6Zz3f7VAcaExtbHIk7LcB5f VkjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=d/d8srOVe2kRqH8yc6RAdQn0S/ZlfsOlnK6wqacP4jY=; b=DOKwESYi+P7Vh63+vwkm563rPLpk7xqIE+ePogKMH64ujA5mMX81QjgtGoZyC8MhIN Ky7Z77J+lOURDI0I5jUnO9CmDjQzSnxfb7Iyd7yNmohWKpM+ho9/ito4MRG2axTfd7AU 7XyhZNcfUdipbwH3rMEt7zZJoO5JcwzicC5iO7/hph9UMvTHC6rvq9XaiLR9fXrhUXWR 66NgD1zYJTQC8PRYQOz4l9aB5Ngx8wb3la0zNZ531nVfaFdxvlibGg2/EsSNzQdrWTkt +JhTawPdhaoNapzERDAI5kO4beVx00E/p6vmxVNnnvJnoj+gXYDCOX4MydxbXb60GcYn Bx+Q== X-Gm-Message-State: AOAM530SUkP//01vjcoSf/fXHnvSsE50GGHlGAAjvkn0gb0sN7bxm7uq yC8+TnPssQCKCvVtwmGDMxA2e37vGB5xDQ56V30EKpDObZ4AvQ== X-Google-Smtp-Source: ABdhPJzmxKonS7fAWzLqqo5Z/xybzzemYTov1jM6D4w63/PRZpIEe9FCiW/DZVQ+hQZxPnlY1w6H11VPsPIwG7Dqa5I= X-Received: by 2002:a05:6402:22d6:: with SMTP id dm22mr3885686edb.400.1636415105440; Mon, 08 Nov 2021 15:45:05 -0800 (PST) MIME-Version: 1.0 From: Lucas Francesco Date: Mon, 8 Nov 2021 20:44:54 -0300 Message-ID: To: 9front@9front.org Content-Type: multipart/mixed; boundary="00000000000010be3405d04f95af" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: secure basic general-purpose general-purpose method Subject: [9front] add lacking 9 section manpages Reply-To: 9front@9front.org Precedence: bulk --00000000000010be3405d04f95af Content-Type: text/plain; charset="UTF-8" Hey all, This patch adds some of the missing 9 section manpages, those were included from https://github.com/0intro/plan9-contrib and not reviewed around 9front's kernel functions and infra, but it should mostly be accurate, i've at least not included stuff like kbdputc or ref which are useless to us, but haven't reviewed the rest. added: conf, devattach, dmainit, lock, newchan and qio Uramekus --00000000000010be3405d04f95af X-Attachment-Id: f_kvrb2sdg0 Content-Type: multipart/mixed; boundary="upas-zrvszhdhqzwuvhorkqavhbivoa" Content-Disposition: inline This is a multi-part message in MIME format. --upas-zrvszhdhqzwuvhorkqavhbivoa Content-Disposition: inline Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit from postmaster@4ess: The following attachment had content that we can't prove to be harmless. To avoid possible automatic execution, we changed the content headers. The original header was: Content-Type: text/x-patch; charset="US-ASCII"; name="0001-include-missing-9-section-manpages.patch" Content-Disposition: attachment; filename="0001-include-missing-9-section-manpages.patch" Content-Transfer-Encoding: base64 Content-ID: --upas-zrvszhdhqzwuvhorkqavhbivoa Content-Type: application/octet-stream Content-Disposition: attachment; filename="0001-include-missing-9-section-manpages.patch.suspect" Content-Transfer-Encoding: base64 RnJvbSAxMmJmZjdiMTU5ODNiMDY2Zjc3ZDIwYzFhNDdjZDBjZGQ5MjFjM2Y5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWNhcyBGcmFuY2VzY28gPHVyYW1la3VzQGNpcm5vLmRldj4K RGF0ZTogTW9uLCA4IE5vdiAyMDIxIDIwOjMxOjI5IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAxLzFd IGluY2x1ZGUgbWlzc2luZyA5IHNlY3Rpb24gbWFucGFnZXMKCnRob3NlIHdlcmUgaW5jbHVkZWQg ZnJvbSBodHRwczovL2dpdGh1Yi5jb20vMGludHJvL3BsYW45LWNvbnRyaWIuZ2l0Cgp0aGluZ3Mg bWlnaHQgbm90IGJlIGFjY3VyYXRlLiBidXQgbGFjayBvZiBsb2NrKDkpIHdhcyBhbm5veWluZyBt ZSBhIGxvdC4KLS0tCiBzeXMvbWFuLzkvY29uZiAgICAgIHwgMzQwICsrKysrKysrKysrKysrKysr KysrKwogc3lzL21hbi85L2RldmF0dGFjaCB8IDY5OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogc3lzL21hbi85L2RtYWluaXQgICB8ICA4NiArKysrKysKIHN5 cy9tYW4vOS9sb2NrICAgICAgfCAxMDYgKysrKysrKwogc3lzL21hbi85L3FpbyAgICAgICB8IDQ4 MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTcxMSBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzL21hbi85L2NvbmYKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzeXMvbWFuLzkvZGV2YXR0YWNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzL21h bi85L2RtYWluaXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXMvbWFuLzkvbG9jawogY3JlYXRlIG1v ZGUgMTAwNjQ0IHN5cy9tYW4vOS9xaW8KCmRpZmYgLS1naXQgYS9zeXMvbWFuLzkvY29uZiBiL3N5 cy9tYW4vOS9jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZGJjMTNk ODhhCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL21hbi85L2NvbmYKQEAgLTAsMCArMSwzNDAgQEAK Ky5USCBDT05GIDkKKy5TSCBOQU1FCitjb25mIFwtIG5hdGl2ZSBhbmQgaG9zdGVkIGtlcm5lbCBj b25maWd1cmF0aW9uIGZpbGUKKy5TSCBERVNDUklQVElPTgorUGxhbiA5IGtlcm5lbHMgYXJlIGJ1 aWx0IGZvciBhIGdpdmVuIHRhcmdldAorLkkgcGxhdGZvcm0KK3VzaW5nIHBsYXRmb3JtLXNwZWNp ZmljIGNvZGUgaW4gZGlyZWN0b3J5CisuQkkgL3N5cy9zcmMvOS8gcGxhdGZvcm0KK2FuZCBwb3J0 YWJsZSBjb2RlIGluCisuQlIgL3N5cy9zcmMvOS9wb3J0ICwKKy5CIC9zeXMvc3JjLzkvaXAKK2Fu ZCBlbHNld2hlcmUuCitFeGlzdGluZworLkkgcGxhdGZvcm1zCitpbmNsdWRlCisuQiBhbHBoYXBj Citmb3IgdGhlIERFQyBBbHBoYSwKKy5CIGlQQVEKK2ZvciB0aGUgQ29tcGFxIGlQQVEsCisuQiBw YworZm9yIHRoZSBJbnRlbCB4ODYsCithbmQKKy5CIHBwYworZm9yIHRoZSBJQk0vTW90b3JvbGEg UG93ZXJQQy4KK0VhY2gKKy5JIHBsYXRmb3JtCitjYW4gaGF2ZSBzZXZlcmFsIGRpZmZlcmVudCBr ZXJuZWxzIHdpdGggZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zLgorQSBnaXZlbiBjb25maWd1cmF0 aW9uIGlzIGJ1aWx0IGluIHRoZSBwbGF0Zm9ybSdzIGRpcmVjdG9yeSB1c2luZyB0aGUKKy5JUiBt ayAoMSkKK2NvbW1hbmQ6CisuSVAKKy5FWAorbWsgJ0NPTkY9XGZJY29uZlxmUCcKKy5FRQorLlBQ Cit3aGVyZQorLkkgY29uZgoraXMgYSB0ZXh0IGZpbGUgdGhhdCBzcGVjaWZpZXMgZHJpdmVycywg cHJvdG9jb2xzIGFuZCBvdGhlciBwYXJhbWV0ZXJzIGZvciB0aGF0CitwYXJ0aWN1bGFyIGtlcm5l bDoKK2EgcGFydHMgbGlzdC4KK1RoZSByZXN1bHQgb2YgYSBzdWNjZXNzZnVsCisuSSBtaworaXMK K2FuIGV4ZWN1dGFibGUgb3IgYm9vdGFibGUgZmlsZSB3aXRoIGEgbmFtZSBkZXRlcm1pbmVkIGJ5 IHRoZQorLklSIHBsYXRmb3JtICdzCisuQlIgbWtmaWxlICwKK3R5cGljYWxseQorLkJJIDkgY29u Zi4KKy5QUAorQSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGhhcyBzZXZlcmFsIHNlY3Rpb25z IG9mIHRoZSBmb3JtCisuSVAKKy5FWAorLkkgImxhYmVsIgorLklSICIJaXRlbSIgIiBbICIgInN1 Yml0ZW0gLi4uIiAiIF0iCitcJgkuLi4KKy5FRQorLlBQCitFYWNoIHNlY3Rpb24gYmVnaW5zIHdp dGggYQorLkkgbGFiZWwKK2F0IHRoZSBzdGFydCBvZiBhIGxpbmUsIHdoaWNoIG5hbWVzIGEgY29u ZmlndXJhdGlvbgorY2F0ZWdvcnksIGZvbGxvd2VkIGJ5CithIGxpc3Qgb2YgZWFjaAorLkkgaXRl bQordG8gc2VsZWN0IGZyb20gdGhhdCBjYXRlZ29yeSwKK29uZSBsaW5lIHBlciBpdGVtLCB3aXRo IHdoaXRlIHNwYWNlIChpZSwgYmxhbmsgb3IgdGFiKSBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUu CitBbgorLkkgaXRlbQorbGluZSBjYW4gb3B0aW9uYWxseSBsaXN0IG9uZSBvciBtb3JlCisuSSBz dWJpdGVtcwordGhhdCBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwgdG8gc3VwcG9ydCBp dC4KK0EgbGluZSB0aGF0IHN0YXJ0cyB3aXRoIGEKKy5MICMKK2lzIGEgY29tbWVudC4KK0VtcHR5 IGxpbmVzIGFyZSBpZ25vcmVkLgorLlBQCisuSSBMYWJlbHMKK2FyZSBjaG9zZW4gZnJvbSB0aGUg Zm9sbG93aW5nIHNldCwgbGlzdGVkIGluIHRoZSBvcmRlcgoraW4gd2hpY2ggdGhleSBjb252ZW50 aW9uYWxseSBhcHBlYXIgaW4gYSBjb25maWd1cmF0aW9uIGZpbGU6CisuVEYgZXRoZXJ4eAorLlRQ CisuQiBkZXYKK0RldmljZSBkcml2ZXJzCisuVFAKKy5CIGlwCitJUCBwcm90b2NvbHMgKG5hdGl2 ZSBrZXJuZWxzIG9ubHkpIHRha2VuIGZyb20KKy5CIC4uL2lwCisuVFAKKy5CIGxpbmsKK0hhcmR3 YXJlLXNwZWNpZmljIHBhcnRzIG9mIGRldmljZSBkcml2ZXJzLgorLlRQCisuQiBtaXNjCitBcmNo aXRlY3R1cmUtc3BlY2lmaWMgZmlsZXM7IHNwZWNpZmljIFZHQSBhbmQgU0NTSSBpbnRlcmZhY2Vz CisuVFAKKy5CIGxpYgorTGlicmFyaWVzIHRvIGxpbmsgd2l0aCB0aGUga2VybmVsCisuVFAKKy5C IHBvcnQKK0MgY29kZSBhbmQgZGVjbGFyYXRpb25zIHRvIGluY2x1ZGUgYXMtaXMgaW4gdGhlIGdl bmVyYXRlZCBjb25maWd1cmF0aW9uIGZpbGUKKy5UUAorLkIgYm9vdAorQ29uZmlndXJhdGlvbiBm b3IKKy5JUiBib290ICg4KQorLlRQCisuQiBib290ZGlyCitMaXN0IG9mIGZpbGVzIGFuZCBkaXJl Y3RvcmllcyB0byBwdXQgaW4gdGhlCisuQiBib290CitkaXJlY3Rvcnkgb2YKKy5JUiByb290ICgz KS4KKy5QRAorLlBQCitXaGVuIGFuCisuSSBpdGVtCitpcyBsaXN0ZWQKK3VuZGVyIGEgZ2l2ZW4K Ky5JIGxhYmVsCitpdCBjYXVzZXMgYSBjb3JyZXNwb25kaW5nIGNvbXBvbmVudCB0byBiZSBpbmNs dWRlZCBpbiB0aGUga2VybmVsLgorVGhlIGRldGFpbHMgZGVwZW5kIG9uIHRoZQorLklSIGxhYmVs ICwKK2FzIGRpc2N1c3NlZCBiZWxvdy4KK0VhY2gKKy5JIHN1Yml0ZW0KK3JlcHJlc2VudHMgYSBr ZXJuZWwgc3ViY29tcG9uZW50IHJlcXVpcmVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nCisuSVIgaXRl bSAuCitCb3RoIGl0ZW1zIGFuZCBzdWJpdGVtcyBjYW4gYmUgZWl0aGVyIHBvcnRhYmxlIChwbGF0 Zm9ybS1pbmRlcGVuZGVudCkKK29yIHBsYXRmb3JtLXNwZWNpZmljLgorVGhlIHNvdXJjZSBmaWxl IGZvciBhIGdpdmVuIGl0ZW0gb3Igc3ViaXRlbQoraXMgc291Z2h0IGluIHRoZSBwbGF0Zm9ybS1k aXJlY3RvcnkKKyhmb3IgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSksIGFuZAoraW4gZGlyZWN0b3Jp ZXMKKy5CUiAuLi9wb3J0CithbmQKKy5CUiAuLi9pcCAsCit1bmRlciBjb250cm9sIG9mIHRoZSBw bGF0Zm9ybSdzCisuQlIgbWtmaWxlCithbmQKKy5CIC4uL3BvcnQvcG9ydG1rZmlsZQorKHdoaWNo IGlzIGluY2x1ZGVkIGJ5CisuQlIgbWtmaWxlICkuCitSZXN1bHRpbmcgb2JqZWN0IGZpbGVzIGFy ZSBsZWZ0IGluIHRoZQorLkkgcGxhdGZvcm0KK2RpcmVjdG9yeS4KKy5QUAorT3V0c2lkZSB0aGUK Ky5CIGRldgorc2VjdGlvbiwKK2VhY2ggaXRlbSBhbmQgc3ViaXRlbQorLkkgeAorY2F1c2VzIHRo ZSBrZXJuZWwgaW1hZ2UgdG8gaW5jbHVkZSB0aGUgY29kZSBjb21waWxlZCBmcm9tCisuSUIgeCAu YyAsCisob3IKKy5JQiB4IC5zCitmb3IgYXNzZW1ibHktbGFuZ3VhZ2Ugc3VwcG9ydCksCitvcgor LklCIHBvcnRkaXIgLyB4IC5jICwKK3doZXJlCisuSSBwb3J0ZGlyCitpcyBvbmUgb2YgdGhlIHBv cnRhYmxlIGRpcmVjdG9yaWVzIG1lbnRpb25lZCBhYm92ZS4KK0luIHRoZQorLkIgZGV2CitzZWN0 aW9uLCBhbiBpdGVtCisuSSB4Citjb3JyZXNwb25kcyBpbnN0ZWFkIHRvIHRoZSBkcml2ZXIgc291 cmNlIGZpbGUKKy5CSSBkZXYgeCAuYworaW4gdGhlIGN1cnJlbnQgKHBsYXRmb3JtLXNwZWNpZmlj KQorZGlyZWN0b3J5IG9yIGEgcG9ydGFibGUgZHJpdmVyCisuSUIgcG9ydGRpciAvZGV2IHggLmMg LgorU3ViaXRlbXMgYXJlIGhhbmRsZWQgYXMgaW4gYW55IG90aGVyIHNlY3Rpb24uCitUeXBpY2Fs bHkgdGhleSBhcmUgYXV4aWxpYXJ5IGZpbGVzIHRoYXQgYXJlIG5lZWRlZCBieSB0aGUgYXNzb2Np YXRlZCBkcml2ZXIuCisuUFAKK0ZvciBpbnN0YW5jZSwgaW4gYSBuYXRpdmUga2VybmVsCit0aGUg cG9ydGFibGUgZHJpdmVyIGZvciB0aGUKKy5CIGRyYXcKK2RldmljZSB1c2VzIHBsYXRmb3JtLXNw ZWNpZmljIGNvZGUgZnJvbQorLkJSIHNjcmVlbi5jIC4KK1RoYXQgY2FuIGJlIHJlcHJlc2VudGVk IGFzIGZvbGxvd3M6CisuSVAKKy5FWAorZGV2CisJZHJhdwlzY3JlZW4KKy5FRQorLlBQCitFYWNo IGl0ZW0KKy5JIHgKK2luIHRoZQorLkIgaXAKK3NlY3Rpb24KK2NvcnJlc3BvbmRzIHRvIGEgcHJv dG9jb2wgaW1wbGVtZW50YXRpb24gY29tcGlsZWQgZnJvbQorLkJJIC4uL2lwLyB4IC5jIC4KK0Fu eSBzdWJpdGVtcworYXJlIGRlYWx0IHdpdGggaW4gdGhlIHNhbWUgd2F5IGFzIGluIHRoZQorLkIg ZGV2CitzZWN0aW9uLgorLlBQCitUaGUKKy5CIGxpbmsKK3NlY3Rpb24gcHJvdmlkZXMgYSB3YXkg Zm9yIGhhcmR3YXJlLXNwZWNpZmljCitwYXJ0cyBvZiBkcml2ZXJzIHRvIGxpbmsgYXQgcnVudGlt ZSB0byB0aGUgaGFyZHdhcmUtaW52YXJpYW50IHBhcnQgb2YgYSBkZXZpY2UKK2RyaXZlcnMuCitG b3IgZWFjaCBpdGVtCisuSVIgeCAsCit0aGUga2VybmVsIHdpbGwgY2FsbCB0aGUgZnVuY3Rpb24K Ky5JQiB4IGxpbmsKK2R1cmluZyBpdHMgaW5pdGlhbGlzYXRpb24uCitUeXBpY2FsbHkgdGhhdCBm dW5jdGlvbiBtYWtlcyBpdHNlbGYga25vd24gdG8gdGhlIGRldmljZSBkcml2ZXIgYnkKK2NhbGxp bmcgYSBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGF0IGRyaXZlciwKK3Bhc3NpbmcgdGhlIGFkZHJl c3Mgb2YgYSBpbnRlcmZhY2Utc3BlY2lmaWMgZGF0YSBzdHJ1Y3R1cmUgb3IgbGlua2FnZSB0YWJs ZS4KK0ZvciBleGFtcGxlLAorLkIgZXRoZXJzbWMKK2lzIGFuIGludGVyZmFjZS1zcGVjaWZpYyBj b21wb25lbnQ6CisuSVAKKy5FWAorbGluaworCVxmUi4uLlxmUAorCWV0aGVyc21jCisuRUUKKy5Q UAorYW5kIGl0cyBzb3VyY2UgZmlsZQorLkIgZXRoZXJzbWMuYworcHJvdmlkZXMgYSBmdW5jdGlv bgorLkIgZXRoZXJzbWNsaW5rCit0aGF0CitjYWxscworLkIgYWRkZXRoZXJjYXJkCitpbiB0aGUg aW50ZXJmYWNlLWludmFyaWFudCBwYXJ0IG9mIHRoZSBkcml2ZXIsCisuQlIgZGV2ZXRoZXIuYyA6 CisuSVAKKy5FWAordm9pZAorZXRoZXJzbWNsaW5rKHZvaWQpCit7CisJYWRkZXRoZXJjYXJkKCJz bWM5MWNYWCIsIHJlc2V0KTsKK30KKy5FRQorLlBQCitUaGUKKy5CIGJvb3QKK3NlY3Rpb24gY29u ZmlndXJlcworLklSIGJvb3QgKDgpLAordGhlIGZpcnN0IHVzZXIgcHJvZ3JhbSBydW4gYnkgdGhl IGtlcm5lbC4KK0VhY2ggbGluZSBpbiB0aGUgc2VjdGlvbiBuYW1lcyBhIHBvc3NpYmxlIGJvb3Qg bWV0aG9kIChzZWUKKy5JUiBib290ICg4KQorZm9yIHRoZSBjdXJyZW50IGxpc3QpLgorVGhlIGZp cnN0IHdpbGwgYmUgdGhlIGRlZmF1bHQuCitBbHNvIGJ5IGRlZmF1bHQsCisuQiAvYm9vdAord2ls bCBydW4KKy5CIC9iaW4vdGVybXJjCitmcm9tCisuSVIgY3B1cmMgKDgpLAord2l0aAorLkIgYm9v dGRpc2sKK3NldCB0bworLkJSICNTL3NkQzAvIC4KK1RvIGNoYW5nZSB0aGUgZGVmYXVsdHMsIHRo ZSBsaW5lIChvciBsaW5lcykgY29udGFpbmluZyBhCisuQiBib290CitsYWJlbCBjYW4gYmUgZ2l2 ZW4gc29tZSBvcHRpb25zOgorLlJTCisuVFAKKy5CICJib290IGNwdSIKKy5icgorVGhlIGtlcm5l bCBpcyBhIGNwdSBzZXJ2ZXI6IHJ1bgorLkIgL2Jpbi9jcHVyYworbm90CisuQiAvYmluL3Rlcm1y YworKHNlZQorLklSIGNwdXJjICg4KSkuCisuVFAKKy5CSSAiYm9vdCBjcHUgYm9vdCAiIGRpc2sK K1VzZQorLkkgZGlzaworYXMgdGhlIGRlZmF1bHQKKy5CUiBib290ZGlzayAuCisuUkUKKy5QUAor VGhlCisuQiBsaWIKK3NlY3Rpb24gbGlzdHMgdGhlIGxpYnJhcmllcyB0byBpbmNsdWRlIHdoZW4g bGlua2luZyB0aGUga2VybmVsLAoraW4gYW4gb3JkZXIgdGhhdCBzYXRpc2ZpZXMgYW55IGRlcGVu ZGVuY2llcyBhbW9uZ3N0IHRoZW0uCitFYWNoIGl0ZW0KKy5JIHgKK2NvcnJlc3BvbmRzIHRvCisu QkkgLyRvYmp0eXBlL2xpYiB4IC5hICwKK2EgdGFyZ2V0LXNwZWNpZmljIGxpYnJhcnkKK3Byb2R1 Y2VkIGJ5IGNvbXBpbGluZyB0aGUgQyBzb3VyY2UgY29kZSBpbgorLkJJIC9zeXMvc3JjL2xpYiBp dGVtLAord2hlcmUKKy5CIG9ianR5cGUKK2lzIHNldCBpbiB0aGUgcGxhdGZvcm0ncworLkIgbWtm aWxlCit0byB0aGUgdGFyZ2V0IHN5c3RlbSdzIG9iamVjdCB0eXBlCisoZWcsCisuQlIgMzg2ICwK Ky5CUiBwb3dlciAsCitldGMpLgorLlBQCitBbiBpdGVtIGluIHRoZQorLkIgYm9vdGRpcgorc2Vj dGlvbgoraGFzIG9uZSBvZiB0aGUgZm9ybXM6CisuSVAKKy5FWAorLkkgbmFtZQorLkkgInNvdXJj ZSBuYW1lIgorLkVFCisuUFAKK3doZXJlCisuSSBuYW1lCithbmQKKy5JIHNvdXJjZQorYXJlIHBh dGggbmFtZXMgKG9mdGVuIGFic29sdXRlIHBhdGggbmFtZXMpLgorVGhlIGtlcm5lbCdzIGluaXRp YWwgcm9vdCBmaWxlIHN5c3RlbSAoc2VlCisuSVIgcm9vdCAoMykpCit3aWxsIGNvbnRhaW4gYSBm aWxlIG9yIGRpcmVjdG9yeSB3aXRoIHRoZSBnaXZlbgorLklSIG5hbWUgLgorVGhlIGNvbnRlbnRz IHdpbGwgY29tZSBmcm9tIHRoZSBmaWxlCisuSSBuYW1lCisod2hpY2ggbXVzdCBleGlzdCkgdW5s ZXNzIGFuIGV4cGxpY2l0CisuSSBzb3VyY2UKK2ZpbGUgaXMgZ2l2ZW4uCisuUFAKK1RoZQorLkIg cG9ydAorc2VjdGlvbiB1c3VhbGx5IGNvbnRhaW5zIGluaXRpYWxpc2F0aW9ucyBmb3Iga2VybmVs LXNwZWNpZmljIHZhbHVlcy4KK1RoZSBtb3N0IGNvbW1vbiBvbmUgaXMKKy5JUAorLkVYCisJaW50 IGNwdXNlcnZlciA9IFxmSW5cZlA7CisuRUUKKy5QUAord2hlcmUKKy5JIG4KK2lzIG5vbi16ZXJv IGZvciBjcHUgc2VydmVycyBhbmQgZmlsZSBzZXJ2ZXJzLCBhbmQgemVybyBvdGhlcndpc2UuCisu U0ggRklMRVMKKy5CIC9zeXMvc3JjLzkvcG9ydC9ta2RldmMKKy5icgorLkIgL3N5cy9zcmMvOS9w b3J0L21rZGV2bGlzdAorLmJyCisuQiAvc3lzL3NyYy85L3BvcnQvbWtyb290CisuU0ggU0VFIEFM U08KKy5JUiBtayAoMSkKZGlmZiAtLWdpdCBhL3N5cy9tYW4vOS9kZXZhdHRhY2ggYi9zeXMvbWFu LzkvZGV2YXR0YWNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNjcxYWZl N2JjCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL21hbi85L2RldmF0dGFjaApAQCAtMCwwICsxLDY5 OSBAQAorLlRIIERFVkFUVEFDSCA5CisuU0ggTkFNRQorZGV2YXR0YWNoLCBkZXZjbG9uZSwgZGV2 ZGlyLCBkZXZnZW4sIGRldndhbGssIGRldmRpcnJlYWQsIGRldnN0YXQsIGRldm9wZW4sIGRldmJy ZWFkLCBkZXZid3JpdGUsIGRldmNyZWF0ZSwgZGV2cmVtb3ZlLCBkZXZ3c3RhdCwgZGV2cmVzZXQs IGRldmluaXQsIGRldnNodXRkb3duLCBvcGVubW9kZSBcLSBjb21tb24gZGV2aWNlIGRyaXZlciBz dXBwb3J0CisuU0ggU1lOT1BTSVMKKy5uZgorLnRhIFx3J1xmTEJsb2NrKiAndSArMTBuCisuQgor dHlwZWRlZiBpbnQKKy5CCitEZXZnZW4oQ2hhbiAqYywgY2hhciAqbmFtZSwgRGlydGFiICp0YWIs IGludCBudGFiLCBpbnQgaSwgRGlyICpkcCkKKy5QUAorLkIKK0NoYW4qCWRldmF0dGFjaChpbnQg dGMsIGNoYXIgKnNwZWMpCisuUFAKKy5CCitDaGFuKglkZXZjbG9uZShDaGFuICpjKQorLlBQCisu Qgordm9pZAlkZXZkaXIoQ2hhbiAqYywgUWlkIHFpZCwgY2hhciAqbiwgbG9uZyBsZW5ndGgsCisu QgorCQljaGFyICp1c2VyLCBsb25nIHBlcm0sIERpciAqZHApCisuUFAKKy5CCitpbnQJZGV2Z2Vu KENoYW4gKmMsIGNoYXIgKm5hbWUsIERpcnRhYiAqdGFiLCBpbnQgbnRhYiwKKy5CCisJCWludCBp LCBEaXIgKmRwKQorLlBQCisuQgorV2Fsa3FpZCogZGV2d2FsayhDaGFuICpjLCBDaGFuICpuYywg Y2hhciAqKm5hbWUsIGludCBubmFtZSwKKy5CCisJCURpcnRhYiAqdGFiLCBpbnQgbnRhYiwgRGV2 Z2VuICpnZW4pCisuUFAKKy5CCit2b2lkCWRldnN0YXQoQ2hhbiAqYywgdWNoYXIgKmRiLCBpbnQg biwgRGlydGFiICp0YWIsCisuQgorCQlpbnQgbnRhYiwgRGV2Z2VuICpnZW4pCisuUFAKKy5CCits b25nCWRldmRpcnJlYWQoQ2hhbiAqYywgY2hhciAqZCwgbG9uZyBuLCBEaXJ0YWIgKnRhYiwKKy5C CisJCWludCBudGFiLCBEZXZnZW4gKmdlbikKKy5QUAorLkIKK0NoYW4qCWRldm9wZW4oQ2hhbiAq YywgaW50IG9tb2RlLCBEaXJ0YWIgKnRhYiwKKy5CCisJCWludCBudGFiLCBEZXZnZW4gKmdlbikK Ky5QUAorLkIKK0Jsb2NrKglkZXZicmVhZChDaGFuICpjLCBsb25nIG4sIHVsb25nIG9mZnNldCkK Ky5QUAorLkIKK2xvbmcJZGV2YndyaXRlKENoYW4gKmMsIEJsb2NrICpicCwgdWxvbmcgb2Zmc2V0 KQorLlBQCisuQgordm9pZAlkZXZjcmVhdGUoQ2hhbiosIGNoYXIqLCBpbnQsIHVsb25nKQorLlBQ CisuQgordm9pZAlkZXZyZW1vdmUoQ2hhbiopCisuUFAKKy5CCit2b2lkCWRldndzdGF0KENoYW4q LCB1Y2hhciosIGludCkKKy5QUAorLkIKK3ZvaWQJZGV2cmVzZXQodm9pZCkKKy5QUAorLkIKK3Zv aWQJZGV2aW5pdCh2b2lkKQorLlBQCisuQgordm9pZAlkZXZzaHV0ZG93bih2b2lkKQorLlBQCisu QgoraW50CW9wZW5tb2RlKHVsb25nIG1vZGUpCisuU0ggREVTQ1JJUFRJT04KK0RldmljZSBkcml2 ZXJzIGNhbGwgdGhlc2UgZnVuY3Rpb25zIHRvIGNhcnJ5IG91dCBlc3NlbnRpYWwgdGFza3MgYW5k IGRlZmF1bHQgYWN0aW9ucy4KK1RoZXkgZG8gbW9zdCBvZiB0aGUgbmFtZSBzcGFjZSBtYW5hZ2Vt ZW50Citmb3IgYSBkcml2ZXIgdGhhdCBzZXJ2ZXMgYSBzaW1wbGUgbmFtZSBzcGFjZQorKGVnLCBk YXRhIGFuZCBjb250cm9sIGZpbGVzKSwKK2xlYXZpbmcgdGhlIGRyaXZlciB0byBjb25jZW50cmF0 ZSBvbiB0aGUgZGV2aWNlLXNwZWNpZmljIGRldGFpbHMKK29mIHRoZSBJL08gcmVxdWVzdHMuCitN b3JlIGNvbXBsZXggZHJpdmVycyBhbHNvIG1ha2UgZ29vZCB1c2Ugb2YgdGhlbSBhdCB0aGUgbGVh dmVzCitvZiB0aGVpciBuYW1lIHNwYWNlLCBhbmQgdG8gaGVscCBtYW5hZ2UgdGhlCisuQiBDaGFu CitzdHJ1Y3R1cmVzIGNvcnJlY3RseS4KKy5QUAorQSBkZXZpY2UgaGFzIGFuIGFzc29jaWF0ZWQK Ky5JUiB0eXBlICwKK3JlcHJlc2VudGVkIGFzIGEgVW5pY29kZSBjaGFyYWN0ZXIgKGBydW5lJykg dGhhdCBpZGVudGlmaWVzIHRoZSBkZXZpY2UKK2luc2lkZSBhbmQgb3V0c2lkZSB0aGUga2VybmVs LgorSXQgYXBwZWFycyBhcyB0aGUgdmFsdWUgb2YgdGhlCisuQiB0eXBlCitmaWVsZCBpbiB0aGUK Ky5CIERpcgorcmVzdWx0aW5nIGZyb20gYQorLklSIHN0YXQgKDIpCitvZiBhbnkgZmlsZSBwcm92 aWRlZCBieSB0aGUgZGV2aWNlLgorQSBkZXZpY2UgaXMgbmFtZWQgb3V0c2lkZSB0aGUga2VybmVs IHVzaW5nCithIHBhdGggbmFtZSBzdGFydGluZyB3aXRoCisuQiAjCitmb2xsb3dlZCBieSB0aGUg ZGV2aWNlIGNoYXJhY3RlcgorKGVnLAorLkIgYworaW4KKy5CICNjCitmb3IgdGhlIGNvbnNvbGUp LgorQW55IHN1YnNlcXVlbnQgY2hhcmFjdGVycyBiZWZvcmUKK3RoZSBuZXh0ICcvJyBvciBlbmQg b2Ygc3RyaW5nIGlzIHRoZSBgZGV2aWNlIHNwZWNpZmllcicsCitpbnRlcnByZXRlZCBzb2xlbHkg YnkgdGhlIGRldmljZSBpdHNlbGYuCisuUFAKKy5JIERldmF0dGFjaAorcmV0dXJucyBhIG5ldyBj aGFubmVsIHJlcHJlc2VudGluZwordGhlIHJvb3Qgb2YgdGhlIGZpbGUgdHJlZQorY29ycmVzcG9u ZGluZyB0byBkZXZpY2UgdHlwZQorLklSIHRjICwKK3dpdGggZGV2aWNlIHNwZWNpZmllcgorLklS IHNwZWMgLgorSXQgaXMgbm9ybWFsbHkgY2FsbGVkIGJ5IGEgZHJpdmVyJ3MKKy5JIGF0dGFjaAor ZnVuY3Rpb24gKHNlZQorLklSIGRldiAoOSkpLgorVGhlCisuQiBxaWQKK2ZvciB0aGUgbmV3IGNo YW5uZWwgaXMKKy5CUiAiKFFpZCl7MCwwLFFURElSfSIgLAorc3VpdGFibGUgZm9yIGEgcm9vdCBk aXJlY3RvcnkgZm9yIG1hbnkgZGV2aWNlcywgYnV0CithIGRldmljZSBkcml2ZXIgaXMgZnJlZSB0 byBjaGFuZ2UgaXQgKHByb3ZpZGVkIHRoZQorLkIgUVRESVIKK2JpdCByZW1haW5zIGluIHRoZQor LkJSIFFpZC50eXBlICkuCisuUFAKKy5JIERldmNsb25lCityZXR1cm5zIGEgbmV3IGNoYW5uZWwg dGhhdCBpcyBhIGNvcHkgb2YKKy5JUiBjIC4KK0FuIGF0dGVtcHQgdG8gY2xvbmUgYW4gb3BlbiBj aGFubmVsIGNhdXNlcyBhCisuSVIgcGFuaWMgKDkpLgorLlBQCitUaGUKKy5MIERpcgorc3RydWN0 dXJlIGlzIHNob3duIGJlbG93OgorLklQCisuRVgKK3R5cGVkZWYKK3N0cnVjdCBEaXIKK3sKKyAg ICAvKiBzeXN0ZW0tbW9kaWZpZWQgZGF0YSAqLworICAgIHVzaG9ydCAgdHlwZTsgICAvKiBzZXJ2 ZXIgdHlwZSAqLworICAgIHVpbnQgICAgZGV2OyAgICAvKiBzZXJ2ZXIgc3VidHlwZSAqLworICAg IC8qIGZpbGUgZGF0YSAqLworICAgIFFpZCAgICAgcWlkOyAgICAvKiB1bmlxdWUgaWQgZnJvbSBz ZXJ2ZXIgKi8KKyAgICB1bG9uZyAgIG1vZGU7ICAgLyogcGVybWlzc2lvbnMgKi8KKyAgICB1bG9u ZyAgIGF0aW1lOyAgLyogbGFzdCByZWFkIHRpbWUgKi8KKyAgICB1bG9uZyAgIG10aW1lOyAgLyog bGFzdCB3cml0ZSB0aW1lICovCisgICAgdmxvbmcgICBsZW5ndGg7IC8qIGZpbGUgbGVuZ3RoICov CisgICAgY2hhciAgICAqbmFtZTsgIC8qIGxhc3QgZWxlbWVudCBvZiBwYXRoICovCisgICAgY2hh ciAgICAqdWlkOyAgIC8qIG93bmVyIG5hbWUgKi8KKyAgICBjaGFyICAgICpnaWQ7ICAgLyogZ3Jv dXAgbmFtZSAqLworICAgIGNoYXIgICAgKm11aWQ7ICAvKiBsYXN0IG1vZGlmaWVyIG5hbWUgKi8K K30gRGlyOworLkVFCisuUFAKK1RoaXMKKy5CIERpcgorc3RydWN0dXJlIGNvcnJlc3BvbmRzIGRp cmVjdGx5IHRvIHRoZSBMaW1ibworLkIgRGlyCithZHQgZGVzY3JpYmVkIGluCisuSVIgc3RhdCAo MikuCisuUFAKK0dpdmVuIGEgY2hhbm5lbCBhbmQgYXNzb3J0ZWQgb3RoZXIgaW5mb3JtYXRpb24s IAorLkkgZGV2ZGlyCitpbml0aWFsaXNlcyBhIERpciBzdHJ1Y3R1cmUgYXQKKy5JUiBkcCAuCisu SSBEZXZkaXIKK3N1cHBsaWVzIHRoZSBmb2xsb3dpbmcgZGF0YSBpdHNlbGY6CisuUlMKKy5URiBs ZW5ndGgKKy5UUAorLkIgYXRpbWUKK2xhc3QgYWNjZXNzIHRpbWUgKHNldCB0byBjdXJyZW50IHRp bWUpCisuVFAKKy5CIG10aW1lCitsYXN0IG1vZGlmaWNhdGlvbiB0aW1lIChzZXQgdG8ga2VybmVs IGNyZWF0aW9uIGRhdGUpCisuVFAKKy5CIGdpZAorZ3JvdXAgbmFtZSAoc2V0IHRvCisuSVIgZXZl ICg5KSkKKy5UUAorLkIgbGVuZ3RoCitsZW5ndGggaW4gYnl0ZXMgKHNldCB0byB6ZXJvLCB3aGlj aAoraXMgbm9ybWFsIGZvciBtb3N0IGRldmljZXMpCisuUkUKKy5QRAorLlBQCitOb3RlIHRoYXQK Ky5JIGRldmRpcgorYXNzaWducyB0aGUgdmFsdWVzIG9mCisuSSBuYW1lCithbmQKKy5JIHVzZXIK K2RpcmVjdGx5IHRvIGZpZWxkcyBvZgorLkJJICogZHAsCithbmQgY29uc2VxdWVudGx5IHRob3Nl IHZhbHVlcyBtdXN0IHJlbWFpbiB2YWxpZCB1bnRpbCB0aGUgbGFzdCB1c2Ugb2YKKy5CSSAqIGRw LgorKFNvbWV0aW1lcyB0aGF0IHJlcXVpcmVzIHRoZSB1c2Ugb2YgYW4gYXV4aWxpYXJ5IGJ1ZmZl ciwgc3VjaCBhcworLkJSIHVwLT5nZW5idWYgLikKK0lmIGNoYW5uZWwKKy5JIGMKK2NvcnJlc3Bv bmRzIHRvIGEgZmlsZSBkZXNjcmlwdG9yIG9uIHdoaWNoIFN0eXggaXMgc2VydmVkLAorLkkgZGV2 ZGlyCitzZXRzIGJvdGggdGhlIGZsYWcgYml0CisuQiBRVE1PVU5UCitpbgorLklCIGRwIC0+cWlk LnR5cGUKK2FuZCB0aGUgZmxhZyBiaXQKKy5CIERNTU9VTlQKK2luCisuSUIgZHAgLT5tb2RlCiso c2VlCisuSSBleHBvcnQKK2luCisuSVIgZGlhbCAoMikKK2FuZAorLkkgbW91bnQKK2luCisuSVIg YmluZCAoMikpLgorLlBQCitBIHNpbXBsZSBuYW1lIHNwYWNlIGNhbiBiZSByZXByZXNlbnRlZCBp biBhIGRyaXZlciBieSBhbiBhcnJheSBvZgorLkIgRGlydGFiCitzdHJ1Y3R1cmVzLgorVGhlIGFy cmF5IGlzIHR5cGljYWxseSBzdGF0aWMgd2hlbiB0aGUgbmFtZXMgYW5kIHBlcm1pc3Npb25zCith cmUgc3RhdGljLCBidXQgY2FuIGJlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhbmQgaW5pdGlhbGlz ZWQgaWYgcmVxdWlyZWQuCitUaGUgc3RydWN0dXJlIG9mCisuQiBEaXJ0YWIKK2lzIHNob3duIGJl bG93OgorLklQCisuRVgKK3R5cGVkZWYKK3N0cnVjdCBEaXJ0YWIKK3sKKyAgICAgICAgY2hhciAg ICBuYW1lW0tOQU1FTEVOXTsKKyAgICAgICAgUWlkICAgICBxaWQ7CisgICAgICAgIHZsb25nICAg bGVuZ3RoOworICAgICAgICBsb25nICAgIHBlcm07Cit9IERpcnRhYjsKKy5FRQorLlBQCitUaGUg bmFtZQorLlJCIGAgLiAnCisuSSBtdXN0CithcHBlYXIgYXMgdGhlIGZpcnN0IGVudHJ5IGluIGEK Ky5CIERpcnRhYgoraWYgdGhlIGRlZmF1bHQKKy5JIGRldmdlbgorZnVuY3Rpb24gaXMgdXNlZC4K K09uIHRoZSBvdGhlciBoYW5kLCB0aGUgbmFtZQorLlJCIGAgLi4gJworbXVzdCBuZXZlciBhcHBl YXIgaW4gYQorLkIgRGlydGFiCit0YWJsZS4KK0RyaXZlcnMgdGhhdCBzdXBwb3J0IGEgZGlyZWN0 b3J5IGhpZXJhcmNoeSBtdXN0IHdhbGsgdXAgdGhlIGhpZXJhcmNoeSB0b3dhcmRzCit0aGUgcm9v dCB3aGVuIHRoZWlyCisuSSB3YWxrCitmdW5jdGlvbiByZWNlaXZlcworLlJCIGAgLi4gJworYXMg YSBmaWxlIG5hbWUgY29tcG9uZW50LgorVGhlIG5hbWUKKy5SQiBgIC4gJworaXMgbmV2ZXIgc2Vl biBieSBhIGRyaXZlci4KKy5QUAorVGhlCisuSVIgZGV2ZGlycmVhZCAsCisuSVIgZGV2b3BlbiAs CisuSVIgZGV2c3RhdCAsCithbmQKKy5JUiBkZXZ3YWxrCitmdW5jdGlvbnMgYWxsIHRha2UgYQor LkkgZ2VuCitmdW5jdGlvbiBhcmd1bWVudCwKK29mIHR5cGUKKy5CUiBEZXZnZW4gLAord2hpY2gg dGhleSBpbnZva2UgdG8gcmV0cmlldmUgdGhlIGl0ZW1zIGluCithCisuQiBDaGFuCit0aGF0IHJl cHJlc2VudHMgYSBkaXJlY3RvcnkuCisuSSBHZW4KK3Rha2VzIGEgY2hhbm5lbAorLkkgYworKGEg ZGlyZWN0b3J5KSwKK2EgZmlsZQorLkkgbmFtZQorKHdoaWNoIGlzIG5pbCBleGNlcHQgZHVyaW5n CisuSVIgZGV2d2FsayApLAorYW4gYXJyYXkgb2YKKy5CIERpcnRhYgorc3RydWN0dXJlcworLkkg dGFiCitvZiBsZW5ndGgKKy5JUiBudGFiICwKK2FuZCBhIHRhYmxlIGluZGV4CisuSVIgaSAuCitU aGUgZnVuY3Rpb25zIGNhbGxpbmcKKy5JIGdlbgorZXhwZWN0IGl0IHRvIHBsYWNlIHRoZQorLklS IGkgJ3RoCitlbnRyeSBpbiB0aGUgZGlyZWN0b3J5IGludG8KKy5JUiBcZjUqXGZQZHAgLgorSXQg c2hvdWxkIHJldHVybiAxCitpZiB0aGUgY2FsbCB3YXMgc3VjY2Vzc2Z1bCwKKy0xIGlmCisuSSBp CitpcyBiZXlvbmQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IGRpcmVjdG9yeSBlbnRyeSwKK29yIDAg aWYgdGhlcmUgaXMgbm8gZW50cnkgYXQKKy5JUiBpICwKK2J1dCB0aGVyZSBhcmUgZW50cmllcyBi ZXlvbmQgaXQuCitXaGVuCisuSSBpCitoYXMgdGhlIHNwZWNpYWwgdmFsdWUKKy5CIERFVkRPVERP VAordGhlbgorLkkgZ2VuCitzaG91bGQgc2V0CisuSVIgXGY1KlxmUGRwCit0byByZWZsZWN0IHRo ZSBwYXJlbnQgb2YKKy5JUiBjIDsKK2lmCisuSSBjCitpcyBhIG9uZS1sZXZlbCBkZXZpY2UgZGly ZWN0b3J5LCB0aGVuIGAuLicgaXMgZXF1aXZhbGVudCB0byBgLicuCitDdXN0b20gaW1wbGVtZW50 YXRpb25zIG9mCisuSSBnZW4KK29mdGVuIGlnbm9yZQorLklSIGRldnRhYiAsCithbmQgaW5zdGVh ZCByZXR1cm4gdGhlaXIgb3duIGR5bmFtaWNhbGx5IGdlbmVyYXRlZAorc2V0IG9mIGRpcmVjdG9y eSBlbnRyaWVzIGZyb20gc29tZSBvdGhlciBzb3VyY2UuCitFeGNlcHRpb25hbGx5LCBkdXJpbmcK Ky5JIGRldndhbGsKK2Egbm9uLW5pbAorLkkgbmFtZQoraXMgcHJvdmlkZWQ6IGl0IGlzIHRoZSBu YW1lIGJlaW5nIGxvb2tlZCB1cCwgYW5kIGEgZGV2aWNlLXNwZWNpZmljCisuSSBnZW4KK2NhbiBz aG9ydC1jaXJjdWl0IHRoZSBzZWFyY2ggYnkgcmV0dXJuaW5nIC0xIGlmIHRoZSBuYW1lIGRvZXMg bm90IGV4aXN0LAorb3IgZmlsbGluZyBpbgorLklSIFxmNSpcZlBkcAorYW5kIHJldHVybmluZyAx IGlmIGl0IGRvZXMgZXhpc3QuCisuUFAKK1RoZSBmdW5jdGlvbgorLkkgZGV2Z2VuCitpcyBjb21w YXRpYmxlIHdpdGgKKy5CUiBEZXZnZW4gOworaXQgcmV0dXJucyB0aGUKKy5JUiBpICd0aAorZW50 cnkgaW4KKy5JUiBkZXZ0YWIgLAorYW5kIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgYSBzaW1wbGUs IHN0YXRpYworc2V0IG9mIGRpcmVjdG9yeSBlbnRyaWVzLgorLlBQCisuSSBEZXZ3YWxrCit3YWxr cyBjaGFubmVsCisuSSBjCit0byB0aGUgZmlsZSBpbiB0aGUgZGV2aWNlIG5hbWVkIGJ5IHRoZSBw YXRoIGVuY29kZWQgaW4KKy5JUiBuYW1lICwKK3doaWNoIGlzIGFuIGFycmF5IG9mIHN0cmluZ3Mg b2YgbGVuZ3RoCisuSVIgbm5hbWUgLgorSXQgcHJvdmlkZXMgdGhlIGludGVyZmFjZSB0bworLklS IHdhbGsgKDUpCit3aXRoaW4gdGhlIGtlcm5lbCwgYW5kIHRoYXQgc3BlY2lmaWNhdGlvbiBtdXN0 IGJlIHdlbGwgdW5kZXJzdG9vZCB0byBhcHByZWNpYXRlCithbGwgdGhlIG51YW5jZXMgb2YgaXRz IGludGVyZmFjZS4KK0ZvcnR1bmF0ZWx5LCBpbiBuZWFybHkgYWxsIGRldmljZSBkcml2ZXJzLCBh IGRldmljZSdzCisuSSB3YWxrCitmdW5jdGlvbiB0eXBpY2FsbHkgcGFzc2VzIGl0cyBwYXJhbWV0 ZXJzIG9uIHRvCisuSSBkZXZ3YWxrCisoYWRkaW5nIHRoZSBkZXZpY2UncyBvd24KKy5CIERpcnRh YgorYXJyYXkgYXMgdGhlIHRoZSB2YWx1ZSBvZgorLklSIHRhYiApLAorYW5kIHNpbXBseSByZXR1 cm5pbmcgdGhlIHJlc3VsdCBvZgorLklSIGRldndhbGsgLgorLlBQCisuSSBEZXZ3YWxrCit3YWxr cworLkkgYwordXNpbmcgdGhlIGdpdmVuIHNldCBvZiBuYW1lcywgYW5kIGlmIHRoZSB3YWxrIGlz IHN1Y2Nlc3NmdWwsIHRoZQorY2hhbm5lbAorLkkgbmMKK3dpbGwgcmVmZXIgdG8gdGhlIHJlc3Vs dCBvZiB0aGUgd2FsaworKHNwZWNpZmljYWxseSwKKy5JQiBuYyAtPnFpZAoraXMgc2V0IHRvIHRo ZSBRaWQgZm9yIHRoZSBmaWxlKS4KK0lmCisuSSBuYworaXMgbmlsLAorLkkgZGV2d2Fsaword2ls bCBhbGxvY2F0ZSBhIG5ldyBjaGFubmVsIGl0c2VsZiwgdGhhdCBpcyBpbml0aWFsbHkgYSBjbG9u ZSBvZgorLklSIGMgLgorQXMgaW4KKy5JUiB3YWxrICg1KSwKKy5JIGRldndhbGsKK2NhbiByZXR1 cm4gYSBwYXJ0aWFsIHJlc3VsdCwKK3JlcHJlc2VudGVkIGJ5CithIGR5bmFtaWNhbGx5IGFsbG9j YXRlZCB2YWx1ZSBvZiB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZToKKy5JUAorLkVYCitzdHJ1Y3Qg V2Fsa3FpZAoreworICAgIENoYW4gICpjbG9uZTsKKyAgICBpbnQgICBucWlkOworICAgIFFpZCAg IHFpZFsxXTsJLyogYWN0dWFsbHkgbm5hbWUgaW4gbGVuZ3RoICovCit9OworLkVFCisuUFAKK1Ro ZSB2YWx1ZSBtdXN0IGJlIGZyZWVkIGFmdGVyIHVzZS4KK0ZvciBlYWNoIGVsZW1lbnQgb2YKKy5J IG5hbWUgLAorLkkgZGV2d2FsaworcGFzc2VzCit0aGUKKy5JIHRhYgorcGFyYW1ldGVyIHRvCisu SSBnZW4KK3RvZ2V0aGVyIHdpdGggdGhlIGN1cnJlbnRseS1zb3VnaHQgZWxlbWVudCBvZgorLklS IG5hbWUgLgorSWYgdGhlIGZpcnN0IGVsZW1lbnQgaXMgbm90IGZvdW5kLAorLkkgZGV2d2Fsawor cmV0dXJucyBuaWw7IG90aGVyd2lzZSwgaXQgcmV0dXJucyBhCisuQiBXYWxrcWlkCit2YWx1ZSBp biB3aGljaAorLkIgbnFpZAorZWxlbWVudHMgb2YgdGhlIGFycmF5CisuQiBxaWQKK2FyZSBzZXQg dG8gdGhlIHFpZHMgKHNlZQorLklSIGludHJvICg1KSkKK29mIGVhY2ggdmFsaWQgZWxlbWVudCBv ZgorLklSIG5hbWUgLgorSWYgYWxsCisuSSBubmFtZQorZWxlbWVudHMgd2VyZSBzdWNjZXNzZnVs bHkgdHJhdmVyc2VkLCB0aGVuCisuQiBucWlkCit3aWxsIGhhdmUgdGhlIHZhbHVlCisuSVIgbm5h bWUgLAorYW5kCisuQiBjbG9uZQord2lsbCByZWZlciB0byB0aGUgcmVzdWx0IG9mIHRoZSB3YWxr LAord2hpY2ggaXMgZWl0aGVyCisuSSBuYworaWYgZ2l2ZW4sIG9yCit0aGUgbmV3IGNoYW5uZWwg YWxsb2NhdGVkIGJ5CisuSVIgZGV2d2FsayAuCitPdGhlcndpc2UsIGF0IGxlYXN0IG9uZSBlbGVt ZW50IHN1Y2NlZWRlZCBhbmQKKy5CIG5xaWQKK2lzIGxlc3MgdGhhbgorLkkgbm5hbWUKK2FuZAor LkIgY2xvbmUKK2lzIG5pbC4KK09uIGFuIGVycm9yIG9yIGluY29tcGxldGUgd2FsaywKK3RoZSBl cnJvciBzdHJpbmcgaXMgc2V0IHRvIHRoZSBlcnJvciB0aGF0IHN0b3BwZWQgdGhlIHdhbGsgKGVn LAorLkIgRW5vbmV4aXN0CitvcgorLkJSIEVub3RkaXIgKS4KKy5QUAorLkkgRGV2c3RhdAorZmls bHMgdGhlIGFycmF5IG9mIGJ5dGVzCisuSSBkYgord2l0aCBkYXRhIGluIHRoZSBmb3JtYXQgcHJv ZHVjZWQgYnkKKy5JUiBzdGF0ICg1KQordGhhdCBkZXNjcmliZXMgdGhlIGZpbGUKK3JlZmVyZW5j ZWQgYnkgY2hhbm5lbAorLklSIGMgLAord2hpY2ggbXVzdCBoYXZlIGEgY29ycmVzcG9uZGluZyBl bnRyeQorcmV0dXJuZWQgYnkKKy5JUiBnZW4KKyhpZSwgYW4gZW50cnkgd2l0aCBtYXRjaGluZwor LkJSIFFpZC5wYXRoICkuCitJZgorLkkgYworaXMgYSBjb21tdW5pY2F0aW9ucyBjaGFubmVsIGNv bm5lY3RpbmcgYSBTdHl4IHNlcnZlciB0byBhIGN1cnJlbnQgbW91bnQgcG9pbnQsCit0aGUKKy5C IERNTU9VTlQKK2JpdCBpcyBzZXQgaW4gdGhlIHJlc3VsdGluZworLkJSIERpci5tb2RlICwKK2Fu ZAorLkIgUVRNT1VOVAoraXMgc2V0IGluCisuQlIgRGlyLnFpZC50eXBlIC4KK0FzIGluCisuSVIg c3RhdCAoNSksCit0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIHdyaXR0ZW4gdG8KKy5JIGRiCit2YXJp ZXM7IGlmIG1vcmUgdGhhbgorLkkgbgorYnl0ZXMgYXJlIG5lZWRlZCwKKy5JIGRldnN0YXQKK3Jh aXNlcyB0aGUKKy5JUiBlcnJvciAoOSkKKy5CUiBFYmFkYXJnIC4KK090aGVyd2lzZSwgaXQgcmV0 dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluCisuSSBkYgorYWN0dWFsbHkgdXNlZC4KKy5QUAor SWYgYW4gZW50cnkgd2l0aCB0aGUgZGVzaXJlZCBxaWQgaXMgbm90IGZvdW5kIGluIHRoZSB0YWJs ZSwgYnV0CisuSSBjCitjb3JyZXNwb25kcyB0byBhIGRpcmVjdG9yeQorKGllLAorLkIgUVRESVIK K2lzIHNldCBpbgorLklSIGNcZjUtPnFpZC50eXBlXGZQICksCitpdCBpcyB0YWtlbiB0byBiZSBh CisuSSBzdGF0CitvZiBhIG5vdGlvbmFsIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmaWxlcyBs aXN0ZWQgaW4KKy5JUiB0YWIgLgorLkkgRGlyc3RhdAordGhlbiBidWlsZHMgdGhlIGNvcnJlc3Bv bmRpbmcgRGlyIHN0cnVjdHVyZToKK2l0cworLkIgRGlyLm5hbWUKK2lzIHRha2VuIGZyb20KKy5J UiBjXGY1LT5wYXRoLT5lbGVtXGZQIDsKK3RoZSBsZW5ndGggaXMKKy5CSSBESVJMRU4qbmVsZW0o dGFiKSA7CithbmQKKy5CIERpci5wZXJtCitpcyAwNTU1IChyZWFkLWV4ZWN1dGUgZm9yIGFsbCku CisuUFAKKy5JIERldmRpcnJlYWQKK2NhbGxzCisuSSBnZW4KK3RvIG9idGFpbiBzdWNjZXNzaXZl CisuQiBEaXIKK3N0cnVjdHVyZXMgcmVwcmVzZW50aW5nIGVudHJpZXMgaW4gdGhlIG9wZW4gZGly ZWN0b3J5CisuSVIgYyAuCitUaGVzZSBhcmUgY29udmVydGVkIHRvIHN0YW5kYXJkIGZvcm1hdCAo c2VlCisuSSBjb252RDJNCitpbgorLklSIGZjYWxsICgyKSkKK2FuZCBwbGFjZWQgaW4gdGhlIGJ1 ZmZlcgorLklSIGIgLgorSXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSByZXN1 bHQuCitBdCBtb3N0CisuSSBuCitieXRlcyB3aWxsIGJlIHJldHVybmVkLCBpbiBtdWx0aXBsZXMg b2YKKy5CUiBESVJMRU4gLgorQmVjYXVzZSB0aGUga2VybmVsIG1haW50YWlucyB0aGUgY3VycmVu dCBvZmZzZXQgaW4KKy5JUiBjICwKK3N1Y2Nlc3NpdmUgY2FsbHMgdG8KKy5JIGRldmRpcnJlYWQK K3JldHVybiBzdWNjZXNzaXZlIGRpcmVjdG9yeSBjb21wb25lbnRzLgorLlBQCisuSSBEZXZvcGVu CitpcyBjYWxsZWQgdG8gY2hlY2sgYW5kIGNvbXBsZXRlIGEgcmVxdWVzdCB0byBvcGVuIGNoYW5u ZWwKKy5JIGMKK2ZvciBJL08gYWNjb3JkaW5nIHRvCisuSVIgb21vZGUKKyh0aGUgb3BlbiBtb2Rl IG9mCisuSVIgb3BlbiAoMikpLgorSXQgY2FsbHMKKy5JIGdlbgordG8gb2J0YWluIHN1Y2Nlc3Np dmUgZGlyZWN0b3J5IGVudHJpZXMKK3doaWNoIGl0IHNlYXJjaGVzCitmb3IgYSBRaWQgbWF0Y2hp bmcgdGhhdCBvZgorLklSIGMgLAorYW5kIGVuc3VyZXMgdGhhdCB0aGUgY3VycmVudCB1c2VyIGhh cyBwZXJtaXNzaW9uIHRvIG9wZW4KKy5JIGMKK3dpdGggdGhlIGdpdmVuIG1vZGUsCisuSVIgb21v ZGUgLAorYW5kIHRoYXQgdGhlIG1vZGUgaXRzZWxmIGlzIHZhbGlkCisoc2VlCisuSSBvcGVubW9k ZQorYmVsb3cpLgorUGVybWlzc2lvbiBpcyBjaGVja2VkIGFnYWluc3QgdGhlIHBlcm1pc3Npb24g aW4gdGhlCittYXRjaGluZyBlbnRyeS4KK0lmIG5vIG1hdGNoaW5nIFFpZCBpcyBmb3VuZCwgaXQg aXMgYXNzdW1lZAordGhhdCB0aGUgbm90aW9uYWwgcGFyZW50IGRpcmVjdG9yeSBvZiB0aGUgZmls ZXMgcmVwcmVzZW50ZWQgaW4KKy5JIHRhYgoraXMgdG8gYmUgb3BlbmVkLgorU3VjaCBhIGRpcmVj dG9yeSBpcyBkZWVtZWQgdG8gaGF2ZSBtb2RlCiswNTU1LCBhbGxvd2luZyBhY2Nlc3MgYnkgYW55 IHVzZXIuCitBIGRpcmVjdG9yeSBjYW4gb25seSBiZSBvcGVuZWQgZm9yIHJlYWRpbmcKKy5SQiAo IE9SRUFEICkuCisuSSBEZXZvcGVuCityZXR1cm5zIHRoZSBjaGFubmVsCisuSSBjCitvbiBzdWNj ZXNzLgorTGFzdCwgaXQgc2V0cyB0aGUgYml0CisuQiBDT1BFTgoraW4KKy5CIENoYW4uZmxhZwor dG8gbWFyaworLkkgYworYXMgb3Blbi4KK1RoaXMgY29udmVudGlvbiBjYW4gYWx3YXlzIGJlIHJl bGllZCB1cG9uIGJ5IHRoZSBkcml2ZXIncworLkkgY2xvc2UKK2Z1bmN0aW9uIHRvIHRlbGwgaWYg YW4gb3BlbiBzdWNjZWVkZWQuCitPbiB0aGUgb3RoZXJoYW5kLAoraWYgdGhlIG9wZW4gcmVxdWVz dCB3YXMgdW5zdWNjZXNzZnVsLAorLkkgZGV2b3BlbgorcmFpc2VzIGFuIGFwcHJvcHJpYXRlCisu SVIgZXJyb3IgKDkpCithbmQgZG9lcyBub3QgcmV0dXJuLgorLlBQCisuSSBEZXZicmVhZAorcmV0 dXJucyBhCisuQiBCbG9jaworKHNlZQorLklSIGFsbG9jYiAoOSkpCitjb250YWluaW5nIHVwIHRv CisuSSBuCitieXRlcyByZWFkLAordXNpbmcKKy5CSSAiZGV2dGFiWyIgYyAiLT50eXBlXS0+cmVh ZCIgLAorZnJvbQorLkkgYworc3RhcnRpbmcgYXQgdGhlIGdpdmVuCisuSVIgb2Zmc2V0IC4KK1Ro ZSByZWFkIHBvaW50ZXIgaW4gdGhlIHJldHVybmVkCisuQiBCbG9jaworcG9pbnRzIHRvIHRoZSBz dGFydCBvZiB0aGUgZGF0YTsKK3RoZSB3cml0ZSBwb2ludGVyIHBvaW50cyB0byB0aGUgbmV4dCBh dmFpbGFibGUgYnl0ZS4KKy5QUAorLkkgRGV2YndyaXRlCit3cml0ZXMgdGhlIGRhdGEgaW4KKy5C IEJsb2NrCisuSSBicAordG8gdGhlIGZpbGUKKy5JIGMKK2F0IHRoZSBnaXZlbgorLklSIG9mZnNl dCAsCit1c2luZyB0aGUgd3JpdGUgZnVuY3Rpb24KKy5CSSAiZGV2dGFiWyIgYyAiLT50eXBlXS0+ d3JpdGUiIC4KK0l0IHRoZW4gZnJlZXMgdGhlIGJsb2NrIGxpc3QKKy5JIGJwCitiZWZvcmUKK3Jl dHVybmluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCisuUFAKK01vc3QgYnVpbHQtaW4g ZGV2aWNlcyBkbyBub3QgYWxsb3cKKy5JUiBjcmVhdGUgLAorLklSIHJlbW92ZQorb3IKKy5JIHdz dGF0CitvbiB0aGVpciBmaWxlcy4KKy5JUiBEZXZjcmVhdGUgLAorLkkgZGV2cmVtb3ZlCithbmQK Ky5JIGRldndzdGF0CithcmUgc3R1YnMgdGhhdCByYWlzZSBhbgorLklSIGVycm9yICg5KSwKKy5C UiBFcGVybSAuCitUaGV5IGNhbiBiZSBuYW1lZCBkaXJlY3RseSBpbiBhIGRldmljZSBkcml2ZXIn cyBkZXZpY2UKK3N3aXRjaCAodGhlCisuQiBEZXYKK3N0cnVjdHVyZSBpbgorLkJSIC9zeXMvc3Jj LzkvcG9ydC9wb3J0ZGF0LmggOgorc2VlCisuSVIgZGV2ICg5KSkuCisuUFAKKy5JUiBEZXZyZXNl dCAsCisuSSBkZXZpbml0CithbmQKKy5JIGRldnNodXRkb3duCithcmUgYWxzbyBzdHViczsKK3Ro ZXkgZG8gbm90aGluZy4KK0EgZGV2aWNlIGRyaXZlciBwdXRzIHRoZW0gaW4gaXRzCisuQiBEZXYK K3N0cnVjdHVyZSB3aGVuIGl0IG5lZWQgdGFrZSBubyBhY3Rpb24gb24gZGV2aWNlIHJlc2V0LCBp bml0aWFsaXNhdGlvbiwgb3Igc2h1dCBkb3duLgorLlBQCisuSSBPcGVubW9kZQoraXMgdXNlZCBi eSBhIGRyaXZlciB0aGF0IGRvZXMgbm90IHVzZQorLklSIGRldm9wZW4gLAordG8gY2hlY2sgdGhl IG9wZW4gbW9kZSBpdCByZWNlaXZlcyBpbiBpdHMgb3Blbgorcm91dGluZS4KKy5JIE9wZW5tb2Rl CityZXR1cm5zIG1vZGUKKy5JUiBvICwKK3RoZSBtb2RlIHBhcmFtZXRlciB0bworLklSIG9wZW4g KDIpCitvcgorLklSIHN5cy1jcmVhdGUgLAorc2hvcm4gb2YKKy5CUiBPVFJVTkMKK2FuZCBzaW1p bGFyIG9wdGlvbnMsCithbmQgcmVkdWNlZCB0byBvbmUgb2YKKy5CUiBPUkVBRCAsCisuQlIgT1dS SVRFCitvcgorLkJSIE9SRFdSIC4KK0luIHBhcnRpY3VsYXIsCisuQiBPRVhFQworYmVjb21lcwor LkIgT1JFQUQKK3dpdGhpbiB0aGUga2VybmVsLgorLkkgT3Blbm1vZGUKK3JhaXNlcyBhbgorLklS IGVycm9yICg5KQorLkIgRWJhZGFyZworaW5zdGVhZCBvZiByZXR1cm5pbmcsIGlmCisuSSBvCitp cyBhbiBpbnZhbGlkIG1vZGUgKGVnLCByZXNlcnZlZCBiaXRzIHNldCkuCisuU0ggU09VUkNFCisu QiAvc3lzL3NyYy85L3BvcnQvZGV2LmMKKy5TSCBTRUUgQUxTTworLklSIGFsbG9jYiAoOSksCisu SVIgZXZlICg5KSwKKy5JUiBxaW8gKDkpCmRpZmYgLS1naXQgYS9zeXMvbWFuLzkvZG1haW5pdCBi L3N5cy9tYW4vOS9kbWFpbml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u NTlhZjE0NTIxCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL21hbi85L2RtYWluaXQKQEAgLTAsMCAr MSw4NiBAQAorLlRIIERNQUlOSVQgOQorLlNIIE5BTUUKK2RtYWluaXQsIGRtYXNldHVwLCBkbWFk b25lLCBkbWFlbmQsIGRtYWNvdW50IFwtIHBsYXRmb3JtLXNwZWNpZmljIERNQSBzdXBwb3J0Cisu U0ggU1lOT1BTSVMKKy50YSBcdydcZkx1c2hvcnQgJ3UKKy5CCit2b2lkCWRtYWluaXQoaW50IGNo YW4pCisuUFAKKy5CCitsb25nCWRtYXNldHVwKGludCBjaGFuLCB2b2lkICp2YSwgbG9uZyBsZW4s IGludCBpc3JlYWQpCisuUFAKKy5CCitpbnQJZG1hZG9uZShpbnQgY2hhbikKKy5QUAorLkIKK3Zv aWQJZG1hZW5kKGludCBjaGFuKQorLlBQCisuQgoraW50CWRtYWNvdW50KGludCBjaGFuKQorLlBQ CisuU0ggREVTQ1JJUFRJT04KK1RoZXNlIGZ1bmN0aW9ucyBtYW5hZ2UgRE1BIG9uIGEgYnVzIHRo YXQgdXNlcyBJU0Etc3R5bGUgRE1BIGNvbnRyb2xsZXJzLgorVGhleSB3ZXJlIG9yaWdpbmFsbHkg ZGV2aXNlZCBmb3IgdGhlIHg4NiBwbGF0Zm9ybSwgYnV0IHRoZSBzYW1lIGludGVyZmFjZSwgYW5k IHNpbWlsYXIgY29kZSwKK2lzIHVzZWQgYnkgb3RoZXIgcGxhdGZvcm1zIHRoYXQgdXNlIHNpbWls YXIgY29udHJvbGxlcnMuCitUaGV5IGNvbXBlbnNhdGUgYXMgYmVzdCB0aGV5IGNhbiBmb3IgdGhl IGxpbWl0YXRpb25zIG9mIG9sZGVyIERNQSBpbXBsZW1lbnRhdGlvbnMKKyhlZywgYWxpZ25tZW50 LCBib3VuZGFyeSBhbmQgbGVuZ3RoIHJlc3RyaWN0aW9ucykuCitUaGVyZSBhcmUgOCBETUEgY2hh bm5lbHM6CiswIHRvIDMgYXJlIGJ5dGUtb3JpZW50ZWQ7IDQgdG8gNyBhcmUgd29yZC1vcmllbnRl ZCAoMTYtYml0IHdvcmRzKS4KKy5QUAorLkkgRG1haW5pdAorbXVzdCBiZSBjYWxsZWQgZWFybHkg aW4gYSBkcml2ZXIncyBpbml0aWFsaXNhdGlvbiB0byBwcmVwYXJlCisuSSBjaGFuCitmb3IgdXNl LgorQW1vbmdzdCBvdGhlciB0aGluZ3MsIGl0IGFsbG9jYXRlcyBhIHBhZ2Utc2l6ZWQgYnVmZmVy IHRvIGhlbHAgY2lyY3VtdmVudCBoYXJkd2FyZQorcmVzdHJpY3Rpb25zIG9uIERNQSBhZGRyZXNz aW5nLgorLlBQCisuSSBEbWFzZXR1cAorcHJlcGFyZXMgRE1BIGNoYW5uZWwKKy5JUiBjaGFuCitm b3IgYSB0cmFuc2ZlciBiZXR3ZWVuIGEgZGV2aWNlIGNvbmZpZ3VyZWQgdG8gdXNlIGl0CithbmQg dGhlIHZpcnR1YWwgYWRkcmVzcworLklSIHZhIC4KKyhUaGUgdHJhbnNmZXIgaXMgc3RhcnRlZCBi eSBpc3N1aW5nIGEgY29tbWFuZCB0byB0aGUgZGV2aWNlLikKK0lmCisuSSB2YQorbGllcyBvdXRz aWRlIHRoZSBrZXJuZWwgYWRkcmVzcyBzcGFjZSwKK3RoZSB0cmFuc2ZlciBjcm9zc2VzIGEgNjRr IGJvdW5kYXJ5LAorb3IgZXhjZWVkcyB0aGUgMTYgTWJ5dGUgbGltaXQgaW1wb3NlZCBieSBzb21l IERNQSBjb250cm9sbGVycywKK3RoZSB0cmFuc2ZlciB3aWxsIGJlIHNwbGl0IGludG8gcGFnZS1z aXplZCB0cmFuc2ZlcnMgdXNpbmcgdGhlIGJ1ZmZlciBwcmV2aW91c2x5IGFsbG9jYXRlZCBieQor LklSIGRtYWluaXQgLgorSWYKKy5JIGlzcmVhZAoraXMgdHJ1ZSAobm9uLXplcm8pLCBkYXRhIGlz IHRvIGJlIHRyYW5zZmVycmVkIGZyb20KKy5JIGNoYW4KK3RvCisuSVIgdmEgOworaWYgZmFsc2Us IGRhdGEgaXMgdHJhbnNmZXJyZWQgZnJvbQorLkkgdmEKK3RvCisuSVIgY2hhbiAuCitJbiBhbGwg Y2FzZXMsCisuSSBkbWFzZXR1cAorcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHRy YW5zZmVycmVkLgorVGhhdCB2YWx1ZSAocmF0aGVyIHRoYW4KKy5JUiBsZW4gKQorbXVzdCBiZSBn aXZlbiB0byB0aGUgZGV2aWNlIGluIHRoZSByZWFkIG9yIHdyaXRlIHJlcXVlc3QgdGhhdCBzdGFy dHMgdGhlIHRyYW5zZmVyLgorLlBQCisuSSBEbWFkb25lCityZXR1cm5zIHRydWUgKG5vbi16ZXJv KSBpZgorLkkgY2hhbgoraXMgaWRsZS4KKy5QUAorLkkgRG1hZW5kCittdXN0IGJlIGNhbGxlZCBh dCB0aGUgZW5kIG9mIGV2ZXJ5IERNQSBvcGVyYXRpb24uCitJdCBkaXNhYmxlcworLklSIGNoYW4g LAorcHJldmVudGluZyBmdXJ0aGVyIGFjY2VzcyB0byB0aGUgcHJldmlvdXNseSBhc3NvY2lhdGVk IG1lbW9yeSBhbmQsCitpZiBhIGxvdy1tZW1vcnkgYnVmZmVyIHdhcyByZXF1aXJlZCBmb3IgaW5w dXQsIHRyYW5zZmVycyBpdHMgY29udGVudHMKK3RvIHRoZSBhcHByb3ByaWF0ZSBwYXJ0IG9mIHRo ZSB0YXJnZXQgYnVmZmVyLgorLlBQCisuSSBEbWFjb3VudAorcmV0dXJucyB0aGUgbnVtYmVyIG9m IGJ5dGVzIHRoYXQgd2VyZSBsYXN0IHRyYW5zZmVycmVkIGJ5IGNoYW5uZWwKKy5JUiBjaGFuIC4K K1RoZSBjb3VudCBpcyBhbHdheXMgZXZlbiBmb3Igd29yZC1vcmllbnRlZCBETUEgY2hhbm5lbHMu CisuU0ggU09VUkNFCisuQiAvc3lzL3NyYy85L3BjL2RtYS5jCmRpZmYgLS1naXQgYS9zeXMvbWFu LzkvbG9jayBiL3N5cy9tYW4vOS9sb2NrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uNGRmMDUyZTljCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL21hbi85L2xvY2sKQEAgLTAs MCArMSwxMDYgQEAKKy5USCBMT0NLIDkKKy5TSCBOQU1FCitsb2NrLCBjYW5sb2NrLCBpbG9jaywg aXVubG9jaywgdW5sb2NrIFwtIHNwaW4gbG9ja3MKKy5TSCBTWU5PUFNJUworLnRhIFx3J1xmTHZv aWQgJ3UKKy5CCit2b2lkICAgIGxvY2soTG9jayAqbCkKKy5QUAorLkIKK2ludCAgICAgY2FubG9j ayhMb2NrICpsKQorLlBQCisuQgordm9pZCAgICB1bmxvY2soTG9jayAqbCkKKy5QUAorLkIKK3Zv aWQgICAgaWxvY2soTG9jayAqbCkKKy5QUAorLkIKK3ZvaWQgICAgaXVubG9jayhMb2NrICpsKQor LlNIIERFU0NSSVBUSU9OCitUaGVzZSBwcmltaXRpdmVzIGNvbnRyb2wgYWNjZXNzIHRvIHNoYXJl ZAorcmVzb3VyY2VzIHVzaW5nIHNwaW4gbG9ja3MuCitUaGV5IGluIHR1cm4gYXJlIHVzZWQgdG8g YnVpbGQgaGlnaGVyLWxldmVsIHN5bmNocm9uaXNhdGlvbiBtZWNoYW5pc21zCitzdWNoIGFzIHRo b3NlIGRlc2NyaWJlZCBpbgorLklSIHNsZWVwICg5KSwKKy5JUiBxbG9jayAoOSkKK2FuZAorLklS IHFpbyAoOSkuCitUaGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgdG8gcHJvdGVjdCBzaG9ydCBjcml0 aWNhbCBzZWN0aW9ucwordGhhdCB1cGRhdGUgc2hhcmVkIGRhdGEgc3RydWN0dXJlcy4KKy5QUAor LkkgTG9jaworbG9vcHMgcmVwZWF0ZWRseSBhdHRlbXB0aW5nIGFjcXVpcmUgdGhlIHNwaW4gbG9j aworLkkgbAordW50aWwgaXQgc3VjY2VlZHMuCisuSSBMb2NrCitzaG91bGQgbm90IGJlIHVzZWQg dG8gbG9jayBhIHN0cnVjdHVyZSBzaGFyZWQgd2l0aCBhbiBpbnRlcnJ1cHQgaGFuZGxlcgordW5s ZXNzIGludGVycnVwdHMgYXJlIGRpc2FibGVkIGJ5CisuSVIgc3BsaGkgKDkpCitiZWZvcmUgYXR0 ZW1wdGluZyB0aGUgbG9jazsKK2l0IGlzIGJldHRlciB0byB1c2UKKy5JUiBpbG9jayAsCitiZWxv dy4KKy5QUAorLkkgQ2FubG9jaworaXMgbm9uLWJsb2NraW5nLgorT25seSBvbmUgYXR0ZW1wdCBp cyBtYWRlIGZvciB0aGUgbG9jay4KK0l0IHJldHVybnMgbm9uLXplcm8gaWYgdGhlIGxvY2sgd2Fz IHN1Y2Nlc3NmdWxseSBhY3F1aXJlZDsgMCBvdGhlcndpc2UuCisuUFAKKy5JIFVubG9jaworcmVs ZWFzZXMgdGhlIGxvY2sKKy5JUiBsIC4KK0EgbG9jayBtdXN0IGJlIHVubG9ja2VkIG9ubHkgYnkg dGhlIGxvY2tpbmcgcHJvY2Vzcy4KKy5QUAorV2hlbiBjYWxsZWQgYnkgYSBwcm9jZXNzLCB0aGUg ZnVuY3Rpb25zIGFib3ZlIHRlbXBvcmFyaWx5IGJvb3N0IGl0cyBwcmlvcml0eQordG8gdGhlIGhp Z2hlc3QgcHJpb3JpdHksCisuQlIgUHJpTG9jayA7CitpdHMgb3JpZ2luYWwgcHJpb3JpdHkgaXMg cmVzdG9yZWQgYXQgdGhlIGVuZCBvZiB0aGUgY3JpdGljYWwgc2VjdGlvbiBieQorLklSIHVubG9j ayAuCitPbiBhIHVuaXByb2Nlc3NvciwgaWYKKy5JIGwKK2lzIHVuYXZhaWxhYmxlLAorLkkgbG9j aworY2FuIHJlc2NoZWR1bGUgdW5sZXNzIGludGVycnVwdHMgYXJlIGRpc2FibGVkIGJlZm9yZSBl bnRlcmluZworLkkgbG9jaworb3IgdGhlcmUgaXMgbm8gY3VycmVudCBwcm9jZXNzIChlZywgd2hl biBleGVjdXRpbmcgdGhlIHNjaGVkdWxlcikuCisuUFAKKy5JIElsb2NrCitkaXNhYmxlcyBpbnRl cnJ1cHRzIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGFjcXVpcmUgdGhlIGxvY2suCitJdCBzaG91bGQg YmUgdXNlZCB0byBsb2NrIGEgcmVzb3VyY2Ugc2hhcmVkIGJldHdlZW4gYSBwcm9jZXNzIGFuZCBh biBpbnRlcnJ1cHQgaGFuZGxlci4KK09uIGEgdW5pcHJvY2Vzc29yLCBkaXNhYmxpbmcgaW50ZXJy dXB0cyBpcyBzdWZmaWNpZW50IHRvIGV4Y2x1ZGUgYW4gaW50ZXJydXB0IGhhbmRsZXIKK2Zyb20g dGhlIGNyaXRpY2FsIHNlY3Rpb24sCithbmQgb24gYSBtdWx0aXByb2Nlc3NvciB0aGUgc3BpbiBs b2NrIGV4Y2x1ZGVzIGFuIGludGVycnVwdCBoYW5kbGVyIHJ1bm5pbmcgb24gYW5vdGhlciBwcm9j ZXNzb3IuCisuSSBJbG9jaworbmV2ZXIgcmVzY2hlZHVsZXMgdGhlIGNhbGxlciwgbm9yIG11c3Qg YSBjYWxsZXIgYWxsb3cgaXRzZWxmIHRvIGJlIHJlc2NoZWR1bGVkCisoZWcsIGJ5IGNhbGxpbmcK Ky5JUiBzbGVlcCAoOSkpCitiZWZvcmUgcmVsZWFzaW5nIHRoZSBsb2NrLgorLlBQCisuSSBJdW5s b2NrCityZWxlYXNlcyBhIGxvY2sgcHJldmlvdXNseSBnb3QgYnkKKy5JUiBpbG9jayAuCisuU0gg U09VUkNFCisuQiAvc3lzL3NyYy85L3BvcnQvdGFzbG9jay5jCisuYnIKKy5CIC9zeXMvc3JjLzkv Ki9sLnMKKy5TSCBTRUUgQUxTTworLklSIHFsb2NrICg5KQorLlNIIERJQUdOT1NUSUNTCitUaGUg bG9jayBmdW5jdGlvbnMKK2d1YXJkIGFnYWluc3QgdGhlIHBvc3NpYmlsaXR5IG9mIG5ldmVyIGFj cXVpcmluZyB0aGUgbG9jayBieSBjYXBwaW5nIHRoZSBudW1iZXIgb2YgbG9jayBhdHRlbXB0cy4K K0lmIHRoZSBsaW1pdCBpcyByZWFjaGVkLCBhIG1lc3NhZ2Ugb2YKK3RoZSBmb2xsb3dpbmcgZm9y bSBpcyB3cml0dGVuIG9uIHRoZSBjb25zb2xlOgorLklQCisuRVgKK2xvY2sgbG9vcCBvbiBcZkls b2NrLWFkZHJlc3NcZlAga2V5IFxmSWtleS12YWx1ZVxmUCBwYyBcZkljYWxsZXItcGNcZlAgaGVs ZCBieSBwYyBcZklsb2NrLXBjXGZQCisuRUUKKy5QUAorTW9zdCBsb2NrIGxvb3BzIHJlcHJlc2Vu dCBkZWFkbG9ja3MgY2F1c2VkIGJ5IGZhaWxpbmcgdG8gdW5sb2NrIGEgcmVzb3VyY2UsCithdHRl bXB0aW5nIHRvIGxvY2sgKGVnLCBieSByZWN1cnNpdmUgY2FsbCkgYSByZXNvdXJjZSBhbHJlYWR5 IGhlbGQgYnkgdGhlIHByb2Nlc3MsCitpbmNvbnNpc3RlbnQgbG9ja2luZyBhbmQgdW5sb2NraW5n IG9mIG5lc3RlZCByZXNvdXJjZXMsIHVzaW5nIGEgc3Bpbi1sb2NrCit0byBndWFyZCBjb2RlIHRo YXQgcmVzY2hlZHVsZXMsIHVzaW5nCisuSSBsb2NrCitub3QKKy5JIGlsb2NrCit0byBpbnRlcmxv Y2sgd2l0aCBhbiBpbnRlcnJ1cHQgcm91dGluZSwgYW5kIHNpbWlsYXIgYmx1bmRlcnMuCmRpZmYg LS1naXQgYS9zeXMvbWFuLzkvcWlvIGIvc3lzL21hbi85L3FpbwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjMyZTliMjhmZAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9tYW4v OS9xaW8KQEAgLTAsMCArMSw0ODAgQEAKKy5USCBRSU8gOQorLlNIIE5BTUUKK3FpbzogcWdldCwg cWRpc2NhcmQsIHFjb25zdW1lLCBxcGFzcywgcXByb2R1Y2UsIHFjb3B5LCBxb3BlbiwgcWJyZWFk LCBxcmVhZCwgcWJ3cml0ZSwgcXdyaXRlLCBxaXdyaXRlLCBxZnJlZSwgcWNsb3NlLCBxaGFuZ3Vw LCBxcmVvcGVuLCBxbGVuLCBxd2luZG93LCBxY2FucmVhZCwgcXNldGxpbWl0LCBxbm9ibG9jaywg cWZsdXNoLCBxZnVsbCBcLSBxdWV1ZWQgSS9PIGZvciBkZXZpY2VzCisuU0ggU1lOT1BTSVMKKy50 YSBcdydcZkxRdWV1ZSogICd1CisuQgorUXVldWUqCXFvcGVuKGludCBsaW1pdCxpbnQgbXNnLCB2 b2lkICgqa2ljaykodm9pZCopLHZvaWQgKmFyZykKKy5QUAorLkIKK3ZvaWQJcWhhbmd1cChRdWV1 ZSAqcSwgY2hhciAqcmVhc29uKQorLlBQCisuQgordm9pZAlxY2xvc2UoUXVldWUgKnEpCisuUFAK Ky5CCit2b2lkCXFyZW9wZW4oUXVldWUgKnEpCisuUFAKKy5CCit2b2lkCXFmcmVlKFF1ZXVlICpx KQorLlBQCisuQgorbG9uZwlxYndyaXRlKFF1ZXVlICpxLCBCbG9jayAqYikKKy5QUAorLkIKK2xv bmcJcXdyaXRlKFF1ZXVlICpxLCB2b2lkICpidWYsIGludCBsZW4pCisuUFAKKy5CCitpbnQJcXBh c3MoUXVldWUgKnEsIEJsb2NrICpiKQorLlBQCisuQgoraW50CXFwYXNzbm9saW0oUXVldWUgKnEs IEJsb2NrICpiKQorLlBQCisuQgoraW50CXFwcm9kdWNlKFF1ZXVlICpxLCB2b2lkCSpidWYsIGlu dCBsZW4pCisuUFAKKy5CCitpbnQJcWl3cml0ZShRdWV1ZSAqcSwgdm9pZCAqYnVmLCBpbnQgbGVu KQorLlBQCisuQgorQmxvY2sqCXFicmVhZChRdWV1ZSAqcSwgaW50IGxlbikKKy5QUAorLkIKK2xv bmcJcXJlYWQoUXVldWUgKnEsIHZvaWQgKmJ1ZiwgaW50IGxlbikKKy5QUAorLkIKK0Jsb2NrKglx Y29weShRdWV1ZSAqcSwgaW50IGxlbiwgdWxvbmcgb2Zmc2V0KQorLlBQCisuQgorQmxvY2sqCXFn ZXQoUXVldWUgKnEpCisuUFAKKy5CCitpbnQJcWNvbnN1bWUoUXVldWUgKnEsIHZvaWQgKmJ1Ziwg aW50IGxlbikKKy5QUAorLkIKK2ludAlxZGlzY2FyZChRdWV1ZSAqcSwgaW50IGxlbikKKy5QUAor LkIKK3ZvaWQJcWZsdXNoKFF1ZXVlICpxKQorLlBQCisuQgoraW50CXFsZW4oUXVldWUgKnEpCisu UFAKKy5CCitpbnQJcXdpbmRvdyhRdWV1ZSAqcSkKKy5QUAorLkIKK2ludAlxY2FucmVhZChRdWV1 ZSAqcSkKKy5QUAorLkIKK3ZvaWQJcXNldGxpbWl0KFF1ZXVlICpxLCBpbnQgbGltaXQpCisuUFAK Ky5CCit2b2lkCXFub2Jsb2NrKFF1ZXVlICpxLCBpbnQgbm9uYmxvY2spCisuUFAKKy5CCitpbnQJ cWZ1bGwoUXVldWUgKnEpCisuU0ggREVTQ1JJUFRJT04KK1RoaXMgc3VpdGUgb2YgZnVuY3Rpb25z IHByb3ZpZGVzIHNlcmlhbCBkYXRhIGJ1ZmZlcmluZyBmb3IgZGV2aWNlIGRyaXZlcnMuCitEYXRh IGlzIHN0b3JlZCBpbiBhCisuQiBRdWV1ZQorc3RydWN0dXJlIGFzIGEgc2VxdWVuY2Ugb2YgdmFy aWFibGUtc2l6ZWQKKy5CUiBCbG9ja3MgOworc2VlCisuSVIgYWxsb2NiICg5KS4KKy5QUAorLkkg UW9wZW4KK2luaXRpYWxpc2VzIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byBhIG5ldworLkJSIFF1 ZXVlICwKK2NvbmZpZ3VyaW5nIGl0IGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHBhcmFtZXRl cnM6CisuVEYgbGltaXQKKy5QRAorLlRQCisuSSBsaW1pdAorU2V0IHRoZSBxdWV1ZSBsaW1pdCAo aGlnaCB3YXRlciBtYXJrKSBpbiBieXRlcy4KKy5UUAorLkkgbXNnCitTZXQgbWVzc2FnZSBtb2Rl IGlmIG5vbi16ZXJvOyBvdGhlcndpc2UsIHN0cmVhbSBtb2RlIChkaXNjdXNzZWQgYmVsb3cpLgor LlRQCisuSSBraWNrCitPcHRpb25hbCBmbG93LWNvbnRyb2wgZnVuY3Rpb24gY2FsbGVkIGJ5Cisu SSBxYnJlYWQKK3RvIHJlc3RhcnQgd3JpdGVycywgYW5kIGJ5CisuSSBxYndyaXRlCisoYWxzbwor LklSIHFpd3JpdGUgKQordG8gcmVzdGFydCByZWFkZXJzLgorLlRQCisuSSBhcmcKK0FyZ3VtZW50 IHRvIHBhc3MgdG8KKy5JIGtpY2sKKy5QUAorLkkgUWhhbmd1cAorbWFya3MKKy5JIHEKK2FzIGBo dW5nIHVwJworZm9yIHRoZSBnaXZlbgorLklSIHJlYXNvbgorLlJCICggRWh1bmd1cAorYnkgZGVm YXVsdCkuCitTdWJzZXF1ZW50IGF0dGVtcHRzIHRvIHdyaXRlIHRvIHRoZSBxdWV1ZSByYWlzZSBh bgorLklSIGVycm9yICg5KS4KKy5JIFFoYW5ndXAKK2RvZXMgbm90IGZsdXNoIHRoZSBxdWV1ZTog c3Vic2VxdWVudCByZWFkIHJlcXVlc3RzIGFyZQoraGFuZGxlZCBub3JtYWxseSB1bnRpbCB0aGUg cXVldWUgZW1wdGllcy4KKy5JIFFyZWFkCithbmQgdGhlIG90aGVyIGZ1bmN0aW9ucyB0aGVuIHJl dHVybiB0aGVpciBjb252ZW50aW9uYWwgdmFsdWVzCitmb3IgYSBodW5ndXAgc3RyZWFtOiAwLCAt MSBvciBhIG51bGwgcG9pbnRlciwgZGVwZW5kaW5nIG9uIHRoZSBmdW5jdGlvbi4KK0FmdGVyIGEg ZmV3IHN1Y2ggYXR0ZW1wdHMgYnkgYW55IHByb2Nlc3MsIGFuCisuSVIgZXJyb3IgKDkpCitpcyBy YWlzZWQgKHR5cGljYWxseQorLkJSIEVodW5ndXAgKQorb24gZWFjaCBzdWJzZXF1ZW50IHJlYWQu CisuUFAKK0lmIHF1ZXVlZCBkYXRhIGlzIGxlZnQgdW5yZWFkLCBhbmQgbm90IGZsdXNoZWQgYnkK Ky5JIHFmbHVzaAorb3IKKy5JUiBxY2xvc2UgLAordGhlIGRhdGEgd2lsbCBhZ2FpbiBiZSByZWFk YWJsZSBmb2xsb3dpbmcgYSBzdWJzZXF1ZW50CisuSVIgcXJlb3BlbiAuCisuUFAKKy5JIFFjbG9z ZQorYWxzbyBtYXJrcyBhIGdpdmVuCisuSSBxCithcyBgaHVuZyB1cCcsCitidXQgcmVtb3ZlcyBh bmQgZnJlZXMgYW55IHF1ZXVlZCBkYXRhIEJsb2Nrcy4KKy5JIFFjbG9zZQoraWdub3JlcyBjYWxs cyB3aGVuCisuSSBxCitpcyBudWxsLgorLlBQCisuSSBRcmVvcGVuCittYWtlcyBhIGNsb3NlZCBv ciBodW5nIHVwIHF1ZXVlIGF2YWlsYWJsZSBmb3IgdXNlIGFnYWluLgorVGhlIHF1ZXVlJ3MgZGF0 YSBsaW1pdCBpcyByZXNldCB0byB0aGUKKy5JIGxpbWl0Cit2YWx1ZSBnaXZlbiB3aGVuIHRoZSBx dWV1ZSB3YXMgZmlyc3QgY3JlYXRlZCBieQorLklSIHFvcGVuICwKK2NhbmNlbGxpbmcgdGhlIGVm ZmVjdCBvZiBhbnkgcHJldmlvdXMgY2FsbCB0bworLklSIHFzZXRsaW1pdCAuCisuUFAKKy5JIFFm cmVlCitjbG9zZXMKKy5JIHEKK3dpdGgKKy5JIHFjbG9zZQorYW5kIGZyZWVzIGl0LgorVGhlIGNh bGxlciBtdXN0IGVuc3VyZSB0aGF0IG5vIHJlZmVyZW5jZXMgcmVtYWluOwordGhlc2UgZnVuY3Rp b25zIGRvIG5vdCBrZWVwIGEgcmVmZXJlbmNlIGNvdW50LgorLlNTICJGbG93IGNvbnRyb2wiCitU aGUgcXVldWUgSS9PIHJvdXRpbmVzIHByb3ZpZGUgYSBmbG93IGNvbnRyb2wgbWVjaGFuaXNtIHRv IGNvb3JkaW5hdGUgcHJvZHVjZXJzIGFuZCBjb25zdW1lcnMuCitFYWNoIHF1ZXVlIGhhcyBhIGxp bWl0IG9uIHRoZSBudW1iZXIgb2YgYnl0ZXMgcXVldWVkLCBpdHMgYGhpZ2ggd2F0ZXIgbWFyaycs Citpbml0aWFsbHkgc2V0IHdoZW4gdGhlIHF1ZXVlIGlzIGNyZWF0ZWQsIGJ1dCBhZGp1c3RhYmxl IGJ5CisuSVIgcXNldGxpbWl0ICwKK2JlbG93LiAKK1RoZSBsb3cgd2F0ZXIgbWFyayBpcyBub3Qg c2V0IGV4cGxpY2l0bHk6CitpdCBpcyBhbHdheXMgaGFsZiB0aGUgY3VycmVudCBxdWV1ZSBsaW1p dC4KK1doZW4gdGhlIGhpZ2ggd2F0ZXIgbWFyayBpcyBleGNlZWRlZCwgd3JpdGVzIG5vcm1hbGx5 IGJsb2NrIHVudGlsIGEgcmVhZGVyIGRyYWlucyB0aGUKK3F1ZXVlIGJlbG93IGl0cyBsb3cgd2F0 ZXIgbWFyazsgdGhlIHdyaXRlciBpcyB0aGVuIGFsbG93ZWQgdG8gcHJvY2VlZC4KK0NvbnZlcnNl bHksIHJlYWRlcnMgbm9ybWFsbHkgYmxvY2sgd2hlbiB0aGUgcXVldWUgaXMgZW1wdHksIHVudGls IGEgd3JpdGVyCithcnJpdmVzIHdpdGggZGF0YSwgb3IgdGhlIHF1ZXVlIGlzIGNsb3NlZC4KKy5Q UAorQSBxdWV1ZSBjYW4gYmUgZ2l2ZW4gYQorLkkga2ljaworZnVuY3Rpb24gd2hlbiB0aGUgcXVl dWUgaXMgY3JlYXRlZCBieQorLklSIHFvcGVuIC4KK1RoZSBmdW5jdGlvbiBpcyBpbnZva2VkIGJ5 CisuSVIgcXJlYWQKK2FuZAorLklSIHFicmVhZCAsCit0byBwcm9kIGFuIG91dHB1dCByb3V0aW5l IHdoZW4gdGhlIHF1ZXVlIGZhbGxzIGJlbG93IHRoZSBsb3ctd2F0ZXIgbWFyaywgYW5kIGJ5Cisu SVIgcXdyaXRlICwKKy5JUiBxYndyaXRlCithbmQKKy5JUiBxaXdyaXRlICwKK3RvIG5vdGlmeSBh IHJlYWRlciB0aGF0IGEgcXVldWUgaXMgbm8gbG9uZ2VyIGVtcHR5LgorQmVjYXVzZQorLkkga2lj aworaXMgY2FsbGVkIGZyb20gdGhlIHJlYWRpbmcgKG9yIHdyaXRpbmcpIHByb2Nlc3MsIG9yIGFu IGludGVycnVwdCBoYW5kbGVyLCBpdAorbXVzdCBub3QgYmxvY2suCisuUFAKK0ludGVycnVwdCBo YW5kbGVycyBtdXN0IG5vdAorLklSIHNsZWVwICg5KSwKK2FuZCBhcmUgdGhlcmVmb3JlIHJlc3Ry aWN0ZWQgdG8gdXNpbmcgb25seSB0aGUgbm9uLWJsb2NraW5nIGZ1bmN0aW9ucyBkZXNjcmliZWQg YmVsb3cuCisuU1MgIlN0cmVhbSBtb2RlIGFuZCBtZXNzYWdlIG1vZGUiCitJbiBzdHJlYW0gbW9k ZSwKK25vIHJlYWQgd2lsbCByZXR1cm4gbW9yZSB0aGFuIG9uZQorYmxvY2sKK29mIGRhdGEsIGJ1 dAorYSByZWFkIGNhbiBzcGxpdCBhIGJsb2NrIHRoYXQgY29udGFpbnMgbW9yZSBkYXRhIHRoYW4g cmVxdWVzdGVkLCBsZWF2aW5nIHRoZSByZW1haW5kZXIKK2luIGEgbmV3IGJsb2NrIGF0IHRoZSBm cm9udCBvZiB0aGUgUXVldWUuCitXcml0ZXMgb2YgbW9yZSB0aGFuIHRoZSBtYXhpbXVtCisuQiBC bG9jaworc2l6ZSAoY3VycmVudGx5IDEyOGsgYnl0ZXMpCithcmUgc3BsaXQgaW50byBhcyBtYW55 IEJsb2NrcyBhcyByZXF1aXJlZCwgZWFjaCB3cml0dGVuIHNlcGFyYXRlbHkgdG8gdGhlIHF1ZXVl LAoraW4gb3JkZXIsIGJ1dCB3aXRoIHBvc3NpYmxlIGZsb3ctY29udHJvbCBiZXR3ZWVuIHRoZW0u CitUaGUgcXVldWUgaXMgbG9ja2VkIG1lYW53aGlsZSwgaG93ZXZlciwgc28gdGhhdCBkYXRhIGZy b20gb3RoZXIgd3JpdGVycyBpcyBub3QgaW50ZXJtaW5nbGVkLgorLlBQCitJbiBtZXNzYWdlIG1v ZGUsIGJ5IGNvbnRyYXN0LCBhIHJlYWQgd2lsbCByZXR1cm4gYXQgbW9zdAorb25lIGJsb2NrJ3Mg d29ydGggb2YgZGF0YSwgYnV0IHRoZSByZW1haW5kZXIgb2YgYSBwYXJ0aWFsbHktcmVhZCBibG9j ayB3aWxsIGJlIGRpc2NhcmRlZCwKK25vdCByZXR1cm5lZCB0byB0aGUgcXVldWUuCitJZiBhIHdy aXRlIGNvdW50IGV4Y2VlZHMgdGhlIG1heGltdW0KKy5CIEJsb2NrCitzaXplLCB0aGUgZXhjZXNz IGRhdGEgaXMgZGlzY2FyZGVkOgorYXQgbW9zdCBhIHNpbmdsZSBibG9jayBjYW4gYmUgcXVldWVk LgorLlBQCitUaGUgbW9kZSBvZiB0aGUgcXVldWUgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3Vu dCBpbiB0aGUgZGVzY3JpcHRpb25zIGJlbG93CitvZiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoK Ky5JUiBxd3JpdGUgLAorLklSIHFpd3JpdGUgLAorLklSIHFicmVhZAorYW5kCisuSVIgcWNvbnN1 bWUgLgorTm8gb3RoZXIgZnVuY3Rpb25zIGFyZSBhd2FyZSBvZiB0aGUgZGlzdGluY3Rpb24uCisu U1MgIldyaXRlIG9wZXJhdGlvbnMgKGZsb3cgY29udHJvbGxlZCkiCisuSSBRd3JpdGUKK2NvcGll cworLkkgbGVuCitieXRlcyBvZiBkYXRhIGZyb20KKy5JIGJ1ZgoraW50byBvbmUgb3IgbW9yZQor LkIgQmxvY2tzCit3aGljaCBpdCBwbGFjZXMgb24gdGhlCisuSVIgcSAuCisuSSBRd3JpdGUKK2Fs d2F5cyByZXR1cm5zCisuSVIgbGVuIC4KK0l0IGNhbiBpbXBsZW1lbnQgbWVzc2FnZSBtb2RlLgor LlBQCisuSSBRYndyaXRlCitwbGFjZXMgdGhlIHNpbmdsZSBCbG9jaworLkkgYgorb24gdGhlIHRh aWwgb2YKKy5JUiBxICwKK3dha2luZyBhbnkgc2xlZXBpbmcgcmVhZGVyLgorSWYgdGhlIHF1ZXVl IGlzIGZ1bGwsIHRoZQord3JpdGluZyBwcm9jZXNzIGJsb2NrcyB1bnRpbCBhIHJlYWRlcgoraGFz IHJlZHVjZWQgdGhlIHF1ZXVlZCBkYXRhIHRvCit0aGUgbG93LXdhdGVyIG1hcms7CitpZiB0aGUg cXVldWUgaXMgbm9uLWJsb2NraW5nCisoc2VlCisuSSBxbm9ibG9jaworYmVsb3cpLAordGhlIGRh dGEgaXMgZGlzY2FyZGVkIHdpdGhvdXQgbm90aWNlLgorLkkgUWJ3cml0ZQorbm9ybWFsbHkgcmV0 dXJucworLklSIGxlbiAsCitidXQgcmFpc2VzIGFuCisuSVIgZXJyb3IgKDkpCitpZiB0aGUgcXVl dWUgaXMgY2xvc2VkIChzZWUKKy5JIHFoYW5ndXAKK2FuZAorLklSIHFjbG9zZSApLgorVGhlIGJs b2NrCisuSSBiCitpcyBhbHdheXMgZnJlZWQuCitOb3RlIHRoYXQKKy5JIGIKK2NhbiBiZSBlbXB0 eSAoemVyby1sZW5ndGgpLCB0byBwdW5jdHVhdGUgdGhlIGRhdGEgaW4gYSBxdWV1ZS4KKy5JIFFi d3JpdGUKK2Nhbm5vdCBoYW5kbGUgYSBsaXN0IG9mIEJsb2NrczsKKy5JIHFwYXNzCittdXN0IGJl IHVzZWQgaW5zdGVhZC4KKy5TUyBOb24tYmxvY2tpbmcgd3JpdGVzCisuUFAKKy5JIFFwcm9kdWNl CityZXR1cm5zIC0xaW1tZWRpYXRlbHkgIGlmCisuSSBxCitpcyBmdWxsLgorT3RoZXJ3aXNlLCBp dCBxdWV1ZXMKKy5JIGxlbgorYnl0ZXMgb2YgZGF0YSBmcm9tCisuSSBidWYKK2luIGEgc2luZ2xl CisuQiBCbG9jaworb24KKy5JIHEKK2FuZCByZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3Jp dHRlbi4KKy5QUAorLkkgUXBhc3MKK2F0dGVtcHRzIHRvIHBsYWNlIHRoZSBsaXN0IG9mIEJsb2Nr cyBoZWFkZWQgYnkKKy5JIGIKK29uCisuSVIgcSAsCityZXR1cm5pbmcgdGhlIG51bWJlciBvZiBi eXRlcyB3cml0dGVuIGlmIHN1Y2Nlc3NmdWwuCitJZgorLkkgcQord2FzIGZ1bGwsIGl0CitmcmVl cyB0aGUgQmxvY2sgbGlzdAorLkkgYgorYW5kIHJldHVybnMgLTEuCisuUFAKKy5JIFFwYXNzbm9s aW0KK3B1dHMgdGhlIEJsb2NrIGxpc3QKKy5JIGIKK29uCisuSSBxCityZWdhcmRsZXNzIG9mIGZs b3cgY29udHJvbDsgaXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBsaXN0Cisu SVIgYiAuCisuUFAKKy5JIFFpd3JpdGUKK2lzIGEgdmFyaWFudCBvZgorLkkgcXdyaXRlCit1c2Vk IGV4Y2x1c2l2ZWx5IGJ5IHRoZSBrZXJuZWwgcHJpbnQgZnVuY3Rpb24sCit0byBhbGxvdyBwcmlu dGluZyBieSBpbnRlcnJ1cHQgaGFuZGxlcnM7CisuSSBxaXdyaXRlCitjb3VsZCBiZSB1c2VkIHdp dGggY2FyZSBieSBvdGhlciByb3V0aW5lcywgYnV0CisuSVIgcXByb2R1Y2UKK2lzIHByZWZlcmFi bGUuCisuSSBRaXdyaXRlCit3cml0ZXMgdGhlCisuSSBsZW4KK2J5dGVzIG9mIGRhdGEgYXQKKy5J IGJ1ZgoraW50byB0aGUKKy5JIHEKK3dpdGhvdXQgcmVnYXJkIHRvIGZsb3cgY29udHJvbDsKK3Ro ZSB3cml0ZXIgbmV2ZXIgYmxvY2tzLgorVGhlIHF1ZXVlIGlzIGFzc3VtZWQgdG8gYmUgb3Blbi4K Ky5JIFFpd3JpdGUKK2Fsd2F5cyByZXR1cm5zCisuSVIgbGVuIC4KK0l0IGNhbiBpbXBsZW1lbnQg bWVzc2FnZSBtb2RlLgorLlNTICJSZWFkIG9wZXJhdGlvbnMgKGZsb3cgY29udHJvbGxlZCkiCisu SSBRYnJlYWQKK2Jsb2NrcyB1bnRpbCBkYXRhIGFycml2ZXMgb24KKy5JUiBxICwKK3RoZW4KK3Jl dHVybnMgdGhlIGZpcnN0CisuQlIgQmxvY2sgOworaXQgbGltaXRzIHRoZSBkYXRhIHJldHVybmVk Cit0bworLkkgbGVuCitieXRlcyAoaW4gdGhlIG1hbm5lciBkZXBlbmRpbmcgb24gdGhlIG1vZGUg b2YKKy5JUiBxICkuCitJdCByZXR1cm5zIGEgbnVsbCBwb2ludGVyIGlmIHRoZSBxdWV1ZSBoYXMg aHVuZyB1cC4KKy5QUAorLkkgUXJlYWQKK3JlYWRzIGEgQmxvY2sgb2YgdXAgdG8KKy5JIGxlbgor Ynl0ZXMgZnJvbQorLkkgcQordXNpbmcKKy5JUiBxYnJlYWQgLAorYW5kIGNvcGllcyB0aGUgZGF0 YSBpbiB0aGUgQmxvY2sgaW50bworLklSIGJ1ZiAsCit0aGVuIGZyZWVzIHRoZSBCbG9jayBhbmQg cmV0dXJucwordGhlIG51bWJlciBvZiBieXRlcyByZWFkLgorLkkgUXJlYWQKK3JldHVybnMgMCBv biBlbmQgb2YgZmlsZSBvciBlcnJvciAoaGFuZ3VwKS4KK0l0IGNhbiBpbXBsZW1lbnQgbWVzc2Fn ZSBtb2RlLgorLlBQCisuSSBRY29weQorcmV0dXJucyBhIEJsb2NrIHdpdGggYSBjb3B5IG9mIGRh dGEgZnJvbSB0aGUgcXVldWUgKHRoZSBkYXRhIHJlbWFpbnMgb24gdGhlIHF1ZXVlKS4KK1RoZSBj b3B5IGJlZ2lucworLkkgb2Zmc2V0CitieXRlcyBpbnRvIHRoZSBxdWV1ZSdzIGRhdGEgYW5kIHBy b2NlZWRzIHVudGlsCisuSSBsZW4KK2J5dGVzIGhhdmUgYmVlbiBjb3BpZWQgb3Igbm8gbW9yZSBk YXRhIHJlbWFpbnMuCitUaGUgQmxvY2sncyByZWFkIGFuZCB3cml0ZSBwb2ludGVycyBkZWxpbWl0 IHRoZSBkYXRhIGNvcGllZCBpbnRvIGl0LgorLkkgUWNvcHkKK2NhbiBiZSB1c2VkIGJ5IGEgcmVs aWFibGUgdHJhbnNwb3J0IHByb3RvY29sIHRvIGNvcHkgYSBwYWNrZXQgZm9yIHRyYW5zbWlzc2lv biwKK2xlYXZpbmcgdGhlIGRhdGEgcXVldWVkIGZvciBwb3NzaWJsZSByZXRyYW5zbWlzc2lvbiwg aWYgdW5hY2tub3dsZWRnZWQuCisuU1MgTm9uLWJsb2NraW5nIHJlYWRzCisuUFAKKy5JIFFjb25z dW1lCityZXR1cm5zIC0xIGltbWVkaWF0ZWx5IGlmCisuSSBxCitpcyBlbXB0eS4KK090aGVyd2lz ZSwgaXQKK2NvcGllcyB1cCB0bworLkkgbGVuCitieXRlcyBmcm9tIHRoZSBmaXJzdAorLkIgQmxv Y2sKK29uIHRoZSBxdWV1ZSBpbnRvCisuSVIgYnVmICwKK3JldHVybmluZyB0aGUgbnVtYmVyIG9m IGJ5dGVzIGNvcGllZC4KK0l0IGNhbiBpbXBsZW1lbnQgbWVzc2FnZSBtb2RlLgorLlBQCisuSSBR Z2V0CityZXR1cm5zIGEgbnVsbCBwb2ludGVyIGltbWVkaWF0ZWx5IGlmCisuSSBxCitpcyBlbXB0 eSBvciBjbG9zZWQuCitPdGhlcndpc2UsIGl0CityZXR1cm5zIHRoZSBmaXJzdAorLkIgQmxvY2sK K29uIHRoZSBxdWV1ZS4KKy5TUyAiRGlzY2FyZCBhbmQgZmx1c2giCisuSSBRZGlzY2FyZAorcmVt b3ZlcyB0aGUgZmlyc3QKKy5JIGxlbgorZGF0YSBieXRlcyBmcm9tCisuSVIgcSA7CitpdCByZXR1 cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgYWN0dWFsbHkgZGlzY2FyZGVkLCBpbiBjYXNlCit0aGUg cXVldWUgaXMgc2hvcnRlciB0aGFuCisuSVIgbGVuIC4KK0lmIHRoZSBxdWV1ZSBkcmFpbnMgYmVs b3cgdGhlIGxvdy13YXRlciBtYXJrLAorLkkgcWRpc2NhcmQKK3dha2VzIGFueSBzbGVlcGluZyB3 cml0ZXJzLgorU2luY2UgaXQgZG9lcyBub3QgYmxvY2ssCisuSSBxZGlzY2FyZAorY2FuIHNhZmVs eSBiZSBjYWxsZWQgZnJvbSBpbnRlcnJ1cHQgaGFuZGxlcnMuCitJdCBpcyB1c2VmdWwgaW4gdHJh bnNwb3J0IHByb3RvY29sIGRyaXZlcnMgdG8gcmVtb3ZlIGRhdGEgZnJvbSB0aGUgcXVldWUKK29u Y2UgYWNrbm93bGVkZ2VkLgorLlBQCisuSSBRZmx1c2gKK2Rpc2NhcmRzIGFsbCBkYXRhIHdhaXRp bmcgb24KKy5JUiBxICwKK3dha2luZyBhbnkgd2FpdGluZyB3cml0ZXIuCisuU1MgIlF1ZXVlIHN0 YXR1cyIKK1RoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHJldHVybiBhIFF1ZXVlJ3Mgc3RhdHVzLgor Tm90ZSB0aGF0IGJldHdlZW4gYSBjYWxsIHRvIG9uZSBvZiB0aGVzZSBmdW5jdGlvbnMgYW5kIGFu b3RoZXIgb3BlcmF0aW9uLAordGhlIHN0YXRlIGNhbiBjaGFuZ2UgaWYgYSBkcml2ZXIgYWxsb3dz IGNvbmN1cnJlbnQgYWNjZXNzIGJ5CitlaXRoZXIgYW5vdGhlciBwcm9jZXNzIG9yIGFuIGludGVy cnVwdCBoYW5kbGVyLgorLlBQCisuSSBRbGVuCityZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMg cXVldWVkIG9uCisuSVIgcSAuCisuUFAKKy5JIFF3aW5kb3cKK3JldHVybnMgdGhlIG51bWJlciBv ZiBieXRlcyB0aGF0IGNhbiBiZSB3cml0dGVuIGJlZm9yZSByZWFjaGluZyB0aGUgcXVldWUncyBo aWdoLXdhdGVyIG1hcmsuCitBIHJldHVybiBvZiAwIG1lYW5zIHRoYXQgYSB3cml0ZSBvcGVyYXRp b24gd2lsbCBjZXJ0YWlubHkgYmxvY2s7CithIG5vbi16ZXJvIHJldHVybiBnaXZlcyBubyBndWFy YW50ZWVzIChzZWUKKy5JUiBxZnVsbCAsCitiZWxvdykuCisuUFAKKy5JIFFjYW5yZWFkCityZXR1 cm5zIDEgaWYgYW55IGRhdGEgcXVldWVkIGlzIHF1ZXVlZC4gQSBzdWJzZXF1ZW50IHJlYWQgb3Bl cmF0aW9uIHdpbGwgbm90IGJsb2NrLgorLlBQCisuSSBRZnVsbAorcmV0dXJucyBub24temVybyBp ZgorLkkgcQoraXMgZmxvdy1jb250cm9sbGVkIGFuZCBhIHdyaXRlIHdvdWxkIGJsb2NrIG9yIGEg bm9uLWJsb2NraW5nIHdyaXRlIHdvdWxkIHJldHVybiBhbiBlcnJvci4KKyhOb3RlIHRoYXQgdGhl IGltcGxlbWVudGF0aW9uIGFsbG93cworLkkgcXdpbmRvdwordG8gcmV0dXJuIG5vbi16ZXJvIHll dAorLkkgcWZ1bGwKK3RvIHJldHVybiB0cnVlLikKKy5TUyAiUXVldWUgY29udHJvbCIKKy5JIFFz ZXRsaW1pdAorc2V0cyB0aGUgaGlnaCB3YXRlciBtYXJrIGZvciB0aGUgcXVldWUgdG8KKy5JUiBs aW1pdCAuCitOb3RlIHRoYXQKKy5JIHFvcGVuCitzYXZlcyB0aGUgaW5pdGlhbCBxdWV1ZSBsaW1p dC4KK0lmIHRoZSBxdWV1ZSBpcyBjbG9zZWQgYW5kIHJlb3BlbmVkIChieQorLklSIHFyZW9wZW4g KQordGhhdCBpbml0aWFsIGxpbWl0IGlzIHJlc3RvcmVkLgorLlBQCisuSSBRbm9ibG9jaworc2V0 cyBvciByZXNldHMgbm9uLWJsb2NraW5nIG1vZGUuCitJZgorLkkgbm9uYmxvY2sKK2lzIG5vbi16 ZXJvLAordGhlIHF1ZXVlIGJlY29tZXMgbm9uLWJsb2NraW5nLCBhbmQKK2RhdGEgd3JpdHRlbiB0 byBhIHF1ZXVlIGJleW9uZCBpdHMgaGlnaCB3YXRlciBtYXJrIGlzIGRpc2NhcmRlZAorYnkgY2Fs bHMgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmxvY2suCisuU0ggU09VUkNFCisuQiAvc3lzL3NyYy85 L3BvcnQvcWlvLmMKKy5TSCBTRUUgQUxTTworLklSIGFsbG9jYiAoOSksCisuSVIgcmVmICg5KQot LSAKMi4zMy4xCgo= --upas-zrvszhdhqzwuvhorkqavhbivoa-- --00000000000010be3405d04f95af--