[COMMIT] Use the existing C-level line number cache within #'line-number.
Aidan Kehoe <[email protected]> Fri, 15 May 2015 18:13:24 +0100
| Newsgroups | gmane.emacs.xemacs.patches |
|---|---|
| Message-ID | <[email protected]> |
ClRoaXMgaXMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNoYW5nZXMgbmVjZXNzYXJ5IGZvciBzeW5j aW5nIEdOVeKAmXMKYnl0ZWNvbXAuZWwuIAoKQVBQUk9WRSBDT01NSVQKCk5PVEU6IFRoaXMgcGF0 Y2ggaGFzIGJlZW4gY29tbWl0dGVkLgoKIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIEFpZGFu IEtlaG9lIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KIyBEYXRlIDE0MzE3MDk5MDcgLTM2MDAKIyAg ICAgIEZyaSBNYXkgMTUgMTg6MTE6NDcgMjAxNSArMDEwMAojIE5vZGUgSUQgYmQ0ZDJjOGVmOWNj MTkwODA1NzcyYWJiYWU3Y2JhNTQzZWY2ODU3NQojIFBhcmVudCAgMWIyZmRjYzNjYzVjNWVhNjcy NmRmYWNlY2Q2ZTE1NDIyY2RiYjc2YwpVc2UgdGhlIGV4aXN0aW5nIEMtbGV2ZWwgbGluZSBudW1i ZXIgY2FjaGUgd2l0aGluICMnbGluZS1udW1iZXIuCgpzcmMvQ2hhbmdlTG9nIGFkZGl0aW9uOgoK MjAxNS0wNS0xNSAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KCgkqIGJ1ZmZl ci5jOgoJKiBidWZmZXIuYyAoRmxpbmVfbnVtYmVyKTogTmV3IEMgaW1wbGVtZW50YXRpb24sIHVz aW5nIHRoZSBsaW5lCgludW1iZXIgY2FjaGUgb2YgbGluZS1udW1iZXIuYywgd2l0aCBhIG5ldyBv cHRpb25hbCBCVUZGRVIKCWFyZ3VtZW50LgoJKiBidWZmZXIuYyAoc3ltc19vZl9idWZmZXIpOgoJ TWFrZSBpdCBhdmFpbGFibGUgdG8gTGlzcC4KCSogbGluZS1udW1iZXIuYyAoYnVmZmVyX2xpbmVf bnVtYmVyKToKCU5ldyBhcmd1bWVudCwgUkVTUEVDVC1OQVJST1dJTkcsIGRlc2NyaWJpbmcgd2hl dGhlciB0byBjb3VudCBmcm9tCgl0aGUgYmVnaW5uaW5nIG9mIHRoZSB2aXNpYmxlIHJlZ2lvbiBv ciBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlCglidWZmZXIuCgkqIGxpbmUtbnVtYmVyLmg6Cgkq IGxpbmUtbnVtYmVyLmggKGJ1ZmZlcl9saW5lX251bWJlcik6IFVwZGF0ZSBpdHMgZGVjbGFyYXRp b24uCgkqIHJlZGlzcGxheS5jICh3aW5kb3dfbGluZV9udW1iZXIpOiBDYWxsIGl0IHdpdGggdGhl IG5ldyBhcmd1bWVudC4KCmxpc3AvQ2hhbmdlTG9nIGFkZGl0aW9uOgoKMjAxNS0wNS0xNSAgQWlk YW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KCgkqIHNpbXBsZS5lbDoKCSogc2ltcGxl LmVsIChsaW5lLW51bWJlcik6IE1vdmVkIHRvIGJ1ZmZlci5jOyB3ZSBoYXZlIGFuIGV4aXN0aW5n CglsaW5lIG51bWJlciBjYWNoZSBpbiBDLCBpdCdzIGEgc2hhbWUgbm90IHRvIGhhdmUgaXQgYXZh aWxhYmxlLgoKZGlmZiAtciAxYjJmZGNjM2NjNWMgLXIgYmQ0ZDJjOGVmOWNjIGxpc3AvQ2hhbmdl TG9nCi0tLSBhL2xpc3AvQ2hhbmdlTG9nCU1vbiBNYXkgMTEgMTg6MDQ6NTggMjAxNSArMDEwMAor KysgYi9saXNwL0NoYW5nZUxvZwlGcmkgTWF5IDE1IDE4OjExOjQ3IDIwMTUgKzAxMDAKQEAgLTEs MyArMSw5IEBACisyMDE1LTA1LTE1ICBBaWRhbiBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0 PgorCisJKiBzaW1wbGUuZWw6CisJKiBzaW1wbGUuZWwgKGxpbmUtbnVtYmVyKTogTW92ZWQgdG8g YnVmZmVyLmM7IHdlIGhhdmUgYW4gZXhpc3RpbmcKKwlsaW5lIG51bWJlciBjYWNoZSBpbiBDLCBp dCdzIGEgc2hhbWUgbm90IHRvIGhhdmUgaXQgYXZhaWxhYmxlLgorCiAyMDE1LTA0LTExICBBaWRh biBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgogCiAJKiBtdWxlL211bGUtY21kcy5lbCAo c2V0LWxvY2FsZS1mb3ItbGFuZ3VhZ2UtZW52aXJvbm1lbnQpOgpkaWZmIC1yIDFiMmZkY2MzY2M1 YyAtciBiZDRkMmM4ZWY5Y2MgbGlzcC9zaW1wbGUuZWwKLS0tIGEvbGlzcC9zaW1wbGUuZWwJTW9u IE1heSAxMSAxODowNDo1OCAyMDE1ICswMTAwCisrKyBiL2xpc3Avc2ltcGxlLmVsCUZyaSBNYXkg MTUgMTg6MTE6NDcgMjAxNSArMDEwMApAQCAtODA5LDE5ICs4MDksNyBAQAogCQkgKG1lc3NhZ2Ug IkxpbmUgJWQiIGJ1ZmZlci1saW5lKSkpKSkpKQogICAoc2V0cSB6bWFjcy1yZWdpb24tc3RheXMg dCkpCiAKLTs7IG5ldyBpbiBYRW1hY3MgMjEuMiAobm90IGluIEZTRikuCi0oZGVmdW4gbGluZS1u dW1iZXIgKCZvcHRpb25hbCBwb3MgcmVzcGVjdC1uYXJyb3dpbmcpCi0gICJSZXR1cm4gdGhlIGxp bmUgbnVtYmVyIG9mIFBPUyAoZGVmYXVsdHMgdG8gcG9pbnQpLgotSWYgUkVTUEVDVC1OQVJST1dJ TkcgaXMgbm9uLW5pbCwgdGhlbiB0aGUgbmFycm93ZWQgbGluZSBudW1iZXIgaXMgcmV0dXJuZWQ7 Ci1vdGhlcndpc2UsIHRoZSBhYnNvbHV0ZSBsaW5lIG51bWJlciBpcyByZXR1cm5lZC4gIFRoZSBy ZXR1cm5lZCBsaW5lIGNhbiBhbHdheXMKLWJlIGdpdmVuIHRvIGBnb3RvLWxpbmUnIHRvIGdldCBi YWNrIHRvIHRoZSBjdXJyZW50IGxpbmUuIgotICAoaWYgKGFuZCBwb3MgKC89IHBvcyAocG9pbnQp KSkKLSAgICAgIChzYXZlLWV4Y3Vyc2lvbgotCShnb3RvLWNoYXIgcG9zKQotCShsaW5lLW51bWJl ciBuaWwgcmVzcGVjdC1uYXJyb3dpbmcpKQotICAgICgxKyAoY291bnQtbGluZXMgKGlmIHJlc3Bl Y3QtbmFycm93aW5nIChwb2ludC1taW4pIDEpIChwb2ludC1hdC1ib2wpKSkpKQotCi07OyBGU0Yg MjIuMC41MC4xIChDVlMpIHZlcnNpb24gb2YgYWJvdmUuCis7OyBGU0YgMjIuMC41MC4xIChDVlMp IHZlcnNpb24gb2YgIydsaW5lLW51bWJlci4KIChkZWZ1biBsaW5lLW51bWJlci1hdC1wb3MgKCZv cHRpb25hbCBwb3MpCiAgIChsaW5lLW51bWJlciBwb3MgdCkpCiAKZGlmZiAtciAxYjJmZGNjM2Nj NWMgLXIgYmQ0ZDJjOGVmOWNjIHNyYy9DaGFuZ2VMb2cKLS0tIGEvc3JjL0NoYW5nZUxvZwlNb24g TWF5IDExIDE4OjA0OjU4IDIwMTUgKzAxMDAKKysrIGIvc3JjL0NoYW5nZUxvZwlGcmkgTWF5IDE1 IDE4OjExOjQ3IDIwMTUgKzAxMDAKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wNS0xNSAgQWlkYW4g S2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KKworCSogYnVmZmVyLmM6CisJKiBidWZmZXIu YyAoRmxpbmVfbnVtYmVyKTogTmV3IEMgaW1wbGVtZW50YXRpb24sIHVzaW5nIHRoZSBsaW5lCisJ bnVtYmVyIGNhY2hlIG9mIGxpbmUtbnVtYmVyLmMsIHdpdGggYSBuZXcgb3B0aW9uYWwgQlVGRkVS CisJYXJndW1lbnQuCisJKiBidWZmZXIuYyAoc3ltc19vZl9idWZmZXIpOgorCU1ha2UgaXQgYXZh aWxhYmxlIHRvIExpc3AuCisJKiBsaW5lLW51bWJlci5jIChidWZmZXJfbGluZV9udW1iZXIpOgor CU5ldyBhcmd1bWVudCwgUkVTUEVDVC1OQVJST1dJTkcsIGRlc2NyaWJpbmcgd2hldGhlciB0byBj b3VudCBmcm9tCisJdGhlIGJlZ2lubmluZyBvZiB0aGUgdmlzaWJsZSByZWdpb24gb3IgZnJvbSB0 aGUgYmVnaW5uaW5nIG9mIHRoZQorCWJ1ZmZlci4KKwkqIGxpbmUtbnVtYmVyLmg6CisJKiBsaW5l LW51bWJlci5oIChidWZmZXJfbGluZV9udW1iZXIpOiBVcGRhdGUgaXRzIGRlY2xhcmF0aW9uLgor CSogcmVkaXNwbGF5LmMgKHdpbmRvd19saW5lX251bWJlcik6IENhbGwgaXQgd2l0aCB0aGUgbmV3 IGFyZ3VtZW50LgorCiAyMDE1LTA1LTExICBBaWRhbiBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQu bmV0PgogCiAJKiB1bmljb2RlLmMgKGVuY29kZV91bmljb2RlX2NoYXIpOgpkaWZmIC1yIDFiMmZk Y2MzY2M1YyAtciBiZDRkMmM4ZWY5Y2Mgc3JjL2J1ZmZlci5jCi0tLSBhL3NyYy9idWZmZXIuYwlN b24gTWF5IDExIDE4OjA0OjU4IDIwMTUgKzAxMDAKKysrIGIvc3JjL2J1ZmZlci5jCUZyaSBNYXkg MTUgMTg6MTE6NDcgMjAxNSArMDEwMApAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgImZpbGUt Y29kaW5nLmgiCiAjaW5jbHVkZSAiZnJhbWUtaW1wbC5oIgogI2luY2x1ZGUgImluc2RlbC5oIgor I2luY2x1ZGUgImxpbmUtbnVtYmVyLmgiCiAjaW5jbHVkZSAibHN0cmVhbS5oIgogI2luY2x1ZGUg InByb2Nlc3MuaCIgICAgICAgICAgICAvKiBmb3Iga2lsbF9idWZmZXJfcHJvY2Vzc2VzICovCiAj aWZkZWYgUkVHSU9OX0NBQ0hFX05FRURTX1dPUksKQEAgLTE3NDYsNyArMTc0NywyOCBAQAogCiAg IHJldHVybiBRbmlsOwogfQotCisMCisvKiBJdCB3YXMgYSBzaGFtZSB0byBoYXZlIHRoZSBsaW5l IG51bWJlciBjYWNoZSBhcm91bmQgYW5kIG5vdCB1c2VkIGZyb20KKyAgIExpc3AsIHNvIG1vdmUg dGhpcyBoZXJlIGZyb20gc2ltcGxlLmVsLiAqLworCitERUZVTiAoImxpbmUtbnVtYmVyIiwgRmxp bmVfbnVtYmVyLCAwLCAzLCAwLCAvKgorUmV0dXJuIHRoZSBsaW5lIG51bWJlciBvZiBQT1NJVElP TiB3aXRoaW4gQlVGRkVSLgorCitQT1NJVElPTiBkZWZhdWx0cyB0byBwb2ludC4gSWYgUkVTUEVD VC1OQVJST1dJTkcgaXMgbm9uLW5pbCwgdGhlbiB0aGUgbmFycm93ZWQKK2xpbmUgbnVtYmVyIGlz IHJldHVybmVkOyBvdGhlcndpc2UsIHRoZSBhYnNvbHV0ZSBsaW5lIG51bWJlciBpcyByZXR1cm5l ZC4gIFRoZQorcmV0dXJuZWQgbGluZSBjYW4gYWx3YXlzIGJlIGdpdmVuIHRvIGBnb3RvLWxpbmUn IHRvIGdldCBiYWNrIHRvIHRoZSBjdXJyZW50CitsaW5lLgorKi8KKyAgICAgICAocG9zaXRpb24s IHJlc3BlY3RfbmFycm93aW5nLCBidWZmZXJfKSkKK3sKKyAgc3RydWN0IGJ1ZmZlciAqYnVmID0g ZGVjb2RlX2J1ZmZlciAoYnVmZmVyXywgMCk7CisgIENoYXJicG9zIHBvcyA9IChOSUxQIChwb3Np dGlvbikgPyBCVUZfUFQgKGJ1ZikgOgorCQkgIGdldF9idWZmZXJfcG9zX2NoYXIgKGJ1ZiwgcG9z aXRpb24sIEdCX0NPRVJDRV9SQU5HRSkpOworCisgIHJldHVybiBtYWtlX2ZpeG51bSAoYnVmZmVy X2xpbmVfbnVtYmVyIChidWYsIHBvcywgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICFOSUxQIChyZXNwZWN0X25hcnJvd2luZykpICsgMSk7Cit9CisMCiAjaWZk ZWYgTUVNT1JZX1VTQUdFX1NUQVRTCiAKIHN0cnVjdCBidWZmZXJfc3RhdHMKQEAgLTE5NTIsNiAr MTk3NCw3IEBACiAgIERFRlNVQlIgKEZiYXJmX2lmX2J1ZmZlcl9yZWFkX29ubHkpOwogICBERUZT VUJSIChGYnVyeV9idWZmZXIpOwogICBERUZTVUJSIChGa2lsbF9hbGxfbG9jYWxfdmFyaWFibGVz KTsKKyAgREVGU1VCUiAoRmxpbmVfbnVtYmVyKTsKICNpZiBkZWZpbmVkIChERUJVR19YRU1BQ1Mp ICYmIGRlZmluZWQgKE1VTEUpCiAgIERFRlNVQlIgKEZidWZmZXJfY2hhcl9ieXRlX2NvbnZlcmlv bl9pbmZvKTsKICAgREVGU1VCUiAoRnN0cmluZ19jaGFyX2J5dGVfY29udmVyaW9uX2luZm8pOwpk aWZmIC1yIDFiMmZkY2MzY2M1YyAtciBiZDRkMmM4ZWY5Y2Mgc3JjL2xpbmUtbnVtYmVyLmMKLS0t IGEvc3JjL2xpbmUtbnVtYmVyLmMJTW9uIE1heSAxMSAxODowNDo1OCAyMDE1ICswMTAwCisrKyBi L3NyYy9saW5lLW51bWJlci5jCUZyaSBNYXkgMTUgMTg6MTE6NDcgMjAxNSArMDEwMApAQCAtMjY2 LDE2ICsyNjYsMTcgQEAKICAgIElmIHRoZSBjYWxjdWxhdGlvbiAod2l0aCBvciB3aXRob3V0IHRo ZSBjYWNoZSBsb29rdXApIHJlcXVpcmVkIG1vcmUKICAgIHRoYW4gTElORV9OVU1CRVJfRkFSIGNo YXJhY3RlcnMgb2YgdHJhdmVyc2FsLCB1cGRhdGUgdGhlIGNhY2hlLiAgKi8KIEVNQUNTX0lOVAot YnVmZmVyX2xpbmVfbnVtYmVyIChzdHJ1Y3QgYnVmZmVyICpiLCBDaGFyYnBvcyBwb3MsIGludCBj YWNoZXApCitidWZmZXJfbGluZV9udW1iZXIgKHN0cnVjdCBidWZmZXIgKmIsIENoYXJicG9zIHBv cywgQm9vbGludCBjYWNoZXAsCisgICAgICAgICAgICAgICAgICAgIEJvb2xpbnQgcmVzcGVjdF9u YXJyb3dpbmcpCiB7Ci0gIENoYXJicG9zIGJlZyA9IEJVRl9CRUdWIChiKTsKKyAgQ2hhcmJwb3Mg YmVnID0gcmVzcGVjdF9uYXJyb3dpbmcgPyBCVUZfQkVHViAoYikgOiBCVUZfQkVHIChiKTsKICAg RU1BQ1NfSU5UIGNhY2hlZF9saW5lcyA9IDA7CiAgIEVNQUNTX0lOVCBzaG9ydGFnZSwgbGluZTsK IAogICBpZiAoKHBvcyA+IGJlZyA/IHBvcyAtIGJlZyA6IGJlZyAtIHBvcykgPD0gTElORV9OVU1C RVJfRkFSKQogICAgIGNhY2hlcCA9IDA7CiAKLSAgaWYgKGNhY2hlcCkKKyAgaWYgKGNhY2hlcCAm JiAocmVzcGVjdF9uYXJyb3dpbmcgfHwgQlVGX0JFRyAoYikgPT0gQlVGX0JFR1YgKGIpKSkKICAg ICB7CiAgICAgICBpZiAoTklMUCAoYi0+dGV4dC0+bGluZV9udW1iZXJfY2FjaGUpKQogCWFsbG9j YXRlX2xpbmVfbnVtYmVyX2NhY2hlIChiKTsKQEAgLTI4NSwxMyArMjg2LDE0IEBACiAJICBMSU5F X05VTUJFUl9CRUdWIChiKSA9IFF6ZXJvOwogCSAgLyogIyMjIyBUaGlzIGhhcyBhIHNpZGUtZWZm ZWN0IG9mIGNoYW5naW5nIHRoZSBjYWNoZS4gICovCiAJICBMSU5FX05VTUJFUl9CRUdWIChiKSA9 Ci0JICAgIG1ha2VfZml4bnVtIChidWZmZXJfbGluZV9udW1iZXIgKGIsIEJVRl9CRUdWIChiKSwg MSkpOworCSAgICBtYWtlX2ZpeG51bSAoYnVmZmVyX2xpbmVfbnVtYmVyIChiLCBCVUZfQkVHViAo YiksIDEsIDApKTsKIAl9CiAgICAgICBjYWNoZWRfbGluZXMgPSBYRklYTlVNIChMSU5FX05VTUJF Ul9CRUdWIChiKSk7CiAgICAgICBnZXRfbmVhcmVzdF9saW5lX251bWJlciAoYiwgJmJlZywgcG9z LCAmY2FjaGVkX2xpbmVzKTsKICAgICB9CiAKLSAgc2Nhbl9idWZmZXIgKGIsICdcbicsIGJlZywg cG9zLCBwb3MgPiBiZWcgPyBNT1NUX1BPU0lUSVZFX0ZJWE5VTSA6IC1NT1NUX1BPU0lUSVZFX0ZJ WE5VTSwKKyAgc2Nhbl9idWZmZXIgKGIsICdcbicsIGJlZywgcG9zLAorICAgICAgICAgICAgICAg cG9zID4gYmVnID8gTU9TVF9QT1NJVElWRV9GSVhOVU0gOiAtTU9TVF9QT1NJVElWRV9GSVhOVU0s CiAJICAgICAgICZzaG9ydGFnZSwgMCk7CiAKICAgbGluZSA9IE1PU1RfUE9TSVRJVkVfRklYTlVN IC0gc2hvcnRhZ2U7CkBAIC0yOTksNyArMzAxLDcgQEAKICAgICBsaW5lID0gLWxpbmU7CiAgIGxp bmUgKz0gY2FjaGVkX2xpbmVzOwogCi0gIGlmIChjYWNoZXApCisgIGlmIChjYWNoZXAgJiYgKHJl c3BlY3RfbmFycm93aW5nIHx8IEJVRl9CRUcgKGIpID09IEJVRl9CRUdWIChiKSkpCiAgICAgewog ICAgICAgLyogSWYgdG9vIGZhciwgdXBkYXRlIHRoZSBjYWNoZS4gKi8KICAgICAgIGlmICgocG9z ID4gYmVnID8gcG9zIC0gYmVnIDogYmVnIC0gcG9zKSA+IExJTkVfTlVNQkVSX0ZBUikKZGlmZiAt ciAxYjJmZGNjM2NjNWMgLXIgYmQ0ZDJjOGVmOWNjIHNyYy9saW5lLW51bWJlci5oCi0tLSBhL3Ny Yy9saW5lLW51bWJlci5oCU1vbiBNYXkgMTEgMTg6MDQ6NTggMjAxNSArMDEwMAorKysgYi9zcmMv bGluZS1udW1iZXIuaAlGcmkgTWF5IDE1IDE4OjExOjQ3IDIwMTUgKzAxMDAKQEAgLTI1LDYgKzI1 LDYgQEAKIAkJCQkJICBjb25zdCBJYnl0ZSAqLCBCeXRlY291bnQpOwogdm9pZCBkZWxldGVfaW52 YWxpZGF0ZV9saW5lX251bWJlcl9jYWNoZSAoc3RydWN0IGJ1ZmZlciAqLCBDaGFyYnBvcywgQ2hh cmJwb3MpOwogCi1FTUFDU19JTlQgYnVmZmVyX2xpbmVfbnVtYmVyIChzdHJ1Y3QgYnVmZmVyICos IENoYXJicG9zLCBpbnQpOworRU1BQ1NfSU5UIGJ1ZmZlcl9saW5lX251bWJlciAoc3RydWN0IGJ1 ZmZlciAqLCBDaGFyYnBvcywgaW50LCBCb29saW50KTsKIAogI2VuZGlmIC8qIElOQ0xVREVEX2xp bmVfbnVtYmVyX2hfICovCmRpZmYgLXIgMWIyZmRjYzNjYzVjIC1yIGJkNGQyYzhlZjljYyBzcmMv cmVkaXNwbGF5LmMKLS0tIGEvc3JjL3JlZGlzcGxheS5jCU1vbiBNYXkgMTEgMTg6MDQ6NTggMjAx NSArMDEwMAorKysgYi9zcmMvcmVkaXNwbGF5LmMJRnJpIE1heSAxNSAxODoxMTo0NyAyMDE1ICsw MTAwCkBAIC03MzIwLDcgKzczMjAsNyBAQAogICAgICA6IG1hcmtlcl9wb3NpdGlvbiAody0+cG9p bnRtW3R5cGVdKSk7CiAgIEVNQUNTX0lOVCBsaW5lOwogCi0gIGxpbmUgPSBidWZmZXJfbGluZV9u dW1iZXIgKGIsIHBvcywgMSk7CisgIGxpbmUgPSBidWZmZXJfbGluZV9udW1iZXIgKGIsIHBvcywg MSwgMSk7CiAKICAgewogICAgIHN0YXRpYyBBc2NieXRlIHdpbmRvd19saW5lX251bWJlcl9idWZb REVDSU1BTF9QUklOVF9TSVpFIChsb25nKV07CgoKLS0gCuKAmFRyYW1hZG9sIGlzIGZ1cnRoZXIg ZmVkIHRvIGNhdHRsZSBb4oCmXSB3aGVuIHdvcmtpbmcgdGhlbSBb4oCmXSAoYXMgZHJhZnQKYW5p bWFscykgc28gdGhhdCB0aGUgYW5pbWFscyBkbyBub3QgZ2V0IHRpcmVkIHF1aWNrbHkuIOKApuKA mQoJ4oCUIEFuZ2V3YW5kdGUgQ2hlbWllLCBTZXB0IDIwMTQsIGRlc2NyaWJpbmcgdGhlIHNvY2lh bCBjb250ZXh0IG9mCgkoc3ludGhldGljKSB0cmFtYWRvbCBoYXZpbmcgYmVlbiBmb3VuZCBpbiBD YW1lcm9vbiB0cmVlIHJvb3RzLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWEVtYWNzLVBhdGNoZXMgbWFpbGluZyBsaXN0ClhFbWFjcy1QYXRjaGVzQHhl bWFjcy5vcmcKaHR0cDovL2xpc3RzLnhlbWFjcy5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW1hY3Mt cGF0Y2hlcwo=