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 1lxoJL-0001UM-33 for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Jun 2021 10:16:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lxoJJ-0004cD-Up for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Jun 2021 10:16:13 +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 1lxoJJ-0004c4-Hr for pgsql-hackers@lists.postgresql.org; Mon, 28 Jun 2021 10:16:13 +0000 Received: from mxout1.routing.net ([2a03:2900:1:a::a]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lxoJE-00039L-Sn for pgsql-hackers@lists.postgresql.org; Mon, 28 Jun 2021 10:16:13 +0000 Received: from mxbox4.masterlogin.de (unknown [192.168.10.79]) by mxout1.routing.net (Postfix) with ESMTP id 7A2473FF91; Mon, 28 Jun 2021 10:16:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerdienst.de; s=20200217; t=1624875366; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=DFtXaQwmxjx2323A2ldRm4PWmQ19Pj17PwG7QBbomdE=; b=NlNB11QzJX8QDsKCFN6aSRvyOid8UpqNsJLiOMc03FWNrhSZPedYfGmFwf4V1PmDeUEL8k fBife5sBtgCZTNWwa8qeQ+rKMNAw2AGBaZhnZzbt1l0+lSTcff5itzTyxUdJ6zxh8ojxRs hwWqGZwBd9Z1MMyd+X287/QbltCwEX0= Received: from remote.index.de (business-90-187-114-221.pool2.vodafone-ip.de [90.187.114.221]) by mxbox4.masterlogin.de (Postfix) with ESMTPSA id 05275806E5; Mon, 28 Jun 2021 10:16:05 +0000 (UTC) Received: from invidia.index-gruppe.local (192.168.3.140) 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.2176.14; Mon, 28 Jun 2021 12:16:05 +0200 Received: from acedia.index-gruppe.local (192.168.3.121) by invidia.index-gruppe.local (192.168.3.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Mon, 28 Jun 2021 12:16:05 +0200 Received: from acedia.index-gruppe.local ([fe80::85fe:a34b:726c:9304]) by acedia.index-gruppe.local ([fe80::85fe:a34b:726c:9304%13]) with mapi id 15.01.2176.014; Mon, 28 Jun 2021 12:16:05 +0200 From: Arne Roland To: Zhihong Yu CC: Alvaro Herrera , Pg Hackers Subject: Re: Rename of triggers for partitioned tables Thread-Topic: Rename of triggers for partitioned tables Thread-Index: AQHWxEk1+rora/wutkWbcRQhC03q0KnbGQ2sgAAECBOATmSTgIBhAeKAgBDG6bOAACCNT4AAKOcAgAAj1kP///tHgIAEsSJngAHhzjCAhX9QJP//43kAgAAjD3T///1iAABXUKhw Date: Mon, 28 Jun 2021 10:16:04 +0000 Message-ID: <1ab8e4dbd6b0450183e00b95322439b4@index.de> References: <7c64cc3c9f1c4c1ca3e1ed5a456d4088@index.de> <202106261636.6g4befbdrfpn@alvherre.pgsql>, 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: [10.255.1.33] Content-Type: multipart/mixed; boundary="_004_1ab8e4dbd6b0450183e00b95322439b4indexde_" MIME-Version: 1.0 X-Mail-ID: 646d89db-1331-44b4-b2e7-fb48c83fe3b5 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_1ab8e4dbd6b0450183e00b95322439b4indexde_ Content-Type: multipart/alternative; boundary="_000_1ab8e4dbd6b0450183e00b95322439b4indexde_" --_000_1ab8e4dbd6b0450183e00b95322439b4indexde_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi! From: Zhihong Yu Sent: Saturday, June 26, 2021 20:32 Subject: Re: Rename of triggers for partitioned tables > Hi, Arne: > It seems the patch no longer applies cleanly on master branch. > Do you mind updating the patch ? > > Thanks Thank you for having a look! Please let me know if the attached rebased pat= ch works for you. Regards Arne --_000_1ab8e4dbd6b0450183e00b95322439b4indexde_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hi!


From: Zhihong Yu <zyu@= yugabyte.com>
Sent: Saturday, June 26, 2021 20:32
Subject: Re: Rename of triggers for partitioned tables
> Hi, Arne:
> It seems the patch no longer applies cleanly on master branch.
> Do you mind updating the patch ?
>
> Thanks

Thank you for having a look! Please let me know if the attached rebase= d patch works for you.

Regards
Arne
--_000_1ab8e4dbd6b0450183e00b95322439b4indexde_-- --_004_1ab8e4dbd6b0450183e00b95322439b4indexde_ Content-Type: text/x-patch; name="recursive_tgrename.6.patch" Content-Description: recursive_tgrename.6.patch Content-Disposition: attachment; filename="recursive_tgrename.6.patch"; size=17917; creation-date="Mon, 28 Jun 2021 10:13:28 GMT"; modification-date="Mon, 28 Jun 2021 10:13:28 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCAwN2M3M2YzOWRlLi41NzMxYzhhZGNkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHJpZ2dlci5jCkBAIC0xMzI1LDcgKzEzMjUsNiBAQCBnZXRfdHJpZ2dlcl9vaWQoT2lk IHJlbGlkLCBjb25zdCBjaGFyICp0cmlnbmFtZSwgYm9vbCBtaXNzaW5nX29rKQogCiAJdGdzY2Fu ID0gc3lzdGFibGVfYmVnaW5zY2FuKHRncmVsLCBUcmlnZ2VyUmVsaWROYW1lSW5kZXhJZCwgdHJ1 ZSwKIAkJCQkJCQkJTlVMTCwgMiwgc2tleSk7Ci0KIAl0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHRn c2Nhbik7CiAKIAlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKQEAgLTEzNDcsMTIgKzEzNDYs OCBAQCBnZXRfdHJpZ2dlcl9vaWQoT2lkIHJlbGlkLCBjb25zdCBjaGFyICp0cmlnbmFtZSwgYm9v bCBtaXNzaW5nX29rKQogCXJldHVybiBvaWQ7CiB9CiAKLS8qCi0gKiBQZXJmb3JtIHBlcm1pc3Np b25zIGFuZCBpbnRlZ3JpdHkgY2hlY2tzIGJlZm9yZSBhY3F1aXJpbmcgYSByZWxhdGlvbiBsb2Nr LgotICovCiBzdGF0aWMgdm9pZAotUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVRyaWdnZXIoY29u c3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKLQkJCQkJCQkJIHZvaWQg KmFyZykKK2NhbGxiYWNrRm9yUmVuYW1lVHJpZ2dlcihjaGFyICpyZWxuYW1lLCBPaWQgcmVsaWQp CiB7CiAJSGVhcFR1cGxlCXR1cGxlOwogCUZvcm1fcGdfY2xhc3MgZm9ybTsKQEAgLTEzNjksMjUg KzEzNjQsMzYgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVRyaWdnZXIoY29uc3QgUmFuZ2VW YXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQkgZXJybXNnKCJcIiVzXCIg aXMgbm90IGEgdGFibGUsIHZpZXcsIG9yIGZvcmVpZ24gdGFibGUiLAotCQkJCQkJcnYtPnJlbG5h bWUpKSk7CisJCQkJCQlyZWxuYW1lKSkpOwogCiAJLyogeW91IG11c3Qgb3duIHRoZSB0YWJsZSB0 byByZW5hbWUgb25lIG9mIGl0cyB0cmlnZ2VycyAqLwogCWlmICghcGdfY2xhc3Nfb3duZXJjaGVj ayhyZWxpZCwgR2V0VXNlcklkKCkpKQotCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dO RVIsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKHJlbGlkKSksIHJ2LT5yZWxu YW1lKTsKKwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9v Ymp0eXBlKGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCByZWxuYW1lKTsKIAlpZiAoIWFsbG93U3lz dGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIGZvcm0pKQogCQllcmVwb3J0KEVS Uk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCiAJCQkJ IGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIHN5c3RlbSBjYXRhbG9nIiwK LQkJCQkJCXJ2LT5yZWxuYW1lKSkpOworCQkJCQkJcmVsbmFtZSkpKTsKIAogCVJlbGVhc2VTeXND YWNoZSh0dXBsZSk7CiB9CiAKIC8qCi0gKgkJcmVuYW1ldHJpZwkJLSBjaGFuZ2VzIHRoZSBuYW1l IG9mIGEgdHJpZ2dlciBvbiBhIHJlbGF0aW9uCisgKiBQZXJmb3JtIHBlcm1pc3Npb25zIGFuZCBp bnRlZ3JpdHkgY2hlY2tzIGJlZm9yZSBhY3F1aXJpbmcgYSByZWxhdGlvbiBsb2NrLgorICovCitz dGF0aWMgdm9pZAorUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVRyaWdnZXIoY29uc3QgUmFuZ2VW YXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKKwkJCQkJCQkJIHZvaWQgKmFyZykKK3sK KwljYWxsYmFja0ZvclJlbmFtZVRyaWdnZXIocnYtPnJlbG5hbWUsIHJlbGlkKTsKK30KKworLyoK KyAqCQlyZW5hbWVvbmx5dHJpZwkJLSBjaGFuZ2VzIHRoZSBuYW1lIG9mIGEgdHJpZ2dlciBvbiBh IHJlbGF0aW9uCiAgKgogICoJCXRyaWdnZXIgbmFtZSBpcyBjaGFuZ2VkIGluIHRyaWdnZXIgY2F0 YWxvZy4KICAqCQlObyByZWNvcmQgb2YgdGhlIHByZXZpb3VzIG5hbWUgaXMga2VwdC4KKyAqCQlU aGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgcm93IGlzIGFscmVhZHkgbG9ja2VkCiAgKgog ICoJCWdldCBwcm9wZXIgcmVscmVsYXRpb24gZnJvbSByZWxhdGlvbiBjYXRhbG9nIChpZiBub3Qg YXJnKQogICoJCXNjYW4gdHJpZ2dlciBjYXRhbG9nCkBAIC0xMzk3LDQxICsxNDAzLDI3IEBAIFJh bmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJl bGlkLCBPaWQgb2xkcmVsaWQsCiAgKgkJdXBkYXRlIHJvdyBpbiBjYXRhbG9nCiAgKi8KIE9iamVj dEFkZHJlc3MKLXJlbmFtZXRyaWcoUmVuYW1lU3RtdCAqc3RtdCkKK3JlbmFtZW9ubHl0cmlnKFJl bmFtZVN0bXQgKnN0bXQsIFJlbGF0aW9uIHRncmVsLCBPaWQgcmVsaWQsIE9pZCB0Z3BhcmVudCkK IHsKIAlPaWQJCQl0Z29pZDsKIAlSZWxhdGlvbgl0YXJnZXRyZWw7Ci0JUmVsYXRpb24JdGdyZWw7 CiAJSGVhcFR1cGxlCXR1cGxlOwogCVN5c1NjYW5EZXNjIHRnc2NhbjsKIAlTY2FuS2V5RGF0YSBr ZXlbMl07Ci0JT2lkCQkJcmVsaWQ7CiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCWludAkJCW1h dGNoZWQ7CiAKLQkvKgotCSAqIExvb2sgdXAgbmFtZSwgY2hlY2sgcGVybWlzc2lvbnMsIGFuZCBh Y3F1aXJlIGxvY2sgKHdoaWNoIHdlIHdpbGwgTk9UCi0JICogcmVsZWFzZSB1bnRpbCBlbmQgb2Yg dHJhbnNhY3Rpb24pLgotCSAqLwotCXJlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0 bXQtPnJlbGF0aW9uLCBBY2Nlc3NFeGNsdXNpdmVMb2NrLAotCQkJCQkJCQkJIDAsCi0JCQkJCQkJ CQkgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVRyaWdnZXIsCi0JCQkJCQkJCQkgTlVMTCk7CiAK IAkvKiBIYXZlIGxvY2sgYWxyZWFkeSwgc28ganVzdCBuZWVkIHRvIGJ1aWxkIHJlbGNhY2hlIGVu dHJ5LiAqLwogCXRhcmdldHJlbCA9IHJlbGF0aW9uX29wZW4ocmVsaWQsIE5vTG9jayk7CiAKKwog CS8qCiAJICogU2NhbiBwZ190cmlnZ2VyIHR3aWNlIGZvciBleGlzdGluZyB0cmlnZ2VycyBvbiBy ZWxhdGlvbi4gIFdlIGRvIHRoaXMgaW4KIAkgKiBvcmRlciB0byBlbnN1cmUgYSB0cmlnZ2VyIGRv ZXMgbm90IGV4aXN0IHdpdGggbmV3bmFtZSAoVGhlIHVuaXF1ZSBpbmRleAogCSAqIG9uIHRncmVs aWQvdGduYW1lIHdvdWxkIGNvbXBsYWluIGFueXdheSkgYW5kIHRvIGVuc3VyZSBhIHRyaWdnZXIg ZG9lcwogCSAqIGV4aXN0IHdpdGggb2xkbmFtZS4KIAkgKgotCSAqIE5PVEUgdGhhdCB0aGlzIGlz IGNvb2wgb25seSBiZWNhdXNlIHdlIGhhdmUgQWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGUKLQkg KiByZWxhdGlvbiwgc28gdGhlIHRyaWdnZXIgc2V0IHdvbid0IGJlIGNoYW5naW5nIHVuZGVybmVh dGggdXMuCi0JICovCi0JdGdyZWwgPSB0YWJsZV9vcGVuKFRyaWdnZXJSZWxhdGlvbklkLCBSb3dF eGNsdXNpdmVMb2NrKTsKLQotCS8qCiAJICogRmlyc3QgcGFzcyAtLSBsb29rIGZvciBuYW1lIGNv bmZsaWN0CiAJICovCiAJU2NhbktleUluaXQoJmtleVswXSwKQEAgLTE0NTIsMzQgKzE0NDQsNDgg QEAgcmVuYW1ldHJpZyhSZW5hbWVTdG10ICpzdG10KQogCXN5c3RhYmxlX2VuZHNjYW4odGdzY2Fu KTsKIAogCS8qCi0JICogU2Vjb25kIHBhc3MgLS0gbG9vayBmb3IgdHJpZ2dlciBleGlzdGluZyB3 aXRoIG9sZG5hbWUgYW5kIHVwZGF0ZQorCSAqIFNlY29uZCBwYXNzIC0tIGxvb2sgZm9yIHRyaWdn ZXIgZXhpc3RpbmcgYW5kIHVwZGF0ZSBpZiBwZ3BhcmVudCBpcworCSAqIG1hdGNoaW5nCiAJICov CiAJU2NhbktleUluaXQoJmtleVswXSwKIAkJCQlBbnVtX3BnX3RyaWdnZXJfdGdyZWxpZCwKIAkJ CQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCiAJCQkJT2JqZWN0SWRHZXREYXR1bShy ZWxpZCkpOwotCVNjYW5LZXlJbml0KCZrZXlbMV0sCi0JCQkJQW51bV9wZ190cmlnZ2VyX3RnbmFt ZSwKLQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfTkFNRUVRLAotCQkJCVBvaW50ZXJHZXRE YXR1bShzdG10LT5zdWJuYW1lKSk7CisKIAl0Z3NjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4odGdy ZWwsIFRyaWdnZXJSZWxpZE5hbWVJbmRleElkLCB0cnVlLAotCQkJCQkJCQlOVUxMLCAyLCBrZXkp OwotCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dCh0Z3NjYW4p KSkKKwkJCQkJCQkJTlVMTCwgMSwga2V5KTsKKwltYXRjaGVkID0gMDsKKwl3aGlsZSAoSGVhcFR1 cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQodGdzY2FuKSkpCiAJewogCQlGb3Jt X3BnX3RyaWdnZXIgdHJpZ2Zvcm07CiAKKwkJdHJpZ2Zvcm0gPSAoRm9ybV9wZ190cmlnZ2VyKSBH RVRTVFJVQ1QodHVwbGUpOworCisJCS8qCisJCSAqIFNraXAgdHJpZ2dlcnMgdGhhdCBub3QgcmVs ZXZhbnQuIFJlbGV2YW50IGlzIHRoZSBwYXJlbnQgdHJpZ2dlciBhcworCQkgKiB3ZWxsIGFzIHBh cnRzIG9mIHRoZSBjdXJyZW50IGRpc3RyaWJ1dGVkIHRyaWdnZXIuCisJCSAqLworCQlpZiAodGdw YXJlbnQgPT0gMCAmJiBzdHJjbXAoc3RtdC0+c3VibmFtZSwgTmFtZVN0cih0cmlnZm9ybS0+dGdu YW1lKSkgfHwgdGdwYXJlbnQgJiYgdHJpZ2Zvcm0tPnRncGFyZW50aWQgIT0gdGdwYXJlbnQpCisJ CQljb250aW51ZTsKKworCQlpZiAoc3RyY21wKHN0bXQtPnN1Ym5hbWUsIE5hbWVTdHIodHJpZ2Zv cm0tPnRnbmFtZSkpKQorCQl7CisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygidHJp Z2dlciBcIiVzXCIgZm9yIHRhYmxlIFwiJXNcIiB3YXMgbm90IG5hbWVkIFwiJXNcIiwgcmVuYW1p bmcgYW55d2F5cyIsCisJCQkJCQkJTmFtZVN0cih0cmlnZm9ybS0+dGduYW1lKSwgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSwgc3RtdC0+c3VibmFtZSkpKTsKKwkJfQorCiAJCS8q CiAJCSAqIFVwZGF0ZSBwZ190cmlnZ2VyIHR1cGxlIHdpdGggbmV3IHRnbmFtZS4KIAkJICovCiAJ CXR1cGxlID0gaGVhcF9jb3B5dHVwbGUodHVwbGUpOwkvKiBuZWVkIGEgbW9kaWZpYWJsZSBjb3B5 ICovCiAJCXRyaWdmb3JtID0gKEZvcm1fcGdfdHJpZ2dlcikgR0VUU1RSVUNUKHR1cGxlKTsKLQkJ dGdvaWQgPSB0cmlnZm9ybS0+b2lkOwotCiAJCW5hbWVzdHJjcHkoJnRyaWdmb3JtLT50Z25hbWUs CiAJCQkJICAgc3RtdC0+bmV3bmFtZSk7Ci0KIAkJQ2F0YWxvZ1R1cGxlVXBkYXRlKHRncmVsLCAm dHVwbGUtPnRfc2VsZiwgdHVwbGUpOwogCisJCXRnb2lkID0gdHJpZ2Zvcm0tPm9pZDsKKwogCQlJ bnZva2VPYmplY3RQb3N0QWx0ZXJIb29rKFRyaWdnZXJSZWxhdGlvbklkLAogCQkJCQkJCQkgIHRn b2lkLCAwKTsKIApAQCAtMTQ4OSwyOSArMTQ5NSwxMTggQEAgcmVuYW1ldHJpZyhSZW5hbWVTdG10 ICpzdG10KQogCQkgKiBlbnRyaWVzLiAgKElkZWFsbHkgdGhpcyBzaG91bGQgaGFwcGVuIGF1dG9t YXRpY2FsbHkuLi4pCiAJCSAqLwogCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZSh0YXJnZXRyZWwp OworCQltYXRjaGVkKys7CiAJfQotCWVsc2UKKworCXN5c3RhYmxlX2VuZHNjYW4odGdzY2FuKTsK KworCS8qCisJICogVGhlcmUgYWx3YXlzIHNob3VsZCBiZSBleGFjdGx5IG9uZSBtYXRjaGluZyB0 cmlnZ2VyIG9uIHRoZSBjaGlsZAorCSAqIHBhcnRpdGlvbi4gSWYgdGhlcmUgaXNuJ3QgZmFpbCB3 aXRoIGFuIGVycm9yLgorCSAqLworCWlmICghbWF0Y2hlZCkKIAl7CiAJCWVyZXBvcnQoRVJST1Is Ci0JCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKLQkJCQkgZXJybXNnKCJ0 cmlnZ2VyIFwiJXNcIiBmb3IgdGFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkgZXJybXNnKCJ0cmlnZ2VyIFwiJXNc IiBmb3IgY2hpbGQgdGFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCXN0bXQtPnN1 Ym5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpKSk7CisJfQorCWlmICht YXRjaGVkID4gMSkKKwl7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBX0NPUlJVUFRFRCksCisJCQkJIGVycm1zZygibXVsdGlwbGUgdHJpZ2dlcnMgbWF0Y2ggXCIl c1wiIGZvciB0YWJsZSBcIiVzXCIsIHRoaXMgbWlnaHQgaW5kaWNhdGUgYSBkYXRhIGNvcnJ1cHRp b24iLAogCQkJCQkJc3RtdC0+c3VibmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0 cmVsKSkpKTsKIAl9CiAKIAlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3MsIFRyaWdnZXJSZWxhdGlv bklkLCB0Z29pZCk7CiAKLQlzeXN0YWJsZV9lbmRzY2FuKHRnc2Nhbik7Ci0KLQl0YWJsZV9jbG9z ZSh0Z3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAkvKgogCSAqIENsb3NlIHJlbCwgYnV0IGtl ZXAgZXhjbHVzaXZlIGxvY2shCiAJICovCisJcmVsYXRpb25fY2xvc2UodGdyZWwsIE5vTG9jayk7 CiAJcmVsYXRpb25fY2xvc2UodGFyZ2V0cmVsLCBOb0xvY2spOwogCiAJcmV0dXJuIGFkZHJlc3M7 CiB9CiAKKy8qCisgKgkJcmVuYW1ldHJpZwkJLSBjaGFuZ2VzIHRoZSBuYW1lIG9mIGEgdHJpZ2dl ciBvbiBhIHBvc3NpYmx5IHBhcnRpdGlvbmVkIHJlbGF0aW9uIHJlY3VyaXN2ZWx5CisgKgorICoJ CSAgYWx0ZXIgbmFtZSBvZiBwYXJlbnQgdHJpZ2dlciB1c2luZyByZW5hbWVvbmx5dHJpZworICoJ CSAgcmVjdXJzaXZlIG92ZXIgY2hpbGRyZW4gYW5kIGNoYW5nZSB0aGVpciBuYW1lcyBpbiB0aGUg c2FtZSBtYW5uZXIKKyAqCisgKi8KK09iamVjdEFkZHJlc3MKK3JlbmFtZXRyaWdIZWxwZXIoUmVu YW1lU3RtdCAqc3RtdCwgT2lkIHRnb2lkLCBPaWQgcmVsaWQpCit7CisKKwlSZWxhdGlvbgl0Z3Jl bDsKKwlPYmplY3RBZGRyZXNzIHRnYWRkcmVzczsKKwlIZWFwVHVwbGUJdHVwbGU7CisJY2hhcgkJ cmVsa2luZDsKKworCS8qCisJICogTk9URSB0aGF0IHRoaXMgaXMgY29vbCBvbmx5IGJlY2F1c2Ug d2UgaGF2ZSBBY2Nlc3NFeGNsdXNpdmVMb2NrIG9uIHRoZQorCSAqIHJlbGF0aW9ucywgc28gbmVp dGhlciB0aGUgdHJpZ2dlciBzZXQgbm9yIHRoZSB0YWJsZSBpdHNlbGYgd2lsbCBiZQorCSAqIGNo YW5naW5nIHVuZGVybmVhdGggdXMuCisJICovCisJdGdyZWwgPSB0YWJsZV9vcGVuKFRyaWdnZXJS ZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qCisJICogVGhlIGxhc3QgY2FsbCBv ZiByZW5hbWV0cmlnIG9yIHJlbmFtZXRyaWdIZWxwZXIgYWxyZWFkeSBsb2NrZWQgdGhpcworCSAq IHJlbGF0aW9uLgorCSAqLworCXRnYWRkcmVzcyA9IHJlbmFtZW9ubHl0cmlnKHN0bXQsIHRncmVs LCByZWxpZCwgdGdvaWQpOworCisJLyoKKwkgKiBJbiBjYXNlIHdlIGhhdmUgYSBwYXJ0aW9uZWQg dGFibGUsIHdlIHRyYXZlcnNlIHRoZW0gYW5kIHJlbmFtZSBldmVyeQorCSAqIGRlcGVuZGVuZCB0 cmlnZ2VyLCB1bmxlc3MgT04gT05MWSB3YXMgc3BlY2lmaWVkLgorCSAqLworCXR1cGxlID0gU2Vh cmNoU3lzQ2FjaGUxKFJFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCkpOworCXJlbGtpbmQg PSAoKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkpLT5yZWxraW5kOworCVJlbGVhc2VT eXNDYWNoZSh0dXBsZSk7CQkvKiBXZSBhcmUgc3RpbGwgaG9sZGluZyB0aGUKKwkJCQkJCQkJICog QWNjZXNzRXhjbHVzaXZlTG9jay4gKi8KKwlpZiAoc3RtdC0+cmVsYXRpb24tPmluaCAmJiByZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgJiYgaGFzX3N1YmNsYXNzKHJlbGlkKSkK Kwl7CisJCUxpc3RDZWxsICAgKmNoaWxkOworCQlMaXN0CSAgICpjaGlsZHJlbjsKKworCQkvKiBN YWtlIHN1cmUgaXQgc3RheXMgYSBjaGlsZCwgZXZlbiBpZiBpdCdzIGRldGFjaGVkLiAqLworCQlj aGlsZHJlbiA9IGZpbmRfaW5oZXJpdGFuY2VfY2hpbGRyZW4ocmVsaWQsIEFjY2Vzc0V4Y2x1c2l2 ZUxvY2ssIHRydWUpOworCisJCS8qCisJCSAqIGZpbmRfaW5oZXJpdGFuY2VfY2hpbGRyZW4gZG9l c24ndCB3b3JrIHJlY3Vyc2l2ZWx5LiB3ZSBjaGVjayBldmVyeQorCQkgKiBsYXllciBpbmRpdmlk dWFsbHkgdG8gZW5zdXJlIHRoYXQgdGhlIHRyaWdnZXIgb2YgdGhlIGNoaWxkIGlzCisJCSAqIG1h dGNoaW5nIGluIGNhc2UgaXQncyBhIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KKwkJICovCisJ CWZvcmVhY2goY2hpbGQsIGNoaWxkcmVuKQorCQl7CisJCQlPaWQJCQljaGlsZHJlbGlkID0gbGZp cnN0X29pZChjaGlsZCk7CisKKwkJCWlmIChjaGlsZHJlbGlkID09IHJlbGlkKQorCQkJCWNvbnRp bnVlOworCQkJcmVuYW1ldHJpZ0hlbHBlcihzdG10LCB0Z2FkZHJlc3Mub2JqZWN0SWQsIGNoaWxk cmVsaWQpOworCQl9CisJfQorCXJldHVybiB0Z2FkZHJlc3M7Cit9CisKK09iamVjdEFkZHJlc3MK K3JlbmFtZXRyaWcoUmVuYW1lU3RtdCAqc3RtdCkKK3sKKwkvKgorCSAqIExvb2sgdXAgbmFtZSwg Y2hlY2sgcGVybWlzc2lvbnMsIGFuZCBhY3F1aXJlIGxvY2sgKHdoaWNoIHdlIHdpbGwgTk9UCisJ ICogcmVsZWFzZSB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24pLgorCSAqLworCXJldHVybiByZW5h bWV0cmlnSGVscGVyKHN0bXQsIDAsCisJCQkJCQkJUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0 bXQtPnJlbGF0aW9uLCBBY2Nlc3NFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkJCSAwLAorCQkJ CQkJCQkJCQkJCSBSYW5nZVZhckNhbGxiYWNrRm9yUmVuYW1lVHJpZ2dlciwKKwkJCQkJCQkJCQkJ CQkgTlVMTCkpOworCit9CiAKIC8qCiAgKiBFbmFibGVEaXNhYmxlVHJpZ2dlcigpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQppbmRleCBlYjI0MTk1NDM4Li5jMmY2YWJmNTVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTg4ODYsNyAr ODg4Niw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0 eXBlcyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQk ID0gKE5vZGUgKiluOwogCQkJCX0KLQkJCXwgQUxURVIgVFJJR0dFUiBuYW1lIE9OIHF1YWxpZmll ZF9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQl8IEFMVEVSIFRSSUdHRVIgbmFtZSBPTiByZWxhdGlv bl9leHByIFJFTkFNRSBUTyBuYW1lCiAJCQkJewogCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5v ZGUoUmVuYW1lU3RtdCk7CiAJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVFJJR0dFUjsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaCBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3RyaWdnZXIuaAppbmRleCA5ZTU1N2NmYmNlLi44ZGFjMjNkOTgwIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvdHJpZ2dlci5oCkBAIC0xNTgsNiArMTU4LDEwIEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIENy ZWF0ZVRyaWdnZXIoQ3JlYXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n CiBleHRlcm4gdm9pZCBSZW1vdmVUcmlnZ2VyQnlJZChPaWQgdHJpZ09pZCk7CiBleHRlcm4gT2lk CWdldF90cmlnZ2VyX29pZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbWlzc2lu Z19vayk7CiAKK2V4dGVybiBPYmplY3RBZGRyZXNzIHJlbmFtZW9ubHl0cmlnKFJlbmFtZVN0bXQg KnN0bXQsIFJlbGF0aW9uIHRncmVsLCBPaWQgcmVsaWQsIE9pZCB0Z3BhcmVudCk7CisKK2V4dGVy biBPYmplY3RBZGRyZXNzIHJlbmFtZXRyaWdIZWxwZXIoUmVuYW1lU3RtdCAqc3RtdCwgT2lkIHRn b2lkLCBPaWQgcmVsaWQpOworCiBleHRlcm4gT2JqZWN0QWRkcmVzcyByZW5hbWV0cmlnKFJlbmFt ZVN0bXQgKnN0bXQpOwogCiBleHRlcm4gdm9pZCBFbmFibGVEaXNhYmxlVHJpZ2dlcihSZWxhdGlv biByZWwsIGNvbnN0IGNoYXIgKnRnbmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdHJpZ2dlcnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmlnZ2Vy cy5vdXQKaW5kZXggZThhZjlhOTU4OS4uMGUyZTI2N2EwNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90cmlnZ2Vycy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC90cmlnZ2Vycy5vdXQKQEAgLTMzNDksMyArMzM0OSwxMTggQEAgZm9yIGVhY2ggc3RhdGVt ZW50IGV4ZWN1dGUgZnVuY3Rpb24gdHJpZ2dlcl9mdW5jdGlvbjEoKTsKIGRlbGV0ZSBmcm9tIGNv bnZzbG90X3Rlc3RfcGFyZW50OwogTk9USUNFOiAgdHJpZ2dlciA9IGJkdF90cmlnZ2VyLCBvbGRf dGFibGUgPSAoMTExLHR1dHUpLCAoMzExLHR1dHUpCiBkcm9wIHRhYmxlIGNvbnZzbG90X3Rlc3Rf Y2hpbGQsIGNvbnZzbG90X3Rlc3RfcGFyZW50OworLS0KKy0tIGJ1aWxkIGEgbmVzdGVkIHBhcnRp dGlvbiBzY2hlbWUgZm9yIHRlc3RpbmcKKy0tCitjcmVhdGUgdGFibGUgZ3JhbmRwYXJlbnQgKGlk IGludCwKK3ByaW1hcnkga2V5IChpZCkpCitwYXJ0aXRpb24gYnkgcmFuZ2UgKGlkKTsKK2NyZWF0 ZSB0YWJsZSBtaWRkbGUKK3BhcnRpdGlvbiBvZiBncmFuZHBhcmVudAorZm9yIHZhbHVlcyBmcm9t ICgxKQordG8gKDEwKQorcGFydGl0aW9uIGJ5IHJhbmdlIChpZCk7CitjcmVhdGUgdGFibGUgY2hp CitwYXJ0aXRpb24gb2YgbWlkZGxlCitmb3IgdmFsdWVzIGZyb20gKDEpCit0byAoNSk7CitjcmVh dGUgdGFibGUgY2hvCitwYXJ0aXRpb24gb2YgbWlkZGxlCitmb3IgdmFsdWVzIGZyb20gKDYpCit0 byAoOCk7CitjcmVhdGUgZnVuY3Rpb24gZiAoKQorcmV0dXJucyB0cmlnZ2VyIGFzIAorJCQKK2Jl Z2luCityZXR1cm4gbmV3OworZW5kOworJCQKK2xhbmd1YWdlIHBscGdzcWw7CitjcmVhdGUgdHJp Z2dlciBhCithZnRlciBpbnNlcnQgb24gZ3JhbmRwYXJlbnQKK2ZvciBlYWNoIHJvdworZXhlY3V0 ZSBwcm9jZWR1cmUgZigpOworc2VsZWN0IHRncmVsaWQ6OnJlZ2NsYXNzLCB0Z25hbWUsIChzZWxl Y3QgdGduYW1lIGZyb20gcGdfdHJpZ2dlciB0ciB3aGVyZSB0ci5vaWQgPSBwZ190cmlnZ2VyLnRn cGFyZW50aWQpIHBhcmVudF90Z25hbWUKK2Zyb20gcGdfdHJpZ2dlciB3aGVyZSB0Z25hbWUgaW4g KCdhJykKK29yZGVyIGJ5IHRnbmFtZSwgdGdyZWxpZDo6cmVnY2xhc3M6OnRleHQ7CisgICB0Z3Jl bGlkICAgfCB0Z25hbWUgfCBwYXJlbnRfdGduYW1lIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0KKyBjaGkgICAgICAgICB8IGEgICAgICB8IGEKKyBjaG8gICAgICAgICB8 IGEgICAgICB8IGEKKyBncmFuZHBhcmVudCB8IGEgICAgICB8IAorIG1pZGRsZSAgICAgIHwgYSAg ICAgIHwgYQorKDQgcm93cykKKworYWx0ZXIgdHJpZ2dlciBhIG9uIGdyYW5kcGFyZW50IHJlbmFt ZSB0byBiOworc2VsZWN0IHRncmVsaWQ6OnJlZ2NsYXNzLCB0Z25hbWUsIChzZWxlY3QgdGduYW1l IGZyb20gcGdfdHJpZ2dlciB0ciB3aGVyZSB0ci5vaWQgPSBwZ190cmlnZ2VyLnRncGFyZW50aWQp IHBhcmVudF90Z25hbWUKK2Zyb20gcGdfdHJpZ2dlciB3aGVyZSB0Z25hbWUgaW4gKCdhJywgJ2In KQorb3JkZXIgYnkgdGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4dDsKKyAgIHRncmVsaWQg ICB8IHRnbmFtZSB8IHBhcmVudF90Z25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQorIGNoaSAgICAgICAgIHwgYiAgICAgIHwgYgorIGNobyAgICAgICAgIHwgYiAg ICAgIHwgYgorIGdyYW5kcGFyZW50IHwgYiAgICAgIHwgCisgbWlkZGxlICAgICAgfCBiICAgICAg fCBiCisoNCByb3dzKQorCithbHRlciB0cmlnZ2VyIGIgb24gb25seSBtaWRkbGUgcmVuYW1lIHRv IHNvbWV0aGluZzsKK3NlbGVjdCB0Z3JlbGlkOjpyZWdjbGFzcywgdGduYW1lLCAoc2VsZWN0IHRn bmFtZSBmcm9tIHBnX3RyaWdnZXIgdHIgd2hlcmUgdHIub2lkID0gcGdfdHJpZ2dlci50Z3BhcmVu dGlkKSBwYXJlbnRfdGduYW1lCitmcm9tIHBnX3RyaWdnZXIgd2hlcmUgdGduYW1lIGluICgnc29t ZXRoaW5nJywgJ2InKQorb3JkZXIgYnkgdGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4dDsK KyAgIHRncmVsaWQgICB8ICB0Z25hbWUgICB8IHBhcmVudF90Z25hbWUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIGNoaSAgICAgICAgIHwgYiAgICAgICAgIHwg c29tZXRoaW5nCisgY2hvICAgICAgICAgfCBiICAgICAgICAgfCBzb21ldGhpbmcKKyBncmFuZHBh cmVudCB8IGIgICAgICAgICB8IAorIG1pZGRsZSAgICAgIHwgc29tZXRoaW5nIHwgYgorKDQgcm93 cykKKworYWx0ZXIgdHJpZ2dlciBzb21ldGhpbmcgb24gbWlkZGxlIHJlbmFtZSB0byBzb21lX3Ry aWdnZXI7CitOT1RJQ0U6ICB0cmlnZ2VyICJiIiBmb3IgdGFibGUgImNoaSIgd2FzIG5vdCBuYW1l ZCAic29tZXRoaW5nIiwgcmVuYW1pbmcgYW55d2F5cworTk9USUNFOiAgdHJpZ2dlciAiYiIgZm9y IHRhYmxlICJjaG8iIHdhcyBub3QgbmFtZWQgInNvbWV0aGluZyIsIHJlbmFtaW5nIGFueXdheXMK K3NlbGVjdCB0Z3JlbGlkOjpyZWdjbGFzcywgdGduYW1lLCAoc2VsZWN0IHRnbmFtZSBmcm9tIHBn X3RyaWdnZXIgdHIgd2hlcmUgdHIub2lkID0gcGdfdHJpZ2dlci50Z3BhcmVudGlkKSBwYXJlbnRf dGduYW1lCitmcm9tIHBnX3RyaWdnZXIgd2hlcmUgdGduYW1lIGluICgnc29tZV90cmlnZ2VyJywg J2InLCAnc29tZXRoaW5nJykKK29yZGVyIGJ5IHRnbmFtZSwgdGdyZWxpZDo6cmVnY2xhc3M6OnRl eHQ7CisgICB0Z3JlbGlkICAgfCAgICB0Z25hbWUgICAgfCBwYXJlbnRfdGduYW1lIAorLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyBncmFuZHBhcmVudCB8IGIg ICAgICAgICAgICB8IAorIGNoaSAgICAgICAgIHwgc29tZV90cmlnZ2VyIHwgc29tZV90cmlnZ2Vy CisgY2hvICAgICAgICAgfCBzb21lX3RyaWdnZXIgfCBzb21lX3RyaWdnZXIKKyBtaWRkbGUgICAg ICB8IHNvbWVfdHJpZ2dlciB8IGIKKyg0IHJvd3MpCisKKy0tCistLSBDaGVjayB0aGF0IGNsYXNz aWNhbCBpbmhlcml0YW5jZSBpcyB1bnBoYXNlZCBieSByZW5hbWluZyB0cmlnZ2VycworLS0KK2Ny ZWF0ZSB0YWJsZSBpbmggKGlkIGludCwKK3ByaW1hcnkga2V5IChpZCkpOworYWx0ZXIgdGFibGUg bWlkZGxlIGRldGFjaCBwYXJ0aXRpb24gY2hpOworYWx0ZXIgdGFibGUgY2hpIGluaGVyaXQgaW5o Oworc2VsZWN0IHRncmVsaWQ6OnJlZ2NsYXNzLCB0Z25hbWUsIChzZWxlY3QgdGduYW1lIGZyb20g cGdfdHJpZ2dlciB0ciB3aGVyZSB0ci5vaWQgPSBwZ190cmlnZ2VyLnRncGFyZW50aWQpIHBhcmVu dF90Z25hbWUKK2Zyb20gcGdfdHJpZ2dlciB3aGVyZSB0Z3JlbGlkID0gJ2NoaSc6OnJlZ2NsYXNz CitvcmRlciBieSB0Z25hbWUsIHRncmVsaWQ6OnJlZ2NsYXNzOjp0ZXh0OworIHRncmVsaWQgfCB0 Z25hbWUgfCBwYXJlbnRfdGduYW1lIAorLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQorKDAgcm93cykKKworY3JlYXRlIHRyaWdnZXIgdW5yZWxhdGVkCitiZWZvcmUgdXBkYXRlIG9m IGlkIG9uIGluaAorZm9yIGVhY2ggcm93CitleGVjdXRlIHByb2NlZHVyZSBmKCk7CithbHRlciB0 cmlnZ2VyIHVucmVsYXRlZCBvbiBpbmggcmVuYW1lIHRvIHNvbWVfdHJpZ2dlcjsKK2FsdGVyIHRy aWdnZXIgc29tZV90cmlnZ2VyIG9uIGluaCByZW5hbWUgdG8gdHJpZ2dlcl9uYW1lOworc2VsZWN0 IHRncmVsaWQ6OnJlZ2NsYXNzLCB0Z25hbWUsIChzZWxlY3QgdGduYW1lIGZyb20gcGdfdHJpZ2dl ciB0ciB3aGVyZSB0ci5vaWQgPSBwZ190cmlnZ2VyLnRncGFyZW50aWQpIHBhcmVudF90Z25hbWUK K2Zyb20gcGdfdHJpZ2dlciB3aGVyZSB0Z25hbWUgaW4gKCdzb21lX3RyaWdnZXInLCAndW5yZWxh dGVkJywgJ3RyaWdnZXJfbmFtZScpCitvcmRlciBieSB0Z25hbWUsIHRncmVsaWQ6OnJlZ2NsYXNz Ojp0ZXh0OworIHRncmVsaWQgfCAgICB0Z25hbWUgICAgfCBwYXJlbnRfdGduYW1lIAorLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIGNobyAgICAgfCBzb21lX3RyaWdn ZXIgfCBzb21lX3RyaWdnZXIKKyBtaWRkbGUgIHwgc29tZV90cmlnZ2VyIHwgYgorIGluaCAgICAg fCB0cmlnZ2VyX25hbWUgfCAKKygzIHJvd3MpCisKKy0tIGNsZWFudXAKK2Ryb3AgdGFibGUgZ3Jh bmRwYXJlbnQ7Citkcm9wIHRhYmxlIGNoaTsKK2Ryb3AgdGFibGUgaW5oOworZHJvcCBmdW5jdGlv biBmKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90cmlnZ2Vycy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC90cmlnZ2Vycy5zcWwKaW5kZXggYjUwZjUwMDA0NS4uMzIxOGI5 YjM2YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbApAQCAtMjUzNSwzICsyNTM1LDEwOCBA QCBmb3IgZWFjaCBzdGF0ZW1lbnQgZXhlY3V0ZSBmdW5jdGlvbiB0cmlnZ2VyX2Z1bmN0aW9uMSgp OwogZGVsZXRlIGZyb20gY29udnNsb3RfdGVzdF9wYXJlbnQ7CiAKIGRyb3AgdGFibGUgY29udnNs b3RfdGVzdF9jaGlsZCwgY29udnNsb3RfdGVzdF9wYXJlbnQ7CisKKy0tCistLSBidWlsZCBhIG5l c3RlZCBwYXJ0aXRpb24gc2NoZW1lIGZvciB0ZXN0aW5nCistLQorCitjcmVhdGUgdGFibGUgZ3Jh bmRwYXJlbnQgKGlkIGludCwKK3ByaW1hcnkga2V5IChpZCkpCitwYXJ0aXRpb24gYnkgcmFuZ2Ug KGlkKTsKKworY3JlYXRlIHRhYmxlIG1pZGRsZQorcGFydGl0aW9uIG9mIGdyYW5kcGFyZW50Citm b3IgdmFsdWVzIGZyb20gKDEpCit0byAoMTApCitwYXJ0aXRpb24gYnkgcmFuZ2UgKGlkKTsKKwor Y3JlYXRlIHRhYmxlIGNoaQorcGFydGl0aW9uIG9mIG1pZGRsZQorZm9yIHZhbHVlcyBmcm9tICgx KQordG8gKDUpOworCitjcmVhdGUgdGFibGUgY2hvCitwYXJ0aXRpb24gb2YgbWlkZGxlCitmb3Ig dmFsdWVzIGZyb20gKDYpCit0byAoOCk7CisKK2NyZWF0ZSBmdW5jdGlvbiBmICgpCityZXR1cm5z IHRyaWdnZXIgYXMgCiskJAorYmVnaW4KK3JldHVybiBuZXc7CitlbmQ7CiskJAorbGFuZ3VhZ2Ug cGxwZ3NxbDsKKworY3JlYXRlIHRyaWdnZXIgYQorYWZ0ZXIgaW5zZXJ0IG9uIGdyYW5kcGFyZW50 Citmb3IgZWFjaCByb3cKK2V4ZWN1dGUgcHJvY2VkdXJlIGYoKTsKKworc2VsZWN0IHRncmVsaWQ6 OnJlZ2NsYXNzLCB0Z25hbWUsIChzZWxlY3QgdGduYW1lIGZyb20gcGdfdHJpZ2dlciB0ciB3aGVy ZSB0ci5vaWQgPSBwZ190cmlnZ2VyLnRncGFyZW50aWQpIHBhcmVudF90Z25hbWUKK2Zyb20gcGdf dHJpZ2dlciB3aGVyZSB0Z25hbWUgaW4gKCdhJykKK29yZGVyIGJ5IHRnbmFtZSwgdGdyZWxpZDo6 cmVnY2xhc3M6OnRleHQ7CisKK2FsdGVyIHRyaWdnZXIgYSBvbiBncmFuZHBhcmVudCByZW5hbWUg dG8gYjsKKworc2VsZWN0IHRncmVsaWQ6OnJlZ2NsYXNzLCB0Z25hbWUsIChzZWxlY3QgdGduYW1l IGZyb20gcGdfdHJpZ2dlciB0ciB3aGVyZSB0ci5vaWQgPSBwZ190cmlnZ2VyLnRncGFyZW50aWQp IHBhcmVudF90Z25hbWUKK2Zyb20gcGdfdHJpZ2dlciB3aGVyZSB0Z25hbWUgaW4gKCdhJywgJ2In KQorb3JkZXIgYnkgdGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4dDsKKworYWx0ZXIgdHJp Z2dlciBiIG9uIG9ubHkgbWlkZGxlIHJlbmFtZSB0byBzb21ldGhpbmc7CisKK3NlbGVjdCB0Z3Jl bGlkOjpyZWdjbGFzcywgdGduYW1lLCAoc2VsZWN0IHRnbmFtZSBmcm9tIHBnX3RyaWdnZXIgdHIg d2hlcmUgdHIub2lkID0gcGdfdHJpZ2dlci50Z3BhcmVudGlkKSBwYXJlbnRfdGduYW1lCitmcm9t IHBnX3RyaWdnZXIgd2hlcmUgdGduYW1lIGluICgnc29tZXRoaW5nJywgJ2InKQorb3JkZXIgYnkg dGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4dDsKKworYWx0ZXIgdHJpZ2dlciBzb21ldGhp bmcgb24gbWlkZGxlIHJlbmFtZSB0byBhX3RyaWdnZXI7CisKK3NlbGVjdCB0Z3JlbGlkOjpyZWdj bGFzcywgdGduYW1lLCAoc2VsZWN0IHRnbmFtZSBmcm9tIHBnX3RyaWdnZXIgdHIgd2hlcmUgdHIu b2lkID0gcGdfdHJpZ2dlci50Z3BhcmVudGlkKSBwYXJlbnRfdGduYW1lCitmcm9tIHBnX3RyaWdn ZXIgd2hlcmUgdGduYW1lIGluICgnYV90cmlnZ2VyJywgJ2InLCAnc29tZXRoaW5nJykKK29yZGVy IGJ5IHRnbmFtZSwgdGdyZWxpZDo6cmVnY2xhc3M6OnRleHQ7CisKKy0tCistLSBDaGVjayB0aGF0 IGNsYXNzaWNhbCBpbmhlcml0YW5jZSBpcyB1bnBoYXNlZCBieSByZW5hbWluZyB0cmlnZ2Vycwor LS0KKworY3JlYXRlIHRhYmxlIGluaCAoaWQgaW50LAorcHJpbWFyeSBrZXkgKGlkKSk7CisKK3Nl bGVjdCB0Z3JlbGlkOjpyZWdjbGFzcywgdGduYW1lLCAoc2VsZWN0IHRnbmFtZSBmcm9tIHBnX3Ry aWdnZXIgdHIgd2hlcmUgdHIub2lkID0gcGdfdHJpZ2dlci50Z3BhcmVudGlkKSBwYXJlbnRfdGdu YW1lCitmcm9tIHBnX3RyaWdnZXIgd2hlcmUgdGdyZWxpZCA9ICdjaGknOjpyZWdjbGFzcworb3Jk ZXIgYnkgdGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4dDsKKworYWx0ZXIgdGFibGUgbWlk ZGxlIGRldGFjaCBwYXJ0aXRpb24gY2hpOworCithbHRlciB0cmlnZ2VyIGFfdHJpZ2dlciBvbiBt aWRkbGUgcmVuYW1lIHRvIHNvbWVfdHJpZ2dlcjsKKworc2VsZWN0IHRncmVsaWQ6OnJlZ2NsYXNz LCB0Z25hbWUsIChzZWxlY3QgdGduYW1lIGZyb20gcGdfdHJpZ2dlciB0ciB3aGVyZSB0ci5vaWQg PSBwZ190cmlnZ2VyLnRncGFyZW50aWQpIHBhcmVudF90Z25hbWUKK2Zyb20gcGdfdHJpZ2dlciB3 aGVyZSB0Z3JlbGlkID0gJ2NoaSc6OnJlZ2NsYXNzCitvcmRlciBieSB0Z25hbWUsIHRncmVsaWQ6 OnJlZ2NsYXNzOjp0ZXh0OworCithbHRlciB0YWJsZSBjaGkgaW5oZXJpdCBpbmg7CisKK3NlbGVj dCB0Z3JlbGlkOjpyZWdjbGFzcywgdGduYW1lLCAoc2VsZWN0IHRnbmFtZSBmcm9tIHBnX3RyaWdn ZXIgdHIgd2hlcmUgdHIub2lkID0gcGdfdHJpZ2dlci50Z3BhcmVudGlkKSBwYXJlbnRfdGduYW1l Citmcm9tIHBnX3RyaWdnZXIgd2hlcmUgdGdyZWxpZCA9ICdjaGknOjpyZWdjbGFzcworb3JkZXIg YnkgdGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4dDsKKworY3JlYXRlIHRyaWdnZXIgdW5y ZWxhdGVkCitiZWZvcmUgdXBkYXRlIG9mIGlkIG9uIGluaAorZm9yIGVhY2ggcm93CitleGVjdXRl IHByb2NlZHVyZSBmKCk7CisKK2FsdGVyIHRyaWdnZXIgdW5yZWxhdGVkIG9uIGluaCByZW5hbWUg dG8gc29tZV90cmlnZ2VyOworCithbHRlciB0cmlnZ2VyIHNvbWVfdHJpZ2dlciBvbiBpbmggcmVu YW1lIHRvIHRyaWdnZXJfbmFtZTsKKworc2VsZWN0IHRncmVsaWQ6OnJlZ2NsYXNzLCB0Z25hbWUs IChzZWxlY3QgdGduYW1lIGZyb20gcGdfdHJpZ2dlciB0ciB3aGVyZSB0ci5vaWQgPSBwZ190cmln Z2VyLnRncGFyZW50aWQpIHBhcmVudF90Z25hbWUKK2Zyb20gcGdfdHJpZ2dlciB3aGVyZSB0Z25h bWUgaW4gKCdzb21lX3RyaWdnZXInLCAndW5yZWxhdGVkJywgJ3RyaWdnZXJfbmFtZScpCitvcmRl ciBieSB0Z25hbWUsIHRncmVsaWQ6OnJlZ2NsYXNzOjp0ZXh0OworCistLSBjbGVhbnVwCisKK2Ry b3AgdGFibGUgZ3JhbmRwYXJlbnQ7Citkcm9wIHRhYmxlIGNoaTsKK2Ryb3AgdGFibGUgaW5oOwor ZHJvcCBmdW5jdGlvbiBmKCk7Cg== --_004_1ab8e4dbd6b0450183e00b95322439b4indexde_--