From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailgw01.mediatek.com (mailgw01.mediatek.com [216.200.240.184]) by sourceware.org (Postfix) with ESMTPS id BF1D43858403; Sun, 26 Sep 2021 13:35:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BF1D43858403 X-UUID: 867845fc25df46e6bb7d7e3d91d799f0-20210926 X-UUID: 867845fc25df46e6bb7d7e3d91d799f0-20210926 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1333465835; Sun, 26 Sep 2021 06:35:05 -0700 Received: from MTKMBS62N1.mediatek.inc (172.29.193.41) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 26 Sep 2021 06:26:07 -0700 Received: from MTKMBS62N1.mediatek.inc ([fe80::697c:586d:7cff:34e7]) by MTKMBS62N1.mediatek.inc ([fe80::697c:586d:7cff:34e7%12]) with mapi id 15.00.1497.015; Sun, 26 Sep 2021 06:26:07 -0700 From: Dragan Mladjenovic To: "gcc-patches@gcc.gnu.org" CC: Matthew Fortune , Andrew Pinski , YunQiang Su , Jeff Law , "Jakub Jelinek" , Faraz Shahbazker , Vince Del Vecchio , "Petar.Jovanovic@syrmia.com" Subject: [RFC 7/7] Add documentation for nanoMIPS Thread-Topic: [RFC 7/7] Add documentation for nanoMIPS Thread-Index: AQHXstoPFtvMQnWcbEm+E80QvvaRrA== Date: Sun, 26 Sep 2021 13:26:07 +0000 Message-ID: <30b77027c0684e14b31727bdd14f7fc1@MTKMBS62N1.mediatek.inc> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [172.29.193.239] MIME-Version: 1.0 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, SPF_HELO_NONE, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Sep 2021 13:35:16 -0000 Z2NjL0NoYW5nZUxvZzoKCiAgICAgICAgKiBkb2MvZXh0ZW5kLnRleGk6IEFkZCBuYW5vTUlQUyBG dW5jdGlvbiBBdHRyaWJ1dGVzLAogICAgICAgIG5hbm9NSVBTIEJ1aWx0LWluIEZ1bmN0aW9ucyBh bmQgbmFub01JUFMgRFNQIEJ1aWx0LWluIEZ1bmN0aW9ucy4KICAgICAgICAqIGRvYy9pbnZva2Uu dGV4aTogQWRkIG5hbm9NSVBTIE9wdGlvbnMuCiAgICAgICAgKiBkb2MvbWQudGV4aTogQWRkIG5h bm9NSVBTIGNvbnN0cmFpbnRzLgotLS0KIGdjYy9kb2MvZXh0ZW5kLnRleGkgfCAxMjQgKysrKysr KysrKysrKysrCiBnY2MvZG9jL2ludm9rZS50ZXhpIHwgMzY3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBnY2MvZG9jL21kLnRleGkgICAgIHwgIDcxICsrKysr KysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1NjIgaW5zZXJ0aW9ucygrKQogMyBmaWxlcyBjaGFuZ2Vk LCA1NjIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2djYy9kb2MvZXh0ZW5kLnRleGkgYi9n Y2MvZG9jL2V4dGVuZC50ZXhpCmluZGV4IDZkOGI5ODU2ZWVhLi41YmZlYTRjZDdiNiAxMDA2NDQK LS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQorKysgYi9nY2MvZG9jL2V4dGVuZC50ZXhpCkBAIC0y NDg0LDYgKzI0ODQsNyBAQCBHQ0MgcGx1Z2lucyBtYXkgcHJvdmlkZSB0aGVpciBvd24gYXR0cmli dXRlcy4KICogTWljcm9zb2Z0IFdpbmRvd3MgRnVuY3Rpb24gQXR0cmlidXRlczo6CiAqIE1JUFMg RnVuY3Rpb24gQXR0cmlidXRlczo6CiAqIE1TUDQzMCBGdW5jdGlvbiBBdHRyaWJ1dGVzOjoKKyog bmFub01JUFMgRnVuY3Rpb24gQXR0cmlidXRlczo6CiAqIE5EUzMyIEZ1bmN0aW9uIEF0dHJpYnV0 ZXM6OgogKiBOaW9zIElJIEZ1bmN0aW9uIEF0dHJpYnV0ZXM6OgogKiBOdmlkaWEgUFRYIEZ1bmN0 aW9uIEF0dHJpYnV0ZXM6OgpAQCAtNTY3Myw2ICs1Njc0LDk5IEBAIG9wdGlvbnMgY2FuIGhlbHAg dGhlIHBhY2tpbmcsIGhvd2V2ZXIsIHNpbmNlIHRoZXkgcHJvZHVjZSBzbWFsbGVyLAogZWFzaWVy IHRvIHBhY2sgcmVnaW9ucy4KIEBlbmQgdGFibGUKIAorQG5vZGUgbmFub01JUFMgRnVuY3Rpb24g QXR0cmlidXRlcworQHN1YnNlY3Rpb24gbmFub01JUFMgRnVuY3Rpb24gQXR0cmlidXRlcworCitU aGVzZSBmdW5jdGlvbiBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIG5hbm9NSVBTIGJh Y2sgZW5kOgorCitAdGFibGUgQGNvZGUKK0BpdGVtIGNtb2RlbCAoIkB2YXJ7bW9kZWx9IikKK0Bj aW5kZXggQGNvZGV7Y21vZGVsfSBmdW5jdGlvbiBhdHRyaWJ1dGUsIG5hbm9NSVBTCitVc2UgdGhp cyBhdHRyaWJ1dGUgdG8gaW5kaWNhdGUgd2hhdCBjb2RlIHNob3VsZCBiZSBnZW5lcmF0ZWQgZm9y IGEgcGFydGljdWxhcgorY29kZSBhbmQgZGF0YSBtb2RlbCBmb3IgdGhpcyBmdW5jdGlvbi4gIFRo ZSBiZWhhdmlvciBhbmQgcGVybWlzc2libGUgYXJndW1lbnRzCithcmUgdGhlIHNhbWUgYXMgZm9y IHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIEBvcHRpb257LW1jbW9kZWw9fS4KK0BlbmQgdGFibGUK KworQHRhYmxlIEBjb2RlCitAaXRlbSBpbnRlcnJ1cHQKK0BjaW5kZXggQGNvZGV7aW50ZXJydXB0 fSBmdW5jdGlvbiBhdHRyaWJ1dGUsIG5hbm9NSVBTCitVc2UgdGhpcyBhdHRyaWJ1dGUgdG8gaW5k aWNhdGUgdGhhdCB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIGlzIGFuIGludGVycnVwdAoraGFuZGxl ci4gIFRoZSBjb21waWxlciBnZW5lcmF0ZXMgZnVuY3Rpb24gZW50cnkgYW5kIGV4aXQgc2VxdWVu Y2VzIHN1aXRhYmxlCitmb3IgdXNlIGluIGFuIGludGVycnVwdCBoYW5kbGVyIHdoZW4gdGhpcyBh dHRyaWJ1dGUgaXMgcHJlc2VudC4KK0FuIG9wdGlvbmFsIGFyZ3VtZW50IGlzIHN1cHBvcnRlZCBm b3IgdGhlIGludGVycnVwdCBhdHRyaWJ1dGUgd2hpY2ggYWxsb3dzCit0aGUgaW50ZXJydXB0IG1v ZGUgdG8gYmUgZGVzY3JpYmVkLiAgQnkgZGVmYXVsdCBHQ0MgYXNzdW1lcyB0aGUgZXh0ZXJuYWwK K2ludGVycnVwdCBjb250cm9sbGVyIChFSUMpIG1vZGUgaXMgaW4gdXNlLCB0aGlzIGNhbiBiZSBl eHBsaWNpdGx5IHNldCB1c2luZworQGNvZGV7ZWljfS4gIFdoZW4gaW50ZXJydXB0cyBhcmUgbm9u LW1hc2tlZCB0aGVuIHRoZSByZXF1ZXN0ZWQgSW50ZXJydXB0CitQcmlvcml0eSBMZXZlbCAoSVBM KSBpcyBjb3BpZWQgdG8gdGhlIGN1cnJlbnQgSVBMIHdoaWNoIGhhcyB0aGUgZWZmZWN0IG9mIG9u bHkKK2VuYWJsaW5nIGhpZ2hlciBwcmlvcml0eSBpbnRlcnJ1cHRzLiAgVG8gdXNlIHZlY3RvcmVk IGludGVycnVwdCBtb2RlIHVzZQordGhlIGFyZ3VtZW50IEBjb2Rle3ZlY3Rvcj1bc3cwfHN3MXxo dzB8aHcxfGh3MnxodzN8aHc0fGh3NV19LCB0aGlzIHdpbGwgY2hhbmdlCit0aGUgYmVoYXZpb3Ig b2YgdGhlIG5vbi1tYXNrZWQgaW50ZXJydXB0IHN1cHBvcnQgYW5kIEdDQyB3aWxsIGFycmFuZ2Ug dG8gbWFzaworYWxsIGludGVycnVwdHMgZnJvbSBzdzAgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUg c3BlY2lmaWVkIGludGVycnVwdCB2ZWN0b3IuCisKK1lvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcg YXR0cmlidXRlcyB0byBtb2RpZnkgdGhlIGJlaGF2aW9yCitvZiBhbiBpbnRlcnJ1cHQgaGFuZGxl cjoKK0B0YWJsZSBAY29kZQorQGl0ZW0gdXNlX3NoYWRvd19yZWdpc3Rlcl9zZXQKK0BjaW5kZXgg QGNvZGV7dXNlX3NoYWRvd19yZWdpc3Rlcl9zZXR9IGZ1bmN0aW9uIGF0dHJpYnV0ZSwgbmFub01J UFMKK0Fzc3VtZSB0aGF0IHRoZSBoYW5kbGVyIHVzZXMgYSBzaGFkb3cgcmVnaXN0ZXIgc2V0LCBp bnN0ZWFkIG9mCit0aGUgbWFpbiBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzLiAgQW4gb3B0aW9u YWwgYXJndW1lbnQgQGNvZGV7aW50c3RhY2t9IGlzCitzdXBwb3J0ZWQgdG8gaW5kaWNhdGUgdGhh dCB0aGUgc2hhZG93IHJlZ2lzdGVyIHNldCBjb250YWlucyBhIHZhbGlkIHN0YWNrCitwb2ludGVy LgorCitAaXRlbSBrZWVwX2ludGVycnVwdHNfbWFza2VkCitAY2luZGV4IEBjb2Rle2tlZXBfaW50 ZXJydXB0c19tYXNrZWR9IGZ1bmN0aW9uIGF0dHJpYnV0ZSwgbmFub01JUFMKK0tlZXAgaW50ZXJy dXB0cyBtYXNrZWQgZm9yIHRoZSB3aG9sZSBmdW5jdGlvbi4gIFdpdGhvdXQgdGhpcyBhdHRyaWJ1 dGUsCitHQ0MgdHJpZXMgdG8gcmVlbmFibGUgaW50ZXJydXB0cyBmb3IgYXMgbXVjaCBvZiB0aGUg ZnVuY3Rpb24gYXMgaXQgY2FuLgorCitAaXRlbSB1c2VfZGVidWdfZXhjZXB0aW9uX3JldHVybgor QGNpbmRleCBAY29kZXt1c2VfZGVidWdfZXhjZXB0aW9uX3JldHVybn0gZnVuY3Rpb24gYXR0cmli dXRlLCBuYW5vTUlQUworUmV0dXJuIHVzaW5nIHRoZSBAY29kZXtkZXJldH0gaW5zdHJ1Y3Rpb24u ICBJbnRlcnJ1cHQgaGFuZGxlcnMgdGhhdCBkb24ndAoraGF2ZSB0aGlzIGF0dHJpYnV0ZSByZXR1 cm4gdXNpbmcgQGNvZGV7ZXJldH0gaW5zdGVhZC4KK0BlbmQgdGFibGUKKworWW91IGNhbiB1c2Ug YW55IGNvbWJpbmF0aW9uIG9mIHRoZXNlIGF0dHJpYnV0ZXMsIGFzIHNob3duIGJlbG93OgorQHNt YWxsZXhhbXBsZQordm9pZCBfX2F0dHJpYnV0ZV9fICgoaW50ZXJydXB0KSkgdjAgKCk7Cit2b2lk IF9fYXR0cmlidXRlX18gKChpbnRlcnJ1cHQsIHVzZV9zaGFkb3dfcmVnaXN0ZXJfc2V0KSkgdjEg KCk7Cit2b2lkIF9fYXR0cmlidXRlX18gKChpbnRlcnJ1cHQsIGtlZXBfaW50ZXJydXB0c19tYXNr ZWQpKSB2MiAoKTsKK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKGludGVycnVwdCwgdXNlX2RlYnVnX2V4 Y2VwdGlvbl9yZXR1cm4pKSB2MyAoKTsKK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKGludGVycnVwdCwg dXNlX3NoYWRvd19yZWdpc3Rlcl9zZXQsCisgICAgICAgICAgICAgICAgICAgICBrZWVwX2ludGVy cnVwdHNfbWFza2VkKSkgdjQgKCk7Cit2b2lkIF9fYXR0cmlidXRlX18gKChpbnRlcnJ1cHQsIHVz ZV9zaGFkb3dfcmVnaXN0ZXJfc2V0LAorICAgICAgICAgICAgICAgICAgICAgdXNlX2RlYnVnX2V4 Y2VwdGlvbl9yZXR1cm4pKSB2NSAoKTsKK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKGludGVycnVwdCwg a2VlcF9pbnRlcnJ1cHRzX21hc2tlZCwKKyAgICAgICAgICAgICAgICAgICAgIHVzZV9kZWJ1Z19l eGNlcHRpb25fcmV0dXJuKSkgdjYgKCk7Cit2b2lkIF9fYXR0cmlidXRlX18gKChpbnRlcnJ1cHQs IHVzZV9zaGFkb3dfcmVnaXN0ZXJfc2V0LAorICAgICAgICAgICAgICAgICAgICAga2VlcF9pbnRl cnJ1cHRzX21hc2tlZCwKKyAgICAgICAgICAgICAgICAgICAgIHVzZV9kZWJ1Z19leGNlcHRpb25f cmV0dXJuKSkgdjcgKCk7Cit2b2lkIF9fYXR0cmlidXRlX18gKChpbnRlcnJ1cHQoImVpYyIpKSkg djggKCk7Cit2b2lkIF9fYXR0cmlidXRlX18gKChpbnRlcnJ1cHQoInZlY3Rvcj1odzMiKSkpIHY5 ICgpOworQGVuZCBzbWFsbGV4YW1wbGUKKworQGl0ZW0gbG9uZ19jYWxsCitAaXRlbXggbmVhcgor QGl0ZW14IGZhcgorQGNpbmRleCBpbmRpcmVjdCBjYWxscywgbmFub01JUFMKK0BjaW5kZXggQGNv ZGV7bG9uZ19jYWxsfSBmdW5jdGlvbiBhdHRyaWJ1dGUsIG5hbm9NSVBTCitAY2luZGV4IEBjb2Rl e25lYXJ9IGZ1bmN0aW9uIGF0dHJpYnV0ZSwgbmFub01JUFMKK0BjaW5kZXggQGNvZGV7ZmFyfSBm dW5jdGlvbiBhdHRyaWJ1dGUsIG5hbm9NSVBTCitUaGVzZSBhdHRyaWJ1dGVzIHNwZWNpZnkgaG93 IGEgcGFydGljdWxhciBmdW5jdGlvbiBpcyBjYWxsZWQgb24gbmFub01JUFNALgorVGhlIGF0dHJp YnV0ZXMgb3ZlcnJpZGUgdGhlIEBvcHRpb257LW1sb25nLWNhbGxzfSAoQHB4cmVme25hbm9NSVBT IE9wdGlvbnN9KQorY29tbWFuZC1saW5lIHN3aXRjaC4gIFRoZSBAY29kZXtsb25nX2NhbGx9IGFu ZCBAY29kZXtmYXJ9IGF0dHJpYnV0ZXMgYXJlCitzeW5vbnltcywgYW5kIGNhdXNlIHRoZSBjb21w aWxlciB0byBhbHdheXMgY2FsbAordGhlIGZ1bmN0aW9uIGJ5IGZpcnN0IGxvYWRpbmcgaXRzIGFk ZHJlc3MgaW50byBhIHJlZ2lzdGVyLCBhbmQgdGhlbiB1c2luZwordGhlIGNvbnRlbnRzIG9mIHRo YXQgcmVnaXN0ZXIuICBUaGUgQGNvZGV7bmVhcn0gYXR0cmlidXRlIGhhcyB0aGUgb3Bwb3NpdGUK K2VmZmVjdDsgaXQgc3BlY2lmaWVzIHRoYXQgbm9uLVBJQyBjYWxscyBzaG91bGQgYmUgbWFkZSB1 c2luZyB0aGUgbW9yZQorZWZmaWNpZW50IEBjb2Rle2phbH0gaW5zdHJ1Y3Rpb24uCisKK0BpdGVt IHVzZV9oYXphcmRfYmFycmllcl9yZXR1cm4KK0BjaW5kZXggQGNvZGV7dXNlX2hhemFyZF9iYXJy aWVyX3JldHVybn0gZnVuY3Rpb24gYXR0cmlidXRlLCBuYW5vTUlQUworVGhpcyBmdW5jdGlvbiBh dHRyaWJ1dGUgaW5zdHJ1Y3RzIHRoZSBjb21waWxlciB0byBnZW5lcmF0ZSBhIGhhemFyZCBiYXJy aWVyCityZXR1cm4gdGhhdCBjbGVhcnMgYWxsIGV4ZWN1dGlvbiBhbmQgaW5zdHJ1Y3Rpb24gaGF6 YXJkcyB3aGlsZSByZXR1cm5pbmcsCitpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgYSBub3JtYWwgcmV0 dXJuIGluc3RydWN0aW9uLgorCitAZW5kIHRhYmxlCisKIEBub2RlIE5EUzMyIEZ1bmN0aW9uIEF0 dHJpYnV0ZXMKIEBzdWJzZWN0aW9uIE5EUzMyIEZ1bmN0aW9uIEF0dHJpYnV0ZXMKIApAQCAtMTQ0 OTUsNiArMTQ1ODksOCBAQCBpbnN0cnVjdGlvbnMsIGJ1dCBhbGxvdyB0aGUgY29tcGlsZXIgdG8g c2NoZWR1bGUgdGhvc2UgY2FsbHMuCiAqIE1JUFMgU0lNRCBBcmNoaXRlY3R1cmUgKE1TQSkgU3Vw cG9ydDo6CiAqIE90aGVyIE1JUFMgQnVpbHQtaW4gRnVuY3Rpb25zOjoKICogTVNQNDMwIEJ1aWx0 LWluIEZ1bmN0aW9uczo6CisqIG5hbm9NSVBTIEJ1aWx0LWluIEZ1bmN0aW9uczo6CisqIG5hbm9N SVBTIERTUCBCdWlsdC1pbiBGdW5jdGlvbnM6OgogKiBORFMzMiBCdWlsdC1pbiBGdW5jdGlvbnM6 OgogKiBwaWNvQ2hpcCBCdWlsdC1pbiBGdW5jdGlvbnM6OgogKiBCYXNpYyBQb3dlclBDIEJ1aWx0 LWluIEZ1bmN0aW9uczo6CkBAIC0xNzUxMCw2ICsxNzYwNiwzNCBAQCBvcHRpbWl6ZWQgdG8gYSBj b25zdGFudCBsYXRlci4gIFRoZSBudW1iZXIgb2YgY3ljbGVzIGRlbGF5ZWQgYnkgdGhpcwogYnVp bHRpbiBpcyBleGFjdC4KIEBlbmQgdGFibGUKIAorQG5vZGUgbmFub01JUFMgQnVpbHQtaW4gRnVu Y3Rpb25zCitAc3Vic2VjdGlvbiBuYW5vTUlQUyBCdWlsdC1pbiBGdW5jdGlvbnMKKworVGhlIGZv bGxvd2luZyBidWlsdC1pbiBmdW5jdGlvbnMgbWFwIGRpcmVjdGx5IHRvIGEgcGFydGljdWxhciBu YW5vTUlQUworaW5zdHJ1Y3Rpb24uICBQbGVhc2UgcmVmZXIgdG8gdGhlIGFyY2hpdGVjdHVyZSBz cGVjaWZpY2F0aW9uCitmb3IgZGV0YWlscyBvbiB3aGF0IGVhY2ggaW5zdHJ1Y3Rpb24gZG9lcy4K KworQHNtYWxsZXhhbXBsZQoraW1tMF8zOiBpbnRlZ2VyIGxpdGVyYWwgMCB0byAzLgordHlwZWRl ZiBpbnQgaTMyOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdWkzMjsKK0BlbmQgc21hbGxleGFtcGxl CisKK0BzbWFsbGV4YW1wbGUKK2kzMiBfX2J1aWx0aW5fbWlwc19hbGlnbiAoaTMyLCBpMzIsIGlt bTBfMykKK3VpMzIgX19idWlsdGluX21pcHNfYml0cmV2YiAodWkzMikKK3VpMzIgX19idWlsdGlu X21pcHNfYml0cmV2aCAodWkzMikKK3VpMzIgX19idWlsdGluX21pcHNfYml0cmV2dyAodWkzMikK K3VpMzIgX19idWlsdGluX21pcHNfYnl0ZXJldmggKHVpMzIpCit1aTMyIF9fYnVpbHRpbl9taXBz X2J5dGVyZXZ3ICh1aTMyKQorQGVuZCBzbWFsbGV4YW1wbGUKKworQG5vZGUgbmFub01JUFMgRFNQ IEJ1aWx0LWluIEZ1bmN0aW9ucworQHN1YnNlY3Rpb24gbmFub01JUFMgRFNQIEJ1aWx0LWluIEZ1 bmN0aW9ucworbmFub01JUFMgc3VwcG9ydHMgRFNQIFJldiAzIG9ud2FyZHMuIEZvciBkZXNjcmlw dGlvbiBvZiB0aGUgYnVpbHQtaW5zLAorUGxlYXNlIHJlZmVyIHRvIE1JUFMgRFNQIGFuZCBNSVBT IERTUCBSZXYgMiBzZWN0aW9ucyBpbgorQHB4cmVme01JUFMgRFNQIEJ1aWx0LWluIEZ1bmN0aW9u c30uCisKIEBub2RlIE5EUzMyIEJ1aWx0LWluIEZ1bmN0aW9ucwogQHN1YnNlY3Rpb24gTkRTMzIg QnVpbHQtaW4gRnVuY3Rpb25zCiAKZGlmZiAtLWdpdCBhL2djYy9kb2MvaW52b2tlLnRleGkgYi9n Y2MvZG9jL2ludm9rZS50ZXhpCmluZGV4IGJhOThlYWI2OGE1Li5jNGZmMWJmZjgxNiAxMDA2NDQK LS0tIGEvZ2NjL2RvYy9pbnZva2UudGV4aQorKysgYi9nY2MvZG9jL2ludm9rZS50ZXhpCkBAIC0x MTA4LDYgKzExMDgsMzUgQEAgT2JqZWN0aXZlLUMgYW5kIE9iamVjdGl2ZS1DKysgRGlhbGVjdHN9 LgogLW1zaWxpY29uLWVycmF0YT0gIC1tc2lsaWNvbi1lcnJhdGEtd2Fybj0gQGdvbAogLW1od211 bHQ9ICAtbWlucnQgIC1tdGlueS1wcmludGYgIC1tbWF4LWlubGluZS1zaGlmdD19CiAKK0BlbXBo e25hbm9NSVBTIE9wdGlvbnN9CitAZ2Njb3B0bGlzdHstRUwgLUVCIC1tYXJjaD1AdmFye2FyY2h9 IC1tdHVuZT1AdmFye2FyY2h9IEBnb2wKKy1tMzIgLW02NCBAZ29sCistbWNtb2RlbD1hdXRvIC1t Y21vZGVsPW1lZGl1bSAtbWNtb2RlbD1sYXJnZSBAZ29sCistbWJhbGMtc3R1YnMgLW1uby1iYWxj LXN0dWJzIEBnb2wKKy1tcGNyZWwgLW1uby1wY3JlbCBAZ29sCistbXBpZCAtbW5vLXBpZCBAZ29s CistbXJlbGF4IC1tbm8tcmVsYXggQGdvbAorLW1ncDMyIC1tZ3A2NCAtbWhhcmQtZmxvYXQgLW1z b2Z0LWZsb2F0IEBnb2wKKy1tc2luZ2xlLWZsb2F0IC1tZG91YmxlLWZsb2F0IEBnb2wKKy1tZHNw cjMgLW1uby1kc3ByMyBAZ29sCistbW1jdSAtbW1uby1tY3UgQGdvbAorLW1ldmEgLW1uby1ldmEg QGdvbAorLW12aXJ0IC1tbm8tdmlydCBAZ29sCistbXhwYSAtbW5vLXhwYSBAZ29sCistbW1zYSAt bW5vLW1zYSBAZ29sCistbXN5bTMyIC1tbm8tc3ltMzIgQGdvbAorLUdAdmFye251bX0gLW1sb2Nh bC1zZGF0YSAtbW5vLWxvY2FsLXNkYXRhIEBnb2wKKy1tZXh0ZXJuLXNkYXRhIC1tbm8tZXh0ZXJu LXNkYXRhIC1tZ3BvcHQgLW1uby1nb3B0IEBnb2wKKy1tZW1iZWRkZWQtZGF0YSAtbW5vLWVtYmVk ZGVkLWRhdGEgQGdvbAorLW11bmluaXQtY29uc3QtaW4tcm9kYXRhIC1tbm8tdW5pbml0LWNvbnN0 LWluLXJvZGF0YSBAZ29sCistbWNoZWNrLXplcm8tZGl2aXNpb24gLW1uby1jaGVjay16ZXJvLWRp dmlzaW9uIEBnb2wKKy1tZGl2aWRlLXRyYXBzIEBnb2wKKy1tbWVtY3B5IC1tbm8tbWVtY3B5IEBn b2wKKy1tbG9uZy1jYWxscyAtbW5vLWxvbmctY2FsbHMgQGdvbAorLW1pbWFkZCAtbW5vLWltYWRk IEBnb2wKKy1tZmx1c2gtZnVuYz1AdmFye2Z1bmN9IC1tbm8tZmx1c2gtZnVuYyBAZ29sCistbWJy YW5jaC1jb3N0PUB2YXJ7bnVtfX0KKwogQGVtcGh7TkRTMzIgT3B0aW9uc30KIEBnY2NvcHRsaXN0 ey1tYmlnLWVuZGlhbiAgLW1saXR0bGUtZW5kaWFuIEBnb2wKIC1tcmVkdWNlZC1yZWdzICAtbWZ1 bGwtcmVncyBAZ29sCkBAIC0xODM1MCw2ICsxODM3OSw3IEBAIHBsYXRmb3JtLgogKiBNTjEwMzAw IE9wdGlvbnM6OgogKiBNb3hpZSBPcHRpb25zOjoKICogTVNQNDMwIE9wdGlvbnM6OgorKiBuYW5v TUlQUyBPcHRpb25zOjoKICogTkRTMzIgT3B0aW9uczo6CiAqIE5pb3MgSUkgT3B0aW9uczo6CiAq IE52aWRpYSBQVFggT3B0aW9uczo6CkBAIC0yNjIxMiw2ICsyNjI0MiwzNDMgQEAgV2FybiBpZiBA c2FtcHtkZXZpY2VzLmNzdn0gaXMgbm90IGZvdW5kIG9yIHRoZXJlIGFyZSBwcm9ibGVtIHBhcnNp bmcgaXQKIAogQGVuZCB0YWJsZQogCitAbm9kZSBuYW5vTUlQUyBPcHRpb25zCitAc3Vic2VjdGlv biBuYW5vTUlQUyBPcHRpb25zCitAY2luZGV4IG5hbm9NSVBTIG9wdGlvbnMKKworQHRhYmxlIEBn Y2N0YWJvcHQKKworQGl0ZW0gLUVCCitAb3BpbmRleCBFQgorR2VuZXJhdGUgYmlnLWVuZGlhbiBj b2RlLiAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgQHNhbXB7bmFub21pcHMqZWItKi0qfQorY29u ZmlndXJhdGlvbnMuCisKK0BpdGVtIC1FTAorQG9waW5kZXggRUwKK0dlbmVyYXRlIGxpdHRsZS1l bmRpYW4gY29kZS4KKworQGl0ZW0gLW1hcmNoPUB2YXJ7YXJjaH0KK0BvcGluZGV4IG1hcmNoCitH ZW5lcmF0ZSBjb2RlIHRoYXQgcnVucyBvbiBAdmFye2FyY2h9LCB3aGljaCBjYW4gYmUgdGhlIG5h bWUgb2YgYQorZ2VuZXJpYyBuYW5vTUlQUywgIG9yIHRoZSBuYW1lIG9mIGEgcGFydGljdWxhciBw cm9jZXNzb3IuCitUaGUgSVNBIG5hbWVzIGFyZToKK0BzYW1wezMycjZ9LCBAc2FtcHs2NHI2fS4K K1RoZSBwcm9jZXNzb3IgbmFtZXMgYXJlOgorQHNhbXB7aTcyMDB9LgorCitHQ0MgZGVmaW5lcyB0 d28gbWFjcm9zIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIFRoZSBmaXJzdAor aXMgQGNvZGV7X01JUFNfQVJDSH0sIHdoaWNoIGdpdmVzIHRoZSBuYW1lIG9mIHRhcmdldCBhcmNo aXRlY3R1cmUsIGFzCithIHN0cmluZy4gIFRoZSBzZWNvbmQgaGFzIHRoZSBmb3JtIEBjb2Rle19N SVBTX0FSQ0hfQHZhcntmb299fSwKK3doZXJlIEB2YXJ7Zm9vfSBpcyB0aGUgY2FwaXRhbGl6ZWQg dmFsdWUgb2YgQGNvZGV7X01JUFNfQVJDSH1ALgorRm9yIGV4YW1wbGUsIEBvcHRpb257LW1hcmNo PTMycjZ9IHNldHMgQGNvZGV7X01JUFNfQVJDSH0KK3RvIEBjb2RleyIzMnI2In0gYW5kIGRlZmlu ZXMgdGhlIG1hY3JvIEBjb2Rle19NSVBTX0FSQ0hfMzJSNn0uCisKK0BpdGVtIC1tdHVuZT1AdmFy e2FyY2h9CitAb3BpbmRleCBtdHVuZQorT3B0aW1pemUgZm9yIEB2YXJ7YXJjaH0uICBBbW9uZyBv dGhlciB0aGluZ3MsIHRoaXMgb3B0aW9uIGNvbnRyb2xzCit0aGUgd2F5IGluc3RydWN0aW9ucyBh cmUgc2NoZWR1bGVkLCBhbmQgdGhlIHBlcmNlaXZlZCBjb3N0IG9mIGFyaXRobWV0aWMKK29wZXJh dGlvbnMuICBUaGUgbGlzdCBvZiBAdmFye2FyY2h9IHZhbHVlcyBpcyB0aGUgc2FtZSBhcyBmb3IK K0BvcHRpb257LW1hcmNofS4KKworV2hlbiB0aGlzIG9wdGlvbiBpcyBub3QgdXNlZCwgR0NDIG9w dGltaXplcyBmb3IgdGhlIHByb2Nlc3Nvcgorc3BlY2lmaWVkIGJ5IEBvcHRpb257LW1hcmNofS4g IEJ5IHVzaW5nIEBvcHRpb257LW1hcmNofSBhbmQKK0BvcHRpb257LW10dW5lfSB0b2dldGhlciwg aXQgaXMgcG9zc2libGUgdG8gZ2VuZXJhdGUgY29kZSB0aGF0CitydW5zIG9uIGEgZmFtaWx5IG9m IHByb2Nlc3NvcnMsIGJ1dCBvcHRpbWl6ZSB0aGUgY29kZSBmb3Igb25lCitwYXJ0aWN1bGFyIG1l bWJlciBvZiB0aGF0IGZhbWlseS4KKworQG9wdGlvbnstbXR1bmV9IGRlZmluZXMgdGhlIG1hY3Jv cyBAY29kZXtfTUlQU19UVU5FfSBhbmQKK0Bjb2Rle19NSVBTX1RVTkVfQHZhcntmb299fSwgd2hp Y2ggd29yayBpbiB0aGUgc2FtZSB3YXkgYXMgdGhlCitAb3B0aW9uey1tYXJjaH0gb25lcyBkZXNj cmliZWQgYWJvdmUuCisKK0BpdGVtIC1tMzIKK0BpdGVteCAtbTY0CitAb3BpbmRleCBtMzIKK0Bv cGluZGV4IG02NAorR2VuZXJhdGUgY29kZSBmb3IgdGhlIGdpdmVuIEFCSSwgZWl0aGVyIDMyLWJp dCBvciA2NC1iaXQgdmFyaWFudC4KKworQGl0ZW0gLW1jbW9kZWw9YXV0bworQG9waW5kZXggbWNt b2RlbD1hdXRvCitHZW5lcmF0ZSB0aGUgbW9zdCBjb21wcmVzc2VkIGNvZGUgcG9zc2libGUgYnkg cmVseWluZyBvbiB0aGUgbGlua2VyIHRvIGV4cGFuZAorb3IgcmVsYXggY29kZSBhcHByb3ByaWF0 ZWx5LCBkZXBlbmRpbmcgb24gYSBnaXZlbiBzeW1ib2wncyB2aXNpYmlsaXR5IGF0CitsaW5rLXRp bWUuCisKK0BpdGVtIC1tY21vZGVsPW1lZGl1bQorQG9waW5kZXggbWNtb2RlbD1tZWRpdW0KK0dl bmVyYXRlIGNvZGUgd2hpY2ggaXMgYXBwcm9wcmlhdGUgZm9yIGF2ZXJhZ2Utc2l6ZWQgYXBwbGlj YXRpb25zIHdpdGhvdXQKK3JlbHlpbmcgb24gbGlua2VyIHJlbGF4YXRpb25zIG9yIGV4cGFuc2lv bnMuICBUaGUgR1AgYXJlYSBjYW4gbm90IGV4Y2VlZCAyTWlCCithbmQgZGlyZWN0IGNhbGxzIGhh dmUgYSBtYXhpbXVtIHJhbmdlIG9mIDMyIE1pQi4KKworQGl0ZW0gLW1jbW9kZWw9bGFyZ2UKK0Bv cGluZGV4IG1jbW9kZWw9bGFyZ2UKK0dlbmVyYXRlcyBjb2RlIHdoaWNoIGlzIGFwcHJvcHJpYXRl IGZvciBsYXJnZSBhcHBsaWNhdGlvbnMgd2l0aG91dCByZWx5aW5nIG9uCitsaW5rZXIgcmVsYXhh dGlvbnMgb3IgZXhwYW5zaW9ucy4gIFRoZXJlIGFyZSBubyBpbmhlcmVudCBzaXplIGxpbWl0cyB3 aGVuCit1c2luZyB0aGlzIG1vZGVsLgorCitAaXRlbSAtbWJhbGMtc3R1YnMKK0BpdGVteCAtbW5v LWJhbGMtc3R1YnMKK0BvcGluZGV4IG1iYWxjLXN0dWJzCitAb3BpbmRleCBtbm8tYmFsYy1zdHVi cworRW5hYmxlIChkaXNhYmxlKSB0aGUgYXNzZW1ibGVyJ3Mgb3V0LW9mLXJhbmdlIGNhbGwgb3B0 aW1pemF0aW9uIHRocm91Z2gKK3RyYW1wb2xpbmUgc3R1YnMuCisKK1RoZSBkZWZhdWx0IG9wdGlv biBpcyBAb3B0aW9uey1tYmFsYy1zdHVic30gZm9yIEBvcHRpb257LU9zfSBvcHRpbWl6YXRpb24K K2xldmVsIGFuZCBAb3B0aW9uey1tbm8tYmFsYy1zdHVic30gZm9yIGFueSBvdGhlciBvcHRpbWl6 YXRpb24gbGV2ZWwuCisKK0BpdGVtIC1tcGNyZWwKK0BpdGVteCAtbW5vLXBjcmVsCitAb3BpbmRl eCBtcGNyZWwKK0BvcGluZGV4IG1uby1wY3JlbAorQG9wdGlvbnstbXBjcmVsfSBmb3JjZXMgUEMt cmVsYXRpdmUgYWRkcmVzc2luZyBmb3Igbm9uLXByZS1lbXB0aWJsZSBzeW1ib2xzLgorVGhpcyBh bHNvIGVmZmVjdGl2ZWx5IGRpc2FibGVzIGFic29sdXRlIGFkZHJlc3NpbmcuCitAb3B0aW9uey1t bm8tcGNyZWx9IGF2b2lkcyBQQy1yZWxhdGl2ZSBhZGRyZXNzaW5nIGZvciBub24tcHJlLWVtcHRp YmxlCitzeW1ib2xzIHdoZXJlIGFsdGVybmF0aXZlIHNlcXVlbmNlcyBhcmUgbm90IGxhcmdlciBv ciBzbG93ZXIuCisKK1RoZSBkZWZhdWx0IG9wdGlvbiBpcyBAb3B0aW9uey1tcGNyZWx9LgorCitA aXRlbSAtbXBpZAorQGl0ZW14IC1tbm8tcGlkCitAb3BpbmRleCBtcGlkCitAb3BpbmRleCBtbm8t cGlkCitFbmZvcmNlIChkbyBub3QgZW5mb3JjZSkgcG9zaXRpb24taW5kZXBlbmRlbnQgZGF0YSBi eSByZXF1aXJpbmcgR1AtcmVsYXRpdmUKK2FkZHJlc3NpbmcgZm9yIGFsbCBub24tcHJlLWVtcHRp YmxlIGRhdGEgc3ltYm9scy4KKworVGhlIGRlZmF1bHQgaXMgQG9wdGlvbnttbm8tcGlkfS4KKwor QGl0ZW0gLW1yZWxheAorQGl0ZW14IC1tbm8tcmVsYXgKK0BvcGluZGV4IG1yZWxheAorQG9waW5k ZXggbW5vLXJlbGF4CitFbmFibGUgKGRpc2FibGUpIGxpbmtlciByZWxheGF0aW9ucyBhbmQgZXhw YW5zaW9ucyBmb3IgdGhlIGNvbXBpbGF0aW9uIHVuaXQuCitUaGUgY29tcGlsZXIgZW1pdHMgKGRv ZXMgbm90IGVtaXQpIGEgQGNvZGV7LmxpbmtyZWxheH0gZGlyZWN0aXZlIHRvCit0aGUgYXNzZW1i bHkgZmlsZSB0aGF0IGNhdXNlcyBhbiBFTEYgaGVhZGVyIGZsYWcgdG8gYmUgc2V0IGluIHRoZSBv YmplY3QuCisKK1RoZSBkZWZhdWx0IG9wdGlvbiBpcyB0byBlbWl0IHRoZSBAY29kZXsubGlua3Jl bGF4fSBkaXJlY3RpdmUuCisKK0BpdGVtIC1tZ3AzMgorQG9waW5kZXggbWdwMzIKK0Fzc3VtZSB0 aGF0IGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgYXJlIDMyIGJpdHMgd2lkZS4KKworQGl0ZW0g LW1ncDY0CitAb3BpbmRleCBtZ3A2NAorQXNzdW1lIHRoYXQgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lz dGVycyBhcmUgNjQgYml0cyB3aWRlLgorCitAaXRlbSAtbWhhcmQtZmxvYXQKK0BvcGluZGV4IG1o YXJkLWZsb2F0CitVc2UgZmxvYXRpbmctcG9pbnQgY29wcm9jZXNzb3IgaW5zdHJ1Y3Rpb25zLgor CitAaXRlbSAtbXNvZnQtZmxvYXQKK0BvcGluZGV4IG1zb2Z0LWZsb2F0CitEbyBub3QgdXNlIGZs b2F0aW5nLXBvaW50IGNvcHJvY2Vzc29yIGluc3RydWN0aW9ucy4gIEltcGxlbWVudAorZmxvYXRp bmctcG9pbnQgY2FsY3VsYXRpb25zIHVzaW5nIGxpYnJhcnkgY2FsbHMgaW5zdGVhZC4KKworQGl0 ZW0gLW1zaW5nbGUtZmxvYXQKK0BvcGluZGV4IG1zaW5nbGUtZmxvYXQKK0Fzc3VtZSB0aGF0IHRo ZSBmbG9hdGluZy1wb2ludCBjb3Byb2Nlc3NvciBvbmx5IHN1cHBvcnRzIHNpbmdsZS1wcmVjaXNp b24KK29wZXJhdGlvbnMuCisKK0BpdGVtIC1tZG91YmxlLWZsb2F0CitAb3BpbmRleCBtZG91Ymxl LWZsb2F0CitBc3N1bWUgdGhhdCB0aGUgZmxvYXRpbmctcG9pbnQgY29wcm9jZXNzb3Igc3VwcG9y dHMgZG91YmxlLXByZWNpc2lvbgorb3BlcmF0aW9ucy4gIFRoaXMgaXMgdGhlIGRlZmF1bHQuCisK K0BpdGVtIC1tZHNwcjMKK0BpdGVteCAtbW5vLWRzcHIzCitAb3BpbmRleCBtZHNwcjMKK0BvcGlu ZGV4IG1uby1kc3ByMworVXNlIChkbyBub3QgdXNlKSByZXZpc2lvbiAzIG9mIHRoZSBNSVBTIERT UCBBU0VALgorQHhyZWZ7TUlQUyBEU1AgQnVpbHQtaW4gRnVuY3Rpb25zfS4gIFRoaXMgb3B0aW9u IGRlZmluZXMgdGhlCitwcmVwcm9jZXNzb3IgbWFjcm9zIEBjb2Rle19fbWlwc19kc3B9IGFuZCBA Y29kZXtfX21pcHNfZHNwcjN9LgorSXQgYWxzbyBkZWZpbmVzIEBjb2Rle19fbWlwc19kc3BfcmV2 fSB0byAzLgorCitAaXRlbSAtbW10CitAaXRlbXggLW1uby1tdAorQG9waW5kZXggbW10CitAb3Bp bmRleCBtbm8tbXQKK1VzZSAoZG8gbm90IHVzZSkgTVQgTXVsdGl0aHJlYWRpbmcgaW5zdHJ1Y3Rp b25zLgorCitAaXRlbSAtbW1jdQorQGl0ZW14IC1tbm8tbWN1CitAb3BpbmRleCBtbWN1CitAb3Bp bmRleCBtbm8tbWN1CitVc2UgKGRvIG5vdCB1c2UpIHRoZSBNSVBTIE1DVSBBU0UgaW5zdHJ1Y3Rp b25zLgorCitAaXRlbSAtbWV2YQorQGl0ZW14IC1tbm8tZXZhCitAb3BpbmRleCBtZXZhCitAb3Bp bmRleCBtbm8tZXZhCitVc2UgKGRvIG5vdCB1c2UpIHRoZSBNSVBTIEVuaGFuY2VkIFZpcnR1YWwg QWRkcmVzc2luZyBpbnN0cnVjdGlvbnMuCisKK0BpdGVtIC1tdmlydAorQGl0ZW14IC1tbm8tdmly dAorQG9waW5kZXggbXZpcnQKK0BvcGluZGV4IG1uby12aXJ0CitVc2UgKGRvIG5vdCB1c2UpIHRo ZSBNSVBTIFZpcnR1YWxpemF0aW9uIEFwcGxpY2F0aW9uIFNwZWNpZmljIGluc3RydWN0aW9ucy4K KworQGl0ZW0gLW14cGEKK0BpdGVteCAtbW5vLXhwYQorQG9waW5kZXggbXhwYQorQG9waW5kZXgg bW5vLXhwYQorVXNlIChkbyBub3QgdXNlKSB0aGUgTUlQUyBlWHRlbmRlZCBQaHlzaWNhbCBBZGRy ZXNzIChYUEEpIGluc3RydWN0aW9ucy4KKworQGl0ZW0gLW1zeW0zMgorQGl0ZW14IC1tbm8tc3lt MzIKK0BvcGluZGV4IG1zeW0zMgorQG9waW5kZXggbW5vLXN5bTMyCitBc3N1bWUgKGRvIG5vdCBh c3N1bWUpIHRoYXQgYWxsIHN5bWJvbHMgaGF2ZSAzMi1iaXQgdmFsdWVzLCByZWdhcmRsZXNzCitv ZiB0aGUgc2VsZWN0ZWQgQUJJQC4gIFRoaXMgb3B0aW9uIGlzIHVzZWZ1bCBpbiBjb21iaW5hdGlv biB3aXRoCitAb3B0aW9uey1tNjR9IGJlY2F1c2UgaXQgYWxsb3dzIEdDQyB0byBnZW5lcmF0ZSBz aG9ydGVyIGFuZCBmYXN0ZXIgcmVmZXJlbmNlcwordG8gc3ltYm9saWMgYWRkcmVzc2VzLgorCitA aXRlbSAtRyBAdmFye251bX0KK0BvcGluZGV4IEcKK1B1dCBkZWZpbml0aW9ucyBvZiBleHRlcm5h bGx5LXZpc2libGUgZGF0YSBpbiBhIHNtYWxsIGRhdGEgc2VjdGlvbgoraWYgdGhhdCBkYXRhIGlz IG5vIGJpZ2dlciB0aGFuIEB2YXJ7bnVtfSBieXRlcy4gIEdDQyBjYW4gdGhlbiBnZW5lcmF0ZQor bW9yZSBlZmZpY2llbnQgYWNjZXNzZXMgdG8gdGhlIGRhdGE7IHNlZSBAb3B0aW9uey1tZ3BvcHR9 IGZvciBkZXRhaWxzLgorCitUaGUgZGVmYXVsdCBAb3B0aW9uey1HfSBvcHRpb24gZGVwZW5kcyBv biB0aGUgY29uZmlndXJhdGlvbi4KKworQGl0ZW0gLW1sb2NhbC1zZGF0YQorQGl0ZW14IC1tbm8t bG9jYWwtc2RhdGEKK0BvcGluZGV4IG1sb2NhbC1zZGF0YQorQG9waW5kZXggbW5vLWxvY2FsLXNk YXRhCitFeHRlbmQgKGRvIG5vdCBleHRlbmQpIHRoZSBAb3B0aW9uey1HfSBiZWhhdmlvciB0byBs b2NhbCBkYXRhIHRvbywKK3N1Y2ggYXMgdG8gc3RhdGljIHZhcmlhYmxlcyBpbiBDQC4gIEBvcHRp b257LW1sb2NhbC1zZGF0YX0gaXMgdGhlCitkZWZhdWx0IGZvciBhbGwgY29uZmlndXJhdGlvbnMu CisKK0lmIHRoZSBsaW5rZXIgY29tcGxhaW5zIHRoYXQgYW4gYXBwbGljYXRpb24gaXMgdXNpbmcg dG9vIG11Y2ggc21hbGwgZGF0YSwKK3lvdSBtaWdodCB3YW50IHRvIHRyeSByZWJ1aWxkaW5nIHRo ZSBsZXNzIHBlcmZvcm1hbmNlLWNyaXRpY2FsIHBhcnRzIHdpdGgKK0BvcHRpb257LW1uby1sb2Nh bC1zZGF0YX0uICBZb3UgbWlnaHQgYWxzbyB3YW50IHRvIGJ1aWxkIGxhcmdlCitsaWJyYXJpZXMg d2l0aCBAb3B0aW9uey1tbm8tbG9jYWwtc2RhdGF9LCBzbyB0aGF0IHRoZSBsaWJyYXJpZXMgbGVh dmUKK21vcmUgcm9vbSBmb3IgdGhlIG1haW4gcHJvZ3JhbS4KKworQGl0ZW0gLW1leHRlcm4tc2Rh dGEKK0BpdGVteCAtbW5vLWV4dGVybi1zZGF0YQorQG9waW5kZXggbWV4dGVybi1zZGF0YQorQG9w aW5kZXggbW5vLWV4dGVybi1zZGF0YQorQXNzdW1lIChkbyBub3QgYXNzdW1lKSB0aGF0IGV4dGVy bmFsbHktZGVmaW5lZCBkYXRhIGlzIGluCithIHNtYWxsIGRhdGEgc2VjdGlvbiBpZiB0aGUgc2l6 ZSBvZiB0aGF0IGRhdGEgaXMgd2l0aGluIHRoZSBAb3B0aW9uey1HfSBsaW1pdC4KK0BvcHRpb257 LW1leHRlcm4tc2RhdGF9IGlzIHRoZSBkZWZhdWx0IGZvciBhbGwgY29uZmlndXJhdGlvbnMuCisK K0lmIHlvdSBjb21waWxlIGEgbW9kdWxlIEB2YXJ7TW9kfSB3aXRoIEBvcHRpb257LW1leHRlcm4t c2RhdGF9IEBvcHRpb257LUcKK0B2YXJ7bnVtfX0gQG9wdGlvbnstbWdwb3B0fSwgYW5kIEB2YXJ7 TW9kfSByZWZlcmVuY2VzIGEgdmFyaWFibGUgQHZhcntWYXJ9Cit0aGF0IGlzIG5vIGJpZ2dlciB0 aGFuIEB2YXJ7bnVtfSBieXRlcywgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQgQHZhcntWYXJ9Citp cyBwbGFjZWQgaW4gYSBzbWFsbCBkYXRhIHNlY3Rpb24uICBJZiBAdmFye1Zhcn0gaXMgZGVmaW5l ZCBieSBhbm90aGVyCittb2R1bGUsIHlvdSBtdXN0IGVpdGhlciBjb21waWxlIHRoYXQgbW9kdWxl IHdpdGggYSBoaWdoLWVub3VnaAorQG9wdGlvbnstR30gc2V0dGluZyBvciBhdHRhY2ggYSBAY29k ZXtzZWN0aW9ufSBhdHRyaWJ1dGUgdG8gQHZhcntWYXJ9J3MKK2RlZmluaXRpb24uICBJZiBAdmFy e1Zhcn0gaXMgY29tbW9uLCB5b3UgbXVzdCBsaW5rIHRoZSBhcHBsaWNhdGlvbgord2l0aCBhIGhp Z2gtZW5vdWdoIEBvcHRpb257LUd9IHNldHRpbmcuCisKK1RoZSBlYXNpZXN0IHdheSBvZiBzYXRp c2Z5aW5nIHRoZXNlIHJlc3RyaWN0aW9ucyBpcyB0byBjb21waWxlCithbmQgbGluayBldmVyeSBt b2R1bGUgd2l0aCB0aGUgc2FtZSBAb3B0aW9uey1HfSBvcHRpb24uICBIb3dldmVyLAoreW91IG1h eSB3aXNoIHRvIGJ1aWxkIGEgbGlicmFyeSB0aGF0IHN1cHBvcnRzIHNldmVyYWwgZGlmZmVyZW50 CitzbWFsbCBkYXRhIGxpbWl0cy4gIFlvdSBjYW4gZG8gdGhpcyBieSBjb21waWxpbmcgdGhlIGxp YnJhcnkgd2l0aAordGhlIGhpZ2hlc3Qgc3VwcG9ydGVkIEBvcHRpb257LUd9IHNldHRpbmcgYW5k IGFkZGl0aW9uYWxseSB1c2luZworQG9wdGlvbnstbW5vLWV4dGVybi1zZGF0YX0gdG8gc3RvcCB0 aGUgbGlicmFyeSBmcm9tIG1ha2luZyBhc3N1bXB0aW9ucworYWJvdXQgZXh0ZXJuYWxseS1kZWZp bmVkIGRhdGEuCisKK0BpdGVtIC1tZ3BvcHQKK0BpdGVteCAtbW5vLWdwb3B0CitAb3BpbmRleCBt Z3BvcHQKK0BvcGluZGV4IG1uby1ncG9wdAorVXNlIChkbyBub3QgdXNlKSBHUC1yZWxhdGl2ZSBh Y2Nlc3NlcyBmb3Igc3ltYm9scyB0aGF0IGFyZSBrbm93biB0byBiZQoraW4gYSBzbWFsbCBkYXRh IHNlY3Rpb247IHNlZSBAb3B0aW9uey1HfSwgQG9wdGlvbnstbWxvY2FsLXNkYXRhfSBhbmQKK0Bv cHRpb257LW1leHRlcm4tc2RhdGF9LiAgQG9wdGlvbnstbWdwb3B0fSBpcyB0aGUgZGVmYXVsdCBm b3IgYWxsCitjb25maWd1cmF0aW9ucy4KKworQG9wdGlvbnstbW5vLWdwb3B0fSBpcyB1c2VmdWwg Zm9yIGNhc2VzIHdoZXJlIHRoZSBAY29kZXskZ3B9IHJlZ2lzdGVyCittaWdodCBub3QgaG9sZCB0 aGUgdmFsdWUgb2YgQGNvZGV7X2dwfS4gIEZvciBleGFtcGxlLCBpZiB0aGUgY29kZSBpcworcGFy dCBvZiBhIGxpYnJhcnkgdGhhdCBtaWdodCBiZSB1c2VkIGluIGEgYm9vdCBtb25pdG9yLCBwcm9n cmFtcyB0aGF0CitjYWxsIGJvb3QgbW9uaXRvciByb3V0aW5lcyBwYXNzIGFuIHVua25vd24gdmFs dWUgaW4gQGNvZGV7JGdwfS4KKyhJbiBzdWNoIHNpdHVhdGlvbnMsIHRoZSBib290IG1vbml0b3Ig aXRzZWxmIGlzIHVzdWFsbHkgY29tcGlsZWQKK3dpdGggQG9wdGlvbnstRzB9LikKKworQG9wdGlv bnstbW5vLWdwb3B0fSBpbXBsaWVzIEBvcHRpb257LW1uby1sb2NhbC1zZGF0YX0gYW5kCitAb3B0 aW9uey1tbm8tZXh0ZXJuLXNkYXRhfS4KKworQGl0ZW0gLW1lbWJlZGRlZC1kYXRhCitAaXRlbXgg LW1uby1lbWJlZGRlZC1kYXRhCitAb3BpbmRleCBtZW1iZWRkZWQtZGF0YQorQG9waW5kZXggbW5v LWVtYmVkZGVkLWRhdGEKK0FsbG9jYXRlIHZhcmlhYmxlcyB0byB0aGUgcmVhZC1vbmx5IGRhdGEg c2VjdGlvbiBmaXJzdCBpZiBwb3NzaWJsZSwgdGhlbgorbmV4dCBpbiB0aGUgc21hbGwgZGF0YSBz ZWN0aW9uIGlmIHBvc3NpYmxlLCBvdGhlcndpc2UgaW4gZGF0YS4gIFRoaXMgZ2l2ZXMKK3NsaWdo dGx5IHNsb3dlciBjb2RlIHRoYW4gdGhlIGRlZmF1bHQsIGJ1dCByZWR1Y2VzIHRoZSBhbW91bnQg b2YgUkFNIHJlcXVpcmVkCit3aGVuIGV4ZWN1dGluZywgYW5kIHRodXMgbWF5IGJlIHByZWZlcnJl ZCBmb3Igc29tZSBlbWJlZGRlZCBzeXN0ZW1zLgorCitAaXRlbSAtbXVuaW5pdC1jb25zdC1pbi1y b2RhdGEKK0BpdGVteCAtbW5vLXVuaW5pdC1jb25zdC1pbi1yb2RhdGEKK0BvcGluZGV4IG11bmlu aXQtY29uc3QtaW4tcm9kYXRhCitAb3BpbmRleCBtbm8tdW5pbml0LWNvbnN0LWluLXJvZGF0YQor UHV0IHVuaW5pdGlhbGl6ZWQgQGNvZGV7Y29uc3R9IHZhcmlhYmxlcyBpbiB0aGUgcmVhZC1vbmx5 IGRhdGEgc2VjdGlvbi4KK1RoaXMgb3B0aW9uIGlzIG9ubHkgbWVhbmluZ2Z1bCBpbiBjb25qdW5j dGlvbiB3aXRoIEBvcHRpb257LW1lbWJlZGRlZC1kYXRhfS4KKworQGl0ZW0gLW1jaGVjay16ZXJv LWRpdmlzaW9uCitAaXRlbXggLW1uby1jaGVjay16ZXJvLWRpdmlzaW9uCitAb3BpbmRleCBtY2hl Y2stemVyby1kaXZpc2lvbgorQG9waW5kZXggbW5vLWNoZWNrLXplcm8tZGl2aXNpb24KK1RyYXAg KGRvIG5vdCB0cmFwKSBvbiBpbnRlZ2VyIGRpdmlzaW9uIGJ5IHplcm8uCisKK1RoZSBkZWZhdWx0 IGlzIEBvcHRpb257LW1uby1jaGVjay16ZXJvLWRpdmlzaW9ufSBhdCBAb3B0aW9uey1Pc30gbGV2 ZWwgYW5kCitAb3B0aW9uey1tY2hlY2stemVyby1kaXZpc2lvbn0gZm9yIGFueSBvdGhlciBvcHRp bWl6YXRpb24gbGV2ZWwuCisKK0BpdGVtIC1tZGl2aWRlLXRyYXBzCitAb3BpbmRleCBtZGl2aWRl LXRyYXBzCituYW5vTUlQUyBzeXN0ZW1zIGNoZWNrIGZvciBkaXZpc2lvbiBieSB6ZXJvIGJ5IGdl bmVyYXRpbmcgZWl0aGVyIGEKK2NvbmRpdGlvbmFsIHRyYXAgb3IgYSBicmVhayBpbnN0cnVjdGlv bi4gIFVzaW5nIHRyYXBzIHJlc3VsdHMgaW4KK3NtYWxsZXIgY29kZSwgYnV0IGl0IGlzIG5vdCBz dXBwb3J0ZWQgaW4gdGhlIG5hbm9NSVBTIFN1YnNldC4gIEFsc28sIHNvbWUKK3ZlcnNpb25zIG9m IHRoZSBMaW51eCBrZXJuZWwgaGF2ZSBhIGJ1ZyB0aGF0IHByZXZlbnRzIHRyYXAgZnJvbQorZ2Vu ZXJhdGluZyB0aGUgcHJvcGVyIHNpZ25hbCAoQGNvZGV7U0lHRlBFfSkuICBVc2UgQG9wdGlvbnst bWRpdmlkZS10cmFwc30gdG8KK2FsbG93IGNvbmRpdGlvbmFsIHRyYXBzIG9uIGFyY2hpdGVjdHVy ZXMgdGhhdCBzdXBwb3J0IHRoZW0gYW5kCitAb3B0aW9uey1tbm8tZGl2aWRlLXRyYXBzfSB0byBm b3JjZSB0aGUgdXNlIG9mIGJyZWFrcy4KKworRGl2aWRlLWJ5LXplcm8gY2hlY2tzIGNhbiBiZSBj b21wbGV0ZWx5IGRpc2FibGVkIHVzaW5nCitAb3B0aW9uey1tbm8tY2hlY2stemVyby1kaXZpc2lv bn0uCisKK0BpdGVtIC1tbWVtY3B5CitAaXRlbXggLW1uby1tZW1jcHkKK0BvcGluZGV4IG1tZW1j cHkKK0BvcGluZGV4IG1uby1tZW1jcHkKK0ZvcmNlIChkbyBub3QgZm9yY2UpIHRoZSB1c2Ugb2Yg QGNvZGV7bWVtY3B5fSBmb3Igbm9uLXRyaXZpYWwgYmxvY2sKK21vdmVzLiAgVGhlIGRlZmF1bHQg aXMgQG9wdGlvbnstbW5vLW1lbWNweX0sIHdoaWNoIGFsbG93cyBHQ0MgdG8gaW5saW5lCittb3N0 IGNvbnN0YW50LXNpemVkIGNvcGllcy4KKworQGl0ZW0gLW1sb25nLWNhbGxzCitAaXRlbXggLW1u by1sb25nLWNhbGxzCitAb3BpbmRleCBtbG9uZy1jYWxscworQG9waW5kZXggbW5vLWxvbmctY2Fs bHMKK0Rpc2FibGUgKGRvIG5vdCBkaXNhYmxlKSB1c2Ugb2YgdGhlIEBjb2Rle2JhbGN9IGluc3Ry dWN0aW9uLiAgQ2FsbGluZworZnVuY3Rpb25zIHVzaW5nIEBjb2Rle2JhbGN9IGlzIG1vcmUgZWZm aWNpZW50IGJ1dCByZXF1aXJlcyB0aGUgY2FsbGVyCithbmQgY2FsbGVlIHRvIHdpdGhpbiB0aGUg c2FtZSA2NCBtZWdhYnl0ZSB3aW5kb3cuCisKK1RoZSBkZWZhdWx0IGlzIEBvcHRpb257LW1uby1s b25nLWNhbGxzfS4KKworQGl0ZW0gLW1pbWFkZAorQGl0ZW14IC1tbm8taW1hZGQKK0BvcGluZGV4 IG1pbWFkZAorQG9waW5kZXggbW5vLWltYWRkCitFbmFibGUgKGRpc2FibGUpIHVzZSBvZiB0aGUg QGNvZGV7bWFkZH0gYW5kIEBjb2Rle21zdWJ9IGludGVnZXIKK2luc3RydWN0aW9ucy4gIFRoZSBk ZWZhdWx0IGlzIEBvcHRpb257LW1pbWFkZH0gb24gYXJjaGl0ZWN0dXJlcwordGhhdCBzdXBwb3J0 IEBjb2Rle21hZGR9IGFuZCBAY29kZXttc3VifSBhcyBwYXJ0IG9mIHRoZSBEU1AuCisKK0BpdGVt IC1tZmx1c2gtZnVuYz1AdmFye2Z1bmN9CitAaXRlbXggLW1uby1mbHVzaC1mdW5jCitAb3BpbmRl eCBtZmx1c2gtZnVuYworU3BlY2lmaWVzIHRoZSBmdW5jdGlvbiB0byBjYWxsIHRvIGZsdXNoIHRo ZSBJIGFuZCBEIGNhY2hlcywgb3IgdG8gbm90CitjYWxsIGFueSBzdWNoIGZ1bmN0aW9uLiAgSWYg Y2FsbGVkLCB0aGUgZnVuY3Rpb24gbXVzdCB0YWtlIHRoZSBzYW1lCithcmd1bWVudHMgYXMgdGhl IGNvbW1vbiBAY29kZXtfZmx1c2hfZnVuY30sIHRoYXQgaXMsIHRoZSBhZGRyZXNzIG9mIHRoZQor bWVtb3J5IHJhbmdlIGZvciB3aGljaCB0aGUgY2FjaGUgaXMgYmVpbmcgZmx1c2hlZCwgdGhlIHNp emUgb2YgdGhlCittZW1vcnkgcmFuZ2UsIGFuZCB0aGUgbnVtYmVyIDMgKHRvIGZsdXNoIGJvdGgg Y2FjaGVzKS4gIFRoZSBkZWZhdWx0CitkZXBlbmRzIG9uIHRoZSB0YXJnZXQgR0NDIHdhcyBjb25m aWd1cmVkIGZvciwgYnV0IGNvbW1vbmx5IGlzIGVpdGhlcgorQGNvZGV7X2ZsdXNoX2Z1bmN9IG9y IEBjb2Rle19fY3B1X2ZsdXNofS4KKworQGl0ZW0gbWJyYW5jaC1jb3N0PUB2YXJ7bnVtfQorQG9w aW5kZXggbWJyYW5jaC1jb3N0CitTZXQgdGhlIGNvc3Qgb2YgYnJhbmNoZXMgdG8gcm91Z2hseSBA dmFye251bX0gYGBzaW1wbGUnJyBpbnN0cnVjdGlvbnMuCitUaGlzIGNvc3QgaXMgb25seSBhIGhl dXJpc3RpYyBhbmQgaXMgbm90IGd1YXJhbnRlZWQgdG8gcHJvZHVjZQorY29uc2lzdGVudCByZXN1 bHRzIGFjcm9zcyByZWxlYXNlcy4gIEEgemVybyBjb3N0IHJlZHVuZGFudGx5IHNlbGVjdHMKK3Ro ZSBkZWZhdWx0LCB3aGljaCBpcyBiYXNlZCBvbiB0aGUgQG9wdGlvbnstbXR1bmV9IHNldHRpbmcu CisKK0BlbmQgdGFibGUKKwogQG5vZGUgTkRTMzIgT3B0aW9ucwogQHN1YnNlY3Rpb24gTkRTMzIg T3B0aW9ucwogQGNpbmRleCBORFMzMiBPcHRpb25zCmRpZmYgLS1naXQgYS9nY2MvZG9jL21kLnRl eGkgYi9nY2MvZG9jL21kLnRleGkKaW5kZXggMmI0MWNiN2ZiN2IuLjg4M2VmOGJkYzAzIDEwMDY0 NAotLS0gYS9nY2MvZG9jL21kLnRleGkKKysrIGIvZ2NjL2RvYy9tZC50ZXhpCkBAIC0yOTY5LDYg KzI5NjksNzcgQEAgTWVtb3J5IHJlZmVyZW5jZSwgc3RhY2sgb25seS4KIAogQGVuZCB0YWJsZQog CitAaXRlbSBuYW5vTUlQUy0tLUBmaWxle2NvbmZpZy9taXBzL2NvbnN0cmFpbnRzLm1kfQorQHRh YmxlIEBjb2RlCitAaXRlbSBjCitBIHJlZ2lzdGVyIHN1aXRhYmxlIGZvciB1c2UgaW4gYW4gaW5k aXJlY3QganVtcC4KKworQGl0ZW0gZAorRXF1aXZhbGVudCB0byBAY29kZXtyfTsgcmV0YWluZWQg Zm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgorCitAaXRlbSBmCitBIGZsb2F0aW5nLXBvaW50 IHJlZ2lzdGVyIChpZiBhdmFpbGFibGUpLgorCitAaXRlbSBtCitXaGVuIHVzZWQgYXMgYSBjb25z dHJhaW50IGluIGFuIEFTTSBzdGF0ZW1lbnQgdGhpcyBpcyBhdXRvbWF0aWNhbGx5CityZS1pbnRl cnByZXRlZCBhcyB0aGUgWlIgY29uc3RyYWludC4gIFRoaXMgdHJhbnNmb3JtYXRpb24gb25seSBo YXBwZW5zIGZvcgorc2ltcGxlIHNpbmdsZSBhbHRlcm5hdGl2ZSBjb250cmFpbnRzIHdpdGggb3Ig d2l0aG91dCBtb2RpZmllcnMgQGNvZGV7PX0sCitAY29kZXsrfSBhbmQgQGNvZGV7Jn0uCisKK0Bp dGVtIHYKK1JlZ2lzdGVyIEBjb2RleyQzfS4KKworQGl0ZW0geQorRXF1aXZhbGVudCB0byBAY29k ZXtyfTsgcmV0YWluZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgorCitAaXRlbSBJCitB IGNvbnN0YW50IGluIHRoZSByYW5nZSBAbWludXN7fTB4RkZGIHRvIDB4RkZGRiBpbmNsdXNpdmUg dGhhdCBpcyBzdWl0YWJsZQorZm9yIEBjb2Rle2FkZGl1WzMyXX0gb3IgQGNvZGV7YWRkaXVbbmVn XX0gaW5zdHJ1Y3Rpb25zLgorCitAaXRlbSBKCitJbnRlZ2VyIHplcm8uCisKK0BpdGVtIEsKK0Fu IHVuc2lnbmVkIDEyLWJpdCBjb25zdGFudCAoZm9yIGxvZ2ljIGluc3RydWN0aW9ucykuCisKK0Bp dGVtIEwKK0Egc2lnbmVkIDMyLWJpdCBjb25zdGFudCBpbiB3aGljaCB0aGUgbG93ZXIgMTIgYml0 cyBhcmUgemVyby4KK1N1Y2ggY29uc3RhbnRzIGNhbiBiZSBsb2FkZWQgdXNpbmcgQGNvZGV7bHVp fS4KKworQGl0ZW0gTQorQSBjb25zdGFudCB0aGF0IGNhbm5vdCBiZSBsb2FkZWQgdXNpbmcgQGNv ZGV7bHVpfSwgQGNvZGV7YWRkaXV9CitvciBAY29kZXtvcml9IGFuZCBpbnN0ZWFkIHJlcXVpcmVz IEBjb2Rle2xpNDh9LgorCitAaXRlbSBOCitBIGNvbnN0YW50IGluIHRoZSByYW5nZSBAbWludXN7 fTY1NTM1IHRvIEBtaW51c3t9MSAoaW5jbHVzaXZlKS4KKworQGl0ZW0gTworQSBzaWduZWQgMTUt Yml0IGNvbnN0YW50LgorCitAaXRlbSBQCitBIGNvbnN0YW50IGluIHRoZSByYW5nZSAxIHRvIDY1 NTM1IChpbmNsdXNpdmUpLgorCitAaXRlbSBHCitGbG9hdGluZy1wb2ludCB6ZXJvLgorCitAaXRl bSBSCitBbiBhZGRyZXNzIHRoYXQgY2FuIGJlIHVzZWQgaW4gYSBub24tbWFjcm8gbG9hZCBvciBz dG9yZS4gIFRoaXMgY29uc3RyYWludAoraXMgZGVwcmVjYXRlZCBhcyB0aGUgbmFub01JUFMgYWRk cmVzc2luZyBtb2RlcyB2YXJ5IGJldHdlZW4gZGlmZmVyZW50Citmb3JtcyBvZiBsb2FkIGFuZCBz dG9yZSBpbnN0cnVjdGlvbnMuICBVc2UgQGNvZGV7WlJ9IHRvIGd1YXJhbnRlZSB0aGF0CithbiBh ZGRyZXNzIGlzIHN1aXRhYmxlIGZvciBhbGwgcG9zc2libGUgaW5zdHJ1Y3Rpb25zLgorCitAaXRl bSBaUgorQSBtZW1vcnkgb3BlcmFuZCB3aG9zZSBhZGRyZXNzIGlzIGZvcm1lZCBmcm9tIGEgYmFz ZSByZWdpc3RlciBhbG9uZTsgaS5lLgorbm8gb2Zmc2V0IG9yIGluZGV4LgorCitAaXRlbSBaQwor QSBtZW1vcnkgb3BlcmFuZCB3aG9zZSBhZGRyZXNzIGlzIGZvcm1lZCBmcm9tIGEgYmFzZSByZWdp c3RlciBhbmQgYSBzaWduZWQKKzktYml0IG9mZnNldC4KKworQGl0ZW0gWkQKK0FuIGFkZHJlc3Mg Zm9ybWVkIGZyb20gYSBiYXNlIHJlZ2lzdGVyIGFuZCBhIHNpZ25lZCA5LWJpdCBvZmZzZXQuCitA ZW5kIHRhYmxlCisKIEBpdGVtIE5EUzMyLS0tQGZpbGV7Y29uZmlnL25kczMyL2NvbnN0cmFpbnRz Lm1kfQogQHRhYmxlIEBjb2RlCiBAaXRlbSB3Ci0tIAoyLjE3LjEKCg==