Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aVMRW-0004eA-0d for pgadmin-hackers@arkaria.postgresql.org; Mon, 15 Feb 2016 16:56:10 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aVMRV-0006eA-IX for pgadmin-hackers@arkaria.postgresql.org; Mon, 15 Feb 2016 16:56:09 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aVMRH-0006Or-64 for pgadmin-hackers@postgresql.org; Mon, 15 Feb 2016 16:55:55 +0000 Received: from mail-io0-x22e.google.com ([2607:f8b0:4001:c06::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aVMRA-0007rx-2p for pgadmin-hackers@postgresql.org; Mon, 15 Feb 2016 16:55:54 +0000 Received: by mail-io0-x22e.google.com with SMTP id z135so94804982iof.0 for ; Mon, 15 Feb 2016 08:55:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=AZEIqlNNohMaH1xjDm+f+sPM2uT3lC6BojG4zc82ToM=; b=khwSMNq5gyS5vC78YlSUGfD8bc3FYGIMRAFXd1Mcby6QgVmdLU5sCn9Z1TKYowj7qx 4EkTzeDh3gZvZjlYsov1x4q48GlGqxdJ6nUecpgpx4GguysBYcmu1JmSJgRqrjjjdvZ4 knGioSxNLZKfZYirx/ihHAka95rnPgfBg/4CNMAA38vtDI3yKqxCLomHI975cV131aIS wgGilBcf7lUE8d8euY8lTWLANeN+zjDj7F3R7byt5/y6oSUCvVNeHgbz2pVrdcgy0BZa kg+cT6dwj+edA+4zQLL/ArX+OiAoVbOeQQL8AKkCKOzpwilnuTWRg3Gfd2fKH5W6/Tu1 RcPA== 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:content-type; bh=AZEIqlNNohMaH1xjDm+f+sPM2uT3lC6BojG4zc82ToM=; b=ZsjVMz1Hek+XNyWIIEOmrnGL0DaI11WWRmhXxx/0/YjILw4CLIm1dRWzCbRSq22T9Q yeGDVx9D50PwIiRRksSk62fNEOqA7In0b2SFxFIFYTtEuGj+dZQyvVPmUnp5B/1MxPPY HU7SotH/UL1XO3zyXvMKuTgjJ/C44liUGlSjx4r+fmH4aOWYIwpCxDa7HaB4H7BI2ju3 tV9k/wnZ2C4waOlluOD2Q2PxjtMuxc4omTzt+38YMH2/HvSjc3ACYU2307/j6IR4aCx2 jEjoJnBvotzR2Jhe3LNBSigF2aradMPntyIl/MJx+h3Klb0vtfAj28Ui7epieBPwZN8k pFAQ== X-Gm-Message-State: AG10YOQYPToxPktSqE2au0/bb15jI9HPivdKiDmJ7XvWmyTgT6kBRmSdR6ebjBuhh30IENTDXlrVS/IP7HuZ/Q== MIME-Version: 1.0 X-Received: by 10.107.6.205 with SMTP id f74mr18839629ioi.63.1455555347297; Mon, 15 Feb 2016 08:55:47 -0800 (PST) Received: by 10.64.76.137 with HTTP; Mon, 15 Feb 2016 08:55:47 -0800 (PST) In-Reply-To: References: Date: Mon, 15 Feb 2016 16:55:47 +0000 Message-ID: Subject: Re: patch for cast module From: Dave Page To: Sanket Mehta Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a113f922e6d7f9e052bd1e3ab 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 --001a113f922e6d7f9e052bd1e3ab Content-Type: multipart/alternative; boundary=001a113f922e6d7f99052bd1e3a9 --001a113f922e6d7f99052bd1e3a9 Content-Type: text/plain; charset=UTF-8 And this time with the attachment... On Mon, Feb 15, 2016 at 4:53 PM, Dave Page wrote: > That's much better. Just a couple of comments now, partly based on an > email I wrote earlier: > > - There is still inconsistency in comment style. Please see the attachment > for an example. Note that there is *always* a space between the comment > marker and text. > > - If I try to edit a cast, I can change the description - but no SQL is > shown on the SQL tab, despite the comment being correctly applied when I > hit save. The properties pane of the main window is also not updated. > > Otherwise, it looks fine. > > Thanks. > > On Mon, Feb 15, 2016 at 1:28 PM, Sanket Mehta < > sanket.mehta@enterprisedb.com> wrote: > >> Hi, >> >> PFA the revised patch with all the required comments. >> >> >> >> Regards, >> Sanket Mehta >> Sr Software engineer >> Enterprisedb >> >> On Mon, Feb 15, 2016 at 4:18 PM, Dave Page wrote: >> >>> >>> >>> On Mon, Feb 15, 2016 at 8:10 AM, Sanket Mehta < >>> sanket.mehta@enterprisedb.com> wrote: >>> >>>> Hi Dave, >>>> >>>> Regarding your suggestion of putting some comments in javascript, I >>>> think I have already put some comments regarding model data and their >>>> controls if any extended. >>>> >>>> Can you please let me know where exactly you think more comments are >>>> required? >>>> >>> >>> Hi >>> >>> The issue for me is that jQuery code isn't the easiest to read at the >>> best of times, with nested/anonymous functions and inline JSON etc. As I >>> look through the code for the various nodes in isolation, it's extremely >>> difficult to get a sense of what exactly each part of the code is doing. In >>> this example, what I see by reading the code is: >>> >>> - Define the required libraries (require.js stuff) >>> - Extend the collection class >>> - Extend the node class >>> - Define an init function inline >>> - Add the menu options >>> >>> That part is fairly easy to figure out (easier because there are blank >>> lines between the logical sections). From there though, it becomes much >>> harder; >>> >>> - There are no blank lines to separate logical code sections at all >>> between line 48 and 235 (there is one blank line, but it doesn't separate >>> code sections). >>> - There are 4 comments that I can see. The first two are identical, and >>> appear to have identical code blocks following them for reasons that are >>> not even remotely obvious. >>> - As a newcomer to this code, I'm wondering if it's purpose is to define >>> the backform model. If so, why is it not broken up into sections with a >>> comment to tell me what field each block handles, and any other useful >>> information I may need to know? If it's not, then what is it for? >>> >>> So... I'm not going to tell you exactly where to put comments, because >>> the point is that without spending a couple of hours understanding this, I >>> simply don't know. The point of the comments (and separation of logical >>> sections of code with blank lines) is to make it easy for another developer >>> (especially one as rusty as me) to read and understand, then fix and >>> improve. Be generous with comments, but don't use them unnecessarily (e.g. >>> "a = 1 // Set a to one"). >>> >>> Of course, this is not just directed at you Sanket - it's something all >>> of us working on pgAdmin need to keep in mind. >>> >>> Thanks. >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a113f922e6d7f99052bd1e3a9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
And this time with the attachment...

On Mon, Feb 15, 2016 at 4:53 PM, = Dave Page <dpage@pgadmin.org> wrote:
That's much better. Just a couple of commen= ts now, partly based on an email I wrote earlier:

- Ther= e is still inconsistency in comment style. Please see the attachment for an= example. Note that there is *always* a space between the comment marker an= d text.

- If I try to edit a cast, I can change th= e description - but no SQL is shown on the SQL tab, despite the comment bei= ng correctly applied when I hit save. The properties pane of the main windo= w is also not updated.

Otherwise, it looks fine.
=
Thanks.

On Mon, Feb 15, 201= 6 at 1:28 PM, Sanket Mehta <sanket.mehta@enterprisedb.com&= gt; wrote:
H= i,

PFA the revised patch with all the required comments.


Regards,
Sanket Mehta
Sr Software engineer
Enterprisedb

On Mon, Feb 15, 2016 at 4:1= 8 PM, Dave Page <dpage@pgadmin.org> wrote:


On Mon, Feb 15, 2016 at 8:10 AM, Sanket Mehta <sanket.mehta@enterprisedb.com> wrote:
Hi Dave,

Reg= arding your suggestion of putting some comments in javascript, I think I ha= ve already put some comments regarding model data and their controls if any= extended.

Can you please let me know where exactly you think = more comments are required?

Hi=

The issue for me is that jQuery code isn't th= e easiest to read at the best of times, with nested/anonymous functions and= inline JSON etc. As I look through the code for the various nodes in isola= tion, it's extremely difficult to get a sense of what exactly each part= of the code is doing. In this example, what I see by reading the code is:<= /div>

- Define the required libraries (require.js stuff)=
- Extend the collection class
- Extend the node class<= /div>
=C2=A0 - Define an init function inline
=C2=A0 - Add th= e menu options

That part is fairly easy to figure = out (easier because there are blank lines between the logical sections). Fr= om there though, it becomes much harder;

- There a= re no blank lines to separate logical code sections at all between line 48 = and 235 (there is one blank line, but it doesn't separate code sections= ).=C2=A0
- There are 4 comments that I can see. The first two are= identical, and appear to have identical code blocks following them for rea= sons that are not even remotely obvious.=C2=A0
- As a newcomer to= this code, I'm wondering if it's purpose is to define the backform= model. If so, why is it not broken up into sections with a comment to tell= me what field each block handles, and any other useful information I may n= eed to know? If it's not, then what is it for?

So... I'm not going to tell you exactly where to put comments, because= the point is that without spending a couple of hours understanding this, I= simply don't know. The point of the comments (and separation of logica= l sections of code with blank lines) is to make it easy for another develop= er (especially one as rusty as me) to read and understand, then fix and imp= rove. Be generous with comments, but don't use them unnecessarily (e.g.= "a =3D 1 // Set a to one").

Of course, = this is not just directed at you Sanket - it's something all of us work= ing on pgAdmin need to keep in mind.

Thanks.
=

--
Dave Page
Blog: http://pgsnake.blogspot.comTwitter: @pgsnake

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




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

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



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

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Compan= y
--001a113f922e6d7f99052bd1e3a9-- --001a113f922e6d7f9e052bd1e3ab Content-Type: image/png; name="Screen Shot 2016-02-15 at 16.50.06.png" Content-Disposition: attachment; filename="Screen Shot 2016-02-15 at 16.50.06.png" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iko822z20 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 G9odRgtbHnY47EO4R3hJ+MMIowhxRGekbOSSyIbIj1FeUaVRkuj50euir8eo xvBj2mLxsZGxdbHji70X71w8vMR2ScGSu0sNl65aenWZ6rK0ZWeXyy7nLD8R h42Lijsc95UTzKnhjMez43fHj3E9ubu4L3nuvDLeaIJLQmnC80SXxNLEkSSX pB1Jo8luyeXJr/ie/Cr+mxS/lH0pH1ODUw+lTqZFpTWnE9Lj0k8LFASpgq4V mitWregXmgoLhJIMp4ydGWOiAFFdJpS5NLMti46anR6xkfgH8WC2a3Z19qeV kStPrJJfJVjVs9pk9ZbVz3N8cn5eg1nDXdO5VnvtxrWD61jrDqyH1sev79yg uyF/w3Cub279RtLG1I2/5Vnklea93xS1qT1fIz83f+gH3x8aC2QKRAUDm503 7/sR8yP/x94t1lsqt3wv5BVeK7IoKi/6WswtvvaT5U8VP01uTdzaW2JXsncb bptg293tbtvrS+VLc0qHdgTtaCljlhWWvd+5fOfVcpvyfbtIu8S7JBWBFW2V epXbKr9WJVfdqfaobt6tvnvL7o97eHtu7nXf27RPY1/Rvi/7+fvvHfA90FJj UFNei6vNrn12MPJg988OPzfUqdYV1X07JDgkqQ+t72qwb2g4rH64pBFuFDeO HllypO+o19G2JrOmA82M5qJj4Jj42Itf4n65ezzgeOcJhxNNJ/VP7j5FO1XY ArWsbhlrTW6VtMW09Z/2P93Z7tx+6lfzXw+d0T5TfVbxbMk50rn8c5Pnc86P dwg7Xl1IujDUubzz4cXoi7e7FnX1Xgq4dOWyz+WL3azu81dcrpy56nT19DWH a63X7a639Nj2nPrN9rdTvXa9LTfsb7T1Ofa19y/oP3fT7eaFW163Lt9m375+ Z+Gd/rsRd+8NLBmQ3OPdG7mfdv/Ng+wHEw9zH2EfFT6We1z+RP1Jze/GvzdL 7CRnB70Ge56GPX04xB16+UfmH1+H859Rn5U/13reMGI1cmbUZ7TvxeIXwy+F LydeFfxN/m+7Xxu9Pvmn+589Y9Fjw29EbybfFr9TeXfovc37zvGQ8Scf0j9M fCz8pPKp/rPD5+4vUV+eT6z8iv9a8c34W/v3gO+PJtMnJ4UcEWfaCiBowomJ ALxFfQI1BgBaHwAkmRmPPB3QjK+fJvCfeMZHTwfqXGo7AAjPBSAQHSvR0QBN WXcAQtAMdwewtbU0/xGZidZWM1rkVtSalE9OvkO9Id4YgG8Dk5MTrZOT3+rQ Zh8A0PFhxptPhRzq//evsWFZht3gILngX+LvQssFPwlTDM4AAAGdaVRYdFhN TDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2Jl Om5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6 UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y ZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFi b3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9i ZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5z aW9uPjUzMTwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlm OlBpeGVsWURpbWVuc2lvbj4xNTA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgog ICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1w bWV0YT4K65kwbgAAOnlJREFUeAHtnQl8DVf7x3+E2Iokslmq9n1pxJ6ECIq2 dtrirbVIS5QqWkX1r6qKty9q7UYtr6q31qK2WmNJCEns1L4HbZVagv85R+/t 3Js5c2fuTCLLc3zGPfPMOc95zvfM3Dz3zJl5st24ceMxKBEBIkAEiAARIAJE wE0COeLi4tysStWIABEgAkSACBABIgBkK1s1PNVnJvz9/Ayxjk84bKg8FSYC RIAIEAEiQASsJ5B0fi98iwW7VJzdZQkqQASIABEgAkSACBABDQKWOBM1gypj +fezMGvqxxpN0SEiQASIABEgAkQgMxIw7Uz4ehfEOwN6Y/XPmzIjH+oTESAC RIAIEAEi4IKAaWci6ebv6NxjIOITj7poig4TASJABIgAESACmZGAaWciM0Kh PhEBIkAEiAARIAL6CZAzoZ8VlSQCRIAIEAEiQARUCJAzoQKFRESACBABIkAE iIB+AuRM6GdFJYkAESACRIAIEAEVAjlUZIZEPl4FMHvap8ibJze8fQpiyYLp WLV6A+Ys+NGQHipMBIgAESACRIAIZEwCpp2JG7/9gQ5d3sqYvSeriQARIAJE gAgQAdME6DaHaYSkgAgQASJABIhA1iZAzkTWHn/qPREgAkSACBAB0wTImTCN kBQQASJABIgAEcjaBCxzJsqXKQG+ZcuWLdWJ5syRAzWfr5iiHZk8RUEnQaCf D+rVruYk/Wf3pWZh8PP1/kfgZs4qPW42n6KaWXvKli6Oti0jxJb/mTwp9OsV uNJj1k69dlA5fQRcXS/6tACuxt2mp1aNSiheLNC2m+qfZs83Wb9kcqMdsoq/ 0XaNli9eJAB87JyTVRy43peahTqrl+67atfsuEsblhyQ8ZEUt1xsdX9NOxOB Ab5Y+O1/0P31Dhg+rB++/25KqjsUA/t3wwtNwlLAlcltBRd+Owl7o5fjROIm sfE8l9UIqohBUb1sxVJ8NokIRYnihVPIjQqs0mO0XVl5s/b4MwerSqVy+Hj0 UDxb1P0ve1d6zNop6396lJcuWRQjh0WaMq1C2eewac18HNy7Vmw8X67Mc0Kn FfpdXS96jXc17jY9fXp1QVj9GrZd1U8r+mVTbPZ8k/VLJre1q/fTKv5623O3 XFhoMPr06pyiulUcuOLPJ4xOoV8mcNWu2XGXtSuTy/jIylstV+uvmevI9NMc V65eF7E5bB39Ze1ClHi2CE6dvWATWfrJvfKXWkSgWcvuDnplcmWhzj0Gi92x Hw7EY/ZvxEeTxf6LL4Qoi6XIDxo2LoXMHYFVetxpW62OWXt27D4AvjWOSOnY qbUnk7nSY9ZOWbvpUe7j44XQkDrMtJlum3fk+BlEtPgXnM9zrtAK/W4b5lTR 1bg7FdfctbJfZs83Wb9kcs2OZcKDT4uDq3bNjntGGyq1/pq5jkzPTDx+/NjO sEb1irh9+06qORK8oRHv9cPsr+bj3v0H9na15A6FXOy8P7gPEmPX4ocFU8Fv mdSvUw27Ni9BzLalKW6rRL7xCvv1N08cWzzviVMiU2+VHq6f397h7e2LXiFm WSIa1JY1K+RqdsrsCQ+tiSkTR4BzSIhdg8XzJ8PDw0PoqVKhlJjF4bM5fGvZ oqFmuw1DggWfresXok/PjpplZQfdsdNou2VKFcPKJbMQu2MZon9ZjBZNnziW g6O648CeVWJ7d0APYeLkCR+gb6+Ogk2rF8MRt2ul6JtMziup2SPjzPvbnM24 +Xh7oVe3dmLzZe9usSq5o1/t/LHZ43y9cLkaNz6dOu6jJ448L8PPMc5AKynP t6aNtaeyZf366IP+Yrxs7YTUqY7pn38ozt1PRg8SM0CH9q0V9vAysvONH5Od J0avR67LOcnsdC7nvK/GX82eqZNGos3LEfbqfJbnCybjSe38tBdUyajpVynm IOIzbUrODgeddtT0y64XZdUC+fPix/9OQ8c2TZViXXnZuGu1ayU3NT5q15FV 4yjrr+w60gWRFTLtTNga8ivkhdEj3sGI0RNsIss/g6tXQMmSxbHwhzUOumVy h0IudoKCqqBwYX/Ub9QO3l4FEdGgFqJ3x6NueAdcvnIVuXPnctAwsH9vdO35 DmqFtUXUoNEOx5x3rNLjVSAfZk3/FL9sjRbtnjx5Gnnz5nZuzmFfzU6ZPXnz 5kKL5o0Eh5BG7dkfNW80CqvJ+u6JL2eOx959CajPeMTtT0TB/M84tKPc4esn pk0eiw8+nIBW7XujX2Q3VCxXQllEV96one60O3vaOPy0diNqhrRB2459kZB4 DPxeZpdO7dCh01to/1okOr/WVsgC/H0RWr8Olq9ci+FD++OTT6egXp0akMll 9sg4e7MXwPn5+cIzV04UKxIotlyeOXWx0lPIHf1q5w9vS+16kXErwM4Vf38f u4mBAX7svHW8nuwHWcb5fNuwaTuysX+yJOvXyp82smn2f9mrvd65LXbHxKFA /nxo26YF8jO7mrfqjrDQOqhWuYzm9a52nrhzPdqNUWRkdiqKpMiq8ZfZs33H HnEb2qakZ7eO2B4dA9n5aSvn/CnT71xOuR8aUjsFZ+VxZV6mX3a92OryFyZ+ P28K9sXF44dl621i3Z+p/T0j6xc3UI2P7Dqyahxl/ZVdR3pBmr7NwRvKncsT kyeOxsyv5mF/QuqFIh85fADGjp+aom8yeYqCGoLLl69h4JCxeMRmWs5fuIiC BfNrlAb7UtqHBXMn45s5izB34QrNsloHjehpHF4Xt279iRlffi9U8lkh5cyQ WjtG9PP6zhx8vAsitG4QcubMiUlT54gm+GQUv00kSyF1gpCduanNmzYQ292/ 7qLG85Vw+NhpWRXDcjU7jbZb8rkiKFqkMDtvF4v2ryTdFJ9RkV0QvTMGx0+e Ffs837pVE5FfsPBHlC79HDZv3YljJ06jXa4nfxTV5DJ7bv72uyrnxUvX4Sqz oXy50vho3HTRnpX//fTzdsP6ZeePM39+vXBGatySkm4Y6obR803WrwuXk3Dh wmV0eeVFLF25CbVr1cDb7BrvwH69njt3AUNHTBR2xe1PQFhILcQfPKFqp+w8 ad+qseHrUa2B2P2HVe1UK2uTqfGXfT/8wM6rD94fIBa8/vH7LVStUhG9Iofj hYh6hq5TmX6bTWqfRjhr6XfuL/9e4ilb9mxY9N1/2A+cQ/j4s1lqJpiSqbUr u65l329a/VLjk519eapdR9NmLbRkHGVAZNeRrLyz3BJnYsyod7B+41as/nmr s37L9vmFm3T9pvj1oFQqkyvL6MlfunRFOBK8bHLyQ/v0vqxut97D0KF1E7zZ tyu6/qsDXmjZAw8fPpQVl8qN6OF/ZA7EH7LrcuXw8IJG9PPyahwqlOftHuSH RfJy4WjlYbMlfC1NzN54UZ5/Jh46/ndtaz7U7DTarodHdvZlmg3Z2RNI3Im0 pfzP5MOdv/6y7Yo8l/F08fJV4UycZX+MlElNLrOnErtlpGa/0KewQ6nfsrxB /WrnD7dFzX4Zt6tXkxwWZednMwNayej5JnRJ+vXlNwsxaEBvNtvjiW07dttv j55RrOkqVfI5/LhsrdQk2XnizvUoa0Rmp6y8Gv8ypUuofj/wc3v5yp/Rgy2S /+PWLaxes1Gc77LzU9amO/01wllLv1p/uZ2PHz0Gb6NUyWdlZpuSq7VrJTc1 PtWqVFD9/rFqHDWBSK4jzTp/H2S/H82lsuxXWpXK5fHt/B/NKdKozdcvRPXr iTHjvnAoJZM7FEqFHW+v/OD3spcs34DGL3ZlU7Z5ULVSGcMtGdUTn3hE/Grl DfFfz5UrVUAep9svSiOM6lfWVeYPJBxBubKlhKh7l9aoVzdYeThFfvvOOPYo bSHExx/FqrVbsWV7DG7fuZuinNUCo+2e+PU8bv15G5FvvGo3hTsWy1auZ32s CX6LgW88z2VGk1F7uP5Tpy8ggN0GUEv88WWtR5jV6jjLtPQ7lzV6/si4/Xn7 Ngr5PHm0+s3er6J6tcrOTTnsq51vWrc5eGVZv1au2YI8eXIJh2KeSrygJuF1 xG2qHbviHGxQ7sjOE6PXo1Knc96Vnc7l1fa17Plm7hK0fLkp2rZqjq9Zniej 56eWfjV7lDI9nN3V//a7H7Mxzo0JY4com0y1fGpwU/KRXUe8Q1aMoxYY2XXE 67j6/jHtTJRgU8V+vj7Y8NN8+9aUTZ9Zmd7u1xWbt0TjzLlLDmplcodCFu38 +7NR4AtgeCrMHoddungmli6aLhbvnWWesd7bO2b0rN+0U6zdiI9ZLRy4pcvX oKjGI5l67FTaI0O1LXqfWFjLF6fyJzc2bNrGZmEeORT/ZtYELJr7uZBdY1P1 Ez+fgSWLZmDFDzOxetm3qFCupEN52Y5Sj7KMHjvdabdvv/fQmz16uGfrj9ix aTFebd8ch46eQmLiYezZvhS72eLbgwePCJnSHj15d+xJuvE7EhIOs2vpO/DF q3yhpy0NfScSQwb1te1KP/n6FF63HVsX0L7NiyLPHxflSUu/s0I954+yjozb DuZcBgb4i8XMNWtUY/fr9yiribxy3J3Pt3UbtmjeVuMKtPo1n92aSmLnJL+d YEuNwkMEl7EfDcHAwaNx87dbtkPi0/l8UztP9FyPyn4pG1CTq9mprOMqr2XP qTMXceTIcfYr/rz9e9To+amlX2abK85KDu7o5+3yX+zd+wxlt6rqoF+fTjJT HOTKdpUHnMddecyWt5KbGh/ZdcTbt2Icbf3gn8791bqOXH3/ZCtbNfyf+V1l Kxbm/f3Uf2nJmohnX6bKVLdWVcQnHmdTP46/bmVyZd3UzPMXWd27d49NHd4x 1YxRPbw8P6H1JqP6nfXyBXF3794XL+7i7W5c/R3eH/UZ9sQmOhd12OdPggT6 eYPfu07L5E67/KVIl5idD5KT7abanqTgF5iZ5I49xQr74d6DZIdxDvj7xWm2 tR1mbFLTL9Nn9PxR48ZnfPhz/pev6V8/YfQ85/ar9evrGWOxfsM2LPrfk1sZ fA0F/xJ/971P8Nsft2XdVpWrnSfu2Kmm3NlOtTJ6ZEbtMXp+GtXPFyAa4WxU vx4mqVHGKm4yPmrXkVY/jNqjpUt5HSWd3wvfYsFw9f2TIZwJrU7TsdQn0OP1 NmjTshlO/noG/L7s4SMnMGzkk8Vrqd86tUAE3CPwwZC+YgbvT/a4eu9+I+xK uDMR3rC+g8x+8ClkZHY+BVOoSSKQgoDNmUhxwElAzoQTENpVJ8Afv6odXEUs pDT7S129BZISAWsJ8HcBnDp1HmcvXnFQzB+JzJ8vLy5eue4gf1o7Mjuflj3U LhFQEiBnQkmD8kSACBABIkAEiIBhAnqdCdMLMLllfMV75Qpl2CIrX8OGUgUi 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 k2dFPZ5vzWYueFKTT525QBxT+0+tX+mN2/NVyyOATceXLPGs6AKfQbhy7Qb2 JxxV65KQnTt3AUNHTBT5uP0JCAupxcbwKm6x827Gl98L+WM2wHyzpUn/mY19 8Uzn3MVIuvG7Taz6mR65TfjP16q2yoQjhw/A2PFTUxyWyVMU/FswZdo3GDr4 LcTE7hcSfi7KzkO166V54/qGrtPG4XWl46g27tnZl4CaPUlJN1S79NPP2w1d 11r2qDbAhLtj9mHB3Mn4Zs4izF24QlbMLnc+33y8C0Lr+8peUZExel2XfK4I W6NVGDO/Wiy0XGHfdTxFRXZR5Xn4yAnV70+j7YpGDP6nxict2jVoZpYubtqZ 8Ga3AEqXfA5T/v2R8KxrBFVFCfZHYeT/fW4p2EuXrghHgitNTn4opgHzsF+d V65eR8zeeNEW/0w8dFzaboXypdlrvw/aj3sxh8SW1PSLY4o/Rrayss/NW3fh BPs1rEznL1xW7urK538mH+789Ze9LM9zGU8yub2wU0atX+mNW2j9YFStwn5F /+1M8BmHePYLXMuZOHP2gr2npdj59+OytajGdByIP2SXc4dTmY4e+1XsCodC eUAlnxG4qZhtF7Vv1RhJ12+KWTq7kGVkcmUZ5/zqdTswaEAf4Shz7lrnp9r0 pNHzjTvvsnGUjbvadXH1ahKyZctm707+/E+uISEwcF1r2WNX7pTp1nsYOrRu gjf7dkXXf3XACy174OHDh06l/tlVO9+0vq/+qflPzihnD4/szMnLhuyMEf+R Zkuy8ZXZY7RdWztGPtX4pEW7RmzM6mVN3+bgTkPnHgPFtoX9Mf1u/v8sdyRk g7R9Zxx79LMQ4tmvzVVrt2LL9hjcvnNXVhwHEo6gXNlS4nj3Lq1Rr26wtKzt wKnTFxDApkf1pHLlSqJmcDWHrWzZEnqqOpRZtnI9s62mWNDKb6vwPJfJ5LbK /PFZPY/QpjduX8xaiL5Ro7B85TosW/GzyE+b/V9btzQ/m4TXQYC/L3bsikN8 4hExi8Qr8F9XlStVQB7FbS6ZoozCjT8OqGf1PF9PFNWvJ8aM+8KhyzK5QyHJ Dp+dqFrlyeOlWueh2vVi9HzTM47KcZfZ8+ft2yjk8+TR8Dd7v8oWk1a2907N TvtBp4wee5RVvL3yg6+tWrJ8Axq/2JXN1uZB1UpllEV05Y1+XxnlfOLX87j1 521EvvGq3R7uWMh4qtnDb3MYbdfemMnM02rXpNmZtrrpmYmnSeYam5ab+PkM LFk0Q6yP4LMkw0d9Bi63pX9/NopNOcYhavAYbIveh9u374hFnHEHErFh0zb2 a+GRrajqJ58O5/ep+SNynp45WHuzpSvbv523TFWHUeGho6eQmHgYe7YvFT/0 du2KBZfxJJPzY0PfiRTT+u069eO70pTeuEkN1TjQKDxELLrl604GDh6Nm7/d wvpNO/HuoL6Ij1mNnYzZ0uVrUFTHo3MZhVvUWz2QJ09u1AvvqEEGeLtfV2ze Eo0z5y45lJPJHQpJdlau2cLupx8RR7XOT9n14uo6VTYrG0d+20Jt3PnYq10X Fy9dxajhg8Ri7IOHj2J79B57MzI77QUUGZk9iiIO2cIBvpg17RMkse+hHGwN 1Fk2m+M8y6b8XnKorNjR8331zawJOH3mHF7rNkh87xnhzJvq2+89zJ4+Ht1f fwUPkpPxxfRv8d8la1R5Aqccvj/XbdgibhPr+T5RdMshq7RfeUAPHzPtKtui vDUEspWtGv7P/JY1OlNo8ffT98veVpFPcRtJfOVzoJ83iw+SpFmNLyC6e/e+ eJEVPxE3rv4O7zPnY09somY9fpAvpLz3INnBUXFZyWQB25Mjzvf3ZXL+dAhP tnufrprP6Nz4wrjf/ridopv8RWV8fPWmjMKNvzNlzpcTEd6si2bX6taqymZp jrNbYo6zdDK5pjKNg7LzkFdRu170nm+2JmXjKBt3NXv4L23+XoPLbA2OWlKz U60cl8ns0Sp/7949tn7sjqyIptzd7yujnLkR/OVTl9j3J3cobEmNJz8m4+BO u7a2zHw+rXbN2JyR6iad3wvfYq5n8TOFM6F3YHq83gZtWjbDyV/PoEzpEuAL ioaNfLKIT6+OrFiOuLk36lZzmzP7Uyz6fgXWbox2zyCqlaEIWH3+ZKjOk7Hp hgA5E5KhyMumiWsHVxELNZ1/8UuqkJgRIG7unQZWcuNrHpS/HN2ziGplJAJW nj8Zqd9ka/ohQM5E+hkLsoQIEAEiQASIQIYkoNeZMP00R4akQ0YTASJABIgA ESAClhEw/TSHv18hrFv5HW7e/M1uVGTUBzh64rR9nzJEgAgQASJABIhA5iVg 2pngaM5fuISX27+ReSlRz4gAESACRIAIEAEpAUtuc3iyFysp3yYpbY0OEAEi QASIABEgApmOgOmZieQHD3Dnzl9YsnAGrl69hh+Xr8WSZT9nOlDUISJABIgA ESACRECdgGln4sZvf6DNq5FCe+OGdTFp/Ej22OUxHDn25I2N6s2SlAgQASJA BIgAEcgsBCy5zWGDsXHLLhw6fAyVKpaxieiTCBABIkAEiAARyOQETDsTuXN5 2hH5srC5hQsHsnf4H7PLKEMEiAARIAJEgAhkbgKmb3NUr1oe/zdyME6dPovS pUvihx9X4fjJM5mbGvWOCBABIkAEiAARsBMw7Uzsjk1A61f6oHyZEjh5+jz+ ZFE5KREBIkAEiAARIAJZh4BpZ4KjunvvPg4cpFsbWee0oZ4SASJABIgAEfiH gOk1E/+oohwRIAJEgAgQASKQFQmQM5EVR536TASIABEgAkTAQgKWORMe2T1Q sVwp8FgdqZ14KOaaz1e0N1OieGE892xh+z5liAARIAJEgAgQgbQjYMmaCf6y qgFv9cDR4ydRskRxvDVwJK4l3Uy1Xgzs3w05c3ggdv9hNAwJRu1az+PBg/vY f+AwNm+PTbV2STERIAJEgAgQASKQkoBpZyJfntz44L3+6PbGuzh34XLKFiyW BPr54KUWEWjWsju8CuTDoAG9ULRIYTx+/BgNw+ph34FD+OMWPVFiMXZSRwSI ABEgAkRASsD0bY4mEfVx5ep14UjwWx2pnUa81w+zv5qPe/cf4P6DhzgQfwhe XgXEdiD+IJKTH6W2CaSfCBABIkAEiAARUBAwPTNRtEggzp+/hPlfT4KfbyGc O38Rbw/5GLfvWD87EFy9AkqWLI7+g8eILjx4kIxs2bPj6zmL8IA5F17eBdjt jmRF9yhLBIgAESACRIAIpDYB0zMTd+/eQ9PGYfjy6/+iWevuuHrtOrq/3jZV 7B45fADGjp9q1/0gORmjxkxB4sGjOHz0OEb+3xRwGSUiQASIABEgAkQg7QiY npmIO3AQN27exJboJwsf98TuR3BQNct70L5VYyRdv4no3fEpdK9auzWFjARE gAgQASJABIhA2hAwPTMRn3gc+fLmQ4D/k0dCq1erhK07dllqPX8UNKpfT4wZ 94WlekkZESACRIAIEAEiYJ6A6ZmJh48eYu6CJVg4ZzILP34cPixy6MefTjdv mULD2/26YvOWaJw5d0khpSwRIAJEgAgQASKQHgiYdiZ4J6bPXsCiha6Gr483 Dh/71fJ+bY+OAZ8BoUQEiAARIAJEgAikPwKWOBO8W/wlVan1oqpdMQnpjxxZ RASIABEgAkSACAgCptdMEEciQASIABEgAkQgaxMgZyJrjz/1nggQASJABIiA aQKZwpkwG+iLv6K7Xm3546wvNQtjL+TyNg3bKj2mDZEoKFu6ONq2jBBb/mfy SEqlFOvtlyv9evWktIAkRIAIEAEi8DQJmHYmgqpVQPSmJfZt95alGD9mSJr1 iQf66tjuRbRt1QThoTU121347STsjV6OE4mbxMbzXFYjqCIGRfWS1m0SEQru sJhNVukxa4esvj9zmKpUKoePRw/Fs0UDHYqVLlkUI4dFOshsO3r7paWf69Kr x9ZuRv7U4pmR+0W2EwEikDUJmF6AGRd/BPUjOtjpfTJ6MHbHxNn3UzNjNNBX 5x6DhTljPxyIx+zfiI8mi/0XXwjRNHPQsHGax/UetEqP3vaMltux+wD41jgi LEVVHx8vhIbUYfKZKY7p7ZeWfq5Ur54UBmRAgRbPDNgdMpkIEIEsTsD0zISS X1i9GihUyBvLf9qkFKda3upAX+8P7oPE2LX4YcFUFuI8B+rXqYZdm5cgZttS 1Hy+okM/It94BZvWzBPHFs974pQ4FFDsWKWHq+R28Pb2Ra8QsywRDWorWnLM Tp7wAfr26oiE2DVo9WI44natRJ+eHcFvJ4z76IljxWtMmThCc1aH29+8SRh7 h4gXenVrJzZfn4KafBwt0d6T8eEzTdw2Pi68D4vnT4aHx5NgcnxGivPfun6h 6JN2C0CZUsWwcsksxO5YhuhfFqNF0ycO5OCo7jiwZ5XY3h3QQ6iRcZPJeSU1 e2T2y3i66gMdJwJEgAikVwKWORP5n8mHdwf2ZW+pnJpmfVUG+pr15Xx45PBw O9BXUFAVFC7sj/qN2sHbqyAiGtQSr+6uG94Bl69cRe7cuRz6NbB/b3Tt+Q5q hbVF1KDRDsecd/grwK3Qw2diZk3/FL9sjRbtnjx5Gnnz5nZuzr4f4O+L0Pp1 sHzlWgwf2h+ffDoF9erUQIH8z8Df38deLjDAj+lx7J/9IMt4s6isfn6+8MyV E8VYYDe+5fLMqclHWd9VXsaH29SieSMxLiGN2jNnxhuNwmqCr+eYNnksPvhw Alq1741+kd1QsVwJzWZmTxuHn9ZuRM2QNmjbsS8SEo+heJEAdOnUDh06vYX2 r0Wi82tthUzGTSaX2SOzX8ZTswN0kAgQASKQjgmYvs1h69vQQX2wbOXPOH/x ik2U6p+2QF8vN2+AR+xNnKvX7XC7zcuXr2HgkLF49Pgxzl+4iIIF82vq2h2z DwvmTsY3LGLp3IUrNMtqHTSip3F4Xdy69SdmfPm9UPmY2co3rbRg4Y8oXfo5 bN66E8dOnEa7XHKnQabnp5+34yp7j0j5cqXx0Th9bzf9esZYFChQQKi8desW ekYOl6nXlDuPC3/DakidILBgsWjetIHY7v51FzWer8RemHZaVVfJ54qgaJHC mPnVYnH8CusLT1GRXRC9MwbHT54V+zzfmq294UnGTU0us+fmb79Dzf7FS9cZ 5imMov+IABEgAumUgCXORPFigagZXA0jx3z+VLppRaCvS5euCEeCdyA5+aF9 Ol3WoW69h6FD6yZ4s29XdP1XB7zQsgcePnwoKy6VG9HD/5gfiD9k1+XK4eEF L16+KpyJs+cu2Os9evQI2bJls+/nz5/PnpdmXDgtzvXGT5oNTzZTxNN9xtPd pDYuedhszJWr1xGz90nQN/6ZeEj+hlQPj+zM+ciG7KzP3Fm0JT6bduevv2y7 Is9lPKlxk8ll9lSqUApq9osGFHaIffqPCBABIpCBCVhym6N2zeosLsexDIzB mOneXvnZq8MLYsnyDWj8Yld2iyAPqlYqY0wJK21UT3ziETE7wBviv6orV6qA PE63X/QY8eft2yjEXn3O05u9X0X1apVdVjt1+gIC2O0QvenYiTNIPPKr2Hje yrR9Zxx7VLcQ4uOPgjuSW7bH4Padu9ImTvx6Hrf+vI3IN161l+GOxbKV61Gv bk1xy4bftuF5LjOajNrD9RvladQmKk8EiAARSEsCljgTfr4+bPr9dlraneZt /fuzUZg6aaRot3CAL5Yunomli6aLRX1nz17A/oSjumwyo2f9pp1i7UZ8zGpU qVweS5evQVGnRzj1GLGD/TEODPAXi0tr1qiG7dF7UlT7ZtYELJr7z0xT0o3f kZBwGBt++k4seuQLOpVJ2S+lXJZ31m8rp0cPf237xM9nYMmiGVjxw0ysXvYt KpQraVOh+tm333vo3asL9mz9ETs2Lcar7Zvj0NFTSEw8jD3bl2I3W2R78OAR IVNVoCF0xx5XPDWao0NEgAgQgXRHIFvZquH/zPumknn+fvp/0XIT4tkfrYyQ +Ius7t27hz9u3TFlrlE9vLzZOCj8lzl/78PlazcM2V6ssB/uPUg23b6hRiWF +ZMdgX7euHA5SVIipZjfkrvEyvP1NrbEZ5l44n/gzSR37ElPPM30neoSASKQ OQkknd8L32LBLjtHzoRLRFSACBABIkAEiEDWJKDXmbDkNkfWREy9JgJEgAgQ ASJABDgBciboPCACWZwA/+VBiQgQASJghoBlzkTuXJ4oy95n8DSS2UBfT8Nm 3qarAGNm7crKgbUaN6yNfn06gX8aTVaPS1qdn7VqVAJfE6I38be8Or/ZVW9d KkcEiAARUBKwxJl4rcNLmDnlYwwf8ha+nTleqT/V80YCffXv21k8jWAzasLY IeAyrWRVQCY1Pa4CjGnZpedYRgqspcZHTx/VyvDYK33f6IL7Dx6wl1UFqBWx y9TatXJcjJyfdqPczPRhT6uE1a+hu/bA/t3wAntNOiUiQASIgFkClry0qvOr bdClx0DxLP8vaxfCl72lMOmmuZXxejpmNNAX11m9WiURp2LF6s16moBVAZms 0qPL6L8LZaTAWlbyad6sEV546XVcv/mHS1xWtuvcmDvnp7OO1Nrnsy8vtYhA s5bd8Q57DT4lIkAEiIAZApbMTJw5ex69e7yCphH1cO3a9TRxJHin3Qn0Fbt3 PwZGvZGCmVrAJ62ATGqBnVIo/VugpYcXcQ4wxmVG9PPyRgKAyQJrcT1V2Fsb baHaeYj2li0aiiBgagG3nmbgK7XxCmCPuvJAZNxBaMNei83z+TRil6T2uLhz fqqNoyxgmPN4NW0cykW60oj3+mH2V/Nx7/4DXeWpEBEgAkRAi4AlzsTH47/A ax1bY8yoIXh3+Cda7Vl6zJ1AX4kHj+L+/Xto83KE3RZZwCdZQCZZYCe7QqeM TA8vphZgzKh+owHAZIG1cuf2xJfsNtXefQmozwKcxe1PREEWFEwWsOppBb6S jVcuT08RhMwju4c9IFnOv1/p7TQkYje1x8Xo+SkbRxl/5/HasGk7srF/rlJw 9QooWbI4Fv6wxlVROk4EiAAR0EXAktsc70T1xJZtO/FMvnzgAb/6v/ORrsbN FnI30NeUad9g6OC3EBO7X5jAgzupBXyaOnOBakCm5o3rGwo0JQuUVb1a+RSB oHi8DVngKFkgK3cCgKmxD60bhJw5c2LS1DniMA8fwUKJibxawCp+4GkEvtIa Lx6IjEcC1ROQLLXHxej5qTWOavy1xksMmuS/kcMHYOz4tIvuKzGDxESACGQi AqadifJlSyCoehU0a90dfHX4muXfitsd/NXPaZWMBvri0UUHDeiDYPYq6TPs VdhaAZ9YWM4U3ZAFdkpRUClQ0cMPqwWCMqrfnQBgStNs+QrleSCxg7ZdeCki p6rZyQuqBcSS2W9V4CvN8bJbrzOTiuNis0Dv+ak1jmr8tcbL1rbzZ/tWjZF0 /aYIH+98jPaJABEgAu4SMH2bg//B4ZEXeShsvnr+3PlLeJj8yF170qwen52o WqWiaE8r4JNaQKbUDuxkVL9VAcAOJBxBubKlBJPuXVqzwFeuX6GqNmBG7ec6 1Dir6eYyrfGS1ZHJjbTrTr9k7arJjY6j2nhp3ebgzn5Uv54YM+4LteZJRgSI ABFwm4DpmYndsQm4cuUaW7T3Oe7c+QvJzKHYtHW32walVcWVa7YggUXh5EkZ 8In/UN21K9Ye8EkZkMnTMwcLMDUb/EkQW6Cpy1euwtvbC8NHfaYZr0JNT3Ky +uI3ZeAoPfr5LNC7g/qCBwDbyWxXCwDGA2udPnMOr3Ub5ICYB9baHROHqMFj sC16H27fvoPE2LWIO5CIDZu2sbDqxh1Dmf0ODTvtqPGRPXGjNV5Oal3uqrVr 1bi4bNypgGwcj5845VTyya7zeK3bsMV+W0qtwtv9umLzlmicOXdJ7TDJiAAR IAJuE7AsNgcPPsUDHV2+kjLoUkYJ9KUV8EktIFNqB3Yyqt9sADC+oO/u3fss vPeTQGIbV3+H95mTtCc20a0TzKj9vBE1zrLGtcZLVkcmN9KuO/2Stasmt/FX O6Ym01u+bq2qiE88zmYSHcO16333vlrbJCMCRCBzE9D7/WCZM6GFM6M4E1p9 yArHerzeBm1aNsPJX8+gTOkSOHzkBIaNnJgVup6l+6j3yyJLQ6LOE4EsSkDv 94Pp2xxZlG+m7Pa385bh+yVrUTu4ChIPHTcdkjtTQqJOEQEiQASIQAoC5Eyk QJK1BXwKfPP22KwNIYv13reYewttsxgm6i4RIAIaBEw/zWHTze/b8pcAPY3k KpASBTR6GqNCbRIBIkAEiEBWIWB6ZiIHe9xs3EeDGa9sqF61IpatWofpsxek GT/+2unatZ7Hgwf3sf/AYdVf1TygEX8TYuz+w2lmFzVEBIgAESACRCCrEDDt TPB4HDdu/IZxk2aJpwBWLvkas7/5HsnJyanOUE8gJWVAo1Q3iBogAkSACBAB IpAFCZi+zRFarxYOHz0h0PH3C/x19x6er1o+TVDqCaREAY3SZCioESJABIgA EcjCBEw7E2fPXUCjhvXgyWI6tGvdlL2aOi+er/bkzZKpzdVVICUKaJTaI0D6 iQARIAJEgAgApp2Jr7/7H4vCmYwVS75Eowb18Qt7wx5/qU9aJFsgJR4J9PDR 4xj5f1PAZbZEAY1sJOiTCBABIkAEiEDqETC9ZoKvjRjywad2C3+Y/wV+2Zp2 Qb54w2qBlCigkX1IKEMEiAARIAJEIFUJmHYmlNaVeq4ofHy8sPGXtHUmlDbw vC2gUbc33nU+RPtEgAgQASJABIiAxQRMOxP+foUwc8oY/HrqLCqUL4Mxn0zG vfvqAawstl2qjgIaSdHQASJABIgAESAClhMw7UxcvXYd/Qd9CH8/Hxw68qsI Q265lQYVbo+OEQGNDFaj4kSACBABIkAEiIAbBEw7E7zNi5evic2N9lOlyq6Y hFTRS0qJABEgAkSACBCBlARMP82RUiVJiAARIAJEgAgQgaxEgJyJrDTa1Fci QASIABEgAqlAwDJnIjDAF3xLjcRfiV2vdjXDql9qFiZe8e2qorv6Xek1crxx w9ro16cT+KdVyd1+pXduxYsEoFaNSlZhSqEns3JL0VESEAEiQAQsImDImagZ VBnLv5+FWVM/dmh+7IfvYPzHw/DZx+/h41GDHI5ZsVMjqCIGRfUyrKpJRCh4 RFFXSUt/6ZJFMXJYpCsVpo6P/XAg+r7RRSxeLcr+UFqVtPql1UZ65xYWGow+ vTprdcHUsczKzRQUqkwEiAAR0CCgewGmr3dBvDOgN1b/vAk1gqraVdatVR2V K5VDm1cj4VfICz+vnI9VazZiV0y8vczTygwaNs500/y9GaEhdZiemaZ1yRQ0 b9YIL7z0Oq7f/ENWJE3lGYVbmkLR0Rhx0wGJihABIpApCeiemUi6+Ts69xjI Hrk86gCiYVgd8NdZ8zTgrR44e+48GoTyP77Wp/cH90Fi7Fr8sGCqeDEVb4GH IN+0Zh62rl+IPj07ikbr16mGXZuXIGbbUtR83jFOSJUKpbDw20nYG71cbC1b NLQb6qyf62neJAw+3l7o1a2d2Hx9CtrLm80E+HoLndxhadOqicjny5tbqB0c 1R0H9qwS27sDetibksntBVQyzv3iRdIjNz4WLzdvoNIDdRGfMTq0by2mTBxh L8DHe/G8ydgXvUKMb0SDJ7eNFs39HM1YhNv1q+bgeMJGtHk5wl5Hlklv3BbP n4zxY+hFbLLxIjkRIAJPj4BuZ0Jmom8hH/HCquerVcCzzxbB/5auYesUfGTF 3ZYHBVVB4cL+qN+oHby9CiKiQS0WVCwPpk0eiw8+nIBW7XujX2Q3VCxXAtG7 41E3vAMuX7mK3Llz2dvMndsTX84cj737ElCfHY/bn4iC+Z8Rx9X0e3sVgJ+f Lzxz5USxIoFiy+WZ067POVOssJ9on9tg27hMlnJ5egqdHtk97Ppz5vAAXxPQ pVM7dOj0Ftq/FonOr7UVMplcpp/L1fqV3rjZ7C/Ozh++6UmhIbWRn41d81bd Ecac12qVy4CHpJ81/VP2Ovdo1Apri5MnTyPv385ZYKA/Rgx/G8OGj8PadZth c9pkbaVHbjGx8UhIOCwzmeREgAgQgadGQPdtDpmFjx8/wp2/7mLooL4YN2E6 QuoF49GjR7Libssvs3dZDBwyFo8eP8b5CxdRsGB+hNQJQnbmDjVv2kBsd5kd NZ6vhMPHTqu2E1o3CDlZdNNJU+eI40wVHrN/PKnpX7x0Ha6ysOrly5XGR+Om i3Ja/3X7VzsE13BcKBq79wA+mThbtdrZi1eEXu44KPW/3rkNonfG4PjJs6Ie z7dmMxc8qcmnzlwgjqn9p9av9MaNh6wPYItsS5Z4VnSBzyBcuXYD+xMcZ8GU /TvHotUOHTFRiOL2JyAspBYbw6u4detPzPjyeyF/zAaYb7Y06T+zsS+e6Zy7 GEk3freJVT/TI7cJ//la1VYSEgEiQASeNgHTzsQ19gbMLq+2wf74g0g4dByd X22NpKQblvfr0qUrwpHgipOTH4rIpHnYr84rV68jZu+T9Rn8M5HZIEsVypfG AWanLXkxh8SW1PSLY4o/Rrayss/NW3fhBPs1rEznL1xW7urK538mH3PQ/rKX 5Xku40kmtxd2yqj1K71xC60fjKpVKtidCT7jEM9+gWs5E2fOXrD3tFTJ5/Dj srWoxnQciD9kl3OHU5mOHvtV7AqHQnlAJZ8RuKmYTSIiQASIwFMhYPo2xy/s D2ixYkUwZfoc8On66lUrsWnmXWnSme0749gtlUKIZ782eeTQLdtjcPvOXWnb BxKOoFzZUuJ49y6tUa9usLSs7cCp0xcQECC/VWErxz/LlSuJmsHVHLayZUso i+jKL1u5ntlWE/yWCt94nstkcptS/visnkdo0xu3L2YtRN+oUVi+ch2WrfhZ 5KfN/q+tW5qfTcLrIMDfFzt2xbH1PEfELBKvEBXZhS0MroA8ittcMkUZhVvb lhEIq19D1g2SEwEiQASeGgHdMxM+bP3A7GmfIm+e3PBmixCXLJiOVas3YM6C H/HTmg2Y9OkI5GC3EPaxKefYuH9+/admz66xWxATP5+BJYtmiPUR3myh5PBR n4HLbenfn43C7pg4RA0eg23R+3D79h2xiDPuQCI2bNqGhw+1b8nw6XB+n3rD T9/B0zMHa282VqzebFPv8PntvGUO++7uHDp6ComJh7Fn+1I2TQ/s2hULLuNJ JufHhr4TKab123Xqx3elKb1xkxqqcaBReIhYdMvXnQwcPBo3f7uF9Zt24l12 uy0+ZjV2MmZLl69B0aKBGlqeHMoo3KLYAuc87PqrF97RZZ+oABEgAkQgLQlk K1s1/J+byiZaLl7syZf22fMpp/X9/fT9src1z6e4jSQPDw8E+nnjwuUkzWp8 Aebdu/fFi6z4H9SNq7/D+8z52BObqFmPH+QLKe89SHZwVFxWMlnA9uSI8/19 mZw/HcLTFYUzpWVCRufGF1z+9sftFF30YxyUDmWKAk6CjMKNvzNlzpcTEd6s i1MPaJcIEAEikDoEks7vhW8x17P4umcmXJmp5kS4qmPV8YcPH7p0JHhbnTq+ iDYtm+Hkr2dQpnQJxLI1FnocCV73/KVr/CNNk7MTYWtcJtfrRNj0ZHRuao4E 75sRR4KXzyjcRo94G59+No2bTIkIEAEikK4IWDYzodWr1J6Z0Grb+Ri/TVM7 uIpYqCn7o+xch/Yhbm8RN+NngpXnW84cOfAgOdm4EVSDCBABIuAmAb0zE1nO mXCTJ1UjAkSACBABIpDlCOh1Jkw/zZHlyFKHiQARIAJEgAgQAQcChpwJWaAv mdyhJdohAkSACBABIkAEMiUB3c6EMtCXkoRMrixDeSJABIgAESACRCDzEtDt TMgCfcnkmRcZ9YwIEAEiQASIABFQEtDtTCgrUZ4IEAEiQASIABEgAjYC5EzY SNAnESACRIAIEAEi4BYBcibcwkaViAARIAJEgAgQARsBciZsJOiTCBABIkAE iAARcIuA7tdpywJ9rfhpgzQAmFsWUSUiQASIABEgAkQgQxGgN2BmqOEiY4kA ESACRIAIpB0BegNm2rGmlogAESACRIAIZGkCtGYiSw8/dZ4IEAEiQASIgHkC 5EyYZ0gaiAARIAJEgAhkaQLkTGTp4afOEwEiQASIABEwT4CcCfMMSQMRIAJE gAgQgSxNgJyJLD381HkiQASIABEgAuYJkDNhniFpIAJEgAgQASKQpQn8P1ED lzFrnrCzAAAAAElFTkSuQmCC --001a113f922e6d7f9e052bd1e3ab 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 --001a113f922e6d7f9e052bd1e3ab--