Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kiRGI-0003Np-D3 for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Nov 2020 00:05:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kiRGH-0007Fq-Bv for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Nov 2020 00:05:17 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kiRGH-0007Fj-3c for pgsql-hackers@lists.postgresql.org; Fri, 27 Nov 2020 00:05:17 +0000 Received: from mxout2.routing.net ([2a03:2900:1:a::b]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kiRG7-0002ED-Rb for pgsql-hackers@lists.postgresql.org; Fri, 27 Nov 2020 00:05:13 +0000 Received: from mxbox3.masterlogin.de (unknown [192.168.10.78]) by mxout2.routing.net (Postfix) with ESMTP id 4288B5FC27 for ; Fri, 27 Nov 2020 00:05:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerdienst.de; s=20200217; t=1606435505; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=/gzzkGA1BUlMW+ZV0unfkRZY1+B3FfVbw4H6d4PLNHQ=; b=ryvTxvYpzGEvXYDVGOuekzxoSGhQkZ4mzo89iq8LMtvtqImwpkT1IhKzRM+yyzbddIWgW4 ECE/tBIonTieCn5AYokE4Dx3HWWRNgowPh5qMllYndN/T7R7GZV2rwTrlzWxz4/QHstCb6 QesNbxbiHeDfRz6TSVOZBIaAI+3HLy0= Received: from remote.index.de (business-90-187-114-221.pool2.vodafone-ip.de [90.187.114.221]) by mxbox3.masterlogin.de (Postfix) with ESMTPSA id 568BE3604B9 for ; Fri, 27 Nov 2020 00:05:03 +0000 (UTC) Received: from acedia.index-gruppe.local (192.168.3.121) by acedia.index-gruppe.local (192.168.3.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1034.26; Fri, 27 Nov 2020 01:05:02 +0100 Received: from acedia.index-gruppe.local ([fe80::ecd1:5d0a:a834:dd56]) by acedia.index-gruppe.local ([fe80::ecd1:5d0a:a834:dd56%5]) with mapi id 15.01.1034.033; Fri, 27 Nov 2020 01:05:02 +0100 From: Arne Roland To: Pg Hackers Subject: Re: Rename of triggers for partitioned tables Thread-Topic: Rename of triggers for partitioned tables Thread-Index: AQHWxEk1+rora/wutkWbcRQhC03q0KnbGQ2s Date: Fri, 27 Nov 2020 00:05:02 +0000 Message-ID: <4e1eeffb41ac46879d45642fda0d4760@index.de> References: In-Reply-To: Accept-Language: en-US, de-DE Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [192.168.3.145] Content-Type: multipart/mixed; boundary="_004_4e1eeffb41ac46879d45642fda0d4760indexde_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --_004_4e1eeffb41ac46879d45642fda0d4760indexde_ Content-Type: multipart/alternative; boundary="_000_4e1eeffb41ac46879d45642fda0d4760indexde_" --_000_4e1eeffb41ac46879d45642fda0d4760indexde_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I'm too unhappy with the interface change, so please view attached patch in= stead. Regards Arne ________________________________ From: Arne Roland Sent: Friday, November 27, 2020 12:28:31 AM To: Pg Hackers Subject: Rename of triggers for partitioned tables Hello, I got too annoyed at building queries for gexec all the time. So wrote a pa= tch to fix the issue that the rename of partitioned trigger doesn't affect = children. In case there isn't a dependent trigger with the same name on the child the= function errors out. If the user touched the trigger of the child, it's no= t a sensitive idea to mess with it. I'm not happy with the interface change in trigger.h. Yet I don't like the = idea of creating another layer of indirection either. Even though it's a small patch, there might be other things I'm missing, so= I'd appreciate feedback. Regards Arne --_000_4e1eeffb41ac46879d45642fda0d4760indexde_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

I'm too unhappy with the interface change, so please view attached patch= instead.


Regards

Arne


From: Arne Roland <A.Rol= and@index.de>
Sent: Friday, November 27, 2020 12:28:31 AM
To: Pg Hackers
Subject: Rename of triggers for partitioned tables
 

Hello,


I got too annoyed at building queries for gexec all the time. So wrote a= patch to fix the issue that the rename of partitioned trigger doesn't affe= ct children.


In case there isn't a dependent trigger with the same name on the child = the function errors out. If the user touched the trigger of the child, it's= not a sensitive idea to mess with it.


I'm not happy with the interface change in trigger.h. Yet I= don't like the idea of creating another layer of indirection either.


Even though it's a small patch, there might be other things I'm missing,= so I'd appreciate feedback.


Regards

Arne

--_000_4e1eeffb41ac46879d45642fda0d4760indexde_-- --_004_4e1eeffb41ac46879d45642fda0d4760indexde_ Content-Type: text/x-patch; name="recursive_tgrename.1.patch" Content-Description: recursive_tgrename.1.patch Content-Disposition: attachment; filename="recursive_tgrename.1.patch"; size=7028; creation-date="Fri, 27 Nov 2020 00:04:41 GMT"; modification-date="Fri, 27 Nov 2020 00:04:41 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCBjMzM2YjIzOGFhLi5mNDY0N2QzOGM1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHJpZ2dlci5jCkBAIC0xMzU3LDEyICsxMzU3LDcgQEAgZ2V0X3RyaWdnZXJfb2lkKE9p ZCByZWxpZCwgY29uc3QgY2hhciAqdHJpZ25hbWUsIGJvb2wgbWlzc2luZ19vaykKIAlyZXR1cm4g b2lkOwogfQogCi0vKgotICogUGVyZm9ybSBwZXJtaXNzaW9ucyBhbmQgaW50ZWdyaXR5IGNoZWNr cyBiZWZvcmUgYWNxdWlyaW5nIGEgcmVsYXRpb24gbG9jay4KLSAqLwotc3RhdGljIHZvaWQKLVJh bmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJl bGlkLCBPaWQgb2xkcmVsaWQsCi0JCQkJCQkJCSB2b2lkICphcmcpCitzdGF0aWMgdm9pZCBjYWxs YmFja0ZvclJlbmFtZVRyaWdnZXIoY2hhciogcmVsbmFtZSwgT2lkIHJlbGlkKQogewogCUhlYXBU dXBsZQl0dXBsZTsKIAlGb3JtX3BnX2NsYXNzIGZvcm07CkBAIC0xMzc5LDI1ICsxMzc0LDM2IEBA IFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lk IHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCiAJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRh YmxlLCB2aWV3LCBvciBmb3JlaWduIHRhYmxlIiwKLQkJCQkJCXJ2LT5yZWxuYW1lKSkpOworCQkJ CQkJcmVsbmFtZSkpKTsKIAogCS8qIHlvdSBtdXN0IG93biB0aGUgdGFibGUgdG8gcmVuYW1lIG9u ZSBvZiBpdHMgdHJpZ2dlcnMgKi8KIAlpZiAoIXBnX2NsYXNzX293bmVyY2hlY2socmVsaWQsIEdl dFVzZXJJZCgpKSkKLQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVs a2luZF9vYmp0eXBlKGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCBydi0+cmVsbmFtZSk7CisJCWFj bGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRf cmVsX3JlbGtpbmQocmVsaWQpKSwgcmVsbmFtZSk7CiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9k cyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQko ZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAogCQkJCSBlcnJtc2coInBl cm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBzeXN0ZW0gY2F0YWxvZyIsCi0JCQkJCQlydi0+ cmVsbmFtZSkpKTsKKwkJCQkJCXJlbG5hbWUpKSk7CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHVwbGUp OwogfQogCiAvKgotICoJCXJlbmFtZXRyaWcJCS0gY2hhbmdlcyB0aGUgbmFtZSBvZiBhIHRyaWdn ZXIgb24gYSByZWxhdGlvbgorICogUGVyZm9ybSBwZXJtaXNzaW9ucyBhbmQgaW50ZWdyaXR5IGNo ZWNrcyBiZWZvcmUgYWNxdWlyaW5nIGEgcmVsYXRpb24gbG9jay4KKyAqLworc3RhdGljIHZvaWQK K1JhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lk IHJlbGlkLCBPaWQgb2xkcmVsaWQsCisJCQkJCQkJCSB2b2lkICphcmcpCit7CisJCWNhbGxiYWNr Rm9yUmVuYW1lVHJpZ2dlcihydi0+cmVsbmFtZSwgcmVsaWQpOworfQorCisvKgorICoJCXJlbmFt ZW9ubHl0cmlnCQktIGNoYW5nZXMgdGhlIG5hbWUgb2YgYSB0cmlnZ2VyIG9uIGEgcmVsYXRpb24K ICAqCiAgKgkJdHJpZ2dlciBuYW1lIGlzIGNoYW5nZWQgaW4gdHJpZ2dlciBjYXRhbG9nLgogICoJ CU5vIHJlY29yZCBvZiB0aGUgcHJldmlvdXMgbmFtZSBpcyBrZXB0LgorICoJICBUaGlzIGZ1bmN0 aW9uIGFzc3VtZXMgdGhhdCB0aGUgcm93IGlzIGFscmVhZHkgbG9ja2VkCiAgKgogICoJCWdldCBw cm9wZXIgcmVscmVsYXRpb24gZnJvbSByZWxhdGlvbiBjYXRhbG9nIChpZiBub3QgYXJnKQogICoJ CXNjYW4gdHJpZ2dlciBjYXRhbG9nCkBAIC0xNDA3LDQxICsxNDEzLDI2IEBAIFJhbmdlVmFyQ2Fs bGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQg b2xkcmVsaWQsCiAgKgkJdXBkYXRlIHJvdyBpbiBjYXRhbG9nCiAgKi8KIE9iamVjdEFkZHJlc3MK LXJlbmFtZXRyaWcoUmVuYW1lU3RtdCAqc3RtdCkKK3JlbmFtZW9ubHl0cmlnKFJlbmFtZVN0bXQg KnN0bXQsIFJlbGF0aW9uIHRncmVsLCBPaWQgcmVsaWQsIE9pZCB0Z3BhcmVudCkKIHsKIAlPaWQJ CQl0Z29pZDsKIAlSZWxhdGlvbgl0YXJnZXRyZWw7Ci0JUmVsYXRpb24JdGdyZWw7CiAJSGVhcFR1 cGxlCXR1cGxlOwogCVN5c1NjYW5EZXNjIHRnc2NhbjsKIAlTY2FuS2V5RGF0YSBrZXlbMl07Ci0J T2lkCQkJcmVsaWQ7CiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCi0JLyoKLQkgKiBMb29rIHVw IG5hbWUsIGNoZWNrIHBlcm1pc3Npb25zLCBhbmQgYWNxdWlyZSBsb2NrICh3aGljaCB3ZSB3aWxs IE5PVAotCSAqIHJlbGVhc2UgdW50aWwgZW5kIG9mIHRyYW5zYWN0aW9uKS4KLQkgKi8KLQlyZWxp ZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChzdG10LT5yZWxhdGlvbiwgQWNjZXNzRXhjbHVz aXZlTG9jaywKLQkJCQkJCQkJCSAwLAotCQkJCQkJCQkJIFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5h bWVUcmlnZ2VyLAotCQkJCQkJCQkJIE5VTEwpOwogCiAJLyogSGF2ZSBsb2NrIGFscmVhZHksIHNv IGp1c3QgbmVlZCB0byBidWlsZCByZWxjYWNoZSBlbnRyeS4gKi8KIAl0YXJnZXRyZWwgPSByZWxh dGlvbl9vcGVuKHJlbGlkLCBOb0xvY2spOwogCisKIAkvKgogCSAqIFNjYW4gcGdfdHJpZ2dlciB0 d2ljZSBmb3IgZXhpc3RpbmcgdHJpZ2dlcnMgb24gcmVsYXRpb24uICBXZSBkbyB0aGlzIGluCiAJ ICogb3JkZXIgdG8gZW5zdXJlIGEgdHJpZ2dlciBkb2VzIG5vdCBleGlzdCB3aXRoIG5ld25hbWUg KFRoZSB1bmlxdWUgaW5kZXgKIAkgKiBvbiB0Z3JlbGlkL3RnbmFtZSB3b3VsZCBjb21wbGFpbiBh bnl3YXkpIGFuZCB0byBlbnN1cmUgYSB0cmlnZ2VyIGRvZXMKIAkgKiBleGlzdCB3aXRoIG9sZG5h bWUuCiAJICoKLQkgKiBOT1RFIHRoYXQgdGhpcyBpcyBjb29sIG9ubHkgYmVjYXVzZSB3ZSBoYXZl IEFjY2Vzc0V4Y2x1c2l2ZUxvY2sgb24gdGhlCi0JICogcmVsYXRpb24sIHNvIHRoZSB0cmlnZ2Vy IHNldCB3b24ndCBiZSBjaGFuZ2luZyB1bmRlcm5lYXRoIHVzLgotCSAqLwotCXRncmVsID0gdGFi bGVfb3BlbihUcmlnZ2VyUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7Ci0KLQkvKgogCSAq IEZpcnN0IHBhc3MgLS0gbG9vayBmb3IgbmFtZSBjb25mbGljdAogCSAqLwogCVNjYW5LZXlJbml0 KCZrZXlbMF0sCkBAIC0xNDcyLDYgKzE0NjMsNyBAQCByZW5hbWV0cmlnKFJlbmFtZVN0bXQgKnN0 bXQpCiAJCQkJQW51bV9wZ190cmlnZ2VyX3RnbmFtZSwKIAkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfTkFNRUVRLAogCQkJCVBvaW50ZXJHZXREYXR1bShzdG10LT5zdWJuYW1lKSk7CisKIAl0 Z3NjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4odGdyZWwsIFRyaWdnZXJSZWxpZE5hbWVJbmRleElk LCB0cnVlLAogCQkJCQkJCQlOVUxMLCAyLCBrZXkpOwogCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1 cGxlID0gc3lzdGFibGVfZ2V0bmV4dCh0Z3NjYW4pKSkKQEAgLTE0ODQsNyArMTQ3NiwxMiBAQCBy ZW5hbWV0cmlnKFJlbmFtZVN0bXQgKnN0bXQpCiAJCXR1cGxlID0gaGVhcF9jb3B5dHVwbGUodHVw bGUpOwkvKiBuZWVkIGEgbW9kaWZpYWJsZSBjb3B5ICovCiAJCXRyaWdmb3JtID0gKEZvcm1fcGdf dHJpZ2dlcikgR0VUU1RSVUNUKHR1cGxlKTsKIAkJdGdvaWQgPSB0cmlnZm9ybS0+b2lkOwotCisJ CWlmICh0Z3BhcmVudCAhPSAwICYmIHRncGFyZW50ICE9IHRyaWdmb3JtLT50Z3BhcmVudGlkKSB7 CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCQkgZXJybXNnKCJ0cmlnZ2VyIFwiJXNcIiBmb3IgdGFibGUgXCIlc1wiIGlzIG5v dCBkZXBlbmRlbnQgb24gdGhlIHRyaWdnZXIgb24gXCIlc1wiIiwKKwkJCQkJCQlzdG10LT5zdWJu YW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCBzdG10LT5yZWxhdGlvbi0+ cmVsbmFtZSkpKTsKKwkJfQogCQluYW1lc3RyY3B5KCZ0cmlnZm9ybS0+dGduYW1lLAogCQkJCSAg IHN0bXQtPm5ld25hbWUpOwogCkBAIC0xNTIyLDYgKzE1MTksNzQgQEAgcmVuYW1ldHJpZyhSZW5h bWVTdG10ICpzdG10KQogCXJldHVybiBhZGRyZXNzOwogfQogCisvKgorICoJCXJlbmFtZXRyaWcJ CS0gY2hhbmdlcyB0aGUgbmFtZSBvZiBhIHRyaWdnZXIgb24gYSBwb3NzaWJseSBwYXJ0aXRpb25l ZCByZWxhdGlvbiByZWN1cmlzdmVseQorICoKKyAqCQkgIGFsdGVyIG5hbWUgb2YgcGFyZW50IHRy aWdnZXIgdXNpbmcgcmVuYW1lb25seXRyaWcKKyAqCQkgIHJlY3Vyc2l2ZSBvdmVyIGNoaWxkcmVu IGFuZCBjaGFuZ2UgdGhlaXIgbmFtZXMgaW4gdGhlIHNhbWUgbWFubmVyCisgKgorICovCitPYmpl Y3RBZGRyZXNzCityZW5hbWV0cmlnSGVscGVyIChSZW5hbWVTdG10ICpzdG10LCBPaWQgdGdvaWQs IE9pZCByZWxpZCkKK3sKKworCVJlbGF0aW9uCXRncmVsOworCU9pZAkJIG5ld3Rnb2lkOworCU9i amVjdEFkZHJlc3MgICB0Z2FkZHJlc3M7CisJLyoKKwkgKiBOT1RFIHRoYXQgdGhpcyBpcyBjb29s IG9ubHkgYmVjYXVzZSB3ZSBoYXZlIEFjY2Vzc0V4Y2x1c2l2ZUxvY2sgb24gdGhlCisJICogcmVs YXRpb24sIHNvIHRoZSB0cmlnZ2VyIHNldCB3b24ndCBiZSBjaGFuZ2luZyB1bmRlcm5lYXRoIHVz LgorCSAqLworCXRncmVsID0gdGFibGVfb3BlbihUcmlnZ2VyUmVsYXRpb25JZCwgUm93RXhjbHVz aXZlTG9jayk7CisKKwkvKgorCSAqIFRoZSBsYXN0IGNhbGwgb2YgcmVuYW1ldHJpZyBvciByZW5h bWV0cmlnSGVscGVyIGFscmVhZHkgbG9ja2VkIHRoaXMgcmVsYXRpb24uCisJICovCisJdGdhZGRy ZXNzID0gcmVuYW1lb25seXRyaWcoc3RtdCwgdGdyZWwsIHJlbGlkLCB0Z29pZCk7CisJbmV3dGdv aWQgPSB0Z2FkZHJlc3Mub2JqZWN0SWQ7CisKKwkgLyoKKwkgKiAgSW4gY2FzZSB3ZSBoYXZlIGEg cGFydGlvbmVkIHRhYmxlIHdlIHRyYXZlcnNlIHRoZW0gYW5kIHJlbmFtZSBldmVyeSBkZXBlbmRl bmQgc3VidHJpZ2dlcgorCSAqIG9mIHRoZSBzYW1lIG5hbWUgb3IgZXJyb3Igb3V0IGlmIGl0IGRv ZXNuJ3QgZXhpc3QuCisJICovCisJIGlmIChoYXNfc3ViY2xhc3MocmVsaWQpKQorCSB7CisJCSBM aXN0Q2VsbCAgICpjaGlsZDsKKwkJIExpc3QJICAgKmNoaWxkcmVuOworIAorCQkgLyogTWFrZSBz dXJlIGl0IHN0YXlzIGEgY2hpbGQuICovCisJCSBjaGlsZHJlbiA9IGZpbmRfaW5oZXJpdGFuY2Vf Y2hpbGRyZW4ocmVsaWQsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworIAorCQkgLyoKKwkJICAqIGZp bmRfYWxsX2luaGVyaXRvcnMgZG9lcyB0aGUgcmVjdXJzaXZlIHNlYXJjaCBvZiB0aGUgaW5oZXJp dGFuY2UKKwkJICAqIGhpZXJhcmNoeSwgc28gYWxsIHdlIGhhdmUgdG8gZG8gaXMgcHJvY2VzcyBh bGwgb2YgdGhlIHJlbGlkcyBpbiB0aGUKKwkJICAqIGxpc3QgdGhhdCBpdCByZXR1cm5zLgorCQkg ICovCisJCSBmb3JlYWNoKGNoaWxkLCBjaGlsZHJlbikKKwkJIHsKKwkJCSBPaWQJCSBjaGlsZHJl bGlkID0gbGZpcnN0X29pZChjaGlsZCk7CisgCisJCQkgaWYgKGNoaWxkcmVsaWQgPT0gcmVsaWQp CisJCQkJIGNvbnRpbnVlOworCQkJIHJlbmFtZXRyaWdIZWxwZXIoc3RtdCwgbmV3dGdvaWQsIGNo aWxkcmVsaWQpOworCQkgfQorCSB9CisJIHJldHVybiB0Z2FkZHJlc3M7Cit9CisKK09iamVjdEFk ZHJlc3MKK3JlbmFtZXRyaWcoUmVuYW1lU3RtdCAqc3RtdCkKK3sKKwkvKgorCSAqIExvb2sgdXAg bmFtZSwgY2hlY2sgcGVybWlzc2lvbnMsIGFuZCBhY3F1aXJlIGxvY2sgKHdoaWNoIHdlIHdpbGwg Tk9UCisJICogcmVsZWFzZSB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24pLgorCSAqLworCXJldHVy biByZW5hbWV0cmlnSGVscGVyKHN0bXQsIDAsCisJCQkJUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVk KHN0bXQtPnJlbGF0aW9uLCBBY2Nlc3NFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkgMCwKKwkJ CQkJCQkJCQkJIFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyLAorCQkJCQkJCQkJCQkg TlVMTCkpOworfQogCiAvKgogICogRW5hYmxlRGlzYWJsZVRyaWdnZXIoKQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJp Z2dlci5oCmluZGV4IDI0NDU0MGQ5MGIuLmMxM2Q3YmY5MzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3RyaWdnZXIuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2Vy LmgKQEAgLTE1OCw2ICsxNTgsMTAgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVHJpZ2dl cihDcmVhdGVUcmlnU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcKIGV4dGVybiB2 b2lkIFJlbW92ZVRyaWdnZXJCeUlkKE9pZCB0cmlnT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3RyaWdn ZXJfb2lkKE9pZCByZWxpZCwgY29uc3QgY2hhciAqbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIAor ZXh0ZXJuIE9iamVjdEFkZHJlc3MgcmVuYW1lb25seXRyaWcoUmVuYW1lU3RtdCAqc3RtdCwgUmVs YXRpb24gdGdyZWwsIE9pZCByZWxpZCwgT2lkIHRncGFyZW50KTsKKworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgcmVuYW1ldHJpZ0hlbHBlcihSZW5hbWVTdG10ICpzdG10LCBPaWQgdGdvaWQsIE9pZCBy ZWxpZCk7CisKIGV4dGVybiBPYmplY3RBZGRyZXNzIHJlbmFtZXRyaWcoUmVuYW1lU3RtdCAqc3Rt dCk7CiAKIGV4dGVybiB2b2lkIEVuYWJsZURpc2FibGVUcmlnZ2VyKFJlbGF0aW9uIHJlbCwgY29u c3QgY2hhciAqdGduYW1lLAo= --_004_4e1eeffb41ac46879d45642fda0d4760indexde_--