From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27515 invoked by alias); 9 Dec 2013 01:04:28 -0000 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 Received: (qmail 27505 invoked by uid 89); 9 Dec 2013 01:04:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ea0-f169.google.com Received: from Unknown (HELO mail-ea0-f169.google.com) (209.85.215.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 09 Dec 2013 01:04:26 +0000 Received: by mail-ea0-f169.google.com with SMTP id l9so1269100eaj.14 for ; Sun, 08 Dec 2013 17:04:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=RCeogcV4GHt8wZLzerUCA+ZzG7ezSnAs7qn9KHIjFmw=; b=WpfmBaTu26KdlzXgwPsSuY4vlmuqbYph7yFRHbjvXtBFfz8PDChEgymWyH9fNLIler 1MH88vel+QekrS2lHBq5/ToELCK6DwREFCRkXCnT8gXf6uGoQwMNbtRE4Ja1C15YOA1q c2+z7aEhJoIiidsYG0UvcwqDz/0ZZS8BVRv757Dus9RSNhu2aUpkQaruKhUOuuCj95fu tjIv1jhAP3p7jzCPGhTyOLeHnKZEBq+t8xUjjJ2EHOfNOgpT5hCPt1ub9ERWLjsu7P0Z sr5ACvufaZHSSpSo5FSeCq4Td7c391Z07byvqMz3ZteYiWe8+7PjKjZDkjr9DNYf344k bE4g== X-Gm-Message-State: ALoCoQkEZE1V7op3vEjueRWU+E78RkLklCPhpRbxulTc490aa2CO7nv3tvMXdjo3QGSNTbXF3oDvoVZbyGvUfH+lLwGLLpnEimYQ1wIPxC+HsE8roEA8/vWwOzt9BdPn4eSp3SV7BA9kWsXZIYuY9zMJhw6+eZCafNDv8u0U6KSjYD42esH77CwqUKztkIa8kRGQhmhOTo0R5z8p3VXNLpCk+PUX0xiWiw== MIME-Version: 1.0 X-Received: by 10.15.43.10 with SMTP id w10mr5780624eev.13.1386551056933; Sun, 08 Dec 2013 17:04:16 -0800 (PST) Received: by 10.14.151.72 with HTTP; Sun, 8 Dec 2013 17:04:16 -0800 (PST) In-Reply-To: References: Date: Mon, 09 Dec 2013 01:04:00 -0000 Message-ID: Subject: Re: [RFC/Patch] PR 16113: Allow gdb.Field objects as subscripts on gdb.Value objects From: Siva Chandra To: gdb-patches Content-Type: multipart/mixed; boundary=089e0168164436623f04ed0f9310 X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00315.txt.bz2 --089e0168164436623f04ed0f9310 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2122 Sorry for double posting, I missed attaching the patch with the previous post. 2013-12-08 Siva Chandra Reddy PR 16113: Allow gdb.Field objects with the subscript operator on gdb.Value objects of struct/class values. * NEWS (Python Scripting): Add entry for the new feature. * python/py-type.c (gdbpy_is_field): New function * python/py-value.c (valpy_getitem): Allow subscript value to be a gdb.Field object. (value_has_field): New function (get_field_flag): New function * python/python-internal.h (gdbpy_is_field): Add declaration. testsuite/ * gdb.python/py-value-cc.cc: Improve test case. * gdb.python/py-value-cc.exp: Add new tests. doc/ * gdb.texinfo (Values From Inferior): Add a note about using gdb.Field objects as subscripts on gdb.Value objects. On Sun, Dec 8, 2013 at 5:02 PM, Siva Chandra wrote: > Hi, > > The attached patch addresses the marked PR. The doc and NEWS changes > are incomplete as it depends on whether the route I have taken in this > patch is acceptable. I will fill them after I get (dis/)approval. > Other changes to the doc and NEWS are present. > > 2013-12-08 Siva Chandra Reddy > > PR 16113: Allow gdb.Field objects with the subscript operator on > gdb.Value objects of struct/class values. > * NEWS (Python Scripting): Add entry for the new feature. > * python/py-type.c (gdbpy_is_field): New function > * python/py-value.c (valpy_getitem): Allow subscript value to be > a gdb.Field object. > (value_has_field): New function > (get_field_flag): New function > * python/python-internal.h (gdbpy_is_field): Add declaration. > > testsuite/ > * gdb.python/py-value-cc.cc: Improve test case. > * gdb.python/py-value-cc.exp: Add new tests. > > doc/ > * gdb.texinfo (Values From Inferior): Add a note about using > gdb.Field objects as subscripts on gdb.Value objects. --089e0168164436623f04ed0f9310 Content-Type: text/plain; charset=US-ASCII; name="value_field_subscript_patch_v1.txt" Content-Disposition: attachment; filename="value_field_subscript_patch_v1.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hoz0oawf0 Content-length: 13502 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggYWU4NGUw MC4uMzhhNDBiYyAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTQwLDYgKzQwLDcgQEAKICAgKiogRnJhbWUgZmlsdGVycyBhbmQg ZnJhbWUgZGVjb3JhdG9ycyBoYXZlIGJlZW4gYWRkZWQuCiAgICoqIFRlbXBv cmFyeSBicmVha3BvaW50cyBhcmUgbm93IHN1cHBvcnRlZC4KICAgKiogTGlu ZSB0YWJsZXMgcmVwcmVzZW50YXRpb24gaGFzIGJlZW4gYWRkZWQuCisgICoq IGdkYi5GaWVsZCBvYmplY3RzIGNhbiBiZSB1c2VkIGFzIHN1YnNjcmlwdHMg b24gZ2RiLlZhbHVlIG9iamVjdHMuCiAKICogTmV3IHRhcmdldHMKIApkaWZm IC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRl eGluZm8KaW5kZXggODdkNTE0NS4uZDAyOTViMiAxMDA2NDQKLS0tIGEvZ2Ri L2RvYy9nZGIudGV4aW5mbworKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCkBA IC0yMzk4NSw3ICsyMzk4NSwxNiBAQCBjYW4gYWNjZXNzIGl0cyBAY29kZXtm b299IGVsZW1lbnQgd2l0aDoKIGJhciA9IHNvbWVfdmFsWydmb28nXQogQGVu ZCBzbWFsbGV4YW1wbGUKIAotQWdhaW4sIEBjb2Rle2Jhcn0gd2lsbCBhbHNv IGJlIGEgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3QuCitBZ2FpbiwgQGNvZGV7 YmFyfSB3aWxsIGFsc28gYmUgYSBAY29kZXtnZGIuVmFsdWV9IG9iamVjdC4g IFN0cnVjdHVyZQorZWxlbWVudHMgY2FuIGFsc28gYmUgYWNjZXNzZWQgYnkg dXNpbmcgQGNvZGV7Z2RiLkZpZWxkfSBvYmplY3RzIGFzCitzdWJzY3JpcHRz IChAeHJlZntUeXBlcyBJbiBQeXRob259IGZvciBtb3JlIGluZm9ybWF0aW9u IG9uCitAY29kZXtnZGIuRmllbGR9IG9iamVjdHMpLiAgRm9yIGV4YW1wbGUs IGlmIEBjb2Rle2Zvb19maWVsZH0gaXMgYQorQGNvZGV7Z2RiLkZpZWxkfSBv YmplY3QgY29ycmVzcG9uZGluZyB0byBlbGVtZW50IEBjb2Rle2Zvb30gb2Yg dGhlIGFib3ZlCitzdHJ1Y3R1cmUsIHRoZW4gQGNvZGV7YmFyfSBjYW4gYWxz byBiZSBhY2Nlc3NlZCBhcyBmb2xsb3dzOgorCitAc21hbGxleGFtcGxlCiti YXIgPSBzb21lX3ZhbFtmb29fZmllbGRdCitAZW5kIHNtYWxsZXhhbXBsZQog CiBBIEBjb2Rle2dkYi5WYWx1ZX0gdGhhdCByZXByZXNlbnRzIGEgZnVuY3Rp b24gY2FuIGJlIGV4ZWN1dGVkIHZpYQogaW5mZXJpb3IgZnVuY3Rpb24gY2Fs bC4gIEFueSBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGNhbGwgbXVzdCBt YXRjaApkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS10eXBlLmMgYi9nZGIv cHl0aG9uL3B5LXR5cGUuYwppbmRleCA5YWViOTJjLi40YWQxZTEyIDEwMDY0 NAotLS0gYS9nZGIvcHl0aG9uL3B5LXR5cGUuYworKysgYi9nZGIvcHl0aG9u L3B5LXR5cGUuYwpAQCAtMTQ2LDYgKzE0NiwxNCBAQCBmaWVsZF9uZXcgKHZv aWQpCiAKIAwKIAorLyogUmV0dXJuIHRydWUgaWYgT0JKIGlzIG9mIHR5cGUg Z2RiLkZpZWxkLCBmYWxzZSBvdGhlcndpc2UuICAqLworCitpbnQKK2dkYnB5 X2lzX2ZpZWxkIChQeU9iamVjdCAqb2JqKQoreworICByZXR1cm4gUHlPYmpl Y3RfVHlwZUNoZWNrIChvYmosICZmaWVsZF9vYmplY3RfdHlwZSk7Cit9CisK IC8qIFJldHVybiB0aGUgY29kZSBmb3IgdGhpcyB0eXBlLiAgKi8KIHN0YXRp YyBQeU9iamVjdCAqCiB0eXB5X2dldF9jb2RlIChQeU9iamVjdCAqc2VsZiwg dm9pZCAqY2xvc3VyZSkKQEAgLTE2Nyw2ICsxNzUsMTMgQEAgY29udmVydF9m aWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVsZCkKICAgaWYgKCFy ZXN1bHQpCiAgICAgcmV0dXJuIE5VTEw7CiAKKyAgYXJnID0gdHlwZV90b190 eXBlX29iamVjdCAodHlwZSk7CisgIGlmIChhcmcgPT0gTlVMTCkKKyAgICBn b3RvIGZhaWw7CisgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nIChyZXN1 bHQsICJwYXJlbnRfdHlwZSIsIGFyZykgPCAwKQorICAgIGdvdG8gZmFpbGFy ZzsKKyAgUHlfREVDUkVGIChhcmcpOworCiAgIGlmICghZmllbGRfaXNfc3Rh dGljICgmVFlQRV9GSUVMRCAodHlwZSwgZmllbGQpKSkKICAgICB7CiAgICAg ICBjb25zdCBjaGFyICphdHRyc3RyaW5nOwpkaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCmluZGV4 IDQwMjU0YjkuLmE0MGJiN2MgMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24vcHkt dmFsdWUuYworKysgYi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKQEAgLTQ5OSwx MyArNDk5LDY1IEBAIHZhbHB5X2xlbmd0aCAoUHlPYmplY3QgKnNlbGYpCiAg IHJldHVybiAtMTsKIH0KIAotLyogR2l2ZW4gc3RyaW5nIG5hbWUgb2YgYW4g ZWxlbWVudCBpbnNpZGUgc3RydWN0dXJlLCByZXR1cm4gaXRzIHZhbHVlCi0g ICBvYmplY3QuICBSZXR1cm5zIE5VTEwgb24gZXJyb3IsIHdpdGggYSBweXRo b24gZXhjZXB0aW9uIHNldC4gICovCisvKiBSZXR1cm4gMSBpZiB0aGUgZ2Ri LkZpZWxkIG9iamVjdCBGSUVMRCBpcyBwcmVzZW50IGluIHRoZSB2YWx1ZSBW LgorICAgUmV0dXJucyAwIG90aGVyd2lzZS4gIElmIGFueSBQeXRob24gZXJy b3Igb2NjdXJzLCAtMSBpcyByZXR1cm5lZC4gICovCisKK3N0YXRpYyBpbnQK K3ZhbHVlX2hhc19maWVsZCAoc3RydWN0IHZhbHVlICp2LCBQeU9iamVjdCAq ZmllbGQpCit7CisgIHN0cnVjdCB0eXBlICpwYXJlbnRfdHlwZSwgKnZhbF90 eXBlOworICBQeU9iamVjdCAqdHlwZV9vYmplY3QgPSBQeU9iamVjdF9HZXRB dHRyU3RyaW5nIChmaWVsZCwgInBhcmVudF90eXBlIik7CisKKyAgaWYgKHR5 cGVfb2JqZWN0ID09IE5VTEwpCisgICAgcmV0dXJuIC0xOworCisgIHBhcmVu dF90eXBlID0gdHlwZV9vYmplY3RfdG9fdHlwZSAodHlwZV9vYmplY3QpOwor ICBQeV9ERUNSRUYgKHR5cGVfb2JqZWN0KTsKKyAgaWYgKHBhcmVudF90eXBl ID09IE5VTEwpCisgICAgcmV0dXJuIC0xOworCisgIHZhbF90eXBlID0gdmFs dWVfdHlwZSAodik7CisgIHZhbF90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFs X3R5cGUpOworICBpZiAoVFlQRV9DT0RFICh2YWxfdHlwZSkgPT0gVFlQRV9D T0RFX1JFRgorICAgICAgfHwgVFlQRV9DT0RFICh2YWxfdHlwZSkgPT0gVFlQ RV9DT0RFX1BUUikKKyAgICB2YWxfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZ UEVfVEFSR0VUX1RZUEUgKHZhbF90eXBlKSk7CisKKyAgaWYgKFRZUEVfQ09E RSAodmFsX3R5cGUpID09IFRZUEVfQ09ERV9TVFJVQ1QKKyAgICAgICYmIHR5 cGVzX2VxdWFsICh2YWxfdHlwZSwgcGFyZW50X3R5cGUpKQorICAgIHJldHVy biAxOworICBlbHNlCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIFJldHVybiB0 aGUgdmFsdWUgb2YgYSBmbGFnIEZMQUdfTkFNRSBpbiBhIGdkYi5GaWVsZCBv YmplY3QgRklFTEQuCisgICBSZXR1cm5zIDEgaWYgdGhlIGZsYWcgdmFsdWUg aXMgdHJ1ZSwgMCBpZiBpdCBpcyBmYWxzZSwgYW5kIC0xIGlmCisgICBhIFB5 dGhvbiBlcnJvciBvY2N1cnMuICAqLworCitzdGF0aWMgaW50CitnZXRfZmll bGRfZmxhZyAoUHlPYmplY3QgKmZpZWxkLCBjb25zdCBjaGFyICpmbGFnX25h bWUpCit7CisgIGludCBmbGFnX3ZhbHVlOworICBQeU9iamVjdCAqZmxhZ19v YmplY3QgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nIChmaWVsZCwgZmxhZ19u YW1lKTsKKworICBpZiAoZmxhZ19vYmplY3QgPT0gTlVMTCkKKyAgICByZXR1 cm4gLTE7CisKKyAgZmxhZ192YWx1ZSA9IFB5T2JqZWN0X0lzVHJ1ZSAoZmxh Z19vYmplY3QpOworICBQeV9ERUNSRUYgKGZsYWdfb2JqZWN0KTsKKworICBy ZXR1cm4gZmxhZ192YWx1ZTsKK30KKworLyogR2l2ZW4gc3RyaW5nIG5hbWUg b3IgYSBnZGIuRmllbGQgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gYW4gZWxl bWVudCBpbnNpZGUKKyAgIGEgc3RydWN0dXJlLCByZXR1cm4gaXRzIHZhbHVl IG9iamVjdC4gIFJldHVybnMgTlVMTCBvbiBlcnJvciwgd2l0aCBhIHB5dGhv bgorICAgZXhjZXB0aW9uIHNldC4gICovCisKIHN0YXRpYyBQeU9iamVjdCAq CiB2YWxweV9nZXRpdGVtIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmtl eSkKIHsKICAgdmFsdWVfb2JqZWN0ICpzZWxmX3ZhbHVlID0gKHZhbHVlX29i amVjdCAqKSBzZWxmOwogICBjaGFyICpmaWVsZCA9IE5VTEw7CisgIFB5T2Jq ZWN0ICpiYXNlX2NsYXNzX3R5cGVfb2JqZWN0ID0gTlVMTDsKICAgdm9sYXRp bGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXhjZXB0OwogICBQeU9iamVjdCAq cmVzdWx0ID0gTlVMTDsKIApAQCAtNTE1LDYgKzU2Nyw1NCBAQCB2YWxweV9n ZXRpdGVtIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmtleSkKICAgICAg IGlmIChmaWVsZCA9PSBOVUxMKQogCXJldHVybiBOVUxMOwogICAgIH0KKyAg ZWxzZSBpZiAoZ2RicHlfaXNfZmllbGQgKGtleSkpCisgICAgeworICAgICAg aW50IGFydGlmaWNpYWwsIGlzX2Jhc2VfY2xhc3MsIHZhbGlkX2ZpZWxkOwor CisgICAgICB2YWxpZF9maWVsZCA9IHZhbHVlX2hhc19maWVsZCAoc2VsZl92 YWx1ZS0+dmFsdWUsIGtleSk7CisgICAgICBpZiAodmFsaWRfZmllbGQgPCAw KQorCXJldHVybiBOVUxMOworICAgICAgZWxzZSBpZiAodmFsaWRfZmllbGQg PT0gMCkKKwl7CisJICBQeUVycl9TZXRTdHJpbmcgKFB5RXhjX1R5cGVFcnJv ciwKKwkJCSAgIF8oIkludmFsaWQgbG9va3VwIGZvciBhIGZpZWxkIG5vdCBj b250YWluZWQgaW4gIgorCQkJICAgICAidGhlIHZhbHVlLiIpKTsKKworCSAg cmV0dXJuIE5VTEw7CisJfQorCisgICAgICBhcnRpZmljaWFsID0gZ2V0X2Zp ZWxkX2ZsYWcgKGtleSwgImFydGlmaWNpYWwiKTsKKyAgICAgIGlmIChhcnRp ZmljaWFsIDwgMCkKKwlyZXR1cm4gTlVMTDsKKyAgICAgIGVsc2UgaWYgKGFy dGlmaWNpYWwgPiAwKQorCXsKKwkgIFB5RXJyX1NldFN0cmluZyAoUHlFeGNf VmFsdWVFcnJvciwKKwkJCSAgIF8oIkNhbm5vdCBsb29rdXAgYXJ0aWZpY2lh bCBmaWVsZHMuIikpOworCSAgcmV0dXJuIE5VTEw7CisJfQorCisgICAgICBp c19iYXNlX2NsYXNzID0gZ2V0X2ZpZWxkX2ZsYWcgKGtleSwgImlzX2Jhc2Vf Y2xhc3MiKTsKKyAgICAgIGlmIChpc19iYXNlX2NsYXNzIDwgMCkKKwlyZXR1 cm4gTlVMTDsKKyAgICAgIGVsc2UgaWYgKGlzX2Jhc2VfY2xhc3MgPiAwKQor CXsKKwkgIGJhc2VfY2xhc3NfdHlwZV9vYmplY3QgPSBQeU9iamVjdF9HZXRB dHRyU3RyaW5nIChrZXksICJ0eXBlIik7CisJICBpZiAoYmFzZV9jbGFzc190 eXBlX29iamVjdCA9PSBOVUxMKQorCSAgICByZXR1cm4gTlVMTDsKKwl9Cisg ICAgICBlbHNlCisJeworCSAgUHlPYmplY3QgKm5hbWVfb2JqID0gUHlPYmpl Y3RfR2V0QXR0clN0cmluZyAoa2V5LCAibmFtZSIpOworCisJICBpZiAobmFt ZV9vYmogPT0gTlVMTCkKKwkgICAgcmV0dXJuIE5VTEw7CisKKwkgIGZpZWxk ID0gcHl0aG9uX3N0cmluZ190b19ob3N0X3N0cmluZyAobmFtZV9vYmopOwor CSAgUHlfREVDUkVGIChuYW1lX29iaik7CisJICBpZiAoZmllbGQgPT0gTlVM TCkKKwkgICAgcmV0dXJuIE5VTEw7CisJfQorICAgIH0KIAogICBUUllfQ0FU Q0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQogICAgIHsKQEAgLTUyNCw2 ICs2MjQsMjMgQEAgdmFscHlfZ2V0aXRlbSAoUHlPYmplY3QgKnNlbGYsIFB5 T2JqZWN0ICprZXkpCiAKICAgICAgIGlmIChmaWVsZCkKIAlyZXNfdmFsID0g dmFsdWVfc3RydWN0X2VsdCAoJnRtcCwgTlVMTCwgZmllbGQsIDAsIE5VTEwp OworICAgICAgZWxzZSBpZiAoYmFzZV9jbGFzc190eXBlX29iamVjdCkKKwl7 CisJICBzdHJ1Y3QgdHlwZSAqYmFzZV9jbGFzc190eXBlLCAqdmFsX3R5cGU7 CisKKwkgIGJhc2VfY2xhc3NfdHlwZSA9IHR5cGVfb2JqZWN0X3RvX3R5cGUg KGJhc2VfY2xhc3NfdHlwZV9vYmplY3QpOworCSAgUHlfREVDUkVGIChiYXNl X2NsYXNzX3R5cGVfb2JqZWN0KTsKKwkgIGlmIChiYXNlX2NsYXNzX3R5cGUg PT0gTlVMTCkKKwkgICAgcmV0dXJuIE5VTEw7CisKKwkgIHZhbF90eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodG1wKSk7CisJICBpZiAoVFlQ RV9DT0RFICh2YWxfdHlwZSkgPT0gVFlQRV9DT0RFX1BUUikKKwkgICAgcmVz X3ZhbCA9IHZhbHVlX2Nhc3QgKGxvb2t1cF9wb2ludGVyX3R5cGUgKGJhc2Vf Y2xhc3NfdHlwZSksIHRtcCk7CisJICBlbHNlIGlmIChUWVBFX0NPREUgKHZh bF90eXBlKSA9PSBUWVBFX0NPREVfUkVGKQorCSAgICByZXNfdmFsID0gdmFs dWVfY2FzdCAobG9va3VwX3JlZmVyZW5jZV90eXBlIChiYXNlX2NsYXNzX3R5 cGUpLCB0bXApOworCSAgZWxzZQorCSAgICByZXNfdmFsID0gdmFsdWVfY2Fz dCAoYmFzZV9jbGFzc190eXBlLCB0bXApOworCX0KICAgICAgIGVsc2UKIAl7 CiAJICAvKiBBc3N1bWUgd2UgYXJlIGF0dGVtcHRpbmcgYW4gYXJyYXkgYWNj ZXNzLCBhbmQgbGV0IHRoZQpkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRo b24taW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgK aW5kZXggMTI1NjcwZS4uZGFkZTdjNyAxMDA2NDQKLS0tIGEvZ2RiL3B5dGhv bi9weXRob24taW50ZXJuYWwuaAorKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1p bnRlcm5hbC5oCkBAIC0yOTAsNiArMjkwLDcgQEAgUHlPYmplY3QgKmdkYnB5 X25ld2VzdF9mcmFtZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdz KTsKIFB5T2JqZWN0ICpnZGJweV9zZWxlY3RlZF9mcmFtZSAoUHlPYmplY3Qg KnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKIFB5T2JqZWN0ICpnZGJweV9ibG9j a19mb3JfcGMgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncyk7CiBQ eU9iamVjdCAqZ2RicHlfbG9va3VwX3R5cGUgKFB5T2JqZWN0ICpzZWxmLCBQ eU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KTsKK2ludCBnZGJweV9pc19m aWVsZCAoUHlPYmplY3QgKm9iaik7CiBQeU9iamVjdCAqZ2RicHlfY3JlYXRl X2xhenlfc3RyaW5nX29iamVjdCAoQ09SRV9BRERSIGFkZHJlc3MsIGxvbmcg bGVuZ3RoLAogCQkJCQkgICBjb25zdCBjaGFyICplbmNvZGluZywKIAkJCQkJ ICAgc3RydWN0IHR5cGUgKnR5cGUpOwpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmNjIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmNjCmluZGV4IGMwMTBmYzkuLjFh ODViZjUgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS12YWx1ZS1jYy5jYworKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktdmFsdWUtY2MuY2MKQEAgLTE2LDggKzE2LDE2IEBACiAgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCiAKIGNsYXNzIEEgeworIHB1YmxpYzoK KyAgaW50IGE7CiB9OwogCitjbGFzcyBCIDogcHVibGljIEEgeworIHB1Ymxp YzoKKyAgY2hhciBhOworfTsKKwordHlwZWRlZiBCIEJ0ZDsKIHR5cGVkZWYg aW50ICppbnRfcHRyOwogCiBpbnQKQEAgLTI4LDYgKzM2LDE5IEBAIGZ1bmMg KGNvbnN0IEEgJmEpCiAgIGludF9wdHIgcHRyID0gJnZhbDsKICAgaW50X3B0 ciAmaW50X3B0cl9yZWYgPSBwdHI7CiAKKyAgQiBiOworICBCIGIxOworCisg IGIuYSA9ICdhJzsKKyAgYi5BOjphID0gMTA7CisKKyAgQiAqYl9vYmogPSAm YjE7CisgIGJfb2JqLT5hID0gJ2InOworICBiX29iai0+QTo6YSA9IDEwMDsK KworICBCICZiX3JlZiA9IGIxOworICBCdGQgJmJfdGQgPSBiMTsKKwogICBy ZXR1cm4gMDsgLyogQnJlYWsgaGVyZS4gICovCiB9CiAKQEAgLTM1LDUgKzU2 LDYgQEAgaW50CiBtYWluICgpCiB7CiAgIEEgb2JqOworCiAgIHJldHVybiBm dW5jIChvYmopOwogfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LXZhbHVlLWNjLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS12YWx1ZS1jYy5leHAKaW5kZXggNTVjM2I5Ny4uZjY1MmJhZCAx MDA2NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVl LWNjLmV4cAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFs dWUtY2MuZXhwCkBAIC00NCwzICs0NCwzMyBAQCBnZGJfdGVzdCAicHl0aG9u IHByaW50IChzdHIoZ2RiLnBhcnNlX2FuZF9ldmFsKFwiaW50X3B0cl9yZWZc IikuZGVyZWZlcmVuY2UoKS50eQogZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAo c3RyKGdkYi5wYXJzZV9hbmRfZXZhbChcImludF9wdHJfcmVmXCIpLnJlZmVy ZW5jZWRfdmFsdWUoKS50eXBlKSkiICJpbnRfcHRyIgogZ2RiX3Rlc3QgInB5 dGhvbiBwcmludCAoc3RyKGdkYi5wYXJzZV9hbmRfZXZhbChcImludF9wdHJf cmVmXCIpLnJlZmVyZW5jZWRfdmFsdWUoKS5kZXJlZmVyZW5jZSgpKSkiICIx MCIKIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKHN0cihnZGIucGFyc2VfYW5k X2V2YWwoXCJpbnRfcHRyX3JlZlwiKS5yZWZlcmVuY2VkX3ZhbHVlKCkucmVm ZXJlbmNlZF92YWx1ZSgpKSkiICIxMCIKKworIyBUZXN0cyBmb3IgZ2RiLlZh bHVlW2dkYi5GaWVsZF0KK2dkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIGIg PSBnZGIucGFyc2VfYW5kX2V2YWwoJ2InKSIgImluaXQgYiIKK2dkYl90ZXN0 X25vX291dHB1dCAicHl0aG9uIGJfZmllbGRzID0gYi50eXBlLmZpZWxkcygp IiAiaW5pdCBiX2ZpZWxkcyIKK2dkYl90ZXN0X25vX291dHB1dCAicHl0aG9u IGJfb2JqID0gZ2RiLnBhcnNlX2FuZF9ldmFsKCdiX29iaicpIiAiaW5pdCBi X29iaiIKK2dkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIGJfcmVmID0gZ2Ri LnBhcnNlX2FuZF9ldmFsKCdiX3JlZicpIiAiaW5pdCBiX3JlZiIKK2dkYl90 ZXN0X25vX291dHB1dCAicHl0aG9uIGJfdGQgPSBnZGIucGFyc2VfYW5kX2V2 YWwoJ2JfdGQnKSIgImluaXQgYl90ZCIKKworZ2RiX3Rlc3QgInB5dGhvbiBw cmludCBiXFtiX2ZpZWxkc1xbMVxdXF0iICI5NyAnYSciICJiLmEgdmlhIGZp ZWxkIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBiXFtiX2ZpZWxkc1xbMFxd XF0udHlwZSIgIkEiIFwKKyAgInR5cGUgb2YgYidzIGJhc2UgY2xhc3Mgdmlh IGZpZWxkIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBiXFtiX2ZpZWxkc1xb MFxdXF1cWydhJ1xdIiAiMTAiICJiLkE6OmEgdmlhIGZpZWxkIgorCitnZGJf dGVzdCAicHl0aG9uIHByaW50IGJfb2JqXFtiX2ZpZWxkc1xbMVxdXF0iICI5 OCAnYiciICJiX29iai0+YSB2aWEgZmllbGQiCitnZGJfdGVzdCAicHl0aG9u IHByaW50IGJfb2JqXFtiX2ZpZWxkc1xbMFxdXF0udHlwZS50YXJnZXQoKSIg IkEiIFwKKyAgInR5cGUgb2YgYl9vYmoncyBiYXNlIGNsYXNzIHZpYSBmaWVs ZCIKK2dkYl90ZXN0ICJweXRob24gcHJpbnQgYl9vYmpcW2JfZmllbGRzXFsw XF1cXVxbJ2EnXF0iICIxMDAiIFwKKyAgImJfb2JqLT5BOjphIHZpYSBmaWVs ZCIKKworZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBiX3JlZlxbYl9maWVsZHNc WzFcXVxdIiAiOTggJ2InIiAiYl9yZWYuYSB2aWEgZmllbGQiCitnZGJfdGVz dCAicHl0aG9uIHByaW50IGJfcmVmXFtiX2ZpZWxkc1xbMFxdXF0udHlwZS50 YXJnZXQoKSIgIkEiIFwKKyAgInR5cGUgb2YgYl9yZWYncyBiYXNlIGNsYXNz IHZpYSBmaWVsZCIKK2dkYl90ZXN0ICJweXRob24gcHJpbnQgYl9yZWZcW2Jf ZmllbGRzXFswXF1cXVxbJ2EnXF0iICIxMDAiIFwKKyAgImJfcmVmLkE6OmEg dmlhIGZpZWxkIgorCitnZGJfdGVzdCAicHl0aG9uIHByaW50IGJfdGRcW2Jf ZmllbGRzXFsxXF1cXSIgIjk4ICdiJyIgImJfdGQuYSB2aWEgZmllbGQiCitn ZGJfdGVzdCAicHl0aG9uIHByaW50IGJfdGRcW2JfZmllbGRzXFswXF1cXS50 eXBlLnRhcmdldCgpIiAiQSIgXAorICAidHlwZSBvZiBiX3RkJ3MgYmFzZSBj bGFzcyB2aWEgZmllbGQiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IGJfdGRc W2JfZmllbGRzXFswXF1cXVxbJ2EnXF0iICIxMDAiIFwKKyAgImJfdGQuQTo6 YSB2aWEgZmllbGQiCg== --089e0168164436623f04ed0f9310--