From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9042 invoked by alias); 10 Oct 2008 03:38:06 -0000 Received: (qmail 9033 invoked by uid 22791); 10 Oct 2008 03:38:04 -0000 X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.189) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 10 Oct 2008 03:37:19 +0000 Received: by ti-out-0910.google.com with SMTP id d10so132436tib.12 for ; Thu, 09 Oct 2008 20:37:16 -0700 (PDT) Received: by 10.110.33.15 with SMTP id g15mr821999tig.38.1223609836290; Thu, 09 Oct 2008 20:37:16 -0700 (PDT) Received: by 10.110.42.9 with HTTP; Thu, 9 Oct 2008 20:37:16 -0700 (PDT) Message-ID: Date: Fri, 10 Oct 2008 03:38:00 -0000 From: teawater To: "Pedro Alves" Subject: Re: [RFA] Displaced stepping just enable in non-stop mode Cc: gdb-patches@sourceware.org, "Joel Brobecker" , "Michael Snyder" In-Reply-To: <200810091549.26712.pedro@codesourcery.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_95355_10123796.1223609836255" References: <20081007121745.GH28138@adacore.com> <200810091549.26712.pedro@codesourcery.com> X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-10/txt/msg00309.txt.bz2 ------=_Part_95355_10123796.1223609836255 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 4112 Hi Pedro, Thanks for your example, I make a new patch for infrun.c and other for manual. 2008-10-10 Hui Zhu Displaced stepping can be set to auto (enable in non-stop mode), on, off. * infrun.c (can_use_displaced_stepping): Change type to const char pointer. (can_use_displaced_stepping_auto): New string. (can_use_displaced_stepping_on): New string. (can_use_displaced_stepping_off): New string. (can_use_displaced_stepping_enum): New array. (show_can_use_displaced_stepping): In auto mode, also show the current effect of the option. (use_displaced_stepping): Return non-zero if displaced stepping is auto, and can be used with GDBARCH, and in non-stop mode. Return non-zero if displaced stepping is on, and can be used with GDBARCH. (_initialize_infrun): "can-use-displaced-stepping" function change to add_setshow_enum_cmd. 2008-10-10 Hui Zhu * gdb.texinfo (can-use-displaced-stepping) Describe the auto mode setting, and make it the default. Thanks, Hui On Thu, Oct 9, 2008 at 22:49, Pedro Alves wrote: > Hi, > > Thanks for doing this. > > On Wednesday 08 October 2008 07:10:43, teawater wrote: > >> -int can_use_displaced_stepping = 1; >> +const char can_use_displaced_stepping_auto[] = "auto"; >> +const char can_use_displaced_stepping_on[] = "on"; >> +const char can_use_displaced_stepping_off[] = "off"; >> +const char *can_use_displaced_stepping_enum[] = >> +{ >> + can_use_displaced_stepping_auto, >> + can_use_displaced_stepping_on, >> + can_use_displaced_stepping_off, >> + NULL, >> +}; >> +const char *can_use_displaced_stepping = can_use_displaced_stepping_auto; > > Could you make these static while you're at it, please? It was just missed > in the old boolean setting. > >> static void >> show_can_use_displaced_stepping (struct ui_file *file, int from_tty, >> struct cmd_list_element *c, >> @@ -567,12 +579,16 @@ Debugger's willingness to use displaced >> "breakpoints is %s.\n"), value); > > Could you update this function to show what effect the auto setting > is currently having? See breakpoint.c:show_always_inserted_mode for > an example. > >> } >> >> -/* Return non-zero if displaced stepping is enabled, and can be used >> +/* Return non-zero if displaced stepping is auto, and can be used >> + with GDBARCH, and in non-stop mode. >> + Return non-zero if displaced stepping is on, and can be used >> with GDBARCH. */ >> static int >> use_displaced_stepping (struct gdbarch *gdbarch) >> { >> - return (can_use_displaced_stepping >> + return (((can_use_displaced_stepping == can_use_displaced_stepping_auto >> + && non_stop) >> + || can_use_displaced_stepping == can_use_displaced_stepping_on) >> && gdbarch_displaced_step_copy_insn_p (gdbarch)); >> } >> >> @@ -4857,11 +4873,14 @@ function is skipped and the step command >> show_step_stop_if_no_debug, >> &setlist, &showlist); >> >> - add_setshow_boolean_cmd ("can-use-displaced-stepping", class_maintenance, >> + add_setshow_enum_cmd ("can-use-displaced-stepping", class_maintenance, >> + can_use_displaced_stepping_enum, >> &can_use_displaced_stepping, _("\ >> Set debugger's willingness to use displaced stepping."), _("\ >> Show debugger's willingness to use displaced stepping."), _("\ >> -If zero, gdb will not use displaced stepping to step over\n\ >> +If auto, gdb will auto use displaced stepping if it need (in non-stop mode).\n\ >> +If on, gdb will use displaced stepping if such is supported by the target.\n\ >> +If off, gdb will not use displaced stepping to step over\n\ >> breakpoints, even if such is supported by the target."), > > This also needs to be updated in the manual. I'd suggest borrowing the text > from breakpoint.c's "always-inserted" command description to make it a > bit more descriptive, and mention which mode is the default. Should mostly > be a matter of copy-paste, I think. > > -- > Pedro Alves > ------=_Part_95355_10123796.1223609836255 Content-Type: text/plain; name=displaced_step_non_step.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fm49s8s70 Content-Disposition: attachment; filename=displaced_step_non_step.txt Content-length: 5698 LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz IEBACisyMDA4LTEwLTEwICBIdWkgWmh1ICA8dGVhd2F0ZXJAZ21haWwuY29t PgorCisJRGlzcGxhY2VkIHN0ZXBwaW5nIGNhbiBiZSBzZXQgdG8KKwlhdXRv IChlbmFibGUgaW4gbm9uLXN0b3AgbW9kZSksIG9uLCBvZmYuCisKKwkqIGlu ZnJ1bi5jIChjYW5fdXNlX2Rpc3BsYWNlZF9zdGVwcGluZyk6IENoYW5nZSB0 eXBlIHRvIGNvbnN0CisJY2hhciBwb2ludGVyLgorCShjYW5fdXNlX2Rpc3Bs YWNlZF9zdGVwcGluZ19hdXRvKTogTmV3IHN0cmluZy4KKwkoY2FuX3VzZV9k aXNwbGFjZWRfc3RlcHBpbmdfb24pOiBOZXcgc3RyaW5nLgorCShjYW5fdXNl X2Rpc3BsYWNlZF9zdGVwcGluZ19vZmYpOiBOZXcgc3RyaW5nLgorCShjYW5f dXNlX2Rpc3BsYWNlZF9zdGVwcGluZ19lbnVtKTogTmV3IGFycmF5LgorCShz aG93X2Nhbl91c2VfZGlzcGxhY2VkX3N0ZXBwaW5nKTogSW4gYXV0byBtb2Rl LCBhbHNvIHNob3cgdGhlCisJY3VycmVudCBlZmZlY3Qgb2YgdGhlIG9wdGlv bi4KKwkodXNlX2Rpc3BsYWNlZF9zdGVwcGluZyk6IFJldHVybiBub24temVy byBpZiBkaXNwbGFjZWQgc3RlcHBpbmcKKyAJaXMgYXV0bywgYW5kIGNhbiBi ZSB1c2VkIHdpdGggR0RCQVJDSCwgYW5kIGluIG5vbi1zdG9wIG1vZGUuCisJ UmV0dXJuIG5vbi16ZXJvIGlmIGRpc3BsYWNlZCBzdGVwcGluZyBpcyBvbiwg YW5kIGNhbiBiZSB1c2VkCisJd2l0aCBHREJBUkNILgorCShfaW5pdGlhbGl6 ZV9pbmZydW4pOiAiY2FuLXVzZS1kaXNwbGFjZWQtc3RlcHBpbmciIGZ1bmN0 aW9uCisJY2hhbmdlIHRvIGFkZF9zZXRzaG93X2VudW1fY21kLgorCiAyMDA4 LTEwLTA5ICBQZWRybyBBbHZlcyAgPHBlZHJvQGNvZGVzb3VyY2VyeS5jb20+ CiAKIAkqIHJlbW90ZS5jIChyZW1vdGVfd2FpdCk6IFJlbmFtZSB0by4uLgot LS0gYS9pbmZydW4uYworKysgYi9pbmZydW4uYwpAQCAtNTUzLDI2ICs1NTMs NTAgQEAgc3RhdGljIENPUkVfQUREUiBkaXNwbGFjZWRfc3RlcF9vcmlnaW5h bAogLyogU2F2ZWQgY29udGVudHMgb2YgY29weSBhcmVhLiAgKi8KIHN0YXRp YyBnZGJfYnl0ZSAqZGlzcGxhY2VkX3N0ZXBfc2F2ZWRfY29weTsKIAotLyog V2hlbiB0aGlzIGlzIG5vbi16ZXJvLCB3ZSBhcmUgYWxsb3dlZCB0byB1c2Ug ZGlzcGxhY2VkIHN0ZXBwaW5nLCBpZgotICAgdGhlIGFyY2hpdGVjdHVyZSBz dXBwb3J0cyBpdC4gIFdoZW4gdGhpcyBpcyB6ZXJvLCB3ZSB1c2UKKy8qIFdo ZW4gdGhpcyBpcyBhdXRvLCB3ZSBhcmUgYWxsb3dlZCB0byB1c2UgZGlzcGxh Y2VkIHN0ZXBwaW5nLAorICAgSWYgdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0 cyBpdCBhbmQgaW4gbm9uLXN0b3AgbW9kZS4KKyAgIFdoZW4gdGhpcyBpcyBv biwgd2UgYXJlIGFsbG93ZWQgdG8gdXNlIGRpc3BsYWNlZCBzdGVwcGluZywg aWYKKyAgIHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydHMgaXQuICBXaGVuIHRo aXMgaXMgb2ZmLCB3ZSB1c2UKICAgIHRyYWRpdGlvbmFsIHRoZSBob2xkLWFu ZC1zdGVwIGFwcHJvYWNoLiAgKi8KLWludCBjYW5fdXNlX2Rpc3BsYWNlZF9z dGVwcGluZyA9IDE7CitzdGF0aWMgY29uc3QgY2hhciBjYW5fdXNlX2Rpc3Bs YWNlZF9zdGVwcGluZ19hdXRvW10gPSAiYXV0byI7CitzdGF0aWMgY29uc3Qg Y2hhciBjYW5fdXNlX2Rpc3BsYWNlZF9zdGVwcGluZ19vbltdID0gIm9uIjsK K3N0YXRpYyBjb25zdCBjaGFyIGNhbl91c2VfZGlzcGxhY2VkX3N0ZXBwaW5n X29mZltdID0gIm9mZiI7CitzdGF0aWMgY29uc3QgY2hhciAqY2FuX3VzZV9k aXNwbGFjZWRfc3RlcHBpbmdfZW51bVtdID0KK3sKKyAgY2FuX3VzZV9kaXNw bGFjZWRfc3RlcHBpbmdfYXV0bywKKyAgY2FuX3VzZV9kaXNwbGFjZWRfc3Rl cHBpbmdfb24sCisgIGNhbl91c2VfZGlzcGxhY2VkX3N0ZXBwaW5nX29mZiwK KyAgTlVMTCwKK307CitzdGF0aWMgY29uc3QgY2hhciAqY2FuX3VzZV9kaXNw bGFjZWRfc3RlcHBpbmcgPQorICBjYW5fdXNlX2Rpc3BsYWNlZF9zdGVwcGlu Z19hdXRvOwogc3RhdGljIHZvaWQKIHNob3dfY2FuX3VzZV9kaXNwbGFjZWRf c3RlcHBpbmcgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHks CiAJCQkJIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLAogCQkJCSBjb25z dCBjaGFyICp2YWx1ZSkKIHsKLSAgZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwg XygiXAotRGVidWdnZXIncyB3aWxsaW5nbmVzcyB0byB1c2UgZGlzcGxhY2Vk IHN0ZXBwaW5nIHRvIHN0ZXAgb3ZlciAiCi0iYnJlYWtwb2ludHMgaXMgJXMu XG4iKSwgdmFsdWUpOworICBpZiAoY2FuX3VzZV9kaXNwbGFjZWRfc3RlcHBp bmcgPT0gY2FuX3VzZV9kaXNwbGFjZWRfc3RlcHBpbmdfYXV0bykKKyAgICB7 CisgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChmaWxlLCBfKCJcCitEZWJ1Z2dl cidzIHdpbGxpbmduZXNzIHRvIHVzZSBkaXNwbGFjZWQgc3RlcHBpbmcgdG8g c3RlcCBvdmVyICIgImJyZWFrcG9pbnRzIGlzICVzIChjdXJyZW50bHkgJXMp LlxuIiksIHZhbHVlLCBub25fc3RvcCA/ICJvbiIgOiAib2ZmIik7CisgICAg fQorICBlbHNlCisgICAgeworICAgICAgZnByaW50Zl9maWx0ZXJlZCAoZmls ZSwgXygiXAorRGVidWdnZXIncyB3aWxsaW5nbmVzcyB0byB1c2UgZGlzcGxh Y2VkIHN0ZXBwaW5nIHRvIHN0ZXAgb3ZlciAiICJicmVha3BvaW50cyBpcyAl cy5cbiIpLCB2YWx1ZSk7CisgICAgfQogfQogCi0vKiBSZXR1cm4gbm9uLXpl cm8gaWYgZGlzcGxhY2VkIHN0ZXBwaW5nIGlzIGVuYWJsZWQsIGFuZCBjYW4g YmUgdXNlZAorLyogUmV0dXJuIG5vbi16ZXJvIGlmIGRpc3BsYWNlZCBzdGVw cGluZyBpcyBhdXRvLCBhbmQgY2FuIGJlIHVzZWQKKyAgIHdpdGggR0RCQVJD SCwgYW5kIGluIG5vbi1zdG9wIG1vZGUuCisgICBSZXR1cm4gbm9uLXplcm8g aWYgZGlzcGxhY2VkIHN0ZXBwaW5nIGlzIG9uLCBhbmQgY2FuIGJlIHVzZWQK ICAgIHdpdGggR0RCQVJDSC4gICovCiBzdGF0aWMgaW50CiB1c2VfZGlzcGxh Y2VkX3N0ZXBwaW5nIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKIHsKLSAg cmV0dXJuIChjYW5fdXNlX2Rpc3BsYWNlZF9zdGVwcGluZworICByZXR1cm4g KCgoY2FuX3VzZV9kaXNwbGFjZWRfc3RlcHBpbmcgPT0gY2FuX3VzZV9kaXNw bGFjZWRfc3RlcHBpbmdfYXV0bworCSAgICAmJiBub25fc3RvcCkKKwkgICB8 fCBjYW5fdXNlX2Rpc3BsYWNlZF9zdGVwcGluZyA9PSBjYW5fdXNlX2Rpc3Bs YWNlZF9zdGVwcGluZ19vbikKIAkgICYmIGdkYmFyY2hfZGlzcGxhY2VkX3N0 ZXBfY29weV9pbnNuX3AgKGdkYmFyY2gpKTsKIH0KIApAQCAtNDg1NywxMSAr NDg4MSwxNCBAQCBmdW5jdGlvbiBpcyBza2lwcGVkIGFuZCB0aGUgc3RlcCBj b21tYW5kCiAJCQkgICBzaG93X3N0ZXBfc3RvcF9pZl9ub19kZWJ1ZywKIAkJ CSAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogCi0gIGFkZF9zZXRzaG93X2Jv b2xlYW5fY21kICgiY2FuLXVzZS1kaXNwbGFjZWQtc3RlcHBpbmciLCBjbGFz c19tYWludGVuYW5jZSwKKyAgYWRkX3NldHNob3dfZW51bV9jbWQgKCJjYW4t dXNlLWRpc3BsYWNlZC1zdGVwcGluZyIsIGNsYXNzX21haW50ZW5hbmNlLAor CQkJICAgY2FuX3VzZV9kaXNwbGFjZWRfc3RlcHBpbmdfZW51bSwKIAkJCSAg ICZjYW5fdXNlX2Rpc3BsYWNlZF9zdGVwcGluZywgXygiXAogU2V0IGRlYnVn Z2VyJ3Mgd2lsbGluZ25lc3MgdG8gdXNlIGRpc3BsYWNlZCBzdGVwcGluZy4i KSwgXygiXAogU2hvdyBkZWJ1Z2dlcidzIHdpbGxpbmduZXNzIHRvIHVzZSBk aXNwbGFjZWQgc3RlcHBpbmcuIiksIF8oIlwKLUlmIHplcm8sIGdkYiB3aWxs IG5vdCB1c2UgZGlzcGxhY2VkIHN0ZXBwaW5nIHRvIHN0ZXAgb3ZlclxuXAor SWYgYXV0bywgZ2RiIHdpbGwgYXV0byB1c2UgZGlzcGxhY2VkIHN0ZXBwaW5n IGlmIGl0IG5lZWQgKGluIG5vbi1zdG9wIG1vZGUpLlxuXAorSWYgb24sIGdk YiB3aWxsIHVzZSBkaXNwbGFjZWQgc3RlcHBpbmcgaWYgc3VjaCBpcyBzdXBw b3J0ZWQgYnkgdGhlIHRhcmdldC5cblwKK0lmIG9mZiwgZ2RiIHdpbGwgbm90 IHVzZSBkaXNwbGFjZWQgc3RlcHBpbmcgdG8gc3RlcCBvdmVyXG5cCiBicmVh a3BvaW50cywgZXZlbiBpZiBzdWNoIGlzIHN1cHBvcnRlZCBieSB0aGUgdGFy Z2V0LiIpLAogCQkJICAgTlVMTCwKIAkJCSAgIHNob3dfY2FuX3VzZV9kaXNw bGFjZWRfc3RlcHBpbmcsCg== ------=_Part_95355_10123796.1223609836255 Content-Type: text/plain; name=displaced_step_non_step_doc.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fm49sk3q1 Content-Disposition: attachment; filename=displaced_step_non_step_doc.txt Content-length: 2684 LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgg QEAKKzIwMDgtMTAtMTAgIEh1aSBaaHUgIDx0ZWF3YXRlckBnbWFpbC5jb20+ CisKKwkqIGdkYi50ZXhpbmZvIChjYW4tdXNlLWRpc3BsYWNlZC1zdGVwcGlu ZykgRGVzY3JpYmUgdGhlIGF1dG8gbW9kZQorCXNldHRpbmcsIGFuZCBtYWtl IGl0IHRoZSBkZWZhdWx0LgorCiAyMDA4LTEwLTA2ICBEb3VnIEV2YW5zICA8 ZGplQGdvb2dsZS5jb20+CiAKIAkqIGdkYi50ZXhpbmZvIChzZXQgZGVidWcg ZHdhcmYyLWRpZSk6IERvY3VtZW50IGl0LgotLS0gYS9nZGIudGV4aW5mbwor KysgYi9nZGIudGV4aW5mbwpAQCAtMjM5MzUsMTYgKzIzOTM1LDI1IEBAIFNo YXJlZCBsaWJyYXJ5IGV2ZW50cy4KIAogQGtpbmRleCBtYWludCBzZXQgY2Fu LXVzZS1kaXNwbGFjZWQtc3RlcHBpbmcKIEBraW5kZXggbWFpbnQgc2hvdyBj YW4tdXNlLWRpc3BsYWNlZC1zdGVwcGluZwotQGNpbmRleCBkaXNwbGFjZWQg c3RlcHBpbmcgc3VwcG9ydAotQGNpbmRleCBvdXQtb2YtbGluZSBzaW5nbGUt c3RlcHBpbmcKLUBpdGVtIG1haW50IHNldCBjYW4tdXNlLWRpc3BsYWNlZC1z dGVwcGluZwotQGl0ZW14IG1haW50IHNob3cgY2FuLXVzZS1kaXNwbGFjZWQt c3RlcHBpbmcKLUNvbnRyb2wgd2hldGhlciBvciBub3QgQHZhbHVle0dEQk59 IHdpbGwgZG8gQGRmbntkaXNwbGFjZWQgc3RlcHBpbmd9Ci1pZiB0aGUgdGFy Z2V0IHN1cHBvcnRzIGl0LiAgVGhlIGRlZmF1bHQgaXMgb24uICBEaXNwbGFj ZWQgc3RlcHBpbmcgaXMKLWEgd2F5IHRvIHNpbmdsZS1zdGVwIG92ZXIgYnJl YWtwb2ludHMgd2l0aG91dCByZW1vdmluZyB0aGVtIGZyb20gdGhlCi1pbmZl cmlvciwgYnkgZXhlY3V0aW5nIGFuIG91dC1vZi1saW5lIGNvcHkgb2YgdGhl IGluc3RydWN0aW9uIHRoYXQgd2FzCi1vcmlnaW5hbGx5IGF0IHRoZSBicmVh a3BvaW50IGxvY2F0aW9uLiAgSXQgaXMgYWxzbyBrbm93biBhcwotb3V0LW9m LWxpbmUgc2luZ2xlLXN0ZXBwaW5nLgorQHRhYmxlIEBjb2RlCitAaXRlbSBt YWludCBzZXQgY2FuLXVzZS1kaXNwbGFjZWQtc3RlcHBpbmcgb24KK0lmIHRo ZSB0YXJnZXQgc3VwcG9ydHMgaXQuICBHZGIgYmVoYXZlcyBhcmUgc2luZ2xl LXN0ZXAgb3ZlcgorYnJlYWtwb2ludHMgd2l0aG91dCByZW1vdmluZyB0aGVt IGZyb20gdGhlIGluZmVyaW9yLCBieSBleGVjdXRpbmcKK2FuIG91dC1vZi1s aW5lIGNvcHkgb2YgdGhlIGluc3RydWN0aW9uIHRoYXQgd2FzIG9yaWdpbmFs bHkgYXQgdGhlCiticmVha3BvaW50IGxvY2F0aW9uLiAgSXQgaXMgYWxzbyBr bm93biBhcyBvdXQtb2YtbGluZSBzaW5nbGUtc3RlcHBpbmcuCisKK0BpdGVt IG1haW50IHNldCBjYW4tdXNlLWRpc3BsYWNlZC1zdGVwcGluZyBvZmYKK0dk YiBiZWhhdmVzIGFyZSBzaW5nbGUtc3RlcCBvdmVyIGJyZWFrcG9pbnRzIHdp dGggcmVtb3ZpbmcgdGhlbSBmcm9tCit0aGUgaW5mZXJpb3IuCisKK0BjaW5k ZXggbm9uLXN0b3AgbW9kZSwgYW5kIEBjb2Rle2JyZWFrcG9pbnQgYWx3YXlz LWluc2VydGVkfQorQGl0ZW0gbWFpbnQgc2V0IGNhbi11c2UtZGlzcGxhY2Vk LXN0ZXBwaW5nIGF1dG8KK1RoaXMgaXMgdGhlIGRlZmF1bHQgbW9kZS4gIElm IEB2YWx1ZXtHREJOfSBpcyBjb250cm9sbGluZyB0aGUgaW5mZXJpb3IKK2lu IG5vbi1zdG9wIG1vZGUgKEBweHJlZntOb24tU3RvcCBNb2RlfSksIGdkYiBi ZWhhdmVzIGFzIGlmCitAY29kZXtjYW4tdXNlLWRpc3BsYWNlZC1zdGVwcGlu Z30gbW9kZSBpcyBvbi4gIElmIEB2YWx1ZXtHREJOfSBpcworY29udHJvbGxp bmcgdGhlIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIEB2YWx1ZXtHREJO fSBiZWhhdmVzIGFzIGlmCitAY29kZXtjYW4tdXNlLWRpc3BsYWNlZC1zdGVw cGluZ30gbW9kZSBpcyBvZmYuCitAZW5kIHRhYmxlCiAKIEBraW5kZXggbWFp bnQgY2hlY2stc3ltdGFicwogQGl0ZW0gbWFpbnQgY2hlY2stc3ltdGFicwo= ------=_Part_95355_10123796.1223609836255--