Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFebg-005P6K-2C for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 20:55:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wFebg-00FL1Z-02 for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 20:55:36 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFQTd-00BrTO-14 for pgsql-hackers@lists.postgresql.org; Wed, 22 Apr 2026 05:50:21 +0000 Received: from email.dnscdc.tech ([194.226.250.15]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wFQTa-00000002QFQ-3MEg for pgsql-hackers@lists.postgresql.org; Wed, 22 Apr 2026 05:50:21 +0000 Received: with id 8E5C728104D for ; Wed, 22 Apr 2026 12:50:15 +0700 (+07) Received: with id E9A48280035 for ; Wed, 22 Apr 2026 12:50:14 +0700 (+07) From: Staroverov Ilja To: "pgsql-hackers@lists.postgresql.org" Subject: [RFC][PATCH] Order qual clauses by combined cost and selectivity Thread-Topic: [RFC][PATCH] Order qual clauses by combined cost and selectivity Thread-Index: AdzSGhDva8mq1i4ySe2IKlbY6WOL3Q== Date: Wed, 22 Apr 2026 05:50:11 +0000 Message-ID: <41b98cf827294e60b726aedcca06f9d5@localhost.localdomain> Accept-Language: en-US Content-Language: ru-RU X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Content-Type: multipart/mixed; boundary="_003_41b98cf827294e60b726aedcca06f9d5ftdataru_" MIME-Version: 1.0 X-KLMS-Rule-ID: 1 X-KLMS-Message-Action: clean X-KLMS-AntiSpam-Lua-Profiles: 202520 [Apr 22 2026] X-KLMS-AntiSpam-Version: 6.1.1.22 X-KLMS-AntiSpam-Envelope-From: i.staroverov@ftdata.ru X-KLMS-AntiSpam-Rate: 0 X-KLMS-AntiSpam-Status: not_detected X-KLMS-AntiSpam-Method: none X-KLMS-AntiSpam-Auth: dkim=none X-MS-Exchange-Organization-SCL: -1 X-KLMS-AntiSpam-Interceptor-Info: scan successful X-KLMS-AntiPhishing: Clean, bases: 2026/04/22 05:13:00 X-KLMS-AntiVirus: Kaspersky Security for Linux Mail Server, version 8.0.3.30, bases: 2026/04/22 03:18:00 #28427585 X-KLMS-AntiVirus-Status: Clean, skipped List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_003_41b98cf827294e60b726aedcca06f9d5ftdataru_ Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable Hi, I'd like to propose a change to qual clause ordering in the executor. Currently, order_qual_clauses() ranks predicates mainly by estimated per-tuple cost. For conjunctive predicates under short-circuit evaluation, this can be suboptimal: a slightly more expensive clause that rejects many rows may be better to evaluate earlier, because it can avoid many later evaluations. The attached patch changes the ranking heuristic to use cost / (1 - selectivity) where selectivity is the fraction of rows that pass the clause. For ANDed predicates evaluated left-to-right with short-circuit semantics, this is a natural heuristic: (1 - selectivity) is the probability that a clause rejects a row, so lower cost per rejected row should generally be preferred. The patch preserves the existing constraints: - security_level ordering is still honored; - leakproof-related behavior is unchanged; - original clause order is preserved when ranks are equal. It also adds a regression test covering: 1. reordering of equal-cost clauses by selectivity, 2. a case where better selectivity outweighs slightly higher cost, 3. a case where high cost still dominates despite better selectivity, 4. preservation of security_level ordering with row-level security, 5. stability when computed ranks are identical. I also updated regression outputs whose EXPLAIN Filter or Join Filter clause order changed due to the new ordering. I also attached a small synthetic SQL benchmark script that I used to illustrate one case where the new ordering reduces executor work for user-defined operators. I'm including it only as an illustration, not as a claim of universal improvement. I searched the archives but could not find prior discussion of this specific approach. Has incorporating selectivity into qual ordering been considered before? If so, I would appreciate pointers to any earlier discussion or reasons it was not pursued. Patch attached. Thanks, Ilya Staroverov --_003_41b98cf827294e60b726aedcca06f9d5ftdataru_ Content-Type: application/octet-stream; name="0001-Order-qual-clauses-by-combined-cost-and-selectivity.patch" Content-Description: 0001-Order-qual-clauses-by-combined-cost-and-selectivity.patch Content-Disposition: attachment; filename="0001-Order-qual-clauses-by-combined-cost-and-selectivity.patch"; size=50747; creation-date="Wed, 22 Apr 2026 05:38:30 GMT"; modification-date="Wed, 22 Apr 2026 05:16:32 GMT" Content-Transfer-Encoding: base64 RnJvbSA1NDJlYzU2NWQ4ZjA0NDlkNWY4NTNhZjU4ZjM0ODg2MTY2ZWJmYjAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFyb3Zlcm92IElseWEgPGkuc3Rhcm92ZXJvdkBmdGRhdGEu cnU+CkRhdGU6IFdlZCwgMjIgQXByIDIwMjYgMDg6MTM6NDggKzAzMDAKU3ViamVjdDogW1BBVENI XSBPcmRlciBxdWFsIGNsYXVzZXMgYnkgY29tYmluZWQgY29zdCBhbmQgc2VsZWN0aXZpdHkKCm9y ZGVyX3F1YWxfY2xhdXNlcygpIGN1cnJlbnRseSByYW5rcyBwcmVkaWNhdGVzIGJ5IGVzdGltYXRl ZCBwZXItdHVwbGUKY29zdCBhbG9uZS4gIEZvciBjb25qdW5jdGl2ZSAoQU5EKSBwcmVkaWNhdGVz IGV2YWx1YXRlZCB3aXRoCnNob3J0LWNpcmN1aXQgbG9naWMsIHRoaXMgY2FuIGJlIHN1Ym9wdGlt YWw6IGEgc2xpZ2h0bHkgbW9yZSBleHBlbnNpdmUKY2xhdXNlIHRoYXQgcmVqZWN0cyBtb3N0IHJv d3Mgc2hvdWxkIGJlIGV2YWx1YXRlZCBiZWZvcmUgYSBjaGVhcCBjbGF1c2UKdGhhdCBwYXNzZXMg bW9zdCBvZiB0aGVtLgoKUmFuayBjbGF1c2VzIGJ5ICBjb3N0IC8gKDEgLSBzZWxlY3Rpdml0eSkg IGluc3RlYWQsIHdoZXJlIHNlbGVjdGl2aXR5IGlzCnRoZSBmcmFjdGlvbiBvZiByb3dzIHRoYXQg c2F0aXNmeSB0aGUgY2xhdXNlLiAgVGhpcyBpcyBhIG5hdHVyYWwKaGV1cmlzdGljIHRoYXQgbWlu aW1pemVzIGV4cGVjdGVkIGV2YWx1YXRpb24gd29yayB3aGVuIHByZWRpY2F0ZXMgYXJlCmluZGVw ZW5kZW50IGFuZCBldmFsdWF0ZWQgbGVmdC10by1yaWdodC4KClNlY3VyaXR5LWxldmVsIGNvbnN0 cmFpbnRzIGFyZSBzdGlsbCBob25vcmVkOiBjbGF1c2VzIHdpdGggYSBsb3dlcgpzZWN1cml0eV9s ZXZlbCBhcmUgbmV2ZXIgbW92ZWQgYWZ0ZXIgY2xhdXNlcyB3aXRoIGEgaGlnaGVyIG9uZSwgZXhj ZXB0CndoZW4gdGhlIGxhdHRlciBhcmUgbGVha3Byb29mLiAgV2hlbiBjb21wdXRlZCByYW5rcyBh cmUgZXF1YWwsIHRoZQpvcmlnaW5hbCBjbGF1c2Ugb3JkZXIgaXMgcHJlc2VydmVkLgoKQWRkIGEg ZGVkaWNhdGVkIHJlZ3Jlc3Npb24gdGVzdCB0aGF0IGV4ZXJjaXNlcyB0aGUgbmV3IG9yZGVyaW5n OgplcXVhbC1jb3N0IHJlb3JkZXJpbmcgYnkgc2VsZWN0aXZpdHksIGNvc3QtdmVyc3VzLXNlbGVj dGl2aXR5IHRyYWRlLW9mZiwKcHJlc2VydmF0aW9uIG9mIHNlY3VyaXR5X2xldmVsIG9yZGVyaW5n LCBhbmQgc3RhYmlsaXR5IGZvciBlcXVhbCByYW5rcy4KVXBkYXRlIGV4aXN0aW5nIGV4cGVjdGVk IG91dHB1dHMgd2hvc2UgRVhQTEFJTiBGaWx0ZXIgbGluZXMgY2hhbmdlZApkdWUgdG8gdGhlIG5l dyBvcmRlcmluZy4KLS0tCiAuLi4vcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvam9pbl9vcmRlci5v dXQgICAgfCAgIDIgKy0KIGNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvc2Nhbi5vdXQg ICAgICB8ICAgMiArLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0 ICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgICAg ICAgfCAgODAgKysrKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dCAg ICAgICAgIHwgIDE2ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4u b3V0ICB8ICA0OCArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVu ZS5vdXQgfCAgNjYgKysrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZWRpY2F0ZV9v cmRlci5vdXQgfCAyMjIgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jvd3NlY3VyaXR5Lm91dCAgICAgfCAgIDggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2VsZWN0Lm91dCAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZWxlY3RfZGlzdGluY3Qub3V0IHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3VwZGF0YWJsZV92aWV3cy5vdXQgfCAgIDggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJlZGlj YXRlX29yZGVyLnNxbCAgICAgIHwgMTkzICsrKysrKysrKysrKysrKwogMTUgZmlsZXMgY2hhbmdl ZCwgNTYzIGluc2VydGlvbnMoKyksIDk4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlZGljYXRlX29yZGVyLm91dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZWRpY2F0ZV9vcmRlci5zcWwKCmRpZmYg LS1naXQgYS9jb250cmliL3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL2pvaW5fb3JkZXIub3V0IGIv Y29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9qb2luX29yZGVyLm91dAppbmRleCBhNWE5 NzI4ZTNmZC4uMTBhZjNjY2Y2OTAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2Uv ZXhwZWN0ZWQvam9pbl9vcmRlci5vdXQKKysrIGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBl Y3RlZC9qb2luX29yZGVyLm91dApAQCAtMjkyLDcgKzI5Miw3IEBAIFNFTEVDVCAqIEZST00gam9f ZmFjdCBmCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wCiAgICBEaXNhYmxlZDogdHJ1ZQotICAgSm9pbiBG aWx0ZXI6ICgoZDEuaWQgPSBmLmRpbTFfaWQpIEFORCAoZDIuaWQgPSBmLmRpbTJfaWQpKQorICAg Sm9pbiBGaWx0ZXI6ICgoZDIuaWQgPSBmLmRpbTJfaWQpIEFORCAoZDEuaWQgPSBmLmRpbTFfaWQp KQogICAgLT4gIE5lc3RlZCBMb29wCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gam9fZGltMSBk MQogICAgICAgICAgICAgICAgRmlsdGVyOiAodmFsMSA9IDEpCmRpZmYgLS1naXQgYS9jb250cmli L3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL3NjYW4ub3V0IGIvY29udHJpYi9wZ19wbGFuX2Fkdmlj ZS9leHBlY3RlZC9zY2FuLm91dAppbmRleCBmNDAzNmU0Y2JkZC4uNjI2MzlhNGY5OTMgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvc2Nhbi5vdXQKKysrIGIvY29u dHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9zY2FuLm91dApAQCAtNDI2LDcgKzQyNiw3IEBA IEVYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpIFNFTEVDVCAqIEZST00gc2Nhbl90YWJs ZQogICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIHNjYW5fdGFibGUKLSAgIEZpbHRlcjogKChjdGlk ID4gJygxLDEpJzo6dGlkKSBBTkQgKGN0aWQgPCAnKDIsMSknOjp0aWQpKQorICAgRmlsdGVyOiAo KGN0aWQgPCAnKDIsMSknOjp0aWQpIEFORCAoY3RpZCA+ICcoMSwxKSc6OnRpZCkpCiAgU3VwcGxp ZWQgUGxhbiBBZHZpY2U6CiAgICBTRVFfU0NBTihzY2FuX3RhYmxlKSAvKiBtYXRjaGVkICovCiAg R2VuZXJhdGVkIFBsYW4gQWR2aWNlOgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcv ZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVk L3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggMTBlODdhY2FiZWYuLmY5NmRiYTk4NmI1IDEwMDY0NAot LS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTM4MCw3 ICszODAsNyBAQCBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZnQx IHQxIFdIRVJFIHQxLmMxID0gMTAxIEFORCB0MS5jNiA9CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgRm9y ZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDEgdDEKICAgIE91dHB1dDogYzEsIGMyLCBjMywgYzQsIGM1 LCBjNiwgYzcsIGM4Ci0gICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1 LCBjNiwgYzcsIGM4IEZST00gIlMgMSIuIlQgMSIgV0hFUkUgKChjNyA+PSAnMScpKSBBTkQgKCgi QyAxIiA9IDEwMSkpIEFORCAoKGM2ID0gJzEnKSkKKyAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAx IiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzggRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJD IDEiID0gMTAxKSkgQU5EICgoYzYgPSAnMScpKSBBTkQgKChjNyA+PSAnMScpKQogKDMgcm93cykK IAogU0VMRUNUICogRlJPTSBmdDEgdDEgV0hFUkUgdDEuYzEgPSAxMDEgQU5EIHQxLmM2ID0gJzEn IEFORCB0MS5jNyA+PSAnMSc7CkBAIC0yNDg5LDcgKzI0ODksNyBAQCBTRUxFQ1QgZnQ0LmMxLCBx LiogRlJPTSBmdDQgTEVGVCBKT0lOIChTRUxFQ1QgMTMsIGZ0MS5jMSwgZnQyLmMxIEZST00gZnQx IFJJR0hUCiAgICBKb2luIEZpbHRlcjogKGZ0NC5jMSA9IGZ0MS5jMSkKICAgIC0+ICBGb3JlaWdu IFNjYW4gb24gcHVibGljLmZ0NAogICAgICAgICAgT3V0cHV0OiBmdDQuYzEsIGZ0NC5jMiwgZnQ0 LmMzCi0gICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYzEgRlJPTSAiUyAxIi4iVCAzIiBXSEVS RSAoKGMxID49IDEwKSkgQU5EICgoYzEgPD0gMTUpKQorICAgICAgICAgUmVtb3RlIFNRTDogU0VM RUNUIGMxIEZST00gIlMgMSIuIlQgMyIgV0hFUkUgKChjMSA8PSAxNSkpIEFORCAoKGMxID49IDEw KSkKICAgIC0+ICBNYXRlcmlhbGl6ZQogICAgICAgICAgT3V0cHV0OiBmdDEuYzEsIGZ0Mi5jMSwg KDEzKQogICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgpAQCAtMzYyMiw3ICszNjIyLDcgQEAgc2Vs ZWN0IGFycmF5X2FnZyhjMSBvcmRlciBieSBjMSB1c2luZyBvcGVyYXRvcihwdWJsaWMuPF4pKSBm cm9tIGZ0MiB3aGVyZSBjMiA9IDYKICAgICAgICAgIFNvcnQgS2V5OiBmdDIuYzEgVVNJTkcgPF4K ICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MgogICAgICAgICAgICAgICAg T3V0cHV0OiBjMSwgYzIKLSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwg YzIgRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiIDwgMTAwKSkgQU5EICgoYzIgPSA2KSkK KyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIgRlJPTSAiUyAxIi4i VCAxIiBXSEVSRSAoKGMyID0gNikpIEFORCAoKCJDIDEiIDwgMTAwKSkKICg4IHJvd3MpCiAKIC0t IFRoaXMgc2hvdWxkIG5vdCBiZSBwdXNoZWQgZWl0aGVyLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vY3JlYXRlcGxhbi5jCmluZGV4IGRlNmExODNkYTc5Li41NDg0ZmNmYWE0OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMTYsNiArMTYsOCBAQAogICovCiAj aW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgPGZsb2F0Lmg+CisKICNpbmNsdWRlICJh Y2Nlc3Mvc3lzYXR0ci5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jbGFzcy5oIgpAQCAtNTIzOSwxNSArNTI0MSwxNCBAQCBnZXRfc3dpdGNoZWRf Y2xhdXNlcyhMaXN0ICpjbGF1c2VzLCBSZWxpZHMgb3V0ZXJyZWxpZHMpCiAgKiBkaWZmZXJlbnQg c2VjdXJpdHkgbGV2ZWxzIGluIHRoZSBsaXN0LiAgUXVhbHMgb2YgbG93ZXIgc2VjdXJpdHlfbGV2 ZWwKICAqIG11c3QgZ28gYmVmb3JlIHF1YWxzIG9mIGhpZ2hlciBzZWN1cml0eV9sZXZlbCwgZXhj ZXB0IHRoYXQgd2UgY2FuIGdyYW50CiAgKiBleGNlcHRpb25zIHRvIG1vdmUgdXAgcXVhbHMgdGhh dCBhcmUgbGVha3Byb29mLiAgV2hlbiBzZWN1cml0eSBsZXZlbAotICogZG9lc24ndCBmb3JjZSB0 aGUgZGVjaXNpb24sIHdlIHByZWZlciB0byBvcmRlciBjbGF1c2VzIGJ5IGVzdGltYXRlZAotICog ZXhlY3V0aW9uIGNvc3QsIGNoZWFwZXN0IGZpcnN0LgorICogZG9lc24ndCBmb3JjZSB0aGUgZGVj aXNpb24sIHdlIG9yZGVyIGNsYXVzZXMgYnkgYSBjb21iaW5lZAorICogY29zdC9zZWxlY3Rpdml0 eSByYW5rIHNvIHRoYXQgY2hlYXAgcHJlZGljYXRlcyB0aGF0IGVsaW1pbmF0ZSBtYW55IHJvd3MK KyAqIGFyZSBldmFsdWF0ZWQgZmlyc3QuCiAgKgotICogSWRlYWxseSB0aGUgb3JkZXIgc2hvdWxk IGJlIGRyaXZlbiBieSBhIGNvbWJpbmF0aW9uIG9mIGV4ZWN1dGlvbiBjb3N0IGFuZAotICogc2Vs ZWN0aXZpdHksIGJ1dCBpdCdzIG5vdCBpbW1lZGlhdGVseSBjbGVhciBob3cgdG8gYWNjb3VudCBm b3IgYm90aCwKLSAqIGFuZCBnaXZlbiB0aGUgdW5jZXJ0YWludHkgb2YgdGhlIGVzdGltYXRlcyB0 aGUgcmVsaWFiaWxpdHkgb2YgdGhlIGRlY2lzaW9ucwotICogd291bGQgYmUgZG91YnRmdWwgYW55 d2F5LiAgU28gd2UganVzdCBvcmRlciBieSBzZWN1cml0eSBsZXZlbCB0aGVuCi0gKiBlc3RpbWF0 ZWQgcGVyLXR1cGxlIGNvc3QsIGJlaW5nIGNhcmVmdWwgbm90IHRvIGNoYW5nZSB0aGUgb3JkZXIg d2hlbgotICogKGFzIGlzIG9mdGVuIHRoZSBjYXNlKSB0aGUgZXN0aW1hdGVzIGFyZSBpZGVudGlj YWwuCisgKiBGb3IgY29uanVuY3RpdmUgcHJlZGljYXRlcywgd2UgdXNlIHRoZSByYW5rIGNvc3Qg LyAoMSAtIHNlbGVjdGl2aXR5KSwKKyAqIHdoZXJlIHNlbGVjdGl2aXR5IGlzIHRoZSBmcmFjdGlv biBvZiByb3dzIHRoYXQgcGFzcyB0aGUgY2xhdXNlLgorICogQ2xhdXNlcyB3aXRoIGEgbG93ZXIg cmFuayBhcmUgY2hlY2tlZCBmaXJzdC4gIFdlIGFyZSBjYXJlZnVsIG5vdCB0bworICogY2hhbmdl IHRoZSBvcmRlciB3aGVuIHRoZSBjb21wdXRlZCByYW5rcyBhcmUgaWRlbnRpY2FsLgogICoKICAq IEFsdGhvdWdoIHRoaXMgd2lsbCB3b3JrIG9uIGVpdGhlciBiYXJlIGNsYXVzZXMgb3IgUmVzdHJp Y3RJbmZvcywgaXQncwogICogbXVjaCBmYXN0ZXIgdG8gYXBwbHkgaXQgdG8gUmVzdHJpY3RJbmZv cywgc2luY2UgaXQgY2FuIHJlLXVzZSBjb3N0CkBAIC01MjU5LDggKzUyNjAsMTAgQEAgZ2V0X3N3 aXRjaGVkX2NsYXVzZXMoTGlzdCAqY2xhdXNlcywgUmVsaWRzIG91dGVycmVsaWRzKQogICoKICAq IE5vdGU6IHNvbWUgY2FsbGVycyBwYXNzIGxpc3RzIHRoYXQgY29udGFpbiBlbnRyaWVzIHRoYXQg d2lsbCBsYXRlciBiZQogICogcmVtb3ZlZDsgdGhpcyBpcyB0aGUgZWFzaWVzdCB3YXkgdG8gbGV0 IHRoaXMgcm91dGluZSBzZWUgUmVzdHJpY3RJbmZvcwotICogaW5zdGVhZCBvZiBiYXJlIGNsYXVz ZXMuICBUaGlzIGlzIGFub3RoZXIgcmVhc29uIHdoeSB0cnlpbmcgdG8gY29uc2lkZXIKLSAqIHNl bGVjdGl2aXR5IGluIHRoZSBvcmRlcmluZyB3b3VsZCBsaWtlbHkgZG8gdGhlIHdyb25nIHRoaW5n LgorICogaW5zdGVhZCBvZiBiYXJlIGNsYXVzZXMuICBJbiBzdWNoIGNhc2VzLCBzZWxlY3Rpdml0 eSBlc3RpbWF0ZXMgZm9yCisgKiBjbGF1c2VzIHRoYXQgYXJlIGxhdGVyIHJlbW92ZWQgY2FuIHN0 aWxsIGFmZmVjdCB0aGUgdGVtcG9yYXJ5IG9yZGVyaW5nLAorICogYnV0IHRoYXQgaXMgYWNjZXB0 YWJsZSBiZWNhdXNlIHRoaXMgcm91dGluZSBvbmx5IGRldGVybWluZXMgZXhlY3V0b3IKKyAqIHF1 YWwgZXZhbHVhdGlvbiBvcmRlciBhZnRlciBwbGFubmluZyBkZWNpc2lvbnMgaGF2ZSBhbHJlYWR5 IGJlZW4gbWFkZS4KICAqLwogc3RhdGljIExpc3QgKgogb3JkZXJfcXVhbF9jbGF1c2VzKFBsYW5u ZXJJbmZvICpyb290LCBMaXN0ICpjbGF1c2VzKQpAQCAtNTI2OSw2ICs1MjcyLDggQEAgb3JkZXJf cXVhbF9jbGF1c2VzKFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICpjbGF1c2VzKQogCXsKIAkJTm9k ZQkgICAqY2xhdXNlOwogCQlDb3N0CQljb3N0OworCQlTZWxlY3Rpdml0eQlzZWxlY3Rpdml0eTsK KwkJZG91YmxlCQlyYW5rOwogCQlJbmRleAkJc2VjdXJpdHlfbGV2ZWw7CiAJfSBRdWFsSXRlbTsK IAlpbnQJCQluaXRlbXMgPSBsaXN0X2xlbmd0aChjbGF1c2VzKTsKQEAgLTUyODIsOCArNTI4Nyw5 IEBAIG9yZGVyX3F1YWxfY2xhdXNlcyhQbGFubmVySW5mbyAqcm9vdCwgTGlzdCAqY2xhdXNlcykK IAkJcmV0dXJuIGNsYXVzZXM7CiAKIAkvKgotCSAqIENvbGxlY3QgdGhlIGl0ZW1zIGFuZCBjb3N0 cyBpbnRvIGFuIGFycmF5LiAgVGhpcyBpcyB0byBhdm9pZCByZXBlYXRlZAotCSAqIGNvc3RfcXVh bF9ldmFsIHdvcmsgaWYgdGhlIGlucHV0cyBhcmVuJ3QgUmVzdHJpY3RJbmZvcy4KKwkgKiBDb2xs ZWN0IHRoZSBpdGVtcywgY29zdHMsIGFuZCBzZWxlY3Rpdml0aWVzIGludG8gYW4gYXJyYXkuICBU aGlzIGlzCisJICogdG8gYXZvaWQgcmVwZWF0ZWQgY29zdF9xdWFsX2V2YWwgd29yayBpZiB0aGUg aW5wdXRzIGFyZW4ndAorCSAqIFJlc3RyaWN0SW5mb3MuCiAJICovCiAJaXRlbXMgPSAoUXVhbEl0 ZW0gKikgcGFsbG9jKG5pdGVtcyAqIHNpemVvZihRdWFsSXRlbSkpOwogCWkgPSAwOwpAQCAtNTI5 NSw2ICs1MzAxLDM4IEBAIG9yZGVyX3F1YWxfY2xhdXNlcyhQbGFubmVySW5mbyAqcm9vdCwgTGlz dCAqY2xhdXNlcykKIAkJY29zdF9xdWFsX2V2YWxfbm9kZSgmcWNvc3QsIGNsYXVzZSwgcm9vdCk7 CiAJCWl0ZW1zW2ldLmNsYXVzZSA9IGNsYXVzZTsKIAkJaXRlbXNbaV0uY29zdCA9IHFjb3N0LnBl cl90dXBsZTsKKworCQkvKgorCQkgKiBDb21wdXRlIHNlbGVjdGl2aXR5IGZvciB0aGlzIGNsYXVz ZS4gIFNlbGVjdGl2aXR5IGlzIHRoZQorCQkgKiBmcmFjdGlvbiBvZiByb3dzIHRoYXQgcGFzcyB0 aGUgcHJlZGljYXRlIChsb3dlciA9IG1vcmUKKwkJICogc2VsZWN0aXZlID0gZWxpbWluYXRlcyBt b3JlIHJvd3MpLgorCQkgKi8KKwkJaXRlbXNbaV0uc2VsZWN0aXZpdHkgPSBjbGF1c2Vfc2VsZWN0 aXZpdHkocm9vdCwKKwkJCQkJCQkJCQkJCSAgY2xhdXNlLAorCQkJCQkJCQkJCQkJICAwLAorCQkJ CQkJCQkJCQkJICBKT0lOX0lOTkVSLAorCQkJCQkJCQkJCQkJICBOVUxMKTsKKworCQlpZiAoaXRl bXNbaV0uc2VsZWN0aXZpdHkgPCAwLjApCisJCQlpdGVtc1tpXS5zZWxlY3Rpdml0eSA9IDAuMDsK KwkJZWxzZSBpZiAoaXRlbXNbaV0uc2VsZWN0aXZpdHkgPiAxLjApCisJCQlpdGVtc1tpXS5zZWxl Y3Rpdml0eSA9IDEuMDsKKworCQkvKgorCQkgKiBGb3IgY29uanVuY3RpdmUgcHJlZGljYXRlcywg cmFuayBpcyBjb3N0IC8gKDEgLSBzZWxlY3Rpdml0eSksCisJCSAqIHdoZXJlIHNlbGVjdGl2aXR5 IGlzIHRoZSBmcmFjdGlvbiBvZiByb3dzIHRoYXQgcGFzcy4gIExvd2VyCisJCSAqIHJhbmsgbWVh bnMgdGhhdCB0aGUgY2xhdXNlIGlzIGEgYmV0dGVyIGNhbmRpZGF0ZSB0bworCQkgKiBldmFsdWF0 ZSBlYXJsaWVyLgorCQkgKgorCQkgKiBJZiBzZWxlY3Rpdml0eSBpcyAxLjAsIHRoZSBjbGF1c2Ug ZWxpbWluYXRlcyBubyByb3dzLCBzbworCQkgKiBhc3NpZ24gdGhlIG1heGltdW0gcmFuayBhbmQg bW92ZSBpdCB0byB0aGUgZW5kIHdpdGhpbiB0aGUKKwkJICogc2FtZSBzZWN1cml0eSBsZXZlbC4K KwkJICovCisJCWlmIChpdGVtc1tpXS5zZWxlY3Rpdml0eSA8IDEuMCkKKwkJCWl0ZW1zW2ldLnJh bmsgPSBpdGVtc1tpXS5jb3N0IC8gKDEuMCAtIGl0ZW1zW2ldLnNlbGVjdGl2aXR5KTsKKwkJZWxz ZQorCQkJaXRlbXNbaV0ucmFuayA9IERCTF9NQVg7CisKIAkJaWYgKElzQShjbGF1c2UsIFJlc3Ry aWN0SW5mbykpCiAJCXsKIAkJCVJlc3RyaWN0SW5mbyAqcmluZm8gPSAoUmVzdHJpY3RJbmZvICop IGNsYXVzZTsKQEAgLTUzMzQsMTAgKzUzNzIsMjIgQEAgb3JkZXJfcXVhbF9jbGF1c2VzKFBsYW5u ZXJJbmZvICpyb290LCBMaXN0ICpjbGF1c2VzKQogCQl7CiAJCQlRdWFsSXRlbSAgICpvbGRpdGVt ID0gJml0ZW1zW2ogLSAxXTsKIAotCQkJaWYgKG5ld2l0ZW0uc2VjdXJpdHlfbGV2ZWwgPiBvbGRp dGVtLT5zZWN1cml0eV9sZXZlbCB8fAotCQkJCShuZXdpdGVtLnNlY3VyaXR5X2xldmVsID09IG9s ZGl0ZW0tPnNlY3VyaXR5X2xldmVsICYmCi0JCQkJIG5ld2l0ZW0uY29zdCA+PSBvbGRpdGVtLT5j b3N0KSkKKwkJCS8qCisJCQkgKiBGaXJzdCwgcmVzcGVjdCBzZWN1cml0eSBsZXZlbHM6IGhpZ2hl ciBzZWN1cml0eV9sZXZlbAorCQkJICogbXVzdCBjb21lIGFmdGVyIGxvd2VyLgorCQkJICovCisJ CQlpZiAobmV3aXRlbS5zZWN1cml0eV9sZXZlbCA+IG9sZGl0ZW0tPnNlY3VyaXR5X2xldmVsKQog CQkJCWJyZWFrOworCQkJaWYgKG5ld2l0ZW0uc2VjdXJpdHlfbGV2ZWwgPCBvbGRpdGVtLT5zZWN1 cml0eV9sZXZlbCkKKwkJCXsKKwkJCQlpdGVtc1tqXSA9ICpvbGRpdGVtOworCQkJCWNvbnRpbnVl OworCQkJfQorCisJCQkvKiBTYW1lIHNlY3VyaXR5IGxldmVsOiBvcmRlciBieSBjb3N0LWVmZmVj dGl2ZW5lc3MgcmFuay4gKi8KKwkJCWlmIChuZXdpdGVtLnJhbmsgPj0gb2xkaXRlbS0+cmFuaykK KwkJCQlicmVhazsKKwogCQkJaXRlbXNbal0gPSAqb2xkaXRlbTsKIAkJfQogCQlpdGVtc1tqXSA9 IG5ld2l0ZW07CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luaGVyaXQu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dAppbmRleCAzZDhlOGQ4 YWZkMi4uNTE2NDE1MjRjMDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv aW5oZXJpdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dApA QCAtMzE5NywxMSArMzE5NywxMSBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20g cmFuZ2VfbGlzdF9wYXJ0ZWQgd2hlcmUgYSBiZXR3ZWVuIDMgYW5kIDIzIGFuZAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBBcHBlbmQKICAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0XzFfMTBfYWIgcmFuZ2VfbGlzdF9wYXJ0 ZWRfMQotICAgICAgICAgRmlsdGVyOiAoKGEgPj0gMykgQU5EIChhIDw9IDIzKSBBTkQgKGIgPSAn YWInOjpicGNoYXIpKQorICAgICAgICAgRmlsdGVyOiAoKGIgPSAnYWInOjpicGNoYXIpIEFORCAo YSA+PSAzKSBBTkQgKGEgPD0gMjMpKQogICAgLT4gIFNlcSBTY2FuIG9uIHBhcnRfMTBfMjBfYWIg cmFuZ2VfbGlzdF9wYXJ0ZWRfMgotICAgICAgICAgRmlsdGVyOiAoKGEgPj0gMykgQU5EIChhIDw9 IDIzKSBBTkQgKGIgPSAnYWInOjpicGNoYXIpKQorICAgICAgICAgRmlsdGVyOiAoKGIgPSAnYWIn OjpicGNoYXIpIEFORCAoYSA+PSAzKSBBTkQgKGEgPD0gMjMpKQogICAgLT4gIFNlcSBTY2FuIG9u IHBhcnRfMjFfMzBfYWIgcmFuZ2VfbGlzdF9wYXJ0ZWRfMwotICAgICAgICAgRmlsdGVyOiAoKGEg Pj0gMykgQU5EIChhIDw9IDIzKSBBTkQgKGIgPSAnYWInOjpicGNoYXIpKQorICAgICAgICAgRmls dGVyOiAoKGIgPSAnYWInOjpicGNoYXIpIEFORCAoYSA+PSAzKSBBTkQgKGEgPD0gMjMpKQogKDcg cm93cykKIAogLyogU2hvdWxkIHNlbGVjdCBubyByb3dzIGJlY2F1c2UgcmFuZ2UgcGFydGl0aW9u IGtleSBjYW5ub3QgYmUgbnVsbCAqLwpAQCAtMzM0NSw3ICszMzQ1LDcgQEAgZXhwbGFpbiAoY29z dHMgb2ZmKSBzZWxlY3QgKiBmcm9tIG1jcnBhcnRlZCB3aGVyZSBhID0gMjAgYW5kIGFicyhiKSA9 IDEwIGFuZCBjID4KICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogIFNlcSBTY2FuIG9uIG1jcnBhcnRlZDQgbWNycGFydGVkCi0gICBGaWx0ZXI6ICgo YyA+IDEwKSBBTkQgKGEgPSAyMCkgQU5EIChhYnMoYikgPSAxMCkpCisgICBGaWx0ZXI6ICgoYSA9 IDIwKSBBTkQgKGMgPiAxMCkgQU5EIChhYnMoYikgPSAxMCkpCiAoMiByb3dzKQogCiBleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbWNycGFydGVkIHdoZXJlIGEgPSAyMCBhbmQgYyA+ IDIwOyAtLSBzY2FucyBtY3JwYXJ0ZWQzLCBtY3JwYXJ0ZTQsIG1jcnBhcnRlNSwgbWNycGFydGVk X2RlZgpAQCAtMzM1MywxMyArMzM1MywxMyBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAq IGZyb20gbWNycGFydGVkIHdoZXJlIGEgPSAyMCBhbmQgYyA+IDIwOyAtLSBzY2FucyBtYwogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAgICAt PiAgU2VxIFNjYW4gb24gbWNycGFydGVkMyBtY3JwYXJ0ZWRfMQotICAgICAgICAgRmlsdGVyOiAo KGMgPiAyMCkgQU5EIChhID0gMjApKQorICAgICAgICAgRmlsdGVyOiAoKGEgPSAyMCkgQU5EIChj ID4gMjApKQogICAgLT4gIFNlcSBTY2FuIG9uIG1jcnBhcnRlZDQgbWNycGFydGVkXzIKLSAgICAg ICAgIEZpbHRlcjogKChjID4gMjApIEFORCAoYSA9IDIwKSkKKyAgICAgICAgIEZpbHRlcjogKChh ID0gMjApIEFORCAoYyA+IDIwKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBtY3JwYXJ0ZWQ1IG1jcnBh cnRlZF8zCi0gICAgICAgICBGaWx0ZXI6ICgoYyA+IDIwKSBBTkQgKGEgPSAyMCkpCisgICAgICAg ICBGaWx0ZXI6ICgoYSA9IDIwKSBBTkQgKGMgPiAyMCkpCiAgICAtPiAgU2VxIFNjYW4gb24gbWNy cGFydGVkX2RlZiBtY3JwYXJ0ZWRfNAotICAgICAgICAgRmlsdGVyOiAoKGMgPiAyMCkgQU5EIChh ID0gMjApKQorICAgICAgICAgRmlsdGVyOiAoKGEgPSAyMCkgQU5EIChjID4gMjApKQogKDkgcm93 cykKIAogLS0gY2hlY2sgdGhhdCBwYXJ0aXRpb25lZCB0YWJsZSBBcHBlbmRzIGNvcGUgd2l0aCBi ZWluZyByZWZlcmVuY2VkIGluCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2pvaW4ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAppbmRleCA3OGJm MDIyZjdiNC4uMGRiMzc4YmU1NDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAt MjgwOSw3ICsyODA5LDcgQEAgc2VsZWN0IGNvdW50KCopIGZyb20KICBBZ2dyZWdhdGUKICAgIC0+ ICBNZXJnZSBMZWZ0IEpvaW4KICAgICAgICAgIE1lcmdlIENvbmQ6ICh4LnRob3VzYW5kID0geS51 bmlxdWUyKQotICAgICAgICAgSm9pbiBGaWx0ZXI6ICgoeC50d290aG91c2FuZCA9IHkuaHVuZHJl ZCkgQU5EICh4LmZpdmV0aG91cyA9IHkudW5pcXVlMikpCisgICAgICAgICBKb2luIEZpbHRlcjog KCh4LmZpdmV0aG91cyA9IHkudW5pcXVlMikgQU5EICh4LnR3b3Rob3VzYW5kID0geS5odW5kcmVk KSkKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBTb3J0IEtleTogeC50aG91c2Fu ZCwgeC50d290aG91c2FuZCwgeC5maXZldGhvdXMKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiB0ZW5rMSB4CkBAIC05Nzg3LDcgKzk3ODcsNyBAQCBpbm5lciBqb2luIGoyIG9uIGoxLmlk MSA9IGoyLmlkMSBhbmQgajEuaWQyID0gajIuaWQyOwogIE5lc3RlZCBMb29wCiAgICBPdXRwdXQ6 IGoxLmlkMSwgajEuaWQyLCBqMi5pZDEsIGoyLmlkMgogICAgSW5uZXIgVW5pcXVlOiB0cnVlCi0g ICBKb2luIEZpbHRlcjogKChqMS5pZDEgPSBqMi5pZDEpIEFORCAoajEuaWQyID0gajIuaWQyKSkK KyAgIEpvaW4gRmlsdGVyOiAoKGoxLmlkMiA9IGoyLmlkMikgQU5EIChqMS5pZDEgPSBqMi5pZDEp KQogICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5qMgogICAgICAgICAgT3V0cHV0OiBqMi5pZDEs IGoyLmlkMgogICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5qMQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BhcnRpdGlvbl9qb2luLm91dAppbmRleCAzODY0M2Q0MWZkNy4uZjgwNzJmOTll NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4u b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4ub3V0CkBA IC0yODUsNyArMjg1LDcgQEAgU0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQyLmMgRlJPTSBwcnQx IHQxLCBwcnQyIHQyIFdIRVJFIHQxLmEgPSB0Mi5iIEFORCB0MS5hIDwKICAgICAgICAgICAgICAg IEZpbHRlcjogKGIgPiAyNTApCiAgICAgICAgICAtPiAgSGFzaAogICAgICAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHBydDFfcDIgdDEKLSAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChh IDwgNDUwKSBBTkQgKGIgPSAwKSkKKyAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChiID0g MCkgQU5EIChhIDwgNDUwKSkKICg5IHJvd3MpCiAKIFNFTEVDVCB0MS5hLCB0MS5jLCB0Mi5iLCB0 Mi5jIEZST00gcHJ0MSB0MSwgcHJ0MiB0MiBXSEVSRSB0MS5hID0gdDIuYiBBTkQgdDEuYSA8IDQ1 MCBBTkQgdDIuYiA+IDI1MCBBTkQgdDEuYiA9IDAgT1JERVIgQlkgdDEuYSwgdDIuYjsKQEAgLTMx MSw5ICszMTEsOSBAQCBTRUxFQ1QgdDEuYSwgdDEuYywgdDIuYiwgdDIuYyBGUk9NIChTRUxFQ1Qg KiBGUk9NIHBydDEgV0hFUkUgYSA8IDQ1MCkgdDEgTEVGVCBKTwogICAgICAgICAgLT4gIEhhc2gK ICAgICAgICAgICAgICAgIC0+ICBBcHBlbmQKICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBwcnQxX3AxIHBydDFfMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVy OiAoKGEgPCA0NTApIEFORCAoYiA9IDApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoKGIgPSAwKSBBTkQgKGEgPCA0NTApKQogICAgICAgICAgICAgICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHBydDFfcDIgcHJ0MV8yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0 ZXI6ICgoYSA8IDQ1MCkgQU5EIChiID0gMCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBG aWx0ZXI6ICgoYiA9IDApIEFORCAoYSA8IDQ1MCkpCiAoMTUgcm93cykKIAogU0VMRUNUIHQxLmEs IHQxLmMsIHQyLmIsIHQyLmMgRlJPTSAoU0VMRUNUICogRlJPTSBwcnQxIFdIRVJFIGEgPCA0NTAp IHQxIExFRlQgSk9JTiAoU0VMRUNUICogRlJPTSBwcnQyIFdIRVJFIGIgPiAyNTApIHQyIE9OIHQx LmEgPSB0Mi5iIFdIRVJFIHQxLmIgPSAwIE9SREVSIEJZIHQxLmEsIHQyLmI7CkBAIC0xNDAwLDkg KzE0MDAsOSBAQCBTRUxFQ1QgdDEuYSwgdDIuYiBGUk9NIChTRUxFQ1QgKiBGUk9NIHBydDEgV0hF UkUgYSA8IDQ1MCkgdDEgTEVGVCBKT0lOIChTRUxFQ1QgKgogICAgICAgICAgICAgICAgU29ydCBL ZXk6IHBydDEuYQogICAgICAgICAgICAgICAgLT4gIEFwcGVuZAogICAgICAgICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHBydDFfcDEgcHJ0MV8xCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6ICgoYSA8IDQ1MCkgQU5EIChiID0gMCkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBGaWx0ZXI6ICgoYiA9IDApIEFORCAoYSA8IDQ1MCkpCiAgICAgICAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0MV9wMiBwcnQxXzIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZpbHRlcjogKChhIDwgNDUwKSBBTkQgKGIgPSAwKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZpbHRlcjogKChiID0gMCkgQU5EIChhIDwgNDUwKSkKICAgICAgICAgIC0+ICBT b3J0CiAgICAgICAgICAgICAgICBTb3J0IEtleTogcHJ0Mi5iCiAgICAgICAgICAgICAgICAtPiAg QXBwZW5kCkBAIC0yNTM2LDcgKzI1MzYsNyBAQCB3aGVyZSBub3QgZXhpc3RzIChzZWxlY3QgMSBm cm9tIHBydHgyCiAgQXBwZW5kCiAgICAtPiAgTmVzdGVkIExvb3AgQW50aSBKb2luCiAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcHJ0eDFfMQotICAgICAgICAgICAgICAgRmlsdGVyOiAoKGEgPCAy MCkgQU5EIChjID0gMTIwKSkKKyAgICAgICAgICAgICAgIEZpbHRlcjogKChjID0gMTIwKSBBTkQg KGEgPCAyMCkpCiAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBwcnR4Ml8xCiAgICAg ICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoYiA9IHBydHgxXzEuYikgQU5EIChjID0gMTIzKSkK ICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPSBwcnR4MV8xLmEpCkBAIC0yNTQ3LDcgKzI1NDcs NyBAQCB3aGVyZSBub3QgZXhpc3RzIChzZWxlY3QgMSBmcm9tIHBydHgyCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYyA9IDEyMykKICAgIC0+ICBOZXN0ZWQgTG9vcCBB bnRpIEpvaW4KICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcnR4MV8yCi0gICAgICAgICAgICAg ICBGaWx0ZXI6ICgoYSA8IDIwKSBBTkQgKGMgPSAxMjApKQorICAgICAgICAgICAgICAgRmlsdGVy OiAoKGMgPSAxMjApIEFORCAoYSA8IDIwKSkKICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2Fu IG9uIHBydHgyXzIKICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKChiID0gcHJ0eDFfMi5i KSBBTkQgKGMgPSAxMjMpKQogICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IHBydHgxXzIuYSkK QEAgLTI1NzcsNyArMjU3Nyw3IEBAIHdoZXJlIG5vdCBleGlzdHMgKHNlbGVjdCAxIGZyb20gcHJ0 eDIKICBBcHBlbmQKICAgIC0+ICBOZXN0ZWQgTG9vcCBBbnRpIEpvaW4KICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBwcnR4MV8xCi0gICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSA8IDIwKSBBTkQg KGMgPSA5MSkpCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYyA9IDkxKSBBTkQgKGEgPCAyMCkp CiAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBwcnR4Ml8xCiAgICAgICAgICAgICAg ICBSZWNoZWNrIENvbmQ6ICgoYiA9IChwcnR4MV8xLmIgKyAxKSkgT1IgKGMgPSA5OSkpCiAgICAg ICAgICAgICAgICBGaWx0ZXI6IChhID0gcHJ0eDFfMS5hKQpAQCAtMjU4OCw3ICsyNTg4LDcgQEAg d2hlcmUgbm90IGV4aXN0cyAoc2VsZWN0IDEgZnJvbSBwcnR4MgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGMgPSA5OSkKICAgIC0+ICBOZXN0ZWQgTG9vcCBBbnRpIEpv aW4KICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcnR4MV8yCi0gICAgICAgICAgICAgICBGaWx0 ZXI6ICgoYSA8IDIwKSBBTkQgKGMgPSA5MSkpCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYyA9 IDkxKSBBTkQgKGEgPCAyMCkpCiAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBwcnR4 Ml8yCiAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoYiA9IChwcnR4MV8yLmIgKyAxKSkg T1IgKGMgPSA5OSkpCiAgICAgICAgICAgICAgICBGaWx0ZXI6IChhID0gcHJ0eDFfMi5hKQpAQCAt MzQ1MSwxMyArMzQ1MSwxMyBAQCBTRUxFQ1QgdDEuYSwgdDEuYywgdDIuYiwgdDIuYyBGUk9NIHBy dDFfYWR2IHQxIElOTkVSIEpPSU4gcHJ0Ml9hZHYgdDIgT04gKHQxLmEgPQogICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHBydDJfYWR2X3AxIHQyXzEKICAgICAgICAgICAgICAgIC0+ICBI YXNoCiAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0MV9hZHZfcDEgdDFf MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGEgPCAzMDApIEFORCAoYiA9 IDApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGIgPSAwKSBBTkQgKGEg PCAzMDApKQogICAgICAgICAgLT4gIEhhc2ggSm9pbgogICAgICAgICAgICAgICAgSGFzaCBDb25k OiAodDJfMi5iID0gdDFfMi5hKQogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBydDJf YWR2X3AyIHQyXzIKICAgICAgICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcHJ0MV9hZHZfcDIgdDFfMgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmlsdGVyOiAoKGEgPCAzMDApIEFORCAoYiA9IDApKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmlsdGVyOiAoKGIgPSAwKSBBTkQgKGEgPCAzMDApKQogKDE1IHJvd3MpCiAKIFNF TEVDVCB0MS5hLCB0MS5jLCB0Mi5iLCB0Mi5jIEZST00gcHJ0MV9hZHYgdDEgSU5ORVIgSk9JTiBw cnQyX2FkdiB0MiBPTiAodDEuYSA9IHQyLmIpIFdIRVJFIHQxLmEgPCAzMDAgQU5EIHQxLmIgPSAw IE9SREVSIEJZIHQxLmEsIHQyLmI7CkBAIC0zNDkwLDEzICszNDkwLDEzIEBAIFNFTEVDVCB0MS5h LCB0MS5jLCB0Mi5iLCB0Mi5jIEZST00gcHJ0MV9hZHYgdDEgSU5ORVIgSk9JTiBwcnQyX2FkdiB0 MiBPTiAodDEuYSA9CiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0Ml9hZHZfcDEg dDJfMQogICAgICAgICAgICAgICAgLT4gIEhhc2gKICAgICAgICAgICAgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBwcnQxX2Fkdl9wMSB0MV8xCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBG aWx0ZXI6ICgoYSA+PSAxMDApIEFORCAoYSA8IDMwMCkgQU5EIChiID0gMCkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA9IDApIEFORCAoYSA+PSAxMDApIEFORCAoYSA8 IDMwMCkpCiAgICAgICAgICAtPiAgSGFzaCBKb2luCiAgICAgICAgICAgICAgICBIYXNoIENvbmQ6 ICh0Ml8yLmIgPSB0MV8yLmEpCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0Ml9h ZHZfcDIgdDJfMgogICAgICAgICAgICAgICAgLT4gIEhhc2gKICAgICAgICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBwcnQxX2Fkdl9wMiB0MV8yCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6ICgoYSA+PSAxMDApIEFORCAoYSA8IDMwMCkgQU5EIChiID0gMCkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA9IDApIEFORCAoYSA+PSAxMDApIEFO RCAoYSA8IDMwMCkpCiAoMTUgcm93cykKIAogU0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQyLmMg RlJPTSBwcnQxX2FkdiB0MSBJTk5FUiBKT0lOIHBydDJfYWR2IHQyIE9OICh0MS5hID0gdDIuYikg V0hFUkUgdDEuYSA+PSAxMDAgQU5EIHQxLmEgPCAzMDAgQU5EIHQxLmIgPSAwIE9SREVSIEJZIHQx LmEsIHQyLmI7CkBAIC00NDQ3LDcgKzQ0NDcsNyBAQCBTRUxFQ1QgdDEuYSwgdDEuYywgdDIuYSwg dDIuYyBGUk9NIHBsdDFfYWR2IHQxIExFRlQgSk9JTiBwbHQyX2FkdiB0MiBPTiAodDEuYSA9CiAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGx0MV9hZHZfcDMgdDFfMwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoYiA8IDEwKQogICAgICAgICAgLT4gIE5l c3RlZCBMb29wIExlZnQgSm9pbgotICAgICAgICAgICAgICAgSm9pbiBGaWx0ZXI6ICgodDFfNC5h ID0gdDJfNC5hKSBBTkQgKHQxXzQuYyA9IHQyXzQuYykpCisgICAgICAgICAgICAgICBKb2luIEZp bHRlcjogKCh0MV80LmMgPSB0Ml80LmMpIEFORCAodDFfNC5hID0gdDJfNC5hKSkKICAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwbHQxX2Fkdl9leHRyYSB0MV80CiAgICAgICAgICAgICAg ICAgICAgICBGaWx0ZXI6IChiIDwgMTApCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cGx0Ml9hZHZfZXh0cmEgdDJfNApAQCAtNDU1Myw5ICs0NTUzLDkgQEAgU0VMRUNUIHQxLmEsIHQx LmMsIHQyLmEsIHQyLmMsIHQzLmEsIHQzLmMgRlJPTSBwbHQxX2FkdiB0MSBMRUZUIEpPSU4gcGx0 Ml9hZHYgdDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBwbHQxX2Fkdl9wMyB0MV8zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGaWx0ZXI6IChiIDwgMTApCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCi0g ICAgICAgICAgICAgICBKb2luIEZpbHRlcjogKCh0MV80LmEgPSB0M180LmEpIEFORCAodDFfNC5j ID0gdDNfNC5jKSkKKyAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAoKHQxXzQuYyA9IHQzXzQu YykgQU5EICh0MV80LmEgPSB0M180LmEpKQogICAgICAgICAgICAgICAgLT4gIE5lc3RlZCBMb29w IExlZnQgSm9pbgotICAgICAgICAgICAgICAgICAgICAgSm9pbiBGaWx0ZXI6ICgodDFfNC5hID0g dDJfNC5hKSBBTkQgKHQxXzQuYyA9IHQyXzQuYykpCisgICAgICAgICAgICAgICAgICAgICBKb2lu IEZpbHRlcjogKCh0MV80LmMgPSB0Ml80LmMpIEFORCAodDFfNC5hID0gdDJfNC5hKSkKICAgICAg ICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwbHQxX2Fkdl9leHRyYSB0MV80CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChiIDwgMTApCiAgICAgICAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcGx0Ml9hZHZfZXh0cmEgdDJfNApAQCAtNTAyMiw3ICs1MDIy LDcgQEAgU0VMRUNUIHQxLiosIHQyLiogRlJPTSBhbHBoYSB0MSBJTk5FUiBKT0lOIGJldGEgdDIg T04gKHQxLmEgPSB0Mi5hIEFORCB0MS5iID0gdDIKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBiZXRhX25lZ19wMiB0Ml8yCiAgICAgICAgICAgICAgICAtPiAgSGFzaAogICAgICAgICAg ICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGFscGhhX25lZ19wMiB0MV8yCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA+PSAxMjUpIEFORCAoYiA8IDIyNSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA8IDIyNSkgQU5EIChiID49IDEyNSkp CiAgICAgICAgICAtPiAgSGFzaCBKb2luCiAgICAgICAgICAgICAgICBIYXNoIENvbmQ6ICgodDJf NC5hID0gdDFfNC5hKSBBTkQgKHQyXzQuYiA9IHQxXzQuYikpCiAgICAgICAgICAgICAgICAtPiAg QXBwZW5kCkBAIC01MDMyLDExICs1MDMyLDExIEBAIFNFTEVDVCB0MS4qLCB0Mi4qIEZST00gYWxw aGEgdDEgSU5ORVIgSk9JTiBiZXRhIHQyIE9OICh0MS5hID0gdDIuYSBBTkQgdDEuYiA9IHQyCiAg ICAgICAgICAgICAgICAtPiAgSGFzaAogICAgICAgICAgICAgICAgICAgICAgLT4gIEFwcGVuZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGFscGhhX3Bvc19wMSB0 MV80Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA+PSAxMjUp IEFORCAoYiA8IDIyNSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6 ICgoYiA8IDIyNSkgQU5EIChiID49IDEyNSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gYWxwaGFfcG9zX3AyIHQxXzUKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZpbHRlcjogKChiID49IDEyNSkgQU5EIChiIDwgMjI1KSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChiIDwgMjI1KSBBTkQgKGIgPj0gMTI1KSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBhbHBoYV9wb3NfcDMg dDFfNgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGIgPj0gMTI1 KSBBTkQgKGIgPCAyMjUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVy OiAoKGIgPCAyMjUpIEFORCAoYiA+PSAxMjUpKQogKDI5IHJvd3MpCiAKIFNFTEVDVCB0MS4qLCB0 Mi4qIEZST00gYWxwaGEgdDEgSU5ORVIgSk9JTiBiZXRhIHQyIE9OICh0MS5hID0gdDIuYSBBTkQg dDEuYiA9IHQyLmIpIFdIRVJFIHQxLmIgPj0gMTI1IEFORCB0MS5iIDwgMjI1IE9SREVSIEJZIHQx LmEsIHQxLmI7CkBAIC01MTA1LDEzICs1MTA1LDEzIEBAIFNFTEVDVCB0MS4qLCB0Mi4qIEZST00g YWxwaGEgdDEgSU5ORVIgSk9JTiBiZXRhIHQyIE9OICh0MS5hID0gdDIuYSBBTkQgdDEuYyA9IHQy CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gYmV0YV9uZWdfcDIg dDJfMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKChiID49IDEw MCkgQU5EIChiIDwgMTEwKSkgT1IgKChiID49IDIwMCkgQU5EIChiIDwgMjEwKSkpCiAgICAgICAg ICAtPiAgTmVzdGVkIExvb3AKLSAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAoKHQxXzQuYSA9 IHQyXzQuYSkgQU5EICh0MV80LmMgPSB0Ml80LmMpKQorICAgICAgICAgICAgICAgSm9pbiBGaWx0 ZXI6ICgodDFfNC5jID0gdDJfNC5jKSBBTkQgKHQxXzQuYSA9IHQyXzQuYSkpCiAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gYWxwaGFfcG9zX3AyIHQxXzQKICAgICAgICAgICAgICAgICAg ICAgIEZpbHRlcjogKChjID0gQU5ZICgnezAwMDQsMDAwOX0nOjp0ZXh0W10pKSBBTkQgKCgoYiA+ PSAxMDApIEFORCAoYiA8IDExMCkpIE9SICgoYiA+PSAyMDApIEFORCAoYiA8IDIxMCkpKSkKICAg ICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBiZXRhX3Bvc19wMiB0Ml80CiAgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXI6ICgoKGIgPj0gMTAwKSBBTkQgKGIgPCAxMTApKSBPUiAoKGIgPj0g MjAwKSBBTkQgKGIgPCAyMTApKSkKICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcAotICAgICAgICAg ICAgICAgSm9pbiBGaWx0ZXI6ICgodDFfNS5hID0gdDJfNS5hKSBBTkQgKHQxXzUuYyA9IHQyXzUu YykpCisgICAgICAgICAgICAgICBKb2luIEZpbHRlcjogKCh0MV81LmMgPSB0Ml81LmMpIEFORCAo dDFfNS5hID0gdDJfNS5hKSkKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBhbHBoYV9w b3NfcDMgdDFfNQogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGMgPSBBTlkgKCd7MDAw NCwwMDA5fSc6OnRleHRbXSkpIEFORCAoKChiID49IDEwMCkgQU5EIChiIDwgMTEwKSkgT1IgKChi ID49IDIwMCkgQU5EIChiIDwgMjEwKSkpKQogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IGJldGFfcG9zX3AzIHQyXzUKQEAgLTUxNjEsMTMgKzUxNjEsMTMgQEAgU0VMRUNUIHQxLiosIHQy LiogRlJPTSBhbHBoYSB0MSBJTk5FUiBKT0lOIGJldGEgdDIgT04gKHQxLmEgPSB0Mi5hIEFORCB0 MS5iID0gdDIKICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBiZXRhX25lZ19w MiB0Ml8yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGIgPj0gMTAwKSBB TkQgKGIgPCAxMTApKSBPUiAoKGIgPj0gMjAwKSBBTkQgKGIgPCAyMTApKSkKICAgICAgICAgIC0+ ICBOZXN0ZWQgTG9vcAotICAgICAgICAgICAgICAgSm9pbiBGaWx0ZXI6ICgodDFfMy5hID0gdDJf My5hKSBBTkQgKHQxXzMuYiA9IHQyXzMuYikgQU5EICh0MV8zLmMgPSB0Ml8zLmMpKQorICAgICAg ICAgICAgICAgSm9pbiBGaWx0ZXI6ICgodDFfMy5iID0gdDJfMy5iKSBBTkQgKHQxXzMuYyA9IHQy XzMuYykgQU5EICh0MV8zLmEgPSB0Ml8zLmEpKQogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIGFscGhhX3Bvc19wMiB0MV8zCiAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYyA9 IEFOWSAoJ3swMDA0LDAwMDl9Jzo6dGV4dFtdKSkgQU5EICgoKGIgPj0gMTAwKSBBTkQgKGIgPCAx MTApKSBPUiAoKGIgPj0gMjAwKSBBTkQgKGIgPCAyMTApKSkpCiAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gYmV0YV9wb3NfcDIgdDJfMwogICAgICAgICAgICAgICAgICAgICAgRmlsdGVy OiAoKChiID49IDEwMCkgQU5EIChiIDwgMTEwKSkgT1IgKChiID49IDIwMCkgQU5EIChiIDwgMjEw KSkpCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKLSAgICAgICAgICAgICAgIEpvaW4gRmlsdGVy OiAoKHQxXzQuYSA9IHQyXzQuYSkgQU5EICh0MV80LmIgPSB0Ml80LmIpIEFORCAodDFfNC5jID0g dDJfNC5jKSkKKyAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAoKHQxXzQuYiA9IHQyXzQuYikg QU5EICh0MV80LmMgPSB0Ml80LmMpIEFORCAodDFfNC5hID0gdDJfNC5hKSkKICAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBhbHBoYV9wb3NfcDMgdDFfNAogICAgICAgICAgICAgICAgICAg ICAgRmlsdGVyOiAoKGMgPSBBTlkgKCd7MDAwNCwwMDA5fSc6OnRleHRbXSkpIEFORCAoKChiID49 IDEwMCkgQU5EIChiIDwgMTEwKSkgT1IgKChiID49IDIwMCkgQU5EIChiIDwgMjEwKSkpKQogICAg ICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGJldGFfcG9zX3AzIHQyXzQKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dAppbmRleCA4NDkwNDlmOWM1MS4u YTg1ZjY5ZjYwMWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0 aW9uX3BydW5lLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9w cnVuZS5vdXQKQEAgLTM2NCwyMSArMzY0LDIxIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0 ICogZnJvbSBybHAgd2hlcmUgYSA+IDE1IGFuZCBiID0gJ2FiJzsKIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4g IFNlcSBTY2FuIG9uIHJscDNhYmNkIHJscF8xCi0gICAgICAgICBGaWx0ZXI6ICgoYSA+IDE1KSBB TkQgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4 dCA9ICdhYic6OnRleHQpIEFORCAoYSA+IDE1KSkKICAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzEg cmxwXzIKLSAgICAgICAgIEZpbHRlcjogKChhID4gMTUpIEFORCAoKGIpOjp0ZXh0ID0gJ2FiJzo6 dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkgQU5EIChh ID4gMTUpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfMiBybHBfMwotICAgICAgICAgRmlsdGVy OiAoKGEgPiAxNSkgQU5EICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRl cjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBBTkQgKGEgPiAxNSkpCiAgICAtPiAgU2VxIFNj YW4gb24gcmxwNF9kZWZhdWx0IHJscF80Ci0gICAgICAgICBGaWx0ZXI6ICgoYSA+IDE1KSBBTkQg KChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9 ICdhYic6OnRleHQpIEFORCAoYSA+IDE1KSkKICAgIC0+ICBTZXEgU2NhbiBvbiBybHA1XzEgcmxw XzUKLSAgICAgICAgIEZpbHRlcjogKChhID4gMTUpIEFORCAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4 dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkgQU5EIChhID4g MTUpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfZGVmYXVsdCBybHBfNgotICAgICAgICAgRmls dGVyOiAoKGEgPiAxNSkgQU5EICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAgICAgIEZp bHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBBTkQgKGEgPiAxNSkpCiAgICAtPiAgU2Vx IFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxwXzcKLSAgICAgICAgIEZpbHRlcjogKChhID4gMTUp IEFORCAoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0 ZXh0ID0gJ2FiJzo6dGV4dCkgQU5EIChhID4gMTUpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJscF9k ZWZhdWx0X2RlZmF1bHQgcmxwXzgKLSAgICAgICAgIEZpbHRlcjogKChhID4gMTUpIEFORCAoKGIp Ojp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2Fi Jzo6dGV4dCkgQU5EIChhID4gMTUpKQogKDE3IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikg c2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDE2OwpAQCAtNDA2LDcgKzQwNiw3IEBAIGV4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDE2IGFuZCBiIDwgJ2Fi JzsKICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU2Vx IFNjYW4gb24gcmxwM19kZWZhdWx0IHJscAotICAgRmlsdGVyOiAoKChiKTo6dGV4dCA8ICdhYic6 OnRleHQpIEFORCAoYSA9IDE2KSkKKyAgIEZpbHRlcjogKChhID0gMTYpIEFORCAoKGIpOjp0ZXh0 IDwgJ2FiJzo6dGV4dCkpCiAoMiByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAq IGZyb20gcmxwIHdoZXJlIGEgPSAxNiBhbmQgYiA8PSAnYWInOwpAQCAtNDE0LDkgKzQxNCw5IEBA IGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDE2IGFuZCBi IDw9ICdhYic7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAgICAtPiAgU2VxIFNjYW4gb24gcmxwM2FiY2QgcmxwXzEK LSAgICAgICAgIEZpbHRlcjogKCgoYik6OnRleHQgPD0gJ2FiJzo6dGV4dCkgQU5EIChhID0gMTYp KQorICAgICAgICAgRmlsdGVyOiAoKGEgPSAxNikgQU5EICgoYik6OnRleHQgPD0gJ2FiJzo6dGV4 dCkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxwM19kZWZhdWx0IHJscF8yCi0gICAgICAgICBGaWx0 ZXI6ICgoKGIpOjp0ZXh0IDw9ICdhYic6OnRleHQpIEFORCAoYSA9IDE2KSkKKyAgICAgICAgIEZp bHRlcjogKChhID0gMTYpIEFORCAoKGIpOjp0ZXh0IDw9ICdhYic6OnRleHQpKQogKDUgcm93cykK IAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMTYgYW5k IGIgaXMgbnVsbDsKQEAgLTYzNiw3ICs2MzYsNyBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVj dCAqIGZyb20gcmxwIHdoZXJlIGEgPiAxIGFuZCBhID0gMTA7CS8qIG9ubHkgZGVmYXVsdCAqLwog ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0XzEwIHJscAotICAgRmlsdGVy OiAoKGEgPiAxKSBBTkQgKGEgPSAxMCkpCisgICBGaWx0ZXI6ICgoYSA9IDEwKSBBTkQgKGEgPiAx KSkKICgyIHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hl cmUgYSA+IDEgYW5kIGEgPj0xNTsJLyogcmxwMyBvbndhcmRzLCBpbmNsdWRpbmcgZGVmYXVsdCAq LwpAQCAtNzQxLDkgKzc0MSw5IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBt YzNwIHdoZXJlIGEgPSAxIGFuZCBhYnMoYikgPSAxIGFuZCBjIDwgODsKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAgICAt PiAgU2VxIFNjYW4gb24gbWMzcDAgbWMzcF8xCi0gICAgICAgICBGaWx0ZXI6ICgoYyA8IDgpIEFO RCAoYSA9IDEpIEFORCAoYWJzKGIpID0gMSkpCisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIEFO RCAoYyA8IDgpIEFORCAoYWJzKGIpID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gbWMzcDEgbWMz cF8yCi0gICAgICAgICBGaWx0ZXI6ICgoYyA8IDgpIEFORCAoYSA9IDEpIEFORCAoYWJzKGIpID0g MSkpCisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDEpIEFORCAoYyA8IDgpIEFORCAoYWJzKGIpID0g MSkpCiAoNSByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbWMzcCB3 aGVyZSBhID0gMTAgYW5kIGFicyhiKSBiZXR3ZWVuIDUgYW5kIDM1OwpAQCAtOTkxLDcgKzk5MSw3 IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBtYzJwIHdoZXJlIGEgPSAyIGFu ZCBiIDwgMTsKICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU2VxIFNjYW4gb24gbWMycDMgbWMycAotICAgRmlsdGVy OiAoKGIgPCAxKSBBTkQgKGEgPSAyKSkKKyAgIEZpbHRlcjogKChhID0gMikgQU5EIChiIDwgMSkp CiAoMiByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbWMycCB3aGVy ZSBhID4gMTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0 ICogZnJvbSBtYzJwIHdoZXJlIGEgPSAxIGFuZCBiID4gMTsKICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU2VxIFNj YW4gb24gbWMycDIgbWMycAotICAgRmlsdGVyOiAoKGIgPiAxKSBBTkQgKGEgPSAxKSkKKyAgIEZp bHRlcjogKChhID0gMSkgQU5EIChiID4gMSkpCiAoMiByb3dzKQogCiAtLSBhbGwgcGFydGl0aW9u cyBidXQgdGhlIGRlZmF1bHQgb25lIHNob3VsZCBiZSBwcnVuZWQKQEAgLTE4MDksOSArMTgwOSw5 IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDE1IGFu ZCBiIDw+ICdhYicgYW5kIGIgPD4gJ2NkJyBhCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBB cHBlbmQKICAgIC0+ICBTZXEgU2NhbiBvbiBybHAzZWZnaCBybHBfMQotICAgICAgICAgRmlsdGVy OiAoKGIgSVMgTk9UIE5VTEwpIEFORCAoKGIpOjp0ZXh0IDw+ICdhYic6OnRleHQpIEFORCAoKGIp Ojp0ZXh0IDw+ICdjZCc6OnRleHQpIEFORCAoKGIpOjp0ZXh0IDw+ICd4eSc6OnRleHQpIEFORCAo YSA9IDE1KSkKKyAgICAgICAgIEZpbHRlcjogKChiIElTIE5PVCBOVUxMKSBBTkQgKGEgPSAxNSkg QU5EICgoYik6OnRleHQgPD4gJ2FiJzo6dGV4dCkgQU5EICgoYik6OnRleHQgPD4gJ2NkJzo6dGV4 dCkgQU5EICgoYik6OnRleHQgPD4gJ3h5Jzo6dGV4dCkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxw M19kZWZhdWx0IHJscF8yCi0gICAgICAgICBGaWx0ZXI6ICgoYiBJUyBOT1QgTlVMTCkgQU5EICgo Yik6OnRleHQgPD4gJ2FiJzo6dGV4dCkgQU5EICgoYik6OnRleHQgPD4gJ2NkJzo6dGV4dCkgQU5E ICgoYik6OnRleHQgPD4gJ3h5Jzo6dGV4dCkgQU5EIChhID0gMTUpKQorICAgICAgICAgRmlsdGVy OiAoKGIgSVMgTk9UIE5VTEwpIEFORCAoYSA9IDE1KSBBTkQgKChiKTo6dGV4dCA8PiAnYWInOjp0 ZXh0KSBBTkQgKChiKTo6dGV4dCA8PiAnY2QnOjp0ZXh0KSBBTkQgKChiKTo6dGV4dCA8PiAneHkn Ojp0ZXh0KSkKICg1IHJvd3MpCiAKIC0tCkBAIC0yMDI2LDEzICsyMDI2LDEzIEBAIGV4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBocCB3aGVyZSBhIDwgMSBhbmQgYiA9ICd4eHgnOwog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFwcGVu ZAogICAgLT4gIFNlcSBTY2FuIG9uIGhwMCBocF8xCi0gICAgICAgICBGaWx0ZXI6ICgoYSA8IDEp IEFORCAoYiA9ICd4eHgnOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRlcjogKChiID0gJ3h4eCc6OnRl eHQpIEFORCAoYSA8IDEpKQogICAgLT4gIFNlcSBTY2FuIG9uIGhwMSBocF8yCi0gICAgICAgICBG aWx0ZXI6ICgoYSA8IDEpIEFORCAoYiA9ICd4eHgnOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRlcjog KChiID0gJ3h4eCc6OnRleHQpIEFORCAoYSA8IDEpKQogICAgLT4gIFNlcSBTY2FuIG9uIGhwMiBo cF8zCi0gICAgICAgICBGaWx0ZXI6ICgoYSA8IDEpIEFORCAoYiA9ICd4eHgnOjp0ZXh0KSkKKyAg ICAgICAgIEZpbHRlcjogKChiID0gJ3h4eCc6OnRleHQpIEFORCAoYSA8IDEpKQogICAgLT4gIFNl cSBTY2FuIG9uIGhwMyBocF80Ci0gICAgICAgICBGaWx0ZXI6ICgoYSA8IDEpIEFORCAoYiA9ICd4 eHgnOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRlcjogKChiID0gJ3h4eCc6OnRleHQpIEFORCAoYSA8 IDEpKQogKDkgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGhwIHdo ZXJlIGEgPD4gMSBhbmQgYiA9ICd5eXknOwpAQCAtMjA0MCwxMyArMjA0MCwxMyBAQCBleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gaHAgd2hlcmUgYSA8PiAxIGFuZCBiID0gJ3l5eSc7 CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFw cGVuZAogICAgLT4gIFNlcSBTY2FuIG9uIGhwMCBocF8xCi0gICAgICAgICBGaWx0ZXI6ICgoYSA8 PiAxKSBBTkQgKGIgPSAneXl5Jzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoYiA9ICd5eXkn Ojp0ZXh0KSBBTkQgKGEgPD4gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gaHAxIGhwXzIKLSAgICAg ICAgIEZpbHRlcjogKChhIDw+IDEpIEFORCAoYiA9ICd5eXknOjp0ZXh0KSkKKyAgICAgICAgIEZp bHRlcjogKChiID0gJ3l5eSc6OnRleHQpIEFORCAoYSA8PiAxKSkKICAgIC0+ICBTZXEgU2NhbiBv biBocDIgaHBfMwotICAgICAgICAgRmlsdGVyOiAoKGEgPD4gMSkgQU5EIChiID0gJ3l5eSc6OnRl eHQpKQorICAgICAgICAgRmlsdGVyOiAoKGIgPSAneXl5Jzo6dGV4dCkgQU5EIChhIDw+IDEpKQog ICAgLT4gIFNlcSBTY2FuIG9uIGhwMyBocF80Ci0gICAgICAgICBGaWx0ZXI6ICgoYSA8PiAxKSBB TkQgKGIgPSAneXl5Jzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoYiA9ICd5eXknOjp0ZXh0 KSBBTkQgKGEgPD4gMSkpCiAoOSByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAq IGZyb20gaHAgd2hlcmUgYSA8PiAxIGFuZCBiIDw+ICd4eHgnOwpAQCAtNDExMyw3ICs0MTEzLDcg QEAgc2VsZWN0ICogZnJvbSBsaXN0cCB3aGVyZSBhID0gKHNlbGVjdCAyKSBhbmQgYiA8PiAxMDsK ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIFNlcSBTY2FuIG9uIGxpc3RwMSBsaXN0cCAoYWN0dWFsIHJvd3M9MC4wMCBsb29wcz0xKQot ICAgRmlsdGVyOiAoKGIgPD4gMTApIEFORCAoYSA9IChJbml0UGxhbiBleHByXzEpLmNvbDEpKQor ICAgRmlsdGVyOiAoKGEgPSAoSW5pdFBsYW4gZXhwcl8xKS5jb2wxKSBBTkQgKGIgPD4gMTApKQog ICAgSW5pdFBsYW4gZXhwcl8xCiAgICAgIC0+ICBSZXN1bHQgKG5ldmVyIGV4ZWN1dGVkKQogKDQg cm93cykKQEAgLTQyNzUsNyArNDI3NSw3IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBycF9wcmVmaXhfdGVzdDEgd2hlcmUgYSA8PSAxIGFuZCBiID0gJ2EnOwogICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU2VxIFNjYW4gb24gcnBfcHJl Zml4X3Rlc3QxX3AxIHJwX3ByZWZpeF90ZXN0MQotICAgRmlsdGVyOiAoKGEgPD0gMSkgQU5EICgo Yik6OnRleHQgPSAnYSc6OnRleHQpKQorICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhJzo6dGV4 dCkgQU5EIChhIDw9IDEpKQogKDIgcm93cykKIAogY3JlYXRlIHRhYmxlIHJwX3ByZWZpeF90ZXN0 MiAoYSBpbnQsIGIgaW50LCBjIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlKGEsIGIsIGMpOwpAQCAt NDI4Nyw3ICs0Mjg3LDcgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJwX3By ZWZpeF90ZXN0MiB3aGVyZSBhIDw9IDEgYW5kIGIgPSAxIGFuZCBjID4KICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU2VxIFNjYW4gb24gcnBfcHJlZml4X3Rlc3Qy X3AxIHJwX3ByZWZpeF90ZXN0MgotICAgRmlsdGVyOiAoKGEgPD0gMSkgQU5EIChjID49IDApIEFO RCAoYiA9IDEpKQorICAgRmlsdGVyOiAoKGIgPSAxKSBBTkQgKGEgPD0gMSkgQU5EIChjID49IDAp KQogKDIgcm93cykKIAogY3JlYXRlIHRhYmxlIHJwX3ByZWZpeF90ZXN0MyAoYSBpbnQsIGIgaW50 LCBjIGludCwgZCBpbnQpIHBhcnRpdGlvbiBieSByYW5nZShhLCBiLCBjLCBkKTsKQEAgLTQzMDks NyArNDMwOSw3IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBycF9wcmVmaXhf dGVzdDMgd2hlcmUgYSA+PSAxIGFuZCBiID49IDEgYW5kIGIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgU2VxIFNjYW4gb24gcnBfcHJlZml4X3Rlc3QzX3AyIHJwX3ByZWZpeF90 ZXN0MwotICAgRmlsdGVyOiAoKGEgPj0gMSkgQU5EIChiID49IDEpIEFORCAoZCA+PSAwKSBBTkQg KGIgPSAyKSBBTkQgKGMgPSAyKSkKKyAgIEZpbHRlcjogKChiID0gMikgQU5EIChjID0gMikgQU5E IChhID49IDEpIEFORCAoYiA+PSAxKSBBTkQgKGQgPj0gMCkpCiAoMiByb3dzKQogCiBkcm9wIHRh YmxlIHJwX3ByZWZpeF90ZXN0MTsKQEAgLTQ1ODYsNyArNDU4Niw3IEBAIGV4cGxhaW4gKHZlcmJv c2UsIGNvc3RzIG9mZikgZXhlY3V0ZSB1cGRhdGVfcGFydF9hYmNfdmlldyAoMSwgJ2QnKTsKICAg ICAgICAgIFN1YnBsYW5zIFJlbW92ZWQ6IDEKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJs aWMucGFydF9hYmNfMQogICAgICAgICAgICAgICAgT3V0cHV0OiAkMiwgcGFydF9hYmNfMS50YWJs ZW9pZCwgcGFydF9hYmNfMS5jdGlkCi0gICAgICAgICAgICAgICBGaWx0ZXI6ICgocGFydF9hYmNf MS5iIDw+ICdhJzo6dGV4dCkgQU5EIChwYXJ0X2FiY18xLmEgPSAkMSkpCisgICAgICAgICAgICAg ICBGaWx0ZXI6ICgocGFydF9hYmNfMS5hID0gJDEpIEFORCAocGFydF9hYmNfMS5iIDw+ICdhJzo6 dGV4dCkpCiAoOCByb3dzKQogCiBleGVjdXRlIHVwZGF0ZV9wYXJ0X2FiY192aWV3ICgxLCAnZCcp OwpAQCAtNDYwNSw3ICs0NjA1LDcgQEAgZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKSBleGVj dXRlIHVwZGF0ZV9wYXJ0X2FiY192aWV3ICgyLCAnYScpOwogICAgICAgICAgU3VicGxhbnMgUmVt b3ZlZDogMQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5wYXJ0X2FiY18yCiAgICAg ICAgICAgICAgICBPdXRwdXQ6ICQyLCBwYXJ0X2FiY18yLnRhYmxlb2lkLCBwYXJ0X2FiY18yLmN0 aWQKLSAgICAgICAgICAgICAgIEZpbHRlcjogKChwYXJ0X2FiY18yLmIgPD4gJ2EnOjp0ZXh0KSBB TkQgKHBhcnRfYWJjXzIuYSA9ICQxKSkKKyAgICAgICAgICAgICAgIEZpbHRlcjogKChwYXJ0X2Fi Y18yLmEgPSAkMSkgQU5EIChwYXJ0X2FiY18yLmIgPD4gJ2EnOjp0ZXh0KSkKICg4IHJvd3MpCiAK IGV4ZWN1dGUgdXBkYXRlX3BhcnRfYWJjX3ZpZXcgKDIsICdhJyk7CkBAIC00NjQxLDcgKzQ2NDEs NyBAQCB3aGVuIG1hdGNoZWQgdGhlbiBkZWxldGUgcmV0dXJuaW5nIHB0LmE7CiAgICAgICAgICAt PiAgQXBwZW5kCiAgICAgICAgICAgICAgICBTdWJwbGFucyBSZW1vdmVkOiAxCiAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9hYmNfMQotICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoKGIgPD4gJ2EnOjp0ZXh0KSBBTkQgKGEgPSBzdGFibGVfb25lKCkpKQorICAgICAgICAg ICAgICAgICAgICAgRmlsdGVyOiAoKGEgPSBzdGFibGVfb25lKCkpIEFORCAoYiA8PiAnYSc6OnRl eHQpKQogICAgICAgICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcGFydF9hYmNfMSBwdDEKICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPSBz dGFibGVfb25lKCkpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZWRp Y2F0ZV9vcmRlci5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZWRpY2F0ZV9vcmRl ci5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNiOTdmMDA1MTM3 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVkaWNhdGVf b3JkZXIub3V0CkBAIC0wLDAgKzEsMjIyIEBACistLQorLS0gUHJlZGljYXRlIG9yZGVyaW5nIGJ5 IHNlbGVjdGl2aXR5CistLQorLS0gVGVzdCAxLiBDaGVjayByZW9yZGVyaW5nIG9mIGVxdWFsLWNv c3QgY2xhdXNlcyBieSBzZWxlY3Rpdml0eS4KKy0tICAgICAgICAgQm90aCBjbGF1c2VzIHVzZSB0 aGUgYnVpbHQtaW4gIj0iIG9wZXJhdG9yIGFuZCBoYXZlIHRoZQorLS0gICAgICAgICBzYW1lIHBl ci10dXBsZSBjb3N0LiAgVGhlIGNsYXVzZSBvbiBjb2x1bW4gImEiIGlzIG1vcmUKKy0tICAgICAg ICAgc2VsZWN0aXZlIGFuZCBzaG91bGQgYXBwZWFyIGZpcnN0IGluIHRoZSBGaWx0ZXIuCistLQor Q1JFQVRFIFRBQkxFIHByZWRfb3JkZXIgKAorCWEgaW50LAorCWIgaW50CispOworSU5TRVJUIElO VE8gcHJlZF9vcmRlcgorU0VMRUNUIGksIGkgJSAyCitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDAwKSBBUyBnKGkpOworQU5BTFlaRSBwcmVkX29yZGVyOworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUICoKK0ZST00gcHJlZF9vcmRlcgorV0hFUkUgYiA9IDAgQU5EIGEgPSAyOworICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBTZXEgU2NhbiBvbiBwcmVkX29yZGVyCisgICBGaWx0ZXI6ICgoYSA9IDIpIEFORCAo YiA9IDApKQorKDIgcm93cykKKworU0VMRUNUIENPVU5UKCopCitGUk9NIHByZWRfb3JkZXIKK1dI RVJFIGIgPSAwIEFORCBhID0gMjsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQor CistLQorLS0gVGVzdCBzZXR1cC4gVXNlIGEgU0VUIGNsYXVzZSB0byBwcmV2ZW50IFNRTC1mdW5j dGlvbiBpbmxpbmluZy4KKy0tICAgICAgICAgICAgIFRoaXMga2VlcHMgdGhlIG9wZXJhdG9yIG5v ZGUgYW5kIGl0cyBkZWNsYXJlZCBjb3N0CistLSAgICAgICAgICAgICB2aXNpYmxlIHRvIHRoZSBw bGFubmVyLgorLS0KK0NSRUFURSBGVU5DVElPTiBwcmVkX29yZGVyX2VxX3Nsb3coaW50LCBpbnQp CitSRVRVUk5TIGJvb2xlYW4KK0xBTkdVQUdFIHBscGdzcWwKK0lNTVVUQUJMRQorUEFSQUxMRUwg U0FGRQorQ09TVCAxLjUKK0FTICQkCitCRUdJTgorCVJFVFVSTiAkMSA9ICQyOworRU5EOworJCQ7 CitDUkVBVEUgT1BFUkFUT1IgIz0jICgKKwlMRUZUQVJHID0gaW50NCwKKwlSSUdIVEFSRyA9IGlu dDQsCisJUFJPQ0VEVVJFID0gcHJlZF9vcmRlcl9lcV9zbG93LAorCVJFU1RSSUNUID0gZXFzZWws CisJSk9JTiA9IGVxam9pbnNlbAorKTsKKy0tCistLSBUZXN0IDIuIENoZWNrIHRoYXQgYSBtb3Jl IHNlbGVjdGl2ZSBjbGF1c2UgY2FuIG1vdmUgYmVmb3JlIGEKKy0tICAgICAgICAgY2hlYXBlciBj bGF1c2Ugd2hlbiBpdHMgY29zdC9zZWxlY3Rpdml0eSByYW5rIGlzIGJldHRlci4KKy0tICAgICAg ICAgRXhwZWN0ZWQgcmVzdWx0OiB0aGUgcHJlZGljYXRlIG9uIGNvbHVtbiBhIGlzIGV2YWx1YXRl ZAorLS0gICAgICAgICBiZWZvcmUgdGhlIHByZWRpY2F0ZSBvbiBjb2x1bW4gYi4gVGhlIG9sZCBj b3N0LW9ubHkKKy0tICAgICAgICAgb3JkZXJpbmcgd291bGQga2VlcCB0aGUgY2hlYXBlciBwcmVk aWNhdGUgZmlyc3QuCistLQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICoKK0ZST00gcHJl ZF9vcmRlcgorV0hFUkUgYiA9IDAgQU5EIGEgIz0jIDI7CisgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiBwcmVkX29yZGVyCisgICBGaWx0ZXI6ICgoYSAjPSMgMikgQU5EIChiID0gMCkpCiso MiByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikKK0ZST00gcHJlZF9vcmRlcgorV0hFUkUgYiA9IDAg QU5EIGEgIz0jIDI7CisgY291bnQgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworLS0gVGVz dCBzZXR1cC4KK0NSRUFURSBGVU5DVElPTiBwcmVkX29yZGVyX2VxX3Zlcnlfc2xvdyhpbnQsIGlu dCkKK1JFVFVSTlMgYm9vbGVhbgorTEFOR1VBR0UgcGxwZ3NxbAorSU1NVVRBQkxFCitQQVJBTExF TCBTQUZFCitDT1NUIDEwCitBUyAkJAorQkVHSU4KKwlSRVRVUk4gJDEgPSAkMjsKK0VORDsKKyQk OworQ1JFQVRFIE9QRVJBVE9SICM9PSMgKAorCUxFRlRBUkcgPSBpbnQ0LAorCVJJR0hUQVJHID0g aW50NCwKKwlQUk9DRURVUkUgPSBwcmVkX29yZGVyX2VxX3Zlcnlfc2xvdywKKwlSRVNUUklDVCA9 IGVxc2VsLAorCUpPSU4gPSBlcWpvaW5zZWwKKyk7CistLQorLS0gVGVzdCAzLiBDaGVjayB0aGF0 IGEgbXVjaCBtb3JlIGV4cGVuc2l2ZSBjbGF1c2Ugc3RheXMgYWZ0ZXIgYQorLS0gICAgICAgICBj aGVhcGVyIGNsYXVzZSB3aGVuIHNlbGVjdGl2aXR5IGRvZXMgbm90IGNvbXBlbnNhdGUgZm9yCist LSAgICAgICAgIHRoZSBleHRyYSBjb3N0LgorLS0gICAgICAgICBFeHBlY3RlZCByZXN1bHQ6IHRo ZSBwcmVkaWNhdGUgb24gY29sdW1uIGIgaXMgZXZhbHVhdGVkCistLSAgICAgICAgIGJlZm9yZSB0 aGUgcHJlZGljYXRlIG9uIGNvbHVtbiBhLgorLS0KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCAqCitGUk9NIHByZWRfb3JkZXIKK1dIRVJFIGIgPSAwIEFORCBhICM9PSMgMjsKKyAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHJlZF9vcmRlcgorICAgRmlsdGVyOiAoKGIgPSAwKSBB TkQgKGEgIz09IyAyKSkKKygyIHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKQorRlJPTSBwcmVkX29y ZGVyCitXSEVSRSBiID0gMCBBTkQgYSAjPT0jIDI7CisgY291bnQgCistLS0tLS0tCisgICAgIDEK KygxIHJvdykKKworLS0KKy0tIFRlc3QgNC4gQ2hlY2sgdGhhdCByb3ctbGV2ZWwgc2VjdXJpdHkg cHJlZGljYXRlcyBhcmUgbmV2ZXIKKy0tICAgICAgICAgcmVvcmRlcmVkIHBhc3QgdXNlci1zdXBw bGllZCBwcmVkaWNhdGVzIGV2ZW4gd2hlbgorLS0gICAgICAgICB0aGUgdXNlciBwcmVkaWNhdGUg aGFzIGEgYmV0dGVyIHJhbmsuCistLSAgICAgICAgIEV4cGVjdGVkIHJlc3VsdDogdGhlIFJMUyBw cmVkaWNhdGUgKGIgPSAwKSBpcyBldmFsdWF0ZWQKKy0tICAgICAgICAgYmVmb3JlIHRoZSB1c2Vy IHByZWRpY2F0ZSAoYSAjPSMgMikgYmVjYXVzZSB0aGUgbGF0dGVyCistLSAgICAgICAgIGlzIG5v dCBsZWFrcHJvb2YgYW5kIGhhcyBhIGhpZ2hlciBzZWN1cml0eV9sZXZlbC4KKy0tCitBTFRFUiBU QUJMRSBwcmVkX29yZGVyIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CitBTFRFUiBUQUJMRSBw cmVkX29yZGVyIEZPUkNFIFJPVyBMRVZFTCBTRUNVUklUWTsKK0NSRUFURSBQT0xJQ1kgcHJlZF9v cmRlcl9wb2xpY3kgT04gcHJlZF9vcmRlcgorCVVTSU5HIChiID0gMCk7CitDUkVBVEUgUk9MRSBw cmVkX29yZGVyX3Jsc191c2VyOworR1JBTlQgU0VMRUNUIE9OIHByZWRfb3JkZXIgVE8gcHJlZF9v cmRlcl9ybHNfdXNlcjsKK1NFVCBST0xFIHByZWRfb3JkZXJfcmxzX3VzZXI7CitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgKgorRlJPTSBwcmVkX29yZGVyCitXSEVSRSBhICM9IyAyOworICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHJlZF9vcmRlcgorICAgRmlsdGVyOiAoKGIgPSAw KSBBTkQgKGEgIz0jIDIpKQorKDIgcm93cykKKworU0VMRUNUIENPVU5UKCopCitGUk9NIHByZWRf b3JkZXIKK1dIRVJFIGEgIz0jIDI7CisgY291bnQgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykK KworUkVTRVQgUk9MRTsKK0RST1AgUE9MSUNZIHByZWRfb3JkZXJfcG9saWN5IE9OIHByZWRfb3Jk ZXI7CitSRVZPS0UgQUxMIE9OIHByZWRfb3JkZXIgRlJPTSBwcmVkX29yZGVyX3Jsc191c2VyOwor RFJPUCBST0xFIHByZWRfb3JkZXJfcmxzX3VzZXI7CitBTFRFUiBUQUJMRSBwcmVkX29yZGVyIERJ U0FCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOworQUxURVIgVEFCTEUgcHJlZF9vcmRlciBOTyBGT1JD RSBST1cgTEVWRUwgU0VDVVJJVFk7CistLQorLS0gVGVzdCA1LiBDaGVjayB0aGF0IGNsYXVzZXMg d2l0aCBpZGVudGljYWwgcmFua3MgcHJlc2VydmUgdGhlaXIKKy0tICAgICAgICAgb3JpZ2luYWwg b3JkZXIuCistLSAgICAgICAgIEV4cGVjdGVkIHJlc3VsdDogYm90aCBjb2x1bW5zIGhhdmUgdGhl IHNhbWUgc2VsZWN0aXZpdHkKKy0tICAgICAgICAgYW5kIGNvc3QsIHNvIHRoZSBmaWx0ZXIga2Vl cHMgdGhlIG9yaWdpbmFsIGNsYXVzZSBvcmRlcgorLS0gICAgICAgICAoYyA9IDUpIEFORCAoZCA9 IDUpLgorLS0KK0NSRUFURSBUQUJMRSBwcmVkX29yZGVyX2VxICgKKwljIGludCwKKwlkIGludAor KTsKK0lOU0VSVCBJTlRPIHByZWRfb3JkZXJfZXEKK1NFTEVDVCBpICUgMTAsIGkgJSAxMAorRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgZyhpKTsKK0FOQUxZWkUgcHJlZF9vcmRlcl9l cTsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqCitGUk9NIHByZWRfb3JkZXJfZXEKK1dI RVJFIGMgPSA1IEFORCBkID0gNTsKKyAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHJlZF9vcmRl cl9lcQorICAgRmlsdGVyOiAoKGMgPSA1KSBBTkQgKGQgPSA1KSkKKygyIHJvd3MpCisKK1NFTEVD VCBDT1VOVCgqKQorRlJPTSBwcmVkX29yZGVyX2VxCitXSEVSRSBjID0gNSBBTkQgZCA9IDU7Cisg Y291bnQgCistLS0tLS0tCisgICAxMDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUICoKK0ZST00gcHJlZF9vcmRlcl9lcQorV0hFUkUgZCA9IDUgQU5EIGMgPSA1OworICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwcmVkX29yZGVyX2VxCisgICBGaWx0ZXI6ICgoZCA9IDUp IEFORCAoYyA9IDUpKQorKDIgcm93cykKKworU0VMRUNUIENPVU5UKCopCitGUk9NIHByZWRfb3Jk ZXJfZXEKK1dIRVJFIGQgPSA1IEFORCBjID0gNTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDEwMAor KDEgcm93KQorCitEUk9QIFRBQkxFIHByZWRfb3JkZXJfZXE7CitEUk9QIE9QRVJBVE9SICM9PSMg KGludDQsIGludDQpOworRFJPUCBGVU5DVElPTiBwcmVkX29yZGVyX2VxX3Zlcnlfc2xvdyhpbnQs IGludCk7CitEUk9QIE9QRVJBVE9SICM9IyAoaW50NCwgaW50NCk7CitEUk9QIEZVTkNUSU9OIHBy ZWRfb3JkZXJfZXFfc2xvdyhpbnQsIGludCk7CitEUk9QIFRBQkxFIHByZWRfb3JkZXI7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CmluZGV4IDNhNWU4MmMzNWJkLi5i ZjYzZDRiZmQ2OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb3dzZWN1 cml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb3dzZWN1cml0eS5vdXQK QEAgLTYzNiw3ICs2MzYsNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIGRvY3VtZW50Ci0g ICBGaWx0ZXI6ICgoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8PiA0NCkgQU5EIChjaWQgPCA1MCkgQU5E IChkbGV2ZWwgPD0gKEluaXRQbGFuIGV4cHJfMSkuY29sMSkgQU5EIGZfbGVhayhkdGl0bGUpKQor ICAgRmlsdGVyOiAoKGNpZCA8IDUwKSBBTkQgKGRsZXZlbCA8PSAoSW5pdFBsYW4gZXhwcl8xKS5j b2wxKSBBTkQgKGNpZCA8PiA0NCkgQU5EIChjaWQgPD4gNDQpIEFORCBmX2xlYWsoZHRpdGxlKSkK ICAgIEluaXRQbGFuIGV4cHJfMQogICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB1YWNjb3VudF9w a2V5IG9uIHVhY2NvdW50CiAgICAgICAgICAgIEluZGV4IENvbmQ6IChwZ3VzZXIgPSBDVVJSRU5U X1VTRVIpCkBAIC02NTMsNyArNjUzLDcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIGRvY3VtZW50IE5BVFVSQUwgSk9JTiBjYXRlZ29yeSBXSEVSRSBmX2xlYWsoZHQKICAgIC0+ ICBTZXEgU2NhbiBvbiBjYXRlZ29yeQogICAgLT4gIEhhc2gKICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBkb2N1bWVudAotICAgICAgICAgICAgICAgRmlsdGVyOiAoKGNpZCA8PiA0NCkgQU5EIChj aWQgPD4gNDQpIEFORCAoY2lkIDwgNTApIEFORCAoZGxldmVsIDw9IChJbml0UGxhbiBleHByXzEp LmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgICAgICAgICAgICAgIEZpbHRlcjogKChjaWQg PCA1MCkgQU5EIChkbGV2ZWwgPD0gKEluaXRQbGFuIGV4cHJfMSkuY29sMSkgQU5EIChjaWQgPD4g NDQpIEFORCAoY2lkIDw+IDQ0KSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAoOSByb3dzKQogCiAtLSA0 NCB3b3VsZCB0ZWNobmljYWxseSBmYWlsIGZvciBib3RoIHAyciBhbmQgcDFyLCBidXQgd2Ugc2hv dWxkIGdldCBhbiBlcnJvcgpAQCAtMjI2NCw3ICsyMjY0LDcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZG KSBVUERBVEUgYnYxIFNFVCBiID0gJ3l5eScgV0hFUkUgYSA9IDQgQU5EIGZfbGVhayhiKTsKIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIGIxCiAgICAtPiAgU2VxIFNjYW4gb24gYjEKLSAgICAg ICAgIEZpbHRlcjogKChhID4gMCkgQU5EIChhID0gNCkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZf bGVhayhiKSkKKyAgICAgICAgIEZpbHRlcjogKChhID0gNCkgQU5EIChhID4gMCkgQU5EICgoYSAl IDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgzIHJvd3MpCiAKIFVQREFURSBidjEgU0VUIGIgPSAn eXl5JyBXSEVSRSBhID0gNCBBTkQgZl9sZWFrKGIpOwpAQCAtMjI3NCw3ICsyMjc0LDcgQEAgRVhQ TEFJTiAoQ09TVFMgT0ZGKSBERUxFVEUgRlJPTSBidjEgV0hFUkUgYSA9IDYgQU5EIGZfbGVhayhi KTsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgRGVsZXRlIG9uIGIxCiAgICAtPiAgU2VxIFNjYW4gb24gYjEK LSAgICAgICAgIEZpbHRlcjogKChhID4gMCkgQU5EIChhID0gNikgQU5EICgoYSAlIDIpID0gMCkg QU5EIGZfbGVhayhiKSkKKyAgICAgICAgIEZpbHRlcjogKChhID0gNikgQU5EIChhID4gMCkgQU5E ICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgzIHJvd3MpCiAKIERFTEVURSBGUk9NIGJ2 MSBXSEVSRSBhID0gNiBBTkQgZl9sZWFrKGIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZWxlY3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3Qu b3V0CmluZGV4IDM0ZjA0MGJlZWNjLi4wY2RkMWEzN2IyNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZWxlY3Qub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2VsZWN0Lm91dApAQCAtODM0LDcgKzgzNCw3IEBAIHNlbGVjdCB1bmlxdWUyIGZyb20gb25l azIgd2hlcmUgdW5pcXVlMiA9IDExIGFuZCBzdHJpbmd1MSA8ICdDJzsKICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBTZXEgU2NhbiBvbiBv bmVrMgotICAgRmlsdGVyOiAoKHN0cmluZ3UxIDwgJ0MnOjpuYW1lKSBBTkQgKHVuaXF1ZTIgPSAx MSkpCisgICBGaWx0ZXI6ICgodW5pcXVlMiA9IDExKSBBTkQgKHN0cmluZ3UxIDwgJ0MnOjpuYW1l KSkKICgyIHJvd3MpCiAKIHNlbGVjdCB1bmlxdWUyIGZyb20gb25lazIgd2hlcmUgdW5pcXVlMiA9 IDExIGFuZCBzdHJpbmd1MSA8ICdDJzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vs ZWN0X2Rpc3RpbmN0Lm91dAppbmRleCAzNzliYTBiYzlmYS4uMjc0NGRhNmExMzkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9kaXN0aW5jdC5vdXQKQEAgLTMyMiw3ICsz MjIsNyBAQCBTRUxFQ1QgRElTVElOQ1QgZm91ciBGUk9NIHRlbmsxIFdIRVJFIGZvdXIgPSAwIEFO RCB0d28gPD4gMDsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIExpbWl0CiAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEKLSAgICAgICAgIEZpbHRlcjogKCh0 d28gPD4gMCkgQU5EIChmb3VyID0gMCkpCisgICAgICAgICBGaWx0ZXI6ICgoZm91ciA9IDApIEFO RCAodHdvIDw+IDApKQogKDMgcm93cykKIAogLS0gRW5zdXJlIG5vIHJvd3MgYXJlIHJldHVybmVk CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQKaW5kZXgg ODg1MjE2MDcxOGYuLjI0ZWQwZGZmYjg1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC91cGRhdGFibGVfdmlld3Mub3V0CkBAIC05NjQsNyArOTY0LDcgQEAgRVhQTEFJTiAoY29zdHMg b2ZmKSBVUERBVEUgcndfdmlldzIgU0VUIGE9MyBXSEVSRSBhPTI7CiAgICAgICAgICAtPiAgSW5k ZXggU2NhbiB1c2luZyBiYXNlX3RibF9wa2V5IG9uIGJhc2VfdGJsCiAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA9IDIpCiAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiByd192aWV3 MQotICAgICAgICAgICAgICAgRmlsdGVyOiAoKHJ3X3ZpZXcxLmEgPCAxMCkgQU5EIChyd192aWV3 MS5hID0gMikpCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgocndfdmlldzEuYSA9IDIpIEFORCAo cndfdmlldzEuYSA8IDEwKSkKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9u IGJhc2VfdGJsIGJhc2VfdGJsXzEKICAgICAgICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPiAwKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJh c2VfdGJsX3BrZXkKQEAgLTk3OSw3ICs5NzksNyBAQCBFWFBMQUlOIChjb3N0cyBvZmYpIERFTEVU RSBGUk9NIHJ3X3ZpZXcyIFdIRVJFIGE9MjsKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5n IGJhc2VfdGJsX3BrZXkgb24gYmFzZV90YmwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChh ID0gMikKICAgICAgICAgIC0+ICBTdWJxdWVyeSBTY2FuIG9uIHJ3X3ZpZXcxCi0gICAgICAgICAg ICAgICBGaWx0ZXI6ICgocndfdmlldzEuYSA8IDEwKSBBTkQgKHJ3X3ZpZXcxLmEgPSAyKSkKKyAg ICAgICAgICAgICAgIEZpbHRlcjogKChyd192aWV3MS5hID0gMikgQU5EIChyd192aWV3MS5hIDwg MTApKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYmFzZV90YmwgYmFz ZV90YmxfMQogICAgICAgICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IDApCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYmFzZV90YmxfcGtleQpA QCAtMTI1NSw3ICsxMjU1LDcgQEAgRVhQTEFJTiAoY29zdHMgb2ZmKSBVUERBVEUgcndfdmlldzIg U0VUIGE9MyBXSEVSRSBhPTI7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHJ3X3ZpZXcxIHJ3X3ZpZXcxXzEKICAg IC0+ICBTdWJxdWVyeSBTY2FuIG9uIHJ3X3ZpZXcxCi0gICAgICAgICBGaWx0ZXI6ICgocndfdmll dzEuYSA8IDEwKSBBTkQgKHJ3X3ZpZXcxLmEgPSAyKSkKKyAgICAgICAgIEZpbHRlcjogKChyd192 aWV3MS5hID0gMikgQU5EIChyd192aWV3MS5hIDwgMTApKQogICAgICAgICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYmFzZV90YmwKICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiAw KQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJhc2VfdGJsX3BrZXkK QEAgLTEyNjcsNyArMTI2Nyw3IEBAIEVYUExBSU4gKGNvc3RzIG9mZikgREVMRVRFIEZST00gcndf dmlldzIgV0hFUkUgYT0yOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIERlbGV0ZSBvbiByd192aWV3MSByd192aWV3MV8xCiAgICAt PiAgU3VicXVlcnkgU2NhbiBvbiByd192aWV3MQotICAgICAgICAgRmlsdGVyOiAoKHJ3X3ZpZXcx LmEgPCAxMCkgQU5EIChyd192aWV3MS5hID0gMikpCisgICAgICAgICBGaWx0ZXI6ICgocndfdmll dzEuYSA9IDIpIEFORCAocndfdmlldzEuYSA8IDEwKSkKICAgICAgICAgIC0+ICBCaXRtYXAgSGVh cCBTY2FuIG9uIGJhc2VfdGJsCiAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID4gMCkK ICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBiYXNlX3RibF9wa2V5CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCA1ZDRmOTEwMTU1ZS4uOWM4NDc4MDk3MzAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTIzLDcgKzEyMyw3IEBAIHRlc3Q6 IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJl cGFyZSBjb252ZXJzaW9uIHRyCiAjIFRoZSBzdGF0cyB0ZXN0IHJlc2V0cyBzdGF0cywgc28gbm90 aGluZyBlbHNlIG5lZWRpbmcgc3RhdHMgYWNjZXNzIGNhbiBiZSBpbgogIyB0aGlzIGdyb3VwLgog IyAtLS0tLS0tLS0tCi10ZXN0OiBwYXJ0aXRpb25fbWVyZ2UgcGFydGl0aW9uX3NwbGl0IHBhcnRp dGlvbl9qb2luIHBhcnRpdGlvbl9wcnVuZSByZWxvcHRpb25zIGhhc2hfcGFydCBpbmRleGluZyBw YXJ0aXRpb25fYWdncmVnYXRlIHBhcnRpdGlvbl9pbmZvIHR1cGxlc29ydCBleHBsYWluIG1lbW9p emUgc3RhdHMgcHJlZGljYXRlIG51bWEgZWFnZXJfYWdncmVnYXRlIGdyYXBoX3RhYmxlX3JscyBw bGFubmVyX2VzdAordGVzdDogcGFydGl0aW9uX21lcmdlIHBhcnRpdGlvbl9zcGxpdCBwYXJ0aXRp b25fam9pbiBwYXJ0aXRpb25fcHJ1bmUgcmVsb3B0aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFy dGl0aW9uX2FnZ3JlZ2F0ZSBwYXJ0aXRpb25faW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBtZW1vaXpl IHN0YXRzIHByZWRpY2F0ZSBwcmVkaWNhdGVfb3JkZXIgbnVtYSBlYWdlcl9hZ2dyZWdhdGUgZ3Jh cGhfdGFibGVfcmxzIHBsYW5uZXJfZXN0CiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3Vw IG9mIHBhcmFsbGVsIHRlc3RzIChjb21wcmVzc2lvbikKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3ByZWRpY2F0ZV9vcmRlci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVk aWNhdGVfb3JkZXIuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41 NTZhODYyMjdiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZWRp Y2F0ZV9vcmRlci5zcWwKQEAgLTAsMCArMSwxOTMgQEAKKy0tCistLSBQcmVkaWNhdGUgb3JkZXJp bmcgYnkgc2VsZWN0aXZpdHkKKy0tCistLSBUZXN0IDEuIENoZWNrIHJlb3JkZXJpbmcgb2YgZXF1 YWwtY29zdCBjbGF1c2VzIGJ5IHNlbGVjdGl2aXR5LgorLS0gICAgICAgICBCb3RoIGNsYXVzZXMg dXNlIHRoZSBidWlsdC1pbiAiPSIgb3BlcmF0b3IgYW5kIGhhdmUgdGhlCistLSAgICAgICAgIHNh bWUgcGVyLXR1cGxlIGNvc3QuICBUaGUgY2xhdXNlIG9uIGNvbHVtbiAiYSIgaXMgbW9yZQorLS0g ICAgICAgICBzZWxlY3RpdmUgYW5kIHNob3VsZCBhcHBlYXIgZmlyc3QgaW4gdGhlIEZpbHRlci4K Ky0tCisKK0NSRUFURSBUQUJMRSBwcmVkX29yZGVyICgKKwlhIGludCwKKwliIGludAorKTsKKwor SU5TRVJUIElOVE8gcHJlZF9vcmRlcgorU0VMRUNUIGksIGkgJSAyCitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDAwKSBBUyBnKGkpOworCitBTkFMWVpFIHByZWRfb3JkZXI7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCAqCitGUk9NIHByZWRfb3JkZXIKK1dIRVJFIGIgPSAwIEFORCBh ID0gMjsKKworU0VMRUNUIENPVU5UKCopCitGUk9NIHByZWRfb3JkZXIKK1dIRVJFIGIgPSAwIEFO RCBhID0gMjsKKworLS0KKy0tIFRlc3Qgc2V0dXAuIFVzZSBhIFNFVCBjbGF1c2UgdG8gcHJldmVu dCBTUUwtZnVuY3Rpb24gaW5saW5pbmcuCistLSAgICAgICAgICAgICBUaGlzIGtlZXBzIHRoZSBv cGVyYXRvciBub2RlIGFuZCBpdHMgZGVjbGFyZWQgY29zdAorLS0gICAgICAgICAgICAgdmlzaWJs ZSB0byB0aGUgcGxhbm5lci4KKy0tCisKK0NSRUFURSBGVU5DVElPTiBwcmVkX29yZGVyX2VxX3Ns b3coaW50LCBpbnQpCitSRVRVUk5TIGJvb2xlYW4KK0xBTkdVQUdFIHBscGdzcWwKK0lNTVVUQUJM RQorUEFSQUxMRUwgU0FGRQorQ09TVCAxLjUKK0FTICQkCitCRUdJTgorCVJFVFVSTiAkMSA9ICQy OworRU5EOworJCQ7CisKK0NSRUFURSBPUEVSQVRPUiAjPSMgKAorCUxFRlRBUkcgPSBpbnQ0LAor CVJJR0hUQVJHID0gaW50NCwKKwlQUk9DRURVUkUgPSBwcmVkX29yZGVyX2VxX3Nsb3csCisJUkVT VFJJQ1QgPSBlcXNlbCwKKwlKT0lOID0gZXFqb2luc2VsCispOworCistLQorLS0gVGVzdCAyLiBD aGVjayB0aGF0IGEgbW9yZSBzZWxlY3RpdmUgY2xhdXNlIGNhbiBtb3ZlIGJlZm9yZSBhCistLSAg ICAgICAgIGNoZWFwZXIgY2xhdXNlIHdoZW4gaXRzIGNvc3Qvc2VsZWN0aXZpdHkgcmFuayBpcyBi ZXR0ZXIuCistLSAgICAgICAgIEV4cGVjdGVkIHJlc3VsdDogdGhlIHByZWRpY2F0ZSBvbiBjb2x1 bW4gYSBpcyBldmFsdWF0ZWQKKy0tICAgICAgICAgYmVmb3JlIHRoZSBwcmVkaWNhdGUgb24gY29s dW1uIGIuIFRoZSBvbGQgY29zdC1vbmx5CistLSAgICAgICAgIG9yZGVyaW5nIHdvdWxkIGtlZXAg dGhlIGNoZWFwZXIgcHJlZGljYXRlIGZpcnN0LgorLS0KKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUICoKK0ZST00gcHJlZF9vcmRlcgorV0hFUkUgYiA9IDAgQU5EIGEgIz0jIDI7CisKK1NF TEVDVCBDT1VOVCgqKQorRlJPTSBwcmVkX29yZGVyCitXSEVSRSBiID0gMCBBTkQgYSAjPSMgMjsK KworLS0gVGVzdCBzZXR1cC4KKworQ1JFQVRFIEZVTkNUSU9OIHByZWRfb3JkZXJfZXFfdmVyeV9z bG93KGludCwgaW50KQorUkVUVVJOUyBib29sZWFuCitMQU5HVUFHRSBwbHBnc3FsCitJTU1VVEFC TEUKK1BBUkFMTEVMIFNBRkUKK0NPU1QgMTAKK0FTICQkCitCRUdJTgorCVJFVFVSTiAkMSA9ICQy OworRU5EOworJCQ7CisKK0NSRUFURSBPUEVSQVRPUiAjPT0jICgKKwlMRUZUQVJHID0gaW50NCwK KwlSSUdIVEFSRyA9IGludDQsCisJUFJPQ0VEVVJFID0gcHJlZF9vcmRlcl9lcV92ZXJ5X3Nsb3cs CisJUkVTVFJJQ1QgPSBlcXNlbCwKKwlKT0lOID0gZXFqb2luc2VsCispOworCistLQorLS0gVGVz dCAzLiBDaGVjayB0aGF0IGEgbXVjaCBtb3JlIGV4cGVuc2l2ZSBjbGF1c2Ugc3RheXMgYWZ0ZXIg YQorLS0gICAgICAgICBjaGVhcGVyIGNsYXVzZSB3aGVuIHNlbGVjdGl2aXR5IGRvZXMgbm90IGNv bXBlbnNhdGUgZm9yCistLSAgICAgICAgIHRoZSBleHRyYSBjb3N0LgorLS0gICAgICAgICBFeHBl Y3RlZCByZXN1bHQ6IHRoZSBwcmVkaWNhdGUgb24gY29sdW1uIGIgaXMgZXZhbHVhdGVkCistLSAg ICAgICAgIGJlZm9yZSB0aGUgcHJlZGljYXRlIG9uIGNvbHVtbiBhLgorLS0KKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUICoKK0ZST00gcHJlZF9vcmRlcgorV0hFUkUgYiA9IDAgQU5EIGEg Iz09IyAyOworCitTRUxFQ1QgQ09VTlQoKikKK0ZST00gcHJlZF9vcmRlcgorV0hFUkUgYiA9IDAg QU5EIGEgIz09IyAyOworCistLQorLS0gVGVzdCA0LiBDaGVjayB0aGF0IHJvdy1sZXZlbCBzZWN1 cml0eSBwcmVkaWNhdGVzIGFyZSBuZXZlcgorLS0gICAgICAgICByZW9yZGVyZWQgcGFzdCB1c2Vy LXN1cHBsaWVkIHByZWRpY2F0ZXMgZXZlbiB3aGVuCistLSAgICAgICAgIHRoZSB1c2VyIHByZWRp Y2F0ZSBoYXMgYSBiZXR0ZXIgcmFuay4KKy0tICAgICAgICAgRXhwZWN0ZWQgcmVzdWx0OiB0aGUg UkxTIHByZWRpY2F0ZSAoYiA9IDApIGlzIGV2YWx1YXRlZAorLS0gICAgICAgICBiZWZvcmUgdGhl IHVzZXIgcHJlZGljYXRlIChhICM9IyAyKSBiZWNhdXNlIHRoZSBsYXR0ZXIKKy0tICAgICAgICAg aXMgbm90IGxlYWtwcm9vZiBhbmQgaGFzIGEgaGlnaGVyIHNlY3VyaXR5X2xldmVsLgorLS0KKwor QUxURVIgVEFCTEUgcHJlZF9vcmRlciBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOworQUxURVIg VEFCTEUgcHJlZF9vcmRlciBGT1JDRSBST1cgTEVWRUwgU0VDVVJJVFk7CisKK0NSRUFURSBQT0xJ Q1kgcHJlZF9vcmRlcl9wb2xpY3kgT04gcHJlZF9vcmRlcgorCVVTSU5HIChiID0gMCk7CisKK0NS RUFURSBST0xFIHByZWRfb3JkZXJfcmxzX3VzZXI7CitHUkFOVCBTRUxFQ1QgT04gcHJlZF9vcmRl ciBUTyBwcmVkX29yZGVyX3Jsc191c2VyOworCitTRVQgUk9MRSBwcmVkX29yZGVyX3Jsc191c2Vy OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKgorRlJPTSBwcmVkX29yZGVyCitXSEVS RSBhICM9IyAyOworCitTRUxFQ1QgQ09VTlQoKikKK0ZST00gcHJlZF9vcmRlcgorV0hFUkUgYSAj PSMgMjsKKworUkVTRVQgUk9MRTsKKworRFJPUCBQT0xJQ1kgcHJlZF9vcmRlcl9wb2xpY3kgT04g cHJlZF9vcmRlcjsKK1JFVk9LRSBBTEwgT04gcHJlZF9vcmRlciBGUk9NIHByZWRfb3JkZXJfcmxz X3VzZXI7CitEUk9QIFJPTEUgcHJlZF9vcmRlcl9ybHNfdXNlcjsKKworQUxURVIgVEFCTEUgcHJl ZF9vcmRlciBESVNBQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKK0FMVEVSIFRBQkxFIHByZWRfb3Jk ZXIgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZOworCistLQorLS0gVGVzdCA1LiBDaGVjayB0 aGF0IGNsYXVzZXMgd2l0aCBpZGVudGljYWwgcmFua3MgcHJlc2VydmUgdGhlaXIKKy0tICAgICAg ICAgb3JpZ2luYWwgb3JkZXIuCistLSAgICAgICAgIEV4cGVjdGVkIHJlc3VsdDogYm90aCBjb2x1 bW5zIGhhdmUgdGhlIHNhbWUgc2VsZWN0aXZpdHkKKy0tICAgICAgICAgYW5kIGNvc3QsIHNvIHRo ZSBmaWx0ZXIga2VlcHMgdGhlIG9yaWdpbmFsIGNsYXVzZSBvcmRlcgorLS0gICAgICAgICAoYyA9 IDUpIEFORCAoZCA9IDUpLgorLS0KKworQ1JFQVRFIFRBQkxFIHByZWRfb3JkZXJfZXEgKAorCWMg aW50LAorCWQgaW50CispOworCitJTlNFUlQgSU5UTyBwcmVkX29yZGVyX2VxCitTRUxFQ1QgaSAl IDEwLCBpICUgMTAKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIGcoaSk7CisKK0FO QUxZWkUgcHJlZF9vcmRlcl9lcTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICoKK0ZS T00gcHJlZF9vcmRlcl9lcQorV0hFUkUgYyA9IDUgQU5EIGQgPSA1OworCitTRUxFQ1QgQ09VTlQo KikKK0ZST00gcHJlZF9vcmRlcl9lcQorV0hFUkUgYyA9IDUgQU5EIGQgPSA1OworCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgKgorRlJPTSBwcmVkX29yZGVyX2VxCitXSEVSRSBkID0gNSBB TkQgYyA9IDU7CisKK1NFTEVDVCBDT1VOVCgqKQorRlJPTSBwcmVkX29yZGVyX2VxCitXSEVSRSBk ID0gNSBBTkQgYyA9IDU7CisKK0RST1AgVEFCTEUgcHJlZF9vcmRlcl9lcTsKKworRFJPUCBPUEVS QVRPUiAjPT0jIChpbnQ0LCBpbnQ0KTsKK0RST1AgRlVOQ1RJT04gcHJlZF9vcmRlcl9lcV92ZXJ5 X3Nsb3coaW50LCBpbnQpOworRFJPUCBPUEVSQVRPUiAjPSMgKGludDQsIGludDQpOworRFJPUCBG VU5DVElPTiBwcmVkX29yZGVyX2VxX3Nsb3coaW50LCBpbnQpOworRFJPUCBUQUJMRSBwcmVkX29y ZGVyOwotLSAKMi40My4wCgo= --_003_41b98cf827294e60b726aedcca06f9d5ftdataru_ Content-Type: application/octet-stream; name="predicate_order_bench.sql" Content-Description: predicate_order_bench.sql Content-Disposition: attachment; filename="predicate_order_bench.sql"; size=2662; creation-date="Wed, 22 Apr 2026 05:29:26 GMT"; modification-date="Wed, 22 Apr 2026 05:31:41 GMT" Content-Transfer-Encoding: base64 LS0NCi0tIFN5bnRoZXRpYyBiZW5jaG1hcmsgZm9yIHF1YWwgY2xhdXNlIG9yZGVyaW5nDQotLQ0K LS0gVGhpcyBzY3JpcHQgaXMgaW50ZW5kZWQgb25seSBhcyBhbiBpbGx1c3RyYXRpb24gb2YgZXhl Y3V0b3Igd29yaw0KLS0gZGlmZmVyZW5jZXMgY2F1c2VkIGJ5IHF1YWwgcmVvcmRlcmluZy4gIEl0 IGlzIG5vdCBhIHJlZ3Jlc3Npb24gdGVzdC4NCi0tDQotLSBJdCBpcyBiZXN0IHJ1biBpbiBhIHN1 cGVydXNlciBzZXNzaW9uIGJlY2F1c2UgaXQgdXNlcyBwZ19zdGF0X3Jlc2V0KCkNCi0tIGFuZCBm dW5jdGlvbiBzdGF0aXN0aWNzLg0KLS0NCg0KU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9n YXRoZXIgPSAwOw0KU0VUIGppdCA9IG9mZjsNClNFVCBlbmFibGVfaW5kZXhzY2FuID0gb2ZmOw0K U0VUIGVuYWJsZV9iaXRtYXBzY2FuID0gb2ZmOw0KU0VUIHRyYWNrX2Z1bmN0aW9ucyA9ICdhbGwn Ow0KDQpEUk9QIE9QRVJBVE9SIElGIEVYSVNUUyAjPT0jIChpbnQ0LCBpbnQ0KTsNCkRST1AgT1BF UkFUT1IgSUYgRVhJU1RTICM9IyAoaW50NCwgaW50NCk7DQpEUk9QIEZVTkNUSU9OIElGIEVYSVNU UyBiZW5jaF9lcV9saWdodChpbnQsIGludCk7DQpEUk9QIEZVTkNUSU9OIElGIEVYSVNUUyBiZW5j aF9lcV9tZWRpdW0oaW50LCBpbnQpOw0KRFJPUCBUQUJMRSBJRiBFWElTVFMgcHJlZGljYXRlX2Jl bmNoOw0KDQotLSBVc2UgVU5MT0dHRUQgdG8gc3BlZWQgdXAgc2V0dXAuDQpDUkVBVEUgVU5MT0dH RUQgVEFCTEUgcHJlZGljYXRlX2JlbmNoICgNCglhIGludCwNCgliIGludA0KKTsNCg0KSU5TRVJU IElOVE8gcHJlZGljYXRlX2JlbmNoDQpTRUxFQ1QgZywNCiAgICAgICBDQVNFIFdIRU4gZyAlIDEw MCA9IDAgVEhFTiAxIEVMU0UgMCBFTkQNCkZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMDAwMDAp IEFTIHMoZyk7DQoNCkFOQUxZWkUgcHJlZGljYXRlX2JlbmNoOw0KDQpDUkVBVEUgRlVOQ1RJT04g YmVuY2hfZXFfbWVkaXVtKGludCwgaW50KQ0KUkVUVVJOUyBib29sZWFuDQpMQU5HVUFHRSBwbHBn c3FsDQpJTU1VVEFCTEUNClBBUkFMTEVMIFNBRkUNCkNPU1QgMg0KQVMgJCQNCkRFQ0xBUkUNCgl2 IGludCA6PSAkMTsNCglpIGludDsNCkJFR0lODQoJRk9SIGkgSU4gMS4uNDAgTE9PUA0KCQl2IDo9 IHYgIyBpOw0KCUVORCBMT09QOw0KDQoJUkVUVVJOICQxID0gJDI7DQpFTkQ7DQokJDsNCg0KQ1JF QVRFIE9QRVJBVE9SICM9IyAoDQoJTEVGVEFSRyA9IGludDQsDQoJUklHSFRBUkcgPSBpbnQ0LA0K CVBST0NFRFVSRSA9IGJlbmNoX2VxX21lZGl1bSwNCglSRVNUUklDVCA9IGVxc2VsLA0KCUpPSU4g PSBlcWpvaW5zZWwNCik7DQoNCkNSRUFURSBGVU5DVElPTiBiZW5jaF9lcV9saWdodChpbnQsIGlu dCkNClJFVFVSTlMgYm9vbGVhbg0KTEFOR1VBR0UgcGxwZ3NxbA0KSU1NVVRBQkxFDQpQQVJBTExF TCBTQUZFDQpDT1NUIDENCkFTICQkDQpERUNMQVJFDQoJdiBpbnQgOj0gJDE7DQoJaSBpbnQ7DQpC RUdJTg0KCUZPUiBpIElOIDEuLjIwIExPT1ANCgkJdiA6PSB2ICMgaTsNCglFTkQgTE9PUDsNCg0K CVJFVFVSTiAkMSA9ICQyOw0KRU5EOw0KJCQ7DQoNCkNSRUFURSBPUEVSQVRPUiAjPT0jICgNCglM RUZUQVJHID0gaW50NCwNCglSSUdIVEFSRyA9IGludDQsDQoJUFJPQ0VEVVJFID0gYmVuY2hfZXFf bGlnaHQsDQoJUkVTVFJJQ1QgPSBlcXNlbCwNCglKT0lOID0gZXFqb2luc2VsDQopOw0KDQpTRUxF Q1QgcGdfc3RhdF9yZXNldCgpOw0KDQotLQ0KLS0gVGhlIHByZWRpY2F0ZSAiYSAjPSMgNDIiIHBh c3NlcyBvbmx5IG9uZSByb3cuDQotLSBUaGUgcHJlZGljYXRlICJiICM9PSMgMCIgcGFzc2VzIGFi b3V0IDk5JSBvZiByb3dzLg0KLS0NCi0tIFdpdGggY29zdC1vbmx5IG9yZGVyaW5nLCB0aGUgY2hl YXBlciAiYiAjPT0jIDAiIGNsYXVzZSB0ZW5kcyB0byBzdGF5IGZpcnN0Og0KLS0gICBGaWx0ZXI6 ICgoYiAjPT0jIDApIEFORCAoYSAjPSMgNDIpKQ0KLS0NCi0tIFdpdGggY29zdC9zZWxlY3Rpdml0 eSBvcmRlcmluZywgdGhlIG1vcmUgc2VsZWN0aXZlICJhICM9IyA0MiIgY2xhdXNlDQotLSBzaG91 bGQgbW92ZSBmaXJzdDoNCi0tICAgRmlsdGVyOiAoKGEgIz0jIDQyKSBBTkQgKGIgIz09IyAwKSkN Ci0tDQpFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTLCBUSU1JTkcgT0ZGKQ0KU0VMRUNUIGNvdW50 KCopDQpGUk9NIHByZWRpY2F0ZV9iZW5jaA0KV0hFUkUgYiAjPT0jIDANCiAgQU5EIGEgIz0jIDQy Ow0KDQotLQ0KLS0gRnVuY3Rpb24gY2FsbCBjb3VudHMgYXJlIGEgY29udmVuaWVudCB3YXkgdG8g b2JzZXJ2ZSB0aGUgZGlmZmVyZW5jZToNCi0tDQotLSBOZXcgb3JkZXJpbmcgaXMgZXhwZWN0ZWQg dG8gcHJvZHVjZSBhcHByb3hpbWF0ZWx5Og0KLS0gICBiZW5jaF9lcV9saWdodCAgfCAgICAgICAx DQotLSAgIGJlbmNoX2VxX21lZGl1bSB8IDUwMDAwMDANCi0tDQotLSBPbGQgb3JkZXJpbmcgaXMg ZXhwZWN0ZWQgdG8gcHJvZHVjZSBhcHByb3hpbWF0ZWx5Og0KLS0gICBiZW5jaF9lcV9saWdodCAg fCA1MDAwMDAwDQotLSAgIGJlbmNoX2VxX21lZGl1bSB8IDQ5NTAwMDANCi0tDQpTRUxFQ1QgZnVu Y25hbWUsIGNhbGxzDQpGUk9NIHBnX3N0YXRfdXNlcl9mdW5jdGlvbnMNCldIRVJFIGZ1bmNuYW1l IExJS0UgJ2JlbmNoX2VxXyUnDQpPUkRFUiBCWSBmdW5jbmFtZTsNCg== --_003_41b98cf827294e60b726aedcca06f9d5ftdataru_--