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 1lid89-0001p0-Nn for pgadmin-hackers@arkaria.postgresql.org; Mon, 17 May 2021 13:17:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lid85-0004Vs-Vj for pgadmin-hackers@arkaria.postgresql.org; Mon, 17 May 2021 13:17:53 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lid85-0004Vk-HS for pgadmin-hackers@lists.postgresql.org; Mon, 17 May 2021 13:17:53 +0000 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lid80-00020k-Cy for pgadmin-hackers@postgresql.org; Mon, 17 May 2021 13:17:52 +0000 Received: by mail-ej1-x62f.google.com with SMTP id b25so9181775eju.5 for ; Mon, 17 May 2021 06:17:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=vYQlY77yIfsgAoQKjyimNEZ/iLD9kHyDJbWs9mwt5is=; b=VG9Hs8Xu10V+xN7exBGMrDAIINbD6k7lXjB2IncP0atY9wL9103QfopdCuRfO5OmCK 6Bi/HDh8cHSHDsVAIm7Ej1mO99gWvXQs0YH3Tjn0dT0Me4YIHZYBzBj2eDeeXec5Bevk NkjTEe9MyHxeGeEYXT7R1KeoSWRtvzePH412uxLfuHnW+rXOdlKF/MXPtTAUNCI3rBXO LAeCSMkbDblNQIu0zfH4505aKvhMQS5TeWYUyg6kxrolwwYMKAKnkWa/fjcD5dzBGciU DCckBEmYJF81V82I8S3uLZbonjqwLxpxmgdMWRh9B0MEC8DiAVXk+BYxNZ7h55mia5Fn 9VfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=vYQlY77yIfsgAoQKjyimNEZ/iLD9kHyDJbWs9mwt5is=; b=Ig3RT3cerCLYRRv4poybFHrM4tK0Y7JrwDeVLodFfnCFT9Yxnrhxj/lrI5BvPguoOd dxkqHGoA7246ELIxrAGTmND54i/HaDJwuP049Egh4vvoDZLtOYsO2OycyBZKY8n4kSud mY0cbwzwOaioPeVvPCSJC/Sn17LRwEzyInaq+aYGZIqo/0xfEJPY6/nTRGpGYIWRVkcr O1lH63MTFZzfJy1BDgVmY5fMVJRkBtrv7PLpFeQ/1uIEyGasz2+I6M81gtHanB+NRign kB2Nc2NvyosriM4IvJ0+9QtS7qcTWSPeWVDuQanUD3UcQXaVhCzGz2qXivrGhJpHXl1B h1bg== X-Gm-Message-State: AOAM533yUBrIkcjor0jHFuRME5Ct9VU1C8pRzyq8lPmFH7roPKuXtCms J/hgdGei4walWIZuQRKMmZk7S3pEqRpibcaem7DiaA== X-Google-Smtp-Source: ABdhPJxzwov0VEk5DUiPeuc/kUJdtSljye1/tfB5s8jJQgrBtR1+3YnPD6/wQVxBy7+A43WlC1ShreUWDLCD1NTErVA= X-Received: by 2002:a17:906:3419:: with SMTP id c25mr16620439ejb.96.1621257467046; Mon, 17 May 2021 06:17:47 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dave Page Date: Mon, 17 May 2021 14:17:36 +0100 Message-ID: Subject: Re: [pgAdmin][RM-2341]: Add menu option for starting PSQL To: Nikhil Mohite Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/alternative; boundary="00000000000069c68405c2866b66" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000069c68405c2866b66 Content-Type: text/plain; charset="UTF-8" Hi On Mon, May 17, 2021 at 11:01 AM Nikhil Mohite < nikhil.mohite@enterprisedb.com> wrote: > Hi Akshay/ Team, > > Please find the attached updated patch for the psql tool. > Hmm, this version is also broken. There's a typo in editor_template.html on line 138 - it splits a string across two lines which throws an error. Having fixed that... I also note there's a lot of Javascript in that HTML file. That should be pushed into the webpacked bundle I think, and not included inline in HTML. A couple of other things I noticed: - The button is enabled if the treeview has a Server selected. It could be argued that the query tool should do the same (defaulting to the maintenance database), however, that would be a separate change, and psql should be consistent with the query tool. - If I do a "select * from pg_class;" I still get: postgres=# select * from pg_class; WARNING: terminal is not fully functional - I'm sure using \q in the previous version displayed a message saying the session exited (the one on line 138 of editor_template.html). It no longer seems to do so. > > > On Tue, May 11, 2021 at 3:40 PM Dave Page wrote: > >> Hi >> >> On Tue, May 11, 2021 at 9:02 AM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Nikhil >>> >>> Following are the review comments: >>> >>> *GUI specific*: >>> >>> - We need a panel icon for PSQL like query tool, we can also add >>> that on the browser tree toolbar. >>> - PSQL Tool menu should be visible for all the child nodes of the >>> database node. Follow the same as Query Tool. >>> - PSQL tab title should be only database server name as the user can >>> change the database/user from PSQL command, so it's been difficult to >>> update the tab title. >>> - PSQL connection is still open even if we disconnect the database >>> server from the browser tree. >>> >>> *Code specific:* >>> >>> - Remove an extra space from requirements.txt and package.json >>> - Documentation needs to be updated to let the user know from where >>> the PSQL tool will open and on which node it is applicable. >>> - psql/__init__.py check there are so many unused imports please >>> remove them. >>> - We are not using cheroot so it should be removed from >>> requirements.txt and also remove the import statement from pgAdmin4.py >>> - Test cases are showing successful but actually, there are some >>> routing errors please check. >>> >>> A few other things I noticed: >> >> - I was prompted to enter a password. This should be passed in the >> environment to psql as it is for pg_dump etc. >> - There seems to be an issue with terminal compatibility (which I didn't >> have on my prototype): >> >> ml=# select * from pg_class; >> WARNING: terminal is not fully functional >> -[ RECORD 1 ]-------+---------------------------------------------- >> oid | 79354 >> relname | housing >> ... >> >> - The panel should honour the styleguide. I'm running in dark mode, and >> see a jet black background. I would expect to see the same >> background/foreground colours as the treeview. >> - I spotted at least one print() statement that shouldn't be there (debug >> output should go through the logger) - psql/__init__.py:235 >> - This seems suspect - why would there be a password in a connection >> string we've built? And why would it be xxx? >> >> if 'password=xxx' in conn_attr: >> conn_attr = conn_attr.replace('password=xxx', '') >> >> - There's a thick white line at the bottom of the panel, where a >> horizontal scrollbar might be if there was one. >> - The trailing semi-colon should be removed from: "ERROR: Shell commands >> are disabled in psql for security;" >> >> Once we're happy with the patch in general, I'll do a string review >> before committing. In particular, I want to be sure the text in config.py >> is appropriately worded. >> >> This is shaping up nicely! Good work. >> >> >>> >>> On Mon, May 10, 2021 at 7:32 PM Nikhil Mohite < >>> nikhil.mohite@enterprisedb.com> wrote: >>> >>>> Hi Dave/ Team, >>>> >>>> PFA updated patch, sorry for the inconvenience, while cleanup I removed >>>> the unwanted libraries but forgot to remove the code related to them. >>>> >>>> On Mon, May 10, 2021 at 7:10 PM Dave Page wrote: >>>> >>>>> Hi >>>>> >>>>> On Mon, May 10, 2021 at 1:45 PM Nikhil Mohite < >>>>> nikhil.mohite@enterprisedb.com> wrote: >>>>> >>>>>> Hi Hackers, >>>>>> >>>>>> Please find the attached patch for RM-2341 >>>>>> : Add Menu option for >>>>>> starting PSQL. >>>>>> 1. Added new Option PSQL Tool in Tools menu. >>>>>> 2. Added the same option for Server and Database nodes from the tree >>>>>> view. >>>>>> >>>>> >>>>> Unfortunately there's a trailing comma in package.json that makes it >>>>> invalid. If I fix that, then I get the error below, so I'm guessing the >>>>> intention was to actually include another package there? >>>>> >>>>> ERROR in ./pgadmin/tools/psql/static/js/psql_module.js 23:50-82 >>>>> Module not found: Error: Can't resolve 'local-echo-controller' in >>>>> '/Users/dpage/git/pgadmin4/web/pgadmin/tools/psql/static/js' >>>>> resolve 'local-echo-controller' in >>>>> '/Users/dpage/git/pgadmin4/web/pgadmin/tools/psql/static/js' >>>>> Parsed request is a module >>>>> using description file: /Users/dpage/git/pgadmin4/web/package.json >>>>> (relative path: ./pgadmin/tools/psql/static/js) >>>>> aliased with mapping 'local-echo-controller': >>>>> '/Users/dpage/git/pgadmin4/web/node_modules/local-echo' to >>>>> '/Users/dpage/git/pgadmin4/web/node_modules/local-echo' >>>>> using description file: >>>>> /Users/dpage/git/pgadmin4/web/package.json (relative path: >>>>> ./pgadmin/tools/psql/static/js) >>>>> Field 'browser' doesn't contain a valid alias configuration >>>>> root path /Users/dpage/git/pgadmin4/web >>>>> using description file: >>>>> /Users/dpage/git/pgadmin4/web/package.json (relative path: >>>>> ./Users/dpage/git/pgadmin4/web/node_modules/local-echo) >>>>> no extension >>>>> Field 'browser' doesn't contain a valid alias >>>>> configuration >>>>> >>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo >>>>> doesn't exist >>>>> .js >>>>> Field 'browser' doesn't contain a valid alias >>>>> configuration >>>>> >>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo.js >>>>> doesn't exist >>>>> .jsx >>>>> Field 'browser' doesn't contain a valid alias >>>>> configuration >>>>> >>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo.jsx >>>>> doesn't exist >>>>> as directory >>>>> >>>>> /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo >>>>> doesn't exist >>>>> using description file: >>>>> /Users/dpage/git/pgadmin4/web/package.json (relative path: >>>>> ./node_modules/local-echo) >>>>> no extension >>>>> Field 'browser' doesn't contain a valid alias configuration >>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo >>>>> doesn't exist >>>>> .js >>>>> Field 'browser' doesn't contain a valid alias configuration >>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo.js >>>>> doesn't exist >>>>> .jsx >>>>> Field 'browser' doesn't contain a valid alias configuration >>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo.jsx >>>>> doesn't exist >>>>> as directory >>>>> /Users/dpage/git/pgadmin4/web/node_modules/local-echo >>>>> doesn't exist >>>>> @ ./pgadmin/tools/psql/static/js/index.js 17:19-43 >>>>> >>>>> 2021-05-10 14:38:37: webpack 5.21.2 compiled with 1 error in 60041 ms >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: https://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EDB: https://www.enterprisedb.com >>>>> >>>> >>>> Regards, >>>> Nikhil Mohite >>>> >>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> *pgAdmin Hacker | Principal Software Architect* >>> *EDB Postgres * >>> >>> *Mobile: +91 976-788-8246* >>> >> >> >> -- >> Dave Page >> Blog: https://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EDB: https://www.enterprisedb.com >> >> Regards, > Nikhil Mohite > -- Dave Page Blog: https://pgsnake.blogspot.com Twitter: @pgsnake EDB: https://www.enterprisedb.com --00000000000069c68405c2866b66 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Mon, May 17, 2021 at 11:01 AM N= ikhil Mohite <nikhil.m= ohite@enterprisedb.com> wrote:
Hi Akshay/ Team,

Please find the = attached updated patch for the psql tool.

Hmm, this version is also broken. There's a typo in ed= itor_template.html on line 138 - it splits a string across two lines which = throws an error. Having fixed that...

I also note = there's a lot of Javascript in that HTML file. That should be pushed in= to the webpacked bundle I think, and not included inline in HTML.

A couple of other things I noticed:

- The button is enabled if the treeview has a Server selected. It could b= e argued that the query tool should do the same (defaulting to the maintena= nce database), however, that would be a separate change, and psql should be= consistent with the query tool.

- If I do a "= ;select * from pg_class;" I still get:

p= ostgres=3D# select * from pg_class;
WARNING: terminal is not full= y functional

- I'm sure using \q in the = previous version displayed a message saying the session exited (the one on = line=C2=A0138 of editor_template.html). It no longer seems to do so.
<= div>=C2=A0

On Tue, May 11, 2021 at 3:40 PM Dave Page <dpage@pgadmin.org> wrote:
=
Hi

On Tue, May 11, 2021 at 9:02 AM Akshay Jos= hi <a= kshay.joshi@enterprisedb.com> wrote:
Hi Nikhil=C2=A0

Following are the review com= ments:

GUI specific:
  • We n= eed a panel icon for PSQL like query tool, we can also add that on the brow= ser tree toolbar.
  • PSQL Tool menu should be visible for all the chil= d nodes of the database node. Follow the same as Query Tool.
  • PSQL t= ab title should be only database server name as the user can change the dat= abase/user from PSQL command, so it's been difficult to update the tab = title.
  • PSQL connection is still open even if we disconnect the data= base server from the browser tree.
Code specific:
  • Remove an extra space from requirements.txt and package= .json
  • Documentation needs to be updated to let the user know from w= here the PSQL tool will open and on which node it is applicable.
  • ps= ql/__init__.py check there are so many unused imports please remove them.
  • We are not using cheroot so it should be removed from requirements.t= xt and also remove the import statement from pgAdmin4.py=C2=A0
  • = Test cases are showing=C2=A0successful but actually, there are some routing= errors please check.
A few other th= ings I noticed:

- I was prompted to enter a passwo= rd. This should be passed in the environment to psql as it is for pg_dump e= tc.
- There seems to be an issue with terminal compatibility (whi= ch I didn't have on my prototype):

ml=3D#= select * from pg_class;
WARNING: terminal is not fully functiona= l
-[ RECORD 1 ]-------+------------------------------------------= ----
oid =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = | 79354
relname =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | housi= ng
...

- The panel should honour t= he styleguide. I'm running in dark mode, and see a jet black background= . I would expect to see the same background/foreground colours as the treev= iew.
- I spotted at least one print() statement that shouldn'= t be there (debug output should go through the logger) - psql/__init__.py:2= 35
- This seems suspect - why would there be a password in a conn= ection string we've built? And why would it be xxx?

=C2=A0 =C2=A0 if 'password=3Dxxx' in conn_attr:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 conn_attr =3D conn_attr.replace('password= =3Dxxx', '')

- There's a thi= ck white line at the bottom of the panel, where a horizontal scrollbar migh= t be if there was one.
- The trailing semi-colon=C2=A0should be r= emoved from: "ERROR: Shell commands are disabled in psql for security;= "

Once we're happy with the patch in gene= ral, I'll do a string review before committing. In particular, I want t= o be sure the text in config.py is appropriately worded.

This is shaping up nicely! Good work.
=C2=A0

On Mon, May 10, 2021 at 7:32 PM Nikhil Mohite <nikhil.mohite@enterprisedb.co= m> wrote:
Hi Dave/ T= eam,

PFA updated patch, sorry for the inconvenienc= e, while cleanup I removed the unwanted libraries but forgot to remove the = code related to them.

On Mon, May 10, 2021 at 7:10 PM Dave Page <dpage@pgadmin.org> w= rote:
Hi

On Mon, May 10, 2021 at 1:45 PM Nikhil Mohite <nikhil.mohite@enterpr= isedb.com> wrote:
Hi Ha= ckers,

Please find the attached patch for RM-2341:=C2= =A0Add Menu option for starting PSQL.
1. Added new Option PSQL To= ol in Tools menu.
2. Added the same option for Server and Databas= e nodes from the tree view.

Unf= ortunately=C2=A0there's a trailing comma in package.json that makes it = invalid. If I fix that, then I get the error below, so I'm guessing the= intention was to actually include another package there?

ERROR in ./pgadmin/tools/psql/static/js/psql_module.js 23:50-8= 2
Module not found: Error: Can't resolve 'local-echo-cont= roller' in '/Users/dpage/git/pgadmin4/web/pgadmin/tools/psql/static= /js'
resolve 'local-echo-controller' in '/Users/d= page/git/pgadmin4/web/pgadmin/tools/psql/static/js'
=C2=A0 Pa= rsed request is a module
=C2=A0 using description file: /Users/dp= age/git/pgadmin4/web/package.json (relative path: ./pgadmin/tools/psql/stat= ic/js)
=C2=A0 =C2=A0 aliased with mapping 'local-echo-control= ler': '/Users/dpage/git/pgadmin4/web/node_modules/local-echo' t= o '/Users/dpage/git/pgadmin4/web/node_modules/local-echo'
=C2=A0 =C2=A0 =C2=A0 using description file: /Users/dpage/git/pgadmin4/web= /package.json (relative path: ./pgadmin/tools/psql/static/js)
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn't contain a vali= d alias configuration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 root path /User= s/dpage/git/pgadmin4/web
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 using= description file: /Users/dpage/git/pgadmin4/web/package.json (relative pat= h: ./Users/dpage/git/pgadmin4/web/node_modules/local-echo)
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 no extension
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn't cont= ain a valid alias configuration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/Users/dpage/git/pgadmin4/we= b/node_modules/local-echo doesn't exist
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 .js
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Field 'browser' doesn't contain a valid alias config= uration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/d= page/git/pgadmin4/web/Users/dpage/git/pgadmin4/web/node_modules/local-echo.= js doesn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .j= sx
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'br= owser' doesn't contain a valid alias configuration
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/Us= ers/dpage/git/pgadmin4/web/node_modules/local-echo.jsx doesn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 as directory
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/= web/Users/dpage/git/pgadmin4/web/node_modules/local-echo doesn't exist<= /div>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 using description file: /Users/dpage/= git/pgadmin4/web/package.json (relative path: ./node_modules/local-echo)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 no extension
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn't cont= ain a valid alias configuration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 /Users/dpage/git/pgadmin4/web/node_modules/local-echo doesn'= t exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .js
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn't cont= ain a valid alias configuration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 /Users/dpage/git/pgadmin4/web/node_modules/local-echo.js doesn&#= 39;t exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .jsx
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Field 'browser' doesn't = contain a valid alias configuration
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4/web/node_modules/local-echo.jsx doe= sn't exist
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 as directory
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /Users/dpage/git/pgadmin4= /web/node_modules/local-echo doesn't exist
=C2=A0@ ./pgadmin/= tools/psql/static/js/index.js 17:19-43

2021-05-10 = 14:38:37: webpack 5.21.2 compiled with 1 error in 60041 ms
= =C2=A0
--
Dave Page
Blo= g: https://pgsna= ke.blogspot.com
Twitter: @pgsnake

EDB: https://www.enterprisedb.com
=

Regards,
Nikhi= l Mohite=C2=A0


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Principal Softw= are Architect
EDB Po= stgres
Mobile: +91 976-788-8246



--
Dave Page
Blog: https://pgsnake.blogspot.com
Twitter: @pgsnake<= br>
EDB: http= s://www.enterprisedb.com

Regards,
Nikhil Mohite=C2=A0


--
<= /div> --00000000000069c68405c2866b66--