From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8783 invoked by alias); 11 Sep 2009 01:30:10 -0000 Received: (qmail 8774 invoked by uid 22791); 11 Sep 2009 01:30:09 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_31,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Sep 2009 01:30:04 +0000 Received: from wpaz1.hot.corp.google.com (wpaz1.hot.corp.google.com [172.24.198.65]) by smtp-out.google.com with ESMTP id n8B1TvVG020688 for ; Fri, 11 Sep 2009 02:30:02 +0100 Received: from yxe34 (yxe34.prod.google.com [10.190.2.34]) by wpaz1.hot.corp.google.com with ESMTP id n8B1TIDE015798 for ; Thu, 10 Sep 2009 18:29:47 -0700 Received: by yxe34 with SMTP id 34so874959yxe.8 for ; Thu, 10 Sep 2009 18:29:46 -0700 (PDT) MIME-Version: 1.0 Received: by 10.101.29.20 with SMTP id g20mr2482362anj.34.1252632586899; Thu, 10 Sep 2009 18:29:46 -0700 (PDT) In-Reply-To: <20090910182952.GK20694@adacore.com> References: <8ac60eac0908201340k6b759eb5o9bb73c8f473d8785@mail.gmail.com> <200908211130.n7LBUCJc011108@d12av02.megacenter.de.ibm.com> <8ac60eac0908231548x135edf2doa04fa59a49455bcd@mail.gmail.com> <8ac60eac0908260020l4200cf84v2686a76b5858d13@mail.gmail.com> <20090909055824.GB11738@adacore.com> <8ac60eac0909101036r101263e7qd11c1a69f13008f1@mail.gmail.com> <20090910182952.GK20694@adacore.com> Date: Fri, 11 Sep 2009 01:30:00 -0000 Message-ID: <8ac60eac0909101829g5384d665gdab27526fe95c27c@mail.gmail.com> Subject: Re: [patch] Speed up find_pc_section From: Paul Pluzhnikov To: Joel Brobecker Cc: Ulrich Weigand , Ulrich Weigand , gdb-patches ml , Tom Tromey , Jan Kratochvil Content-Type: multipart/mixed; boundary=001636b2b4d060551904734340b5 X-System-Of-Record: true 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: 2009-09/txt/msg00298.txt.bz2 --001636b2b4d060551904734340b5 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 668 On Thu, Sep 10, 2009 at 11:29 AM, Joel Brobecker wrote: >> I am not sure calling complaint rather than warning is really the right >> thing here: complaints are silent unless the user explicitly turns them on, >> and overlapping sections indicate a real problem of some sort. > > I still think we should use a complaint in this case. Adjusted patch attached. Thanks, -- Paul Pluzhnikov 2009-09-10 Paul Pluzhnikov * objfiles.c (qsort_cmp): Remove asserts. (insert_section_p, filter_debuginfo_sections): New function. (filter_overlapping_sections): Likewise. (update_section_map): Adjust. --001636b2b4d060551904734340b5 Content-Type: text/plain; charset=US-ASCII; name="gdb-find_pc_section-20090910-2.txt" Content-Disposition: attachment; filename="gdb-find_pc_section-20090910-2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fzg91zfz0 Content-length: 9675 SW5kZXg6IG9iamZpbGVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxlcy5jLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjk0CmRpZmYgLXUgLXAgLXUgLXIxLjk0IG9iamZpbGVz LmMKLS0tIG9iamZpbGVzLmMJMjcgQXVnIDIwMDkgMjE6NTY6MzggLTAwMDAJ MS45NAorKysgb2JqZmlsZXMuYwkxMSBTZXAgMjAwOSAwMToyNTo0OCAtMDAw MApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIK ICNpbmNsdWRlICJleGVjLmgiCiAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKKyNp bmNsdWRlICJjb21wbGFpbnRzLmgiCiAKIC8qIFByb3RvdHlwZXMgZm9yIGxv Y2FsIGZ1bmN0aW9ucyAqLwogCkBAIC04MDIsMTUgKzgwMyw5IEBAIHFzb3J0 X2NtcCAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKICAgY29uc3Qg Q09SRV9BRERSIHNlY3QyX2FkZHIgPSBvYmpfc2VjdGlvbl9hZGRyIChzZWN0 Mik7CiAKICAgaWYgKHNlY3QxX2FkZHIgPCBzZWN0Ml9hZGRyKQotICAgIHsK LSAgICAgIGdkYl9hc3NlcnQgKG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3Qx KSA8PSBzZWN0Ml9hZGRyKTsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9Cisg ICAgcmV0dXJuIC0xOwogICBlbHNlIGlmIChzZWN0MV9hZGRyID4gc2VjdDJf YWRkcikKLSAgICB7Ci0gICAgICBnZGJfYXNzZXJ0IChzZWN0MV9hZGRyID49 IG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3QyKSk7Ci0gICAgICByZXR1cm4g MTsKLSAgICB9CisgICAgcmV0dXJuIDE7CiAKICAgcmV0dXJuIDA7CiB9CkBA IC04MzUsMTIgKzgzMCwxMzUgQEAgcHJlZmVycmVkX29ial9zZWN0aW9uIChz dHJ1Y3Qgb2JqX3NlY3RpbwogICByZXR1cm4gYjsKIH0KIAotLyogVXBkYXRl IFBNQVAsIFBNQVBfU0laRSB3aXRoIG5vbi1UTFMgc2VjdGlvbnMgZnJvbSBh bGwgb2JqZmlsZXMuICAqLworLyogUmV0dXJuIDEgaWYgU0VDVElPTiBzaG91 bGQgYmUgaW5zZXJ0ZWQgaW50byB0aGUgc2VjdGlvbiBtYXAuCisgICBXZSB3 YW50IHRvIGluc2VydCBvbmx5IG5vbi1vdmVybGF5IGFuZCBub24tVExTIHNl Y3Rpb24uICAqLworCitzdGF0aWMgaW50CitpbnNlcnRfc2VjdGlvbl9wIChj b25zdCBzdHJ1Y3QgYmZkICphYmZkLAorCQkgIGNvbnN0IHN0cnVjdCBiZmRf c2VjdGlvbiAqc2VjdGlvbikKK3sKKyAgY29uc3QgYmZkX3ZtYSBsbWEgPSBi ZmRfc2VjdGlvbl9sbWEgKGFiZmQsIHNlY3Rpb24pOworCisgIGlmIChsbWEg IT0gMCAmJiBsbWEgIT0gYmZkX3NlY3Rpb25fdm1hIChhYmZkLCBzZWN0aW9u KQorICAgICAgJiYgKGJmZF9nZXRfZmlsZV9mbGFncyAoYWJmZCkgJiBCRkRf SU5fTUVNT1JZKSA9PSAwKQorICAgIC8qIFRoaXMgaXMgYW4gb3ZlcmxheSBz ZWN0aW9uLiAgSU5fTUVNT1JZIGNoZWNrIGlzIG5lZWRlZCB0byBhdm9pZAor ICAgICAgIGRpc2NhcmRpbmcgc2VjdGlvbnMgZnJvbSB0aGUgInN5c3RlbSBz dXBwbGllZCBEU08iIChha2EgdmRzbykKKyAgICAgICBvbiBMaW51eC4gICov CisgICAgcmV0dXJuIDA7CisgIGlmICgoYmZkX2dldF9zZWN0aW9uX2ZsYWdz IChhYmZkLCBzZWN0aW9uKSAmIFNFQ19USFJFQURfTE9DQUwpICE9IDApCisg ICAgLyogVGhpcyBpcyBhIFRMUyBzZWN0aW9uLiAgKi8KKyAgICByZXR1cm4g MDsKKworICByZXR1cm4gMTsKK30KKworLyogRmlsdGVyIG91dCBvdmVybGFw cGluZyBzZWN0aW9ucyB3aGVyZSBvbmUgc2VjdGlvbiBjYW1lIGZyb20gdGhl IHJlYWwKKyAgIG9iamZpbGUsIGFuZCB0aGUgb3RoZXIgZnJvbSBhIHNlcGFy YXRlIGRlYnVnaW5mbyBmaWxlLgorICAgUmV0dXJuIHRoZSBzaXplIG9mIHRh YmxlIGFmdGVyIHJlZHVuZGFudCBzZWN0aW9ucyBoYXZlIGJlZW4gZWxpbWlu YXRlZC4gICovCisKK3N0YXRpYyBpbnQKK2ZpbHRlcl9kZWJ1Z2luZm9fc2Vj dGlvbnMgKHN0cnVjdCBvYmpfc2VjdGlvbiAqKm1hcCwgaW50IG1hcF9zaXpl KQoreworICBpbnQgaSwgajsKKworICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8 IG1hcF9zaXplIC0gMTsgaSsrKQorICAgIHsKKyAgICAgIHN0cnVjdCBvYmpf c2VjdGlvbiAqY29uc3Qgc2VjdDEgPSBtYXBbaV07CisgICAgICBzdHJ1Y3Qg b2JqX3NlY3Rpb24gKmNvbnN0IHNlY3QyID0gbWFwW2kgKyAxXTsKKyAgICAg IGNvbnN0IHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmaWxlMSA9IHNlY3Qx LT5vYmpmaWxlOworICAgICAgY29uc3Qgc3RydWN0IG9iamZpbGUgKmNvbnN0 IG9iamZpbGUyID0gc2VjdDItPm9iamZpbGU7CisgICAgICBjb25zdCBDT1JF X0FERFIgc2VjdDFfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QxKTsK KyAgICAgIGNvbnN0IENPUkVfQUREUiBzZWN0Ml9hZGRyID0gb2JqX3NlY3Rp b25fYWRkciAoc2VjdDIpOworCisgICAgICBpZiAoc2VjdDFfYWRkciA9PSBz ZWN0Ml9hZGRyCisJICAmJiAob2JqZmlsZTEtPnNlcGFyYXRlX2RlYnVnX29i amZpbGUgPT0gb2JqZmlsZTIKKwkgICAgICB8fCBvYmpmaWxlMi0+c2VwYXJh dGVfZGVidWdfb2JqZmlsZSA9PSBvYmpmaWxlMSkpCisJeworCSAgbWFwW2or K10gPSBwcmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNlY3QxLCBzZWN0Mik7CisJ ICArK2k7CisJfQorICAgICAgZWxzZQorCW1hcFtqKytdID0gc2VjdDE7Cisg ICAgfQorCisgIGlmIChpIDwgbWFwX3NpemUpCisgICAgbWFwW2orK10gPSBt YXBbaV07CisKKyAgLyogVGhlIG1hcCBzaG91bGQgbm90IGhhdmUgc2hydW5r IHRvIGxlc3MgdGhhbiBoYWxmIHRoZSBvcmlnaW5hbCBzaXplLiAgKi8KKyAg Z2RiX2Fzc2VydCAobWFwX3NpemUgLyAyIDw9IGopOworCisgIHJldHVybiBq OworfQorCisvKiBGaWx0ZXIgb3V0IG92ZXJsYXBwaW5nIHNlY3Rpb25zLCBp c3N1aW5nIGEgd2FybmluZyBpZiBhbnkgYXJlIGZvdW5kLgorICAgT3Zlcmxh cHBpbmcgc2VjdGlvbnMgY291bGQgcmVhbGx5IGJlIG92ZXJsYXkgc2VjdGlv bnMgd2hpY2ggd2UgZGlkbid0CisgICBjbGFzc2lmeSBhcyBzdWNoIGluIGlu c2VydF9zZWN0aW9uX3AsIG9yIHdlIGNvdWxkIGJlIGRlYWxpbmcgd2l0aCBh CisgICBjb3JydXB0IGJpbmFyeS4gICovCisKK3N0YXRpYyBpbnQKK2ZpbHRl cl9vdmVybGFwcGluZ19zZWN0aW9ucyAoc3RydWN0IG9ial9zZWN0aW9uICoq bWFwLCBpbnQgbWFwX3NpemUpCit7CisgIGludCBpLCBqOworCisgIGZvciAo aSA9IDAsIGogPSAwOyBpIDwgbWFwX3NpemUgLSAxOyApCisgICAgeworICAg ICAgaW50IGs7CisKKyAgICAgIG1hcFtqKytdID0gbWFwW2ldOworICAgICAg Zm9yIChrID0gaSArIDE7IGsgPCBtYXBfc2l6ZTsgaysrKQorCXsKKwkgIHN0 cnVjdCBvYmpfc2VjdGlvbiAqY29uc3Qgc2VjdDEgPSBtYXBbaV07CisJICBz dHJ1Y3Qgb2JqX3NlY3Rpb24gKmNvbnN0IHNlY3QyID0gbWFwW2tdOworCSAg Y29uc3QgQ09SRV9BRERSIHNlY3QxX2FkZHIgPSBvYmpfc2VjdGlvbl9hZGRy IChzZWN0MSk7CisJICBjb25zdCBDT1JFX0FERFIgc2VjdDJfYWRkciA9IG9i al9zZWN0aW9uX2FkZHIgKHNlY3QyKTsKKwkgIGNvbnN0IENPUkVfQUREUiBz ZWN0MV9lbmRhZGRyID0gb2JqX3NlY3Rpb25fZW5kYWRkciAoc2VjdDEpOwor CisJICBnZGJfYXNzZXJ0IChzZWN0MV9hZGRyIDw9IHNlY3QyX2FkZHIpOwor CisJICBpZiAoc2VjdDFfZW5kYWRkciA8PSBzZWN0Ml9hZGRyKQorCSAgICBi cmVhazsKKwkgIGVsc2UKKwkgICAgeworCSAgICAgIC8qIFdlIGhhdmUgYW4g b3ZlcmxhcC4gIFJlcG9ydCBpdC4gICovCisKKwkgICAgICBzdHJ1Y3Qgb2Jq ZmlsZSAqY29uc3Qgb2JqZjEgPSBzZWN0MS0+b2JqZmlsZTsKKwkgICAgICBz dHJ1Y3Qgb2JqZmlsZSAqY29uc3Qgb2JqZjIgPSBzZWN0Mi0+b2JqZmlsZTsK KworCSAgICAgIGNvbnN0IHN0cnVjdCBiZmQgKmNvbnN0IGFiZmQxID0gb2Jq ZjEtPm9iZmQ7CisJICAgICAgY29uc3Qgc3RydWN0IGJmZCAqY29uc3QgYWJm ZDIgPSBvYmpmMi0+b2JmZDsKKworCSAgICAgIGNvbnN0IHN0cnVjdCBiZmRf c2VjdGlvbiAqY29uc3QgYmZkczEgPSBzZWN0MS0+dGhlX2JmZF9zZWN0aW9u OworCSAgICAgIGNvbnN0IHN0cnVjdCBiZmRfc2VjdGlvbiAqY29uc3QgYmZk czIgPSBzZWN0Mi0+dGhlX2JmZF9zZWN0aW9uOworCisJICAgICAgY29uc3Qg Q09SRV9BRERSIHNlY3QyX2VuZGFkZHIgPSBvYmpfc2VjdGlvbl9lbmRhZGRy IChzZWN0Mik7CisKKwkgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqY29uc3QgZ2Ri YXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamYxKTsKKworCSAgICAgIGNv bXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKwkJCSBfKCJVbmV4cGVj dGVkIG92ZXJsYXAgYmV0d2VlbiAiCisJCQkgICAic2VjdGlvbiBgJXMnIGZy b20gYCVzJyBbJXMsICVzKSBhbmQgIgorCQkJICAgInNlY3Rpb24gYCVzJyBm cm9tIGAlcycgWyVzLCAlcykiKSwKKwkJCSBiZmRfc2VjdGlvbl9uYW1lIChh YmZkMSwgYmZkczEpLCBvYmpmMS0+bmFtZSwKKwkJCSBwYWRkcmVzcyAoZ2Ri YXJjaCwgc2VjdDFfYWRkciksCisJCQkgcGFkZHJlc3MgKGdkYmFyY2gsIHNl Y3QxX2VuZGFkZHIpLAorCQkJIGJmZF9zZWN0aW9uX25hbWUgKGFiZmQyLCBi ZmRzMiksIG9iamYyLT5uYW1lLAorCQkJIHBhZGRyZXNzIChnZGJhcmNoLCBz ZWN0Ml9hZGRyKSwKKwkJCSBwYWRkcmVzcyAoZ2RiYXJjaCwgc2VjdDJfZW5k YWRkcikpOworCSAgICB9CisJfQorICAgICAgaSA9IGs7CisgICAgfQorICBy ZXR1cm4gbWFwX3NpemU7Cit9CisKKworLyogVXBkYXRlIFBNQVAsIFBNQVBf U0laRSB3aXRoIHNlY3Rpb25zIGZyb20gYWxsIG9iamZpbGVzLCBleGNsdWRp bmcgYW55CisgICBUTFMsIG92ZXJsYXkgYW5kIG92ZXJsYXBwaW5nIHNlY3Rp b25zLiAgKi8KIAogc3RhdGljIHZvaWQKIHVwZGF0ZV9zZWN0aW9uX21hcCAo c3RydWN0IG9ial9zZWN0aW9uICoqKnBtYXAsIGludCAqcG1hcF9zaXplKQog ewotICBpbnQgbWFwX3NpemUsIGksIGo7CisgIGludCBhbGxvY19zaXplLCBt YXBfc2l6ZSwgaTsKICAgc3RydWN0IG9ial9zZWN0aW9uICpzLCAqKm1hcDsK ICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7CiAKQEAgLTg0OSw1NSArOTY3 LDI3IEBAIHVwZGF0ZV9zZWN0aW9uX21hcCAoc3RydWN0IG9ial9zZWN0aW9u ICoKICAgbWFwID0gKnBtYXA7CiAgIHhmcmVlIChtYXApOwogCi0jZGVmaW5l IGluc2VydF9wKG9iamYsIHNlYykgXAotICAoKGJmZF9nZXRfc2VjdGlvbl9m bGFncyAoKG9iamYpLT5vYmZkLCAoc2VjKS0+dGhlX2JmZF9zZWN0aW9uKSBc Ci0gICAgJiBTRUNfVEhSRUFEX0xPQ0FMKSA9PSAwKQotCi0gIG1hcF9zaXpl ID0gMDsKKyAgYWxsb2Nfc2l6ZSA9IDA7CiAgIEFMTF9PQkpTRUNUSU9OUyAo b2JqZmlsZSwgcykKLSAgICBpZiAoaW5zZXJ0X3AgKG9iamZpbGUsIHMpKQot ICAgICAgbWFwX3NpemUgKz0gMTsKKyAgICBpZiAoaW5zZXJ0X3NlY3Rpb25f cCAob2JqZmlsZS0+b2JmZCwgcy0+dGhlX2JmZF9zZWN0aW9uKSkKKyAgICAg IGFsbG9jX3NpemUgKz0gMTsKIAotICBtYXAgPSB4bWFsbG9jIChtYXBfc2l6 ZSAqIHNpemVvZiAoKm1hcCkpOworICBtYXAgPSB4bWFsbG9jIChhbGxvY19z aXplICogc2l6ZW9mICgqbWFwKSk7CiAKICAgaSA9IDA7CiAgIEFMTF9PQkpT RUNUSU9OUyAob2JqZmlsZSwgcykKLSAgICBpZiAoaW5zZXJ0X3AgKG9iamZp bGUsIHMpKQorICAgIGlmIChpbnNlcnRfc2VjdGlvbl9wIChvYmpmaWxlLT5v YmZkLCBzLT50aGVfYmZkX3NlY3Rpb24pKQogICAgICAgbWFwW2krK10gPSBz OwogCi0jdW5kZWYgaW5zZXJ0X3AKLQotICBxc29ydCAobWFwLCBtYXBfc2l6 ZSwgc2l6ZW9mICgqbWFwKSwgcXNvcnRfY21wKTsKLQotICAvKiBXaXRoIHNl cGFyYXRlIGRlYnVnaW5mbyBmaWxlcywgd2UgbWF5IGhhdmUgdXAgdG8gdHdv IChhbG1vc3QpCi0gICAgIGlkZW50aWNhbCBjb3BpZXMgb2Ygc29tZSBvYmpf c2VjdGlvbnMgaW4gdGhlIG1hcC4KLSAgICAgRmlsdGVyIG91dCBkdXBsaWNh dGVzLiAgKi8KLSAgZm9yIChpID0gMCwgaiA9IDA7IGkgPCBtYXBfc2l6ZTsg KytpKQotICAgIHsKLSAgICAgIHN0cnVjdCBvYmpfc2VjdGlvbiAqc2VjdDEg PSBtYXBbaV07Ci0gICAgICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3QyID0g KGkgKyAxIDwgbWFwX3NpemUpID8gbWFwW2kgKyAxXSA6IE5VTEw7Ci0KLSAg ICAgIGlmIChzZWN0MiA9PSBOVUxMCi0JICB8fCBvYmpfc2VjdGlvbl9hZGRy IChzZWN0MSkgIT0gb2JqX3NlY3Rpb25fYWRkciAoc2VjdDIpKQotCW1hcFtq KytdID0gc2VjdDE7Ci0gICAgICBlbHNlCi0JewotCSAgbWFwW2orK10gPSBw cmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNlY3QxLCBzZWN0Mik7Ci0JICArK2k7 Ci0JfQotICAgIH0KLQotICBpZiAoaiA8IG1hcF9zaXplKQotICAgIHsKLSAg ICAgIC8qIFNvbWUgZHVwbGljYXRlcyB3ZXJlIGVsaW1pbmF0ZWQuCi0JIFRo ZSBuZXcgc2l6ZSBzaG91bGRuJ3QgYmUgbGVzcyB0aGFuIGhhbGYgb2YgdGhl IG9yaWdpbmFsLiAqLwotICAgICAgZ2RiX2Fzc2VydCAobWFwX3NpemUgLyAy IDw9IGopOwotICAgICAgbWFwX3NpemUgPSBqOwotCi0gICAgICBtYXAgPSB4 cmVhbGxvYyAobWFwLCBtYXBfc2l6ZSAqIHNpemVvZiAoKm1hcCkpOyAgLyog VHJpbSBleGNlc3Mgc3BhY2UuICAqLwotICAgIH0KKyAgcXNvcnQgKG1hcCwg YWxsb2Nfc2l6ZSwgc2l6ZW9mICgqbWFwKSwgcXNvcnRfY21wKTsKKyAgbWFw X3NpemUgPSBmaWx0ZXJfZGVidWdpbmZvX3NlY3Rpb25zKG1hcCwgYWxsb2Nf c2l6ZSk7CisgIG1hcF9zaXplID0gZmlsdGVyX292ZXJsYXBwaW5nX3NlY3Rp b25zKG1hcCwgbWFwX3NpemUpOworCisgIGlmIChtYXBfc2l6ZSA8IGFsbG9j X3NpemUpCisgICAgLyogU29tZSBzZWN0aW9ucyB3ZXJlIGVsaW1pbmF0ZWQu ICBUcmltIGV4Y2VzcyBzcGFjZS4gICovCisgICAgbWFwID0geHJlYWxsb2Mg KG1hcCwgbWFwX3NpemUgKiBzaXplb2YgKCptYXApKTsKICAgZWxzZQotICAg IGdkYl9hc3NlcnQgKGogPT0gbWFwX3NpemUpOworICAgIGdkYl9hc3NlcnQg KGFsbG9jX3NpemUgPT0gbWFwX3NpemUpOwogCiAgICpwbWFwID0gbWFwOwog ICAqcG1hcF9zaXplID0gbWFwX3NpemU7Cg== --001636b2b4d060551904734340b5--