Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bAB2L-0002Z4-Qj for pgadmin-hackers@arkaria.postgresql.org; Tue, 07 Jun 2016 07:02:54 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bAB2L-0000Ly-1i for pgadmin-hackers@arkaria.postgresql.org; Tue, 07 Jun 2016 07:02:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bAB2I-0000LH-7C for pgadmin-hackers@postgresql.org; Tue, 07 Jun 2016 07:02:50 +0000 Received: from mail-qk0-x230.google.com ([2607:f8b0:400d:c09::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bAB27-0007VL-OV for pgadmin-hackers@postgresql.org; Tue, 07 Jun 2016 07:02:49 +0000 Received: by mail-qk0-x230.google.com with SMTP id p22so36685666qka.2 for ; Tue, 07 Jun 2016 00:02:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=Uh02uBEQIVjJrPVJcwsQCb/8a1yR9MLQ6mfpPKKeWIk=; b=rC7i5BdbVlZXmxyxWZBOzYcsEgOV6U1bIth5ViZqLh8OYzIX5ENEoZbvIWluqkhpNc 4gQWxVuJnff8eKG/tZK1x5DKLHCqSxD583+EeiGYyxwD5B2U8ayKnkDZcyq9Cbn/6r46 MyzCAJnuaNP+FraGnAWBJCUYPLEeL+j70G0tGLtvQrql2+/H6dGwnIYYYt0xhIx8MBAI /MVK+VPkCnL/n4ZFo9X0JQRnJo31RmXX/sygp5HTgu5IeI+QAc9zl5rI7mcvXhGIsTkz gnxKvLVxp5p2M4cIt1pqna9YsEzfEsneHZ34vMqLS4ihYsNQ3axiliWM9ALHzqaMqCFu 34lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=Uh02uBEQIVjJrPVJcwsQCb/8a1yR9MLQ6mfpPKKeWIk=; b=a3Xsr5SdxGep2xe8K2a4JoN/4xWhGZ68XRDtwueyGXDFSMv+HuakLt+cIY0gnul+wj KLh4Cqt2k8D04iBTTgn+7x45T+mRPsAe/ukx0shAUc8BQl1gl2Gv6uU2RtJQwS55zri5 1+Tm6wAVLoVO/c7hjLyShROZX4KeD0U3NpMuZ4Vap166Qhi5HdEzCllAEBSh5MiY0ug1 T/A5S9uj33TwjylS3IbgV2Osc63o250qzwdyUddLuxDyl24mXum29qkeQvG1S9IvYZdN CQjfd4ZsCjnsLrd/DXFtSY0iBozajlbFyTPs5xfGR3d3pKBHlhGgvZb6RR5AjdhWz1aC 7hKQ== X-Gm-Message-State: ALyK8tITeYSB0r+I4qLBze5KOuWE95nBu2Jl2869AI6OkFoNFL2ATvZ9hpnYjPB2cN/PRkVYblWxJJ82AZ24rToq MIME-Version: 1.0 X-Received: by 10.55.203.73 with SMTP id d70mr20005291qkj.116.1465282957866; Tue, 07 Jun 2016 00:02:37 -0700 (PDT) Received: by 10.140.101.198 with HTTP; Tue, 7 Jun 2016 00:02:36 -0700 (PDT) In-Reply-To: References: Date: Tue, 7 Jun 2016 12:32:36 +0530 Message-ID: Subject: Re: Patch for pgAdmin4 RPM package From: Sandeep Thakkar To: Ashesh Vashi Cc: Dave Page , pgadmin-hackers , Hamid Quddus , =?UTF-8?B?RGV2cmltIEfDnE5Ew5xa?= Content-Type: multipart/mixed; boundary=001a113951b033408d0534aac605 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a113951b033408d0534aac605 Content-Type: multipart/alternative; boundary=001a113951b03340870534aac603 --001a113951b03340870534aac603 Content-Type: text/plain; charset=UTF-8 Hi Dave I used few APIs from Importing Modules and Modules Objects to import the pgAdmin4 module and then get it's location but the application crashed on running. I didn't debug it and instead created a new function in Server.cpp to get the python path and the webpath which uses python command. If we still need to use the Python/C APIs then that would take some more time as nobody has expertise on that. :( Please find the patch attached. Web RPM will install an empty file pgadmin4-v1.conf in "/etc/httpd/conf.d/". I thought this file must be present in the sources or must be generated after build, but I didn't find any. So, I created an empty file. On Mon, Jun 6, 2016 at 2:47 PM, Ashesh Vashi wrote: > On Mon, Jun 6, 2016 at 2:44 PM, Dave Page wrote: > >> Hmm, virtualenv's a good point. >> >> I wonder if for the RPMs (and DEBs) we're just trying too hard. Is there >> any good reason to support SxS there? Stability I suppose, but then we >> don't support back-branches long term anyway. >> > pgAdmin IV may need particular version of third party libraries. > We may not control over, what other application will require. > > Hence - it can create dependency issue. > >> >> Does anyone think we need to support side-by-side RPM/DEB installation of >> multiple major versions of pgAdmin? Devrim? Hamid? >> > I do not feel the requirement of it. > > > -- > > Thanks & Regards, > > Ashesh Vashi > EnterpriseDB INDIA: Enterprise PostgreSQL Company > > > > *http://www.linkedin.com/in/asheshvashi* > > >> >> The config file would be part of the web package. >> >> On Mon, Jun 6, 2016 at 10:09 AM, Sandeep Thakkar < >> sandeep.thakkar@enterprisedb.com> wrote: >> >>> I already asked them about the APIs, though I didn't ask them about what >>> is the best way to handle SxS installation. Will check with them. >>> >>> PIP package for pgadmin4 doesn't support SxS as it creates the directory >>> with the name 'pgadmin4' only. Googling about the SxS with PIP says that >>> people use virtualenv to achieve it. >>> >>> Regarding pgadmin4-v1.conf - will it be a part of pgadmin4-docs RPM? >>> Needed for Debian also? >>> >>> On Mon, Jun 6, 2016 at 1:53 PM, Dave Page wrote: >>> >>>> I have no idea. I would ask one of the Python guru's sitting next to >>>> you (as well as whether the way we'd handle side-by-side packages is >>>> appropriate). Also, look at what the PIP package does (does that even work >>>> properly in a SxS scenario? I don't know if we thought to check that). >>>> >>>> BTW; on the RPMs - we also need to include a config snippet for Apache, >>>> e.g. /etc/httpd/conf.d/pgadmin4-v1.conf. The online docs for pgAdmin have a >>>> section on configuring that. >>>> >>>> >>>> >>>> On Mon, Jun 6, 2016 at 9:15 AM, Sandeep Thakkar < >>>> sandeep.thakkar@enterprisedb.com> wrote: >>>> >>>>> Yeah, I got the point. To distinguish between v1 and v2, we can have >>>>> blank __init__.py in the v1 and v2 directories. I tried it and could >>>>> successfully import the pgAdmin4 using "import pgadmin4_web_v1.pgAdmin4" >>>>> and "import pgadmin4_web_v2.pgAdmin4". Please note that I had to rename >>>>> hyphen to underscore in the directories to achieve this. >>>>> >>>>> But, I spent enough time to find the API that can get me the location >>>>> for "pgadmin4_web_v1.pgAdmin4" module, but couldn't find it. Do you have an >>>>> idea? >>>>> >>>>> >>>>> On Fri, Jun 3, 2016 at 8:24 PM, Dave Page wrote: >>>>> >>>>>> My point is that the runtime uses the platform supplied Python >>>>>> interpreter, which presumably knows where to search for packages. Mind you, >>>>>> I suppose the issue there is that it wouldn't be able to distinguish >>>>>> between v1 and v2 then... >>>>>> >>>>>> I don't have a major issue with your suggested code - I just want to >>>>>> make sure we need it. >>>>>> >>>>>> >>>>>> On Fri, Jun 3, 2016 at 3:39 PM, Sandeep Thakkar < >>>>>> sandeep.thakkar@enterprisedb.com> wrote: >>>>>> >>>>>>> Do you mean to say when a python app is launched, it imports some >>>>>>> modules automatically and in that sense it knows about where it's >>>>>>> site-packages are? May be, but how the pgAdmin4 runtime will know where the >>>>>>> Web App is installed? >>>>>>> >>>>>>> The changes that I have done to the runtime is to let it know the >>>>>>> path of the Web App which is present in >>>>>>> "/site-packages/pgadmin4-web-v1/pgAdmin4.py" The changes done are not to >>>>>>> set the PythonPath like we did for appbundle because I thought it is not >>>>>>> needed and it will automatically load the modules from the site-packages, >>>>>>> but it is to set the ApplicationPath. >>>>>>> >>>>>>> I missed something? or misunderstood something? >>>>>>> >>>>>>> On Fri, Jun 3, 2016 at 7:39 PM, Dave Page wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> Well, I have to wonder why we need the changes to the runtime? >>>>>>>> We're linking the runtime with the same build of Python that's already on >>>>>>>> the system - doesn't it know where it's site-packages are already? I could >>>>>>>> see us needing this is we were using a distro-independent build of Python >>>>>>>> and wanted to find the OS site-packages location, but we're not. >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Jun 3, 2016 at 10:15 AM, Sandeep Thakkar < >>>>>>>> sandeep.thakkar@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi Dave, >>>>>>>>> >>>>>>>>> how about changes in the pgadmin4 source code for conf.py and >>>>>>>>> Server.cpp? Looks okay? >>>>>>>>> >>>>>>>>> On Fri, Jun 3, 2016 at 2:41 PM, Sandeep Thakkar < >>>>>>>>> sandeep.thakkar@enterprisedb.com> wrote: >>>>>>>>> >>>>>>>>>> Thanks Dave. >>>>>>>>>> >>>>>>>>>> On Fri, Jun 3, 2016 at 2:08 PM, Dave Page >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi >>>>>>>>>>> >>>>>>>>>>> On Thu, Jun 2, 2016 at 4:23 PM, Sandeep Thakkar >>>>>>>>>>> wrote: >>>>>>>>>>> > Hi Devrim, Hi Dave, >>>>>>>>>>> > >>>>>>>>>>> > I have updated the patch. The earlier patch may fail because >>>>>>>>>>> of app bundle >>>>>>>>>>> > commit in git. >>>>>>>>>>> > >>>>>>>>>>> > For testing, you may define the source tarball location as : >>>>>>>>>>> > Source0: >>>>>>>>>>> > >>>>>>>>>>> http://bugatti.pn.in.enterprisedb.com/temp/pgadmin4/%{name}-v%{version}.tar.gz >>>>>>>>>>> > >>>>>>>>>>> > Known issue that I'm still working on: >>>>>>>>>>> > 1. web rpm has a dependency on doc. But, even if I install >>>>>>>>>>> doc, the web >>>>>>>>>>> > still complains. Here is the scenario: >>>>>>>>>>> > [root@localhost tmp]# rpm -ivh >>>>>>>>>>> > dist/noarch/pgadmin4-web-1.0_dev-1.rhel7.noarch.rpm >>>>>>>>>>> > error: Failed dependencies: >>>>>>>>>>> > pgadmin4-doc = 1.0_dev is needed by >>>>>>>>>>> pgadmin4-web-1.0_dev-1.rhel7.noarch >>>>>>>>>>> > ... ( trimmed the python dependencies list here...) >>>>>>>>>>> > >>>>>>>>>>> > [root@localhost tmp]# rpm -ivh >>>>>>>>>>> > dist/noarch/pgadmin4-docs-1.0_dev-1.rhel7.noarch.rpm >>>>>>>>>>> > Preparing... >>>>>>>>>>> ################################# >>>>>>>>>>> > [100%] >>>>>>>>>>> > Updating / installing... >>>>>>>>>>> > 1:pgadmin4-docs-1.0_dev-1.rhel7 >>>>>>>>>>> ################################# >>>>>>>>>>> > [100%] >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > [root@localhost tmp]# yum list | grep pgadmin4-docs >>>>>>>>>>> > pgadmin4-docs.noarch 1.0_dev-1.rhel7 >>>>>>>>>>> > installed >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > [root@localhost tmp]# rpm -ivh >>>>>>>>>>> > dist/noarch/pgadmin4-web-1.0_dev-1.rhel7.noarch.rpm >>>>>>>>>>> > error: Failed dependencies: >>>>>>>>>>> > pgadmin4-doc = 1.0_dev is needed by >>>>>>>>>>> pgadmin4-web-1.0_dev-1.rhel7.noarch >>>>>>>>>>> >>>>>>>>>>> You have a typo - the Requires line is for pgadmin4-doc, but the >>>>>>>>>>> RPM >>>>>>>>>>> is pgadmin4-docs. >>>>>>>>>>> >>>>>>>>>>> Oh, right. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Other review comments: >>>>>>>>>>> >>>>>>>>>>> - We have multiple identical pgadmin4.spec.in's in the patch. >>>>>>>>>>> We need >>>>>>>>>>> to get that down to a single file. >>>>>>>>>>> >>>>>>>>>>> - In fact, why do we need a directory for each distro at all? As >>>>>>>>>>> far >>>>>>>>>>> as I can see, the only difference is the $DIST definition, which >>>>>>>>>>> is >>>>>>>>>>> surely something we can get programmatically very easily. It >>>>>>>>>>> seems to >>>>>>>>>>> me we could reduce this all to 3 files - Makefile, README and >>>>>>>>>>> pgadmin4.spec.in >>>>>>>>>>> >>>>>>>>>>> Agree. I copied the structure from somewhere thinking this is >>>>>>>>>> good to have more OS specific changes. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> - make rpm has a dependency on make prep. This has 2 issues as >>>>>>>>>>> far as I can see: >>>>>>>>>>> >>>>>>>>>>> - It does a git pull, which is bad. If I'm making an RPM from >>>>>>>>>>> within >>>>>>>>>>> the source tree, I want it for the current source. The git pull >>>>>>>>>>> only >>>>>>>>>>> makes sense for external builds, i.e. in a much larger automated >>>>>>>>>>> build >>>>>>>>>>> system. >>>>>>>>>>> >>>>>>>>>>> - It goes and grabs the source code and patches from the FTP >>>>>>>>>>> site. >>>>>>>>>>> Again, this is not what I want for an "in-tree" build. I want to >>>>>>>>>>> use >>>>>>>>>>> the source code as I have it now. >>>>>>>>>>> >>>>>>>>>>> Okay. got it. Will remove downloading the tarballs and build the >>>>>>>>>> cloned source. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dave Page >>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>> >>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Sandeep Thakkar >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Sandeep Thakkar >>>>>>>>> Lead Software Engineer >>>>>>>>> >>>>>>>>> >>>>>>>>> Phone: +91.20.30589505 >>>>>>>>> >>>>>>>>> Website: www.enterprisedb.com >>>>>>>>> EnterpriseDB Blog: http://blogs.enterprisedb.com/ >>>>>>>>> Follow us on Twitter: http://www.twitter.com/enterprisedb >>>>>>>>> >>>>>>>>> This e-mail message (and any attachment) is intended for the use >>>>>>>>> of the individual or entity to whom it is addressed. This message contains >>>>>>>>> information from EnterpriseDB Corporation that may be privileged, >>>>>>>>> confidential, or exempt from disclosure under applicable law. If you are >>>>>>>>> not the intended recipient or authorized to receive this for the intended >>>>>>>>> recipient, any use, dissemination, distribution, retention, archiving, or >>>>>>>>> copying of this communication is strictly prohibited. If you have received >>>>>>>>> this e-mail in error, please notify the sender immediately by reply e-mail >>>>>>>>> and delete this message. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sandeep Thakkar >>>>>>> Lead Software Engineer >>>>>>> >>>>>>> >>>>>>> Phone: +91.20.30589505 >>>>>>> >>>>>>> Website: www.enterprisedb.com >>>>>>> EnterpriseDB Blog: http://blogs.enterprisedb.com/ >>>>>>> Follow us on Twitter: http://www.twitter.com/enterprisedb >>>>>>> >>>>>>> This e-mail message (and any attachment) is intended for the use of >>>>>>> the individual or entity to whom it is addressed. This message contains >>>>>>> information from EnterpriseDB Corporation that may be privileged, >>>>>>> confidential, or exempt from disclosure under applicable law. If you are >>>>>>> not the intended recipient or authorized to receive this for the intended >>>>>>> recipient, any use, dissemination, distribution, retention, archiving, or >>>>>>> copying of this communication is strictly prohibited. If you have received >>>>>>> this e-mail in error, please notify the sender immediately by reply e-mail >>>>>>> and delete this message. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Sandeep Thakkar >>>>> >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> >>> -- >>> Sandeep Thakkar >>> >>> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > -- Sandeep Thakkar --001a113951b03340870534aac603 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave

I used few APIs from Importing = Modules and Modules Objects to import the pgAdmin4 module and then get it&#= 39;s location but the application crashed on running. I didn't debug it= and instead created a new function in Server.cpp to get the python path an= d the webpath which uses python command. If we still need to use the Python= /C APIs then that would take some more time as nobody has expertise on that= . :(=C2=A0

Please find the patch attached. Web RPM= will install an empty file pgadmin4-v1.conf in "<pgadmin4-web-v1&g= t;/etc/httpd/conf.d/". I thought this file must be present in the sour= ces or must be generated after build, but I didn't find any. So, I crea= ted an empty file.


=
On Mon, Jun 6, 2016 at 2:47 PM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote:
On Mon, Jun 6, 2016 at 2:44 PM, Dave Page <dpage@p= gadmin.org> wrote:
Hmm, = virtualenv's a good point.

I wonder if for the RPMs = (and DEBs) we're just trying too hard. Is there any good reason to supp= ort SxS there? Stability I suppose, but then we don't support back-bran= ches long term anyway.
pgAdmin IV may n= eed particular version of third party libraries.
We may not contr= ol over, what other application will require.

Henc= e - it can create dependency issue.=C2=A0

Does anyone think we need to sup= port side-by-side RPM/DEB installation of multiple major versions of pgAdmi= n? Devrim? Hamid?
I do not feel the req= uirement of it.


--

Thanks & Regard= s,

Ashesh Vashi

EnterpriseDB INDIA:=C2=A0<= a href=3D"http://www.enterprisedb.com/" target=3D"_blank">Enterprise Postgr= eSQL Company


<= div class=3D"h5">

The = config file would be part of the web package.

On Mon, Jun 6, 2016 at 10= :09 AM, Sandeep Thakkar <sandeep.thakkar@enterprisedb.com> wrote:
I already asked t= hem about the APIs, though I didn't ask them about what is the best way= to handle SxS installation. Will check with them.

PIP p= ackage for pgadmin4 doesn't support SxS as it creates the directory wit= h the name 'pgadmin4' only. Googling about the SxS with PIP says th= at people use virtualenv to achieve it.

Regarding = pgadmin4-v1.conf - will it be a part of pgadmin4-docs RPM? Needed for Debia= n also?

On Mon, Jun 6, 2016 at 1:53 PM, Dave Page <= dpage@pgadmin.org> wrote:
I have no idea. I = would ask one of the Python guru's sitting next to you (as well as whet= her the way we'd handle side-by-side packages is appropriate). Also, lo= ok at what the PIP package does (does that even work properly in a SxS scen= ario? I don't know if we thought to check that).

BTW= ; on the RPMs - we also need to include a config snippet for Apache, e.g. /= etc/httpd/conf.d/pgadmin4-v1.conf. The online docs for pgAdmin have a secti= on on configuring that.


<= div>

On Mon, Jun 6= , 2016 at 9:15 AM, Sandeep Thakkar <sandeep.thakkar@enterpr= isedb.com> wrote:
Yeah,= I got the point. To distinguish between v1 and v2, we can have blank __ini= t__.py in the v1 and v2 directories. I tried it and could successfully impo= rt the pgAdmin4 using "import pgadmin4_web_v1.pgAdmin4" and "= ;import pgadmin4_web_v2.pgAdmin4".=C2=A0 Please note that I had to ren= ame hyphen to underscore in the directories to achieve this.=C2=A0

=
But, I spent enough time to find the API that can get me the location = for "pgadmin4_web_v1.pgAdmin4" module, but couldn't find it. = Do you have an idea?

<= div>

On Fri, Jun 3, 2016 at 8:24 PM, Dav= e Page <dpage@pgadmin.org> wrote:
My point is that the runtime uses the platform supplied Python i= nterpreter, which presumably knows where to search for packages. Mind you, = I suppose the issue there is that it wouldn't be able to distinguish be= tween v1 and v2 then...

I don't have a major issue w= ith your suggested code - I just want to make sure we need it.

On Fri, Jun= 3, 2016 at 3:39 PM, Sandeep Thakkar <sandeep.thakkar@enter= prisedb.com> wrote:
Do y= ou mean to say when a python app is launched, it imports some modules autom= atically and in that sense it knows about where it's site-packages are?= May be, but how the pgAdmin4 runtime will know where the Web App is instal= led?=C2=A0

The changes that I have done to the runtime i= s to let it know the path of the Web App which is present in "/site-pa= ckages/pgadmin4-web-v1/pgAdmin4.py" The changes done are not to set th= e PythonPath like we did for appbundle because I thought it is not needed a= nd it will automatically load the modules from the site-packages, but it is= to set the ApplicationPath.

I missed something? o= r misunderstood something?=C2=A0

On Fri, Jun 3, 2016 at 7:39 PM, Da= ve Page <dpage@pgadmin.org> wrote:
Hi,

Well, I have to wonder why we need the= changes to the runtime? We're linking the runtime with the same build = of Python that's already on the system - doesn't it know where it&#= 39;s site-packages are already? I could see us needing this is we were usin= g a distro-independent build of Python and wanted to find the OS site-packa= ges location, but we're not.



On Fri, Jun 3, 2016 at 2:41 PM, Sandeep Th= akkar <sandeep.thakkar@enterprisedb.com> wrot= e:
Thanks Dave.=C2=A0

On Fri, Jun 3, 2016 = at 2:08 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Thu, Jun 2, 2016 at 4:23 PM, Sandeep Thakkar
<s= andeep.thakkar@enterprisedb.com> wrote:
> Hi Devrim, Hi Dave,
>
> I have updated the patch. The earlier patch may fail because of app bu= ndle
> commit in git.
>
> For testing, you may define the source tarball location as :
> Source0:
> http://bu= gatti.pn.in.enterprisedb.com/temp/pgadmin4/%{name}-v%{version}.tar.gz >
> Known issue that I'm still working on:
> 1. web rpm has a dependency on doc. But, even if I install doc, the we= b
> still complains. Here is the scenario:
> [root@localhost tmp]# rpm -ivh
> dist/noarch/pgadmin4-web-1.0_dev-1.rhel7.noarch.rpm
> error: Failed dependencies:
> pgadmin4-doc =3D 1.0_dev is needed by pgadmin4-web-1.0_dev-1.rhel7.noa= rch
> ... ( trimmed the python dependencies list here...)
>
> [root@localhost tmp]# rpm -ivh
> dist/noarch/pgadmin4-docs-1.0_dev-1.rhel7.noarch.rpm
> Preparing...=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 #################################
> [100%]
> Updating / installing...
>=C2=A0 =C2=A0 1:pgadmin4-docs-1.0_dev-1.rhel7=C2=A0 =C2=A0 ############= #####################
> [100%]
>
>
> [root@localhost tmp]# yum list | grep pgadmin4-docs
> pgadmin4-docs.noarch=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 1.0_dev-1.rhel7
> installed
>
>
> [root@localhost tmp]# rpm -ivh
> dist/noarch/pgadmin4-web-1.0_dev-1.rhel7.noarch.rpm
> error: Failed dependencies:
> pgadmin4-doc =3D 1.0_dev is needed by pgadmin4-web-1.0_dev-1.rhel7.noa= rch

You have a typo - the Requires line is for pgadmin4-doc, but th= e RPM
is pgadmin4-docs.

Oh, right.
=C2=A0
Other review comments:

- We have multiple identical pgadmin4.spec.in's in the patch. We need=
to get that down to a single file.

- In fact, why do we need a directory for each distro at all? As far
as I can see, the only difference is the $DIST definition, which is
surely something we can get programmatically very easily. It seems to
me we could reduce this all to 3 files - Makefile, README and
pg= admin4.spec.in

Agree. I copied the structure from somewhere t= hinking this is good to have more OS specific changes.
=C2= =A0
- make rpm has a dependency on make prep. This has 2 issues as far as I can= see:

=C2=A0 - It does a git pull, which is bad. If I'm making an RPM from wi= thin
the source tree, I want it for the current source. The git pull only
makes sense for external builds, i.e. in a much larger automated build
system.

=C2=A0 - It goes and grabs the source code and patches from the FTP site. Again, this is not what I want for an "in-tree" build. I want to = use
the source code as I have it now.

Okay. got it. Will remov= e downloading the tarballs and build the cloned source.
=C2= =A0
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Sandeep Thakkar




-= -
Sandeep Thakkar
Lead Software Engineer


Phone: +91.20.30589505

Website: www.enterprisedb.com
EnterpriseDB Blog:
http://blogs.enterprisedb.com/
Follow us on Twitter: http://www.t= witter.com/enterprisedb

This e-mail message (and any attachment)= is intended for the use of the individual or entity to whom it is addresse= d. This message contains information from EnterpriseDB Corporation that may= be privileged, confidential, or exempt from disclosure under applicable la= w. If you are not the intended recipient or authorized to receive this for = the intended recipient, any use, dissemination, distribution, retention, ar= chiving, or copying of this communication is strictly prohibited. If you ha= ve received this e-mail in error, please notify the sender immediately by r= eply e-mail and delete this message.



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @= pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL= Company



--
Sandeep = Thakkar
Lead Software Engineer
<= br>
Phone: +91.20.30589505

Website: www.enterprisedb.com
EnterpriseDB = Blog: http://b= logs.enterprisedb.com/
Follow us on Twitter: http://www.twitter.com/enterpris= edb

This e-mail message (and any attachment) is intended for the= use of the individual or entity to whom it is addressed. This message cont= ains information from EnterpriseDB Corporation that may be privileged, conf= idential, or exempt from disclosure under applicable law. If you are not th= e intended recipient or authorized to receive this for the intended recipie= nt, any use, dissemination, distribution, retention, archiving, or copying = of this communication is strictly prohibited. If you have received this e-m= ail in error, please notify the sender immediately by reply e-mail and dele= te this message.



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @= pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL= Company



<= font color=3D"#888888">--
Sandeep Thakkar




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @= pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL= Company



<= /div>--
Sandeep Thakkar




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @= pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL= Company




--
Sandeep Thakkar

--001a113951b03340870534aac603-- --001a113951b033408d0534aac605 Content-Type: application/octet-stream; name="pgadmin-rpm-jun07.patch" Content-Disposition: attachment; filename="pgadmin-rpm-jun07.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ip53mum20 ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDAz ODZlMDMuLmUzYmQyNjggMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv LmdpdGlnbm9yZQpAQCAtMjYsNCArMjYsNSBAQCBwZ2FkbWluNC5sb2cKIC9i dWlsZAogL21hYy1idWlsZAogL3NyYy1idWlsZAorL3JwbS1idWlsZAogL2Rp c3QKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMWQz MjU4MS4uOTg4YzZkYSAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFr ZWZpbGUKQEAgLTE3LDcgKzE3LDcgQEAgU0hFTEwgPSAvYmluL3NoCiBhbGw6 IGRvY3MgaW5zdGFsbC1waXAtcmVxdWlyZW1lbnRzIHBpcCBzcmMKIAogIyBJ bmNsdWRlIGFsbCBjbGVhbiBzdWItdGFyZ2V0cyBpbiBjbGVhbgotY2xlYW46 IGNsZWFuLWRpc3QgY2xlYW4tZG9jcyBjbGVhbi1waXAgY2xlYW4tYXBwYnVu ZGxlIGNsZWFuLXNyYworY2xlYW46IGNsZWFuLWRpc3QgY2xlYW4tZG9jcyBj bGVhbi1waXAgY2xlYW4tYXBwYnVuZGxlIGNsZWFuLXJwbSBjbGVhbi1zcmMK IAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBQeXRob24gUElQ IHBhY2thZ2UKQEAgLTM4LDYgKzM4LDcgQEAgUEdBRE1JTl9FR0cgPSAke1BH QURNSU5fU1JDX0RJUn0uZWdnLWluZm8KIFBHQURNSU5fQlVJTEQgPSBidWls ZAogUEdBRE1JTl9NQUNCVUlMRCA9IG1hYy1idWlsZAogUEdBRE1JTl9TUkNC VUlMRCA9IHNyYy1idWlsZAorUEdBRE1JTl9SUE1CVUlMRCA9IHJwbS1idWls ZAogUEdBRE1JTl9ESVNUID0gZGlzdAogUEdBRE1JTl9NQU5JRkVTVCA9IE1B TklGRVNULmluCiBQR0FETUlOX0lOU1RBTExfQ01EID0gcGlwIGluc3RhbGwg LS11c2Utd2hlZWwgLS1maW5kLWxpbmtzPSR7UEdBRE1JTl9ESVNUfSAke1BH QURNSU5fU1JDX0RJUn0KQEAgLTExMyw2ICsxMTQsMTUgQEAgY2xlYW4tc3Jj OgogCXJtIC1yZiAke1BHQURNSU5fU1JDQlVJTER9CiAJcm0gLXJmICR7UEdB RE1JTl9ESVNUfS9wZ2FkbWluNCoudGFyLmd6CiAKK3JwbToKKwkuL3BrZy9y cG0vYnVpbGQuc2gKKworY2xlYW4tcnBtOgorCXJtIC1yZiAke1BHQURNSU5f UlBNQlVJTER9CisJcm0gLXJmICR7UEdBRE1JTl9ESVNUfS9ub2FyY2gKKwly bSAtcmYgJHtQR0FETUlOX0RJU1R9L3g4Nl82NAorCiBjbGVhbi1kaXN0Ogog CXJtIC1yZiAke1BHQURNSU5fRElTVH0KKwogLlBIT05ZOiBkb2NzCmRpZmYg LS1naXQgYS9kb2NzL2VuX1VTL2NvbmYucHkgYi9kb2NzL2VuX1VTL2NvbmYu cHkKaW5kZXggOTNhZDRlOS4uYWM3YzlmYyAxMDA2NDQKLS0tIGEvZG9jcy9l bl9VUy9jb25mLnB5CisrKyBiL2RvY3MvZW5fVVMvY29uZi5weQpAQCAtMTcs NiArMTcsNyBAQCBpbXBvcnQgc3lzLCBvcwogcm9vdCA9IG9zLnBhdGguZGly bmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkKIHN5cy5wYXRoLmlu c2VydCgwLCByb290ICsgJy8uLi8uLi93ZWIvJykKIGltcG9ydCBjb25maWcK K2ltcG9ydCBzcGhpbnhfcnRkX3RoZW1lCiAKICMgSWYgZXh0ZW5zaW9ucyAo b3IgbW9kdWxlcyB0byBkb2N1bWVudCB3aXRoIGF1dG9kb2MpIGFyZSBpbiBh bm90aGVyIGRpcmVjdG9yeSwKICMgYWRkIHRoZXNlIGRpcmVjdG9yaWVzIHRv IHN5cy5wYXRoIGhlcmUuIElmIHRoZSBkaXJlY3RvcnkgaXMgcmVsYXRpdmUg dG8gdGhlCkBAIC0xMDQsNyArMTA1LDcgQEAgaHRtbF90aGVtZSA9ICdzcGhp bnhfcnRkX3RoZW1lJwogI2h0bWxfdGhlbWVfb3B0aW9ucyA9IHt9CiAKICMg QWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBoZXJl LCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KLSNodG1sX3RoZW1lX3Bh dGggPSBbXQoraHRtbF90aGVtZV9wYXRoID0gW3NwaGlueF9ydGRfdGhlbWUu Z2V0X2h0bWxfdGhlbWVfcGF0aCgpXQogCiAjIFRoZSBuYW1lIGZvciB0aGlz IHNldCBvZiBTcGhpbnggZG9jdW1lbnRzLiAgSWYgTm9uZSwgaXQgZGVmYXVs dHMgdG8KICMgIjxwcm9qZWN0PiB2PHJlbGVhc2U+IGRvY3VtZW50YXRpb24i LgpkaWZmIC0tZ2l0IGEvcGtnL3JwbS9NYWtlZmlsZSBiL3BrZy9ycG0vTWFr ZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQw MTQ0YQotLS0gL2Rldi9udWxsCisrKyBiL3BrZy9ycG0vTWFrZWZpbGUKQEAg LTAsMCArMSwxMCBAQAorCitTUEVDRklMRT0icGdhZG1pbjQuc3BlYyIKKwor cnBtOgorCXJwbWJ1aWxkIC0tZGVmaW5lICJfc291cmNlZGlyICQoU09VUkNF RElSKSIgXAorICAgICAgICAtLWRlZmluZSAiX3NwZWNkaXIgJChXRCkiIFwK KyAgICAgICAgLS1kZWZpbmUgIl9ycG1kaXIgJChESVNUUk9PVCkiIFwKKyAg ICAgICAgLS1kZWZpbmUgIl9idWlsZGRpciAkKEJVSUxERElSKSIgXAorICAg ICAgICAtLWRlZmluZSAiX2J1aWxkcm9vdGRpciAkKEJVSUxEUk9PVCkiIFwK KyAgICAgICAgLS1kZWZpbmUgImRpc3QgJChESVNUKSIgLWJiICQoU1BFQ0ZJ TEUpCmRpZmYgLS1naXQgYS9wa2cvcnBtL1JFQURNRS50eHQgYi9wa2cvcnBt L1JFQURNRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uOWJiZDI1ZQotLS0gL2Rldi9udWxsCisrKyBiL3BrZy9ycG0vUkVBRE1F LnR4dApAQCAtMCwwICsxLDMwIEBACitJbnN0YWxsaW5nIHBnQWRtaW4KKz09 PT09PT09PT09PT09PT09PQorCitUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBo b3cgdG8gYnVpbGQgcGdBZG1pbiBvbiBMaW51eCBhbmQgZ2VuZXJhdGUgdGhl IFJQTXMuCisKK1N1cHBvcnRlZCBWZXJzaW9uczoKKworIC0gUkhFTDYgb3Ig YWJvdmUsIEZlZG9yYSAyMiBvciBhYm92ZQorCitSZXF1aXJlZCBQYWNrYWdl czoKKworIC0gQWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBhcmUgbWVudGlv bmVkIGluIHRoZSByZXF1aXJlbWVudHMgZmlsZS4gVGhleSBzaG91bGQgYmUK K2luc3RhbGxlZCB3aXRoIHl1bS9kbmYuIE9uIFJIRUwsIHNvbWUgcHl0aG9u IG1vZHVsZXMgYXJlIGF2YWlsYWJsZSBvbmx5IHRocm91Z2ggRVBFTC4KKwor MS4gUHl0aG9uIGRldmVsCisgIC0gUHl0aG9uIDIuNiBvciBhYm92ZQorCisy LiBTcGhpbnggKHRvIGJ1aWxkIGRvY3MpCisKKzMuIFFUIGRldmVsCisgIC0g UXQgNC42IG9yIGFib3ZlLCBRVCA1CisKKzQuIFBvc3RncmVTUUwgaW5zdGFs bGF0aW9uCisgIC0gUG9zdGdyZVNRTCA5LjEgb3IgYWJvdmUgCisgCisKK0J1 aWxkaW5nOgorCitUbyBidWlsZCwgZ28gdG8gcGdBZG1pbjQgc291cmNlIHJv b3QgZGlyZWN0b3J5IGFuZCBleGVjdXRlICJtYWtlIHJwbSIuIFRoaXMgd2ls bAorY3JlYXRlIHRoZSBSUE1zIGZvciBydW50aW1lLCB3ZWIgYW5kIGRvYyBp biAkU1JDL2Rpc3QKZGlmZiAtLWdpdCBhL3BrZy9ycG0vYnVpbGQuc2ggYi9w a2cvcnBtL2J1aWxkLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw MDAwMDAuLjZiMGVlODkKLS0tIC9kZXYvbnVsbAorKysgYi9wa2cvcnBtL2J1 aWxkLnNoCkBAIC0wLDAgKzEsNzQgQEAKKyMhL2Jpbi9zaAorCisjU2NyaXB0 IHRvIGNyZWF0ZSB0aGUgcGdBZG1pbjQgUlBNcy4KKworIyBDaGVjayB3aGV0 aGVyIGxzYl9yZWxlYXNlIGV4aXN0cyB0byBmaW5kIHRoZSBPUyBpbmZvcm1h dGlvbgoraWYgWyAhIC1mIC91c3IvYmluL2xzYl9yZWxlYXNlIF0KK3RoZW4K KyAgICAgICAgZWNobworICAgICAgICBlY2hvICJFUlJPUjogbHNiX3JlbGVh c2UgY29tbWFuZCBkb2VzIG5vdCBleGlzdC4gUGxlYXNlIGluc3RhbGwgaXQg d2l0aCIKKyAgICAgICAgZWNobworICAgICAgICBlY2hvICJ5dW0gLXkgaW5z dGFsbCByZWRoYXQtbHNiLWNvcmUiCisgICAgICAgIGVjaG8KKyAgICAgICAg ZWNobyAiRXhpdGluZy4uLiIKKyAgICAgICAgZWNobworICAgICAgICBleGl0 IDEKK2ZpCisKKyMgR2F0aGVyIHNvbWUgaW5mb3JtYXRpb24gZnJvbSB0aGUg T1M6IE9TIG5hbWUsIHZlcnNpb24gYW5kIGFyY2g6CitMU0JfRElTVFJPX05B TUU9YGxzYl9yZWxlYXNlIC1pIC1zYAorTFNCX0RJU1RST19WRVJTSU9OPWBs c2JfcmVsZWFzZSAtciAtc2AKK0RJU1RST19BUkNIPWB1bmFtZSAtbWAKKwor IyBXZSBuZWVkIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgZGlzdHJv IG5hbWU6CitMU0JfRElTVFJPX05BTUU9YGVjaG8gJExTQl9ESVNUUk9fTkFN RSB8IGF3ayAne3ByaW50IHRvbG93ZXIoJDApfSdgCisKK2lmIFsgIiRMU0Jf RElTVFJPX05BTUUiID0gImZlZG9yYSIgXTsgdGhlbgorCWV4cG9ydCBESVNU PSIuZiRMU0JfRElTVFJPX1ZFUlNJT04iCitlbHNlCisJTFNCX0RJU1RST19W RVJTSU9OPWBlY2hvICRMU0JfRElTVFJPX1ZFUlNJT04gfCBjdXQgLWQiLiIg LWYxYAorCWV4cG9ydCBESVNUPSIucmhlbCRMU0JfRElTVFJPX1ZFUlNJT04i CitmaQorCisjIFZhcmlhYmxlcworZXhwb3J0IFdEPSQoY2QgYGRpcm5hbWUg JDBgICYmIHB3ZCkKK2V4cG9ydCBTT1VSQ0VESVI9JFdELy4uLy4uCitleHBv cnQgUlBNQlVJTERST09UPSRTT1VSQ0VESVIvcnBtLWJ1aWxkCitleHBvcnQg QlVJTERESVI9JFJQTUJVSUxEUk9PVC9idWlsZAorZXhwb3J0IEJVSUxEUk9P VD0kUlBNQlVJTERST09UL2J1aWxkcm9vdAorZXhwb3J0IERJU1RST09UPSRT T1VSQ0VESVIvZGlzdAorCisjIENyZWF0ZSB0aGUgZGlyZWN0b3JpZXMgaWYg bm90IGV4aXN0Citta2RpciAtcCAkQlVJTERESVIKK21rZGlyIC1wICRCVUlM RFJPT1QKK21rZGlyIC1wICRESVNUUk9PVAorCisjIEZpbmQgdGhlIHBnQWRt aW40IGFwcCBuYW1lIGFuZCB2ZXJzaW9uIGZyb20gY29uZmlnLnB5CitBUFBf UkVMRUFTRT1gZ3JlcCAiXkFQUF9SRUxFQVNFIiB3ZWIvY29uZmlnLnB5IHwg Y3V0IC1kIj0iIC1mMiB8IHNlZCAncy8gLy9nJ2AKK0FQUF9SRVZJU0lPTj1g Z3JlcCAiXkFQUF9SRVZJU0lPTiIgd2ViL2NvbmZpZy5weSB8IGN1dCAtZCI9 IiAtZjIgfCBzZWQgJ3MvIC8vZydgCitBUFBfTkFNRT1gZ3JlcCAiXkFQUF9O QU1FIiB3ZWIvY29uZmlnLnB5IHwgY3V0IC1kIj0iIC1mMiB8IHNlZCAicy8n Ly9nImAKKyMgV2Ugd2FudCBhcHAgbmFtZSBpbiBsb3dlciBjYXNlIHdpdGgg bm8gc3BhY2VzCitBUFBfTkFNRT1gZWNobyAkQVBQX05BTUUgfCBzZWQgJ3Mv IC8vZycgfCBhd2sgJ3twcmludCB0b2xvd2VyKCQwKX0nYAorQVBQX0xPTkdf VkVSU0lPTj0kQVBQX1JFTEVBU0UuJEFQUF9SRVZJU0lPTgorQVBQX1NIT1JU X1ZFUlNJT049YGVjaG8gJEFQUF9MT05HX1ZFUlNJT04gfCBjdXQgLWQgLiAt ZjEsMmAKK0FQUF9TVUZGSVg9YGdyZXAgIl5BUFBfU1VGRklYIiB3ZWIvY29u ZmlnLnB5IHwgY3V0IC1kIj0iIC1mMiB8IHNlZCAncy8gLy9nJyB8IHNlZCAi cy8nLy9nImAKK2lmIFsgISAteiAkQVBQX1NVRkZJWCBdOyB0aGVuCisgICAg QVBQX0xPTkdfVkVSU0lPTj0kQVBQX0xPTkdfVkVSU0lPTi0kQVBQX1NVRkZJ WAorICAgIEFQUF9SRVZJU0lPTj0iJHtBUFBfUkVWSVNJT059XyRBUFBfU1VG RklYIiAjaHlwaGVuIG5vdCBhbGxvd2VkIGluIFNQRUMgZm9yIHZlcnNpb24K K2ZpCisKKyMgR2VuZXJhdGUgU1BFQworY2QgLi9wa2cvcnBtCisKK3NlZCAt ZSAicy9BUFBfUkVMLyRBUFBfUkVMRUFTRS8iIFwKKyAgICAtZSAicy9BUFBf UkVWLyRBUFBfUkVWSVNJT04vIiBcCisgICAgLWUgInMvQVBQX05BTUUvJEFQ UF9OQU1FLyIgXAorICAgIC1lICJzL0RJU1RST19BUkNILyRESVNUUk9fQVJD SC8iIHBnYWRtaW40LnNwZWMuaW4gPiBwZ2FkbWluNC5zcGVjCisKKyMgQnVp bGQgUlBNcworbWFrZSBycG0gfHwgZXhpdCAxCisKKyMgQ2xlYW4gdXAgYnVp bGRyb290IGFmdGVyIHN1Y2Nlc3NmdWwgYnVpbGQKK2VjaG8gIkNsZWFuaW5n IHVwLi4uIgorI3JtIC1yZiAkUlBNQlVJTERST09UCisKZGlmZiAtLWdpdCBh L3BrZy9ycG0vcGdhZG1pbjQuc3BlYyBiL3BrZy9ycG0vcGdhZG1pbjQuc3Bl YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODI3OWQy Ci0tLSAvZGV2L251bGwKKysrIGIvcGtnL3JwbS9wZ2FkbWluNC5zcGVjCkBA IC0wLDAgKzEsMjM2IEBACisKKyVkZWZpbmUgcGdBZG1pbjRfcmVsZWFzZSAx CislZGVmaW5lIHBnQWRtaW40X3JldmlzaW9uIDBfYmV0YTEKKworJWRlZmlu ZSBuYW1lIHBnYWRtaW40CislZGVmaW5lIHBnYWRtaW40aW5zdGRpciAvdXNy LyV7bmFtZX0tdiV7cGdBZG1pbjRfcmVsZWFzZX0KKyVkZWZpbmUgcGdhZG1p bjRfd2ViaW5zdGRpciAle25hbWV9LXdlYi12JXtwZ0FkbWluNF9yZWxlYXNl fQorCitOYW1lOiAgICAgICAgICAgJXtuYW1lfQorVmVyc2lvbjogICAgICAg ICV7cGdBZG1pbjRfcmVsZWFzZX0uJXtwZ0FkbWluNF9yZXZpc2lvbn0KK1Jl bGVhc2U6ICAgICAgICAxJXs/ZGlzdH0KK1N1bW1hcnk6ICAgICAgICBwZ0Fk bWluIDQgaXMgYSByZXdyaXRlIG9mIHRoZSBwb3B1bGFyIHBnQWRtaW4zIG1h bmFnZW1lbnQgdG9vbCBmb3IgdGhlIFBvc3RncmVTUUwgKGh0dHA6Ly93d3cu cG9zdGdyZXNxbC5vcmcpIGRhdGFiYXNlLiAgIAorCitHcm91cDogICAgICAg ICAgQXBwbGljYXRpb25zL0RhdGFiYXNlcyAgIAorTGljZW5zZTogICAgICAg IFBvc3RncmVTUUwgTGljZW5zZQorVVJMOiAgICAgICAgICAgIGh0dHA6Ly93 d3cucGdhZG1pbi5vcmcKKyNTb3VyY2UwOiAgICAgICAgZnRwOi8vZnRwLnBv c3RncmVzcWwub3JnL3B1Yi9wZ2FkbWluNC9yZWxlYXNlL3Yle3ZlcnNpb259 L3NyYy8le25hbWV9LSV7dmVyc2lvbn0udGFyLmd6CitCdWlsZFJvb3Q6ICAg ICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0t cm9vdC0lKCV7X19pZF91fSAtbikKKworQnVpbGRBcmNoOiAgICAgIHg4Nl82 NAorCitCdWlsZFJlcXVpcmVzOiAgbWVzYS1saWJHTC1kZXZlbAorQnVpbGRS ZXF1aXJlczogIGdjYy1jKysKK1JlcXVpcmVzOiAgICAgICBwZ2FkbWluNC13 ZWIgPSAle3ZlcnNpb259CislaWYgMCV7P2ZlZG9yYX0KK0J1aWxkUmVxdWly ZXM6CXF0NS1xdGJhc2UtZGV2ZWwgPj0gNS4xCitCdWlsZFJlcXVpcmVzOiAg cXQ1LXF0d2Via2l0LWRldmVsCislZGVmaW5lIFFNQUtFICAgL3Vzci9iaW4v cW1ha2UtcXQ1CislZWxzZQorQnVpbGRSZXF1aXJlczogIHF0LWRldmVsID49 IDQuNgorQnVpbGRSZXF1aXJlczogIHF0d2Via2l0LWRldmVsCislZGVmaW5l IFFNQUtFICAgL3Vzci9saWI2NC9xdDQvYmluL3FtYWtlCislZW5kaWYKKwor JWlmIDAlez9mZWRvcmF9CitCdWlsZFJlcXVpcmVzOiAgcHl0aG9uMy1kZXZl bAorUmVxdWlyZXM6ICAgICAgIHB5dGhvbiA+PSAzLjMKKyVlbHNlCitCdWls ZFJlcXVpcmVzOiAgcHl0aG9uLWRldmVsCitSZXF1aXJlczogICAgICAgcHl0 aG9uID49IDIuNgorJWVuZGlmCisKKyVpZiAwJXs/ZmVkb3JhfQorUmVxdWly ZXM6ICAgICAgIHF0ID49IDUuMQorJWVsc2UKK1JlcXVpcmVzOiAgICAgICBx dCA+PSA0LjYKKyVlbmRpZgorCislZGVzY3JpcHRpb24KK3BnQWRtaW4gNCBp cyBhIHJld3JpdGUgb2YgdGhlIHBvcHVsYXIgcGdBZG1pbjMgbWFuYWdlbWVu dCB0b29sIGZvciB0aGUgUG9zdGdyZVNRTCAoaHR0cDovL3d3dy5wb3N0Z3Jl c3FsLm9yZykgZGF0YWJhc2UuCitwZ0FkbWluIDQgaXMgYmVpbmcgd3JpdHRl biBhcyBhIHdlYiBhcHBsaWNhdGlvbiBpbiBQeXRob24sIHVzaW5nIGpRdWVy eSBhbmQKK0Jvb3RzdHJhcCBmb3IgdGhlIGNsaWVudCBzaWRlIHByb2Nlc3Np bmcgYW5kIFVJLiBPbiB0aGUgc2VydmVyIHNpZGUsIEZsYXNrIGlzCitiZWlu ZyB1dGlsaXNlZC4KKworQWx0aG91Z2ggZGV2ZWxvcGVkIHVzaW5nIHdlYiB0 ZWNobm9sb2dpZXMsIHdlIGludGVuZCBmb3IgcGdBZG1pbiA0IHRvIGJlIHVz YWJsZQorZWl0aGVyIG9uIGEgd2ViIHNlcnZlciB1c2luZyBhIGJyb3dzZXIs IG9yIHN0YW5kYWxvbmUgb24gYSB3b3Jrc3RhdGlvbi4gVGhlCitydW50aW1l LyBzdWJkaXJlY3RvcnkgY29udGFpbnMgYSBRVCBiYXNlZCBydW50aW1lIGFw cGxpY2F0aW9uIGludGVuZGVkIHRvIGFsbG93Cit0aGlzIC0gaXQgaXMgZXNz ZW50aWFsbHkgYSBicm93c2VyIGFuZCBQeXRob24gaW50ZXJwcmV0b3IgaW4g b25lIHBhY2thZ2Ugd2hpY2gKK3dpbGwgYmUgY2FwYWJsZSBvZiBob3N0aW5n IHRoZSBQeXRob24gYXBwbGljYXRpb24gYW5kIHByZXNlbnRpbmcgaXQgdG8g dGhlIHVzZXIKK2FzIGEgZGVza3RvcCBhcHBsaWNhdGlvbi4KKworJXBhY2th Z2UgZG9jcworU3VtbWFyeTogICAgICAgIERvY3VtZW50YXRpb24gZm9yIHBn QWRtaW40CitHcm91cDogICAgICAgICAgQXBwbGljYXRpb25zL0RhdGFiYXNl cworQnVpbGRBcmNoOiAgICAgIG5vYXJjaAorIyBUaGVzZSBhcmUgcmVxdWly ZWQgZm9yIC1kb2NzIHN1YnBhY2thZ2U6CislaWYgMCV7P2ZlZG9yYX0KK0J1 aWxkUmVxdWlyZXM6ICBweXRob24zLXNwaGlueAorQnVpbGRSZXF1aXJlczog IHB5dGhvbjMtc3BoaW54X3J0ZF90aGVtZQorJWVsc2UKK0J1aWxkUmVxdWly ZXM6ICBweXRob24tc3BoaW54CitCdWlsZFJlcXVpcmVzOiAgcHl0aG9uLXNw aGlueF9ydGRfdGhlbWUKKyVlbmRpZgorCislZGVzY3JpcHRpb24gZG9jcwor VGhpcyBwYWNrYWdlIGNvbnRhaW5zIGRvY3VtZW50YXRpb24gZm9yIHZhcmlv dXMgbGFuZ3VhZ2VzLAord2hpY2ggYXJlIGluIGh0bWwgZm9ybWF0LgorCisl cGFja2FnZSAgICAgICAgd2ViCitTdW1tYXJ5OiAgICAgICAgcGdBZG1pbjQg d2ViIHBhY2thZ2UKK0J1aWxkQXJjaDogICAgICBub2FyY2gKK1JlcXVpcmVz OiAgICAgICAle25hbWV9LWRvY3MgPSAle3ZlcnNpb259CislaWYgMCV7P2Zl ZG9yYX0KK1JlcXVpcmVzOiAgcHl0aG9uMy1iYWJlbAorUmVxdWlyZXM6ICBw eXRob24zLWZsYXNrCitSZXF1aXJlczogIHB5dGhvbjMtZmxhc2stc3FsYWxj aGVteQorUmVxdWlyZXM6ICBweXRob24zLWZsYXNrLXd0ZgorUmVxdWlyZXM6 ICBweXRob24zLWppbmphMgorUmVxdWlyZXM6ICBweXRob24zLW1hcmt1cHNh ZmUKK1JlcXVpcmVzOiAgcHl0aG9uMy1zcWxhbGNoZW15CitSZXF1aXJlczog IHB5dGhvbjMtd3Rmb3JtcworUmVxdWlyZXM6ICBweXRob24zLWJlYXV0aWZ1 bHNvdXA0CitSZXF1aXJlczogIHB5dGhvbjMtYmxpbmtlcgorUmVxdWlyZXM6 ICBweXRob24zLWh0bWw1bGliCitSZXF1aXJlczogIHB5dGhvbjMtaXRzZGFu Z2Vyb3VzCitSZXF1aXJlczogIHB5dGhvbjMtcHN5Y29wZzIKK1JlcXVpcmVz OiAgcHl0aG9uMy1zaXgKK1JlcXVpcmVzOiAgcHl0aG9uMy1jcnlwdG8KK1Jl cXVpcmVzOiAgcHl0aG9uMy1zaW1wbGVqc29uCitSZXF1aXJlczogIHB5dGhv bjMtZGF0ZXV0aWwKK1JlcXVpcmVzOiAgcHl0aG9uMy13ZXJremV1ZworUmVx dWlyZXM6ICBweXRob24zLXNxbHBhcnNlCitSZXF1aXJlczogIHB5dGhvbjMt ZG9jdXRpbHMKK1JlcXVpcmVzOiAgcHl0aG9uMy1leHRyYXMKK1JlcXVpcmVz OiAgcHl0aG9uMy1maXh0dXJlcworUmVxdWlyZXM6ICBweXRob24zLWxpbmVj YWNoZTIKK1JlcXVpcmVzOiAgcHl0aG9uMy1wYnIKK1JlcXVpcmVzOiAgcHl0 aG9uMy1weWdtZW50cworUmVxdWlyZXM6ICBweXRob24zLW1pbWVwYXJzZQor UmVxdWlyZXM6ICBweXRob24zLXNub3diYWxsc3RlbW1lcgorUmVxdWlyZXM6 ICBweXRob24zLXRlc3RzY2VuYXJpb3MKK1JlcXVpcmVzOiAgcHl0aG9uMy10 ZXN0dG9vbHMKK1JlcXVpcmVzOiAgcHl0aG9uMy10cmFjZWJhY2syCitSZXF1 aXJlczogIHB5dGhvbjMtdW5pdHRlc3QyCitSZXF1aXJlczogIHB5dGhvbjMt d2hlZWwKKyNSZXF1aXJlczogIHB5dGhvbjMtcHlyc2lzdGVudAorI1JlcXVp cmVzOiAgcHl0aG9uMy1mbGFzay1iYWJlbAorI1JlcXVpcmVzOiAgcHl0aG9u My1zcGVha2xhdGVyCisjUmVxdWlyZXM6ICBweXRob24zLXBhc3NsaWIKKyNS ZXF1aXJlczogIHB5dGhvbjMtZmxhc2stZ3JhdmF0YXIKKyNSZXF1aXJlczog IHB5dGhvbjMtZmxhc2stbWFpbAorI1JlcXVpcmVzOiAgcHl0aG9uMy1mbGFz ay1zZWN1cml0eQorI1JlcXVpcmVzOiAgcHl0aG9uMy1mbGFzay1sb2dpbgor I1JlcXVpcmVzOiAgcHl0aG9uMy1mbGFzay1wcmluY2lwYWwKKyNSZXF1aXJl czogIHB5dGhvbjMtZGphbmdvLWh0bWxtaW4KKyVlbHNlCitSZXF1aXJlczog IHB5dGhvbi1iYWJlbAorUmVxdWlyZXM6ICBweXRob24tZmxhc2sKK1JlcXVp cmVzOiAgcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXkKK1JlcXVpcmVzOiAgcHl0 aG9uLWZsYXNrLXd0ZgorUmVxdWlyZXM6ICBweXRob24tamluamEyCitSZXF1 aXJlczogIHB5dGhvbi1tYXJrdXBzYWZlCitSZXF1aXJlczogIHB5dGhvbi1z cWxhbGNoZW15CitSZXF1aXJlczogIHB5dGhvbi13dGZvcm1zCitSZXF1aXJl czogIHB5dGhvbi1iZWF1dGlmdWxzb3VwNAorUmVxdWlyZXM6ICBweXRob24t YmxpbmtlcgorUmVxdWlyZXM6ICBweXRob24taHRtbDVsaWIKK1JlcXVpcmVz OiAgcHl0aG9uLWl0c2Rhbmdlcm91cworUmVxdWlyZXM6ICBweXRob24tcHN5 Y29wZzIKK1JlcXVpcmVzOiAgcHl0aG9uLXNpeAorUmVxdWlyZXM6ICBweXRo b24tY3J5cHRvCitSZXF1aXJlczogIHB5dGhvbi1zaW1wbGVqc29uCitSZXF1 aXJlczogIHB5dGhvbi1kYXRldXRpbAorUmVxdWlyZXM6ICBweXRob24td2Vy a3pldWcKK1JlcXVpcmVzOiAgcHl0egorUmVxdWlyZXM6ICBweXRob24tc3Fs cGFyc2UKK1JlcXVpcmVzOiAgcHl0aG9uLWRvY3V0aWxzCitSZXF1aXJlczog IHB5dGhvbi1leHRyYXMKK1JlcXVpcmVzOiAgcHl0aG9uLWZpeHR1cmVzCitS ZXF1aXJlczogIHB5dGhvbi1saW5lY2FjaGUyCitSZXF1aXJlczogIHB5dGhv bi1wYnIKK1JlcXVpcmVzOiAgcHl0aG9uLXB5Z21lbnRzCitSZXF1aXJlczog IHB5dGhvbi1taW1lcGFyc2UKK1JlcXVpcmVzOiAgcHl0aG9uLXRlc3RzY2Vu YXJpb3MKK1JlcXVpcmVzOiAgcHl0aG9uLXRlc3R0b29scworUmVxdWlyZXM6 ICBweXRob24tdHJhY2ViYWNrMgorUmVxdWlyZXM6ICBweXRob24tdW5pdHRl c3QyCitSZXF1aXJlczogIHB5dGhvbjItc3BoaW54LXRoZW1lLWFsYWJhc3Rl cgorI1JlcXVpcmVzOiAgcHl0aG9uMi1zbm93YmFsbHN0ZW1tZXIKKyNSZXF1 aXJlczogIHB5dGhvbi1weXJzaXN0ZW50CisjUmVxdWlyZXM6ICBweXRob24t Zmxhc2stYmFiZWwKKyNSZXF1aXJlczogIHB5dGhvbi1zcGVha2xhdGVyCisj UmVxdWlyZXM6ICBweXRob24tcGFzc2xpYgorI1JlcXVpcmVzOiAgcHl0aG9u LWZsYXNrLWdyYXZhdGFyCisjUmVxdWlyZXM6ICBweXRob24tZmxhc2stbWFp bAorI1JlcXVpcmVzOiAgcHl0aG9uLWZsYXNrLXNlY3VyaXR5CisjUmVxdWly ZXM6ICBweXRob24tZmxhc2stbG9naW4KKyNSZXF1aXJlczogIHB5dGhvbi1m bGFzay1wcmluY2lwYWwKKyNSZXF1aXJlczogIHB5dGhvbi1kamFuZ28taHRt bG1pbgorI1JlcXVpcmVzOiAgcHl0aG9uLWltcG9ydGxpYgorJWVuZGlmCisK KyVpZiAwJXs/ZmVkb3JhfQorJWRlZmluZSBQWVRIT05fU0lURUxJQiAle3B5 dGhvbjNfc2l0ZWxpYn0KKyVlbHNlCislZGVmaW5lIFBZVEhPTl9TSVRFTElC ICV7cHl0aG9uMl9zaXRlbGlifQorJWVuZGlmCisKKyVkZXNjcmlwdGlvbiAg ICB3ZWIKK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgcmVxdWlyZWQgZmls ZXMgdG8gcnVuIHBnQWRtaW40IGFzIGEgd2ViIGFwcGxpY2F0aW9uCisKKyVi dWlsZAorY2QgJXtfc291cmNlZGlyfS9ydW50aW1lCisle1FNQUtFfSAtbyBN YWtlZmlsZSBwZ0FkbWluNC5wcm8KK21ha2UKK2NkIC4uCitMQ19BTEw9ZW5f VVMuVVRGLTggTEFORz1lbl9VUy5VVEYtOCBtYWtlIC1DIGRvY3MvZW5fVVMg LWYgTWFrZWZpbGUuc3BoaW54IGh0bWwKKyNjaHJwYXRoIC1kIHBnQWRtaW40 CisKKyVpbnN0YWxsCitybSAtcmYgJXtidWlsZHJvb3R9CitjZCAle19zb3Vy Y2VkaXJ9CitpbnN0YWxsIC1kIC1tIDc1NSAle2J1aWxkcm9vdH0vJXtfZG9j ZGlyfS9wZ2FkbWluNC1kb2NzLXYle3BnQWRtaW40X3JlbGVhc2V9CitjcCAt ciBkb2NzL2VuX1VTL19idWlsZC9odG1sICV7YnVpbGRyb290fS8le19kb2Nk aXJ9L3BnYWRtaW40LWRvY3MtdiV7cGdBZG1pbjRfcmVsZWFzZX0KKworY2Qg cnVudGltZQoraW5zdGFsbCAtZCAtbSA3NTUgJXtidWlsZHJvb3R9JXtwZ2Fk bWluNGluc3RkaXJ9L3J1bnRpbWUKK2NwIHBnQWRtaW40ICV7YnVpbGRyb290 fSV7cGdhZG1pbjRpbnN0ZGlyfS9ydW50aW1lCisKK2luc3RhbGwgLWQgLW0g NzU1ICV7YnVpbGRyb290fSV7UFlUSE9OX1NJVEVMSUJ9LyV7cGdhZG1pbjRf d2ViaW5zdGRpcn0KK2NwIC1wUiAuLi93ZWIvKiAle2J1aWxkcm9vdH0le1BZ VEhPTl9TSVRFTElCfS8le3BnYWRtaW40X3dlYmluc3RkaXJ9CitjZCAle2J1 aWxkcm9vdH0le1BZVEhPTl9TSVRFTElCfS8le3BnYWRtaW40X3dlYmluc3Rk aXJ9CitybSAtZiBwZ2FkbWluNC5kYiBjb25maWdfbG9jYWwuKiBjb25maWcq LnB5YworCisjIENyZWF0ZSBjb25maWdfbG9jYWwucHkKK2VjaG8gIlNFUlZF Ul9NT0RFID0gRmFsc2UiID4gY29uZmlnX2xvY2FsLnB5CitlY2hvICJNSU5J RllfSFRNTCA9IEZhbHNlIiA+PiBjb25maWdfbG9jYWwucHkKK2VjaG8gIkhU TUxfSEVMUCA9ICcle19kb2NkaXJ9L3BnYWRtaW40LWRvYy12MS9odG1sLyci ID4+IGNvbmZpZ19sb2NhbC5weQorIyBDcmVhdGUgdGhlIGluaXQgc28gdGhh dCBwZ2FkbWluNC13ZWIgaXMgdHJlYXRlZCBhcyBtb2R1bGUgYXMgd2UgbmVl ZCB0byBmaW5kIHRoZQorIyB2ZXJzaW9uIHNwZWNmaWZjIHdlYiBwYXRoIGFz IHRoZXkgc3RheSBzaWRlLWJ5LXNpZGUKK3RvdWNoIF9faW5pdF9fLnB5CisK KyMgQ3JlYXRlIGNvbmZpZyBzbmlwcGV0IGZvciBBcGFjaGUKK2luc3RhbGwg LWQgLW0gNzU1IC4vZXRjL2h0dHBkL2NvbmYuZAordG91Y2ggLi9ldGMvaHR0 cGQvY29uZi5kLyR7bmFtZX0tdiV7cGdBZG1pbjRfcmVsZWFzZX0KKworJWNs ZWFuCisjcm0gLXJmICV7YnVpbGRyb290fQorCislZmlsZXMKKyVkZWZhdHRy KC0scm9vdCxyb290LC0pCisle3BnYWRtaW40aW5zdGRpcn0vcnVudGltZS9w Z0FkbWluNAorCislZmlsZXMgd2ViCislZGVmYXR0cigtLHJvb3Qscm9vdCwt KQorJXtQWVRIT05fU0lURUxJQn0vJXtwZ2FkbWluNF93ZWJpbnN0ZGlyfQor JWRvYworCislZmlsZXMgZG9jcworJWRlZmF0dHIoLSxyb290LHJvb3QpCisl e19kb2NkaXJ9L3BnYWRtaW40LWRvY3MtdiV7cGdBZG1pbjRfcmVsZWFzZX0K KworJWNoYW5nZWxvZworKiBGcmkgSnVuIDAzIDIwMTYgU2FuZGVlcCBUaGFr a2FyIDxzYW5kZWVwLnRoYWtrYXJAZW50ZXJwcmlzZWRiLmNvbT4KKy0gSW5p dGlhbCBSUE0gZm9yIHYxLjBhbHBoYTEKKwpkaWZmIC0tZ2l0IGEvcGtnL3Jw bS9wZ2FkbWluNC5zcGVjLmluIGIvcGtnL3JwbS9wZ2FkbWluNC5zcGVjLmlu Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkYzE1MWEK LS0tIC9kZXYvbnVsbAorKysgYi9wa2cvcnBtL3BnYWRtaW40LnNwZWMuaW4K QEAgLTAsMCArMSwyMzYgQEAKKworJWRlZmluZSBwZ0FkbWluNF9yZWxlYXNl IEFQUF9SRUwKKyVkZWZpbmUgcGdBZG1pbjRfcmV2aXNpb24gQVBQX1JFVgor CislZGVmaW5lIG5hbWUgQVBQX05BTUUKKyVkZWZpbmUgcGdhZG1pbjRpbnN0 ZGlyIC91c3IvJXtuYW1lfS12JXtwZ0FkbWluNF9yZWxlYXNlfQorJWRlZmlu ZSBwZ2FkbWluNF93ZWJpbnN0ZGlyICV7bmFtZX0td2ViLXYle3BnQWRtaW40 X3JlbGVhc2V9CisKK05hbWU6ICAgICAgICAgICAle25hbWV9CitWZXJzaW9u OiAgICAgICAgJXtwZ0FkbWluNF9yZWxlYXNlfS4le3BnQWRtaW40X3Jldmlz aW9ufQorUmVsZWFzZTogICAgICAgIDElez9kaXN0fQorU3VtbWFyeTogICAg ICAgIHBnQWRtaW4gNCBpcyBhIHJld3JpdGUgb2YgdGhlIHBvcHVsYXIgcGdB ZG1pbjMgbWFuYWdlbWVudCB0b29sIGZvciB0aGUgUG9zdGdyZVNRTCAoaHR0 cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZykgZGF0YWJhc2UuICAgCisKK0dyb3Vw OiAgICAgICAgICBBcHBsaWNhdGlvbnMvRGF0YWJhc2VzICAgCitMaWNlbnNl OiAgICAgICAgUG9zdGdyZVNRTCBMaWNlbnNlCitVUkw6ICAgICAgICAgICAg aHR0cDovL3d3dy5wZ2FkbWluLm9yZworI1NvdXJjZTA6ICAgICAgICBmdHA6 Ly9mdHAucG9zdGdyZXNxbC5vcmcvcHViL3BnYWRtaW40L3JlbGVhc2UvdiV7 dmVyc2lvbn0vc3JjLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKK0J1aWxk Um9vdDogICAgICAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXty ZWxlYXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQorCitCdWlsZEFyY2g6ICAg ICAgRElTVFJPX0FSQ0gKKworQnVpbGRSZXF1aXJlczogIG1lc2EtbGliR0wt ZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICBnY2MtYysrCitSZXF1aXJlczogICAg ICAgcGdhZG1pbjQtd2ViID0gJXt2ZXJzaW9ufQorJWlmIDAlez9mZWRvcmF9 CitCdWlsZFJlcXVpcmVzOglxdDUtcXRiYXNlLWRldmVsID49IDUuMQorQnVp bGRSZXF1aXJlczogIHF0NS1xdHdlYmtpdC1kZXZlbAorJWRlZmluZSBRTUFL RSAgIC91c3IvYmluL3FtYWtlLXF0NQorJWVsc2UKK0J1aWxkUmVxdWlyZXM6 ICBxdC1kZXZlbCA+PSA0LjYKK0J1aWxkUmVxdWlyZXM6ICBxdHdlYmtpdC1k ZXZlbAorJWRlZmluZSBRTUFLRSAgIC91c3IvbGliNjQvcXQ0L2Jpbi9xbWFr ZQorJWVuZGlmCisKKyVpZiAwJXs/ZmVkb3JhfQorQnVpbGRSZXF1aXJlczog IHB5dGhvbjMtZGV2ZWwKK1JlcXVpcmVzOiAgICAgICBweXRob24gPj0gMy4z CislZWxzZQorQnVpbGRSZXF1aXJlczogIHB5dGhvbi1kZXZlbAorUmVxdWly ZXM6ICAgICAgIHB5dGhvbiA+PSAyLjYKKyVlbmRpZgorCislaWYgMCV7P2Zl ZG9yYX0KK1JlcXVpcmVzOiAgICAgICBxdCA+PSA1LjEKKyVlbHNlCitSZXF1 aXJlczogICAgICAgcXQgPj0gNC42CislZW5kaWYKKworJWRlc2NyaXB0aW9u CitwZ0FkbWluIDQgaXMgYSByZXdyaXRlIG9mIHRoZSBwb3B1bGFyIHBnQWRt aW4zIG1hbmFnZW1lbnQgdG9vbCBmb3IgdGhlIFBvc3RncmVTUUwgKGh0dHA6 Ly93d3cucG9zdGdyZXNxbC5vcmcpIGRhdGFiYXNlLgorcGdBZG1pbiA0IGlz IGJlaW5nIHdyaXR0ZW4gYXMgYSB3ZWIgYXBwbGljYXRpb24gaW4gUHl0aG9u LCB1c2luZyBqUXVlcnkgYW5kCitCb290c3RyYXAgZm9yIHRoZSBjbGllbnQg c2lkZSBwcm9jZXNzaW5nIGFuZCBVSS4gT24gdGhlIHNlcnZlciBzaWRlLCBG bGFzayBpcworYmVpbmcgdXRpbGlzZWQuCisKK0FsdGhvdWdoIGRldmVsb3Bl ZCB1c2luZyB3ZWIgdGVjaG5vbG9naWVzLCB3ZSBpbnRlbmQgZm9yIHBnQWRt aW4gNCB0byBiZSB1c2FibGUKK2VpdGhlciBvbiBhIHdlYiBzZXJ2ZXIgdXNp bmcgYSBicm93c2VyLCBvciBzdGFuZGFsb25lIG9uIGEgd29ya3N0YXRpb24u IFRoZQorcnVudGltZS8gc3ViZGlyZWN0b3J5IGNvbnRhaW5zIGEgUVQgYmFz ZWQgcnVudGltZSBhcHBsaWNhdGlvbiBpbnRlbmRlZCB0byBhbGxvdwordGhp cyAtIGl0IGlzIGVzc2VudGlhbGx5IGEgYnJvd3NlciBhbmQgUHl0aG9uIGlu dGVycHJldG9yIGluIG9uZSBwYWNrYWdlIHdoaWNoCit3aWxsIGJlIGNhcGFi bGUgb2YgaG9zdGluZyB0aGUgUHl0aG9uIGFwcGxpY2F0aW9uIGFuZCBwcmVz ZW50aW5nIGl0IHRvIHRoZSB1c2VyCithcyBhIGRlc2t0b3AgYXBwbGljYXRp b24uCisKKyVwYWNrYWdlIGRvY3MKK1N1bW1hcnk6ICAgICAgICBEb2N1bWVu dGF0aW9uIGZvciBwZ0FkbWluNAorR3JvdXA6ICAgICAgICAgIEFwcGxpY2F0 aW9ucy9EYXRhYmFzZXMKK0J1aWxkQXJjaDogICAgICBub2FyY2gKKyMgVGhl c2UgYXJlIHJlcXVpcmVkIGZvciAtZG9jcyBzdWJwYWNrYWdlOgorJWlmIDAl ez9mZWRvcmF9CitCdWlsZFJlcXVpcmVzOiAgcHl0aG9uMy1zcGhpbngKK0J1 aWxkUmVxdWlyZXM6ICBweXRob24zLXNwaGlueF9ydGRfdGhlbWUKKyVlbHNl CitCdWlsZFJlcXVpcmVzOiAgcHl0aG9uLXNwaGlueAorQnVpbGRSZXF1aXJl czogIHB5dGhvbi1zcGhpbnhfcnRkX3RoZW1lCislZW5kaWYKKworJWRlc2Ny aXB0aW9uIGRvY3MKK1RoaXMgcGFja2FnZSBjb250YWlucyBkb2N1bWVudGF0 aW9uIGZvciB2YXJpb3VzIGxhbmd1YWdlcywKK3doaWNoIGFyZSBpbiBodG1s IGZvcm1hdC4KKworJXBhY2thZ2UgICAgICAgIHdlYgorU3VtbWFyeTogICAg ICAgIHBnQWRtaW40IHdlYiBwYWNrYWdlCitCdWlsZEFyY2g6ICAgICAgbm9h cmNoCitSZXF1aXJlczogICAgICAgJXtuYW1lfS1kb2NzID0gJXt2ZXJzaW9u fQorJWlmIDAlez9mZWRvcmF9CitSZXF1aXJlczogIHB5dGhvbjMtYmFiZWwK K1JlcXVpcmVzOiAgcHl0aG9uMy1mbGFzaworUmVxdWlyZXM6ICBweXRob24z LWZsYXNrLXNxbGFsY2hlbXkKK1JlcXVpcmVzOiAgcHl0aG9uMy1mbGFzay13 dGYKK1JlcXVpcmVzOiAgcHl0aG9uMy1qaW5qYTIKK1JlcXVpcmVzOiAgcHl0 aG9uMy1tYXJrdXBzYWZlCitSZXF1aXJlczogIHB5dGhvbjMtc3FsYWxjaGVt eQorUmVxdWlyZXM6ICBweXRob24zLXd0Zm9ybXMKK1JlcXVpcmVzOiAgcHl0 aG9uMy1iZWF1dGlmdWxzb3VwNAorUmVxdWlyZXM6ICBweXRob24zLWJsaW5r ZXIKK1JlcXVpcmVzOiAgcHl0aG9uMy1odG1sNWxpYgorUmVxdWlyZXM6ICBw eXRob24zLWl0c2Rhbmdlcm91cworUmVxdWlyZXM6ICBweXRob24zLXBzeWNv cGcyCitSZXF1aXJlczogIHB5dGhvbjMtc2l4CitSZXF1aXJlczogIHB5dGhv bjMtY3J5cHRvCitSZXF1aXJlczogIHB5dGhvbjMtc2ltcGxlanNvbgorUmVx dWlyZXM6ICBweXRob24zLWRhdGV1dGlsCitSZXF1aXJlczogIHB5dGhvbjMt d2Vya3pldWcKK1JlcXVpcmVzOiAgcHl0aG9uMy1zcWxwYXJzZQorUmVxdWly ZXM6ICBweXRob24zLWRvY3V0aWxzCitSZXF1aXJlczogIHB5dGhvbjMtZXh0 cmFzCitSZXF1aXJlczogIHB5dGhvbjMtZml4dHVyZXMKK1JlcXVpcmVzOiAg cHl0aG9uMy1saW5lY2FjaGUyCitSZXF1aXJlczogIHB5dGhvbjMtcGJyCitS ZXF1aXJlczogIHB5dGhvbjMtcHlnbWVudHMKK1JlcXVpcmVzOiAgcHl0aG9u My1taW1lcGFyc2UKK1JlcXVpcmVzOiAgcHl0aG9uMy1zbm93YmFsbHN0ZW1t ZXIKK1JlcXVpcmVzOiAgcHl0aG9uMy10ZXN0c2NlbmFyaW9zCitSZXF1aXJl czogIHB5dGhvbjMtdGVzdHRvb2xzCitSZXF1aXJlczogIHB5dGhvbjMtdHJh Y2ViYWNrMgorUmVxdWlyZXM6ICBweXRob24zLXVuaXR0ZXN0MgorUmVxdWly ZXM6ICBweXRob24zLXdoZWVsCisjUmVxdWlyZXM6ICBweXRob24zLXB5cnNp c3RlbnQKKyNSZXF1aXJlczogIHB5dGhvbjMtZmxhc2stYmFiZWwKKyNSZXF1 aXJlczogIHB5dGhvbjMtc3BlYWtsYXRlcgorI1JlcXVpcmVzOiAgcHl0aG9u My1wYXNzbGliCisjUmVxdWlyZXM6ICBweXRob24zLWZsYXNrLWdyYXZhdGFy CisjUmVxdWlyZXM6ICBweXRob24zLWZsYXNrLW1haWwKKyNSZXF1aXJlczog IHB5dGhvbjMtZmxhc2stc2VjdXJpdHkKKyNSZXF1aXJlczogIHB5dGhvbjMt Zmxhc2stbG9naW4KKyNSZXF1aXJlczogIHB5dGhvbjMtZmxhc2stcHJpbmNp cGFsCisjUmVxdWlyZXM6ICBweXRob24zLWRqYW5nby1odG1sbWluCislZWxz ZQorUmVxdWlyZXM6ICBweXRob24tYmFiZWwKK1JlcXVpcmVzOiAgcHl0aG9u LWZsYXNrCitSZXF1aXJlczogIHB5dGhvbi1mbGFzay1zcWxhbGNoZW15CitS ZXF1aXJlczogIHB5dGhvbi1mbGFzay13dGYKK1JlcXVpcmVzOiAgcHl0aG9u LWppbmphMgorUmVxdWlyZXM6ICBweXRob24tbWFya3Vwc2FmZQorUmVxdWly ZXM6ICBweXRob24tc3FsYWxjaGVteQorUmVxdWlyZXM6ICBweXRob24td3Rm b3JtcworUmVxdWlyZXM6ICBweXRob24tYmVhdXRpZnVsc291cDQKK1JlcXVp cmVzOiAgcHl0aG9uLWJsaW5rZXIKK1JlcXVpcmVzOiAgcHl0aG9uLWh0bWw1 bGliCitSZXF1aXJlczogIHB5dGhvbi1pdHNkYW5nZXJvdXMKK1JlcXVpcmVz OiAgcHl0aG9uLXBzeWNvcGcyCitSZXF1aXJlczogIHB5dGhvbi1zaXgKK1Jl cXVpcmVzOiAgcHl0aG9uLWNyeXB0bworUmVxdWlyZXM6ICBweXRob24tc2lt cGxlanNvbgorUmVxdWlyZXM6ICBweXRob24tZGF0ZXV0aWwKK1JlcXVpcmVz OiAgcHl0aG9uLXdlcmt6ZXVnCitSZXF1aXJlczogIHB5dHoKK1JlcXVpcmVz OiAgcHl0aG9uLXNxbHBhcnNlCitSZXF1aXJlczogIHB5dGhvbi1kb2N1dGls cworUmVxdWlyZXM6ICBweXRob24tZXh0cmFzCitSZXF1aXJlczogIHB5dGhv bi1maXh0dXJlcworUmVxdWlyZXM6ICBweXRob24tbGluZWNhY2hlMgorUmVx dWlyZXM6ICBweXRob24tcGJyCitSZXF1aXJlczogIHB5dGhvbi1weWdtZW50 cworUmVxdWlyZXM6ICBweXRob24tbWltZXBhcnNlCitSZXF1aXJlczogIHB5 dGhvbi10ZXN0c2NlbmFyaW9zCitSZXF1aXJlczogIHB5dGhvbi10ZXN0dG9v bHMKK1JlcXVpcmVzOiAgcHl0aG9uLXRyYWNlYmFjazIKK1JlcXVpcmVzOiAg cHl0aG9uLXVuaXR0ZXN0MgorUmVxdWlyZXM6ICBweXRob24yLXNwaGlueC10 aGVtZS1hbGFiYXN0ZXIKKyNSZXF1aXJlczogIHB5dGhvbjItc25vd2JhbGxz dGVtbWVyCisjUmVxdWlyZXM6ICBweXRob24tcHlyc2lzdGVudAorI1JlcXVp cmVzOiAgcHl0aG9uLWZsYXNrLWJhYmVsCisjUmVxdWlyZXM6ICBweXRob24t c3BlYWtsYXRlcgorI1JlcXVpcmVzOiAgcHl0aG9uLXBhc3NsaWIKKyNSZXF1 aXJlczogIHB5dGhvbi1mbGFzay1ncmF2YXRhcgorI1JlcXVpcmVzOiAgcHl0 aG9uLWZsYXNrLW1haWwKKyNSZXF1aXJlczogIHB5dGhvbi1mbGFzay1zZWN1 cml0eQorI1JlcXVpcmVzOiAgcHl0aG9uLWZsYXNrLWxvZ2luCisjUmVxdWly ZXM6ICBweXRob24tZmxhc2stcHJpbmNpcGFsCisjUmVxdWlyZXM6ICBweXRo b24tZGphbmdvLWh0bWxtaW4KKyNSZXF1aXJlczogIHB5dGhvbi1pbXBvcnRs aWIKKyVlbmRpZgorCislaWYgMCV7P2ZlZG9yYX0KKyVkZWZpbmUgUFlUSE9O X1NJVEVMSUIgJXtweXRob24zX3NpdGVsaWJ9CislZWxzZQorJWRlZmluZSBQ WVRIT05fU0lURUxJQiAle3B5dGhvbjJfc2l0ZWxpYn0KKyVlbmRpZgorCisl ZGVzY3JpcHRpb24gICAgd2ViCitUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhl IHJlcXVpcmVkIGZpbGVzIHRvIHJ1biBwZ0FkbWluNCBhcyBhIHdlYiBhcHBs aWNhdGlvbgorCislYnVpbGQKK2NkICV7X3NvdXJjZWRpcn0vcnVudGltZQor JXtRTUFLRX0gLW8gTWFrZWZpbGUgcGdBZG1pbjQucHJvCittYWtlCitjZCAu LgorTENfQUxMPWVuX1VTLlVURi04IExBTkc9ZW5fVVMuVVRGLTggbWFrZSAt QyBkb2NzL2VuX1VTIC1mIE1ha2VmaWxlLnNwaGlueCBodG1sCisjY2hycGF0 aCAtZCBwZ0FkbWluNAorCislaW5zdGFsbAorcm0gLXJmICV7YnVpbGRyb290 fQorY2QgJXtfc291cmNlZGlyfQoraW5zdGFsbCAtZCAtbSA3NTUgJXtidWls ZHJvb3R9LyV7X2RvY2Rpcn0vcGdhZG1pbjQtZG9jcy12JXtwZ0FkbWluNF9y ZWxlYXNlfQorY3AgLXIgZG9jcy9lbl9VUy9fYnVpbGQvaHRtbCAle2J1aWxk cm9vdH0vJXtfZG9jZGlyfS9wZ2FkbWluNC1kb2NzLXYle3BnQWRtaW40X3Jl bGVhc2V9CisKK2NkIHJ1bnRpbWUKK2luc3RhbGwgLWQgLW0gNzU1ICV7YnVp bGRyb290fSV7cGdhZG1pbjRpbnN0ZGlyfS9ydW50aW1lCitjcCBwZ0FkbWlu NCAle2J1aWxkcm9vdH0le3BnYWRtaW40aW5zdGRpcn0vcnVudGltZQorCitp bnN0YWxsIC1kIC1tIDc1NSAle2J1aWxkcm9vdH0le1BZVEhPTl9TSVRFTElC fS8le3BnYWRtaW40X3dlYmluc3RkaXJ9CitjcCAtcFIgLi4vd2ViLyogJXti dWlsZHJvb3R9JXtQWVRIT05fU0lURUxJQn0vJXtwZ2FkbWluNF93ZWJpbnN0 ZGlyfQorY2QgJXtidWlsZHJvb3R9JXtQWVRIT05fU0lURUxJQn0vJXtwZ2Fk bWluNF93ZWJpbnN0ZGlyfQorcm0gLWYgcGdhZG1pbjQuZGIgY29uZmlnX2xv Y2FsLiogY29uZmlnKi5weWMKKworIyBDcmVhdGUgY29uZmlnX2xvY2FsLnB5 CitlY2hvICJTRVJWRVJfTU9ERSA9IEZhbHNlIiA+IGNvbmZpZ19sb2NhbC5w eQorZWNobyAiTUlOSUZZX0hUTUwgPSBGYWxzZSIgPj4gY29uZmlnX2xvY2Fs LnB5CitlY2hvICJIVE1MX0hFTFAgPSAnJXtfZG9jZGlyfS9wZ2FkbWluNC1k b2MtdjEvaHRtbC8nIiA+PiBjb25maWdfbG9jYWwucHkKKyMgQ3JlYXRlIHRo ZSBpbml0IHNvIHRoYXQgcGdhZG1pbjQtd2ViIGlzIHRyZWF0ZWQgYXMgbW9k dWxlIGFzIHdlIG5lZWQgdG8gZmluZCB0aGUKKyMgdmVyc2lvbiBzcGVjZmlm YyB3ZWIgcGF0aCBhcyB0aGV5IHN0YXkgc2lkZS1ieS1zaWRlCit0b3VjaCBf X2luaXRfXy5weQorCisjIENyZWF0ZSBjb25maWcgc25pcHBldCBmb3IgQXBh Y2hlCitpbnN0YWxsIC1kIC1tIDc1NSAuL2V0Yy9odHRwZC9jb25mLmQKK3Rv dWNoIC4vZXRjL2h0dHBkL2NvbmYuZC8le25hbWV9LXYle3BnQWRtaW40X3Jl bGVhc2V9CisKKyVjbGVhbgorI3JtIC1yZiAle2J1aWxkcm9vdH0KKworJWZp bGVzCislZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorJXtwZ2FkbWluNGluc3Rk aXJ9L3J1bnRpbWUvcGdBZG1pbjQKKworJWZpbGVzIHdlYgorJWRlZmF0dHIo LSxyb290LHJvb3QsLSkKKyV7UFlUSE9OX1NJVEVMSUJ9LyV7cGdhZG1pbjRf d2ViaW5zdGRpcn0KKyVkb2MKKworJWZpbGVzIGRvY3MKKyVkZWZhdHRyKC0s cm9vdCxyb290KQorJXtfZG9jZGlyfS9wZ2FkbWluNC1kb2NzLXYle3BnQWRt aW40X3JlbGVhc2V9CisKKyVjaGFuZ2Vsb2cKKyogRnJpIEp1biAwMyAyMDE2 IFNhbmRlZXAgVGhha2thciA8c2FuZGVlcC50aGFra2FyQGVudGVycHJpc2Vk Yi5jb20+CistIEluaXRpYWwgUlBNIGZvciB2MS4wYWxwaGExCisKZGlmZiAt LWdpdCBhL3J1bnRpbWUvU2VydmVyLmNwcCBiL3J1bnRpbWUvU2VydmVyLmNw cAppbmRleCBmZDkzMGY2Li5kYjEwYzU2IDEwMDY0NAotLS0gYS9ydW50aW1l L1NlcnZlci5jcHAKKysrIGIvcnVudGltZS9TZXJ2ZXIuY3BwCkBAIC0yMiw2 ICsyMiwyNCBAQAogLy8gQXBwIGhlYWRlcnMKICNpbmNsdWRlICJTZXJ2ZXIu aCIKIAorUVN0cmluZyBHZXRwZ2FkbWluV2ViRGlyUGF0aCgpCit7CisgICAg UVN0cmluZyBwZ2FkbWluNF9wa2dfbmFtZSA9ICJwZ2FkbWluNC13ZWItdiIg KyBQR0FfQVBQX1JFTEVBU0U7CisgICAgLy9RU3RyaW5nIHBnYWRtaW40X21v ZF9uYW1lID0gInBnYWRtaW40LXdlYi12IiArIFBHQV9BUFBfUkVMRUFTRSAr ICIucGdBZG1pbjQiOworICAgIHFEZWJ1ZygpIDw8ICJwZ2FkbWluNF9wa2df bmFtZSIgPDwgcGdhZG1pbjRfcGtnX25hbWU7CisgICAgUVN0cmluZyBjbWQg PSAicHl0aG9uIC1jIFwiaW1wb3J0IHBrZ3V0aWw7IHByaW50IHBrZ3V0aWwu Z2V0X2xvYWRlcignIiArIHBnYWRtaW40X3BrZ19uYW1lICsgIicpLmZpbGVu YW1lO1wiIjsgCisgICAgLy8gIEluIGNhc2Ugd2UgYXJlIHJ1bm5pbmcgaW4g YSByZWxlYXNlIFJQTSwgdGhlIHB5dGhvbnBhdGggd2lsbCBiZSBzeXN0ZW0g cGF0aAorICAgIFFQcm9jZXNzIHByb2Nlc3M7CisgICAgLy9wcm9jZXNzLnN0 YXJ0KCJweXRob24gLWMgXCJpbXBvcnQgcGtndXRpbDsgcHJpbnQgcGtndXRp bC5nZXRfbG9hZGVyKHBnYWRtaW40X21vZF9uYW1lKS5maWxlbmFtZTtcIiIp OworICAgIHByb2Nlc3Muc3RhcnQoY21kKTsKKyAgICAvL3Byb2Nlc3Muc3Rh cnQoInB5dGhvbiAtYyBcImZyb20gZGlzdHV0aWxzLnN5c2NvbmZpZyBpbXBv cnQgZ2V0X3B5dGhvbl9saWI7IHByaW50KGdldF9weXRob25fbGliKCkpXCIi KTsKKyAgICBwcm9jZXNzLndhaXRGb3JGaW5pc2hlZCgtMSk7CisgICAgUVN0 cmluZyB3ZWJkaXJfcGF0aCA9IHByb2Nlc3MucmVhZEFsbFN0YW5kYXJkT3V0 cHV0KCk7CisgICAgd2ViZGlyX3BhdGggPSB3ZWJkaXJfcGF0aC50cmltbWVk KCk7CisgICAgcmV0dXJuIHdlYmRpcl9wYXRoOworfQorCisKIFNlcnZlcjo6 U2VydmVyKHF1aW50MTYgcG9ydCkKIHsKICAgICAvLyBBcHBzZXJ2ZXIgcG9y dApAQCAtNjcsNiArODUsMTcgQEAgU2VydmVyOjpTZXJ2ZXIocXVpbnQxNiBw b3J0KQogICAgIGlmICghcHl0aG9uX3BhdGguY29udGFpbnMocHltb2R1bGVz X3BhdGgpKQogICAgICAgICBweXRob25fcGF0aC5hcHBlbmQocHltb2R1bGVz X3BhdGgpOwogI2VuZGlmCisjaWZkZWYgUV9PU19MSU5VWAorICAgIFFTdHJp bmcgcGtnX3BhdGggPSBHZXRwZ2FkbWluV2ViRGlyUGF0aCgpOworICAgIFFT dHJpbmcgZ2V0X3B5bW9kdWxlc19wYXRoID0gcGtnX3BhdGggKyAiLy4uIjsK KyAgICBRRmlsZUluZm8gZmkoZ2V0X3B5bW9kdWxlc19wYXRoKTsKKyAgICBR U3RyaW5nIHB5bW9kdWxlc19wYXRoID0gZmkuYWJzb2x1dGVGaWxlUGF0aCgp OworCisgICAgLy8gQXBwZW5kIHRoZSBwYXRoLCBpZiBpdCdzIG5vdCBhbHJl YWR5IHRoZXJlCisgICAgaWYgKCFweXRob25fcGF0aC5jb250YWlucyhweW1v ZHVsZXNfcGF0aCkpCisgICAgICAgIHB5dGhvbl9wYXRoLmFwcGVuZChweW1v ZHVsZXNfcGF0aCk7CisgICAgICAgIHNldHRpbmdzLnNldFZhbHVlKCJQeXRo b25QYXRoIiwgcHltb2R1bGVzX3BhdGgpOworI2VuZGlmCiAKICAgICBpZiAo cHl0aG9uX3BhdGgubGVuZ3RoKCkgPiAwKQogICAgIHsKQEAgLTExMSwxMyAr MTQwLDIzIEBAIGJvb2wgU2VydmVyOjpJbml0KCkKICNpZmRlZiBRX09TX01B QwogICAgIHBhdGhzLmFwcGVuZCgiLi4vUmVzb3VyY2VzL3dlYi8iKTsgLy8g TWFjIHNvdXJjZSB0cmVlIChpbiBhIHJlbGVhc2UgYXBwIGJ1bmRsZSkKICNl bmRpZgorI2lmZGVmIFFfT1NfTElOVVgKKyAgICBRU3RyaW5nICB3ZWJhcHBf cGF0aCA9IEdldHBnYWRtaW5XZWJEaXJQYXRoKCk7CisgICAgcGF0aHMuYXBw ZW5kKHdlYmFwcF9wYXRoKTsgLy8gTGludXggKGluIGEgcmVsZWFzZSBSUE0p CisjZW5kaWYKICAgICBwYXRocy5hcHBlbmQoc2V0dGluZ3MudmFsdWUoIkFw cGxpY2F0aW9uUGF0aCIpLnRvU3RyaW5nKCkpOyAvLyBTeXN0ZW0gY29uZmln dXJlZCB2YWx1ZQogICAgIHBhdGhzLmFwcGVuZCgiIik7IC8vIFNob3VsZCBi ZSBsYXN0IQogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXRocy5zaXpl KCk7ICsraSkKICAgICB7CiAgICAgICAgIFFEaXIgZGlyKFFDb3JlQXBwbGlj YXRpb246OmFwcGxpY2F0aW9uRGlyUGF0aCgpICsgIi8iICsgcGF0aHNbaV0p OwotICAgICAgICBtX2FwcGZpbGUgPSBkaXIuY2Fub25pY2FsUGF0aCgpICsg Ii9wZ0FkbWluNC5weSI7CisgICAgICAgIFFGaWxlSW5mbyBpbmZvKHBhdGhz W2ldKTsKKyAgICAgICAgaWYgKGluZm8uaXNSZWxhdGl2ZSgpKSB7CisgICAg ICAgICAgICAgbV9hcHBmaWxlID0gZGlyLmFic29sdXRlUGF0aCgpICsgIi9w Z0FkbWluNC5weSI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAg ICAgICAgICAgbV9hcHBmaWxlID0gcGF0aHNbaV0gKyAiL3BnQWRtaW40LnB5 IjsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChRRmlsZTo6ZXhpc3RzKG1f YXBwZmlsZSkpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGdB ZG1pbjQuaCBiL3J1bnRpbWUvcGdBZG1pbjQuaAppbmRleCA3NzMwZTIzLi43 MWE3MjMzIDEwMDY0NAotLS0gYS9ydW50aW1lL3BnQWRtaW40LmgKKysrIGIv cnVudGltZS9wZ0FkbWluNC5oCkBAIC0zMCw2ICszMCw5IEBACiAvLyBBcHBs aWNhdGlvbiBuYW1lCiBjb25zdCBRU3RyaW5nIFBHQV9BUFBfTkFNRSA9IFFT dHJpbmcoInBnQWRtaW4gNCIpOwogCisvLyBBcHAgUmVsZWFzZQorY29uc3Qg UVN0cmluZyBQR0FfQVBQX1JFTEVBU0UgPSBRU3RyaW5nKCIxIik7CisKIC8v IEdsb2JhbCBmdW5jdGlvbiBwcm90b3R5cGVzCiBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqIGFyZ3ZbXSk7CiBib29sIFBpbmdTZXJ2ZXIoUVVybCB1cmwp Owo= --001a113951b033408d0534aac605 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a113951b033408d0534aac605--