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.94.2) (envelope-from ) id 1vIHgp-002Hhw-7j for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Nov 2025 02:31:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vIHgn-00D04X-U8 for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Nov 2025 02:31:29 +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.94.2) (envelope-from ) id 1vIHgn-00Czup-Cw for pgsql-hackers@lists.postgresql.org; Mon, 10 Nov 2025 02:31:29 +0000 Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vIHgk-006u2B-2I for pgsql-hackers@postgresql.org; Mon, 10 Nov 2025 02:31:29 +0000 Received: by mail-vs1-xe33.google.com with SMTP id ada2fe7eead31-5d61f261ebfso997795137.2 for ; Sun, 09 Nov 2025 18:31:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762741885; x=1763346685; 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=SQPbvp9swisQhjeU/v0Y+tKrll4QchOaquRvdu+JriA=; b=LydfGSvPA5Qvst/qja5lHxPdMJmXgyFzomWmMiEbbL8jYUbrBQVROXmbXGtSg1Bo+q MTmqLKU6MUZpPaJx4SG3FkoILi3zknLq6kTQ1x2nvOsqgsoK+h2g8MX/yjgbGd+qDQN5 Hweu9KHXb9eOTmtwegVMja12ZeuFPTU6wjLgcbpObN866HuDXFJIYjVpl5sJejCkSEnd e8s8pETDKf1/WekaRbtINu1+ZTLk/349xKxqH8Hodx3tX7cM/J/hJ4n8RatU01cPQc6I gZhI95o/JqV/FhzGX4zkOup2QlxErjryJkZI8fUXDC7SXP+2RLQsaxtc2ohrAVWKAB5M OxWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762741885; x=1763346685; 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=SQPbvp9swisQhjeU/v0Y+tKrll4QchOaquRvdu+JriA=; b=bWvk7UwxScmmrf4smq1yQJfQODC0cukUcgpq9HuZLhabDeZTw/p5fkEZoUw+CnrRdX Dfk/rowLmYoNajcp+uQPnPp1pGsBSTKwD7TpyKZZomEw27mOPj1sWj2wTW3xfaweJYiq cvoVS/WsVnlK8RNfcbCl7Svg7FDB1KMH5staT7sgo9khJPlOUh2F2mg2cplTapWQ7P2k TGKyu0bAYY0e7wAPPbn8109GSMk3sywfK45bxN16o/x8q6LERRxI95rACkZIzZWSprhT cSEEqHRGI/YYsvBm1aBb5L6wl8dXu/aAeoKVyKc94IeOcOKf5Vyahk71Z6i5LChj/CcR yUhw== X-Forwarded-Encrypted: i=1; AJvYcCVhmJpw9uIqozYsWwAXK1HHLu9dobZ90zoUuo77lKFmQtnME3fgK417otGW9WHdpz8HxvH/MNfVC99t13sv@postgresql.org X-Gm-Message-State: AOJu0YyNJm7SQpD5YdOjf6wOLg11wuUQTF7kSXmN37wh2doXCCM+c8Gs JgDCLbqexCsQKq+rU1D9lqjYEwZREdD78F8f2GFIcdUhft+tmGAHf9DBgWczGnVXxC2P78UxEKj 729OzPC8JnURyUvatnvCzhEzgw2uR16w= X-Gm-Gg: ASbGncvX8UlJGjn6tHnKXB6mnUj4Csk0QSVaLVWIcLy5gf6NkrcaQTUHrlF3hLXnELX 8zVfhbCFtkAAxc3hWI9lHY9tDUieqW5iHmi7WDMEtNxTkTBX1k6BjQ1b7zobOti8kINW+6bBKLz AQezT43Uud7gcn4wfrTUgE04ChpfQz0vXfM5cqBqo+uUZycJux+9Umaaohn83AXgjWLc9RwjDeX K4Skv6KnaGyuk/q454afhIx21AlRGSHQmAc8UKtEFV0V3wdgqzuSXT7oAfjLDWreoGtvlmbzYA+ sdQqidEE5F5Eve+m8HS5AUiDq0XmXi2PXR6Ib3ciEWx3ihlenK3J4jaDi3mNSD15b6o2z5dZUGd SeQAZBFLGyY4XlQRfZUGEKeiPqHVAnnZgP/81E0oNSmk5+AFKyY03gyRUnwoHnicsq5qLcJWfRl kSl58DiqV6 X-Google-Smtp-Source: AGHT+IEx85ibma5uTkrRTJtqrPT0OhlpUhmBX4WFwtCDrsBcdYJzO2FUn/9PPU4rq8rkX/alvOqDURWUFMm+jJRXeis= X-Received: by 2002:a05:6102:d8b:b0:5db:d7a5:ba33 with SMTP id ada2fe7eead31-5ddc46ae4abmr1735265137.12.1762741884847; Sun, 09 Nov 2025 18:31:24 -0800 (PST) MIME-Version: 1.0 References: <243365.1760371856@sss.pgh.pa.us> In-Reply-To: <243365.1760371856@sss.pgh.pa.us> From: jian he Date: Mon, 10 Nov 2025 10:30:47 +0800 X-Gm-Features: AWmQ_blKBMGpNjByUZ6-8WEqDPx91q39MOp0FmrfAUyn_ealhK6_KGxOVyLIv7E Message-ID: Subject: Re: add function argument name to substring and substr To: Tom Lane Cc: Andrew Dunstan , "David G. Johnston" , Marcos Pegoraro , PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000e0b04d064334533a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e0b04d064334533a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Oct 14, 2025 at 12:11=E2=80=AFAM Tom Lane wrote= : > > Andrew Dunstan writes: > > I'm late to the party on this, but I wonder if it wouldn't be better to > > use a type-neutral parameter name here, like "source", which could cove= r > > all these cases, instead of "string", "bytes", etc. > > +1 for that idea. As Jian notes, we'd need to make the docs match, > but I think that this would be an improvement across the board. > Parameter names like "string" don't convey much information. > hi. regexp_count(string text, pattern text, start integer, flags text) regexp_instr(string text, pattern text, start integer, "N" integer, endoption integer, flags text, subexpr integer) regexp_like(string text, pattern text, flags text) regexp_match(string text, pattern text, flags text) regexp_matches (string text, pattern text, flags text) regexp_replace(string text, pattern text, replacement text, start integer, "N" integer, flags text) regexp_split_to_table(string text, pattern text, flags text) regexp_substr(string text, pattern text, start integer, "N" integer, flags text, subexpr integer) For the above regex function, other function argument names look good to me except the "string". Do we also need to rename these function's first argument from "string" to "source"? This would be a compatibility break, but if we do it now, it wou= ld only impact one release. ------------------- rebased due to conflict by commit: https://git.postgresql.org/cgit/postgresql.git/commit/?id=3D49d43faa835f3c6= 817be9fc0b98bec0d661c2587 --000000000000e0b04d064334533a Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0001-add-function-argument-name-to-function-substr.patch" Content-Disposition: attachment; filename="v9-0001-add-function-argument-name-to-function-substr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsixjmq1 RnJvbSA2OWYxMWViY2RiNzZlZjJjMDZiOTdmYTRmYzFiY2QwNmVkYzU1YTZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTQgT2N0IDIwMjUgMTU6MTY6MDQgKzA4MDAKU3ViamVjdDogW1BBVENIIHY5 IDEvMl0gYWRkIGZ1bmN0aW9uIGFyZ3VtZW50IG5hbWUgdG8gZnVuY3Rpb24gc3Vic3RyCgp3aXRo IHBhdGNoIGFwcGxpZWQKClxkZiBzdWJzdHIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgZnVuY3Rpb25zCiAgIFNjaGVtYSAgIHwgIE5hbWUgIHwgUmVzdWx0IGRh dGEgdHlwZSB8ICAgICAgICAgICAgQXJndW1lbnQgZGF0YSB0eXBlcyAgICAgICAgICAgICB8IFR5 cGUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KIHBnX2NhdGFsb2cgfCBzdWJz dHIgfCBieXRlYSAgICAgICAgICAgIHwgc291cmNlIGJ5dGVhLCBzdGFydCBpbnRlZ2VyICAgICAg ICAgICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0ciB8IGJ5dGVhICAgICAgICAgICAg fCBzb3VyY2UgYnl0ZWEsIHN0YXJ0IGludGVnZXIsIGNvdW50IGludGVnZXIgfCBmdW5jCiBwZ19j YXRhbG9nIHwgc3Vic3RyIHwgdGV4dCAgICAgICAgICAgICB8IHNvdXJjZSB0ZXh0LCBzdGFydCBp bnRlZ2VyICAgICAgICAgICAgICAgICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHIgfCB0ZXh0 ICAgICAgICAgICAgIHwgc291cmNlIHRleHQsIHN0YXJ0IGludGVnZXIsIGNvdW50IGludGVnZXIg IHwgZnVuYwooNCByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4 SFRCa3ltaDA2RDRtR0tOZTFZZlJORk4rZ0ZCeWJteWdXaz1QdE1xdTAwTFFAbWFpbC5nbWFpbC5j b20KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sIHwgNCArKy0t CiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXN0cmluZy5zZ21sICAgICAgIHwgNCArKy0tCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgIHwgNCArKysrCiAzIGZpbGVzIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMv ZnVuYy1iaW5hcnlzdHJpbmcuc2dtbAppbmRleCBiMjU2MzgxZTAxZi4uNTgwNTE1OTUxMjYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYmluYXJ5c3RyaW5nLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1iaW5hcnlzdHJpbmcuc2dtbApAQCAtNTcxLDExICs1NzEs MTEgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAgICAgIDxwcmltYXJ5PnN1YnN0cjwvcHJp bWFyeT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5zdWJzdHI8L2Z1 bmN0aW9uPiAoIDxwYXJhbWV0ZXI+Ynl0ZXM8L3BhcmFtZXRlcj4gPHR5cGU+Ynl0ZWE8L3R5cGU+ LCA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDxvcHRp b25hbD4sIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4g PC9vcHRpb25hbD4gKQorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyPC9mdW5jdGlvbj4gKCA8cGFy YW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT5ieXRlYTwvdHlwZT4sIDxwYXJhbWV0ZXI+ c3RhcnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFt ZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiAp CiAgICAgICAgIDxyZXR1cm52YWx1ZT5ieXRlYTwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJh PgogICAgICAgIDxwYXJhPgotICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJh bWV0ZXI+Ynl0ZXM8L3BhcmFtZXRlcj4gc3RhcnRpbmcgYXQKKyAgICAgICAgRXh0cmFjdHMgdGhl IHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAog ICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPid0aCBieXRlLAogICAgICAg ICBhbmQgZXh0ZW5kaW5nIGZvciA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IGJ5dGVzIGlm IHRoYXQgaXMKICAgICAgICAgc3BlY2lmaWVkLiAgKFNhbWUKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9mdW5jL2Z1bmMtc3RyaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXN0cmlu Zy5zZ21sCmluZGV4IDdhZDE0MzZlNWY4Li4zMzI1YWRlMDY1YSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2Z1bmMvZnVuYy1zdHJpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5j LXN0cmluZy5zZ21sCkBAIC0xMzkwLDExICsxMzkwLDExIEBACiAgICAgICAgIDxpbmRleHRlcm0+ CiAgICAgICAgICA8cHJpbWFyeT5zdWJzdHI8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJt PgotICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnN0cmlu ZzwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiwgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1l dGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmNvdW50PC9w YXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPGZ1 bmN0aW9uPnN1YnN0cjwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8L3BhcmFtZXRlcj4g PHR5cGU+dGV4dDwvdHlwZT4sIDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50 ZWdlcjwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlw ZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiApCiAgICAgICAgIDxyZXR1cm52YWx1ZT50ZXh0 PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIEV4 dHJhY3RzIHRoZSBzdWJzdHJpbmcgb2YgPHBhcmFtZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gc3Rh cnRpbmcgYXQKKyAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNv dXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAogICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFy dDwvcGFyYW1ldGVyPid0aCBjaGFyYWN0ZXIsCiAgICAgICAgIGFuZCBleHRlbmRpbmcgZm9yIDxw YXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gY2hhcmFjdGVycyBpZiB0aGF0IGlzCiAgICAgICAg IHNwZWNpZmllZC4gIChTYW1lCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA1Y2Y5ZTEyZmNi OS4uYWE5MmY3MmIyOTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMzcxOCw2ICszNzE4 LDcgQEAKICAgcHJvc3JjID0+ICdydHJpbScgfSwKIHsgb2lkID0+ICc4NzcnLCBkZXNjciA9PiAn ZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUgPT4gJ3N1YnN0cicsIHByb3Jl dHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCBpbnQ0IGludDQnLAorICBwcm9h cmduYW1lcyA9PiAne3NvdXJjZSwgc3RhcnQsIGNvdW50fScsCiAgIHByb3NyYyA9PiAndGV4dF9z dWJzdHInIH0sCiB7IG9pZCA9PiAnODc4JywgZGVzY3IgPT4gJ21hcCBhIHNldCBvZiBjaGFyYWN0 ZXJzIGFwcGVhcmluZyBpbiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICd0cmFuc2xhdGUnLCBwcm9y ZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCB0ZXh0JywKQEAgLTM3 MzYsNiArMzczNyw3IEBACiAgIHByb3NyYyA9PiAncnRyaW0xJyB9LAogeyBvaWQgPT4gJzg4Mycs IGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vi c3RyJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsIHByb2FyZ3R5cGVzID0+ICd0ZXh0IGludDQnLAor ICBwcm9hcmduYW1lcyA9PiAne3NvdXJjZSwgc3RhcnR9JywKICAgcHJvc3JjID0+ICd0ZXh0X3N1 YnN0cl9ub19sZW4nIH0sCiB7IG9pZCA9PiAnODg0JywgZGVzY3IgPT4gJ3RyaW0gc2VsZWN0ZWQg Y2hhcmFjdGVycyBmcm9tIGJvdGggZW5kcyBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdidHJp bScsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywKQEAg LTYzMDYsOSArNjMwOCwxMSBAQAogICBwcm9zcmMgPT4gJ2J5dGVhX3N1YnN0cl9ub19sZW4nIH0s CiB7IG9pZCA9PiAnMjA4NScsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywK ICAgcHJvbmFtZSA9PiAnc3Vic3RyJywgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBl cyA9PiAnYnl0ZWEgaW50NCBpbnQ0JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzb3VyY2UsIHN0YXJ0 LCBjb3VudH0nLAogICBwcm9zcmMgPT4gJ2J5dGVhX3N1YnN0cicgfSwKIHsgb2lkID0+ICcyMDg2 JywgZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdz dWJzdHInLCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdieXRlYSBpbnQ0 JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzb3VyY2UsIHN0YXJ0fScsCiAgIHByb3NyYyA9PiAnYnl0 ZWFfc3Vic3RyX25vX2xlbicgfSwKIHsgb2lkID0+ICcyMDE0JywgZGVzY3IgPT4gJ3Bvc2l0aW9u IG9mIHN1YnN0cmluZycsCiAgIHByb25hbWUgPT4gJ3Bvc2l0aW9uJywgcHJvcmV0dHlwZSA9PiAn aW50NCcsIHByb2FyZ3R5cGVzID0+ICdieXRlYSBieXRlYScsCi0tIAoyLjM0LjEKCg== --000000000000e0b04d064334533a Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0002-add-function-argument-name-to-function-substring.patch" Content-Disposition: attachment; filename="v9-0002-add-function-argument-name-to-function-substring.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsixjml0 RnJvbSBiMGIxODMyYWRjZjBhMjhiZmRlNjUyNTQ2M2E3YWJjMjYzZjQwNTFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTAgTm92IDIwMjUgMTA6MTc6NTUgKzA4MDAKU3ViamVjdDogW1BBVENIIHY5 IDIvMl0gYWRkIGZ1bmN0aW9uIGFyZ3VtZW50IG5hbWUgdG8gZnVuY3Rpb24gc3Vic3RyaW5nCgp3 aXRoIHBhdGNoIGFwcGxpZWQKXGRmIHN1YnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIGZ1bmN0aW9ucwogICBTY2hlbWEgICB8ICAgTmFtZSAgICB8 IFJlc3VsdCBkYXRhIHR5cGUgfCAgICAgICAgICAgIEFyZ3VtZW50IGRhdGEgdHlwZXMgICAgICAg ICAgICAgfCBUeXBlCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCiBwZ19j YXRhbG9nIHwgc3Vic3RyaW5nIHwgYml0ICAgICAgICAgICAgICB8IHNvdXJjZSBiaXQsIHN0YXJ0 IGludGVnZXIgICAgICAgICAgICAgICAgICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcg fCBiaXQgICAgICAgICAgICAgIHwgc291cmNlIGJpdCwgc3RhcnQgaW50ZWdlciwgY291bnQgaW50 ZWdlciAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0cmluZyB8IGJ5dGVhICAgICAgICAgICAg fCBzb3VyY2UgYnl0ZWEsIHN0YXJ0IGludGVnZXIgICAgICAgICAgICAgICAgfCBmdW5jCiBwZ19j YXRhbG9nIHwgc3Vic3RyaW5nIHwgYnl0ZWEgICAgICAgICAgICB8IHNvdXJjZSBieXRlYSwgc3Rh cnQgaW50ZWdlciwgY291bnQgaW50ZWdlciB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcg fCB0ZXh0ICAgICAgICAgICAgIHwgc291cmNlIHRleHQsIHBhdHRlcm4gdGV4dCAgICAgICAgICAg ICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0cmluZyB8IHRleHQgICAgICAgICAgICAg fCBzb3VyY2UgdGV4dCwgcGF0dGVybiB0ZXh0LCBlc2NhcGUgdGV4dCAgICAgfCBmdW5jCiBwZ19j YXRhbG9nIHwgc3Vic3RyaW5nIHwgdGV4dCAgICAgICAgICAgICB8IHNvdXJjZSB0ZXh0LCBzdGFy dCBpbnRlZ2VyICAgICAgICAgICAgICAgICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcg fCB0ZXh0ICAgICAgICAgICAgIHwgc291cmNlIHRleHQsIHN0YXJ0IGludGVnZXIsIGNvdW50IGlu dGVnZXIgIHwgZnVuYwooOCByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9D QUNKdWZ4SFRCa3ltaDA2RDRtR0tOZTFZZlJORk4rZ0ZCeWJteWdXaz1QdE1xdTAwTFFAbWFpbC5n bWFpbC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sIHwg MjYgKysrKysrKystLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1iaXRzdHJpbmcuc2dtbCAgICB8 IDI0ICsrKysrKysrLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1tYXRjaGluZy5zZ21sICAgICB8 IDI4ICsrKysrKy0tLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXN0cmluZy5zZ21sICAgICAg IHwgNjIgKysrKysrKysrKysrKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV9mdW5jdGlvbnMuc3FsIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg ICAgICAgICAgfCAgOCArKysKIDYgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlvbnMoKyksIDIz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYmluYXJ5 c3RyaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sCmlu ZGV4IDU4MDUxNTk1MTI2Li4yNGViMWVjZjZlNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1 bmMvZnVuYy1iaW5hcnlzdHJpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJp bmFyeXN0cmluZy5zZ21sCkBAIC0yMDAsMTEgKzIwMCwxMSBAQAogICAgICAgICA8aW5kZXh0ZXJt PgogICAgICAgICAgPHByaW1hcnk+c3Vic3RyaW5nPC9wcmltYXJ5PgogICAgICAgICA8L2luZGV4 dGVybT4KLSAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRl cj5ieXRlczwvcGFyYW1ldGVyPiA8dHlwZT5ieXRlYTwvdHlwZT4gPG9wdGlvbmFsPiA8bGl0ZXJh bD5GUk9NPC9saXRlcmFsPiA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVn ZXI8L3R5cGU+IDwvb3B0aW9uYWw+IDxvcHRpb25hbD4gPGxpdGVyYWw+Rk9SPC9saXRlcmFsPiA8 cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9u YWw+ICkKKyAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRl cj5zb3VyY2U8L3BhcmFtZXRlcj4gPHR5cGU+Ynl0ZWE8L3R5cGU+IDxvcHRpb25hbD4gPGxpdGVy YWw+RlJPTTwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRl Z2VyPC90eXBlPiA8L29wdGlvbmFsPiA8b3B0aW9uYWw+IDxsaXRlcmFsPkZPUjwvbGl0ZXJhbD4g PHBhcmFtZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlv bmFsPiApCiAgICAgICAgIDxyZXR1cm52YWx1ZT5ieXRlYTwvcmV0dXJudmFsdWU+CiAgICAgICAg PC9wYXJhPgogICAgICAgIDxwYXJhPgotICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9m IDxwYXJhbWV0ZXI+Ynl0ZXM8L3BhcmFtZXRlcj4gc3RhcnRpbmcgYXQKKyAgICAgICAgRXh0cmFj dHMgdGhlIHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiBzdGFydGlu ZyBhdAogICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPid0aCBieXRlIGlm IHRoYXQgaXMgc3BlY2lmaWVkLAogICAgICAgICBhbmQgc3RvcHBpbmcgYWZ0ZXIgPHBhcmFtZXRl cj5jb3VudDwvcGFyYW1ldGVyPiBieXRlcyBpZiB0aGF0IGlzCiAgICAgICAgIHNwZWNpZmllZC4g IFByb3ZpZGUgYXQgbGVhc3Qgb25lIG9mIDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4KQEAg LTIxNiw2ICsyMTYsMjYgQEAKICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93Pgog CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8 cHJpbWFyeT5zdWJzdHJpbmc8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAg ICA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnNvdXJjZTwvcGFy YW1ldGVyPiA8dHlwZT5ieXRlYTwvdHlwZT4sIDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4g PHR5cGU+aW50ZWdlcjwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj5jb3VudDwvcGFyYW1l dGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiApCisgICAgICAgIDxyZXR1cm52 YWx1ZT5ieXRlYTwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgor ICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJhbWV0ZXI+c291cmNlPC9wYXJh bWV0ZXI+IHN0YXJ0aW5nIGF0CisgICAgICAgIHRoZSA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0 ZXI+J3RoIGJ5dGUsCisgICAgICAgIGFuZCBzdG9wcGluZyBhZnRlciA8cGFyYW1ldGVyPmNvdW50 PC9wYXJhbWV0ZXI+IGJ5dGVzIGlmIHRoYXQgaXMKKyAgICAgICAgc3BlY2lmaWVkLgorICAgICAg IDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+c3Vic3RyaW5nKHNvdXJj ZT0+J1x4MTIzNDU2Nzg5MCc6OmJ5dGVhLCBzdGFydD0+MywgY291bnQ9PjIpPC9saXRlcmFsPgor ICAgICAgICA8cmV0dXJudmFsdWU+XHg1Njc4PC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeSByb2xl PSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CiAgICAgICAg IDxpbmRleHRlcm0+CkBAIC01NzksNyArNTk5LDcgQEAKICAgICAgICAgdGhlIDxwYXJhbWV0ZXI+ c3RhcnQ8L3BhcmFtZXRlcj4ndGggYnl0ZSwKICAgICAgICAgYW5kIGV4dGVuZGluZyBmb3IgPHBh cmFtZXRlcj5jb3VudDwvcGFyYW1ldGVyPiBieXRlcyBpZiB0aGF0IGlzCiAgICAgICAgIHNwZWNp ZmllZC4gIChTYW1lCi0gICAgICAgIGFzIDxsaXRlcmFsPnN1YnN0cmluZyg8cGFyYW1ldGVyPmJ5 dGVzPC9wYXJhbWV0ZXI+CisgICAgICAgIGFzIDxsaXRlcmFsPnN1YnN0cmluZyg8cGFyYW1ldGVy PnNvdXJjZTwvcGFyYW1ldGVyPgogICAgICAgICBmcm9tIDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFt ZXRlcj4KICAgICAgICAgZm9yIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4pPC9saXRlcmFs Pi4pCiAgICAgICAgPC9wYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1i aXRzdHJpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYml0c3RyaW5nLnNnbWwKaW5k ZXggM2Y1OWRlNDY0YTQuLjJkZDgyOGRmNGE0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVu Yy9mdW5jLWJpdHN0cmluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYml0c3Ry aW5nLnNnbWwKQEAgLTI3OSwxMSArMjc5LDExIEBACiAgICAgICAgIDxpbmRleHRlcm0+CiAgICAg ICAgICA8cHJpbWFyeT5zdWJzdHJpbmc8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJtPgot ICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPmJpdHM8 L3BhcmFtZXRlcj4gPHR5cGU+Yml0PC90eXBlPiA8b3B0aW9uYWw+IDxsaXRlcmFsPkZST008L2xp dGVyYWw+IDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4g PC9vcHRpb25hbD4gPG9wdGlvbmFsPiA8bGl0ZXJhbD5GT1I8L2xpdGVyYWw+IDxwYXJhbWV0ZXI+ Y291bnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPC9vcHRpb25hbD4gKQorICAg ICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnNvdXJjZTwv cGFyYW1ldGVyPiA8dHlwZT5iaXQ8L3R5cGU+IDxvcHRpb25hbD4gPGxpdGVyYWw+RlJPTTwvbGl0 ZXJhbD4gPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8 L29wdGlvbmFsPiA8b3B0aW9uYWw+IDxsaXRlcmFsPkZPUjwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5j b3VudDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiApCiAgICAg ICAgIDxyZXR1cm52YWx1ZT5iaXQ8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAgICAg ICA8cGFyYT4KLSAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPmJp dHM8L3BhcmFtZXRlcj4gc3RhcnRpbmcgYXQKKyAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmlu ZyBvZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAogICAgICAgICB0 aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPid0aCBiaXQgaWYgdGhhdCBpcyBzcGVjaWZp ZWQsCiAgICAgICAgIGFuZCBzdG9wcGluZyBhZnRlciA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0 ZXI+IGJpdHMgaWYgdGhhdCBpcwogICAgICAgICBzcGVjaWZpZWQuICBQcm92aWRlIGF0IGxlYXN0 IG9uZSBvZiA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+CkBAIC0yOTUsNiArMjk1LDI2IEBA CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWdu YXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+c3Vic3RyaW5n PC9wcmltYXJ5PiAgICAgICAgIAorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0 aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8L3BhcmFtZXRlcj4g PHR5cGU+Yml0PC90eXBlPiwgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRl Z2VyPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IDx0eXBl PmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPmJpdDwv cmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBFeHRy YWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJhbWV0ZXI+c291cmNlPC9wYXJhbWV0ZXI+IHN0YXJ0 aW5nIGF0CisgICAgICAgIHRoZSA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+J3RoIGJpdCwK KyAgICAgICAgYW5kIHN0b3BwaW5nIGFmdGVyIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4g Yml0cyBpZiB0aGF0IGlzCisgICAgICAgIHNwZWNpZmllZC4KKyAgICAgICA8L3BhcmE+CisgICAg ICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPnN1YnN0cmluZyhzb3VyY2U9PkInMTEwMDEwMTEx MTExJywgc3RhcnQ9PjMsIGNvdW50PT4yKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVl PjAwPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93Pgor CiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLW1hdGNoaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVu Yy9mdW5jLW1hdGNoaW5nLnNnbWwKaW5kZXggOTFhMGI3Y2EwZGUuLjIyODY4NDM5N2QwIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLW1hdGNoaW5nLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2Z1bmMvZnVuYy1tYXRjaGluZy5zZ21sCkBAIC0yMzQsMTMgKzIzNCwxMyBAQAogICAg PC9pbmRleHRlcm0+CiAKIDxzeW5vcHNpcz4KLTxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2Vh YmxlPiBTSU1JTEFSIFRPIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gPG9wdGlv bmFsPkVTQ0FQRSA8cmVwbGFjZWFibGU+ZXNjYXBlLWNoYXJhY3RlcjwvcmVwbGFjZWFibGU+PC9v cHRpb25hbD4KLTxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiBOT1QgU0lNSUxBUiBU TyA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD5FU0NBUEUgPHJl cGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxlPjwvb3B0aW9uYWw+Cis8cmVw bGFjZWFibGU+c291cmNlPC9yZXBsYWNlYWJsZT4gU0lNSUxBUiBUTyA8cmVwbGFjZWFibGU+cGF0 dGVybjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD5FU0NBUEUgPHJlcGxhY2VhYmxlPmVzY2FwZS1j aGFyYWN0ZXI8L3JlcGxhY2VhYmxlPjwvb3B0aW9uYWw+Cis8cmVwbGFjZWFibGU+c291cmNlPC9y ZXBsYWNlYWJsZT4gTk9UIFNJTUlMQVIgVE8gPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2Vh YmxlPiA8b3B0aW9uYWw+RVNDQVBFIDxyZXBsYWNlYWJsZT5lc2NhcGUtY2hhcmFjdGVyPC9yZXBs YWNlYWJsZT48L29wdGlvbmFsPgogPC9zeW5vcHNpcz4KIAogICAgPHBhcmE+CiAgICAgVGhlIDxm dW5jdGlvbj5TSU1JTEFSIFRPPC9mdW5jdGlvbj4gb3BlcmF0b3IgcmV0dXJucyB0cnVlIG9yCi0g ICAgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXRzIHBhdHRlcm4gbWF0Y2hlcyB0aGUgZ2l2 ZW4gc3RyaW5nLgorICAgIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0cyBwYXR0ZXJuIG1h dGNoZXMgdGhlIGdpdmVuIHN0cmluZyAodGhlIDxyZXBsYWNlYWJsZT5zb3VyY2U8L3JlcGxhY2Vh YmxlPikuCiAgICAgSXQgaXMgc2ltaWxhciB0byA8ZnVuY3Rpb24+TElLRTwvZnVuY3Rpb24+LCBl eGNlcHQgdGhhdCBpdAogICAgIGludGVycHJldHMgdGhlIHBhdHRlcm4gdXNpbmcgdGhlIFNRTCBz dGFuZGFyZCdzIGRlZmluaXRpb24gb2YgYQogICAgIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFNRTCBy ZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBhIGN1cmlvdXMgY3Jvc3MKQEAgLTM2OSwxNSArMzY5LDE1 IEBACiAgICAgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uICBUaGUgZnVuY3Rpb24gY2FuIGJl IHdyaXR0ZW4gYWNjb3JkaW5nCiAgICAgdG8gc3RhbmRhcmQgU1FMIHN5bnRheDoKIDxzeW5vcHNp cz4KLXN1YnN0cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4gc2ltaWxhciA8 cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IGVzY2FwZSA8cmVwbGFjZWFibGU+ZXNj YXBlLWNoYXJhY3RlcjwvcmVwbGFjZWFibGU+KQorc3Vic3RyaW5nKDxyZXBsYWNlYWJsZT5zb3Vy Y2U8L3JlcGxhY2VhYmxlPiBTSU1JTEFSIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJs ZT4gRVNDQVBFIDxyZXBsYWNlYWJsZT5lc2NhcGUtY2hhcmFjdGVyPC9yZXBsYWNlYWJsZT4pCiA8 L3N5bm9wc2lzPgogICAgIG9yIHVzaW5nIHRoZSBub3cgb2Jzb2xldGUgU1FMOjE5OTkgc3ludGF4 OgogPHN5bm9wc2lzPgotc3Vic3RyaW5nKDxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxl PiBmcm9tIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gZm9yIDxyZXBsYWNlYWJs ZT5lc2NhcGUtY2hhcmFjdGVyPC9yZXBsYWNlYWJsZT4pCitzdWJzdHJpbmcoPHJlcGxhY2VhYmxl PnNvdXJjZTwvcmVwbGFjZWFibGU+IEZST00gPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2Vh YmxlPiBGT1IgPHJlcGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxlPikKIDwv c3lub3BzaXM+CiAgICAgb3IgYXMgYSBwbGFpbiB0aHJlZS1hcmd1bWVudCBmdW5jdGlvbjoKIDxz eW5vcHNpcz4KLXN1YnN0cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4sIDxy ZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5lc2NhcGUtY2hh cmFjdGVyPC9yZXBsYWNlYWJsZT4pCitzdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnNvdXJjZTwvcmVw bGFjZWFibGU+LCA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFi bGU+ZXNjYXBlPC9yZXBsYWNlYWJsZT4pCiA8L3N5bm9wc2lzPgogICAgIEFzIHdpdGggPGxpdGVy YWw+U0lNSUxBUiBUTzwvbGl0ZXJhbD4sIHRoZQogICAgIHNwZWNpZmllZCBwYXR0ZXJuIG11c3Qg bWF0Y2ggdGhlIGVudGlyZSBkYXRhIHN0cmluZywgb3IgZWxzZSB0aGUKQEAgLTU4MSwxMSArNTgx LDE3IEBAIHN1YnN0cmluZygnZm9vYmFyJyBTSU1JTEFSICcjIm9fYiMiJScgRVNDQVBFICcjJykg ICAgPGxpbmVhbm5vdGF0aW9uPk5VTEw8L2xpbmVhCiAgICAgPC9wYXJhPgogCiAgICAgPHBhcmE+ Ci0gICAgIFRoZSA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gZnVuY3Rpb24gd2l0aCB0 d28gcGFyYW1ldGVycywKLSAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZyg8cmVwbGFjZWFibGU+c3Ry aW5nPC9yZXBsYWNlYWJsZT4gZnJvbQotICAgICA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFj ZWFibGU+KTwvZnVuY3Rpb24+LCBwcm92aWRlcyBleHRyYWN0aW9uIG9mIGEKLSAgICAgc3Vic3Ry aW5nCi0gICAgIHRoYXQgbWF0Y2hlcyBhIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJu LiAgSXQgcmV0dXJucyBudWxsIGlmCisgICAgIFRoZSA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5j dGlvbj4gZnVuY3Rpb24gd2l0aCB0d28gcGFyYW1ldGVycyBwcm92aWRlcyBleHRyYWN0aW9uIG9m IGEKKyAgICAgc3Vic3RyaW5nIHRoYXQgbWF0Y2hlcyBhIDxhY3JvbnltPlBPU0lYPC9hY3Jvbnlt PiByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybi4KKyAgICAgVGhlIGZ1bmN0aW9uIGNhbiBiZSB3 cml0dGVuIGFjY29yZGluZyB0byBzdGFuZGFyZCA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IHN5bnRh eDoKKzxzeW5vcHNpcz4KK3N1YnN0cmluZyg8cmVwbGFjZWFibGU+c291cmNlPC9yZXBsYWNlYWJs ZT4gRlJPTSA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+KQorPC9zeW5vcHNpcz4K KyAgICAgSXQgY2FuIGFsc28gd3JpdHRlbiBhcyBhIHBsYWluIHR3by1hcmd1bWVudCBmdW5jdGlv bjoKKzxzeW5vcHNpcz4KK3N1YnN0cmluZyg8cmVwbGFjZWFibGU+c291cmNlPC9yZXBsYWNlYWJs ZT4sIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4pCis8L3N5bm9wc2lzPgorICAg ICBJdCByZXR1cm5zIG51bGwgaWYKICAgICAgdGhlcmUgaXMgbm8gbWF0Y2gsIG90aGVyd2lzZSB0 aGUgZmlyc3QgcG9ydGlvbiBvZiB0aGUgdGV4dCB0aGF0IG1hdGNoZWQgdGhlCiAgICAgIHBhdHRl cm4uICBCdXQgaWYgdGhlIHBhdHRlcm4gY29udGFpbnMgYW55IHBhcmVudGhlc2VzLCB0aGUgcG9y dGlvbgogICAgICBvZiB0aGUgdGV4dCB0aGF0IG1hdGNoZWQgdGhlIGZpcnN0IHBhcmVudGhlc2l6 ZWQgc3ViZXhwcmVzc2lvbiAodGhlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5j LXN0cmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1zdHJpbmcuc2dtbAppbmRleCAz MzI1YWRlMDY1YS4uZTg3YmJiMGRmZTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1 bmMtc3RyaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1zdHJpbmcuc2dtbApA QCAtNDAwLDExICs0MDAsMTEgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAgICAgIDxwcmlt YXJ5PnN1YnN0cmluZzwvcHJpbWFyeT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxm dW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0 ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IDxvcHRpb25hbD4gPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4g PHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlv bmFsPiA8b3B0aW9uYWw+IDxsaXRlcmFsPkZPUjwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5jb3VudDwv cGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiApCisgICAgICAgIDxm dW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c291cmNlPC9wYXJhbWV0 ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IDxvcHRpb25hbD4gPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4g PHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlv bmFsPiA8b3B0aW9uYWw+IDxsaXRlcmFsPkZPUjwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5jb3VudDwv cGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiApCiAgICAgICAgIDxy ZXR1cm52YWx1ZT50ZXh0PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBh cmE+Ci0gICAgICAgIEV4dHJhY3RzIHRoZSBzdWJzdHJpbmcgb2YgPHBhcmFtZXRlcj5zdHJpbmc8 L3BhcmFtZXRlcj4gc3RhcnRpbmcgYXQKKyAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmluZyBv ZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAogICAgICAgICB0aGUg PHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPid0aCBjaGFyYWN0ZXIgaWYgdGhhdCBpcyBzcGVj aWZpZWQsCiAgICAgICAgIGFuZCBzdG9wcGluZyBhZnRlciA8cGFyYW1ldGVyPmNvdW50PC9wYXJh bWV0ZXI+IGNoYXJhY3RlcnMgaWYgdGhhdCBpcwogICAgICAgICBzcGVjaWZpZWQuICBQcm92aWRl IGF0IGxlYXN0IG9uZSBvZiA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+CkBAIC00MjYsNyAr NDI2LDcgQEAKIAogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgotICAgICAgICA8ZnVuY3Rpb24+c3Vi c3RyaW5nPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnN0cmluZzwvcGFyYW1ldGVyPiA8dHlwZT50 ZXh0PC90eXBlPiA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiA8cGFyYW1ldGVyPnBhdHRlcm48L3Bh cmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gKQorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5n PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiA8cGFyYW1ldGVyPnBhdHRlcm48L3BhcmFtZXRl cj4gPHR5cGU+dGV4dDwvdHlwZT4gKQogICAgICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJu dmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgpAQCAtNDQxLDExICs0NDEsMTEg QEAKIAogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgotICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5n PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnN0cmluZzwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiA8bGl0ZXJhbD5TSU1JTEFSPC9saXRlcmFsPiA8cGFyYW1ldGVyPnBhdHRlcm48L3BhcmFt ZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gPGxpdGVyYWw+RVNDQVBFPC9saXRlcmFsPiA8cGFyYW1l dGVyPmVzY2FwZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiApCisgICAgICAgIDxmdW5j dGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c291cmNlPC9wYXJhbWV0ZXI+ IDx0eXBlPnRleHQ8L3R5cGU+IDxsaXRlcmFsPlNJTUlMQVI8L2xpdGVyYWw+IDxwYXJhbWV0ZXI+ cGF0dGVybjwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiA8bGl0ZXJhbD5FU0NBUEU8L2xp dGVyYWw+IDxwYXJhbWV0ZXI+ZXNjYXBlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkK ICAgICAgICAgPHJldHVybnZhbHVlPnRleHQ8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4K ICAgICAgICA8cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+Ci0gICAgICAgIDxmdW5jdGlvbj5z dWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0ZXI+IDx0eXBl PnRleHQ8L3R5cGU+IDxsaXRlcmFsPkZST008L2xpdGVyYWw+IDxwYXJhbWV0ZXI+cGF0dGVybjwv cGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiA8bGl0ZXJhbD5GT1I8L2xpdGVyYWw+IDxwYXJh bWV0ZXI+ZXNjYXBlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPGZ1 bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8L3BhcmFtZXRl cj4gPHR5cGU+dGV4dDwvdHlwZT4gPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5w YXR0ZXJuPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IDxsaXRlcmFsPkZPUjwvbGl0ZXJh bD4gPHBhcmFtZXRlcj5lc2NhcGU8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gKQogICAg ICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAg ICAgIDxwYXJhPgpAQCAtMTM5OCw3ICsxMzk4LDcgQEAKICAgICAgICAgdGhlIDxwYXJhbWV0ZXI+ c3RhcnQ8L3BhcmFtZXRlcj4ndGggY2hhcmFjdGVyLAogICAgICAgICBhbmQgZXh0ZW5kaW5nIGZv ciA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IGNoYXJhY3RlcnMgaWYgdGhhdCBpcwogICAg ICAgICBzcGVjaWZpZWQuICAoU2FtZQotICAgICAgICBhcyA8bGl0ZXJhbD5zdWJzdHJpbmcoPHBh cmFtZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4KKyAgICAgICAgYXMgPGxpdGVyYWw+c3Vic3RyaW5n KDxwYXJhbWV0ZXI+c291cmNlPC9wYXJhbWV0ZXI+CiAgICAgICAgIGZyb20gPHBhcmFtZXRlcj5z dGFydDwvcGFyYW1ldGVyPgogICAgICAgICBmb3IgPHBhcmFtZXRlcj5jb3VudDwvcGFyYW1ldGVy Pik8L2xpdGVyYWw+LikKICAgICAgICA8L3BhcmE+CkBAIC0xNDEyLDYgKzE0MTIsNTYgQEAKICAg ICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCisgICAgICA8cm93PgorICAgICAg IDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVy ZSI+CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5zdWJzdHJpbmc8L3By aW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5n PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiwgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8 b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5 cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPnRleHQ8L3JldHVybnZhbHVl PgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRXh0cmFjdHMgdGhlIHN1 YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAorICAg ICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPid0aCBjaGFyYWN0ZXIsCisgICAg ICAgIGFuZCBzdG9wcGluZyBhZnRlciA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IGNoYXJh Y3RlcnMgaWYgdGhhdCBpcworICAgICAgICBzcGVjaWZpZWQuCisgICAgICAgPC9wYXJhPgorICAg ICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5zdWJzdHJpbmcoc291cmNlPT4nVGhvbWFzJywg c3RhcnQ9PjIsIGNvdW50PT4zKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVlPmhvbTwv cmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKworICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlv bj4gKCA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiwgPHBh cmFtZXRlcj5wYXR0ZXJuPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+LCA8cGFyYW1ldGVy PmVzY2FwZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPikKKyAgICAgICAgPHJldHVybnZh bHVlPnRleHQ8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgRXh0cmFjdHMgdGhlIGZpcnN0IHN1YnN0cmluZyBtYXRjaGluZyA8YWNyb255bT5TUUw8 L2Fjcm9ueW0+IHJlZ3VsYXIgZXhwcmVzc2lvbjsKKyAgICAgICAgc2VlIDx4cmVmIGxpbmtlbmQ9 ImZ1bmN0aW9ucy1zaW1pbGFydG8tcmVnZXhwIi8+LgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+c3Vic3RyaW5nKCdUaG9tYXMnLCAnJSMib19hIyJfJywg JyMnKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVlPm9tYTwvcmV0dXJudmFsdWU+Cisg ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAg ICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1 cmUiPgorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVy PnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiwgPHBhcmFtZXRlcj5wYXR0ZXJu PC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPnRl eHQ8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg RXh0cmFjdHMgdGhlIGZpcnN0IHN1YnN0cmluZyBtYXRjaGluZyA8YWNyb255bT5QT1NJWDwvYWNy b255bT4gcmVndWxhciBleHByZXNzaW9uOyBzZWUKKyAgICAgICAgPHhyZWYgbGlua2VuZD0iZnVu Y3Rpb25zLXBvc2l4LXJlZ2V4cCIvPi4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIDxsaXRlcmFsPnN1YnN0cmluZygnVGhvbWFzJywgJy4uLiQnKTwvbGl0ZXJhbD4KKyAg ICAgICAgPHJldHVybnZhbHVlPm1hczwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgICA8L3Jvdz4KKwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVu Y190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAgICAgICA8aW5k ZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25z LnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwKaW5kZXggMmQ5 NDZkNmQ5ZTkuLmYwODUwZjllZjY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV9mdW5jdGlvbnMuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0 aW9ucy5zcWwKQEAgLTQyLDcgKzQyLDcgQEAgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcnBh ZCh0ZXh0LCBpbnRlZ2VyKQogIElNTVVUQUJMRSBQQVJBTExFTCBTQUZFIFNUUklDVCBDT1NUIDEK IFJFVFVSTiBycGFkKCQxLCAkMiwgJyAnKTsKIAotQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g InN1YnN0cmluZyIodGV4dCwgdGV4dCwgdGV4dCkKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O ICJzdWJzdHJpbmciKHNvdXJjZSB0ZXh0LCBwYXR0ZXJuIHRleHQsIGVzY2FwZSB0ZXh0KQogIFJF VFVSTlMgdGV4dAogIExBTkdVQUdFIHNxbAogIElNTVVUQUJMRSBQQVJBTExFTCBTQUZFIFNUUklD VCBDT1NUIDEKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGFhOTJmNzJiMjk5Li4xOTcwMGVi ZDllNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0zNzQ4LDkgKzM3NDgsMTEgQEAKIAog eyBvaWQgPT4gJzkzNicsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAg cHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsIHByb2FyZ3R5cGVz ID0+ICd0ZXh0IGludDQgaW50NCcsCisgIHByb2FyZ25hbWVzID0+ICd7c291cmNlLCBzdGFydCwg Y291bnR9JywKICAgcHJvc3JjID0+ICd0ZXh0X3N1YnN0cicgfSwKIHsgb2lkID0+ICc5MzcnLCBk ZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUgPT4gJ3N1YnN0 cmluZycsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCBpbnQ0JywK KyAgcHJvYXJnbmFtZXMgPT4gJ3tzb3VyY2UsIHN0YXJ0fScsCiAgIHByb3NyYyA9PiAndGV4dF9z dWJzdHJfbm9fbGVuJyB9LAogeyBvaWQgPT4gJzIwODcnLAogICBkZXNjciA9PiAncmVwbGFjZSBh bGwgb2NjdXJyZW5jZXMgaW4gc3RyaW5nIG9mIG9sZF9zdWJzdHIgd2l0aCBuZXdfc3Vic3RyJywK QEAgLTQxNjgsNiArNDE3MCw3IEBACiAgIHByb3NyYyA9PiAnYml0Y2F0JyB9LAogeyBvaWQgPT4g JzE2ODAnLCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIGJpdHN0cmluZycsCiAgIHByb25h bWUgPT4gJ3N1YnN0cmluZycsIHByb3JldHR5cGUgPT4gJ2JpdCcsIHByb2FyZ3R5cGVzID0+ICdi aXQgaW50NCBpbnQ0JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzb3VyY2UsIHN0YXJ0LCBjb3VudH0n LAogICBwcm9zcmMgPT4gJ2JpdHN1YnN0cicgfSwKIHsgb2lkID0+ICcxNjgxJywgZGVzY3IgPT4g J2JpdHN0cmluZyBsZW5ndGgnLAogICBwcm9uYW1lID0+ICdsZW5ndGgnLCBwcm9yZXR0eXBlID0+ ICdpbnQ0JywgcHJvYXJndHlwZXMgPT4gJ2JpdCcsCkBAIC00MTk3LDYgKzQyMDAsNyBAQAogICBw cm9zcmMgPT4gJ2JpdHBvc2l0aW9uJyB9LAogeyBvaWQgPT4gJzE2OTknLCBkZXNjciA9PiAnZXh0 cmFjdCBwb3J0aW9uIG9mIGJpdHN0cmluZycsCiAgIHByb25hbWUgPT4gJ3N1YnN0cmluZycsIHBy b3JldHR5cGUgPT4gJ2JpdCcsIHByb2FyZ3R5cGVzID0+ICdiaXQgaW50NCcsCisgIHByb2FyZ25h bWVzID0+ICd7c291cmNlLCBzdGFydH0nLAogICBwcm9zcmMgPT4gJ2JpdHN1YnN0cl9ub19sZW4n IH0sCiAKIHsgb2lkID0+ICczMDMwJywgZGVzY3IgPT4gJ3N1YnN0aXR1dGUgcG9ydGlvbiBvZiBi aXRzdHJpbmcnLApAQCAtNjMwMiw5ICs2MzA2LDExIEBACiAgIHByb3NyYyA9PiAnYnl0ZWFjYXQn IH0sCiB7IG9pZCA9PiAnMjAxMicsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5n JywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLAorICBw cm9hcmduYW1lcyA9PiAne3NvdXJjZSwgc3RhcnQsIGNvdW50fScsCiAgIHByb2FyZ3R5cGVzID0+ ICdieXRlYSBpbnQ0IGludDQnLCBwcm9zcmMgPT4gJ2J5dGVhX3N1YnN0cicgfSwKIHsgb2lkID0+ ICcyMDEzJywgZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1l ID0+ICdzdWJzdHJpbmcnLCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdi eXRlYSBpbnQ0JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzb3VyY2UsIHN0YXJ0fScsCiAgIHByb3Ny YyA9PiAnYnl0ZWFfc3Vic3RyX25vX2xlbicgfSwKIHsgb2lkID0+ICcyMDg1JywgZGVzY3IgPT4g J2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHInLCBwcm9y ZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdieXRlYSBpbnQ0IGludDQnLApAQCAt NjUwNCw5ICs2NTEwLDExIEBACiAKIHsgb2lkID0+ICcyMDczJywgZGVzY3IgPT4gJ2V4dHJhY3Qg dGV4dCBtYXRjaGluZyByZWd1bGFyIGV4cHJlc3Npb24nLAogICBwcm9uYW1lID0+ICdzdWJzdHJp bmcnLCBwcm9yZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCcsCisg IHByb2FyZ25hbWVzID0+ICd7c291cmNlLCBwYXR0ZXJufScsCiAgIHByb3NyYyA9PiAndGV4dHJl Z2V4c3Vic3RyJyB9LAogeyBvaWQgPT4gJzIwNzQnLCBkZXNjciA9PiAnZXh0cmFjdCB0ZXh0IG1h dGNoaW5nIFNRTCByZWd1bGFyIGV4cHJlc3Npb24nLAogICBwcm9uYW1lID0+ICdzdWJzdHJpbmcn LCBwcm9sYW5nID0+ICdzcWwnLCBwcm9yZXR0eXBlID0+ICd0ZXh0JywKKyAgcHJvYXJnbmFtZXMg PT4gJ3tzb3VyY2UsIHBhdHRlcm4sIGVzY2FwZX0nLAogICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0 ZXh0IHRleHQnLCBwcm9zcmMgPT4gJ3NlZSBzeXN0ZW1fZnVuY3Rpb25zLnNxbCcgfSwKIAogeyBv aWQgPT4gJzIwNzUnLCBkZXNjciA9PiAnY29udmVydCBpbnQ4IHRvIGJpdHN0cmluZycsCi0tIAoy LjM0LjEKCg== --000000000000e0b04d064334533a--