From libssh2-devel-bounces@cool.haxx.se  Tue Apr  1 00:22:24 2014
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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 <raysatiro@yahoo.com>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=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" <libssh2-devel-bounces@cool.haxx.se>

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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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 <eben@ebenshapiro.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; Wed, 2 Apr 2014 21:06:49 +0200
Received: by mail-we0-f174.google.com with SMTP id t60so702749wes.5
 for <libssh2-devel@cool.haxx.se>; 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 <libssh2-devel@cool.haxx.se>
 (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 <clemensgru@gmail.com>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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 <libssh2-devel@cool.haxx.se>; 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 <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: ed25519 and curve25519 for key exchange
In-Reply-To: <533C5FC2.3010205@gmail.com>
Message-ID: <alpine.DEB.2.00.1404031345030.24520@tvnag.unkk.fr>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=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" <libssh2-devel-bounces@cool.haxx.se>

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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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 <peter@stuge.se>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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: <BAY407-EAS6BEE2406F9B2973252077F36B0@phx.gbl>
From: Bob Kast <bob_2824@hotmail.com>
To: "'libssh2 development'" <libssh2-devel@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

------=_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 <bobkast@icloud.com>=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<?xml version=3D"1.0" encoding=3D"utf-8"?>=0A=
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"12.0" =
xmlns=3D"http://schemas.microsoft.com/developer/msbuild/2003">=0A=
+  <ItemGroup Label=3D"ProjectConfigurations">=0A=
+    <ProjectConfiguration Include=3D"DLL Debug|Win32">=0A=
+      <Configuration>DLL Debug</Configuration>=0A=
+      <Platform>Win32</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"DLL Debug|x64">=0A=
+      <Configuration>DLL Debug</Configuration>=0A=
+      <Platform>x64</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"DLL Release|Win32">=0A=
+      <Configuration>DLL Release</Configuration>=0A=
+      <Platform>Win32</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"DLL Release|x64">=0A=
+      <Configuration>DLL Release</Configuration>=0A=
+      <Platform>x64</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"LIB Debug|Win32">=0A=
+      <Configuration>LIB Debug</Configuration>=0A=
+      <Platform>Win32</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"LIB Debug|x64">=0A=
+      <Configuration>LIB Debug</Configuration>=0A=
+      <Platform>x64</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"LIB Release|Win32">=0A=
+      <Configuration>LIB Release</Configuration>=0A=
+      <Platform>Win32</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"LIB Release|x64">=0A=
+      <Configuration>LIB Release</Configuration>=0A=
+      <Platform>x64</Platform>=0A=
+    </ProjectConfiguration>=0A=
+  </ItemGroup>=0A=
+  <PropertyGroup Label=3D"Globals">=0A=
+    <SccProjectName />=0A=
+    <SccLocalPath />=0A=
+    <ProjectGuid>{790C5988-391E-47D7-8EFB-BA1C99F72EA5}</ProjectGuid>=0A=
+  </PropertyGroup>=0A=
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Release|Win32'" Label=3D"Configuration">=0A=
+    <ConfigurationType>StaticLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Release|x64'" Label=3D"Configuration">=0A=
+    <ConfigurationType>StaticLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Debug|Win32'" Label=3D"Configuration">=0A=
+    <ConfigurationType>StaticLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Debug|x64'" Label=3D"Configuration">=0A=
+    <ConfigurationType>StaticLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Release|Win32'" Label=3D"Configuration">=0A=
+    <ConfigurationType>DynamicLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Release|x64'" Label=3D"Configuration">=0A=
+    <ConfigurationType>DynamicLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Debug|Win32'" Label=3D"Configuration">=0A=
+    <ConfigurationType>DynamicLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Debug|x64'" Label=3D"Configuration">=0A=
+    <ConfigurationType>DynamicLibrary</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />=0A=
+  <ImportGroup Label=3D"ExtensionSettings">=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Release|Win32'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Release|x64'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Debug|Win32'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Debug|x64'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Release|Win32'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Release|x64'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Debug|Win32'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Debug|x64'" Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <PropertyGroup Label=3D"UserMacros" />=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Debug|Win32'">=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <LinkIncremental>false</LinkIncremental>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Debug|x64'">=0A=
+    <LinkIncremental>false</LinkIncremental>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Release|Win32'">=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <LinkIncremental>false</LinkIncremental>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL =
Release|x64'">=0A=
+    <LinkIncremental>false</LinkIncremental>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Debug|Win32'">=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <LinkIncremental>true</LinkIncremental>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Debug|x64'">=0A=
+    <LinkIncremental>true</LinkIncremental>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Release|Win32'">=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <LinkIncremental>false</LinkIncremental>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB =
Release|x64'">=0A=
+    <LinkIncremental>false</LinkIncremental>=0A=
+    =
<IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</I=
ntDir>=0A=
+    <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>=0A=
+  </PropertyGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL Debug|Win32'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <FunctionLevelLinking>false</FunctionLevelLinking>=0A=
+      <Optimization>Disabled</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      <TreatWarningAsError>false</TreatWarningAsError>=0A=
+      <MinimalRebuild>true</MinimalRebuild>=0A=
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDefinit=
ions)</PreprocessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>=0A=
+      <StringPooling>true</StringPooling>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Link>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <LinkDLL>true</LinkDLL>=0A=
+      <GenerateDebugInformation>true</GenerateDebugInformation>=0A=
+      <SubSystem>Console</SubSystem>=0A=
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+      <ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>=0A=
+      =
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalD=
ependencies>=0A=
+      <AdditionalLibraryDirectories>=0A=
+      </AdditionalLibraryDirectories>=0A=
+      =
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>=0A=
+      =
<ProfileGuidedDatabase>$(TargetDir)$(TargetName).pgd</ProfileGuidedDataba=
se>=0A=
+    </Link>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL Debug|x64'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <FunctionLevelLinking>false</FunctionLevelLinking>=0A=
+      <Optimization>Disabled</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      <TreatWarningAsError>false</TreatWarningAsError>=0A=
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDefinit=
ions)</PreprocessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>=0A=
+      <StringPooling>true</StringPooling>=0A=
+      <MinimalRebuild>true</MinimalRebuild>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Link>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <LinkDLL>true</LinkDLL>=0A=
+      <GenerateDebugInformation>true</GenerateDebugInformation>=0A=
+      <SubSystem>Console</SubSystem>=0A=
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+      <ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>=0A=
+      =
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalD=
ependencies>=0A=
+      <AdditionalLibraryDirectories>=0A=
+      </AdditionalLibraryDirectories>=0A=
+      =
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>=0A=
+      =
<ProfileGuidedDatabase>$(TargetDir)$(TargetName).pgd</ProfileGuidedDataba=
se>=0A=
+    </Link>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL Release|Win32'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <StringPooling>true</StringPooling>=0A=
+      <FunctionLevelLinking>true</FunctionLevelLinking>=0A=
+      <Optimization>MaxSpeed</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;NDEBUG;%(PreprocessorDefinitions)</Prepro=
cessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <IntrinsicFunctions>true</IntrinsicFunctions>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Link>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <LinkDLL>true</LinkDLL>=0A=
+      <GenerateDebugInformation>true</GenerateDebugInformation>=0A=
+      <SubSystem>Console</SubSystem>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+      <ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>=0A=
+      =
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalD=
ependencies>=0A=
+      <AdditionalLibraryDirectories>=0A=
+      </AdditionalLibraryDirectories>=0A=
+      =
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>=0A=
+      =
<ProfileGuidedDatabase>$(TargetDir)$(TargetName).pgd</ProfileGuidedDataba=
se>=0A=
+    </Link>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'DLL Release|x64'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <StringPooling>true</StringPooling>=0A=
+      <FunctionLevelLinking>true</FunctionLevelLinking>=0A=
+      <Optimization>MaxSpeed</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;NDEBUG;%(PreprocessorDefinitions)</Prepro=
cessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <IntrinsicFunctions>true</IntrinsicFunctions>=0A=
+      <OmitFramePointers>false</OmitFramePointers>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Link>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <LinkDLL>true</LinkDLL>=0A=
+      <GenerateDebugInformation>true</GenerateDebugInformation>=0A=
+      <SubSystem>Console</SubSystem>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+      <ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>=0A=
+      =
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalD=
ependencies>=0A=
+      <AdditionalLibraryDirectories>=0A=
+      </AdditionalLibraryDirectories>=0A=
+      =
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>=0A=
+      =
<ProfileGuidedDatabase>$(TargetDir)$(TargetName).pgd</ProfileGuidedDataba=
se>=0A=
+    </Link>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB Debug|Win32'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <FunctionLevelLinking>false</FunctionLevelLinking>=0A=
+      <Optimization>Disabled</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      <MinimalRebuild>true</MinimalRebuild>=0A=
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDe=
finitions)</PreprocessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>=0A=
+      <StringPooling>true</StringPooling>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Lib>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+    </Lib>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB Debug|x64'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <FunctionLevelLinking>false</FunctionLevelLinking>=0A=
+      <Optimization>Disabled</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;_DEBUG;LIBSSH2DEBUG;%(PreprocessorDe=
finitions)</PreprocessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>=0A=
+      <StringPooling>true</StringPooling>=0A=
+      <MinimalRebuild>true</MinimalRebuild>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Lib>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+    </Lib>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB Release|Win32'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <StringPooling>true</StringPooling>=0A=
+      <FunctionLevelLinking>true</FunctionLevelLinking>=0A=
+      <Optimization>MaxSpeed</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;NDEBUG;%(PreprocessorDefinitions)</P=
reprocessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <IntrinsicFunctions>true</IntrinsicFunctions>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Lib>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+    </Lib>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'LIB Release|x64'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <StringPooling>true</StringPooling>=0A=
+      <FunctionLevelLinking>true</FunctionLevelLinking>=0A=
+      <Optimization>MaxSpeed</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      =
<AdditionalIncludeDirectories>..\win32;..\include;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>HAVE_WINDOWS_H;HAVE_STDLIB_H;HAVE_LIBCRYPT32;LIB=
SSH2_WINCNG;LIBSSH2_WIN32;WIN32;_LIB;NDEBUG;%(PreprocessorDefinitions)</P=
reprocessorDefinitions>=0A=
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHead=
erOutputFile>=0A=
+      <ObjectFileName>$(IntDir)</ObjectFileName>=0A=
+      =
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileN=
ame>=0A=
+      <IntrinsicFunctions>true</IntrinsicFunctions>=0A=
+      <OmitFramePointers>false</OmitFramePointers>=0A=
+    </ClCompile>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Lib>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>$(TargetPath)</OutputFile>=0A=
+    </Lib>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemGroup>=0A=
+    <ClCompile Include=3D"..\src\agent.c" />=0A=
+    <ClCompile Include=3D"..\src\channel.c" />=0A=
+    <ClCompile Include=3D"..\src\comp.c" />=0A=
+    <ClCompile Include=3D"..\src\crypt.c" />=0A=
+    <ClCompile Include=3D"..\src\global.c" />=0A=
+    <ClCompile Include=3D"..\src\hostkey.c" />=0A=
+    <ClCompile Include=3D"..\src\keepalive.c" />=0A=
+    <ClCompile Include=3D"..\src\kex.c" />=0A=
+    <ClCompile Include=3D"..\src\knownhost.c" />=0A=
+    <ClCompile Include=3D"..\src\libgcrypt.c" />=0A=
+    <ClCompile Include=3D"..\src\mac.c" />=0A=
+    <ClCompile Include=3D"..\src\misc.c" />=0A=
+    <ClCompile Include=3D"..\src\openssl.c" />=0A=
+    <ClCompile Include=3D"..\src\packet.c" />=0A=
+    <ClCompile Include=3D"..\src\pem.c" />=0A=
+    <ClCompile Include=3D"..\src\publickey.c" />=0A=
+    <ClCompile Include=3D"..\src\scp.c" />=0A=
+    <ClCompile Include=3D"..\src\session.c" />=0A=
+    <ClCompile Include=3D"..\src\sftp.c" />=0A=
+    <ClCompile Include=3D"..\src\transport.c" />=0A=
+    <ClCompile Include=3D"..\src\userauth.c" />=0A=
+    <ClCompile Include=3D"..\src\version.c" />=0A=
+    <ClCompile Include=3D"..\src\wincng.c" />=0A=
+  </ItemGroup>=0A=
+  <ItemGroup>=0A=
+    <ClInclude Include=3D"..\src\channel.h" />=0A=
+    <ClInclude Include=3D"..\src\comp.h" />=0A=
+    <ClInclude Include=3D"..\src\crypto.h" />=0A=
+    <ClInclude Include=3D"..\src\libgcrypt.h" />=0A=
+    <ClInclude Include=3D"..\src\wincng.h" />=0A=
+    <ClInclude Include=3D"libssh2_config.h" />=0A=
+    <ClInclude Include=3D"..\src\libssh2_priv.h" />=0A=
+    <ClInclude Include=3D"..\src\mac.h" />=0A=
+    <ClInclude Include=3D"..\src\misc.h" />=0A=
+    <ClInclude Include=3D"..\src\openssl.h" />=0A=
+    <ClInclude Include=3D"..\src\packet.h" />=0A=
+    <ClInclude Include=3D"..\src\session.h" />=0A=
+    <ClInclude Include=3D"..\src\sftp.h" />=0A=
+    <ClInclude Include=3D"..\src\transport.h" />=0A=
+    <ClInclude Include=3D"..\src\userauth.h" />=0A=
+  </ItemGroup>=0A=
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />=0A=
+  <ImportGroup Label=3D"ExtensionTargets">=0A=
+  </ImportGroup>=0A=
+</Project>=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<?xml version=3D"1.0" encoding=3D"utf-8"?>=0A=
+<Project ToolsVersion=3D"4.0" =
xmlns=3D"http://schemas.microsoft.com/developer/msbuild/2003">=0A=
+  <ItemGroup>=0A=
+    <Filter Include=3D"Source Files">=0A=
+      =
<UniqueIdentifier>{ed49fc94-18dd-4117-9bb1-9edaee5e50dc}</UniqueIdentifie=
r>=0A=
+      <Extensions>cpp;c;cxx</Extensions>=0A=
+    </Filter>=0A=
+    <Filter Include=3D"Header Files">=0A=
+      =
<UniqueIdentifier>{50b16c19-53fc-429b-af80-6dcc902ad055}</UniqueIdentifie=
r>=0A=
+      <Extensions>h;hpp;hxx</Extensions>=0A=
+    </Filter>=0A=
+  </ItemGroup>=0A=
+  <ItemGroup>=0A=
+    <ClCompile Include=3D"..\src\agent.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\channel.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\comp.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\crypt.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\global.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\hostkey.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\keepalive.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\kex.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\knownhost.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\libgcrypt.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\mac.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\misc.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\openssl.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\packet.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\pem.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\publickey.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\scp.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\session.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\sftp.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\transport.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\userauth.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\version.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\src\wincng.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+  </ItemGroup>=0A=
+  <ItemGroup>=0A=
+    <ClInclude Include=3D"..\src\channel.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\comp.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\crypto.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\libgcrypt.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"libssh2_config.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\libssh2_priv.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\mac.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\misc.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\openssl.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\packet.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\session.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\sftp.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\transport.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\userauth.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+    <ClInclude Include=3D"..\src\wincng.h">=0A=
+      <Filter>Header Files</Filter>=0A=
+    </ClInclude>=0A=
+  </ItemGroup>=0A=
+</Project>=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<?xml version=3D"1.0" encoding=3D"utf-8"?>=0A=
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"12.0" =
xmlns=3D"http://schemas.microsoft.com/developer/msbuild/2003">=0A=
+  <ItemGroup Label=3D"ProjectConfigurations">=0A=
+    <ProjectConfiguration Include=3D"Debug|Win32">=0A=
+      <Configuration>Debug</Configuration>=0A=
+      <Platform>Win32</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"Release|Win32">=0A=
+      <Configuration>Release</Configuration>=0A=
+      <Platform>Win32</Platform>=0A=
+    </ProjectConfiguration>=0A=
+    <ProjectConfiguration Include=3D"Template|Win32">=0A=
+      <Configuration>Template</Configuration>=0A=
+      <Platform>Win32</Platform>=0A=
+    </ProjectConfiguration>=0A=
+  </ItemGroup>=0A=
+  <PropertyGroup Label=3D"Globals">=0A=
+    <SccProjectName />=0A=
+    <SccLocalPath />=0A=
+    <ProjectGuid>{237AF8DB-FAF9-484B-9F8B-21A912CD4E73}</ProjectGuid>=0A=
+  </PropertyGroup>=0A=
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />=0A=
+  <PropertyGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Template|Win32'" =
Label=3D"Configuration">=0A=
+    <ConfigurationType>Application</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Debug|Win32'" =
Label=3D"Configuration">=0A=
+    <ConfigurationType>Application</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Release|Win32'" =
Label=3D"Configuration">=0A=
+    <ConfigurationType>Application</ConfigurationType>=0A=
+    <PlatformToolset>v120</PlatformToolset>=0A=
+    <UseOfMfc>false</UseOfMfc>=0A=
+    <CharacterSet>MultiByte</CharacterSet>=0A=
+  </PropertyGroup>=0A=
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />=0A=
+  <ImportGroup Label=3D"ExtensionSettings">=0A=
+  </ImportGroup>=0A=
+  <ImportGroup Label=3D"PropertySheets" =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Template|Win32'">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Debug|Win32'" =
Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <ImportGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Release|Win32'" =
Label=3D"PropertySheets">=0A=
+    <Import =
Project=3D"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" =
Condition=3D"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props'=
)" Label=3D"LocalAppDataPlatform" />=0A=
+    <Import =
Project=3D"$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />=0A=
+  </ImportGroup>=0A=
+  <PropertyGroup Label=3D"UserMacros" />=0A=
+  <PropertyGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Release|Win32'">=0A=
+    <OutDir>.\Release\</OutDir>=0A=
+    <IntDir>.\Release\</IntDir>=0A=
+    <LinkIncremental>false</LinkIncremental>=0A=
+  </PropertyGroup>=0A=
+  <PropertyGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Debug|Win32'">=0A=
+    <OutDir>.\Debug\</OutDir>=0A=
+    <IntDir>.\Debug\</IntDir>=0A=
+    <LinkIncremental>true</LinkIncremental>=0A=
+  </PropertyGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Release|Win32'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <StringPooling>true</StringPooling>=0A=
+      <FunctionLevelLinking>true</FunctionLevelLinking>=0A=
+      <Optimization>MaxSpeed</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      =
<AdditionalIncludeDirectories>..\include;..\win32;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>WIN32;NDEBUG;LIBSSH2_WIN32;_CONSOLE;%(Preprocess=
orDefinitions)</PreprocessorDefinitions>=0A=
+      <AssemblerListingLocation>.\Release\</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>.\Release\tests.pch</PrecompiledHeaderOutput=
File>=0A=
+      <ObjectFileName>.\Release\</ObjectFileName>=0A=
+      <ProgramDataBaseFileName>.\Release\</ProgramDataBaseFileName>=0A=
+    </ClCompile>=0A=
+    <Midl>=0A=
+      <TypeLibraryName>.\Release\tests.tlb</TypeLibraryName>=0A=
+    </Midl>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>.\Release\tests.bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Link>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <SubSystem>Console</SubSystem>=0A=
+      <OutputFile>simple.exe</OutputFile>=0A=
+      =
<AdditionalLibraryDirectories>Release;%(AdditionalLibraryDirectories)</Ad=
ditionalLibraryDirectories>=0A=
+      =
<AdditionalDependencies>odbc32.lib;odbccp32.lib;libeay32.lib;ssleay32.lib=
;ws2_32.lib;zlib.lib;libssh2.lib;%(AdditionalDependencies)</AdditionalDep=
endencies>=0A=
+    </Link>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemDefinitionGroup =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Debug|Win32'">=0A=
+    <ClCompile>=0A=
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>=0A=
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>=0A=
+      <FunctionLevelLinking>false</FunctionLevelLinking>=0A=
+      <Optimization>Disabled</Optimization>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <WarningLevel>Level3</WarningLevel>=0A=
+      <MinimalRebuild>true</MinimalRebuild>=0A=
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>=0A=
+      =
<AdditionalIncludeDirectories>..\include;..\win32;%(AdditionalIncludeDire=
ctories)</AdditionalIncludeDirectories>=0A=
+      =
<PreprocessorDefinitions>WIN32;_DEBUG;LIBSSH2_WIN32;_CONSOLE;%(Preprocess=
orDefinitions)</PreprocessorDefinitions>=0A=
+      <AssemblerListingLocation>.\Debug\</AssemblerListingLocation>=0A=
+      =
<PrecompiledHeaderOutputFile>.\Debug\tests.pch</PrecompiledHeaderOutputFi=
le>=0A=
+      <ObjectFileName>.\Debug\</ObjectFileName>=0A=
+      <ProgramDataBaseFileName>.\Debug\</ProgramDataBaseFileName>=0A=
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>=0A=
+    </ClCompile>=0A=
+    <Midl>=0A=
+      <TypeLibraryName>.\Debug\tests.tlb</TypeLibraryName>=0A=
+    </Midl>=0A=
+    <ResourceCompile>=0A=
+      <Culture>0x0409</Culture>=0A=
+      =
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorD=
efinitions>=0A=
+    </ResourceCompile>=0A=
+    <Bscmake>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <OutputFile>.\Debug\tests.bsc</OutputFile>=0A=
+    </Bscmake>=0A=
+    <Link>=0A=
+      <SuppressStartupBanner>true</SuppressStartupBanner>=0A=
+      <GenerateDebugInformation>true</GenerateDebugInformation>=0A=
+      <SubSystem>Console</SubSystem>=0A=
+      =
<IgnoreSpecificDefaultLibraries>msvcrt.lib;%(IgnoreSpecificDefaultLibrari=
es)</IgnoreSpecificDefaultLibraries>=0A=
+      <OutputFile>simple.exe</OutputFile>=0A=
+      =
<AdditionalLibraryDirectories>Debug;%(AdditionalLibraryDirectories)</Addi=
tionalLibraryDirectories>=0A=
+      =
<AdditionalDependencies>odbc32.lib;odbccp32.lib;libeay32.lib;ssleay32.lib=
;ws2_32.lib;zlib.lib;libssh2d.lib;%(AdditionalDependencies)</AdditionalDe=
pendencies>=0A=
+    </Link>=0A=
+  </ItemDefinitionGroup>=0A=
+  <ItemGroup>=0A=
+    <ClCompile Include=3D"..\tests\simple.c">=0A=
+      <ExcludedFromBuild =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Debug|Win32'">true</Exc=
ludedFromBuild>=0A=
+      <ExcludedFromBuild =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Release|Win32'">true</E=
xcludedFromBuild>=0A=
+      <ExcludedFromBuild =
Condition=3D"'$(Configuration)|$(Platform)'=3D=3D'Template|Win32'">true</=
ExcludedFromBuild>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\tests\ssh2.c" />=0A=
+  </ItemGroup>=0A=
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />=0A=
+  <ImportGroup Label=3D"ExtensionTargets">=0A=
+  </ImportGroup>=0A=
+</Project>=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<?xml version=3D"1.0" encoding=3D"utf-8"?>=0A=
+<Project ToolsVersion=3D"4.0" =
xmlns=3D"http://schemas.microsoft.com/developer/msbuild/2003">=0A=
+  <ItemGroup>=0A=
+    <Filter Include=3D"Source Files">=0A=
+      =
<UniqueIdentifier>{5f88c3ec-6eaf-402c-b529-9c3be528ab9a}</UniqueIdentifie=
r>=0A=
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>=0A=
+    </Filter>=0A=
+    <Filter Include=3D"Header Files">=0A=
+      =
<UniqueIdentifier>{b7f5ec6a-9426-4cb0-b384-eacfd8078165}</UniqueIdentifie=
r>=0A=
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>=0A=
+    </Filter>=0A=
+    <Filter Include=3D"Resource Files">=0A=
+      =
<UniqueIdentifier>{c37cf913-6ab0-4960-9b2e-b7f4bd19102a}</UniqueIdentifie=
r>=0A=
+      =
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>=0A=
+    </Filter>=0A=
+  </ItemGroup>=0A=
+  <ItemGroup>=0A=
+    <ClCompile Include=3D"..\tests\simple.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+    <ClCompile Include=3D"..\tests\ssh2.c">=0A=
+      <Filter>Source Files</Filter>=0A=
+    </ClCompile>=0A=
+  </ItemGroup>=0A=
+</Project>=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 <bobkast@icloud.com>=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 <bobkast@icloud.com>=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 <math.h>=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 <bobkast@icloud.com>=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 <winsock2.h>=0A=
 #include <ws2tcpip.h>=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 <bobkast@icloud.com>=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 <winsock2.h>=0A=
 #include <mswsock.h>=0A=
 #include <ws2tcpip.h>=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 <bobkast@icloud.com>=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 <bobkast@icloud.com>=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 <bobkast@icloud.com>=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 <bobkast@icloud.com>=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 <bobkast@icloud.com>=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 <bobkast@icloud.com>=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 <string.h>=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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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 <libssh2-devel@cool.haxx.se>; Thu, 10 Apr 2014 16:59:05 -0700 (PDT)
From: James Moore <james@panic.com>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="windows-1252"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>
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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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" <trac@libssh2.stuge.se>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#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: <https://trac.libssh2.org/ticket/286>
libssh2 <https://trac.libssh2.org/>
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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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" <trac@libssh2.stuge.se>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

#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: <https://trac.libssh2.org/ticket/287>
libssh2 <https://trac.libssh2.org/>
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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; Sun, 13 Apr 2014 22:36:41 +0200
Received: by mail-vc0-f172.google.com with SMTP id la4so6807651vcb.31
 for <libssh2-devel@cool.haxx.se>; 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: <CAOP4-90xi15viPhk99eQrMbVs38Tak6taBTqPDYmP7kuWYmgzg@mail.gmail.com>
Subject: Channel timeout
From: =?ISO-8859-2?B?Smn47SCpZXbo7Ws=?= <jsevcik14@gmail.com>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

--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

<div dir=3D"ltr"><span style=3D"color:rgb(62,69,76);font-family:Helvetica,A=
rial,&#39;lucida grande&#39;,tahoma,verdana,arial,sans-serif;font-size:12px=
;line-height:15.359999656677246px;white-space:pre-wrap;background-color:rgb=
(247,247,247)">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 &#39;09.04.2014 10:35:13.912&#39; are listi=
ngs of the program itself.
- A debug trace listing [libssh2] 60.908507 Conn: Packet requirev retval&#3=
9; is added for observing of return value</span><br></div>

--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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; 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 <libssh2-devel@cool.haxx.se>; 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: <libssh2-devel@cool.haxx.se>
From: "Frasse" <frasse@fworld.se>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0837643205=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

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.<br /><br />I've implemented an SCP upload function based on t=
he scp_write.c example.<br /><br />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.<br /><br />I get no indication that the entire file =
could not be uploaded to the remote machine.<br /><br />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.<br /><br />What is the correct way to check that the entire f=
ile could be written?<br /><br />Thanks in advance,<br />Frasse<br /><br />=


------------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: <libssh2-devel-bounces@cool.haxx.se>
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 <libssh2-devel@cool.haxx.se>; Wed, 30 Apr 2014 06:48:10 +0200
Received: by mail-ie0-f173.google.com with SMTP id rp18so1364244iec.18
 for <libssh2-devel@cool.haxx.se>; 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: <CAB+8W_XjU9HxDp591oYxPpxOnLYO=i3MQA8yvgM4peuGhcsF9A@mail.gmail.com>
Subject: [libss2] direct port forwarding with multiple channels
From: Oliver <daktor@gmail.com>
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 <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel/>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: "libssh2-devel" <libssh2-devel-bounces@cool.haxx.se>

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

