From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-40140.protonmail.ch (mail-40140.protonmail.ch [185.70.40.140]) by sourceware.org (Postfix) with ESMTPS id 3065838618AD for ; Wed, 8 Sep 2021 14:14:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3065838618AD Date: Wed, 08 Sep 2021 14:14:27 +0000 To: Phil Eaton From: spellcard199 Cc: Per Bothner , kawa mailing list Reply-To: spellcard199 Subject: Re: Receiver class does not define or inherit an implementation of the resolved method Message-ID: In-Reply-To: References: <5hzGa_Y5K9Av5y0olKFg4Qb_A8LuHAwRZiCNDB2oN17IDMHkgCxAhIGYUV0ttSsfsL82Krtjbc2I1AteZ5wQWGRBTMYf-dV1PHINjmezWa4=@protonmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, FREEMAIL_REPLYTO_END_DIGIT, HTML_MESSAGE, KAM_LOTSOFHASH, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no 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=utf-8 Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: kawa@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Kawa mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Sep 2021 14:14:36 -0000 PiBMb29raW5nIGF0IEphdmEgc291cmNlIGZpbGVzIGZlZWxzIGxpa2UgYSB3ZWlyZCB0aGluZyB0 byBkby4KCj4gVGhlIHByb2JsZW0gaXMgdGhhdCBKb29ieSBkb2VzIF9KYXZhXyBzb3VyY2UgY29k ZSBhbmFseXNpcyAobm90Cj4gcmVmbGVjdGlvbikuIEl0IGxpdGVyYWxseSBwYXJzZXMgeW91ciBo YW5kbGVyIHNvdXJjZSBjb2RlIHRvIGZpZ3VyZQo+IG91dCB3aGF0IHRoZSByZXR1cm4gdHlwZSBh Y3R1YWxseSBpcyAoc2luY2UgdGhlIE9iamVjdCByZXR1cm4gdHlwZQo+IG1hc2tzIGl0KS4gSXQg b25seSBkb2VzIHRoaXMgdGhvdWdoIGlmIHRoZXJlJ3Mgbm90IGEgbWV0aG9kIGl0IGNhbgo+IGlu dHJvc3BlY3Qgd2l0aG91dCBzb3VyY2UgY29kZSBhbmFseXNpcy4KClRvZGF5IEkgdHJpZWQgdG8g cmVhZCB0aGUgSm9vYmx5IGNvZGUgYmFja3dhcmQgZnJvbSB0aGUgcG9pbnQgd2hlcmUKdGhlIGVy cm9yIGhhcHBlbnMgYW5kIGluIHRoZSBjb2RlIHBhdGggdGhhdCBhZmZlY3RzIHVzIGl0IHJlYWRz IG91cgoiYXBwbHkiIG1ldGhvZCdzIGJ5dGVjb2RlIHVzaW5nIHRoZSBhc20gbGlicmFyeS4KCkkg dW5kZXJzdGFuZCB3aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGRvIGlzIHRvIGF2b2lkIHRoaXMgY29k ZSBwYXRoCmFsdG9nZXRoZXIsIGJ1dCBJIHRoaW5rIHRoZXJlIGlzIGEgbGVzcyBiYWQgYXBwcm9h Y2ggdG8gdGhlIHByb2JsZW0KdGhhbiBoYXZpbmcgMiBtZXRob2RzIHdpdGggdGhlIHNhbWUgbmFt ZSBhbmQgcGFyYW1ldGVyIHR5cGVzLgoKVGhlIHJlYXNvbiB3aHkgYXNtIGZhaWxzIHRvIHJlYWQg dGhlICJhcHBseSIgbWV0aG9kIGRlZmluZWQgZnJvbSBLYXdhCmlzIGl0IHNlYXJjaGVzIG91ciBv YmplY3QncyBjbGFzcywgd2hpY2ggaW1wbGVtZW50cyBSb3V0ZS5IYW5kbGVyLCBpbgp0aGUgd3Jv bmcgQ2xhc3NMb2FkZXIuCgpMZXQncyBmb2xsb3cgd2hlcmUgdGhlIENsYXNzTG9hZGVyIGFzbSBy ZWNlaXZlcyBjb21lcyBmcm9tLgoKdGhlIEpvb2J5IG9iamVjdCBnZXRzIGl0cyBvd24gY2xhc3NM b2FkZXIKaHR0cHM6Ly9naXRodWIuY29tL2pvb2J5LXByb2plY3Qvam9vYnkvYmxvYi9mNDdlZGE0 NTAwYmM0Yjc2YjIzZDI0ZDRkNzdhYTJhYjNjYzE5ZTk1L2pvb2J5L3NyYy9tYWluL2phdmEvaW8v am9vYnkvSm9vYnkuamF2YSNMMTI5Cgp0aGUgSm9vYnkgb2JqZWN0IHBhc3NlcyBjbGFzc0xvYWRl ciB0byBhIFJvdXRlckltcGwgb2JqZWN0Cmh0dHBzOi8vZ2l0aHViLmNvbS9qb29ieS1wcm9qZWN0 L2pvb2J5L2Jsb2IvZjQ3ZWRhNDUwMGJjNGI3NmIyM2QyNGQ0ZDc3YWEyYWIzY2MxOWU5NS9qb29i eS9zcmMvbWFpbi9qYXZhL2lvL2pvb2J5L0pvb2J5LmphdmEjTDEzMQoKdGhlIFJvdXRlckltcGwg b2JqZWN0IHBhc3NlcyBjbGFzc0xvYWRlciB0byBhIENsYXNzU291cmNlIG9iamVjdCwKd2hpY2gg aXMgYmFzaWNhbGx5IGEgd3JhcHBlciBmb3Igc3RvcmluZyB0aGUgQ2xhc3NMb2FkZXIgYW5kIGNh bGxpbmcKY2xhc3NMb2FkZXIuZ2V0UmVzb3VyY2VBc1N0cmVhbSguLi4pIHdoZW4gbmVlZGVkLgpo dHRwczovL2dpdGh1Yi5jb20vam9vYnktcHJvamVjdC9qb29ieS9ibG9iL2Y0N2VkYTQ1MDBiYzRi NzZiMjNkMjRkNGQ3N2FhMmFiM2NjMTllOTUvam9vYnkvc3JjL21haW4vamF2YS9pby9qb29ieS9p bnRlcm5hbC9Sb3V0ZXJJbXBsLmphdmEjTDUzOAoKdGhlIENsYXNzU291cmNlIG9iamVjdCBpcyBw YXNzZWQgdG8gYSBSb3V0ZUFuYWx5emVyIG9iamVjdApodHRwczovL2dpdGh1Yi5jb20vam9vYnkt cHJvamVjdC9qb29ieS9ibG9iL2Y0N2VkYTQ1MDBiYzRiNzZiMjNkMjRkNGQ3N2FhMmFiM2NjMTll OTUvam9vYnkvc3JjL21haW4vamF2YS9pby9qb29ieS9pbnRlcm5hbC9Sb3V0ZXJJbXBsLmphdmEj TDUzOQoKdGhlIFJvdXRlQW5hbHl6ZXIgb2JqZWN0OgoxLiBHZXRzIHRoZSBqYXZhLmxhbmcucmVm bGVjdC5NZXRob2QgY29ycmVzcG9uZGluZyB0byBvdXIKUm91dGVIYW5kbGVyJ3MgImFwcGx5IiBt ZXRob2QuCmh0dHBzOi8vZ2l0aHViLmNvbS9qb29ieS1wcm9qZWN0L2pvb2J5L2Jsb2IvZjQ3ZWRh NDUwMGJjNGI3NmIyM2QyNGQ0ZDc3YWEyYWIzY2MxOWU5NS9qb29ieS9zcmMvbWFpbi9qYXZhL2lv L2pvb2J5L2ludGVybmFsL1JvdXRlQW5hbHl6ZXIuamF2YSNMMzYKMi4gR2V0cyAiYXBwbHkiJ3Mg Y2xhc3MgY2FsbGluZyBtZXRob2QuZ2V0RGVjbGFyaW5nQ2xhc3MoKSBvbiB0aGUKTWV0aG9kIGl0 IGp1c3QgZ290CjMuIFNlYXJjaGVzIGZvciB0aGUgY2xhc3MgaXQganVzdCBnb3QgaW4gY2xhc3NM b2FkZXI6IGFuZCBoZXJlIHRoZQplcnJvciByYWlzZXMuIFRoaXMgY2xhc3NMb2FkZXIgY29tZXMg ZnJvbQpKb29ibHkuZ2V0Q2xhc3MoKS5nZXRDbGFzc2xvYWRlcigpLCBidXQgb3VyIGNsYXNzIGlz IGluIEthd2EncwpjbGFzc2xvYWRlci4KaHR0cHM6Ly9naXRodWIuY29tL2pvb2J5LXByb2plY3Qv am9vYnkvYmxvYi9mNDdlZGE0NTAwYmM0Yjc2YjIzZDI0ZDRkNzdhYTJhYjNjYzE5ZTk1L2pvb2J5 L3NyYy9tYWluL2phdmEvaW8vam9vYnkvaW50ZXJuYWwvUm91dGVBbmFseXplci5qYXZhI0w0NAoK TWF5YmUgUm91dGVBbmFseXplci5yZXR1cm5UeXBlIHNob3VsZCB1c2UKbWV0aG9kLmdldERlY2xh cmluZ0NsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSBhcyAic291cmNlIiAod2hlcmUKInNvdXJjZSIg aXMgYSBDbGFzc0xvYWRlcikgaW5zdGVhZCBvZiB0aGlzLmNsYXNzTG9hZGVyPyBUbyBjb25maXJt CnRoaXMgSSB0cmllZCB0by4uLjoKMS4gY2xvbmUgdGhlIEpvb2J5IHJlcG8KMi4gUmVwbGFjZSBs aW5lIDQ0IGluIFJvdXRlQW5hbHl6ZXI6Ci0gZnJvbToKCkNsYXNzUmVhZGVyIHJlYWRlciA9IG5l dyBDbGFzc1JlYWRlcihzb3VyY2UuYnl0ZUNvZGUobWV0aG9kLmdldERlY2xhcmluZ0NsYXNzKCkp KTsKCi0gdG86CgpDbGFzc1NvdXJjZSBjbGFzc1NvdXJjZUZpeCA9IG5ldyBDbGFzc1NvdXJjZShj bCk7CkNsYXNzUmVhZGVyIHJlYWRlciA9IG5ldyBDbGFzc1JlYWRlcihjbGFzc1NvdXJjZUZpeC5i eXRlQ29kZShtZXRob2QuZ2V0RGVjbGFyaW5nQ2xhc3MoKSkpOwoKMy4gQWRkIEthd2EgaW4gdGhl IGRlcGVuZGVuY2llcyBmb3IgdGVzdHMgaW4gcG9tLnhtbAo0LiBBZGQgYSBuZXcgdGVzdCB0aGF0 IHN0YXJ0cyBhIHJlbW90ZSBLYXdhIHJlcGwKNS4gUnVuIG5ldyB0ZXN0IGFuZCBjb25uZWN0IHRv IHRoZSByZW1vdGUgS2F3YSByZXBsCjUuIEV2YWx1YXRlIGEgbWluaW1hbCBqb29ieSBleGFtcGxl Ci4uLiBhbmQgaXQgd29ya2VkLCBzbyB0aGlzIGEgcG9zc2libGUgc3RhcnRpbmcgcG9pbnQgZm9y IGEKc29sdXRpb24uIEJ1dCBtYXliZSB0aGF0IGNvdWxkIGNyZWF0ZSBuZXcgZXJyb3JzIGluIHNv bWUgb3RoZXIKc2NlbmFyaW9zPyBBbmQgQlRXLCBpbiB0aGUgbmV4dCByZWxlYXNlIG9mIEpvb2J5 IHRoZXkgYXJlIHJlbW92aW5nCmFzbTogaHR0cHM6Ly9naXRodWIuY29tL2pvb2J5LXByb2plY3Qv am9vYnkvaXNzdWVzLzE3MTIKCkhlcmUncyBhIGRpcnR5IGhhY2sgZm9yIGEgd29ya2luZyBtaW5p bWFsIGV4YW1wbGUgaW4gS2F3YSB0aGF0IGRvZXNuJ3QKcmVxdWlyZSBwYXRjaGluZyBKb29ibHkg KHlvdSBjYW4gY29weSBhbmQgcGFzdGUgaXQgZGlyZWN0bHkgaW50byB0aGUKa2F3YS9tYWluLnNj bSBpbiB5b3VyIHJlcG8sIHJlcGxhY2luZyBpdHMgY3VycmVudCBjb250ZW50cyk6CgojK0JFR0lO X1NSQyBzY2hlbWUKCihkZWZpbmUgcmggOjo8aW8uam9vYnkuUm91dGUkSGFuZGxlcj4KKG9iamVj dCAoaW8uam9vYnkuUm91dGUkSGFuZGxlcikKOzsgKChhcHBseSkgOjo8amF2YS5sYW5nLlN0cmlu Zz4gKCJlbXB5Ijp0b1N0cmluZykpCigoYXBwbHkgKGN0eCA6Ojxpby5qb29ieS5Db250ZXh0Pikp IDo6PGphdmEubGFuZy5PYmplY3Q+CnRocm93czogKGphdmEubGFuZy5FeGNlcHRpb24pCihqYXZh LmxhbmcuU3RyaW5nICJIZWxsbyEiKSkpKQoKKGRlZmluZSBhcHAgOjo8aW8uam9vYnkuSm9vYnk+ IChpby5qb29ieS5Kb29ieSkpCjs7IERpcnR5IGhhY2sgdG8gcmVwbGFjZSBhcHAucm91dGVyIHdp dGggYW5vdGhlciBvbmUgdGhhdCB1c2VzIEthd2Encwo7OyBjbGFzc2xvYWRlciBpbnN0ZWFkIG9m IGFwcC5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkuCihkZWZpbmUgcm91dGVyRmllbGQgOjo8 amF2YS5sYW5nLnJlZmxlY3QuRmllbGQ+CihpbnZva2UgKGFwcDpnZXRDbGFzcykgJ2dldERlY2xh cmVkRmllbGQgInJvdXRlciIpKQoocm91dGVyRmllbGQ6c2V0QWNjZXNzaWJsZSAjdCkKKHJvdXRl ckZpZWxkOnNldCBhcHAgKGlvLmpvb2J5LmludGVybmFsLlJvdXRlckltcGwKKGludm9rZSAocmg6 Z2V0Q2xhc3MpICdnZXRDbGFzc0xvYWRlcikpKQoocm91dGVyRmllbGQ6c2V0QWNjZXNzaWJsZSAj ZikKCjs7IGFwcC5yb3V0ZSBhZGRzIGEgUm91dGUkSGFuZGxlciB0byBhcHAucm91dGVyLnJvdXRl cwooYXBwOnJvdXRlICJHRVQiICIvZ3JlZXRpbmciIHJoKQoKOzsgU3RhcnQgc2VydmVyCihkZWZp bmUgc2VydmVyIDo6PGlvLmpvb2J5Lm5ldHR5Lk5ldHR5PiAoaW8uam9vYnkubmV0dHkuTmV0dHkp KQooc2VydmVyOnNldE9wdGlvbnMgKChpby5qb29ieS5TZXJ2ZXJPcHRpb25zKTpzZXRQb3J0IDgw ODApKQooc2VydmVyOnN0YXJ0IGFwcCkKKHNlcnZlcjpqb2luKQoKIytFTkRfU1JDCgrigJDigJDi gJDigJDigJDigJDigJAgT3JpZ2luYWwgTWVzc2FnZSDigJDigJDigJDigJDigJDigJDigJAKT24g VHVlc2RheSwgU2VwdGVtYmVyIDd0aCwgMjAyMSBhdCA5OjM1IFBNLCBQaGlsIEVhdG9uIDxwaGls QGVhdG9ucGhpbC5jb20+IHdyb3RlOgoKPj4gU2luY2UgaXQgaXMgYSBKYXZhIGxpYnJhcnkgYW5k LAo+IGFzIEkgc3VwcG9zZWQsIEphdmEgZG9lcyBub3QgYWxsb3cgdG8gaGF2ZSAyIG1ldGhvZHMg d2l0aCB0aGUgc2FtZQo+IG5hbWUgYW5kIHBhcmFtZXRlciB0eXBlcyBbMV1bMl0sIGlmIEkgd2Vy ZSBpbiB5b3UgSSB3b3VsZCBmaXJzdCB0cnkgdG8KPiB0cmFuc2xhdGUgeW91ciBleGFtcGxlIHRv IHBsYWluIEphdmEgd2l0aG91dCBKb29ieSdzIGFubm90YXRpb25zIChJCj4gZG9uJ3Qga25vdyBo b3cgdG8gZG8gaXQpLiBNYXliZSBhc2tpbmcgdGhlIHBlb3BsZSB3b3JraW5nIG9uIEpvb2J5IG1h eQo+IGJlIGFuIG9wdGlvbj8KPgo+IFRoZSBwcm9ibGVtIGlzIHRoYXQgSm9vYnkgZG9lcyBfSmF2 YV8gc291cmNlIGNvZGUgYW5hbHlzaXMgKG5vdCByZWZsZWN0aW9uKS4gSXQgbGl0ZXJhbGx5IHBh cnNlcyB5b3VyIGhhbmRsZXIgc291cmNlIGNvZGUgdG8gZmlndXJlIG91dCB3aGF0IHRoZSByZXR1 cm4gdHlwZSBhY3R1YWxseSBpcyAoc2luY2UgdGhlIE9iamVjdCByZXR1cm4gdHlwZSBtYXNrcyBp dCkuIEl0IG9ubHkgZG9lcyB0aGlzIHRob3VnaCBpZiB0aGVyZSdzIG5vdCBhIG1ldGhvZCBpdCBj YW4gaW50cm9zcGVjdCB3aXRob3V0IHNvdXJjZSBjb2RlIGFuYWx5c2lzLgo+Cj4gSSBzcGVudCBh IHdoaWxlIGRpZ2dpbmcgYXJvdW5kIEpvb2J5J3MgQVBJcyBhbmQgdGhpcyB3YXMgdGhlIG9ubHkg d2F5IEkgY291bGQgc2hvZWhvcm4gbm9uLUphdmEgY29kZSBpbnRvIGl0Lgo+Cj4gU2luY2UgSSBw dXQgZGVjZW50IGFtb3VudCBvZiBlZmZvcnQgaW50byB0aGUgQUJDTCBjb2RlIChuZWVkZWQgdG8g c3VibWl0IGEgcGF0Y2ggdG8gdGhlIEFCQ0wgdGVhbSkgSSBhbSByZWx1Y3RhbnQgdG8gZ2l2ZSB1 cCBub3cgaW4gS2F3YSB3aXRob3V0IGZpbmRpbmcgYSB3YXkgdG8gaGFjayB0aGlzIHVwLgo+Cj4g RnVydGhlcm1vcmUgdGhlIHByb2JsZW0gaXMgdGhhdCBhbG1vc3QgZXZlcnkgaGlwIEphdmEgQVBJ IGlzIGRlc2lnbmVkIGxpa2UgdGhpcy4gVGhleSBhcmUgdmVyeSB1bmZyaWVuZGx5IHRvIGZ1bmN0 aW9uLW9yaWVudGVkIHBhcmFkaWdtcy4KPgo+IE5vdyB0aGF0IEkgdGhpbmsgb2YgaXQgdGhvdWdo IG1heWJlIHVzaW5nIEthd2EncyBjbGFzcyBhbm5vdGF0aW9uIHN1cHBvcnQgd2lsbCBoZWxwIG1l IGZpZ2h0IGxlc3Mgd2l0aCBKb29ieSBzaW5jZSBpdCBkb2VzIHdhbnQgeW91IHRvIGFubm90YXRl IGNsYXNzZXMgKHdoaWNoIEkgd2FzIGlnbm9yaW5nIGJlY2F1c2UgSSB3YXMgdHJ5aW5nIHRvIHVz ZSBjbGFzc2VzIGFzIGxpdHRsZSBhcyBwb3NzaWJsZSkuCj4KPiBPbiBUdWUsIFNlcCA3LCAyMDIx IGF0IDE6NTggUE0gc3BlbGxjYXJkMTk5IDxzcGVsbGNhcmQxOTlAcHJvdG9ubWFpbC5jb20+IHdy b3RlOgo+Cj4+IEkgY2xvbmVkIHlvdXIgcmVwbywgY2QnZWQgaW50byBhYmNsLCBydW4gbXZuIGlu c3RhbGwgYW5kIHRoZW4gbWFrZS4gSQo+PiBzdGlsbCBoYWQgdG8gY29weS1wYXN0ZSB5b3VyIG1h aW4ubGlzcCBpbiB0aGUgcmVwbCBidXQgaXQKPj4gd29ya2VkLiBBZnRlciBjb21tZW50aW5nIG91 dCBlYWNoIG9mIHRoZSAyIGFwcGx5IG1ldGhvZHMgSSBjb3VsZCBzZWUKPj4gd2hhdCBwcm9ibGVt IHlvdSBoYXZlLgo+Pgo+PiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCBiYXNpY2FsbHkgd2hh dCB5b3UgYXJlIHRyeWluZyB0byBkbyBpcwo+PiByZXBsaWNhdGUgYXQgYSBsYW5ndWFnZSBsZXZl bCB3aGF0IEpvb2J5IGFscmVhZHkgZG9lcyBpbiBwdXJlCj4+IEphdmEuCj4+Cj4+IE15IG9waW5p b24gYXMgYSBub3QtZXhwZXJpZW5jZWQgcHJvZ3JhbW1lciB0aGF0IGhhcyBuZXZlciB1c2VkIEpv b2J5Cj4+IGlzIHRoYXQgdGhlcmUgbWF5IGJlIHNvbWUgb3RoZXIgd2F5IHRvIHVzZSB0aGUgSm9v YnkgYXBpLiBXaHkKPj4gcmUtc29sdmluZyB3aXRoIGEgbGFuZ3VhZ2Utc3BlY2lmaWMgc29sdXRp b24gYSBwcm9ibGVtIHRoYXQgc29tZXdoZXJlCj4+IGluIEpvb2J5IGhhcyBhbHJlYWR5IGJlZW4g aW1wbGVtZW50ZWQ/IFNpbmNlIGl0IGlzIGEgSmF2YSBsaWJyYXJ5IGFuZCwKPj4gYXMgSSBzdXBw b3NlZCwgSmF2YSBkb2VzIG5vdCBhbGxvdyB0byBoYXZlIDIgbWV0aG9kcyB3aXRoIHRoZSBzYW1l Cj4+IG5hbWUgYW5kIHBhcmFtZXRlciB0eXBlcyBbMV1bMl0sIGlmIEkgd2VyZSBpbiB5b3UgSSB3 b3VsZCBmaXJzdCB0cnkgdG8KPj4gdHJhbnNsYXRlIHlvdXIgZXhhbXBsZSB0byBwbGFpbiBKYXZh IHdpdGhvdXQgSm9vYnkncyBhbm5vdGF0aW9ucyAoSQo+PiBkb24ndCBrbm93IGhvdyB0byBkbyBp dCkuIE1heWJlIGFza2luZyB0aGUgcGVvcGxlIHdvcmtpbmcgb24gSm9vYnkgbWF5Cj4+IGJlIGFu IG9wdGlvbj8KPj4KPj4+IEkgZ3Vlc3MgdGhhdCdzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgdGhlIG1l dGhvZCBuYW1lIGlzIGdlbmVyYXRlZCBmb3IKPj4+IGJ5dGVjb2RlIGNvbXBpbGF0aW9uLiBJZiBh bnlvbmUgY291bGQgcG9pbnQgbWUgYXQgd2hlcmUgdGhhdCBoYXBwZW5zCj4+PiB0aGF0IHdvdWxk IGhlbHAuCj4+Cj4+IEp1c3Qgb3V0IG9mIGN1cmlvc2l0eS4uLiBJJ3ZlIG5vdCB0ZXN0ZWQgaXQs IGJ1dCBJIHRoaW5rIGl0IGhhcHBlbnMgaW4KPj4gZ251LmV4cHIuTGFtYmRhRXhwLmFkZE1ldGhv ZEZvciwgYXJvdW5kIGxpbmUgMTE0NC4KPj4KPj4+IFRoYW5rcyEKPj4KPj4gbnAsIGJ1dCBJIHdh c24ndCB2ZXJ5IGhlbHBmdWwgPS8uCj4+Cj4+IFsxXSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29t L3F1ZXN0aW9ucy8yNDM5NzgyL292ZXJsb2FkLXdpdGgtZGlmZmVyZW50LXJldHVybi10eXBlLWlu LWphdmEKPj4gWzJdIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU1NjE0MzYv Y2FuLXR3by1qYXZhLW1ldGhvZHMtaGF2ZS1zYW1lLW5hbWUtd2l0aC1kaWZmZXJlbnQtcmV0dXJu LXR5cGVzCj4+Cj4+IOKAkOKAkOKAkOKAkOKAkOKAkOKAkCBPcmlnaW5hbCBNZXNzYWdlIOKAkOKA kOKAkOKAkOKAkOKAkOKAkAo+PiBPbiBUdWVzZGF5LCBTZXB0ZW1iZXIgN3RoLCAyMDIxIGF0IDM6 MDIgUE0sIFBoaWwgRWF0b24gPHBoaWxAZWF0b25waGlsLmNvbT4gd3JvdGU6Cj4+Cj4+PiBHb29k IHF1ZXN0aW9uISBJIGRvbid0IGtub3cgaG93IHRvIGdldCB0aGUgQUJDTC1lbWl0dGVkIGJ5dGVj b2RlIG90aGVyd2lzZSBJIHdvdWxkIGhhdmUganVzdCBwb3N0ZWQgdGhhdC4KPj4+Cj4+PiBCdXQg SSBjYW4gZGVzY3JpYmUgdG8geW91IHRoZSBiZWhhdmlvciB0aGF0IG1ha2VzIG1lIHNheSBpdCBl bWl0cyB0d28gZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgbmFtZS4KPj4+Cj4+PiBIZXJlIGlzIG15 IEFCQ0wgY29kZTogaHR0cHM6Ly9naXRodWIuY29tL2VhdG9ucGhpbC9qdm0tbGlzcC1leGFtcGxl cy9ibG9iL21haW4vYWJjbC9tYWluLmxpc3AjTDIyLgo+Pj4KPj4+IEluIHRoaXMgY29kZSBJIGRl ZmluZSB0d28gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lLiBUaGUgImZha2UiIG1ldGhvZCBjb21l cyBmaXJzdC4gVGhpcyBpcyBmb3VuZCB3aGVuIHRoZSBqb29ieSBsaWJyYXJ5IGRvZXMgcmVmbGVj dGlvbiEgQnV0IGl0IGlzIG5vdCB0aGUgb25lIGNhbGxlZCBieSBKb29ieS4gVGhlIHNlY29uZCBt ZXRob2QgdGhhdCByZXR1cm5zIGFuIE9iamVjdCAodGhlIG9uZSB0aGF0IGFjdHVhbGx5IGltcGxl bWVudHMgdGhlIGludGVyZmFjZSkgaXMgdGhlIG9uZSB0aGF0IGlzIGNhbGxlZC4KPj4+Cj4+PiBT ZXBhcmF0ZWx5LCBJIHdhcyBtZXNzaW5nIGFyb3VuZCBpbiBLYXdhIHRyeWluZyB0byB1bmRlcnN0 YW5kIHdoZXJlIHRoaXMgJFggc3VmZml4IGlzIGdlbmVyYXRlZCBvbiBkdXBsaWNhdGUgbWV0aG9k cy4gSSBkaWQgZmluZCBmaXhQYXJhbU5hbWVzIGluIGdudS9ieXRlY29kZS9TY29wZS5qYXZhOjEx MC4gSXQgaGFzIGEgbm90ZSBzYXlpbmcgdGhhdCAkWCBzdWZmaXggd2FzIHJlcXVpcmVkIGJlY2F1 c2Ugb2YgX0FuZHJvaWRfL2RleC4gSSBjb21tZW50ZWQgdGhpcyBtZXRob2Qgb3V0IGFuZCByZWNv bXBpbGVkIGFuZCByYW4gbXkgZXhhbXBsZSBidXQgaXQgc3RpbGwgZ2VuZXJhdGVkIHRoZSAkWCBz dWZmaXguIFNvIEkgZ3Vlc3MgdGhhdCdzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgdGhlIG1ldGhvZCBu YW1lIGlzIGdlbmVyYXRlZCBmb3IgYnl0ZWNvZGUgY29tcGlsYXRpb24uIElmIGFueW9uZSBjb3Vs ZCBwb2ludCBtZSBhdCB3aGVyZSB0aGF0IGhhcHBlbnMgdGhhdCB3b3VsZCBoZWxwLgo+Pj4KPj4+ IFRoYW5rcyEKPj4+Cj4+PiBPbiBUdWUsIFNlcCA3LCAyMDIxIGF0IDY6NTkgQU0gc3BlbGxjYXJk MTk5IDxzcGVsbGNhcmQxOTlAcHJvdG9ubWFpbC5jb20+IHdyb3RlOgo+Pj4KPj4+PiBIZWxsby4K Pj4+Pgo+Pj4+PiBGb3Igd2hhdCBpdCdzIHdvcnRoIHRoaXMga2luZCBvZiByZWRlZmluaXRpb24g b2YgdGhlIHNhbWUgbWV0aG9kCj4+Pj4gd29ya2VkIGZvciBtZSBpbiBBQkNMIGxpc3AuIFNvIEkg a25vdyBpdCdzIGRlZmluaXRlbHkgcG9zc2libGUgdG8KPj4+PiBleHByZXNzIGluIEphdmEuCj4+ Pj4KPj4+PiBJIGtub3cgbm90aGluZyBhYm91dCBBQkNMIHNvIEkgdHJ1c3QgeW91IG9uIHRoZSBm YWN0IEFCQ0wgaGFuZGxlcwo+Pj4+IHRoaXMgZGlmZmVyZW50bHkgZnJvbSBLYXdhLCBidXQgSSBk b24ndCB0aGluayBpbiBKYXZhIHlvdSBkbyBpdC4KPj4+Pgo+Pj4+IElmIEkgdHJ5IHRvIHdyaXRl IHRoZSBmb2xsb3dpbmcgY2xhc3MgaW4gcGxhaW4gSmF2YS4uLgo+Pj4+Cj4+Pj4gcHVibGljIGNs YXNzIE1haW4gewo+Pj4+IHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsK Pj4+PiBNYWluIG1haW4gPSBuZXcgTWFpbigpOwo+Pj4+IFN5c3RlbS5vdXQucHJpbnRsbihtYWlu LmFwcGx5KCJ4IikpOwo+Pj4+IH0KPj4+PiBwdWJsaWMgamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSBh cHBseShTdHJpbmcgcykgewo+Pj4+IHJldHVybiBzLmNvbmNhdChzKTsKPj4+PiB9Cj4+Pj4gcHVi bGljIGphdmEubGFuZy5PYmplY3QgYXBwbHkoU3RyaW5nIHMpIHsKPj4+PiByZXR1cm4gcy5jb25j YXQocykuY29uY2F0KHMpOwo+Pj4+IH0KPj4+PiB9Cj4+Pj4KPj4+PiAuLi4gaXQgZ2l2ZXMgYSBj b21waWxlIHRpbWUgZXJyb3I6Cj4+Pj4KPj4+PiBhcHBseShTdHJpbmcpIGlzIGFscmVhZHkgZGVm aW5lZCBpbiAnTWFpbicKPj4+Pgo+Pj4+IEFuZCB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIHdoZW4g dGhlIG1ldGhvZHMgYXJlIHN0YXRpYy4KPj4+Pgo+Pj4+IEkgc3VwcG9zZSBpbiBwbGFpbiBKYXZh IHlvdSBjYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUgbWV0aG9kIHdpdGggYm90aAo+Pj4+IHRoZSBz YW1lOgo+Pj4+IC0gbmFtZQo+Pj4+IC0gaW5wdXQgdHlwZXMKPj4+Pgo+Pj4+IEkgcmVtZW1iZXIg YmVpbmcgY29uZnVzZWQgYnkgdGhpcyB0aGUgZmlyc3QgdGltZSBJIHNhdyBpdCwgYnV0IGluCj4+ Pj4gaGluZHNpZ2h0IGl0IG1ha2VzIHNlbnNlOiBpZiB0aGVyZSB3ZXJlIDIgbWV0aG9kcyB3aXRo IHRoZSBzYW1lIG5hbWUKPj4+PiBhbmQgaW5wdXQgdHlwZXMsIGhvdyBjb3VsZCBKYXZhIGtub3cg d2hpY2ggb25lIHNob3VsZCBiZSBjYWxsZWQgd2hlbgo+Pj4+IGFwcGxpZWQgdG8gYXJndW1lbnRz Pwo+Pj4+Cj4+Pj4gU28gbXkgcXVlc3Rpb24gaXM6IGRvZXMgQUJDTCByZWFsbHkgbGV0IHlvdSBo YXZlIGJvdGggbWV0aG9kcyBhdCB0aGUKPj4+PiBzYW1lIHRpbWUgb3IganVzdCB0aGUgbGFzdGx5 IGRlZmluZWQgb25lPwo+Pj4+Cj4+Pj4g4oCQ4oCQ4oCQ4oCQ4oCQ4oCQ4oCQIE9yaWdpbmFsIE1l c3NhZ2Ug4oCQ4oCQ4oCQ4oCQ4oCQ4oCQ4oCQCj4+Pj4KPj4+PiBPbiBUdWVzZGF5LCBBdWd1c3Qg MzFzdCwgMjAyMSBhdCAxOjE4IEFNLCBQaGlsIEVhdG9uIDxwaGlsQGVhdG9ucGhpbC5jb20+IHdy b3RlOgo+Pj4+Cj4+Pj4+IEkgc3Bva2UgdG9vIHNvb24uIFRoZSBpc3N1ZSBpcyB0aGF0IEkgdHJ1 bHkgZG8gbmVlZCBib3RoIG9mIHRoZXNlIG1ldGhvZHMKPj4+Pj4KPj4+Pj4gdG8gYmUgY2FsbGVk IGBhcHBseWAgbm90IGBhcHBseWAgYW5kIGBhcHBseSQxYC4KPj4+Pj4KPj4+Pj4gRm9yIHdoYXQg aXQncyB3b3J0aCB0aGlzIGtpbmQgb2YgcmVkZWZpbml0aW9uIG9mIHRoZSBzYW1lIG1ldGhvZCB3 b3JrZWQgZm9yCj4+Pj4+Cj4+Pj4+IG1lIGluIEFCQ0wgbGlzcC4gU28gSSBrbm93IGl0J3MgZGVm aW5pdGVseSBwb3NzaWJsZSB0byBleHByZXNzIGluIEphdmEuCj4+Pj4+Cj4+Pj4+IE9uIE1vbiwg QXVnIDMwLCAyMDIxIGF0IDc6MDkgUE0gUGhpbCBFYXRvbiBwaGlsQGVhdG9ucGhpbC5jb20gd3Jv dGU6Cj4+Pj4+Cj4+Pj4+ID4gQWhhISBJdCBnYXZlIG15IHNlY29uZCBhcHBseSBtZXRob2QgYSBk aWZmZXJlbnQgc3VmZml4LiBCeSByZW9yZGVyaW5nCj4+Pj4+ID4KPj4+Pj4gPiB0aGVzZSB0d28g bWV0aG9kcyB0aGUgd2hvbGUgdGhpbmcgc29tZWhvdyB3b3Jrcy4KPj4+Pj4gPgo+Pj4+PiA+ICQg amF2YXAgbWFpblwkMC5jbGFzcwo+Pj4+PiA+Cj4+Pj4+ID4gQ29tcGlsZWQgZnJvbSAibWFpbi5z Y20iCj4+Pj4+ID4KPj4+Pj4gPiBwdWJsaWMgY2xhc3MgbWFpbiQwIGltcGxlbWVudHMgaW8uam9v YnkuUm91dGUkSGFuZGxlciB7Cj4+Pj4+ID4KPj4+Pj4gPiBtYWluJGZyYW1lIHRoaXMkMDsKPj4+ Pj4gPgo+Pj4+PiA+IHB1YmxpYyBqYXZhLmxhbmcuQ2hhclNlcXVlbmNlIGFwcGx5KGlvLmpvb2J5 LkNvbnRleHQpOwo+Pj4+PiA+Cj4+Pj4+ID4gcHVibGljIGphdmEubGFuZy5PYmplY3QgYXBwbHkk MShpby5qb29ieS5Db250ZXh0KTsKPj4+Pj4gPgo+Pj4+PiA+IHB1YmxpYyBtYWluJDAobWFpbiRm cmFtZSk7Cj4+Pj4+ID4KPj4+Pj4gPiB9Cj4+Pj4+ID4KPj4+Pj4gPiBJdCdzIHdlaXJkIGJ1dCBJ J2xsIHRha2UgaXQuCj4+Pj4+ID4KPj4+Pj4gPiBPbiBNb24sIEF1ZyAzMCwgMjAyMSBhdCAxMjo0 MCBQTSBQZXIgQm90aG5lciBwZXJAYm90aG5lci5jb20gd3JvdGU6Cj4+Pj4+ID4KPj4+Pj4gPiA+ IE9uIDgvMjkvMjEgMTI6MDMgUE0sIFBoaWwgRWF0b24gd3JvdGU6PiBTdGlsbCBuZXcgdG8gS2F3 YS4gSSdtIHRyeWluZyB0bwo+Pj4+PiA+ID4KPj4+Pj4gPiA+IGltcGxlbWVudCBhbiBpbnRlcmZh Y2UgKAo+Pj4+PiA+ID4KPj4+Pj4gPiA+ID4gaW8uam9vYnkuUm91dGUkSGFuZGxlcgo+Pj4+PiA+ ID4gPgo+Pj4+PiA+ID4gPiA8Cj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+IGh0dHBzOi8vZ2l0aHVi LmNvbS9qb29ieS1wcm9qZWN0L2pvb2J5L2Jsb2IvMi54L2pvb2J5L3NyYy9tYWluL2phdmEvaW8v am9vYnkvUm91dGUuamF2YSNMMjQ3Cj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+ICkuCj4+Pj4+ID4g PiA+Cj4+Pj4+ID4gPiA+IEl0IG9ubHkgaGFzIGEgc2luZ2xlIG5vbi1kZWZhdWx0IG1ldGhvZCwg YXBwbHkuCj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+IEhlcmUncyB3aGF0IEkndmUgZ290Cj4+Pj4+ ID4gPiA+Cj4+Pj4+ID4gPiA+IChkZWZpbmUgKHJvdXRlIGFwcCBtZXRob2QgcGF0aCBoYW5kbGVy KQo+Pj4+PiA+ID4gPgo+Pj4+PiA+ID4gPiAobGV0ICgoaGFuZGxlciAob2JqZWN0IChpby5qb29i eS5Sb3V0ZSRIYW5kbGVyKQo+Pj4+PiA+ID4gPgo+Pj4+PiA+ID4gPiAjfCBUaGlzIG1ldGhvZCBl eGlzdHMganVzdCB0byBzdG9wIEpvb2J5IGZyb20KPj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gdHJ5 aW5nIHRvIGludHJvc3BlY3QgSmF2YSBjb2RlIHRoYXQgZG9lc24ndCBleGlzdCBiZWNhdXNlIHRo aXMgaXNuJ3QKPj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gd3JpdHRlbiBpbiBKYXZhLiB8Iwo+Pj4+ PiA+ID4gPgo+Pj4+PiA+ID4gPiAoKGFwcGx5IChjdHggOjppby5qb29ieS5Db250ZXh0KSkgOjpz dHJpbmcKPj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gIyFudWxsKQo+Pj4+PiA+ID4gPgo+Pj4+PiA+ ID4gPiAoKGFwcGx5IChjdHggOjppby5qb29ieS5Db250ZXh0KSkKPj4+Pj4gPiA+ID4KPj4+Pj4g PiA+ID4gOjpqYXZhLmxhbmcuT2JqZWN0Cj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+IChoYW5kbGVy IGN0eCkpKSkpCj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+IChhcHA6cm91dGUgbWV0aG9kIHBhdGgg aGFuZGxlcikpKQo+Pj4+PiA+ID4gPgo+Pj4+PiA+ID4gPiBCdXQgd2hlbiB0aGlzIGdldHMgZXhl cmNpc2VkLCBJIGdldDoKPj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gW3dvcmtlci0xLTNdIEVSUk9S IGlvLmpvb2J5Lkpvb2J5IC0gR0VUIC9oZWxsby13b3JsZCA1MDAgU2VydmVyIEVycm9yCj4+Pj4+ ID4gPiA+Cj4+Pj4+ID4gPiA+IGphdmEubGFuZy5BYnN0cmFjdE1ldGhvZEVycm9yOiBSZWNlaXZl ciBjbGFzcyBtYWluJDAgZG9lcyBub3QgZGVmaW5lIG9yCj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+ IGluaGVyaXQgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIHJlc29sdmVkIG1ldGhvZCAnYWJzdHJh Y3QKPj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gamF2YS5sYW5nLk9iamVjdAo+Pj4+PiA+ID4gPgo+ Pj4+PiA+ID4gPiBhcHBseShpby5qb29ieS5Db250ZXh0KScgb2YgaW50ZXJmYWNlIGlvLmpvb2J5 LlJvdXRlJEhhbmRsZXIuCj4+Pj4+ID4gPgo+Pj4+PiA+ID4gSSBkb24ndCBzZWUgYW55dGhpbmcg b2J2aW91c2x5IHdyb25nLiBPbmUgdGhpbmcgdG8gdHJ5IGlzIGluc3RlYWQgb2YgYW4KPj4+Pj4g PiA+Cj4+Pj4+ID4gPiBhbm9ueW1vdXMgY2xhc3MgKHdpdGggb2JqZWN0KSB1c2UgYSBuYW1lZCBj bGFzcyAod2l0aAo+Pj4+PiA+ID4KPj4+Pj4gPiA+IGRlZmluZS1zaW1wbGUtY2xhc3MpLgo+Pj4+ PiA+ID4KPj4+Pj4gPiA+IFRoZSBhbm9ueW1vdXMgY2xhc3MgaXMgbW9yZSBjb252ZW5pZW50IG9m IGNvdXJzZSB0aGVyZSBpcyBzb21lIGV4dHJhCj4+Pj4+ID4gPgo+Pj4+PiA+ID4gIm1hZ2ljIgo+ Pj4+PiA+ID4KPj4+Pj4gPiA+IChzdWNoIGFzIGludmlzaWJsZSBmaWVsZHMpIHRoYXQgbWlnaHQg Y29tcGxpY2F0ZSB0aGluZ3MuCj4+Pj4+ID4gPgo+Pj4+PiA+ID4gPiBBbHNvIG9uIGEgdGFuZ2Vu dCwgSSB3YXMgZXhjaXRlZCBhYm91dCB0aGUgbGFtYmRhIHNob3J0aGFuZCBmb3Igc2luZ2xlCj4+ Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+IG1ldGhvZCBvYmplY3RzLiBMaWtlIEkgc2FpZCB0aGlzIGlu dGVyZmFjZSBvbmx5IGhhcyBhIHNpbmdsZSBub24tZGVmYXVsdAo+Pj4+PiA+ID4gPgo+Pj4+PiA+ ID4gPiBtZXRob2Q6IGFwcGx5LiBCdXQgSSB0cmllZCBqdXN0IGNhbGxpbmcgYChhcHA6cm91dGUg bWV0aG9kIGhhbmRsZXIpYAo+Pj4+PiA+ID4gPgo+Pj4+PiA+ID4gPiB3aXRob3V0IHdyYXBwaW5n IGl0IGluIHRoZSBpby5qb29ieS5Sb3V0ZSRIYW5kbGVyIG9iamVjdCBidXQgaXQgc3RpbGwKPj4+ Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gZmFpbGVkLiBJIGd1ZXNzIGl0IGNvdWxkbid0IGZpZ3VyZSBv dXQgdGhpcyBvbmUgbWV0aG9kLgo+Pj4+PiA+ID4KPj4+Pj4gPiA+IEthd2EgaGFzIHRvIGJlIGFi bGUgdG8gZmlndXJlIG91dCBhdCBjb21waWxlIHRpbWUgdGhhdCBhIHNwZWNpZmljCj4+Pj4+ID4g Pgo+Pj4+PiA+ID4gY2xhc3MvaW50ZXJmYWNlCj4+Pj4+ID4gPgo+Pj4+PiA+ID4gaXMgcmVxdWly ZWQgYmVmb3JlIGl0IGNhbiBjb252ZXJ0IHRoZSBsYW1iZGEgdG8gYW4gb2JqZWN0LiAoQXMgZmFy IGFzIEkKPj4+Pj4gPiA+Cj4+Pj4+ID4gPiBjYW4KPj4+Pj4gPiA+Cj4+Pj4+ID4gPiByZW1lbWJl ciwgZG9pbmcgdGhpcyBjb252ZXJzaW9uIGF0IHJ1bi10aW1lIGlzbid0IGltcGxlbWVudGVkLCBh bmQgd291bGQKPj4+Pj4gPiA+Cj4+Pj4+ID4gPiBiZQo+Pj4+PiA+ID4KPj4+Pj4gPiA+IGZhaXJs eSBjb21wbGljYXRlZC4pIFNvIHlvdSBtYXkgbmVlZCB0byBhZGQgc29tZSBtb3JlIHR5cGUtc3Bl Y2lmaWVycy4KPj4+Pj4gPiA+Cj4+Pj4+ID4gPiBJIHN1Z2dlc3QgdXNpbmcgamF2YXAgdG8gbG9v ayBhdCB0aGUgZ2VuZXJhdGVkIGNsYXNzZXMsIHRvIHNlZSB3aGF0IGlzCj4+Pj4+ID4gPgo+Pj4+ PiA+ID4gZ29pbmcgb24uCj4+Pj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4g PiA+Cj4+Pj4+ID4gPiAtLVBlciBCb3RobmVyCj4+Pj4+ID4gPgo+Pj4+PiA+ID4KPj4+Pj4gPiA+ IHBlckBib3RobmVyLmNvbSBodHRwOi8vcGVyLmJvdGhuZXIuY29tLw==