Re: Report #9: Unicode support
Dmitry Selyutin <[email protected]> Wed, 27 Aug 2014 14:51:01 +0400
| Newsgroups | gmane.os.freebsd.devel.internationalization |
|---|---|
| Message-ID | <CAMqzjeuUrpOfkX41bTY62NRNap0NetCKzTpSv5JaUC4Qvh59sA@mail.gmail.com> |
SSd2ZSBqdXN0IHNlZW4gRXVyb0JTRENvbidzIGNhbGVuZGFyIHBhZ2UgYW5kIGl0IHNlZW1zIHRo YXQgaXQgaXMKaW1wb3NzaWJsZSB0byBqb2luIGl0IChpLmUuIEkgbWlzc2VkIHRoZSBhcHBsaWNh dGlvbiBkZWFkbGluZSkuWzBdCldlbGwsIG1heSBiZSBuZXh0IHllYXI/IDotKQoKMjAxNC0wOC0y NyAxNDo0OCBHTVQrMDQ6MDAgRG1pdHJ5IFNlbHl1dGluIDxnaG9zdG1hbi5zZEBnbWFpbC5jb20+ Ogo+IEhpLCBQZWRybywgQmFwdGlzdGUsCj4KPiBmaXJzdCBvZiBhbGwgdGhhbmtzIGZvciB5b3Vy IGNvbmdyYXR1bGF0aW9ucyBhbmQga2luZCB3b3JkcyEgVGhlCj4gcHJvamVjdCB3YXMgcmVhbGx5 IGhhcmRlciB0aGF0IGFueXRoaW5nIEkndmUgZXZlciBtZXQgaW4gbXkgbGlmZSwgYnV0Cj4gYXQg dGhlIHNhbWUgdGltZSBpdCB3YXMgdGhlIG1vc3QgaW50ZXJlc3Rpbmcgb25lLiA6LSkgQW5kIHN0 aWxsCj4gcmVtYWlucyEgOy0pCj4KPj4gVGhhdCBpcyBub3QgcmVhbGx5IHVuY29tbW9uIDopCj4g V2VsbCwgc28gSSBjYW4gbGVhdmUgaXQgYXMgaXQgaXMuIDotKQo+Cj4+IFRoZSBwcm9qZWN0IGRv ZXMgaGF2ZSBhY2Nlc3MgdG8gc3BhcmM2NCBtYWNoaW5lcyBzbyBpZiB5b3UgaGF2ZSBzb21lCj4+ IHNlbGYtY29udGFpbmVkIHRlc3Qgd2UgY2FuIHJ1biBpdCBmb3IgeW91IG9yIHdlIGNhbiB0ZXN0 IGl0IGFzIGEgcm91dGluZSBsaWJjCj4+IHRlc3QgYWZ0ZXIgY29tbWl0dGluZy4KPiBIb3BlZnVs bHkgSSBjYW4gZmluaXNoIGl0IHRvZGF5IG9yIGluIHRoZSBuZXh0IHR3byBkYXlzLgo+Cj4+IFlv dSBuZXZlciBhbnN3ZXJlZCBteSBxdWVzdGlvbiBjb25jZXJuaW5nIHRoZSBmYWxsYmFjayBvcHRp b25zLgo+IFJlYWxseT8gSSB0aG91Z2h0IHRoYXQgSSBhbnN3ZXJlZC4gOi1EIFdlbGwsIEknbGwg dHJ5IHRvIGV4cGxhaW4KPiBhZ2Fpbi4gRFVDRVQgc2VlbXMgdG8gYmUgYSBiaXQgb2Jzb2xldGUg Y29sbGF0aW9uIHRhYmxlLCB3aGljaCBjYW4gYmUKPiBtb3JlIG9yIGxlc3Mgc3VjY2Vzc2Z1bGx5 IHVzZWQgd2l0aCByZWFsIGxhbmd1YWdlcy4gSG93ZXZlciwgaW4gcmVhbAo+IHdvcmxkIGl0IGlz IGNvbXBsZXRlbHkgdW51c2FibGUsIHNvIElDVSBhbmQgb3RoZXIgdXNlIENMRFIgY29sbGF0aW9u Cj4gdGFibGUsIHdoaWNoIHN1cHBvcnRzIG1vcmUgbGV2ZWxzLiBJIHN0YXJ0ZWQgd2l0aCBEVUNF VCBzaW5jZSB0aGVyZQo+IHdhcyBtdWNoIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaXQsIGJ1dCB0 aGVuIEkgZm91bmQgdGhhdCBpdCBkb2Vzbid0Cj4gZml0IHdlbGwsIHNvIEkgc3dpdGNoZWQgdG8g Q0xEUi4gV2UgaGF2ZSBEVUNFVCB0YWJsZSBzb21ld2hlcmUgaW4gb3VyCj4gcmV2aXNpb25zIHRo b3VnaDsgYXMgYSBmYWxsYmFjayBvcHRpb24sIGl0IHN0aWxsIG1heSBiZSB1c2VmdWwsIHNvIEkK PiBjYW4gcmVzdG9yZSBpdCBpZiB5b3Ugd2FudC4KPgo+PiBDaGFuZ2luZyBpdCB0byB1c2UgdGhl IE5ldEJTRCdzIGNkYiBzdXBwb3J0WzFdIHNob3VsZG4ndCBiZSBkaWZmaWN1bHQuCj4gV2VsbCwg SSB0aGluayBJJ2xsIGRvIGl0IHJpZ2h0IGFmdGVyIGV4YW1zLiBiZGIgQUZBSUsgaXMgZGVwcmVj YXRlZAo+IGZyb20gTGludXggKHRob3VnaCBpdCBjYW4gYmUgdXNlZCBhcyBiZGI0NiBvciBzb21l dGhpbmcgc2ltaWxhcikuIEkKPiBkb24ndCBrbm93IHJlYXNvbnMgd2h5IHRoZXkgZGlkIHN1Y2gg dGhpbmc7IGl0IHdvdWxkIGJlIGdyZWF0IGlmIHdlCj4gY291bGQgdXNlIGEgdG9vbCB3aGljaCBj YW4gYmUgdXNlZCBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zIHdpdGhvdXQKPiBtb2RpZmljYXRpb25z IGFuZCB0b25zIG9mIGNvbmRpdGlvbmFsIGRlZmluZSdzIGFuZCB1bmRlZidzLgo+Cj4+IEl0IGhh cyBzaW1wbGUgQVBJIHdheSBlYXNpZXIgdG8gdXNlLCB0aGUgZGIgZm9ybWF0IGlzIGVuZGlhbiBz YWZlIGFuZCBmaW5hbCBmaWxlCj4+IGlzIHNtYWxsZXIgdGhhbiBlcXVpdmFsZW50IGluIGJkYiBm b3JtYXQuCj4gSXQgc291bmRzIGdyZWF0IQo+Cj4+IEkgZG8gd2FudCB0byBlbmNvdXJhZ2UgeW91 IHRvIGdvIHRvIEV1cm9CU0RDb24gMjAxNCBpbiBTb2ZpYS4gVGhlCj4+IEZyZWVCU0QgRm91bmRh dGlvbiB3aWxsIGJlIGFsbG9jYXRpbmcgZnVuZHMgZm9yIHN0dWRlbnRzIHRoYXQgd2FudCB0byBn by4KPj4gSSB3b27igJl0IGJlIHRoZXJlIChJIGFtIGEgYml0IGZhciBhd2F5KSBidXQgRGF2aWQg YW5kIG90aGVyIGRldmVsb3BlcnMgd2lsbAo+PiBsaWtlbHkgYmUuCj4gV2VsbCwgdGhhdCBkZXBl bmRzIG9uIHdoZXRoZXIgSSBwYXNzIG15IGV4YW1zIGZvciB0aGUgcG9zdGdyYWR1YXRlCj4gY291 cnNlIG9yIG5vdC4gSSdkIHJlYWxseSBsaWtlIHRvIGxpc3RlbiB0byBtb3JlIGV4cGVyaWVuY2Vk Cj4gZGV2ZWxvcGVycyBhbmQgbWF5IGJlIGV2ZW4gdGFsayB0byBvdGhlciBwZW9wbGUgYWJvdXQg d29yayB3aGljaCBJIGRpZAo+IHRvIGJldHRlciB1bmRlcnN0YW5kIHRoZSBjb21tdW5pdHkncyBv cGluaW9ucy4KPgo+IDIwMTQtMDgtMjcgMzoxNyBHTVQrMDQ6MDAgUGVkcm8gR2lmZnVuaSA8cGZn QGZyZWVic2Qub3JnPjoKPj4gSGkgQmFwdGlzdGU7Cj4+Cj4+Cj4+IE9uIDA4LzI2LzE0IDE3OjE2 LCBCYXB0aXN0ZSBEYXJvdXNzaW4gd3JvdGU6Cj4+Pgo+Pj4gT24gV2VkLCBBdWcgMjcsIDIwMTQg YXQgMDE6MDg6NThBTSArMDQwMCwgRG1pdHJ5IFNlbHl1dGluIHdyb3RlOgo+Pj4+Cj4+Pj4gSGVs bG8gZXZlcnlvbmUhCj4+Pj4KPj4+PiBIZXJlIGFyZSB0aGUgbGFzdCBuZXdzIGFib3V0IHRoZSBV bmljb2RlIHN1cHBvcnQgcHJvamVjdFswXS4KPj4+PiBZb3UgY2FuIGFsd2F5cyBjaGVjayBteSBy ZXBvc2l0b3J5WzFdLgo+Pj4+Cj4+Pj4gRHVyaW5nIHRoZXNlIGRheXMgSSBoYWQgaGFyZHdhcmUg cHJvYmxlbXMgKG15IEhERCBwZWFjZWZ1bGx5IGRpZWQpLCBzbwo+Pj4+IGRldmVsb3BtZW50IGRp ZG4ndCBwcm9ncmVzcyBzbyBtdWNoIGFzIGJlZm9yZS4gSG93ZXZlciwgSSd2ZQo+Pj4+IGVsaW1p bmF0ZWQgdGhlc2UgcHJvYmxlbXMsIHNvIEkgdHJpZWQgdG8gZml4IGJ1Z3MgYW5kIHJlb3JnYW5p emUgdGhlCj4+Pj4gY29kZSBhcyBtdWNoIGFzIHBvc3NpYmxlLiBOb3cgZXZlcnl0aGluZyBzaGFs bCBjb21waWxlLgo+Pj4+Cj4+Pj4gSSBkZWNpZGVkIHRvIHVzZSBfX2F0dHJpYnV0ZV9fKChjb25z dHJ1Y3RvcikpIGFuZAo+Pj4+IF9fYXR0cmlidXRlX18oKGRlc3RydWN0b3IpKSwgc2luY2UgSSBk b24ndCBrbm93IGlmIHRoZXJlIGV4aXN0IGEKPj4+PiBiZXR0ZXIgd2F5IHRvIG9wZW4gYSBmaWxl IG9uY2UgaW4gdGhlIHN0YXJ0dXAgYW5kIGNsb3NpbmcgaXQgd2hlbiBhbGwKPj4+PiByb3V0aW5l cyBjbG9zZS4gSSd2ZSBmb3VuZCBvbmUgb3IgdHdvIG9jY3VycmVuY2VzIG9mIHRoaXMgY29uc3Ry dWN0aW9uCj4+Pj4gaW4gRnJlZUJTRCBjb2RlOyBBRkFJQ1QgaXQgaXMgcmF0aGVyIGNvbW1vbiBp biBjbGFuZyBhbmQgZ2NjLCBzbyBJCj4+Pj4gZGVjaWRlZCB0byB1c2UgaXQuIEhvcGVmdWxseSBp dCB3aWxsIGFsc28gYWxsb3cgdXMgdG8gdXNlIHJvb3QKPj4+PiBjb2xsYXRpb24gZGF0YWJhc2Ug aW4gdGhlIGVtYmVkZGVkIHN5c3RlbXMgKGlmIGFueSBzdWNoIHN5c3RlbSByZWFsbHkKPj4+PiBu ZWVkcyBjb2xsYXRpb24gYWxnb3JpdGhtKS4KPj4+Pgo+Pj4+IEFzIHlvdSBtYXkga25vdyB3ZSBu ZWVkIGEgdG9vbCB0aGF0IGNhbiBjb252ZXJ0IGNvbGxhdGlvbiB0ZXh0IGZpbGVzCj4+Pj4gb2J0 YWluZWQgZnJvbSB1bmljb2RlLm9yZyB0byBuZXcgY29sbGF0aW9uIGRhdGFiYXNlIChjb2xsZGIp IGZvcm1hdC4KPj4+PiBUaGVyZSBpcyBhIHZlcnNpb24gb2YgdGhpcyB0b29sIHdyaXR0ZW4gaW4g UHl0aG9uCj4+Pj4gKHNoYXJlL2V4YW1wbGVzL2NvbGxkYi9jb2xsZGIucHkpLiBJSVJDIHdlIGNh bid0IHVzZSBQeXRob24gd2hlbiB3ZQo+Pj4+IGhhdmUgYSBiYXNlIHN5c3RlbSB0aG91Z2gsIHNv IGl0IHNlZW1zIHRoYXQgd2UgbmVlZCB0byB3cml0dGVuIHN1Y2gKPj4+PiB0b29sIHVzaW5nIEMg bGFuZ3VhZ2UuIEkgd2FzIHRoaW5raW5nIG9mIGxleC95YWNjIGNvbWJvOyBJJ3ZlIG5ldmVyCj4+ Pj4gdHJpZWQgaXQsIGJ1dCBJIHRoaW5rIGl0IHNob3VsZG4ndCBiZSB0b28gaGFyZCB0byB3cml0 ZSBhIHRvb2wgdXNpbmcKPj4+PiBpdC4gSSdkIGxpa2UgdG8ga25vdyB5b3VyIG9waW5pb25zIGFi b3V0IHRoaXMgdGFzay4KPj4+PiBJJ3ZlIGFscmVhZHkgd3JpdHRlbiBhIG1hbiBwYWdlIChiaW4v Y29sbGRiL2NvbGxkYi4xKS4gVGhlIG9ubHkgdGhpbmcKPj4+PiB3aGljaCBzZWVtcyBkdWJpb3Vz IGlzIHRoYXQgSSBkZWNpZGVkIHRvIHVzZSB0aGUgc2FtZSBuYW1lIGFzIGZvciB0aGUKPj4+PiBs aWJyYXJ5IGl0c2VsZiAod2VsbCwgaXQgc2VlbXMgSSBoYXZlIGEgbGFjayBvZiBpbWFnaW5hdGlv bikuIFNvIHdlCj4+Pj4gaGF2ZSBib3RoIGNvbGxkYi4xIGFuZCBjb2xsZGIuMyBtYW4gcGFnZXMu Cj4+Pj4KPj4+PiBUaGUgb3RoZXIgdGhpbmcgSSdkIHJlYWxseSBsaWtlIHRvIGRvIGlzIHRvIHJl YWxseSBmb3JjZSBuZXR3b3JrIGJ5dGUKPj4+PiBvcmRlciBpbiBjb2xsYXRpb24gZGF0YWJhc2Ug Zm9ybWF0IChJJ20gc3VyZSBJJ3ZlIHNlZW4gYSB3YXkgdG8gZG8gaXQKPj4+PiBpbiBCZXJrbGV5 IGRhdGFiYXNlcykuIEl0J3MgYSBwaXR5IHRoYXQgSSBoYXZlIG5vIHBsYXRmb3JtIHdpdGgKPj4+ PiBiaWctZW5kaWFuIChvciBldmVuIFBEUCEpIGJ5dGUgb3JkZXIuIEFueSBoZWxwIGhlcmUgaXMg aGlnaGx5Cj4+Pj4gYXBwcmVjaWF0ZWQgKGFzIHdlbGwgYXMgeW91ciB0aG91Z2h0cyBhYm91dCBs ZXgveWFjYywgaS5lLiB0aG91Z2h0cwo+Pj4+IHdoZXRoZXIgaXQgZml0cyB3ZWxsIHRvIG15IHRh c2spLgo+Pj4+Cj4+Pj4gU2luY2UgR29vZ2xlIFN1bW1lciBvZiBDb2RlIHBlcmlvZCBoYXMgcGFz c2VkLCBJJ2QgbGlrZSB0byB0aGFuayBib3RoCj4+Pj4gbXkgbWVudG9ycywgUGVkcm8gYW5kIERh dmlkLCB3aG8gZ2F2ZSBtZSBhIGhlbHBpbmcgaGFuZCBkdXJpbmcgdGhpcwo+Pj4+IHByb2plY3Qs IGFuZCBlc3BlY2lhbGx5IEtvbnJhZCBKYW5rb3dza2ksIHdobyBmb3VuZCB0aW1lIHRvIGFuc3dl ciBteQo+Pj4+IHF1ZXN0aW9ucyBhbmQgaGVscCBtZSB0b28uIFRob3VnaCBHU29DIGlzIGNsb3Nl ZCwgSSdkIGxpa2UgdG8gc3RheQo+Pj4+IHdpdGggRnJlZUJTRCBwcm9qZWN0LiBGaXJzdCBvZiBh bGwsIEkgd2FudCB0byBmaW5pc2ggYW5kIGJyaW5nIHRvIG1pbmQKPj4+PiB0aGlzIHByb2plY3Q6 IEkgZG9uJ3QgdGhpbmsgaXQncyByZWFsbHkgZmluaXNoZWQsIGVzcGVjaWFsbHkgaXRzCj4+Pj4g dGVzdGluZyBwYXJ0LCB0aG91Z2ggaXQgc2VlbXMgdGhhdCBuZXcgY29sbGF0aW9uIGFsZ29yaXRo bSBjYW4gYWxyZWFkeQo+Pj4+IGJlIHVzZWQuIFRoZW4gSSdkIGxpa2UgdG8gd29yayBpbiBvdGhl ciBwYXJ0cyBvZiBteSBwcm9qZWN0LAo+Pj4+IGVzcGVjaWFsbHkgaW4gaW50ZXJuYXRpb25hbGl6 YXRpb24gcGFydHMuIEknZCBhbHNvIGxpa2UgdG8gaW1wcm92ZSBteQo+Pj4+IG93biBsaWJyYXJ5 LCBxYywgdG8gcHJvdmlkZSBhIHJpY2ggQVBJIGZvciAqQlNEIGFuZCBQT1NJWCBzeXN0ZW1zLAo+ Pj4+IHNpbmNlIEkgYWN1dGVseSBmZWVsIHRoZSBsYWNrIG9mIHN1Y2ggQVBJLiBJZiBpdCBpcyBw b3NzaWJsZSB0byBzdGF5Cj4+Pj4gd2l0aCBwcm9qZWN0LCBJJ2QgYmUgdmVyeSBoYXBweSB0byBk byBpdC4gOi0pCj4+Pj4KPj4+PiBQLlMuIERvZXMgYW55b25lIGtub3dzIGhvdyB0byBnZXQgZGlm ZiBiZXR3ZWVuIG9ubHkgZm9yIG15IGJyYW5jaAo+Pj4+IChpLmUuIGZvciBteSBwYXJ0IG9mIHJl cG9zaXRvcnkpPyBzdm4gZGlmZiAtciAkRklSU1Q6JExBU1Qgc2VlbXMgdG8KPj4+PiBnaXZlIGV2 ZXJ5dGhpbmcgd2hhdCBhbGwgRnJlZUJTRCdzIEdTb0MgaGF2ZSBkb25lLCBzbyBJIG5lZWQgc29t ZQo+Pj4+IG90aGVyIGNvbW1hbmQuIFRoYW5rcyBmb3IgeW91ciBoZWxwIQo+Pj4+Cj4+Pj4gWzBd IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9TdW1tZXJPZkNvZGUyMDE0L1VuaWNvZGUKPj4+PiBb MV0gaHR0cHM6Ly9zb2Nzdm4uZnJlZWJzZC5vcmcvc29jc3ZuL3NvYzIwMTQvZ2hvc3RtYW5zZAo+ Pj4+Cj4+PiBGaXJzdCB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3VyIHdvcmsgb24gdGhpcyBz dWJqZWN0IHRoaXMgaXMgaGlnaGx5Cj4+PiBuZWVkZWQuCj4+Pgo+Pj4gQ29uY2VybmluZyB0aGUg ZGIgZm9ybWF0IGhhdmUgeW91IHRob3VnaHQgYWJvdXQgdXNpbmcgdGhlIG5ldyBuZXRic2QKPj4+ IGNvbnN0YW50Cj4+PiBkYXRhYmFzZSBmb3JtYXQ/Cj4+Pgo+Pj4gSXQgaGFzIHNpbXBsZSBBUEkg d2F5IGVhc2llciB0byB1c2UsIHRoZSBkYiBmb3JtYXQgaXMgZW5kaWFuIHNhZmUgYW5kCj4+PiBm aW5hbCBmaWxlCj4+PiBpcyBzbWFsbGVyIHRoYW4gZXF1aXZhbGVudCBpbiBiZGIgZm9ybWF0Lgo+ Pj4KPj4+IExvdHMgb2YgYXJlYXMgb2YgRnJlZUJTRCBjb3VsZCBiZW5lZml0IGZyb20gdXNpbmcg dGhpcyBjZGIgZm9ybWF0IGFzIHdlbGwKPj4+IGltaG8uCj4+Cj4+Cj4+IFdoaWxlIGhlcmUsIGxl dCBtZSBjb25ncmF0dWxhdGUgRG1pdHJ5LiBUaGUgVW5pY29kZSBDb2xsYXRpb24gQWxnb3JpdGht IGlzCj4+IG5vdCBzb21ldGhpbmcgZWFzeS9mdW4gdG8gd29yayB3aXRoLgo+Pgo+PiBJbmRlZWQg Ym90aCBEYXZpZCBhbmQgS29ucmFkIHN1Z2dlc3RlZCBpdCAob3IgdGlueWNkYikuIFRoZSByZWFz b24gZm9yCj4+IGdvaW5nIGJkYiB3YXMgdGhhdCB3ZSBoYWQgdGltZSBjb25zdHJhaW50cyBhbmQg YmRiIGlzIGFscmVhZHkgaW4gbGliYy4KPj4KPj4gRldJVywgTmV4ZW50YSBraW5kbHkgcmUtbGlj ZW5zZWQgbG9jYWxlZGVmIFsxXSBhbmQgdGhlaXIgY29sbGF0aW9uIHN1cHBvcnQKPj4gaW4gSWxs dW1vcyB3aGljaCBiYXNpY2FsbHkgaW1wbGVtZW50cyB0aGVpciBvd24gdmVyeSBlZmZpY2llbnQg Zm9ybWF0LiBXZQo+PiBlbmRlZCB1cCByZS11c2luZyB0aGUgdG9vbHMgdGhhdCBsaWJjIGFscmVh ZHkgaGFzIHRvIGJldHRlciBmb2N1cyBvbiB0aGUKPj4gY29sbGF0aW9uIHBhcnQuCj4+Cj4+IENo YW5naW5nIGl0IHRvIHVzZSB0aGUgTmV0QlNEJ3MgY2RiIHN1cHBvcnRbMV0gc2hvdWxkbid0IGJl IGRpZmZpY3VsdC4KPj4KPj4gQXMgRG1pdHJ5IG5vdGVkIHRoZXJlIGFyZSBzdGlsbCBkZXRhaWxz IHRvIHdvcmsgb3V0IGFuZCB3ZSBoYXZlIHRvIHJ1biB0ZXN0cwo+PiBhbmQgZ2V0IHRoZSBjb2Rl IHJldmlld2VkIGJ1dCBhbGwgaW4gYWxsIEkgYW0gdmVyeSBzYXRpc2ZpZWQgd2l0aCB0aGUKPj4g YWR2YW5jZQo+PiBpbiB0aGlzIEdTb0MuCj4+Cj4+IEJlc3QgcmVnYXJkcywKPj4KPj4gUGVkcm8u Cj4+Cj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vTmV4ZW50YS9pbGx1bW9zLW5leGVudGEvdHJl ZS9yZXB1Ymxpc2gtbG9jYWxlZGVmCj4+IFsyXSBodHRwOi8vY3Zzd2ViLm5ldGJzZC5vcmcvYnNk d2ViLmNnaS9zcmMvbGliL2xpYmMvY2RiLwo+Pgo+Cj4KPgo+IC0tCj4gV2l0aCBiZXN0IHJlZ2Fy ZHMsCj4gRG1pdHJ5IFNlbHl1dGluCgoKCi0tIApXaXRoIGJlc3QgcmVnYXJkcywKRG1pdHJ5IFNl bHl1dGluCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZy ZWVic2QtaTE4bkBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmZyZWVic2Qu b3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWJzZC1pMThuClRvIHVuc3Vic2NyaWJlLCBzZW5kIGFu eSBtYWlsIHRvICJmcmVlYnNkLWkxOG4tdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmci