From libssh2-devel-bounces@cool.haxx.se Tue Apr 1 00:22:24 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMMESv026768; Tue, 1 Apr 2014 00:22:23 +0200 Received: from nm24-vm0.bullet.mail.bf1.yahoo.com (nm24-vm0.bullet.mail.bf1.yahoo.com [98.139.213.161]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMMCg9026613 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Tue, 1 Apr 2014 00:22:13 +0200 Received: from [98.139.212.149] by nm24.bullet.mail.bf1.yahoo.com with NNFMP; 31 Mar 2014 22:22:08 -0000 Received: from [98.139.211.195] by tm6.bullet.mail.bf1.yahoo.com with NNFMP; 31 Mar 2014 22:22:08 -0000 Received: from [127.0.0.1] by smtp204.mail.bf1.yahoo.com with NNFMP; 31 Mar 2014 22:22:07 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1396304527; bh=K8MJnvmHIw0w9AoliSRlDS0mAUTjb4Xl+zUxTjaC0aU=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:X-Rocket-Received:Message-ID:Date:From:User-Agent:MIME-Version:To:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=X4Gd24/VJ9uF3ym6vG0h45cZV5WLUlFACSVfQzjsdY0bN7ttimGjoy9sIUJCBzJau2w7jPdNkiBxMywbvhcKHaVvu9ZIoZJuwn4wv7NZMWLL3a2P72B7FKGGC5FSkPOAwXUF+2mD7uvQCjN6QXQSTebH+n0p3f8awSQWJwyHMoc= X-Yahoo-Newman-Id: 983194.55571.bm@smtp204.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: GUWgz1MVM1nxmMkVjusvO3F.qlOV.._InSPuWGRoHv9ZB5S GQOEJM.vXIZjuBPj_5WC.Qt1t_IGo_lE5.R05o.aahCoy2tEZUsVamsUYvaT Y8qk80bEbMlgiICwn8gDItj8DZdKHNMdGSpPLkAMsF9Ez5A5J1ItNWX1vD8N RcAULziBMM9MGyVe9JnirkP2CA7hH7i_WKvTyi39oUbenVtAiGWjVV_fCbbz lEY8qgcxP2QsSJiABdO0Yu71b7nz2w9e4kIWAHRmK8LjbIPjVDE02usF63CH f6KFUuxGfa3yhC8hIwvXncmJoNPXgEwyJ0qvfTi0rhThpaLAIx0rP6J9YPaM qNcN.5phq3jc9ciJaCkukGXLIOEhxtMF6sDv05kBZIo5kceRN0cEC.HDHjK. Y4nmB0XhjIURyevcYeSW5tW_PCuD0AsquWKI1PzxJXFab8Q1EW1DlYc2EWlT hxa1EOftwEY1gau7u.A11yvspC5THebwyhuE93hIAxwl4DyjsED84iJP3Vrh uPoXNJs86c1h9vg1BW.NFd0p.tJAw8Owx2yRw9r7SEZ04hY.DkQbSvZjgtf_ _5iLyJOFBQmzKEM7M4ukzwUPVjblLTxHOWGd.76yia.j1hohT0lpcOwxEEkQ PbZtVHVUNx75DJAWJNwxU X-Yahoo-SMTP: 9Tlp3zGswBAMIZY7LhANokCU9rJ2SQ-- X-Rocket-Received: from [192.168.1.80] (raysatiro@24.44.245.87 with plain [63.250.193.228]) by smtp204.mail.bf1.yahoo.com with SMTP; 31 Mar 2014 15:22:07 -0700 PDT Message-ID: <5339EA8E.3020708@yahoo.com> Date: Mon, 31 Mar 2014 18:22:06 -0400 From: Ray Satiro User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: libssh2-devel@cool.haxx.se Subject: Re: verify libssh2 download References: <1396299788.7113.1.camel@murphy> In-Reply-To: <1396299788.7113.1.camel@murphy> X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" On 3/31/2014 5:03 PM, Eben Shapiro wrote: > How do I verify the libssh2 download? I see there's a gpg signature next > to the link to download, but I can't find the public key to go along > with it. http://pgp.mit.edu:11371/pks/lookup?search=daniel%40haxx.se&op=index gpg --recv-keys 279D5C91 _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Tue Apr 1 00:27:27 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMRORm030861; Tue, 1 Apr 2014 00:27:27 +0200 Received: from sender1.zohomail.com (sender1.zohomail.com [72.5.230.100]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s2VMRMFV030785 for ; Tue, 1 Apr 2014 00:27:23 +0200 Received: from [192.168.1.4] (pool-72-89-245-160.nycmny.fios.verizon.net [72.89.245.160]) by mx.zohomail.com with SMTPS id 1396304838176110.90498316577941; Mon, 31 Mar 2014 15:27:18 -0700 (PDT) Subject: Re: verify libssh2 download From: Eben Shapiro To: libssh2 development In-Reply-To: <5339EA8E.3020708@yahoo.com> References: <1396299788.7113.1.camel@murphy> <5339EA8E.3020708@yahoo.com> Date: Mon, 31 Mar 2014 18:27:17 -0400 Message-ID: <1396304837.8136.0.camel@murphy> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 X-ZohoMailClient: External X-Zoho-Virus-Status: 2 X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Hi Ray, Thank you so much! Eben On Mon, 2014-03-31 at 18:22 -0400, Ray Satiro wrote: > On 3/31/2014 5:03 PM, Eben Shapiro wrote: > > How do I verify the libssh2 download? I see there's a gpg signature next > > to the link to download, but I can't find the public key to go along > > with it. > > http://pgp.mit.edu:11371/pks/lookup?search=daniel%40haxx.se&op=index > gpg --recv-keys 279D5C91 > > _______________________________________________ > libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Wed Apr 2 21:07:14 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s32J6o7l009611; Wed, 2 Apr 2014 21:07:09 +0200 Received: from mail-we0-x22e.google.com (mail-we0-x22e.google.com [IPv6:2a00:1450:400c:c03::22e]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s32J6mwL009560 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Wed, 2 Apr 2014 21:06:49 +0200 Received: by mail-we0-f174.google.com with SMTP id t60so702749wes.5 for ; Wed, 02 Apr 2014 12:06:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=tkrS1RJfajEF/h2UscQnepyuO/NygzWwBYXc1UstRCY=; b=c6+Dx5zPCRji/ZV7uTogcdwKZqptExvbFa0v0G/QSEaiZwRd++dOFGlzYUBZsdXUjO prH0NbWkIofRo4rYqRUeGBFri/v6YkN4y3GAFVoQIyeJsbk/PzziUSsRC8kiRluPjFX1 IO00W15d5bTAhOKMRuxM1HKhLpL9nEb2YV7RyV2O3SyjyB5twcqQNIcfuIdeyITdofqD sYeWhnmWzbMCpVv0ZSsAURou2UdlKXF97pxiLYZSjS+IAqsMXKPND74saGEttb10XjKF kglMWO0l0jkaGtLAgpxFhkmyzJoPpkrlIN/k8WzVQC48ep/jqovfGlEbDtNHJO/HveC/ 5+cQ== X-Received: by 10.194.90.39 with SMTP id bt7mr2990343wjb.93.1396465604792; Wed, 02 Apr 2014 12:06:44 -0700 (PDT) Received: from [192.168.1.14] (chello212186003062.tirol.surfer.at. [212.186.3.62]) by mx.google.com with ESMTPSA id q41sm6499891eez.7.2014.04.02.12.06.43 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 02 Apr 2014 12:06:43 -0700 (PDT) Message-ID: <533C5FC2.3010205@gmail.com> Date: Wed, 02 Apr 2014 21:06:42 +0200 From: Clemens Gruber User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: libssh2-devel@cool.haxx.se Subject: ed25519 and curve25519 for key exchange X-Enigmail-Version: 1.6 X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Hi, I am currently playing around with Daniel J. Bernstein's public-key signature system. It looks great in comparison to ECDSA and it is very fast, which would be a benefit on all embedded systems. Besides that is's also not using the NIST curves.. OpenSSH introduced support for ed25519 public keys with version 6.5: http://www.openssh.com/txt/release-6.5 libssh supports using curve25519 for key exchange, see: http://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt More info about Ed25519: http://ed25519.cr.yp.to There is also a paper: http://ed25519.cr.yp.to/ed25519-20110926.pdf So my question is: Did anyone already think about implementing support for ed25519 keys and curve25519 key exchange in libssh2 to be compatible with OpenSSH >= 6.5 ? In the process of that, implementing Salsa-20 / ChaCha (djbs stream cipher) and Poly1305-AES (a MAC) could also be useful. Please share your opinion about adding those to libssh2. As far as I know, neither OpenSSL nor libgcrypt support them (yet), but using djb's NaCl library for that purpose might be an option: http://nacl.cace-project.eu Happy Hacking! Clemens _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Thu Apr 3 13:46:39 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33BkDTj028979; Thu, 3 Apr 2014 13:46:35 +0200 Received: from giant.haxx.se (dast@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33BkCWd028957 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 3 Apr 2014 13:46:12 +0200 Received: from localhost (dast@localhost) by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id s33BkBD6028952 for ; Thu, 3 Apr 2014 13:46:11 +0200 X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs Date: Thu, 3 Apr 2014 13:46:11 +0200 (CEST) From: Daniel Stenberg X-X-Sender: dast@giant.haxx.se To: libssh2 development Subject: Re: ed25519 and curve25519 for key exchange In-Reply-To: <533C5FC2.3010205@gmail.com> Message-ID: References: <533C5FC2.3010205@gmail.com> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) X-fromdanielhimself: yes MIME-Version: 1.0 X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" On Wed, 2 Apr 2014, Clemens Gruber wrote: > Please share your opinion about adding those to libssh2. As far as I know, > neither OpenSSL nor libgcrypt support them (yet), but using djb's NaCl > library for that purpose might be an option: http://nacl.cace-project.eu Seems like features we want! I'm in favor of adding them. But I'm not likely to work on it personally within the near future. -- / daniel.haxx.se _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Thu Apr 3 19:47:43 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33HlFcE012934; Thu, 3 Apr 2014 19:47:38 +0200 Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s33HlDT8012928 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 3 Apr 2014 19:47:13 +0200 Received: (qmail 17586 invoked by uid 501); 3 Apr 2014 17:47:14 -0000 Message-ID: <20140403174714.17585.qmail@stuge.se> Date: Thu, 3 Apr 2014 19:47:14 +0200 From: Peter Stuge To: libssh2-devel@cool.haxx.se Subject: Re: ed25519 and curve25519 for key exchange Mail-Followup-To: libssh2-devel@cool.haxx.se References: <533C5FC2.3010205@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <533C5FC2.3010205@gmail.com> X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Clemens Gruber wrote: > So my question is: Did anyone already think about implementing support > for ed25519 keys and curve25519 key exchange in libssh2 to be compatible > with OpenSSH >= 6.5 ? I agree that it would be nice to support these in libssh2. > using djb's NaCl library for that purpose might be an option: > http://nacl.cace-project.eu It is, and there are also one or two other implementations. IIRC OpenSSH doesn't use NaCl but something else. //Peter _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Tue Apr 8 23:37:23 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s38Las2u019432; Tue, 8 Apr 2014 23:37:18 +0200 Received: from bay0-omc4-s12.bay0.hotmail.com (bay0-omc4-s12.bay0.hotmail.com [65.54.190.214]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s38LaqpC019411 for ; Tue, 8 Apr 2014 23:36:52 +0200 Received: from BAY407-EAS6 ([65.54.190.201]) by bay0-omc4-s12.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 8 Apr 2014 14:36:44 -0700 X-TMN: [Qxg3bxWxZbUydlRDnVYUrwMSc5doKfP4] X-Originating-Email: [bob_2824@hotmail.com] Message-ID: From: Bob Kast To: "'libssh2 development'" Subject: Patches for Windows, Wincng, Visual Studio Date: Tue, 8 Apr 2014 17:36:42 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0029_01CF5351.1B0AE930" X-Mailer: Microsoft Outlook 15.0 Thread-Index: Ac9TcgUUJxbp7wsHSAiuOrLg0D7VJA== Content-Language: en-us X-OriginalArrivalTime: 08 Apr 2014 21:36:44.0556 (UTC) FILETIME=[A32594C0:01CF5372] X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Attached are all of the mods I've made to libssh2 for use in Windows and Visual Studio. I hope most of them should be pretty clear, but I have a couple of notes: 0001-Add-Visual-Studio-2013-solution-project-files.patch: I understand that you are working on a cmake system that will create Visual Studio project files. Until that time, I have a patch that includes project files for VS2013. It can be something temporary or it can be something used as a model for creating the cmake files. 0001-Use-secure-versions-of-CRT-library.patch: Libssh2 uses deprecated versions of the run-time library. This patch updates that so they use the secure versions. For my changes to correctly compile on non-Windows systems, you need to add the following defines. I was not sure where these should be added: #define SNPRINTF snprintf #define VSNPRINTF vsnprintf Thanks for all your help, Bob ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-Add-Visual-Studio-2013-solution-project-files.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Add-Visual-Studio-2013-solution-project-files.patch" From bf5262d7ddf309043ecd701a3dcc233163f8ddeb Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Tue, 8 Apr 2014 17:12:26 -0400=0A= Subject: [PATCH] Add Visual Studio 2013 solution/project files=0A= =0A= ---=0A= win32/.gitignore | 11 +-=0A= win32/libssh2.sln | 53 +++++=0A= win32/libssh2.vcxproj | 502 = ++++++++++++++++++++++++++++++++++++++++++=0A= win32/libssh2.vcxproj.filters | 131 +++++++++++=0A= win32/tests.vcxproj | 149 +++++++++++++=0A= win32/tests.vcxproj.filters | 25 +++=0A= 6 files changed, 869 insertions(+), 2 deletions(-)=0A= create mode 100644 win32/libssh2.sln=0A= create mode 100644 win32/libssh2.vcxproj=0A= create mode 100644 win32/libssh2.vcxproj.filters=0A= create mode 100644 win32/tests.vcxproj=0A= create mode 100644 win32/tests.vcxproj.filters=0A= =0A= diff --git a/win32/.gitignore b/win32/.gitignore=0A= index 0afd7fd..877d025 100644=0A= --- a/win32/.gitignore=0A= +++ b/win32/.gitignore=0A= @@ -4,11 +4,18 @@=0A= *.exe=0A= *.obj=0A= .*.swp=0A= -Debug=0A= -Release=0A= *.exp=0A= *.ncb=0A= *.opt=0A= *.plg=0A= libssh2.dsp=0A= objects.mk=0A= +obj/=0A= +*.opensdf=0A= +*.sdf=0A= +*.suo=0A= +*.user=0A= +/DLL Release=0A= +/LIB Debug=0A= +/LIB Release=0A= +/DLL Debug=0A= diff --git a/win32/libssh2.sln b/win32/libssh2.sln=0A= new file mode 100644=0A= index 0000000..6da1d69=0A= --- /dev/null=0A= +++ b/win32/libssh2.sln=0A= @@ -0,0 +1,53 @@=0A= +Microsoft Visual Studio Solution File, Format Version 12.00=0A= +# Visual Studio 2013=0A= +VisualStudioVersion =3D 12.0.30110.0=0A= +MinimumVisualStudioVersion =3D 10.0.40219.1=0A= +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "libssh2", = "libssh2.vcxproj", "{790C5988-391E-47D7-8EFB-BA1C99F72EA5}"=0A= +EndProject=0A= +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "tests", = "tests.vcxproj", "{237AF8DB-FAF9-484B-9F8B-21A912CD4E73}"=0A= +EndProject=0A= +Global=0A= + GlobalSection(SolutionConfigurationPlatforms) =3D preSolution=0A= + DLL Debug|Win32 =3D DLL Debug|Win32=0A= + DLL Debug|x64 =3D DLL Debug|x64=0A= + DLL Release|Win32 =3D DLL Release|Win32=0A= + DLL Release|x64 =3D DLL Release|x64=0A= + LIB Debug|Win32 =3D LIB Debug|Win32=0A= + LIB Debug|x64 =3D LIB Debug|x64=0A= + LIB Release|Win32 =3D LIB Release|Win32=0A= + LIB Release|x64 =3D LIB Release|x64=0A= + EndGlobalSection=0A= + GlobalSection(ProjectConfigurationPlatforms) =3D postSolution=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|Win32.ActiveCfg =3D = DLL Debug|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|Win32.Build.0 =3D = DLL Debug|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|x64.ActiveCfg =3D = DLL Debug|x64=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Debug|x64.Build.0 =3D DLL = Debug|x64=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|Win32.ActiveCfg = =3D DLL Release|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|Win32.Build.0 =3D = DLL Release|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|x64.ActiveCfg =3D = DLL Release|x64=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.DLL Release|x64.Build.0 =3D = DLL Release|x64=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|Win32.ActiveCfg =3D = LIB Debug|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|Win32.Build.0 =3D = LIB Debug|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|x64.ActiveCfg =3D = LIB Debug|x64=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Debug|x64.Build.0 =3D LIB = Debug|x64=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|Win32.ActiveCfg = =3D LIB Release|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|Win32.Build.0 =3D = LIB Release|Win32=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|x64.ActiveCfg =3D = LIB Release|x64=0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}.LIB Release|x64.Build.0 =3D = LIB Release|x64=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Debug|Win32.ActiveCfg =3D = Debug|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Debug|Win32.Build.0 =3D = Debug|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Debug|x64.ActiveCfg =3D = Debug|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Release|Win32.ActiveCfg = =3D Release|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Release|Win32.Build.0 =3D = Release|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.DLL Release|x64.ActiveCfg =3D = Release|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Debug|Win32.ActiveCfg =3D = Debug|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Debug|Win32.Build.0 =3D = Debug|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Debug|x64.ActiveCfg =3D = Debug|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Release|Win32.ActiveCfg = =3D Release|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Release|Win32.Build.0 =3D = Release|Win32=0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}.LIB Release|x64.ActiveCfg =3D = Release|Win32=0A= + EndGlobalSection=0A= + GlobalSection(SolutionProperties) =3D preSolution=0A= + HideSolutionNode =3D FALSE=0A= + EndGlobalSection=0A= +EndGlobal=0A= diff --git a/win32/libssh2.vcxproj b/win32/libssh2.vcxproj=0A= new file mode 100644=0A= index 0000000..2878537=0A= --- /dev/null=0A= +++ b/win32/libssh2.vcxproj=0A= @@ -0,0 +1,502 @@=0A= +=EF=BB=BF=0A= +=0A= + =0A= + =0A= + DLL Debug=0A= + Win32=0A= + =0A= + =0A= + DLL Debug=0A= + x64=0A= + =0A= + =0A= + DLL Release=0A= + Win32=0A= + =0A= + =0A= + DLL Release=0A= + x64=0A= + =0A= + =0A= + LIB Debug=0A= + Win32=0A= + =0A= + =0A= + LIB Debug=0A= + x64=0A= + =0A= + =0A= + LIB Release=0A= + Win32=0A= + =0A= + =0A= + LIB Release=0A= + x64=0A= + =0A= + =0A= + =0A= + =0A= + =0A= + {790C5988-391E-47D7-8EFB-BA1C99F72EA5}=0A= + =0A= + =0A= + =0A= + StaticLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + StaticLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + StaticLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + StaticLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + DynamicLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + DynamicLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + DynamicLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + DynamicLibrary=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + false=0A= + =0A= + =0A= + false=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + =0A= + =0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + false=0A= + =0A= + =0A= + false=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + =0A= + =0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + true=0A= + =0A= + =0A= + true=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + =0A= + =0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + false=0A= + =0A= + =0A= + false=0A= + = $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\=0A= + $(SolutionDir)$(Configuration)\$(Platform)\=0A= + =0A= + =0A= + =0A= + MultiThreadedDebugDLL=0A= + Default=0A= + false=0A= + Disabled=0A= + true=0A= + Level3=0A= + false=0A= + true=0A= + ProgramDatabase=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDefinit= ions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(IntDir)$(TargetName).pdb=0A= + EnableFastChecks=0A= + true=0A= + =0A= + =0A= + 0x0409=0A= + = _DEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + true=0A= + true=0A= + Console=0A= + false=0A= + $(TargetPath)=0A= + $(TargetDir)$(TargetName).lib=0A= + = ws2_32.lib;%(AdditionalDependencies)=0A= + =0A= + =0A= + = $(TargetDir)$(TargetName).pdb=0A= + = $(TargetDir)$(TargetName).pgd=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDebugDLL=0A= + Default=0A= + false=0A= + Disabled=0A= + true=0A= + Level3=0A= + false=0A= + ProgramDatabase=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDefinit= ions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(IntDir)$(TargetName).pdb=0A= + EnableFastChecks=0A= + true=0A= + true=0A= + =0A= + =0A= + 0x0409=0A= + = _DEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + true=0A= + true=0A= + Console=0A= + false=0A= + $(TargetPath)=0A= + $(TargetDir)$(TargetName).lib=0A= + = ws2_32.lib;%(AdditionalDependencies)=0A= + =0A= + =0A= + = $(TargetDir)$(TargetName).pdb=0A= + = $(TargetDir)$(TargetName).pgd=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDLL=0A= + Default=0A= + true=0A= + true=0A= + MaxSpeed=0A= + true=0A= + Level3=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;NDEBUG;%(PreprocessorDefinitions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(IntDir)$(TargetName).pdb=0A= + true=0A= + =0A= + =0A= + 0x0409=0A= + = NDEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + true=0A= + true=0A= + Console=0A= + $(TargetPath)=0A= + $(TargetDir)$(TargetName).lib=0A= + = ws2_32.lib;%(AdditionalDependencies)=0A= + =0A= + =0A= + = $(TargetDir)$(TargetName).pdb=0A= + = $(TargetDir)$(TargetName).pgd=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDLL=0A= + Default=0A= + true=0A= + true=0A= + MaxSpeed=0A= + true=0A= + Level3=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;NDEBUG;%(PreprocessorDefinitions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(IntDir)$(TargetName).pdb=0A= + true=0A= + false=0A= + =0A= + =0A= + 0x0409=0A= + = NDEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + true=0A= + true=0A= + Console=0A= + $(TargetPath)=0A= + $(TargetDir)$(TargetName).lib=0A= + = ws2_32.lib;%(AdditionalDependencies)=0A= + =0A= + =0A= + = $(TargetDir)$(TargetName).pdb=0A= + = $(TargetDir)$(TargetName).pgd=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDebugDLL=0A= + Default=0A= + false=0A= + Disabled=0A= + true=0A= + Level3=0A= + true=0A= + EditAndContinue=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDe= finitions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(OutDir)$(TargetName).pdb=0A= + EnableFastChecks=0A= + true=0A= + =0A= + =0A= + 0x0409=0A= + = _DEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + $(TargetPath)=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDebugDLL=0A= + Default=0A= + false=0A= + Disabled=0A= + true=0A= + Level3=0A= + ProgramDatabase=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDe= finitions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(OutDir)$(TargetName).pdb=0A= + EnableFastChecks=0A= + true=0A= + true=0A= + =0A= + =0A= + 0x0409=0A= + = _DEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + $(TargetPath)=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDLL=0A= + Default=0A= + true=0A= + true=0A= + MaxSpeed=0A= + true=0A= + Level3=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;NDEBUG;%(PreprocessorDefinitions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(OutDir)$(TargetName).pdb=0A= + true=0A= + =0A= + =0A= + 0x0409=0A= + = NDEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + $(TargetPath)=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDLL=0A= + Default=0A= + true=0A= + true=0A= + MaxSpeed=0A= + true=0A= + Level3=0A= + = ..\win32;..\include;%(AdditionalIncludeDire= ctories)=0A= + = HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB= SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;NDEBUG;%(PreprocessorDefinitions)=0A= + $(IntDir)=0A= + = $(IntDir)$(ProjectName).pch=0A= + $(IntDir)=0A= + = $(OutDir)$(TargetName).pdb=0A= + true=0A= + false=0A= + =0A= + =0A= + 0x0409=0A= + = NDEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + $(OutDir)$(TargetName).bsc=0A= + =0A= + =0A= + true=0A= + $(TargetPath)=0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= +=0A= \ No newline at end of file=0A= diff --git a/win32/libssh2.vcxproj.filters = b/win32/libssh2.vcxproj.filters=0A= new file mode 100644=0A= index 0000000..a40951e=0A= --- /dev/null=0A= +++ b/win32/libssh2.vcxproj.filters=0A= @@ -0,0 +1,131 @@=0A= +=EF=BB=BF=0A= +=0A= + =0A= + =0A= + = {ed49fc94-18dd-4117-9bb1-9edaee5e50dc}=0A= + cpp;c;cxx=0A= + =0A= + =0A= + = {50b16c19-53fc-429b-af80-6dcc902ad055}=0A= + h;hpp;hxx=0A= + =0A= + =0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= + Header Files=0A= + =0A= + =0A= +=0A= \ No newline at end of file=0A= diff --git a/win32/tests.vcxproj b/win32/tests.vcxproj=0A= new file mode 100644=0A= index 0000000..9c58fbf=0A= --- /dev/null=0A= +++ b/win32/tests.vcxproj=0A= @@ -0,0 +1,149 @@=0A= +=EF=BB=BF=0A= +=0A= + =0A= + =0A= + Debug=0A= + Win32=0A= + =0A= + =0A= + Release=0A= + Win32=0A= + =0A= + =0A= + Template=0A= + Win32=0A= + =0A= + =0A= + =0A= + =0A= + =0A= + {237AF8DB-FAF9-484B-9F8B-21A912CD4E73}=0A= + =0A= + =0A= + =0A= + Application=0A= + v120=0A= + =0A= + =0A= + Application=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + Application=0A= + v120=0A= + false=0A= + MultiByte=0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= + .\Release\=0A= + .\Release\=0A= + false=0A= + =0A= + =0A= + .\Debug\=0A= + .\Debug\=0A= + true=0A= + =0A= + =0A= + =0A= + MultiThreadedDLL=0A= + Default=0A= + true=0A= + true=0A= + MaxSpeed=0A= + true=0A= + Level3=0A= + = ..\include;..\win32;%(AdditionalIncludeDire= ctories)=0A= + = WIN32;NDEBUG;LIBSSH2_WIN32;_CONSOLE;%(Preprocess= orDefinitions)=0A= + .\Release\=0A= + = .\Release\tests.pch=0A= + .\Release\=0A= + .\Release\=0A= + =0A= + =0A= + .\Release\tests.tlb=0A= + =0A= + =0A= + 0x0409=0A= + = NDEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + .\Release\tests.bsc=0A= + =0A= + =0A= + true=0A= + Console=0A= + simple.exe=0A= + = Release;%(AdditionalLibraryDirectories)=0A= + = odbc32.lib;odbccp32.lib;libeay32.lib;ssleay32.lib= ;ws2_32.lib;zlib.lib;libssh2.lib;%(AdditionalDependencies)=0A= + =0A= + =0A= + =0A= + =0A= + MultiThreadedDebugDLL=0A= + Default=0A= + false=0A= + Disabled=0A= + true=0A= + Level3=0A= + true=0A= + EditAndContinue=0A= + = ..\include;..\win32;%(AdditionalIncludeDire= ctories)=0A= + = WIN32;_DEBUG;LIBSSH2_WIN32;_CONSOLE;%(Preprocess= orDefinitions)=0A= + .\Debug\=0A= + = .\Debug\tests.pch=0A= + .\Debug\=0A= + .\Debug\=0A= + EnableFastChecks=0A= + =0A= + =0A= + .\Debug\tests.tlb=0A= + =0A= + =0A= + 0x0409=0A= + = _DEBUG;%(PreprocessorDefinitions)=0A= + =0A= + =0A= + true=0A= + .\Debug\tests.bsc=0A= + =0A= + =0A= + true=0A= + true=0A= + Console=0A= + = msvcrt.lib;%(IgnoreSpecificDefaultLibrari= es)=0A= + simple.exe=0A= + = Debug;%(AdditionalLibraryDirectories)=0A= + = odbc32.lib;odbccp32.lib;libeay32.lib;ssleay32.lib= ;ws2_32.lib;zlib.lib;libssh2d.lib;%(AdditionalDependencies)=0A= + =0A= + =0A= + =0A= + =0A= + true=0A= + true=0A= + true=0A= + =0A= + =0A= + =0A= + =0A= + =0A= + =0A= +=0A= \ No newline at end of file=0A= diff --git a/win32/tests.vcxproj.filters b/win32/tests.vcxproj.filters=0A= new file mode 100644=0A= index 0000000..a2c899c=0A= --- /dev/null=0A= +++ b/win32/tests.vcxproj.filters=0A= @@ -0,0 +1,25 @@=0A= +=EF=BB=BF=0A= +=0A= + =0A= + =0A= + = {5f88c3ec-6eaf-402c-b529-9c3be528ab9a}=0A= + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat=0A= + =0A= + =0A= + = {b7f5ec6a-9426-4cb0-b384-eacfd8078165}=0A= + h;hpp;hxx;hm;inl=0A= + =0A= + =0A= + = {c37cf913-6ab0-4960-9b2e-b7f4bd19102a}=0A= + = ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe=0A= + =0A= + =0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= + Source Files=0A= + =0A= + =0A= +=0A= \ No newline at end of file=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-formal-parameter-must-be-const-since-it-is-used-in-c.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-formal-parameter-must-be-const-since-it-is-used-in-c.patch" From f15b8916d87fed6dcc0a7243d061ebf0ea15dafa Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Thu, 20 Mar 2014 14:37:46 -0400=0A= Subject: [PATCH] formal parameter must be const since it is used in = contexts=0A= where the actual parameter may be const=0A= =0A= ---=0A= src/wincng.c | 4 ++--=0A= 1 file changed, 2 insertions(+), 2 deletions(-)=0A= =0A= diff --git a/src/wincng.c b/src/wincng.c=0A= index 8adda26..498e567 100644=0A= --- a/src/wincng.c=0A= +++ b/src/wincng.c=0A= @@ -317,9 +317,9 @@ _libssh2_wincng_hash_init(_libssh2_wincng_hash_ctx = *ctx,=0A= =0A= int=0A= _libssh2_wincng_hash_update(_libssh2_wincng_hash_ctx *ctx,=0A= - unsigned char *data, unsigned long datalen)=0A= + const unsigned char *data, unsigned long = datalen)=0A= {=0A= - return BCryptHashData(ctx->hHash, data, datalen, 0)=0A= + return BCryptHashData(ctx->hHash, (unsigned char *)data, datalen, 0)=0A= =3D=3D STATUS_SUCCESS ? 0 : -1;=0A= }=0A= =0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-for-MS-VS-builds-specify-the-libraries-that-are-requ.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-for-MS-VS-builds-specify-the-libraries-that-are-requ.patch" From 7635d80547c213088553b5fc6b364f9fdf82dacc Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Thu, 20 Mar 2014 13:06:12 -0400=0A= Subject: [PATCH 1/5] for MS VS builds, specify the libraries that are = required=0A= so they don't need to go into all project files that may use this = library=0A= =0A= ---=0A= src/wincng.c | 5 +++++=0A= 1 file changed, 5 insertions(+)=0A= =0A= diff --git a/src/wincng.c b/src/wincng.c=0A= index 398fe89..8adda26 100644=0A= --- a/src/wincng.c=0A= +++ b/src/wincng.c=0A= @@ -40,6 +40,11 @@=0A= =0A= #ifdef LIBSSH2_WINCNG /* compile only if we build with wincng */=0A= =0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= +#pragma comment(lib, "Bcrypt.lib")=0A= +#pragma comment(lib, "Crypt32.lib")=0A= +#endif=0A= +=0A= #include =0A= =0A= #ifdef HAVE_STDLIB_H=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-Remove-redundant-inline-define.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Remove-redundant-inline-define.patch" From 74380b4494e7cc13bee7aaf4f996e7ae60ca7782 Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Tue, 8 Apr 2014 17:06:21 -0400=0A= Subject: [PATCH] Remove redundant 'inline' define=0A= =0A= ---=0A= src/libssh2_priv.h | 5 -----=0A= 1 file changed, 5 deletions(-)=0A= =0A= diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h=0A= index 7d8b162..cf91fba 100644=0A= --- a/src/libssh2_priv.h=0A= +++ b/src/libssh2_priv.h=0A= @@ -136,11 +136,6 @@ static inline int writev(int sock, struct iovec = *iov, int nvecs)=0A= #include =0A= #include =0A= =0A= -#ifdef _MSC_VER=0A= -/* "inline" keyword is valid only with C++ engine! */=0A= -#define inline __inline=0A= -#endif=0A= -=0A= #endif=0A= =0A= /* RFC4253 section 6.1 Maximum Packet Length says:=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-Use-secure-versions-of-CRT-library.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Use-secure-versions-of-CRT-library.patch" From 874be9b757377f14568f7639021ec15145fe44c5 Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Tue, 8 Apr 2014 16:53:42 -0400=0A= Subject: [PATCH] Use secure versions of CRT library=0A= =0A= Replace deprecated, insecure versions of library routines, such as = sprintf,=0A= with secure versions. Remove _CRT_SECURE_NO_DEPRECATE.=0A= Windows only.=0A= ---=0A= src/agent.c | 2 +-=0A= src/channel.c | 4 ++++=0A= src/kex.c | 4 ++--=0A= src/knownhost.c | 32 +++++++++++++++++++++-----------=0A= src/misc.c | 10 +++++-----=0A= src/scp.c | 8 ++++----=0A= src/transport.c | 4 ++--=0A= src/userauth.c | 7 ++++++-=0A= src/wincng.c | 7 ++++++-=0A= win32/libssh2_config.h | 11 +++++++----=0A= 10 files changed, 58 insertions(+), 31 deletions(-)=0A= =0A= diff --git a/src/agent.c b/src/agent.c=0A= index 92927b7..c259d3c 100644=0A= --- a/src/agent.c=0A= +++ b/src/agent.c=0A= @@ -294,7 +294,7 @@ agent_transact_pageant(LIBSSH2_AGENT *agent, = agent_transaction_ctx_t transctx)=0A= return _libssh2_error(agent->session, = LIBSSH2_ERROR_AGENT_PROTOCOL,=0A= "found no pageant");=0A= =0A= - sprintf(mapname, "PageantRequest%08x", = (unsigned)GetCurrentThreadId());=0A= + SNPRINTF(mapname, sizeof(mapname), "PageantRequest%08x", = (unsigned)GetCurrentThreadId());=0A= filemap =3D CreateFileMapping(INVALID_HANDLE_VALUE, NULL, = PAGE_READWRITE,=0A= 0, PAGEANT_MAX_MSGLEN, mapname);=0A= =0A= diff --git a/src/channel.c b/src/channel.c=0A= index 58cee5f..b19b28d 100644=0A= --- a/src/channel.c=0A= +++ b/src/channel.c=0A= @@ -1138,7 +1138,11 @@ channel_x11_req(LIBSSH2_CHANNEL *channel, int = single_connection,=0A= =0A= _libssh2_random(buffer, LIBSSH2_X11_RANDOM_COOKIE_LEN / 2);=0A= for(i =3D 0; i < (LIBSSH2_X11_RANDOM_COOKIE_LEN / 2); i++) {=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + sprintf_s((char *)&s[i * 2], channel->reqX11_packet_len = - ((s - channel->reqX11_packet) + (i * 2)), "%02X", buffer[i]);=0A= +#else=0A= sprintf((char *)&s[i*2], "%02X", buffer[i]);=0A= +#endif=0A= }=0A= }=0A= s +=3D cookie_len;=0A= diff --git a/src/kex.c b/src/kex.c=0A= index 07e717f..ad03b3c 100644=0A= --- a/src/kex.c=0A= +++ b/src/kex.c=0A= @@ -233,7 +233,7 @@ static int diffie_hellman_sha1(LIBSSH2_SESSION = *session,=0A= char fingerprint[50], *fprint =3D fingerprint;=0A= int i;=0A= for(i =3D 0; i < 16; i++, fprint +=3D 3) {=0A= - snprintf(fprint, 4, "%02x:", = session->server_hostkey_md5[i]);=0A= + SNPRINTF(fprint, 4, "%02x:", = session->server_hostkey_md5[i]);=0A= }=0A= *(--fprint) =3D '\0';=0A= _libssh2_debug(session, LIBSSH2_TRACE_KEX,=0A= @@ -256,7 +256,7 @@ static int diffie_hellman_sha1(LIBSSH2_SESSION = *session,=0A= int i;=0A= =0A= for(i =3D 0; i < 20; i++, fprint +=3D 3) {=0A= - snprintf(fprint, 4, "%02x:", = session->server_hostkey_sha1[i]);=0A= + SNPRINTF(fprint, 4, "%02x:", = session->server_hostkey_sha1[i]);=0A= }=0A= *(--fprint) =3D '\0';=0A= _libssh2_debug(session, LIBSSH2_TRACE_KEX,=0A= diff --git a/src/knownhost.c b/src/knownhost.c=0A= index 9b3b79a..68fcf82 100644=0A= --- a/src/knownhost.c=0A= +++ b/src/knownhost.c=0A= @@ -371,7 +371,7 @@ knownhost_check(LIBSSH2_KNOWNHOSTS *hosts,=0A= /* if a port number is given, check for a '[host]:port' first = before the=0A= plain 'host' */=0A= if(port >=3D 0) {=0A= - int len =3D snprintf(hostbuff, sizeof(hostbuff), "[%s]:%d", = hostp, port);=0A= + int len =3D SNPRINTF(hostbuff, sizeof(hostbuff), "[%s]:%d", = hostp, port);=0A= if (len < 0 || len >=3D (int)sizeof(hostbuff)) {=0A= _libssh2_error(hosts->session,=0A= LIBSSH2_ERROR_BUFFER_TOO_SMALL,=0A= @@ -954,7 +954,12 @@ libssh2_knownhost_readfile(LIBSSH2_KNOWNHOSTS = *hosts,=0A= "Unsupported type of known-host = information "=0A= "store");=0A= =0A= - file =3D fopen(filename, "r");=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + if (fopen_s(&file, filename, "r") !=3D 0)=0A= + file =3D NULL;=0A= +#else=0A= + file =3D fopen(filename, "r");=0A= +#endif=0A= if(file) {=0A= while(fgets(buf, sizeof(buf), file)) {=0A= if(libssh2_knownhost_readline(hosts, buf, strlen(buf), = type)) {=0A= @@ -1085,16 +1090,16 @@ knownhost_writeline(LIBSSH2_KNOWNHOSTS *hosts,=0A= =0A= if(required_size <=3D buflen) {=0A= if(node->comment && key_type_len)=0A= - snprintf(buf, buflen, "|1|%s|%s %s %s %s\n", saltalloc,=0A= + SNPRINTF(buf, buflen, "|1|%s|%s %s %s %s\n", saltalloc,=0A= namealloc, key_type_name, node->key, = node->comment);=0A= else if (node->comment)=0A= - snprintf(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, = namealloc,=0A= + SNPRINTF(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, = namealloc,=0A= node->key, node->comment);=0A= else if (key_type_len)=0A= - snprintf(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, = namealloc,=0A= + SNPRINTF(buf, buflen, "|1|%s|%s %s %s\n", saltalloc, = namealloc,=0A= key_type_name, node->key);=0A= else=0A= - snprintf(buf, buflen, "|1|%s|%s %s\n", saltalloc, = namealloc,=0A= + SNPRINTF(buf, buflen, "|1|%s|%s %s\n", saltalloc, = namealloc,=0A= node->key);=0A= }=0A= =0A= @@ -1107,16 +1112,16 @@ knownhost_writeline(LIBSSH2_KNOWNHOSTS *hosts,=0A= =0A= if(required_size <=3D buflen) {=0A= if(node->comment && key_type_len)=0A= - snprintf(buf, buflen, "%s %s %s %s\n", node->name,=0A= + SNPRINTF(buf, buflen, "%s %s %s %s\n", node->name,=0A= key_type_name, node->key, node->comment);=0A= else if (node->comment)=0A= - snprintf(buf, buflen, "%s %s %s\n", node->name, = node->key,=0A= + SNPRINTF(buf, buflen, "%s %s %s\n", node->name, = node->key,=0A= node->comment);=0A= else if (key_type_len)=0A= - snprintf(buf, buflen, "%s %s %s\n", node->name, = key_type_name,=0A= + SNPRINTF(buf, buflen, "%s %s %s\n", node->name, = key_type_name,=0A= node->key);=0A= else=0A= - snprintf(buf, buflen, "%s %s\n", node->name, node->key);=0A= + SNPRINTF(buf, buflen, "%s %s\n", node->name, node->key);=0A= }=0A= }=0A= =0A= @@ -1178,7 +1183,12 @@ libssh2_knownhost_writefile(LIBSSH2_KNOWNHOSTS = *hosts,=0A= "Unsupported type of known-host = information "=0A= "store");=0A= =0A= - file =3D fopen(filename, "w");=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + if (fopen_s(&file, filename, "w") !=3D 0)=0A= + file =3D NULL;=0A= +#else=0A= + file =3D fopen(filename, "w");=0A= +#endif=0A= if(!file)=0A= return _libssh2_error(hosts->session, LIBSSH2_ERROR_FILE,=0A= "Failed to open file");=0A= diff --git a/src/misc.c b/src/misc.c=0A= index 65ba521..178f18e 100644=0A= --- a/src/misc.c=0A= +++ b/src/misc.c=0A= @@ -337,18 +337,18 @@ size_t _libssh2_base64_encode(LIBSSH2_SESSION = *session,=0A= =0A= switch(inputparts) {=0A= case 1: /* only one byte read */=0A= - snprintf(output, 5, "%c%c=3D=3D",=0A= + SNPRINTF(output, 5, "%c%c=3D=3D",=0A= table64[obuf[0]],=0A= table64[obuf[1]]);=0A= break;=0A= case 2: /* two bytes read */=0A= - snprintf(output, 5, "%c%c%c=3D",=0A= + SNPRINTF(output, 5, "%c%c%c=3D",=0A= table64[obuf[0]],=0A= table64[obuf[1]],=0A= table64[obuf[2]]);=0A= break;=0A= default:=0A= - snprintf(output, 5, "%c%c%c%c",=0A= + SNPRINTF(output, 5, "%c%c%c%c",=0A= table64[obuf[0]],=0A= table64[obuf[1]],=0A= table64[obuf[2]],=0A= @@ -442,7 +442,7 @@ _libssh2_debug(LIBSSH2_SESSION * session, int = context, const char *format, ...)=0A= }=0A= now.tv_sec -=3D firstsec;=0A= =0A= - len =3D snprintf(buffer, buflen, "[libssh2] %d.%06d %s: ",=0A= + len =3D SNPRINTF(buffer, buflen, "[libssh2] %d.%06d %s: ",=0A= (int)now.tv_sec, (int)now.tv_usec, contexttext);=0A= =0A= if (len >=3D buflen)=0A= @@ -451,7 +451,7 @@ _libssh2_debug(LIBSSH2_SESSION * session, int = context, const char *format, ...)=0A= buflen -=3D len;=0A= msglen =3D len;=0A= va_start(vargs, format);=0A= - len =3D vsnprintf(buffer + msglen, buflen, format, vargs);=0A= + len =3D VSNPRINTF(buffer + msglen, buflen, format, vargs);=0A= va_end(vargs);=0A= msglen +=3D len < buflen ? len : buflen - 1;=0A= }=0A= diff --git a/src/scp.c b/src/scp.c=0A= index 1ccd3be..975fa36 100644=0A= --- a/src/scp.c=0A= +++ b/src/scp.c=0A= @@ -294,7 +294,7 @@ scp_recv(LIBSSH2_SESSION * session, const char = *path, struct stat * sb)=0A= return NULL;=0A= }=0A= =0A= - snprintf((char *)session->scpRecv_command,=0A= + SNPRINTF((char *)session->scpRecv_command,=0A= session->scpRecv_command_len, "scp -%sf ", sb?"p":"");=0A= =0A= cmd_len =3D strlen((char *)session->scpRecv_command);=0A= @@ -796,7 +796,7 @@ scp_send(LIBSSH2_SESSION * session, const char = *path, int mode,=0A= return NULL;=0A= }=0A= =0A= - snprintf((char *)session->scpSend_command, = session->scpSend_command_len,=0A= + SNPRINTF((char *)session->scpSend_command, = session->scpSend_command_len,=0A= "scp -%st ", (mtime || atime)?"p":"");=0A= =0A= cmd_len =3D strlen((char *)session->scpSend_command);=0A= @@ -887,7 +887,7 @@ scp_send(LIBSSH2_SESSION * session, const char = *path, int mode,=0A= if (mtime || atime) {=0A= /* Send mtime and atime to be used for file */=0A= session->scpSend_response_len =3D=0A= - snprintf((char *) session->scpSend_response,=0A= + SNPRINTF((char *) session->scpSend_response,=0A= LIBSSH2_SCP_RESPONSE_BUFLEN, "T%ld 0 %ld 0\n",=0A= (long)mtime, (long)atime);=0A= _libssh2_debug(session, LIBSSH2_TRACE_SCP, "Sent %s",=0A= @@ -955,7 +955,7 @@ scp_send(LIBSSH2_SESSION * session, const char = *path, int mode,=0A= base =3D path;=0A= =0A= session->scpSend_response_len =3D=0A= - snprintf((char *) session->scpSend_response,=0A= + SNPRINTF((char *) session->scpSend_response,=0A= LIBSSH2_SCP_RESPONSE_BUFLEN, "C0%o %"=0A= LIBSSH2_INT64_T_FORMAT " %s\n", mode,=0A= size, base);=0A= diff --git a/src/transport.c b/src/transport.c=0A= index 33460dc..ec36262 100644=0A= --- a/src/transport.c=0A= +++ b/src/transport.c=0A= @@ -72,7 +72,7 @@ debugdump(LIBSSH2_SESSION * session,=0A= return;=0A= }=0A= =0A= - used =3D snprintf(buffer, sizeof(buffer), "=3D> %s (%d bytes)\n",=0A= + used =3D SNPRINTF(buffer, sizeof(buffer), "=3D> %s (%d bytes)\n",=0A= desc, (int) size);=0A= if (session->tracehandler)=0A= (session->tracehandler)(session, session->tracehandler_context,=0A= @@ -87,7 +87,7 @@ debugdump(LIBSSH2_SESSION * session,=0A= =0A= for(i =3D 0; i < size; i +=3D width) {=0A= =0A= - used =3D snprintf(buffer, sizeof(buffer), "%04lx: ", (long)i);=0A= + used =3D SNPRINTF(buffer, sizeof(buffer), "%04lx: ", (long)i);=0A= =0A= /* hex not disabled, show it */=0A= for(c =3D 0; c < width; c++) {=0A= diff --git a/src/userauth.c b/src/userauth.c=0A= index edfe729..ec913da 100644=0A= --- a/src/userauth.c=0A= +++ b/src/userauth.c=0A= @@ -467,7 +467,12 @@ file_read_publickey(LIBSSH2_SESSION * session, = unsigned char **method,=0A= _libssh2_debug(session, LIBSSH2_TRACE_AUTH, "Loading public key = file: %s",=0A= pubkeyfile);=0A= /* Read Public Key */=0A= - fd =3D fopen(pubkeyfile, "r");=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + if (fopen_s(&fd, pubkeyfile, "r") !=3D 0)=0A= + fd =3D NULL;=0A= +#else=0A= + fd =3D fopen(pubkeyfile, "r");=0A= +#endif=0A= if (!fd) {=0A= return _libssh2_error(session, LIBSSH2_ERROR_FILE,=0A= "Unable to open public key file");=0A= diff --git a/src/wincng.c b/src/wincng.c=0A= index 498e567..ffb0264 100644=0A= --- a/src/wincng.c=0A= +++ b/src/wincng.c=0A= @@ -468,7 +468,12 @@ _libssh2_wincng_load_pem(LIBSSH2_SESSION *session,=0A= =0A= (void)passphrase;=0A= =0A= - fp =3D fopen(filename, "r");=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + if (fopen_s(&fp, filename, "r") !=3D 0)=0A= + fp =3D NULL;=0A= +#else=0A= + fp =3D fopen(filename, "r");=0A= +#endif=0A= if (!fp) {=0A= return -1;=0A= }=0A= diff --git a/win32/libssh2_config.h b/win32/libssh2_config.h=0A= index 4e2ae29..41e0004 100644=0A= --- a/win32/libssh2_config.h=0A= +++ b/win32/libssh2_config.h=0A= @@ -4,9 +4,6 @@=0A= #ifndef WIN32=0A= #define WIN32=0A= #endif=0A= -#ifndef _CRT_SECURE_NO_DEPRECATE=0A= -#define _CRT_SECURE_NO_DEPRECATE 1=0A= -#endif /* _CRT_SECURE_NO_DEPRECATE */=0A= #include =0A= #include =0A= #include =0A= @@ -23,9 +20,11 @@=0A= #define HAVE_SELECT=0A= =0A= #ifdef _MSC_VER=0A= -#define snprintf _snprintf=0A= +#define SNPRINTF(pBuf, nLen, ...) _snprintf_s(pBuf, nLen, (nLen-1), = __VA_ARGS__)=0A= #if _MSC_VER < 1500=0A= #define vsnprintf _vsnprintf=0A= +#else=0A= +#define VSNPRINTF(pBuf, nLen, pFormat, pArgptr) vsnprintf_s(pBuf, nLen, = (nLen-1), pFormat, pArgptr)=0A= #endif=0A= #define strdup _strdup=0A= #define strncasecmp _strnicmp=0A= @@ -38,5 +37,9 @@=0A= /* Enable newer diffie-hellman-group-exchange-sha1 syntax */=0A= #define LIBSSH2_DH_GEX_NEW 1=0A= =0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= +#pragma warning(disable: 4244 4267)=0A= +#endif=0A= +=0A= #endif /* LIBSSH2_CONFIG_H */=0A= =0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-Wincng-define-function-prototypes-for-wincng-routine.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Wincng-define-function-prototypes-for-wincng-routine.patch" From 4e1ab6c37f23f165a52349bb332c26e681197053 Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Tue, 8 Apr 2014 17:10:15 -0400=0A= Subject: [PATCH] Wincng - define function prototypes for wincng routines=0A= =0A= ---=0A= src/wincng.h | 44 +++++++++++++++++++++++++++++++++++++-------=0A= 1 file changed, 37 insertions(+), 7 deletions(-)=0A= =0A= diff --git a/src/wincng.h b/src/wincng.h=0A= index a327b55..f6acba7 100644=0A= --- a/src/wincng.h=0A= +++ b/src/wincng.h=0A= @@ -113,14 +113,12 @@ void _libssh2_wincng_free(void);=0A= * Windows CNG backend: Hash structure=0A= */=0A= =0A= -struct _libssh2_wincng_hash_ctx {=0A= +typedef struct __libssh2_wincng_hash_ctx {=0A= BCRYPT_HASH_HANDLE hHash;=0A= unsigned char *pbHashObject;=0A= unsigned long dwHashObject;=0A= unsigned long cbHash;=0A= -};=0A= -=0A= -#define _libssh2_wincng_hash_ctx struct _libssh2_wincng_hash_ctx=0A= +} _libssh2_wincng_hash_ctx;=0A= =0A= /*=0A= * Windows CNG backend: Hash functions=0A= @@ -176,13 +174,12 @@ struct _libssh2_wincng_hash_ctx {=0A= * Windows CNG backend: Key Context structure=0A= */=0A= =0A= -struct _libssh2_wincng_key_ctx {=0A= +typedef struct __libssh2_wincng_key_ctx {=0A= BCRYPT_KEY_HANDLE hKey;=0A= unsigned char *pbKeyObject;=0A= unsigned long cbKeyObject;=0A= -};=0A= +} _libssh2_wincng_key_ctx;=0A= =0A= -#define _libssh2_wincng_key_ctx struct _libssh2_wincng_key_ctx=0A= =0A= /*=0A= * Windows CNG backend: RSA functions=0A= @@ -325,3 +322,36 @@ _libssh2_bn *_libssh2_wincng_bignum_init(void);=0A= _libssh2_wincng_bignum_bits(bn)=0A= #define _libssh2_bn_free(bn) \=0A= _libssh2_wincng_bignum_free(bn)=0A= +=0A= +/*******************************************************************/=0A= +/*=0A= +* Windows CNG backend: forward declarations=0A= +*/=0A= +extern int _libssh2_wincng_random(void *buf, int len);=0A= +extern void _libssh2_wincng_cipher_dtor(_libssh2_cipher_ctx *ctx);=0A= +extern int _libssh2_wincng_hash_init(_libssh2_wincng_hash_ctx *ctx,=0A= + BCRYPT_ALG_HANDLE hAlg, unsigned long hashlen,=0A= + unsigned char *key, unsigned long keylen);=0A= +extern int _libssh2_wincng_hash_update(_libssh2_wincng_hash_ctx *ctx,=0A= + const unsigned char *data, unsigned long datalen);=0A= +extern int _libssh2_wincng_hash_final(_libssh2_wincng_hash_ctx *ctx,=0A= + unsigned char *hash);=0A= +extern void _libssh2_wincng_rsa_free(libssh2_rsa_ctx *rsa);=0A= +extern void _libssh2_wincng_dsa_free(libssh2_dsa_ctx *dsa);=0A= +extern int _libssh2_wincng_bignum_rand(_libssh2_bn *rnd, int bits, int = top, int bottom);=0A= +extern int _libssh2_wincng_bignum_mod_exp(_libssh2_bn *r,=0A= + _libssh2_bn *a,=0A= + _libssh2_bn *p,=0A= + _libssh2_bn *m,=0A= + _libssh2_bn_ctx *bnctx);=0A= +extern unsigned long _libssh2_wincng_bignum_bits(const _libssh2_bn *bn);=0A= +extern void _libssh2_wincng_bignum_to_bin(const _libssh2_bn *bn, = unsigned char *bin);=0A= +extern void _libssh2_wincng_bignum_from_bin(_libssh2_bn *bn, unsigned = long len,=0A= + const unsigned char *bin);=0A= +extern void _libssh2_wincng_bignum_free(_libssh2_bn *bn);=0A= +extern int _libssh2_wincng_bignum_set_word(_libssh2_bn *bn, unsigned = long word);=0A= +extern int _libssh2_wincng_hmac_final(_libssh2_wincng_hash_ctx *ctx,=0A= + unsigned char *hash);=0A= +extern void _libssh2_wincng_hmac_cleanup(_libssh2_wincng_hash_ctx *ctx);=0A= +=0A= +=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-Windows-library-don-t-export-externals.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Windows-library-don-t-export-externals.patch" From d54dabf41015237228fab98c4060f442d58f91c9 Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Tue, 8 Apr 2014 15:26:57 -0400=0A= Subject: [PATCH] Windows library - don't export externals=0A= =0A= If the library goes into a creating a DLL, it currently will export all = libssh2 entries=0A= from the DLL. A library should not determine what gets exported from a = DLL.=0A= ---=0A= include/libssh2.h | 12 ++++++++----=0A= 1 file changed, 8 insertions(+), 4 deletions(-)=0A= =0A= diff --git a/include/libssh2.h b/include/libssh2.h=0A= index f0139ff..0491ee3 100644=0A= --- a/include/libssh2.h=0A= +++ b/include/libssh2.h=0A= @@ -100,11 +100,15 @@ extern "C" {=0A= /* Allow alternate API prefix from CFLAGS or calling app */=0A= #ifndef LIBSSH2_API=0A= # ifdef LIBSSH2_WIN32=0A= -# ifdef LIBSSH2_LIBRARY=0A= -# define LIBSSH2_API __declspec(dllexport)=0A= +# ifdef _WINDLL=0A= +# ifdef LIBSSH2_LIBRARY=0A= +# define LIBSSH2_API __declspec(dllexport)=0A= +# else=0A= +# define LIBSSH2_API __declspec(dllimport)=0A= +# endif /* LIBSSH2_LIBRARY */=0A= # else=0A= -# define LIBSSH2_API __declspec(dllimport)=0A= -# endif /* LIBSSH2_LIBRARY */=0A= +# define LIBSSH2_API=0A= +# endif=0A= # else /* !LIBSSH2_WIN32 */=0A= # define LIBSSH2_API=0A= # endif /* LIBSSH2_WIN32 */=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0001-Windows-Tracing-use-OutputDebugString.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Windows-Tracing-use-OutputDebugString.patch" From 457506aa1bfd293e71ebe1effc332db7c8d23ae1 Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Tue, 8 Apr 2014 15:13:52 -0400=0A= Subject: [PATCH] Windows Tracing - use OutputDebugString=0A= =0A= stdout or stderr are usually not available for services or windowed apps=0A= this will output tracing to the debugger Output window or you can use=0A= DebugView from sysinternals.com=0A= ---=0A= src/libssh2_priv.h | 4 ++++=0A= src/misc.c | 19 ++++++++++++++++++-=0A= src/transport.c | 14 ++++++++++++--=0A= 3 files changed, 34 insertions(+), 3 deletions(-)=0A= =0A= diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h=0A= index 8f11709..7d8b162 100644=0A= --- a/src/libssh2_priv.h=0A= +++ b/src/libssh2_priv.h=0A= @@ -915,6 +915,10 @@ struct _LIBSSH2_COMP_METHOD=0A= #ifdef LIBSSH2DEBUG=0A= void _libssh2_debug(LIBSSH2_SESSION * session, int context, const char = *format,=0A= ...);=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= +void _libssh2_WIN32_trace(const char *format, ...);=0A= +#endif=0A= +=0A= #else=0A= #if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >=3D 199901L)) || = defined(__GNUC__)=0A= /* C99 supported and also by older GCC */=0A= diff --git a/src/misc.c b/src/misc.c=0A= index a9f423a..65ba521 100644=0A= --- a/src/misc.c=0A= +++ b/src/misc.c=0A= @@ -387,6 +387,18 @@ libssh2_trace_sethandler(LIBSSH2_SESSION *session, = void* handler_context,=0A= return 0;=0A= }=0A= =0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= +void _libssh2_WIN32_trace(const char *format, ...)=0A= +{=0A= + char ErrorMsg[1024];=0A= + va_list marker;=0A= + va_start(marker, format); /* Initialize variable arguments. */=0A= + (void)vsprintf_s(ErrorMsg, _countof(ErrorMsg), format, marker);=0A= + OutputDebugString(ErrorMsg);=0A= + va_end(marker); /* Reset variable arguments. */=0A= +}=0A= +#endif=0A= +=0A= void=0A= _libssh2_debug(LIBSSH2_SESSION * session, int context, const char = *format, ...)=0A= {=0A= @@ -447,8 +459,13 @@ _libssh2_debug(LIBSSH2_SESSION * session, int = context, const char *format, ...)=0A= if (session->tracehandler)=0A= (session->tracehandler)(session, session->tracehandler_context, = buffer,=0A= msglen);=0A= - else=0A= + else {=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + _libssh2_WIN32_trace("%s\n", buffer);=0A= +#else=0A= fprintf(stderr, "%s\n", buffer);=0A= +#endif=0A= + }=0A= }=0A= =0A= #else=0A= diff --git a/src/transport.c b/src/transport.c=0A= index 3d61f8d..33460dc 100644=0A= --- a/src/transport.c=0A= +++ b/src/transport.c=0A= @@ -77,8 +77,13 @@ debugdump(LIBSSH2_SESSION * session,=0A= if (session->tracehandler)=0A= (session->tracehandler)(session, session->tracehandler_context,=0A= buffer, used);=0A= - else=0A= + else {=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + _libssh2_WIN32_trace("%s\n", buffer);=0A= +#else=0A= fprintf(stderr, "%s", buffer);=0A= +#endif=0A= + }=0A= =0A= for(i =3D 0; i < size; i +=3D width) {=0A= =0A= @@ -113,8 +118,13 @@ debugdump(LIBSSH2_SESSION * session,=0A= if (session->tracehandler)=0A= (session->tracehandler)(session, = session->tracehandler_context,=0A= buffer, used);=0A= - else=0A= + else {=0A= +#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)=0A= + _libssh2_WIN32_trace("%s\n", buffer);=0A= +#else=0A= fprintf(stderr, "%s", buffer);=0A= +#endif=0A= + }=0A= }=0A= }=0A= #else=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0003-in-Windows-a-socket-is-of-type-SOCKET-not-int.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0003-in-Windows-a-socket-is-of-type-SOCKET-not-int.patch" From 24da71bea424b528ad69c45ac6433b9ea45b26cf Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Thu, 20 Mar 2014 14:43:33 -0400=0A= Subject: [PATCH 3/5] in Windows, a socket is of type SOCKET, not int=0A= =0A= ---=0A= include/libssh2.h | 2 +-=0A= 1 file changed, 1 insertion(+), 1 deletion(-)=0A= =0A= diff --git a/include/libssh2.h b/include/libssh2.h=0A= index 3cb2be5..f0139ff 100644=0A= --- a/include/libssh2.h=0A= +++ b/include/libssh2.h=0A= @@ -281,7 +281,7 @@ typedef struct _LIBSSH2_POLLFD {=0A= unsigned char type; /* LIBSSH2_POLLFD_* below */=0A= =0A= union {=0A= - int socket; /* File descriptors -- examined with system = select() call */=0A= + libssh2_socket_t socket; /* File descriptors -- examined with = system select() call */=0A= LIBSSH2_CHANNEL *channel; /* Examined by checking internal = state */=0A= LIBSSH2_LISTENER *listener; /* Read polls only -- are inbound=0A= connections waiting to be = accepted? */=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0004-a-1-bit-bit-field-should-be-unsigned-some-compilers-.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0004-a-1-bit-bit-field-should-be-unsigned-some-compilers-.patch" From e027259c5112e215b1bf61e9188a33f6d409521f Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Thu, 20 Mar 2014 14:45:46 -0400=0A= Subject: [PATCH 4/5] a 1 bit bit-field should be unsigned - some = compilers may=0A= not like this=0A= =0A= ---=0A= src/libssh2_priv.h | 2 +-=0A= 1 file changed, 1 insertion(+), 1 deletion(-)=0A= =0A= diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h=0A= index 461d14c..8f11709 100644=0A= --- a/src/libssh2_priv.h=0A= +++ b/src/libssh2_priv.h=0A= @@ -576,7 +576,7 @@ struct _LIBSSH2_SESSION=0A= =0A= /* Agreed Key Exchange Method */=0A= const LIBSSH2_KEX_METHOD *kex;=0A= - int burn_optimistic_kexinit:1;=0A= + unsigned int burn_optimistic_kexinit:1;=0A= =0A= unsigned char *session_id;=0A= uint32_t session_id_len;=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: application/octet-stream; name="0005-openssl-should-not-compile-unless-it-is-specifically.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0005-openssl-should-not-compile-unless-it-is-specifically.patch" From 92f5a7564ab65159c78cdaf525379ee2f1c3728c Mon Sep 17 00:00:00 2001=0A= From: Bob Kast =0A= Date: Thu, 20 Mar 2014 14:47:00 -0400=0A= Subject: [PATCH 5/5] openssl should not compile unless it is specifically=0A= enabled with LIBSSH2_OPENSSL=0A= =0A= ---=0A= src/openssl.c | 4 ++++=0A= 1 file changed, 4 insertions(+)=0A= =0A= diff --git a/src/openssl.c b/src/openssl.c=0A= index b26842b..371bc9e 100644=0A= --- a/src/openssl.c=0A= +++ b/src/openssl.c=0A= @@ -38,6 +38,8 @@=0A= * OF SUCH DAMAGE.=0A= */=0A= =0A= +#ifdef LIBSSH2_OPENSSL /* compile only if we build with openssl */=0A= +=0A= #include "libssh2_priv.h"=0A= =0A= #include =0A= @@ -814,3 +816,5 @@ _libssh2_pub_priv_keyfile(LIBSSH2_SESSION *session,=0A= EVP_PKEY_free(pk);=0A= return st;=0A= }=0A= +=0A= +#endif /* LIBSSH2_OPENSSL */=0A= -- =0A= 1.9.0.msysgit.0=0A= =0A= ------=_NextPart_000_0029_01CF5351.1B0AE930 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel ------=_NextPart_000_0029_01CF5351.1B0AE930-- From libssh2-devel-bounces@cool.haxx.se Fri Apr 11 01:59:59 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3ANxCV7009292; Fri, 11 Apr 2014 01:59:36 +0200 Received: from mail.panic.com (posh.panic.com [38.103.165.4]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3ANxAlE009057 for ; Fri, 11 Apr 2014 01:59:10 +0200 Received: from [10.0.0.71] (unknown [38.103.165.36]) by mail.panic.com (Postfix) with ESMTPSA id 21FBE97B9EE0 for ; Thu, 10 Apr 2014 16:59:05 -0700 (PDT) From: James Moore Subject: libssh2 incompatible with OpenBSD 5.5 Message-Id: <6CCDC3B7-4B64-4EA9-B28D-8730DBC8ECA5@panic.com> Date: Thu, 10 Apr 2014 16:56:32 -0700 To: libssh2-devel@cool.haxx.se Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\)) X-Mailer: Apple Mail (2.1874) X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id s3ANxAlE009057 X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="windows-1252" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id s3ANxCV7009292 Hi all, we recently received a report that our iOS app Prompt isn’t working with OpenBSD 5.5. Sure enough, the MAC list that’s sent by libssh2 is incompatible with their new defaults. I logged a bug on this in Trac but it appears it has not been moderated yet. For reference here’s the list of MACs libssh2 hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-ripemd160@openssh.com OpenBSD 5.5 umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512 If we decide to add these ourselves will it just be a matter of creating the necessary openssl wrappers? -- James _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Fri Apr 11 21:30:10 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJTfJ3010007; Fri, 11 Apr 2014 21:30:05 +0200 Received: from earth.stuge.se (earth.stuge.se [212.116.89.126]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJTdlU010001 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 11 Apr 2014 21:29:39 +0200 Received: (qmail 30382 invoked from network); 11 Apr 2014 19:19:13 -0000 Received: from unknown (HELO earth.stuge.se) (127.0.0.1) by localhost with SMTP; 11 Apr 2014 19:19:13 -0000 MIME-Version: 1.0 From: "libssh2 Trac" X-Trac-Version: 1.0dev Precedence: bulk Cc: libssh2-devel@cool.haxx.se Auto-Submitted: auto-generated X-Mailer: Trac 1.0dev, by Edgewall Software X-Trac-Project: libssh2 Date: Fri, 11 Apr 2014 19:19:13 -0000 X-URL: https://trac.libssh2.org/ Subject: [libssh2] #286: LibSSH2-HEAD can't be used with OpenBSD 5.5 X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/286 Message-ID: <047.ca246143a7db3e54d5f588d7b9825ba8@libssh2.stuge.se> X-Trac-Ticket-ID: 286 X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id s3BJTdlU010001 X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Reply-To: trac@libssh2.stuge.se, libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" #286: LibSSH2-HEAD can't be used with OpenBSD 5.5 -------------------------+-------------------- Reporter: jamesmoore | Owner: Type: enhancement | Status: new Priority: normal | Milestone: 1.4.3 Component: crypto | Version: 1.4.2 Keywords: | Blocked By: Blocks: | -------------------------+-------------------- OpenBSD 5.5 is changing the default MACs available to sshd. Libssh2 supplies the following hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac- ripemd160@openssh.com while OpenBSD 5.5 expects umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac- sha2-256-etm@openssh.com,hmac- sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac- sha2-256,hmac-sha2-512 It appears libssh2's MAC support needs to be updated. -- Ticket URL: libssh2 C library for writing portable SSH2 clients _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Fri Apr 11 21:31:40 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJVdri011626; Fri, 11 Apr 2014 21:31:40 +0200 Received: from earth.stuge.se (earth.stuge.se [212.116.89.126]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3BJVb4X011615 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 11 Apr 2014 21:31:37 +0200 Received: (qmail 30649 invoked from network); 11 Apr 2014 19:21:13 -0000 Received: from unknown (HELO earth.stuge.se) (127.0.0.1) by localhost with SMTP; 11 Apr 2014 19:21:13 -0000 MIME-Version: 1.0 From: "libssh2 Trac" X-Trac-Version: 1.0dev Precedence: bulk Cc: libssh2-devel@cool.haxx.se Auto-Submitted: auto-generated X-Mailer: Trac 1.0dev, by Edgewall Software X-Trac-Project: libssh2 Date: Fri, 11 Apr 2014 19:21:13 -0000 X-URL: https://trac.libssh2.org/ Subject: [libssh2] #287: LIBSSH2_FX_PERMISSION_DENIED on reading file from other user X-Trac-Ticket-URL: https://trac.libssh2.org/ticket/287 Message-ID: <045.6bdb5c97f79b38a31532dbaed5647b89@libssh2.stuge.se> X-Trac-Ticket-ID: 287 X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id s3BJVb4X011615 X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Reply-To: trac@libssh2.stuge.se, libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" #287: LIBSSH2_FX_PERMISSION_DENIED on reading file from other user ---------------------------------------+-------------------- Reporter: pschultz | Owner: Type: defect | Status: new Priority: normal | Milestone: 1.4.3 Component: SFTP | Version: 1.4.2 Keywords: sftp open file permission | Blocked By: Blocks: | ---------------------------------------+-------------------- Hi, I used the libssh2 examples "sftp.c" and "sftpdir.c", lightly modified to get more information on the errors. I have to get files from several subdirectories on a SFTP Server. Some of these subdirectories ar written by other users, one is written by the user which I use as login with user and password. All users are in the same group. Getting files which are created by "my" user works fine. But when I try to get the other files then libssh2_sftp_open fails, libssh2_session_last_error returns -31 (= LIBSSH2_ERROR_SFTP_PROTOCOL) and libssh2_sftp_last_error returns 3 (= LIBSSH2_FX_PERMISSION_DENIED). I have no problems reading the directories (libssh2_sftp_opendir / libssh2_sftp_readdir_ex). Examples: My directory on the server: -rw-rw-r-- 1 My_User Group1 7923 Apr 9 13:49 file1 (ok) Another directory: -rw-r--r-- 1 Other_User Group1 1229 Apr 9 00:59 file2 (fails) The system I work on is SUSE Linux Enterprise Server 11 (i586). The version of libssh2 is 1.4.3. /usr/bin/sftp has no problems, I can get all files; same on windows with WinSCP. The problem must be on my side. What could I make better? Are there more steps to do than coded in the examples? Thanks Peter -- Ticket URL: libssh2 C library for writing portable SSH2 clients _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel From libssh2-devel-bounces@cool.haxx.se Sun Apr 13 22:38:07 2014 Return-Path: Received: from www.haxx.se (list@localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3DKahpd012768; Sun, 13 Apr 2014 22:37:08 +0200 Received: from mail-vc0-x22c.google.com (mail-vc0-x22c.google.com [IPv6:2607:f8b0:400c:c03::22c]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3DKaejF012678 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Sun, 13 Apr 2014 22:36:41 +0200 Received: by mail-vc0-f172.google.com with SMTP id la4so6807651vcb.31 for ; Sun, 13 Apr 2014 13:36:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=OTtXeh4erCpsClBrdbmcJ/IpK7AZorOls62AXOQbW3g=; b=QSSn/qXtho6QnUzMmubCiuiK8FNaCIkc2Uu4qt06+PQZxF5tD43abljodJ7d7oeQDF VK3osNntRYZmyJekDwyaFUymnzFqDA457zkj/4o3DOlhA+pz/OwLc5JhO7hFcT23Swl9 7N/ct9acpbn/Bf8MqVV2fduZpy4DyFBYGmwydpW6xJIjx6TjtCVOVl8kc2Vdft9vCx8o yZBsSm81Pphds+RMNtL2LkVPBiUTbjuCL4o06ZRADEIOG6eunJXI1YZbXLpoZe5l1enf eAaDW2Jerc33kFxQVaisQftZiCSgHIeFEBa2kmd1mzgdr+/8ouXmHDIzWQSFkNB1+PGW vqPQ== MIME-Version: 1.0 X-Received: by 10.52.142.10 with SMTP id rs10mr27442951vdb.3.1397421396438; Sun, 13 Apr 2014 13:36:36 -0700 (PDT) Received: by 10.221.63.199 with HTTP; Sun, 13 Apr 2014 13:36:36 -0700 (PDT) Date: Sun, 13 Apr 2014 22:36:36 +0200 Message-ID: Subject: Channel timeout From: =?ISO-8859-2?B?Smn47SCpZXbo7Ws=?= To: libssh2-devel@cool.haxx.se Content-Type: multipart/mixed; boundary=bcaec51a7190efd10704f6f2859c X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" --bcaec51a7190efd10704f6f2859c Content-Type: multipart/alternative; boundary=bcaec51a7190efd10204f6f2859a --bcaec51a7190efd10204f6f2859a Content-Type: text/plain; charset=ISO-8859-1 Hi, We are dealing with problem during parallel creation of several channels and creation of direct tcp ip channel for a server that is unavailable. The whole program runs in a main loop using epoll. For testing we use dropped packets of forward server (ssh server refuses connection after three minutes). In case of induced event on server, all channels are tried out in framework of operation by a method in accordance for a given state of the channel. Our problems follow as such. 1. Parallel creation of channels within a framework of a single non-blocking session. Is there any effective way how to achieve that? 2. The activity on an active channel cancels the creation of re-routed channel. 3. According to a trace listing it was found out, that after minute of attempting to create a re-routed channel within a libssh2 framework an internal timeout is initiated, the creation is cancelled and a new channel is created internally. This does not propagate itself into the application. In attachment you can find a testing code and trace listing where: -lines in the listing in a form '09.04.2014 10:35:13.912' are listings of the program itself. - A debug trace listing [libssh2] 60.908507 Conn: Packet requirev retval' is added for observing of return value --bcaec51a7190efd10204f6f2859a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi, We are dealing with problem during parallel creation of several channels an= d creation of direct tcp ip channel for a server that is unavailable. The w= hole program runs in a main loop using epoll. For testing we use dropped pa= ckets of forward server (ssh server refuses connection after three minutes)= . In case of induced event on server, all channels are tried out in framewo= rk of operation by a method in accordance for a given state of the channel.= Our problems follow as such.=20 1. Parallel creation of channels within a framework of a single non-blockin= g session. Is there any effective way how to achieve that? 2. The activity on an active channel cancels the creation of re-routed chan= nel. 3. According to a trace listing it was found out, that after minute of atte= mpting to create a re-routed channel within a libssh2 framework an internal= timeout is initiated, the creation is cancelled and a new channel is creat= ed internally. This does not propagate itself into the application. In attachment you can find a testing code and trace listing where:=20 -lines in the listing in a form '09.04.2014 10:35:13.912' are listi= ngs of the program itself. - A debug trace listing [libssh2] 60.908507 Conn: Packet requirev retval= 9; is added for observing of return value
--bcaec51a7190efd10204f6f2859a-- --bcaec51a7190efd10704f6f2859c Content-Type: text/x-csrc; charset=US-ASCII; name="connect.c" Content-Disposition: attachment; filename="connect.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_htyskvmx0 CiNpbmNsdWRlICJsaWJzc2gyLmgiCiNpbmNsdWRlICJsYmFzeW5jL2xiYXN5bmMuaCIKI2luY2x1 ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KI2luY2x1ZGUgPHVuaXN0 ZC5oPgojaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CiNpbmNsdWRlIDxpbnR0eXBlcy5oPgojaW5jbHVk ZSAibGlic3NoMl9jb25maWcuaCIKI2luY2x1ZGUgImxiYXN5bmMvbGJhc3luY19saXN0LmgiCgoj ZGVmaW5lIERJUkVDVF9DSEFOTkVMIDAKI2RlZmluZSBFWEVfQ09NTUFORCAxCgoKI2RlZmluZSBJ TklUX0NIQU4gMQojZGVmaW5lIEVYRV9DT00gMgojZGVmaW5lIFJFQURfQ0hBTiAzCgppbnQgdHJ5 ID0gMDsKCnR5cGVkZWYgc3RydWN0IENoYW5uZWxfaW5mb3sKCWxvbmcgbG9uZyBjaGFubmVsX2lk OwkJCQkJCS8qKjwgSUQgb2YgY3VycmVudCBjaGFubmVsICovCglMSUJTU0gyX0NIQU5ORUwgKmNo YW5uZWw7CQkJCQkvKio8IENoYW5uZWwgZm9yIGNvbW11bmljYXRpb24gKi8KCWludCB0eXBlOwkJ CQkJCQkJCS8qKjwgRW51bSAtIGNoYW5uZWwgdHlwZSAqLwoJaW50IHN0YXR1czsKCWNoYXIgKmNv bW1hbmQ7CQkJCQkJCQkvKio8IGNvbW1hbmQgZm9yIGV4ZWN1dGlvbiAqLwoJdm9pZCAqZGF0YTsJ CQkJCQkJCQkvKio8IEN1c3RvbSBjaGFubmVsIGRhdGEgKi8KCWxvbmcgbG9uZyB3b3JrZXJfaWQ7 CglpbnQgY291bnQ7CglzdHJ1Y3QgQ2hhbm5lbF9pbmZvICpuZXh0OwkJCQkJLyoqPCBQb2ludGVy IHRvIG5leHQgY2hhbm5lbCBpbiBsaW5rZWQgbGlzdCAqLwp9Q2hhbm5lbF9pbmZvOwoKCnR5cGVk ZWYgc3RydWN0IENvbm57CgljaGFyICppcDsKCWludCBwb3J0OwoJaW50IHNvY2s7CglFdmVudCAq ZXZlbnQ7CglpbnQgc3RhdHVzOwoJQ2hhbm5lbF9pbmZvICpjaGFubmVsX2luZm87CglMSUJTU0gy X1NFU1NJT04gKnNlc3Npb247Cn1Db25uOwoKQ2hhbm5lbF9pbmZvICpzcnZfYWRkX2NoYW5uZWwo Q29ubiAqdXNlciwgTElCU1NIMl9DSEFOTkVMICpjaGFuLCBpbnQgdHlwZSwgY2hhciAqaW5mbywg dm9pZCAqZGF0YSk7CgppbnQgbGlzdGVuX3NvY2tldDsKY2hhciAqbG9jYWxfaXAgPSAiMTI3LjAu MC4xIjsKaW50IGxvY2FsX3BvcnQgPSA4MDAwOwpzb2NrbGVuX3QgU0lOTEVOOwoKQ29ubiAqY29u X2Zyb207CkNvbm4gKmNvbl90bzsKCnZvaWQgZXZlbnRfY2FsbGJhY2sodm9pZCAqYXJncywgaW50 IGZsYWdzKTsKdm9pZCBjb25uZWN0cygpOwppbnQgc3J2X2luaXRfc29jayhDb25uICpjb25uKTsK dm9pZCBoYW5kaHNoYWtlKENvbm4gKmNvbm4pOwp2b2lkIGF1dG9yaXplKENvbm4gKmNvbm4pOwpp bnQgc3J2X2xpc3Rlbl9zb2NrZXQoKTsKdm9pZCBzZW5kX2tlZXAoQ29ubiAqY29ubik7CgoKaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSl7CglsYmFzeW5jKCpjb25uZWN0cywgTlVMTCwg YXJnYywgYXJndik7CglyZXR1cm4gMDsKfQoKdm9pZCByZW1pbml0KCl7Cglsb2dfaW5mbygiU3Rh cnQgdGltZXIiKTsKCXJlbW90ZShjb25fZnJvbSwgY29uX3RvLCBOVUxMKTsKfQoKdm9pZCBjb25u ZWN0cygpewoJLy90aW1lcl9kZWxheV9zKHJlbWluaXQsIE5VTEwsIDkwLCAwKTsKCXNydl9saXN0 ZW5fc29ja2V0KCk7CgoJY29uX3RvID0gKENvbm4qKW1hbGxvYyhzaXplb2YoQ29ubikpOwoJY29u X3RvLT5pcCA9ICIxMC43Ni45LjE3MyI7Cgljb25fdG8tPnBvcnQgPSAyMjsKCWNvbl90by0+c29j ayA9IC0xOwoKCgljb25fZnJvbSA9IChDb25uKiltYWxsb2Moc2l6ZW9mKENvbm4pKTsKCWNvbl9m cm9tLT5pcCA9ICIxMC43Ni45LjEwOSI7Cgljb25fZnJvbS0+cG9ydCA9IDIyOwoJY29uX2Zyb20t PnNvY2sgPSAtMTsKCWNvbl9mcm9tLT5jaGFubmVsX2luZm8gPSBOVUxMOwoJLy9zcnZfbGlzdGVu X3NvY2tldCgpOwoJc3J2X2luaXRfc29jayhjb25fZnJvbSk7Cn0KCmludCBzcnZfaW5pdF9zb2Nr KENvbm4gKmNvbm4pewoJc3RydWN0IHNvY2thZGRyX2luIHNpbjQ7Cgljb25uLT5zb2NrID0gc29j a2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKCglzaW40LnNpbl9mYW1pbHkgPSBBRl9JTkVU OwoJc2luNC5zaW5fcG9ydCA9IGh0b25zKDIyKTsKCXNpbjQuc2luX2FkZHIuc19hZGRyID0gaW5l dF9hZGRyKGNvbm4tPmlwKTsKCWlmIChjb25uZWN0KGNvbm4tPnNvY2ssIChzdHJ1Y3Qgc29ja2Fk ZHIqKSgmc2luNCksCgkJCXNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKSAhPSAwKSB7CgkJCWxv Z19pbmZvKHN0ZGVyciwgImZhaWxlZCB0byBjb25uZWN0ISIpOwoJICAgICAgICByZXR1cm4gLTE7 Cgl9CgoJRXZlbnQgKmV2ZW50ID0gZXZlbnRfc3Vic2NyaWJlKGV2ZW50X2NhbGxiYWNrLCBjb25u LCBjb25uLT5zb2NrKTsKCWNvbm4tPmV2ZW50ID0gZXZlbnQ7CgoJcmV0dXJuIDA7Cn0KCnZvaWQg ZXZlbnRfY2FsbGJhY2sodm9pZCAqYXJncywgaW50IGZsYWdzKXsKCUNvbm4gKmNvbm4gPSAoQ29u biopYXJnczsKCWxvZ19pbmZvKCJFVkVOVCIpOwoJaWYoZXZlbnRfaXNlcnJvcihmbGFncykgfHwg KGV2ZW50X2lzY2xvc2UoZmxhZ3MpKSl7CgkJbG9nX2luZm8oIkVSUk9SL0NMT1NFIik7CgkJZXhp dCgwKTsKCX0KCglpZiAoZXZlbnRfaXN3cml0ZShmbGFncykpewoJCWV2ZW50X3NldF93cml0ZShj b25uLT5ldmVudCwgMCk7CgkJY29ubi0+c2Vzc2lvbiA9IGxpYnNzaDJfc2Vzc2lvbl9pbml0KCk7 CgkJbGlic3NoMl9zZXNzaW9uX3NldF9ibG9ja2luZyhjb25uLT5zZXNzaW9uLCAwKTsKCQlsaWJz c2gyX3RyYWNlKGNvbm4tPnNlc3Npb24sIH4wKTsKCQljb25uLT5zdGF0dXMgPSAxOwoJCWhhbmRo c2hha2UoY29ubik7Cgl9CgoJaWYoZXZlbnRfaXNyZWFkKGZsYWdzKSl7CgkJaWYoY29ubi0+c3Rh dHVzID09IDEpewoJCQloYW5kaHNoYWtlKGNvbm4pOwoKCQl9CgkJZWxzZSBpZihjb25uLT5zdGF0 dXMgPT0gMil7CgkJCWF1dG9yaXplKGNvbm4pOwoJCX0KCQllbHNlewoJCQloYW5kbGUoY29ubik7 CgkJfQoKCX0KfQoKdm9pZCBoYW5kbGUoQ29ubiAqdXNlcil7CglDaGFubmVsX2luZm8gKmN1cnIs ICp0bXA7CglpbnQgcmMsIGVycl9yYzsKCWNoYXIgYnVmZmVyWzIwNDhdLCBlcnJfYnVmZmVyWzIw NDhdOwoKCUxCQVNZTkNfTElTVDFfRk9SRUFDSCh1c2VyLT5jaGFubmVsX2luZm8sIGN1cnIpewoJ CWxvZ19pbmZvKCJUWVBFOiAlaSIsIGN1cnItPnR5cGUpOwoKCQlzd2l0Y2goY3Vyci0+dHlwZSl7 CgkJCWNhc2UgRElSRUNUX0NIQU5ORUw6CgkJCQkgcmVtb3RlKHVzZXIsIGNvbl90bywgY3Vycik7 CgkJCQkgY29udGludWU7CgoJCQljYXNlIEVYRV9DT01NQU5EOgoKCQkJCXN3aXRjaChjdXJyLT5z dGF0dXMpewoJCQkJY2FzZSBJTklUX0NIQU46CgkJCQkJc3J2X2V4ZV9jb21tYW5kX2luaXQodXNl ciwgY3Vyci0+Y29tbWFuZCwgY3Vyci0+ZGF0YSwgY3Vycik7CgkJCQkJY29udGludWU7CgoJCQkJ Y2FzZSBFWEVfQ09NOgoJCQkJCXNydl9leGVfY29tbWFuZCh1c2VyLCBjdXJyKTsKCQkJCQljb250 aW51ZTsKCgoJCQkJY2FzZSBSRUFEX0NIQU46CgkJCQkJbWVtc2V0KGJ1ZmZlciwgMCwgMjA0OCk7 CgkJCQkJcmMgPSBsaWJzc2gyX2NoYW5uZWxfcmVhZChjdXJyLT5jaGFubmVsLCBidWZmZXIsIHNp emVvZihidWZmZXIpKTsKCQkJCQllcnJfcmMgPSBsaWJzc2gyX2NoYW5uZWxfcmVhZF9zdGRlcnIo Y3Vyci0+Y2hhbm5lbCwgZXJyX2J1ZmZlciwgc2l6ZW9mKGVycl9idWZmZXIpKTsKCQkJCQlsb2df aW5mbygiUkVBRCAtICVpIDogJXNcbiIsIHJjLCBidWZmZXIpOwoJCQkJCQljb250aW51ZTsKCQkJ CWRlZmF1bHQ6CgkJCQkJbG9nX2luZm8oIkRFRiIpOwoJCQkJCWNvbnRpbnVlOwoJCQkJfQoJCQkJ Y29udGludWU7CgkJfQoJfQp9CgoKdm9pZCBoYW5kaHNoYWtlKENvbm4gKmNvbm4pewoJaW50IHJj OwoJcmMgPSBsaWJzc2gyX3Nlc3Npb25faGFuZHNoYWtlKGNvbm4tPnNlc3Npb24sIGNvbm4tPnNv Y2spOwoKCWlmKHJjKXsKCQljaGFyICplcnJfbXNnOwoJCWludCBlcnJsZW47CgkJaW50IGVyciA9 IGxpYnNzaDJfc2Vzc2lvbl9sYXN0X2Vycm9yKGNvbm4tPnNlc3Npb24sJmVycl9tc2csICZlcnJs ZW4sIDApOwoJCS8vbG9nX2luZm8oIkVSUiAlaSAtICVzIiwgZXJyLCBlcnJfbXNnKTsKCX0KCWVs c2V7CgkJY29ubi0+c3RhdHVzID0gMjsKCQlhdXRvcml6ZShjb25uKTsKCX0KfQoKdm9pZCBhdXRv cml6ZShDb25uICpjb25uKXsKCWludCByYzsKCWNoYXIgKnVzZXI9ICAicm9vdCI7CgljaGFyICpw YXNzID0gInh4eCI7CglyYyA9IGxpYnNzaDJfdXNlcmF1dGhfcGFzc3dvcmQoY29ubi0+c2Vzc2lv biwgdXNlciwgcGFzcyk7CgoJaWYocmMgIT0gMCl7CgkJY2hhciAqZXJyX21zZzsKCQlpbnQgZXJy bGVuOwoJCWludCBlcnIgPSBsaWJzc2gyX3Nlc3Npb25fbGFzdF9lcnJvcihjb25uLT5zZXNzaW9u LCZlcnJfbXNnLCAmZXJybGVuLCAwKTsKCQlsb2dfaW5mbygiRVJSOiAlaSAtICVzIiwgZXJyLCBl cnJfbXNnKTsKCX0KCWVsc2V7CgkJbG9nX2luZm8oIkFVVEgiKTsKCQljb25uLT5zdGF0dXMgPSAz OwoJCS8vcmVtb3RlKGNvbm4sIGNvbl90bywgTlVMTCk7CgkJc3J2X2V4ZV9jb21tYW5kX2luaXQo Y29ubiwgInNoIC9yb290L3RzdC5zaCIsIE5VTEwsIE5VTEwpOwoKCX0KfQoKdm9pZCByZW1vdGUo Q29ubiAqZnJvbSwgQ29ubiAqdG8sIENoYW5uZWxfaW5mbyAqY2hhbm5lbF9pbmZvKXsKCWxvZ19p bmZvKCJDcmVhdGUiKTsKCWlmKHRvLT5zb2NrID09IC0xKXsKCQlpbnQgZm9ydyA9IC0xOwoJCXN0 cnVjdCBzb2NrYWRkcl9pbiBzaW47CgkJc2luLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwoJCXNpbi5z aW5fcG9ydCA9IGh0b25zKDIyKTsKCgkJdG8tPnNlc3Npb24gPSBsaWJzc2gyX3Nlc3Npb25faW5p dCgpOwoJCWxpYnNzaDJfc2Vzc2lvbl9zZXRfYmxvY2tpbmcodG8tPnNlc3Npb24sIDApOwoKCgkJ dG8tPnNvY2sgPSBzcnZfbG9jYWxfc29ja2V0KCk7CgkJZm9ydyA9IGFjY2VwdChsaXN0ZW5fc29j a2V0LCAoc3RydWN0IHNvY2thZGRyICopJnNpbiwgJlNJTkxFTik7CgoJCUV2ZW50ICpldmVudCA9 IGV2ZW50X3N1YnNjcmliZShldmVudF9jYWxsYmFjaywgZnJvbSwgZm9ydyk7CgkJZXZlbnRfc2V0 X3dyaXRlKGV2ZW50LCAwKTsKCgkJY2hhbm5lbF9pbmZvID0gc3J2X2FkZF9jaGFubmVsKGZyb20s IE5VTEwsIERJUkVDVF9DSEFOTkVMLCBmcm9tLT5pcCwgdG8pOwoKCX0KCglsb2dfaW5mbygiQ3Jl YXRlIGNoYW5uZWwgYmVnaW4iKTsKCWNoYW5uZWxfaW5mby0+Y2hhbm5lbCA9IGxpYnNzaDJfY2hh bm5lbF9kaXJlY3RfdGNwaXAoZnJvbS0+c2Vzc2lvbiwgdG8tPmlwLCB0by0+cG9ydCk7Cglsb2df aW5mbygiQ3JlYXRlIGNoYW5uZWwgZW5kICIpOwoKCWlmICghY2hhbm5lbF9pbmZvLT5jaGFubmVs KSB7CgkJICAgIGNoYXIgKmVycl9tc2c7CgkJICAgIGludCBlcnJsZW47CgoJCSAgICBpbnQgZXJy ID0gbGlic3NoMl9zZXNzaW9uX2xhc3RfZXJyb3IoZnJvbS0+c2Vzc2lvbiwgJmVycl9tc2csICZl cnJsZW4sMCk7CgoJCQlsb2dfaW5mbygiQ291bGQgbm90IG9wZW4gdGhlIGRpcmVjdCB0Y3BpcCBj aGFubmVsIHRvICVpIC0gJXMiLCBlcnIsIGVycl9tc2cpOwoKCQkJaWYoZXJyID09IExJQlNTSDJf RVJST1JfQ0hBTk5FTF9GQUlMVVJFKXsKCQkJCWxvZ19pbmZvKCIuLi4uLi4uLlRJTUVPVVQuLi4u Li4uLi4uLiIpOwoJCQkJTEJBU1lOQ19MSVNUMV9SRU1PVkUoZnJvbS0+Y2hhbm5lbF9pbmZvLCBj aGFubmVsX2luZm8pOwoJCQl9CgoJCQlyZXR1cm47Cgl9CgllbHNlewoJCWxvZ19pbmZvKCJDaGFu bmVsIGluaXRlZCIpOwoJfQp9CgoKaW50IHNydl9leGVfY29tbWFuZF9pbml0KENvbm4gKnVzZXIs IGNoYXIgKmNvbW1hbmQsIHZvaWQgKmRhdGEsIENoYW5uZWxfaW5mbyAqY2hhbm5lbF9pbmZvKXsK CUxJQlNTSDJfQ0hBTk5FTCAqY2hhbm5lbDsKCgljaGFubmVsID0gbGlic3NoMl9jaGFubmVsX29w ZW5fc2Vzc2lvbih1c2VyLT5zZXNzaW9uKTsKCglpZihjaGFubmVsX2luZm8gIT0gTlVMTCkKCQlm cmVlKGNoYW5uZWxfaW5mby0+Y2hhbm5lbCk7CgoJaWYoY2hhbm5lbF9pbmZvID09IE5VTEwpewoK CQljaGFubmVsX2luZm8gPSBzcnZfYWRkX2NoYW5uZWwodXNlciwgY2hhbm5lbCwgRVhFX0NPTU1B TkQsIGNvbW1hbmQsIGRhdGEpOwoJfQoKCWNoYW5uZWxfaW5mby0+Y2hhbm5lbCA9IGNoYW5uZWw7 CgogICAgY2hhciAqZXJyX21zZzsKICAgIGludCBlcnJsZW47CgogICAgaWYoY2hhbm5lbCA9PSBO VUxMKXsKICAgIAlpbnQgZXJyID0gbGlic3NoMl9zZXNzaW9uX2xhc3RfZXJyb3IodXNlci0+c2Vz c2lvbiwgJmVycl9tc2csICZlcnJsZW4sMCk7CiAgICAJbG9nX2Vycm9yKCJFeGUgQ2hhbm5lbCBl cnJvcjogJWQgLSAlcyIsIGVyciwgZXJyX21zZyk7CgogICAgCWlmKGVyciAhPSBMSUJTU0gyX0VS Uk9SX0VBR0FJTil7CiAgICAJCWxvZ19pbmZvKCIgUkVRIGZvciBleGUgY29tbWFuZCBGQUlMRUQi KTsKICAgIAl9CgogICAgCXJldHVybiAtMTsKICAgIH0KICAgIGNoYW5uZWxfaW5mby0+c3RhdHVz ID0gRVhFX0NPTTsKICAgIGxvZ19pbmZvKCJSRVEgZm9yIGV4ZSBjb21tYW5kIEZJTklTSCIpOwoK ICAgIHNydl9leGVfY29tbWFuZCh1c2VyLCBjaGFubmVsX2luZm8pOwoJcmV0dXJuIDA7Cn0KCmlu dCBzcnZfZXhlX2NvbW1hbmQoQ29ubiAqdXNlciwgQ2hhbm5lbF9pbmZvICpjaGFubmVsX2luZm8p ewoJaW50IHJjID0gbGlic3NoMl9jaGFubmVsX2V4ZWMoY2hhbm5lbF9pbmZvLT5jaGFubmVsLCBj aGFubmVsX2luZm8tPmNvbW1hbmQpOwoKCWlmKHJjIDwgMCl7CgkJaW50IGVycmxlbjsKCQljaGFy ICplcnJfbXNnOwoJCWludCBlcnIgPSBsaWJzc2gyX3Nlc3Npb25fbGFzdF9lcnJvcih1c2VyLT5z ZXNzaW9uLCAmZXJyX21zZywgJmVycmxlbiwgMCk7CgkJbG9nX2Vycm9yKCJFeGVjdXRlIGNvbW1h bmQgZXJyb3I6ICVkIC0gJXMiLCAgZXJyLCBlcnJfbXNnKTsKCQlyZXR1cm4gLTE7Cgl9CgllbHNl ewoJCWxvZ19pbmZvKCJDb21tYW5kICclcycgZXhlY3V0ZWQiLCAgY2hhbm5lbF9pbmZvLT5jb21t YW5kKTsKCQljaGFubmVsX2luZm8tPnN0YXR1cyA9IFJFQURfQ0hBTjsKCX0KCglyZW1vdGUodXNl ciwgY29uX3RvLCBOVUxMKTsKCXJldHVybiAwOwp9CgoKaW50IHNydl9saXN0ZW5fc29ja2V0KCl7 CgoJc3RydWN0IHNvY2thZGRyX2luIHNpbjsKCXNvY2tsZW5fdCBzaW5sZW47CglpbnQgc29ja29w dDsKCWxpc3Rlbl9zb2NrZXQgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19TVFJFQU0sIElQUFJPVE9f VENQKTsKCXNpbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKCXNpbi5zaW5fcG9ydCA9IGh0b25zKGxv Y2FsX3BvcnQpOwoKCWlmIChJTkFERFJfTk9ORSA9PSAoc2luLnNpbl9hZGRyLnNfYWRkciA9IGlu ZXRfYWRkcihsb2NhbF9pcCkpKSB7CgkJbG9nX2Vycm9yKCJMaXN0ZW5Tb2NrZXQgZXJyb3I6ICVk Iiwgc3RyZXJyb3IoZXJybm8pKTsKCQlyZXR1cm4gLTE7Cgl9CgoJc29ja29wdCA9IDE7CglzZXRz b2Nrb3B0KGxpc3Rlbl9zb2NrZXQsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgJnNvY2tvcHQs IHNpemVvZihzb2Nrb3B0KSk7CglzaW5sZW49c2l6ZW9mKHNpbik7CglTSU5MRU4gPSBzaW5sZW47 CglpZiAoLTEgPT0gYmluZChsaXN0ZW5fc29ja2V0LCAoc3RydWN0IHNvY2thZGRyICopJnNpbiwg c2lubGVuKSkgewoJCWxvZ19lcnJvcigiTGlzdGVuU29ja2V0IGJpbmQgZXJyb3I6ICVkIiwgc3Ry ZXJyb3IoZXJybm8pKTsKCQlyZXR1cm4gLTE7Cgl9CgoJaWYgKC0xID09IGxpc3RlbihsaXN0ZW5f c29ja2V0LCAxMCkpIHsKCQlsb2dfZXJyb3IoIkxpc3RlblNvY2tldCBsaXN0ZW4gZXJyb3I6ICVk Iiwgc3RyZXJyb3IoZXJybm8pKTsKCQlyZXR1cm4gLTE7Cgl9CgoJbG9nX2luZm8oIkxpc3RlbiBj cmVhdGVkIik7CglyZXR1cm4gMDsKfQoKaW50IHNydl9sb2NhbF9zb2NrZXQoKXsKCWludCBsc29j a2V0OwoJdW5zaWduZWQgbG9uZyBob3N0YWRkcjsKCXN0cnVjdCBzb2NrYWRkcl9pbiBzaW47Cglo b3N0YWRkciA9IGluZXRfYWRkcihsb2NhbF9pcCk7CgoJbHNvY2tldCAgPSBzb2NrZXQoUEZfSU5F VCwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKTsKCglpZihsc29ja2V0ID09IC0xKXsKCQlsb2df ZXJyb3IoIkxvY2FsU29ja2V0IGNyZWF0ZSBlcnJvcjogJXMiLCBzdHJlcnJvcihlcnJubykpOwoJ CXJldHVybiAtMTsKCX0KCglzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7CgoJaWYgKElOQUREUl9O T05FID09IChzaW4uc2luX2FkZHIuc19hZGRyID0gaG9zdGFkZHIpKSB7CgkJbG9nX2Vycm9yKCJM b2NhbFNvY2tldCBhZGRyIGVycm9yOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CgoJCWlmKGNsb3Nl KGxzb2NrZXQpKQoJCQlsb2dfZXJyb3IoIkNsb3NlIExvY2FsU29ja2V0IGVycm9yOiAlcyIsIHN0 cmVycm9yKGVycm5vKSk7CgoJCXJldHVybiAtMTsKCX0KCglzaW4uc2luX3BvcnQgPSBodG9ucyhs b2NhbF9wb3J0KTsKCglpZiAoY29ubmVjdChsc29ja2V0LCAoc3RydWN0IHNvY2thZGRyKikoJnNp biksIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKSAhPSAwKSB7CgkJbG9nX2Vycm9yKCJMb2Nh bFNvY2tldCBjb25uZWN0IGVycm9yOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CgoJCWlmKGNsb3Nl KGxzb2NrZXQpKQoJCQlsb2dfZXJyb3IoIkNsb3NlIExvY2FsU29ja2V0IGVycm9yOiAlcyIsIHN0 cmVycm9yKGVycm5vKSk7CgoJICAgIHJldHVybiAtMTsKCX0KCXJldHVybiBsc29ja2V0Owp9CgoK Q2hhbm5lbF9pbmZvICpzcnZfYWRkX2NoYW5uZWwoQ29ubiAqdXNlciwgTElCU1NIMl9DSEFOTkVM ICpjaGFuLCBpbnQgdHlwZSwgY2hhciAqaW5mbywgdm9pZCAqZGF0YSl7CglDaGFubmVsX2luZm8g Km5ld19jaGFuOwoJbmV3X2NoYW4gPSAoQ2hhbm5lbF9pbmZvKiltYWxsb2Moc2l6ZW9mKENoYW5u ZWxfaW5mbykpOwoKCW5ld19jaGFuLT5jaGFubmVsID0gY2hhbjsKCW5ld19jaGFuLT50eXBlID0g dHlwZTsKCW5ld19jaGFuLT5zdGF0dXMgPSBJTklUX0NIQU47CgluZXdfY2hhbi0+Y29tbWFuZCA9 IGluZm87CgluZXdfY2hhbi0+ZGF0YSA9IGRhdGE7CgluZXdfY2hhbi0+bmV4dCA9IE5VTEw7Cglu ZXdfY2hhbi0+d29ya2VyX2lkID0gLTE7CgoJbmV3X2NoYW4tPmNvdW50ID0gMDsKCglpZih1c2Vy LT5jaGFubmVsX2luZm8gPT0gTlVMTCkKCQl1c2VyLT5jaGFubmVsX2luZm8gPSBuZXdfY2hhbjsK CWVsc2V7CgkJQ2hhbm5lbF9pbmZvICpjdXJyID0gdXNlci0+Y2hhbm5lbF9pbmZvOwoJCXdoaWxl KGN1cnItPm5leHQgIT0gTlVMTCkKCQkJY3VyciA9IGN1cnItPm5leHQ7CgoJCWN1cnItPm5leHQg PSBuZXdfY2hhbjsKCX0KCXJldHVybiBuZXdfY2hhbjsKfQo= --bcaec51a7190efd10704f6f2859c Content-Type: text/x-log; charset=US-ASCII; name="output.log" Content-Disposition: attachment; filename="output.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_htyskzd81 W2xpYnNzaDJdIDAuMTcwODYzIFRyYW5zcG9ydDogc2Vzc2lvbl9zdGFydHVwIGZvciBzb2NrZXQg NQpbbGlic3NoMl0gMC4xNzA5NzcgVHJhbnNwb3J0OiBTZW5kaW5nIEJhbm5lcjogU1NILTIuMC1s aWJzc2gyXzEuNC4zCltsaWJzc2gyXSAwLjE3MTAyMCBTb2NrZXQ6IFNlbnQgMjMvMjMgYnl0ZXMg YXQgMHg3ZmRlMWZhYWQ4M2QrMApbbGlic3NoMl0gMC4xODUxNzAgU29ja2V0OiBSZWN2ZWQgMSBi eXRlcyBiYW5uZXIKW2xpYnNzaDJdIDAuMTg1MTk4IFNvY2tldDogUmVjdmVkIDEgYnl0ZXMgYmFu bmVyCltsaWJzc2gyXSAwLjE4NTIwMiBTb2NrZXQ6IFJlY3ZlZCAxIGJ5dGVzIGJhbm5lcgpbbGli c3NoMl0gMC4xODUyMDYgU29ja2V0OiBSZWN2ZWQgMSBieXRlcyBiYW5uZXIKW2xpYnNzaDJdIDAu MTg1MjEwIFNvY2tldDogUmVjdmVkIDEgYnl0ZXMgYmFubmVyCltsaWJzc2gyXSAwLjE4NTIxNCBT b2NrZXQ6IFJlY3ZlZCAxIGJ5dGVzIGJhbm5lcgpbbGlic3NoMl0gMC4xODUyMTggU29ja2V0OiBS ZWN2ZWQgMSBieXRlcyBiYW5uZXIKW2xpYnNzaDJdIDAuMTg1MjIyIFNvY2tldDogUmVjdmVkIDEg Ynl0ZXMgYmFubmVyCltsaWJzc2gyXSAwLjE4NTIyNiBTb2NrZXQ6IFJlY3ZlZCAxIGJ5dGVzIGJh bm5lcgpbbGlic3NoMl0gMC4xODUyMjkgU29ja2V0OiBSZWN2ZWQgMSBieXRlcyBiYW5uZXIKW2xp YnNzaDJdIDAuMTg1MjMzIFNvY2tldDogUmVjdmVkIDEgYnl0ZXMgYmFubmVyCltsaWJzc2gyXSAw LjE4NTIzNyBTb2NrZXQ6IFJlY3ZlZCAxIGJ5dGVzIGJhbm5lcgpbbGlic3NoMl0gMC4xODUyNDEg U29ja2V0OiBSZWN2ZWQgMSBieXRlcyBiYW5uZXIKW2xpYnNzaDJdIDAuMTg1MjQ1IFNvY2tldDog UmVjdmVkIDEgYnl0ZXMgYmFubmVyCltsaWJzc2gyXSAwLjE4NTI0OSBTb2NrZXQ6IFJlY3ZlZCAx IGJ5dGVzIGJhbm5lcgpbbGlic3NoMl0gMC4xODUyNTIgU29ja2V0OiBSZWN2ZWQgMSBieXRlcyBi YW5uZXIKW2xpYnNzaDJdIDAuMTg1MjU2IFNvY2tldDogUmVjdmVkIDEgYnl0ZXMgYmFubmVyClts aWJzc2gyXSAwLjE4NTI2MCBTb2NrZXQ6IFJlY3ZlZCAxIGJ5dGVzIGJhbm5lcgpbbGlic3NoMl0g MC4xODUyNjQgU29ja2V0OiBSZWN2ZWQgMSBieXRlcyBiYW5uZXIKW2xpYnNzaDJdIDAuMTg1MjY5 IFNvY2tldDogUmVjdmVkIDEgYnl0ZXMgYmFubmVyCltsaWJzc2gyXSAwLjE4NTI3NCBUcmFuc3Bv cnQ6IFJlY2VpdmVkIEJhbm5lcjogU1NILTIuMC1PcGVuU1NIXzQuMwpbbGlic3NoMl0gMC4xODU0 ODcgS2V5IEV4OiBTZW50IEtFWDogZGlmZmllLWhlbGxtYW4tZ3JvdXAxNC1zaGExLGRpZmZpZS1o ZWxsbWFuLWdyb3VwLWV4Y2hhbmdlLXNoYTEsZGlmZmllLWhlbGxtYW4tZ3JvdXAxLXNoYTEKW2xp YnNzaDJdIDAuMTg1NDkzIEtleSBFeDogU2VudCBIT1NUS0VZOiBzc2gtcnNhLHNzaC1kc3MKW2xp YnNzaDJdIDAuMTg1NDk2IEtleSBFeDogU2VudCBDUllQVF9DUzogYWVzMTI4LWN0cixhZXMxOTIt Y3RyLGFlczI1Ni1jdHIsYWVzMjU2LWNiYyxyaWpuZGFlbC1jYmNAbHlzYXRvci5saXUuc2UsYWVz MTkyLWNiYyxhZXMxMjgtY2JjLGJsb3dmaXNoLWNiYyxhcmNmb3VyMTI4LGFyY2ZvdXIsY2FzdDEy OC1jYmMsM2Rlcy1jYmMKW2xpYnNzaDJdIDAuMTg1NTAwIEtleSBFeDogU2VudCBDUllQVF9TQzog YWVzMTI4LWN0cixhZXMxOTItY3RyLGFlczI1Ni1jdHIsYWVzMjU2LWNiYyxyaWpuZGFlbC1jYmNA bHlzYXRvci5saXUuc2UsYWVzMTkyLWNiYyxhZXMxMjgtY2JjLGJsb3dmaXNoLWNiYyxhcmNmb3Vy MTI4LGFyY2ZvdXIsY2FzdDEyOC1jYmMsM2Rlcy1jYmMKW2xpYnNzaDJdIDAuMTg1NTA0IEtleSBF eDogU2VudCBNQUNfQ1M6IGhtYWMtc2hhMSxobWFjLXNoYTEtOTYsaG1hYy1tZDUsaG1hYy1tZDUt OTYsaG1hYy1yaXBlbWQxNjAsaG1hYy1yaXBlbWQxNjBAb3BlbnNzaC5jb20KW2xpYnNzaDJdIDAu MTg1NTA3IEtleSBFeDogU2VudCBNQUNfU0M6IGhtYWMtc2hhMSxobWFjLXNoYTEtOTYsaG1hYy1t ZDUsaG1hYy1tZDUtOTYsaG1hYy1yaXBlbWQxNjAsaG1hYy1yaXBlbWQxNjBAb3BlbnNzaC5jb20K W2xpYnNzaDJdIDAuMTg1NTExIEtleSBFeDogU2VudCBDT01QX0NTOiBub25lCltsaWJzc2gyXSAw LjE4NTUxNCBLZXkgRXg6IFNlbnQgQ09NUF9TQzogbm9uZQpbbGlic3NoMl0gMC4xODU1MTggS2V5 IEV4OiBTZW50IExBTkdfQ1M6IApbbGlic3NoMl0gMC4xODU1MjEgS2V5IEV4OiBTZW50IExBTkdf U0M6IAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbiAoNjM2IGJ5dGVzKQowMDAwOiAx NCAzNyA1NSBCNCAzOSA2NiAzMCA3QSAgMDYgMkUgMkQgMjQgRDUgODQgRDIgQzEgOiAuN1UuOWYw ei4uLSQuLi4uCjAwMTA6IDJDIDAwIDAwIDAwIDU5IDY0IDY5IDY2ICA2NiA2OSA2NSAyRCA2OCA2 NSA2QyA2QyA6ICwuLi5ZZGlmZmllLWhlbGwKMDAyMDogNkQgNjEgNkUgMkQgNjcgNzIgNkYgNzUg IDcwIDMxIDM0IDJEIDczIDY4IDYxIDMxIDogbWFuLWdyb3VwMTQtc2hhMQowMDMwOiAyQyA2NCA2 OSA2NiA2NiA2OSA2NSAyRCAgNjggNjUgNkMgNkMgNkQgNjEgNkUgMkQgOiAsZGlmZmllLWhlbGxt YW4tCjAwNDA6IDY3IDcyIDZGIDc1IDcwIDJEIDY1IDc4ICA2MyA2OCA2MSA2RSA2NyA2NSAyRCA3 MyA6IGdyb3VwLWV4Y2hhbmdlLXMKMDA1MDogNjggNjEgMzEgMkMgNjQgNjkgNjYgNjYgIDY5IDY1 IDJEIDY4IDY1IDZDIDZDIDZEIDogaGExLGRpZmZpZS1oZWxsbQowMDYwOiA2MSA2RSAyRCA2NyA3 MiA2RiA3NSA3MCAgMzEgMkQgNzMgNjggNjEgMzEgMDAgMDAgOiBhbi1ncm91cDEtc2hhMS4uCjAw NzA6IDAwIDBGIDczIDczIDY4IDJEIDcyIDczICA2MSAyQyA3MyA3MyA2OCAyRCA2NCA3MyA6IC4u c3NoLXJzYSxzc2gtZHMKMDA4MDogNzMgMDAgMDAgMDAgOTIgNjEgNjUgNzMgIDMxIDMyIDM4IDJE IDYzIDc0IDcyIDJDIDogcy4uLi5hZXMxMjgtY3RyLAowMDkwOiA2MSA2NSA3MyAzMSAzOSAzMiAy RCA2MyAgNzQgNzIgMkMgNjEgNjUgNzMgMzIgMzUgOiBhZXMxOTItY3RyLGFlczI1CjAwYTA6IDM2 IDJEIDYzIDc0IDcyIDJDIDYxIDY1ICA3MyAzMiAzNSAzNiAyRCA2MyA2MiA2MyA6IDYtY3RyLGFl czI1Ni1jYmMKMDBiMDogMkMgNzIgNjkgNkEgNkUgNjQgNjEgNjUgIDZDIDJEIDYzIDYyIDYzIDQw IDZDIDc5IDogLHJpam5kYWVsLWNiY0BseQowMGMwOiA3MyA2MSA3NCA2RiA3MiAyRSA2QyA2OSAg NzUgMkUgNzMgNjUgMkMgNjEgNjUgNzMgOiBzYXRvci5saXUuc2UsYWVzCjAwZDA6IDMxIDM5IDMy IDJEIDYzIDYyIDYzIDJDICA2MSA2NSA3MyAzMSAzMiAzOCAyRCA2MyA6IDE5Mi1jYmMsYWVzMTI4 LWMKMDBlMDogNjIgNjMgMkMgNjIgNkMgNkYgNzcgNjYgIDY5IDczIDY4IDJEIDYzIDYyIDYzIDJD IDogYmMsYmxvd2Zpc2gtY2JjLAowMGYwOiA2MSA3MiA2MyA2NiA2RiA3NSA3MiAzMSAgMzIgMzgg MkMgNjEgNzIgNjMgNjYgNkYgOiBhcmNmb3VyMTI4LGFyY2ZvCjAxMDA6IDc1IDcyIDJDIDYzIDYx IDczIDc0IDMxICAzMiAzOCAyRCA2MyA2MiA2MyAyQyAzMyA6IHVyLGNhc3QxMjgtY2JjLDMKMDEx MDogNjQgNjUgNzMgMkQgNjMgNjIgNjMgMDAgIDAwIDAwIDkyIDYxIDY1IDczIDMxIDMyIDogZGVz LWNiYy4uLi5hZXMxMgowMTIwOiAzOCAyRCA2MyA3NCA3MiAyQyA2MSA2NSAgNzMgMzEgMzkgMzIg MkQgNjMgNzQgNzIgOiA4LWN0cixhZXMxOTItY3RyCjAxMzA6IDJDIDYxIDY1IDczIDMyIDM1IDM2 IDJEICA2MyA3NCA3MiAyQyA2MSA2NSA3MyAzMiA6ICxhZXMyNTYtY3RyLGFlczIKMDE0MDogMzUg MzYgMkQgNjMgNjIgNjMgMkMgNzIgIDY5IDZBIDZFIDY0IDYxIDY1IDZDIDJEIDogNTYtY2JjLHJp am5kYWVsLQowMTUwOiA2MyA2MiA2MyA0MCA2QyA3OSA3MyA2MSAgNzQgNkYgNzIgMkUgNkMgNjkg NzUgMkUgOiBjYmNAbHlzYXRvci5saXUuCjAxNjA6IDczIDY1IDJDIDYxIDY1IDczIDMxIDM5ICAz MiAyRCA2MyA2MiA2MyAyQyA2MSA2NSA6IHNlLGFlczE5Mi1jYmMsYWUKMDE3MDogNzMgMzEgMzIg MzggMkQgNjMgNjIgNjMgIDJDIDYyIDZDIDZGIDc3IDY2IDY5IDczIDogczEyOC1jYmMsYmxvd2Zp cwowMTgwOiA2OCAyRCA2MyA2MiA2MyAyQyA2MSA3MiAgNjMgNjYgNkYgNzUgNzIgMzEgMzIgMzgg OiBoLWNiYyxhcmNmb3VyMTI4CjAxOTA6IDJDIDYxIDcyIDYzIDY2IDZGIDc1IDcyICAyQyA2MyA2 MSA3MyA3NCAzMSAzMiAzOCA6ICxhcmNmb3VyLGNhc3QxMjgKMDFhMDogMkQgNjMgNjIgNjMgMkMg MzMgNjQgNjUgIDczIDJEIDYzIDYyIDYzIDAwIDAwIDAwIDogLWNiYywzZGVzLWNiYy4uLgowMWIw OiA1NSA2OCA2RCA2MSA2MyAyRCA3MyA2OCAgNjEgMzEgMkMgNjggNkQgNjEgNjMgMkQgOiBVaG1h Yy1zaGExLGhtYWMtCjAxYzA6IDczIDY4IDYxIDMxIDJEIDM5IDM2IDJDICA2OCA2RCA2MSA2MyAy RCA2RCA2NCAzNSA6IHNoYTEtOTYsaG1hYy1tZDUKMDFkMDogMkMgNjggNkQgNjEgNjMgMkQgNkQg NjQgIDM1IDJEIDM5IDM2IDJDIDY4IDZEIDYxIDogLGhtYWMtbWQ1LTk2LGhtYQowMWUwOiA2MyAy RCA3MiA2OSA3MCA2NSA2RCA2NCAgMzEgMzYgMzAgMkMgNjggNkQgNjEgNjMgOiBjLXJpcGVtZDE2 MCxobWFjCjAxZjA6IDJEIDcyIDY5IDcwIDY1IDZEIDY0IDMxICAzNiAzMCA0MCA2RiA3MCA2NSA2 RSA3MyA6IC1yaXBlbWQxNjBAb3BlbnMKMDIwMDogNzMgNjggMkUgNjMgNkYgNkQgMDAgMDAgIDAw IDU1IDY4IDZEIDYxIDYzIDJEIDczIDogc2guY29tLi4uVWhtYWMtcwowMjEwOiA2OCA2MSAzMSAy QyA2OCA2RCA2MSA2MyAgMkQgNzMgNjggNjEgMzEgMkQgMzkgMzYgOiBoYTEsaG1hYy1zaGExLTk2 CjAyMjA6IDJDIDY4IDZEIDYxIDYzIDJEIDZEIDY0ICAzNSAyQyA2OCA2RCA2MSA2MyAyRCA2RCA6 ICxobWFjLW1kNSxobWFjLW0KMDIzMDogNjQgMzUgMkQgMzkgMzYgMkMgNjggNkQgIDYxIDYzIDJE IDcyIDY5IDcwIDY1IDZEIDogZDUtOTYsaG1hYy1yaXBlbQowMjQwOiA2NCAzMSAzNiAzMCAyQyA2 OCA2RCA2MSAgNjMgMkQgNzIgNjkgNzAgNjUgNkQgNjQgOiBkMTYwLGhtYWMtcmlwZW1kCjAyNTA6 IDMxIDM2IDMwIDQwIDZGIDcwIDY1IDZFICA3MyA3MyA2OCAyRSA2MyA2RiA2RCAwMCA6IDE2MEBv cGVuc3NoLmNvbS4KMDI2MDogMDAgMDAgMDQgNkUgNkYgNkUgNjUgMDAgIDAwIDAwIDA0IDZFIDZG IDZFIDY1IDAwIDogLi4ubm9uZS4uLi5ub25lLgowMjcwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAgMDAgMDAgMDAgMDAgICAgICAgICAgICAgOiAuLi4uLi4uLi4uLi4KW2xpYnNzaDJdIDAuMTg1 NjY3IFNvY2tldDogU2VudCA2NDgvNjQ4IGJ5dGVzIGF0IDB4ZjNhNTUwCj0+IGxpYnNzaDJfdHJh bnNwb3J0X3dyaXRlIHNlbmQoKSAoNjQ4IGJ5dGVzKQowMDAwOiAwMCAwMCAwMiA4NCAwNyAxNCAz NyA1NSAgQjQgMzkgNjYgMzAgN0EgMDYgMkUgMkQgOiAuLi4uLi43VS45ZjB6Li4tCjAwMTA6IDI0 IEQ1IDg0IEQyIEMxIDJDIDAwIDAwICAwMCA1OSA2NCA2OSA2NiA2NiA2OSA2NSA6ICQuLi4uLC4u LllkaWZmaWUKMDAyMDogMkQgNjggNjUgNkMgNkMgNkQgNjEgNkUgIDJEIDY3IDcyIDZGIDc1IDcw IDMxIDM0IDogLWhlbGxtYW4tZ3JvdXAxNAowMDMwOiAyRCA3MyA2OCA2MSAzMSAyQyA2NCA2OSAg NjYgNjYgNjkgNjUgMkQgNjggNjUgNkMgOiAtc2hhMSxkaWZmaWUtaGVsCjAwNDA6IDZDIDZEIDYx IDZFIDJEIDY3IDcyIDZGICA3NSA3MCAyRCA2NSA3OCA2MyA2OCA2MSA6IGxtYW4tZ3JvdXAtZXhj aGEKMDA1MDogNkUgNjcgNjUgMkQgNzMgNjggNjEgMzEgIDJDIDY0IDY5IDY2IDY2IDY5IDY1IDJE IDogbmdlLXNoYTEsZGlmZmllLQowMDYwOiA2OCA2NSA2QyA2QyA2RCA2MSA2RSAyRCAgNjcgNzIg NkYgNzUgNzAgMzEgMkQgNzMgOiBoZWxsbWFuLWdyb3VwMS1zCjAwNzA6IDY4IDYxIDMxIDAwIDAw IDAwIDBGIDczICA3MyA2OCAyRCA3MiA3MyA2MSAyQyA3MyA6IGhhMS4uLi5zc2gtcnNhLHMKMDA4 MDogNzMgNjggMkQgNjQgNzMgNzMgMDAgMDAgIDAwIDkyIDYxIDY1IDczIDMxIDMyIDM4IDogc2gt ZHNzLi4uLmFlczEyOAowMDkwOiAyRCA2MyA3NCA3MiAyQyA2MSA2NSA3MyAgMzEgMzkgMzIgMkQg NjMgNzQgNzIgMkMgOiAtY3RyLGFlczE5Mi1jdHIsCjAwYTA6IDYxIDY1IDczIDMyIDM1IDM2IDJE IDYzICA3NCA3MiAyQyA2MSA2NSA3MyAzMiAzNSA6IGFlczI1Ni1jdHIsYWVzMjUKMDBiMDogMzYg MkQgNjMgNjIgNjMgMkMgNzIgNjkgIDZBIDZFIDY0IDYxIDY1IDZDIDJEIDYzIDogNi1jYmMscmlq bmRhZWwtYwowMGMwOiA2MiA2MyA0MCA2QyA3OSA3MyA2MSA3NCAgNkYgNzIgMkUgNkMgNjkgNzUg MkUgNzMgOiBiY0BseXNhdG9yLmxpdS5zCjAwZDA6IDY1IDJDIDYxIDY1IDczIDMxIDM5IDMyICAy RCA2MyA2MiA2MyAyQyA2MSA2NSA3MyA6IGUsYWVzMTkyLWNiYyxhZXMKMDBlMDogMzEgMzIgMzgg MkQgNjMgNjIgNjMgMkMgIDYyIDZDIDZGIDc3IDY2IDY5IDczIDY4IDogMTI4LWNiYyxibG93Zmlz aAowMGYwOiAyRCA2MyA2MiA2MyAyQyA2MSA3MiA2MyAgNjYgNkYgNzUgNzIgMzEgMzIgMzggMkMg OiAtY2JjLGFyY2ZvdXIxMjgsCjAxMDA6IDYxIDcyIDYzIDY2IDZGIDc1IDcyIDJDICA2MyA2MSA3 MyA3NCAzMSAzMiAzOCAyRCA6IGFyY2ZvdXIsY2FzdDEyOC0KMDExMDogNjMgNjIgNjMgMkMgMzMg NjQgNjUgNzMgIDJEIDYzIDYyIDYzIDAwIDAwIDAwIDkyIDogY2JjLDNkZXMtY2JjLi4uLgowMTIw OiA2MSA2NSA3MyAzMSAzMiAzOCAyRCA2MyAgNzQgNzIgMkMgNjEgNjUgNzMgMzEgMzkgOiBhZXMx MjgtY3RyLGFlczE5CjAxMzA6IDMyIDJEIDYzIDc0IDcyIDJDIDYxIDY1ICA3MyAzMiAzNSAzNiAy RCA2MyA3NCA3MiA6IDItY3RyLGFlczI1Ni1jdHIKMDE0MDogMkMgNjEgNjUgNzMgMzIgMzUgMzYg MkQgIDYzIDYyIDYzIDJDIDcyIDY5IDZBIDZFIDogLGFlczI1Ni1jYmMscmlqbgowMTUwOiA2NCA2 MSA2NSA2QyAyRCA2MyA2MiA2MyAgNDAgNkMgNzkgNzMgNjEgNzQgNkYgNzIgOiBkYWVsLWNiY0Bs eXNhdG9yCjAxNjA6IDJFIDZDIDY5IDc1IDJFIDczIDY1IDJDICA2MSA2NSA3MyAzMSAzOSAzMiAy RCA2MyA6IC5saXUuc2UsYWVzMTkyLWMKMDE3MDogNjIgNjMgMkMgNjEgNjUgNzMgMzEgMzIgIDM4 IDJEIDYzIDYyIDYzIDJDIDYyIDZDIDogYmMsYWVzMTI4LWNiYyxibAowMTgwOiA2RiA3NyA2NiA2 OSA3MyA2OCAyRCA2MyAgNjIgNjMgMkMgNjEgNzIgNjMgNjYgNkYgOiBvd2Zpc2gtY2JjLGFyY2Zv CjAxOTA6IDc1IDcyIDMxIDMyIDM4IDJDIDYxIDcyICA2MyA2NiA2RiA3NSA3MiAyQyA2MyA2MSA6 IHVyMTI4LGFyY2ZvdXIsY2EKMDFhMDogNzMgNzQgMzEgMzIgMzggMkQgNjMgNjIgIDYzIDJDIDMz IDY0IDY1IDczIDJEIDYzIDogc3QxMjgtY2JjLDNkZXMtYwowMWIwOiA2MiA2MyAwMCAwMCAwMCA1 NSA2OCA2RCAgNjEgNjMgMkQgNzMgNjggNjEgMzEgMkMgOiBiYy4uLlVobWFjLXNoYTEsCjAxYzA6 IDY4IDZEIDYxIDYzIDJEIDczIDY4IDYxICAzMSAyRCAzOSAzNiAyQyA2OCA2RCA2MSA6IGhtYWMt c2hhMS05NixobWEKMDFkMDogNjMgMkQgNkQgNjQgMzUgMkMgNjggNkQgIDYxIDYzIDJEIDZEIDY0 IDM1IDJEIDM5IDogYy1tZDUsaG1hYy1tZDUtOQowMWUwOiAzNiAyQyA2OCA2RCA2MSA2MyAyRCA3 MiAgNjkgNzAgNjUgNkQgNjQgMzEgMzYgMzAgOiA2LGhtYWMtcmlwZW1kMTYwCjAxZjA6IDJDIDY4 IDZEIDYxIDYzIDJEIDcyIDY5ICA3MCA2NSA2RCA2NCAzMSAzNiAzMCA0MCA6ICxobWFjLXJpcGVt ZDE2MEAKMDIwMDogNkYgNzAgNjUgNkUgNzMgNzMgNjggMkUgIDYzIDZGIDZEIDAwIDAwIDAwIDU1 IDY4IDogb3BlbnNzaC5jb20uLi5VaAowMjEwOiA2RCA2MSA2MyAyRCA3MyA2OCA2MSAzMSAgMkMg NjggNkQgNjEgNjMgMkQgNzMgNjggOiBtYWMtc2hhMSxobWFjLXNoCjAyMjA6IDYxIDMxIDJEIDM5 IDM2IDJDIDY4IDZEICA2MSA2MyAyRCA2RCA2NCAzNSAyQyA2OCA6IGExLTk2LGhtYWMtbWQ1LGgK MDIzMDogNkQgNjEgNjMgMkQgNkQgNjQgMzUgMkQgIDM5IDM2IDJDIDY4IDZEIDYxIDYzIDJEIDog bWFjLW1kNS05NixobWFjLQowMjQwOiA3MiA2OSA3MCA2NSA2RCA2NCAzMSAzNiAgMzAgMkMgNjgg NkQgNjEgNjMgMkQgNzIgOiByaXBlbWQxNjAsaG1hYy1yCjAyNTA6IDY5IDcwIDY1IDZEIDY0IDMx IDM2IDMwICA0MCA2RiA3MCA2NSA2RSA3MyA3MyA2OCA6IGlwZW1kMTYwQG9wZW5zc2gKMDI2MDog MkUgNjMgNkYgNkQgMDAgMDAgMDAgMDQgIDZFIDZGIDZFIDY1IDAwIDAwIDAwIDA0IDogLmNvbS4u Li5ub25lLi4uLgowMjcwOiA2RSA2RiA2RSA2NSAwMCAwMCAwMCAwMCAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgOiBub25lLi4uLi4uLi4uLi4uCjAyODA6IDAwIDU3IEFGIDI1IDZCIDkzIDJFIDFE ICAgICAgICAgICAgICAgICAgICAgICAgICA6IC5XLiVrLi4uCltsaWJzc2gyXSAwLjE4NTc3NCBU cmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiAyMApbbGlic3NoMl0gMC4xODg0 ODIgU29ja2V0OiBSZWN2ZWQgNzA0LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3No Ml90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNzA0IGJ5dGVzKQowMDAwOiAwMCAwMCAwMiBCQyAwNyAx NCAyMyAwNiAgMDMgRDggRTQgMEEgMEQgRkUgMjAgMkEgOiAuLi4uLi4jLi4uLi4uLiAqCjAwMTA6 IDM0IEVDIEYyIDQzIDNDIEQzIDAwIDAwICAwMCA1OSA2NCA2OSA2NiA2NiA2OSA2NSA6IDQuLkM8 Li4uLllkaWZmaWUKMDAyMDogMkQgNjggNjUgNkMgNkMgNkQgNjEgNkUgIDJEIDY3IDcyIDZGIDc1 IDcwIDJEIDY1IDogLWhlbGxtYW4tZ3JvdXAtZQowMDMwOiA3OCA2MyA2OCA2MSA2RSA2NyA2NSAy RCAgNzMgNjggNjEgMzEgMkMgNjQgNjkgNjYgOiB4Y2hhbmdlLXNoYTEsZGlmCjAwNDA6IDY2IDY5 IDY1IDJEIDY4IDY1IDZDIDZDICA2RCA2MSA2RSAyRCA2NyA3MiA2RiA3NSA6IGZpZS1oZWxsbWFu LWdyb3UKMDA1MDogNzAgMzEgMzQgMkQgNzMgNjggNjEgMzEgIDJDIDY0IDY5IDY2IDY2IDY5IDY1 IDJEIDogcDE0LXNoYTEsZGlmZmllLQowMDYwOiA2OCA2NSA2QyA2QyA2RCA2MSA2RSAyRCAgNjcg NzIgNkYgNzUgNzAgMzEgMkQgNzMgOiBoZWxsbWFuLWdyb3VwMS1zCjAwNzA6IDY4IDYxIDMxIDAw IDAwIDAwIDBGIDczICA3MyA2OCAyRCA3MiA3MyA2MSAyQyA3MyA6IGhhMS4uLi5zc2gtcnNhLHMK MDA4MDogNzMgNjggMkQgNjQgNzMgNzMgMDAgMDAgIDAwIDlEIDYxIDY1IDczIDMxIDMyIDM4IDog c2gtZHNzLi4uLmFlczEyOAowMDkwOiAyRCA2MyA3NCA3MiAyQyA2MSA2NSA3MyAgMzEgMzkgMzIg MkQgNjMgNzQgNzIgMkMgOiAtY3RyLGFlczE5Mi1jdHIsCjAwYTA6IDYxIDY1IDczIDMyIDM1IDM2 IDJEIDYzICA3NCA3MiAyQyA2MSA3MiA2MyA2NiA2RiA6IGFlczI1Ni1jdHIsYXJjZm8KMDBiMDog NzUgNzIgMzIgMzUgMzYgMkMgNjEgNzIgIDYzIDY2IDZGIDc1IDcyIDMxIDMyIDM4IDogdXIyNTYs YXJjZm91cjEyOAowMGMwOiAyQyA2MSA2NSA3MyAzMSAzMiAzOCAyRCAgNjMgNjIgNjMgMkMgMzMg NjQgNjUgNzMgOiAsYWVzMTI4LWNiYywzZGVzCjAwZDA6IDJEIDYzIDYyIDYzIDJDIDYyIDZDIDZG ICA3NyA2NiA2OSA3MyA2OCAyRCA2MyA2MiA6IC1jYmMsYmxvd2Zpc2gtY2IKMDBlMDogNjMgMkMg NjMgNjEgNzMgNzQgMzEgMzIgIDM4IDJEIDYzIDYyIDYzIDJDIDYxIDY1IDogYyxjYXN0MTI4LWNi YyxhZQowMGYwOiA3MyAzMSAzOSAzMiAyRCA2MyA2MiA2MyAgMkMgNjEgNjUgNzMgMzIgMzUgMzYg MkQgOiBzMTkyLWNiYyxhZXMyNTYtCjAxMDA6IDYzIDYyIDYzIDJDIDYxIDcyIDYzIDY2ICA2RiA3 NSA3MiAyQyA3MiA2OSA2QSA2RSA6IGNiYyxhcmNmb3VyLHJpam4KMDExMDogNjQgNjEgNjUgNkMg MkQgNjMgNjIgNjMgIDQwIDZDIDc5IDczIDYxIDc0IDZGIDcyIDogZGFlbC1jYmNAbHlzYXRvcgow MTIwOiAyRSA2QyA2OSA3NSAyRSA3MyA2NSAwMCAgMDAgMDAgOUQgNjEgNjUgNzMgMzEgMzIgOiAu bGl1LnNlLi4uLmFlczEyCjAxMzA6IDM4IDJEIDYzIDc0IDcyIDJDIDYxIDY1ICA3MyAzMSAzOSAz MiAyRCA2MyA3NCA3MiA6IDgtY3RyLGFlczE5Mi1jdHIKMDE0MDogMkMgNjEgNjUgNzMgMzIgMzUg MzYgMkQgIDYzIDc0IDcyIDJDIDYxIDcyIDYzIDY2IDogLGFlczI1Ni1jdHIsYXJjZgowMTUwOiA2 RiA3NSA3MiAzMiAzNSAzNiAyQyA2MSAgNzIgNjMgNjYgNkYgNzUgNzIgMzEgMzIgOiBvdXIyNTYs YXJjZm91cjEyCjAxNjA6IDM4IDJDIDYxIDY1IDczIDMxIDMyIDM4ICAyRCA2MyA2MiA2MyAyQyAz MyA2NCA2NSA6IDgsYWVzMTI4LWNiYywzZGUKMDE3MDogNzMgMkQgNjMgNjIgNjMgMkMgNjIgNkMg IDZGIDc3IDY2IDY5IDczIDY4IDJEIDYzIDogcy1jYmMsYmxvd2Zpc2gtYwowMTgwOiA2MiA2MyAy QyA2MyA2MSA3MyA3NCAzMSAgMzIgMzggMkQgNjMgNjIgNjMgMkMgNjEgOiBiYyxjYXN0MTI4LWNi YyxhCjAxOTA6IDY1IDczIDMxIDM5IDMyIDJEIDYzIDYyICA2MyAyQyA2MSA2NSA3MyAzMiAzNSAz NiA6IGVzMTkyLWNiYyxhZXMyNTYKMDFhMDogMkQgNjMgNjIgNjMgMkMgNjEgNzIgNjMgIDY2IDZG IDc1IDcyIDJDIDcyIDY5IDZBIDogLWNiYyxhcmNmb3VyLHJpagowMWIwOiA2RSA2NCA2MSA2NSA2 QyAyRCA2MyA2MiAgNjMgNDAgNkMgNzkgNzMgNjEgNzQgNkYgOiBuZGFlbC1jYmNAbHlzYXRvCjAx YzA6IDcyIDJFIDZDIDY5IDc1IDJFIDczIDY1ICAwMCAwMCAwMCA1NSA2OCA2RCA2MSA2MyA6IHIu bGl1LnNlLi4uVWhtYWMKMDFkMDogMkQgNkQgNjQgMzUgMkMgNjggNkQgNjEgIDYzIDJEIDczIDY4 IDYxIDMxIDJDIDY4IDogLW1kNSxobWFjLXNoYTEsaAowMWUwOiA2RCA2MSA2MyAyRCA3MiA2OSA3 MCA2NSAgNkQgNjQgMzEgMzYgMzAgMkMgNjggNkQgOiBtYWMtcmlwZW1kMTYwLGhtCjAxZjA6IDYx IDYzIDJEIDcyIDY5IDcwIDY1IDZEICA2NCAzMSAzNiAzMCA0MCA2RiA3MCA2NSA6IGFjLXJpcGVt ZDE2MEBvcGUKMDIwMDogNkUgNzMgNzMgNjggMkUgNjMgNkYgNkQgIDJDIDY4IDZEIDYxIDYzIDJE IDczIDY4IDogbnNzaC5jb20saG1hYy1zaAowMjEwOiA2MSAzMSAyRCAzOSAzNiAyQyA2OCA2RCAg NjEgNjMgMkQgNkQgNjQgMzUgMkQgMzkgOiBhMS05NixobWFjLW1kNS05CjAyMjA6IDM2IDAwIDAw IDAwIDU1IDY4IDZEIDYxICA2MyAyRCA2RCA2NCAzNSAyQyA2OCA2RCA6IDYuLi5VaG1hYy1tZDUs aG0KMDIzMDogNjEgNjMgMkQgNzMgNjggNjEgMzEgMkMgIDY4IDZEIDYxIDYzIDJEIDcyIDY5IDcw IDogYWMtc2hhMSxobWFjLXJpcAowMjQwOiA2NSA2RCA2NCAzMSAzNiAzMCAyQyA2OCAgNkQgNjEg NjMgMkQgNzIgNjkgNzAgNjUgOiBlbWQxNjAsaG1hYy1yaXBlCjAyNTA6IDZEIDY0IDMxIDM2IDMw IDQwIDZGIDcwICA2NSA2RSA3MyA3MyA2OCAyRSA2MyA2RiA6IG1kMTYwQG9wZW5zc2guY28KMDI2 MDogNkQgMkMgNjggNkQgNjEgNjMgMkQgNzMgIDY4IDYxIDMxIDJEIDM5IDM2IDJDIDY4IDogbSxo bWFjLXNoYTEtOTYsaAowMjcwOiA2RCA2MSA2MyAyRCA2RCA2NCAzNSAyRCAgMzkgMzYgMDAgMDAg MDAgMTUgNkUgNkYgOiBtYWMtbWQ1LTk2Li4uLm5vCjAyODA6IDZFIDY1IDJDIDdBIDZDIDY5IDYy IDQwICA2RiA3MCA2NSA2RSA3MyA3MyA2OCAyRSA6IG5lLHpsaWJAb3BlbnNzaC4KMDI5MDogNjMg NkYgNkQgMDAgMDAgMDAgMTUgNkUgIDZGIDZFIDY1IDJDIDdBIDZDIDY5IDYyIDogY29tLi4uLm5v bmUsemxpYgowMmEwOiA0MCA2RiA3MCA2NSA2RSA3MyA3MyA2OCAgMkUgNjMgNkYgNkQgMDAgMDAg MDAgMDAgOiBAb3BlbnNzaC5jb20uLi4uCjAyYjA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA6IC4uLi4uLi4uLi4uLi4uLi4KPT4gbGlic3NoMl90cmFu c3BvcnRfcmVhZCgpIHBsYWluICg2OTIgYnl0ZXMpCjAwMDA6IDE0IDIzIDA2IDAzIEQ4IEU0IDBB IDBEICBGRSAyMCAyQSAzNCBFQyBGMiA0MyAzQyA6IC4jLi4uLi4uLiAqNC4uQzwKMDAxMDogRDMg MDAgMDAgMDAgNTkgNjQgNjkgNjYgIDY2IDY5IDY1IDJEIDY4IDY1IDZDIDZDIDogLi4uLllkaWZm aWUtaGVsbAowMDIwOiA2RCA2MSA2RSAyRCA2NyA3MiA2RiA3NSAgNzAgMkQgNjUgNzggNjMgNjgg NjEgNkUgOiBtYW4tZ3JvdXAtZXhjaGFuCjAwMzA6IDY3IDY1IDJEIDczIDY4IDYxIDMxIDJDICA2 NCA2OSA2NiA2NiA2OSA2NSAyRCA2OCA6IGdlLXNoYTEsZGlmZmllLWgKMDA0MDogNjUgNkMgNkMg NkQgNjEgNkUgMkQgNjcgIDcyIDZGIDc1IDcwIDMxIDM0IDJEIDczIDogZWxsbWFuLWdyb3VwMTQt cwowMDUwOiA2OCA2MSAzMSAyQyA2NCA2OSA2NiA2NiAgNjkgNjUgMkQgNjggNjUgNkMgNkMgNkQg OiBoYTEsZGlmZmllLWhlbGxtCjAwNjA6IDYxIDZFIDJEIDY3IDcyIDZGIDc1IDcwICAzMSAyRCA3 MyA2OCA2MSAzMSAwMCAwMCA6IGFuLWdyb3VwMS1zaGExLi4KMDA3MDogMDAgMEYgNzMgNzMgNjgg MkQgNzIgNzMgIDYxIDJDIDczIDczIDY4IDJEIDY0IDczIDogLi5zc2gtcnNhLHNzaC1kcwowMDgw OiA3MyAwMCAwMCAwMCA5RCA2MSA2NSA3MyAgMzEgMzIgMzggMkQgNjMgNzQgNzIgMkMgOiBzLi4u LmFlczEyOC1jdHIsCjAwOTA6IDYxIDY1IDczIDMxIDM5IDMyIDJEIDYzICA3NCA3MiAyQyA2MSA2 NSA3MyAzMiAzNSA6IGFlczE5Mi1jdHIsYWVzMjUKMDBhMDogMzYgMkQgNjMgNzQgNzIgMkMgNjEg NzIgIDYzIDY2IDZGIDc1IDcyIDMyIDM1IDM2IDogNi1jdHIsYXJjZm91cjI1NgowMGIwOiAyQyA2 MSA3MiA2MyA2NiA2RiA3NSA3MiAgMzEgMzIgMzggMkMgNjEgNjUgNzMgMzEgOiAsYXJjZm91cjEy OCxhZXMxCjAwYzA6IDMyIDM4IDJEIDYzIDYyIDYzIDJDIDMzICA2NCA2NSA3MyAyRCA2MyA2MiA2 MyAyQyA6IDI4LWNiYywzZGVzLWNiYywKMDBkMDogNjIgNkMgNkYgNzcgNjYgNjkgNzMgNjggIDJE IDYzIDYyIDYzIDJDIDYzIDYxIDczIDogYmxvd2Zpc2gtY2JjLGNhcwowMGUwOiA3NCAzMSAzMiAz OCAyRCA2MyA2MiA2MyAgMkMgNjEgNjUgNzMgMzEgMzkgMzIgMkQgOiB0MTI4LWNiYyxhZXMxOTIt CjAwZjA6IDYzIDYyIDYzIDJDIDYxIDY1IDczIDMyICAzNSAzNiAyRCA2MyA2MiA2MyAyQyA2MSA6 IGNiYyxhZXMyNTYtY2JjLGEKMDEwMDogNzIgNjMgNjYgNkYgNzUgNzIgMkMgNzIgIDY5IDZBIDZF IDY0IDYxIDY1IDZDIDJEIDogcmNmb3VyLHJpam5kYWVsLQowMTEwOiA2MyA2MiA2MyA0MCA2QyA3 OSA3MyA2MSAgNzQgNkYgNzIgMkUgNkMgNjkgNzUgMkUgOiBjYmNAbHlzYXRvci5saXUuCjAxMjA6 IDczIDY1IDAwIDAwIDAwIDlEIDYxIDY1ICA3MyAzMSAzMiAzOCAyRCA2MyA3NCA3MiA6IHNlLi4u LmFlczEyOC1jdHIKMDEzMDogMkMgNjEgNjUgNzMgMzEgMzkgMzIgMkQgIDYzIDc0IDcyIDJDIDYx IDY1IDczIDMyIDogLGFlczE5Mi1jdHIsYWVzMgowMTQwOiAzNSAzNiAyRCA2MyA3NCA3MiAyQyA2 MSAgNzIgNjMgNjYgNkYgNzUgNzIgMzIgMzUgOiA1Ni1jdHIsYXJjZm91cjI1CjAxNTA6IDM2IDJD IDYxIDcyIDYzIDY2IDZGIDc1ICA3MiAzMSAzMiAzOCAyQyA2MSA2NSA3MyA6IDYsYXJjZm91cjEy OCxhZXMKMDE2MDogMzEgMzIgMzggMkQgNjMgNjIgNjMgMkMgIDMzIDY0IDY1IDczIDJEIDYzIDYy IDYzIDogMTI4LWNiYywzZGVzLWNiYwowMTcwOiAyQyA2MiA2QyA2RiA3NyA2NiA2OSA3MyAgNjgg MkQgNjMgNjIgNjMgMkMgNjMgNjEgOiAsYmxvd2Zpc2gtY2JjLGNhCjAxODA6IDczIDc0IDMxIDMy IDM4IDJEIDYzIDYyICA2MyAyQyA2MSA2NSA3MyAzMSAzOSAzMiA6IHN0MTI4LWNiYyxhZXMxOTIK MDE5MDogMkQgNjMgNjIgNjMgMkMgNjEgNjUgNzMgIDMyIDM1IDM2IDJEIDYzIDYyIDYzIDJDIDog LWNiYyxhZXMyNTYtY2JjLAowMWEwOiA2MSA3MiA2MyA2NiA2RiA3NSA3MiAyQyAgNzIgNjkgNkEg NkUgNjQgNjEgNjUgNkMgOiBhcmNmb3VyLHJpam5kYWVsCjAxYjA6IDJEIDYzIDYyIDYzIDQwIDZD IDc5IDczICA2MSA3NCA2RiA3MiAyRSA2QyA2OSA3NSA6IC1jYmNAbHlzYXRvci5saXUKMDFjMDog MkUgNzMgNjUgMDAgMDAgMDAgNTUgNjggIDZEIDYxIDYzIDJEIDZEIDY0IDM1IDJDIDogLnNlLi4u VWhtYWMtbWQ1LAowMWQwOiA2OCA2RCA2MSA2MyAyRCA3MyA2OCA2MSAgMzEgMkMgNjggNkQgNjEg NjMgMkQgNzIgOiBobWFjLXNoYTEsaG1hYy1yCjAxZTA6IDY5IDcwIDY1IDZEIDY0IDMxIDM2IDMw ICAyQyA2OCA2RCA2MSA2MyAyRCA3MiA2OSA6IGlwZW1kMTYwLGhtYWMtcmkKMDFmMDogNzAgNjUg NkQgNjQgMzEgMzYgMzAgNDAgIDZGIDcwIDY1IDZFIDczIDczIDY4IDJFIDogcGVtZDE2MEBvcGVu c3NoLgowMjAwOiA2MyA2RiA2RCAyQyA2OCA2RCA2MSA2MyAgMkQgNzMgNjggNjEgMzEgMkQgMzkg MzYgOiBjb20saG1hYy1zaGExLTk2CjAyMTA6IDJDIDY4IDZEIDYxIDYzIDJEIDZEIDY0ICAzNSAy RCAzOSAzNiAwMCAwMCAwMCA1NSA6ICxobWFjLW1kNS05Ni4uLlUKMDIyMDogNjggNkQgNjEgNjMg MkQgNkQgNjQgMzUgIDJDIDY4IDZEIDYxIDYzIDJEIDczIDY4IDogaG1hYy1tZDUsaG1hYy1zaAow MjMwOiA2MSAzMSAyQyA2OCA2RCA2MSA2MyAyRCAgNzIgNjkgNzAgNjUgNkQgNjQgMzEgMzYgOiBh MSxobWFjLXJpcGVtZDE2CjAyNDA6IDMwIDJDIDY4IDZEIDYxIDYzIDJEIDcyICA2OSA3MCA2NSA2 RCA2NCAzMSAzNiAzMCA6IDAsaG1hYy1yaXBlbWQxNjAKMDI1MDogNDAgNkYgNzAgNjUgNkUgNzMg NzMgNjggIDJFIDYzIDZGIDZEIDJDIDY4IDZEIDYxIDogQG9wZW5zc2guY29tLGhtYQowMjYwOiA2 MyAyRCA3MyA2OCA2MSAzMSAyRCAzOSAgMzYgMkMgNjggNkQgNjEgNjMgMkQgNkQgOiBjLXNoYTEt OTYsaG1hYy1tCjAyNzA6IDY0IDM1IDJEIDM5IDM2IDAwIDAwIDAwICAxNSA2RSA2RiA2RSA2NSAy QyA3QSA2QyA6IGQ1LTk2Li4uLm5vbmUsemwKMDI4MDogNjkgNjIgNDAgNkYgNzAgNjUgNkUgNzMg IDczIDY4IDJFIDYzIDZGIDZEIDAwIDAwIDogaWJAb3BlbnNzaC5jb20uLgowMjkwOiAwMCAxNSA2 RSA2RiA2RSA2NSAyQyA3QSAgNkMgNjkgNjIgNDAgNkYgNzAgNjUgNkUgOiAuLm5vbmUsemxpYkBv cGVuCjAyYTA6IDczIDczIDY4IDJFIDYzIDZGIDZEIDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCA6IHNzaC5jb20uLi4uLi4uLi4KMDJiMDogMDAgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogLi4uLgpbbGlic3NoMl0gMC4xODg2OTIgVHJhbnNwb3J0OiBQ YWNrZXQgdHlwZSAyMCByZWNlaXZlZCwgbGVuZ3RoPTY5MgpbbGlic3NoMl0gMC4xODg3MDEgVHJh bnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogMjAKW2xpYnNzaDJdIDAuMTg4NzEz IEtleSBFeDogQWdyZWVkIG9uIEtFWCBtZXRob2Q6IGRpZmZpZS1oZWxsbWFuLWdyb3VwMTQtc2hh MQpbbGlic3NoMl0gMC4xODg3MTcgS2V5IEV4OiBBZ3JlZWQgb24gSE9TVEtFWSBtZXRob2Q6IHNz aC1yc2EKW2xpYnNzaDJdIDAuMTg4NzIxIEtleSBFeDogQWdyZWVkIG9uIENSWVBUX0NTIG1ldGhv ZDogYWVzMTI4LWN0cgpbbGlic3NoMl0gMC4xODg3MjQgS2V5IEV4OiBBZ3JlZWQgb24gQ1JZUFRf U0MgbWV0aG9kOiBhZXMxMjgtY3RyCltsaWJzc2gyXSAwLjE4ODcyNyBLZXkgRXg6IEFncmVlZCBv biBNQUNfQ1MgbWV0aG9kOiBobWFjLXNoYTEKW2xpYnNzaDJdIDAuMTg4NzMwIEtleSBFeDogQWdy ZWVkIG9uIE1BQ19TQyBtZXRob2Q6IGhtYWMtc2hhMQpbbGlic3NoMl0gMC4xODg3MzQgS2V5IEV4 OiBBZ3JlZWQgb24gQ09NUF9DUyBtZXRob2Q6IG5vbmUKW2xpYnNzaDJdIDAuMTg4NzM3IEtleSBF eDogQWdyZWVkIG9uIENPTVBfU0MgbWV0aG9kOiBub25lCltsaWJzc2gyXSAwLjE4ODc1MiBLZXkg RXg6IEluaXRpYXRpbmcgRGlmZmllLUhlbGxtYW4gR3JvdXAxNCBLZXkgRXhjaGFuZ2UKW2xpYnNz aDJdIDAuMTg5NjIyIEtleSBFeDogU2VuZGluZyBLRVggcGFja2V0IDMwCj0+IGxpYnNzaDJfdHJh bnNwb3J0X3dyaXRlIHBsYWluICgyNjEgYnl0ZXMpCjAwMDA6IDFFIDAwIDAwIDAxIDAwIDREIEI0 IEYzICA2NiAxRCAyNiA3RiBENCBDMyAyOCA4QiA6IC4uLi4uTS4uZi4mLi4uKC4KMDAxMDogNjgg MDAgQkQgOEUgMzYgODUgNjYgQTQgIDQ0IENCIDU0IEYzIDM4IDIyIEIwIDc5IDogaC4uLjYuZi5E LlQuOCIueQowMDIwOiAwRiA2MCA3QiA3RSBGNiAwQSBGQSA1QyAgNzUgOTkgRTEgQzkgMkIgRkMg OTcgODcgOiAuYHt+Li4uXHUuLi4rLi4uCjAwMzA6IDI2IDFGIEY4IDVCIDkxIEQxIDZFIEQ0ICBC NCBCNiBENCAxMiA1MiAxRCBCRCAwQSA6ICYuLlsuLm4uLi4uLlIuLi4KMDA0MDogN0IgRUMgNjcg RkEgOUMgNjAgQjIgNzggIDdGIDhDIDZEIDU0IDg0IDI2IEM4IEM3IDogey5nLi5gLnguLm1ULiYu LgowMDUwOiA3NiBENSA2RCBGOCA0MCBBNyAzQyAwNCAgQjkgNDAgODYgNjggQkEgRDUgQjcgQTEg OiB2Lm0uQC48Li5ALmguLi4uCjAwNjA6IDVDIDVCIDdDIDAyIEQ3IDdCIDU0IDNGICBBRCBDQiBE NSBGQiA2QyA5MyBCNyA5RSA6IFxbfC4ue1Q/Li4uLmwuLi4KMDA3MDogMzIgMTggMUIgNDggQTUg NjggM0QgRTggIEUxIDQ0IEI5IDA5IDNEIDJBIDlCIEFFIDogMi4uSC5oPS4uRC4uPSouLgowMDgw OiA4OSAwMCAzMyAwQiAxMCA2OSA5MiA5RSAgNTEgNjggMUEgNzMgNEEgMzEgMzQgQTQgOiAuLjMu LmkuLlFoLnNKMTQuCjAwOTA6IDI3IEExIDI5IEJEIDYyIDU1IEZEIEFDICA5MSA5NyBERiBGRSA3 MCAyMCBFMiAzQyA6ICcuKS5iVS4uLi4uLnAgLjwKMDBhMDogMTMgOTcgMEYgNzAgMUQgRDAgNDAg MzQgIDQyIEZGIEZEIDM3IDFFIDVBIEVEIDJCIDogLi4ucC4uQDRCLi43LlouKwowMGIwOiA3QyBB MCA2QSA5NSAwQiBEOSA4QyAyRSAgM0UgRUYgMEIgMTIgNjkgQUMgMDUgMEIgOiB8LmouLi4uLj4u Li5pLi4uCjAwYzA6IDJEIEE0IDBBIEUzIDZCIEEwIDY2IDMzICAxOCA1RSA1NyAxNyAxRiBENCBE MSA0MyA6IC0uLi5rLmYzLl5XLi4uLkMKMDBkMDogODQgRjIgQjUgNUMgNDQgMjQgRjggQTkgIEFC IENEIEMyIDRGIEI4IDY3IDIxIDQ2IDogLi4uXEQkLi4uLi5PLmchRgowMGUwOiA2QSBDNSAwRiBF MSBGQyBCNyAyQiBCNCAgNjIgQUQgNTYgQjYgREMgQ0MgMDQgODUgOiBqLi4uLi4rLmIuVi4uLi4u CjAwZjA6IDg0IEIwIDg2IDFDIEZGIEIwIEU1IDNFICA1OCAyNCA3QyAyQSA2NyAwMCAxMyA2OCA6 IC4uLi4uLi4+WCR8KmcuLmgKMDEwMDogRkYgNjIgM0MgRTMgNDggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogLmI8LkgKW2xpYnNzaDJdIDAuMTg5Njg1IFNvY2tldDogU2VudCAy NzIvMjcyIGJ5dGVzIGF0IDB4ZjNhNTUwCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHNlbmQo KSAoMjcyIGJ5dGVzKQowMDAwOiAwMCAwMCAwMSAwQyAwNiAxRSAwMCAwMCAgMDEgMDAgNEQgQjQg RjMgNjYgMUQgMjYgOiAuLi4uLi4uLi4uTS4uZi4mCjAwMTA6IDdGIEQ0IEMzIDI4IDhCIDY4IDAw IEJEICA4RSAzNiA4NSA2NiBBNCA0NCBDQiA1NCA6IC4uLiguaC4uLjYuZi5ELlQKMDAyMDogRjMg MzggMjIgQjAgNzkgMEYgNjAgN0IgIDdFIEY2IDBBIEZBIDVDIDc1IDk5IEUxIDogLjgiLnkuYHt+ Li4uXHUuLgowMDMwOiBDOSAyQiBGQyA5NyA4NyAyNiAxRiBGOCAgNUIgOTEgRDEgNkUgRDQgQjQg QjYgRDQgOiAuKy4uLiYuLlsuLm4uLi4uCjAwNDA6IDEyIDUyIDFEIEJEIDBBIDdCIEVDIDY3ICBG QSA5QyA2MCBCMiA3OCA3RiA4QyA2RCA6IC5SLi4uey5nLi5gLnguLm0KMDA1MDogNTQgODQgMjYg QzggQzcgNzYgRDUgNkQgIEY4IDQwIEE3IDNDIDA0IEI5IDQwIDg2IDogVC4mLi52Lm0uQC48Li5A LgowMDYwOiA2OCBCQSBENSBCNyBBMSA1QyA1QiA3QyAgMDIgRDcgN0IgNTQgM0YgQUQgQ0IgRDUg OiBoLi4uLlxbfC4ue1Q/Li4uCjAwNzA6IEZCIDZDIDkzIEI3IDlFIDMyIDE4IDFCICA0OCBBNSA2 OCAzRCBFOCBFMSA0NCBCOSA6IC5sLi4uMi4uSC5oPS4uRC4KMDA4MDogMDkgM0QgMkEgOUIgQUUg ODkgMDAgMzMgIDBCIDEwIDY5IDkyIDlFIDUxIDY4IDFBIDogLj0qLi4uLjMuLmkuLlFoLgowMDkw OiA3MyA0QSAzMSAzNCBBNCAyNyBBMSAyOSAgQkQgNjIgNTUgRkQgQUMgOTEgOTcgREYgOiBzSjE0 LicuKS5iVS4uLi4uCjAwYTA6IEZFIDcwIDIwIEUyIDNDIDEzIDk3IDBGICA3MCAxRCBEMCA0MCAz NCA0MiBGRiBGRCA6IC5wIC48Li4ucC4uQDRCLi4KMDBiMDogMzcgMUUgNUEgRUQgMkIgN0MgQTAg NkEgIDk1IDBCIEQ5IDhDIDJFIDNFIEVGIDBCIDogNy5aLit8LmouLi4uLj4uLgowMGMwOiAxMiA2 OSBBQyAwNSAwQiAyRCBBNCAwQSAgRTMgNkIgQTAgNjYgMzMgMTggNUUgNTcgOiAuaS4uLi0uLi5r LmYzLl5XCjAwZDA6IDE3IDFGIEQ0IEQxIDQzIDg0IEYyIEI1ICA1QyA0NCAyNCBGOCBBOSBBQiBD RCBDMiA6IC4uLi5DLi4uXEQkLi4uLi4KMDBlMDogNEYgQjggNjcgMjEgNDYgNkEgQzUgMEYgIEUx IEZDIEI3IDJCIEI0IDYyIEFEIDU2IDogTy5nIUZqLi4uLi4rLmIuVgowMGYwOiBCNiBEQyBDQyAw NCA4NSA4NCBCMCA4NiAgMUMgRkYgQjAgRTUgM0UgNTggMjQgN0MgOiAuLi4uLi4uLi4uLi4+WCR8 CjAxMDA6IDJBIDY3IDAwIDEzIDY4IEZGIDYyIDNDICBFMyA0OCBEMyA3RSA2NyBCNiBCNiAyRCA6 ICpnLi5oLmI8LkgufmcuLi0KW2xpYnNzaDJdIDAuMTg5NzM0IFRyYW5zcG9ydDogTG9va2luZyBm b3IgcGFja2V0IG9mIHR5cGU6IDMxCltsaWJzc2gyXSAwLjE5NTYzNSBTb2NrZXQ6IFJlY3ZlZCA1 OTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkg cmF3ICg1OTIgYnl0ZXMpCjAwMDA6IDAwIDAwIDAyIDNDIDBBIDFGIDAwIDAwICAwMCA5NSAwMCAw MCAwMCAwNyA3MyA3MyA6IC4uLjwuLi4uLi4uLi4uc3MKMDAxMDogNjggMkQgNzIgNzMgNjEgMDAg MDAgMDAgIDAxIDIzIDAwIDAwIDAwIDgxIDAwIERBIDogaC1yc2EuLi4uIy4uLi4uLgowMDIwOiBE MiA2RCBCNSA2RiA5MCA0NSBBRiA5MCAgODYgQ0EgMTMgMEUgMDAgNjcgNDMgQjEgOiAubS5vLkUu Li4uLi4uZ0MuCjAwMzA6IDk3IDE4IERFIEUyIDc2IDZFIDk3IENDICBBQyA4NSBBRSAyMSA2MyA3 MiAyNCA2QiA6IC4uLi52bi4uLi4uIWNyJGsKMDA0MDogM0EgMjQgMjQgRjEgMDUgRDEgNTcgNjkg IDdGIEY2IDc2IDFEIDlFIDE4IEFDIDk5IDogOiQkLi4uV2kuLnYuLi4uLgowMDUwOiBCRCAwMSAy NyA2RCBDNyAxMyBEQSBFQSAgM0IgMjkgQzEgNEUgNzkgREYgOUUgOEYgOiAuLidtLi4uLjspLk55 Li4uCjAwNjA6IEExIEQ2IDk5IDRFIDMwIDFGIDhGIDlCICA4QiA4RCAzOSBENiA2MiA4MCAzMSBG QyA6IC4uLk4wLi4uLi45LmIuMS4KMDA3MDogRjYgN0YgMUUgMTAgOUUgMUEgQzAgRUMgIDBGIDI2 IEQ5IEJEIDQ5IEIxIDU5IEQ0IDogLi4uLi4uLi4uJi4uSS5ZLgowMDgwOiA2NyAxRiAwRSA0NyAz RiAzNCA3OCA4NSAgOTkgQTcgNTMgMTggNkQgRDIgMDggMEEgOiBnLi5HPzR4Li4uUy5tLi4uCjAw OTA6IERCIEY0IDBBIDhCIEYyIDU1IDRFIDZFICA4OCBBOSA0NCA2NyBGOSAwOSBDQiAwMCA6IC4u Li4uVU5uLi5EZy4uLi4KMDBhMDogMDAgMDEgMDAgMDUgNjEgMUMgNjYgRUQgIDFGIDEwIEUzIDc1 IEREIDgzIDVEIENCIDogLi4uLmEuZi4uLi51Li5dLgowMGIwOiA4OSA5QiBEOCBFNyA2MSBGNCA4 QiBEOCAgQkMgRkMgNjggRTEgNjYgNkUgOEUgMzcgOiAuLi4uYS4uLi4uaC5mbi43CjAwYzA6IDNE IDJGIEI4IDhBIDVEIDE5IDM0IDFCICBFNCBFOSBFQSBGMCAxMyBBOCBFNCBDNiA6ID0vLi5dLjQu Li4uLi4uLi4KMDBkMDogNUQgMDEgMjggNEYgRDMgMTcgMDcgQUIgIDNBIEJEIDQ1IEUwIDc0IEZD IEJGIEQ5IDogXS4oTy4uLi46LkUudC4uLgowMGUwOiAwQyA5RCBEMSBBRiBGMCA5NyBERSBBQyAg MEEgQjQgNkIgN0EgODUgN0EgQTYgMkIgOiAuLi4uLi4uLi4ua3ouei4rCjAwZjA6IEU3IDUzIEI1 IDQ3IDg3IERCIDMzIDU1ICBFMSAwRSAxNiAwOCA2NiAwOCA3NCBGQiA6IC5TLkcuLjNVLi4uLmYu dC4KMDEwMDogMjIgQjggRkUgODEgQkQgODcgQUYgNTkgIDQzIDQ3IEU0IDJGIDY1IDk2IERDIDFE IDogIi4uLi4uLllDRy4vZS4uLgowMTEwOiAwNiBCNCAwNCA1MSAzMSBBRSBDNiA5OSAgRTggOEUg OTMgRDIgODQgRjkgMDYgMUYgOiAuLi5RMS4uLi4uLi4uLi4uCjAxMjA6IEUyIEEyIERFIDZDIDQ1 IEYyIDUxIDQ1ICBDNSAyNCBBOCBCQyAxQyBDNyBDNCA4MSA6IC4uLmxFLlFFLiQuLi4uLi4KMDEz MDogN0MgMEMgOUQgNkIgMUUgN0MgMTEgRUQgIDc5IDNEIEYyIEUzIDQ5IEMyIEFFIDQxIDogfC4u ay58Li55PS4uSS4uQQowMTQwOiAwNSBGNCBGQiAyMyA4MSA2NyBCNiA2MCAgOTAgNzYgMzIgQjUg ODcgMTQgQTcgRjQgOiAuLi4jLmcuYC52Mi4uLi4uCjAxNTA6IEJCIEFGIDg0IEI0IDE2IEJBIDRB IDMyICA1MCA2NCA2MSBCRiBFNSA2RSA1RCBGMSA6IC4uLi4uLkoyUGRhLi5uXS4KMDE2MDogRDgg M0MgRjEgMTAgMzAgMkEgRDAgNDcgIDExIEFFIDVDIEI4IEYyIDdCIERGIDcxIDogLjwuLjAqLkcu LlwuLnsucQowMTcwOiAwRSA0MCA1RCA0MCA1QyAwOSAxMCBBNiAgRUEgOEYgMzAgNkYgOTUgMzgg M0MgRjQgOiAuQF1AXC4uLi4uMG8uODwuCjAxODA6IDVGIEU1IENGIDc5IEUyIDA1IDBBIDBCICA4 QyBDRiAzQyA1RCBCMiA1MCAyNiA1OCA6IF8uLnkuLi4uLi48XS5QJlgKMDE5MDogNjQgNUEgMDAg OTggQjggNEQgNjMgREIgIEI0IDY4IDI5IDI5IEQ1IDAyIDVBIDE4IDogZFouLi5NYy4uaCkpLi5a LgowMWEwOiA1RSBFRCAyMSAwMCAwMCAwMCA4RiAwMCAgMDAgMDAgMDcgNzMgNzMgNjggMkQgNzIg OiBeLiEuLi4uLi4uLnNzaC1yCjAxYjA6IDczIDYxIDAwIDAwIDAwIDgwIDMxIERBICAwMiBBOCBF QiA3OSA5NSAxNyBBRiA4MiA6IHNhLi4uLjEuLi4ueS4uLi4KMDFjMDogRkMgNzIgQTAgNTQgM0Yg QzcgMjUgOEEgIDQwIEQ5IEI2IDM3IEE2IDVGIENBIDE0IDogLnIuVD8uJS5ALi43Ll8uLgowMWQw OiBFMyA0MSAyNSA5RSAzQyAwMCBGRiA5MSAgRjkgRkEgRTUgRTAgM0UgMkMgMUMgQUQgOiAuQSUu PC4uLi4uLi4+LC4uCjAxZTA6IEM4IEU4IDk4IENBIDE0IDNCIDc5IDJDICA1NyBFQSBCNCAwRCBB NCBBOCA3NyAxNiA6IC4uLi4uO3ksVy4uLi4udy4KMDFmMDogMzQgN0QgRDAgQTAgOTUgQzEgOUEg NDggIDhGIEYwIDgyIDVGIDMzIDFEIEQ4IEVFIDogNH0uLi4uLkguLi5fMy4uLgowMjAwOiA1QyBD RCBFNCAzNCBCMSBENCBFQiBERiAgMTcgQjEgMjcgMTIgMDkgMTcgOUQgQkEgOiBcLi40Li4uLi4u Jy4uLi4uCjAyMTA6IDEyIEExIDVEIEU4IDZBIDVGIDIyIEQ4ICA1MSAzRSA3MyBDMyA1OSA2NiA3 MSBGNyA6IC4uXS5qXyIuUT5zLllmcS4KMDIyMDogNDggMjIgM0IgRDIgRjkgMTkgQUYgMTEgIEM2 IDI1IDg5IDlCIEYwIDFEIENGIDQ0IDogSCI7Li4uLi4uJS4uLi4uRAowMjMwOiAzNiBDNiA5NSAy RSA2MyA3QiAwMCAwMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgOiA2Li4uY3suLi4uLi4uLi4u CjAyNDA6IDAwIDAwIDAwIDBDIDBBIDE1IDAwIDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA6 IC4uLi4uLi4uLi4uLi4uLi4KPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICg1NjEg Ynl0ZXMpCjAwMDA6IDFGIDAwIDAwIDAwIDk1IDAwIDAwIDAwICAwNyA3MyA3MyA2OCAyRCA3MiA3 MyA2MSA6IC4uLi4uLi4uLnNzaC1yc2EKMDAxMDogMDAgMDAgMDAgMDEgMjMgMDAgMDAgMDAgIDgx IDAwIERBIEQyIDZEIEI1IDZGIDkwIDogLi4uLiMuLi4uLi4ubS5vLgowMDIwOiA0NSBBRiA5MCA4 NiBDQSAxMyAwRSAwMCAgNjcgNDMgQjEgOTcgMTggREUgRTIgNzYgOiBFLi4uLi4uLmdDLi4uLi52 CjAwMzA6IDZFIDk3IENDIEFDIDg1IEFFIDIxIDYzICA3MiAyNCA2QiAzQSAyNCAyNCBGMSAwNSA6 IG4uLi4uLiFjciRrOiQkLi4KMDA0MDogRDEgNTcgNjkgN0YgRjYgNzYgMUQgOUUgIDE4IEFDIDk5 IEJEIDAxIDI3IDZEIEM3IDogLldpLi52Li4uLi4uLidtLgowMDUwOiAxMyBEQSBFQSAzQiAyOSBD MSA0RSA3OSAgREYgOUUgOEYgQTEgRDYgOTkgNEUgMzAgOiAuLi47KS5OeS4uLi4uLk4wCjAwNjA6 IDFGIDhGIDlCIDhCIDhEIDM5IEQ2IDYyICA4MCAzMSBGQyBGNiA3RiAxRSAxMCA5RSA6IC4uLi4u OS5iLjEuLi4uLi4KMDA3MDogMUEgQzAgRUMgMEYgMjYgRDkgQkQgNDkgIEIxIDU5IEQ0IDY3IDFG IDBFIDQ3IDNGIDogLi4uLiYuLkkuWS5nLi5HPwowMDgwOiAzNCA3OCA4NSA5OSBBNyA1MyAxOCA2 RCAgRDIgMDggMEEgREIgRjQgMEEgOEIgRjIgOiA0eC4uLlMubS4uLi4uLi4uCjAwOTA6IDU1IDRF IDZFIDg4IEE5IDQ0IDY3IEY5ICAwOSBDQiAwMCAwMCAwMSAwMCAwNSA2MSA6IFVObi4uRGcuLi4u Li4uLmEKMDBhMDogMUMgNjYgRUQgMUYgMTAgRTMgNzUgREQgIDgzIDVEIENCIDg5IDlCIEQ4IEU3 IDYxIDogLmYuLi4udS4uXS4uLi4uYQowMGIwOiBGNCA4QiBEOCBCQyBGQyA2OCBFMSA2NiAgNkUg OEUgMzcgM0QgMkYgQjggOEEgNUQgOiAuLi4uLmguZm4uNz0vLi5dCjAwYzA6IDE5IDM0IDFCIEU0 IEU5IEVBIEYwIDEzICBBOCBFNCBDNiA1RCAwMSAyOCA0RiBEMyA6IC40Li4uLi4uLi4uXS4oTy4K MDBkMDogMTcgMDcgQUIgM0EgQkQgNDUgRTAgNzQgIEZDIEJGIEQ5IDBDIDlEIEQxIEFGIEYwIDog Li4uOi5FLnQuLi4uLi4uLgowMGUwOiA5NyBERSBBQyAwQSBCNCA2QiA3QSA4NSAgN0EgQTYgMkIg RTcgNTMgQjUgNDcgODcgOiAuLi4uLmt6LnouKy5TLkcuCjAwZjA6IERCIDMzIDU1IEUxIDBFIDE2 IDA4IDY2ICAwOCA3NCBGQiAyMiBCOCBGRSA4MSBCRCA6IC4zVS4uLi5mLnQuIi4uLi4KMDEwMDog ODcgQUYgNTkgNDMgNDcgRTQgMkYgNjUgIDk2IERDIDFEIDA2IEI0IDA0IDUxIDMxIDogLi5ZQ0cu L2UuLi4uLi5RMQowMTEwOiBBRSBDNiA5OSBFOCA4RSA5MyBEMiA4NCAgRjkgMDYgMUYgRTIgQTIg REUgNkMgNDUgOiAuLi4uLi4uLi4uLi4uLmxFCjAxMjA6IEYyIDUxIDQ1IEM1IDI0IEE4IEJDIDFD ICBDNyBDNCA4MSA3QyAwQyA5RCA2QiAxRSA6IC5RRS4kLi4uLi4ufC4uay4KMDEzMDogN0MgMTEg RUQgNzkgM0QgRjIgRTMgNDkgIEMyIEFFIDQxIDA1IEY0IEZCIDIzIDgxIDogfC4ueT0uLkkuLkEu Li4jLgowMTQwOiA2NyBCNiA2MCA5MCA3NiAzMiBCNSA4NyAgMTQgQTcgRjQgQkIgQUYgODQgQjQg MTYgOiBnLmAudjIuLi4uLi4uLi4uCjAxNTA6IEJBIDRBIDMyIDUwIDY0IDYxIEJGIEU1ICA2RSA1 RCBGMSBEOCAzQyBGMSAxMCAzMCA6IC5KMlBkYS4ubl0uLjwuLjAKMDE2MDogMkEgRDAgNDcgMTEg QUUgNUMgQjggRjIgIDdCIERGIDcxIDBFIDQwIDVEIDQwIDVDIDogKi5HLi5cLi57LnEuQF1AXAow MTcwOiAwOSAxMCBBNiBFQSA4RiAzMCA2RiA5NSAgMzggM0MgRjQgNUYgRTUgQ0YgNzkgRTIgOiAu Li4uLjBvLjg8Ll8uLnkuCjAxODA6IDA1IDBBIDBCIDhDIENGIDNDIDVEIEIyICA1MCAyNiA1OCA2 NCA1QSAwMCA5OCBCOCA6IC4uLi4uPF0uUCZYZFouLi4KMDE5MDogNEQgNjMgREIgQjQgNjggMjkg MjkgRDUgIDAyIDVBIDE4IDVFIEVEIDIxIDAwIDAwIDogTWMuLmgpKS4uWi5eLiEuLgowMWEwOiAw MCA4RiAwMCAwMCAwMCAwNyA3MyA3MyAgNjggMkQgNzIgNzMgNjEgMDAgMDAgMDAgOiAuLi4uLi5z c2gtcnNhLi4uCjAxYjA6IDgwIDMxIERBIDAyIEE4IEVCIDc5IDk1ICAxNyBBRiA4MiBGQyA3MiBB MCA1NCAzRiA6IC4xLi4uLnkuLi4uLnIuVD8KMDFjMDogQzcgMjUgOEEgNDAgRDkgQjYgMzcgQTYg IDVGIENBIDE0IEUzIDQxIDI1IDlFIDNDIDogLiUuQC4uNy5fLi4uQSUuPAowMWQwOiAwMCBGRiA5 MSBGOSBGQSBFNSBFMCAzRSAgMkMgMUMgQUQgQzggRTggOTggQ0EgMTQgOiAuLi4uLi4uPiwuLi4u Li4uCjAxZTA6IDNCIDc5IDJDIDU3IEVBIEI0IDBEIEE0ICBBOCA3NyAxNiAzNCA3RCBEMCBBMCA5 NSA6IDt5LFcuLi4uLncuNH0uLi4KMDFmMDogQzEgOUEgNDggOEYgRjAgODIgNUYgMzMgIDFEIEQ4 IEVFIDVDIENEIEU0IDM0IEIxIDogLi5ILi4uXzMuLi5cLi40LgowMjAwOiBENCBFQiBERiAxNyBC MSAyNyAxMiAwOSAgMTcgOUQgQkEgMTIgQTEgNUQgRTggNkEgOiAuLi4uLicuLi4uLi4uXS5qCjAy MTA6IDVGIDIyIEQ4IDUxIDNFIDczIEMzIDU5ICA2NiA3MSBGNyA0OCAyMiAzQiBEMiBGOSA6IF8i LlE+cy5ZZnEuSCI7Li4KMDIyMDogMTkgQUYgMTEgQzYgMjUgODkgOUIgRjAgIDFEIENGIDQ0IDM2 IEM2IDk1IDJFIDYzIDogLi4uLiUuLi4uLkQ2Li4uYwowMjMwOiA3QiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7CltsaWJzc2gyXSAwLjE5NTg2MSBUcmFu c3BvcnQ6IFBhY2tldCB0eXBlIDMxIHJlY2VpdmVkLCBsZW5ndGg9NTYxCltsaWJzc2gyXSAwLjE5 NTg2NyBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiAzMQpbbGlic3NoMl0g MC4xOTU5MjcgS2V5IEV4OiBTZXJ2ZXIncyBNRDUgRmluZ2VycHJpbnQ6IDdiOjYwOjg1Ojg1OjQ5 OjMzOjlmOjU3OjE1OjdjOjg1OmI2OmFiOjhhOmY1OmEwCltsaWJzc2gyXSAwLjE5NTk0NyBLZXkg RXg6IFNlcnZlcidzIFNIQTEgRmluZ2VycHJpbnQ6IDk1OmVhOjQxOmY3OmNkOmM0OjFhOjExOjgy OjllOjJiOjc0OjA3OjA1OmMyOjE0OjEyOjI1OjA1OjlhCltsaWJzc2gyXSAwLjE5NzE3OSBLZXkg RXg6IFNlbmRpbmcgTkVXS0VZUyBtZXNzYWdlCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBs YWluICgxIGJ5dGVzKQowMDAwOiAxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiAuCltsaWJzc2gyXSAwLjE5NzIzOCBTb2NrZXQ6IFNlbnQgMTYvMTYgYnl0 ZXMgYXQgMHhmM2E1NTAKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgpICgxNiBieXRl cykKMDAwMDogMDAgMDAgMDAgMEMgMEEgMTUgN0YgNTcgIEMzIEVDIDc1IDMyIEFFIENFIEY2IDM1 IDogLi4uLi4uLlcuLnUyLi4uNQpbbGlic3NoMl0gMC4xOTcyNTkgVHJhbnNwb3J0OiBMb29raW5n IGZvciBwYWNrZXQgb2YgdHlwZTogMjEKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWlu ICgxIGJ5dGVzKQowMDAwOiAxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiAuCltsaWJzc2gyXSAwLjE5NzI2OCBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDIx IHJlY2VpdmVkLCBsZW5ndGg9MQpbbGlic3NoMl0gMC4xOTcyNzMgVHJhbnNwb3J0OiBMb29raW5n IGZvciBwYWNrZXQgb2YgdHlwZTogMjEKW2xpYnNzaDJdIDAuMTk3Mjc2IEtleSBFeDogUmVjZWl2 ZWQgTkVXS0VZUyBtZXNzYWdlCltsaWJzc2gyXSAwLjE5NzI4MCBLZXkgRXg6IHNlc3Npb25faWQg Y2FsY3VsYXRlZApbbGlic3NoMl0gMC4xOTczMTUgS2V5IEV4OiBDbGllbnQgdG8gU2VydmVyIElW IGFuZCBLZXkgY2FsY3VsYXRlZApbbGlic3NoMl0gMC4xOTczMjYgS2V5IEV4OiBTZXJ2ZXIgdG8g Q2xpZW50IElWIGFuZCBLZXkgY2FsY3VsYXRlZApbbGlic3NoMl0gMC4xOTczMzIgS2V5IEV4OiBD bGllbnQgdG8gU2VydmVyIEhNQUMgS2V5IGNhbGN1bGF0ZWQKW2xpYnNzaDJdIDAuMTk3MzM5IEtl eSBFeDogU2VydmVyIHRvIENsaWVudCBITUFDIEtleSBjYWxjdWxhdGVkCltsaWJzc2gyXSAwLjE5 NzM0MyBLZXkgRXg6IENsaWVudCB0byBTZXJ2ZXIgY29tcHJlc3Npb24gaW5pdGlhbGl6ZWQKW2xp YnNzaDJdIDAuMTk3MzQ2IEtleSBFeDogU2VydmVyIHRvIENsaWVudCBjb21wcmVzc2lvbiBpbml0 aWFsaXplZApbbGlic3NoMl0gMC4xOTczNTcgVHJhbnNwb3J0OiBSZXF1ZXN0aW5nIHVzZXJhdXRo IHNlcnZpY2UKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4gKDE3IGJ5dGVzKQowMDAw OiAwNSAwMCAwMCAwMCAwQyA3MyA3MyA2OCAgMkQgNzUgNzMgNjUgNzIgNjEgNzUgNzQgOiAuLi4u LnNzaC11c2VyYXV0CjAwMTA6IDY4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IGgKW2xpYnNzaDJdIDAuMTk3NDAwIFNvY2tldDogU2VudCA1Mi81MiBieXRl cyBhdCAweGYzYTU1MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBzZW5kKCkgKDUyIGJ5dGVz KQowMDAwOiBDMyBGOCA1QSBEQSBDMCBCQyBDMiA0NyAgRDAgMDkgMzUgMkQgREYgMkMgREUgRjkg OiAuLlouLi4uRy4uNS0uLC4uCjAwMTA6IDU2IEM4IEIwIDFGIDc4IEM0IDgyIDI1ICBFMSA1QiBD MiBBOSBDMSAzNSA0OSBDRSA6IFYuLi54Li4lLlsuLi41SS4KMDAyMDogQjYgMzEgNjIgNjYgNTIg NjIgMjUgQ0QgIDNBIEJEIDFBIDA1IDdEIDZGIDY0IDJGIDogLjFiZlJiJS46Li4ufW9kLwowMDMw OiA2MCBFNiBBNCA1NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgLi5X CltsaWJzc2gyXSAwLjE5NzQxNSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBl OiA2CltsaWJzc2gyXSAwLjIzNzAyMCBTb2NrZXQ6IFJlY3ZlZCA1Mi8xNjM4NCBieXRlcyB0byAw eGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDUyIGJ5dGVzKQowMDAw OiBERSA4MSAxQiBCMiBBOCAxNCBCNyA3MyAgRDkgQTYgQkEgQzYgM0IgNEMgRDQgOEEgOiAuLi4u Li4ucy4uLi47TC4uCjAwMTA6IDNGIDUwIEZBIDVEIDUyIDQ3IDNCIEM5ICA4OCA2MCA0NiBGNSAx MiAwMyA0MCA5RiA6ID9QLl1SRzsuLmBGLi4uQC4KMDAyMDogNEEgQzggQkMgMEUgMEEgMzYgQjUg RDggIDY3IEE5IENEIDEzIDFEIDEyIEM3IDRFIDogSi4uLi42Li5nLi4uLi4uTgowMDMwOiAxNCBE NSBBQiA5RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi4uCj0+IGxp YnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMTcgYnl0ZXMpCjAwMDA6IDA2IDAwIDAwIDAw IDBDIDczIDczIDY4ICAyRCA3NSA3MyA2NSA3MiA2MSA3NSA3NCA6IC4uLi4uc3NoLXVzZXJhdXQK MDAxMDogNjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog aApbbGlic3NoMl0gMC4yMzcwNjcgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA2IHJlY2VpdmVkLCBs ZW5ndGg9MTcKW2xpYnNzaDJdIDAuMjM3MDcyIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0 IG9mIHR5cGU6IDYKW2xpYnNzaDJdIDAuMjM3MDg1IFVzZXJhdXRoOiBBdHRlbXB0aW5nIHRvIGxv Z2luIHVzaW5nIHBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dy aXRlIHBsYWluICg0NCBieXRlcykKMDAwMDogMzIgMDAgMDAgMDAgMDQgNzIgNkYgNkYgIDc0IDAw IDAwIDAwIDBFIDczIDczIDY4IDogMi4uLi5yb290Li4uLnNzaAowMDEwOiAyRCA2MyA2RiA2RSA2 RSA2NSA2MyA3NCAgNjkgNkYgNkUgMDAgMDAgMDAgMDggNzAgOiAtY29ubmVjdGlvbi4uLi5wCjAw MjA6IDYxIDczIDczIDc3IDZGIDcyIDY0IDAwICAwMCAwMCAwMCAwOSAgICAgICAgICAgICA6IGFz c3dvcmQuLi4uLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbjIgKDkgYnl0ZXMpCjAw MDA6IDM1IDM5IDM2IDM2IDMwIDMzIDMxIDM0ICAzMiAgICAgICAgICAgICAgICAgICAgICA6IHh4 eHh4CltsaWJzc2gyXSAwLjIzNzExOCBTb2NrZXQ6IFNlbnQgODQvODQgYnl0ZXMgYXQgMHhmM2E1 NTAKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgpICg4NCBieXRlcykKMDAwMDogNEUg NTkgMzkgN0IgMjMgMzkgNTcgOTcgIDM2IDRBIEFBIEE3IEUwIEI5IDFDIEREIDogTlk5eyM5Vy42 Si4uLi4uLgowMDEwOiA0QiAzOCAxNyA4OSBBRiAzQiA3MyBGOCAgNTggMTUgMEQgNzYgODkgNEIg ODMgRUUgOiBLOC4uLjtzLlguLnYuSy4uCjAwMjA6IEQxIDlBIDIwIDhBIEYxIDI5IEI1IEVEICAx OSA3MyA0QSAyNiBGRSA0QyAzRSAzOSA6IC4uIC4uKS4uLnNKJi5MPjkKMDAzMDogMjcgQ0IgRjkg MDYgQkYgODAgOEYgRkUgIEZCIEMxIEU4IDI0IDk2IDY5IDMyIEY3IDogJy4uLi4uLi4uLi4kLmky LgowMDQwOiA3QyA0NSAzNCBEQSBCNCA3QSBBNiA2MiAgOUQgQjUgRjMgNUYgNTEgN0UgQzEgQzQg OiB8RTQuLnouYi4uLl9Rfi4uCjAwNTA6IDIyIDJCIDVGIDQ2ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6ICIrX0YKW2xpYnNzaDJdIDAuMjM3MTQzIFRyYW5zcG9ydDogTG9v a2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDUyCltsaWJzc2gyXSAwLjIzNzE0NiBUcmFuc3BvcnQ6 IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA1MQpbbGlic3NoMl0gMC4yMzcxNTAgVHJhbnNw b3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogNjAKW2xpYnNzaDJdIDAuMjQ1NjEzIFRy YW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDUyCltsaWJzc2gyXSAwLjI0NTYy MCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA1MQpbbGlic3NoMl0gMC4y NDU2MjQgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogNjAKW2xpYnNzaDJd IDAuMjQ1NjI5IFNvY2tldDogUmVjdmVkIDM2LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4g bGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoMzYgYnl0ZXMpCjAwMDA6IDFDIEJFIEUzIDJE IEY5IDM4IDA5IEM3ICAwQyAwMCA1NSBFNyBEMCAyMiA0QyA2OCA6IC4uLi0uOC4uLi5VLi4iTGgK MDAxMDogNjMgRUUgMUQgRTAgMDQgRDkgMUIgMjggIDA4IEU2IENEIDYxIDY0IEM3IDYzIEFGIDog Yy4uLi4uLiguLi5hZC5jLgowMDIwOiAyNCA1NSBBNCA0NyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiAkVS5HCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAo MSBieXRlcykKMDAwMDogMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogNApbbGlic3NoMl0gMC4yNDU2NjEgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA1MiBy ZWNlaXZlZCwgbGVuZ3RoPTEKW2xpYnNzaDJdIDAuMjQ1NjY1IFRyYW5zcG9ydDogTG9va2luZyBm b3IgcGFja2V0IG9mIHR5cGU6IDUyCltsaWJzc2gyXSAwLjI0NTY2OSBVc2VyYXV0aDogUGFzc3dv cmQgYXV0aGVudGljYXRpb24gc3VjY2Vzc2Z1bApbbGlic3NoMl0gMC4yNDU2NzcgQ29ubjogQWxs b2NhdGVkIG5ldyBjaGFubmVsIElEIzAKW2xpYnNzaDJdIDAuMjQ1NjgxIENvbm46IE9wZW5pbmcg Q2hhbm5lbCAtIHdpbiAyNjIxNDQgcGFjayAzMjc2OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0 ZSBwbGFpbiAoMjQgYnl0ZXMpCjAwMDA6IDVBIDAwIDAwIDAwIDA3IDczIDY1IDczICA3MyA2OSA2 RiA2RSAwMCAwMCAwMCAwMCA6IFouLi4uc2Vzc2lvbi4uLi4KMDAxMDogMDAgMDQgMDAgMDAgMDAg MDAgODAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLi4uLi4KW2xpYnNzaDJdIDAu MjQ1NzA4IFNvY2tldDogU2VudCA2OC82OCBieXRlcyBhdCAweGYzYTU1MAo9PiBsaWJzc2gyX3Ry YW5zcG9ydF93cml0ZSBzZW5kKCkgKDY4IGJ5dGVzKQowMDAwOiBCNCBBMCAxNSBCRSA2MCBBMSA4 NiA4RCAgNEIgMkMgOTcgRUUgRTIgRkMgMTAgOUIgOiAuLi4uYC4uLkssLi4uLi4uCjAwMTA6IEYy IDVBIEEyIDM1IDlBIEVDIEMxIDg2ICBBNSA0RCBBRSBCRSA5MCBDNiA1NiAyQSA6IC5aLjUuLi4u Lk0uLi4uVioKMDAyMDogMkQgQUUgOUQgQUEgNDEgRjAgODkgODMgIDhGIDMwIEQ2IDAzIDJCIDY4 IEVFIDlDIDogLS4uLkEuLi4uMC4uK2guLgowMDMwOiA2RiAxNiAwNSAxNCAxRSA5MyBEMyAwQSAg QzAgN0EgRjUgNTAgQTcgNzUgRDggMDEgOiBvLi4uLi4uLi56LlAudS4uCjAwNDA6IERDIDY5IDJD IEJDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC5pLC4KW2xpYnNzaDJd IDAuMjQ1NzMwIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJz c2gyXSAwLjI0NTczMyBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpM aXN0ZW4gY3JlYXRlZApFVkVOVApFVkVOVApFVkVOVApFVkVOVApFVkVOVApFUlI6IC0zNyAtIFdv dWxkIGJsb2NrIHdhaXRpbmcKRVZFTlQKQVVUSAowNy4wNC4yMDE0IDEzOjU0OjAxLjI0NSBFeGUg Q2hhbm5lbCBlcnJvcjogLTM3IC0gV291bGQgYmxvY2sKW2xpYnNzaDJdIDAuMjUxODc0IFRyYW5z cG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSAwLjI1MTg5MyBU cmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gMC4yNTE5 MDEgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gy X3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykKMDAwMDogMUQgOTggQTMgRDIgNzQgNjgg NzcgOEUgIEMyIEE0IDczIEVCIDU2IEI4IDU4IDVEIDogLi4uLnRody4uLnMuVi5YXQowMDEwOiA2 NyBBMCA5QyA1MSBEMiA2NiAwRSA2MiAgNEUgNjAgNzYgNTYgNDEgMUMgOUQgMzIgOiBnLi5RLmYu Yk5gdlZBLi4yCjAwMjA6IDk0IEQyIDAyIDVGIDJGIEU5IDlFIDM0ICA0RCBDNyA0MSBENyA0QSA1 OSAyNSA1OCA6IC4uLl8vLi40TS5BLkpZJVgKMDAzMDogRkIgQTQgNzAgMTIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogLi5wLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFk KCkgcGxhaW4gKDE3IGJ5dGVzKQowMDAwOiA1QiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgODAgOiBbLi4uLi4uLi4uLi4uLi4uCjAwMTA6IDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4KW2xpYnNzaDJdIDAuMjUxOTQ3 IFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTEgcmVjZWl2ZWQsIGxlbmd0aD0xNwpbbGlic3NoMl0g MC4yNTE5NTUgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xpYnNz aDJdIDAuMjUxOTU5IENvbm46IENvbm5lY3Rpb24gRXN0YWJsaXNoZWQgLSBJRDogMC8wIHdpbjog MC8yNjIxNDQgcGFjazogMzI3NjgvMTQwNzMzMTkzNDIwODAwCkVWRU5UCjA3LjA0LjIwMTQgMTM6 NTQ6MDEuMjUxIFJFUSBmb3IgZXhlIGNvbW1hbmQgRklOSVNICltsaWJzc2gyXSAwLjI1MTk5OCBD b25uOiBzdGFydGluZyByZXF1ZXN0KGV4ZWMpIG9uIGNoYW5uZWwgMC8wLCBtZXNzYWdlPXNoIC9y b290L3RzdC5zaAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbiAoMTggYnl0ZXMpCjAw MDA6IDYyIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAwNCA2NSA3OCA2NSA2MyAwMSAwMCAwMCA6IGIu Li4uLi4uLmV4ZWMuLi4KMDAxMDogMDAgMEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogLi4KPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4yICgxNSBi eXRlcykKMDAwMDogNzMgNjggMjAgMkYgNzIgNkYgNkYgNzQgIDJGIDc0IDczIDc0IDJFIDczIDY4 ICAgIDogc2ggL3Jvb3QvdHN0LnNoCltsaWJzc2gyXSAwLjI1MjA0MyBTb2NrZXQ6IFNlbnQgNjgv NjggYnl0ZXMgYXQgMHhmM2E1NTAKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgpICg2 OCBieXRlcykKMDAwMDogMUYgMzEgRTkgRDIgNTkgQTcgNjQgQTAgIDYyIDNCIDQ1IDhBIEE1IDEy IENGIEJEIDogLjEuLlkuZC5iO0UuLi4uLgowMDEwOiA1QyA2OCA1MCA3NSA4OSAyMiA2RSAzMiAg MzAgNjEgNjMgRTIgNEMgNUYgM0QgM0IgOiBcaFB1LiJuMjBhYy5MXz07CjAwMjA6IDJDIEY2IERC IDExIDQzIDVBIEU3IDlFICAyRSBGQiA2MyA4QiAwNiBBNyBEOCAzOCA6ICwuLi5DWi4uLi5jLi4u LjgKMDAzMDogNjMgOTYgMDEgNTMgQjUgRDIgQzggM0UgIEYwIDBGIEQzIDRFIDVDIEU1IDQ5IDM3 IDogYy4uUy4uLj4uLi5OXC5JNwowMDQwOiBCQSA4NyBGRCA2OSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiAuLi5pCltsaWJzc2gyXSAwLjI1MjA2NyBUcmFuc3BvcnQ6IExv b2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5OQpbbGlic3NoMl0gMC4yNTIwNzEgVHJhbnNwb3J0 OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogMTAwCjA3LjA0LjIwMTQgMTM6NTQ6MDEuMjUy IEV4ZWN1dGUgY29tbWFuZCBlcnJvcjogLTM3IC0gV291bGQgYmxvY2sKW2xpYnNzaDJdIDAuMjUz MzAxIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk5CltsaWJzc2gyXSAw LjI1MzMwNyBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiAxMDAKW2xpYnNz aDJdIDAuMjUzMzEzIFNvY2tldDogUmVjdmVkIDg4LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAK PT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoODggYnl0ZXMpCjAwMDA6IDgyIEJGIDMw IDU5IDcwIDY1IDY0IENFICBDNyBDOCA1NyA1NCBCQSAxNiAxNCBCNyA6IC4uMFlwZWQuLi5XVC4u Li4KMDAxMDogREIgOUUgQUEgODYgMTMgMDQgMUIgQjAgIEY4IEE2IDk1IDIzIDYxIDI5IDQwIEI0 IDogLi4uLi4uLi4uLi4jYSlALgowMDIwOiBCOCAzRiBERCA0RiA0MyBGNyBEOCBGNyAgODYgMzgg RkIgQjAgQzIgM0UgMkUgRTIgOiAuPy5PQy4uLi44Li4uPi4uCjAwMzA6IEYwIEREIDZEIEVGIDg0 IDY3IEQ2IDcwICA4NyA0RiBEOCBDNSBBNyA4MiBEMSBCQyA6IC4ubS4uZy5wLk8uLi4uLi4KMDA0 MDogNDQgNDMgOUUgOEIgRjAgRTIgNjMgQzUgIEREIEUzIEUxIEJBIDU4IDAyIDJDIDk1IDogREMu Li4uYy4uLi4uWC4sLgowMDUwOiBCMSBFMyA0NiAwRiA2MyBCOSA3MCBDMiAgICAgICAgICAgICAg ICAgICAgICAgICAgOiAuLkYuYy5wLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4g KDkgYnl0ZXMpCjAwMDA6IDVEIDAwIDAwIDAwIDAwIDAwIDIwIDAwICAwMCAgICAgICAgICAgICAg ICAgICAgICA6IF0uLi4uLiAuLgpbbGlic3NoMl0gMC4yNTMzNDMgVHJhbnNwb3J0OiBQYWNrZXQg dHlwZSA5MyByZWNlaXZlZCwgbGVuZ3RoPTkKW2xpYnNzaDJdIDAuMjUzMzQ4IENvbm46IFdpbmRv dyBhZGp1c3QgZm9yIGNoYW5uZWwgMC8wLCBhZGRpbmcgMjA5NzE1MiBieXRlcywgbmV3IHdpbmRv d19zaXplPTIwOTcxNTIKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICg1IGJ5dGVz KQowMDAwOiA2MyAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBjLi4uLgpbbGlic3NoMl0gMC4yNTMzNjkgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5OSByZWNl aXZlZCwgbGVuZ3RoPTUKW2xpYnNzaDJdIDAuMjUzMzczIFRyYW5zcG9ydDogTG9va2luZyBmb3Ig cGFja2V0IG9mIHR5cGU6IDk5CkVWRU5UCjA3LjA0LjIwMTQgMTM6NTQ6MDEuMjUzIENvbW1hbmQg J3NoIC9yb290L3RzdC5zaCcgZXhlY3V0ZWQKW2xpYnNzaDJdIDAuMjUzNTU3IENvbm46IFJlcXVl c3RpbmcgZGlyZWN0LXRjcGlwIHNlc3Npb24gdG8gZnJvbSAxMjcuMC4wLjE6MjIgdG8gMTAuNzYu OS4xNzM6MjIKW2xpYnNzaDJdIDAuMjUzNTY2IENvbm46IEFsbG9jYXRlZCBuZXcgY2hhbm5lbCBJ RCMxCltsaWJzc2gyXSAwLjI1MzU3MCBDb25uOiBPcGVuaW5nIENoYW5uZWwgLSB3aW4gMjYyMTQ0 IHBhY2sgMzI3NjgKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4gKDI5IGJ5dGVzKQow MDAwOiA1QSAwMCAwMCAwMCAwQyA2NCA2OSA3MiAgNjUgNjMgNzQgMkQgNzQgNjMgNzAgNjkgOiBa Li4uLmRpcmVjdC10Y3BpCjAwMTA6IDcwIDAwIDAwIDAwIDAxIDAwIDA0IDAwICAwMCAwMCAwMCA4 MCAwMCAgICAgICAgICA6IHAuLi4uLi4uLi4uLi4KPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUg cGxhaW4yICgzNiBieXRlcykKMDAwMDogMDAgMDAgMDAgMEIgMzEgMzAgMkUgMzcgIDM2IDJFIDM5 IDJFIDMxIDM3IDMzIDAwIDogLi4uLjEwLjc2LjkuMTczLgowMDEwOiAwMCAwMCAxNiAwMCAwMCAw MCAwOSAzMSAgMzIgMzcgMkUgMzAgMkUgMzAgMkUgMzEgOiAuLi4uLi4uMTI3LjAuMC4xCjAwMjA6 IDAwIDAwIDAwIDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLi4K W2xpYnNzaDJdIDAuMjUzNjExIFNvY2tldDogU2VudCAxMDAvMTAwIGJ5dGVzIGF0IDB4ZjNhNTUw Cj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHNlbmQoKSAoMTAwIGJ5dGVzKQowMDAwOiAzQSBF QSBFQyA4MyA2RSA1RiBCMiAxMCAgMEMgNzAgRTggNEMgNjQgQkYgOTcgRTIgOiA6Li4ubl8uLi5w LkxkLi4uCjAwMTA6IDRFIEZCIDEzIEQxIEU3IENCIDg2IDA2ICBCNiA0NCAwQiAwRCA5QiBERCAy QyBENSA6IE4uLi4uLi4uLkQuLi4uLC4KMDAyMDogOTUgQkIgNDAgODEgQTAgQUIgN0YgNzIgIDAw IEVDIEM4IDg2IDQ1IEE1IDFFIDcxIDogLi5ALi4uLnIuLi4uRS4ucQowMDMwOiAwNSBFNyAyQyA0 RiBGRCAzNiBEQiAwOSAgM0MgMTcgNDQgOTQgQzggRjcgQkIgMjggOiAuLixPLjYuLjwuRC4uLi4o CjAwNDA6IEVEIDdGIDkwIENBIDU0IDYyIDIzIDY4ICA3QiBBMSBBMSAyNSBCOCAxQyAyNiA4QiA6 IC4uLi5UYiNoey4uJS4uJi4KMDA1MDogMjcgQzQgMjggMDIgQUMgNEQgOEIgNUIgIEYzIEM0IEUy IDQzIEU3IDZDIEI4IEUyIDogJy4oLi5NLlsuLi5DLmwuLgowMDYwOiAxQSA1NSA2RSA0MyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuVW5DCltsaWJzc2gyXSAwLjI1MzYz OSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMC4y NTM2NDIgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJd IDAuMjUzNjUwIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJz c2gyXSAwLjI1MzY1NCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5Mgpb bGlic3NoMl0gMC4yODU4NjAgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBm cm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMC4yODU4NzEgU29ja2V0OiBSZWN2 ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFk KCkgcmF3ICg1MiBieXRlcykKMDAwMDogM0IgMDMgNDkgODUgOUQgQTYgRjUgQzAgIEMzIDAxIDU0 IDNEIEVGIDM2IDNEIDc1IDogOy5JLi4uLi4uLlQ9LjY9dQowMDEwOiBEMCAwNiAxQiBFRSAxRSBB NSBFNiAzQyAgMkUgRDEgRTMgRTYgMUMgQTUgOUUgMjEgOiAuLi4uLi4uPC4uLi4uLi4hCjAwMjA6 IDhCIDM3IDk1IEQ5IDVBIEUwIEJBIEU5ICA2NSBBRiA0NyBBNCAxNiA4QyA5QiAyQyA6IC43Li5a Li4uZS5HLi4uLiwKMDAzMDogQkEgQzIgNEIgQUEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogLi5LLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5 dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQg NjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0IDYxIDBBICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGlic3NoMl0gMC4yODU5MDEgVHJhbnNwb3J0OiBQ YWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSAwLjI4NTkwNSBDb25u OiAxMCBieXRlcyBwYWNrZXRfYWRkKCkgZm9yIDAvMC8wCltsaWJzc2gyXSAwLjI4NTkxMSBDb25u OiBjaGFubmVsX3JlYWQoKSBnb3QgMTAgb2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0KW2xpYnNzaDJd IDAuMjg1OTE4IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJz c2gyXSAwLjI4NTkyMSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5Mgpb bGlic3NoMl0gNjAuMjkwMTg0IENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMg ZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDYwLjI5MDIzMSBTb2NrZXQ6IFJl Y3ZlZCA1Mi8xNjM4NCBieXRlcyB0byAweGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3Jl YWQoKSByYXcgKDUyIGJ5dGVzKQowMDAwOiA1MSA3QSBCNyA0NCAyQiA3OSBGRiA2MSAgRkUgM0Mg MzEgNDUgQkMgMTEgNjUgMDUgOiBRei5EK3kuYS48MUUuLmUuCjAwMTA6IDU2IEMxIEU1IDhEIDcx IEQ3IDExIEQ2ICBCNCAyOSAyNyBDNCA1OSA4RSAxMyA5MyA6IFYuLi5xLi4uLiknLlkuLi4KMDAy MDogRTIgQ0QgN0UgNzEgMTkgRjYgMEIgRjcgIDg4IDY2IEYyIEE3IDk4IDUzIEFEIDQxIDogLi5+ cS4uLi4uZi4uLlMuQQowMDMwOiBCNyAyOCAxNCA0QiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiAuKC5LCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMTkg Ynl0ZXMpCjAwMDA6IDVFIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAwQSA2RSA2RiA3NiA2NSAyMCA2 NCA2MSA6IF4uLi4uLi4uLm5vdmUgZGEKMDAxMDogNzQgNjEgMEEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogdGEuCltsaWJzc2gyXSA2MC4yOTAyODEgVHJhbnNwb3J0 OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSA2MC4yOTAyODYg Q29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZvciAwLzAvMApbbGlic3NoMl0gNjAuMjkwMjkz IENvbm46IGNoYW5uZWxfcmVhZCgpIGdvdCAxMCBvZiBkYXRhIGZyb20gMC8wLzAgW3VsXQpbbGli c3NoMl0gNjAuMjkwMzAyIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkx CltsaWJzc2gyXSA2MC4yOTAzMDYgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlw ZTogOTIKW2xpYnNzaDJdIDYwLjI5MDMxMSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBv ZiB0eXBlOiA5NApbbGlic3NoMl0gNjAuMjkwMzE0IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFj a2V0IG9mIHR5cGU6IDk1CltsaWJzc2gyXSAxMjAuMjk0MjU2IENvbm46IGNoYW5uZWxfcmVhZCgp IHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDEy MC4yOTQzMDQgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBs aWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykKMDAwMDogMTUgMUQgNzggMjAg REIgODYgMzUgMUMgIEVBIEY4IDhGIDFBIDgxIEUzIDEzIEFDIDogLi54IC4uNS4uLi4uLi4uLgow MDEwOiAwMSAzMiA2QSA3MiBGOCAyNiBGQyA3MiAgNzUgRjUgRUYgRjUgQkQgMDcgNkUgNDMgOiAu MmpyLiYucnUuLi4uLm5DCjAwMjA6IDY3IEFFIDlBIEE4IDA0IDQzIDk3IEE1ICBBRCBEQyA5NSAx QiA3QyBBRCA2OCA2RSA6IGcuLi4uQy4uLi4uLnwuaG4KMDAzMDogRkEgMjEgNzEgRDQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLiFxLgo9PiBsaWJzc2gyX3RyYW5zcG9y dF9yZWFkKCkgcGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAg MEEgNkUgNkYgNzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0IDYxIDBB ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGlic3NoMl0g MTIwLjI5NDM2MSBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDk0IHJlY2VpdmVkLCBsZW5ndGg9MTkK W2xpYnNzaDJdIDEyMC4yOTQzNjYgQ29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZvciAwLzAv MApbbGlic3NoMl0gMTIwLjI5NDM3MyBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3QgMTAgb2YgZGF0 YSBmcm9tIDAvMC8wIFt1bF0KW2xpYnNzaDJdIDEyMC4yOTQzODEgQ29ubjogQWxsb2NhdGVkIG5l dyBjaGFubmVsIElEIzIKW2xpYnNzaDJdIDEyMC4yOTQzODUgQ29ubjogT3BlbmluZyBDaGFubmVs IC0gd2luIDI2MjE0NCBwYWNrIDMyNzY4Cj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBsYWlu ICgyOSBieXRlcykKMDAwMDogNUEgMDAgMDAgMDAgMEMgNjQgNjkgNzIgIDY1IDYzIDc0IDJEIDc0 IDYzIDcwIDY5IDogWi4uLi5kaXJlY3QtdGNwaQowMDEwOiA3MCAwMCAwMCAwMCAwMiAwMCAwNCAw MCAgMDAgMDAgMDAgODAgMDAgICAgICAgICAgOiBwLi4uLi4uLi4uLi4uCj0+IGxpYnNzaDJfdHJh bnNwb3J0X3dyaXRlIHBsYWluMiAoMzYgYnl0ZXMpCjAwMDA6IDAwIDAwIDAwIDBCIDMxIDMwIDJF IDM3ICAzNiAyRSAzOSAyRSAzMSAzNyAzMyAwMCA6IC4uLi4xMC43Ni45LjE3My4KMDAxMDogMDAg MDAgMTYgMDAgMDAgMDAgMDkgMzEgIDMyIDM3IDJFIDMwIDJFIDMwIDJFIDMxIDogLi4uLi4uLjEy Ny4wLjAuMQowMDIwOiAwMCAwMCAwMCAxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiAuLi4uCltsaWJzc2gyXSAxMjAuMjk0NDQzIFNvY2tldDogU2VudCAxMDAvMTAwIGJ5 dGVzIGF0IDB4ZjNhNTUwCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHNlbmQoKSAoMTAwIGJ5 dGVzKQowMDAwOiA1MyBBMiBFNCBDMCAyQyA2MSBCRCA5NiAgN0QgM0IgOEIgMzggMkQgNDcgMzAg RTMgOiBTLi4uLGEuLn07LjgtRzAuCjAwMTA6IDMxIEZEIEM5IEUzIDIyIEJDIEM4IEFDICBDMiA4 MiBERSAyNSAzOCBCQyAxMiA2RCA6IDEuLi4iLi4uLi4uJTguLm0KMDAyMDogNUMgRDggMzYgM0Eg QzkgQUEgOUQgQTMgIEQ0IDhGIDhCIDQ3IDJGIDEzIDRBIEU5IDogXC42Oi4uLi4uLi5HLy5KLgow MDMwOiBGNiBBQyBBQiAwRCA5RiBFNyAxNiA4QiAgQ0YgNzggQkUgRkEgQzMgNUUgRUIgNkMgOiAu Li4uLi4uLi54Li4uXi5sCjAwNDA6IDAwIEY0IEZDIDczIEE2IDVFIEQ4IEYwICBFQyBBRiA0NiA4 OSA5MCAzQSBCMiA4OCA6IC4uLnMuXi4uLi5GLi46Li4KMDA1MDogN0QgRDUgRjcgOUQgMzMgNDEg M0MgQTcgIENGIDkzIEM5IDY0IDM3IDZGIDBDIDhDIDogfS4uLjNBPC4uLi5kN28uLgowMDYwOiAx RCA4OSA5NSBBOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi4uClts aWJzc2gyXSAxMjAuMjk0NDY2IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6 IDkxCltsaWJzc2gyXSAxMjAuMjk0NDcwIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9m IHR5cGU6IDkyCltsaWJzc2gyXSAxODAuMjk4NDM2IENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRz IDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDE4MC4yOTg0 ODkgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gy X3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykKMDAwMDogRkMgMTkgQUUgOTUgNjIgOTcg MTkgREYgIENDIDk0IEQwIDQxIDJGIENDIDQyIENBIDogLi4uLmIuLi4uLi5BLy5CLgowMDEwOiA5 QiAzMyBFQSA4QyAyMSBCNyA4OCA2NyAgNTAgQjUgMTUgRTYgNDYgMDMgNTUgMzcgOiAuMy4uIS4u Z1AuLi5GLlU3CjAwMjA6IDhEIDBFIDJEIDM4IENGIEU2IDBCIDExICAwNiBCOSA0NSA5NSBCRiBD NSBBOSA5QyA6IC4uLTguLi4uLi5FLi4uLi4KMDAzMDogQzEgQjIgREIgNzUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4udQo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFk KCkgcGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMEEgNkUg NkYgNzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0IDYxIDBBICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGlic3NoMl0gMTgwLjI5 ODU0MCBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDk0IHJlY2VpdmVkLCBsZW5ndGg9MTkKW2xpYnNz aDJdIDE4MC4yOTg1NDUgQ29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZvciAwLzAvMApbbGli c3NoMl0gMTgwLjI5ODU1MiBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3QgMTAgb2YgZGF0YSBmcm9t IDAvMC8wIFt1bF0KW2xpYnNzaDJdIDE4MC4yOTg1NjEgVHJhbnNwb3J0OiBMb29raW5nIGZvciBw YWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDE4MC4yOTg1NjUgVHJhbnNwb3J0OiBMb29raW5n IGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDE4MC4yOTg1NzAgVHJhbnNwb3J0OiBM b29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTQKW2xpYnNzaDJdIDE4MC4yOTg1NzQgVHJhbnNw b3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTUKW2xpYnNzaDJdIDE4OS42NTI5NjUg Q29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0 cmVhbSAjMApbbGlic3NoMl0gMTg5LjY1MzAwNCBTb2NrZXQ6IFJlY3ZlZCA2OC8xNjM4NCBieXRl cyB0byAweGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDY4IGJ5dGVz KQowMDAwOiBERiBGMyAxNyAyMiA4NCA4QSA0RiA3NCAgNjQgQTUgQUYgMUQgQzIgNDUgQjQgQzgg OiAuLi4iLi5PdGQuLi4uRS4uCjAwMTA6IDIwIEZDIEI5IDlFIDAwIEU5IDM5IEE2ICA1MCA2NCAz MSBBNyBGQiBENCAyRiBBRiA6ICAuLi4uLjkuUGQxLi4uLy4KMDAyMDogMkMgRDMgMTggQTAgMjYg Q0UgNDEgNzIgIDc2IDZBIERGIDg2IEFEIDI4IDcyIDhBIDogLC4uLiYuQXJ2ai4uLihyLgowMDMw OiA5RCAzMiAwMyBEMCBBMiA3OSA5NCAxOSAgQzggNDEgNUUgNUMgQTAgMEYgODcgM0IgOiAuMi4u LnkuLi5BXlwuLi47CjAwNDA6IEM3IEEzIEQzIDhEICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IC4uLi4KPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgzNyBi eXRlcykKMDAwMDogNUMgMDAgMDAgMDAgMDEgMDAgMDAgMDAgIDAyIDAwIDAwIDAwIDE0IDQzIDZG IDZFIDogXC4uLi4uLi4uLi4uLkNvbgowMDEwOiA2RSA2NSA2MyA3NCA2OSA2RiA2RSAyMCAgNzQg NjkgNkQgNjUgNjQgMjAgNkYgNzUgOiBuZWN0aW9uIHRpbWVkIG91CjAwMjA6IDc0IDAwIDAwIDAw IDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHQuLi4uCltsaWJzc2gyXSAx ODkuNjUzMDYwIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTIgcmVjZWl2ZWQsIGxlbmd0aD0zNwpb bGlic3NoMl0gMTg5LjY1MzA2NyBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVz IGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMxCltsaWJzc2gyXSAxODkuNjUzMDc1IENvbm46IEFs bG9jYXRlZCBuZXcgY2hhbm5lbCBJRCMzCltsaWJzc2gyXSAxODkuNjUzMDkwIENvbm46IE9wZW5p bmcgQ2hhbm5lbCAtIHdpbiAyNjIxNDQgcGFjayAzMjc2OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93 cml0ZSBwbGFpbiAoMjkgYnl0ZXMpCjAwMDA6IDVBIDAwIDAwIDAwIDBDIDY0IDY5IDcyICA2NSA2 MyA3NCAyRCA3NCA2MyA3MCA2OSA6IFouLi4uZGlyZWN0LXRjcGkKMDAxMDogNzAgMDAgMDAgMDAg MDMgMDAgMDQgMDAgIDAwIDAwIDAwIDgwIDAwICAgICAgICAgIDogcC4uLi4uLi4uLi4uLgo9PiBs aWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbjIgKDM2IGJ5dGVzKQowMDAwOiAwMCAwMCAwMCAw QiAzMSAzMCAyRSAzNyAgMzYgMkUgMzkgMkUgMzEgMzcgMzMgMDAgOiAuLi4uMTAuNzYuOS4xNzMu CjAwMTA6IDAwIDAwIDE2IDAwIDAwIDAwIDA5IDMxICAzMiAzNyAyRSAzMCAyRSAzMCAyRSAzMSA6 IC4uLi4uLi4xMjcuMC4wLjEKMDAyMDogMDAgMDAgMDAgMTYgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogLi4uLgpbbGlic3NoMl0gMTg5LjY1MzEzOSBTb2NrZXQ6IFNlbnQg MTAwLzEwMCBieXRlcyBhdCAweGYzYTU1MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBzZW5k KCkgKDEwMCBieXRlcykKMDAwMDogRDEgOTggMTAgRUYgOUUgMUQgN0EgOTggIDY5IEE2IEVGIDY4 IEIzIEQ1IDlCIEQ3IDogLi4uLi4uei5pLi5oLi4uLgowMDEwOiAwQSBEQSBENyBERiBGQSBFQSA0 QiBGRCAgQ0UgQTEgQ0YgNDcgQTggRjUgQTQgMUIgOiAuLi4uLi5LLi4uLkcuLi4uCjAwMjA6IEY0 IDg1IEQ2IDQ5IDE2IERGIEU3IDZEICAwNiA3NCAzQiAwQyA5MCA2QiAwNiA3MiA6IC4uLkkuLi5t LnQ7Li5rLnIKMDAzMDogMDkgQTcgMUUgOTAgRUMgOEIgMkUgNEUgIDBGIDc1IEE3IDZEIDdFIEIw IEU3IEYxIDogLi4uLi4uLk4udS5tfi4uLgowMDQwOiAyRCBDMiA5NCAyOSA3OSBBMSBBNiBBRiAg OUQgQzAgMkEgQTcgMDAgRDYgQkUgOTIgOiAtLi4peS4uLi4uKi4uLi4uCjAwNTA6IDgyIEI0IEEw IDRDIDIyIDI3IDQ5IEYzICBFNCAwOCBEQSA1QiA1NyBDRSAwNyA3NSA6IC4uLkwiJ0kuLi4uW1cu LnUKMDA2MDogREIgNUMgRTEgMkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDogLlwuKgpbbGlic3NoMl0gMTg5LjY1MzE2NyBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tl dCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTg5LjY1MzE3MSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9y IHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gMjQwLjMwMjIxMyBDb25uOiBjaGFubmVsX3Jl YWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMwCltsaWJzc2gy XSAyNDAuMzAyMjYwIFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAK PT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMpCjAwMDA6IDlEIDlBIDAy IENCIEI2IEJBIDZGIDkyICAzQiBEQiA5QSBFQiBEMCA1NyBCMiBGQyA6IC4uLi4uLm8uOy4uLi5X Li4KMDAxMDogNEYgRUEgMTggNDYgOEEgQzkgNDAgMDMgIDIzIEI5IDUxIEM1IEM4IEE2IDZEIEM5 IDogTy4uRi4uQC4jLlEuLi5tLgowMDIwOiA0RCAxNiA3RCA3OCA0RiBCQiA4NCBFRCAgNDYgREUg NUUgNDcgRUYgMjcgQ0YgOEYgOiBNLn14Ty4uLkYuXkcuJy4uCjAwMzA6IDdFIEI3IDFCIEFCICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IH4uLi4KPT4gbGlic3NoMl90cmFu c3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAg MDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2 MSAwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNz aDJdIDI0MC4zMDIzMDkgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3Ro PTE5CltsaWJzc2gyXSAyNDAuMzAyMzE0IENvbm46IDEwIGJ5dGVzIHBhY2tldF9hZGQoKSBmb3Ig MC8wLzAKW2xpYnNzaDJdIDI0MC4zMDIzMjIgQ29ubjogY2hhbm5lbF9yZWFkKCkgZ290IDEwIG9m IGRhdGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSAyNDAuMzAyMzMwIFRyYW5zcG9ydDogTG9v a2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSAyNDAuMzAyMzM0IFRyYW5zcG9y dDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gyXSAzMDAuMzA1OTgzIENv bm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJl YW0gIzAKW2xpYnNzaDJdIDMwMC4zMDYwMzMgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMg dG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykK MDAwMDogOTUgMTQgNjkgNTAgQzEgODggRkQgRDggIEYwIDU3IDRFIDlGIENCIDIyIENBIERFIDog Li5pUC4uLi4uV04uLiIuLgowMDEwOiAwNiAzNiBBRCBGNyBFMiAyMCBDQiAyMiAgQzUgN0MgQzAg MEEgRkEgMjMgRkYgNzMgOiAuNi4uLiAuIi58Li4uIy5zCjAwMjA6IEIzIEQyIDQ5IDE3IEU5IEJG IDE0IEVEICAwOSA2QiAzQSBENSA2QSA5NCBFNiBEOSA6IC4uSS4uLi4uLms6LmouLi4KMDAzMDog ODMgQ0MgOEEgQTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgo9 PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAwMCAw MCAwMCAwMCAwMCAwMCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5ub3Zl IGRhCjAwMTA6IDc0IDYxIDBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IHRhLgpbbGlic3NoMl0gMzAwLjMwNjA4NyBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDk0IHJl Y2VpdmVkLCBsZW5ndGg9MTkKW2xpYnNzaDJdIDMwMC4zMDYwOTIgQ29ubjogMTAgYnl0ZXMgcGFj a2V0X2FkZCgpIGZvciAwLzAvMApbbGlic3NoMl0gMzAwLjMwNjEwMCBDb25uOiBjaGFubmVsX3Jl YWQoKSBnb3QgMTAgb2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0KW2xpYnNzaDJdIDMwMC4zMDYxMTAg VHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDMwMC4z MDYxMTQgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJd IDMwMC4zMDYxMTkgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTQKW2xp YnNzaDJdIDMwMC4zMDYxMjMgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTog OTUKW2xpYnNzaDJdIDMwOS43MTY5MjIgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBi eXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMzA5LjcxNjk1NyBTb2Nr ZXQ6IFJlY3ZlZCA2OC8xNjM4NCBieXRlcyB0byAweGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNw b3J0X3JlYWQoKSByYXcgKDY4IGJ5dGVzKQowMDAwOiAyRSAyQyBGMSA3MSA3NyA3OSA5RSA5OCAg QzggRDYgNDggMUIgNkUgN0YgQkYgM0YgOiAuLC5xd3kuLi4uSC5uLi4/CjAwMTA6IDM2IDlDIDQw IEY4IEQxIDlDIDRCIDg2ICA5MiAzMyAzRCBGNyBEMiBGQSA5QiA3RCA6IDYuQC4uLksuLjM9Li4u Ln0KMDAyMDogMTEgMTYgQTIgMUIgNEEgNDIgMEEgNTQgIDIyIDY2IDA0IEY4IENEIEE4IDBFIDNF IDogLi4uLkpCLlQiZi4uLi4uPgowMDMwOiA2RCAzOSBERiBBNCA0MCAzMyA1NyAwMyAgREEgQTkg MkEgQjIgQ0UgQUUgOTEgOEYgOiBtOS4uQDNXLi4uKi4uLi4uCjAwNDA6IDNFIDAwIDMzIDdGICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ID4uMy4KPT4gbGlic3NoMl90cmFu c3BvcnRfcmVhZCgpIHBsYWluICgzNyBieXRlcykKMDAwMDogNUMgMDAgMDAgMDAgMDIgMDAgMDAg MDAgIDAyIDAwIDAwIDAwIDE0IDQzIDZGIDZFIDogXC4uLi4uLi4uLi4uLkNvbgowMDEwOiA2RSA2 NSA2MyA3NCA2OSA2RiA2RSAyMCAgNzQgNjkgNkQgNjUgNjQgMjAgNkYgNzUgOiBuZWN0aW9uIHRp bWVkIG91CjAwMjA6IDc0IDAwIDAwIDAwIDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IHQuLi4uCltsaWJzc2gyXSAzMDkuNzE3MDI2IFRyYW5zcG9ydDogUGFja2V0IHR5cGUg OTIgcmVjZWl2ZWQsIGxlbmd0aD0zNwpbbGlic3NoMl0gMzA5LjcxNzAzNSBDb25uOiBjaGFubmVs X3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMxCltsaWJz c2gyXSAzMDkuNzE3MDQyIENvbm46IEFsbG9jYXRlZCBuZXcgY2hhbm5lbCBJRCM0CltsaWJzc2gy XSAzMDkuNzE3MDQ2IENvbm46IE9wZW5pbmcgQ2hhbm5lbCAtIHdpbiAyNjIxNDQgcGFjayAzMjc2 OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbiAoMjkgYnl0ZXMpCjAwMDA6IDVBIDAw IDAwIDAwIDBDIDY0IDY5IDcyICA2NSA2MyA3NCAyRCA3NCA2MyA3MCA2OSA6IFouLi4uZGlyZWN0 LXRjcGkKMDAxMDogNzAgMDAgMDAgMDAgMDQgMDAgMDQgMDAgIDAwIDAwIDAwIDgwIDAwICAgICAg ICAgIDogcC4uLi4uLi4uLi4uLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbjIgKDM2 IGJ5dGVzKQowMDAwOiAwMCAwMCAwMCAwQiAzMSAzMCAyRSAzNyAgMzYgMkUgMzkgMkUgMzEgMzcg MzMgMDAgOiAuLi4uMTAuNzYuOS4xNzMuCjAwMTA6IDAwIDAwIDE2IDAwIDAwIDAwIDA5IDMxICAz MiAzNyAyRSAzMCAyRSAzMCAyRSAzMSA6IC4uLi4uLi4xMjcuMC4wLjEKMDAyMDogMDAgMDAgMDAg MTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgpbbGlic3NoMl0g MzA5LjcxNzA5OSBTb2NrZXQ6IFNlbnQgMTAwLzEwMCBieXRlcyBhdCAweGYzYTU1MAo9PiBsaWJz c2gyX3RyYW5zcG9ydF93cml0ZSBzZW5kKCkgKDEwMCBieXRlcykKMDAwMDogNjIgOTcgODcgM0Qg QTcgQkIgN0QgNDYgIEM4IDk5IDQ3IEI5IDI5IDQ4IDZDIEYzIDogYi4uPS4ufUYuLkcuKUhsLgow MDEwOiBCMCAyQSBCMiA5MiA1RSBCRSBDOCBDRCAgN0QgMDEgMDYgRkUgRjQgNDUgRDYgMkIgOiAu Ki4uXi4uLn0uLi4uRS4rCjAwMjA6IDlBIEM0IEY0IDg5IDdFIEIzIDhFIDNBICA0MyBDNCBBNiAx QSA5MyBCQiBGOSBDQiA6IC4uLi5+Li46Qy4uLi4uLi4KMDAzMDogRkEgRDAgNDQgQjMgOEQgM0Ug NDUgRUIgIDRCIDFDIDE5IDBEIEJCIDNGIDQ3IEU5IDogLi5ELi4+RS5LLi4uLj9HLgowMDQwOiAx QyA2MSAyMiAwOCAxRiAyNyBBMyA2MSAgNEEgNDcgMjEgMTUgRjcgQzMgMUQgRUQgOiAuYSIuLicu YUpHIS4uLi4uCjAwNTA6IEE4IDg4IEU2IENCIDJBIEY2IEU5IDUxICBENyA4NSBCNCAyRSA2RSA3 QyA5MCA0MyA6IC4uLi4qLi5RLi4uLm58LkMKMDA2MDogOTYgMDUgMkYgMkMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4vLApbbGlic3NoMl0gMzA5LjcxNzEyMyBUcmFu c3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMzA5LjcxNzEy NyBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gMzYw LjMwOTc0MSBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5l bCAwLzAgc3RyZWFtICMwCltsaWJzc2gyXSAzNjAuMzA5NzkwIFNvY2tldDogUmVjdmVkIDUyLzE2 Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAo NTIgYnl0ZXMpCjAwMDA6IEQ4IDAwIDA2IDlBIDNCIDU1IEIxIDc4ICA2NiBERiAwMSBGNyBBOSBG MSBBMSBGQiA6IC4uLi47VS54Zi4uLi4uLi4KMDAxMDogMjAgMjggOTcgRkYgRDcgMDkgNzcgQUQg IDNDIEE5IEMxIDFFIDQzIDk1IDkyIEIwIDogICguLi4udy48Li4uQy4uLgowMDIwOiA2RCA2QSA1 RiA5MSBBQyAyQSAzOCBEQSAgNDYgMEUgREMgQzAgNkIgMDAgN0UgREIgOiBtal8uLio4LkYuLi5r Ln4uCjAwMzA6IEZDIDc3IDMxIEE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IC53MS4KPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAw MDogNUUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4u Li4uLi4ubm92ZSBkYQowMDEwOiA3NCA2MSAwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiB0YS4KW2xpYnNzaDJdIDM2MC4zMDk4MzkgVHJhbnNwb3J0OiBQYWNrZXQg dHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSAzNjAuMzA5ODQ1IENvbm46IDEw IGJ5dGVzIHBhY2tldF9hZGQoKSBmb3IgMC8wLzAKW2xpYnNzaDJdIDM2MC4zMDk4NTMgQ29ubjog Y2hhbm5lbF9yZWFkKCkgZ290IDEwIG9mIGRhdGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSAz NjAuMzA5ODYxIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJz c2gyXSAzNjAuMzA5ODY1IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDky CltsaWJzc2gyXSAzNzkuMDkyOTEwIENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0 ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDM3OS4wOTI5NDUgU29ja2V0 OiBSZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9y dF9yZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDogOUQgOEQgNzAgQzMgQ0QgNUIgQjUgMzIgIEI5 IDJBIDQ5IDlCIDJEIEMzIEMzIDQxIDogLi5wLi5bLjIuKkkuLS4uQQowMDEwOiAzRCBGMyBBRiAy NyBDQyBDQiAxQSBFOCAgQjUgRDEgNTUgRDggMzggMDEgNDIgNUMgOiA9Li4nLi4uLi4uVS44LkJc CjAwMjA6IDMyIDZEIDM0IDJDIDc3IDRDIDdCIEY2ICBCQiBDRCAzNCAwQSAwOCA3NSBDOSBCQiA6 IDJtNCx3THsuLi40Li51Li4KMDAzMDogMDEgQ0UgMzkgOTYgMzMgOUIgQ0MgQkIgIERGIEIzIDM4 IDM1IDNCIDVEIERDIDEwIDogLi45LjMuLi4uLjg1O10uLgowMDQwOiBFNiAwRCBCMSA0OCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi5ICj0+IGxpYnNzaDJfdHJhbnNw b3J0X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAwIDAzIDAwIDAwIDAw ICAwMiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24KMDAxMDogNkUgNjUg NjMgNzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0aW1l ZCBvdQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiB0Li4uLgpbbGlic3NoMl0gMzc5LjA5MzAwMCBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDky IHJlY2VpdmVkLCBsZW5ndGg9MzcKW2xpYnNzaDJdIDM3OS4wOTMwMDggQ29ubjogY2hhbm5lbF9y ZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMQpbbGlic3No Ml0gMzc5LjA5MzAxNiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpb bGlic3NoMl0gMzc5LjA5MzAyMCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBl OiA5MgpbbGlic3NoMl0gMzc5LjA5MzAyNiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBv ZiB0eXBlOiA5NApbbGlic3NoMl0gMzc5LjA5MzAzMCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBh Y2tldCBvZiB0eXBlOiA5NQpbbGlic3NoMl0gNDIwLjMxMzYwNCBDb25uOiBjaGFubmVsX3JlYWQo KSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMwCltsaWJzc2gyXSA0 MjAuMzEzNjQ2IFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4g bGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMpCjAwMDA6IEFCIDRGIDA5IDI1 IEEwIDBBIDJGIDgyICBBMiAxRSBEQiA1QiBDRSBCNiA1MyBENCA6IC5PLiUuLi8uLi4uWy4uUy4K MDAxMDogM0EgODcgODggNjYgMjIgREUgRjUgQTggIDBBIEI3IDg5IEUwIDAxIEM0IDEyIDBGIDog Oi4uZiIuLi4uLi4uLi4uLgowMDIwOiAzNiA1RiBBOCA1RCAxOSAxNSAxNyA0MSAgMzIgQzkgM0Yg QjEgNkIgMUQgNkYgMUMgOiA2Xy5dLi4uQTIuPy5rLm8uCjAwMzA6IEFEIDJGIDk0IEE5ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4vLi4KPT4gbGlic3NoMl90cmFuc3Bv cnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAgMDAg IDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2MSAw QSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNzaDJd IDQyMC4zMTM3MDQgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5 CltsaWJzc2gyXSA0MjAuMzEzNzA5IENvbm46IDEwIGJ5dGVzIHBhY2tldF9hZGQoKSBmb3IgMC8w LzAKW2xpYnNzaDJdIDQyMC4zMTM3MTggQ29ubjogY2hhbm5lbF9yZWFkKCkgZ290IDEwIG9mIGRh dGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSA0MjAuMzEzNzI2IENvbm46IEFsbG9jYXRlZCBu ZXcgY2hhbm5lbCBJRCM1CltsaWJzc2gyXSA0MjAuMzEzNzMwIENvbm46IE9wZW5pbmcgQ2hhbm5l bCAtIHdpbiAyNjIxNDQgcGFjayAzMjc2OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFp biAoMjkgYnl0ZXMpCjAwMDA6IDVBIDAwIDAwIDAwIDBDIDY0IDY5IDcyICA2NSA2MyA3NCAyRCA3 NCA2MyA3MCA2OSA6IFouLi4uZGlyZWN0LXRjcGkKMDAxMDogNzAgMDAgMDAgMDAgMDUgMDAgMDQg MDAgIDAwIDAwIDAwIDgwIDAwICAgICAgICAgIDogcC4uLi4uLi4uLi4uLgo9PiBsaWJzc2gyX3Ry YW5zcG9ydF93cml0ZSBwbGFpbjIgKDM2IGJ5dGVzKQowMDAwOiAwMCAwMCAwMCAwQiAzMSAzMCAy RSAzNyAgMzYgMkUgMzkgMkUgMzEgMzcgMzMgMDAgOiAuLi4uMTAuNzYuOS4xNzMuCjAwMTA6IDAw IDAwIDE2IDAwIDAwIDAwIDA5IDMxICAzMiAzNyAyRSAzMCAyRSAzMCAyRSAzMSA6IC4uLi4uLi4x MjcuMC4wLjEKMDAyMDogMDAgMDAgMDAgMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogLi4uLgpbbGlic3NoMl0gNDIwLjMxMzc3OCBTb2NrZXQ6IFNlbnQgMTAwLzEwMCBi eXRlcyBhdCAweGYzYTU1MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBzZW5kKCkgKDEwMCBi eXRlcykKMDAwMDogNUQgRTUgNDQgMzkgODIgOTggNkQgRjMgIEMwIDU2IEFBIEQyIEVCIDAwIEFF IDgwIDogXS5EOS4ubS4uVi4uLi4uLgowMDEwOiA4RCA4NyBFRCA2MyA4RCAyQyAxRiBDRCAgQjAg OTggQTcgNzYgREEgODEgQUYgREYgOiAuLi5jLiwuLi4uLnYuLi4uCjAwMjA6IDU2IDUzIDIyIDY3 IDk3IDA3IDZEIDZGICA2QiAxMiBERCBFRSA5QiAwQyA5QyA4QiA6IFZTImcuLm1vay4uLi4uLi4K MDAzMDogQjEgRUUgMDcgOUEgRTUgRjEgODggOEEgIEJGIDIyIEIzIEJGIEVDIDc3IEU1IEZEIDog Li4uLi4uLi4uIi4uLncuLgowMDQwOiA0MyAzMCA5QSBGNyBBOCBGNyA2QSAyRiAgRDQgODMgNUUg MEMgRjYgRjEgMkYgN0EgOiBDMC4uLi5qLy4uXi4uLi96CjAwNTA6IDA2IEMyIDQzIDU4IEVBIDA3 IEQ4IERBICBCMyBCNiBFQiAyOCA5QSBBOSAzQSBFQSA6IC4uQ1guLi4uLi4uKC4uOi4KMDA2MDog OTcgNkUgQTYgQzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLm4uLgpb bGlic3NoMl0gNDIwLjMxMzgwNSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBl OiA5MQpbbGlic3NoMl0gNDIwLjMxMzgwOSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBv ZiB0eXBlOiA5MgpbbGlic3NoMl0gNDgwLjMxODAwNCBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50 cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMwCltsaWJzc2gyXSA0ODAuMzE4 MDU0IFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3No Ml90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMpCjAwMDA6IEQ1IDYxIDJFIEY0IEJDIDFG IEFGIDIyICBBMiBBQSA1NSA4NiBFOCBDNCAwMyAyRiA6IC5hLi4uLi4iLi5VLi4uLi8KMDAxMDog NUEgNTUgRUUgMjIgNjIgOUIgOUQgOUQgIDFBIEMwIDIzIEEzIDRFIEFFIEY4IDg0IDogWlUuImIu Li4uLiMuTi4uLgowMDIwOiAwOCA5NCA2NCBGRCBDNiA0OSA0QSAzOCAgMEMgMzUgN0QgQTggOUQg MzggNjYgOTIgOiAuLmQuLklKOC41fS4uOGYuCjAwMzA6IDA3IEQ5IEY1IDY5ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLmkKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVh ZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDBBIDZF IDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2MSAwQSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNzaDJdIDQ4MC4z MTgxMDggVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJz c2gyXSA0ODAuMzE4MTEzIENvbm46IDEwIGJ5dGVzIHBhY2tldF9hZGQoKSBmb3IgMC8wLzAKW2xp YnNzaDJdIDQ4MC4zMTgxMjEgQ29ubjogY2hhbm5lbF9yZWFkKCkgZ290IDEwIG9mIGRhdGEgZnJv bSAwLzAvMCBbdWxdCltsaWJzc2gyXSA0ODAuMzE4MTMwIFRyYW5zcG9ydDogTG9va2luZyBmb3Ig cGFja2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSA0ODAuMzE4MTM1IFRyYW5zcG9ydDogTG9va2lu ZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gyXSA0ODAuMzE4MTQwIFRyYW5zcG9ydDog TG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk0CltsaWJzc2gyXSA0ODAuMzE4MTQzIFRyYW5z cG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk1CltsaWJzc2gyXSA0OTkuMTU2ODQ3 IENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBz dHJlYW0gIzAKW2xpYnNzaDJdIDQ5OS4xNTY4ODAgU29ja2V0OiBSZWN2ZWQgNjgvMTYzODQgYnl0 ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg2OCBieXRl cykKMDAwMDogRjcgMTEgMkQgMUUgRjggMzYgRDcgRkQgIDQzIEUyIDA4IDUwIEQ3IEQ4IDEyIEI5 IDogLi4tLi42Li5DLi5QLi4uLgowMDEwOiBEOSA5RSA5QyAxNiA1QSA3MiA1MiA4OCAgNEIgMjMg N0UgRTYgQjYgM0EgQkYgN0YgOiAuLi4uWnJSLksjfi4uOi4uCjAwMjA6IEQyIEMxIEFFIDdGIDU1 IDlGIERFIDFBICBCQSBFMiAyOSBFRCAwMSBEOCBGNSA4RiA6IC4uLi5VLi4uLi4pLi4uLi4KMDAz MDogODYgRDkgNUIgRTMgN0QgMUIgM0UgNDQgIDREIDE0IEY0IDBEIEM1IEI1IEM5IDk3IDogLi5b Ln0uPkRNLi4uLi4uLgowMDQwOiBDMiAzOSBENSAwNSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiAuOS4uCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMzcg Ynl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAwIDA0IDAwIDAwIDAwICAwMiAwMCAwMCAwMCAxNCA0MyA2 RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24KMDAxMDogNkUgNjUgNjMgNzQgNjkgNkYgNkUgMjAgIDc0 IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0aW1lZCBvdQowMDIwOiA3NCAwMCAwMCAw MCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0Li4uLgpbbGlic3NoMl0g NDk5LjE1NjkzNyBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDkyIHJlY2VpdmVkLCBsZW5ndGg9MzcK W2xpYnNzaDJdIDQ5OS4xNTY5NDUgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRl cyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMQpbbGlic3NoMl0gNDk5LjE1Njk1MyBDb25uOiBB bGxvY2F0ZWQgbmV3IGNoYW5uZWwgSUQjNgpbbGlic3NoMl0gNDk5LjE1Njk1NyBDb25uOiBPcGVu aW5nIENoYW5uZWwgLSB3aW4gMjYyMTQ0IHBhY2sgMzI3NjgKPT4gbGlic3NoMl90cmFuc3BvcnRf d3JpdGUgcGxhaW4gKDI5IGJ5dGVzKQowMDAwOiA1QSAwMCAwMCAwMCAwQyA2NCA2OSA3MiAgNjUg NjMgNzQgMkQgNzQgNjMgNzAgNjkgOiBaLi4uLmRpcmVjdC10Y3BpCjAwMTA6IDcwIDAwIDAwIDAw IDA2IDAwIDA0IDAwICAwMCAwMCAwMCA4MCAwMCAgICAgICAgICA6IHAuLi4uLi4uLi4uLi4KPT4g bGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4yICgzNiBieXRlcykKMDAwMDogMDAgMDAgMDAg MEIgMzEgMzAgMkUgMzcgIDM2IDJFIDM5IDJFIDMxIDM3IDMzIDAwIDogLi4uLjEwLjc2LjkuMTcz LgowMDEwOiAwMCAwMCAxNiAwMCAwMCAwMCAwOSAzMSAgMzIgMzcgMkUgMzAgMkUgMzAgMkUgMzEg OiAuLi4uLi4uMTI3LjAuMC4xCjAwMjA6IDAwIDAwIDAwIDE2ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IC4uLi4KW2xpYnNzaDJdIDQ5OS4xNTcwMTQgU29ja2V0OiBTZW50 IDEwMC8xMDAgYnl0ZXMgYXQgMHhmM2E1NTAKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgc2Vu ZCgpICgxMDAgYnl0ZXMpCjAwMDA6IEM3IDMzIDBCIDM3IEZDIDQzIDBCIDNDICA4NCBBQyA1MSAz QiBFMSBEMSA0QyA4RCA6IC4zLjcuQy48Li5ROy4uTC4KMDAxMDogMDIgQUEgRjEgMkEgMTAgRTYg MDUgRTAgIDhFIDM5IEMzIEJBIDNDIDg3IEI2IDMwIDogLi4uKi4uLi4uOS4uPC4uMAowMDIwOiBF MyBDNSAxOSBCRiA4NyBDNyA0QSA2MiAgRTEgMDUgNDggREQgMDMgMjIgMDEgRjggOiAuLi4uLi5K Yi4uSC4uIi4uCjAwMzA6IEY0IDJEIEZDIDU2IEJGIEU1IEZBIDZGICBBNSA2RSA2QSBENSBBMCBD NCAzQSBCOSA6IC4tLlYuLi5vLm5qLi4uOi4KMDA0MDogRUIgRjggN0EgQkYgMjUgNzMgM0YgODcg IDY0IDZFIDgzIDhEIEVDIEZEIDg5IEZFIDogLi56LiVzPy5kbi4uLi4uLgowMDUwOiBBOCA3RSBG QyBCQSAyNyA3MCBCQSAzMCAgNEMgRDUgNjEgRUYgQ0QgRTAgQ0MgRDMgOiAufi4uJ3AuMEwuYS4u Li4uCjAwNjA6IDg0IDAzIDg1IDUzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IC4uLlMKW2xpYnNzaDJdIDQ5OS4xNTcwNDIgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNr ZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDQ5OS4xNTcwNDYgVHJhbnNwb3J0OiBMb29raW5nIGZv ciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDU0MC4zMjE3OTggQ29ubjogY2hhbm5lbF9y ZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3No Ml0gNTQwLjMyMTg0MiBTb2NrZXQ6IFJlY3ZlZCA1Mi8xNjM4NCBieXRlcyB0byAweGYzNjUxMCsw Cj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDUyIGJ5dGVzKQowMDAwOiA3RCA2RCAy RCA0RCAzNSBCMiAxOSBDRCAgRkMgM0YgMjQgQjMgQUMgNkMgMTMgMEEgOiB9bS1NNS4uLi4/JC4u bC4uCjAwMTA6IDQ2IEEwIDJFIDAwIDBFIDY5IEM0IDBDICA5NCBDMCA3NyA3NiBFMSAxQiA0RSA3 NCA6IEYuLi4uaS4uLi53di4uTnQKMDAyMDogNTAgNDggN0IgQTQgMkIgOUMgQUIgRDcgIDZFIDM0 IEREIDU0IDdBIEVDIEQzIEFBIDogUEh7LisuLi5uNC5Uei4uLgowMDMwOiBBMCA0NCBDMSA1RiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuRC5fCj0+IGxpYnNzaDJfdHJh bnNwb3J0X3JlYWQoKSBwbGFpbiAoMTkgYnl0ZXMpCjAwMDA6IDVFIDAwIDAwIDAwIDAwIDAwIDAw IDAwICAwQSA2RSA2RiA3NiA2NSAyMCA2NCA2MSA6IF4uLi4uLi4uLm5vdmUgZGEKMDAxMDogNzQg NjEgMEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGEuCltsaWJz c2gyXSA1NDAuMzIxODkyIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0 aD0xOQpbbGlic3NoMl0gNTQwLjMyMTg5NyBDb25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkgZm9y IDAvMC8wCltsaWJzc2gyXSA1NDAuMzIxOTA2IENvbm46IGNoYW5uZWxfcmVhZCgpIGdvdCAxMCBv ZiBkYXRhIGZyb20gMC8wLzAgW3VsXQpbbGlic3NoMl0gNTQwLjMyMTkxNSBUcmFuc3BvcnQ6IExv b2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gNTQwLjMyMTkxOSBUcmFuc3Bv cnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gNjAwLjMyNTc1OCBD b25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3Ry ZWFtICMwCltsaWJzc2gyXSA2MDAuMzI1ODA3IFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVz IHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMp CjAwMDA6IDZFIEQzIDk4IDI4IEMwIDIwIENBIDA2ICBDRiA4NCA5MSAwNSAwMSAyRiBDNCA2NCA6 IG4uLiguIC4uLi4uLi4vLmQKMDAxMDogMzkgREMgNzEgNTQgMEQgQjcgRkYgMDYgIDU0IDNCIDhB IERGIDM2IEVFIDJCIEYwIDogOS5xVC4uLi5UOy4uNi4rLgowMDIwOiA1NyAwNiBBRiAzNiA1OSAx RCA0QiBGNSAgQUEgMjcgMTYgOEQgMDcgOUYgRjMgNzMgOiBXLi42WS5LLi4nLi4uLi5zCjAwMzA6 IDcxIEQwIDlFIDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHEuLmQK PT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAg MDAgMDAgMDAgMDAgMDAgMDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92 ZSBkYQowMDEwOiA3NCA2MSAwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiB0YS4KW2xpYnNzaDJdIDYwMC4zMjU4NjAgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5NCBy ZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSA2MDAuMzI1ODY1IENvbm46IDEwIGJ5dGVzIHBh Y2tldF9hZGQoKSBmb3IgMC8wLzAKW2xpYnNzaDJdIDYwMC4zMjU4NzMgQ29ubjogY2hhbm5lbF9y ZWFkKCkgZ290IDEwIG9mIGRhdGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSA2MDAuMzI1ODgy IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSA2MDAu MzI1ODg2IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gy XSA2MDAuMzI1ODkxIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk0Clts aWJzc2gyXSA2MDAuMzI1ODk0IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6 IDk1CltsaWJzc2gyXSA2MDkuNzQ4OTAyIENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDgg Ynl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDYwOS43NDg5MzUgU29j a2V0OiBSZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5z cG9ydF9yZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDogQ0UgMjkgNjEgMDMgOEEgQzMgQzMgOTEg IDIyIEMwIDQ0IEE1IDRFIEI1IEJEIDM1IDogLilhLi4uLi4iLkQuTi4uNQowMDEwOiAzRiAwOSBE MyBCMiA1RiAwOCA2MCBGRSAgNUEgNTYgQzcgRTIgNDIgQkMgMTkgMTcgOiA/Li4uXy5gLlpWLi5C Li4uCjAwMjA6IEExIDJEIDNBIEI1IDFFIEQ4IDIwIDgyICA2OSAyOCAxMSA5MiBGQSA0NSA1NSA0 NCA6IC4tOi4uLiAuaSguLi5FVUQKMDAzMDogQjUgOEYgNjEgMjIgNEIgQjMgNDYgNkUgIDYyIEQ3 IDQ4IDFCIDFFIDMzIDBBIDFGIDogLi5hIksuRm5iLkguLjMuLgowMDQwOiA2OSAyOCAwNSA0NiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpKC5GCj0+IGxpYnNzaDJfdHJh bnNwb3J0X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAwIDA1IDAwIDAw IDAwICAwMiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24KMDAxMDogNkUg NjUgNjMgNzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0 aW1lZCBvdQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiB0Li4uLgpbbGlic3NoMl0gNjA5Ljc0ODk5MCBUcmFuc3BvcnQ6IFBhY2tldCB0eXBl IDkyIHJlY2VpdmVkLCBsZW5ndGg9MzcKW2xpYnNzaDJdIDYwOS43NDg5OTggQ29ubjogY2hhbm5l bF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMQpbbGli c3NoMl0gNjA5Ljc0OTAxNiBDb25uOiBBbGxvY2F0ZWQgbmV3IGNoYW5uZWwgSUQjNwpbbGlic3No Ml0gNjA5Ljc0OTAyMCBDb25uOiBPcGVuaW5nIENoYW5uZWwgLSB3aW4gMjYyMTQ0IHBhY2sgMzI3 NjgKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4gKDI5IGJ5dGVzKQowMDAwOiA1QSAw MCAwMCAwMCAwQyA2NCA2OSA3MiAgNjUgNjMgNzQgMkQgNzQgNjMgNzAgNjkgOiBaLi4uLmRpcmVj dC10Y3BpCjAwMTA6IDcwIDAwIDAwIDAwIDA3IDAwIDA0IDAwICAwMCAwMCAwMCA4MCAwMCAgICAg ICAgICA6IHAuLi4uLi4uLi4uLi4KPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4yICgz NiBieXRlcykKMDAwMDogMDAgMDAgMDAgMEIgMzEgMzAgMkUgMzcgIDM2IDJFIDM5IDJFIDMxIDM3 IDMzIDAwIDogLi4uLjEwLjc2LjkuMTczLgowMDEwOiAwMCAwMCAxNiAwMCAwMCAwMCAwOSAzMSAg MzIgMzcgMkUgMzAgMkUgMzAgMkUgMzEgOiAuLi4uLi4uMTI3LjAuMC4xCjAwMjA6IDAwIDAwIDAw IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLi4KW2xpYnNzaDJd IDYwOS43NDkwNjggU29ja2V0OiBTZW50IDEwMC8xMDAgYnl0ZXMgYXQgMHhmM2E1NTAKPT4gbGli c3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgpICgxMDAgYnl0ZXMpCjAwMDA6IENFIDkyIEY5IDUz IDRBIDczIDBCIDlGICBBMiAwRSAzRSAzMyA5QyA0MyA0MiBDNCA6IC4uLlNKcy4uLi4+My5DQi4K MDAxMDogQzYgOTcgN0QgREQgQTAgOTggRUEgQUQgIDFDIDYwIDNFIERGIEI4IDE0IDc5IDFGIDog Li59Li4uLi4uYD4uLi55LgowMDIwOiBGQSAzMCBFRiA5RiA3RSBDMiA1OSBBRSAgRjUgNTcgMzMg RDkgOTQgQjcgQzIgRTMgOiAuMC4ufi5ZLi5XMy4uLi4uCjAwMzA6IDNDIEJBIDc0IDFCIDczIDc0 IDNDIEUzICAxMSA1OSBGRiBBRiA4QyAzNSA4OSA1MiA6IDwudC5zdDwuLlkuLi41LlIKMDA0MDog QzggOTEgREUgQjcgMEMgNEIgQUMgMjcgIDJGIEI2IEUzIDZEIDFEIDU3IEJFIEM2IDogLi4uLi5L LicvLi5tLlcuLgowMDUwOiBEQyBGMSAyNCA2RSA1MCBDRiA4QiA2MSAgMzkgRDkgMUUgRjUgMDYg QTEgNzIgQzMgOiAuLiRuUC4uYTkuLi4uLnIuCjAwNjA6IEEwIEIwIDdGIEUwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLi4KW2xpYnNzaDJdIDYwOS43NDkwOTUgVHJh bnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDYwOS43NDkw OTkgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDY2 MC4zMjk5MDcgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5u ZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gNjYwLjMyOTk1NiBTb2NrZXQ6IFJlY3ZlZCA1Mi8x NjM4NCBieXRlcyB0byAweGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcg KDUyIGJ5dGVzKQowMDAwOiAwNCAzNiBENCBCQiAxOSBCQSBFNyBBOCAgNzggMUYgMDAgNjYgMEMg RkUgODAgRTUgOiAuNi4uLi4uLnguLmYuLi4uCjAwMTA6IDI0IDZGIDA4IEIzIDNEIEZGIDBGIDIx ICBBRCBDMSBFQyBGNCA3NyA2RCBDMiAwMyA6ICRvLi49Li4hLi4uLndtLi4KMDAyMDogRTEgNkYg NkMgRDEgMkYgMjIgOUIgRTYgIENEIEVCIDgwIDgwIDdDIEE3IEQxIEQ1IDogLm9sLi8iLi4uLi4u fC4uLgowMDMwOiBEQiBCRSA0OCAzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiAuLkg0Cj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMTkgYnl0ZXMpCjAw MDA6IDVFIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAwQSA2RSA2RiA3NiA2NSAyMCA2NCA2MSA6IF4u Li4uLi4uLm5vdmUgZGEKMDAxMDogNzQgNjEgMEEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogdGEuCltsaWJzc2gyXSA2NjAuMzMwMDA1IFRyYW5zcG9ydDogUGFja2V0 IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0aD0xOQpbbGlic3NoMl0gNjYwLjMzMDAxMCBDb25uOiAx MCBieXRlcyBwYWNrZXRfYWRkKCkgZm9yIDAvMC8wCltsaWJzc2gyXSA2NjAuMzMwMDE5IENvbm46 IGNoYW5uZWxfcmVhZCgpIGdvdCAxMCBvZiBkYXRhIGZyb20gMC8wLzAgW3VsXQpbbGlic3NoMl0g NjYwLjMzMDAyNyBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGli c3NoMl0gNjYwLjMzMDAzMiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5 MgpbbGlic3NoMl0gNjg4LjU5Njg1MCBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5 dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMwCltsaWJzc2gyXSA2ODguNTk2ODg3IFNvY2tl dDogUmVjdmVkIDY4LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3Bv cnRfcmVhZCgpIHJhdyAoNjggYnl0ZXMpCjAwMDA6IDQ1IDVDIDZEIDE2IDFFIDlCIDM3IDE3ICA5 OSA0RCA1RSBGRiAxOCBDQyAzQSBDNCA6IEVcbS4uLjcuLk1eLi4uOi4KMDAxMDogQTAgRUMgM0Yg N0UgREYgRjcgN0QgRUUgIDY2IDQyIDhBIDE0IEZEIDA2IDUwIEQzIDogLi4/fi4ufS5mQi4uLi5Q LgowMDIwOiBEQyBFOSBGOSBBQyAwNyBEQyBFMSBDNSAgMDYgMzcgQjIgNzAgMjIgQUIgQzcgQUQg OiAuLi4uLi4uLi43LnAiLi4uCjAwMzA6IDkwIDlDIDU1IDgyIEMwIEJFIDlEIEQ1ICBBQyA5MiBB MiBBRiBGQiAxQiA3OCAyNSA6IC4uVS4uLi4uLi4uLi4ueCUKMDA0MDogNzggNDYgREMgNEMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeEYuTAo9PiBsaWJzc2gyX3RyYW5z cG9ydF9yZWFkKCkgcGxhaW4gKDM3IGJ5dGVzKQowMDAwOiA1QyAwMCAwMCAwMCAwNiAwMCAwMCAw MCAgMDIgMDAgMDAgMDAgMTQgNDMgNkYgNkUgOiBcLi4uLi4uLi4uLi4uQ29uCjAwMTA6IDZFIDY1 IDYzIDc0IDY5IDZGIDZFIDIwICA3NCA2OSA2RCA2NSA2NCAyMCA2RiA3NSA6IG5lY3Rpb24gdGlt ZWQgb3UKMDAyMDogNzQgMDAgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogdC4uLi4KW2xpYnNzaDJdIDY4OC41OTY5NDIgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5 MiByZWNlaXZlZCwgbGVuZ3RoPTM3CltsaWJzc2gyXSA2ODguNTk2OTUwIENvbm46IGNoYW5uZWxf cmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzEKW2xpYnNz aDJdIDY4OC41OTY5NTggVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEK W2xpYnNzaDJdIDY4OC41OTY5NjMgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlw ZTogOTIKW2xpYnNzaDJdIDY4OC41OTY5NjggVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQg b2YgdHlwZTogOTQKW2xpYnNzaDJdIDY4OC41OTY5NzIgVHJhbnNwb3J0OiBMb29raW5nIGZvciBw YWNrZXQgb2YgdHlwZTogOTUKW2xpYnNzaDJdIDcyMC4zMzM3NTQgQ29ubjogY2hhbm5lbF9yZWFk KCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0g NzIwLjMzMzgwMiBTb2NrZXQ6IFJlY3ZlZCA1Mi8xNjM4NCBieXRlcyB0byAweGYzNjUxMCswCj0+ IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDUyIGJ5dGVzKQowMDAwOiAzNiA2OSA1NCAy QyA4NiBCRSA1QyBBRSAgOUMgNTMgREMgQjAgMDIgQzcgNTYgQUYgOiA2aVQsLi5cLi5TLi4uLlYu CjAwMTA6IDU5IDhEIEFEIDc4IEU2IENDIEREIEI0ICA1MyA5NiAxRiAyNCAxRCA2RiBCOCAxNSA6 IFkuLnguLi4uUy4uJC5vLi4KMDAyMDogNzUgREYgNzUgNDQgMTEgNUYgOTYgNkIgIENGIENDIDFD IDVGIDhFIDRCIDc0IEE0IDogdS51RC5fLmsuLi5fLkt0LgowMDMwOiA2MyA0NiBDMyA3MyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjRi5zCj0+IGxpYnNzaDJfdHJhbnNw b3J0X3JlYWQoKSBwbGFpbiAoMTkgYnl0ZXMpCjAwMDA6IDVFIDAwIDAwIDAwIDAwIDAwIDAwIDAw ICAwQSA2RSA2RiA3NiA2NSAyMCA2NCA2MSA6IF4uLi4uLi4uLm5vdmUgZGEKMDAxMDogNzQgNjEg MEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGEuCltsaWJzc2gy XSA3MjAuMzMzODU5IFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0aD0x OQpbbGlic3NoMl0gNzIwLjMzMzg2NSBDb25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkgZm9yIDAv MC8wCltsaWJzc2gyXSA3MjAuMzMzODc0IENvbm46IGNoYW5uZWxfcmVhZCgpIGdvdCAxMCBvZiBk YXRhIGZyb20gMC8wLzAgW3VsXQpbbGlic3NoMl0gNzIwLjMzMzg4MyBDb25uOiBBbGxvY2F0ZWQg bmV3IGNoYW5uZWwgSUQjOApbbGlic3NoMl0gNzIwLjMzMzg4NyBDb25uOiBPcGVuaW5nIENoYW5u ZWwgLSB3aW4gMjYyMTQ0IHBhY2sgMzI3NjgKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxh aW4gKDI5IGJ5dGVzKQowMDAwOiA1QSAwMCAwMCAwMCAwQyA2NCA2OSA3MiAgNjUgNjMgNzQgMkQg NzQgNjMgNzAgNjkgOiBaLi4uLmRpcmVjdC10Y3BpCjAwMTA6IDcwIDAwIDAwIDAwIDA4IDAwIDA0 IDAwICAwMCAwMCAwMCA4MCAwMCAgICAgICAgICA6IHAuLi4uLi4uLi4uLi4KPT4gbGlic3NoMl90 cmFuc3BvcnRfd3JpdGUgcGxhaW4yICgzNiBieXRlcykKMDAwMDogMDAgMDAgMDAgMEIgMzEgMzAg MkUgMzcgIDM2IDJFIDM5IDJFIDMxIDM3IDMzIDAwIDogLi4uLjEwLjc2LjkuMTczLgowMDEwOiAw MCAwMCAxNiAwMCAwMCAwMCAwOSAzMSAgMzIgMzcgMkUgMzAgMkUgMzAgMkUgMzEgOiAuLi4uLi4u MTI3LjAuMC4xCjAwMjA6IDAwIDAwIDAwIDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IC4uLi4KW2xpYnNzaDJdIDcyMC4zMzM5MzUgU29ja2V0OiBTZW50IDEwMC8xMDAg Ynl0ZXMgYXQgMHhmM2E1NTAKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgpICgxMDAg Ynl0ZXMpCjAwMDA6IDQ1IDRBIEQ5IDBEIDI1IEE2IDIyIEU4ICA4MiA0OCBENSAzOCBFNiBCMiBC OSA1RSA6IEVKLi4lLiIuLkguOC4uLl4KMDAxMDogNDMgODYgRUUgMDYgMUUgRjQgRkMgM0IgIDAz IEQ1IDZFIEREIEFFIEMwIDcwIDI4IDogQy4uLi4uLjsuLm4uLi5wKAowMDIwOiAwNCA0NCBERiA2 MyBDNiA4OCA0QSA4OSAgMDggOTEgN0MgRTQgMjYgQjIgQjAgQjggOiAuRC5jLi5KLi4ufC4mLi4u CjAwMzA6IDZEIDYxIDU4IEI5IDJDIDU4IEY1IDM3ICBBRiA4NiA1MCAwNiBGQiA2RSA1RiA5RCA6 IG1hWC4sWC43Li5QLi5uXy4KMDA0MDogMjMgM0UgNzAgOUYgMDMgREYgQTkgRTcgIDlBIDgwIDU4 IEE4IDIzIEYyIDEyIEYyIDogIz5wLi4uLi4uLlguIy4uLgowMDUwOiA3QSA3MyAwRCA0NCA5MyBD MiBEQyBFRSAgNjkgOEEgRDkgQUQgNzkgQTggOEIgMzIgOiB6cy5ELi4uLmkuLi55Li4yCjAwNjA6 IDQyIEQ0IEMwIDEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEIuLi4K W2xpYnNzaDJdIDcyMC4zMzM5NjMgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlw ZTogOTEKW2xpYnNzaDJdIDcyMC4zMzM5NjcgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQg b2YgdHlwZTogOTIKW2xpYnNzaDJdIDc4MC4zMzc4NjQgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2Fu dHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gNzgwLjMz NzkxMCBTb2NrZXQ6IFJlY3ZlZCA1Mi8xNjM4NCBieXRlcyB0byAweGYzNjUxMCswCj0+IGxpYnNz aDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDUyIGJ5dGVzKQowMDAwOiBFQiA0OCA4QyA0NSA2RCBF RSA4MCA4OSAgNzggRjAgMDggQjAgMzAgMUMgMTcgNDkgOiAuSC5FbS4uLnguLi4wLi5JCjAwMTA6 IDQyIEU0IDE5IDMxIDhBIDI0IDIzIDc3ICAyQSA0NyAzMCA4MSAxNSA5MiBFQSAwMiA6IEIuLjEu JCN3KkcwLi4uLi4KMDAyMDogREYgNUYgRkEgNkQgNDggQ0MgOUQgMUMgIDU3IENFIEVEIDE0IEE3 IDhGIDY1IEY1IDogLl8ubUguLi5XLi4uLi5lLgowMDMwOiBBMSAyMCAyNiAwQyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuICYuCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3Jl YWQoKSBwbGFpbiAoMTkgYnl0ZXMpCjAwMDA6IDVFIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAwQSA2 RSA2RiA3NiA2NSAyMCA2NCA2MSA6IF4uLi4uLi4uLm5vdmUgZGEKMDAxMDogNzQgNjEgMEEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGEuCltsaWJzc2gyXSA3ODAu MzM3OTYxIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0aD0xOQpbbGli c3NoMl0gNzgwLjMzNzk2NiBDb25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkgZm9yIDAvMC8wClts aWJzc2gyXSA3ODAuMzM3OTc0IENvbm46IGNoYW5uZWxfcmVhZCgpIGdvdCAxMCBvZiBkYXRhIGZy b20gMC8wLzAgW3VsXQpbbGlic3NoMl0gNzgwLjMzNzk4MiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9y IHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gNzgwLjMzNzk4NiBUcmFuc3BvcnQ6IExvb2tp bmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gNzgwLjMzNzk5MiBUcmFuc3BvcnQ6 IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NApbbGlic3NoMl0gNzgwLjMzNzk5NiBUcmFu c3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NQpbbGlic3NoMl0gNzk5LjE4ODc2 MSBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAg c3RyZWFtICMwCltsaWJzc2gyXSA3OTkuMTg4Nzk4IFNvY2tldDogUmVjdmVkIDY4LzE2Mzg0IGJ5 dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNjggYnl0 ZXMpCjAwMDA6IDg0IDJCIEFCIDMzIDQwIEY5IDZCIEE1ICAzMiA3NiAzNCAzQyA2QiBEMiBFQSA5 MSA6IC4rLjNALmsuMnY0PGsuLi4KMDAxMDogMUMgOUQgQkYgNjIgRTggNDMgQkYgNDQgIDk4IDYx IDkwIDMxIDEzIDE1IDI1IDcyIDogLi4uYi5DLkQuYS4xLi4lcgowMDIwOiA3NyA0MSAwMyBCOSA0 NyA3NSA2NSA4QiAgREEgREUgNDAgM0MgMDIgMEEgMUYgQzYgOiB3QS4uR3VlLi4uQDwuLi4uCjAw MzA6IEIyIDg4IDQzIEFBIEFDIDlGIEZCIDgwICBBQSBDMSBEOSAzNSA2QiAxQSA3MyA4NyA6IC4u Qy4uLi4uLi4uNWsucy4KMDA0MDogRDggNzIgODggOEEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogLnIuLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDM3 IGJ5dGVzKQowMDAwOiA1QyAwMCAwMCAwMCAwNyAwMCAwMCAwMCAgMDIgMDAgMDAgMDAgMTQgNDMg NkYgNkUgOiBcLi4uLi4uLi4uLi4uQ29uCjAwMTA6IDZFIDY1IDYzIDc0IDY5IDZGIDZFIDIwICA3 NCA2OSA2RCA2NSA2NCAyMCA2RiA3NSA6IG5lY3Rpb24gdGltZWQgb3UKMDAyMDogNzQgMDAgMDAg MDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdC4uLi4KW2xpYnNzaDJd IDc5OS4xODg4NTMgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5MiByZWNlaXZlZCwgbGVuZ3RoPTM3 CltsaWJzc2gyXSA3OTkuMTg4ODYxIENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0 ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzEKW2xpYnNzaDJdIDc5OS4xODg4NjggQ29ubjog QWxsb2NhdGVkIG5ldyBjaGFubmVsIElEIzkKW2xpYnNzaDJdIDc5OS4xODg4NzIgQ29ubjogT3Bl bmluZyBDaGFubmVsIC0gd2luIDI2MjE0NCBwYWNrIDMyNzY4Cj0+IGxpYnNzaDJfdHJhbnNwb3J0 X3dyaXRlIHBsYWluICgyOSBieXRlcykKMDAwMDogNUEgMDAgMDAgMDAgMEMgNjQgNjkgNzIgIDY1 IDYzIDc0IDJEIDc0IDYzIDcwIDY5IDogWi4uLi5kaXJlY3QtdGNwaQowMDEwOiA3MCAwMCAwMCAw MCAwOSAwMCAwNCAwMCAgMDAgMDAgMDAgODAgMDAgICAgICAgICAgOiBwLi4uLi4uLi4uLi4uCj0+ IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBsYWluMiAoMzYgYnl0ZXMpCjAwMDA6IDAwIDAwIDAw IDBCIDMxIDMwIDJFIDM3ICAzNiAyRSAzOSAyRSAzMSAzNyAzMyAwMCA6IC4uLi4xMC43Ni45LjE3 My4KMDAxMDogMDAgMDAgMTYgMDAgMDAgMDAgMDkgMzEgIDMyIDM3IDJFIDMwIDJFIDMwIDJFIDMx IDogLi4uLi4uLjEyNy4wLjAuMQowMDIwOiAwMCAwMCAwMCAxNiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiAuLi4uCltsaWJzc2gyXSA3OTkuMTg4OTM0IFNvY2tldDogU2Vu dCAxMDAvMTAwIGJ5dGVzIGF0IDB4ZjNhNTUwCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHNl bmQoKSAoMTAwIGJ5dGVzKQowMDAwOiAwMCBDQSA1QSA4NiBDRSA2NSBEMCA2RCAgMjggQ0IgNkUg NTMgNTAgRTcgRDEgRjMgOiAuLlouLmUubSgublNQLi4uCjAwMTA6IERDIEQzIEIwIDFBIEQxIDVG IDg0IDFCICAyRCAzNiA4NiBERSA5MyA5NSBCRCA1QiA6IC4uLi4uXy4uLTYuLi4uLlsKMDAyMDog QzIgQkMgMEMgNEMgRUYgNTYgNUMgRjEgIEMyIDgzIDgxIEUxIDZCIENDIDg5IDgzIDogLi4uTC5W XC4uLi4uay4uLgowMDMwOiBBQyBGMCA3MyAzRiAzMyBDMyBFMiBGNSAgRjcgNDQgODcgRkYgMjMg M0IgQzMgMTcgOiAuLnM/My4uLi5ELi4jOy4uCjAwNDA6IDc3IDlFIERFIDAxIENGIEEyIDY1IEQ3 ICA3NiA1OSBFRSAzQiAzMSBDOCBCQiAyQyA6IHcuLi4uLmUudlkuOzEuLiwKMDA1MDogNEEgREEg NEMgRTIgMDYgQUQgMDMgQzMgIDQ0IDM3IDREIDRGIDAzIDFGIDk1IDJCIDogSi5MLi4uLi5EN01P Li4uKwowMDYwOiA5MyBCNiA2MSBCQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiAuLmEuCltsaWJzc2gyXSA3OTkuMTg4OTYxIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFj a2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSA3OTkuMTg4OTY1IFRyYW5zcG9ydDogTG9va2luZyBm b3IgcGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gyXSA4NDAuMzQxOTQ0IENvbm46IGNoYW5uZWxf cmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNz aDJdIDg0MC4zNDE5ODcgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTAr MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykKMDAwMDogMzAgMkUg OUUgNjAgNzMgMUIgOTMgRDIgIDMyIEJCIDFBIEMxIEUwIEY5IDhDIDg4IDogMC4uYHMuLi4yLi4u Li4uLgowMDEwOiBGMyBFNiA0NyA2RiBCQSAzOCAxQiBENSAgRTQgMjggQUYgNTEgRTYgRkYgRDAg Q0MgOiAuLkdvLjguLi4oLlEuLi4uCjAwMjA6IDhBIDIwIEIxIEQ3IDRDIENBIDhEIDY0ICA3MiAx OSAzMiAxMyAzNSAwRiBGMiBCNCA6IC4gLi5MLi5kci4yLjUuLi4KMDAzMDogQkIgQTAgNTkgREIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi5ZLgo9PiBsaWJzc2gyX3Ry YW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAw MCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0 IDYxIDBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGli c3NoMl0gODQwLjM0MjAzNiBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDk0IHJlY2VpdmVkLCBsZW5n dGg9MTkKW2xpYnNzaDJdIDg0MC4zNDIwNDEgQ29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZv ciAwLzAvMApbbGlic3NoMl0gODQwLjM0MjA1MCBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3QgMTAg b2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0KW2xpYnNzaDJdIDg0MC4zNDIwNTkgVHJhbnNwb3J0OiBM b29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDg0MC4zNDIwNjMgVHJhbnNw b3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDkwMC4zNDU5NzUg Q29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0 cmVhbSAjMApbbGlic3NoMl0gOTAwLjM0NjAyMiBTb2NrZXQ6IFJlY3ZlZCA1Mi8xNjM4NCBieXRl cyB0byAweGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDUyIGJ5dGVz KQowMDAwOiBCNiA5NyA4MiBFRSA4QyAyOSBEOSA5NSAgOTUgMDEgOEQgQUEgMjEgNkQgMTEgN0Yg OiAuLi4uLikuLi4uLi4hbS4uCjAwMTA6IDlBIDRDIDE5IDcyIDkxIDhGIDFFIEREICBGMyBGNSBG MSBGNyBGMyBCNSAxOCBERCA6IC5MLnIuLi4uLi4uLi4uLi4KMDAyMDogQjUgMTYgQUQgNDAgMzAg OTMgREEgMjIgIEYzIERGIEVCIDBFIDkxIDg0IDg1IDQ1IDogLi4uQDAuLiIuLi4uLi4uRQowMDMw OiBBMyA5QSAzRCAwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLj0u Cj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMTkgYnl0ZXMpCjAwMDA6IDVFIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAwQSA2RSA2RiA3NiA2NSAyMCA2NCA2MSA6IF4uLi4uLi4uLm5v dmUgZGEKMDAxMDogNzQgNjEgMEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogdGEuCltsaWJzc2gyXSA5MDAuMzQ2MDcxIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQg cmVjZWl2ZWQsIGxlbmd0aD0xOQpbbGlic3NoMl0gOTAwLjM0NjA3NiBDb25uOiAxMCBieXRlcyBw YWNrZXRfYWRkKCkgZm9yIDAvMC8wCltsaWJzc2gyXSA5MDAuMzQ2MDgzIENvbm46IGNoYW5uZWxf cmVhZCgpIGdvdCAxMCBvZiBkYXRhIGZyb20gMC8wLzAgW3VsXQpbbGlic3NoMl0gOTAwLjM0NjA5 MiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gOTAw LjM0NjA5NiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3No Ml0gOTAwLjM0NjEwMiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NApb bGlic3NoMl0gOTAwLjM0NjEwNSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBl OiA5NQpbbGlic3NoMl0gOTA5Ljc4MDg3OSBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4 IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMwCltsaWJzc2gyXSA5MDkuNzgwOTIwIFNv Y2tldDogUmVjdmVkIDY4LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFu c3BvcnRfcmVhZCgpIHJhdyAoNjggYnl0ZXMpCjAwMDA6IDVFIEMyIDQ0IEU1IDYyIEE4IDE2IDg4 ICBDNyBBMSAxRCA2NCAxQiA1NyBFRCBDQSA6IF4uRC5iLi4uLi4uZC5XLi4KMDAxMDogNEQgQTUg NzIgRjcgMkYgN0QgMzAgRTEgIDFFIDY0IDU2IDZFIDhGIDQxIDhGIDBCIDogTS5yLi99MC4uZFZu LkEuLgowMDIwOiA2NSBFMSAxQSBBMiBDQiBGQiA2NyBCNCAgNjAgRTggRkEgNDggRjYgRjMgQ0Ig OTMgOiBlLi4uLi5nLmAuLkguLi4uCjAwMzA6IEM0IERGIDk3IDhDIDZGIDY5IEMwIDZCICBGQyBD OCBBMiBBRSA0MSBENiA3MyBGOCA6IC4uLi5vaS5rLi4uLkEucy4KMDA0MDogRjUgQzkgNjMgMkIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi5jKwo9PiBsaWJzc2gyX3Ry YW5zcG9ydF9yZWFkKCkgcGxhaW4gKDM3IGJ5dGVzKQowMDAwOiA1QyAwMCAwMCAwMCAwOCAwMCAw MCAwMCAgMDIgMDAgMDAgMDAgMTQgNDMgNkYgNkUgOiBcLi4uLi4uLi4uLi4uQ29uCjAwMTA6IDZF IDY1IDYzIDc0IDY5IDZGIDZFIDIwICA3NCA2OSA2RCA2NSA2NCAyMCA2RiA3NSA6IG5lY3Rpb24g dGltZWQgb3UKMDAyMDogNzQgMDAgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogdC4uLi4KW2xpYnNzaDJdIDkwOS43ODA5NzggVHJhbnNwb3J0OiBQYWNrZXQgdHlw ZSA5MiByZWNlaXZlZCwgbGVuZ3RoPTM3CltsaWJzc2gyXSA5MDkuNzgwOTg2IENvbm46IGNoYW5u ZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzEKW2xp YnNzaDJdIDkwOS43ODA5OTQgQ29ubjogQWxsb2NhdGVkIG5ldyBjaGFubmVsIElEIzEwCltsaWJz c2gyXSA5MDkuNzgwOTk4IENvbm46IE9wZW5pbmcgQ2hhbm5lbCAtIHdpbiAyNjIxNDQgcGFjayAz Mjc2OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbiAoMjkgYnl0ZXMpCjAwMDA6IDVB IDAwIDAwIDAwIDBDIDY0IDY5IDcyICA2NSA2MyA3NCAyRCA3NCA2MyA3MCA2OSA6IFouLi4uZGly ZWN0LXRjcGkKMDAxMDogNzAgMDAgMDAgMDAgMEEgMDAgMDQgMDAgIDAwIDAwIDAwIDgwIDAwICAg ICAgICAgIDogcC4uLi4uLi4uLi4uLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbjIg KDM2IGJ5dGVzKQowMDAwOiAwMCAwMCAwMCAwQiAzMSAzMCAyRSAzNyAgMzYgMkUgMzkgMkUgMzEg MzcgMzMgMDAgOiAuLi4uMTAuNzYuOS4xNzMuCjAwMTA6IDAwIDAwIDE2IDAwIDAwIDAwIDA5IDMx ICAzMiAzNyAyRSAzMCAyRSAzMCAyRSAzMSA6IC4uLi4uLi4xMjcuMC4wLjEKMDAyMDogMDAgMDAg MDAgMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgpbbGlic3No Ml0gOTA5Ljc4MTA1NiBTb2NrZXQ6IFNlbnQgMTAwLzEwMCBieXRlcyBhdCAweGYzYTU1MAo9PiBs aWJzc2gyX3RyYW5zcG9ydF93cml0ZSBzZW5kKCkgKDEwMCBieXRlcykKMDAwMDogQUMgODUgNTQg MUYgREQgMDkgMkQgMjEgIDFFIDREIEJGIDlEIEZBIDEwIDI5IDk1IDogLi5ULi4uLSEuTS4uLi4p LgowMDEwOiA0MCA4OCAwNSAxOCA3MyA0MCBENiBENyAgMTIgMDYgREEgQzUgRUEgRkUgMkMgMDAg OiBALi4uc0AuLi4uLi4uLiwuCjAwMjA6IEIyIEI1IEEzIDA5IDNEIDA5IDZCIDAxICBDNiA3MSBG RiAyNiA2QiBCNyAwOCBDNiA6IC4uLi49LmsuLnEuJmsuLi4KMDAzMDogRTYgOTcgQUMgMUEgMjcg ODEgNkIgOEUgIEUzIDAwIDI5IDQwIDZFIDg2IEFDIEZFIDogLi4uLicuay4uLilAbi4uLgowMDQw OiAwMiBGQiA2NiAzRSA2RiBGOSA5MSBGQSAgRkQgRTAgQ0EgOEMgM0EgRjIgMEMgQjEgOiAuLmY+ by4uLi4uLi46Li4uCjAwNTA6IDgyIEVFIDVBIDlFIEQxIDY0IEM3IEE3ICA1NiA3OCAxOCAxMCBG OSBCQiBGNyAxQiA6IC4uWi4uZC4uVnguLi4uLi4KMDA2MDogODQgMDkgQTYgODggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgpbbGlic3NoMl0gOTA5Ljc4MTA4NCBU cmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gOTA5Ljc4 MTA4OCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0g OTYwLjM1MDIyNCBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hh bm5lbCAwLzAgc3RyZWFtICMwCltsaWJzc2gyXSA5NjAuMzUwMjY4IFNvY2tldDogUmVjdmVkIDUy LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJh dyAoNTIgYnl0ZXMpCjAwMDA6IDMwIENFIEUzIDk4IDU4IDk4IDU5IDY1ICA2OSAyOCBENiBENiBE MiAzQiA1MCAzRCA6IDAuLi5YLlllaSguLi47UD0KMDAxMDogODUgQ0YgRUYgQTQgMTEgNzUgNUIg RkMgIEJGIDJGIDVFIDlBIDY3IEM4IDRCIDJFIDogLi4uLi51Wy4uL14uZy5LLgowMDIwOiAxMSBG QSA0RiA5MSA3QSAxOCBERiAzOCAgNTQgODIgRTIgNDEgMUEgMTkgNDAgRjYgOiAuLk8uei4uOFQu LkEuLkAuCjAwMzA6IDhFIDBFIERFIDA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IC4uLi4KPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykK MDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDog Xi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2MSAwQSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNzaDJdIDk2MC4zNTAzMTkgVHJhbnNwb3J0OiBQYWNr ZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSA5NjAuMzUwMzI1IENvbm46 IDEwIGJ5dGVzIHBhY2tldF9hZGQoKSBmb3IgMC8wLzAKW2xpYnNzaDJdIDk2MC4zNTAzMzQgQ29u bjogY2hhbm5lbF9yZWFkKCkgZ290IDEwIG9mIGRhdGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gy XSA5NjAuMzUwMzQzIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxClts aWJzc2gyXSA5NjAuMzUwMzQ3IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6 IDkyCltsaWJzc2gyXSA5ODguNjI4ODA0IENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDgg Ynl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDk4OC42Mjg4NDEgU29j a2V0OiBSZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5z cG9ydF9yZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDogNDcgNDIgMTIgNzQgRjQgNkUgOTcgMzkg IEQzIDJGIDg1IEVFIDFEIENCIDBEIDdGIDogR0IudC5uLjkuLy4uLi4uLgowMDEwOiAyNiBCRSBD QSBCMyBDRCAyRCBGNiAyNCAgNTEgMTAgQTUgMkEgQjcgQzMgQkIgRTYgOiAmLi4uLi0uJFEuLiou Li4uCjAwMjA6IEFCIDhBIDI1IDJEIEYwIDQ0IEFBIDEzICBBNyA2MCBCRSBDRiA1RCA1QyAzRiA0 QyA6IC4uJS0uRC4uLmAuLl1cP0wKMDAzMDogNTcgMkEgMEUgOTkgQzkgNDYgRTcgNzIgIEMzIDAx IEFDIEI3IEYxIEFDIEZGIDlDIDogVyouLi5GLnIuLi4uLi4uLgowMDQwOiBFNSBBMiBFQSAyQyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi4sCj0+IGxpYnNzaDJfdHJh bnNwb3J0X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAwIDA5IDAwIDAw IDAwICAwMiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24KMDAxMDogNkUg NjUgNjMgNzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0 aW1lZCBvdQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiB0Li4uLgpbbGlic3NoMl0gOTg4LjYyODg5NCBUcmFuc3BvcnQ6IFBhY2tldCB0eXBl IDkyIHJlY2VpdmVkLCBsZW5ndGg9MzcKW2xpYnNzaDJdIDk4OC42Mjg5MDMgQ29ubjogY2hhbm5l bF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMQpbbGli c3NoMl0gOTg4LjYyODkxMSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5 MQpbbGlic3NoMl0gOTg4LjYyODkxNiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0 eXBlOiA5MgpbbGlic3NoMl0gOTg4LjYyODkyMSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tl dCBvZiB0eXBlOiA5NApbbGlic3NoMl0gOTg4LjYyODkyNSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9y IHBhY2tldCBvZiB0eXBlOiA5NQpbbGlic3NoMl0gMTAyMC4zNTM3ODkgQ29ubjogY2hhbm5lbF9y ZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3No Ml0gMTAyMC4zNTM4MzcgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTAr MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykKMDAwMDogNUIgRTUg NEEgRjcgNDIgNkMgQzYgRjYgIEEzIDExIDgwIDY0IDJFIEIxIDI4IDUwIDogWy5KLkJsLi4uLi5k Li4oUAowMDEwOiA4NSA0RCA4RCA3MSAwQyBGRSBCRSBBNyAgMjQgRjYgQjMgQjEgRjIgQUYgMjcg NzUgOiAuTS5xLi4uLiQuLi4uLid1CjAwMjA6IEUxIDE5IEEzIEU0IDc5IDA1IEYzIDc0ICA5RiBG MyA5QSBEMSBGNCAwOCAxNiAwMSA6IC4uLi55Li50Li4uLi4uLi4KMDAzMDogQ0IgRDYgNzMgODQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi5zLgo9PiBsaWJzc2gyX3Ry YW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAw MCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0 IDYxIDBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGli c3NoMl0gMTAyMC4zNTM4ODcgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVu Z3RoPTE5CltsaWJzc2gyXSAxMDIwLjM1Mzg5MiBDb25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkg Zm9yIDAvMC8wCltsaWJzc2gyXSAxMDIwLjM1MzkwOCBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3Qg MTAgb2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0KW2xpYnNzaDJdIDEwMjAuMzUzOTE3IENvbm46IEFs bG9jYXRlZCBuZXcgY2hhbm5lbCBJRCMxMQpbbGlic3NoMl0gMTAyMC4zNTM5MjEgQ29ubjogT3Bl bmluZyBDaGFubmVsIC0gd2luIDI2MjE0NCBwYWNrIDMyNzY4Cj0+IGxpYnNzaDJfdHJhbnNwb3J0 X3dyaXRlIHBsYWluICgyOSBieXRlcykKMDAwMDogNUEgMDAgMDAgMDAgMEMgNjQgNjkgNzIgIDY1 IDYzIDc0IDJEIDc0IDYzIDcwIDY5IDogWi4uLi5kaXJlY3QtdGNwaQowMDEwOiA3MCAwMCAwMCAw MCAwQiAwMCAwNCAwMCAgMDAgMDAgMDAgODAgMDAgICAgICAgICAgOiBwLi4uLi4uLi4uLi4uCj0+ IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBsYWluMiAoMzYgYnl0ZXMpCjAwMDA6IDAwIDAwIDAw IDBCIDMxIDMwIDJFIDM3ICAzNiAyRSAzOSAyRSAzMSAzNyAzMyAwMCA6IC4uLi4xMC43Ni45LjE3 My4KMDAxMDogMDAgMDAgMTYgMDAgMDAgMDAgMDkgMzEgIDMyIDM3IDJFIDMwIDJFIDMwIDJFIDMx IDogLi4uLi4uLjEyNy4wLjAuMQowMDIwOiAwMCAwMCAwMCAxNiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiAuLi4uCltsaWJzc2gyXSAxMDIwLjM1Mzk2OCBTb2NrZXQ6IFNl bnQgMTAwLzEwMCBieXRlcyBhdCAweGYzYTU1MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBz ZW5kKCkgKDEwMCBieXRlcykKMDAwMDogODkgNkUgMTEgMUEgNUQgQTEgN0QgM0IgIDdBIDcyIDc0 IDc1IEQyIEQ2IENBIDA4IDogLm4uLl0ufTt6cnR1Li4uLgowMDEwOiA2MCA4RCA0NiBFNCAzMyAy MiBERCA4QSAgMzAgREIgMjEgRjggRUUgN0UgMzIgMzAgOiBgLkYuMyIuLjAuIS4ufjIwCjAwMjA6 IDIyIDEwIEUyIEY2IDBBIEVCIERGIDkwICAzNCA1NyA2NiAwNCBBQiA5OSA2RSA5OCA6ICIuLi4u Li4uNFdmLi4ubi4KMDAzMDogQ0IgRTggNjYgRjUgMzcgNkYgREUgRDMgIDQ3IENDIEYzIDZDIEMx IEVGIDY4IEJDIDogLi5mLjdvLi5HLi5sLi5oLgowMDQwOiA0NSA0QSA1RiA4NCBGRSBCNCBFQSA1 QSAgQzYgMzEgNEQgRTIgRUIgMzAgMkIgRjkgOiBFSl8uLi4uWi4xTS4uMCsuCjAwNTA6IDM4IDFG IDU0IEJFIEUxIEIxIDMxIDFEICBDRSBDNCBFNiA5NSAwRSBBMyAwNyAxNyA6IDguVC4uLjEuLi4u Li4uLi4KMDA2MDogNkYgMDYgNjkgNzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogby5pdgpbbGlic3NoMl0gMTAyMC4zNTM5OTYgVHJhbnNwb3J0OiBMb29raW5nIGZvciBw YWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDEwMjAuMzU0MDAwIFRyYW5zcG9ydDogTG9va2lu ZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gyXSAxMDgwLjM1ODA2NiBDb25uOiBjaGFu bmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMwClts aWJzc2gyXSAxMDgwLjM1ODExMCBTb2NrZXQ6IFJlY3ZlZCA1Mi8xNjM4NCBieXRlcyB0byAweGYz NjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDUyIGJ5dGVzKQowMDAwOiA4 MCA0OSAxRSBDOSAxMSAxRCA2MSBCOCAgNDUgN0IgNzUgODcgRkMgNEYgNjQgRDggOiAuSS4uLi5h LkV7dS4uT2QuCjAwMTA6IEQyIDMyIDRGIDI2IDY2IDExIEEzIEIxICBDOCBBMSA3MCAwNyA2OCBB MiBFRCBGOSA6IC4yTyZmLi4uLi5wLmguLi4KMDAyMDogRUUgOTcgN0IgRkQgNTAgMEQgQjcgMjIg IDYwIEFCIDkwIEFCIEZCIEZFIEZFIDE2IDogLi57LlAuLiJgLi4uLi4uLgowMDMwOiA4OSBEMyBG OSBCOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi4uCj0+IGxpYnNz aDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMTkgYnl0ZXMpCjAwMDA6IDVFIDAwIDAwIDAwIDAw IDAwIDAwIDAwICAwQSA2RSA2RiA3NiA2NSAyMCA2NCA2MSA6IF4uLi4uLi4uLm5vdmUgZGEKMDAx MDogNzQgNjEgMEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGEu CltsaWJzc2gyXSAxMDgwLjM1ODE1NiBUcmFuc3BvcnQ6IFBhY2tldCB0eXBlIDk0IHJlY2VpdmVk LCBsZW5ndGg9MTkKW2xpYnNzaDJdIDEwODAuMzU4MTYxIENvbm46IDEwIGJ5dGVzIHBhY2tldF9h ZGQoKSBmb3IgMC8wLzAKW2xpYnNzaDJdIDEwODAuMzU4MTcwIENvbm46IGNoYW5uZWxfcmVhZCgp IGdvdCAxMCBvZiBkYXRhIGZyb20gMC8wLzAgW3VsXQpbbGlic3NoMl0gMTA4MC4zNTgxNzggVHJh bnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDEwODAuMzU4 MTgzIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gyXSAx MDgwLjM1ODE4OCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NApbbGli c3NoMl0gMTA4MC4zNTgxOTIgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTog OTUKW2xpYnNzaDJdIDEwOTkuMjIwODU2IENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDgg Ynl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDEwOTkuMjIwODkxIFNv Y2tldDogUmVjdmVkIDY4LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFu c3BvcnRfcmVhZCgpIHJhdyAoNjggYnl0ZXMpCjAwMDA6IEZCIEM4IEI3IEVEIDhGIEJGIEI1IDVE ICBDOCA1QiAxMSAxOCA2RCBEQiBDMSA2QSA6IC4uLi4uLi5dLlsuLm0uLmoKMDAxMDogNTQgQTQg MkIgQTMgRTkgMEUgM0MgMDEgIDIwIEU5IDUwIEMyIEVGIDRCIEU1IDhGIDogVC4rLi4uPC4gLlAu LksuLgowMDIwOiAwRCA1NiA0NyBGNSA0MCA3OSA0MiBBNyAgQkUgMjYgNTcgODYgQzUgOUEgQTIg RDEgOiAuVkcuQHlCLi4mVy4uLi4uCjAwMzA6IDdFIDU2IDk2IDhBIERBIDUxIEY4IEREICBDMyA3 OSBCNyA0RCBBMyBFMyAwRSAwQiA6IH5WLi4uUS4uLnkuTS4uLi4KMDA0MDogRUEgQTQgQkIgRkQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgo9PiBsaWJzc2gyX3Ry YW5zcG9ydF9yZWFkKCkgcGxhaW4gKDM3IGJ5dGVzKQowMDAwOiA1QyAwMCAwMCAwMCAwQSAwMCAw MCAwMCAgMDIgMDAgMDAgMDAgMTQgNDMgNkYgNkUgOiBcLi4uLi4uLi4uLi4uQ29uCjAwMTA6IDZF IDY1IDYzIDc0IDY5IDZGIDZFIDIwICA3NCA2OSA2RCA2NSA2NCAyMCA2RiA3NSA6IG5lY3Rpb24g dGltZWQgb3UKMDAyMDogNzQgMDAgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogdC4uLi4KW2xpYnNzaDJdIDEwOTkuMjIwOTQ3IFRyYW5zcG9ydDogUGFja2V0IHR5 cGUgOTIgcmVjZWl2ZWQsIGxlbmd0aD0zNwpbbGlic3NoMl0gMTA5OS4yMjA5NTYgQ29ubjogY2hh bm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMQpb bGlic3NoMl0gMTA5OS4yMjA5NjQgQ29ubjogQWxsb2NhdGVkIG5ldyBjaGFubmVsIElEIzEyClts aWJzc2gyXSAxMDk5LjIyMDk2OCBDb25uOiBPcGVuaW5nIENoYW5uZWwgLSB3aW4gMjYyMTQ0IHBh Y2sgMzI3NjgKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4gKDI5IGJ5dGVzKQowMDAw OiA1QSAwMCAwMCAwMCAwQyA2NCA2OSA3MiAgNjUgNjMgNzQgMkQgNzQgNjMgNzAgNjkgOiBaLi4u LmRpcmVjdC10Y3BpCjAwMTA6IDcwIDAwIDAwIDAwIDBDIDAwIDA0IDAwICAwMCAwMCAwMCA4MCAw MCAgICAgICAgICA6IHAuLi4uLi4uLi4uLi4KPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxh aW4yICgzNiBieXRlcykKMDAwMDogMDAgMDAgMDAgMEIgMzEgMzAgMkUgMzcgIDM2IDJFIDM5IDJF IDMxIDM3IDMzIDAwIDogLi4uLjEwLjc2LjkuMTczLgowMDEwOiAwMCAwMCAxNiAwMCAwMCAwMCAw OSAzMSAgMzIgMzcgMkUgMzAgMkUgMzAgMkUgMzEgOiAuLi4uLi4uMTI3LjAuMC4xCjAwMjA6IDAw IDAwIDAwIDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLi4KW2xp YnNzaDJdIDEwOTkuMjIxMDE2IFNvY2tldDogU2VudCAxMDAvMTAwIGJ5dGVzIGF0IDB4ZjNhNTUw Cj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHNlbmQoKSAoMTAwIGJ5dGVzKQowMDAwOiAxMSA4 MCA3RiA5QiA3OCA5MiAyRiA3QSAgNEMgRUYgMjEgRDUgMTkgMjQgNUYgNEUgOiAuLi4ueC4vekwu IS4uJF9OCjAwMTA6IEFDIDAzIDU0IDE5IDAyIDIzIEYzIDAyICA2QSA4QiA2NSA2QyAwNCAyNyBD NiBCQyA6IC4uVC4uIy4uai5lbC4nLi4KMDAyMDogRDkgNTIgQkYgOTcgQUEgRTQgQjggQTYgIEMx IDQ1IEUwIDc5IDMzIEZBIDQ5IDc2IDogLlIuLi4uLi4uRS55My5JdgowMDMwOiBFRCA4NyBCMSAz MSA4RCBCRSA1NiAzOCAgN0QgNDEgODkgMUEgNDUgMjIgQzQgNzYgOiAuLi4xLi5WOH1BLi5FIi52 CjAwNDA6IDE0IDEzIDhGIDIzIDEzIDU0IDM3IDk0ICA0OSBGQiBCRCAyOCBBQSA0MCBGOSBBOCA6 IC4uLiMuVDcuSS4uKC5ALi4KMDA1MDogMTkgM0QgQjcgOEQgOTggMDYgN0MgOTcgIDAyIDM4IERG IDVDIEZBIDMzIERBIEZGIDogLj0uLi4ufC4uOC5cLjMuLgowMDYwOiAwNCAwNCAzOSBBNSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLjkuCltsaWJzc2gyXSAxMDk5LjIy MTA1NSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0g MTA5OS4yMjEwNTkgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xp YnNzaDJdIDExNDAuMzYyMDM2IENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMg ZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDExNDAuMzYyMDgyIFNvY2tldDog UmVjdmVkIDUyLzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRf cmVhZCgpIHJhdyAoNTIgYnl0ZXMpCjAwMDA6IDU0IEFFIDBEIDZBIDg0IDI1IDBCIDlDICBEMCA1 MSBGRSAyNSBEMyAyQiA5NCBFMSA6IFQuLmouJS4uLlEuJS4rLi4KMDAxMDogMDkgRjQgNkYgRTcg NzEgQjIgMUMgQjMgIDE3IDZDIDZDIDI0IDNCIEQ5IDU2IDM2IDogLi5vLnEuLi4ubGwkOy5WNgow MDIwOiBFOSBFMCA2NSA1MCBENyA2OCA5QiBDQiAgODAgODEgQzEgRDIgRTkgOEMgNDcgODUgOiAu LmVQLmguLi4uLi4uLkcuCjAwMzA6IEM3IERDIDJEIDg5ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IC4uLS4KPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgx OSBieXRlcykKMDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDBBIDZFIDZGIDc2IDY1IDIw IDY0IDYxIDogXi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2MSAwQSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNzaDJdIDExNDAuMzYyMTMzIFRyYW5z cG9ydDogUGFja2V0IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0aD0xOQpbbGlic3NoMl0gMTE0MC4z NjIxMzggQ29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZvciAwLzAvMApbbGlic3NoMl0gMTE0 MC4zNjIxNDcgQ29ubjogY2hhbm5lbF9yZWFkKCkgZ290IDEwIG9mIGRhdGEgZnJvbSAwLzAvMCBb dWxdCltsaWJzc2gyXSAxMTQwLjM2MjE1NiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBv ZiB0eXBlOiA5MQpbbGlic3NoMl0gMTE0MC4zNjIxNjAgVHJhbnNwb3J0OiBMb29raW5nIGZvciBw YWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDEyMDAuMzY1ODA3IENvbm46IGNoYW5uZWxfcmVh ZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJd IDEyMDAuMzY1ODUzIFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAK PT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMpCjAwMDA6IEJFIDEyIERG IEIwIEIyIEJDIDI3IDkxICA0MCBBNCA5MyAxOSAyMyA3NiAxOCBFRCA6IC4uLi4uLicuQC4uLiN2 Li4KMDAxMDogM0IgQ0QgRTYgRDUgRkUgOUYgQzMgRDkgIDVCIEExIDVBIDVGIDk5IDNGIDM4IDA1 IDogOy4uLi4uLi5bLlpfLj84LgowMDIwOiBDQSAwQSA1OCAzQiAyQyBFNSA1MCA5QiAgQ0YgQUMg OUIgRDYgOTcgM0MgOTAgNDkgOiAuLlg7LC5QLi4uLi4uPC5JCjAwMzA6IDQ4IDdBIDY3IEFBICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEh6Zy4KPT4gbGlic3NoMl90cmFu c3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAg MDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2 MSAwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNz aDJdIDEyMDAuMzY1OTAzIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0 aD0xOQpbbGlic3NoMl0gMTIwMC4zNjU5MDkgQ29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZv ciAwLzAvMApbbGlic3NoMl0gMTIwMC4zNjU5MTcgQ29ubjogY2hhbm5lbF9yZWFkKCkgZ290IDEw IG9mIGRhdGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSAxMjAwLjM2NTkyNiBUcmFuc3BvcnQ6 IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTIwMC4zNjU5MzAgVHJh bnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDEyMDAuMzY1 OTM2IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk0CltsaWJzc2gyXSAx MjAwLjM2NTkzOSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NQpbbGli c3NoMl0gMTIwOS44MTI4MzAgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBm cm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMTIwOS44MTI4NjcgU29ja2V0OiBS ZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9y ZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDogOTYgNkIgMTggM0YgMjUgNjkgN0IgNDQgIEFDIEUz IERGIEIzIDU1IDI3IDk1IEVCIDogLmsuPyVpe0QuLi4uVScuLgowMDEwOiAzMCAwNSA5MyBFQSA5 QiA5OSA0RiAyNCAgN0IgODUgMUQgM0UgMjUgN0IgREQgQjAgOiAwLi4uLi5PJHsuLj4ley4uCjAw MjA6IDIyIDI2IEQyIEU2IEI3IEJDIDI0IENEICA1RCA3NiBDNCAzQyAzRiAwMSA2MiA2NSA6ICIm Li4uLiQuXXYuPD8uYmUKMDAzMDogQzAgOUMgODMgMTIgRTQgQ0EgRDAgNjMgIDQ1IDY4IDEyIEY1 IDkzIDZGIDU5IDdDIDogLi4uLi4uLmNFaC4uLm9ZfAowMDQwOiBGOSAwMiAwOCBFOCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi4uCj0+IGxpYnNzaDJfdHJhbnNwb3J0 X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAwIDBCIDAwIDAwIDAwICAw MiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24KMDAxMDogNkUgNjUgNjMg NzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0aW1lZCBv dQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiB0Li4uLgpbbGlic3NoMl0gMTIwOS44MTI5MjMgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5MiBy ZWNlaXZlZCwgbGVuZ3RoPTM3CltsaWJzc2gyXSAxMjA5LjgxMjkzMiBDb25uOiBjaGFubmVsX3Jl YWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMxCltsaWJzc2gy XSAxMjA5LjgxMjk0MCBDb25uOiBBbGxvY2F0ZWQgbmV3IGNoYW5uZWwgSUQjMTMKW2xpYnNzaDJd IDEyMDkuODEyOTQ0IENvbm46IE9wZW5pbmcgQ2hhbm5lbCAtIHdpbiAyNjIxNDQgcGFjayAzMjc2 OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbiAoMjkgYnl0ZXMpCjAwMDA6IDVBIDAw IDAwIDAwIDBDIDY0IDY5IDcyICA2NSA2MyA3NCAyRCA3NCA2MyA3MCA2OSA6IFouLi4uZGlyZWN0 LXRjcGkKMDAxMDogNzAgMDAgMDAgMDAgMEQgMDAgMDQgMDAgIDAwIDAwIDAwIDgwIDAwICAgICAg ICAgIDogcC4uLi4uLi4uLi4uLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbjIgKDM2 IGJ5dGVzKQowMDAwOiAwMCAwMCAwMCAwQiAzMSAzMCAyRSAzNyAgMzYgMkUgMzkgMkUgMzEgMzcg MzMgMDAgOiAuLi4uMTAuNzYuOS4xNzMuCjAwMTA6IDAwIDAwIDE2IDAwIDAwIDAwIDA5IDMxICAz MiAzNyAyRSAzMCAyRSAzMCAyRSAzMSA6IC4uLi4uLi4xMjcuMC4wLjEKMDAyMDogMDAgMDAgMDAg MTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgpbbGlic3NoMl0g MTIwOS44MTMwMDQgU29ja2V0OiBTZW50IDEwMC8xMDAgYnl0ZXMgYXQgMHhmM2E1NTAKPT4gbGli c3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgpICgxMDAgYnl0ZXMpCjAwMDA6IDM0IEE2IDYyIDRD IDJEIDc5IDFFIDBBICA2OCBDNSA0RCAxNyAxOSA3MSBGOCBBRiA6IDQuYkwteS4uaC5NLi5xLi4K MDAxMDogRUYgMkQgM0UgMDcgNEMgQzQgREIgOUMgIDdFIDhGIDEyIDE3IENDIDlEIDM1IEQ5IDog Li0+LkwuLi5+Li4uLi41LgowMDIwOiBBNiBGMSBBNyBDMiBBQiA2OSA3OCBENiAgMDMgRTggRTEg NzIgNkEgMEQgMDQgOEMgOiAuLi4uLml4Li4uLnJqLi4uCjAwMzA6IDRFIDc0IEY0IDdCIEIwIDVF IEE3IDAwICA0QyBEMSAxNyBDOCBCOCBGRSBGRiBFRCA6IE50LnsuXi4uTC4uLi4uLi4KMDA0MDog QTYgODAgN0YgMUEgN0UgMkUgQjQgMzMgIDM4IEY2IDc4IDkwIDlFIDNGIEYxIDMzIDogLi4uLn4u LjM4LnguLj8uMwowMDUwOiA0RCBENyAxNiBGRCAzRiA4OSAzMiBBMSAgQTAgNTYgRjAgRUMgQTYg NTggMDcgMkYgOiBNLi4uPy4yLi5WLi4uWC4vCjAwNjA6IDM3IDYxIDU0IEQyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IDdhVC4KW2xpYnNzaDJdIDEyMDkuODEzMDMyIFRy YW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSAxMjA5Ljgx MzAzNiBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0g MTI2MC4zNjk5NzIgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNo YW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMTI2MC4zNzAwMTcgU29ja2V0OiBSZWN2ZWQg NTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkg cmF3ICg1MiBieXRlcykKMDAwMDogNUYgQTIgMDIgQUUgNUYgMDMgRTcgMEQgIDFDIDNBIEZFIDlF IDI5IDY2IEZBIDRCIDogXy4uLl8uLi4uOi4uKWYuSwowMDEwOiAxQiA2QyAzNiA0NyAxQiAxRCAy QyAyQyAgMTQgNkUgMTEgRTcgRTIgMTYgMDIgQzYgOiAubDZHLi4sLC5uLi4uLi4uCjAwMjA6IEY3 IDFFIDcxIDVDIDg4IEU1IDNCIDU5ICA5NCAxQSAyNCA1MSA1MiBFQSA5OCAyMSA6IC4ucVwuLjtZ Li4kUVIuLiEKMDAzMDogMDMgMDYgQUQgN0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogLi4ufAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5dGVz KQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQgNjEg OiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0IDYxIDBBICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IHRhLgpbbGlic3NoMl0gMTI2MC4zNzAwNjcgVHJhbnNwb3J0OiBQ YWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSAxMjYwLjM3MDA3MiBD b25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkgZm9yIDAvMC8wCltsaWJzc2gyXSAxMjYwLjM3MDA4 MSBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3QgMTAgb2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0KW2xp YnNzaDJdIDEyNjAuMzcwMDkwIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6 IDkxCltsaWJzc2gyXSAxMjYwLjM3MDA5NSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBv ZiB0eXBlOiA5MgpbbGlic3NoMl0gMTI4OC42NjA5NTEgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2Fu dHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMTI4OC42 NjA5OTggU29ja2V0OiBSZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJz c2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDogNDIgNDEgRjYgQTYgMTYg QUIgMzggNTggIEFCIDA5IDA0IDlGIDNGIDEwIEM2IDA1IDogQkEuLi4uOFguLi4uPy4uLgowMDEw OiAzQSA5NSA1QyA3MyA4MCAzNCA5MiAzRiAgQzQgN0UgRDUgQTAgNzggQTMgMUYgQkIgOiA6Llxz LjQuPy5+Li54Li4uCjAwMjA6IDJDIEVDIDM2IEYxIDkxIEVEIEUyIEU0ICA4MCBEOSBDRiAyQSA5 QSBCOCA5MSBEOSA6ICwuNi4uLi4uLi4uKi4uLi4KMDAzMDogMTggQUIgMzggNTIgMDYgNkIgNDUg MzggIDQ1IDBCIDREIEFDIEE2IDUzIERGIDFEIDogLi44Ui5rRThFLk0uLlMuLgowMDQwOiBDNSA4 NyA1NCA1RSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLlReCj0+IGxp YnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAw IDBDIDAwIDAwIDAwICAwMiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24K MDAxMDogNkUgNjUgNjMgNzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDog bmVjdGlvbiB0aW1lZCBvdQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiB0Li4uLgpbbGlic3NoMl0gMTI4OC42NjEwNjIgVHJhbnNwb3J0OiBQ YWNrZXQgdHlwZSA5MiByZWNlaXZlZCwgbGVuZ3RoPTM3CltsaWJzc2gyXSAxMjg4LjY2MTA3MyBD b25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3Ry ZWFtICMxCltsaWJzc2gyXSAxMjg4LjY2MTA4MSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tl dCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTI4OC42NjEwODYgVHJhbnNwb3J0OiBMb29raW5nIGZv ciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDEyODguNjYxMDkyIFRyYW5zcG9ydDogTG9v a2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk0CltsaWJzc2gyXSAxMjg4LjY2MTA5NSBUcmFuc3Bv cnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NQpbbGlic3NoMl0gMTMyMC4zNzQwNDQg Q29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0 cmVhbSAjMApbbGlic3NoMl0gMTMyMC4zNzQwODcgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0 ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRl cykKMDAwMDogOUYgNTYgNDggQkIgRTEgODggRUIgNDQgIDdCIDlDIDI1IDk4IEU5IEFGIDdGIEFC IDogLlZILi4uLkR7LiUuLi4uLgowMDEwOiA3RCA4OSBGOSBFMyA5RCBCQSBGRiA4MiAgOTUgOEYg MjQgQTQgMUYgMzUgMUMgMUMgOiB9Li4uLi4uLi4uJC4uNS4uCjAwMjA6IDA2IDk5IEYwIEEzIEQ5 IDg0IDg0IEZDICA4MyA4MyBGQSA4QyAyQSA3OSA3NiA3QSA6IC4uLi4uLi4uLi4uLip5dnoKMDAz MDogNUUgREUgM0EgRDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXi46 Lgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAw MCAwMCAwMCAwMCAwMCAwMCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5u b3ZlIGRhCjAwMTA6IDc0IDYxIDBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IHRhLgpbbGlic3NoMl0gMTMyMC4zNzQxMzYgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5 NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSAxMzIwLjM3NDE0MSBDb25uOiAxMCBieXRl cyBwYWNrZXRfYWRkKCkgZm9yIDAvMC8wCltsaWJzc2gyXSAxMzIwLjM3NDE1MSBDb25uOiBjaGFu bmVsX3JlYWQoKSBnb3QgMTAgb2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0KW2xpYnNzaDJdIDEzMjAu Mzc0MTU5IENvbm46IEFsbG9jYXRlZCBuZXcgY2hhbm5lbCBJRCMxNApbbGlic3NoMl0gMTMyMC4z NzQxNzAgQ29ubjogT3BlbmluZyBDaGFubmVsIC0gd2luIDI2MjE0NCBwYWNrIDMyNzY4Cj0+IGxp YnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBsYWluICgyOSBieXRlcykKMDAwMDogNUEgMDAgMDAgMDAg MEMgNjQgNjkgNzIgIDY1IDYzIDc0IDJEIDc0IDYzIDcwIDY5IDogWi4uLi5kaXJlY3QtdGNwaQow MDEwOiA3MCAwMCAwMCAwMCAwRSAwMCAwNCAwMCAgMDAgMDAgMDAgODAgMDAgICAgICAgICAgOiBw Li4uLi4uLi4uLi4uCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBsYWluMiAoMzYgYnl0ZXMp CjAwMDA6IDAwIDAwIDAwIDBCIDMxIDMwIDJFIDM3ICAzNiAyRSAzOSAyRSAzMSAzNyAzMyAwMCA6 IC4uLi4xMC43Ni45LjE3My4KMDAxMDogMDAgMDAgMTYgMDAgMDAgMDAgMDkgMzEgIDMyIDM3IDJF IDMwIDJFIDMwIDJFIDMxIDogLi4uLi4uLjEyNy4wLjAuMQowMDIwOiAwMCAwMCAwMCAxNiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi4uCltsaWJzc2gyXSAxMzIwLjM3 NDIxMyBTb2NrZXQ6IFNlbnQgMTAwLzEwMCBieXRlcyBhdCAweGYzYTU1MAo9PiBsaWJzc2gyX3Ry YW5zcG9ydF93cml0ZSBzZW5kKCkgKDEwMCBieXRlcykKMDAwMDogQTQgREMgNEUgMUUgOUIgRUUg N0YgQzcgIDBGIEY1IDE2IEI4IDczIEIyIDJCIENEIDogLi5OLi4uLi4uLi4ucy4rLgowMDEwOiBF QyAwNiAxNiA2RSAwRCA3QiBGNiBDNSAgMTUgNkQgMDIgRjkgRkMgRkMgNzQgREIgOiAuLi5uLnsu Li5tLi4uLnQuCjAwMjA6IEExIEE0IDRCIDgwIDNBIEM2IEIyIDEyICAzMyA1OCBBRiA2RiBCQSA5 NyBBMCA0RCA6IC4uSy46Li4uM1guby4uLk0KMDAzMDogRUQgMUYgQjkgOTQgNDIgNTggOTEgQzQg IDg2IDQ4IDM2IDRDIDY1IDVEIDRFIDgzIDogLi4uLkJYLi4uSDZMZV1OLgowMDQwOiA4NSA1RiBD MSAwQiBCNiBBMCBCMyA5NyAgNUEgOTIgQTQgM0YgQ0UgNTQgRTMgMkIgOiAuXy4uLi4uLlouLj8u VC4rCjAwNTA6IDQ0IDhCIDQxIDdCIDdCIDdEIDFCIDUxICA3OSAxMSA5QSA2QyAwQyAxRSA3MiA2 OCA6IEQuQXt7fS5ReS4ubC4ucmgKMDA2MDogQ0MgRjkgMDggNDcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogLi4uRwpbbGlic3NoMl0gMTMyMC4zNzQyNDEgVHJhbnNwb3J0 OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJdIDEzMjAuMzc0MjQ2IFRy YW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gyXSAxMzgwLjM3 ODIwNSBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAw LzAgc3RyZWFtICMwCltsaWJzc2gyXSAxMzgwLjM3ODI1MCBTb2NrZXQ6IFJlY3ZlZCA1Mi8xNjM4 NCBieXRlcyB0byAweGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSByYXcgKDUy IGJ5dGVzKQowMDAwOiAzRSBBMyA3OCA1MCBGMSBDMiAxMyA5MCAgNTcgQTIgN0QgNDggRDkgQjAg NjYgN0YgOiA+LnhQLi4uLlcufUguLmYuCjAwMTA6IDkzIDhDIEM5IEZGIEVGIDVBIDhBIDMxICA0 MCA5RSAwNiBGMiBFMiA1NyA0QSA2MCA6IC4uLi4uWi4xQC4uLi5XSmAKMDAyMDogODcgNEMgNDIg QTEgNTEgMEQgODMgQ0UgIDlGIDg0IDEzIEQ2IDI2IDI4IDIzIDBGIDogLkxCLlEuLi4uLi4uJigj LgowMDMwOiA0OCBDNCAxMiA2RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBILi5vCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMTkgYnl0ZXMpCjAwMDA6 IDVFIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAwQSA2RSA2RiA3NiA2NSAyMCA2NCA2MSA6IF4uLi4u Li4uLm5vdmUgZGEKMDAxMDogNzQgNjEgMEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogdGEuCltsaWJzc2gyXSAxMzgwLjM3ODMwMiBUcmFuc3BvcnQ6IFBhY2tldCB0 eXBlIDk0IHJlY2VpdmVkLCBsZW5ndGg9MTkKW2xpYnNzaDJdIDEzODAuMzc4MzA3IENvbm46IDEw IGJ5dGVzIHBhY2tldF9hZGQoKSBmb3IgMC8wLzAKW2xpYnNzaDJdIDEzODAuMzc4MzE2IENvbm46 IGNoYW5uZWxfcmVhZCgpIGdvdCAxMCBvZiBkYXRhIGZyb20gMC8wLzAgW3VsXQpbbGlic3NoMl0g MTM4MC4zNzgzMjUgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xp YnNzaDJdIDEzODAuMzc4MzI5IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6 IDkyCltsaWJzc2gyXSAxMzgwLjM3ODMzNCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBv ZiB0eXBlOiA5NApbbGlic3NoMl0gMTM4MC4zNzgzMzggVHJhbnNwb3J0OiBMb29raW5nIGZvciBw YWNrZXQgb2YgdHlwZTogOTUKW2xpYnNzaDJdIDEzOTkuMjUyNzc1IENvbm46IGNoYW5uZWxfcmVh ZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJd IDEzOTkuMjUyODEzIFNvY2tldDogUmVjdmVkIDY4LzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAK PT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNjggYnl0ZXMpCjAwMDA6IEU0IEQ5IEUz IDQyIDRDIDlCIDRGIEEwICAxQSA0RiA3MyBEMSA0MiBCQyAwMiBENyA6IC4uLkJMLk8uLk9zLkIu Li4KMDAxMDogNzUgNEQgRUMgQzUgRjAgNDEgODUgMkYgIDk4IDkxIDBBIDNGIDI3IDYzIEFBIEU3 IDogdU0uLi5BLi8uLi4/J2MuLgowMDIwOiA2MSAyMCAxMyA2QiBBRSA1QSA4NSA3RCAgODAgNDAg RkUgMTkgRDcgMTggQTkgQjQgOiBhIC5rLloufS5ALi4uLi4uCjAwMzA6IDBGIDlDIDc1IDkwIEVD IDZFIEREIDNCICAxQiBDRSA1RCBBNCA0QyBDMSA4NiBBNSA6IC4udS4ubi47Li5dLkwuLi4KMDA0 MDogRkUgNkIgQjggRTcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLmsu Lgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDM3IGJ5dGVzKQowMDAwOiA1QyAw MCAwMCAwMCAwRCAwMCAwMCAwMCAgMDIgMDAgMDAgMDAgMTQgNDMgNkYgNkUgOiBcLi4uLi4uLi4u Li4uQ29uCjAwMTA6IDZFIDY1IDYzIDc0IDY5IDZGIDZFIDIwICA3NCA2OSA2RCA2NSA2NCAyMCA2 RiA3NSA6IG5lY3Rpb24gdGltZWQgb3UKMDAyMDogNzQgMDAgMDAgMDAgMDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogdC4uLi4KW2xpYnNzaDJdIDEzOTkuMjUyODY4IFRyYW5z cG9ydDogUGFja2V0IHR5cGUgOTIgcmVjZWl2ZWQsIGxlbmd0aD0zNwpbbGlic3NoMl0gMTM5OS4y NTI4NzcgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwg MC8wIHN0cmVhbSAjMQpbbGlic3NoMl0gMTM5OS4yNTI4ODUgQ29ubjogQWxsb2NhdGVkIG5ldyBj aGFubmVsIElEIzE1CltsaWJzc2gyXSAxMzk5LjI1Mjg4OSBDb25uOiBPcGVuaW5nIENoYW5uZWwg LSB3aW4gMjYyMTQ0IHBhY2sgMzI3NjgKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4g KDI5IGJ5dGVzKQowMDAwOiA1QSAwMCAwMCAwMCAwQyA2NCA2OSA3MiAgNjUgNjMgNzQgMkQgNzQg NjMgNzAgNjkgOiBaLi4uLmRpcmVjdC10Y3BpCjAwMTA6IDcwIDAwIDAwIDAwIDBGIDAwIDA0IDAw ICAwMCAwMCAwMCA4MCAwMCAgICAgICAgICA6IHAuLi4uLi4uLi4uLi4KPT4gbGlic3NoMl90cmFu c3BvcnRfd3JpdGUgcGxhaW4yICgzNiBieXRlcykKMDAwMDogMDAgMDAgMDAgMEIgMzEgMzAgMkUg MzcgIDM2IDJFIDM5IDJFIDMxIDM3IDMzIDAwIDogLi4uLjEwLjc2LjkuMTczLgowMDEwOiAwMCAw MCAxNiAwMCAwMCAwMCAwOSAzMSAgMzIgMzcgMkUgMzAgMkUgMzAgMkUgMzEgOiAuLi4uLi4uMTI3 LjAuMC4xCjAwMjA6IDAwIDAwIDAwIDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IC4uLi4KW2xpYnNzaDJdIDEzOTkuMjUyOTM4IFNvY2tldDogU2VudCAxMDAvMTAwIGJ5 dGVzIGF0IDB4ZjNhNTUwCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHNlbmQoKSAoMTAwIGJ5 dGVzKQowMDAwOiAzNSA4QyBBQiBBMyBBNSBGRSBCNCBDRCAgNjggODggNEEgOTQgNDYgNjcgRjUg MjUgOiA1Li4uLi4uLmguSi5GZy4lCjAwMTA6IDU0IDVFIDcxIDRFIEQyIDhBIEIyIEM5ICAzQyA1 OSBGRiAyOCBDQiBCRCA5RCA3OCA6IFRecU4uLi4uPFkuKC4uLngKMDAyMDogMUEgMDUgODIgQTcg QzggMzcgNjMgNDAgIEE2IDcxIDNEIDI3IEQ2IDMxIDYxIDAwIDogLi4uLi43Y0AucT0nLjFhLgow MDMwOiA0NSBDOCBGMyA2NyAxOCBBMiA3QSBBQSAgRTkgMDggRTkgQjYgODIgNDggRjkgMUUgOiBF Li5nLi56Li4uLi4uSC4uCjAwNDA6IDgzIDhBIDE5IDczIDcyIDkxIEY4IENBICBFQyA4NSBDRSBE NCA3MyA3QiA0OSA3RSA6IC4uLnNyLi4uLi4uLnN7SX4KMDA1MDogODcgMkQgMDMgMDYgMjcgNTIg QUEgNDQgIDVBIDg0IEE3IEQwIEJFIDU2IDdDIDNGIDogLi0uLidSLkRaLi4uLlZ8PwowMDYwOiA4 RSBDMiA5QSAzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi40Clts aWJzc2gyXSAxMzk5LjI1Mjk3OSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBl OiA5MQpbbGlic3NoMl0gMTM5OS4yNTI5ODMgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQg b2YgdHlwZTogOTIKW2xpYnNzaDJdIDE0NDAuMzgyMDgwIENvbm46IGNoYW5uZWxfcmVhZCgpIHdh bnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDE0NDAu MzgyMTI5IFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGli c3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMpCjAwMDA6IEQwIDI3IDYwIEE5IEE4 IDIxIDI5IEVBICAwOSA4RSBCRiAyNSA5NiBCMSBEQSAxRSA6IC4nYC4uISkuLi4uJS4uLi4KMDAx MDogQTcgNTggODkgQUQgNDUgNTUgMTkgQjYgIDQwIDhEIDVEIEM4IEIzIDREIDY4IDMzIDogLlgu LkVVLi5ALl0uLk1oMwowMDIwOiAwOCA4NiBGQyA1QiA0MSBDRSBGNiA4RCAgRTMgRUMgNjQgOUYg RTggODYgNEQgNjUgOiAuLi5bQS4uLi4uZC4uLk1lCjAwMzA6IDQyIDQ0IDA5IDZGICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEJELm8KPT4gbGlic3NoMl90cmFuc3BvcnRf cmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDBB IDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2MSAwQSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNzaDJdIDE0 NDAuMzgyMTg1IFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0aD0xOQpb bGlic3NoMl0gMTQ0MC4zODIxOTEgQ29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZvciAwLzAv MApbbGlic3NoMl0gMTQ0MC4zODIyMDAgQ29ubjogY2hhbm5lbF9yZWFkKCkgZ290IDEwIG9mIGRh dGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSAxNDQwLjM4MjIwOSBUcmFuc3BvcnQ6IExvb2tp bmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTQ0MC4zODIyMTMgVHJhbnNwb3J0 OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDE1MDAuMzg1ODc4IENv bm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJl YW0gIzAKW2xpYnNzaDJdIDE1MDAuMzg1OTIzIFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVz IHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMp CjAwMDA6IDYwIDMwIEZBIENDIDZBIDE1IDQyIDdCICA1QSBCQiBGMyBDRSBCMiA2OSA0NiAzRiA6 IGAwLi5qLkJ7Wi4uLi5pRj8KMDAxMDogREUgMzQgMDQgNDAgQTcgRjcgN0YgMTEgIEJDIEY5IDU4 IDE1IEFCIDhFIEMwIEQzIDogLjQuQC4uLi4uLlguLi4uLgowMDIwOiBBNCA4OSA3NiBDRSAwOSA1 OCBFNiAwMSAgQ0IgM0EgNzAgMDEgNzEgRDYgRTkgQjggOiAuLnYuLlguLi46cC5xLi4uCjAwMzA6 IDkyIEY3IENCIEQ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLi4K PT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAg MDAgMDAgMDAgMDAgMDAgMDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92 ZSBkYQowMDEwOiA3NCA2MSAwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiB0YS4KW2xpYnNzaDJdIDE1MDAuMzg1OTcyIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQg cmVjZWl2ZWQsIGxlbmd0aD0xOQpbbGlic3NoMl0gMTUwMC4zODU5NzggQ29ubjogMTAgYnl0ZXMg cGFja2V0X2FkZCgpIGZvciAwLzAvMApbbGlic3NoMl0gMTUwMC4zODU5ODYgQ29ubjogY2hhbm5l bF9yZWFkKCkgZ290IDEwIG9mIGRhdGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSAxNTAwLjM4 NTk5NSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0g MTUwMC4zODU5OTkgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xp YnNzaDJdIDE1MDAuMzg2MDA1IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6 IDk0CltsaWJzc2gyXSAxNTAwLjM4NjAwOSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBv ZiB0eXBlOiA5NQpbbGlic3NoMl0gMTUwOS44NDQ3MTcgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2Fu dHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMTUwOS44 NDQ3NTQgU29ja2V0OiBSZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJz c2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDogMDIgMUMgRTcgQjYgRTMg MjUgRUEgN0QgIDU3IDEwIDU0IEY5IEZBIEU2IDFCIDIzIDogLi4uLi4lLn1XLlQuLi4uIwowMDEw OiBCQSBFMCAxQiAzNSAyNyAzQSBDQyBBRiAgODQgMTIgMUQgMkYgQUYgREIgRTQgMUQgOiAuLi41 JzouLi4uLi8uLi4uCjAwMjA6IDQ4IEVEIDRBIEM4IEZDIDE2IEFFIDc5ICAzMSA0NCAyNyAxOCA0 MyA4OSAyQyBGQyA6IEguSi4uLi55MUQnLkMuLC4KMDAzMDogOUMgODUgQjUgRUUgM0EgNDQgNkYg MTggIEY1IERCIEIwIDcwIEExIDY1IEMwIEM2IDogLi4uLjpEby4uLi5wLmUuLgowMDQwOiA5QiAx NCA3MiAxOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLnIuCj0+IGxp YnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAw IDBFIDAwIDAwIDAwICAwMiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24K MDAxMDogNkUgNjUgNjMgNzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDog bmVjdGlvbiB0aW1lZCBvdQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiB0Li4uLgpbbGlic3NoMl0gMTUwOS44NDQ4MDggVHJhbnNwb3J0OiBQ YWNrZXQgdHlwZSA5MiByZWNlaXZlZCwgbGVuZ3RoPTM3CltsaWJzc2gyXSAxNTA5Ljg0NDgxNyBD b25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3Ry ZWFtICMxCltsaWJzc2gyXSAxNTA5Ljg0NDgyNSBDb25uOiBBbGxvY2F0ZWQgbmV3IGNoYW5uZWwg SUQjMTYKW2xpYnNzaDJdIDE1MDkuODQ0ODI5IENvbm46IE9wZW5pbmcgQ2hhbm5lbCAtIHdpbiAy NjIxNDQgcGFjayAzMjc2OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbiAoMjkgYnl0 ZXMpCjAwMDA6IDVBIDAwIDAwIDAwIDBDIDY0IDY5IDcyICA2NSA2MyA3NCAyRCA3NCA2MyA3MCA2 OSA6IFouLi4uZGlyZWN0LXRjcGkKMDAxMDogNzAgMDAgMDAgMDAgMTAgMDAgMDQgMDAgIDAwIDAw IDAwIDgwIDAwICAgICAgICAgIDogcC4uLi4uLi4uLi4uLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF93 cml0ZSBwbGFpbjIgKDM2IGJ5dGVzKQowMDAwOiAwMCAwMCAwMCAwQiAzMSAzMCAyRSAzNyAgMzYg MkUgMzkgMkUgMzEgMzcgMzMgMDAgOiAuLi4uMTAuNzYuOS4xNzMuCjAwMTA6IDAwIDAwIDE2IDAw IDAwIDAwIDA5IDMxICAzMiAzNyAyRSAzMCAyRSAzMCAyRSAzMSA6IC4uLi4uLi4xMjcuMC4wLjEK MDAyMDogMDAgMDAgMDAgMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog Li4uLgpbbGlic3NoMl0gMTUwOS44NDQ5MDIgU29ja2V0OiBTZW50IDEwMC8xMDAgYnl0ZXMgYXQg MHhmM2E1NTAKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgpICgxMDAgYnl0ZXMpCjAw MDA6IDRBIEE4IDYxIEE2IDk4IDE4IDk0IDFBICAxMyBDNyA3MSAzOCAyMCA5MiA1MyBGMCA6IEou YS4uLi4uLi5xOCAuUy4KMDAxMDogNjYgRTggNTcgNUEgODQgQzYgQTkgQzQgIEE1IDIwIEM4IDNG IDc4IDU1IDhBIEYwIDogZi5XWi4uLi4uIC4/eFUuLgowMDIwOiA0MSA5OCA0NCAxQyA4RiAzMCBG NSBBRSAgOUYgNzggQjYgQzcgREUgNUIgNTAgNTUgOiBBLkQuLjAuLi54Li4uW1BVCjAwMzA6IEMx IDcxIDRDIDU1IEIyIDcwIEJFIDkwICBCOCAxMSA4RiA2OCBBMCAzNSAzMiA1QiA6IC5xTFUucC4u Li4uaC41MlsKMDA0MDogRUQgQzIgNkIgQjcgMTQgQjIgOTEgODAgIDUyIDg5IEZCIDY5IEU2IEYy IDIzIDVDIDogLi5rLi4uLi5SLi5pLi4jXAowMDUwOiA5RSAxMCA5QyA5MCA1QyBGMiA5QSBBMSAg OEQgNTcgMUYgMkMgNTggNjkgQzUgMzUgOiAuLi4uXC4uLi5XLixYaS41CjAwNjA6IDFCIDg1IEMw IDUxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLlEKW2xpYnNzaDJd IDE1MDkuODQ0OTI3IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxClts aWJzc2gyXSAxNTA5Ljg0NDkzMSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBl OiA5MgpbbGlic3NoMl0gMTU2MC4zODk4NDkgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0 OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMTU2MC4zODk4OTUg U29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3Ry YW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykKMDAwMDogMUMgMTcgMjMgMEIgNkUgOTggMEUg RTYgIEQxIEM5IDk5IEJBIEZCIDI3IDZBIEMzIDogLi4jLm4uLi4uLi4uLidqLgowMDEwOiA2MSA3 MiBEMCA2NSBDMCBBOSAzQSAwQSAgRjcgOUEgNkMgNTIgMTYgOTIgMjYgQUUgOiBhci5lLi46Li4u bFIuLiYuCjAwMjA6IDc2IDBDIDg4IDBCIDQwIDU3IDc0IDhDICBDNiA3OSAzMyAzMiBGNyAxRSAz NiA3QiA6IHYuLi5AV3QuLnkzMi4uNnsKMDAzMDogREMgRkUgREQgQjUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkg cGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMEEgNkUgNkYg NzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0IDYxIDBBICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGlic3NoMl0gMTU2MC4zODk5 NDUgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gy XSAxNTYwLjM4OTk1MSBDb25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkgZm9yIDAvMC8wCltsaWJz c2gyXSAxNTYwLjM4OTk2MCBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3QgMTAgb2YgZGF0YSBmcm9t IDAvMC8wIFt1bF0KW2xpYnNzaDJdIDE1NjAuMzg5OTY5IFRyYW5zcG9ydDogTG9va2luZyBmb3Ig cGFja2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSAxNTYwLjM4OTk3NCBUcmFuc3BvcnQ6IExvb2tp bmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gMTU4OC42OTI2OTcgQ29ubjogY2hh bm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApb bGlic3NoMl0gMTU4OC42OTI3MzMgU29ja2V0OiBSZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhm MzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDog RTcgMkYgRTkgNzMgQ0MgNzEgNjMgQjYgIEYzIDFCIEIwIDYzIDg3IDZGIDBGIDY1IDogLi8ucy5x Yy4uLi5jLm8uZQowMDEwOiAyNiBCMCAzMCA4QSBEOCA3NyA1QiBGMSAgOUMgQTMgRDYgRUMgNTQg ODIgNzIgNjcgOiAmLjAuLndbLi4uLi5ULnJnCjAwMjA6IDNBIDk1IEVEIDgwIDIyIEUxIDFGIDBG ICBCOCBDMiA4OSAxNiBEQSBDNyAxOCA5OCA6IDouLi4iLi4uLi4uLi4uLi4KMDAzMDogMkQgRkIg NjggQjQgRjAgQkMgQjUgRjEgIDE5IDlDIDdFIEVGIDk5IDBFIDM2IDg4IDogLS5oLi4uLi4uLn4u Li42LgowMDQwOiA1NyBFMSBDNCA5MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiBXLi4uCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAw MDA6IDVDIDAwIDAwIDAwIDBGIDAwIDAwIDAwICAwMiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwu Li4uLi4uLi4uLi5Db24KMDAxMDogNkUgNjUgNjMgNzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1 IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0aW1lZCBvdQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0Li4uLgpbbGlic3NoMl0gMTU4OC42OTI3 ODcgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5MiByZWNlaXZlZCwgbGVuZ3RoPTM3CltsaWJzc2gy XSAxNTg4LjY5Mjc5NyBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20g Y2hhbm5lbCAwLzAgc3RyZWFtICMxCltsaWJzc2gyXSAxNTg4LjY5MjgwNSBUcmFuc3BvcnQ6IExv b2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTU4OC42OTI4MDkgVHJhbnNw b3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDE1ODguNjkyODE1 IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk0CltsaWJzc2gyXSAxNTg4 LjY5MjgxOSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NQpbbGlic3No Ml0gMTYyMC4zOTM2NjUgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9t IGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMTYyMC4zOTM3MTMgU29ja2V0OiBSZWN2 ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFk KCkgcmF3ICg1MiBieXRlcykKMDAwMDogNEUgNjggM0YgQjUgMEMgRUEgN0QgNUMgIDM4IEU5IDdG IEIwIEEyIDMyIEQ5IEZEIDogTmg/Li4ufVw4Li4uLjIuLgowMDEwOiBBMCAyMyAxOCBFQSAzRCAz MSAwNiA4MCAgODUgQkQgMTYgNkYgNjIgM0UgRDQgOUMgOiAuIy4uPTEuLi4uLm9iPi4uCjAwMjA6 IEJGIEJFIEEzIDhBIDNDIEQ3IEI3IEM0ICBBRCAzNyA2OSBBMCA5RCBFMSBGNSBFQyA6IC4uLi48 Li4uLjdpLi4uLi4KMDAzMDogNDUgQjUgNTQgNDMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogRS5UQwo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5 dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQg NjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0IDYxIDBBICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGlic3NoMl0gMTYyMC4zOTM3NjMgVHJhbnNwb3J0 OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVuZ3RoPTE5CltsaWJzc2gyXSAxNjIwLjM5Mzc2 OCBDb25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkgZm9yIDAvMC8wCltsaWJzc2gyXSAxNjIwLjM5 Mzc3OCBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3QgMTAgb2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0K W2xpYnNzaDJdIDE2MjAuMzkzNzg3IENvbm46IEFsbG9jYXRlZCBuZXcgY2hhbm5lbCBJRCMxNwpb bGlic3NoMl0gMTYyMC4zOTM3OTEgQ29ubjogT3BlbmluZyBDaGFubmVsIC0gd2luIDI2MjE0NCBw YWNrIDMyNzY4Cj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBsYWluICgyOSBieXRlcykKMDAw MDogNUEgMDAgMDAgMDAgMEMgNjQgNjkgNzIgIDY1IDYzIDc0IDJEIDc0IDYzIDcwIDY5IDogWi4u Li5kaXJlY3QtdGNwaQowMDEwOiA3MCAwMCAwMCAwMCAxMSAwMCAwNCAwMCAgMDAgMDAgMDAgODAg MDAgICAgICAgICAgOiBwLi4uLi4uLi4uLi4uCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRlIHBs YWluMiAoMzYgYnl0ZXMpCjAwMDA6IDAwIDAwIDAwIDBCIDMxIDMwIDJFIDM3ICAzNiAyRSAzOSAy RSAzMSAzNyAzMyAwMCA6IC4uLi4xMC43Ni45LjE3My4KMDAxMDogMDAgMDAgMTYgMDAgMDAgMDAg MDkgMzEgIDMyIDM3IDJFIDMwIDJFIDMwIDJFIDMxIDogLi4uLi4uLjEyNy4wLjAuMQowMDIwOiAw MCAwMCAwMCAxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAuLi4uClts aWJzc2gyXSAxNjIwLjM5Mzg0NSBTb2NrZXQ6IFNlbnQgMTAwLzEwMCBieXRlcyBhdCAweGYzYTU1 MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0ZSBzZW5kKCkgKDEwMCBieXRlcykKMDAwMDogMUQg M0IgNUQgOUYgN0IgRkUgMjEgRjIgIDRGIDM1IDc5IDEzIDA4IDkxIDEwIDlCIDogLjtdLnsuIS5P NXkuLi4uLgowMDEwOiAwOCBGRSBCQSBEMSA4NSBENyAwOSAxQiAgNEQgQTMgNzkgMDQgNDcgOEMg RUIgMUIgOiAuLi4uLi4uLk0ueS5HLi4uCjAwMjA6IDQyIERDIEY2IDlCIEIwIDhDIEVFIDY3ICBB RCA1MCA1RiBGQyA2QyAzRSBCQiA2NyA6IEIuLi4uLi5nLlBfLmw+LmcKMDAzMDogRjggREYgQzEg MzcgMjUgNEMgRkYgRTYgIEJFIDU0IDM2IDM4IDY2IDA4IDkwIEQzIDogLi4uNyVMLi4uVDY4Zi4u LgowMDQwOiAzRSA2QyBDQSBBMiBBNSAwRiBDQSBDOCAgMUMgN0EgREEgNTQgQjYgNEEgMjEgN0Qg OiA+bC4uLi4uLi56LlQuSiF9CjAwNTA6IEJBIEU1IDM0IEI1IDA1IDkxIEY2IDJFICBBQSAxRiAw MiBBQSAzMSA0RCBDNiAwMiA6IC4uNC4uLi4uLi4uLjFNLi4KMDA2MDogRjggN0YgQTQgRDIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi4uLgpbbGlic3NoMl0gMTYyMC4z OTM4NzQgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTEKW2xpYnNzaDJd IDE2MjAuMzkzODc4IFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkyClts aWJzc2gyXSAxNjgwLjM5NzY5MiBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVz IGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMwCltsaWJzc2gyXSAxNjgwLjM5NzczOCBTb2NrZXQ6 IFJlY3ZlZCA1Mi8xNjM4NCBieXRlcyB0byAweGYzNjUxMCswCj0+IGxpYnNzaDJfdHJhbnNwb3J0 X3JlYWQoKSByYXcgKDUyIGJ5dGVzKQowMDAwOiA0NCBFNyA4MCAzNiA1QSA1RSA3MiBFMiAgN0Eg OEMgNTUgNjggMzMgNUUgMjEgODkgOiBELi42Wl5yLnouVWgzXiEuCjAwMTA6IDU0IDQ0IDYyIEMz IDVFIDNCIEJFIDc0ICA4OCA5NyAwQiAwRiBCNiAzMiA4OCA0MiA6IFREYi5eOy50Li4uLi4yLkIK MDAyMDogQzMgM0UgMUIgNjQgNjIgOUUgQTMgMzMgIEZCIDNDIEU4IDRFIEQ2IEY3IDJEIDREIDog Lj4uZGIuLjMuPC5OLi4tTQowMDMwOiAxMCA0MCBEQiAxNyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiAuQC4uCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAo MTkgYnl0ZXMpCjAwMDA6IDVFIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAwQSA2RSA2RiA3NiA2NSAy MCA2NCA2MSA6IF4uLi4uLi4uLm5vdmUgZGEKMDAxMDogNzQgNjEgMEEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogdGEuCltsaWJzc2gyXSAxNjgwLjM5Nzc4NyBUcmFu c3BvcnQ6IFBhY2tldCB0eXBlIDk0IHJlY2VpdmVkLCBsZW5ndGg9MTkKW2xpYnNzaDJdIDE2ODAu Mzk3NzkyIENvbm46IDEwIGJ5dGVzIHBhY2tldF9hZGQoKSBmb3IgMC8wLzAKW2xpYnNzaDJdIDE2 ODAuMzk3ODAxIENvbm46IGNoYW5uZWxfcmVhZCgpIGdvdCAxMCBvZiBkYXRhIGZyb20gMC8wLzAg W3VsXQpbbGlic3NoMl0gMTY4MC4zOTc4MTAgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQg b2YgdHlwZTogOTEKW2xpYnNzaDJdIDE2ODAuMzk3ODE1IFRyYW5zcG9ydDogTG9va2luZyBmb3Ig cGFja2V0IG9mIHR5cGU6IDkyCltsaWJzc2gyXSAxNjgwLjM5NzgyMCBUcmFuc3BvcnQ6IExvb2tp bmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NApbbGlic3NoMl0gMTY4MC4zOTc4MjQgVHJhbnNwb3J0 OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTUKW2xpYnNzaDJdIDE2OTkuMjg0ODAyIENv bm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJl YW0gIzAKW2xpYnNzaDJdIDE2OTkuMjg0ODM1IFNvY2tldDogUmVjdmVkIDY4LzE2Mzg0IGJ5dGVz IHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNjggYnl0ZXMp CjAwMDA6IEREIDlGIDk0IDlGIDY1IEFEIDg3IEE0ICBBOSA1NyAyQiAyOSA3RCBCQSA2MiAzMSA6 IC4uLi5lLi4uLlcrKX0uYjEKMDAxMDogRDMgN0UgNjIgMkQgOTEgREYgNzIgMEUgIDk1IDc3IEZB IEE3IEQxIDQ2IENEIDhEIDogLn5iLS4uci4udy4uLkYuLgowMDIwOiA4OCAyRSA2RiBBQSA3MyBE MCA3RiAyNCAgRTIgOUQgNzYgRDEgMzYgQTcgOUYgREYgOiAuLm8ucy4uJC4udi42Li4uCjAwMzA6 IDMxIDUzIDc4IDc5IDUwIDg4IEI1IDNGICBGMyBERSBGNiBGNiA2QiA2OSAyRiAzMyA6IDFTeHlQ Li4/Li4uLmtpLzMKMDA0MDogNTUgRDcgODEgQzEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogVS4uLgo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcGxhaW4gKDM3IGJ5 dGVzKQowMDAwOiA1QyAwMCAwMCAwMCAxMCAwMCAwMCAwMCAgMDIgMDAgMDAgMDAgMTQgNDMgNkYg NkUgOiBcLi4uLi4uLi4uLi4uQ29uCjAwMTA6IDZFIDY1IDYzIDc0IDY5IDZGIDZFIDIwICA3NCA2 OSA2RCA2NSA2NCAyMCA2RiA3NSA6IG5lY3Rpb24gdGltZWQgb3UKMDAyMDogNzQgMDAgMDAgMDAg MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdC4uLi4KW2xpYnNzaDJdIDE2 OTkuMjg0ODkxIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTIgcmVjZWl2ZWQsIGxlbmd0aD0zNwpb bGlic3NoMl0gMTY5OS4yODQ5MDAgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRl cyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMQpbbGlic3NoMl0gMTY5OS4yODQ5MTEgQ29ubjog QWxsb2NhdGVkIG5ldyBjaGFubmVsIElEIzE4CltsaWJzc2gyXSAxNjk5LjI4NDkxNSBDb25uOiBP cGVuaW5nIENoYW5uZWwgLSB3aW4gMjYyMTQ0IHBhY2sgMzI3NjgKPT4gbGlic3NoMl90cmFuc3Bv cnRfd3JpdGUgcGxhaW4gKDI5IGJ5dGVzKQowMDAwOiA1QSAwMCAwMCAwMCAwQyA2NCA2OSA3MiAg NjUgNjMgNzQgMkQgNzQgNjMgNzAgNjkgOiBaLi4uLmRpcmVjdC10Y3BpCjAwMTA6IDcwIDAwIDAw IDAwIDEyIDAwIDA0IDAwICAwMCAwMCAwMCA4MCAwMCAgICAgICAgICA6IHAuLi4uLi4uLi4uLi4K PT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgcGxhaW4yICgzNiBieXRlcykKMDAwMDogMDAgMDAg MDAgMEIgMzEgMzAgMkUgMzcgIDM2IDJFIDM5IDJFIDMxIDM3IDMzIDAwIDogLi4uLjEwLjc2Ljku MTczLgowMDEwOiAwMCAwMCAxNiAwMCAwMCAwMCAwOSAzMSAgMzIgMzcgMkUgMzAgMkUgMzAgMkUg MzEgOiAuLi4uLi4uMTI3LjAuMC4xCjAwMjA6IDAwIDAwIDAwIDE2ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IC4uLi4KW2xpYnNzaDJdIDE2OTkuMjg0OTYzIFNvY2tldDog U2VudCAxMDAvMTAwIGJ5dGVzIGF0IDB4ZjNhNTUwCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3dyaXRl IHNlbmQoKSAoMTAwIGJ5dGVzKQowMDAwOiBGOCAxRCAxRSBEMSAzNyBFNSBBOCA1MyAgMzYgQTkg OTggOTEgOUUgNUYgOTAgQjMgOiAuLi4uNy4uUzYuLi4uXy4uCjAwMTA6IEFEIEJDIDM3IDBBIDcx IEFGIDNFIDE1ICBFNyBCOSAyQyAwNyBDQyA2MCA4NSAzMCA6IC4uNy5xLj4uLi4sLi5gLjAKMDAy MDogNDEgQzcgN0YgRkEgREEgODQgMzYgRTEgIENFIEI2IDZDIDgzIDJDIDI3IENDIDEzIDogQS4u Li4uNi4uLmwuLCcuLgowMDMwOiBFNSBENSAxNCA4RiAxQSBEQSA4NiBBQiAgNTQgMDQgQUEgQTYg NDcgRTMgMjMgMjggOiAuLi4uLi4uLlQuLi5HLiMoCjAwNDA6IEQ0IDI4IDcyIDc3IDA2IDZGIEY4 IDFDICAwNiAxNiBERCA3NiA1RiBBRiAwQyBDMCA6IC4ocncuby4uLi4udl8uLi4KMDA1MDogNjgg ODMgRjcgQzIgRTEgOTAgMTcgNjAgIEUwIDUzIDUyIEE3IDhBIDA0IEMxIDZEIDogaC4uLi4uLmAu U1IuLi4ubQowMDYwOiAwRSA1OSBFNiA3QiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiAuWS57CltsaWJzc2gyXSAxNjk5LjI4NTAwMCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9y IHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTY5OS4yODUwMDQgVHJhbnNwb3J0OiBMb29r aW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJdIDE3NDAuNDAxNjI4IENvbm46IGNo YW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBjaGFubmVsIDAvMCBzdHJlYW0gIzAK W2xpYnNzaDJdIDE3NDAuNDAxNjgxIFNvY2tldDogUmVjdmVkIDUyLzE2Mzg0IGJ5dGVzIHRvIDB4 ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHJhdyAoNTIgYnl0ZXMpCjAwMDA6 IERBIEI2IEExIDA0IDg3IDMyIDM0IDhFICBEQiBGRSA3RSA3MSBEQiAzMSA2MiA0MCA6IC4uLi4u MjQuLi5+cS4xYkAKMDAxMDogQzAgN0IgQzggMTEgRTMgRTAgM0EgQkUgIDZEIDkyIEY3IEJDIDk3 IDMwIDdGIDZFIDogLnsuLi4uOi5tLi4uLjAubgowMDIwOiA5QyA0NiA1RSA0OCA4MCBGMSAxOCAz QiAgRUUgQzMgODAgQ0EgNjggMzEgQUIgMzEgOiAuRl5ILi4uOy4uLi5oMS4xCjAwMzA6IEUzIEY1 IDhDIDc2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC4uLnYKPT4gbGli c3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRlcykKMDAwMDogNUUgMDAgMDAgMDAg MDAgMDAgMDAgMDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYxIDogXi4uLi4uLi4ubm92ZSBkYQow MDEwOiA3NCA2MSAwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0 YS4KW2xpYnNzaDJdIDE3NDAuNDAxNzMyIFRyYW5zcG9ydDogUGFja2V0IHR5cGUgOTQgcmVjZWl2 ZWQsIGxlbmd0aD0xOQpbbGlic3NoMl0gMTc0MC40MDE3MzcgQ29ubjogMTAgYnl0ZXMgcGFja2V0 X2FkZCgpIGZvciAwLzAvMApbbGlic3NoMl0gMTc0MC40MDE3NDcgQ29ubjogY2hhbm5lbF9yZWFk KCkgZ290IDEwIG9mIGRhdGEgZnJvbSAwLzAvMCBbdWxdCltsaWJzc2gyXSAxNzQwLjQwMTc1NiBU cmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTc0MC40 MDE3NjAgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNzaDJd IDE4MDAuNDA1NDg0IENvbm46IGNoYW5uZWxfcmVhZCgpIHdhbnRzIDIwNDggYnl0ZXMgZnJvbSBj aGFubmVsIDAvMCBzdHJlYW0gIzAKW2xpYnNzaDJdIDE4MDAuNDA1NTMyIFNvY2tldDogUmVjdmVk IDUyLzE2Mzg0IGJ5dGVzIHRvIDB4ZjM2NTEwKzAKPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgp IHJhdyAoNTIgYnl0ZXMpCjAwMDA6IDE5IEUxIDI0IEIyIDVDIDI0IEIxIEMzICAxQSBCRSA3MSBB RiAyRCA3MyAzMiBFNCA6IC4uJC5cJC4uLi5xLi1zMi4KMDAxMDogRTUgNkIgMDcgRDggN0MgNDAg RkIgNjAgIDE0IDIxIDQyIDFFIEE2IDREIDAwIDVFIDogLmsuLnxALmAuIUIuLk0uXgowMDIwOiA1 MSBDQiBEOCA4MCA5MyBBMiAzQiBDRCAgMDIgQTcgNjkgQTQgMzQgNTggNjEgM0YgOiBRLi4uLi47 Li4uaS40WGE/CjAwMzA6IEU2IEVGIEQ3IDNGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IC4uLj8KPT4gbGlic3NoMl90cmFuc3BvcnRfcmVhZCgpIHBsYWluICgxOSBieXRl cykKMDAwMDogNUUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDBBIDZFIDZGIDc2IDY1IDIwIDY0IDYx IDogXi4uLi4uLi4ubm92ZSBkYQowMDEwOiA3NCA2MSAwQSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiB0YS4KW2xpYnNzaDJdIDE4MDAuNDA1NTgxIFRyYW5zcG9ydDog UGFja2V0IHR5cGUgOTQgcmVjZWl2ZWQsIGxlbmd0aD0xOQpbbGlic3NoMl0gMTgwMC40MDU1ODcg Q29ubjogMTAgYnl0ZXMgcGFja2V0X2FkZCgpIGZvciAwLzAvMApbbGlic3NoMl0gMTgwMC40MDU1 OTYgQ29ubjogY2hhbm5lbF9yZWFkKCkgZ290IDEwIG9mIGRhdGEgZnJvbSAwLzAvMCBbdWxdClts aWJzc2gyXSAxODAwLjQwNTYwNSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBl OiA5MQpbbGlic3NoMl0gMTgwMC40MDU2MDkgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQg b2YgdHlwZTogOTIKW2xpYnNzaDJdIDE4MDAuNDA1NjE1IFRyYW5zcG9ydDogTG9va2luZyBmb3Ig cGFja2V0IG9mIHR5cGU6IDk0CltsaWJzc2gyXSAxODAwLjQwNTYxOSBUcmFuc3BvcnQ6IExvb2tp bmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5NQpbbGlic3NoMl0gMTgwOS44NzY1NzQgQ29ubjogY2hh bm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApb bGlic3NoMl0gMTgwOS44NzY2MTQgU29ja2V0OiBSZWN2ZWQgNjgvMTYzODQgYnl0ZXMgdG8gMHhm MzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg2OCBieXRlcykKMDAwMDog RTQgQkEgQUMgRDkgREEgOUIgRUUgOTIgIEEyIEREIDk1IEM1IEIxIDFEIEQ4IDE3IDogLi4uLi4u Li4uLi4uLi4uLgowMDEwOiA3NSAxOSBDNCBFQSBFQyA3NiAxMSBEQiAgRTcgMkQgQjQgM0UgNTEg Q0QgRjMgRjcgOiB1Li4uLnYuLi4tLj5RLi4uCjAwMjA6IDNEIEY4IDMwIDRGIDAzIEJGIDU0IDc2 ICBCNyBGNyA5OCA3MiBCQyAyMiBERSA3QiA6ID0uME8uLlR2Li4uci4iLnsKMDAzMDogNkQgODcg RkQgNUUgODEgMEYgMkMgOUYgIDhCIDRFIEY1IEQwIEQyIEMxIDlCIEFFIDogbS4uXi4uLC4uTi4u Li4uLgowMDQwOiAzNyA2NCAyRSA4RSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiA3ZC4uCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFpbiAoMzcgYnl0ZXMpCjAw MDA6IDVDIDAwIDAwIDAwIDExIDAwIDAwIDAwICAwMiAwMCAwMCAwMCAxNCA0MyA2RiA2RSA6IFwu Li4uLi4uLi4uLi5Db24KMDAxMDogNkUgNjUgNjMgNzQgNjkgNkYgNkUgMjAgIDc0IDY5IDZEIDY1 IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0aW1lZCBvdQowMDIwOiA3NCAwMCAwMCAwMCAwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0Li4uLgpbbGlic3NoMl0gMTgwOS44NzY2 NjkgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5MiByZWNlaXZlZCwgbGVuZ3RoPTM3CltsaWJzc2gy XSAxODA5Ljg3NjY3OCBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAyMDQ4IGJ5dGVzIGZyb20g Y2hhbm5lbCAwLzAgc3RyZWFtICMxCltsaWJzc2gyXSAxODA5Ljg3NjY4NiBDb25uOiBBbGxvY2F0 ZWQgbmV3IGNoYW5uZWwgSUQjMTkKW2xpYnNzaDJdIDE4MDkuODc2NjkwIENvbm46IE9wZW5pbmcg Q2hhbm5lbCAtIHdpbiAyNjIxNDQgcGFjayAzMjc2OAo9PiBsaWJzc2gyX3RyYW5zcG9ydF93cml0 ZSBwbGFpbiAoMjkgYnl0ZXMpCjAwMDA6IDVBIDAwIDAwIDAwIDBDIDY0IDY5IDcyICA2NSA2MyA3 NCAyRCA3NCA2MyA3MCA2OSA6IFouLi4uZGlyZWN0LXRjcGkKMDAxMDogNzAgMDAgMDAgMDAgMTMg MDAgMDQgMDAgIDAwIDAwIDAwIDgwIDAwICAgICAgICAgIDogcC4uLi4uLi4uLi4uLgo9PiBsaWJz c2gyX3RyYW5zcG9ydF93cml0ZSBwbGFpbjIgKDM2IGJ5dGVzKQowMDAwOiAwMCAwMCAwMCAwQiAz MSAzMCAyRSAzNyAgMzYgMkUgMzkgMkUgMzEgMzcgMzMgMDAgOiAuLi4uMTAuNzYuOS4xNzMuCjAw MTA6IDAwIDAwIDE2IDAwIDAwIDAwIDA5IDMxICAzMiAzNyAyRSAzMCAyRSAzMCAyRSAzMSA6IC4u Li4uLi4xMjcuMC4wLjEKMDAyMDogMDAgMDAgMDAgMTYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogLi4uLgpbbGlic3NoMl0gMTgwOS44NzY3NjUgU29ja2V0OiBTZW50IDEw MC8xMDAgYnl0ZXMgYXQgMHhmM2E1NTAKPT4gbGlic3NoMl90cmFuc3BvcnRfd3JpdGUgc2VuZCgp ICgxMDAgYnl0ZXMpCjAwMDA6IEIyIDJGIDZBIDc4IEFBIDZGIDM4IDUzICA3RSBBMyA2MCA0NSA2 RiBDNCBBRCAzQSA6IC4vangubzhTfi5gRW8uLjoKMDAxMDogRjIgRjIgQkYgMjggMEMgNjUgRTgg QUMgIDdFIDU2IEREIDdBIDNBIDNFIDY1IEM2IDogLi4uKC5lLi5+Vi56Oj5lLgowMDIwOiA2QSA3 QSA4NSA3MiA4QyAzNCAyRSBBMiAgRDEgOUIgMzMgMDkgQzQgREQgNDYgRUIgOiBqei5yLjQuLi4u My4uLkYuCjAwMzA6IDkzIDBBIDU5IEI1IDg0IDk2IEIwIEFEICBFQyBCNiA5NSBDOSAwRSA4MSAw MiAzOSA6IC4uWS4uLi4uLi4uLi4uLjkKMDA0MDogQzcgMzUgQ0IgNzggNzIgRTIgQjggMDkgIEMy IEVBIDk2IEFCIERGIDYwIDY1IEY5IDogLjUueHIuLi4uLi4uLmBlLgowMDUwOiAwQSAzRiBBMyAw MyBCMCBGQyBDQSBENyAgNkUgMUQgQTMgNEMgQTAgQzcgRkQgMjUgOiAuPy4uLi4uLm4uLkwuLi4l CjAwNjA6IDRGIDM1IDA4IDA5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 IE81Li4KW2xpYnNzaDJdIDE4MDkuODc2NzkwIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0 IG9mIHR5cGU6IDkxCltsaWJzc2gyXSAxODA5Ljg3Njc5NCBUcmFuc3BvcnQ6IExvb2tpbmcgZm9y IHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gMTg2MC40MDk1OTAgQ29ubjogY2hhbm5lbF9y ZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwgMC8wIHN0cmVhbSAjMApbbGlic3No Ml0gMTg2MC40MDk2MzUgU29ja2V0OiBSZWN2ZWQgNTIvMTYzODQgYnl0ZXMgdG8gMHhmMzY1MTAr MAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg1MiBieXRlcykKMDAwMDogRjQgQjIg OUEgMkQgMjEgMDcgNTAgMjEgIDI0IDFDIDFBIDdEIDgxIDYyIDYxIDdEIDogLi4uLSEuUCEkLi59 LmJhfQowMDEwOiAwNyA3MyA0QyBBRSAwOCBDNCBBMiAxNiAgQkMgQjMgOUEgODQgODEgNEYgODAg RUQgOiAuc0wuLi4uLi4uLi4uTy4uCjAwMjA6IEM3IDUzIEJDIDAxIDJCIEQ3IEJEIDQyICA4OCA1 NyA0RSA3OCAzMyAyMiA1NSAwNiA6IC5TLi4rLi5CLldOeDMiVS4KMDAzMDogMEMgRTggNUUgRjQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLi5eLgo9PiBsaWJzc2gyX3Ry YW5zcG9ydF9yZWFkKCkgcGxhaW4gKDE5IGJ5dGVzKQowMDAwOiA1RSAwMCAwMCAwMCAwMCAwMCAw MCAwMCAgMEEgNkUgNkYgNzYgNjUgMjAgNjQgNjEgOiBeLi4uLi4uLi5ub3ZlIGRhCjAwMTA6IDc0 IDYxIDBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhLgpbbGli c3NoMl0gMTg2MC40MDk2ODUgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5NCByZWNlaXZlZCwgbGVu Z3RoPTE5CltsaWJzc2gyXSAxODYwLjQwOTY5MCBDb25uOiAxMCBieXRlcyBwYWNrZXRfYWRkKCkg Zm9yIDAvMC8wCltsaWJzc2gyXSAxODYwLjQwOTY5OSBDb25uOiBjaGFubmVsX3JlYWQoKSBnb3Qg MTAgb2YgZGF0YSBmcm9tIDAvMC8wIFt1bF0KW2xpYnNzaDJdIDE4NjAuNDA5NzA5IFRyYW5zcG9y dDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDkxCltsaWJzc2gyXSAxODYwLjQwOTcxMyBU cmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MgpbbGlic3NoMl0gMTg4OC43 MjQ3MzcgQ29ubjogY2hhbm5lbF9yZWFkKCkgd2FudHMgMjA0OCBieXRlcyBmcm9tIGNoYW5uZWwg MC8wIHN0cmVhbSAjMApbbGlic3NoMl0gMTg4OC43MjQ3NzEgU29ja2V0OiBSZWN2ZWQgNjgvMTYz ODQgYnl0ZXMgdG8gMHhmMzY1MTArMAo9PiBsaWJzc2gyX3RyYW5zcG9ydF9yZWFkKCkgcmF3ICg2 OCBieXRlcykKMDAwMDogNjcgRTYgNjIgRjYgQ0MgMkQgQTggQkMgIDM0IDFCIDVCIDEyIDdGIEYx IDU1IDdCIDogZy5iLi4tLi40LlsuLi5VewowMDEwOiAyMCBGMiAxQyBCNiAyQSA0MyAwRSAxRiAg ODcgN0IgOTAgMkUgNjkgRjYgOUUgRjIgOiAgLi4uKkMuLi57Li5pLi4uCjAwMjA6IDE2IEMyIDA1 IDcwIDc1IDJCIEI0IDFFICAyMCA1QSAyNyAxQyBBRSAzQSAzMSAwRSA6IC4uLnB1Ky4uIFonLi46 MS4KMDAzMDogQzUgMTIgMDUgQzIgODcgOEIgQTkgREQgIDE4IDg3IEJFIEM2IDA4IDhBIDc4IDIw IDogLi4uLi4uLi4uLi4uLi54IAowMDQwOiAyRSA1NiA3QSAwNCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiAuVnouCj0+IGxpYnNzaDJfdHJhbnNwb3J0X3JlYWQoKSBwbGFp biAoMzcgYnl0ZXMpCjAwMDA6IDVDIDAwIDAwIDAwIDEyIDAwIDAwIDAwICAwMiAwMCAwMCAwMCAx NCA0MyA2RiA2RSA6IFwuLi4uLi4uLi4uLi5Db24KMDAxMDogNkUgNjUgNjMgNzQgNjkgNkYgNkUg MjAgIDc0IDY5IDZEIDY1IDY0IDIwIDZGIDc1IDogbmVjdGlvbiB0aW1lZCBvdQowMDIwOiA3NCAw MCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0Li4uLgpbbGli c3NoMl0gMTg4OC43MjQ4MjMgVHJhbnNwb3J0OiBQYWNrZXQgdHlwZSA5MiByZWNlaXZlZCwgbGVu Z3RoPTM3CltsaWJzc2gyXSAxODg4LjcyNDgzMyBDb25uOiBjaGFubmVsX3JlYWQoKSB3YW50cyAy MDQ4IGJ5dGVzIGZyb20gY2hhbm5lbCAwLzAgc3RyZWFtICMxCltsaWJzc2gyXSAxODg4LjcyNDg0 MSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0eXBlOiA5MQpbbGlic3NoMl0gMTg4 OC43MjQ4NDUgVHJhbnNwb3J0OiBMb29raW5nIGZvciBwYWNrZXQgb2YgdHlwZTogOTIKW2xpYnNz aDJdIDE4ODguNzI0ODUxIFRyYW5zcG9ydDogTG9va2luZyBmb3IgcGFja2V0IG9mIHR5cGU6IDk0 CltsaWJzc2gyXSAxODg4LjcyNDg1NSBUcmFuc3BvcnQ6IExvb2tpbmcgZm9yIHBhY2tldCBvZiB0 eXBlOiA5NQo= --bcaec51a7190efd10704f6f2859c Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel --bcaec51a7190efd10704f6f2859c-- From libssh2-devel-bounces@cool.haxx.se Thu Apr 24 13:33:58 2014 Return-Path: Received: from www.haxx.se (localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3OBXMNs030468; Thu, 24 Apr 2014 13:33:49 +0200 Received: from csmtp15.one.com (csmtp15.one.com [195.47.247.115]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3OBXJ9w030351 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Thu, 24 Apr 2014 13:33:20 +0200 Received: from webmail3 (webmail3.local.one.com [10.246.6.3]) by csmtp15.one.com (Postfix) with SMTP id 86C8A40000A25 for ; Thu, 24 Apr 2014 11:33:15 +0000 (UTC) X-Originating-IP: 81.170.150.37 User-Agent: One.com webmail 4.4.1 MIME-Version: 1.0 Message-ID: <1398339195207.20649.188@webmail3> Date: Thu, 24 Apr 2014 11:33:15 GMT To: From: "Frasse" Subject: SCP Upload remote disk full X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: frasse@fworld.se, libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============0837643205==" Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" This is a multipart message in MIME format. --===============0837643205== Content-Type: multipart/alternative; boundary="----------186-1398339195207-1" This is a multipart message in MIME format. ------------186-1398339195207-1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Hi everybody. I've implemented an SCP upload function based on the scp_write.c example. The code works as it should except for when the size of the file is larger = than the available amount of disk space on the remote machine. I get no indication that the entire file could not be uploaded to the remot= e machine. I've tried using both libssh2_scp_send and libssh2_scp_send64. I've used li= bssh2_channel_flush to flush the channel and activated tracing. I've checke= d libssh2_session_last_error after each call and checked both libssh2_chann= el_get_exit_status and libssh2_channel_get_exit_signal. I get no indication= anywhere that the disk is full. What is the correct way to check that the entire file could be written? Thanks in advance, Frasse ------------186-1398339195207-1 Content-Type: multipart/related; boundary="----------186-1398339195207-2" ------------186-1398339195207-2 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8 Hi everybody.

I've implemented an SCP upload function based on t= he scp_write.c example.

The code works as it should except for w= hen the size of the file is larger than the available amount of disk space = on the remote machine.

I get no indication that the entire file = could not be uploaded to the remote machine.

I've tried using bo= th libssh2_scp_send and libssh2_scp_send64. I've used libssh2_channel_flush= to flush the channel and activated tracing. I've checked libssh2_session_l= ast_error after each call and checked both libssh2_channel_get_exit_status = and libssh2_channel_get_exit_signal. I get no indication anywhere that the = disk is full.

What is the correct way to check that the entire f= ile could be written?

Thanks in advance,
Frasse

= ------------186-1398339195207-2-- ------------186-1398339195207-1-- --===============0837643205== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel --===============0837643205==-- From libssh2-devel-bounces@cool.haxx.se Wed Apr 30 06:48:43 2014 Return-Path: Received: from www.haxx.se (localhost.localdomain [127.0.0.1]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3U4mB1t011815; Wed, 30 Apr 2014 06:48:36 +0200 Received: from mail-ie0-x22d.google.com (mail-ie0-x22d.google.com [IPv6:2607:f8b0:4001:c03::22d]) by giant.haxx.se (8.14.4/8.14.4/Debian-4.1) with ESMTP id s3U4m9WZ011803 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Wed, 30 Apr 2014 06:48:10 +0200 Received: by mail-ie0-f173.google.com with SMTP id rp18so1364244iec.18 for ; Tue, 29 Apr 2014 21:48:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=UllNRyO46oTCnZx3IbLXzKF3qDFLa0hsYboBmO+69Ko=; b=AmAV49tlBj4Q0tSKUvxiGgUll+kb/mm+Im8ZPIYiQd9+erkldgPSZv2o7AegyxKFS+ w0SigKWtTK6yn43Ok90CXUByqvH1cVbXUpKh4sVZcH8G8zu7PqsZnFTJmdJHLx1bL+66 e0ANA0LBXJOnv08Sq7BxGg3z3ul2Ju/odNx+zNo6RCLTWwM0Ki5djly68id+raS2V80S YIz0KaTTW7W99DvTgwnM7rkAxsHz8nqMSU5IsXY6GETPqrm0uo+STxF76M7ocModoSX8 uPE79++M/faoX9cFhO+9AG9nTuTHwmzdisT5vzxAY35hnrTivM+Bh+bvulngcyQIhUMb dlMw== MIME-Version: 1.0 X-Received: by 10.50.122.67 with SMTP id lq3mr32867154igb.8.1398833284355; Tue, 29 Apr 2014 21:48:04 -0700 (PDT) Received: by 10.43.118.7 with HTTP; Tue, 29 Apr 2014 21:48:04 -0700 (PDT) Date: Wed, 30 Apr 2014 00:48:04 -0400 Message-ID: Subject: [libss2] direct port forwarding with multiple channels From: Oliver To: libssh2-devel@cool.haxx.se X-BeenThere: libssh2-devel@cool.haxx.se X-Mailman-Version: 2.1.16 Precedence: list Reply-To: libssh2 development List-Id: libssh2 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libssh2-devel-bounces@cool.haxx.se Sender: "libssh2-devel" Hi all, I've followed the example here: http://www.libssh2.org/examples/direct_tcpip.html Port forwarding now works, but only on one channel, which makes some operations slow (eg webpages). After about 2 minutes of inactivity, libssh2_channel_eof returns true and I do the following: 1) free the channel 2) turn blocking back on 3) call libssh2_channel_direct_tcpip_ex to start over with a new channel When I use putty to port forward, I can see multiple channels opened within the session and webpages load much faster. Is there a way to use multiple channels with direct port forwarding in libssh2? Thanks! _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel