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 1vQRve-007mO7-1w for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Dec 2025 15:04:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vQRvd-008THa-2H for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Dec 2025 15:04:34 +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 1vQRvd-008THR-16 for pgsql-hackers@lists.postgresql.org; Tue, 02 Dec 2025 15:04:33 +0000 Received: from mail-yw1-x112c.google.com ([2607:f8b0:4864:20::112c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vQRvW-002kpq-1K for pgsql-hackers@postgresql.org; Tue, 02 Dec 2025 15:04:28 +0000 Received: by mail-yw1-x112c.google.com with SMTP id 00721157ae682-787eb2d8663so80062367b3.0 for ; Tue, 02 Dec 2025 07:04:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764687864; x=1765292664; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=c1rdT+WyYib2EOfX22hIcLmKM7+7UJWkL43vCromfLQ=; b=cbK5NWpjpZoVgbUFvan862Tbv6+cq7rZ/K/IbUuJsefbHUDIhEqEGZKQYm0bBiIdY8 zTWXu54Bikd6/Rcar+8HPiE9gyXMzBP0H0Q7XH+ciZ5TzzLlgojePLgBEdTR+0DUjABf rg/gi3vBzc1q8DvXTlYBVYNxtAYggp6AwkaF7aaHBgc2+i5+NsKz9vHeLrQ/6nFOeObR D7b+3KydYk9NfWHE9pTmieOVWsNeNtMZwgm6irex7KWVH+LqJ8GEfIaco/M1mhL8Xutz tE65VLhJJWnYXSBRCtGTLIkTIFgTNeT9xDPdFL+vzGjquZw8MOOux44jACdxLbFTu6I/ PuNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764687864; x=1765292664; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=c1rdT+WyYib2EOfX22hIcLmKM7+7UJWkL43vCromfLQ=; b=Fo1gS8xno57WjkeOti0FrxaanPSy9XQqMssMMZQ1ymzSPgzJhfzcTpTrHbDFQ25xor i5QLaQs7aO33sw16mPVaaBlSOUELjGbZKKIMbshBHnHnZPHPx76/n6jrqREVAp69m03/ 9Tx0F9H9UGQCSXbKfc6daxeYFiPwhTRnbBMZkhAtqAyDYuOpo8etWpy2ITdVazO+jg3G dKfpU8+KZMGPvGyTgdtquoAMWpR+9zQB+L0ZfQ8tiiiJXzSV0sCtRqvxhSdqoBEl61jO i2subxLvkxkpNrHF6zX60ThDmPmQvf/8v6B5gA2HnvTtrJ+C8nJV8qv1eKU4AtWbLaGU SoyA== X-Gm-Message-State: AOJu0YyW7NR21C9ollyf9d+sucWbfiTyShuxc1HX34nOsIz4CcIhJ51K P0daUo5otLsVAxxLq8JMnEG2jpPe9wI8yrGyiAhX84fYLR9+Xffz9RVZdMxsLzoaigPGl6P3mHu IwxRxmZzmz2t1dTe7Iiahpf8vMk+yIXc= X-Gm-Gg: ASbGncu+7G1p6EuUh7gcsM3tgUp7dDe7N4LhxAhhT9MhYwjKDm02W5qjE4JQRsQqych NFYQiV8Pe9h5Uhc3tg6CWGhzKpAlox7gA75PR2tZ4kKnIdY5f88WdL9TouhnD8J0SvPWgDliILb QggVpVWVJPP/53P2u5i8mEse2FYhdSpdwh2RWuZ9x9F1/+0ngG5IngeYi+Z9i0zknGTl225t6ft lAv2PJms06Hp7cYVoCHC0urFkyvmWcBZlVKaw1pSA+MdEIhGp2h6+f6aqS2R3uNygi29rQ1frN8 Q7I16+ZHq33NLYBdRT52o+Fce33H/34KllCbbA87vin1beyG0QycTHLO4RXLkTV1X3qEhPhsS/R z57v/2gAWTp1UmFY3NiWWzXpHoa6tdab9iiSupg4mth5PXmo1DBm3tsjU1PJnpH3xThTOGjMymh gWy7wdZlnj X-Google-Smtp-Source: AGHT+IHkQpdqJWj/sHLcdWOIqLEbkRTyIp9MGK+0cbGUejwn7m6MDg6vG5XSnzNTh8HrDJDcG1eZ+nIIfOOXdROxD/U= X-Received: by 2002:a05:690e:118a:b0:63f:aa88:5f6b with SMTP id 956f58d0204a3-6442f12cc53mr2017507d50.6.1764687864065; Tue, 02 Dec 2025 07:04:24 -0800 (PST) MIME-Version: 1.0 References: <1118236.1763485279@sss.pgh.pa.us> In-Reply-To: <1118236.1763485279@sss.pgh.pa.us> From: jian he Date: Tue, 2 Dec 2025 23:03:47 +0800 X-Gm-Features: AWmQ_bkkBuAvP0YWKln7twjEWCjV2GmIukiGzg1gfVQ_fczFOYB5i7Zn9Ctjl5w Message-ID: Subject: Re: IS JSON predicate support for domain base type as JSON/JSONB/BYTEA/TEXT To: Tom Lane Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="0000000000004778cc0644f96958" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004778cc0644f96958 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Nov 19, 2025 at 1:01=E2=80=AFAM Tom Lane wrote: > > jian he writes: > > [ v1-0001-IS-JSON-predicate-work-with-domain-type.patch ] > > This looks like a large patch with a small patch struggling to > get out of it. Why didn't you simply do > > - *exprtype =3D exprType(expr); > + *exprtype =3D getBaseType(exprType(expr)); > > in transformJsonParseArg? > yech. While at it, I added parser_errposition to the transformJsonIsPredicate ere= port. errmsg("cannot use type %s in IS JSON predicate", format_type_be(exprtype)) we don't need to worry about exprtype as InvalidOid, because transformJsonParseArg (exprType(expr)) would fail already in that case. -- jian https://www.enterprisedb.com/ --0000000000004778cc0644f96958 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-IS-JSON-predicate-work-with-domain-type.patch" Content-Disposition: attachment; filename="v2-0001-IS-JSON-predicate-work-with-domain-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miopi0it0 RnJvbSBiMmJkYTQ1MWIzMjc1ZmEzNWZlOWQyZjI3MGE5YjQ4OWRiMGVkMDI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAyMzowMDoyMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIg MS8xXSBJUyBKU09OIHByZWRpY2F0ZSB3b3JrIHdpdGggZG9tYWluIHR5cGUKCklTIEpTT04gcHJl ZGljYXRlIHdvcmsgd2l0aCBkb21haW4gYmFzZSB0eXBlIGlzIFRFWFQsIEpTT04sIEpTT05CLCBC WVRFQS4KCmh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC82MjM3LwpkaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhFazM0RG5KRkc3MkNSc1BQVDR0c0pM OWFyb2JYMHROUHNuN3lIMjhKPXpRZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgfCAgIDIgKwogc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1 bmNzLmMgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAg ICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICB8ICAg NyArLQogc3JjL2luY2x1ZGUvbm9kZXMvbWFrZWZ1bmNzLmggICAgICAgICB8ICAgMiArLQogc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3NxbGpzb24ub3V0IHwgMjI0ICsrKysrKysrKysrKysrKysrKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zcWxqc29uLnNxbCAgICAgIHwgMTE4ICsrKysrKysrKysr KysrCiA4IGZpbGVzIGNoYW5nZWQsIDM1NiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDBlMWE3NDk3NmY3Li41NTgw ZmM4ZTBlNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC00NzQ2LDYg KzQ3NDYsOCBAQCBFeGVjRXZhbEpzb25Jc1ByZWRpY2F0ZShFeHByU3RhdGUgKnN0YXRlLCBFeHBy RXZhbFN0ZXAgKm9wKQogCX0KIAogCWV4cHJ0eXBlID0gZXhwclR5cGUocHJlZC0+ZXhwcik7CisJ aWYgKGV4cHJ0eXBlICE9IHByZWQtPnJlc3VsdEJhc2VUeXBlKQorCQlleHBydHlwZSA9IHByZWQt PnJlc3VsdEJhc2VUeXBlOwogCiAJaWYgKGV4cHJ0eXBlID09IFRFWFRPSUQgfHwgZXhwcnR5cGUg PT0gSlNPTk9JRCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jCmluZGV4IGUyZDllOWJlNDFhLi4xOGNm YTZkZjRhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKQEAgLTk4NCw3ICs5ODQsNyBAQCBtYWtlSnNv bktleVZhbHVlKE5vZGUgKmtleSwgTm9kZSAqdmFsdWUpCiAgKi8KIE5vZGUgKgogbWFrZUpzb25J c1ByZWRpY2F0ZShOb2RlICpleHByLCBKc29uRm9ybWF0ICpmb3JtYXQsIEpzb25WYWx1ZVR5cGUg aXRlbV90eXBlLAotCQkJCQlib29sIHVuaXF1ZV9rZXlzLCBpbnQgbG9jYXRpb24pCisJCQkJCWJv b2wgdW5pcXVlX2tleXMsIE9pZCByZXN1bHRCYXNlVHlwZSwgaW50IGxvY2F0aW9uKQogewogCUpz b25Jc1ByZWRpY2F0ZSAqbiA9IG1ha2VOb2RlKEpzb25Jc1ByZWRpY2F0ZSk7CiAKQEAgLTk5Miw2 ICs5OTIsNyBAQCBtYWtlSnNvbklzUHJlZGljYXRlKE5vZGUgKmV4cHIsIEpzb25Gb3JtYXQgKmZv cm1hdCwgSnNvblZhbHVlVHlwZSBpdGVtX3R5cGUsCiAJbi0+Zm9ybWF0ID0gZm9ybWF0OwogCW4t Pml0ZW1fdHlwZSA9IGl0ZW1fdHlwZTsKIAluLT51bmlxdWVfa2V5cyA9IHVuaXF1ZV9rZXlzOwor CW4tPnJlc3VsdEJhc2VUeXBlID0gcmVzdWx0QmFzZVR5cGU7CiAJbi0+bG9jYXRpb24gPSBsb2Nh dGlvbjsKIAogCXJldHVybiAoTm9kZSAqKSBuOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYzNhMGEzNTRhOWMu LmZhNzA3NjFjMDZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTE1NTIyLDcgKzE1NTIyLDcgQEAgYV9leHBy OgkJY19leHByCQkJCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQkJewogCQkJCQlKc29uRm9ybWF0ICpm b3JtYXQgPSBtYWtlSnNvbkZvcm1hdChKU19GT1JNQVRfREVGQVVMVCwgSlNfRU5DX0RFRkFVTFQs IC0xKTsKIAotCQkJCQkkJCA9IG1ha2VKc29uSXNQcmVkaWNhdGUoJDEsIGZvcm1hdCwgJDMsICQ0 LCBAMSk7CisJCQkJCSQkID0gbWFrZUpzb25Jc1ByZWRpY2F0ZSgkMSwgZm9ybWF0LCAkMywgJDQs IEludmFsaWRPaWQsIEAxKTsKIAkJCQl9CiAJCQkvKgogCQkJICogUmVxdWlyZWQgYnkgU1FML0pT T04sIGJ1dCB0aGVyZSBhcmUgY29uZmxpY3RzCkBAIC0xNTUzMSw3ICsxNTUzMSw3IEBAIGFfZXhw cjoJCWNfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCUlTICBqc29uX3ByZWRpY2F0ZV90 eXBlX2NvbnN0cmFpbnQKIAkJCQkJanNvbl9rZXlfdW5pcXVlbmVzc19jb25zdHJhaW50X29wdAkJ JXByZWMgSVMKIAkJCQl7Ci0JCQkJCSQkID0gbWFrZUpzb25Jc1ByZWRpY2F0ZSgkMSwgJDIsICQ0 LCAkNSwgQDEpOworCQkJCQkkJCA9IG1ha2VKc29uSXNQcmVkaWNhdGUoJDEsICQyLCAkNCwgJDUs IEludmFsaWRPaWQsIEAxKTsKIAkJCQl9CiAJCQkqLwogCQkJfCBhX2V4cHIgSVMgTk9UCkBAIC0x NTU0MCw3ICsxNTU0MCw3IEBAIGFfZXhwcjoJCWNfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQog CQkJCXsKIAkJCQkJSnNvbkZvcm1hdCAqZm9ybWF0ID0gbWFrZUpzb25Gb3JtYXQoSlNfRk9STUFU X0RFRkFVTFQsIEpTX0VOQ19ERUZBVUxULCAtMSk7CiAKLQkJCQkJJCQgPSBtYWtlTm90RXhwciht YWtlSnNvbklzUHJlZGljYXRlKCQxLCBmb3JtYXQsICQ0LCAkNSwgQDEpLCBAMSk7CisJCQkJCSQk ID0gbWFrZU5vdEV4cHIobWFrZUpzb25Jc1ByZWRpY2F0ZSgkMSwgZm9ybWF0LCAkNCwgJDUsIElu dmFsaWRPaWQsIEAxKSwgQDEpOwogCQkJCX0KIAkJCS8qCiAJCQkgKiBSZXF1aXJlZCBieSBTUUwv SlNPTiwgYnV0IHRoZXJlIGFyZSBjb25mbGljdHMKQEAgLTE1NTUwLDcgKzE1NTUwLDcgQEAgYV9l eHByOgkJY19leHByCQkJCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQkJCWpzb25fcHJlZGljYXRlX3R5 cGVfY29uc3RyYWludAogCQkJCQlqc29uX2tleV91bmlxdWVuZXNzX2NvbnN0cmFpbnRfb3B0CQkl cHJlYyBJUwogCQkJCXsKLQkJCQkJJCQgPSBtYWtlTm90RXhwcihtYWtlSnNvbklzUHJlZGljYXRl KCQxLCAkMiwgJDUsICQ2LCBAMSksIEAxKTsKKwkJCQkJJCQgPSBtYWtlTm90RXhwcihtYWtlSnNv bklzUHJlZGljYXRlKCQxLCAkMiwgJDUsICQ2LCBJbnZhbGlkT2lkLCBAMSksIEAxKTsKIAkJCQl9 CiAJCQkqLwogCQkJfCBERUZBVUxUCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA0NGZkMTM4 NWY4Yy4uYjFhY2QxNmRmNGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDA1Niw3ICs0 MDU2LDcgQEAgdHJhbnNmb3JtSnNvblBhcnNlQXJnKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq anNleHByLCBKc29uRm9ybWF0ICpmb3JtYXQsCiAJTm9kZQkgICAqcmF3X2V4cHIgPSB0cmFuc2Zv cm1FeHByUmVjdXJzZShwc3RhdGUsIGpzZXhwcik7CiAJTm9kZQkgICAqZXhwciA9IHJhd19leHBy OwogCi0JKmV4cHJ0eXBlID0gZXhwclR5cGUoZXhwcik7CisJKmV4cHJ0eXBlID0gZ2V0QmFzZVR5 cGUoZXhwclR5cGUoZXhwcikpOwogCiAJLyogcHJlcGFyZSBpbnB1dCBkb2N1bWVudCAqLwogCWlm ICgqZXhwcnR5cGUgPT0gQllURUFPSUQpCkBAIC00MTExLDExICs0MTExLDEyIEBAIHRyYW5zZm9y bUpzb25Jc1ByZWRpY2F0ZShQYXJzZVN0YXRlICpwc3RhdGUsIEpzb25Jc1ByZWRpY2F0ZSAqcHJl ZCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01B VENIKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIHR5cGUgJXMgaW4gSVMgSlNPTiBwcmVkaWNh dGUiLAotCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwcnR5cGUpKSkpOworCQkJCQkJZm9ybWF0X3R5 cGVfYmUoZXhwcnR5cGUpKSksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxv Y2F0aW9uKGV4cHIpKSk7CiAKIAkvKiBUaGlzIGludGVudGlvbmFsbHkoPykgZHJvcHMgdGhlIGZv cm1hdCBjbGF1c2UuICovCiAJcmV0dXJuIG1ha2VKc29uSXNQcmVkaWNhdGUoZXhwciwgTlVMTCwg cHJlZC0+aXRlbV90eXBlLAotCQkJCQkJCSAgIHByZWQtPnVuaXF1ZV9rZXlzLCBwcmVkLT5sb2Nh dGlvbik7CisJCQkJCQkJICAgcHJlZC0+dW5pcXVlX2tleXMsIGV4cHJ0eXBlLCBwcmVkLT5sb2Nh dGlvbik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9tYWtlZnVuY3Mu aCBiL3NyYy9pbmNsdWRlL25vZGVzL21ha2VmdW5jcy5oCmluZGV4IDU0NzNjZTlhMjg4Li4wOWE2 NGJmNWQwNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvbWFrZWZ1bmNzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvbWFrZWZ1bmNzLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBleHRlcm4g SnNvblZhbHVlRXhwciAqbWFrZUpzb25WYWx1ZUV4cHIoRXhwciAqcmF3X2V4cHIsIEV4cHIgKmZv cm1hdHRlZF9leHByLAogZXh0ZXJuIE5vZGUgKm1ha2VKc29uS2V5VmFsdWUoTm9kZSAqa2V5LCBO b2RlICp2YWx1ZSk7CiBleHRlcm4gTm9kZSAqbWFrZUpzb25Jc1ByZWRpY2F0ZShOb2RlICpleHBy LCBKc29uRm9ybWF0ICpmb3JtYXQsCiAJCQkJCQkJCSBKc29uVmFsdWVUeXBlIGl0ZW1fdHlwZSwg Ym9vbCB1bmlxdWVfa2V5cywKLQkJCQkJCQkJIGludCBsb2NhdGlvbik7CisJCQkJCQkJCSBPaWQg cmVzdWx0QmFzZVR5cGUsIGludCBsb2NhdGlvbik7CiBleHRlcm4gSnNvbkJlaGF2aW9yICptYWtl SnNvbkJlaGF2aW9yKEpzb25CZWhhdmlvclR5cGUgYnR5cGUsIE5vZGUgKmV4cHIsCiAJCQkJCQkJ CQkgIGludCBsb2NhdGlvbik7CiBleHRlcm4gSnNvblRhYmxlUGF0aCAqbWFrZUpzb25UYWJsZVBh dGgoQ29uc3QgKnBhdGh2YWx1ZSwgY2hhciAqcGF0aG5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApp bmRleCAxYjQ0MzZmMmZmNi4uYjhlZTZjZjY4ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0x NzYxLDYgKzE3NjEsNyBAQCB0eXBlZGVmIHN0cnVjdCBKc29uSXNQcmVkaWNhdGUKIAlKc29uRm9y bWF0ICpmb3JtYXQ7CQkJLyogRk9STUFUIGNsYXVzZSwgaWYgc3BlY2lmaWVkICovCiAJSnNvblZh bHVlVHlwZSBpdGVtX3R5cGU7CS8qIEpTT04gaXRlbSB0eXBlICovCiAJYm9vbAkJdW5pcXVlX2tl eXM7CS8qIGNoZWNrIGtleSB1bmlxdWVuZXNzPyAqLworCU9pZAkJCXJlc3VsdEJhc2VUeXBlOwkv KiBiYXNlIHR5cGUgb2YgZXhwciAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9j YXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gSnNvbklzUHJlZGljYXRlOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NxbGpzb24ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zcWxqc29uLm91dAppbmRleCBjN2I5ZTU3NTQ0NS4uOGFjMTJkYzM3YTkg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3FsanNvbi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uLm91dApAQCAtMTExMCw2ICsxMTEwLDEx IEBAIENSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLmpzb25fYXJyYXlfc3VicXVlcnlfdmll dyBBUwogICAgICAgICAgICAgICAgICAgIEZST00gKCBWQUxVRVMgKDEpLCAoMiksIChOVUxMOjpp bnRlZ2VyKSwgKDQpKSBmb28oaSkpIHEoYSkpIEFTICJqc29uX2FycmF5IgogRFJPUCBWSUVXIGpz b25fYXJyYXlfc3VicXVlcnlfdmlldzsKIC0tIElTIEpTT04gcHJlZGljYXRlCitDUkVBVEUgRE9N QUlOIGpkMSBBUyBKU09OIENIRUNLICgoVkFMVUUgLT4nYScpOjp0ZXh0IDw+ICczJyk7CitDUkVB VEUgRE9NQUlOIGpkMiBBUyBKU09OQiBDSEVDSyAoKFZBTFVFIC0+J2EnKSA9ICcxJzo6anNvbmIp OworQ1JFQVRFIERPTUFJTiBqZDMgQVMgdGV4dCBDSEVDSyAoVkFMVUUgPD4gJ2EnKTsKK0NSRUFU RSBET01BSU4gamQ0IEFTIGJ5dGVhIENIRUNLIChWQUxVRSA8PiAnXHg2MScpOworQ1JFQVRFIERP TUFJTiBqZDUgQVMgZGF0ZSBDSEVDSyAoVkFMVUUgPD4gTlVMTCk7CiBTRUxFQ1QgTlVMTCBJUyBK U09OOwogID9jb2x1bW4/IAogLS0tLS0tLS0tLQpAQCAtMTE0OCw2ICsxMTUzLDEzMSBAQCBTRUxF Q1QgTlVMTDo6Ynl0ZWEgSVMgSlNPTjsKIAogU0VMRUNUIE5VTEw6OmludCBJUyBKU09OOwogRVJS T1I6ICBjYW5ub3QgdXNlIHR5cGUgaW50ZWdlciBpbiBJUyBKU09OIHByZWRpY2F0ZQorTElORSAx OiBTRUxFQ1QgTlVMTDo6aW50IElTIEpTT047CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgTlVM TDo6amQxIElTIEpTT047CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NF TEVDVCBOVUxMOjpqZDEgSVMgTk9UIEpTT047CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCBOVUxMOjpqZDIgSVMgSlNPTjsKKyA/Y29sdW1uPyAKKy0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIE5VTEw6OmpkMyBJUyBKU09OOworID9jb2x1bW4/IAor LS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgTlVMTDo6amQ0IElTIEpTT047CisgP2Nv bHVtbj8gCistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBOVUxMOjpqZDQgSVMgTk9U IEpTT047CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBOVUxM OjpqZDUgSVMgSlNPTjsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgdXNlIHR5cGUgZGF0ZSBpbiBJ UyBKU09OIHByZWRpY2F0ZQorTElORSAxOiBTRUxFQ1QgTlVMTDo6amQ1IElTIEpTT047CisgICAg ICAgICAgICAgICBeCitTRUxFQ1QgTlVMTDo6amQ1IElTIEpTT04gV0lUSCBVTklRVUUgS0VZUzsg LS1lcnJvcgorRVJST1I6ICBjYW5ub3QgdXNlIHR5cGUgZGF0ZSBpbiBJUyBKU09OIHByZWRpY2F0 ZQorTElORSAxOiBTRUxFQ1QgTlVMTDo6amQ1IElTIEpTT04gV0lUSCBVTklRVUUgS0VZUzsKKyAg ICAgICAgICAgICAgIF4KK0NSRUFURSBWSUVXIGRvbWFpbl9pc2pzb24gQVMKK1dJVEggY3RlKGEp IGFzIChWQUxVRVMoJ3siYSI6IDEsICJhIjogMn0nKSkKK1NFTEVDVCBhOjpqZDEgSVMgSlNPTiBX SVRIIFVOSVFVRSBLRVlTIGFzIGNvbDEsCisJYTo6amQzIElTIEpTT04gV0lUSCBVTklRVUUgS0VZ UyBhcyBjb2wyLAorCWE6OmpkNCBJUyBKU09OIFdJVEggVU5JUVVFIEtFWVMgYXMgY29sMworRlJP TSBjdGU7Citcc3YgZG9tYWluX2lzanNvbgorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMu ZG9tYWluX2lzanNvbiBBUworIFdJVEggY3RlKGEpIEFTICgKKyAgICAgICAgIFZBTFVFUyAoJ3si YSI6IDEsICJhIjogMn0nOjp0ZXh0KQorICAgICAgICApCisgU0VMRUNUIGE6OmpkMSBJUyBKU09O IFdJVEggVU5JUVVFIEtFWVMgQVMgY29sMSwKKyAgICBhOjpqZDMgSVMgSlNPTiBXSVRIIFVOSVFV RSBLRVlTIEFTIGNvbDIsCisgICAgYTo6amQ0IElTIEpTT04gV0lUSCBVTklRVUUgS0VZUyBBUyBj b2wzCisgICBGUk9NIGN0ZQorU0VMRUNUICogRlJPTSBkb21haW5faXNqc29uOworIGNvbDEgfCBj b2wyIHwgY29sMyAKKy0tLS0tLSstLS0tLS0rLS0tLS0tCisgZiAgICB8IGYgICAgfCBmCisoMSBy b3cpCisKK0NSRUFURSBURU1QIFRBQkxFIHRzX2RvbWFpbihqcyB0ZXh0KTsKK0lOU0VSVCBJTlRP IHRzX2RvbWFpbiBWQUxVRVMgKCd7ImEiOjN9JyksICgneyJhIjoiMSJ9JyksICgnYScpLCAoJ1x4 NjEnKTsKK1NFTEVDVCBqczo6amQxIElTIEpTT04gRlJPTSB0c19kb21haW47CitFUlJPUjogIHZh bHVlIGZvciBkb21haW4gamQxIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImpkMV9jaGVjayIK K1NFTEVDVCBqczo6amQyIElTIEpTT04gRlJPTSB0c19kb21haW47CitFUlJPUjogIHZhbHVlIGZv ciBkb21haW4gamQyIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImpkMl9jaGVjayIKK1NFTEVD VCBqczo6amQzIElTIEpTT04gRlJPTSB0c19kb21haW47CitFUlJPUjogIHZhbHVlIGZvciBkb21h aW4gamQzIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImpkM19jaGVjayIKK1NFTEVDVCBqczo6 amQ0IElTIEpTT04gRlJPTSB0c19kb21haW47CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gamQ0 IHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImpkNF9jaGVjayIKK1NFTEVDVCBqcywKKyAgcGdf dHlwZW9mKGpzKSwKKyAganMgSVMgSlNPTiBPQkpFQ1QgIm9iamVjdD8iLAorICBqcyBJUyBKU09O IEFSUkFZICJhcnJheT8iLAorICBqcyBJUyBKU09OIEFSUkFZIFdJVEggVU5JUVVFIEtFWVMgImFy cmF5IHcuIFVLPyIsCisgIGpzIElTIEpTT04gQVJSQVkgV0lUSE9VVCBVTklRVUUgS0VZUyAiYXJy YXkgdy9vIFVLPyIKK0ZST00gKFZBTFVFUyAoJ1t7ImEiOiIxIn0sIHsiYiI6IjIiLCJiIjoiMyJ9 XSc6OmpkMSkpIGZvbyhqcyk7CisgICAgICAgICAgICAgICBqcyAgICAgICAgICAgICAgIHwgcGdf dHlwZW9mIHwgb2JqZWN0PyB8IGFycmF5PyB8IGFycmF5IHcuIFVLPyB8IGFycmF5IHcvbyBVSz8g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgW3siYSI6IjEifSwgeyJi IjoiMiIsImIiOiIzIn1dIHwgamQxICAgICAgIHwgZiAgICAgICB8IHQgICAgICB8IGYgICAgICAg ICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIGpzLAorICBwZ190eXBlb2YoanMpLAorICBqcyBJ UyBKU09OIE9CSkVDVCAib2JqZWN0PyIsCisgIGpzIElTIEpTT04gQVJSQVkgImFycmF5PyIsCisg IGpzIElTIEpTT04gQVJSQVkgV0lUSCBVTklRVUUgS0VZUyAiYXJyYXkgdy4gVUs/IiwKKyAganMg SVMgSlNPTiBBUlJBWSBXSVRIT1VUIFVOSVFVRSBLRVlTICJhcnJheSB3L28gVUs/IgorRlJPTSAo VkFMVUVTICgnW3siYSI6IjEifSwgeyJiIjoiMiIsImIiOiIzIn1dJzo6amQyKSkgZm9vKGpzKTsK KyAgICAgICAgICAgIGpzICAgICAgICAgICAgfCBwZ190eXBlb2YgfCBvYmplY3Q/IHwgYXJyYXk/ IHwgYXJyYXkgdy4gVUs/IHwgYXJyYXkgdy9vIFVLPyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0KKyBbeyJhIjogIjEifSwgeyJiIjogIjMifV0gfCBqZDIgICAgICAgfCBmICAgICAg IHwgdCAgICAgIHwgdCAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitTRUxFQ1QganMsCisgIHBn X3R5cGVvZihqcyksCisgIGpzIElTIEpTT04gT0JKRUNUICJvYmplY3Q/IiwKKyAganMgSVMgSlNP TiBBUlJBWSAiYXJyYXk/IiwKKyAganMgSVMgSlNPTiBBUlJBWSBXSVRIIFVOSVFVRSBLRVlTICJh cnJheSB3LiBVSz8iLAorICBqcyBJUyBKU09OIEFSUkFZIFdJVEhPVVQgVU5JUVVFIEtFWVMgImFy cmF5IHcvbyBVSz8iCitGUk9NIChWQUxVRVMgKCdbeyJhIjoiMSJ9LCB7ImIiOiIyIiwiYiI6IjMi fV0nOjpqZDMpKSBmb28oanMpOworICAgICAgICAgICAgICAganMgICAgICAgICAgICAgICB8IHBn X3R5cGVvZiB8IG9iamVjdD8gfCBhcnJheT8gfCBhcnJheSB3LiBVSz8gfCBhcnJheSB3L28gVUs/ IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIFt7ImEiOiIxIn0sIHsi YiI6IjIiLCJiIjoiMyJ9XSB8IGpkMyAgICAgICB8IGYgICAgICAgfCB0ICAgICAgfCBmICAgICAg ICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCBqcywKKyAgcGdfdHlwZW9mKGpzKSwKKyAganMg SVMgSlNPTiBPQkpFQ1QgIm9iamVjdD8iLAorICBqcyBJUyBKU09OIEFSUkFZICJhcnJheT8iLAor ICBqcyBJUyBKU09OIEFSUkFZIFdJVEggVU5JUVVFIEtFWVMgImFycmF5IHcuIFVLPyIsCisgIGpz IElTIEpTT04gQVJSQVkgV0lUSE9VVCBVTklRVUUgS0VZUyAiYXJyYXkgdy9vIFVLPyIKK0ZST00g KFZBTFVFUyAoJ1t7ImEiOiIxIn0sIHsiYiI6IjIiLCJiIjoiMyJ9XSc6OmpkNCkpIGZvbyhqcyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBwZ190eXBlb2YgfCBvYmplY3Q/IHwgYXJyYXk/IHwgYXJyYXkgdy4gVUs/IHwg YXJyYXkgdy9vIFVLPyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIFx4NWI3YjIyNjEyMjNhMjIzMTIyN2QyYzIw N2IyMjYyMjIzYTIyMzIyMjJjMjI2MjIyM2EyMjMzMjI3ZDVkIHwgamQ0ICAgICAgIHwgZiAgICAg ICB8IHQgICAgICB8IGYgICAgICAgICAgICB8IHQKKygxIHJvdykKKwogU0VMRUNUICcnIElTIEpT T047CiAgP2NvbHVtbj8gCiAtLS0tLS0tLS0tCkBAIC0xMjA2LDYgKzEzMzYsMzMgQEAgRlJPTQog IFsiYSIsXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAg fCB0ICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAg ICAgfCBmICAgICAgICAgICAgICB8IGYKICgxNiByb3dzKQogCitTRUxFQ1QKKwlqcywKKwlqcyBJ UyBKU09OICJJUyBKU09OIiwKKwlqcyBJUyBOT1QgSlNPTiAiSVMgTk9UIEpTT04iLAorCWpzIElT IEpTT04gVkFMVUUgIklTIFZBTFVFIiwKKwlqcyBJUyBKU09OIE9CSkVDVCAiSVMgT0JKRUNUIiwK KwlqcyBJUyBKU09OIEFSUkFZICJJUyBBUlJBWSIsCisJanMgSVMgSlNPTiBTQ0FMQVIgIklTIFND QUxBUiIsCisJanMgSVMgSlNPTiBXSVRIT1VUIFVOSVFVRSBLRVlTICJXSVRIT1VUIFVOSVFVRSIs CisJanMgSVMgSlNPTiBXSVRIIFVOSVFVRSBLRVlTICJXSVRIIFVOSVFVRSIKK0ZST00KKwkoU0VM RUNUIGpzOjpqZDMgRlJPTSB0ZXN0X2lzX2pzb24gV0hFUkUganMgSVMgSlNPTikgZm9vKGpzKTsK KyAgICAgICAgICAgICAgICAgICAgICBqcyAgICAgICAgICAgICAgICAgICAgICAgfCBJUyBKU09O IHwgSVMgTk9UIEpTT04gfCBJUyBWQUxVRSB8IElTIE9CSkVDVCB8IElTIEFSUkFZIHwgSVMgU0NB TEFSIHwgV0lUSE9VVCBVTklRVUUgfCBXSVRIIFVOSVFVRSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyAxMjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8IGYgICAgICAgICB8IGYg ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCB0CisgImFhYSAiICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgIHwg dCAgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICAg ICAgIHwgdAorIHRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHQgICAgICAgfCBmICAgICAgICAgICB8IHQgICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAg fCB0ICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IHQKKyBudWxsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAg ICB8IGYgICAgICAgICB8IGYgICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCB0 CisgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdCAgICAg ICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgfCBmICAgICAgICAgfCB0ICAgICAgICB8IGYgICAg ICAgICB8IHQgICAgICAgICAgICAgIHwgdAorIFsxLCAiMiIsIHt9XSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICB8IHQgICAgICAgIHwgZiAg ICAgICAgIHwgdCAgICAgICAgfCBmICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IHQKKyB7fSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgIHwgZiAg ICAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgIHwg dCAgICAgICAgICAgICAgfCB0CisgeyAiYSI6IDEsICJiIjogbnVsbCB9ICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgfCB0ICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICAgICAgIHwgdAorIHsgImEiOiAxLCAi YSI6IG51bGwgfSAgICAgICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAg ICB8IHQgICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgfCB0ICAgICAg ICAgICAgICB8IGYKKyB7ICJhIjogMSwgImIiOiBbeyAiYSI6IDEgfSwgeyAiYSI6IDIgfV0gfSAg ICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCB0CisgeyAiYSI6IDEsICJiIjogW3sg ImEiOiAxLCAiYiI6IDAsICJhIjogMiB9XSB9IHwgdCAgICAgICB8IGYgICAgICAgICAgIHwgdCAg ICAgICAgfCB0ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICAgICAg IHwgZgorKDExIHJvd3MpCisKIFNFTEVDVAogCWpzLAogCWpzIElTIEpTT04gIklTIEpTT04iLApA QCAtMTIzMyw2ICsxMzkwLDQ2IEBAIEZST00KICB7ICJhIjogMSwgImIiOiBbeyAiYSI6IDEsICJi IjogMCwgImEiOiAyIH1dIH0gfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8IHQg ICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmCiAoMTEg cm93cykKIAorU0VMRUNUCisJanMsCisJanMgSVMgSlNPTiAiSVMgSlNPTiIsCisJanMgSVMgTk9U IEpTT04gIklTIE5PVCBKU09OIiwKKwlqcyBJUyBKU09OIFZBTFVFICJJUyBWQUxVRSIsCisJanMg SVMgSlNPTiBPQkpFQ1QgIklTIE9CSkVDVCIsCisJanMgSVMgSlNPTiBBUlJBWSAiSVMgQVJSQVki LAorCWpzIElTIEpTT04gU0NBTEFSICJJUyBTQ0FMQVIiLAorCWpzIElTIEpTT04gV0lUSE9VVCBV TklRVUUgS0VZUyAiV0lUSE9VVCBVTklRVUUiLAorCWpzIElTIEpTT04gV0lUSCBVTklRVUUgS0VZ UyAiV0lUSCBVTklRVUUiCitGUk9NCisJKFNFTEVDVCBqczo6amQxIEZST00gdGVzdF9pc19qc29u IFdIRVJFIGpzIElTIEpTT04pIGZvbyhqcyk7CisgICAgICAgICAgICAgICAgICAgICAganMgICAg ICAgICAgICAgICAgICAgICAgIHwgSVMgSlNPTiB8IElTIE5PVCBKU09OIHwgSVMgVkFMVUUgfCBJ UyBPQkpFQ1QgfCBJUyBBUlJBWSB8IElTIFNDQUxBUiB8IFdJVEhPVVQgVU5JUVVFIHwgV0lUSCBV TklRVUUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgMTIzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAg IHwgdCAgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAg ICAgICAgIHwgdAorICJhYWEgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHQgICAgICAgfCBmICAgICAgICAgICB8IHQgICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAg ICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IHQKKyB0cnVlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAg ICAgICB8IGYgICAgICAgICB8IGYgICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgICAgICAg fCB0CisgbnVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IHQg ICAgICAgICB8IHQgICAgICAgICAgICAgIHwgdAorIFtdICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICB8IHQgICAgICAgIHwg ZiAgICAgICAgIHwgdCAgICAgICAgfCBmICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IHQKKyBb MSwgIjIiLCB7fV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgIHwg ZiAgICAgICAgICAgfCB0ICAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgIHwgZiAgICAgICAg IHwgdCAgICAgICAgICAgICAgfCB0Cisge30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgfCB0ICAgICAg ICAgfCBmICAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICAgICAgIHwgdAorIHsgImEiOiAx LCAiYiI6IG51bGwgfSAgICAgICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAg ICAgICB8IHQgICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgfCB0ICAg ICAgICAgICAgICB8IHQKKyB7ICJhIjogMSwgImEiOiBudWxsIH0gICAgICAgICAgICAgICAgICAg ICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAgICB8IGYg ICAgICAgIHwgZiAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmCisgeyAiYSI6IDEsICJiIjog W3sgImEiOiAxIH0sIHsgImEiOiAyIH1dIH0gICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgIHwg dCAgICAgICAgfCB0ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICAg ICAgIHwgdAorIHsgImEiOiAxLCAiYiI6IFt7ICJhIjogMSwgImIiOiAwLCAiYSI6IDIgfV0gfSB8 IHQgICAgICAgfCBmICAgICAgICAgICB8IHQgICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IGYKKygxMSByb3dzKQorCitTRUxFQ1QKKwlq cywKKwlqcyBJUyBKU09OICJJUyBKU09OIiwKKwlqcyBJUyBOT1QgSlNPTiAiSVMgTk9UIEpTT04i LAorCWpzIElTIEpTT04gVkFMVUUgIklTIFZBTFVFIiwKKwlqcyBJUyBKU09OIE9CSkVDVCAiSVMg T0JKRUNUIiwKKwlqcyBJUyBKU09OIEFSUkFZICJJUyBBUlJBWSIsCisJanMgSVMgSlNPTiBTQ0FM QVIgIklTIFNDQUxBUiIsCisJanMgSVMgSlNPTiBXSVRIT1VUIFVOSVFVRSBLRVlTICJXSVRIT1VU IFVOSVFVRSIsCisJanMgSVMgSlNPTiBXSVRIIFVOSVFVRSBLRVlTICJXSVRIIFVOSVFVRSIKK0ZS T00KKwkoU0VMRUNUIGpzOjpqZDIgRlJPTSB0ZXN0X2lzX2pzb24gV0hFUkUganMgSVMgSlNPTikg Zm9vKGpzKTsKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBqZDIgdmlvbGF0ZXMgY2hlY2sgY29u c3RyYWludCAiamQyX2NoZWNrIgogU0VMRUNUCiAJanMwLAogCWpzIElTIEpTT04gIklTIEpTT04i LApAQCAtMTI2MCw2ICsxNDU3LDMzIEBAIEZST00KICB7ICJhIjogMSwgImIiOiBbeyAiYSI6IDEs ICJiIjogMCwgImEiOiAyIH1dIH0gfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8 IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmCiAo MTEgcm93cykKIAorU0VMRUNUCisJanMwLAorCWpzIElTIEpTT04gIklTIEpTT04iLAorCWpzIElT IE5PVCBKU09OICJJUyBOT1QgSlNPTiIsCisJanMgSVMgSlNPTiBWQUxVRSAiSVMgVkFMVUUiLAor CWpzIElTIEpTT04gT0JKRUNUICJJUyBPQkpFQ1QiLAorCWpzIElTIEpTT04gQVJSQVkgIklTIEFS UkFZIiwKKwlqcyBJUyBKU09OIFNDQUxBUiAiSVMgU0NBTEFSIiwKKwlqcyBJUyBKU09OIFdJVEhP VVQgVU5JUVVFIEtFWVMgIldJVEhPVVQgVU5JUVVFIiwKKwlqcyBJUyBKU09OIFdJVEggVU5JUVVF IEtFWVMgIldJVEggVU5JUVVFIgorRlJPTQorCShTRUxFQ1QganMsIGpzOjpqZDQgRlJPTSB0ZXN0 X2lzX2pzb24gV0hFUkUganMgSVMgSlNPTikgZm9vKGpzMCwganMpOworICAgICAgICAgICAgICAg ICAgICAgIGpzMCAgICAgICAgICAgICAgICAgICAgICB8IElTIEpTT04gfCBJUyBOT1QgSlNPTiB8 IElTIFZBTFVFIHwgSVMgT0JKRUNUIHwgSVMgQVJSQVkgfCBJUyBTQ0FMQVIgfCBXSVRIT1VUIFVO SVFVRSB8IFdJVEggVU5JUVVFIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IDEyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAg fCBmICAgICAgICAgICB8IHQgICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCB0ICAgICAg ICAgfCB0ICAgICAgICAgICAgICB8IHQKKyAiYWFhICIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8IGYgICAg ICAgICB8IGYgICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCB0CisgdHJ1ZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAg ICAgICAgIHwgdCAgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICB8IHQg ICAgICAgICAgICAgIHwgdAorIG51bGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICB8IHQgICAgICAgIHwgZiAgICAgICAgIHwg ZiAgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IHQKKyBbXSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAg fCB0ICAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgIHwgZiAgICAgICAgIHwgdCAgICAgICAg ICAgICAgfCB0CisgWzEsICIyIiwge31dICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgdCAgICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgfCBmICAgICAgICAgfCB0ICAgICAg ICB8IGYgICAgICAgICB8IHQgICAgICAgICAgICAgIHwgdAorIHt9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICB8IHQgICAg ICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgfCB0ICAgICAgICAgICAgICB8 IHQKKyB7ICJhIjogMSwgImIiOiBudWxsIH0gICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAg ICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAg ICAgICAgIHwgdCAgICAgICAgICAgICAgfCB0CisgeyAiYSI6IDEsICJhIjogbnVsbCB9ICAgICAg ICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgfCB0 ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICAgICAgIHwgZgorIHsg ImEiOiAxLCAiYiI6IFt7ICJhIjogMSB9LCB7ICJhIjogMiB9XSB9ICAgICB8IHQgICAgICAgfCBm ICAgICAgICAgICB8IHQgICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg fCB0ICAgICAgICAgICAgICB8IHQKKyB7ICJhIjogMSwgImIiOiBbeyAiYSI6IDEsICJiIjogMCwg ImEiOiAyIH1dIH0gfCB0ICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmCisoMTEgcm93cykK KwogU0VMRUNUCiAJanMsCiAJanMgSVMgSlNPTiAiSVMgSlNPTiIsCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zcWxqc29uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3NxbGpz b24uc3FsCmluZGV4IDM0M2QzNDRkMjcwLi44OGQ2YmMzNzMzMyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc3FsanNvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Fs anNvbi5zcWwKQEAgLTM4Nyw2ICszODcsMTIgQEAgU0VMRUNUIEpTT05fQVJSQVkoU0VMRUNUIGkg RlJPTSAoVkFMVUVTICgxKSwgKDIpLCAoTlVMTCksICg0KSkgZm9vKGkpIFJFVFVSTklORwogRFJP UCBWSUVXIGpzb25fYXJyYXlfc3VicXVlcnlfdmlldzsKIAogLS0gSVMgSlNPTiBwcmVkaWNhdGUK K0NSRUFURSBET01BSU4gamQxIEFTIEpTT04gQ0hFQ0sgKChWQUxVRSAtPidhJyk6OnRleHQgPD4g JzMnKTsKK0NSRUFURSBET01BSU4gamQyIEFTIEpTT05CIENIRUNLICgoVkFMVUUgLT4nYScpID0g JzEnOjpqc29uYik7CitDUkVBVEUgRE9NQUlOIGpkMyBBUyB0ZXh0IENIRUNLIChWQUxVRSA8PiAn YScpOworQ1JFQVRFIERPTUFJTiBqZDQgQVMgYnl0ZWEgQ0hFQ0sgKFZBTFVFIDw+ICdceDYxJyk7 CitDUkVBVEUgRE9NQUlOIGpkNSBBUyBkYXRlIENIRUNLIChWQUxVRSA8PiBOVUxMKTsKKwogU0VM RUNUIE5VTEwgSVMgSlNPTjsKIFNFTEVDVCBOVUxMIElTIE5PVCBKU09OOwogU0VMRUNUIE5VTEw6 Ompzb24gSVMgSlNPTjsKQEAgLTM5NSw2ICs0MDEsNjYgQEAgU0VMRUNUIE5VTEw6OnRleHQgSVMg SlNPTjsKIFNFTEVDVCBOVUxMOjpieXRlYSBJUyBKU09OOwogU0VMRUNUIE5VTEw6OmludCBJUyBK U09OOwogCitTRUxFQ1QgTlVMTDo6amQxIElTIEpTT047CitTRUxFQ1QgTlVMTDo6amQxIElTIE5P VCBKU09OOworU0VMRUNUIE5VTEw6OmpkMiBJUyBKU09OOworU0VMRUNUIE5VTEw6OmpkMyBJUyBK U09OOworU0VMRUNUIE5VTEw6OmpkNCBJUyBKU09OOworU0VMRUNUIE5VTEw6OmpkNCBJUyBOT1Qg SlNPTjsKKworU0VMRUNUIE5VTEw6OmpkNSBJUyBKU09OOyAtLWVycm9yCitTRUxFQ1QgTlVMTDo6 amQ1IElTIEpTT04gV0lUSCBVTklRVUUgS0VZUzsgLS1lcnJvcgorCitDUkVBVEUgVklFVyBkb21h aW5faXNqc29uIEFTCitXSVRIIGN0ZShhKSBhcyAoVkFMVUVTKCd7ImEiOiAxLCAiYSI6IDJ9Jykp CitTRUxFQ1QgYTo6amQxIElTIEpTT04gV0lUSCBVTklRVUUgS0VZUyBhcyBjb2wxLAorCWE6Ompk MyBJUyBKU09OIFdJVEggVU5JUVVFIEtFWVMgYXMgY29sMiwKKwlhOjpqZDQgSVMgSlNPTiBXSVRI IFVOSVFVRSBLRVlTIGFzIGNvbDMKK0ZST00gY3RlOworCitcc3YgZG9tYWluX2lzanNvbgorU0VM RUNUICogRlJPTSBkb21haW5faXNqc29uOworCitDUkVBVEUgVEVNUCBUQUJMRSB0c19kb21haW4o anMgdGV4dCk7CitJTlNFUlQgSU5UTyB0c19kb21haW4gVkFMVUVTICgneyJhIjozfScpLCAoJ3si YSI6IjEifScpLCAoJ2EnKSwgKCdceDYxJyk7CisKK1NFTEVDVCBqczo6amQxIElTIEpTT04gRlJP TSB0c19kb21haW47CitTRUxFQ1QganM6OmpkMiBJUyBKU09OIEZST00gdHNfZG9tYWluOworU0VM RUNUIGpzOjpqZDMgSVMgSlNPTiBGUk9NIHRzX2RvbWFpbjsKK1NFTEVDVCBqczo6amQ0IElTIEpT T04gRlJPTSB0c19kb21haW47CisKK1NFTEVDVCBqcywKKyAgcGdfdHlwZW9mKGpzKSwKKyAganMg SVMgSlNPTiBPQkpFQ1QgIm9iamVjdD8iLAorICBqcyBJUyBKU09OIEFSUkFZICJhcnJheT8iLAor ICBqcyBJUyBKU09OIEFSUkFZIFdJVEggVU5JUVVFIEtFWVMgImFycmF5IHcuIFVLPyIsCisgIGpz IElTIEpTT04gQVJSQVkgV0lUSE9VVCBVTklRVUUgS0VZUyAiYXJyYXkgdy9vIFVLPyIKK0ZST00g KFZBTFVFUyAoJ1t7ImEiOiIxIn0sIHsiYiI6IjIiLCJiIjoiMyJ9XSc6OmpkMSkpIGZvbyhqcyk7 CisKK1NFTEVDVCBqcywKKyAgcGdfdHlwZW9mKGpzKSwKKyAganMgSVMgSlNPTiBPQkpFQ1QgIm9i amVjdD8iLAorICBqcyBJUyBKU09OIEFSUkFZICJhcnJheT8iLAorICBqcyBJUyBKU09OIEFSUkFZ IFdJVEggVU5JUVVFIEtFWVMgImFycmF5IHcuIFVLPyIsCisgIGpzIElTIEpTT04gQVJSQVkgV0lU SE9VVCBVTklRVUUgS0VZUyAiYXJyYXkgdy9vIFVLPyIKK0ZST00gKFZBTFVFUyAoJ1t7ImEiOiIx In0sIHsiYiI6IjIiLCJiIjoiMyJ9XSc6OmpkMikpIGZvbyhqcyk7CisKK1NFTEVDVCBqcywKKyAg cGdfdHlwZW9mKGpzKSwKKyAganMgSVMgSlNPTiBPQkpFQ1QgIm9iamVjdD8iLAorICBqcyBJUyBK U09OIEFSUkFZICJhcnJheT8iLAorICBqcyBJUyBKU09OIEFSUkFZIFdJVEggVU5JUVVFIEtFWVMg ImFycmF5IHcuIFVLPyIsCisgIGpzIElTIEpTT04gQVJSQVkgV0lUSE9VVCBVTklRVUUgS0VZUyAi YXJyYXkgdy9vIFVLPyIKK0ZST00gKFZBTFVFUyAoJ1t7ImEiOiIxIn0sIHsiYiI6IjIiLCJiIjoi MyJ9XSc6OmpkMykpIGZvbyhqcyk7CisKK1NFTEVDVCBqcywKKyAgcGdfdHlwZW9mKGpzKSwKKyAg anMgSVMgSlNPTiBPQkpFQ1QgIm9iamVjdD8iLAorICBqcyBJUyBKU09OIEFSUkFZICJhcnJheT8i LAorICBqcyBJUyBKU09OIEFSUkFZIFdJVEggVU5JUVVFIEtFWVMgImFycmF5IHcuIFVLPyIsCisg IGpzIElTIEpTT04gQVJSQVkgV0lUSE9VVCBVTklRVUUgS0VZUyAiYXJyYXkgdy9vIFVLPyIKK0ZS T00gKFZBTFVFUyAoJ1t7ImEiOiIxIn0sIHsiYiI6IjIiLCJiIjoiMyJ9XSc6OmpkNCkpIGZvbyhq cyk7CisKIFNFTEVDVCAnJyBJUyBKU09OOwogCiBTRUxFQ1QgYnl0ZWEgJ1x4MDAnIElTIEpTT047 CkBAIC00MzIsNiArNDk4LDE5IEBAIFNFTEVDVAogRlJPTQogCXRlc3RfaXNfanNvbjsKIAorU0VM RUNUCisJanMsCisJanMgSVMgSlNPTiAiSVMgSlNPTiIsCisJanMgSVMgTk9UIEpTT04gIklTIE5P VCBKU09OIiwKKwlqcyBJUyBKU09OIFZBTFVFICJJUyBWQUxVRSIsCisJanMgSVMgSlNPTiBPQkpF Q1QgIklTIE9CSkVDVCIsCisJanMgSVMgSlNPTiBBUlJBWSAiSVMgQVJSQVkiLAorCWpzIElTIEpT T04gU0NBTEFSICJJUyBTQ0FMQVIiLAorCWpzIElTIEpTT04gV0lUSE9VVCBVTklRVUUgS0VZUyAi V0lUSE9VVCBVTklRVUUiLAorCWpzIElTIEpTT04gV0lUSCBVTklRVUUgS0VZUyAiV0lUSCBVTklR VUUiCitGUk9NCisJKFNFTEVDVCBqczo6amQzIEZST00gdGVzdF9pc19qc29uIFdIRVJFIGpzIElT IEpTT04pIGZvbyhqcyk7CisKIFNFTEVDVAogCWpzLAogCWpzIElTIEpTT04gIklTIEpTT04iLApA QCAtNDQ1LDYgKzUyNCwzMiBAQCBTRUxFQ1QKIEZST00KIAkoU0VMRUNUIGpzOjpqc29uIEZST00g dGVzdF9pc19qc29uIFdIRVJFIGpzIElTIEpTT04pIGZvbyhqcyk7CiAKK1NFTEVDVAorCWpzLAor CWpzIElTIEpTT04gIklTIEpTT04iLAorCWpzIElTIE5PVCBKU09OICJJUyBOT1QgSlNPTiIsCisJ anMgSVMgSlNPTiBWQUxVRSAiSVMgVkFMVUUiLAorCWpzIElTIEpTT04gT0JKRUNUICJJUyBPQkpF Q1QiLAorCWpzIElTIEpTT04gQVJSQVkgIklTIEFSUkFZIiwKKwlqcyBJUyBKU09OIFNDQUxBUiAi SVMgU0NBTEFSIiwKKwlqcyBJUyBKU09OIFdJVEhPVVQgVU5JUVVFIEtFWVMgIldJVEhPVVQgVU5J UVVFIiwKKwlqcyBJUyBKU09OIFdJVEggVU5JUVVFIEtFWVMgIldJVEggVU5JUVVFIgorRlJPTQor CShTRUxFQ1QganM6OmpkMSBGUk9NIHRlc3RfaXNfanNvbiBXSEVSRSBqcyBJUyBKU09OKSBmb28o anMpOworCitTRUxFQ1QKKwlqcywKKwlqcyBJUyBKU09OICJJUyBKU09OIiwKKwlqcyBJUyBOT1Qg SlNPTiAiSVMgTk9UIEpTT04iLAorCWpzIElTIEpTT04gVkFMVUUgIklTIFZBTFVFIiwKKwlqcyBJ UyBKU09OIE9CSkVDVCAiSVMgT0JKRUNUIiwKKwlqcyBJUyBKU09OIEFSUkFZICJJUyBBUlJBWSIs CisJanMgSVMgSlNPTiBTQ0FMQVIgIklTIFNDQUxBUiIsCisJanMgSVMgSlNPTiBXSVRIT1VUIFVO SVFVRSBLRVlTICJXSVRIT1VUIFVOSVFVRSIsCisJanMgSVMgSlNPTiBXSVRIIFVOSVFVRSBLRVlT ICJXSVRIIFVOSVFVRSIKK0ZST00KKwkoU0VMRUNUIGpzOjpqZDIgRlJPTSB0ZXN0X2lzX2pzb24g V0hFUkUganMgSVMgSlNPTikgZm9vKGpzKTsKKwogU0VMRUNUCiAJanMwLAogCWpzIElTIEpTT04g IklTIEpTT04iLApAQCAtNDU4LDYgKzU2MywxOSBAQCBTRUxFQ1QKIEZST00KIAkoU0VMRUNUIGpz LCBqczo6Ynl0ZWEgRlJPTSB0ZXN0X2lzX2pzb24gV0hFUkUganMgSVMgSlNPTikgZm9vKGpzMCwg anMpOwogCitTRUxFQ1QKKwlqczAsCisJanMgSVMgSlNPTiAiSVMgSlNPTiIsCisJanMgSVMgTk9U IEpTT04gIklTIE5PVCBKU09OIiwKKwlqcyBJUyBKU09OIFZBTFVFICJJUyBWQUxVRSIsCisJanMg SVMgSlNPTiBPQkpFQ1QgIklTIE9CSkVDVCIsCisJanMgSVMgSlNPTiBBUlJBWSAiSVMgQVJSQVki LAorCWpzIElTIEpTT04gU0NBTEFSICJJUyBTQ0FMQVIiLAorCWpzIElTIEpTT04gV0lUSE9VVCBV TklRVUUgS0VZUyAiV0lUSE9VVCBVTklRVUUiLAorCWpzIElTIEpTT04gV0lUSCBVTklRVUUgS0VZ UyAiV0lUSCBVTklRVUUiCitGUk9NCisJKFNFTEVDVCBqcywganM6OmpkNCBGUk9NIHRlc3RfaXNf anNvbiBXSEVSRSBqcyBJUyBKU09OKSBmb28oanMwLCBqcyk7CisKIFNFTEVDVAogCWpzLAogCWpz IElTIEpTT04gIklTIEpTT04iLAotLSAKMi4zNC4xCgo= --0000000000004778cc0644f96958--