Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ndnZ3-0001n9-OE for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2022 06:30:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ndnZ2-0006XV-0f for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2022 06:30:16 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ndnZ1-0006XM-92 for pgadmin-hackers@lists.postgresql.org; Mon, 11 Apr 2022 06:30:15 +0000 Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ndnYt-00066Y-9s for pgadmin-hackers@postgresql.org; Mon, 11 Apr 2022 06:30:14 +0000 Received: by mail-lj1-x230.google.com with SMTP id r2so3475712ljd.10 for ; Sun, 10 Apr 2022 23:30:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=IaCkBhWTXRAhhaCjExK/YPcPn2xL8Lq0xnJvMpOiqWk=; b=EbwcHF2VTR8pTnlLd1lL4kMDRWXmFGi0K6K4bve4c/1xhsGGhB3wXMfuDJ8Ucf7qix rnozjaoiCN0sYkrWXVZZNx/bPbhKWjUCxIuE2jvnwJp/mVypm4t+Z6JZECOyNsGiidFe r9rTAjBLmOuAtQU5LpaVUoKSkh5oas1PQRFDa15Netr8L2iBGatttmTLqy/hhTja/sUv wTrA44PBjSDgBHaElr9EaBH3exlx7P5ZrEi2MkP20RT0Xn/hXFGKG2Wn7a0+HjAmPHpx pqeIpoNohFjNT3N1rGjV2fJ4xZnLEBct0GbtLBTEKBganl5p0l2MHVhMyXqYApK1lo10 Bt2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=IaCkBhWTXRAhhaCjExK/YPcPn2xL8Lq0xnJvMpOiqWk=; b=ZfP78Ztc7FXga0T2CieegkOzZaEPv7I18e7S0CsdfqzdxJG6+G+EeorFbG2XQuDoCB Mvr4CYxulOmBS0xaBawASjP9HD+uDIWIDgitEVOmye6mHC3NPdN1St0ip6ySgrDD0A/Z VJjXcpzgtjru6/StTDxu1V7UgxmhzeWVhwq9R2DzYsX0yWKM9ZHiHl69ql4ZQoAeU4/z w/4GntUbUyI2ahFlJAH1/9/7/5WduS9eEftx4rdLXaZZIaUZKBfBApK1Tp5ILHJ7wEZT hb4vuqFhBaiwOASPwPicap46jmiBS/nHauaBHyIBYrikkq+b2WdUSSQKKLBkxuMqEl+Q Tqtg== X-Gm-Message-State: AOAM531Pw60eoZF66vg/WAfaTnl5CRFcoKHcHqs9eVoeoLOvewnZoiQy /kASI5t1X2/96AJ7Zqac1lhcBWqyTjC9sl9zXL6tjZOKH1OR7YfGpTDln9FN95OPDcHAT8g+ben q4zOk55vL3EDnCRP/OklTEIaCZU72bWaEQoppfXJR5bKYFnEQPWiQTXS7m3bz5PR1PD1IhPg7D/ KBZduzFevewiB0t7vE/OuZYIL6ANfXp1SCu0IKl60pWw8902/I8PqnIQnkpBr8VAsFOw== X-Google-Smtp-Source: ABdhPJxJeTEsEsdE1ys7f8QmZgLZ2XCwxUWXiqDugDNjXuXlMrfxup3Meu+Z92rd04MdssZcMsDkfuJnoExbtew9v9Q= X-Received: by 2002:a2e:bd09:0:b0:247:e127:5e05 with SMTP id n9-20020a2ebd09000000b00247e1275e05mr19153795ljq.212.1649658605593; Sun, 10 Apr 2022 23:30:05 -0700 (PDT) MIME-Version: 1.0 From: Khushboo Vashi Date: Mon, 11 Apr 2022 11:59:54 +0530 Message-ID: Subject: [pgAdmin4][Patch]- Feature #7012 - disable master password requirement when using alternative auth source To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000304f6c05dc5b13db" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000304f6c05dc5b13db Content-Type: multipart/alternative; boundary="000000000000304f6b05dc5b13d9" --000000000000304f6b05dc5b13d9 Content-Type: text/plain; charset="UTF-8" Hi, Please find the attached patch to implement the feature #7012 - Disable master password requirement when using alternative auth source When pgAdmin stores a connection password, it encrypts it using a key that is formed either from the master password, or from the pgAdmin login password for the user. In the case of auth methods such as OAuth, Kerberos or Webserver, pgAdmin doesn't have access to anything long-lived to form the encryption key from, hence it uses the master password. And if the master is disabled, there is no way to store the connection password. To resolve this, we have added an option to config.py (which defaults to None) for an alternate encryption key. pgAdmin would use this if a) the master password is disabled AND b) there is no suitable key/password available from the auth module for the user. If the option is set to None, pgAdmin works as it does now. Thanks, Khushboo --000000000000304f6b05dc5b13d9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

<= /div>
Please find = the attached patch to implement the feature #7012 - Disable master password= requirement when using alternative auth source

When pgAdmin sto= res a connection password, it encrypts it using a key that is formed either= from the master password, or from the pgAdmin login password for the user.= In the case of auth methods such as OAuth, Kerberos or Webserver, pgAdmin = doesn't have access to anything long-lived to form the encryption key f= rom, hence it uses the master password. And if the master is disabled, ther= e is no way to store the connection password.

To resolve this, we have ad= ded an option to config.py (which defaults to None) for an alternate encryp= tion key. pgAdmin would use this if a) the master password is disabled AND = b) there is no suitable key/password available from the auth module for the= user.=C2=A0If the option is set to None, pgAdmin works as it does now.=C2=A0

Th= anks,
Khushboo
--000000000000304f6b05dc5b13d9-- --000000000000304f6c05dc5b13db Content-Type: application/octet-stream; name="RM_7012.patch" Content-Disposition: attachment; filename="RM_7012.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1uc36z40 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvYWx0ZXJuYXRlX2VuY3J5cHRpb25fa2V5LnJzdCBiL2Rv Y3MvZW5fVVMvYWx0ZXJuYXRlX2VuY3J5cHRpb25fa2V5LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjRiYzQ3MGEzNAotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvZW5f VVMvYWx0ZXJuYXRlX2VuY3J5cHRpb25fa2V5LnJzdApAQCAtMCwwICsxLDMzIEBACisuLiBfYWx0 ZXJuYXRlX2VuY3J5cHRpb25fa2V5OgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCitgQWx0ZXJuYXRlIEVuY3J5cHRpb24gS2V5YDppbmRleDoKKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKworcGdBZG1pbiB3b3VsZCB1c2UgdGhlIGFsdGVybmF0ZSBlbmNy eXB0aW9uIGtleSB0byBzZWN1cmUgYW5kIGxhdGVyIHVubG9jayB0aGUgc2F2ZWQgc2VydmVyCitw YXNzd29yZHMgaWYgdGhlIG1hc3RlciBwYXNzd29yZCBpcyBkaXNhYmxlZCBBTkQgdGhlcmUgaXMg Tk8gc3VpdGFibGUga2V5L3Bhc3N3b3JkIGF2YWlsYWJsZQorZnJvbSB0aGUgYXV0aGVudGljYXRp b24gbW9kdWxlIGZvciB0aGUgdXNlciBpbiBzZXJ2ZXIgbW9kZS4KKworV2hlbiBwZ0FkbWluIHN0 b3JlcyBhIGNvbm5lY3Rpb24gcGFzc3dvcmQsCitpdCBlbmNyeXB0cyBpdCB1c2luZyBhIGtleSB0 aGF0IGlzIGZvcm1lZCBlaXRoZXIgZnJvbSB0aGUgbWFzdGVyIHBhc3N3b3JkLCBvcgorZnJvbSB0 aGUgcGdBZG1pbiBsb2dpbiBwYXNzd29yZCBmb3IgdGhlIHVzZXIuIEluIHRoZSBjYXNlIG9mIGF1 dGhlbnRpY2F0aW9uIG1ldGhvZHMKK3N1Y2ggYXMgT0F1dGgsIEtlcmJlcm9zIG9yIFdlYnNlcnZl ciwgcGdBZG1pbiBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIGFueXRoaW5nIGxvbmctbGl2ZWQgdG8K K2Zvcm0gdGhlIGVuY3J5cHRpb24ga2V5IGZyb20sIGhlbmNlIGl0IHVzZXMgdGhlIG1hc3RlciBw YXNzd29yZCBhbmQgaWYgbWFzdGVyIHBhc3N3b3JkCitpcyBkaXNhYmxlZCBwZ0FkbWluIHdvdWxk IHVzZSB0aGUgYWx0ZXJuYXRlIGVuY3J5cHRpb24ga2V5LCBpZiBpdCBpcyBzZXQuCisKKworLi4g bm90ZTo6IFlvdSBjYW4gc2V0IHRoZSBhbHRlcm5hdGUgZW5jcnlwdGlvbiBrZXkgYnkgc2V0dGlu ZyB0aGUgY29uZmlndXJhdGlvbgorICBwYXJhbWV0ZXIgKkFMVEVSTkFURV9FTkNSWVBUSU9OX0tF WT08S2V5PiouCisgIFNlZSA6cmVmOmBjb25maWdfcHlgIGZvciBtb3JlIGluZm9ybWF0aW9uIG9u IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhbmQgaG93CisgIHRoZXkgY2FuIGJlIGNoYW5nZWQg b3IgZW5mb3JjZWQgYWNyb3NzIGFuIG9yZ2FuaXNhdGlvbi4KKworLi4gbm90ZTo6IElmIHRoZSBt YXN0ZXIgcGFzc3dvcmQgYW5kIHRoZSBhbHRlcm5hdGUgZW5jcnlwdGlvbiBrZXkgaXMgZGlzYWJs ZWQsCisgIHRoZW4gYWxsIHRoZSBzYXZlZCBwYXNzd29yZHMgd2lsbCBiZSByZW1vdmVkLgorCisK Ky4uIHdhcm5pbmc6OiBCeSBzZXR0aW5nIHRoaXMgb3B0aW9uLCB5b3Ugc2hvdWxkIGJlIGZ1bGx5 IGF3YXJlIG9mIHRoZSBwb3RlbnRpYWwgc2VjdXJpdHkKKyAgICByaXNrIG9mIHVzaW5nIHRoZSBz YW1lIGVuY3J5cHRpb24ga2V5IGZvciBtdWx0aXBsZSB1c2VycywgdGhhdCBtYXkgYmUgYWNjZXNz aWJsZSB0bworICAgIHN5c2FkbWlucyB3aG8gd291bGQgbm90IG5vcm1hbGx5IGJlIGFibGUgdG8g dXNlIHBnQWRtaW4uCisKKyAgICBJdCBpcyAqKm5vdCByZWNvbW1lbmRlZCoqIHRoYXQgeW91IHVz ZSB0aGUgYWx0ZXJuYXRlIGVuY3J5cHRpb24ga2V5IGluc3RlYWQgb2YgbWFzdGVyIHBhc3N3b3Jk CisgICAgaWYgeW91IHVzZSB0aGUgKlNhdmUgUGFzc3dvcmQqIG9wdGlvbi4KZGlmZiAtLWdpdCBh L2RvY3MvZW5fVVMvY29ubmVjdGluZy5yc3QgYi9kb2NzL2VuX1VTL2Nvbm5lY3RpbmcucnN0Cmlu ZGV4IDhkMWEzZTRjZi4uZGYxODc0YzM3IDEwMDY0NAotLS0gYS9kb2NzL2VuX1VTL2Nvbm5lY3Rp bmcucnN0CisrKyBiL2RvY3MvZW5fVVMvY29ubmVjdGluZy5yc3QKQEAgLTM4LDYgKzM4LDEzIEBA IEl0IGlzIHNldCBieSB0aGUgdXNlciBhbmQgY2FuIGJlIGRpc2FibGVkIHVzaW5nIGNvbmZpZy4K IAogICAgIG1hc3Rlcl9wYXNzd29yZAogCitUaGUgQWx0ZXJuYXRlIEVuY3J5cHRpb24gS2V5IGlz IHVzZWQgdG8gc2VjdXJlIGFuZCBsYXRlciB1bmxvY2sgc2F2ZWQgc2VydmVyIHBhc3N3b3Jkcy4K K0l0IGlzICoqbm90IHJlY29tbWVuZGVkKiogdG8gdXNlIHRoZSBhbHRlcm5hdGUgZW5jcnlwdGlv biBrZXkuCisKKy4uIHRvY3RyZWU6OgorCisgICAgYWx0ZXJuYXRlX2VuY3J5cHRpb25fa2V5CisK IEFmdGVyIGRlZmluaW5nIGEgc2VydmVyIGNvbm5lY3Rpb24sIHJpZ2h0LWNsaWNrIG9uIHRoZSBz ZXJ2ZXIgbmFtZSwgYW5kIHNlbGVjdAogKkNvbm5lY3QgdG8gc2VydmVyKiB0byBhdXRoZW50aWNh dGUgd2l0aCB0aGUgc2VydmVyLCBhbmQgc3RhcnQgdXNpbmcgcGdBZG1pbiB0bwogbWFuYWdlIG9i amVjdHMgdGhhdCByZXNpZGUgb24gdGhlIHNlcnZlci4KZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMv bWFzdGVyX3Bhc3N3b3JkLnJzdCBiL2RvY3MvZW5fVVMvbWFzdGVyX3Bhc3N3b3JkLnJzdAppbmRl eCBjZWQxYzdlYjUuLjQ4ZWRmZGY0OSAxMDA2NDQKLS0tIGEvZG9jcy9lbl9VUy9tYXN0ZXJfcGFz c3dvcmQucnN0CisrKyBiL2RvY3MvZW5fVVMvbWFzdGVyX3Bhc3N3b3JkLnJzdApAQCAtNSw3ICs1 LDkgQEAKICoqKioqKioqKioqKioqKioqKioqKioqKgogCiBBIG1hc3RlciBwYXNzd29yZCBpcyBy ZXF1aXJlZCB0byBzZWN1cmUgYW5kIGxhdGVyIHVubG9jayB0aGUgc2F2ZWQgc2VydmVyCi1wYXNz d29yZHMuIFRoaXMgaXMgYXBwbGljYWJsZSBvbmx5IGZvciBkZXNrdG9wIG1vZGUgdXNlcnMuCitw YXNzd29yZHMuIFRoaXMgaXMgYXBwbGljYWJsZSBmb3IgZGVza3RvcCBtb2RlIHVzZXJzIGFuZCBm b3IgdGhlIGF1dGggbWV0aG9kcworc3VjaCBhcyBPQXV0aCwgS2VyYmVyb3Mgb3IgV2Vic2VydmVy IHdoZXJlIHBnQWRtaW4gZG9lc24ndCBoYXZlIGFjY2VzcyB0byBhbnl0aGluZworbG9uZy1saXZl ZCB0byBmb3JtIHRoZSBlbmNyeXB0aW9uIGtleS4KIAogKiBZb3UgYXJlIHByb21wdGVkIHRvIGVu dGVyIHRoZSBtYXN0ZXIgcGFzc3dvcmQgd2hlbiB5b3Ugb3BlbiB0aGUgd2luZG93IGZvcgogICB0 aGUgZmlyc3QgdGltZSBhZnRlciBzdGFydGluZyB0aGUgYXBwbGljYXRpb24uCkBAIC0yMywxNSAr MjUsMTUgQEAgcGFzc3dvcmRzLiBUaGlzIGlzIGFwcGxpY2FibGUgb25seSBmb3IgZGVza3RvcCBt b2RlIHVzZXJzLgogICBTZWUgOnJlZjpgY29uZmlnX3B5YCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBv biBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYW5kIGhvdwogICB0aGV5IGNhbiBiZSBjaGFuZ2Vk IG9yIGVuZm9yY2VkIGFjcm9zcyBhbiBvcmdhbmlzYXRpb24uCiAKLS4uIG5vdGU6OiBJZiB0aGUg bWFzdGVyIHBhc3N3b3JkIGlzIGRpc2FibGVkLCB0aGVuIGFsbCB0aGUgc2F2ZWQgcGFzc3dvcmRz IHdpbGwKLSAgICBiZSByZW1vdmVkLgorLi4gbm90ZTo6IElmIHRoZSBtYXN0ZXIgcGFzc3dvcmQg YW5kIDpyZWY6YGFsdGVybmF0ZV9lbmNyeXB0aW9uX2tleWAgaXMgZGlzYWJsZWQsCisgIHRoZW4g YWxsIHRoZSBzYXZlZCBwYXNzd29yZHMgd2lsbCBiZSByZW1vdmVkLgogCiAuLiB3YXJuaW5nOjog SWYgdGhlIG1hc3RlciBwYXNzd29yZCBpcyBkaXNhYmxlZCwgdGhlbiB0aGUgc2F2ZWQgcGFzc3dv cmRzIHdpbGwKLSAgICBiZSBlbmNyeXB0ZWQgdXNpbmcgYSBrZXkgd2hpY2ggaXMgZGVyaXZlZCBm cm9tIGluZm9ybWF0aW9uIHdpdGhpbiB0aGUKLSAgICBjb25maWd1cmF0aW9uIGRhdGFiYXNlLiBV c2Ugb2YgYSBtYXN0ZXIgcGFzc3dvcmQgZW5zdXJlcyB0aGF0IHRoZSBlbmNyeXB0aW9uCi0gICAg a2V5IGRvZXMgbm90IG5lZWQgdG8gYmUgc3RvcmVkIGFueXdoZXJlLCBhbmQgdGh1cyBwcmV2ZW50 cyBwb3NzaWJsZSBhY2Nlc3MKLSAgICB0byBzZXJ2ZXIgY3JlZGVudGlhbHMgaWYgdGhlIGNvbmZp Z3VyYXRpb24gZGF0YWJhc2UgYmVjb21lcyBhdmFpbGFibGUgdG8gYW4KLSAgICBhdHRhY2tlci4K KyAgICBiZSBlbmNyeXB0ZWQgdXNpbmcgdGhlIDpyZWY6YGFsdGVybmF0ZV9lbmNyeXB0aW9uX2tl eWAgb3IgYSBrZXkgd2hpY2ggaXMgZGVyaXZlZAorICAgIGZyb20gaW5mb3JtYXRpb24gd2l0aGlu IHRoZSBjb25maWd1cmF0aW9uIGRhdGFiYXNlLiBVc2Ugb2YgYSBtYXN0ZXIgcGFzc3dvcmQKKyAg ICBlbnN1cmVzIHRoYXQgdGhlIGVuY3J5cHRpb24ga2V5IGRvZXMgbm90IG5lZWQgdG8gYmUgc3Rv cmVkIGFueXdoZXJlLCBhbmQgdGh1cworICAgIHByZXZlbnRzIHBvc3NpYmxlIGFjY2VzcyB0byBz ZXJ2ZXIgY3JlZGVudGlhbHMgaWYgdGhlIGNvbmZpZ3VyYXRpb24gZGF0YWJhc2UKKyAgICBiZWNv bWVzIGF2YWlsYWJsZSB0byBhbiBhdHRhY2tlci4KIAogICAgIEl0IGlzICoqc3Ryb25nbHkqKiBy ZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UgdGhlIG1hc3RlciBwYXNzd29yZCBpZiB5b3UgdXNlCiAg ICAgdGhlICpTYXZlIFBhc3N3b3JkKiBvcHRpb24uCmRpZmYgLS1naXQgYS93ZWIvY29uZmlnLnB5 IGIvd2ViL2NvbmZpZy5weQppbmRleCBmODczM2ZlMGEuLjE0ZTNiM2VjMCAxMDA2NDQKLS0tIGEv d2ViL2NvbmZpZy5weQorKysgYi93ZWIvY29uZmlnLnB5CkBAIC01NTMsNiArNTUzLDI3IEBAIEFM TE9XX1NBVkVfVFVOTkVMX1BBU1NXT1JEID0gRmFsc2UKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiBNQVNU RVJfUEFTU1dPUkRfUkVRVUlSRUQgPSBUcnVlCiAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFdoZW4g cGdBZG1pbiBzdG9yZXMgYSBjb25uZWN0aW9uIHBhc3N3b3JkLAorIyBpdCBlbmNyeXB0cyBpdCB1 c2luZyBhIGtleSB0aGF0IGlzIGZvcm1lZCBlaXRoZXIgZnJvbSB0aGUgbWFzdGVyIHBhc3N3b3Jk LCBvcgorIyBmcm9tIHRoZSBwZ0FkbWluIGxvZ2luIHBhc3N3b3JkIGZvciB0aGUgdXNlci4KKyMK KyMgSW4gdGhlIGNhc2Ugb2YgYXV0aCBtZXRob2RzIHN1Y2ggYXMgT0F1dGggb3IgS2VyYmVyb3Ms IHBnQWRtaW4KKyMgZG9lc24ndCBoYXZlIGFjY2VzcyB0byBhbnl0aGluZyBsb25nLWxpdmVkIHRv IGZvcm0gdGhlIGVuY3J5cHRpb24ga2V5IGZyb20sCisjIGhlbmNlIGl0IHVzZXMgdGhlIG1hc3Rl ciBwYXNzd29yZC4KKworIyBTbywgcGdBZG1pbiB3b3VsZCB1c2UgdGhpcyBhbHRlcm5hdGUgZW5j cnlwdGlvbiBrZXkgIGlmCisjIGEpIHRoZSBtYXN0ZXIgcGFzc3dvcmQgaXMgZGlzYWJsZWQKKyMg QU5ECisjIGIpIHRoZXJlIGlzIE5PIHN1aXRhYmxlIGtleS9wYXNzIGF2YWlsYWJsZSBmcm9tIHRo ZSBhdXRoIG1vZHVsZSBmb3IgdGhlIHVzZXIuCisKKyMgQnkgc2V0dGluZyB0aGlzIG9wdGlvbiwg eW91IHNob3VsZCBmdWxseSBhd2FyZSBvZiB0aGUgcG90ZW50aWFsIHNlY3VyaXR5CisjIHJpc2sg b2YgdXNpbmcgdGhlIHNhbWUgZW5jcnlwdGlvbiBrZXkgZm9yIG11bHRpcGxlIHVzZXJzLAorIyB0 aGF0IG1heSBiZSBhY2Nlc3NpYmxlIHRvIHN5c2FkbWlucyB3aG8gd291bGQgbm90IG5vcm1hbGx5 CisjIGJlIGFibGUgdG8gdXNlIHBnQWRtaW4uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworQUxURVJOQVRF X0VOQ1JZUFRJT05fS0VZID0gTm9uZQorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBBbGxvd3MgcGdB ZG1pbjQgdG8gY3JlYXRlIHNlc3Npb24gY29va2llcyBiYXNlZCBvbiBJUCBhZGRyZXNzLCBzbyBl dmVuCiAjIGlmIGEgY29va2llIGlzIHN0b2xlbiwgdGhlIGF0dGFja2VyIHdpbGwgbm90IGJlIGFi bGUgdG8gY29ubmVjdCB0byB0aGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL19faW5pdF9fLnB5CmluZGV4IDRhN2UxOGVi MC4uNDUyNTIwNmVlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL19faW5pdF9fLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvX19pbml0X18ucHkKQEAgLTc1MCw3ICs3NTAsOCBA QCBkZWYgaW5kZXgoKToKICAgICAgICAgYXV0aF9zb3VyY2UgPSBzZXNzaW9uWydhdXRoX3NvdXJj ZV9tYW5hZ2VyJ11bCiAgICAgICAgICAgICAnc291cmNlX2ZyaWVuZGx5X25hbWUnXQogCi0gICAg ICAgIGlmIG5vdCBjb25maWcuTUFTVEVSX1BBU1NXT1JEX1JFUVVJUkVEIGFuZCAncGFzc19lbmNf a2V5JyBpbiBzZXNzaW9uOgorICAgICAgICBpZiBub3QgY29uZmlnLk1BU1RFUl9QQVNTV09SRF9S RVFVSVJFRCBhbmQgJ3Bhc3NfZW5jX2tleScgaW4gc2Vzc2lvblwKKyAgICAgICAgICAgICAgICBh bmQgbm90IGNvbmZpZy5BTFRFUk5BVEVfRU5DUllQVElPTl9LRVk6CiAgICAgICAgICAgICBzZXNz aW9uWydhbGxvd19zYXZlX3Bhc3N3b3JkJ10gPSBGYWxzZQogCiAgICAgcmVzcG9uc2UgPSBSZXNw b25zZShyZW5kZXJfdGVtcGxhdGUoCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGlscy9tYXN0 ZXJfcGFzc3dvcmQucHkgYi93ZWIvcGdhZG1pbi91dGlscy9tYXN0ZXJfcGFzc3dvcmQucHkKaW5k ZXggMjdkYjkyNGNmLi5iYTAwOTYzYTcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL21h c3Rlcl9wYXNzd29yZC5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9tYXN0ZXJfcGFzc3dvcmQu cHkKQEAgLTMzLDYgKzMzLDkgQEAgZGVmIGdldF9jcnlwdF9rZXkoKToKICAgICBlbGlmIGNvbmZp Zy5NQVNURVJfUEFTU1dPUkRfUkVRVUlSRUQgXAogICAgICAgICAgICAgYW5kIGVuY19rZXkgaXMg Tm9uZToKICAgICAgICAgcmV0dXJuIEZhbHNlLCBOb25lCisgICAgZWxpZiBub3QgY29uZmlnLk1B U1RFUl9QQVNTV09SRF9SRVFVSVJFRCBhbmQgY29uZmlnLlNFUlZFUl9NT0RFIGFuZCBcCisgICAg ICAgICAgICBjb25maWcuQUxURVJOQVRFX0VOQ1JZUFRJT05fS0VZOgorICAgICAgICByZXR1cm4g VHJ1ZSwgY29uZmlnLkFMVEVSTkFURV9FTkNSWVBUSU9OX0tFWQogICAgIGVsaWYgbm90IGNvbmZp Zy5NQVNURVJfUEFTU1dPUkRfUkVRVUlSRUQgYW5kIGNvbmZpZy5TRVJWRVJfTU9ERSBhbmQgXAog ICAgICAgICAgICAgJ3Bhc3NfZW5jX2tleScgaW4gc2Vzc2lvbjoKICAgICAgICAgcmV0dXJuIFRy dWUsIHNlc3Npb25bJ3Bhc3NfZW5jX2tleSddCg== --000000000000304f6c05dc5b13db--