From libssh2-devel-bounces@cool.haxx.se  Thu Jul  1 13:55:27 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o61Bt7c3024140;
	Thu, 1 Jul 2010 13:55:21 +0200
Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com
	[209.85.214.54])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o61Bt69x024132
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 13:55:06 +0200
Received: by bwz12 with SMTP id 12so1158694bwz.41
	for <libssh2-devel@cool.haxx.se>; Thu, 01 Jul 2010 04:55:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:received:received:date:message-id
	:subject:from:to:content-type;
	bh=QIKzs8gpxucy/WxUQcSsYiAK9HxWOWId+TKvnLlaBto=;
	b=ExvAn3Em3Fcg4oEE09ucj3kzflHsMJf8qlJbsaFs0iXwwKpj99W40LFa+Q7PYAbXqc
	saOf+oG3MZjVRjT5jciZEr21G8umOt/I70g/1AVJAMwdTMx5rwOaKV5k32jSD/NcLr9j
	87/kSeXkAJfbwgsuNlY5vEV5vh2bSjuhYh8i8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:date:message-id:subject:from:to:content-type;
	b=YgTy/8OL15iHmuXtP9N6mw3N6hISTdoRdpO4oq2PYNWNeOLoBXjgV4fU0aw8H3RDlA
	S7Gcw3quR+psuVLloJ1jXBJyDo+hKlPJN4fcXcfgyvDta9SFPRURVxG5fyvqj2ktWpBu
	741H7uspLxR0pyTCDY+OonsJsQpCuHb7gxXiQ=
MIME-Version: 1.0
Received: by 10.204.82.91 with SMTP id a27mr5091888bkl.3.1277985301660; Thu, 
	01 Jul 2010 04:55:01 -0700 (PDT)
Received: by 10.204.117.65 with HTTP; Thu, 1 Jul 2010 04:55:01 -0700 (PDT)
Date: Thu, 1 Jul 2010 14:55:01 +0300
Message-ID: <AANLkTinxmBqv0qOF-ootjA6KcI_AQ-_u1aN0UNDeGj13@mail.gmail.com>
Subject: help in understanding _direct_tcpip_ex()
From: Dor Zaidenberg <hannibal218@gmail.com>
To: libssh2-devel@cool.haxx.se
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 01 Jul 2010 13:55:27 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 01 Jul 2010 13:55:06 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============1071515402=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

--===============1071515402==
Content-Type: multipart/alternative; boundary=0016e6daa610ef05c1048a52236c

--0016e6daa610ef05c1048a52236c
Content-Type: text/plain; charset=ISO-8859-1

Dear all.

I am trying to use libssh2_channel_direct_tcpip_ex in order to establish a
tunnel between the localmachine and a server. To this end I am working with
the direct_tcpip exmaple (both local machine and remote server use linux)

I figured this is going to be very simple.
What I tried is :
./direct_tcpip <server_ip> <user> <pwd> 127.0.0.1 80 localhost 20000
I hoped this will tunnel the my local machine's port 80 to the remote host
at port 20000.
Then at the remote server I will type :
curl http://localhost:20000/test.php and it will be as if I connected to the
local machine.

Unfortionatly I got an error message (which is related to the 127.0.0.1 80)
saying "bind : address already in use"

I take it that this is because the apache server on my local machine listens
to port 80, but isn't that the point of tunneling?

I am sure that I am missing something very basic (and stupid) in this, can
someone show me the light ?

my end goal is not to tunnel port 80, but to tunnel port 554 which is used
for rtsp protocol but its easy to test with port 80

-- 
Live Long And Prosper
Dor Zaidenberg

--0016e6daa610ef05c1048a52236c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dear all.<div><br></div><div>I am trying to use libssh2_ch=
annel_direct_tcpip_ex in order to establish a tunnel between the localmachi=
ne and a server. To this end I am working with the direct_tcpip exmaple (bo=
th local machine and remote server use linux)</div>
<div><br></div><div>I figured this is going to be very simple.</div><div>Wh=
at I tried is :=A0</div><div>./direct_tcpip &lt;server_ip&gt; &lt;user&gt; =
&lt;pwd&gt; 127.0.0.1 80 localhost 20000</div><div>I hoped this will tunnel=
 the my local machine&#39;s port 80 to the remote host at port 20000.</div>
<div>Then at the remote server I will type :</div><div>curl <a href=3D"http=
://localhost:20000/test.php">http://localhost:20000/test.php</a> and it wil=
l be as if I connected to the local machine.</div><div><br></div><div>Unfor=
tionatly I got an error message (which is related to the 127.0.0.1 80) sayi=
ng &quot;bind : address already in use&quot;</div>
<div><br></div><div>I take it that this is because the apache server on my =
local machine listens to port 80, but isn&#39;t that the point of tunneling=
?</div><div><br></div><div>I am sure that I am missing something very basic=
 (and stupid) in this, can someone show me the light ?</div>
<div><br></div><div>my end goal is not to tunnel port 80, but to tunnel por=
t 554 which is used for rtsp protocol but its easy to test with port 80</di=
v><div><br></div><div>-- <br>Live Long And Prosper<br>Dor Zaidenberg<br>

</div></div>

--0016e6daa610ef05c1048a52236c--

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

--===============1071515402==--

From libssh2-devel-bounces@cool.haxx.se  Thu Jul  1 14:56:35 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o61CuKqf002122;
	Thu, 1 Jul 2010 14:56:32 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o61CuJjT002118
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 14:56:19 +0200
Received: (qmail 6372 invoked by uid 501); 1 Jul 2010 12:56:17 -0000
Message-ID: <20100701125617.6371.qmail@stuge.se>
Date: Thu, 1 Jul 2010 14:56:17 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: help in understanding _direct_tcpip_ex()
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <AANLkTinxmBqv0qOF-ootjA6KcI_AQ-_u1aN0UNDeGj13@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <AANLkTinxmBqv0qOF-ootjA6KcI_AQ-_u1aN0UNDeGj13@mail.gmail.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 01 Jul 2010 14:56:35 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 01 Jul 2010 14:56:20 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Dor Zaidenberg wrote:
> I am trying to use libssh2_channel_direct_tcpip_ex in order to establish a
> tunnel between the localmachine and a server. To this end I am working with
> the direct_tcpip exmaple (both local machine and remote server use linux)
> 
> I figured this is going to be very simple.
> What I tried is :
> ./direct_tcpip <server_ip> <user> <pwd> 127.0.0.1 80 localhost 20000
> I hoped this will tunnel the my local machine's port 80 to the remote
> host at port 20000.

It will.


> Then at the remote server I will type :
> curl http://localhost:20000/test.php and it will be as if I
> connected to the local machine.

No, since then you would require a tunnel in the other direction, a
so-called "forwarded-tcpip" tunnel, going from the remote server to
your local machine.

That is a different type of channel from "direct-tcpip" and it is
currently not implemented in libssh2.

Part of the reason may be that this type of tunnel (forwarded-tcpip)
requires libssh2 to dynamically create channels, based on nothing but
packets from the remote host. This does not fit so well with how
libssh2 was designed.

That said, I think it would be great if libssh2 also supported
forwarded-tcpip channels, so please look into adding it! :)


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul  1 20:00:58 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o61I0kBn032767;
	Thu, 1 Jul 2010 20:00:55 +0200
Received: from earth.stuge.se (earth.stuge.se [213.88.146.15])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o61I0iXS032727
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 20:00:44 +0200
Received: (qmail 25547 invoked from network); 1 Jul 2010 18:00:41 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
	by localhost with SMTP; 1 Jul 2010 18:00:41 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.12b1
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.12b1, by Edgewall Software
X-Trac-Project: libssh2
Date: Thu, 01 Jul 2010 18:00:41 -0000
X-URL: http://trac.libssh2.org/
Subject: Re: [libssh2] #182: Various memory leaks
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/182#comment:14
Message-ID: <067.6791716e7258bc56c847816f7fb8b96b@libssh2.stuge.se>
References: <052.82d75923d2eeae36ea3bf5c7c6e7729d@libssh2.stuge.se>
X-Trac-Ticket-ID: 182
In-Reply-To: <052.82d75923d2eeae36ea3bf5c7c6e7729d@libssh2.stuge.se>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 01 Jul 2010 20:00:58 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 01 Jul 2010 20:00:44 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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="utf-8"
Content-Transfer-Encoding: base64
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

IzE4MjogVmFyaW91cyBtZW1vcnkgbGVha3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICBSZXBvcnRl
cjogIGpvaG5A4oCmICAgICAgICAgICAgfCAgICAgICBPd25lcjogIGJhZ2RlciAgDQogICAgICBU
eXBlOiAgZGVmZWN0ICAgICAgICAgICAgfCAgICAgIFN0YXR1czogIGFzc2lnbmVkDQogIFByaW9y
aXR5OiAgbm9ybWFsICAgICAgICAgICAgfCAgIE1pbGVzdG9uZTogIDEuMi42ICAgDQogQ29tcG9u
ZW50OiAgQVBJICAgICAgICAgICAgICAgfCAgICAgVmVyc2lvbjogIDEuMi42ICAgDQpSZXNvbHV0
aW9uOiAgICAgICAgICAgICAgICAgICAgfCAgICBLZXl3b3JkczogICAgICAgICAgDQogICAgQmxv
Y2tzOiAgICAgICAgICAgICAgICAgICAgfCAgIEJsb2NrZWQgQnk6ICAgICAgICAgIA0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQoKQ29tbWVudCAoYnkgYmFnZGVyKToKCiBTdXJlLCB3ZSBzaG91bGQgZml4
IHRoZSBzb2NrZXRfc3RhdGUgYnV0IHRoYXQncyBhIHN1YmplY3QgZm9yIHRoZSBtYWlsaW5nDQog
bGlzdCwgbm90IHRoaXMgYnVnIHJlcG9ydC4NCg0KIEkndmUgbm93IHB1c2hlZCB0aGUgNCBjaGFu
Z2VzIGZyb20geW91ciBwYXRjaGVkIHRoYXQgc2VlbWVkIHRvIGJlDQogcmVtYWluaW5nIGFuZCB0
aGF0IGZpeCB2YXJpb3VzIGxlYWtzIHRoYXQgeW91J3ZlIG1lbnRpb25lZC4gQUZBSUssIHRoaXMN
CiBtZWFucyBhbGwgdGhlIG1lbW9yeSBsZWFrIGlzc3VlcyB5b3UndmUgcmVwb3J0ZWQgaW4gdGhp
cyB0aWNrZXRzIGhhdmUgYmVlbg0KIHRha2VuIGNhcmUgb2YuDQoNCiBDYW4geW91IGRldGVjdCBh
bnkgcmVtYWluaW5nIGxlYWtzPwoKLS0gClRpY2tldCBVUkw6IDxodHRwOi8vdHJhYy5saWJzc2gy
Lm9yZy90aWNrZXQvMTgyI2NvbW1lbnQ6MTQ+CmxpYnNzaDIgPGh0dHA6Ly90cmFjLmxpYnNzaDIu
b3JnLz4KQyBsaWJyYXJ5IGZvciB3cml0aW5nIHBvcnRhYmxlIFNTSDIgY2xpZW50cwpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaWJzc2gyLWRldmVsIGh0
dHA6Ly9jb29sLmhheHguc2UvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2xpYnNzaDItZGV2ZWwK

From libssh2-devel-bounces@cool.haxx.se  Thu Jul  1 21:07:52 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o61J7b33015363;
	Thu, 1 Jul 2010 21:07:50 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o61J7WWv015335
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 21:07:34 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o61J7RgV025721
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 12:07:27 -0700 (PDT)
Message-ID: <4C2CE7A7.DE5EEF53@rcom-software.com>
Date: Thu, 01 Jul 2010 12:08:23 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: libssh2: Ported to UC Linux ?
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 01 Jul 2010 21:07:52 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 01 Jul 2010 21:07:35 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Dear Group:

I would like to use the libssh2 SH-2 library to provide encryption
and authentication functionality for libcurl SFTP--the C version.
Has it previously been ported to the UC Linux OS ? If so, what is
the approximate size ? If not, do you think it would be difficult
and do you have a guess about the ultimate library size ?

Note that UC Linux is a diskless embedded system OS, and typically
runs on processors without an MMU. Also, the .o file format is
ELF 32-bit MSB relocatable 68020, not stripped.  My target system
is M5249C3 dev. board with UC Linux version 2.4.27 and version
2.4.X or the kernel. It must be compiled with version 2.95.3 of
the GNU ELF Toolchain which does not have modern automake
capabilities.

Also, I use the SASL library for other types of encryption and
authentication in the target environment. It has a lot of
functionality and I wonder if the libssh2 SH-2 library duplicates
a significant part of functionality. If so, perhaps it is possible
to configure your library to obtain duplicated functionality
from the SASL library.

The size of the current SASL authentication/encryption library I am
using is about 605.4 K,  and it provides GNU TLS functionality. The
other functionality it provides is as follows: DES, MD5, ARC4, DSA,
BLOWFISH, TWOFISH, CAST5, MD2, MD4, RSA, SHA1, SHA265, SHA512,
RIJNDAEL, SERPENT, TIGER, X.509, ANS1, HMAC-MD5, DIGEST-MD5. The
largest components are DEs, RSA and ASN1 whose sizes are about 18.3,
9.1, and 67 K respectively.

Best Regards,

Paul Romero


--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul  1 21:31:49 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o61JVfFU024888;
	Thu, 1 Jul 2010 21:31:48 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o61JVdK4024841
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 21:31:39 +0200
Received: (qmail 7349 invoked by uid 501); 1 Jul 2010 19:31:36 -0000
Message-ID: <20100701193136.7348.qmail@stuge.se>
Date: Thu, 1 Jul 2010 21:31:36 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2: Ported to UC Linux ?
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C2CE7A7.DE5EEF53@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 01 Jul 2010 21:31:49 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 01 Jul 2010 21:31:39 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Paul,

Paul Romero wrote:
> libssh2
..
> Has it previously been ported to the UC Linux OS ?

No porting is required. You may know that uClinux provides the exact
same API as the regular Linux kernel.


> Note that UC Linux is a diskless embedded system OS,

Um, no, uClinux is a kernel variant..


> and typically runs on processors without an MMU. Also, the .o file
> format is ELF 32-bit MSB relocatable 68020, not stripped.

That will obviously depend on which binary file formats you enable in
the uClinux configuration, and which architecture you are running on.


> My target system is M5249C3 dev. board with UC Linux version 2.4.27
> and version 2.4.X or the kernel.

Maybe this is what you got delivered to you but I highly doubt that
this would be the only configuration that you could use with that
board. I would suggest that you create a fresh set of binaries for
your target, from the latest versions of what makes up a typical
embedded Linux system.


> It must be compiled with version 2.95.3 of the GNU ELF Toolchain

I also doubt this very strongly. The 2.4 codebase might indeed have
some requirements on compiler version, but I don't think that 2.95.3
is the only thing you can use. Note also that 2.95.3 is the version
of GCC only. "Toolchain" is a term commonly used to describe C
compiler (GCC) along with linker and other binary utilities (GNU
binutils). binutils has it's own versioning scheme.


> which does not have modern automake capabilities.

Again I doubt this. You could most likely use the very latest
autotools also with the older toolchain that you got.


> I use the SASL library
..
> I wonder if the libssh2 SH-2 library duplicates a significant part
> of functionality.

No. libssh2 implements SSH, not SASL. libssh2 specifically does not
implement cryptography, for that it uses libgcrypt or OpenSSL. I
don't think the SASL library implements cryptography either.


> The size of the current SASL authentication/encryption library I am
> using is about 605.4 K,  and it provides GNU TLS functionality.

If there's a libgcrypt API then libssh2 can use it.


> The other functionality it provides is as follows: DES, MD5, ARC4,
> DSA, BLOWFISH, TWOFISH, CAST5, MD2, MD4, RSA, SHA1, SHA265, SHA512,
> RIJNDAEL, SERPENT, TIGER, X.509, ANS1, HMAC-MD5, DIGEST-MD5. The
> largest components are DEs, RSA and ASN1 whose sizes are about 18.3,
> 9.1, and 67 K respectively.

The minimum you need for libssh2 is AES, RSA, DSA and SHA1.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 01:00:51 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o61N0VHx016630;
	Fri, 2 Jul 2010 01:00:46 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o61N0QCd016471
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 01:00:29 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o61N0Cnm035625
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 16:00:13 -0700 (PDT)
Message-ID: <4C2D1E34.D4BEAC69@rcom-software.com>
Date: Thu, 01 Jul 2010 16:01:09 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ?
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 01:00:50 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 01:00:29 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Peter:

First, thank you for the quick and detailed reply and be assured
the difference between SSH and SASL is clear to me. Also,
I must emphasize that my interest is in the SSH-2 component
subset required to support SFTP rather than SSH.

I think the SASL version of  libgcrypt meets the minimum libssh2
requirements,
and that AES and RIJNDAEL are the same. Also, I assume that
libssh2 can use DES and 3DES interchangeably. It appears most
SFTP  implementations also use the following: Diffie Hellman-SHA1,
Blowfish, Twofish,  HMAC-SHA1 and HMAC-MD5. Do you
think that is correct ?

The reason I mentioned SASL is the version GSASL I am using came with a
version of  libgcrypt. However, I am not sure if libgcrypt is part of the
GSASL
package or it came from elsewhere.

In any case, assuming a version of libgcrypt that supplies what
libssh2 needs is found,  libssh2 and libgcrypt can easily be linked
together.
Is that correct ? Using OpenSSL is not an option because it is
too large for an embedded environment.

You seem to suggest that compiling libssh2 requires modern automake
capabilities. Using a newer version of the GNU ELF Toolchain may
solve that problem for me--cross compilers etc. But, migrating to a newer
UC Linux version is not an option. Would this be a barrier to using libssh2
?
(i.e. I am sure the GNU toolchain I am using does not have modern
automake capabilities.)
Note that the UC Linux  Makefile scheme, and where and how libraries
are linked is quite different than in standard Linux. In addition there
are differences in how forking and exits work despite the fact
the kernel API is the same.

Most of the "porting" I mentioned consists of creating Makefiles that fit
within the UC Linux scheme which is not a huge effort but certainly not
trivial.
Knowing libssh2 had been ported to the UC Linux environment or
that is known to be easy to port it would make it much easier to
assess the risk and time involved in using libssh2.

Finally, do you have a size estimate for libssh2, assuming
it is configured for SFTP support  in my target environment ?

Best Regards,

Paul R.

Peter Stuge wrote:

> Hi Paul,
>
> Paul Romero wrote:
> > libssh2
> ..
> > Has it previously been ported to the UC Linux OS ?
>
> No porting is required. You may know that uClinux provides the exact
> same API as the regular Linux kernel.
>
> > Note that UC Linux is a diskless embedded system OS,
>
> Um, no, uClinux is a kernel variant..
>
> > and typically runs on processors without an MMU. Also, the .o file
> > format is ELF 32-bit MSB relocatable 68020, not stripped.
>
> That will obviously depend on which binary file formats you enable in
> the uClinux configuration, and which architecture you are running on.
>
> > My target system is M5249C3 dev. board with UC Linux version 2.4.27
> > and version 2.4.X or the kernel.
>
> Maybe this is what you got delivered to you but I highly doubt that
> this would be the only configuration that you could use with that
> board. I would suggest that you create a fresh set of binaries for
> your target, from the latest versions of what makes up a typical
> embedded Linux system.
>
> > It must be compiled with version 2.95.3 of the GNU ELF Toolchain
>
> I also doubt this very strongly. The 2.4 codebase might indeed have
> some requirements on compiler version, but I don't think that 2.95.3
> is the only thing you can use. Note also that 2.95.3 is the version
> of GCC only. "Toolchain" is a term commonly used to describe C
> compiler (GCC) along with linker and other binary utilities (GNU
> binutils). binutils has it's own versioning scheme.
>
> > which does not have modern automake capabilities.
>
> Again I doubt this. You could most likely use the very latest
> autotools also with the older toolchain that you got.
>
> > I use the SASL library
> ..
> > I wonder if the libssh2 SH-2 library duplicates a significant part
> > of functionality.
>
> No. libssh2 implements SSH, not SASL. libssh2 specifically does not
> implement cryptography, for that it uses libgcrypt or OpenSSL. I
> don't think the SASL library implements cryptography either.
>
> > The size of the current SASL authentication/encryption library I am
> > using is about 605.4 K,  and it provides GNU TLS functionality.
>
> If there's a libgcrypt API then libssh2 can use it.
>
> > The other functionality it provides is as follows: DES, MD5, ARC4,
> > DSA, BLOWFISH, TWOFISH, CAST5, MD2, MD4, RSA, SHA1, SHA265, SHA512,
> > RIJNDAEL, SERPENT, TIGER, X.509, ANS1, HMAC-MD5, DIGEST-MD5. The
> > largest components are DEs, RSA and ASN1 whose sizes are about 18.3,
> > 9.1, and 67 K respectively.
>
> The minimum you need for libssh2 is AES, RSA, DSA and SHA1.
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 01:05:30 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o61N5RgM021650;
	Fri, 2 Jul 2010 01:05:28 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o61N5NPi021574
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 01:05:24 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o61N5HQK035776
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 16:05:17 -0700 (PDT)
Message-ID: <4C2D1F65.B7A40767@rcom-software.com>
Date: Thu, 01 Jul 2010 16:06:13 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ? + DETAIL
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 01:05:30 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 01:05:25 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Peter:

I forgot to mention that the version of libgnutls that
came with GSASL provides Diffie-Hellman.

Best Regards,

Paul R.

************  PREVIOUS MESSAGE **********

Hi Peter:

First, thank you for the quick and detailed reply and be assured
the difference between SSH and SASL is clear to me. Also,
I must emphasize that my interest is in the SSH-2 component
subset required to support SFTP rather than SSH.

I think the SASL version of  libgcrypt meets the minimum libssh2
requirements,
and that AES and RIJNDAEL are the same. Also, I assume that
libssh2 can use DES and 3DES interchangeably. It appears most
SFTP  implementations also use the following: Diffie Hellman-SHA1,
Blowfish, Twofish,  HMAC-SHA1 and HMAC-MD5. Do you
think that is correct ?

The reason I mentioned SASL is the version GSASL I am using came with a
version of  libgcrypt. However, I am not sure if libgcrypt is part of
the
GSASL
package or it came from elsewhere.

In any case, assuming a version of libgcrypt that supplies what
libssh2 needs is found,  libssh2 and libgcrypt can easily be linked
together.
Is that correct ? Using OpenSSL is not an option because it is
too large for an embedded environment.

You seem to suggest that compiling libssh2 requires modern automake
capabilities. Using a newer version of the GNU ELF Toolchain may
solve that problem for me--cross compilers etc. But, migrating to a
newer
UC Linux version is not an option. Would this be a barrier to using
libssh2
?
(i.e. I am sure the GNU toolchain I am using does not have modern
automake capabilities.)
Note that the UC Linux  Makefile scheme, and where and how libraries
are linked is quite different than in standard Linux. In addition there
are differences in how forking and exits work despite the fact
the kernel API is the same.

Most of the "porting" I mentioned consists of creating Makefiles that
fit
within the UC Linux scheme which is not a huge effort but certainly not
trivial.
Knowing libssh2 had been ported to the UC Linux environment or
that is known to be easy to port it would make it much easier to
assess the risk and time involved in using libssh2.

Finally, do you have a size estimate for libssh2, assuming
it is configured for SFTP support  in my target environment ?

Best Regards,

Paul R.

Peter Stuge wrote:

> Hi Paul,
>
> Paul Romero wrote:
> > libssh2
> ..
> > Has it previously been ported to the UC Linux OS ?
>
> No porting is required. You may know that uClinux provides the exact
> same API as the regular Linux kernel.
>
> > Note that UC Linux is a diskless embedded system OS,
>
> Um, no, uClinux is a kernel variant..
>
> > and typically runs on processors without an MMU. Also, the .o file
> > format is ELF 32-bit MSB relocatable 68020, not stripped.
>
> That will obviously depend on which binary file formats you enable in
> the uClinux configuration, and which architecture you are running on.
>
> > My target system is M5249C3 dev. board with UC Linux version 2.4.27
> > and version 2.4.X or the kernel.
>
> Maybe this is what you got delivered to you but I highly doubt that
> this would be the only configuration that you could use with that
> board. I would suggest that you create a fresh set of binaries for
> your target, from the latest versions of what makes up a typical
> embedded Linux system.
>
> > It must be compiled with version 2.95.3 of the GNU ELF Toolchain
>
> I also doubt this very strongly. The 2.4 codebase might indeed have
> some requirements on compiler version, but I don't think that 2.95.3
> is the only thing you can use. Note also that 2.95.3 is the version
> of GCC only. "Toolchain" is a term commonly used to describe C
> compiler (GCC) along with linker and other binary utilities (GNU
> binutils). binutils has it's own versioning scheme.
>
> > which does not have modern automake capabilities.
>
> Again I doubt this. You could most likely use the very latest
> autotools also with the older toolchain that you got.
>
> > I use the SASL library
> ..
> > I wonder if the libssh2 SH-2 library duplicates a significant part
> > of functionality.
>
> No. libssh2 implements SSH, not SASL. libssh2 specifically does not
> implement cryptography, for that it uses libgcrypt or OpenSSL. I
> don't think the SASL library implements cryptography either.
>
> > The size of the current SASL authentication/encryption library I am
> > using is about 605.4 K,  and it provides GNU TLS functionality.
>
> If there's a libgcrypt API then libssh2 can use it.
>
> > The other functionality it provides is as follows: DES, MD5, ARC4,
> > DSA, BLOWFISH, TWOFISH, CAST5, MD2, MD4, RSA, SHA1, SHA265, SHA512,
> > RIJNDAEL, SERPENT, TIGER, X.509, ANS1, HMAC-MD5, DIGEST-MD5. The
> > largest components are DEs, RSA and ASN1 whose sizes are about 18.3,
> > 9.1, and 67 K respectively.
>
> The minimum you need for libssh2 is AES, RSA, DSA and SHA1.
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 08:44:39 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o626iJbs006736;
	Fri, 2 Jul 2010 08:44:35 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o626iGVI006730
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 08:44:18 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o626iCJS048360
	for <libssh2-devel@cool.haxx.se>; Thu, 1 Jul 2010 23:44:13 -0700 (PDT)
Message-ID: <4C2D8AF5.22DA6214@rcom-software.com>
Date: Thu, 01 Jul 2010 23:45:09 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ? + DETAIL +MORE
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 08:44:38 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 08:44:18 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Peter:

Perhaps, it would be useful to you if I clarify
the host and target environments.

The host is an i686 machine with the Lenny release
of Debian Linux.

The target is a M5249 Coldfire machine without an
MMU or disk.

Compilation is done on the host with GNU ELF Tool chain.
It is used to compile and link all of UC Linux and
applications to be run on the target, and has UC Linux
in source code form. 

Ultimately the host creates an S.19 file containing
UC Linux an all the applications, and the S.19 file
is downloaded to the target. The target contains no
compilers of development infrastructure.

Best Regards,

Paul R.
 

********** PREVIOUS MESSAGE *****

Hi Peter:

I forgot to mention that the version of libgnutls that
came with GSASL provides Diffie-Hellman.

Best Regards,

Paul R.

************  PREVIOUS MESSAGE **********

Hi Peter:

First, thank you for the quick and detailed reply and be assured
the difference between SSH and SASL is clear to me. Also,
I must emphasize that my interest is in the SSH-2 component
subset required to support SFTP rather than SSH.

I think the SASL version of  libgcrypt meets the minimum libssh2
requirements,
and that AES and RIJNDAEL are the same. Also, I assume that
libssh2 can use DES and 3DES interchangeably. It appears most
SFTP  implementations also use the following: Diffie Hellman-SHA1,
Blowfish, Twofish,  HMAC-SHA1 and HMAC-MD5. Do you
think that is correct ?

The reason I mentioned SASL is the version GSASL I am using came with a
version of  libgcrypt. However, I am not sure if libgcrypt is part of
the
GSASL
package or it came from elsewhere.

In any case, assuming a version of libgcrypt that supplies what
libssh2 needs is found,  libssh2 and libgcrypt can easily be linked
together.
Is that correct ? Using OpenSSL is not an option because it is
too large for an embedded environment.

You seem to suggest that compiling libssh2 requires modern automake
capabilities. Using a newer version of the GNU ELF Toolchain may
solve that problem for me--cross compilers etc. But, migrating to a
newer
UC Linux version is not an option. Would this be a barrier to using
libssh2
?
(i.e. I am sure the GNU toolchain I am using does not have modern
automake capabilities.)
Note that the UC Linux  Makefile scheme, and where and how libraries
are linked is quite different than in standard Linux. In addition there
are differences in how forking and exits work despite the fact
the kernel API is the same.

Most of the "porting" I mentioned consists of creating Makefiles that
fit
within the UC Linux scheme which is not a huge effort but certainly not
trivial.
Knowing libssh2 had been ported to the UC Linux environment or
that is known to be easy to port it would make it much easier to
assess the risk and time involved in using libssh2.

Finally, do you have a size estimate for libssh2, assuming
it is configured for SFTP support  in my target environment ?

Best Regards,

Paul R.

Peter Stuge wrote:

> Hi Paul,
>
> Paul Romero wrote:
> > libssh2
> ..
> > Has it previously been ported to the UC Linux OS ?
>
> No porting is required. You may know that uClinux provides the exact
> same API as the regular Linux kernel.
>
> > Note that UC Linux is a diskless embedded system OS,
>
> Um, no, uClinux is a kernel variant..
>
> > and typically runs on processors without an MMU. Also, the .o file
> > format is ELF 32-bit MSB relocatable 68020, not stripped.
>
> That will obviously depend on which binary file formats you enable in
> the uClinux configuration, and which architecture you are running on.
>
> > My target system is M5249C3 dev. board with UC Linux version 2.4.27
> > and version 2.4.X or the kernel.
>
> Maybe this is what you got delivered to you but I highly doubt that
> this would be the only configuration that you could use with that
> board. I would suggest that you create a fresh set of binaries for
> your target, from the latest versions of what makes up a typical
> embedded Linux system.
>
> > It must be compiled with version 2.95.3 of the GNU ELF Toolchain
>
> I also doubt this very strongly. The 2.4 codebase might indeed have
> some requirements on compiler version, but I don't think that 2.95.3
> is the only thing you can use. Note also that 2.95.3 is the version
> of GCC only. "Toolchain" is a term commonly used to describe C
> compiler (GCC) along with linker and other binary utilities (GNU
> binutils). binutils has it's own versioning scheme.
>
> > which does not have modern automake capabilities.
>
> Again I doubt this. You could most likely use the very latest
> autotools also with the older toolchain that you got.
>
> > I use the SASL library
> ..
> > I wonder if the libssh2 SH-2 library duplicates a significant part
> > of functionality.
>
> No. libssh2 implements SSH, not SASL. libssh2 specifically does not
> implement cryptography, for that it uses libgcrypt or OpenSSL. I
> don't think the SASL library implements cryptography either.
>
> > The size of the current SASL authentication/encryption library I am
> > using is about 605.4 K,  and it provides GNU TLS functionality.
>
> If there's a libgcrypt API then libssh2 can use it.
>
> > The other functionality it provides is as follows: DES, MD5, ARC4,
> > DSA, BLOWFISH, TWOFISH, CAST5, MD2, MD4, RSA, SHA1, SHA265, SHA512,
> > RIJNDAEL, SERPENT, TIGER, X.509, ANS1, HMAC-MD5, DIGEST-MD5. The
> > largest components are DEs, RSA and ASN1 whose sizes are about 18.3,
> > 9.1, and 67 K respectively.
>
> The minimum you need for libssh2 is AES, RSA, DSA and SHA1.
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 09:35:54 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o627Zgst004697;
	Fri, 2 Jul 2010 09:35:52 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o627ZfHP004693
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 09:35:41 +0200
Received: (qmail 17281 invoked by uid 501); 2 Jul 2010 07:35:41 -0000
Message-ID: <20100702073540.17280.qmail@stuge.se>
Date: Fri, 2 Jul 2010 09:35:40 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2: Ported to UC Linux ?
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
	<4C2D1E34.D4BEAC69@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C2D1E34.D4BEAC69@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 09:35:54 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 09:35:41 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Paul,

Paul Romero wrote:
> First, thank you for the quick and detailed reply and be assured
> the difference between SSH and SASL is clear to me.

Great!


> Also, I must emphasize that my interest is in the SSH-2 component
> subset required to support SFTP rather than SSH.

Ah, sorry for being a bit sloppy with terminology. These days SSH
version 1 is not in wide use anymore, so I tend to put SSH = SSH
version 2 always. libssh2 only supports SSH version 2.


> I think the SASL version of  libgcrypt meets the minimum libssh2
> requirements, and that AES and RIJNDAEL are the same.

That's correct.


> Also, I assume that libssh2 can use DES and 3DES interchangeably.

They are distinct algorithms, and SSH requires 3DES. Several
algorithms are OPTIONAL in the standard, including AES/RIJNDAEL,
although it is listed as RECOMMENDED and aes128-ctr, aes192-ctr and
aes256-ctr is likely to become REQUIRED in the future so I always
strongly recommend that they be included.


> It appears most SFTP  implementations also use the following:
> Diffie Hellman-SHA1, Blowfish, Twofish,  HMAC-SHA1 and HMAC-MD5.
> Do you think that is correct ?

DH-SHA1 and HMAC-SHA1 are also REQUIRED, the others are optional. SSH
handles negotiation at connect time to the prefered algorithms
supported by both client and server.


> The reason I mentioned SASL is the version GSASL I am using came with
> a version of  libgcrypt. However, I am not sure if libgcrypt is part
> of the GSASL package or it came from elsewhere.

libgcrypt is always it's own package. Good news.


> In any case, assuming a version of libgcrypt that supplies what
> libssh2 needs is found,  libssh2 and libgcrypt can easily be linked
> together. Is that correct ?

Yes, you select if you want to use libgcrypt or OpenSSL when you run
configure for libssh2.


> You seem to suggest that compiling libssh2 requires modern automake
> capabilities.

I don't think it does actually, and even if it did, I wanted to point
out that it's not a problem, since autotools are not a part of the
toolchain and could thus be updated to the very latest version
without problems, should that be required.


> Using a newer version of the GNU ELF Toolchain may solve that
> problem for me--cross compilers etc. But, migrating to a newer
> UC Linux version is not an option. Would this be a barrier to using
> libssh2 ?

No. As long as you have a working GNU toolchain for your target and
a sane /bin/sh then you will be fine.


> (i.e. I am sure the GNU toolchain I am using does not have modern
> automake capabilities.)

Again, please don't connect those two. autotools (slang for
autoconf+automake) is independent, only ever required natively on the
host machine, and actually you don't need it unless you want to try
to build libssh2 with your own source code modifications.


> Note that the UC Linux  Makefile scheme, and where and how
> libraries are linked is quite different than in standard Linux.

The binaries and libraries, which is what matters for libssh2, are
quite likely built using totally standard cross-compiler techniques,
since you have a GNU toolchain. That's really the only point that
matters.


> In addition there are differences in how forking and exits work
> despite the fact the kernel API is the same.

True! However libssh2 never forks, so no issue.


> Most of the "porting" I mentioned consists of creating Makefiles
> that fit within the UC Linux scheme which is not a huge effort but
> certainly not trivial.

I don't know what these special Makefiles are that you mention, and I
believe that you can simply cross-compile libssh2 using your
toolchain for this target, in the standard way.

Make sure the toolchain programs are included in your PATH, and use
the --host=tuple parameter when configuring libssh2. Substitute tuple
with the prefix for your toolchain, so if your toolchain provides
m68k-elf-gcc, then run configure --host=m68k-elf and include the
library paths needed.

I recently described how I successfuly cross-compiled libssh2 for
Windows and you can use the same procedure if you substitute my
i686-mingw32 for m68k-elf or the appropriate prefix, and of course
the paths to where your libraries and headers are.

http://www.libssh2.org/mail/libssh2-devel-archive-2010-06/0155.shtml


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 10:13:36 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o628DM0d029412;
	Fri, 2 Jul 2010 10:13:33 +0200
Received: from earth.stuge.se (earth.stuge.se [213.88.146.15])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o628DK1f029393
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 10:13:21 +0200
Received: (qmail 17583 invoked from network); 2 Jul 2010 08:13:19 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
	by localhost with SMTP; 2 Jul 2010 08:13:19 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.12b1
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.12b1, by Edgewall Software
X-Trac-Project: libssh2
Date: Fri, 02 Jul 2010 08:13:19 -0000
X-URL: http://trac.libssh2.org/
Subject: Re: [libssh2] #182: Various memory leaks
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/182#comment:15
Message-ID: <067.1feb5c1c2a05040e788bb1d09af78780@libssh2.stuge.se>
References: <052.82d75923d2eeae36ea3bf5c7c6e7729d@libssh2.stuge.se>
X-Trac-Ticket-ID: 182
In-Reply-To: <052.82d75923d2eeae36ea3bf5c7c6e7729d@libssh2.stuge.se>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 10:13:36 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 10:13:21 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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="utf-8"
Content-Transfer-Encoding: base64
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

IzE4MjogVmFyaW91cyBtZW1vcnkgbGVha3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICBSZXBvcnRl
cjogIGpvaG5A4oCmICAgICAgICAgICAgfCAgICAgICBPd25lcjogIGJhZ2RlciAgDQogICAgICBU
eXBlOiAgZGVmZWN0ICAgICAgICAgICAgfCAgICAgIFN0YXR1czogIGFzc2lnbmVkDQogIFByaW9y
aXR5OiAgbm9ybWFsICAgICAgICAgICAgfCAgIE1pbGVzdG9uZTogIDEuMi42ICAgDQogQ29tcG9u
ZW50OiAgQVBJICAgICAgICAgICAgICAgfCAgICAgVmVyc2lvbjogIDEuMi42ICAgDQpSZXNvbHV0
aW9uOiAgICAgICAgICAgICAgICAgICAgfCAgICBLZXl3b3JkczogICAgICAgICAgDQogICAgQmxv
Y2tzOiAgICAgICAgICAgICAgICAgICAgfCAgIEJsb2NrZWQgQnk6ICAgICAgICAgIA0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQoKQ29tbWVudCAoYnkgam9obkDigKYpOgoKIEkgd2lsbCBkb3dubG9hZCBh
bmQgdGVzdCB0aGUgY29kZSwgYWZ0ZXIgeW91IGhhdmUgbWFkZSB0aGUgY2hhbmdlcy4NCiBJIGNh
biBub3Qgc2VlIGFueSBtZW1vcnkgbGVha3Mgd2l0aCB0aG9zZSBjaGFuZ2VzIGluIHBsYWNlLg0K
IEhvd2V2ZXIgSSBhbSBvbmx5IHRlc3RpbmcgYSBzaW1wbGUgc3NoIGNvbm5lY3Rpb24sIHNvIGl0
J3MgcG9zc2libGUgdGhlcmUNCiBtYXkgYmUgb3RoZXJzIGluIHRoZSBzY3Avc2Z0cCBwYXJ0cyBv
ZiB0aGUgY29kZSAod2hpY2ggSSBoYXZlbid0IGxvb2tlZA0KIGF0KS4NCiBUaGFua3MgZm9yIHlv
dXIgdW5kZXJzdGFuZGluZyB3aXRoIG15IHNvbWV0aW1lcyBsZW5ndGh5IHJlc3BvbnNlcy4NCg0K
IEpvaG4KCi0tIApUaWNrZXQgVVJMOiA8aHR0cDovL3RyYWMubGlic3NoMi5vcmcvdGlja2V0LzE4
MiNjb21tZW50OjE1PgpsaWJzc2gyIDxodHRwOi8vdHJhYy5saWJzc2gyLm9yZy8+CkMgbGlicmFy
eSBmb3Igd3JpdGluZyBwb3J0YWJsZSBTU0gyIGNsaWVudHMKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KbGlic3NoMi1kZXZlbCBodHRwOi8vY29vbC5oYXh4
LnNlL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9saWJzc2gyLWRldmVsCg==

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 12:50:12 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o62Anojk020492;
	Fri, 2 Jul 2010 12:50:09 +0200
Received: from mail-qw0-f54.google.com (mail-qw0-f54.google.com
	[209.85.216.54])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o62Anl2n020451
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 12:49:48 +0200
Received: by qwg5 with SMTP id 5so1735904qwg.41
	for <libssh2-devel@cool.haxx.se>; Fri, 02 Jul 2010 03:49:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:received:received:in-reply-to
	:references:date:message-id:subject:from:to:content-type;
	bh=o1f4RewPguASLTymJnYqjjCKZVdTiTs120WeozkJ6qA=;
	b=dXhcsKtovo9yl0kiykGmcrY72DTy5+rU40gyfQAQnxnfSS3zpBx1CFKQro4lPlSnuj
	qf7jQQJ39Afl3jJ6R+yW0GxPf4S+pTWflzrDN5kVUetJ33L3MmdGruiLw/r08HnxxpYH
	k0ZuYiZFP8Nnc8JIkW44CdwYDzDnB25kcR0ck=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:content-type;
	b=gU2oJ866PseR+yh94IQhBP1DrS+xVNM3hoagxtkBnBticVct8TaGv2YU6DnuMt5qiu
	fGTzaf5kR/tybFmqj4oo9RshNfWoqjsT2nFI2dSlw/H+hTMHb5wPGuNgYdyT0Fh6bJ25
	QKkgQTUS3ApVGdct2KZF9a7Iz6TXpuI7xrPc8=
MIME-Version: 1.0
Received: by 10.224.2.211 with SMTP id 19mr273769qak.104.1278067780285; Fri, 
	02 Jul 2010 03:49:40 -0700 (PDT)
Received: by 10.229.236.72 with HTTP; Fri, 2 Jul 2010 03:49:40 -0700 (PDT)
In-Reply-To: <20100628090009.26329.qmail@stuge.se>
References: <AANLkTikj2eV4Oc-cygLQolXCcKXrlHX922FFDURrjh7n@mail.gmail.com>
	<20100625063334.5915.qmail@stuge.se>
	<AANLkTinuOL8LRbRl3KpZ16Z28-xXaouIg3cAzPhW_fGf@mail.gmail.com>
	<20100625131802.22927.qmail@stuge.se>
	<AANLkTinCVmgtkH1K8ypvunmy1FoSVJE3W8bnBmYf5KJE@mail.gmail.com>
	<AANLkTikh3qu0DU9kimcI1kUOOr-pUM4dhca1MCPSjzkp@mail.gmail.com>
	<20100628090009.26329.qmail@stuge.se>
Date: Fri, 2 Jul 2010 16:19:40 +0530
Message-ID: <AANLkTilV94nq6PWp7jpHii1KxdnHYXyeMyi2gpnMsZOw@mail.gmail.com>
Subject: Re: libssh2_session_startup is failing with "Failed getting banner"
From: Ishwar Ande <ishwar.ande@gmail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Content-Type: multipart/mixed; boundary=0015175cb83c0af5c3048a655842
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 12:50:12 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 12:49:48 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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>
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

--0015175cb83c0af5c3048a655842
Content-Type: multipart/alternative; boundary=0015175cb83c0af5ab048a655840

--0015175cb83c0af5ab048a655840
Content-Type: text/plain; charset=ISO-8859-1

Please find the attached config.log, when it was not working. See if it
helps.

Regards,
Ishwar

On Mon, Jun 28, 2010 at 2:30 PM, Peter Stuge <peter@stuge.se> wrote:

> Hi,
>
> Ishwar Ande wrote:
> > After building linssh2 with the flag "-D_REENTRANT" the problem is
> > resolved.
> >
> > Refer to this link for more details: http://libssh2.stuge.se/ticket/99
>
> Thanks for the pointer. Can you provide config.log from when you run
> ./configure on your host when it is not working correctly?
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>



-- 
--
Regards,
Ishwar.

--0015175cb83c0af5ab048a655840
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Please find the attached config.log, when it was not working. See if it hel=
ps.<div><br></div><div>Regards,</div><div>Ishwar<br><br><div class=3D"gmail=
_quote">On Mon, Jun 28, 2010 at 2:30 PM, Peter Stuge <span dir=3D"ltr">&lt;=
<a href=3D"mailto:peter@stuge.se">peter@stuge.se</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex;">Hi,<br>
<div class=3D"im"><br>
Ishwar Ande wrote:<br>
&gt; After building linssh2 with the flag &quot;-D_REENTRANT&quot; the prob=
lem is<br>
&gt; resolved.<br>
&gt;<br>
&gt; Refer to this link for more details: <a href=3D"http://libssh2.stuge.s=
e/ticket/99" target=3D"_blank">http://libssh2.stuge.se/ticket/99</a><br>
<br>
</div>Thanks for the pointer. Can you provide config.log from when you run<=
br>
./configure on your host when it is not working correctly?<br>
<div><div></div><div class=3D"h5"><br>
<br>
//Peter<br>
_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
</div></div></blockquote></div><br><br clear=3D"all"><br>-- <br>--<br>Regar=
ds,<br>Ishwar.<br><br>
</div>

--0015175cb83c0af5ab048a655840--
--0015175cb83c0af5c3048a655842
Content-Type: application/octet-stream; name="config.log"
Content-Disposition: attachment; filename="config.log"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gb4wkefp0

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGxpYnNzaDIgY29uZmlndXJlIC0sIHdoaWNo
IHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjUuICBJbnZvY2F0aW9uIGNvbW1hbmQg
bGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSAtLWVuYWJsZS1kZWJ1ZyAtLXByZWZpeD0vb3B0L3Nz
aDItMS4yLjYtZGVidWcKCiMjIC0tLS0tLS0tLSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMgLS0tLS0t
LS0tICMjCgpob3N0bmFtZSA9IGV0cjY1MTFsMXN1bjEwMQp1bmFtZSAtbSA9IHN1bjR1CnVuYW1l
IC1yID0gNS4xMAp1bmFtZSAtcyA9IFN1bk9TCnVuYW1lIC12ID0gR2VuZXJpY18xMjAwMTEtMTQK
Ci91c3IvYmluL3VuYW1lIC1wID0gc3BhcmMKL2Jpbi91bmFtZSAtWCAgICAgPSBTeXN0ZW0gPSBT
dW5PUwpOb2RlID0gZXRyNjUxMWwxc3VuMTAxClJlbGVhc2UgPSA1LjEwCktlcm5lbElEID0gR2Vu
ZXJpY18xMjAwMTEtMTQKTWFjaGluZSA9IHN1bjR1CkJ1c1R5cGUgPSA8dW5rbm93bj4KU2VyaWFs
ID0gPHVua25vd24+ClVzZXJzID0gPHVua25vd24+Ck9FTSMgPSAwCk9yaWdpbiMgPSAxCk51bUNQ
VSA9IDQKCi9iaW4vYXJjaCAgICAgICAgICAgICAgPSBzdW40Ci91c3IvYmluL2FyY2ggLWsgICAg
ICAgPSBzdW40dQovdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgovdXNyL2Jpbi9ob3N0
aW5mbyAgICAgID0gdW5rbm93bgovYmluL21hY2hpbmUgICAgICAgICAgID0gdW5rbm93bgovdXNy
L2Jpbi9vc2xldmVsICAgICAgID0gdW5rbm93bgovYmluL3VuaXZlcnNlICAgICAgICAgID0gdW5r
bm93bgoKUEFUSDogL3Vzci9sb2NhbC9iaW4KUEFUSDogL29wdC9TVU5Xc3Byby9iaW4KUEFUSDog
L3Vzci9zZncvYmluClBBVEg6IC91c3IvdWNiClBBVEg6IC91c3IvY2NzL2JpbgpQQVRIOiAvdXNy
L2xvY2FsL2JpbgpQQVRIOiAvb3B0L1NVTldzcHJvL2JpbgpQQVRIOiAvdXNyL3Nmdy9iaW4KUEFU
SDogL3Vzci91Y2IKUEFUSDogL3Vzci9jY3MvYmluClBBVEg6IC91c3Ivc2JpbgpQQVRIOiAvdXNy
L2JpbgoKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMuICMjCiMjIC0tLS0tLS0tLS0t
ICMjCgpjb25maWd1cmU6MjQxNzogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5l
ci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMKY29uZmlndXJlOjI0MjY6IHJlc3VsdDog
bm8KY29uZmlndXJlOjI0NDQ6IGNoZWNraW5nIGZvciBzZWQKY29uZmlndXJlOjI0NjM6IGZvdW5k
IC91c3IvdWNiL3NlZApjb25maWd1cmU6MjQ3NjogcmVzdWx0OiAvdXNyL3VjYi9zZWQKY29uZmln
dXJlOjI1MzA6IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJl
OjI1OTg6IHJlc3VsdDogLi9pbnN0YWxsLXNoIC1jCmNvbmZpZ3VyZToyNjA5OiBjaGVja2luZyB3
aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUKY29uZmlndXJlOjI2NDY6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZToyNzA4OiBjaGVja2luZyBmb3IgZ2F3awpjb25maWd1cmU6MjczODogcmVz
dWx0OiBubwpjb25maWd1cmU6MjcwODogY2hlY2tpbmcgZm9yIG1hd2sKY29uZmlndXJlOjI3Mzg6
IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MDg6IGNoZWNraW5nIGZvciBuYXdrCmNvbmZpZ3VyZToy
NzI0OiBmb3VuZCAvdXNyL2Jpbi9uYXdrCmNvbmZpZ3VyZToyNzM1OiByZXN1bHQ6IG5hd2sKY29u
ZmlndXJlOjI3NDY6IGNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkKY29uZmlndXJl
OjI3Njg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyOTQ2OiBjaGVja2luZyBsaWJzc2gyIHZlcnNp
b24KY29uZmlndXJlOjI5NDg6IHJlc3VsdDogMS4yLjYKY29uZmlndXJlOjI5NTc6IGNoZWNraW5n
IGJ1aWxkIHN5c3RlbSB0eXBlCmNvbmZpZ3VyZToyOTcxOiByZXN1bHQ6IHNwYXJjLXN1bi1zb2xh
cmlzMi4xMApjb25maWd1cmU6Mjk5MTogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1
cmU6MzAwNDogcmVzdWx0OiBzcGFyYy1zdW4tc29sYXJpczIuMTAKY29uZmlndXJlOjMwMzE6IGF1
dG9idWlsZCBwcm9qZWN0Li4uIGxpYnNzaDIKY29uZmlndXJlOjMwMzc6IGF1dG9idWlsZCByZXZp
c2lvbi4uLiAxLjIuNgpjb25maWd1cmU6MzA0MjogYXV0b2J1aWxkIGhvc3RuYW1lLi4uIGV0cjY1
MTFsMXN1bjEwMQpjb25maWd1cmU6MzA1MzogYXV0b2J1aWxkIHRpbWVzdGFtcC4uLiAyMDEwMDYy
NS0xMTIxNDMKY29uZmlndXJlOjMwOTQ6IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVz
ZWQgYnkgbWFrZQpjb25maWd1cmU6MzEyMjogcmVzdWx0OiBHTlUKY29uZmlndXJlOjMxOTU6IGNo
ZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjMyMjU6IHJlc3VsdDogbm8KY29uZmlndXJlOjMyODg6
IGNoZWNraW5nIGZvciBjYwpjb25maWd1cmU6MzMwOTogZm91bmQgL29wdC9TVU5Xc3Byby9iaW4v
Y2MKY29uZmlndXJlOjMzMzI6IHJlc3VsdDogY2MKY29uZmlndXJlOjM0NTE6IGNoZWNraW5nIGZv
ciBDIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjM0NjA6IGNjIC0tdmVyc2lvbiA+JjUKY2M6
IFdhcm5pbmc6IG9wdGlvbiAtLSBwYXNzZWQgdG8gbGQKdXNhZ2U6IGNjIFsgb3B0aW9uc10gZmls
ZXMuICBVc2UgJ2NjIC1mbGFncycgZm9yIGRldGFpbHMKY29uZmlndXJlOjM0NzE6ICQ/ID0gMQpj
b25maWd1cmU6MzQ2MDogY2MgLXYgPiY1CnVzYWdlOiBjYyBbIG9wdGlvbnNdIGZpbGVzLiAgVXNl
ICdjYyAtZmxhZ3MnIGZvciBkZXRhaWxzCmNvbmZpZ3VyZTozNDcxOiAkPyA9IDEKY29uZmlndXJl
OjM0NjA6IGNjIC1WID4mNQpjYzogU3VuIEMgNS44IDIwMDUvMTAvMTMKdXNhZ2U6IGNjIFsgb3B0
aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1mbGFncycgZm9yIGRldGFpbHMKY29uZmlndXJlOjM0NzE6
ICQ/ID0gMQpjb25maWd1cmU6MzQ2MDogY2MgLXF2ZXJzaW9uID4mNQpjYzogaWxsZWdhbCBvcHRp
b24gLXF2ZXJzaW9uCmNvbmZpZ3VyZTozNDcxOiAkPyA9IDEKY29uZmlndXJlOjM0OTE6IGNoZWNr
aW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKY29uZmlndXJlOjM1MTM6IGNjICAgIGNv
bmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MzUxNzogJD8gPSAwCmNvbmZpZ3VyZTozNTY2OiByZXN1
bHQ6IHllcwpjb25maWd1cmU6MzU2OTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBv
dXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTozNTcxOiByZXN1bHQ6IGEub3V0CmNvbmZpZ3VyZToz
NTc3OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzCmNvbmZpZ3VyZTozNTg0OiBj
YyAtbyBjb25mdGVzdCAgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjM1ODg6ICQ/ID0gMApj
b25maWd1cmU6MzYxMDogcmVzdWx0OiAKY29uZmlndXJlOjM2MzI6IGNoZWNraW5nIHdoZXRoZXIg
d2UgYXJlIGNyb3NzIGNvbXBpbGluZwpjb25maWd1cmU6MzY0MDogY2MgLW8gY29uZnRlc3QgICAg
Y29uZnRlc3QuYyAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAxOTogd2FybmluZzogc3RhdGVtZW50
IG5vdCByZWFjaGVkCmNvbmZpZ3VyZTozNjQ0OiAkPyA9IDAKY29uZmlndXJlOjM2NTE6IC4vY29u
ZnRlc3QKY29uZmlndXJlOjM2NTU6ICQ/ID0gMApjb25maWd1cmU6MzY3MDogcmVzdWx0OiBubwpj
b25maWd1cmU6MzY3NTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmln
dXJlOjM2OTc6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjM3MDE6ICQ/ID0gMApj
b25maWd1cmU6MzcyMjogcmVzdWx0OiBvCmNvbmZpZ3VyZTozNzI2OiBjaGVja2luZyB3aGV0aGVy
IHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIKY29uZmlndXJlOjM3NDU6IGNjIC1jICAg
Y29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDE2OiB1bmRlZmluZWQgc3ltYm9sOiBj
aG9rZQoiY29uZnRlc3QuYyIsIGxpbmUgMTY6IHN5bnRheCBlcnJvciBiZWZvcmUgb3IgYXQ6IG1l
CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjM3NDU6ICQ/ID0gMgpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu
ZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNz
aDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO
RyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxA
Y29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0Ug
ImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAvKiBlbmQgY29uZmRlZnMuaC4g
ICovCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIF9fR05VQ19fCnwgICAgICAgIGNo
b2tlIG1lCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozNzU0
OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNzYzOiBjaGVja2luZyB3aGV0aGVyIGNjIGFjY2VwdHMg
LWcKY29uZmlndXJlOjM3ODM6IGNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Mzc4
MzogJD8gPSAwCmNvbmZpZ3VyZTozODI0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Mzg0MTogY2hl
Y2tpbmcgZm9yIGNjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6MzkwNTogY2Mg
IC1jIC1nICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgNTk6IHdhcm5pbmc6IHN0
YXRlbWVudCBub3QgcmVhY2hlZApjb25maWd1cmU6MzkwNTogJD8gPSAwCmNvbmZpZ3VyZTozOTE4
OiByZXN1bHQ6IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZTozOTQwOiBjaGVja2luZyBkZXBlbmRlbmN5
IHN0eWxlIG9mIGNjCmNvbmZpZ3VyZTo0MDMwOiByZXN1bHQ6IG5vbmUKY29uZmlndXJlOjQwNTM6
IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTo0MDg0OiBj
YyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NDA4NDogJD8gPSAwCmNvbmZpZ3VyZTo0MDk4OiBj
YyAtRSAgY29uZnRlc3QuYwoiY29uZnRlc3QuYyIsIGxpbmUgMTE6IGNhbm5vdCBmaW5kIGluY2x1
ZGUgZmlsZTogPGFjX25vbmV4aXN0ZW50Lmg+CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0
LmMKY29uZmlndXJlOjQwOTg6ICQ/ID0gMgpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK
fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2Rl
ZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g
Ii0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FH
RV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FH
RV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIx
LjIuNiIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50
Lmg+CmNvbmZpZ3VyZTo0MTIzOiByZXN1bHQ6IGNjIC1FCmNvbmZpZ3VyZTo0MTQzOiBjYyAtRSAg
Y29uZnRlc3QuYwpjb25maWd1cmU6NDE0MzogJD8gPSAwCmNvbmZpZ3VyZTo0MTU3OiBjYyAtRSAg
Y29uZnRlc3QuYwoiY29uZnRlc3QuYyIsIGxpbmUgMTE6IGNhbm5vdCBmaW5kIGluY2x1ZGUgZmls
ZTogPGFjX25vbmV4aXN0ZW50Lmg+CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29u
ZmlndXJlOjQxNTc6ICQ/ID0gMgpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj
b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQ
QUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwg
I2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS
RVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg
IiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIK
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNv
bmZpZ3VyZTo0MTg2OiBjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBh
bmQgLWUKY29uZmlndXJlOjQyNDQ6IHJlc3VsdDogL3Vzci9zZncvYmluL2dncmVwCmNvbmZpZ3Vy
ZTo0MjQ5OiBjaGVja2luZyBmb3IgZWdyZXAKY29uZmlndXJlOjQzMTE6IHJlc3VsdDogL3Vzci9z
ZncvYmluL2dncmVwIC1FCmNvbmZpZ3VyZTo0MzE2OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRl
ciBmaWxlcwpjb25maWd1cmU6NDMzNjogY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy
ZTo0MzM2OiAkPyA9IDAKY29uZmlndXJlOjQ0MDk6IGNjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRl
c3QuYyAgPiY1CmNvbmZpZ3VyZTo0NDA5OiAkPyA9IDAKY29uZmlndXJlOjQ0MDk6IC4vY29uZnRl
c3QKY29uZmlndXJlOjQ0MDk6ICQ/ID0gMApjb25maWd1cmU6NDQyMDogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1cmU6NDQzMzogY2Mg
LWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29uZmlndXJlOjQ0
MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDMzOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApj
b25maWd1cmU6NDQzMzogY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDMzOiAk
PyA9IDAKY29uZmlndXJlOjQ0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDMzOiBjaGVja2lu
ZyBmb3Igc3RkbGliLmgKY29uZmlndXJlOjQ0MzM6IGNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpj
b25maWd1cmU6NDQzMzogJD8gPSAwCmNvbmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NDQzMzogY2hlY2tpbmcgZm9yIHN0cmluZy5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAtZyAg
Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzM6ICQ/ID0gMApjb25maWd1cmU6NDQzMzogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZvciBtZW1vcnkuaApjb25maWd1cmU6
NDQzMzogY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29u
ZmlndXJlOjQ0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDMzOiBjaGVja2luZyBmb3Igc3Ry
aW5ncy5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl
OjQ0MzM6ICQ/ID0gMApjb25maWd1cmU6NDQzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6
IGNoZWNraW5nIGZvciBpbnR0eXBlcy5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAtZyAgY29uZnRl
c3QuYyA+JjUKY29uZmlndXJlOjQ0MzM6ICQ/ID0gMApjb25maWd1cmU6NDQzMzogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6NDQzMzog
Y2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29uZmlndXJl
OjQ0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDMzOiBjaGVja2luZyBmb3IgdW5pc3RkLmgK
Y29uZmlndXJlOjQ0MzM6IGNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQzMzog
JD8gPSAwCmNvbmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQ0NjogY2hlY2tp
bmcgZm9yIGxvbmcgbG9uZwpjb25maWd1cmU6NDQ0NjogY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZTo0NDQ2OiAkPyA9IDAKY29uZmlndXJlOjQ0NDY6IGNjIC1jIC1nICBjb25mdGVz
dC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgNTc6IHN5bnRheCBlcnJvciBiZWZvcmUgb3IgYXQ6
ICkKY2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6NDQ0NjogJD8gPSAy
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm
aW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGli
c3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS
SU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZl
bEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FH
RSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1REQ19IRUFE
RVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB
VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx
CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAj
ZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVm
aW5lIEhBVkVfVU5JU1REX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8
c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz
Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0
YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu
aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I
CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF
X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F
TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry
aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp
bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50
dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk
aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0
ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkKfCB7CnwgaWYgKHNpemVvZiAoKGxvbmcgbG9u
ZykpKQp8IAkgICAgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo0
NDQ2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQ1ODogY2hlY2tpbmcgaWYgX1JFRU5UUkFOVCBp
cyBhbHJlYWR5IGRlZmluZWQKY29uZmlndXJlOjQ0ODA6IGNjIC1jIC1nICBjb25mdGVzdC5jID4m
NQoiY29uZnRlc3QuYyIsIGxpbmUgMzI6IHVuZGVmaW5lZCBzeW1ib2w6IGZvcmNlCiJjb25mdGVz
dC5jIiwgbGluZSAzMjogc3ludGF4IGVycm9yIGJlZm9yZSBvciBhdDogY29tcGlsYXRpb24KY2M6
IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6NDQ4MDogJD8gPSAyCmNvbmZp
Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB
Q0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIK
fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJs
aWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29s
LmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGli
c3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK
fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl
ZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5l
IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB
VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgLyogZW5kIGNvbmZkZWZz
LmguICAqLwp8IAp8IAp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgI2lmZGVmIF9SRUVOVFJB
TlQKfCAgICAgICBpbnQgZHVtbXk9MTsKfCAjZWxzZQp8ICAgICAgIGZvcmNlIGNvbXBpbGF0aW9u
IGVycm9yCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CnwgCmNvbmZpZ3VyZTo0
NDg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0NDk2OiBjaGVja2luZyBpZiBfUkVFTlRSQU5UIGlz
IGFjdHVhbGx5IG5lZWRlZApjb25maWd1cmU6NDUxMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ1
MTg6IGNoZWNraW5nIGlmIF9SRUVOVFJBTlQgaXMgb253YXJkcyBkZWZpbmVkCmNvbmZpZ3VyZTo0
NTMyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDU0MjogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29u
dGFpbmluZyBzb2NrZXQKY29uZmlndXJlOjQ1NzM6IGNjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRl
c3QuYyAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzOTogd2FybmluZzogc3RhdGVtZW50IG5vdCBy
ZWFjaGVkClVuZGVmaW5lZAkJCWZpcnN0IHJlZmVyZW5jZWQKIHN5bWJvbCAgCQkJICAgIGluIGZp
bGUKc29ja2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZnRlc3QubwpsZDogZmF0
YWw6IFN5bWJvbCByZWZlcmVuY2luZyBlcnJvcnMuIE5vIG91dHB1dCB3cml0dGVuIHRvIGNvbmZ0
ZXN0CmNvbmZpZ3VyZTo0NTczOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNk
ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O
ICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tB
R0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tB
R0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAi
MS4yLjYiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf
SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm
aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI
QVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVO
VFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8IC8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p
ZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0
dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90
b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVy
biAiQyIKfCAjZW5kaWYKfCBjaGFyIHNvY2tldCAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJl
dHVybiBzb2NrZXQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo0NTczOiBj
YyAtbyBjb25mdGVzdCAtZyAgIGNvbmZ0ZXN0LmMgLWxzb2NrZXQgICA+JjUKImNvbmZ0ZXN0LmMi
LCBsaW5lIDM5OiB3YXJuaW5nOiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQKY29uZmlndXJlOjQ1NzM6
ICQ/ID0gMApjb25maWd1cmU6NDU5MDogcmVzdWx0OiAtbHNvY2tldApjb25maWd1cmU6NDYwMDog
Y2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBpbmV0X2FkZHIKY29uZmlndXJlOjQ2MzE6
IGNjIC1vIGNvbmZ0ZXN0IC1nICAgY29uZnRlc3QuYyAtbHNvY2tldCAgPiY1CiJjb25mdGVzdC5j
IiwgbGluZSAzOTogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVkClVuZGVmaW5lZAkJCWZp
cnN0IHJlZmVyZW5jZWQKIHN5bWJvbCAgCQkJICAgIGluIGZpbGUKaW5ldF9hZGRyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uZnRlc3QubyAgKHN5bWJvbCBiZWxvbmdzIHRvIGltcGxpY2l0
IGRlcGVuZGVuY3kgL2xpYi9saWJuc2wuc28uMSkKbGQ6IGZhdGFsOiBTeW1ib2wgcmVmZXJlbmNp
bmcgZXJyb3JzLiBObyBvdXRwdXQgd3JpdHRlbiB0byBjb25mdGVzdApjb25maWd1cmU6NDYzMTog
JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K
fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN
RSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tB
R0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3No
Mi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUg
UEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1RE
Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T
WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I
IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK
fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2Rl
ZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9S
RUVOVFJBTlQKfCAjZW5kaWYKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJp
ZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNl
IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwg
ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw
cGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hh
ciBpbmV0X2FkZHIgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gaW5ldF9hZGRyICgp
Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NDYzMTogY2MgLW8gY29uZnRlc3Qg
LWcgICBjb25mdGVzdC5jIC1sbnNsICAtbHNvY2tldCAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAz
OTogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVkCmNvbmZpZ3VyZTo0NjMxOiAkPyA9IDAK
Y29uZmlndXJlOjQ2NDg6IHJlc3VsdDogLWxuc2wKY29uZmlndXJlOjQ5NjM6IGNoZWNraW5nIGZv
ciBDIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjQ5NzI6IGNjIC0tdmVyc2lvbiA+JjUKY2M6
IFdhcm5pbmc6IG9wdGlvbiAtLSBwYXNzZWQgdG8gbGQKdXNhZ2U6IGNjIFsgb3B0aW9uc10gZmls
ZXMuICBVc2UgJ2NjIC1mbGFncycgZm9yIGRldGFpbHMKY29uZmlndXJlOjQ5ODM6ICQ/ID0gMQpj
b25maWd1cmU6NDk3MjogY2MgLXYgPiY1CnVzYWdlOiBjYyBbIG9wdGlvbnNdIGZpbGVzLiAgVXNl
ICdjYyAtZmxhZ3MnIGZvciBkZXRhaWxzCmNvbmZpZ3VyZTo0OTgzOiAkPyA9IDEKY29uZmlndXJl
OjQ5NzI6IGNjIC1WID4mNQpjYzogU3VuIEMgNS44IDIwMDUvMTAvMTMKdXNhZ2U6IGNjIFsgb3B0
aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1mbGFncycgZm9yIGRldGFpbHMKY29uZmlndXJlOjQ5ODM6
ICQ/ID0gMQpjb25maWd1cmU6NDk3MjogY2MgLXF2ZXJzaW9uID4mNQpjYzogaWxsZWdhbCBvcHRp
b24gLXF2ZXJzaW9uCmNvbmZpZ3VyZTo0OTgzOiAkPyA9IDEKY29uZmlndXJlOjQ5ODc6IGNoZWNr
aW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgpjb25maWd1cmU6NTAx
NTogcmVzdWx0OiBubwpjb25maWd1cmU6NTAyNDogY2hlY2tpbmcgd2hldGhlciBjYyBhY2NlcHRz
IC1nCmNvbmZpZ3VyZTo1MDg1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwMjogY2hlY2tpbmcg
Zm9yIGNjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6NTE3OTogcmVzdWx0OiBu
b25lIG5lZWRlZApjb25maWd1cmU6NTIwMTogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBj
Ywpjb25maWd1cmU6NTI5MTogcmVzdWx0OiBub25lCmNvbmZpZ3VyZTo1MzA5OiBjaGVja2luZyB3
aGV0aGVyIGxuIC1zIHdvcmtzCmNvbmZpZ3VyZTo1MzEzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6
NTMyMDogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKQpjb25maWd1cmU6NTM0Mjog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzNTU6IGNoZWNraW5nIGZvciBzc2hkCmNvbmZpZ3VyZTo1
Mzg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1NzM0OiBjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBk
b2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQKY29uZmlndXJlOjU3OTg6IHJlc3VsdDogL3Vzci91Y2Iv
c2VkCmNvbmZpZ3VyZTo1ODE2OiBjaGVja2luZyBmb3IgZmdyZXAKY29uZmlndXJlOjU4Nzg6IHJl
c3VsdDogL3Vzci9zZncvYmluL2dncmVwIC1GCmNvbmZpZ3VyZTo1OTQ2OiBjaGVja2luZyBmb3Ig
bm9uLUdOVSBsZApjb25maWd1cmU6NTk4MDogcmVzdWx0OiAvdXNyL3VjYi9sZApjb25maWd1cmU6
NTk4NzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoL3Vzci91Y2IvbGQpIGlzIEdOVSBsZApjb25m
aWd1cmU6NjAwMjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNDogY2hlY2tpbmcgZm9yIEJTRC0g
b3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pCmNvbmZpZ3VyZTo2MDYzOiByZXN1bHQ6
IC91c3IvY2NzL2Jpbi9ubSAtcApjb25maWd1cmU6NjE4MTogY2hlY2tpbmcgdGhlIG5hbWUgbGlz
dGVyICgvdXNyL2Njcy9iaW4vbm0gLXApIGludGVyZmFjZQpjb25maWd1cmU6NjE4ODogY2MgLWMg
LWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MTkxOiAvdXNyL2Njcy9iaW4vbm0gLXAgImNv
bmZ0ZXN0Lm8iCmNvbmZpZ3VyZTo2MTk0OiBvdXRwdXQKCgpjb25mdGVzdC5vOgowMDAwMDAwMDAw
IHMgCjAwMDAwMDAwMDAgcyAKMDAwMDAwMDAwMCBzIAowMDAwMDAwMDAwIGIgQmJzcy5ic3MKMDAw
MDAwMDAwMCBuIERkYXRhLmRhdGEKMDAwMDAwMDAwMCBuIERyb2RhdGEucm9kYXRhCjAwMDAwMDAw
MDAgZiBjb25mdGVzdC5jCjAwMDAwMDAwMDAgRCBzb21lX3ZhcmlhYmxlCmNvbmZpZ3VyZTo2MjAx
OiByZXN1bHQ6IEJTRCBubQpjb25maWd1cmU6NjIwNTogY2hlY2tpbmcgdGhlIG1heGltdW0gbGVu
Z3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKY29uZmlndXJlOjYzMjU6IHJlc3VsdDogNzg2
MjQwCmNvbmZpZ3VyZTo2MzQyOiBjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5k
cyBzb21lIFhTSSBjb25zdHJ1Y3RzCmNvbmZpZ3VyZTo2MzUyOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NjM1NjogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Igpjb25m
aWd1cmU6NjM2MjogcmVzdWx0OiBubwpjb25maWd1cmU6NjM5NzogY2hlY2tpbmcgZm9yIC91c3Iv
dWNiL2xkIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTo2NDA0OiByZXN1
bHQ6IC1yCmNvbmZpZ3VyZTo2NDczOiBjaGVja2luZyBmb3Igb2JqZHVtcApjb25maWd1cmU6NjUw
MDogcmVzdWx0OiBvYmpkdW1wCmNvbmZpZ3VyZTo2NTI5OiBjaGVja2luZyBob3cgdG8gcmVjb2du
aXplIGRlcGVuZGVudCBsaWJyYXJpZXMKY29uZmlndXJlOjY3MjU6IHJlc3VsdDogcGFzc19hbGwK
Y29uZmlndXJlOjY3ODU6IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6NjgwMTogZm91bmQgL3Vz
ci9jY3MvYmluL2FyCmNvbmZpZ3VyZTo2ODEyOiByZXN1bHQ6IGFyCmNvbmZpZ3VyZTo2ODkwOiBj
aGVja2luZyBmb3Igc3RyaXAKY29uZmlndXJlOjY5MDY6IGZvdW5kIC91c3IvY2NzL2Jpbi9zdHJp
cApjb25maWd1cmU6NjkxNzogcmVzdWx0OiBzdHJpcApjb25maWd1cmU6Njk4OTogY2hlY2tpbmcg
Zm9yIHJhbmxpYgpjb25maWd1cmU6NzAwNTogZm91bmQgL3Vzci9jY3MvYmluL3JhbmxpYgpjb25m
aWd1cmU6NzAxNjogcmVzdWx0OiByYW5saWIKY29uZmlndXJlOjcxMDY6IGNoZWNraW5nIGNvbW1h
bmQgdG8gcGFyc2UgL3Vzci9jY3MvYmluL25tIC1wIG91dHB1dCBmcm9tIGNjIG9iamVjdApjb25m
aWd1cmU6NzIyNDogY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MjI3OiAkPyA9
IDAKY29uZmlndXJlOjcyMzE6IC91c3IvY2NzL2Jpbi9ubSAtcCBjb25mdGVzdC5vIFx8IHNlZCAt
biAtZSAncy9eLipbCSBdXChbQkRSVF1bQkRSVF0qXClbCSBdWwkgXSpcKFtfQS1aYS16XVtfQS1a
YS16MC05XSpcKSQvXDEgXDIgXDIvcCcgXD4gY29uZnRlc3Qubm0KY29uZmlndXJlOjcyMzQ6ICQ/
ID0gMApjb25maWd1cmU6NzI4ODogY2MgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIGNvbmZ0
c3RtLm8gPiY1CmNvbmZpZ3VyZTo3MjkxOiAkPyA9IDAKY29uZmlndXJlOjczMjk6IHJlc3VsdDog
b2sKY29uZmlndXJlOjc1MjM6IGNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NzUy
NjogJD8gPSAwCmNvbmZpZ3VyZTo4MTM0OiBjaGVja2luZyBmb3IgZGxmY24uaApjb25maWd1cmU6
ODEzNDogY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo4MTM0OiAkPyA9IDAKY29u
ZmlndXJlOjgxMzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzE2OiBjaGVja2luZyBmb3Igb2Jq
ZGlyCmNvbmZpZ3VyZTo4MzMxOiByZXN1bHQ6IC5saWJzCmNvbmZpZ3VyZTo4NjgyOiBjaGVja2lu
ZyBmb3IgY2Mgb3B0aW9uIHRvIHByb2R1Y2UgUElDCmNvbmZpZ3VyZTo4OTU0OiByZXN1bHQ6IC1L
UElDIC1EUElDCmNvbmZpZ3VyZTo4OTY2OiBjaGVja2luZyBpZiBjYyBQSUMgZmxhZyAtS1BJQyAt
RFBJQyB3b3Jrcwpjb25maWd1cmU6ODk4NDogY2MgLWMgLWcgIC1LUElDIC1EUElDIC1EUElDIGNv
bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo4OTg4OiAkPyA9IDAKY29uZmlndXJlOjkwMDE6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo5MDI1OiBjaGVja2luZyBpZiBjYyBzdGF0aWMgZmxhZyAtQnN0YXRp
YyB3b3Jrcwpjb25maWd1cmU6OTA1MzogcmVzdWx0OiBubwpjb25maWd1cmU6OTA2ODogY2hlY2tp
bmcgaWYgY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vCmNvbmZpZ3VyZTo5MDg5OiBjYyAtYyAtZyAg
LW8gb3V0L2NvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MDkzOiAkPyA9IDAK
Y29uZmlndXJlOjkxMTU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5MTIzOiBjaGVja2luZyBpZiBj
YyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8KY29uZmlndXJlOjkxNzA6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTo5MjAzOiBjaGVja2luZyB3aGV0aGVyIHRoZSBjYyBsaW5rZXIgKC91c3IvdWNiL2xkKSBz
dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3VyZToxMDE5NDogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjEwNDMzOiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MKY29u
ZmlndXJlOjExMDk2OiByZXN1bHQ6IHNvbGFyaXMyLjEwIGxkLnNvCmNvbmZpZ3VyZToxMTE5ODog
Y2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcwpjb25m
aWd1cmU6MTEyMjM6IHJlc3VsdDogaW1tZWRpYXRlCmNvbmZpZ3VyZToxMTc0MzogY2hlY2tpbmcg
d2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlCmNvbmZpZ3VyZToxMTc2NTog
cmVzdWx0OiBubwpjb25maWd1cmU6MTE3ODM6IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMg
c2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6MTE3ODU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox
MTc4ODogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3Vy
ZToxMTgwOTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjExODEyOiBjaGVja2luZyB3aGV0aGVyIHRv
IGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMKY29uZmlndXJlOjExODE2OiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6MTE4NTE6IGNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4K
Y29uZmlndXJlOjExODY2OiBjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBs
aW5lIDI5OiB3YXJuaW5nOiBvbGQtc3R5bGUgZGVjbGFyYXRpb24gb3IgaW5jb3JyZWN0IHR5cGUg
Zm9yOiBub3QKImNvbmZ0ZXN0LmMiLCBsaW5lIDI5OiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0
OiBhCiJjb25mdGVzdC5jIiwgbGluZSAyOTogd2FybmluZzogb2xkLXN0eWxlIGRlY2xhcmF0aW9u
IG9yIGluY29ycmVjdCB0eXBlIGZvcjogYQoiY29uZnRlc3QuYyIsIGxpbmUgMjk6IHdhcm5pbmc6
IG9sZC1zdHlsZSBkZWNsYXJhdGlvbiBvciBpbmNvcnJlY3QgdHlwZSBmb3I6IHVuaXZlcnNhbAoi
Y29uZnRlc3QuYyIsIGxpbmUgMjk6IHdhcm5pbmc6IG9sZC1zdHlsZSBkZWNsYXJhdGlvbiBvciBp
bmNvcnJlY3QgdHlwZSBmb3I6IGNhcGFibGUKImNvbmZ0ZXN0LmMiLCBsaW5lIDMxOiB3YXJuaW5n
OiBvbGQtc3R5bGUgZGVjbGFyYXRpb24gb3IgaW5jb3JyZWN0IHR5cGUgZm9yOiBjb21waWxlcgpj
YzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZToxMTg2NjogJD8gPSAyCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l
IFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3No
MiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H
ICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBj
b29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1REQ19IRUFERVJT
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg
I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm
aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l
IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVE
X1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQK
fCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5s
aWJzLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lmbmRlZiBfX0FQUExFX0NDX18KfCAJ
ICAgICAgIG5vdCBhIHVuaXZlcnNhbCBjYXBhYmxlIGNvbXBpbGVyCnwgCSAgICAgI2VuZGlmCnwg
CSAgICAgdHlwZWRlZiBpbnQgZHVtbXk7CnwgCmNvbmZpZ3VyZToxMTkxMTogY2MgLWMgLWcgIGNv
bmZ0ZXN0LmMgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzNTogdW5kZWZpbmVkIHN5bWJvbDogYm9n
dXMKImNvbmZ0ZXN0LmMiLCBsaW5lIDM1OiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiBlbmRp
YW4KY2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6MTE5MTE6ICQ/ID0g
Mgpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl
ZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxp
YnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NU
UklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2
ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tB
R0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENfSEVB
REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU
QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg
MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg
I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl
ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUg
TkVFRF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRS
QU5UCnwgI2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElS
ICIubGlicy8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMu
aD4KfCAJICAgICAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK
fCAjaWYgISAoZGVmaW5lZCBCWVRFX09SREVSICYmIGRlZmluZWQgQklHX0VORElBTiAJCSAgICAg
JiYgZGVmaW5lZCBMSVRUTEVfRU5ESUFOICYmIEJZVEVfT1JERVIgJiYgQklHX0VORElBTiAJCSAg
ICAgJiYgTElUVExFX0VORElBTikKfCAJICAgICAgYm9ndXMgZW5kaWFuIG1hY3Jvcwp8IAkgICAg
ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTE5NTU6IGNjIC1j
IC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTE5NTU6ICQ/ID0gMApjb25maWd1cmU6MTE5
NzI6IGNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTE5NzI6ICQ/ID0gMApjb25m
aWd1cmU6MTIwNTc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjA4MzogY2hlY2tpbmcgZm9yIHNw
ZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMKY29uZmlndXJl
OjEyMTEzOiBjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDM2OiB3
YXJuaW5nOiBzaGlmdCBjb3VudCBuZWdhdGl2ZSBvciB0b28gYmlnOiA8PCA2MgoiY29uZnRlc3Qu
YyIsIGxpbmUgMzY6IHdhcm5pbmc6IGludGVnZXIgb3ZlcmZsb3cgZGV0ZWN0ZWQ6IG9wICI8PCIK
ImNvbmZ0ZXN0LmMiLCBsaW5lIDM2OiB3YXJuaW5nOiBzaGlmdCBjb3VudCBuZWdhdGl2ZSBvciB0
b28gYmlnOiA8PCA2MgoiY29uZnRlc3QuYyIsIGxpbmUgMzY6IHdhcm5pbmc6IGludGVnZXIgb3Zl
cmZsb3cgZGV0ZWN0ZWQ6IG9wICI8PCIKImNvbmZ0ZXN0LmMiLCBsaW5lIDM3OiB6ZXJvIG9yIG5l
Z2F0aXZlIHN1YnNjcmlwdApjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3Vy
ZToxMjExMzogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk
ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tB
R0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVm
aW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S
VCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8
ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNk
ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp
bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf
U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU
RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9O
RyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAg
ZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2Rl
ZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgLyogQ2hlY2sg
dGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuCnwgICAgIFdlIGNh
bid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywK
fCAgICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJzIG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVy
cwp8ICAgICBpbmNvcnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCnwgI2Rl
ZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2
MikpCnwgICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3
MjEKfCAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKfCAJCSAgICAg
ID8gMSA6IC0xXTsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg
fQpjb25maWd1cmU6MTIxMTg6IGNjIC1uMzIgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNjOiBXYXJu
aW5nOiBpbGxlZ2FsIG9wdGlvbiAtbjMyCiJjb25mdGVzdC5jIiwgbGluZSAzNjogd2FybmluZzog
c2hpZnQgY291bnQgbmVnYXRpdmUgb3IgdG9vIGJpZzogPDwgNjIKImNvbmZ0ZXN0LmMiLCBsaW5l
IDM2OiB3YXJuaW5nOiBpbnRlZ2VyIG92ZXJmbG93IGRldGVjdGVkOiBvcCAiPDwiCiJjb25mdGVz
dC5jIiwgbGluZSAzNjogd2FybmluZzogc2hpZnQgY291bnQgbmVnYXRpdmUgb3IgdG9vIGJpZzog
PDwgNjIKImNvbmZ0ZXN0LmMiLCBsaW5lIDM2OiB3YXJuaW5nOiBpbnRlZ2VyIG92ZXJmbG93IGRl
dGVjdGVkOiBvcCAiPDwiCiJjb25mdGVzdC5jIiwgbGluZSAzNzogemVybyBvciBuZWdhdGl2ZSBz
dWJzY3JpcHQKY2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6MTIxMTg6
ICQ/ID0gMgpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov
CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B
TUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNL
QUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNz
aDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5l
IFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNU
RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS
SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf
SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx
CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNk
ZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBf
UkVFTlRSQU5UCnwgI2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRf
T0JKRElSICIubGlicy8iCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8IC8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgIC8qIENoZWNrIHRoYXQgb2Zm
X3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8ICAgICBXZSBjYW4ndCBzaW1w
bHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCnwgICAgIHNp
bmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMKfCAgICAg
aW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwp8ICNkZWZpbmUgTEFS
R0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3QpIDEgPDwgNjIpKQp8ICAg
aW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIxCnwgCQkg
ICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09IDEpCnwgCQkgICAgICA/IDEgOiAt
MV07CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln
dXJlOjEyMTI4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjEzNDogY2hlY2tpbmcgZm9yIF9GSUxF
X09GRlNFVF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMKY29uZmlndXJlOjEyMTU5
OiBjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDM2OiB3YXJuaW5n
OiBzaGlmdCBjb3VudCBuZWdhdGl2ZSBvciB0b28gYmlnOiA8PCA2MgoiY29uZnRlc3QuYyIsIGxp
bmUgMzY6IHdhcm5pbmc6IGludGVnZXIgb3ZlcmZsb3cgZGV0ZWN0ZWQ6IG9wICI8PCIKImNvbmZ0
ZXN0LmMiLCBsaW5lIDM2OiB3YXJuaW5nOiBzaGlmdCBjb3VudCBuZWdhdGl2ZSBvciB0b28gYmln
OiA8PCA2MgoiY29uZnRlc3QuYyIsIGxpbmUgMzY6IHdhcm5pbmc6IGludGVnZXIgb3ZlcmZsb3cg
ZGV0ZWN0ZWQ6IG9wICI8PCIKImNvbmZ0ZXN0LmMiLCBsaW5lIDM3OiB6ZXJvIG9yIG5lZ2F0aXZl
IHN1YnNjcmlwdApjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZToxMjE1
OTogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg
Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS
TkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBB
Q0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGli
c3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZp
bmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUg
U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I
IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwg
I2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5l
IF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBM
VF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyogZW5kIGNv
bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgLyogQ2hlY2sgdGhhdCBv
ZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuCnwgICAgIFdlIGNhbid0IHNp
bXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywKfCAgICAg
c2luY2Ugc29tZSBDKysgY29tcGlsZXJzIG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVycwp8ICAg
ICBpbmNvcnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCnwgI2RlZmluZSBM
QVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2MikpCnwg
ICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKfCAJ
CSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKfCAJCSAgICAgID8gMSA6
IC0xXTsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m
aWd1cmU6MTIxODM6IGNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTIxODM6ICQ/
ID0gMApjb25maWd1cmU6MTIxOTE6IHJlc3VsdDogNjQKY29uZmlndXJlOjEyMzc2OiBjaGVja2lu
ZyBmb3Igbm9uLUdOVSBsZApjb25maWd1cmU6MTI0MDc6IHJlc3VsdDogL3Vzci91Y2IvbGQKY29u
ZmlndXJlOjEyNDE0OiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgvdXNyL3VjYi9sZCkgaXMgR05V
IGxkCmNvbmZpZ3VyZToxMjQyNzogcmVzdWx0OiBubwpjb25maWd1cmU6MTI0MzQ6IGNoZWNraW5n
IGZvciBzaGFyZWQgbGlicmFyeSBydW4gcGF0aCBvcmlnaW4KY29uZmlndXJlOjEyNDQ3OiByZXN1
bHQ6IGRvbmUKY29uZmlndXJlOjEyOTUyOiBjaGVja2luZyBmb3IgbGlic3NsCmNvbmZpZ3VyZTox
Mjk3MTogY2MgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICAtbHNz
bCAtbGNyeXB0byA+JjUKY29uZmlndXJlOjEyOTcxOiAkPyA9IDAKY29uZmlndXJlOjEyOTgxOiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6MTI5ODg6IGNoZWNraW5nIGhvdyB0byBsaW5rIHdpdGggbGli
c3NsCmNvbmZpZ3VyZToxMjk5MDogcmVzdWx0OiAtbHNzbCAtbGNyeXB0bwpjb25maWd1cmU6MTM1
NjA6IGNoZWNraW5nIGZvciBFVlBfYWVzXzEyOF9jdHIKY29uZmlndXJlOjEzNTYwOiBjYyAtbyBj
b25mdGVzdCAtZyAgIC1sc3NsIC1sY3J5cHRvIGNvbmZ0ZXN0LmMgLWxuc2wgLWxzb2NrZXQgID4m
NQoiY29uZnRlc3QuYyIsIGxpbmUgNjc6IHdhcm5pbmc6IHN0YXRlbWVudCBub3QgcmVhY2hlZApV
bmRlZmluZWQJCQlmaXJzdCByZWZlcmVuY2VkCiBzeW1ib2wgIAkJCSAgICBpbiBmaWxlCkVWUF9h
ZXNfMTI4X2N0ciAgICAgICAgICAgICAgICAgICAgIGNvbmZ0ZXN0Lm8KbGQ6IGZhdGFsOiBTeW1i
b2wgcmVmZXJlbmNpbmcgZXJyb3JzLiBObyBvdXRwdXQgd3JpdHRlbiB0byBjb25mdGVzdApjb25m
aWd1cmU6MTM1NjA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj
b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQ
QUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwg
I2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS
RVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg
IiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIK
fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBI
QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9O
R0xPTkcgMQp8ICNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8
ICMgIGRlZmluZSBfUkVFTlRSQU5UCnwgI2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8
ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8
ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEKfCAv
KiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIEVWUF9hZXNfMTI4X2N0ciB0byBhbiBp
bm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIEVWUF9hZXNfMTI4
X2N0ci4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0
dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIEVWUF9hZXNfMTI4X2N0ciBpbm5vY3VvdXNfRVZQX2Fl
c18xMjhfY3RyCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBh
bmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0
aCBjaGFyIEVWUF9hZXNfMTI4X2N0ciAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+
IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0
cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZk
ZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxh
c3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgRVZQX2Flc18xMjhfY3RyCnwgCnwgLyogT3Zl
cnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAg
VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0ND
CnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs
IGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwg
Y2hhciBFVlBfYWVzXzEyOF9jdHIgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0
aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFp
bCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBz
b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz
LiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfRVZQX2Flc18xMjhfY3RyIHx8IGRlZmluZWQgX19z
dHViX19fRVZQX2Flc18xMjhfY3RyCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWlu
ICgpCnwgewp8IHJldHVybiBFVlBfYWVzXzEyOF9jdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsK
fCB9CmNvbmZpZ3VyZToxMzU2MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTQwNDE6IGNoZWNraW5n
IGZvciBsaWJ6CmNvbmZpZ3VyZToxNDA2MDogY2MgLW8gY29uZnRlc3QgLWcgICBjb25mdGVzdC5j
IC1sbnNsIC1sc29ja2V0ICAtbHogPiY1CmNvbmZpZ3VyZToxNDA2MDogJD8gPSAwCmNvbmZpZ3Vy
ZToxNDA3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MDc3OiBjaGVja2luZyBob3cgdG8gbGlu
ayB3aXRoIGxpYnoKY29uZmlndXJlOjE0MDc5OiByZXN1bHQ6IC1segpjb25maWd1cmU6MTQxMzc6
IGNoZWNraW5nIHdoZXRoZXIgdG8gZW5hYmxlIHBlZGFudGljIGFuZCBkZWJ1ZyBjb21waWxlciBv
cHRpb25zCmNvbmZpZ3VyZToxNDE0NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MTU2OiBjaGVj
a2luZyBmb3IgaWNjIGluIHVzZQpjb25maWd1cmU6MTQxNzg6IHJlc3VsdDogbm8KY29uZmlndXJl
OjE0MjQ4OiBBZGRlZCBubyBleHRyYSBjb21waWxlciBvcHRpb25zCmNvbmZpZ3VyZToxNDI3Njog
Y2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgaGlkZGVuIHN5bWJvbHMgaW4gdGhlIGxpYnJhcnkK
Y29uZmlndXJlOjE0MzE3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNDMyODogY2hlY2tpbmcgZXJy
bm8uaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzI4OiBjYyAtYyAgLWcgLWcgIC1ETElCU1NIMkRF
QlVHIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMyODogJD8gPSAwCmNvbmZpZ3VyZToxNDMy
ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzI4OiBjaGVja2luZyBlcnJuby5oIHByZXNlbmNl
CmNvbmZpZ3VyZToxNDMyODogY2MgLUUgIC1ETElCU1NIMkRFQlVHIGNvbmZ0ZXN0LmMKY29uZmln
dXJlOjE0MzI4OiAkPyA9IDAKY29uZmlndXJlOjE0MzI4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6
MTQzMjg6IGNoZWNraW5nIGZvciBlcnJuby5oCmNvbmZpZ3VyZToxNDMyODogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjE0MzI4OiBjaGVja2luZyBmY250bC5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTQz
Mjg6IGNjIC1jICAtZyAtZyAgLURMSUJTU0gyREVCVUcgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl
OjE0MzI4OiAkPyA9IDAKY29uZmlndXJlOjE0MzI4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQz
Mjg6IGNoZWNraW5nIGZjbnRsLmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzI4OiBjYyAtRSAgLURM
SUJTU0gyREVCVUcgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzMjg6ICQ/ID0gMApjb25maWd1cmU6
MTQzMjg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMyODogY2hlY2tpbmcgZm9yIGZjbnRsLmgK
Y29uZmlndXJlOjE0MzI4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMjg6IGNoZWNraW5nIHN0
ZGlvLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDMyODogY2MgLWMgIC1nIC1nICAtRExJQlNTSDJE
RUJVRyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTQzMjg6ICQ/ID0gMApjb25maWd1cmU6MTQz
Mjg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMyODogY2hlY2tpbmcgc3RkaW8uaCBwcmVzZW5j
ZQpjb25maWd1cmU6MTQzMjg6IGNjIC1FICAtRExJQlNTSDJERUJVRyBjb25mdGVzdC5jCmNvbmZp
Z3VyZToxNDMyODogJD8gPSAwCmNvbmZpZ3VyZToxNDMyODogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjE0MzI4OiBjaGVja2luZyBmb3Igc3RkaW8uaApjb25maWd1cmU6MTQzMjg6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZToxNDMyODogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oCmNvbmZpZ3VyZToxNDMyODog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzI4OiBjaGVja2luZyBmb3IgdW5pc3RkLmgKY29uZmln
dXJlOjE0MzI4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMjg6IGNoZWNraW5nIHN5cy91aW8u
aCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzI4OiBjYyAtYyAgLWcgLWcgIC1ETElCU1NIMkRFQlVH
IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMyODogJD8gPSAwCmNvbmZpZ3VyZToxNDMyODog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzI4OiBjaGVja2luZyBzeXMvdWlvLmggcHJlc2VuY2UK
Y29uZmlndXJlOjE0MzI4OiBjYyAtRSAgLURMSUJTU0gyREVCVUcgY29uZnRlc3QuYwpjb25maWd1
cmU6MTQzMjg6ICQ/ID0gMApjb25maWd1cmU6MTQzMjg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox
NDMyODogY2hlY2tpbmcgZm9yIHN5cy91aW8uaApjb25maWd1cmU6MTQzMjg6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZToxNDM0MjogY2hlY2tpbmcgc3lzL3NlbGVjdC5oIHVzYWJpbGl0eQpjb25maWd1
cmU6MTQzNDI6IGNjIC1jICAtZyAtZyAgLURMSUJTU0gyREVCVUcgY29uZnRlc3QuYyA+JjUKY29u
ZmlndXJlOjE0MzQyOiAkPyA9IDAKY29uZmlndXJlOjE0MzQyOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6MTQzNDI6IGNoZWNraW5nIHN5cy9zZWxlY3QuaCBwcmVzZW5jZQpjb25maWd1cmU6MTQzNDI6
IGNjIC1FICAtRExJQlNTSDJERUJVRyBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDM0MjogJD8gPSAw
CmNvbmZpZ3VyZToxNDM0MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzQyOiBjaGVja2luZyBm
b3Igc3lzL3NlbGVjdC5oCmNvbmZpZ3VyZToxNDM0MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0
MzQyOiBjaGVja2luZyBzeXMvc29ja2V0LmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDM0MjogY2Mg
LWMgIC1nIC1nICAtRExJQlNTSDJERUJVRyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTQzNDI6
ICQ/ID0gMApjb25maWd1cmU6MTQzNDI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDM0MjogY2hl
Y2tpbmcgc3lzL3NvY2tldC5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDM0MjogY2MgLUUgIC1ETElC
U1NIMkRFQlVHIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0MzQyOiAkPyA9IDAKY29uZmlndXJlOjE0
MzQyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzNDI6IGNoZWNraW5nIGZvciBzeXMvc29ja2V0
LmgKY29uZmlndXJlOjE0MzQyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzNDI6IGNoZWNraW5n
IHN5cy9pb2N0bC5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTQzNDI6IGNjIC1jICAtZyAtZyAgLURM
SUJTU0gyREVCVUcgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE0MzQyOiAkPyA9IDAKY29uZmln
dXJlOjE0MzQyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzNDI6IGNoZWNraW5nIHN5cy9pb2N0
bC5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDM0MjogY2MgLUUgIC1ETElCU1NIMkRFQlVHIGNvbmZ0
ZXN0LmMKY29uZmlndXJlOjE0MzQyOiAkPyA9IDAKY29uZmlndXJlOjE0MzQyOiByZXN1bHQ6IHll
cwpjb25maWd1cmU6MTQzNDI6IGNoZWNraW5nIGZvciBzeXMvaW9jdGwuaApjb25maWd1cmU6MTQz
NDI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDM0MjogY2hlY2tpbmcgc3lzL3RpbWUuaCB1c2Fi
aWxpdHkKY29uZmlndXJlOjE0MzQyOiBjYyAtYyAgLWcgLWcgIC1ETElCU1NIMkRFQlVHIGNvbmZ0
ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDM0MjogJD8gPSAwCmNvbmZpZ3VyZToxNDM0MjogcmVzdWx0
OiB5ZXMKY29uZmlndXJlOjE0MzQyOiBjaGVja2luZyBzeXMvdGltZS5oIHByZXNlbmNlCmNvbmZp
Z3VyZToxNDM0MjogY2MgLUUgIC1ETElCU1NIMkRFQlVHIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0
MzQyOiAkPyA9IDAKY29uZmlndXJlOjE0MzQyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzNDI6
IGNoZWNraW5nIGZvciBzeXMvdGltZS5oCmNvbmZpZ3VyZToxNDM0MjogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjE0MzU2OiBjaGVja2luZyBhcnBhL2luZXQuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0
MzU2OiBjYyAtYyAgLWcgLWcgIC1ETElCU1NIMkRFQlVHIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy
ZToxNDM1NjogJD8gPSAwCmNvbmZpZ3VyZToxNDM1NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0
MzU2OiBjaGVja2luZyBhcnBhL2luZXQuaCBwcmVzZW5jZQpjb25maWd1cmU6MTQzNTY6IGNjIC1F
ICAtRExJQlNTSDJERUJVRyBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDM1NjogJD8gPSAwCmNvbmZp
Z3VyZToxNDM1NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzU2OiBjaGVja2luZyBmb3IgYXJw
YS9pbmV0LmgKY29uZmlndXJlOjE0MzU2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzNTY6IGNo
ZWNraW5nIG5ldGluZXQvaW4uaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzU2OiBjYyAtYyAgLWcg
LWcgIC1ETElCU1NIMkRFQlVHIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDM1NjogJD8gPSAw
CmNvbmZpZ3VyZToxNDM1NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzU2OiBjaGVja2luZyBu
ZXRpbmV0L2luLmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzU2OiBjYyAtRSAgLURMSUJTU0gyREVC
VUcgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzNTY6ICQ/ID0gMApjb25maWd1cmU6MTQzNTY6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZToxNDM1NjogY2hlY2tpbmcgZm9yIG5ldGluZXQvaW4uaApjb25m
aWd1cmU6MTQzNTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDM2OTogY2hlY2tpbmcgc3lzL3Vu
LmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDM2OTogY2MgLWMgIC1nIC1nICAtRExJQlNTSDJERUJV
RyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTQzNjk6ICQ/ID0gMApjb25maWd1cmU6MTQzNjk6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDM2OTogY2hlY2tpbmcgc3lzL3VuLmggcHJlc2VuY2UK
Y29uZmlndXJlOjE0MzY5OiBjYyAtRSAgLURMSUJTU0gyREVCVUcgY29uZnRlc3QuYwpjb25maWd1
cmU6MTQzNjk6ICQ/ID0gMApjb25maWd1cmU6MTQzNjk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox
NDM2OTogY2hlY2tpbmcgZm9yIHN5cy91bi5oCmNvbmZpZ3VyZToxNDM2OTogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjE0Mzg4OiBjaGVja2luZyB3aW5kb3dzLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTox
NDM4ODogY2MgLWMgIC1nIC1nICAtRExJQlNTSDJERUJVRyBjb25mdGVzdC5jID4mNQoiY29uZnRl
c3QuYyIsIGxpbmUgODA6IGNhbm5vdCBmaW5kIGluY2x1ZGUgZmlsZTogPHdpbmRvd3MuaD4KY2M6
IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzODg6ICQ/ID0gMgpjb25m
aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ
QUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIi
CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi
bGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxp
YnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx
CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk
ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu
ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI
QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgTkVFRF9S
RUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRSQU5UCnwg
I2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGli
cy8iCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ
VFMgNjQKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2Rl
ZmluZSBMSUJTU0gyX0hBVkVfWkxJQiAxCnwgI2RlZmluZSBMSUJTU0gyX0RIX0dFWF9ORVcgMQp8
ICNkZWZpbmUgSEFWRV9FUlJOT19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF
X1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX0lPQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf
QVJQQV9JTkVUX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVU5fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o
Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj
ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8
ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg
aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp
bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H
X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK
fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K
fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K
fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o
Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K
fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg
I2VuZGlmCnwgI2luY2x1ZGUgPHdpbmRvd3MuaD4KY29uZmlndXJlOjE0Mzg4OiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZToxNDM4ODogY2hlY2tpbmcgd2luZG93cy5oIHByZXNlbmNlCmNvbmZpZ3VyZTox
NDM4ODogY2MgLUUgIC1ETElCU1NIMkRFQlVHIGNvbmZ0ZXN0LmMKImNvbmZ0ZXN0LmMiLCBsaW5l
IDQ3OiBjYW5ub3QgZmluZCBpbmNsdWRlIGZpbGU6IDx3aW5kb3dzLmg+CmNjOiBhY29tcCBmYWls
ZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0Mzg4OiAkPyA9IDIKY29uZmlndXJlOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F
ICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUg
UEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIK
fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIK
fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNk
ZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg
SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf
TUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU
WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf
SCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEK
fCAjaWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNk
ZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZp
bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2Rl
ZmluZSBIQVZFX0xJQlNTTCAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgTElCU1NI
Ml9IQVZFX1pMSUIgMQp8ICNkZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDEKfCAjZGVmaW5lIEhB
VkVfRVJSTk9fSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ
T19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9I
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9I
IDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0gg
MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8d2luZG93cy5oPgpjb25maWd1
cmU6MTQzODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0Mzg4OiBjaGVja2luZyBmb3Igd2luZG93
cy5oCmNvbmZpZ3VyZToxNDM4ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzODg6IGNoZWNraW5n
IHdpbnNvY2syLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDM4ODogY2MgLWMgIC1nIC1nICAtRExJ
QlNTSDJERUJVRyBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgODA6IGNhbm5vdCBm
aW5kIGluY2x1ZGUgZmlsZTogPHdpbnNvY2syLmg+CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0
ZXN0LmMKY29uZmlndXJlOjE0Mzg4OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8
ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT
SU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBB
Q0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBB
Q0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lP
TiAiMS4yLjYiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ
RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf
SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu
ZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9S
RUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9E
TEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklH
RU5ESUFOIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBIQVZFX0xJ
QlNTTCAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIg
MQp8ICNkZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAx
CnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVm
aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5l
IEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5l
IEhBVkVfTkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8IC8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ
RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT
X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I
RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl
bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl
bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD
X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+
CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW
RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3aW5z
b2NrMi5oPgpjb25maWd1cmU6MTQzODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0Mzg4OiBjaGVj
a2luZyB3aW5zb2NrMi5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDM4ODogY2MgLUUgIC1ETElCU1NI
MkRFQlVHIGNvbmZ0ZXN0LmMKImNvbmZ0ZXN0LmMiLCBsaW5lIDQ3OiBjYW5ub3QgZmluZCBpbmNs
dWRlIGZpbGU6IDx3aW5zb2NrMi5oPgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNv
bmZpZ3VyZToxNDM4ODogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q
IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIK
fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JV
R1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VS
TCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42
Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l
IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI
QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9M
T05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5U
CnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAx
CnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx
CnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgSEFWRV9MSUJTU0wgMQp8
ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIExJQlNTSDJfSEFWRV9aTElCIDEKfCAjZGVm
aW5lIExJQlNTSDJfREhfR0VYX05FVyAxCnwgI2RlZmluZSBIQVZFX0VSUk5PX0ggMQp8ICNkZWZp
bmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZF
X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
VUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
U09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9BUlBBX0lORVRfSCAxCnwgI2RlZmluZSBIQVZFX05F
VElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAvKiBlbmQgY29uZmRlZnMu
aC4gICovCnwgI2luY2x1ZGUgPHdpbnNvY2syLmg+CmNvbmZpZ3VyZToxNDM4ODogcmVzdWx0OiBu
bwpjb25maWd1cmU6MTQzODg6IGNoZWNraW5nIGZvciB3aW5zb2NrMi5oCmNvbmZpZ3VyZToxNDM4
ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzODg6IGNoZWNraW5nIHdzMnRjcGlwLmggdXNhYmls
aXR5CmNvbmZpZ3VyZToxNDM4ODogY2MgLWMgIC1nIC1nICAtRExJQlNTSDJERUJVRyBjb25mdGVz
dC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgODA6IGNhbm5vdCBmaW5kIGluY2x1ZGUgZmlsZTog
PHdzMnRjcGlwLmg+CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0
Mzg4OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu
aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9U
QVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUg
UEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJs
aWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2Rl
ZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgI2RlZmlu
ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF
X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U
X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEK
fCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZp
bmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5l
IExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5l
IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxCnwgI2RlZmluZSBI
QVZFX0xJQlogMQp8ICNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIgMQp8ICNkZWZpbmUgTElCU1NI
Ml9ESF9HRVhfTkVXIDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCnwgI2RlZmluZSBIQVZFX0ZD
TlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg
MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx
CnwgI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9I
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj
aW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8
c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVk
ZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRl
IDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZF
X1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNp
ZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5l
ZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5j
bHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNs
dWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5j
bHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5j
bHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1
ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3czJ0Y3BpcC5oPgpjb25maWd1cmU6
MTQzODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0Mzg4OiBjaGVja2luZyB3czJ0Y3BpcC5oIHBy
ZXNlbmNlCmNvbmZpZ3VyZToxNDM4ODogY2MgLUUgIC1ETElCU1NIMkRFQlVHIGNvbmZ0ZXN0LmMK
ImNvbmZ0ZXN0LmMiLCBsaW5lIDQ3OiBjYW5ub3QgZmluZCBpbmNsdWRlIGZpbGU6IDx3czJ0Y3Bp
cC5oPgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDM4ODogJD8g
PSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj
ZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi
bGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
U1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1k
ZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFD
S0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1REQ19I
RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf
SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK
fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj
ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmlu
ZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVO
VFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpE
SVIgIi5saWJzLyIKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBfRklMRV9P
RkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgSEFWRV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJa
IDEKfCAjZGVmaW5lIExJQlNTSDJfSEFWRV9aTElCIDEKfCAjZGVmaW5lIExJQlNTSDJfREhfR0VY
X05FVyAxCnwgI2RlZmluZSBIQVZFX0VSUk5PX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEK
fCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm
aW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQp8ICNkZWZpbmUg
SEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZp
bmUgSEFWRV9TWVNfSU9DVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp
bmUgSEFWRV9BUlBBX0lORVRfSCAxCnwgI2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19VTl9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg
PHdzMnRjcGlwLmg+CmNvbmZpZ3VyZToxNDM4ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzODg6
IGNoZWNraW5nIGZvciB3czJ0Y3BpcC5oCmNvbmZpZ3VyZToxNDM4ODogcmVzdWx0OiBubwpjb25m
aWd1cmU6MTQ0MTA6IGNoZWNraW5nIGZvciBwb2xsCmNvbmZpZ3VyZToxNDQxMDogY2MgLW8gY29u
ZnRlc3QgIC1nIC1nICAtRExJQlNTSDJERUJVRyAgY29uZnRlc3QuYyAtbG5zbCAtbHNvY2tldCAg
PiY1CiJjb25mdGVzdC5jIiwgbGluZSA4Mzogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVk
CmNvbmZpZ3VyZToxNDQxMDogJD8gPSAwCmNvbmZpZ3VyZToxNDQxMDogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjE0NDI1OiBjaGVja2luZyBmb3IgZ2V0dGltZW9mZGF5CmNvbmZpZ3VyZToxNDQyNTog
Y2MgLW8gY29uZnRlc3QgIC1nIC1nICAtRExJQlNTSDJERUJVRyAgY29uZnRlc3QuYyAtbG5zbCAt
bHNvY2tldCAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSA4NDogd2FybmluZzogc3RhdGVtZW50IG5v
dCByZWFjaGVkCmNvbmZpZ3VyZToxNDQyNTogJD8gPSAwCmNvbmZpZ3VyZToxNDQyNTogcmVzdWx0
OiB5ZXMKY29uZmlndXJlOjE0NDI1OiBjaGVja2luZyBmb3Igc2VsZWN0CmNvbmZpZ3VyZToxNDQy
NTogY2MgLW8gY29uZnRlc3QgIC1nIC1nICAtRExJQlNTSDJERUJVRyAgY29uZnRlc3QuYyAtbG5z
bCAtbHNvY2tldCAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSA4NTogd2FybmluZzogc3RhdGVtZW50
IG5vdCByZWFjaGVkCmNvbmZpZ3VyZToxNDQyNTogJD8gPSAwCmNvbmZpZ3VyZToxNDQyNTogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjE0NDI1OiBjaGVja2luZyBmb3Igc3RydG9sbApjb25maWd1cmU6
MTQ0MjU6IGNjIC1vIGNvbmZ0ZXN0ICAtZyAtZyAgLURMSUJTU0gyREVCVUcgIGNvbmZ0ZXN0LmMg
LWxuc2wgLWxzb2NrZXQgID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgODY6IHdhcm5pbmc6IHN0YXRl
bWVudCBub3QgcmVhY2hlZApjb25maWd1cmU6MTQ0MjU6ICQ/ID0gMApjb25maWd1cmU6MTQ0MjU6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDQ4MjogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYWxsb2Nh
LmgKY29uZmlndXJlOjE0NDk5OiBjYyAtbyBjb25mdGVzdCAgLWcgLWcgIC1ETElCU1NIMkRFQlVH
ICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICA+JjUKY29uZmlndXJlOjE0NDk5OiAkPyA9IDAK
Y29uZmlndXJlOjE0NTA3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQ1MTU6IGNoZWNraW5nIGZv
ciBhbGxvY2EKY29uZmlndXJlOjE0NTUyOiBjYyAtbyBjb25mdGVzdCAgLWcgLWcgIC1ETElCU1NI
MkRFQlVHICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICA+JjUKY29uZmlndXJlOjE0NTUyOiAk
PyA9IDAKY29uZmlndXJlOjE0NTYwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQ2NzI6IGNoZWNr
aW5nIGZvciBhbiBBTlNJIEMtY29uZm9ybWluZyBjb25zdApjb25maWd1cmU6MTQ3Mzc6IGNjIC1j
ICAtZyAtZyAgLURMSUJTU0gyREVCVUcgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5l
IDEwODogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVkCmNvbmZpZ3VyZToxNDczNzogJD8g
PSAwCmNvbmZpZ3VyZToxNDc0NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0NzUyOiBjaGVja2lu
ZyBmb3IgaW5saW5lCmNvbmZpZ3VyZToxNDc2ODogY2MgLWMgIC1nIC1nICAtRExJQlNTSDJERUJV
RyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTQ3Njg6ICQ/ID0gMApjb25maWd1cmU6MTQ3NzY6
IHJlc3VsdDogaW5saW5lCmNvbmZpZ3VyZToxNDc5NjogY2hlY2tpbmcgbm9uLWJsb2NraW5nIHNv
Y2tldHMgc3R5bGUKY29uZmlndXJlOjE0ODM0OiBjYyAtYyAgLWcgLWcgIC1ETElCU1NIMkRFQlVH
IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDgzNDogJD8gPSAwCmNvbmZpZ3VyZToxNDk5NTog
cmVzdWx0OiBPX05PTkJMT0NLCmNvbmZpZ3VyZToxNTEzMzogY3JlYXRpbmcgLi9jb25maWcuc3Rh
dHVzCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFJ1bm5pbmcgY29uZmlnLnN0YXR1
cy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKVGhpcyBmaWxlIHdhcyBleHRlbmRl
ZCBieSBsaWJzc2gyIGNvbmZpZy5zdGF0dXMgLSwgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUg
QXV0b2NvbmYgMi42NS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoKICBDT05GSUdfRklM
RVMgICAgPSAKICBDT05GSUdfSEVBREVSUyAgPSAKICBDT05GSUdfTElOS1MgICAgPSAKICBDT05G
SUdfQ09NTUFORFMgPSAKICAkIC4vY29uZmlnLnN0YXR1cyAKCm9uIGV0cjY1MTFsMXN1bjEwMQoK
Y29uZmlnLnN0YXR1czoxMTE1OiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOjExMTU6
IGNyZWF0aW5nIHNyYy9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjExMTU6IGNyZWF0aW5nIHRlc3Rz
L01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MTExNTogY3JlYXRpbmcgZXhhbXBsZS9NYWtlZmlsZQpj
b25maWcuc3RhdHVzOjExMTU6IGNyZWF0aW5nIGRvY3MvTWFrZWZpbGUKY29uZmlnLnN0YXR1czox
MTE1OiBjcmVhdGluZyBsaWJzc2gyLnBjCmNvbmZpZy5zdGF0dXM6MTExNTogY3JlYXRpbmcgc3Jj
L2xpYnNzaDJfY29uZmlnLmgKY29uZmlnLnN0YXR1czoxMjgxOiBzcmMvbGlic3NoMl9jb25maWcu
aCBpcyB1bmNoYW5nZWQKY29uZmlnLnN0YXR1czoxMTE1OiBjcmVhdGluZyBleGFtcGxlL2xpYnNz
aDJfY29uZmlnLmgKY29uZmlnLnN0YXR1czoxMjgxOiBleGFtcGxlL2xpYnNzaDJfY29uZmlnLmgg
aXMgdW5jaGFuZ2VkCmNvbmZpZy5zdGF0dXM6MTMyODogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1h
bmRzCmNvbmZpZy5zdGF0dXM6MTMyODogZXhlY3V0aW5nIGxpYnRvb2wgY29tbWFuZHMKY29uZmln
dXJlOjE3MzQyOiBzdW1tYXJ5IG9mIGJ1aWxkIG9wdGlvbnM6CgogIHZlcnNpb246ICAgICAgICAg
IDEuMi42CiAgSG9zdCB0eXBlOiAgICAgICAgc3BhcmMtc3VuLXNvbGFyaXMyLjEwCiAgSW5zdGFs
bCBwcmVmaXg6ICAgL29wdC9zc2gyLTEuMi42LWRlYnVnCiAgQ29tcGlsZXI6ICAgICAgICAgY2MK
ICBDb21waWxlciBmbGFnczogICAgLWcgLWcKICBMaWJyYXJ5IHR5cGVzOiAgICBTaGFyZWQ9eWVz
LCBTdGF0aWM9eWVzCiAgQ3J5cHRvIGxpYnJhcnk6ICAgb3BlbnNzbDogeWVzIChBRVMtQ1RSOiBu
bykgbGliZ2NyeXB0OiBubwogIERlYnVnIGJ1aWxkOiAgICAgIHllcwogIFBhdGggdG8gc3NoZDog
ICAgICAob25seSBmb3Igc2VsZi10ZXN0cykKICBsaWJ6IGNvbXByZXNzaW9uOiB5ZXMKCgojIyAt
LS0tLS0tLS0tLS0tLS0tICMjCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0t
LS0tLSAjIwoKYWNfY3ZfYnVpbGQ9c3BhcmMtc3VuLXNvbGFyaXMyLjEwCmFjX2N2X2NfYmlnZW5k
aWFuPXllcwphY19jdl9jX2NvbXBpbGVyX2dudT1ubwphY19jdl9jX2NvbnN0PXllcwphY19jdl9j
X2lubGluZT1pbmxpbmUKYWNfY3ZfZW52X0NDX3NldD0KYWNfY3ZfZW52X0NDX3ZhbHVlPQphY19j
dl9lbnZfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQUEZM
QUdTX3NldD0KYWNfY3ZfZW52X0NQUEZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQX3NldD0KYWNf
Y3ZfZW52X0NQUF92YWx1ZT0KYWNfY3ZfZW52X0xERkxBR1Nfc2V0PQphY19jdl9lbnZfTERGTEFH
U192YWx1ZT0KYWNfY3ZfZW52X0xJQlNfc2V0PQphY19jdl9lbnZfTElCU192YWx1ZT0KYWNfY3Zf
ZW52X2J1aWxkX2FsaWFzX3NldD0KYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPQphY19jdl9l
bnZfaG9zdF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPQphY19jdl9lbnZf
dGFyZ2V0X2FsaWFzX3NldD0KYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0KYWNfY3ZfZnVu
Y19FVlBfYWVzXzEyOF9jdHI9bm8KYWNfY3ZfZnVuY19hbGxvY2Ffd29ya3M9eWVzCmFjX2N2X2Z1
bmNfZ2V0dGltZW9mZGF5PXllcwphY19jdl9mdW5jX3BvbGw9eWVzCmFjX2N2X2Z1bmNfc2VsZWN0
PXllcwphY19jdl9mdW5jX3N0cnRvbGw9eWVzCmFjX2N2X2hlYWRlcl9hcnBhX2luZXRfaD15ZXMK
YWNfY3ZfaGVhZGVyX2RsZmNuX2g9eWVzCmFjX2N2X2hlYWRlcl9lcnJub19oPXllcwphY19jdl9o
ZWFkZXJfZmNudGxfaD15ZXMKYWNfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzCmFjX2N2X2hlYWRl
cl9tZW1vcnlfaD15ZXMKYWNfY3ZfaGVhZGVyX25ldGluZXRfaW5faD15ZXMKYWNfY3ZfaGVhZGVy
X3N0ZGM9eWVzCmFjX2N2X2hlYWRlcl9zdGRpbnRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGlvX2g9
eWVzCmFjX2N2X2hlYWRlcl9zdGRsaWJfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwph
Y19jdl9oZWFkZXJfc3RyaW5nc19oPXllcwphY19jdl9oZWFkZXJfc3lzX2lvY3RsX2g9eWVzCmFj
X2N2X2hlYWRlcl9zeXNfc2VsZWN0X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfc29ja2V0X2g9eWVz
CmFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3RpbWVfaD15ZXMK
YWNfY3ZfaGVhZGVyX3N5c190eXBlc19oPXllcwphY19jdl9oZWFkZXJfc3lzX3Vpb19oPXllcwph
Y19jdl9oZWFkZXJfc3lzX3VuX2g9eWVzCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNfY3Zf
aGVhZGVyX3dpbmRvd3NfaD1ubwphY19jdl9oZWFkZXJfd2luc29jazJfaD1ubwphY19jdl9oZWFk
ZXJfd3MydGNwaXBfaD1ubwphY19jdl9ob3N0PXNwYXJjLXN1bi1zb2xhcmlzMi4xMAphY19jdl9s
aWJzc2w9eWVzCmFjX2N2X2xpYno9eWVzCmFjX2N2X29iamV4dD1vCmFjX2N2X3BhdGhfRUdSRVA9
Jy91c3Ivc2Z3L2Jpbi9nZ3JlcCAtRScKYWNfY3ZfcGF0aF9GR1JFUD0nL3Vzci9zZncvYmluL2dn
cmVwIC1GJwphY19jdl9wYXRoX0dSRVA9L3Vzci9zZncvYmluL2dncmVwCmFjX2N2X3BhdGhfU0VE
PS91c3IvdWNiL3NlZAphY19jdl9wcm9nX0FXSz1uYXdrCmFjX2N2X3Byb2dfQ0M9Y2MKYWNfY3Zf
cHJvZ19DUFA9J2NjIC1FJwphY19jdl9wcm9nX2FjX2N0X0FSPWFyCmFjX2N2X3Byb2dfYWNfY3Rf
T0JKRFVNUD1vYmpkdW1wCmFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPXJhbmxpYgphY19jdl9wcm9n
X2FjX2N0X1NUUklQPXN0cmlwCmFjX2N2X3Byb2dfY2NfYzg5PQphY19jdl9wcm9nX2NjX2c9eWVz
CmFjX2N2X3Byb2dfbWFrZV9tYWtlX3NldD15ZXMKYWNfY3Zfc2VhcmNoX2luZXRfYWRkcj0tbG5z
bAphY19jdl9zZWFyY2hfc29ja2V0PS1sc29ja2V0CmFjX2N2X3N5c19maWxlX29mZnNldF9iaXRz
PTY0CmFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9bm8KYWNfY3ZfdHlwZV9sb25nX2xvbmc9eWVzCmFj
X2N2X3dvcmtpbmdfYWxsb2NhX2g9eWVzCmFjbF9jdl9oYXJkY29kZV9kaXJlY3Q9bm8KYWNsX2N2
X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKYWNsX2N2X2hhcmRjb2RlX2xp
YmRpcl9zZXBhcmF0b3I9CmFjbF9jdl9oYXJkY29kZV9taW51c19MPW5vCmFjbF9jdl9saWJleHQ9
YQphY2xfY3ZfbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKYWNsX2N2X2xpYnJhcnlfbmFtZXNfc3Bl
Yz0nJGxpYm5hbWUkc2hyZXh0JwphY2xfY3ZfcGF0aF9MRD0vdXNyL3VjYi9sZAphY2xfY3ZfcHJv
Z19nbnVfbGQ9bm8KYWNsX2N2X3JwYXRoPWRvbmUKYWNsX2N2X3NobGliZXh0PXNvCmFjbF9jdl93
bD0tV2wsCmFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKbHRfY3ZfZGVw
bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19D
TUQnCmx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQpsdF9jdl9sZF9yZWxvYWRfZmxhZz0tcgps
dF9jdl9ubV9pbnRlcmZhY2U9J0JTRCBubScKbHRfY3Zfb2JqZGlyPS5saWJzCmx0X2N2X3BhdGhf
TEQ9L3Vzci91Y2IvbGQKbHRfY3ZfcGF0aF9OTT0nL3Vzci9jY3MvYmluL25tIC1wJwpsdF9jdl9w
cm9nX2NvbXBpbGVyX2Nfbz15ZXMKbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9eWVzCmx0
X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPW5vCmx0X2N2X3Byb2dfZ251X2xkPW5vCmx0
X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J3NlZCAtbiAtZSAnXCcncy9eLipbCSBdXChbQkRS
VF1bQkRSVF0qXClbCSBdWwkgXSpcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKSQvXDEgXDIgXDIv
cCdcJycnCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSdzZWQgLW4g
LWUgJ1wnJ3MvXjogXChbXiBdKlwpICQvICB7XCJcMVwiLCAodm9pZCAqKSAwfSwvcCdcJycgLWUg
J1wnJ3MvXltCRFJUXSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7IlwyIiwgKHZvaWQgKikgXCZc
Mn0sL3AnXCcnJwpsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJf
cHJlZml4PSdzZWQgLW4gLWUgJ1wnJ3MvXjogXChbXiBdKlwpICQvICB7XCJcMVwiLCAodm9pZCAq
KSAwfSwvcCdcJycgLWUgJ1wnJ3MvXltCRFJUXSogXChbXiBdKlwpIFwobGliW14gXSpcKSQvICB7
IlwyIiwgKHZvaWQgKikgXCZcMn0sL3AnXCcnIC1lICdcJydzL15bQkRSVF0qIFwoW14gXSpcKSBc
KFteIF0qXCkkLyAgeyJsaWJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnJycKbHRfY3Zfc3lzX2ds
b2JhbF9zeW1ib2xfdG9fY2RlY2w9J3NlZCAtbiAtZSAnXCcncy9eVCAuKiBcKC4qXCkkL2V4dGVy
biBpbnQgXDEoKTsvcCdcJycgLWUgJ1wnJ3MvXltCRFJUXSogLiogXCguKlwpJC9leHRlcm4gY2hh
ciBcMTsvcCdcJycnCmx0X2N2X3N5c19tYXhfY21kX2xlbj03ODYyNDAKCiMjIC0tLS0tLS0tLS0t
LS0tLS0tICMjCiMjIE91dHB1dCB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tICMj
CgpBQ0xPQ0FMPScke1NIRUxMfSAvb3B0L3NzaF90ZXN0L2lzaHdhci9zc2hfc291cmNlL2xpYnNz
aDItMS4yLjYvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOScKQUxMT0NBPScnCkFNREVQQkFDS1NM
QVNIPSdcJwpBTURFUF9GQUxTRT0nIycKQU1ERVBfVFJVRT0nJwpBTVRBUj0nJHtTSEVMTH0gL29w
dC9zc2hfdGVzdC9pc2h3YXIvc3NoX3NvdXJjZS9saWJzc2gyLTEuMi42L21pc3NpbmcgLS1ydW4g
dGFyJwpBUj0nYXInCkFTPSdhcycKQVVUT0NPTkY9JyR7U0hFTEx9IC9vcHQvc3NoX3Rlc3QvaXNo
d2FyL3NzaF9zb3VyY2UvbGlic3NoMi0xLjIuNi9taXNzaW5nIC0tcnVuIGF1dG9jb25mJwpBVVRP
SEVBREVSPScke1NIRUxMfSAvb3B0L3NzaF90ZXN0L2lzaHdhci9zc2hfc291cmNlL2xpYnNzaDIt
MS4yLjYvbWlzc2luZyAtLXJ1biBhdXRvaGVhZGVyJwpBVVRPTUFLRT0nJHtTSEVMTH0gL29wdC9z
c2hfdGVzdC9pc2h3YXIvc3NoX3NvdXJjZS9saWJzc2gyLTEuMi42L21pc3NpbmcgLS1ydW4gYXV0
b21ha2UtMS45JwpBV0s9J25hd2snCkNDPSdjYycKQ0NERVBNT0RFPSdkZXBtb2RlPW5vbmUnCkNG
TEFHUz0nIC1nIC1nJwpDUFA9J2NjIC1FJwpDUFBGTEFHUz0nIC1ETElCU1NIMkRFQlVHJwpDWUdQ
QVRIX1c9J2VjaG8nCkRFRlM9Jy1ESEFWRV9DT05GSUdfSCcKREVQRElSPScuZGVwcycKRExMVE9P
TD0nZGxsdG9vbCcKRFNZTVVUSUw9JycKRFVNUEJJTj0nJwpFQ0hPX0M9JycKRUNIT19OPSctbicK
RUNIT19UPScnCkVHUkVQPScvdXNyL3Nmdy9iaW4vZ2dyZXAgLUUnCkVYRUVYVD0nJwpGR1JFUD0n
L3Vzci9zZncvYmluL2dncmVwIC1GJwpHUkVQPScvdXNyL3Nmdy9iaW4vZ2dyZXAnCkhBVkVfTElC
R0NSWVBUPScnCkhBVkVfTElCU1NMPSd5ZXMnCkhBVkVfTElCWj0neWVzJwpJTlNUQUxMX0RBVEE9
JyR7SU5TVEFMTH0gLW0gNjQ0JwpJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCklOU1RBTExf
U0NSSVBUPScke0lOU1RBTEx9JwpJTlNUQUxMX1NUUklQX1BST0dSQU09JyR7U0hFTEx9ICQoaW5z
dGFsbF9zaCkgLWMgLXMnCkxEPScvdXNyL3VjYi9sZCcKTERGTEFHUz0nJwpMSUJHQ1JZUFQ9JycK
TElCR0NSWVBUX0ZBTFNFPScnCkxJQkdDUllQVF9QUkVGSVg9JycKTElCR0NSWVBUX1RSVUU9JyMn
CkxJQk9CSlM9JycKTElCUz0nLWxuc2wgLWxzb2NrZXQgJwpMSUJTU0w9Jy1sc3NsIC1sY3J5cHRv
JwpMSUJTU0xfUFJFRklYPScnCkxJQlRPT0w9JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0
b29sJwpMSUJaPSctbHonCkxJQlpfUFJFRklYPScnCkxJUE89JycKTE5fUz0nbG4gLXMnCkxUTElC
R0NSWVBUPScnCkxUTElCT0JKUz0nJwpMVExJQlNTTD0nLWxzc2wgLWxjcnlwdG8nCkxUTElCWj0n
LWx6JwpNQUlOVD0nIycKTUFJTlRBSU5FUl9NT0RFX0ZBTFNFPScnCk1BSU5UQUlORVJfTU9ERV9U
UlVFPScjJwpNQUtFSU5GTz0nJHtTSEVMTH0gL29wdC9zc2hfdGVzdC9pc2h3YXIvc3NoX3NvdXJj
ZS9saWJzc2gyLTEuMi42L21pc3NpbmcgLS1ydW4gbWFrZWluZm8nCk5NPScvdXNyL2Njcy9iaW4v
bm0gLXAnCk5NRURJVD0nJwpPQkpEVU1QPSdvYmpkdW1wJwpPQkpFWFQ9J28nCk9UT09MNjQ9JycK
T1RPT0w9JycKUEFDS0FHRT0nbGlic3NoMicKUEFDS0FHRV9CVUdSRVBPUlQ9J2xpYnNzaDItZGV2
ZWxAY29vbC5oYXh4LnNlJwpQQUNLQUdFX05BTUU9J2xpYnNzaDInClBBQ0tBR0VfU1RSSU5HPSds
aWJzc2gyIC0nClBBQ0tBR0VfVEFSTkFNRT0nbGlic3NoMicKUEFDS0FHRV9VUkw9JycKUEFDS0FH
RV9WRVJTSU9OPSctJwpQQVRIX1NFUEFSQVRPUj0nOicKUkFOTElCPSdyYW5saWInClNFRD0nL3Vz
ci91Y2Ivc2VkJwpTRVRfTUFLRT0nJwpTSEVMTD0nL2Jpbi9iYXNoJwpTU0hEPScnClNTSERfRkFM
U0U9JycKU1NIRF9UUlVFPScjJwpTVFJJUD0nc3RyaXAnClZFUlNJT049JzEuMi42JwphY19jdF9D
Qz0nJwphY19jdF9EVU1QQklOPScnCmFtX19mYXN0ZGVwQ0NfRkFMU0U9JycKYW1fX2Zhc3RkZXBD
Q19UUlVFPScjJwphbV9faW5jbHVkZT0naW5jbHVkZScKYW1fX2xlYWRpbmdfZG90PScuJwphbV9f
cXVvdGU9JycKYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInCmFtX191bnRhcj0n
JHtBTVRBUn0geGYgLScKYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCmJ1aWxkPSdzcGFyYy1z
dW4tc29sYXJpczIuMTAnCmJ1aWxkX2FsaWFzPScnCmJ1aWxkX2NwdT0nc3BhcmMnCmJ1aWxkX29z
PSdzb2xhcmlzMi4xMCcKYnVpbGRfdmVuZG9yPSdzdW4nCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9
JwpkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2Rv
Yy8ke1BBQ0tBR0VfVEFSTkFNRX0nCmR2aWRpcj0nJHtkb2NkaXJ9JwpleGVjX3ByZWZpeD0nJHtw
cmVmaXh9Jwpob3N0PSdzcGFyYy1zdW4tc29sYXJpczIuMTAnCmhvc3RfYWxpYXM9JycKaG9zdF9j
cHU9J3NwYXJjJwpob3N0X29zPSdzb2xhcmlzMi4xMCcKaG9zdF92ZW5kb3I9J3N1bicKaHRtbGRp
cj0nJHtkb2NkaXJ9JwppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKaW5mb2Rpcj0nJHtk
YXRhcm9vdGRpcn0vaW5mbycKaW5zdGFsbF9zaD0nL29wdC9zc2hfdGVzdC9pc2h3YXIvc3NoX3Nv
dXJjZS9saWJzc2gyLTEuMi42L2luc3RhbGwtc2gnCmxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGli
JwpsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwpsb2NhbGVkaXI9JyR7ZGF0YXJv
b3RkaXJ9L2xvY2FsZScKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKbHRfRUNITz0nZWNo
bycKbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCm1rZGlyX3A9JyQoaW5zdGFsbF9zaCkgLWQn
Cm9sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKcGRmZGlyPScke2RvY2Rpcn0nCnByZWZpeD0n
L29wdC9zc2gyLTEuMi42LWRlYnVnJwpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSdzLHgseCwnCnBz
ZGlyPScke2RvY2Rpcn0nCnNiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCnNoYXJlZHN0YXRl
ZGlyPScke3ByZWZpeH0vY29tJwpzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJwp0YXJnZXRfYWxp
YXM9JycKCiMjIC0tLS0tLS0tLS0tICMjCiMjIGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0t
ICMjCgovKiBjb25mZGVmcy5oICovCiNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgojZGVm
aW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0i
CiNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKI2RlZmluZSBQQUNLQUdFX0JVR1JF
UE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCiNkZWZpbmUgUEFDS0FHRV9VUkwgIiIK
I2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgojZGVmaW5lIFZFUlNJT04gIjEuMi42IgojZGVmaW5l
IFNURENfSEVBREVSUyAxCiNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9T
WVNfU1RBVF9IIDEKI2RlZmluZSBIQVZFX1NURExJQl9IIDEKI2RlZmluZSBIQVZFX1NUUklOR19I
IDEKI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCiNkZWZp
bmUgSEFWRV9JTlRUWVBFU19IIDEKI2RlZmluZSBIQVZFX1NURElOVF9IIDEKI2RlZmluZSBIQVZF
X1VOSVNURF9IIDEKI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKI2RlZmluZSBORUVEX1JFRU5UUkFO
VCAxCiNpZm5kZWYgX1JFRU5UUkFOVAojICBkZWZpbmUgX1JFRU5UUkFOVAojZW5kaWYKI2RlZmlu
ZSBIQVZFX0RMRkNOX0ggMQojZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgojZGVmaW5lIFdPUkRT
X0JJR0VORElBTiAxCiNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKI2RlZmluZSBIQVZFX0xJ
QlNTTCAxCiNkZWZpbmUgSEFWRV9MSUJaIDEKI2RlZmluZSBMSUJTU0gyX0hBVkVfWkxJQiAxCiNk
ZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDEKI2RlZmluZSBIQVZFX0VSUk5PX0ggMQojZGVmaW5l
IEhBVkVfRkNOVExfSCAxCiNkZWZpbmUgSEFWRV9TVERJT19IIDEKI2RlZmluZSBIQVZFX1NURExJ
Ql9IIDEKI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCiNk
ZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKI2Rl
ZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQojZGVmaW5l
IEhBVkVfQVJQQV9JTkVUX0ggMQojZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEKI2RlZmluZSBI
QVZFX1NZU19VTl9IIDEKI2RlZmluZSBIQVZFX1BPTEwgMQojZGVmaW5lIEhBVkVfR0VUVElNRU9G
REFZIDEKI2RlZmluZSBIQVZFX1NFTEVDVCAxCiNkZWZpbmUgSEFWRV9TVFJUT0xMIDEKI2RlZmlu
ZSBIQVZFX0FMTE9DQV9IIDEKI2RlZmluZSBIQVZFX0FMTE9DQSAxCiNkZWZpbmUgSEFWRV9PX05P
TkJMT0NLIDEKCmNvbmZpZ3VyZTogZXhpdCAwCg==
--0015175cb83c0af5c3048a655842
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

--0015175cb83c0af5c3048a655842--

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 17:10:24 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o62FA7T3015654;
	Fri, 2 Jul 2010 17:10:19 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o62FA2Wg015196
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 17:10:04 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o62F9tTc059223
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 08:09:55 -0700 (PDT)
Message-ID: <4C2E017A.346EE4B1@rcom-software.com>
Date: Fri, 02 Jul 2010 08:10:50 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ?
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
	<4C2D1E34.D4BEAC69@rcom-software.com>
	<20100702073540.17280.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 17:10:24 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 17:10:05 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Peter:

What you wrote seems clear to me.   However,  let me describe
the host and target environment again to insure we understand
each other.

The GNL ELF tool chain is used to cross-compile the target executable,
which includes the entire UC Linux OS, and the applications
in the host environment.  The executable is then converted into
an S19 format file and downloaded to the target environment.

The host is just an i686  Debian Linux system.
The target is an M5249 Coldfire processor.
The important target settings are as follows:

ARCH=m68knommu
CROSS_COMPILE=m68k-elf-

Does this make sense to you ?

Best Regards,

Paul R.


Peter Stuge wrote:

> Hi Paul,
>
> Paul Romero wrote:
> > First, thank you for the quick and detailed reply and be assured
> > the difference between SSH and SASL is clear to me.
>
> Great!
>
> > Also, I must emphasize that my interest is in the SSH-2 component
> > subset required to support SFTP rather than SSH.
>
> Ah, sorry for being a bit sloppy with terminology. These days SSH
> version 1 is not in wide use anymore, so I tend to put SSH = SSH
> version 2 always. libssh2 only supports SSH version 2.
>
> > I think the SASL version of  libgcrypt meets the minimum libssh2
> > requirements, and that AES and RIJNDAEL are the same.
>
> That's correct.
>
> > Also, I assume that libssh2 can use DES and 3DES interchangeably.
>
> They are distinct algorithms, and SSH requires 3DES. Several
> algorithms are OPTIONAL in the standard, including AES/RIJNDAEL,
> although it is listed as RECOMMENDED and aes128-ctr, aes192-ctr and
> aes256-ctr is likely to become REQUIRED in the future so I always
> strongly recommend that they be included.
>
> > It appears most SFTP  implementations also use the following:
> > Diffie Hellman-SHA1, Blowfish, Twofish,  HMAC-SHA1 and HMAC-MD5.
> > Do you think that is correct ?
>
> DH-SHA1 and HMAC-SHA1 are also REQUIRED, the others are optional. SSH
> handles negotiation at connect time to the prefered algorithms
> supported by both client and server.
>
> > The reason I mentioned SASL is the version GSASL I am using came with
> > a version of  libgcrypt. However, I am not sure if libgcrypt is part
> > of the GSASL package or it came from elsewhere.
>
> libgcrypt is always it's own package. Good news.
>
> > In any case, assuming a version of libgcrypt that supplies what
> > libssh2 needs is found,  libssh2 and libgcrypt can easily be linked
> > together. Is that correct ?
>
> Yes, you select if you want to use libgcrypt or OpenSSL when you run
> configure for libssh2.
>
> > You seem to suggest that compiling libssh2 requires modern automake
> > capabilities.
>
> I don't think it does actually, and even if it did, I wanted to point
> out that it's not a problem, since autotools are not a part of the
> toolchain and could thus be updated to the very latest version
> without problems, should that be required.
>
> > Using a newer version of the GNU ELF Toolchain may solve that
> > problem for me--cross compilers etc. But, migrating to a newer
> > UC Linux version is not an option. Would this be a barrier to using
> > libssh2 ?
>
> No. As long as you have a working GNU toolchain for your target and
> a sane /bin/sh then you will be fine.
>
> > (i.e. I am sure the GNU toolchain I am using does not have modern
> > automake capabilities.)
>
> Again, please don't connect those two. autotools (slang for
> autoconf+automake) is independent, only ever required natively on the
> host machine, and actually you don't need it unless you want to try
> to build libssh2 with your own source code modifications.
>
> > Note that the UC Linux  Makefile scheme, and where and how
> > libraries are linked is quite different than in standard Linux.
>
> The binaries and libraries, which is what matters for libssh2, are
> quite likely built using totally standard cross-compiler techniques,
> since you have a GNU toolchain. That's really the only point that
> matters.
>
> > In addition there are differences in how forking and exits work
> > despite the fact the kernel API is the same.
>
> True! However libssh2 never forks, so no issue.
>
> > Most of the "porting" I mentioned consists of creating Makefiles
> > that fit within the UC Linux scheme which is not a huge effort but
> > certainly not trivial.
>
> I don't know what these special Makefiles are that you mention, and I
> believe that you can simply cross-compile libssh2 using your
> toolchain for this target, in the standard way.
>
> Make sure the toolchain programs are included in your PATH, and use
> the --host=tuple parameter when configuring libssh2. Substitute tuple
> with the prefix for your toolchain, so if your toolchain provides
> m68k-elf-gcc, then run configure --host=m68k-elf and include the
> library paths needed.
>
> I recently described how I successfuly cross-compiled libssh2 for
> Windows and you can use the same procedure if you substitute my
> i686-mingw32 for m68k-elf or the appropriate prefix, and of course
> the paths to where your libraries and headers are.
>
> http://www.libssh2.org/mail/libssh2-devel-archive-2010-06/0155.shtml
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 19:01:21 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o62H15uM029167;
	Fri, 2 Jul 2010 19:01:19 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o62H13J3029142
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 19:01:03 +0200
Date: Fri, 2 Jul 2010 19:01:03 +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: libssh2: Ported to UC Linux ? + DETAIL +MORE
In-Reply-To: <4C2D8AF5.22DA6214@rcom-software.com>
Message-ID: <alpine.DEB.2.00.1007021857550.30017@tvnag.unkk.fr>
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
	<4C2D8AF5.22DA6214@rcom-software.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 19:01:21 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 19:01:03 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Thu, 1 Jul 2010, Paul Romero wrote:

> Perhaps, it would be useful to you if I clarify the host and target 
> environments.

Peter has repeatedly said that it works, and I would agree with that. uclinux 
or "regular" Linux makes no difference to libssh2.

Now I think you can stop asking and proceed to make it happen instead and try 
it out yourself!

If you want libssh2 integrated into the uclinux build system, you must of 
course fiddle somewhat on your own but you could easily find inspiration for 
other existing bundled libraries on how to do that.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 22:54:02 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o62KrdEA013137;
	Fri, 2 Jul 2010 22:53:57 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o62KrZhO013134
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 22:53:37 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o62KrTox069914
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 13:53:30 -0700 (PDT)
Message-ID: <4C2E5201.897B335F@rcom-software.com>
Date: Fri, 02 Jul 2010 13:54:25 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ? + DETAIL +MORE
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
	<4C2D8AF5.22DA6214@rcom-software.com>
	<alpine.DEB.2.00.1007021857550.30017@tvnag.unkk.fr>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 22:54:02 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 22:53:38 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Daniel:

I believe what Peter has written is true and that libssh2 can
be compiled in my cross-compiling environment. The
questions and additional information I sent him were
just intended to verify that he understands my environment
rather than to question the accuracy of his statements.

I intend to try compiling the code in my environment but
would like to avoid wasting time trying things that are known
not to work.

Best Regards,

Paul R.




Daniel Stenberg wrote:

> On Thu, 1 Jul 2010, Paul Romero wrote:
>
> > Perhaps, it would be useful to you if I clarify the host and target
> > environments.
>
> Peter has repeatedly said that it works, and I would agree with that. uclinux
> or "regular" Linux makes no difference to libssh2.
>
> Now I think you can stop asking and proceed to make it happen instead and try
> it out yourself!
>
> If you want libssh2 integrated into the uclinux build system, you must of
> course fiddle somewhat on your own but you could easily find inspiration for
> other existing bundled libraries on how to do that.
>
> --
>
>   / daniel.haxx.se
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  2 23:57:17 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o62Lv8uZ011648;
	Fri, 2 Jul 2010 23:57:16 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o62Lv7Oq011640
	for <libssh2-devel@cool.haxx.se>; Fri, 2 Jul 2010 23:57:07 +0200
Received: (qmail 5381 invoked by uid 501); 2 Jul 2010 21:57:02 -0000
Message-ID: <20100702215702.5380.qmail@stuge.se>
Date: Fri, 2 Jul 2010 23:57:02 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2: Ported to UC Linux ?
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
	<4C2D1E34.D4BEAC69@rcom-software.com>
	<20100702073540.17280.qmail@stuge.se>
	<4C2E017A.346EE4B1@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C2E017A.346EE4B1@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 02 Jul 2010 23:57:17 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 02 Jul 2010 23:57:07 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi,

Paul Romero wrote:
> What you wrote seems clear to me.   However,  let me describe
> the host and target environment again to insure we understand
> each other.

I don't know if we need to. :) I described a general recipe for how
to cross-compile libssh2 so that you could do it regardless of your
platform. I guessed at the particular tuple, and it even turned out
to be what you are using.


> The important target settings are as follows:
> 
> ARCH=m68knommu
> CROSS_COMPILE=m68k-elf-
> 
> Does this make sense to you ?

See the email I wrote before:

> > Make sure the toolchain programs are included in your PATH, and use
> > the --host=tuple parameter when configuring libssh2. Substitute tuple
> > with the prefix for your toolchain, so if your toolchain provides
> > m68k-elf-gcc, then run configure --host=m68k-elf and include the
> > library paths needed.

You should use exactly the host tuple I wrote in the last mail, make
sure to not include the trailing - that you included in the
CROSS_COMPILE variable above.


Good luck! Please report your progress.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul  3 01:54:47 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o62NsTcP004094;
	Sat, 3 Jul 2010 01:54:44 +0200
Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com
	[209.85.214.54])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o62NsRff004037
	for <libssh2-devel@cool.haxx.se>; Sat, 3 Jul 2010 01:54:27 +0200
Received: by bwz12 with SMTP id 12so2485520bwz.41
	for <libssh2-devel@cool.haxx.se>; Fri, 02 Jul 2010 16:54:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:received:received:in-reply-to
	:references:date:message-id:subject:from:to:content-type;
	bh=r3hvZpZuuOCOVKZ2pIbSxQmVN06jlBkQeXRaNmRVFEc=;
	b=ushcKuGtGIh+jJ7yBEPqDXSTIIm48sJllLGAvYRXNFsluCI1fdwkvHx/UnZ2rUiyc1
	8misHOESQaOdhmPAG/xRGu/Uj9ypHpu5CKranYplLvJ7yz/my8JSnyGMouqxZ2k1ZFGF
	tjTwG+75njRNQR8L4QfJulj6BOslqgLMvAIHM=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:content-type;
	b=bFCyDC5RkiMVBeRIL5WSYKbtvjClnI6fXPnIScMP9Em8+qZYIFOQMquzomlPO7VL8A
	bWYgVDvcMX1j75SDOzCvmD3yQg02CI3Ox35dVnaqzmCNeBUmq28sNpLWhFwIrlcxK9or
	ESwsCpodOG4+X0Hf9iQyqUlKHTPZEkzNY3QA4=
MIME-Version: 1.0
Received: by 10.204.1.139 with SMTP id 11mr1177497bkf.174.1278114862770; Fri, 
	02 Jul 2010 16:54:22 -0700 (PDT)
Received: by 10.204.117.65 with HTTP; Fri, 2 Jul 2010 16:54:22 -0700 (PDT)
In-Reply-To: <AANLkTinxmBqv0qOF-ootjA6KcI_AQ-_u1aN0UNDeGj13@mail.gmail.com>
References: <AANLkTinxmBqv0qOF-ootjA6KcI_AQ-_u1aN0UNDeGj13@mail.gmail.com>
Date: Sat, 3 Jul 2010 02:54:22 +0300
Message-ID: <AANLkTikiC8z4xgr7JQDtye6Zwje2swuW1Bha0fpsUKGh@mail.gmail.com>
Subject: Re: help in understanding _direct_tcpip_ex()
From: Dor Zaidenberg <hannibal218@gmail.com>
To: libssh2-devel@cool.haxx.se
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 03 Jul 2010 01:54:47 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 03 Jul 2010 01:54:27 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============1066199874=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

--===============1066199874==
Content-Type: multipart/alternative; boundary=00151750e9be60a8e7048a704e73

--00151750e9be60a8e7048a704e73
Content-Type: text/plain; charset=ISO-8859-1

Peter

thank you for your swift reply, sorry it took me such a long time to answer
I joined on digest mode and I did not find a way to reply to your message
I am no more registered on digest so things should work much better from now
on...

>"No, since then you would require a tunnel in the other direction, a
>so-called "forwarded-tcpip" tunnel, going from the remote server to
>your local machine.
>That is a different type of channel from "direct-tcpip" and it is
>currently not implemented in libssh2. "
Ok.... , assuming I have complete control on the remote server I wish to
connect to, is there any action I can perform on that remote server, on the
system level, that will make this tunnel working?

>"Part of the reason may be that this type of tunnel (forwarded-tcpip)
>requires libssh2 to dynamically create channels, based on nothing but
>packets from the remote host. This does not fit so well with how
>libssh2 was designed.
>
>That said, I think it would be great if libssh2 also supported
>forwarded-tcpip channels, so please look into adding it! :)"
I am considering this, but honestly I cant afford to invest a long period of
work on this matter
Can you give provide me with a focus on the pieces of code need to be
changed and an exlanation of what I need to do
or a link to a good place that will explain?
If the scope of work for adding this capability is 2-3 days I will do it.
I would much appriciate if you could provide me with a focus and some
guidlines of what I need to do.

10x in advance Dor
On Thu, Jul 1, 2010 at 2:55 PM, Dor Zaidenberg <hannibal218@gmail.com>wrote:

> Dear all.
>
> I am trying to use libssh2_channel_direct_tcpip_ex in order to establish a
> tunnel between the localmachine and a server. To this end I am working with
> the direct_tcpip exmaple (both local machine and remote server use linux)
>
> I figured this is going to be very simple.
> What I tried is :
> ./direct_tcpip <server_ip> <user> <pwd> 127.0.0.1 80 localhost 20000
> I hoped this will tunnel the my local machine's port 80 to the remote host
> at port 20000.
> Then at the remote server I will type :
> curl http://localhost:20000/test.php and it will be as if I connected to
> the local machine.
>
> Unfortionatly I got an error message (which is related to the 127.0.0.1 80)
> saying "bind : address already in use"
>
> I take it that this is because the apache server on my local machine
> listens to port 80, but isn't that the point of tunneling?
>
> I am sure that I am missing something very basic (and stupid) in this, can
> someone show me the light ?
>
> my end goal is not to tunnel port 80, but to tunnel port 554 which is used
> for rtsp protocol but its easy to test with port 80
>
> --
> Live Long And Prosper
> Dor Zaidenberg
>



-- 
Live Long And Prosper
Dor Zaidenberg

--00151750e9be60a8e7048a704e73
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Peter</div>
<div>=A0</div>
<div>thank you for your swift reply, sorry it took me such a long time to a=
nswer</div>
<div>I joined on digest mode and I did not find a way to reply to your mess=
age</div>
<div>I am no more registered on digest so things should work much better fr=
om now on...</div>
<div>=A0</div>
<div>&gt;&quot;No, since then you would require a tunnel in the other direc=
tion, a <br>&gt;so-called &quot;forwarded-tcpip&quot; tunnel, going from th=
e remote server to <br>&gt;your local machine. <br>&gt;That is a different =
type of channel from &quot;direct-tcpip&quot; and it is <br>
&gt;currently not implemented in libssh2. &quot;</div>
<div>Ok.... , assuming I have complete control on the remote server I wish =
to connect to, is there any action I can perform on that remote server, on =
the system level, that will make this tunnel working?</div>
<div>=A0</div>
<div>&gt;&quot;Part of the reason may be that this type of tunnel (forwarde=
d-tcpip) <br>&gt;requires libssh2 to dynamically create channels, based on =
nothing but <br>&gt;packets from the remote host. This does not fit so well=
 with how <br>
&gt;libssh2 was designed. <br>&gt;</div>
<div>&gt;That said, I think it would be great if libssh2 also supported <br=
>&gt;forwarded-tcpip channels, so please look into adding it! :)&quot; <br>=
</div>
<div>I am considering this, but honestly I cant afford to invest a long per=
iod of work on this matter</div>
<div>Can you give provide me with a focus on the pieces of code need to be =
changed and an exlanation of what I need to do</div>
<div>or a link to a good place that will explain?</div>
<div>If the scope of work for adding this capability is 2-3 days I will do =
it. <br></div>
<div>I would much appriciate if you could provide me with a focus and some =
guidlines of what I need to do.</div>
<div>=A0</div>
<div>10x in advance Dor<br></div>
<div class=3D"gmail_quote">On Thu, Jul 1, 2010 at 2:55 PM, Dor Zaidenberg <=
span dir=3D"ltr">&lt;<a href=3D"mailto:hannibal218@gmail.com">hannibal218@g=
mail.com</a>&gt;</span> wrote:<br>
<blockquote style=3D"BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex=
; PADDING-LEFT: 1ex" class=3D"gmail_quote">
<div dir=3D"ltr">Dear all.=20
<div><br></div>
<div>I am trying to use libssh2_channel_direct_tcpip_ex in order to establi=
sh a tunnel between the localmachine and a server. To this end I am working=
 with the direct_tcpip exmaple (both local machine and remote server use li=
nux)</div>

<div><br></div>
<div>I figured this is going to be very simple.</div>
<div>What I tried is :=A0</div>
<div>./direct_tcpip &lt;server_ip&gt; &lt;user&gt; &lt;pwd&gt; 127.0.0.1 80=
 localhost 20000</div>
<div>I hoped this will tunnel the my local machine&#39;s port 80 to the rem=
ote host at port 20000.</div>
<div>Then at the remote server I will type :</div>
<div>curl <a href=3D"http://localhost:20000/test.php" target=3D"_blank">htt=
p://localhost:20000/test.php</a> and it will be as if I connected to the lo=
cal machine.</div>
<div><br></div>
<div>Unfortionatly I got an error message (which is related to the 127.0.0.=
1 80) saying &quot;bind : address already in use&quot;</div>
<div><br></div>
<div>I take it that this is because the apache server on my local machine l=
istens to port 80, but isn&#39;t that the point of tunneling?</div>
<div><br></div>
<div>I am sure that I am missing something very basic (and stupid) in this,=
 can someone show me the light ?</div>
<div><br></div>
<div>my end goal is not to tunnel port 80, but to tunnel port 554 which is =
used for rtsp protocol but its easy to test with port 80</div>
<div><br></div>
<div>-- <br>Live Long And Prosper<br>Dor Zaidenberg<br></div></div></blockq=
uote></div><br><br clear=3D"all"><br>-- <br>Live Long And Prosper<br>Dor Za=
idenberg<br></div>

--00151750e9be60a8e7048a704e73--

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

--===============1066199874==--

From libssh2-devel-bounces@cool.haxx.se  Sat Jul  3 19:17:37 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o63HHIH6006006;
	Sat, 3 Jul 2010 19:17:33 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o63HHERx006001
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sat, 3 Jul 2010 19:17:17 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o63HH6wd003834
	for <libssh2-devel@cool.haxx.se>; Sat, 3 Jul 2010 10:17:10 -0700 (PDT)
Message-ID: <4C2F70CA.C9E4A2C@rcom-software.com>
Date: Sat, 03 Jul 2010 10:18:02 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ?
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<20100701193136.7348.qmail@stuge.se>
	<4C2D1E34.D4BEAC69@rcom-software.com>
	<20100702073540.17280.qmail@stuge.se>
	<4C2E017A.346EE4B1@rcom-software.com>
	<20100702215702.5380.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 03 Jul 2010 19:17:37 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 03 Jul 2010 19:17:17 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Peter:

Thank you for the clarification.  I am now confident I understand
what you wrote in your previous E-Mail messages. Incidentally,
the libssh2 package compiles without problems in the Debian
Linux environment.

Best Regards,

Paul R.


Peter Stuge wrote:

> Hi,
>
> Paul Romero wrote:
> > What you wrote seems clear to me.   However,  let me describe
> > the host and target environment again to insure we understand
> > each other.
>
> I don't know if we need to. :) I described a general recipe for how
> to cross-compile libssh2 so that you could do it regardless of your
> platform. I guessed at the particular tuple, and it even turned out
> to be what you are using.
>
> > The important target settings are as follows:
> >
> > ARCH=m68knommu
> > CROSS_COMPILE=m68k-elf-
> >
> > Does this make sense to you ?
>
> See the email I wrote before:
>
> > > Make sure the toolchain programs are included in your PATH, and use
> > > the --host=tuple parameter when configuring libssh2. Substitute tuple
> > > with the prefix for your toolchain, so if your toolchain provides
> > > m68k-elf-gcc, then run configure --host=m68k-elf and include the
> > > library paths needed.
>
> You should use exactly the host tuple I wrote in the last mail, make
> sure to not include the trailing - that you included in the
> CROSS_COMPILE variable above.
>
> Good luck! Please report your progress.
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul  4 11:55:31 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o649tBWP004345;
	Sun, 4 Jul 2010 11:55:27 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o649t9MZ004342
	for <libssh2-devel@cool.haxx.se>; Sun, 4 Jul 2010 11:55:09 +0200
Received: (qmail 14703 invoked by uid 501); 4 Jul 2010 09:55:07 -0000
Message-ID: <20100704095507.14702.qmail@stuge.se>
Date: Sun, 4 Jul 2010 11:55:06 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: help in understanding _direct_tcpip_ex()
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <AANLkTinxmBqv0qOF-ootjA6KcI_AQ-_u1aN0UNDeGj13@mail.gmail.com>
	<AANLkTikiC8z4xgr7JQDtye6Zwje2swuW1Bha0fpsUKGh@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <AANLkTikiC8z4xgr7JQDtye6Zwje2swuW1Bha0fpsUKGh@mail.gmail.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 04 Jul 2010 11:55:31 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 04 Jul 2010 11:55:09 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Dor,

Dor Zaidenberg wrote:
> I am no more registered on digest so things should work much better
> from now on...

Okey. No problem, I don't always have a chance to reply immediately
either.


> >"No, since then you would require a tunnel in the other direction, a
> >so-called "forwarded-tcpip" tunnel, going from the remote server to
> >your local machine.
> >That is a different type of channel from "direct-tcpip" and it is
> >currently not implemented in libssh2. "
> 
> Ok.... , assuming I have complete control on the remote server I wish
> to connect to, is there any action I can perform on that remote
> server, on the system level, that will make this tunnel working?

No, the lack of support would only be in libssh2. All servers already
support forwarded-tcpip, but I thought libssh2 didn't..


> >"Part of the reason may be that this type of tunnel (forwarded-tcpip)
> >requires libssh2 to dynamically create channels, based on nothing but
> >packets from the remote host. This does not fit so well with how
> >libssh2 was designed.
> >
> >That said, I think it would be great if libssh2 also supported
> >forwarded-tcpip channels, so please look into adding it! :)"
> 
> I am considering this, but honestly I cant afford to invest a long
> period of work on this matter
> Can you give provide me with a focus on the pieces of code need to be
> changed and an exlanation of what I need to do or a link to a good
> place that will explain?

..ehh - I just discovered that I'm completely wrong!

libssh2 *does* support also forwarded-tcpip tunnels, through the
libssh2_channel_forward_* API. I'm very sorry for the confusion!

Please check out the man pages for how to use it. It's similar to
regular sockets. First call _listen(), then _accept(). Wow, I'm
sorry about this confusion.

If you want to write an example that would be great. If not, I might
take a stab at it, but please don't wait for me to do it, it may take
a while.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul  4 14:32:01 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o64CV86s024401;
	Sun, 4 Jul 2010 14:31:19 +0200
Received: from yxa-v.extundo.com (yxa-v.extundo.com [83.241.177.39])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o64CV4LI024384
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 4 Jul 2010 14:31:05 +0200
Received: from mocca (c80-216-27-64.bredband.comhem.se [80.216.27.64])
	(authenticated bits=0)
	by yxa-v.extundo.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id
	o64CUlI5010070
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 4 Jul 2010 14:30:54 +0200
From: Simon Josefsson <simon@josefsson.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ?
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
OpenPGP: id=B565716F; url=http://josefsson.org/key.txt
X-Hashcash: 1:22:100704:libssh2-devel@cool.haxx.se::UufsPDdExbo7vRJR:63I3
Date: Sun, 04 Jul 2010 14:30:46 +0200
In-Reply-To: <4C2CE7A7.DE5EEF53@rcom-software.com> (Paul Romero's message of
	"Thu, 01 Jul 2010 12:08:23 -0700")
Message-ID: <87pqz3e8eh.fsf@mocca.josefsson.org>
User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
MIME-Version: 1.0
X-Spam-Status: No, score=-0.8 required=5.0 tests=AWL,BAYES_00,
	DATE_IN_FUTURE_96_XX,RDNS_DYNAMIC,SPF_FAIL autolearn=no version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on yxa-v.extundo.com
X-Virus-Scanned: clamav-milter 0.96.1 at yxa-v
X-Virus-Status: Clean
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 04 Jul 2010 14:32:01 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 04 Jul 2010 14:31:06 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul, what Peter and Daniel has said so far should have answered all
your questions, but let me add some more things for clarity.

Libssh2 has not been ported to uClinux in the sense that libssh2
provides the integration glue to make it part of a normal uClinux build
environment (i.e., make menuconfig + dep + all).  Doing so should be
relatively easy, and as you know I have posted recipes on this available
from http://josefsson.org/uclinux/ for a bunch of projects already, and
it should be very easy to adapt for example the gnutls or gsasl recipes
(which depends on libgpg-error + libgcrypt, like libssh2 does) for
libssh2 as well.

Fortunately, libssh2 does not require anything more than what GNU SASL
or GnuTLS requires from Libgcrypt: SSH2 uses standard crypto algorithms
like MD5, SHA1, HMAC, AES, RSA and DSA.

/Simon
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul  4 16:39:01 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o64Echle000466;
	Sun, 4 Jul 2010 16:38:58 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o64EcdWV000395
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 4 Jul 2010 16:38:41 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o64EcZfa035242
	for <libssh2-devel@cool.haxx.se>; Sun, 4 Jul 2010 07:38:35 -0700 (PDT)
Message-ID: <4C309D23.2561ED9B@rcom-software.com>
Date: Sun, 04 Jul 2010 07:39:31 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ?
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<87pqz3e8eh.fsf@mocca.josefsson.org>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 04 Jul 2010 16:39:01 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 04 Jul 2010 16:38:42 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Simon:

Thank you for answering my questions so thoroughly, and I complement
you on the clarity of the UC Linux porting menus on your website.
What versions of  libgcrypt and the the standard GSASL libraries
do you consider  most stable ? I am particularly curious about
libgnutls and those parts related to TLS.

Best Regards,

Paul R.


Simon Josefsson wrote:

> Paul, what Peter and Daniel has said so far should have answered all
> your questions, but let me add some more things for clarity.
>
> Libssh2 has not been ported to uClinux in the sense that libssh2
> provides the integration glue to make it part of a normal uClinux build
> environment (i.e., make menuconfig + dep + all).  Doing so should be
> relatively easy, and as you know I have posted recipes on this available
> from http://josefsson.org/uclinux/ for a bunch of projects already, and
> it should be very easy to adapt for example the gnutls or gsasl recipes
> (which depends on libgpg-error + libgcrypt, like libssh2 does) for
> libssh2 as well.
>
> Fortunately, libssh2 does not require anything more than what GNU SASL
> or GnuTLS requires from Libgcrypt: SSH2 uses standard crypto algorithms
> like MD5, SHA1, HMAC, AES, RSA and DSA.
>
> /Simon
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul  4 16:49:25 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o64EnJma008373;
	Sun, 4 Jul 2010 16:49:24 +0200
Received: from yxa-v.extundo.com (yxa-v.extundo.com [83.241.177.39])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o64EnHcS008363
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 4 Jul 2010 16:49:18 +0200
Received: from mocca (c80-216-27-64.bredband.comhem.se [80.216.27.64])
	(authenticated bits=0)
	by yxa-v.extundo.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id
	o64En8aa017857
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 4 Jul 2010 16:49:11 +0200
From: Simon Josefsson <simon@josefsson.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2: Ported to UC Linux ?
References: <4C2CE7A7.DE5EEF53@rcom-software.com>
	<87pqz3e8eh.fsf@mocca.josefsson.org>
	<4C309D23.2561ED9B@rcom-software.com>
OpenPGP: id=B565716F; url=http://josefsson.org/key.txt
X-Hashcash: 1:22:100704:libssh2-devel@cool.haxx.se::QzH1UQYSgGQ1Mv91:SL/
Date: Sun, 04 Jul 2010 16:49:06 +0200
In-Reply-To: <4C309D23.2561ED9B@rcom-software.com> (Paul Romero's message of
	"Sun, 04 Jul 2010 07:39:31 -0700")
Message-ID: <87wrtbb8v1.fsf@mocca.josefsson.org>
User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
MIME-Version: 1.0
X-Spam-Status: No, score=-0.8 required=5.0 tests=AWL,BAYES_00,
	DATE_IN_FUTURE_96_XX,RDNS_DYNAMIC,SPF_FAIL autolearn=no version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on yxa-v.extundo.com
X-Virus-Scanned: clamav-milter 0.96.1 at yxa-v
X-Virus-Status: Clean
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 04 Jul 2010 16:49:25 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 04 Jul 2010 16:49:18 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul Romero <paulr@rcom-software.com> writes:

> Hi Simon:
>
> Thank you for answering my questions so thoroughly, and I complement
> you on the clarity of the UC Linux porting menus on your website.
> What versions of  libgcrypt and the the standard GSASL libraries
> do you consider  most stable ? I am particularly curious about
> libgnutls and those parts related to TLS.

The safest bet (both for libssh2 and generally) is to use libgpg-error
1.8 (you may need to provide --enable-static since they disabled it by
default) and libgcrypt 1.4.5.  GnuTLS 2.8.6 is stable, as is GNU SASL
1.4.4.  If you need recent TLS renego stuff, you may want to try just
released GnuTLS 2.10.0 but I wouldn't label it stable at this point.

/Simon

> Best Regards,
>
> Paul R.
>
>
> Simon Josefsson wrote:
>
>> Paul, what Peter and Daniel has said so far should have answered all
>> your questions, but let me add some more things for clarity.
>>
>> Libssh2 has not been ported to uClinux in the sense that libssh2
>> provides the integration glue to make it part of a normal uClinux build
>> environment (i.e., make menuconfig + dep + all).  Doing so should be
>> relatively easy, and as you know I have posted recipes on this available
>> from http://josefsson.org/uclinux/ for a bunch of projects already, and
>> it should be very easy to adapt for example the gnutls or gsasl recipes
>> (which depends on libgpg-error + libgcrypt, like libssh2 does) for
>> libssh2 as well.
>>
>> Fortunately, libssh2 does not require anything more than what GNU SASL
>> or GnuTLS requires from Libgcrypt: SSH2 uses standard crypto algorithms
>> like MD5, SHA1, HMAC, AES, RSA and DSA.
>>
>> /Simon
>> _______________________________________________
>> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
> --
> Paul Romero
>
> RCOM Communications Software
>
> Phone/Fax: (510)339-2628
> E-Mail: paulr@rcom-software.com
>
>
> _______________________________________________
> 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  Tue Jul  6 10:45:21 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o668ivBx017106;
	Tue, 6 Jul 2010 10:45:16 +0200
Received: from mail-iw0-f182.google.com (mail-iw0-f182.google.com
	[209.85.214.182])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o668itfJ017058
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 10:44:56 +0200
Received: by iwn35 with SMTP id 35so5784215iwn.41
	for <libssh2-devel@cool.haxx.se>; Tue, 06 Jul 2010 01:44:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:received:mime-version:received:from:date
	:message-id:subject:to:content-type;
	bh=OqE1GASoW5NGy3AtgCdbuP5P2YX1BvGZeGA7AOr1keM=;
	b=Q1lqMzDY95VItR894XP/ASKf6kwFaNvybbVjAfPGHUQrnvb7xV8gL0EXSddFGEn7bq
	qw9EKFk32CjYZVwdvi5EqnZpiNkvxkk95q29EZw3+Fhd1cgrToQuOwa8xigeZ1m7D42r
	N7ytI1D6Mlg/x4crKFYXgOyzk/KbXNhvqye2A=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:from:date:message-id:subject:to:content-type;
	b=MPwq1ytPNIeJ7ppeixf8FYBg25nFYh3yAoVup1bAAsglinjF1PLXqSbd/vV5IKGHBg
	tERPsX8cDRHShPAKmDemDy4KxyUVVfWvkn5GoDJEihfiONK+ddkVqpvf4eMPzcX9hfZF
	kP2q6LCxu8KZFcfxw82sjgrkZ/JCPhl5+qWNY=
Received: by 10.231.30.130 with SMTP id u2mr3500110ibc.111.1278405892412; Tue, 
	06 Jul 2010 01:44:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.231.158.18 with HTTP; Tue, 6 Jul 2010 01:44:32 -0700 (PDT)
From: Dmitry Teslenko <dteslenko@gmail.com>
Date: Tue, 6 Jul 2010 12:44:32 +0400
Message-ID: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
Subject: MS Visual Studio 2005 Compile problem
To: libssh2-devel@cool.haxx.se
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 10:45:21 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 10:44:56 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hello!
I've managed to compile libssh2 itself but stumbled upon compiling
examples. Here's error log of msvc compiler for sftp.c example:

..\include\libssh2.h(620) : error C2061: syntax error : identifier
'libssh2_channel_read_ex'
..\include\libssh2.h(620) : error C2059: syntax error : ';'
..\include\libssh2.h(620) : error C2059: syntax error : 'type'
..\include\libssh2.h(650) : error C2061: syntax error : identifier
'libssh2_channel_write_ex'
..\include\libssh2.h(650) : error C2059: syntax error : ';'
..\include\libssh2.h(650) : error C2059: syntax error : 'type'
..\include\libssh2_sftp.h(236) : error C2061: syntax error :
identifier 'libssh2_sftp_read'
..\include\libssh2_sftp.h(236) : error C2059: syntax error : ';'
..\include\libssh2_sftp.h(236) : error C2059: syntax error : 'type'
..\include\libssh2_sftp.h(248) : error C2061: syntax error :
identifier 'libssh2_sftp_write'
..\include\libssh2_sftp.h(248) : error C2059: syntax error : ';'
..\include\libssh2_sftp.h(248) : error C2059: syntax error : 'type'
.\sftp.c(257) : warning C4013: 'libssh2_sftp_read' undefined; assuming
extern returning int
.\sftp.c(259) : warning C4013: 'write' undefined; assuming extern returning int

Am I missing some include/define?

-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  6 14:50:36 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o66CoGwB023239;
	Tue, 6 Jul 2010 14:50:32 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o66CoFfN023220
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 14:50:15 +0200
Date: Tue, 6 Jul 2010 14:50:15 +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: MS Visual Studio 2005 Compile problem
In-Reply-To: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1007061448430.24418@tvnag.unkk.fr>
References: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 14:50:36 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 14:50:15 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Tue, 6 Jul 2010, Dmitry Teslenko wrote:

> I've managed to compile libssh2 itself but stumbled upon compiling
> examples. Here's error log of msvc compiler for sftp.c example:

...

> Am I missing some include/define?

Line 620 uses ssize_t which looks to be typedef'ed on line 82, but only if you 
have LIBSSH2_WIN32 defined... So yes, define that on the command line.

Can anyone see a reason why we need LIBSSH2_WIN32 _and_ _MSC_VER and not just 
the latter?

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  6 14:55:54 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o66Cto2M025019;
	Tue, 6 Jul 2010 14:55:53 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o66CtnQP025014
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 14:55:49 +0200
Received: (qmail 14263 invoked by uid 501); 6 Jul 2010 12:55:47 -0000
Message-ID: <20100706125547.14262.qmail@stuge.se>
Date: Tue, 6 Jul 2010 14:55:47 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: MS Visual Studio 2005 Compile problem
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
	<alpine.DEB.2.00.1007061448430.24418@tvnag.unkk.fr>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.00.1007061448430.24418@tvnag.unkk.fr>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 14:55:54 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 14:55:49 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Daniel Stenberg wrote:
> Line 620 uses ssize_t which looks to be typedef'ed on line 82, but only if 
> you have LIBSSH2_WIN32 defined... So yes, define that on the command line.
>
> Can anyone see a reason why we need LIBSSH2_WIN32 _and_ _MSC_VER and not 
> just the latter?

_MSC_VER should be enough.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  6 15:04:30 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o66D4ONW003498;
	Tue, 6 Jul 2010 15:04:29 +0200
Received: from cardinal.doc.ic.ac.uk (cardinal.doc.ic.ac.uk [146.169.1.194])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o66D4M6B003479
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 15:04:22 +0200
Received: from mail-yx0-f182.google.com ([209.85.213.182])
	by cardinal.doc.ic.ac.uk with esmtpsa (TLS-1.0:RSA_ARCFOUR_MD5:16)
	(Exim 4.69) (envelope-from <awl03@doc.ic.ac.uk>) id 1OW7or-00037C-Gv
	for libssh2-devel@cool.haxx.se; Tue, 06 Jul 2010 14:04:14 +0100
Received: by yxn22 with SMTP id 22so124020yxn.41
	for <libssh2-devel@cool.haxx.se>; Tue, 06 Jul 2010 06:04:07 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.173.17 with SMTP id a17mr689072mup.84.1278421441861; Tue, 
	06 Jul 2010 06:04:01 -0700 (PDT)
Received: by 10.103.138.6 with HTTP; Tue, 6 Jul 2010 06:04:01 -0700 (PDT)
In-Reply-To: <20100706125547.14262.qmail@stuge.se>
References: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
	<alpine.DEB.2.00.1007061448430.24418@tvnag.unkk.fr>
	<20100706125547.14262.qmail@stuge.se>
Date: Tue, 6 Jul 2010 14:04:01 +0100
Message-ID: <AANLkTilPnG4H5sND212LMPiyDg6uMFE3RnAXsIfiTnY3@mail.gmail.com>
Subject: Re: MS Visual Studio 2005 Compile problem
From: Alexander Lamaison <awl03@doc.ic.ac.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-ICDoC-Trusted: YES
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 15:04:30 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 15:04:22 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Tuesday, July 6, 2010, Peter Stuge <peter@stuge.se> wrote:
> Daniel Stenberg wrote:
>> Line 620 uses ssize_t which looks to be typedef'ed on line 82, but only if
>> you have LIBSSH2_WIN32 defined... So yes, define that on the command line.
>>
>> Can anyone see a reason why we need LIBSSH2_WIN32 _and_ _MSC_VER and not
>> just the latter?
>
> _MSC_VER should be enough.

It's possible, of course, to compile a win32 version with a different
compiler. How will Borland, for instance, react in this case?

Alex

--
Swish - Easy SFTP for Windows http://www.swish-sftp.org
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  6 15:52:44 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o66DqUrE028107;
	Tue, 6 Jul 2010 15:52:42 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o66DqSlw028103
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 15:52:28 +0200
Received: (qmail 23308 invoked by uid 501); 6 Jul 2010 13:52:24 -0000
Message-ID: <20100706135224.23307.qmail@stuge.se>
Date: Tue, 6 Jul 2010 15:52:24 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: MS Visual Studio 2005 Compile problem
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
	<alpine.DEB.2.00.1007061448430.24418@tvnag.unkk.fr>
	<20100706125547.14262.qmail@stuge.se>
	<AANLkTilPnG4H5sND212LMPiyDg6uMFE3RnAXsIfiTnY3@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <AANLkTilPnG4H5sND212LMPiyDg6uMFE3RnAXsIfiTnY3@mail.gmail.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 15:52:44 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 15:52:28 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Alexander Lamaison wrote:
> >> Line 620 uses ssize_t which looks to be typedef'ed on line 82,
> >> but only if you have LIBSSH2_WIN32 defined...
> >>
> >> Can anyone see a reason why we need LIBSSH2_WIN32 _and_ _MSC_VER
> >> and not just the latter?
> >
> > _MSC_VER should be enough.
> 
> It's possible, of course, to compile a win32 version with a
> different compiler. How will Borland, for instance, react in this case?

Please test it and report. :)


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  6 15:59:31 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o66DxRB3030466;
	Tue, 6 Jul 2010 15:59:29 +0200
Received: from baza.doc.ic.ac.uk (baza.doc.ic.ac.uk [146.169.1.193])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o66DxPIg030435
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 15:59:25 +0200
Received: from mail-gx0-f182.google.com ([209.85.161.182])
	by baza.doc.ic.ac.uk with esmtpsa (TLS-1.0:RSA_ARCFOUR_MD5:16)
	(Exim 4.69) (envelope-from <awl03@doc.ic.ac.uk>) id 1OW8g9-0004OL-L3
	for libssh2-devel@cool.haxx.se; Tue, 06 Jul 2010 14:59:17 +0100
Received: by gxk24 with SMTP id 24so1143296gxk.41
	for <libssh2-devel@cool.haxx.se>; Tue, 06 Jul 2010 06:59:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.39.20 with SMTP id r20mr754080muj.134.1278424753525; Tue, 
	06 Jul 2010 06:59:13 -0700 (PDT)
Received: by 10.103.138.6 with HTTP; Tue, 6 Jul 2010 06:59:13 -0700 (PDT)
In-Reply-To: <20100706135224.23307.qmail@stuge.se>
References: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
	<alpine.DEB.2.00.1007061448430.24418@tvnag.unkk.fr>
	<20100706125547.14262.qmail@stuge.se>
	<AANLkTilPnG4H5sND212LMPiyDg6uMFE3RnAXsIfiTnY3@mail.gmail.com>
	<20100706135224.23307.qmail@stuge.se>
Date: Tue, 6 Jul 2010 14:59:13 +0100
Message-ID: <AANLkTil3XT85IARFWvMdmuASVu9J8p7UpXkni9d1TUrJ@mail.gmail.com>
Subject: Re: MS Visual Studio 2005 Compile problem
From: Alexander Lamaison <awl03@doc.ic.ac.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-ICDoC-Trusted: YES
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 15:59:31 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 15:59:25 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Tuesday, July 6, 2010, Peter Stuge <peter@stuge.se> wrote:
> Alexander Lamaison wrote:
>> >> Line 620 uses ssize_t which looks to be typedef'ed on line 82,
>> >> but only if you have LIBSSH2_WIN32 defined...
>> >>
>> >> Can anyone see a reason why we need LIBSSH2_WIN32 _and_ _MSC_VER
>> >> and not just the latter?
>> >
>> > _MSC_VER should be enough.
>>
>> It's possible, of course, to compile a win32 version with a
>> different compiler. How will Borland, for instance, react in this case?
>
> Please test it and report. :)

I don't actually have any of these other compilers. I'm just imagining
that relying on _MSC_VER might cause problems for those who do.

Alex
--
Swish - Easy SFTP for Windows http://www.swish-sftp.org
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  6 16:14:26 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o66EEJQb008491;
	Tue, 6 Jul 2010 16:14:25 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o66EEHBi008487
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 16:14:17 +0200
Received: (qmail 26823 invoked by uid 501); 6 Jul 2010 14:14:15 -0000
Message-ID: <20100706141415.26822.qmail@stuge.se>
Date: Tue, 6 Jul 2010 16:14:15 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: MS Visual Studio 2005 Compile problem
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <AANLkTinwGYBl0arcAPqMH_jEOUQxrxZx2VhHGKbvcOIh@mail.gmail.com>
	<alpine.DEB.2.00.1007061448430.24418@tvnag.unkk.fr>
	<20100706125547.14262.qmail@stuge.se>
	<AANLkTilPnG4H5sND212LMPiyDg6uMFE3RnAXsIfiTnY3@mail.gmail.com>
	<20100706135224.23307.qmail@stuge.se>
	<AANLkTil3XT85IARFWvMdmuASVu9J8p7UpXkni9d1TUrJ@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <AANLkTil3XT85IARFWvMdmuASVu9J8p7UpXkni9d1TUrJ@mail.gmail.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 16:14:26 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 16:14:17 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Alexander Lamaison wrote:
> >> How will Borland, for instance, react in this case?
> >
> > Please test it and report. :)
> 
> I don't actually have any of these other compilers. I'm just
> imagining that relying on _MSC_VER might cause problems for those
> who do.

Right. I think it's fine if MSC is the only non-gcc Windows compiler
that works. If we do have data for other compilers and can make them
work without much effort then we should of course do it. Until then,
I don't care. :) Binaries usually> source on Windows.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul  6 16:21:58 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o66ELsTg013861;
	Tue, 6 Jul 2010 16:21:57 +0200
Received: from earth.stuge.se (earth.stuge.se [213.88.146.15])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o66ELrHc013825
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Tue, 6 Jul 2010 16:21:53 +0200
Received: (qmail 29157 invoked from network); 6 Jul 2010 14:21:51 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
	by localhost with SMTP; 6 Jul 2010 14:21:51 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.12b1
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.12b1, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 06 Jul 2010 14:21:51 -0000
X-URL: http://trac.libssh2.org/
Subject: Re: [libssh2] #182: Various memory leaks
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/182#comment:16
Message-ID: <067.c81f4f7d279f515b811e891493e786a8@libssh2.stuge.se>
References: <052.82d75923d2eeae36ea3bf5c7c6e7729d@libssh2.stuge.se>
X-Trac-Ticket-ID: 182
In-Reply-To: <052.82d75923d2eeae36ea3bf5c7c6e7729d@libssh2.stuge.se>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 06 Jul 2010 16:21:58 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 06 Jul 2010 16:21:54 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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="utf-8"
Content-Transfer-Encoding: base64
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

IzE4MjogVmFyaW91cyBtZW1vcnkgbGVha3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICBSZXBvcnRl
cjogIGpvaG5A4oCmICAgICAgICAgICAgfCAgICAgICBPd25lcjogIGJhZ2Rlcg0KICAgICAgVHlw
ZTogIGRlZmVjdCAgICAgICAgICAgIHwgICAgICBTdGF0dXM6ICBjbG9zZWQNCiAgUHJpb3JpdHk6
ICBub3JtYWwgICAgICAgICAgICB8ICAgTWlsZXN0b25lOiAgMS4yLjcgDQogQ29tcG9uZW50OiAg
QVBJICAgICAgICAgICAgICAgfCAgICAgVmVyc2lvbjogIDEuMi42IA0KUmVzb2x1dGlvbjogIGZp
eGVkICAgICAgICAgICAgIHwgICAgS2V5d29yZHM6ICAgICAgICANCiAgICBCbG9ja3M6ICAgICAg
ICAgICAgICAgICAgICB8ICAgQmxvY2tlZCBCeTogICAgICAgIA0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpDaGFuZ2VzIChieSBiYWdkZXIpOgoKICAqIHN0YXR1czogIGFzc2lnbmVkID0+IGNsb3NlZA0K
ICAqIHJlc29sdXRpb246ICA9PiBmaXhlZA0KICAqIG1pbGVzdG9uZTogIDEuMi42ID0+IDEuMi43
DQoKCi0tIApUaWNrZXQgVVJMOiA8aHR0cDovL3RyYWMubGlic3NoMi5vcmcvdGlja2V0LzE4MiNj
b21tZW50OjE2PgpsaWJzc2gyIDxodHRwOi8vdHJhYy5saWJzc2gyLm9yZy8+CkMgbGlicmFyeSBm
b3Igd3JpdGluZyBwb3J0YWJsZSBTU0gyIGNsaWVudHMKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KbGlic3NoMi1kZXZlbCBodHRwOi8vY29vbC5oYXh4LnNl
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9saWJzc2gyLWRldmVsCg==

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 09:35:20 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o697Yv45020018;
	Fri, 9 Jul 2010 09:35:16 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o697YrhP019961
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 09:34:55 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o697YoJ1016912
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 00:34:50 -0700 (PDT)
Message-ID: <4C36D153.B9B1E672@rcom-software.com>
Date: Fri, 09 Jul 2010 00:35:47 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: SSH & SFTP: Passphrase Problem
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 09:35:20 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 09:34:55 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Dear Group:

I previously posted this problem to the libcurl group and after
considering it, think  it might actually be a libssh problem.

The general problem  is that if my private key is encrypted--with
a passphrase, I can't complete authentication with the SSH
server using libssh.  The situation is similar to the normal
Linux scenario where ssh-add is used to automatically
supply the passphrase for non-interactive applications.

Some details are as follows:  I am using the libcurl
curl_easy_set_opt() routine with CURLOPT_KEYPASSWD
to pass the passphrase with no special syntax. I receive
error code 67 and the diagnostic:
"SSH public key authentication failed: Unable to initialize
private key from file"

Do you have any insight about this problem ?

Best Regards,

Paul R.



--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 09:43:01 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o697gv34027703;
	Fri, 9 Jul 2010 09:43:00 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o697grsk027630
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 09:42:55 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o697gndP017096
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 00:42:50 -0700 (PDT)
Message-ID: <4C36D333.2277C6FF@rcom-software.com>
Date: Fri, 09 Jul 2010 00:43:47 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: SFTP and libssh
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 09:43:01 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 09:42:55 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Dear Group:

I would like your opinion about using libssh2 for non-blocking
SFTP file transfers.  I need to send files to another system
with SFTP but do not need to send multiple files concurrently
or anything like that.  However, it is important for
me not to be blocked during a long file transmission.

I am able to do this fairly well with libcurl but I suspect it
uses more memory and resources than libssh2 because it is
designed for more sophisticated tasks.  Do you think using libssh2
would work without too much difficulty ?

Best Regards,

Paul R.


--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 10:13:17 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o698D8nA013284;
	Fri, 9 Jul 2010 10:13:14 +0200
Received: from mx2.belnet.be (mx2.belnet.be [193.190.198.13])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o698D6sw013276
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 10:13:07 +0200
X-IronPort-AV: E=Sophos;i="4.53,562,1272837600"; 
   d="scan'208";a="686108"
Received: from firewall.belnet.be (HELO office.belnet.be) ([193.190.198.37])
	by mx2-out.belnet.be with ESMTP; 09 Jul 2010 10:13:05 +0200
Received: from localhost (judas.fw.belnet.be [127.0.0.1])
	by office.belnet.be (Postfix) with ESMTP id 258AF30293
	for <libssh2-devel@cool.haxx.se>; Fri,  9 Jul 2010 10:13:05 +0200 (CEST)
Received: from [172.24.185.254] (aris.fw.belnet.be [172.24.185.254])
	by office.belnet.be (Postfix) with ESMTP id 19B8B3028B
	for <libssh2-devel@cool.haxx.se>; Fri,  9 Jul 2010 10:13:05 +0200 (CEST)
Message-ID: <4C36DA10.5040808@0xbadc0de.be>
Date: Fri, 09 Jul 2010 10:13:04 +0200
From: Aris Adamantiadis <aris@0xbadc0de.be>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
	rv:1.9.1.10) Gecko/20100528 Thunderbird/3.0.5
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: SSH & SFTP: Passphrase Problem
References: <4C36D153.B9B1E672@rcom-software.com>
In-Reply-To: <4C36D153.B9B1E672@rcom-software.com>
X-Virus-Scanned: Belnet virus scanner
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 10:13:17 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 10:13:07 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Le 09/07/10 09:35, Paul Romero a =E9crit :
> Dear Group:
> =

> I previously posted this problem to the libcurl group and after
> considering it, think  it might actually be a libssh problem.
> =

Hi Paul,

please do not mix up libssh (http://www.libssh.org) and libssh2
(http://www.libssh2.org) which are two distinct SSH implementations.
That way people will have a better idea of what you're using.

Kr,

Aris
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 16:31:55 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o69EVWGd022599;
	Fri, 9 Jul 2010 16:31:49 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o69EVTvU022577
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 16:31:31 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o69EVO5j026030
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 07:31:24 -0700 (PDT)
Message-ID: <4C3732F3.49869A9@rcom-software.com>
Date: Fri, 09 Jul 2010 07:32:20 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: SSH & SFTP: Passphrase Problem
References: <4C36D153.B9B1E672@rcom-software.com>
	<4C36DA10.5040808@0xbadc0de.be>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 16:31:55 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 16:31:31 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Aris:

I apologize for the vague language, and am using libssh2.

Best Regards,

Paul R.


Aris Adamantiadis wrote:

> Le 09/07/10 09:35, Paul Romero a =E9crit :
> > Dear Group:
> >
> > I previously posted this problem to the libcurl group and after
> > considering it, think  it might actually be a libssh problem.
> >
> Hi Paul,
>
> please do not mix up libssh (http://www.libssh.org) and libssh2
> (http://www.libssh2.org) which are two distinct SSH implementations.
> That way people will have a better idea of what you're using.
>
> Kr,
>
> Aris
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 16:53:27 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o69ErKOA002731;
	Fri, 9 Jul 2010 16:53:26 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o69ErHK9002699
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 16:53:19 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o69ErDVg026799
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 07:53:13 -0700 (PDT)
Message-ID: <4C373810.F2962409@rcom-software.com>
Date: Fri, 09 Jul 2010 07:54:08 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: SSH & SFTP: Passphrase Problem + Libssh2 Correction
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 16:53:27 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 16:53:19 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Dear Group:

I previously posted this problem to the libcurl group and after
considering it, think  it might actually be a libssh2 problem.

The general problem  is that if my private key is encrypted--with
a passphrase, I can't complete authentication with the SSH
server using libssh.  The situation is similar to the normal
Linux scenario where ssh-add is used to automatically
supply the passphrase for non-interactive applications.

Some details are as follows:  I am using the libcurl
curl_easy_set_opt() routine with CURLOPT_KEYPASSWD
to pass the passphrase with no special syntax. I receive
error code 67 and the diagnostic:
"SSH public key authentication failed: Unable to initialize
private key from file"

Do you have any insight about this problem ?

Best Regards,

Paul R.



--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 20:32:02 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o69IVnOh006669;
	Fri, 9 Jul 2010 20:32:00 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o69IVmhB006661
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 20:31:48 +0200
Date: Fri, 9 Jul 2010 20:31:48 +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: SSH & SFTP: Passphrase Problem
In-Reply-To: <4C36D153.B9B1E672@rcom-software.com>
Message-ID: <alpine.DEB.2.00.1007092030300.6011@tvnag.unkk.fr>
References: <4C36D153.B9B1E672@rcom-software.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 20:32:02 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 20:31:48 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Fri, 9 Jul 2010, Paul Romero wrote:

> The general problem is that if my private key is encrypted--with a 
> passphrase, I can't complete authentication with the SSH server using 
> libssh.  The situation is similar to the normal Linux scenario where ssh-add 
> is used to automatically supply the passphrase for non-interactive 
> applications.
>
> Some details are as follows:  I am using the libcurl curl_easy_set_opt() 
> routine with CURLOPT_KEYPASSWD to pass the passphrase with no special 
> syntax. I receive error code 67 and the diagnostic: "SSH public key 
> authentication failed: Unable to initialize private key from file"
>
> Do you have any insight about this problem ?

As this is the libssh2 group and mailing list, can you please provide a 
libssh2-using code/example that repeats the problem without using libcurl?

Perhaps you can build one based on one of the many examples we provide in the 
tarball.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 22:07:18 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o69K75G1027971;
	Fri, 9 Jul 2010 22:07:16 +0200
Received: from yxa-v.extundo.com (yxa-v.extundo.com [83.241.177.39])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o69K73lJ027946
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 22:07:03 +0200
Received: from mocca (m83-188-188-148.cust.tele2.se [83.188.188.148])
	(authenticated bits=0)
	by yxa-v.extundo.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id
	o69K6mRA005147
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 22:06:55 +0200
From: Simon Josefsson <simon@josefsson.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: SSH & SFTP: Passphrase Problem + Libssh2 Correction
References: <4C373810.F2962409@rcom-software.com>
OpenPGP: id=B565716F; url=http://josefsson.org/key.txt
X-Hashcash: 1:22:100709:libssh2-devel@cool.haxx.se::MAVjKnCukrl8PM6N:Tv3W
Date: Fri, 09 Jul 2010 22:06:47 +0200
In-Reply-To: <4C373810.F2962409@rcom-software.com> (Paul Romero's message of
	"Fri, 09 Jul 2010 07:54:08 -0700")
Message-ID: <87d3uwl8rs.fsf@mocca.josefsson.org>
User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
MIME-Version: 1.0
X-Spam-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_00,
	DATE_IN_FUTURE_96_XX,RDNS_DYNAMIC,SPF_FAIL autolearn=no version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on yxa-v.extundo.com
X-Virus-Scanned: clamav-milter 0.96.1 at yxa-v
X-Virus-Status: Clean
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 22:07:18 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 22:07:03 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul Romero <paulr@rcom-software.com> writes:

> Dear Group:
>
> I previously posted this problem to the libcurl group and after
> considering it, think  it might actually be a libssh2 problem.
>
> The general problem  is that if my private key is encrypted--with
> a passphrase, I can't complete authentication with the SSH
> server using libssh.

Are you using libgcrypt or OpenSSL as the backend?  The libgcrypt
backend can only read unencrypted private keys.

Encrypted or not, having the private key in the same process as libssh2
code is likely a bad idea for security -- so I suggest that you use the
agent interface to move public/private key handling to a separate
process.  Then you can support any kind of private key (GnuTLS has code
to decrypt encrypted private keys).

/Simon
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 22:23:05 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o69KMuDv005005;
	Fri, 9 Jul 2010 22:23:03 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o69KMsrd004951
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 22:22:55 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o69KMnUf036312
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 13:22:49 -0700 (PDT)
Message-ID: <4C378551.B958E118@rcom-software.com>
Date: Fri, 09 Jul 2010 13:23:45 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: SSH & SFTP: Passphrase Problem + Libssh2 Correction
References: <4C373810.F2962409@rcom-software.com>
	<87d3uwl8rs.fsf@mocca.josefsson.org>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 22:23:05 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 22:22:56 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Simon:

I am glad you brought up this issue because I am NOT using OpenSSL.
Further, investigation is needed to determine if my environment can
support ssh-agent.  However, the security issue you mentioned
is very valid and difficult.  How do you recommend protecting private keys
in an automated environment ?

Best Regards,

Paul R.

Simon Josefsson wrote:

> Paul Romero <paulr@rcom-software.com> writes:
>
> > Dear Group:
> >
> > I previously posted this problem to the libcurl group and after
> > considering it, think  it might actually be a libssh2 problem.
> >
> > The general problem  is that if my private key is encrypted--with
> > a passphrase, I can't complete authentication with the SSH
> > server using libssh.
>
> Are you using libgcrypt or OpenSSL as the backend?  The libgcrypt
> backend can only read unencrypted private keys.
>
> Encrypted or not, having the private key in the same process as libssh2
> code is likely a bad idea for security -- so I suggest that you use the
> agent interface to move public/private key handling to a separate
> process.  Then you can support any kind of private key (GnuTLS has code
> to decrypt encrypted private keys).
>
> /Simon
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 22:35:37 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o69KZTav012424;
	Fri, 9 Jul 2010 22:35:35 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o69KZSdM012416
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 22:35:28 +0200
Received: (qmail 4901 invoked by uid 501); 9 Jul 2010 20:35:24 -0000
Message-ID: <20100709203524.4900.qmail@stuge.se>
Date: Fri, 9 Jul 2010 22:35:24 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: SSH & SFTP: Passphrase Problem + Libssh2 Correction
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C373810.F2962409@rcom-software.com>
	<87d3uwl8rs.fsf@mocca.josefsson.org>
	<4C378551.B958E118@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C378551.B958E118@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 22:35:37 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 22:35:28 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul Romero wrote:
> How do you recommend protecting private keys in an automated
> environment ?

It's very straightforward. Move them as far away from the application
as possible.

The first step is to use an agent process. Protected mode, MMUs and
the operating system offers some protection from errors in the
libssh2 application.

Next step is to make sure that the agent runs as a distinct user in
the OS, which gets you more protection at the kernel level.

A further step might be to move the key into dedicated hardware such
as a smart card or crypto token.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul  9 23:13:03 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o69LCo8L003554;
	Fri, 9 Jul 2010 23:13:01 +0200
Received: from yxa-v.extundo.com (yxa-v.extundo.com [83.241.177.39])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o69LCnes003546
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 23:12:49 +0200
Received: from mocca (m83-188-188-148.cust.tele2.se [83.188.188.148])
	(authenticated bits=0)
	by yxa-v.extundo.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id
	o69LCZiR009002
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 9 Jul 2010 23:12:41 +0200
From: Simon Josefsson <simon@josefsson.org>
To: libssh2-devel@cool.haxx.se
Subject: Re: SSH & SFTP: Passphrase Problem + Libssh2 Correction
References: <4C373810.F2962409@rcom-software.com>
	<87d3uwl8rs.fsf@mocca.josefsson.org>
	<4C378551.B958E118@rcom-software.com>
	<20100709203524.4900.qmail@stuge.se>
OpenPGP: id=B565716F; url=http://josefsson.org/key.txt
X-Hashcash: 1:22:100709:libssh2-devel@cool.haxx.se::NpanXlU7jpTFCPQJ:cnQE
Date: Fri, 09 Jul 2010 23:12:33 +0200
In-Reply-To: <20100709203524.4900.qmail@stuge.se> (Peter Stuge's message of
	"Fri, 9 Jul 2010 22:35:24 +0200")
Message-ID: <87zky0icla.fsf@mocca.josefsson.org>
User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
MIME-Version: 1.0
X-Spam-Status: No, score=-0.8 required=5.0 tests=AWL,BAYES_00,
	DATE_IN_FUTURE_96_XX,RDNS_DYNAMIC,SPF_FAIL autolearn=no version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on yxa-v.extundo.com
X-Virus-Scanned: clamav-milter 0.96.1 at yxa-v
X-Virus-Status: Clean
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 09 Jul 2010 23:13:03 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 09 Jul 2010 23:12:49 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Peter Stuge <peter@stuge.se> writes:

> Paul Romero wrote:
>> How do you recommend protecting private keys in an automated
>> environment ?
>
> It's very straightforward. Move them as far away from the application
> as possible.
>
> The first step is to use an agent process. Protected mode, MMUs and
> the operating system offers some protection from errors in the
> libssh2 application.
>
> Next step is to make sure that the agent runs as a distinct user in
> the OS, which gets you more protection at the kernel level.

Peter's suggestions are good, however between what is written above and
what is written below, I would suggest that the private keys are
encrypted on local storage, and that they are decrypted by the agent
process when needed.  Hopefully your environment can read the decryption
password from somewhere else than where the private keys are stored in
encrypted form.

> A further step might be to move the key into dedicated hardware such
> as a smart card or crypto token.

Let me note that libssh2 works fine with OpenPGP smartcards, any
supported GnuPG smartcard reader, and GnuPG2's gpg-agent with
--enable-ssh-support.  It may not be ideal for high performance server
applications though.

/Simon
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 10 15:24:58 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6ADOaSu024134;
	Sat, 10 Jul 2010 15:24:53 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6ADOZoo024127
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 15:24:35 +0200
Received: (qmail 10842 invoked by uid 501); 10 Jul 2010 13:24:32 -0000
Message-ID: <20100710132432.10841.qmail@stuge.se>
Date: Sat, 10 Jul 2010 15:24:32 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: SFTP and libssh
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C36D333.2277C6FF@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C36D333.2277C6FF@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 10 Jul 2010 15:24:58 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 10 Jul 2010 15:24:35 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul Romero wrote:
> I would like your opinion about using libssh2 for non-blocking
> SFTP file transfers.

It will work just fine.


> I am able to do this fairly well with libcurl but I suspect it
> uses more memory and resources than libssh2 because it is
> designed for more sophisticated tasks.  Do you think using libssh2
> would work without too much difficulty ?

Did you already have a look at some of the many SFTP examples
included with libssh2?


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 10 20:36:54 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6AIaXLH021880;
	Sat, 10 Jul 2010 20:36:49 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6AIaTve021855
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 20:36:31 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o6AIaNgn069409
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 11:36:23 -0700 (PDT)
Message-ID: <4C38BDDF.6D260DE1@rcom-software.com>
Date: Sat, 10 Jul 2010 11:37:19 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: SFTP and libssh
References: <4C36D333.2277C6FF@rcom-software.com>
	<20100710132432.10841.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 10 Jul 2010 20:36:54 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 10 Jul 2010 20:36:32 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Peter:

I looked at the examples and they are quite good. Also,
I performed some experiments and concluded libssh2
is well suited to my application.

I suppose the size of the library can be reduced by
disabling  libz compression.  I noticed PIC in the
configuration options. What is it and is it important ?

Finally, any hints about how to minimize the library
size would be appreciated.

Best Regards,

Paul R.


Peter Stuge wrote:

> Paul Romero wrote:
> > I would like your opinion about using libssh2 for non-blocking
> > SFTP file transfers.
>
> It will work just fine.
>
> > I am able to do this fairly well with libcurl but I suspect it
> > uses more memory and resources than libssh2 because it is
> > designed for more sophisticated tasks.  Do you think using libssh2
> > would work without too much difficulty ?
>
> Did you already have a look at some of the many SFTP examples
> included with libssh2?

>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 10 22:44:14 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6AKhwwd025928;
	Sat, 10 Jul 2010 22:44:12 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6AKhvPq025924
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 22:43:57 +0200
Received: (qmail 8665 invoked by uid 501); 10 Jul 2010 20:43:50 -0000
Message-ID: <20100710204350.8664.qmail@stuge.se>
Date: Sat, 10 Jul 2010 22:43:50 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: SFTP and libssh
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C36D333.2277C6FF@rcom-software.com>
	<20100710132432.10841.qmail@stuge.se>
	<4C38BDDF.6D260DE1@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C38BDDF.6D260DE1@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 10 Jul 2010 22:44:14 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 10 Jul 2010 22:43:57 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul Romero wrote:
> I looked at the examples and they are quite good. Also,
> I performed some experiments and concluded libssh2
> is well suited to my application.

Great!


> I suppose the size of the library can be reduced by
> disabling  libz compression.

I actually doubt that, since zlib is an external dependency. The code
in libssh2 that would call into zlib is very small, so the space
saving in libssh2 would be minimal. But if no other package in your
target system depends on zlib then you can obviously save the space
needed for that, by disabling compression.


> I noticed PIC in the configuration options. What is it and is it
> important ?

Short for Position Independent Code, and yes, all shared libraries
must be compiled PIC or the machine code will make assumptions on
which address in memory they will be running at, which can usually
not be predicted at build time.


> Finally, any hints about how to minimize the library size would be
> appreciated.

I'm sure you can get size down by removing everything from the
library that is not absolutely neccessary. If you do a good job at
that and come up with a clean patch against the current master
codebase which introduces some configure options for the minimal
behavior I would welcome that contribution into the official code.

Another option is of course for you to locally maintain a more brutal
modification of the code where you simply rip out things that you
know you will never use. Then you'll have to do more work to re-do
those changes if at some point you wish to use a newer version of
libssh2.

I just ran strip on the plain Linux objects built here:

/tmp/.libs $ ls -l
total 456
-rw-r--r-- 1 stuge stuge   3460 Jul 10 22:36 agent.o
-rw-r--r-- 1 stuge stuge  16512 Jul 10 22:36 channel.o
-rw-r--r-- 1 stuge stuge   2820 Jul 10 22:36 comp.o
-rw-r--r-- 1 stuge stuge   2396 Jul 10 22:36 crypt.o
-rw-r--r-- 1 stuge stuge    812 Jul 10 22:36 global.o
-rw-r--r-- 1 stuge stuge   2988 Jul 10 22:36 hostkey.o
-rw-r--r-- 1 stuge stuge   1084 Jul 10 22:36 keepalive.o
-rw-r--r-- 1 stuge stuge  15216 Jul 10 22:36 kex.o
-rw-r--r-- 1 stuge stuge   7988 Jul 10 22:36 knownhost.o
-rw-r--r-- 1 stuge stuge    432 Jul 10 22:36 libgcrypt.o
-rw-r--r-- 1 stuge stuge 123148 Jul 10 22:36 libssh2.a
-rw-r--r-- 1 stuge stuge   2817 May  3 15:26 libssh2.exp
lrwxrwxrwx 1 stuge stuge     13 Jul 10 22:33 libssh2.la -> ../libssh2.la
-rw-r--r-- 1 stuge stuge    938 May  3 15:26 libssh2.lai
lrwxrwxrwx 1 stuge stuge     16 Jul 10 22:33 libssh2.so -> libssh2.so.1.0.1
lrwxrwxrwx 1 stuge stuge     16 Jul 10 22:33 libssh2.so.1 -> libssh2.so.1.0.1
-rwxr-xr-x 1 stuge stuge 134128 Jul 10 22:36 libssh2.so.1.0.1
-rw-r--r-- 1 stuge stuge   2953 May  3 15:26 libssh2.ver
-rw-r--r-- 1 stuge stuge   2080 Jul 10 22:36 mac.o
-rw-r--r-- 1 stuge stuge   3056 Jul 10 22:36 misc.o
-rw-r--r-- 1 stuge stuge   3572 Jul 10 22:36 openssl.o
-rw-r--r-- 1 stuge stuge   7696 Jul 10 22:36 packet.o
-rw-r--r-- 1 stuge stuge    432 Jul 10 22:36 pem.o
-rw-r--r-- 1 stuge stuge   8352 Jul 10 22:36 publickey.o
-rw-r--r-- 1 stuge stuge   7996 Jul 10 22:36 scp.o
-rw-r--r-- 1 stuge stuge   8032 Jul 10 22:36 session.o
-rw-r--r-- 1 stuge stuge  18408 Jul 10 22:36 sftp.o
-rw-r--r-- 1 stuge stuge   4272 Jul 10 22:36 transport.o
-rw-r--r-- 1 stuge stuge  13284 Jul 10 22:36 userauth.o
-rw-r--r-- 1 stuge stuge    664 Jul 10 22:36 version.o

The largest offenders are SFTP, channel and userauth, all of which
you need. I guess you can strip userauth down selectively. Maybe you
can remove stuff like knownhost.o and scp.o and save a few kb..

But I have to say that if the system is so size constrained that you
need to hunt kilobytes then you will face severe problems quite soon
anyway, so in that case I'd work on increasing storage as soon as
possible instead.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 10 23:22:12 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6ALM1D1011964;
	Sat, 10 Jul 2010 23:22:09 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6ALLvpv011913
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 23:21:59 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o6ALLoX2073953
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 14:21:51 -0700 (PDT)
Message-ID: <4C38E4A7.249126B1@rcom-software.com>
Date: Sat, 10 Jul 2010 14:22:47 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: SFTP and libssh
References: <4C36D333.2277C6FF@rcom-software.com>
	<20100710132432.10841.qmail@stuge.se>
	<4C38BDDF.6D260DE1@rcom-software.com>
	<20100710204350.8664.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 10 Jul 2010 23:22:12 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 10 Jul 2010 23:22:00 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se



Peter Stuge wrote:

> Paul Romero wrote:
> > I looked at the examples and they are quite good. Also,
> > I performed some experiments and concluded libssh2
> > is well suited to my application.
>
> Great!
>
> > I suppose the size of the library can be reduced by
> > disabling  libz compression.
>
> I actually doubt that, since zlib is an external dependency. The code
> in libssh2 that would call into zlib is very small, so the space
> saving in libssh2 would be minimal. But if no other package in your
> target system depends on zlib then you can obviously save the space
> needed for that, by disabling compression.
>
> > I noticed PIC in the configuration options. What is it and is it
> > important ?
>
> Short for Position Independent Code, and yes, all shared libraries
> must be compiled PIC or the machine code will make assumptions on
> which address in memory they will be running at, which can usually
> not be predicted at build time.
>
> > Finally, any hints about how to minimize the library size would be
> > appreciated.
>
> I'm sure you can get size down by removing everything from the
> library that is not absolutely neccessary. If you do a good job at
> that and come up with a clean patch against the current master
> codebase which introduces some configure options for the minimal
> behavior I would welcome that contribution into the official code.
>
> Another option is of course for you to locally maintain a more brutal
> modification of the code where you simply rip out things that you
> know you will never use. Then you'll have to do more work to re-do
> those changes if at some point you wish to use a newer version of
> libssh2.
>
> I just ran strip on the plain Linux objects built here:
>
> /tmp/.libs $ ls -l
> total 456
> -rw-r--r-- 1 stuge stuge   3460 Jul 10 22:36 agent.o
> -rw-r--r-- 1 stuge stuge  16512 Jul 10 22:36 channel.o
> -rw-r--r-- 1 stuge stuge   2820 Jul 10 22:36 comp.o
> -rw-r--r-- 1 stuge stuge   2396 Jul 10 22:36 crypt.o
> -rw-r--r-- 1 stuge stuge    812 Jul 10 22:36 global.o
> -rw-r--r-- 1 stuge stuge   2988 Jul 10 22:36 hostkey.o
> -rw-r--r-- 1 stuge stuge   1084 Jul 10 22:36 keepalive.o
> -rw-r--r-- 1 stuge stuge  15216 Jul 10 22:36 kex.o
> -rw-r--r-- 1 stuge stuge   7988 Jul 10 22:36 knownhost.o
> -rw-r--r-- 1 stuge stuge    432 Jul 10 22:36 libgcrypt.o
> -rw-r--r-- 1 stuge stuge 123148 Jul 10 22:36 libssh2.a
> -rw-r--r-- 1 stuge stuge   2817 May  3 15:26 libssh2.exp
> lrwxrwxrwx 1 stuge stuge     13 Jul 10 22:33 libssh2.la -> ../libssh2.la
> -rw-r--r-- 1 stuge stuge    938 May  3 15:26 libssh2.lai
> lrwxrwxrwx 1 stuge stuge     16 Jul 10 22:33 libssh2.so -> libssh2.so.1.0.1
> lrwxrwxrwx 1 stuge stuge     16 Jul 10 22:33 libssh2.so.1 -> libssh2.so.1.0.1
> -rwxr-xr-x 1 stuge stuge 134128 Jul 10 22:36 libssh2.so.1.0.1
> -rw-r--r-- 1 stuge stuge   2953 May  3 15:26 libssh2.ver
> -rw-r--r-- 1 stuge stuge   2080 Jul 10 22:36 mac.o
> -rw-r--r-- 1 stuge stuge   3056 Jul 10 22:36 misc.o
> -rw-r--r-- 1 stuge stuge   3572 Jul 10 22:36 openssl.o
> -rw-r--r-- 1 stuge stuge   7696 Jul 10 22:36 packet.o
> -rw-r--r-- 1 stuge stuge    432 Jul 10 22:36 pem.o
> -rw-r--r-- 1 stuge stuge   8352 Jul 10 22:36 publickey.o
> -rw-r--r-- 1 stuge stuge   7996 Jul 10 22:36 scp.o
> -rw-r--r-- 1 stuge stuge   8032 Jul 10 22:36 session.o
> -rw-r--r-- 1 stuge stuge  18408 Jul 10 22:36 sftp.o
> -rw-r--r-- 1 stuge stuge   4272 Jul 10 22:36 transport.o
> -rw-r--r-- 1 stuge stuge  13284 Jul 10 22:36 userauth.o
> -rw-r--r-- 1 stuge stuge    664 Jul 10 22:36 version.o
>
> The largest offenders are SFTP, channel and userauth, all of which
> you need. I guess you can strip userauth down selectively. Maybe you
> can remove stuff like knownhost.o and scp.o and save a few kb..

I suppose the same applies to the agent code if your system is not or
can not run an agent.  Basically, I think you can comment everything
out it the following files: ssh2_agent.c and agent.c.

>
>
> But I have to say that if the system is so size constrained that you
> need to hunt kilobytes then you will face severe problems quite soon
> anyway, so in that case I'd work on increasing storage as soon as
> possible instead.
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 10 23:34:53 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6ALYlJG017547;
	Sat, 10 Jul 2010 23:34:52 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6ALYkGH017542
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 23:34:46 +0200
Received: (qmail 15530 invoked by uid 501); 10 Jul 2010 21:34:42 -0000
Message-ID: <20100710213442.15529.qmail@stuge.se>
Date: Sat, 10 Jul 2010 23:34:42 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: SFTP and libssh
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C36D333.2277C6FF@rcom-software.com>
	<20100710132432.10841.qmail@stuge.se>
	<4C38BDDF.6D260DE1@rcom-software.com>
	<20100710204350.8664.qmail@stuge.se>
	<4C38E4A7.249126B1@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C38E4A7.249126B1@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 10 Jul 2010 23:34:53 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 10 Jul 2010 23:34:46 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul Romero wrote:
> > Maybe you can remove stuff like knownhost.o and scp.o and save a
> > few kb..
> 
> I suppose the same applies to the agent code if your system is not or
> can not run an agent.  Basically, I think you can comment everything
> out it the following files: ssh2_agent.c and agent.c.

ssh2_agent.c is an example program which has absolutely nothing to do
with the library. The library source code is exclusively in the src/
subdirectory.

I did not suggest touching agent.o since you indicated that you were
interested in increasing security in the application, and several
people explained to you just yesterday that the agent interface is
what you would use to do that.

If you don't care for the security then you can save ~3kb. Making
that tradeoff is a bad idea in my opinion, but of course it isn't
my product. :)


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 11 00:14:06 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6AMDoO7001824;
	Sun, 11 Jul 2010 00:14:03 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6AMDk7L001800
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 11 Jul 2010 00:13:47 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o6AMDeo9075173
	for <libssh2-devel@cool.haxx.se>; Sat, 10 Jul 2010 15:13:40 -0700 (PDT)
Message-ID: <4C38F0CC.225FC95C@rcom-software.com>
Date: Sat, 10 Jul 2010 15:14:36 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: SFTP and libssh
References: <4C36D333.2277C6FF@rcom-software.com>
	<20100710132432.10841.qmail@stuge.se>
	<4C38BDDF.6D260DE1@rcom-software.com>
	<20100710204350.8664.qmail@stuge.se>
	<4C38E4A7.249126B1@rcom-software.com>
	<20100710213442.15529.qmail@stuge.se>
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 11 Jul 2010 00:14:06 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 11 Jul 2010 00:13:48 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Peter:

I understand the security issues and do care but ssh_agent
won't work in my environment.

Best Regards,

Paul R.


Peter Stuge wrote:

> Paul Romero wrote:
> > > Maybe you can remove stuff like knownhost.o and scp.o and save a
> > > few kb..
> >
> > I suppose the same applies to the agent code if your system is not or
> > can not run an agent.  Basically, I think you can comment everything
> > out it the following files: ssh2_agent.c and agent.c.
>
> ssh2_agent.c is an example program which has absolutely nothing to do
> with the library. The library source code is exclusively in the src/
> subdirectory.
>
> I did not suggest touching agent.o since you indicated that you were
> interested in increasing security in the application, and several
> people explained to you just yesterday that the agent interface is
> what you would use to do that.
>
> If you don't care for the security then you can save ~3kb. Making
> that tradeoff is a bad idea in my opinion, but of course it isn't
> my product. :)
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 11 00:41:44 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6AMfaPq016233;
	Sun, 11 Jul 2010 00:41:43 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6AMfZji016230
	for <libssh2-devel@cool.haxx.se>; Sun, 11 Jul 2010 00:41:35 +0200
Received: (qmail 23831 invoked by uid 501); 10 Jul 2010 22:41:31 -0000
Message-ID: <20100710224131.23830.qmail@stuge.se>
Date: Sun, 11 Jul 2010 00:41:30 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: SFTP and libssh
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C36D333.2277C6FF@rcom-software.com>
	<20100710132432.10841.qmail@stuge.se>
	<4C38BDDF.6D260DE1@rcom-software.com>
	<20100710204350.8664.qmail@stuge.se>
	<4C38E4A7.249126B1@rcom-software.com>
	<20100710213442.15529.qmail@stuge.se>
	<4C38F0CC.225FC95C@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C38F0CC.225FC95C@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 11 Jul 2010 00:41:44 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 11 Jul 2010 00:41:35 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Paul,

Paul Romero wrote:
> I understand the security issues and do care but ssh_agent
> won't work in my environment.

ssh_agent is the one from OpenSSH, and if that doesn't work then
maybe there is another one that will work. Simon mentioned that GnuPG
has an agent and it might even make sense to write your very own
agent for this product. The agent protocol is very straightforward.

The best documentation is probably in the OpenSSH codebase and you
can of course also look at what agent.c in libssh2 does, as well as
ask questions about the protocol both on the OpenSSH list and here.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 02:54:13 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6C0rmNQ027401;
	Mon, 12 Jul 2010 02:54:07 +0200
Received: from cardinal.doc.ic.ac.uk (cardinal.doc.ic.ac.uk [146.169.1.194])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6C0rkwX027393
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 02:53:47 +0200
Received: from mail-ww0-f54.google.com ([74.125.82.54])
	by cardinal.doc.ic.ac.uk with esmtpsa (TLS-1.0:RSA_ARCFOUR_MD5:16)
	(Exim 4.69) (envelope-from <awl03@doc.ic.ac.uk>) id 1OY7H7-0002rx-4i
	for libssh2-devel@cool.haxx.se; Mon, 12 Jul 2010 01:53:37 +0100
Received: by wwb22 with SMTP id 22so662456wwb.11
	for <libssh2-devel@cool.haxx.se>; Sun, 11 Jul 2010 17:53:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.227.138.9 with SMTP id y9mr2553198wbt.229.1278896016715; Sun, 
	11 Jul 2010 17:53:36 -0700 (PDT)
Received: by 10.216.7.129 with HTTP; Sun, 11 Jul 2010 17:53:36 -0700 (PDT)
Date: Mon, 12 Jul 2010 01:53:36 +0100
Message-ID: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
Subject: Detecting broken connection
From: Alexander Lamaison <awl03@doc.ic.ac.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-ICDoC-Trusted: YES
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 02:54:13 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 02:53:47 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

I keep a pool of connections open long-term.  Recently I've been using
them on wifi and realised that i don't handle broken sockets.  What's
the best way to do this so that I can resurrect stale sessions as
needed?  I want to test the connection somehow before issuing other
'commands' e.g. libssh2_sftp_open_ex.  Currently these return some
arbitrary failure (such as "Unable to send FXP_OPEN*" which I can't
distinguish from other general errors making ti hard to know when to
resurrect the session and when to report a failure.

Any advice is very welcome :)

Alex
--
Swish - Easy SFTP for Windows: http://www.swish-sftp.org
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 04:10:56 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6C26nga027907;
	Mon, 12 Jul 2010 04:07:02 +0200
Received: from hrndva-omtalb.mail.rr.com (hrndva-omtalb.mail.rr.com
	[71.74.56.124])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6C26lev027883
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 04:06:48 +0200
X-Authority-Analysis: v=1.1 cv=iR3a2x+wy8z+UqYHl7KFtKHYySPA0Tf/DXXAzrkvAHo=
	c=1 sm=0 a=mI6YO6ZdSLUA:10 a=O-pu0537hIgA:10 a=kj9zAlcOel0A:10
	a=9At4Jy2cJ7Ox3H4DxHCJAg==:17 a=FvPGjopzIVG54O7g_ZUA:9
	a=tdTducNnb1ITxAygVLvDAQuJpF8A:4 a=CjuIK1q_8ugA:10
	a=9At4Jy2cJ7Ox3H4DxHCJAg==:117
X-Cloudmark-Score: 0
X-Originating-IP: 70.116.71.237
Received: from [70.116.71.237] ([70.116.71.237:49176] helo=dc7100.roadrunn.com)
	by hrndva-oedge02.mail.rr.com (envelope-from <ngierman@roadrunn.com>)
	(ecelerity 2.2.2.39 r()) with ESMTP
	id 83/B5-17399-2B87A3C4; Mon, 12 Jul 2010 02:06:42 +0000
Received: by dc7100.roadrunn.com (Postfix, from userid 501)
	id BE4EA8309B2; Sun, 11 Jul 2010 21:01:36 -0500 (CDT)
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on dc7100.roadrunn.com
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00
	autolearn=ham version=3.2.5
Received: from ngierman3 (dc7100 [192.168.1.6])
	by dc7100.roadrunn.com (Postfix) with ESMTP id F094A8309B2
	for <libssh2-devel@cool.haxx.se>; Sun, 11 Jul 2010 21:01:35 -0500 (CDT)
From: "Neil Gierman" <ngierman@roadrunn.com>
To: "'libssh2 development'" <libssh2-devel@cool.haxx.se>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
In-Reply-To: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
Subject: RE: Detecting broken connection
Date: Sun, 11 Jul 2010 21:06:34 -0500
Message-ID: <000601cb2166$da9527a0$8fbf76e0$@com>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcshXZqfe6HI1U5VRgmp28rlO341mgACJLDA
Content-Language: en-us
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 04:07:04 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 04:06:48 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

> I keep a pool of connections open long-term.  Recently I've been using
> them on wifi and realised that i don't handle broken sockets.  What's
> the best way to do this so that I can resurrect stale sessions as
> needed?  I want to test the connection somehow before issuing other
> 'commands' e.g. libssh2_sftp_open_ex.  Currently these return some
> arbitrary failure (such as "Unable to send FXP_OPEN*" which I can't
> distinguish from other general errors making ti hard to know when to
> resurrect the session and when to report a failure.
> 
> Any advice is very welcome :)
> 

I had this same problem and the only way I was able to address it was to
move to non-blocking sockets and run select to see of the socket is happy.
Most of what I did was from the non blocking examples in the source code.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 16:53:41 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CErKJT023161;
	Mon, 12 Jul 2010 16:53:37 +0200
Received: from mail-ww0-f54.google.com (mail-ww0-f54.google.com [74.125.82.54])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CErJiQ023152
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 16:53:20 +0200
Received: by wwi18 with SMTP id 18so97387wwi.11
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 07:53:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=googlemail.com; s=gamma;
	h=domainkey-signature:mime-version:received:sender:received
	:in-reply-to:references:date:x-google-sender-auth:message-id:subject
	:from:to:content-type:content-transfer-encoding;
	bh=rwIIPH6XkzZGKRQ+Wmq8gWY/vlybzZzlz/Ljxchui3c=;
	b=Omg1lYSWlQPdsdrHEKjZqoxVJor3KHo5QBL/5akMYdjHF0zT/FiC7aUyIJCICcS7BW
	FVE8h3/jR16I75wj0Q95zViUiLSX13lfHYtoE8rwGiAyMqjIqZHoM5js2nNxAP+UM4Nc
	Bkl4HjwDLwG76fRHsyyzfd5TUlxLmsD7w86PM=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:content-type
	:content-transfer-encoding;
	b=aKmt+2N5PaYwbVU/jRDvHmEe+6Yyx6oK+8eqJf4MxNLYg4jATHu/vBry1XjHM8VW6w
	TMUYeIuChfgUl39UWXv6KxIQc9koFwWdzGgSH/spVG3kAtiHt3LM1iPI29igddDHlP59
	hN7HKIesc4rS5Ee5J4Dqdv0TPPE/CaVY6rHCc=
MIME-Version: 1.0
Received: by 10.227.28.156 with SMTP id m28mr993437wbc.114.1278946390713; Mon, 
	12 Jul 2010 07:53:10 -0700 (PDT)
Received: by 10.216.7.129 with HTTP; Mon, 12 Jul 2010 07:53:10 -0700 (PDT)
In-Reply-To: <000601cb2166$da9527a0$8fbf76e0$@com>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
Date: Mon, 12 Jul 2010 15:53:10 +0100
X-Google-Sender-Auth: 1qaIh73tb6BtBz5uw-XskIcemkc
Message-ID: <AANLkTikcjJy2E9wDioWbkp9cdj82cGQQ-6FGAv6FvlCo@mail.gmail.com>
Subject: Re: Detecting broken connection
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 16:53:41 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 16:53:20 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On 12 July 2010 03:06, Neil Gierman <ngierman@roadrunn.com> wrote:
>> I keep a pool of connections open long-term. =A0Recently I've been using
>> them on wifi and realised that i don't handle broken sockets. =A0What's
>> the best way to do this so that I can resurrect stale sessions as
>> needed? =A0I want to test the connection somehow before issuing other
>> 'commands' e.g. libssh2_sftp_open_ex. =A0Currently these return some
>> arbitrary failure (such as "Unable to send FXP_OPEN*" which I can't
>> distinguish from other general errors making ti hard to know when to
>> resurrect the session and when to report a failure.
>>
>> Any advice is very welcome :)
>>
>
> I had this same problem and the only way I was able to address it was to
> move to non-blocking sockets and run select to see of the socket is happy.
> Most of what I did was from the non blocking examples in the source code.

How would non-blocking help here?  As I understand it, if I use
non-blocking all I do is filter for EAGAIN in a loop.  It doesn't
distinguish other errors from broken connection errors.

I'm not very familiar with select.  What would the consequences be of
using it on a socket if libssh2 is in blocking mode?

Thanks.

Alex
--
Swish - Easy SFTP for Windows: http://www.swish-sftp.org
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 18:03:09 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CG2qCU031217;
	Mon, 12 Jul 2010 18:03:08 +0200
Received: from hrndva-omtalb.mail.rr.com (hrndva-omtalb.mail.rr.com
	[71.74.56.122])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CG2otX031104
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 18:02:51 +0200
X-Authority-Analysis: v=1.1 cv=FmZLatDjtfD3C7oE6GdrxaCbsxiNBR9ZXBX9JZchN1o=
	c=1 sm=0 a=mI6YO6ZdSLUA:10 a=O-pu0537hIgA:10 a=kj9zAlcOel0A:10
	a=9At4Jy2cJ7Ox3H4DxHCJAg==:17 a=TfxkriyRPoTBT1httJ0A:9
	a=vXMss1oxZGB7rbk4frX0kxYwxvAA:4 a=CjuIK1q_8ugA:10
	a=9At4Jy2cJ7Ox3H4DxHCJAg==:117
X-Cloudmark-Score: 0
X-Originating-IP: 70.116.71.237
Received: from [70.116.71.237] ([70.116.71.237:52800] helo=dc7100.roadrunn.com)
	by hrndva-oedge03.mail.rr.com (envelope-from <ngierman@roadrunn.com>)
	(ecelerity 2.2.2.39 r()) with ESMTP
	id 2F/4C-08568-2AC3B3C4; Mon, 12 Jul 2010 16:02:43 +0000
Received: by dc7100.roadrunn.com (Postfix, from userid 501)
	id E067A8309B2; Mon, 12 Jul 2010 10:57:33 -0500 (CDT)
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on dc7100.roadrunn.com
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00
	autolearn=ham version=3.2.5
Received: from ngierman3 (dc7100 [192.168.1.6])
	by dc7100.roadrunn.com (Postfix) with ESMTP id D2D608309B2
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 10:57:32 -0500 (CDT)
From: "Neil Gierman" <ngierman@roadrunn.com>
To: "'libssh2 development'" <libssh2-devel@cool.haxx.se>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>	<000601cb2166$da9527a0$8fbf76e0$@com>
	<AANLkTikcjJy2E9wDioWbkp9cdj82cGQQ-6FGAv6FvlCo@mail.gmail.com>
In-Reply-To: <AANLkTikcjJy2E9wDioWbkp9cdj82cGQQ-6FGAv6FvlCo@mail.gmail.com>
Subject: RE: Detecting broken connection
Date: Mon, 12 Jul 2010 11:02:49 -0500
Message-ID: <000301cb21db$ad0791e0$0716b5a0$@com>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Acsh0vLEH9vSqxzDTZudI0HaFxUObwAA8TbA
Content-Language: en-us
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 18:03:09 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 18:02:51 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

> How would non-blocking help here?  As I understand it, if I use
> non-blocking all I do is filter for EAGAIN in a loop.  It doesn't
> distinguish other errors from broken connection errors.

In that EAGAIN Loop you should also be able to run select to check the
status of the socket itself.

> 
> I'm not very familiar with select.  What would the consequences be of
> using it on a socket if libssh2 is in blocking mode?
> 
> Thanks.
> 

In blocking mode, you don't have the ability to check the socket once you
make the call. If you want to check the status of the socket before you make
the blocking call that would work as well.


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 18:31:30 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CGVNdi017476;
	Mon, 12 Jul 2010 18:31:29 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CGVMcr017469
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 18:31:22 +0200
Date: Mon, 12 Jul 2010 18:31:22 +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: Detecting broken connection
In-Reply-To: <000601cb2166$da9527a0$8fbf76e0$@com>
Message-ID: <alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 18:31:30 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 18:31:22 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Sun, 11 Jul 2010, Neil Gierman wrote:

> I had this same problem and the only way I was able to address it was to 
> move to non-blocking sockets and run select to see of the socket is happy. 
> Most of what I did was from the non blocking examples in the source code.

There's no need for non-blocking for that.

If you _know_ the sockets should be silent (ie there's no TCP traffic on them) 
you can select() to see if they've become readable, and if they are in spite 
of you knowing they shouldn't be, reading 0 bytes from them indicates they're 
disconnected.

Of course, TCP connections can just go "stalled" as well without being 
possible to detect this easily.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 20:12:25 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CIC6tR015669;
	Mon, 12 Jul 2010 20:12:22 +0200
Received: from smtp.kineticode.com (host-201.commandprompt.net
	[207.173.203.201])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CIC5od015644
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 20:12:05 +0200
Received: from [10.0.1.15] (c-24-21-193-250.hsd1.or.comcast.net
	[24.21.193.250])
	by smtp.kineticode.com (Postfix) with ESMTPSA id 7625C50805C;
	Mon, 12 Jul 2010 11:12:00 -0700 (PDT)
From: "David E. Wheeler" <david@kineticode.com>
Subject: Error Handling with Net::SSH2
Date: Mon, 12 Jul 2010 11:11:59 -0700
Message-Id: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (Apple Message framework v1081)
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 20:12:25 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 20:12:06 +0200 (CEST)
Cc: Bret Dawson <bret@pectopah.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Howdy,

I've updated the code in Bricolage that uses Net::SSH2 (the Perl interface to libssh2) to distribute files to servers. The update now properly checks error conditions. As a result, there are now more errors to deal with. So I'm trying to figure out the cause of them. The complete code is here:

  http://github.com/bricoleurs/bricolage/blob/master/lib/Bric/Util/Trans/SFTP.pm

The first error is from this excerpt from line 290:

    my $ret = $ssh2->auth(
        ($server->get_login ? (
            username   => $server->get_login,
            password   => $server->get_password,
        ) : ()),
        (SFTP_PUBLIC_KEY_FILE ? (
            publickey  => SFTP_PUBLIC_KEY_FILE,
            privatekey => SFTP_PRIVATE_KEY_FILE,
        ) : ()),
    );
    throw_gen(
        error => "Error authenticating to '$hn' via SSH2",
        payload => join ' ', $ssh2->error,
    ) unless $ret && $ssh2->auth_ok;

The error, thrown in that last statement, is:

  -37 LIBSSH2_ERROR_EAGAIN Would block requesting userauth list

I think that there might be both a login and a SFTP_PUBLIC_KEY_FILE value. Is there really any harm in passing both the username/password and publickey/privatekey params? Is that in fact the source of the error? Should this error simply be ignored?

The second error comes from this statement at line 177:

    $sftp->rename($temp_dest, $dest_file) or throw_gen(
        error   => "Error renaming '$temp_dest' to '$dest_file' on '$hn'",
        payload => join ' ', $sftp->error
    );

The error is:

  4 SSH_FX_FAILURE

Which seems to be because the server to which we've connected has generated some sort of error. But beyond that, I'm mystified. The call to scp_put() appears to have worked at line 172, so I'm not sure why it would complain about a rename(). Is there any way to get more information about the underlying error?

Thanks,

David

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 20:34:37 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CIYW2h028739;
	Mon, 12 Jul 2010 20:34:36 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CIYURt028724; Mon, 12 Jul 2010 20:34:30 +0200
Date: Mon, 12 Jul 2010 20:34:30 +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: Error Handling with Net::SSH2
In-Reply-To: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
Message-ID: <alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 20:34:37 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 20:34:30 +0200 (CEST)
Cc: Bret Dawson <bret@pectopah.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Mon, 12 Jul 2010, David E. Wheeler wrote:

> The error, thrown in that last statement, is:
>
>  -37 LIBSSH2_ERROR_EAGAIN Would block requesting userauth list

This might be a wrong error code as I think we fixed a bug related to such a 
case a while ago. What libssh2 version are you using?

> The second error comes from this statement at line 177:
>
>    $sftp->rename($temp_dest, $dest_file) or throw_gen(
>        error   => "Error renaming '$temp_dest' to '$dest_file' on '$hn'",
>        payload => join ' ', $sftp->error
>    );
>
> The error is:
>
>  4 SSH_FX_FAILURE
>
> Which seems to be because the server to which we've connected has generated 
> some sort of error. But beyond that, I'm mystified. The call to scp_put() 
> appears to have worked at line 172, so I'm not sure why it would complain 
> about a rename(). Is there any way to get more information about the 
> underlying error?

I would recommend enabling debug tracing with libssh2 and that you then submit 
that log here. But a related test is also to see if for example openssh's sftp 
client can do the rename without problem.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 21:08:53 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CJ8i2A019097;
	Mon, 12 Jul 2010 21:08:52 +0200
Received: from smtp.kineticode.com (host-201.commandprompt.net
	[207.173.203.201])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CJ8g2B019091
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 21:08:43 +0200
Received: from [10.0.1.15] (c-24-21-193-250.hsd1.or.comcast.net
	[24.21.193.250])
	by smtp.kineticode.com (Postfix) with ESMTPSA id 5AAF850805C;
	Mon, 12 Jul 2010 12:08:39 -0700 (PDT)
Subject: Re: Error Handling with Net::SSH2
Mime-Version: 1.0 (Apple Message framework v1081)
From: "David E. Wheeler" <david@kineticode.com>
In-Reply-To: <alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
Date: Mon, 12 Jul 2010 12:08:38 -0700
Message-Id: <23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 21:08:53 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 21:08:43 +0200 (CEST)
Cc: Bret Dawson <bret@pectopah.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 12, 2010, at 11:34 AM, Daniel Stenberg wrote:

> On Mon, 12 Jul 2010, David E. Wheeler wrote:
> 
>> The error, thrown in that last statement, is:
>> 
>> -37 LIBSSH2_ERROR_EAGAIN Would block requesting userauth list
> 
> This might be a wrong error code as I think we fixed a bug related to such a case a while ago. What libssh2 version are you using?

The report for these issues came from Bret Dawson, whom I've Cc'd.

Bret, can you check that with

  perl -MNet::SSH2 -le 'print Net::SSH2->version'

?

> I would recommend enabling debug tracing with libssh2 and that you then submit that log here. But a related test is also to see if for example openssh's sftp client can do the rename without problem.

Bret, I need to rely on you for this, too. In Bric::Util::Trans::SFTP, just add, near the top:

  Net::SSH2->debug(1);

Then tail your log (debugging will be sent to STDERR).

Thanks for the pointers, Daniel.

Best,

David

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 22:31:43 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CKVUlN030051;
	Mon, 12 Jul 2010 22:31:42 +0200
Received: from smtp.kineticode.com (host-201.commandprompt.net
	[207.173.203.201])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CKVR3G030037
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 22:31:28 +0200
Received: from [10.0.1.15] (c-24-21-193-250.hsd1.or.comcast.net
	[24.21.193.250])
	by smtp.kineticode.com (Postfix) with ESMTPSA id 7E9D250805C;
	Mon, 12 Jul 2010 13:31:23 -0700 (PDT)
Subject: Re: Error Handling with Net::SSH2
Mime-Version: 1.0 (Apple Message framework v1081)
From: "David E. Wheeler" <david@kineticode.com>
In-Reply-To: <1278965497.2016.20.camel@bret-redbook>
Date: Mon, 12 Jul 2010 13:31:22 -0700
Message-Id: <E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
	<23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
	<1278965497.2016.20.camel@bret-redbook>
To: Bret Dawson <bret@pectopah.com>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 22:31:43 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 22:31:28 +0200 (CEST)
Cc: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 12, 2010, at 1:11 PM, Bret Dawson wrote:

> Hi David
> 
> Here are those details. Crossing my fingers!
> 
>> Bret, can you check that with
>> 
>>  perl -MNet::SSH2 -le 'print Net::SSH2->version'
> 
> 1.165792SSH-2.0-libssh2_1.1

Thanks.

>> Bret, I need to rely on you for this, too. In Bric::Util::Trans::SFTP, just add, near the top:
>> 
>>  Net::SSH2->debug(1);
>> 
>> Then tail your log (debugging will be sent to STDERR).
> 
> These are the relevant lines from the Bricolage error log, which don't
> reveal too much more than the original stack. Is that the log you meant?
> 
> .0.4 Perl/v5.10.0 configured -- resuming normal operations
> Net::SSH2: created new object 0x23561e88
> [Mon Jul 12 20:08:13 2010] [error] [client 68.49.236.34] Error
> authenticating to 'arse.ca' via SSH2: -37 LIBSSH2_ERROR_EAGAIN Would
> block requesting userauth list, referer:
> https://hostname.hostname.host/workflow/profile/preview/control/story/1025?checkout=1
> [/usr/local/bricolage/lib/Bric/Util/Trans/SFTP.pm:300]

<snip/>

No, that's just a Perl stack track. We need debugging output from libssh2. I'm hoping that if you turn on Net::SSH2->debug(1) and restart and try the distribution again, it will send a lot more info to the log as to what it's doing.

But can you do a rename using scp on the command-line?

Thanks,

David

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 22:39:44 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CKddRQ000350;
	Mon, 12 Jul 2010 22:39:43 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CKdcYp000344; Mon, 12 Jul 2010 22:39:38 +0200
Date: Mon, 12 Jul 2010 22:39:38 +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: Error Handling with Net::SSH2
In-Reply-To: <E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
Message-ID: <alpine.DEB.2.00.1007122232400.1036@tvnag.unkk.fr>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
	<23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
	<1278965497.2016.20.camel@bret-redbook>
	<E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 22:39:44 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 22:39:38 +0200 (CEST)
Cc: Bret Dawson <bret@pectopah.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Mon, 12 Jul 2010, David E. Wheeler wrote:

>> 1.165792SSH-2.0-libssh2_1.1

libssh2 1.1 is actually quite old by now, we've done 7 releases since then and 
fixed numerous bugs. It would be a good idea to start out by trying to update 
libssh2 to a recent release!

> But can you do a rename using scp on the command-line?

scp can't rename. scp is just a thin layer on top of SSH, while SFTP is a 
complete subsystem and uses a different code path in the server end than what 
plain SSH/SCP does, so a test with another tool would have to use SFTP for the 
test to be valid.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 12 23:47:18 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6CLkxlE003061;
	Mon, 12 Jul 2010 23:47:14 +0200
Received: from smtp.kineticode.com (host-201.commandprompt.net
	[207.173.203.201])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6CLkvGc003054
	for <libssh2-devel@cool.haxx.se>; Mon, 12 Jul 2010 23:46:57 +0200
Received: from [10.0.1.15] (c-24-21-193-250.hsd1.or.comcast.net
	[24.21.193.250])
	by smtp.kineticode.com (Postfix) with ESMTPSA id 53D0550805F;
	Mon, 12 Jul 2010 14:46:52 -0700 (PDT)
Subject: Re: Error Handling with Net::SSH2
Mime-Version: 1.0 (Apple Message framework v1081)
From: "David E. Wheeler" <david@kineticode.com>
In-Reply-To: <alpine.DEB.2.00.1007122232400.1036@tvnag.unkk.fr>
Date: Mon, 12 Jul 2010 14:46:51 -0700
Message-Id: <98730370-6A2D-4129-A853-2A5551907EC7@kineticode.com>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
	<23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
	<1278965497.2016.20.camel@bret-redbook>
	<E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
	<alpine.DEB.2.00.1007122232400.1036@tvnag.unkk.fr>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 12 Jul 2010 23:47:18 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 12 Jul 2010 23:46:57 +0200 (CEST)
Cc: Bret Dawson <bret@pectopah.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 12, 2010, at 1:39 PM, Daniel Stenberg wrote:

> On Mon, 12 Jul 2010, David E. Wheeler wrote:
> 
>>> 1.165792SSH-2.0-libssh2_1.1
> 
> libssh2 1.1 is actually quite old by now, we've done 7 releases since then and fixed numerous bugs. It would be a good idea to start out by trying to update libssh2 to a recent release!
> 
>> But can you do a rename using scp on the command-line?
> 
> scp can't rename. scp is just a thin layer on top of SSH, while SFTP is a complete subsystem and uses a different code path in the server end than what plain SSH/SCP does, so a test with another tool would have to use SFTP for the test to be valid.

Right, sorry, I mean sftp.

Thanks,

David


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 13 05:25:36 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6D3PDtV003885;
	Tue, 13 Jul 2010 05:25:31 +0200
Received: from smtp.kineticode.com (host-201.commandprompt.net
	[207.173.203.201])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6D3PBB4003880
	for <libssh2-devel@cool.haxx.se>; Tue, 13 Jul 2010 05:25:12 +0200
Received: from [10.0.1.15] (c-24-21-193-250.hsd1.or.comcast.net
	[24.21.193.250])
	by smtp.kineticode.com (Postfix) with ESMTPSA id 5E5AF50805F;
	Mon, 12 Jul 2010 20:25:09 -0700 (PDT)
Subject: Re: Error Handling with Net::SSH2
Mime-Version: 1.0 (Apple Message framework v1081)
From: "David E. Wheeler" <david@kineticode.com>
In-Reply-To: <1278979518.3604.57.camel@bret-redbook>
Date: Mon, 12 Jul 2010 20:25:08 -0700
Message-Id: <930492C4-FF24-41CD-BA80-694A3051F9F2@kineticode.com>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
	<23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
	<1278965497.2016.20.camel@bret-redbook>
	<E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
	<1278979518.3604.57.camel@bret-redbook>
To: Bret Dawson <bret@pectopah.com>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 13 Jul 2010 05:25:36 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 13 Jul 2010 05:25:12 +0200 (CEST)
Cc: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 12, 2010, at 5:05 PM, Bret Dawson wrote:

> Those are the steps I followed:
> 
> 1. turn on Net::SSH2->debug(1), then
> 2. restart Bricolage, then 
> 3. re-try distribution) 
> 
> The difference was just that one extra line in the error log:
> "Net::SSH2: created new object 0x23561e88"

Bah! Okay, there is no way to turn on ssh2 tracing via the Net::SSH2 API. You'll have to uncomment this line in SSH2.xs and rebuild:

    /*libssh2_trace(RETVAL->session, -1);*/  /* enable tracing if debug build */

>> But can you do a rename using scp on the command-line?
> 
> Using sftp, yes, I can. It was the first time I'd used sftp at the
> commandline, and I got a first-time warning ("authenticity can't be
> established, are you sure, permanently adding to known hpsts, etc.")
> just like the one you see the first time you login by ssh. But this is a
> machine I login to all the time, from a source machine I use all the
> time. Does sftp keep its own list of known hosts? 

Seems likely.

> Update: The SFTP distribution now seems to work with username/password.
> Key-only still fails, with the same error as before. 

Hopefully the trace will help. But also upgrade to the latest libssh2, as Daniel says that your version is pretty old.

Best,

David

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 13 20:45:41 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6DIjNv7020817;
	Tue, 13 Jul 2010 20:45:37 +0200
Received: from smtp.kineticode.com (host-201.commandprompt.net
	[207.173.203.201])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6DIjK96020770
	for <libssh2-devel@cool.haxx.se>; Tue, 13 Jul 2010 20:45:20 +0200
Received: from [10.0.1.15] (c-24-21-193-250.hsd1.or.comcast.net
	[24.21.193.250])
	by smtp.kineticode.com (Postfix) with ESMTPSA id 0A4C0508057;
	Tue, 13 Jul 2010 11:45:13 -0700 (PDT)
Subject: Re: Error Handling with Net::SSH2
Mime-Version: 1.0 (Apple Message framework v1081)
From: "David E. Wheeler" <david@kineticode.com>
In-Reply-To: <930492C4-FF24-41CD-BA80-694A3051F9F2@kineticode.com>
Date: Tue, 13 Jul 2010 11:45:11 -0700
Message-Id: <D459AB1B-3877-4E88-927F-576323C0F245@kineticode.com>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
	<23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
	<1278965497.2016.20.camel@bret-redbook>
	<E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
	<1278979518.3604.57.camel@bret-redbook>
	<930492C4-FF24-41CD-BA80-694A3051F9F2@kineticode.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 13 Jul 2010 20:45:41 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 13 Jul 2010 20:45:20 +0200 (CEST)
Cc: Bret Dawson <bret@pectopah.com>, Michael Herring <herringm@denison.edu>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 12, 2010, at 8:25 PM, David E. Wheeler wrote:

>> The difference was just that one extra line in the error log:
>> "Net::SSH2: created new object 0x23561e88"
> 
> Bah! Okay, there is no way to turn on ssh2 tracing via the Net::SSH2 API. You'll have to uncomment this line in SSH2.xs and rebuild:
> 
>    /*libssh2_trace(RETVAL->session, -1);*/  /* enable tracing if debug build */

Okay, now I'm getting the error:

Error putting file '/usr/local/htdocs/foo.ppt' on 'prod.example.com': -37 LIBSSH2_ERROR_EAGAIN Unable to send channel data

The file was only partly distributed (it's 30MB but only 1.8M made it over).

I rebuilt with debugging enabled, but then the transfer worked! So I built again with debugging disabled and it went back to partial transfers. Frustrating.

I ran into this same issue a few weeks ago, but at that time we noticed that the symlink, /usr/local/lib/libssh2.so, was pointed at an older install. We updated it to a newer version and all was well. But now it's back, all the old files are gone, and this failure has returned.

I can produce the (huge!) log of the trace output of the successful scp if you think it will help.

Thanks,

David

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Jul 14 03:13:44 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6E1DKF1004134;
	Wed, 14 Jul 2010 03:13:39 +0200
Received: from mail-ww0-f54.google.com (mail-ww0-f54.google.com [74.125.82.54])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6E1DJkc004119
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 03:13:19 +0200
Received: by wwi18 with SMTP id 18so1727304wwi.11
	for <libssh2-devel@cool.haxx.se>; Tue, 13 Jul 2010 18:13:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=googlemail.com; s=gamma;
	h=domainkey-signature:mime-version:received:sender:received
	:in-reply-to:references:date:x-google-sender-auth:message-id:subject
	:from:to:content-type;
	bh=PBk5I7wAdYDzhsIqczlZSL2lJ9cawsko2HvBX9luYwg=;
	b=SqS6s5DW13bMO4rG/0di0W3XMqV/RhCwGNnq0A6fhUYGeaL9gelc4Z38QNveyTAkbT
	B1IH6ecHUUqoloOSnAdc1eeZSWEIi9wgWIp+SDhJ0QLxVydPyVXtYkWY1KEALnrxE+om
	lJwhfEfikPS+lX+ajDvzY6obMHalkHiq8vij0=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:content-type;
	b=EcdAoUSzARTwNd73xzTRWS1c4mGSp3kF8R0lm+OgHJRT2QEGwAW6BX4Tyj20cxxdht
	aISNcTyzKpjMtI8RgR1RuacytXoXMqJdcTL/JO3ezD0fZc7cACckCpwVu8fs5YBHXtte
	I9Pq+rufc1safUWrttRGPuEN8dJtH+f7sQj/I=
MIME-Version: 1.0
Received: by 10.227.136.136 with SMTP id r8mr14596672wbt.156.1279069990034; 
	Tue, 13 Jul 2010 18:13:10 -0700 (PDT)
Received: by 10.216.15.214 with HTTP; Tue, 13 Jul 2010 18:13:09 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
	<alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
Date: Wed, 14 Jul 2010 02:13:09 +0100
X-Google-Sender-Auth: DPZn912VFu8m6Q_NOcIPF0_kZm4
Message-ID: <AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>
Subject: Re: Detecting broken connection
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 14 Jul 2010 03:13:44 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 14 Jul 2010 03:13:20 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On 12 July 2010 17:31, Daniel Stenberg <daniel@haxx.se> wrote:
>
> If you _know_ the sockets should be silent (ie there's no TCP traffic on
> them) you can select() to see if they've become readable, and if they are in
> spite of you knowing they shouldn't be, reading 0 bytes from them indicates
> they're disconnected.

Do I need to actually do the read?  What would a >0 return value
indicate?  Presumably that I'd gotten my logic wrong and the socket
wasn't meant to be silent (impossible, I think, as long as I use
blocking libssh2 calls?).  There doesn't seem to be a recoverable
scenario regardless the result of the read so I'm better off not doing
it at all and trashing the session anyway.

Many thanks.

Alex
--
Swish - Easy SFTP for Windows. http://www.swish-sftp.org
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Jul 14 12:58:52 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6EAwYhn000783;
	Wed, 14 Jul 2010 12:58:49 +0200
Received: from oproxy3-pub.bluehost.com (oproxy3-pub.bluehost.com [69.89.21.8])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6EAwVK9000773
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 12:58:33 +0200
Received: (qmail 23226 invoked by uid 0); 14 Jul 2010 10:58:28 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy3.bluehost.com with SMTP; 14 Jul 2010 10:58:28 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=lw5XdGU+w1LEmzUmKt5ePDKQcT+KejuzMwt7Qpvqn4ZuEtPQ6vH5qo8NCNTaemJfwRioWjQ8Qt+i1peg2n95SDMiYjDuXF5PBLz5sxG9x6iMmq39u9M4i4ir1yxKxdcd;
Received: from [122.170.34.12] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OYzfW-0001BL-Tr
	for libssh2-devel@cool.haxx.se; Wed, 14 Jul 2010 04:58:28 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Remote Terminal with iPhone SDK
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
Date: Wed, 14 Jul 2010 16:28:20 +0530
Message-Id: <7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.170.34.12 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 14 Jul 2010 12:58:52 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 14 Jul 2010 12:58:33 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hey Peter,

Back here again, I had long pause after our few days chat long ago. I was working on the mobile terminal code you suggested and few other applications. So, got somewhat free to have close look on the application you suggested.

After close inspection and debugging methods, we've come to know that the application doesn't use libssh. It uses built-in terminal (TTY) through files. Like, dumping all commands and o/p in a file. And the code is written with fully integration with other classes, so, generally very time consuming to get it work for our application.

I tried to use libssh2 for the application with a try. But not able to parse the output because output in mobile terminal comes from dumped file which is not the case for libssh2. i've tried to decode o/p from libssh2 command execution but not very easy to make it done. Few other ooptions also i've tried..! Right now, i'm implementing libssh2 command execution as it's because it's working in my application. Just trying to reuse the decoding functionality for the app, so, i can make the o/p to be displayed on the screen (UIView).

Could you please suggest me something so i can reuse for my application? I am somewhat stuck with the application, due to VI and nano editior commands and top command as well..!

Regards,
Paresh Thakor.


On Jun 28, 2010, at 4:33 PM, Paresh Thakor wrote:

> 
> Hi, Thanks Peter for your response and i'm now making some research on what you suggested..! Thanks.
> 
> 
> On Jun 28, 2010, at 4:26 PM, Peter Stuge wrote:
> 
>> Paresh Thakor wrote:
>>> Thanks for your kind reply... but you say that i am using libssh2
>>> in proper way that i don't think right.
>> 
>> Yes. The problem you are facing has nothing to do with libssh2. The
>> part of your program that *is* related to libssh2 is already working
>> correctly for you.
>> 
>> 
>>> Because i need to create a proper and complete terminal emulator
>>> and i resulted in simple UITextView based command/output system.
>> 
>> http://developer.apple.com/iphone/library/documentation/uikit/reference/UITextView_Class/Reference/UITextView.html
>> 
>> "The UITextView class implements the behavior for a scrollable,
>> multiline text region."
>> 
>> UITextView is completely useless as a terminal emulator.
>> 
>> 
>>> And i can't get what it PuTTY, i made some search on that but
>>> there's no proper answer for the suggestion.
>> 
>> The first hit on google.com is:
>> 
>> http://www.chiark.greenend.org.uk/~sgtatham/putty/
>> PuTTY: A Free Telnet/SSH Client
>> 
>> Surely you saw that? Study the source code. Learn about terminal
>> emulators. Also search for information about terminal emulators of
>> course, and study the material that you find.
>> 
>> Again, the first hit on google.com is:
>> 
>> http://en.wikipedia.org/wiki/Terminal_emulator
>> 
>> If you have problems even finding this quite basic information then
>> I would caution against continuing this project now. Terminal
>> emulators will cause you much more trouble.
>> 
>> 
>>> IF you know iPhone programming then suggest me something.
>> 
>> I don't.
>> 
>> 
>>> rc = libssh2_channel_request_pty( channel, "xterm"); This is my PTY
>>> function. I don't know what to use to display terminal so it looks
>>> like real termina.
>> 
>> In the function call you tell the server that you are xterm.
>> (xterm is one specific terminal program.)
>> 
>> Now the server will use the escape sequences that xterm understands.
>> In order to display the screen correctly you must interpret them in
>> your program. This is what a terminal emulator does. You can look at
>> the xterm source code, but xterm is very full featured and the code
>> is rather large, so it is not the best reference for a minimal
>> terminal emulator.
>> 
>> It seems that someone is already working on what you need. The very
>> first hit on google.com when searching for iphone terminal emulator
>> is:
>> 
>> http://code.google.com/p/mobileterminal/
>> mobileterminal
>> A GUI Terminal application for the iPhone
>> 
>> Integrate this with libssh2 correctly and you might be finished
>> already.
>> 
>> 
>> //Peter
>> _______________________________________________
>> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
> 
> _______________________________________________
> 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 Jul 14 17:33:21 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6EFX5cB019235;
	Wed, 14 Jul 2010 17:33:18 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6EFWsbd019144
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 17:32:54 +0200
Date: Wed, 14 Jul 2010 17:32:54 +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: Detecting broken connection
In-Reply-To: <AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1007141731580.23196@tvnag.unkk.fr>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
	<alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
	<AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 14 Jul 2010 17:33:21 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 14 Jul 2010 17:32:54 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Wed, 14 Jul 2010, Alexander Lamaison wrote:

>> If you _know_ the sockets should be silent (ie there's no TCP traffic on 
>> them) you can select() to see if they've become readable, and if they are 
>> in spite of you knowing they shouldn't be, reading 0 bytes from them 
>> indicates they're disconnected.
>
> Do I need to actually do the read?

Not necessarily no. If you are sure they should be idle, you can skip the 
reading.

> What would a >0 return value indicate?

That data came over the connection anyway!

> Presumably that I'd gotten my logic wrong and the socket wasn't meant to be 
> silent

Exactly!

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Jul 14 20:17:18 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6EIH1n0002452;
	Wed, 14 Jul 2010 20:17:15 +0200
Received: from mail-ww0-f54.google.com (mail-ww0-f54.google.com [74.125.82.54])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6EIGwBs002428
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 20:17:00 +0200
Received: by wwi18 with SMTP id 18so2520212wwi.11
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 11:16:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.227.29.68 with SMTP id p4mr5874874wbc.0.1279131406704; Wed, 14 
	Jul 2010 11:16:46 -0700 (PDT)
Received: by 10.216.236.30 with HTTP; Wed, 14 Jul 2010 11:16:46 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1007141731580.23196@tvnag.unkk.fr>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
	<alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
	<AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>
	<alpine.DEB.2.00.1007141731580.23196@tvnag.unkk.fr>
Date: Wed, 14 Jul 2010 20:16:46 +0200
Message-ID: <AANLkTimSflMuUIhGW-VKDLLzRJjybGHaL-pfJPjxRmH9@mail.gmail.com>
Subject: Re: Detecting broken connection
From: Jose Baars <peut@peut.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 14 Jul 2010 20:17:18 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 14 Jul 2010 20:17:00 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============1105035901=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

--===============1105035901==
Content-Type: multipart/alternative; boundary=0022159752261e2a8d048b5cfd33

--0022159752261e2a8d048b5cfd33
Content-Type: text/plain; charset=ISO-8859-1

What also helps or might even be necessary, depending on your operating
system etc.,
is turning on SO_KEEPALIVE with set socketopt on your socket.
If you set this, you get an error from your socket, especially when doing a
select(),
if the connection is broken, if you don't set it, you may not.

If you're lucky, your system admin turned this on as a system-wide default,
if you're not lucky, or on Linux (where you can't turn this on as a system
wide default
the last time I looked), you might not be able to detect a broken
connection.

The SSH keepalive options might mitigate this, but I did not try, so no
idea.

--0022159752261e2a8d048b5cfd33
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

What also helps or might even be necessary, depending on your operating sys=
tem etc.,<br>is turning on SO_KEEPALIVE with set socketopt on your socket. =
<br>If you set this, you get an error from your socket, especially when doi=
ng a select(), <br>
if the connection is broken, if you don&#39;t set it, you may not. <br><br>=
If you&#39;re lucky, your system admin turned this on as a system-wide defa=
ult,<br>if you&#39;re not lucky, or on Linux (where you can&#39;t turn this=
 on as a system wide default<br>
the last time I looked), you might not be able to detect a broken connectio=
n.<br><br><div class=3D"gmail_quote"><div>The SSH keepalive options might m=
itigate this, but I did not try, so no idea.<br></div></div><br>

--0022159752261e2a8d048b5cfd33--

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

--===============1105035901==--

From libssh2-devel-bounces@cool.haxx.se  Wed Jul 14 21:19:40 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6EJJNAW004442;
	Wed, 14 Jul 2010 21:19:35 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6EJJN3F004435
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 21:19:23 +0200
Received: (qmail 29769 invoked by uid 501); 14 Jul 2010 19:19:19 -0000
Message-ID: <20100714191919.29768.qmail@stuge.se>
Date: Wed, 14 Jul 2010 21:19:19 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Detecting broken connection
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
	<alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
	<AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>
	<alpine.DEB.2.00.1007141731580.23196@tvnag.unkk.fr>
	<AANLkTimSflMuUIhGW-VKDLLzRJjybGHaL-pfJPjxRmH9@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <AANLkTimSflMuUIhGW-VKDLLzRJjybGHaL-pfJPjxRmH9@mail.gmail.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 14 Jul 2010 21:19:39 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 14 Jul 2010 21:19:23 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Jose Baars wrote:
> What also helps or might even be necessary
..
> is turning on SO_KEEPALIVE

Beware. Enabling TCP keepalive is not neccessarily a feature. For
example on a laptop which may have intermittent VPN connectivity, I
consider the keepalive default in Linux to be really superior. It's
great that the ssh connections just magically continue to work the
next time the VPN comes up.


> if you're not lucky, or on Linux (where you can't turn this on as a
> system wide default the last time I looked), you might not be able
> to detect a broken connection.

http://www.ibiblio.org/pub/Linux/docs/HOWTO/TCP-Keepalive-HOWTO


> The SSH keepalive options might mitigate this, but I did not try,
> so no idea.

Yeah, they'll do the trick too.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Jul 14 22:47:25 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6EKl7Dr031334;
	Wed, 14 Jul 2010 22:47:22 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6EKl5sF031323
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 22:47:05 +0200
Received: (qmail 10324 invoked by uid 501); 14 Jul 2010 20:47:00 -0000
Message-ID: <20100714204700.10323.qmail@stuge.se>
Date: Wed, 14 Jul 2010 22:47:00 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Remote Terminal with iPhone SDK
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 14 Jul 2010 22:47:25 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 14 Jul 2010 22:47:05 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi again,

Paresh Thakor wrote:
> After close inspection and debugging methods, we've come to know that
> the application doesn't use libssh. It uses built-in terminal (TTY)
> through files. Like, dumping all commands and o/p in a file.

The terminal emulator is a very significant piece of code and it is
the only thing that solves your problem. Use mobileterminal or
another terminal emulator that fits your environment.


> And the code is written with fully integration with other classes,
> so, generally very time consuming to get it work for our application.

Re-purposing the terminal emulator in mobileterminal is *surely*
*much* less time consuming than implementing your own terminal
emulator.


> I tried to use libssh2 for the application with a try. But not able
> to parse the output because output in mobile terminal comes from
> dumped file which is not the case for libssh2.

So what? You have the source code, write some glue that connects the
two together. Forget about the files. The terminal emulator part of
mobileterminal is the kind of code that you need to solve your
problem.


> i've tried to decode o/p from libssh2 command execution but not
> very easy to make it done.

Of course the output does not come from libssh2 - SSH is a clean
transport that never influences the data being sent.

It is difficult for you to decode output from commands which expect
to be connected to a terminal, because you are not a terminal, and
because you are not using a terminal emulator.

Use a terminal emulator, whose purpose is to understand the output
from commands that expect to be connected to a terminal.


> libssh2 command execution as it's because it's working in my
> application.
 Just trying to reuse the decoding functionality for the app, so, i
can make the o/p to be displayed on the screen (UIView).

UIView is most likely completely useless as a terminal widget. My
guess is that you would get the best result from using mobileterminal
or another complete terminal emulator which is already implemented on
your platform.


> Could you please suggest me something so i can reuse for my
> application?

No I can not! Why should I? I have no iPhone and I don't develop
iPhone apps. This is the libssh2 mailing list, not a mailing list
about terminal emulators for the iPhone.

I did one search on google.com looking for a terminal emulator for
iphone and I found the mobileterminal project *immediately*. It looks
to me like mobileterminal solves the bulk of your problem. What
remains is for you to produce some glue code between the terminal
emulator and libssh2.

Obviously you did not bother to do the same search.. I'm sure you can
understand that this makes me very unmotivated to help you any
further.


> I am somewhat stuck with the application, due to VI and nano
> editior commands and top command as well..!

Too bad. You need a terminal emulator, mobileterminal looked like a
good fit, but if you are unable to use it then you should of course
search for an alternative. This mailing list is not a good place to
search, since this mailing list is about the libssh2 project, which
really is quite independent from terminal emulators.


Good luck.

//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 15 00:11:08 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6EMAr6D007593;
	Thu, 15 Jul 2010 00:11:06 +0200
Received: from mail-ew0-f54.google.com (mail-ew0-f54.google.com
	[209.85.215.54])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6EMAoHs007547
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 00:10:50 +0200
Received: by ewy26 with SMTP id 26so89534ewy.41
	for <libssh2-devel@cool.haxx.se>; Wed, 14 Jul 2010 15:10:45 -0700 (PDT)
Received: by 10.213.7.12 with SMTP id b12mr1106743ebb.76.1279145445315;
	Wed, 14 Jul 2010 15:10:45 -0700 (PDT)
Received: from [192.168.0.35] (96-160.ftth.onsbrabantnet.nl [88.159.160.96])
	by mx.google.com with ESMTPS id x54sm1871673eeh.23.2010.07.14.15.10.44
	(version=SSLv3 cipher=RC4-MD5); Wed, 14 Jul 2010 15:10:44 -0700 (PDT)
Message-ID: <4C3E35DE.1030401@peut.org>
Date: Thu, 15 Jul 2010 00:10:38 +0200
From: Jose Baars <peut@peut.org>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; nl;
	rv:1.9.1.10) Gecko/20100512 Thunderbird/3.0.5
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: Detecting broken connection
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>	<000601cb2166$da9527a0$8fbf76e0$@com>	<alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>	<AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>	<alpine.DEB.2.00.1007141731580.23196@tvnag.unkk.fr>	<AANLkTimSflMuUIhGW-VKDLLzRJjybGHaL-pfJPjxRmH9@mail.gmail.com>
	<20100714191919.29768.qmail@stuge.se>
In-Reply-To: <20100714191919.29768.qmail@stuge.se>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 00:11:08 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 00:10:50 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============0289332797=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

This is a cryptographically signed message in MIME format.

--===============0289332797==
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms010109050003090804080806"

This is a cryptographically signed message in MIME format.

--------------ms010109050003090804080806
Content-Type: multipart/alternative;
 boundary="------------070907080203000007000107"

This is a multi-part message in MIME format.
--------------070907080203000007000107
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

Op 7/14/2010 9:19 PM, Peter Stuge schreef:
> Beware. Enabling TCP keepalive is not neccessarily a feature. For
> example on a laptop which may have intermittent VPN connectivity, I
> consider the keepalive default in Linux to be really superior.=20
Agree, you have to take a conscious decision, keepalive is not all=20
moonshine and roses.

But, on servers on a fixed network with time critical connections where=20
connections
should fail over to another node or bomb out with fireworks as soon as a =

connection
is broken, not having keepalive is killing. The same applies to an=20
application that uses
dozens of connections, you might run in to a situation where you are tend=
ing
a socket graveyard.

Point is that the default on Linux ( sockets have no keep alive enabled=20
) can not be changed.
It can be changed on *BSD and a lot of BSD derived TCP/IP stacks.
The application MUST call setsockopt to turn it on.

And it's still fine if you can afford to check and maybe change some=20
application you use (that is
the cost and advantage of open source), but a pain if you happen to be=20
forced to use
an application that doesn't set keepalive. I ran into it with rexec,=20
which could not easily be
changed due to all kinds of non-technical issues. I was a bit shocked to =

find out that
Linux doesn't support setting the system default so that every socket=20
created would
have  KEEPALIVE enabled. I can't see the advantage of not supporting that=
=2E

The SSH keepalive options might mitigate this, but I did not try,
>  so no idea.

Yeah, they'll do the trick too.












--------------070907080203000007000107
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
  <title></title>
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Op 7/14/2010 9:19 PM, Peter Stuge schreef:
<blockquote cite=3D"mid:20100714191919.29768.qmail@stuge.se" type=3D"cite=
">Beware.
Enabling TCP keepalive is not neccessarily a feature. For<br>
example on a laptop which may have intermittent VPN connectivity, I<br>
consider the keepalive default in Linux to be really superior. </blockquo=
te>
Agree, you have to take a conscious decision, keepalive is not all
moonshine and roses.<br>
<br>
But, on servers on a fixed network with time critical connections where
connections<br>
should fail over to another node or bomb out with fireworks as soon as
a connection <br>
is broken, not having keepalive is killing. The same applies to an
application that uses<br>
dozens of connections, you might run in to a situation where you are
tending<br>
a socket graveyard.<br>
<br>
Point is that the default on Linux ( sockets have no keep alive enabled
) can not be changed.<br>
It can be changed on *BSD and a lot of BSD derived TCP/IP stacks.<br>
The application MUST call setsockopt to turn it on.<br>
<br>
And it's still fine if you can afford to check and maybe change some
application you use (that is<br>
the cost and advantage of open source), but a pain if you happen to be
forced to use<br>
an application that doesn't set keepalive. I ran into it with rexec,
which could not easily be <br>
changed due to all kinds of non-technical issues. I was a bit shocked
to find out that <br>
Linux doesn't support setting the system default so that every socket
created would<br>
have&nbsp; KEEPALIVE enabled. I can't see the advantage of not supporting=

that.<br>
<pre wrap=3D"">The SSH keepalive options might mitigate this, but I did n=
ot try,
<span class=3D"moz-txt-citetags">&gt; </span>so no idea.
</pre>
<pre wrap=3D"">Yeah, they'll do the trick too.







</pre>
<br>
<font face=3D"Helvetica, Arial, sans-serif"><br>
<br>
</font>
</body>
</html>

--------------070907080203000007000107--

--------------ms010109050003090804080806
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIPWjCC
BMwwggQ1oAMCAQICEByunWua9OYvIoqj2nRhbB4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UE
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1Ymxp
YyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA1MTAyODAwMDAwMFoXDTE1
MTAyNzIzNTk1OVowgd0xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEf
MB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE7MDkGA1UECxMyVGVybXMgb2YgdXNl
IGF0IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDUxHjAcBgNVBAsTFVBlcnNv
bmEgTm90IFZhbGlkYXRlZDE3MDUGA1UEAxMuVmVyaVNpZ24gQ2xhc3MgMSBJbmRpdmlkdWFs
IFN1YnNjcmliZXIgQ0EgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMnf
rOfq+PgDFMQAktXBfjbCPO98chXLwKuMPRyVzm8eECw/AO2XJua2x+atQx0/pIdHR0w+VPhs
+Mf8sZ69MHC8l7EDBeqV8a1AxUR6SwWi8mD81zplYu//EHuiVrvFTnAt1qIfPO2wQuhejVch
rKaZ2RHp0hoHwHRHQgv8xTTq/ea6JNEdCBU3otdzzwFBL2OyOj++pRpu9MlKWz2VphW7NQIZ
+dTvvI8OcXZZu0u2Ptb8Whb01g6J8kn+bAztFenZiHWcec5gJ925rXXOL3OVekA6hXVJsLjf
aLyrzROChRFQo+A8C67AClPN1zBvhTJGG+RJEMJs4q8fef/btLUCAwEAAaOCAYQwggGAMBIG
A1UdEwEB/wQIMAYBAf8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXATAqMCgGCCsGAQUF
BwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMAsGA1UdDwQEAwIBBjARBglghkgB
hvhCAQEEBAMCAQYwLgYDVR0RBCcwJaQjMCExHzAdBgNVBAMTFlByaXZhdGVMYWJlbDMtMjA0
OC0xNTUwHQYDVR0OBBYEFBF9Xhl9PATfamzWoooaPzHYO5RSMDEGA1UdHwQqMCgwJqAkoCKG
IGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTEuY3JsMIGBBgNVHSMEejB4oWOkYTBfMQsw
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDEg
UHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHmCEQDNun9W8N/kvFT+Iqyz
cqpVMA0GCSqGSIb3DQEBBQUAA4GBALEv2ZbhkqLugWDlyCog++FnLNYAmFOjAhvpkEv4GESf
D0b3+qD+0x0Yo9K/HOzWGZ9KTUP4yru+E4BJBd0hczNXwkJavvoAk7LmBDGRTl088HMFN2Pr
v4NZmP1m3umGMpqSKTw6rlTaphJRsY/IytNHeObbpR6HBuPRFMDCIfa6MIIFQTCCBCmgAwIB
AgIQQkuBnab/mKbwbYynoi4GkzANBgkqhkiG9w0BAQUFADCB3TELMAkGA1UEBhMCVVMxFzAV
BgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3Jr
MTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3Jw
YSAoYykwNTEeMBwGA1UECxMVUGVyc29uYSBOb3QgVmFsaWRhdGVkMTcwNQYDVQQDEy5WZXJp
U2lnbiBDbGFzcyAxIEluZGl2aWR1YWwgU3Vic2NyaWJlciBDQSAtIEcyMB4XDTA5MTExMjAw
MDAwMFoXDTEwMTExMjIzNTk1OVowggEKMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0G
A1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNv
bS9yZXBvc2l0b3J5L1JQQSBJbmNvcnAuIGJ5IFJlZi4sTElBQi5MVEQoYyk5ODEeMBwGA1UE
CxMVUGVyc29uYSBOb3QgVmFsaWRhdGVkMTMwMQYDVQQLEypEaWdpdGFsIElEIENsYXNzIDEg
LSBOZXRzY2FwZSBGdWxsIFNlcnZpY2UxEzARBgNVBAMUCkpvc2UgQmFhcnMxHDAaBgkqhkiG
9w0BCQEWDXBldXRAcGV1dC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCi
x8yI3kFLmfYElzZSqsup782ajeuv3TASyn8mUfGrnr2aW1M7jN4vlM8/7/sVL883rH+kWPzV
Q4ITYrfW5QFxH+CBqtX0F1xsS1A7AR8xZIs8o7/sMxV2xOSXYEJXlKP4XVWY8oU+TKH5dWYZ
9BJ9pkJ840ayiqqI/P3MHqmu7vS2nPDu8YZFa+46EtWkGbJTjzFdnrU5Jmdudp37fd1btNss
RIkqztDOeQOTaZ6pS9RqjhmNuWVtgZucKho6c9Qf2htGz8AL95MqttF2OZYL9AlXZhjJcIMO
aZBVjuwLowX/kYL2lo1vyUGt3eZxSkZR/ICfkQwj1BKpFZGFtM5XAgMBAAGjgcwwgckwCQYD
VR0TBAIwADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBxcBMCowKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwCwYDVR0PBAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUF
BwMEBggrBgEFBQcDAjBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vSW5kQzFEaWdpdGFsSUQt
Y3JsLnZlcmlzaWduLmNvbS9JbmRDMURpZ2l0YWxJRC5jcmwwDQYJKoZIhvcNAQEFBQADggEB
ABcuOD4QwMrXJgD8zvCWBRjBqsQLXn0ybqrLZHlcic7+lstAl06fi7fGD3+1Nrcp4VImkyUv
JQEvFSvkB+/Mt8kOVSdt+eiYIInKt/lBkSzy0sardsh0u7Ifcgt+nmLZYW+azviXnD4VNMqe
Q9QIZPHSUhWDe3IA5NSYE4hfqwXX5c13HllqpUcXRmWIGA9MPr9SQxZ0jg7MFUsZVgG9f5Ts
A3yIEmvUgutyX6GRzZQL+wlWymRzh/XA7j2QnYk+IPlNQHJ62MHHlAI48y3ssSXwR8hfbH4e
0sw+8ezuh785OuFMBI3qhxlQX4wT8+v8rKHtiLcddoIohWM0ID+IdOEwggVBMIIEKaADAgEC
AhBCS4Gdpv+YpvBtjKeiLgaTMA0GCSqGSIb3DQEBBQUAMIHdMQswCQYDVQQGEwJVUzEXMBUG
A1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsx
OzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBh
IChjKTA1MR4wHAYDVQQLExVQZXJzb25hIE5vdCBWYWxpZGF0ZWQxNzA1BgNVBAMTLlZlcmlT
aWduIENsYXNzIDEgSW5kaXZpZHVhbCBTdWJzY3JpYmVyIENBIC0gRzIwHhcNMDkxMTEyMDAw
MDAwWhcNMTAxMTEyMjM1OTU5WjCCAQoxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYD
VQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMUYwRAYDVQQLEz13d3cudmVyaXNpZ24uY29t
L3JlcG9zaXRvcnkvUlBBIEluY29ycC4gYnkgUmVmLixMSUFCLkxURChjKTk4MR4wHAYDVQQL
ExVQZXJzb25hIE5vdCBWYWxpZGF0ZWQxMzAxBgNVBAsTKkRpZ2l0YWwgSUQgQ2xhc3MgMSAt
IE5ldHNjYXBlIEZ1bGwgU2VydmljZTETMBEGA1UEAxQKSm9zZSBCYWFyczEcMBoGCSqGSIb3
DQEJARYNcGV1dEBwZXV0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKLH
zIjeQUuZ9gSXNlKqy6nvzZqN66/dMBLKfyZR8auevZpbUzuM3i+Uzz/v+xUvzzesf6RY/NVD
ghNit9blAXEf4IGq1fQXXGxLUDsBHzFkizyjv+wzFXbE5JdgQleUo/hdVZjyhT5Mofl1Zhn0
En2mQnzjRrKKqoj8/cweqa7u9Lac8O7xhkVr7joS1aQZslOPMV2etTkmZ252nft93Vu02yxE
iSrO0M55A5NpnqlL1GqOGY25ZW2Bm5wqGjpz1B/aG0bPwAv3kyq20XY5lgv0CVdmGMlwgw5p
kFWO7AujBf+RgvaWjW/JQa3d5nFKRlH8gJ+RDCPUEqkVkYW0zlcCAwEAAaOBzDCByTAJBgNV
HRMEAjAAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHFwEwKjAoBggrBgEFBQcCARYcaHR0cHM6
Ly93d3cudmVyaXNpZ24uY29tL3JwYTALBgNVHQ8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUH
AwQGCCsGAQUFBwMCMEoGA1UdHwRDMEEwP6A9oDuGOWh0dHA6Ly9JbmRDMURpZ2l0YWxJRC1j
cmwudmVyaXNpZ24uY29tL0luZEMxRGlnaXRhbElELmNybDANBgkqhkiG9w0BAQUFAAOCAQEA
Fy44PhDAytcmAPzO8JYFGMGqxAtefTJuqstkeVyJzv6Wy0CXTp+Lt8YPf7U2tynhUiaTJS8l
AS8VK+QH78y3yQ5VJ2356Jggicq3+UGRLPLSxqt2yHS7sh9yC36eYtlhb5rO+JecPhU0yp5D
1Ahk8dJSFYN7cgDk1JgTiF+rBdflzXceWWqlRxdGZYgYD0w+v1JDFnSODswVSxlWAb1/lOwD
fIgSa9SC63JfoZHNlAv7CVbKZHOH9cDuPZCdiT4g+U1AcnrYwceUAjjzLeyxJfBHyF9sfh7S
zD7x7O6Hvzk64UwEjeqHGVBfjBPz6/ysoe2Itx12giiFYzQgP4h04TGCBOwwggToAgEBMIHy
MIHdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
cmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczov
L3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTA1MR4wHAYDVQQLExVQZXJzb25hIE5vdCBWYWxp
ZGF0ZWQxNzA1BgNVBAMTLlZlcmlTaWduIENsYXNzIDEgSW5kaXZpZHVhbCBTdWJzY3JpYmVy
IENBIC0gRzICEEJLgZ2m/5im8G2Mp6IuBpMwCQYFKw4DAhoFAKCCAs4wGAYJKoZIhvcNAQkD
MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTAwNzE0MjIxMDM4WjAjBgkqhkiG9w0B
CQQxFgQUxgiAioPcp5QV4mZXN0QmONkuorswXwYJKoZIhvcNAQkPMVIwUDALBglghkgBZQME
AQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIH
MA0GCCqGSIb3DQMCAgEoMIIBAwYJKwYBBAGCNxAEMYH1MIHyMIHdMQswCQYDVQQGEwJVUzEX
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
cmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
cnBhIChjKTA1MR4wHAYDVQQLExVQZXJzb25hIE5vdCBWYWxpZGF0ZWQxNzA1BgNVBAMTLlZl
cmlTaWduIENsYXNzIDEgSW5kaXZpZHVhbCBTdWJzY3JpYmVyIENBIC0gRzICEEJLgZ2m/5im
8G2Mp6IuBpMwggEFBgsqhkiG9w0BCRACCzGB9aCB8jCB3TELMAkGA1UEBhMCVVMxFzAVBgNV
BAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTsw
OQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAo
YykwNTEeMBwGA1UECxMVUGVyc29uYSBOb3QgVmFsaWRhdGVkMTcwNQYDVQQDEy5WZXJpU2ln
biBDbGFzcyAxIEluZGl2aWR1YWwgU3Vic2NyaWJlciBDQSAtIEcyAhBCS4Gdpv+YpvBtjKei
LgaTMA0GCSqGSIb3DQEBAQUABIIBAKAw+tJ7t/tXkZmsz+tG84M2OnWNtOdmxdiyu21u0ksx
UiPZUEwLid9UcNNeDqxlszECqbJFOhh4wibvCqS3dxLugu7hlDRfdk8HyUjtceGMC1KBxFrV
mXPDGRn9rYjvyM1Jb6Cx/r7Ik3eDYqXiy3DR2XhwaOPkquTbuRremqlM+OaDvJmj6a50KisX
h0YkvpJ2E2cRIQmaBdvb/otL6EXMGatlppKNdU+dc6Ej5G8PU+8CtIfJuPmP5fbZRkh8Wehq
/xZXXPNok/N66msoJ9sVT4iVDJULKgWD+rCzM1pszhSEeSqbyaCc2qNs9PbuMtDgD+8uCH+I
ZXjxDGb43XgAAAAAAAA=
--------------ms010109050003090804080806--

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

--===============0289332797==--

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 15 08:59:38 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6F6xLFv028256;
	Thu, 15 Jul 2010 08:59:35 +0200
Received: from oproxy1-pub.bluehost.com (oproxy1-pub.bluehost.com
	[66.147.249.253])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6F6xHiX028251
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 08:59:19 +0200
Received: (qmail 14771 invoked by uid 0); 15 Jul 2010 06:59:14 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy1.bluehost.com.bluehost.com with SMTP;
	15 Jul 2010 06:59:14 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=s4FkBmLId275/U2W7snPSAiGULPuWFFqvDyDGIMcuMK2Nh9HXP0rFSRfBYonm4KH0W+raN0mJxjLqqcy/Tw1bljNqGfhUQX2sVkmhC6cvkI7PAJUahLWCk8ZbdGuX1aI;
Received: from [122.170.41.247] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OZIPZ-00029q-6L
	for libssh2-devel@cool.haxx.se; Thu, 15 Jul 2010 00:59:14 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Remote Terminal with iPhone SDK
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <20100714204700.10323.qmail@stuge.se>
Date: Thu, 15 Jul 2010 12:29:06 +0530
Message-Id: <8DDB495D-2F41-4E7F-B760-731A05322B70@moontechnolabs.com>
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
	<20100714204700.10323.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.170.41.247 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 08:59:38 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 08:59:20 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Thanks man, we have implemented and dug into the code for mobile terminal..! It's not complete suite so we can easily all pieces together. Here, mobileterminal is using file based command execution, and libssh2 does input command and gives o/p normally..!

okay, i'll check out that.
Thanks for your help..!

On Jul 15, 2010, at 2:17 AM, Peter Stuge wrote:

> Hi again,
> 
> Paresh Thakor wrote:
>> After close inspection and debugging methods, we've come to know that
>> the application doesn't use libssh. It uses built-in terminal (TTY)
>> through files. Like, dumping all commands and o/p in a file.
> 
> The terminal emulator is a very significant piece of code and it is
> the only thing that solves your problem. Use mobileterminal or
> another terminal emulator that fits your environment.
> 
> 
>> And the code is written with fully integration with other classes,
>> so, generally very time consuming to get it work for our application.
> 
> Re-purposing the terminal emulator in mobileterminal is *surely*
> *much* less time consuming than implementing your own terminal
> emulator.
> 
> 
>> I tried to use libssh2 for the application with a try. But not able
>> to parse the output because output in mobile terminal comes from
>> dumped file which is not the case for libssh2.
> 
> So what? You have the source code, write some glue that connects the
> two together. Forget about the files. The terminal emulator part of
> mobileterminal is the kind of code that you need to solve your
> problem.
> 
> 
>> i've tried to decode o/p from libssh2 command execution but not
>> very easy to make it done.
> 
> Of course the output does not come from libssh2 - SSH is a clean
> transport that never influences the data being sent.
> 
> It is difficult for you to decode output from commands which expect
> to be connected to a terminal, because you are not a terminal, and
> because you are not using a terminal emulator.
> 
> Use a terminal emulator, whose purpose is to understand the output
> from commands that expect to be connected to a terminal.
> 
> 
>> libssh2 command execution as it's because it's working in my
>> application.
> Just trying to reuse the decoding functionality for the app, so, i
> can make the o/p to be displayed on the screen (UIView).
> 
> UIView is most likely completely useless as a terminal widget. My
> guess is that you would get the best result from using mobileterminal
> or another complete terminal emulator which is already implemented on
> your platform.
> 
> 
>> Could you please suggest me something so i can reuse for my
>> application?
> 
> No I can not! Why should I? I have no iPhone and I don't develop
> iPhone apps. This is the libssh2 mailing list, not a mailing list
> about terminal emulators for the iPhone.
> 
> I did one search on google.com looking for a terminal emulator for
> iphone and I found the mobileterminal project *immediately*. It looks
> to me like mobileterminal solves the bulk of your problem. What
> remains is for you to produce some glue code between the terminal
> emulator and libssh2.
> 
> Obviously you did not bother to do the same search.. I'm sure you can
> understand that this makes me very unmotivated to help you any
> further.
> 
> 
>> I am somewhat stuck with the application, due to VI and nano
>> editior commands and top command as well..!
> 
> Too bad. You need a terminal emulator, mobileterminal looked like a
> good fit, but if you are unable to use it then you should of course
> search for an alternative. This mailing list is not a good place to
> search, since this mailing list is about the libssh2 project, which
> really is quite independent from terminal emulators.
> 
> 
> Good luck.
> 
> //Peter
> _______________________________________________
> 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  Thu Jul 15 11:22:20 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6F9M7Cm016001;
	Thu, 15 Jul 2010 11:22:19 +0200
Received: from oproxy1-pub.bluehost.com (oproxy1-pub.bluehost.com
	[66.147.249.253])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6F9M51b015937
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 11:22:05 +0200
Received: (qmail 6621 invoked by uid 0); 15 Jul 2010 09:22:03 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy1.bluehost.com.bluehost.com with SMTP;
	15 Jul 2010 09:22:03 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=Q9Vurs2W0P11x/zYvA1v4gwy4EcSxg+Do2w1/TGFwoJCKeuN7A8AmiFZUlirfO0zmEzz7lhlX0RA+yOl3uXoaMKLv/7/lAPeuwsexf09rLKW1h9xkpLvAcE2YTWoRjJB;
Received: from [122.169.84.103] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OZKdl-00015m-VZ
	for libssh2-devel@cool.haxx.se; Thu, 15 Jul 2010 03:22:02 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Remote Terminal with iPhone SDK
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <20100714204700.10323.qmail@stuge.se>
Date: Thu, 15 Jul 2010 14:51:55 +0530
Message-Id: <F8755674-740F-4240-916E-7B1306ED091A@moontechnolabs.com>
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
	<20100714204700.10323.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.169.84.103 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 11:22:20 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 11:22:06 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

And if i unveil a bit more than mobile terminal is file-based, constantly updating terminal file and o/p data from it. And libssh is not file based not constantly updating any selected file, so, can we make this file-based, so, o/p from libssh can be buffered in selected file? So, we can get the o/p from that selected file?

Is this possible?

On Jul 15, 2010, at 2:17 AM, Peter Stuge wrote:

> Hi again,
> 
> Paresh Thakor wrote:
>> After close inspection and debugging methods, we've come to know that
>> the application doesn't use libssh. It uses built-in terminal (TTY)
>> through files. Like, dumping all commands and o/p in a file.
> 
> The terminal emulator is a very significant piece of code and it is
> the only thing that solves your problem. Use mobileterminal or
> another terminal emulator that fits your environment.
> 
> 
>> And the code is written with fully integration with other classes,
>> so, generally very time consuming to get it work for our application.
> 
> Re-purposing the terminal emulator in mobileterminal is *surely*
> *much* less time consuming than implementing your own terminal
> emulator.
> 
> 
>> I tried to use libssh2 for the application with a try. But not able
>> to parse the output because output in mobile terminal comes from
>> dumped file which is not the case for libssh2.
> 
> So what? You have the source code, write some glue that connects the
> two together. Forget about the files. The terminal emulator part of
> mobileterminal is the kind of code that you need to solve your
> problem.
> 
> 
>> i've tried to decode o/p from libssh2 command execution but not
>> very easy to make it done.
> 
> Of course the output does not come from libssh2 - SSH is a clean
> transport that never influences the data being sent.
> 
> It is difficult for you to decode output from commands which expect
> to be connected to a terminal, because you are not a terminal, and
> because you are not using a terminal emulator.
> 
> Use a terminal emulator, whose purpose is to understand the output
> from commands that expect to be connected to a terminal.
> 
> 
>> libssh2 command execution as it's because it's working in my
>> application.
> Just trying to reuse the decoding functionality for the app, so, i
> can make the o/p to be displayed on the screen (UIView).
> 
> UIView is most likely completely useless as a terminal widget. My
> guess is that you would get the best result from using mobileterminal
> or another complete terminal emulator which is already implemented on
> your platform.
> 
> 
>> Could you please suggest me something so i can reuse for my
>> application?
> 
> No I can not! Why should I? I have no iPhone and I don't develop
> iPhone apps. This is the libssh2 mailing list, not a mailing list
> about terminal emulators for the iPhone.
> 
> I did one search on google.com looking for a terminal emulator for
> iphone and I found the mobileterminal project *immediately*. It looks
> to me like mobileterminal solves the bulk of your problem. What
> remains is for you to produce some glue code between the terminal
> emulator and libssh2.
> 
> Obviously you did not bother to do the same search.. I'm sure you can
> understand that this makes me very unmotivated to help you any
> further.
> 
> 
>> I am somewhat stuck with the application, due to VI and nano
>> editior commands and top command as well..!
> 
> Too bad. You need a terminal emulator, mobileterminal looked like a
> good fit, but if you are unable to use it then you should of course
> search for an alternative. This mailing list is not a good place to
> search, since this mailing list is about the libssh2 project, which
> really is quite independent from terminal emulators.
> 
> 
> Good luck.
> 
> //Peter
> _______________________________________________
> 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  Thu Jul 15 11:23:08 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6F9N768017561;
	Thu, 15 Jul 2010 11:23:08 +0200
Received: from oproxy2-pub.bluehost.com (oproxy2-pub.bluehost.com
	[67.222.39.60])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6F9N5XY017491
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 11:23:06 +0200
Received: (qmail 20370 invoked by uid 0); 15 Jul 2010 09:23:02 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy2.bluehost.com with SMTP; 15 Jul 2010 09:23:02 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=EChAV8QId0lFuCjY9sYXH0CGz43aD6XyO7c5z9EzFEJtnFNwyo0NnEdZnl8SMaeV7aULhtj9Fw6hPuY4/HvC+HuKVvIqXVN0NGPGGCTNRC9adIPQzHrOjCAr9muEXVx0;
Received: from [122.169.84.103] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OZKei-00015m-OY
	for libssh2-devel@cool.haxx.se; Thu, 15 Jul 2010 03:23:02 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Remote Terminal with iPhone SDK
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <20100714204700.10323.qmail@stuge.se>
Date: Thu, 15 Jul 2010 14:52:59 +0530
Message-Id: <BA227782-7CB8-4668-B63D-2887D6FBB066@moontechnolabs.com>
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
	<20100714204700.10323.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.169.84.103 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 11:23:08 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 11:23:06 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

And if i unveil a bit more than mobile terminal is file-based, constantly updating terminal file and o/p data from it. And libssh is not file based not constantly updating any selected file, so, can we make this file-based, so, o/p from libssh can be buffered in selected file? So, we can get the o/p from that selected file?

Is this possible?
Our libssh2 is not working as expected or we might not know something so we can make this working.!

Regards.
On Jul 15, 2010, at 2:17 AM, Peter Stuge wrote:

> Hi again,
> 
> Paresh Thakor wrote:
>> After close inspection and debugging methods, we've come to know that
>> the application doesn't use libssh. It uses built-in terminal (TTY)
>> through files. Like, dumping all commands and o/p in a file.
> 
> The terminal emulator is a very significant piece of code and it is
> the only thing that solves your problem. Use mobileterminal or
> another terminal emulator that fits your environment.
> 
> 
>> And the code is written with fully integration with other classes,
>> so, generally very time consuming to get it work for our application.
> 
> Re-purposing the terminal emulator in mobileterminal is *surely*
> *much* less time consuming than implementing your own terminal
> emulator.
> 
> 
>> I tried to use libssh2 for the application with a try. But not able
>> to parse the output because output in mobile terminal comes from
>> dumped file which is not the case for libssh2.
> 
> So what? You have the source code, write some glue that connects the
> two together. Forget about the files. The terminal emulator part of
> mobileterminal is the kind of code that you need to solve your
> problem.
> 
> 
>> i've tried to decode o/p from libssh2 command execution but not
>> very easy to make it done.
> 
> Of course the output does not come from libssh2 - SSH is a clean
> transport that never influences the data being sent.
> 
> It is difficult for you to decode output from commands which expect
> to be connected to a terminal, because you are not a terminal, and
> because you are not using a terminal emulator.
> 
> Use a terminal emulator, whose purpose is to understand the output
> from commands that expect to be connected to a terminal.
> 
> 
>> libssh2 command execution as it's because it's working in my
>> application.
> Just trying to reuse the decoding functionality for the app, so, i
> can make the o/p to be displayed on the screen (UIView).
> 
> UIView is most likely completely useless as a terminal widget. My
> guess is that you would get the best result from using mobileterminal
> or another complete terminal emulator which is already implemented on
> your platform.
> 
> 
>> Could you please suggest me something so i can reuse for my
>> application?
> 
> No I can not! Why should I? I have no iPhone and I don't develop
> iPhone apps. This is the libssh2 mailing list, not a mailing list
> about terminal emulators for the iPhone.
> 
> I did one search on google.com looking for a terminal emulator for
> iphone and I found the mobileterminal project *immediately*. It looks
> to me like mobileterminal solves the bulk of your problem. What
> remains is for you to produce some glue code between the terminal
> emulator and libssh2.
> 
> Obviously you did not bother to do the same search.. I'm sure you can
> understand that this makes me very unmotivated to help you any
> further.
> 
> 
>> I am somewhat stuck with the application, due to VI and nano
>> editior commands and top command as well..!
> 
> Too bad. You need a terminal emulator, mobileterminal looked like a
> good fit, but if you are unable to use it then you should of course
> search for an alternative. This mailing list is not a good place to
> search, since this mailing list is about the libssh2 project, which
> really is quite independent from terminal emulators.
> 
> 
> Good luck.
> 
> //Peter
> _______________________________________________
> 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  Thu Jul 15 12:53:34 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6FArEJD004881;
	Thu, 15 Jul 2010 12:53:31 +0200
Received: from oproxy3-pub.bluehost.com (oproxy3-pub.bluehost.com [69.89.21.8])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6FArBs3004875
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 12:53:12 +0200
Received: (qmail 30374 invoked by uid 0); 15 Jul 2010 10:53:07 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy3.bluehost.com with SMTP; 15 Jul 2010 10:53:07 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=NjDX5AZN1IxbZnuQQeIGXr/Hgtve4cwLbFcFHHq3NNwiNSYud7MBgrZpT5i804Nv7xW4n6S4xfSuZBqXbrIgDKmoTDDSPAzYWCv+VM2a3Hf+/RPdusi+/SPxc8IL/Rzd;
Received: from [122.169.84.103] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OZM3o-0000CI-Uv
	for libssh2-devel@cool.haxx.se; Thu, 15 Jul 2010 04:53:03 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Remote Terminal with iPhone SDK
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <BA227782-7CB8-4668-B63D-2887D6FBB066@moontechnolabs.com>
Date: Thu, 15 Jul 2010 16:22:03 +0530
Message-Id: <CE46C73F-FB98-4014-AD41-198922FE62AF@moontechnolabs.com>
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
	<20100714204700.10323.qmail@stuge.se>
	<BA227782-7CB8-4668-B63D-2887D6FBB066@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.169.84.103 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 12:53:34 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 12:53:12 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Does anyone know how to open pseudo - tty for libssh2? 
On Jul 15, 2010, at 2:52 PM, Paresh Thakor wrote:

> And if i unveil a bit more than mobile terminal is file-based, constantly updating terminal file and o/p data from it. And libssh is not file based not constantly updating any selected file, so, can we make this file-based, so, o/p from libssh can be buffered in selected file? So, we can get the o/p from that selected file?
> 
> Is this possible?
> Our libssh2 is not working as expected or we might not know something so we can make this working.!
> 
> Regards.
> On Jul 15, 2010, at 2:17 AM, Peter Stuge wrote:
> 
>> Hi again,
>> 
>> Paresh Thakor wrote:
>>> After close inspection and debugging methods, we've come to know that
>>> the application doesn't use libssh. It uses built-in terminal (TTY)
>>> through files. Like, dumping all commands and o/p in a file.
>> 
>> The terminal emulator is a very significant piece of code and it is
>> the only thing that solves your problem. Use mobileterminal or
>> another terminal emulator that fits your environment.
>> 
>> 
>>> And the code is written with fully integration with other classes,
>>> so, generally very time consuming to get it work for our application.
>> 
>> Re-purposing the terminal emulator in mobileterminal is *surely*
>> *much* less time consuming than implementing your own terminal
>> emulator.
>> 
>> 
>>> I tried to use libssh2 for the application with a try. But not able
>>> to parse the output because output in mobile terminal comes from
>>> dumped file which is not the case for libssh2.
>> 
>> So what? You have the source code, write some glue that connects the
>> two together. Forget about the files. The terminal emulator part of
>> mobileterminal is the kind of code that you need to solve your
>> problem.
>> 
>> 
>>> i've tried to decode o/p from libssh2 command execution but not
>>> very easy to make it done.
>> 
>> Of course the output does not come from libssh2 - SSH is a clean
>> transport that never influences the data being sent.
>> 
>> It is difficult for you to decode output from commands which expect
>> to be connected to a terminal, because you are not a terminal, and
>> because you are not using a terminal emulator.
>> 
>> Use a terminal emulator, whose purpose is to understand the output
>> from commands that expect to be connected to a terminal.
>> 
>> 
>>> libssh2 command execution as it's because it's working in my
>>> application.
>> Just trying to reuse the decoding functionality for the app, so, i
>> can make the o/p to be displayed on the screen (UIView).
>> 
>> UIView is most likely completely useless as a terminal widget. My
>> guess is that you would get the best result from using mobileterminal
>> or another complete terminal emulator which is already implemented on
>> your platform.
>> 
>> 
>>> Could you please suggest me something so i can reuse for my
>>> application?
>> 
>> No I can not! Why should I? I have no iPhone and I don't develop
>> iPhone apps. This is the libssh2 mailing list, not a mailing list
>> about terminal emulators for the iPhone.
>> 
>> I did one search on google.com looking for a terminal emulator for
>> iphone and I found the mobileterminal project *immediately*. It looks
>> to me like mobileterminal solves the bulk of your problem. What
>> remains is for you to produce some glue code between the terminal
>> emulator and libssh2.
>> 
>> Obviously you did not bother to do the same search.. I'm sure you can
>> understand that this makes me very unmotivated to help you any
>> further.
>> 
>> 
>>> I am somewhat stuck with the application, due to VI and nano
>>> editior commands and top command as well..!
>> 
>> Too bad. You need a terminal emulator, mobileterminal looked like a
>> good fit, but if you are unable to use it then you should of course
>> search for an alternative. This mailing list is not a good place to
>> search, since this mailing list is about the libssh2 project, which
>> really is quite independent from terminal emulators.
>> 
>> 
>> Good luck.
>> 
>> //Peter
>> _______________________________________________
>> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
> 
> _______________________________________________
> 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  Thu Jul 15 12:53:34 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6FArYW2004936;
	Thu, 15 Jul 2010 12:53:34 +0200
Received: from oproxy3-pub.bluehost.com (oproxy3-pub.bluehost.com [69.89.21.8])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6FArEdm004889
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 12:53:15 +0200
Received: (qmail 30569 invoked by uid 0); 15 Jul 2010 10:53:12 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy3.bluehost.com with SMTP; 15 Jul 2010 10:53:11 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:From:Content-Type:Content-Transfer-Encoding:Subject:Date:Message-Id:To:Mime-Version:X-Mailer:X-Identified-User;
	b=EI3XIOGmiqTjfsA8HmzNMHJGT5kuVgMegwj6AAq2rkO4JAWz8/uipdYTw5fAMhCP9j8YnmRv9eHE2SfMr6VGdgmUUAXfJ47r3gjMhc5NeVOsPLWvOXFJyUsQYcl7QLso;
Received: from [122.169.84.103] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OZM3v-0000CI-OA
	for libssh2-devel@cool.haxx.se; Thu, 15 Jul 2010 04:53:08 -0600
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
Subject: Pseudo TTY for libssh2 and iPhone sdk
Date: Thu, 15 Jul 2010 16:22:28 +0530
Message-Id: <1B9DFB90-054C-493A-B6EE-9CEC22D30505@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (Apple Message framework v1078)
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.169.84.103 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 12:53:34 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 12:53:16 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Does anyone know how to open pseudo - tty for libssh2? 
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 15 18:24:57 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6FGOac2002734;
	Thu, 15 Jul 2010 18:24:53 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6FGOYYQ002729
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 18:24:34 +0200
Received: (qmail 30159 invoked by uid 501); 15 Jul 2010 16:24:31 -0000
Message-ID: <20100715162431.30158.qmail@stuge.se>
Date: Thu, 15 Jul 2010 18:24:31 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Detecting broken connection
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
	<alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
	<AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>
	<alpine.DEB.2.00.1007141731580.23196@tvnag.unkk.fr>
	<AANLkTimSflMuUIhGW-VKDLLzRJjybGHaL-pfJPjxRmH9@mail.gmail.com>
	<20100714191919.29768.qmail@stuge.se> <4C3E35DE.1030401@peut.org>
MIME-Version: 1.0
In-Reply-To: <4C3E35DE.1030401@peut.org>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 18:24:57 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 18:24:35 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============1510433167=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se


--===============1510433167==
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="MGYHOYXEY6WxJCY8"
Content-Disposition: inline


--MGYHOYXEY6WxJCY8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Jose Baars wrote:
> Point is that the default on Linux ( sockets have no keep alive
> enabled ) can not be changed.

Did you look at the TCP-Keepalive HOWTO that I linked to?

It seems to suggest that keepalive is always enabled also on Linux,
but the default timeout is long enough at 7500 seconds that it might
seem like the feature is disabled completely.


//Peter

--MGYHOYXEY6WxJCY8
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFMPzY/hR3Q0dhIfEgRAtsFAJ9fOcry4vuH6Iox31ZxI/ometCi9QCfcCZa
hyshISgnSTUB5KJwgqd9CXE=
=GBKX
-----END PGP SIGNATURE-----

--MGYHOYXEY6WxJCY8--

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

--===============1510433167==--

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 15 19:07:03 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6FH6rLV032521;
	Thu, 15 Jul 2010 19:07:01 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6FH6qJB032472
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 19:06:52 +0200
Date: Thu, 15 Jul 2010 19:06:52 +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: Detecting broken connection
In-Reply-To: <20100715162431.30158.qmail@stuge.se>
Message-ID: <alpine.DEB.2.00.1007151905380.11526@tvnag.unkk.fr>
References: <AANLkTilLULegDk09dGxlkrklzBVdUjxh8hdAHoSMwhls@mail.gmail.com>
	<000601cb2166$da9527a0$8fbf76e0$@com>
	<alpine.DEB.2.00.1007121829460.6011@tvnag.unkk.fr>
	<AANLkTinKEUyYhg0cLviH5hz1U3r4glRWI-CSA6af-pUX@mail.gmail.com>
	<alpine.DEB.2.00.1007141731580.23196@tvnag.unkk.fr>
	<AANLkTimSflMuUIhGW-VKDLLzRJjybGHaL-pfJPjxRmH9@mail.gmail.com>
	<20100714191919.29768.qmail@stuge.se> <4C3E35DE.1030401@peut.org>
	<20100715162431.30158.qmail@stuge.se>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 19:07:03 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 19:06:52 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Thu, 15 Jul 2010, Peter Stuge wrote:

> It seems to suggest that keepalive is always enabled also on Linux,

No, the document you linked to actually says exactly this:

   Remember that keepalive support, even if configured in the kernel, is not
   the default behavior in Linux.

7200 seconds is just a (very common) default value for when you enable 
keepalive.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Jul 15 23:21:15 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6FLKvsE029435;
	Thu, 15 Jul 2010 23:21:10 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6FLKvE4029427
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 23:20:57 +0200
Date: Thu, 15 Jul 2010 23:20:57 +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: Error Handling with Net::SSH2
In-Reply-To: <D459AB1B-3877-4E88-927F-576323C0F245@kineticode.com>
Message-ID: <alpine.DEB.2.00.1007152318500.11526@tvnag.unkk.fr>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
	<23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
	<1278965497.2016.20.camel@bret-redbook>
	<E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
	<1278979518.3604.57.camel@bret-redbook>
	<930492C4-FF24-41CD-BA80-694A3051F9F2@kineticode.com>
	<D459AB1B-3877-4E88-927F-576323C0F245@kineticode.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Thu, 15 Jul 2010 23:21:15 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Thu, 15 Jul 2010 23:20:57 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Tue, 13 Jul 2010, David E. Wheeler wrote:

> Error putting file '/usr/local/htdocs/foo.ppt' on 'prod.example.com': -37 
> LIBSSH2_ERROR_EAGAIN Unable to send channel data

A follow-up for everyone reading this thread:

Me, David and Peter worked on this on IRC and we found the problem to be 
(entirely) within the libssh2 perl binding code.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 16 00:38:57 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6FMcfsx032364;
	Fri, 16 Jul 2010 00:38:55 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6FMcdXS032361
	for <libssh2-devel@cool.haxx.se>; Fri, 16 Jul 2010 00:38:39 +0200
Received: (qmail 26097 invoked by uid 501); 15 Jul 2010 22:38:33 -0000
Message-ID: <20100715223833.26096.qmail@stuge.se>
Date: Fri, 16 Jul 2010 00:38:33 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Remote Terminal with iPhone SDK
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
	<20100714204700.10323.qmail@stuge.se>
	<BA227782-7CB8-4668-B63D-2887D6FBB066@moontechnolabs.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <BA227782-7CB8-4668-B63D-2887D6FBB066@moontechnolabs.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 16 Jul 2010 00:38:57 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 16 Jul 2010 00:38:39 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paresh Thakor wrote:
> And if i unveil a bit more than mobile terminal is file-based,
> constantly updating terminal file and o/p data from it.
> And libssh is not file based not constantly updating any selected
> file, so, can we make this file-based, so, o/p from libssh can be
> buffered in selected file? So, we can get the o/p from that
> selected file?

I already wrote that you should forget about the files. The part of
mobileterminal that deals with files obviously does not fit your
project and you need to remove it and write some other code that
glues mobileterminal together with libssh2.

But frankly, this project seems to be very difficult, so I would
probably suggest working on another project instead.


> Is this possible?

Yes of course it is possible.


> Our libssh2 is not working as expected or we might not know
> something so we can make this working.!

If libssh2 is not working as expected then the problem is either your
expectation, or a bug in libssh2. I think bugs are very important so
please describe your problem in detail, which obviously includes you
describing your expectations, so that we can determine if there is a
bug and what it is.

Please read http://www.chiark.greenend.org.uk/~sgtatham/bugs.html and
follow the advice there to get the best help.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 16 00:43:36 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6FMhXM9001976;
	Fri, 16 Jul 2010 00:43:36 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6FMhWTn001972
	for <libssh2-devel@cool.haxx.se>; Fri, 16 Jul 2010 00:43:32 +0200
Received: (qmail 26827 invoked by uid 501); 15 Jul 2010 22:43:28 -0000
Message-ID: <20100715224328.26826.qmail@stuge.se>
Date: Fri, 16 Jul 2010 00:43:28 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Pseudo TTY for libssh2 and iPhone sdk
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <1B9DFB90-054C-493A-B6EE-9CEC22D30505@moontechnolabs.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <1B9DFB90-054C-493A-B6EE-9CEC22D30505@moontechnolabs.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 16 Jul 2010 00:43:36 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 16 Jul 2010 00:43:32 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paresh Thakor wrote:
> Does anyone know how to open pseudo - tty for libssh2? 

This question is not very clear. Opening a pty is strictly neccessary
only on the server, and libssh2 is so far only a client library.

An SSH client which also handles terminal emulation (see how this is
again about terminal emulators, and that you probably could benefit
very much from studying terminals and terminal emulators..) has no
need for a pty since the terminal emulation is contained completely
within the SSH client itself. This would be the case on systems where
the kernel does not support terminals. I don't know if this is the
case for iPhone OS.

If you need to ask questions about terminals and terminal emulation
on iPhone OS then you must find a better place than the libssh2
mailing list.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 16 06:59:45 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6G4xRsF025353;
	Fri, 16 Jul 2010 06:59:42 +0200
Received: from smtp.kineticode.com (host-201.commandprompt.net
	[207.173.203.201])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6G4xO0r025349
	for <libssh2-devel@cool.haxx.se>; Fri, 16 Jul 2010 06:59:26 +0200
Received: from [10.0.1.15] (c-24-21-193-250.hsd1.or.comcast.net
	[24.21.193.250])
	by smtp.kineticode.com (Postfix) with ESMTPSA id 9297F508057
	for <libssh2-devel@cool.haxx.se>; Thu, 15 Jul 2010 21:59:22 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Error Handling with Net::SSH2
From: "David E. Wheeler" <david@kineticode.com>
In-Reply-To: <alpine.DEB.2.00.1007152318500.11526@tvnag.unkk.fr>
Date: Thu, 15 Jul 2010 21:59:21 -0700
Message-Id: <70AFE255-03C4-43EE-A903-D2F6A573BF28@kineticode.com>
References: <CDD07551-CF9B-414B-98DF-EA9F47A971A5@kineticode.com>
	<alpine.DEB.2.00.1007122032040.1036@tvnag.unkk.fr>
	<23AC8413-E7FF-4BF3-99E9-07F3E2B1FD61@kineticode.com>
	<1278965497.2016.20.camel@bret-redbook>
	<E8A4BE91-5BD9-47DC-8F2A-59BE0D4D9E72@kineticode.com>
	<1278979518.3604.57.camel@bret-redbook>
	<930492C4-FF24-41CD-BA80-694A3051F9F2@kineticode.com>
	<D459AB1B-3877-4E88-927F-576323C0F245@kineticode.com>
	<alpine.DEB.2.00.1007152318500.11526@tvnag.unkk.fr>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 16 Jul 2010 06:59:45 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 16 Jul 2010 06:59:26 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 15, 2010, at 2:20 PM, Daniel Stenberg wrote:

>> Error putting file '/usr/local/htdocs/foo.ppt' on 'prod.example.com': -37 LIBSSH2_ERROR_EAGAIN Unable to send channel data
> 
> A follow-up for everyone reading this thread:
> 
> Me, David and Peter worked on this on IRC and we found the problem to be (entirely) within the libssh2 perl binding code.

Yes, and thanks a million to you guys. Huge help, and left me feeling really positive about the quality of libssh2 and the folks who run it. Net::SSH2, OTOH, could use some love. :-)

Best,

David
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 16 08:06:17 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6G662OF002749;
	Fri, 16 Jul 2010 08:06:15 +0200
Received: from oproxy2-pub.bluehost.com (oproxy2-pub.bluehost.com
	[67.222.39.60])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6G65wDL002667
	for <libssh2-devel@cool.haxx.se>; Fri, 16 Jul 2010 08:06:00 +0200
Received: (qmail 20242 invoked by uid 0); 16 Jul 2010 06:05:58 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy2.bluehost.com with SMTP; 16 Jul 2010 06:05:57 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=S0+erHOFm/BbHjWOS70GgBdevgzUpbel0fcxhGBYPqaEOEbEA2BGAAojLKvVNPJv/Afg5r0nCB+dvf5nApEBzhDZ12kDWZiBBAIPYqyGetIHM+9x6cmAcpaGplK2sfTj;
Received: from [122.170.56.184] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OZe3Y-0003it-DN
	for libssh2-devel@cool.haxx.se; Fri, 16 Jul 2010 00:05:57 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Remote Terminal with iPhone SDK
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <20100715223833.26096.qmail@stuge.se>
Date: Fri, 16 Jul 2010 11:35:19 +0530
Message-Id: <3B22B5B6-53A4-45C1-9FBB-0C3A915C36EE@moontechnolabs.com>
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
	<20100714204700.10323.qmail@stuge.se>
	<BA227782-7CB8-4668-B63D-2887D6FBB066@moontechnolabs.com>
	<20100715223833.26096.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.170.56.184 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 16 Jul 2010 08:06:17 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 16 Jul 2010 08:06:01 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

I don't think libssh2 is having any bug, for my situation. But i just need to know about how we can put callback functions which can automatically be called when any data is written on the libssh2_channel?

Thanks.


On Jul 16, 2010, at 4:08 AM, Peter Stuge wrote:

> Paresh Thakor wrote:
>> And if i unveil a bit more than mobile terminal is file-based,
>> constantly updating terminal file and o/p data from it.
>> And libssh is not file based not constantly updating any selected
>> file, so, can we make this file-based, so, o/p from libssh can be
>> buffered in selected file? So, we can get the o/p from that
>> selected file?
> 
> I already wrote that you should forget about the files. The part of
> mobileterminal that deals with files obviously does not fit your
> project and you need to remove it and write some other code that
> glues mobileterminal together with libssh2.
> 
> But frankly, this project seems to be very difficult, so I would
> probably suggest working on another project instead.
> 
> 
>> Is this possible?
> 
> Yes of course it is possible.
> 
> 
>> Our libssh2 is not working as expected or we might not know
>> something so we can make this working.!
> 
> If libssh2 is not working as expected then the problem is either your
> expectation, or a bug in libssh2. I think bugs are very important so
> please describe your problem in detail, which obviously includes you
> describing your expectations, so that we can determine if there is a
> bug and what it is.
> 
> Please read http://www.chiark.greenend.org.uk/~sgtatham/bugs.html and
> follow the advice there to get the best help.
> 
> 
> //Peter
> _______________________________________________
> 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  Fri Jul 16 14:34:59 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6GCYdwQ002170;
	Fri, 16 Jul 2010 14:34:55 +0200
Received: from oproxy2-pub.bluehost.com (oproxy2-pub.bluehost.com
	[67.222.39.60])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6GCYbt4002163
	for <libssh2-devel@cool.haxx.se>; Fri, 16 Jul 2010 14:34:38 +0200
Received: (qmail 23125 invoked by uid 0); 16 Jul 2010 12:34:34 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy2.bluehost.com with SMTP; 16 Jul 2010 12:34:34 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=AoZ50DINd76coAkDtHuYyzHp7hL3o45ki/QSJphvXJgYZNH2dPITdL52E5kklfZoQTq+OR5VBwGulgRYhh3UkMaXGDT+AW0tnOoQ9rxEqZSX3gwrJOvBAvsQYxwggVEj;
Received: from [122.170.20.114] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OZk7d-0007nE-S7
	for libssh2-devel@cool.haxx.se; Fri, 16 Jul 2010 06:34:34 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Remote Terminal with iPhone SDK
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <3B22B5B6-53A4-45C1-9FBB-0C3A915C36EE@moontechnolabs.com>
Date: Fri, 16 Jul 2010 18:04:28 +0530
Message-Id: <40522A16-56B5-4ACE-AC00-1B9559C14F45@moontechnolabs.com>
References: <95E9486B-38E2-4106-9F37-1A3B1AD67D64@moontechnolabs.com>
	<20100628102527.8883.qmail@stuge.se>
	<6302E319-3D99-4923-9444-BF0AB752DE10@moontechnolabs.com>
	<20100628105654.14324.qmail@stuge.se>
	<DD8A6864-F03D-47F0-93E1-E08C3F80B304@moontechnolabs.com>
	<7EDBF258-D548-4F0A-A8E2-39CDCE9F76BA@moontechnolabs.com>
	<20100714204700.10323.qmail@stuge.se>
	<BA227782-7CB8-4668-B63D-2887D6FBB066@moontechnolabs.com>
	<20100715223833.26096.qmail@stuge.se>
	<3B22B5B6-53A4-45C1-9FBB-0C3A915C36EE@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.170.20.114 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 16 Jul 2010 14:34:59 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 16 Jul 2010 14:34:38 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Good to have your assistance... finally i glued mobile terminal and libssh2. Now I can proceed with the application.

Regards,
Paresh Thakor.


On Jul 16, 2010, at 11:35 AM, Paresh Thakor wrote:

> I don't think libssh2 is having any bug, for my situation. But i just need to know about how we can put callback functions which can automatically be called when any data is written on the libssh2_channel?
> 
> Thanks.
> 
> 
> On Jul 16, 2010, at 4:08 AM, Peter Stuge wrote:
> 
>> Paresh Thakor wrote:
>>> And if i unveil a bit more than mobile terminal is file-based,
>>> constantly updating terminal file and o/p data from it.
>>> And libssh is not file based not constantly updating any selected
>>> file, so, can we make this file-based, so, o/p from libssh can be
>>> buffered in selected file? So, we can get the o/p from that
>>> selected file?
>> 
>> I already wrote that you should forget about the files. The part of
>> mobileterminal that deals with files obviously does not fit your
>> project and you need to remove it and write some other code that
>> glues mobileterminal together with libssh2.
>> 
>> But frankly, this project seems to be very difficult, so I would
>> probably suggest working on another project instead.
>> 
>> 
>>> Is this possible?
>> 
>> Yes of course it is possible.
>> 
>> 
>>> Our libssh2 is not working as expected or we might not know
>>> something so we can make this working.!
>> 
>> If libssh2 is not working as expected then the problem is either your
>> expectation, or a bug in libssh2. I think bugs are very important so
>> please describe your problem in detail, which obviously includes you
>> describing your expectations, so that we can determine if there is a
>> bug and what it is.
>> 
>> Please read http://www.chiark.greenend.org.uk/~sgtatham/bugs.html and
>> follow the advice there to get the best help.
>> 
>> 
>> //Peter
>> _______________________________________________
>> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
> 
> _______________________________________________
> 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  Fri Jul 16 21:35:18 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6GJXwcj004143;
	Fri, 16 Jul 2010 21:35:12 +0200
Received: from fluffy.macrabbit.com (fluffy.macrabbit.com [70.84.77.114])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6GJXtXk004127
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 16 Jul 2010 21:33:57 +0200
Received: (qmail 27539 invoked from network); 16 Jul 2010 21:33:53 +0200
Received: from 78-20-241-137.access.telenet.be (HELO ?10.0.1.4?)
	(78.20.241.137)
	by fluffy.macrabbit.com with (AES128-SHA encrypted) SMTP;
	16 Jul 2010 21:33:53 +0200
From: Jan Van Boghout <lists@macrabbit.com>
Subject: Keep-alive problems in 1.2.6 + poll() mistake
Date: Fri, 16 Jul 2010 21:33:43 +0200
Message-Id: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (Apple Message framework v1081)
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 16 Jul 2010 21:35:18 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 16 Jul 2010 21:33:57 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hello List,

I just got around to trying 1.2.6 and discovered that libssh2_keepalive_config() was added a while back. Yay, this could get rid of custom patches... Unfortunately, when I enable it libssh2 won't even establish a proper channel to the server. These are the debug traces of both scenarios, in the hope that someone with more insight into the inner workings can make sense of them:

http://macrabbit.com/misc/libssh2/libssh2-log-with-keepalive.txt
http://macrabbit.com/misc/libssh2/libssh2-log-without-keepalive.txt

There's also a mistake in session.c when poll() is available (line 567 in 1.2.6). Poll() takes its timeout in milliseconds, so the / 1000 should be * 1000. Relevant snippet:

rc = poll(sockets, 1, seconds_to_next ? seconds_to_next / 1000 : -1);

Cheers,
Jan

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 17 01:47:52 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6GNkYG2032046;
	Sat, 17 Jul 2010 01:47:47 +0200
Received: from fluffy.macrabbit.com (fluffy.macrabbit.com [70.84.77.114])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6GNkWDr032040
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sat, 17 Jul 2010 01:46:33 +0200
Received: (qmail 31013 invoked from network); 17 Jul 2010 01:46:27 +0200
Received: from 78-20-241-137.access.telenet.be (HELO ?10.0.1.4?)
	(78.20.241.137)
	by fluffy.macrabbit.com with (AES128-SHA encrypted) SMTP;
	17 Jul 2010 01:46:27 +0200
From: Jan Van Boghout <lists@macrabbit.com>
Subject: Blocking mode and LIBSSH2_ERROR_EAGAIN 
Date: Sat, 17 Jul 2010 01:46:24 +0200
Message-Id: <EDA6EFE7-30A6-46AB-B43B-0B9E0B178872@macrabbit.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (Apple Message framework v1081)
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 17 Jul 2010 01:47:52 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 17 Jul 2010 01:46:33 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hello List,

Could someone enlighten me about the exact meaning of a LIBSSH2_ERROR_EAGAIN return value when libssh2 is in blocking mode? I was under the impression that this shouldn't occur, but that's apparently not the case.

Cheers,
Jan

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 17 18:57:34 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6HGvGQ7029438;
	Sat, 17 Jul 2010 18:57:31 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6HGvFU7029435
	for <libssh2-devel@cool.haxx.se>; Sat, 17 Jul 2010 18:57:15 +0200
Received: (qmail 11911 invoked by uid 501); 17 Jul 2010 16:57:12 -0000
Message-ID: <20100717165712.11910.qmail@stuge.se>
Date: Sat, 17 Jul 2010 18:57:12 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Keep-alive problems in 1.2.6 + poll() mistake
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 17 Jul 2010 18:57:34 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 17 Jul 2010 18:57:16 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Jan Van Boghout wrote:
> There's also a mistake in session.c when poll() is available (line 567 in 1.2.6). Poll() takes its timeout in milliseconds, so the / 1000 should be * 1000. Relevant snippet:

I fixed that bug already some time ago, but Daniel manually applied
only one of several things I changed in that patch, so the fix was
lost in a sea of email. I'll try to get back to that patch soon.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 17 18:59:45 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6HGxhvs031278;
	Sat, 17 Jul 2010 18:59:44 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6HGxfUB031271
	for <libssh2-devel@cool.haxx.se>; Sat, 17 Jul 2010 18:59:41 +0200
Received: (qmail 12267 invoked by uid 501); 17 Jul 2010 16:59:38 -0000
Message-ID: <20100717165938.12266.qmail@stuge.se>
Date: Sat, 17 Jul 2010 18:59:38 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Blocking mode and LIBSSH2_ERROR_EAGAIN
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <EDA6EFE7-30A6-46AB-B43B-0B9E0B178872@macrabbit.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <EDA6EFE7-30A6-46AB-B43B-0B9E0B178872@macrabbit.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 17 Jul 2010 18:59:45 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 17 Jul 2010 18:59:41 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Jan Van Boghout wrote:
> Could someone enlighten me about the exact meaning of a
> LIBSSH2_ERROR_EAGAIN return value when libssh2 is in blocking mode?
> I was under the impression that this shouldn't occur, but that's
> apparently not the case.

I also don't think it should occur. Are you seeing it? The error code
is used internally to create the simulated blocking API, so if one
checks for an error code when there was in fact no error then you're
pretty sure to get EAGAIN as the error code, since that was the last
error libssh2 generated, just that the blocking simulation handled
it, and later when the error code is being checked without there
being an error, it is still set to EAGAIN.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 17 19:20:16 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6HHKAFK013422;
	Sat, 17 Jul 2010 19:20:15 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6HHK8te013411
	for <libssh2-devel@cool.haxx.se>; Sat, 17 Jul 2010 19:20:08 +0200
Date: Sat, 17 Jul 2010 19:20:08 +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: Keep-alive problems in 1.2.6 + poll() mistake
In-Reply-To: <20100717165712.11910.qmail@stuge.se>
Message-ID: <alpine.DEB.2.00.1007171918110.19086@tvnag.unkk.fr>
References: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
	<20100717165712.11910.qmail@stuge.se>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 17 Jul 2010 19:20:16 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 17 Jul 2010 19:20:08 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Sat, 17 Jul 2010, Peter Stuge wrote:

> I fixed that bug already some time ago, but Daniel manually applied only one 
> of several things I changed in that patch, so the fix was lost in a sea of 
> email. I'll try to get back to that patch soon.

That's not at all what's behind this bug. This happened because I unified some 
code but failed to keep the details correct.

The patch I "applied only one of several things" from that you refer to, was 
done earlier and your description of that doesn't match my view of what I 
did...

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 17 19:25:07 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6HHP4F4015229;
	Sat, 17 Jul 2010 19:25:06 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6HHP38e015120
	for <libssh2-devel@cool.haxx.se>; Sat, 17 Jul 2010 19:25:03 +0200
Date: Sat, 17 Jul 2010 19:25:03 +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: Keep-alive problems in 1.2.6 + poll() mistake
In-Reply-To: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
Message-ID: <alpine.DEB.2.00.1007171924160.19086@tvnag.unkk.fr>
References: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 17 Jul 2010 19:25:07 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 17 Jul 2010 19:25:03 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Fri, 16 Jul 2010, Jan Van Boghout wrote:

> I just got around to trying 1.2.6 and discovered that 
> libssh2_keepalive_config() was added a while back. Yay, this could get rid 
> of custom patches... Unfortunately, when I enable it libssh2 won't even 
> establish a proper channel to the server.

A question: at what point in the function flow do you enable the keepalive?

Can you provide a smallish example repeating the problem?

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 18 15:19:03 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6IDIeEN029141;
	Sun, 18 Jul 2010 15:18:59 +0200
Received: from fluffy.macrabbit.com (fluffy.macrabbit.com [70.84.77.114])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6IDIajG029134
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 18 Jul 2010 15:18:37 +0200
Received: (qmail 6127 invoked from network); 18 Jul 2010 15:18:35 +0200
Received: from 78-20-241-137.access.telenet.be (HELO ?10.0.1.4?)
	(78.20.241.137)
	by fluffy.macrabbit.com with (AES128-SHA encrypted) SMTP;
	18 Jul 2010 15:18:35 +0200
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Blocking mode and LIBSSH2_ERROR_EAGAIN
From: Jan Van Boghout <lists@macrabbit.com>
In-Reply-To: <20100717165938.12266.qmail@stuge.se>
Date: Sun, 18 Jul 2010 15:18:30 +0200
Message-Id: <D8893A8F-AA45-495B-B6E0-D5725A0442C3@macrabbit.com>
References: <EDA6EFE7-30A6-46AB-B43B-0B9E0B178872@macrabbit.com>
	<20100717165938.12266.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 18 Jul 2010 15:19:03 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 18 Jul 2010 15:18:38 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Peter Stuge wrote:

> Jan Van Boghout wrote:
>> Could someone enlighten me about the exact meaning of a
>> LIBSSH2_ERROR_EAGAIN return value when libssh2 is in blocking mode?
>> I was under the impression that this shouldn't occur, but that's
>> apparently not the case.
> 
> I also don't think it should occur. Are you seeing it? The error code
> is used internally to create the simulated blocking API, so if one
> checks for an error code when there was in fact no error then you're
> pretty sure to get EAGAIN as the error code, since that was the last
> error libssh2 generated, just that the blocking simulation handled
> it, and later when the error code is being checked without there
> being an error, it is still set to EAGAIN.

Oops, this was indeed a case of code blindness on my part. Everything is working as it should!

Cheers,
Jan
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 18 15:22:43 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6IDMgR9030873;
	Sun, 18 Jul 2010 15:22:43 +0200
Received: from fluffy.macrabbit.com (fluffy.macrabbit.com [70.84.77.114])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6IDMdIR030864
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Sun, 18 Jul 2010 15:22:40 +0200
Received: (qmail 6968 invoked from network); 18 Jul 2010 15:22:36 +0200
Received: from 78-20-241-137.access.telenet.be (HELO ?10.0.1.4?)
	(78.20.241.137)
	by fluffy.macrabbit.com with (AES128-SHA encrypted) SMTP;
	18 Jul 2010 15:22:36 +0200
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Keep-alive problems in 1.2.6 + poll() mistake
From: Jan Van Boghout <lists@macrabbit.com>
In-Reply-To: <alpine.DEB.2.00.1007171924160.19086@tvnag.unkk.fr>
Date: Sun, 18 Jul 2010 15:22:32 +0200
Message-Id: <306B96FD-DA61-4C00-A2A3-0820BBDFDB3C@macrabbit.com>
References: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
	<alpine.DEB.2.00.1007171924160.19086@tvnag.unkk.fr>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 18 Jul 2010 15:22:43 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 18 Jul 2010 15:22:40 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On 17 Jul 2010, at 19:25, Daniel Stenberg wrote:

> On Fri, 16 Jul 2010, Jan Van Boghout wrote:
> 
>> I just got around to trying 1.2.6 and discovered that libssh2_keepalive_config() was added a while back. Yay, this could get rid of custom patches... Unfortunately, when I enable it libssh2 won't even establish a proper channel to the server.
> 
> A question: at what point in the function flow do you enable the keepalive?
> 
> Can you provide a smallish example repeating the problem?

I was configuring it before libssh2_session_startup, which turned out to be the culprit. After relocating libssh2_keepalive_config to after libssh2_session_startup, all smooth sailing. Thanks for the hint!

Cheers,
Jan

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 18 19:50:41 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6IHoL4Z028119;
	Sun, 18 Jul 2010 19:50:37 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6IHoKS2028104
	for <libssh2-devel@cool.haxx.se>; Sun, 18 Jul 2010 19:50:20 +0200
Date: Sun, 18 Jul 2010 19:50:20 +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: Keep-alive problems in 1.2.6 + poll() mistake
In-Reply-To: <306B96FD-DA61-4C00-A2A3-0820BBDFDB3C@macrabbit.com>
Message-ID: <alpine.DEB.2.00.1007181948560.19086@tvnag.unkk.fr>
References: <3D7E6223-A1DA-45BC-BBF6-6611419D4893@macrabbit.com>
	<alpine.DEB.2.00.1007171924160.19086@tvnag.unkk.fr>
	<306B96FD-DA61-4C00-A2A3-0820BBDFDB3C@macrabbit.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 18 Jul 2010 19:50:41 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 18 Jul 2010 19:50:20 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Sun, 18 Jul 2010, Jan Van Boghout wrote:

>> A question: at what point in the function flow do you enable the keepalive?
>>
>> Can you provide a smallish example repeating the problem?
>
> I was configuring it before libssh2_session_startup, which turned out to be 
> the culprit. After relocating libssh2_keepalive_config to after 
> libssh2_session_startup, all smooth sailing. Thanks for the hint!

Great. We need to make some notes about this in the documentation, as I know 
of at least one other case that also fell into this trap.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Jul 18 20:06:41 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6II6XdJ007635;
	Sun, 18 Jul 2010 20:06:39 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6II6VAh007621
	for <libssh2-devel@cool.haxx.se>; Sun, 18 Jul 2010 20:06:31 +0200
Date: Sun, 18 Jul 2010 20:06:31 +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: Blocking mode and LIBSSH2_ERROR_EAGAIN
In-Reply-To: <D8893A8F-AA45-495B-B6E0-D5725A0442C3@macrabbit.com>
Message-ID: <alpine.DEB.2.00.1007182004510.19086@tvnag.unkk.fr>
References: <EDA6EFE7-30A6-46AB-B43B-0B9E0B178872@macrabbit.com>
	<20100717165938.12266.qmail@stuge.se>
	<D8893A8F-AA45-495B-B6E0-D5725A0442C3@macrabbit.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sun, 18 Jul 2010 20:06:41 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sun, 18 Jul 2010 20:06:31 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Sun, 18 Jul 2010, Jan Van Boghout wrote:

>> I also don't think it should occur. Are you seeing it? The error code
>> is used internally to create the simulated blocking API, so if one
>> checks for an error code when there was in fact no error then you're
>> pretty sure to get EAGAIN as the error code, since that was the last
>> error libssh2 generated,

> Oops, this was indeed a case of code blindness on my part. Everything is 
> working as it should!

I've just pushed a change now that should make this situation less frequent, 
in that the internal _libssh2_wait_socket() function will now clear the error 
code. That should be the primary function that gets used after EAGAIN is set 
and used internally during blocking mode.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Jul 19 23:41:49 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6JLfTUi030809;
	Mon, 19 Jul 2010 23:41:43 +0200
Received: from VA3EHSOBE003.bigfish.com (va3ehsobe003.messaging.microsoft.com
	[216.32.180.13])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6JLfQwQ030775
	(version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Mon, 19 Jul 2010 23:41:27 +0200
Received: from mail62-va3-R.bigfish.com (10.7.14.237) by
	VA3EHSOBE003.bigfish.com (10.7.40.23) with Microsoft SMTP Server id
	8.1.340.0; Mon, 19 Jul 2010 21:41:17 +0000
Received: from mail62-va3 (localhost.localdomain [127.0.0.1])	by
	mail62-va3-R.bigfish.com (Postfix) with ESMTP id B943F7F01E8	for
	<libssh2-devel@cool.haxx.se>; Mon, 19 Jul 2010 21:41:16 +0000 (UTC)
X-SpamScore: -5
X-BigFish: VS-5(zz936eMzz1202hzzz2dh27ah43h61h)
X-Spam-TCS-SCL: 0:0
Received: from mail62-va3 (localhost.localdomain [127.0.0.1]) by mail62-va3
	(MessageSwitch) id 1279575676334513_25216;
	Mon, 19 Jul 2010 21:41:16 +0000 (UTC)
Received: from VA3EHSMHS005.bigfish.com (unknown [10.7.14.246])	by
	mail62-va3.bigfish.com (Postfix) with ESMTP id 4D55E1D0046	for
	<libssh2-devel@cool.haxx.se>; Mon, 19 Jul 2010 21:41:16 +0000 (UTC)
Received: from efjdfwfs07.EFJDFW.local (12.5.72.193) by
	VA3EHSMHS005.bigfish.com (10.7.99.15) with Microsoft SMTP Server id
	14.0.482.44; Mon, 19 Jul 2010 21:41:13 +0000
Received: from transmx01.transcrypt.local ([10.1.0.8]) by
	efjdfwfs07.EFJDFW.local with Microsoft SMTPSVC(6.0.3790.4675);
	Mon, 19 Jul 2010 16:41:10 -0500
Content-Class: urn:content-classes:message
MIME-Version: 1.0
X-MimeOLE: Produced By Microsoft Exchange V6.5
Subject: libssh2_sftp_close
Date: Mon, 19 Jul 2010 16:41:09 -0500
Message-ID: <BA34378D1528D04CB3C865B8BAB2472B03622C@transmx01.transcrypt.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: libssh2_sftp_close
Thread-Index: AcsnixnM+Fyu3+w5Q4+QGIWUL7rWSw==
From: Michael Heese <MHeese@efji.com>
To: <libssh2-devel@cool.haxx.se>
X-OriginalArrivalTime: 19 Jul 2010 21:41:10.0665 (UTC)
	FILETIME=[1A605790:01CB278B]
X-Bypass-Agent: EF-1;
X-Reverse-DNS: unknown
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Mon, 19 Jul 2010 23:41:49 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Mon, 19 Jul 2010 23:41:27 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============1406058126=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

--===============1406058126==
Content-Class: urn:content-classes:message
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01CB278B.1A2F61CA"

------_=_NextPart_001_01CB278B.1A2F61CA
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

We seem to be experiencing a problem with the libssh2_sftp_close()
function.  The first time I call this function it works fine.  However,
any calls to it after that cause it to block and hang forever.

=20

The problem seems to be in the _libssh2_wait_socket() function in
session.c.  The select() function at the bottom is being passed NULL,
which causes this function to block infinitely.  If I hardcode a value,
say 10 seconds, this seems to fix the problem but I would rather not
hardcode a timeout value as this causes other calls to delay as well.

=20

I see other people have complained about this problem but don't have any
fixes/patches available??  We are using version 1.2.6 that I downloaded
on 7/12/10.

=20

Any help is much appreciated.

=20

Thank,

Mike H

=20

=20


------_=_NextPart_001_01CB278B.1A2F61CA
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'>We seem to be experiencing a problem with the =
libssh2_sftp_close()
function.&nbsp; The first time I call this function it works fine.&nbsp;
However, any calls to it after that cause it to block and hang =
forever.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'>The problem seems to be in the =
_libssh2_wait_socket()
function in session.c.&nbsp; The select() function at the bottom is =
being
passed NULL, which causes this function to block infinitely.&nbsp; If I
hardcode a value, say 10 seconds, this seems to fix the problem but I =
would
rather not hardcode a timeout value as this causes other calls to delay =
as
well.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'>I see other people have complained about this =
problem but
don&#8217;t have any fixes/patches available??&nbsp; We are using =
version 1.2.6
that I downloaded on 7/12/10.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'>Any help is much =
appreciated.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'>Thank,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'>Mike H<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DConsolas><span =
style=3D'font-size:10.0pt;
font-family:Consolas'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01CB278B.1A2F61CA--

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

--===============1406058126==--

From libssh2-devel-bounces@cool.haxx.se  Tue Jul 20 22:38:44 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6KKcRY7011575;
	Tue, 20 Jul 2010 22:38:41 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6KKcQFg011558
	for <libssh2-devel@cool.haxx.se>; Tue, 20 Jul 2010 22:38:26 +0200
Date: Tue, 20 Jul 2010 22:38:26 +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: libssh2_sftp_close
In-Reply-To: <BA34378D1528D04CB3C865B8BAB2472B03622C@transmx01.transcrypt.local>
Message-ID: <alpine.DEB.2.00.1007202236370.31071@tvnag.unkk.fr>
References: <BA34378D1528D04CB3C865B8BAB2472B03622C@transmx01.transcrypt.local>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Tue, 20 Jul 2010 22:38:44 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Tue, 20 Jul 2010 22:38:26 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Mon, 19 Jul 2010, Michael Heese wrote:

> We seem to be experiencing a problem with the libssh2_sftp_close() function. 
> The first time I call this function it works fine.  However, any calls to it 
> after that cause it to block and hang forever.

I assume you close a second sftp handle then? Can you please provide a small 
example repeating the problem?

Do you use OpenSSL or gcrypt? Does it always happen and does it depend on a 
particular sftp server flavour? What target operating system are you running 
this on?

> The problem seems to be in the _libssh2_wait_socket() function in session.c. 
> The select() function at the bottom is being passed NULL, which causes this 
> function to block infinitely.  If I hardcode a value, say 10 seconds, this 
> seems to fix the problem but I would rather not hardcode a timeout value as 
> this causes other calls to delay as well.

That would be the sympthom of the problem, not the source for it...

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Jul 21 21:32:05 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6LJVkul003701;
	Wed, 21 Jul 2010 21:32:00 +0200
Received: from shell.lmi.net (shell.lmi.net [66.117.140.246])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6LJVgF3003689
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Wed, 21 Jul 2010 21:31:44 +0200
Received: from rcom-software.com (75-101-82-95.dsl2st.lmi.net [75.101.82.95])
	by shell.lmi.net (8.14.1/8.14.1) with ESMTP id o6LJVXdd005166
	for <libssh2-devel@cool.haxx.se>; Wed, 21 Jul 2010 12:31:33 -0700 (PDT)
Message-ID: <4C474B4E.6F79CB01@rcom-software.com>
Date: Wed, 21 Jul 2010 12:32:30 -0700
From: Paul Romero <paulr@rcom-software.com>
Organization: RCOM Communications Software
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,es,de-DE,fr-FR
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: SSH Private Key
X-Scanned-By: MIMEDefang 2.37
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 21 Jul 2010 21:32:05 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 21 Jul 2010 21:31:45 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Dear Group:

I have an elementary question about the SSH
private key .  It is used only in authentication,  or at
other times during an SFTP transaction ?  If it is used
at other times, can you briefly describe when it is used ?

Best Regards,

Paul R.


--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: paulr@rcom-software.com


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Jul 21 22:13:09 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6LKCwOt002379;
	Wed, 21 Jul 2010 22:13:07 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6LKCv8e002373
	for <libssh2-devel@cool.haxx.se>; Wed, 21 Jul 2010 22:12:57 +0200
Received: (qmail 13811 invoked by uid 501); 21 Jul 2010 20:12:54 -0000
Message-ID: <20100721201254.13810.qmail@stuge.se>
Date: Wed, 21 Jul 2010 22:12:54 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: SSH Private Key
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4C474B4E.6F79CB01@rcom-software.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4C474B4E.6F79CB01@rcom-software.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Wed, 21 Jul 2010 22:13:09 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Wed, 21 Jul 2010 22:12:57 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Paul Romero wrote:
> I have an elementary question about the SSH
> private key .  It is used only in authentication,

Yes, only for authentication.


> or at other times during an SFTP transaction ?

No, other keys and algorithms are negotiated as part of setting up
the connection. (Even before authentication.)

Enable debugging in libssh2, or run OpenSSH ssh -vvv when logging in,
to get a lot of information about the messages back and forth, as
part of setting up a session.

And of course there's always the RFCs. :)


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 07:10:04 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6N599Jt012434;
	Fri, 23 Jul 2010 07:10:00 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6N596ns012411
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 07:09:07 +0200
Received: from [10.1.10.13] (173-162-214-218-NewEngland.hfc.comcastbusiness.net
	[173.162.214.218])
	by toccata.fugue.com (Postfix) with ESMTPSA id 1302B34E420E
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 01:09:17 -0400 (EDT)
From: Ted Lemon <mellon@fugue.com>
Subject: Incomplete read of channel 0 data from remote host.
Date: Fri, 23 Jul 2010 01:08:59 -0400
Message-Id: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
To: libssh2-devel@cool.haxx.se
Mime-Version: 1.0 (Apple Message framework v1081)
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 07:10:04 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 07:09:07 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

I'm having a weird problem that I suspect is a failure to understand how the library works, and I'm wondering if somebody can clue me in.

My code is running in non-blocking mode.  My app successfully connects to the remote host and authenticates, creates a channel, and starts a shell.   Then when I try to read the initial output of the shell, I get nothing--libssh2_channel_read_ex returns EAGAIN.

So I added some code to send "ls\n".   Okay, now I get the initial login banner, and part of the ls output, but again it stops before I get a prompt.

It looks like the code is returning EAGAIN when it already has some data, because it wants to fill up my input buffer (256 bytes) before returning any data at all.   Does that make sense?   Is there a call I'm supposed to do to figure out how much data is available to be read?   I couldn't make sense of all the calls for getting and setting windows--is that what I'm missing?

Anyway, thanks in advance for any advice you can give me!

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 15:58:23 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NDw7rJ024827;
	Fri, 23 Jul 2010 15:58:19 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6NDw5f5024823
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 15:58:05 +0200
Received: (qmail 17663 invoked by uid 501); 23 Jul 2010 13:58:01 -0000
Message-ID: <20100723135801.17662.qmail@stuge.se>
Date: Fri, 23 Jul 2010 15:58:01 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Incomplete read of channel 0 data from remote host.
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 15:58:23 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 15:58:06 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Ted Lemon wrote:
> I'm having a weird problem that I suspect is a failure to
> understand how the library works, and I'm wondering if somebody can
> clue me in.

I think maybe SSH rathern than the library. Let's see if we can find
the problem.


> My code is running in non-blocking mode.  My app successfully
> connects to the remote host and authenticates, creates a channel,
> and starts a shell.

You do not request a PTY?


> Then when I try to read the initial output of the shell, I get
> nothing--libssh2_channel_read_ex returns EAGAIN.
> 
> So I added some code to send "ls\n".   Okay, now I get the initial
> login banner, and part of the ls output, but again it stops before
> I get a prompt.

This suggests that something along the way is being line buffered.
TTYs (including PTYs) are character based, so would not be, but if
you're running the shell without a PTY then maybe it's connected to
sshd on the server through a line buffered pipe.


> It looks like the code is returning EAGAIN when it already has some
> data, because it wants to fill up my input buffer (256 bytes)
> before returning any data at all.   Does that make sense?

No. libssh2 never keeps anything from you. It's much simpler than
that.


> Is there a call I'm supposed to do to figure out how much data is
> available to be read?

Nope. Though this is not such a bad idea, we've been discussing ways
to improve the API and something like this has come up.


> I couldn't make sense of all the calls for getting and setting
> windows--is that what I'm missing?

No, windows is a fairly low-level part of the SSH protocol, so
nothing that applications should deal with.


> Anyway, thanks in advance for any advice you can give me!

Check that your connection to the shell is not line buffered
anywhere.


Also, note that you will need terminal emulation if you want to use
any more fancy formatting over the connection. Of course you can
always use the "dumb" terminal, but it isn't so sexy.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 16:13:18 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NEDC4T004066;
	Fri, 23 Jul 2010 16:13:18 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NEDAbC004046
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 16:13:11 +0200
Received: from [10.1.10.13] (173-162-214-218-NewEngland.hfc.comcastbusiness.net
	[173.162.214.218])
	by toccata.fugue.com (Postfix) with ESMTPSA id EB9E834E468E;
	Fri, 23 Jul 2010 10:13:20 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Incomplete read of channel 0 data from remote host.
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <20100723135801.17662.qmail@stuge.se>
Date: Fri, 23 Jul 2010 10:13:01 -0400
Message-Id: <A6A97C76-81B1-466D-AB75-59B2EBF2D21C@fugue.com>
References: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
	<20100723135801.17662.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>,
        Peter Stuge <peter@stuge.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 16:13:18 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 16:13:11 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 23, 2010, at 9:58 AM, Peter Stuge wrote:
> You do not request a PTY?

Sorry, I left that part out.  Unfortunately, I do request a pty, so that's not it.

> This suggests that something along the way is being line buffered.
> TTYs (including PTYs) are character based, so would not be, but if
> you're running the shell without a PTY then maybe it's connected to
> sshd on the server through a line buffered pipe.

There's nothing to suggest that it's line buffered.   Is it possible that some output might be getting discarded for some reason?

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 16:34:12 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NEY1Jh017969;
	Fri, 23 Jul 2010 16:34:10 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6NEXx1X017951
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 16:34:00 +0200
Received: (qmail 23784 invoked by uid 501); 23 Jul 2010 14:33:57 -0000
Message-ID: <20100723143357.23783.qmail@stuge.se>
Date: Fri, 23 Jul 2010 16:33:57 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Incomplete read of channel 0 data from remote host.
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
	<20100723135801.17662.qmail@stuge.se>
	<A6A97C76-81B1-466D-AB75-59B2EBF2D21C@fugue.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <A6A97C76-81B1-466D-AB75-59B2EBF2D21C@fugue.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 16:34:12 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 16:34:00 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Ted Lemon wrote:
> Unfortunately, I do request a pty, so that's not it.

Ok.


> There's nothing to suggest that it's line buffered.   Is it
> possible that some output might be getting discarded for some
> reason?

No, not really. Now would be a good time to enable debug output in
your libssh2, and call libssh2_trace(session,~0); in your app. Then
inspect/send the debug log.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 16:51:40 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NEpVYE030395;
	Fri, 23 Jul 2010 16:51:38 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NEpSNb030374
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 16:51:28 +0200
Received: from [10.1.10.13] (173-162-214-218-NewEngland.hfc.comcastbusiness.net
	[173.162.214.218])
	by toccata.fugue.com (Postfix) with ESMTPSA id F3F9534E4670
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 10:51:38 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Incomplete read of channel 0 data from remote host.
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <20100723143357.23783.qmail@stuge.se>
Date: Fri, 23 Jul 2010 10:51:19 -0400
Message-Id: <FA4CE63E-22D6-437C-BC5F-6B464B6A2DDB@fugue.com>
References: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
	<20100723135801.17662.qmail@stuge.se>
	<A6A97C76-81B1-466D-AB75-59B2EBF2D21C@fugue.com>
	<20100723143357.23783.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 16:51:40 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 16:51:29 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 23, 2010, at 10:33 AM, Peter Stuge wrote:
> No, not really. Now would be a good time to enable debug output in
> your libssh2, and call libssh2_trace(session,~0); in your app. Then
> inspect/send the debug log.

Oh, interesting.   I've included the tail end of the log below, with the hex dump excluded.   It looks like all the data arrived, but not all of it came in when I did the read.   My buffer for the read was 256 bytes; it looks like it discarded everything after that.   When I made the buffer 25600 bytes instead of 256, I got all the output.   This doesn't explain why I didn't get all the output from the initial read, but it's certainly interesting.

=> libssh2_transport_read() plain (10626 bytes)
[libssh2] 4.154395 Transport: Packet type 94 received, length=10626
[libssh2] 4.154418 Conn: 10617 bytes packet_add() for 0/0/0
[libssh2] 4.154457 Socket: Error recving 16384 bytes to 0x762120+0: 35
[libssh2] 4.154481 Conn: channel_read() got 154 of data from 0/0/0 [ul]
[libssh2] 4.154509 Conn: channel_read() got 22 of data from 0/0/0 [ul]
[libssh2] 4.154530 Conn: channel_read() got 9 of data from 0/0/0 [ul]
[libssh2] 4.154550 Conn: channel_read() got 1 of data from 0/0/0 [ul]
[libssh2] 4.154568 Conn: channel_read() got 1 of data from 0/0/0 [ul]
[libssh2] 4.154588 Conn: channel_read() got 1 of data from 0/0/0 [ul]
[libssh2] 4.154702 Conn: channel_read() got 1 of data from 0/0/0 [ul]
[libssh2] 4.154729 Conn: channel_read() got 1 of data from 0/0/0 [ul]
[libssh2] 4.154749 Conn: channel_read() got 2 of data from 0/0/0 [ul]
[libssh2] 4.154769 Conn: channel_read() got 16 of data from 0/0/0 [ul]
[libssh2] 4.154790 Conn: channel_read() got 48 of data from 0/0/0
len: 256  string: onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
e]0;mellon@toccata: ~atoccata% ls -l
total 12037508
drwxr-xr-x   2 mellon   staff          4096 2002
current string: 
[libssh2] 4.154956 Socket: Error recving 16384 bytes to 0x762120+0: 35
[libssh2] 4.155043 Conn: channel_read() wants 256 bytes from channel 0/0 stream #2
[libssh2] 4.155071 Socket: Error recving 16384 bytes to 0x762120+0: 35
sshStateConnected
need input...

At this point with the 256-byte buffer, it just hangs, even though we've received all the (voluminous) output from the ls.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 17:33:05 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NFWnWV022493;
	Fri, 23 Jul 2010 17:33:02 +0200
Received: from opentext.com (smtpout.opentext.com [204.138.115.203])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NFWls2022458
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 17:32:48 +0200
Received: from otwlpm01.smtp.dmz.opentext.com (otwlpm01.smtp.dmz.opentext.com
	[192.168.15.230])
	by opentext.com (8.12.8/8.12.8) with ESMTP id o6NFWdS9029427
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 11:32:39 -0400
Received: from vectorsvc.wl.opentext.com (ava.wl.opentext.com [172.21.5.96])
	by otwlpm01.smtp.dmz.opentext.com (8.14.4/8.14.4) with ESMTP id
	o6NFWdMI019115
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 11:32:39 -0400
	(envelope-from arossen@opentext.com)
Received: from OTWLMX06.opentext.net (otwlxg04.wl.opentext.com [10.2.102.26])
	by vectorsvc.wl.opentext.com (8.12.8/8.12.8) with ESMTP id
	o6NFWdqt029422
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 11:32:39 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: linking static lib fails on Solaris9
Date: Fri, 23 Jul 2010 11:29:28 -0400
Message-ID: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: linking static lib fails on Solaris9
Thread-Index: AcsqfEfpXWkA7NZmR8iZsral8pX6rg==
From: "Alona Rossen" <arossen@opentext.com>
To: <libssh2-devel@cool.haxx.se>
X-Archived: msg.1OJgBxb:2010-07-23:otwlpm01.smtp.dmz.opentext.com
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 17:33:05 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 17:32:49 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============1696084673=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

This is a multi-part message in MIME format.

--===============1696084673==
Content-class: urn:content-classes:message
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01CB2A7C.47FA3324"

This is a multi-part message in MIME format.

------_=_NextPart_001_01CB2A7C.47FA3324
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello,=20

=20

I receive the following error when I try to build static lib on Solaris9
with Sun C++ 5.5 2003/03/12:

=20

libtool: link: false cru .libs/libssh2.a......

=20

$ ./configure LD=3Dcc LDFLAGS=3D-ldl --with-openssl
--with-libssl-prefix=3D/usr/local/ssl
--prefix=3D/export/home/sambuild/CURL_SSH2/ssh2

=20

=20

Please advise.

=20

Thank you,=20

Alona


------_=_NextPart_001_01CB2A7C.47FA3324
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal>Hello, <o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>I receive the following error when I try to build =
static lib
on Solaris9 with Sun C++ 5.5 2003/03/12:<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>libtool: link: false cru =
.libs/libssh2.a&#8230;&#8230;<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>$ ./configure LD=3Dcc LDFLAGS=3D-ldl --with-openssl
--with-libssl-prefix=3D/usr/local/ssl
--prefix=3D/export/home/sambuild/CURL_SSH2/ssh2<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>Please advise.<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>Thank you, <o:p></o:p></p>

<p class=3DMsoNormal>Alona<o:p></o:p></p>

</div>

</body>

</html>

------_=_NextPart_001_01CB2A7C.47FA3324--

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

--===============1696084673==--

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 18:53:50 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NGrXtj009799;
	Fri, 23 Jul 2010 18:53:48 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6NGrVrg009792
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 18:53:31 +0200
Received: (qmail 15460 invoked by uid 501); 23 Jul 2010 16:53:28 -0000
Message-ID: <20100723165328.15459.qmail@stuge.se>
Date: Fri, 23 Jul 2010 18:53:28 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 18:53:50 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 18:53:31 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi Alona,

Alona Rossen wrote:
> I receive the following error when I try to build static lib on
> Solaris9 with Sun C++ 5.5 2003/03/12:
> 
> libtool: link: false cru .libs/libssh2.a......
> 
> $ ./configure LD=cc LDFLAGS=-ldl --with-openssl
> --with-libssl-prefix=/usr/local/ssl
> --prefix=/export/home/sambuild/CURL_SSH2/ssh2

Please provide more information. Send the full output starting with
the configure command through to the prompt after the failed make.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 19:09:55 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NH9kf4021711;
	Fri, 23 Jul 2010 19:09:53 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6NH9ikt021695
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 19:09:44 +0200
Received: (qmail 18476 invoked by uid 501); 23 Jul 2010 17:09:41 -0000
Message-ID: <20100723170941.18475.qmail@stuge.se>
Date: Fri, 23 Jul 2010 19:09:41 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Incomplete read of channel 0 data from remote host.
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
	<20100723135801.17662.qmail@stuge.se>
	<A6A97C76-81B1-466D-AB75-59B2EBF2D21C@fugue.com>
	<20100723143357.23783.qmail@stuge.se>
	<FA4CE63E-22D6-437C-BC5F-6B464B6A2DDB@fugue.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <FA4CE63E-22D6-437C-BC5F-6B464B6A2DDB@fugue.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 19:09:55 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 19:09:44 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Ted Lemon wrote:
> My buffer for the read was 256 bytes; it looks like it discarded
> everything after that.   When I made the buffer 25600 bytes instead
> of 256, I got all the output.

Ok, then please use a larger buffer for now. 1024 should be safe
since it used to be the maximum allowed size for a long time.


> This doesn't explain why I didn't get all the output from the
> initial read, but it's certainly interesting.

Clearly there's some bug in libssh2 when it comes to small buffers,
just like there is with really large buffers. (Never go above ~32500
byte buffers when you send.)


Basically data handling within libssh2 has known problems, and you
bumped into yet another one. If you want to improve libssh2 then your
help with fixing this is very welcome, if not then please stick with
a slightly larger buffer to avoid the problem. :)


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 19:43:13 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NHh5oq008120;
	Fri, 23 Jul 2010 19:43:12 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NHh37B008042
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 19:43:03 +0200
Received: from [10.1.10.13] (173-162-214-218-NewEngland.hfc.comcastbusiness.net
	[173.162.214.218])
	by toccata.fugue.com (Postfix) with ESMTPSA id 2CD3634E466E
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 13:43:13 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Incomplete read of channel 0 data from remote host.
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <20100723170941.18475.qmail@stuge.se>
Date: Fri, 23 Jul 2010 13:42:54 -0400
Message-Id: <5EAD92EA-6170-4EB8-B6DD-CF2F90977FD5@fugue.com>
References: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
	<20100723135801.17662.qmail@stuge.se>
	<A6A97C76-81B1-466D-AB75-59B2EBF2D21C@fugue.com>
	<20100723143357.23783.qmail@stuge.se>
	<FA4CE63E-22D6-437C-BC5F-6B464B6A2DDB@fugue.com>
	<20100723170941.18475.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 19:43:13 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 19:43:03 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 23, 2010, at 1:09 PM, Peter Stuge wrote:
> Basically data handling within libssh2 has known problems, and you
> bumped into yet another one. If you want to improve libssh2 then your
> help with fixing this is very welcome, if not then please stick with
> a slightly larger buffer to avoid the problem. :)

I will take a look at it when I get a chance--I definitely have some ideas for how to improve libssh2, some of which you might like--but for now I will use the larger buffer size to get over this obstacle.

Thanks for helping me to figure this out!

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 20:00:22 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NI06vZ017665;
	Fri, 23 Jul 2010 20:00:19 +0200
Received: from ponderosa.fch.wimsey.bc.ca (zz20920564179.cipherkey.net
	[209.205.64.179])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NI03lP017306
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 20:00:04 +0200
Received: by coneharvesters.com
	via sendmail with stdio id <m1OcMXK-000l6IC@ponderosa.fch.wimsey.bc.ca>
	for libssh2-devel@cool.haxx.se; Fri, 23 Jul 2010 10:59:54 -0700 (PDT)
Date: Fri, 23 Jul 2010 10:59:53 -0700
From: Dan Fandrich <dan@coneharvesters.com>
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9
Message-ID: <20100723175952.GA23719@coneharvesters.com>
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
User-Agent: Mutt/1.5.19 (2009-01-05)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 20:00:22 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 20:00:04 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Fri, Jul 23, 2010 at 11:29:28AM -0400, Alona Rossen wrote:
> I receive the following error when I try to build static lib on Solaris9 with
> Sun C++ 5.5 2003/03/12:
> 
> libtool: link: false cru .libs/libssh2.a??

It looks like configure or libtool is using the program 'false' to create
static archives instead of 'ar'. Clearly, there is an issue with its static
library support. Do you have 'ar' installed?

>>> Dan
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 20:07:28 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NI7N17025571;
	Fri, 23 Jul 2010 20:07:27 +0200
Received: from opentext.com (smtpout.opentext.com [204.138.115.203])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NI7JtY025432
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 20:07:21 +0200
Received: from otwlpm02.smtp.dmz.opentext.com (otwlpm02.smtp.dmz.opentext.com
	[192.168.15.231])
	by opentext.com (8.12.8/8.12.8) with ESMTP id o6NI7BS9026928
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:07:11 -0400
Received: from vectorsvc.wl.opentext.com (ava.wl.opentext.com [172.21.5.96])
	by otwlpm02.smtp.dmz.opentext.com (8.14.4/8.14.4) with ESMTP id
	o6NI7ATT004326
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:07:11 -0400
	(envelope-from arossen@opentext.com)
Received: from OTWLMX06.opentext.net (otwlxg04.wl.opentext.com [10.2.102.26])
	by vectorsvc.wl.opentext.com (8.12.8/8.12.8) with ESMTP id
	o6NI7Aqt026923
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:07:10 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: RE: linking static lib fails on Solaris9
Date: Fri, 23 Jul 2010 14:07:10 -0400
Message-ID: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969FA@OTWLMX06.opentext.net>
In-Reply-To: <20100723175952.GA23719@coneharvesters.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: linking static lib fails on Solaris9
Thread-Index: AcsqkScwlzwoy0tSSdaRbuYtf4VYVAAAKfEA
References: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
	<20100723175952.GA23719@coneharvesters.com>
From: "Alona Rossen" <arossen@opentext.com>
To: "libssh2 development" <libssh2-devel@cool.haxx.se>
X-Archived: msg.2gD29Mg:2010-07-23:otwlpm02.smtp.dmz.opentext.com
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 20:07:28 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 20:07:21 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Yes, we do. In fact, configure was supposed to fail in case we did not.

-----Original Message-----
From: libssh2-devel-bounces@cool.haxx.se
[mailto:libssh2-devel-bounces@cool.haxx.se] On Behalf Of Dan Fandrich
Sent: Friday, July 23, 2010 2:00 PM
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9

On Fri, Jul 23, 2010 at 11:29:28AM -0400, Alona Rossen wrote:
> I receive the following error when I try to build static lib on
Solaris9 with
> Sun C++ 5.5 2003/03/12:
> 
> libtool: link: false cru .libs/libssh2.a??

It looks like configure or libtool is using the program 'false' to
create
static archives instead of 'ar'. Clearly, there is an issue with its
static
library support. Do you have 'ar' installed?

>>> Dan
_______________________________________________
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  Fri Jul 23 20:16:03 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NIFYXJ029529;
	Fri, 23 Jul 2010 20:16:02 +0200
Received: from opentext.com (smtpout.opentext.com [204.138.115.203])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NIFUw6029466
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 20:15:31 +0200
Received: from otwlpm02.smtp.dmz.opentext.com (otwlpm02.smtp.dmz.opentext.com
	[192.168.15.231])
	by opentext.com (8.12.8/8.12.8) with ESMTP id o6NIFMS9030302
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:15:22 -0400
Received: from vectorsvc.wl.opentext.com (ava.wl.opentext.com [172.21.5.96])
	by otwlpm02.smtp.dmz.opentext.com (8.14.4/8.14.4) with ESMTP id
	o6NIFMkm014788
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:15:22 -0400
	(envelope-from arossen@opentext.com)
Received: from OTWLMX06.opentext.net (otwlxg04.wl.opentext.com [10.2.102.26])
	by vectorsvc.wl.opentext.com (8.12.8/8.12.8) with ESMTP id
	o6NIFMqt030295
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:15:22 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01CB2A93.035D7744"
Subject: RE: linking static lib fails on Solaris9
Date: Fri, 23 Jul 2010 14:13:58 -0400
Message-ID: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5EFE354@OTWLMX06.opentext.net>
In-Reply-To: <20100723165328.15459.qmail@stuge.se>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: linking static lib fails on Solaris9
Thread-Index: Acsqh/qYzXyHMQZiR1GTx3zqXNAXWwACsQzw
References: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
	<20100723165328.15459.qmail@stuge.se>
From: "Alona Rossen" <arossen@opentext.com>
To: "libssh2 development" <libssh2-devel@cool.haxx.se>
X-Archived: msg.2rCjbxU:2010-07-23:otwlpm02.smtp.dmz.opentext.com
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 20:16:03 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 20:15:33 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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>
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

This is a multi-part message in MIME format.

------_=_NextPart_001_01CB2A93.035D7744
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable



-----Original Message-----
From: libssh2-devel-bounces@cool.haxx.se
[mailto:libssh2-devel-bounces@cool.haxx.se] On Behalf Of Peter Stuge
Sent: July 23, 2010 12:53 PM
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9

Hi Alona,

Alona Rossen wrote:
> I receive the following error when I try to build static lib on
> Solaris9 with Sun C++ 5.5 2003/03/12:
>=20
> libtool: link: false cru .libs/libssh2.a......
>=20
> $ ./configure LD=3Dcc LDFLAGS=3D-ldl --with-openssl
> --with-libssl-prefix=3D/usr/local/ssl
> --prefix=3D/export/home/sambuild/CURL_SSH2/ssh2

Please provide more information. Send the full output starting with
the configure command through to the prompt after the failed make.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

------_=_NextPart_001_01CB2A93.035D7744
Content-Type: application/octet-stream;
	name="config.log"
Content-Transfer-Encoding: base64
Content-Description: config.log
Content-Disposition: attachment;
	filename="config.log"

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGxpYnNzaDIgY29uZmlndXJlIC0sIHdoaWNo
IHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjUuICBJbnZvY2F0aW9uIGNvbW1hbmQg
bGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSBDQz1DQyBMREZMQUdTPS1sZGwgLS13aXRoLW9wZW5z
c2wgLS13aXRoLWxpYnNzbC1wcmVmaXg9L2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbCAt
LXByZWZpeD0vZXhwb3J0L2hvbWUvc2FtYnVpbGQvQ1VSTF9TU0gyL3NzaDIKCiMjIC0tLS0tLS0t
LSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMgLS0tLS0tLS0tICMjCgpob3N0bmFtZSA9IHFhZ2VuaW9z
b2w5CnVuYW1lIC1tID0gc3VuNHUKdW5hbWUgLXIgPSA1LjkKdW5hbWUgLXMgPSBTdW5PUwp1bmFt
ZSAtdiA9IEdlbmVyaWNfMTIyMzAwLTMyCgovdXNyL2Jpbi91bmFtZSAtcCA9IHNwYXJjCi9iaW4v
dW5hbWUgLVggICAgID0gU3lzdGVtID0gU3VuT1MKTm9kZSA9IHFhZ2VuaW9zb2w5ClJlbGVhc2Ug
PSA1LjkKS2VybmVsSUQgPSBHZW5lcmljXzEyMjMwMC0zMgpNYWNoaW5lID0gc3VuNHUKQnVzVHlw
ZSA9IDx1bmtub3duPgpTZXJpYWwgPSA8dW5rbm93bj4KVXNlcnMgPSA8dW5rbm93bj4KT0VNIyA9
IDAKT3JpZ2luIyA9IDEKTnVtQ1BVID0gMQoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IHN1bjQK
L3Vzci9iaW4vYXJjaCAtayAgICAgICA9IHN1bjR1Ci91c3IvY29udmV4L2dldHN5c2luZm8gPSB1
bmtub3duCi91c3IvYmluL2hvc3RpbmZvICAgICAgPSB1bmtub3duCi9iaW4vbWFjaGluZSAgICAg
ICAgICAgPSB1bmtub3duCi91c3IvYmluL29zbGV2ZWwgICAgICAgPSB1bmtub3duCi9iaW4vdW5p
dmVyc2UgICAgICAgICAgPSB1bmtub3duCgpQQVRIOiAvdXNyL2xvY2FsL2JpbgpQQVRIOiAvdXNy
L2JpbgpQQVRIOiAvdXNyL3VjYgpQQVRIOiAvZXRjClBBVEg6IC4KUEFUSDogL3Vzci9vcGVud2lu
L2JpbgpQQVRIOiAvZXhwb3J0L2hvbWUvU1MxMS9TVU5Xc3Byby9iaW4KCgojIyAtLS0tLS0tLS0t
LSAjIwojIyBDb3JlIHRlc3RzLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKY29uZmlndXJlOjI0MTc6
IGNoZWNraW5nIHdoZXRoZXIgdG8gZW5hYmxlIG1haW50YWluZXItc3BlY2lmaWMgcG9ydGlvbnMg
b2YgTWFrZWZpbGVzCmNvbmZpZ3VyZToyNDI2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNDQ0OiBj
aGVja2luZyBmb3Igc2VkCmNvbmZpZ3VyZToyNDYzOiBmb3VuZCAvdXNyL2Jpbi9zZWQKY29uZmln
dXJlOjI0NzY6IHJlc3VsdDogL3Vzci9iaW4vc2VkCmNvbmZpZ3VyZToyNTMwOiBjaGVja2luZyBm
b3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsCmNvbmZpZ3VyZToyNTk4OiByZXN1bHQ6IC4vaW5z
dGFsbC1zaCAtYwpjb25maWd1cmU6MjYwOTogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9u
bWVudCBpcyBzYW5lCmNvbmZpZ3VyZToyNjQ2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjcwODog
Y2hlY2tpbmcgZm9yIGdhd2sKY29uZmlndXJlOjI3Mzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3
MDg6IGNoZWNraW5nIGZvciBtYXdrCmNvbmZpZ3VyZToyNzM4OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy
ZToyNzA4OiBjaGVja2luZyBmb3IgbmF3awpjb25maWd1cmU6MjcyNDogZm91bmQgL3Vzci9iaW4v
bmF3awpjb25maWd1cmU6MjczNTogcmVzdWx0OiBuYXdrCmNvbmZpZ3VyZToyNzQ2OiBjaGVja2lu
ZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpCmNvbmZpZ3VyZToyNzY4OiByZXN1bHQ6IHllcwpj
b25maWd1cmU6Mjk0NjogY2hlY2tpbmcgbGlic3NoMiB2ZXJzaW9uCmNvbmZpZ3VyZToyOTQ4OiBy
ZXN1bHQ6IDEuMi42CmNvbmZpZ3VyZToyOTU3OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZQpj
b25maWd1cmU6Mjk3MTogcmVzdWx0OiBzcGFyYy1zdW4tc29sYXJpczIuOQpjb25maWd1cmU6Mjk5
MTogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6MzAwNDogcmVzdWx0OiBzcGFy
Yy1zdW4tc29sYXJpczIuOQpjb25maWd1cmU6MzAzMTogYXV0b2J1aWxkIHByb2plY3QuLi4gbGli
c3NoMgpjb25maWd1cmU6MzAzNzogYXV0b2J1aWxkIHJldmlzaW9uLi4uIDEuMi42CmNvbmZpZ3Vy
ZTozMDQyOiBhdXRvYnVpbGQgaG9zdG5hbWUuLi4gcWFnZW5pb3NvbDkKY29uZmlndXJlOjMwNTM6
IGF1dG9idWlsZCB0aW1lc3RhbXAuLi4gMjAxMDA3MjMtMTIwOTU5CmNvbmZpZ3VyZTozMDk0OiBj
aGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5IG1ha2UKY29uZmlndXJlOjMxMjI6
IHJlc3VsdDogR05VCmNvbmZpZ3VyZTozMTk1OiBjaGVja2luZyBmb3IgZ2NjCmNvbmZpZ3VyZToz
MjIyOiByZXN1bHQ6IENDCmNvbmZpZ3VyZTozNDUxOiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2
ZXJzaW9uCmNvbmZpZ3VyZTozNDYwOiBDQyAtLXZlcnNpb24gPiY1CkNDOiBXYXJuaW5nOiBPcHRp
b24gLS12ZXJzaW9uIHBhc3NlZCB0byBsZCwgaWYgbGQgaXMgaW52b2tlZCwgaWdub3JlZCBvdGhl
cndpc2UKL3Vzci9jY3MvYmluL2xkOiBpbGxlZ2FsIG9wdGlvbiAtLSAtCi91c3IvY2NzL2Jpbi9s
ZDogaWxsZWdhbCBvcHRpb24gLS0gdgp1c2FnZTogbGQgWy02OmFiYzpkOmU6ZjpoOmlsOm1vOnA6
cnN0dTp6OkI6Q0Q6RjpHSTpMOk06TjpQOlE6UjpTOlZZOj9dIGZpbGUocykKCVstNjRdCQllbmZv
cmNlIGEgNjQtYml0IGxpbmstZWRpdAoJWy1hXQkJY3JlYXRlIGFuIGFic29sdXRlIGZpbGUKCVst
Yl0JCWRvIG5vdCBkbyBzcGVjaWFsIFBJQyByZWxvY2F0aW9ucyBpbiBhLm91dAoJWy1CIGRpcmVj
dCB8IG5vZGlyZWN0XQoJCQllc3RhYmxpc2ggZGlyZWN0IGJpbmRpbmdzLCBvciBpbmhpYml0IGRp
cmVjdCBiaW5kaW5nCgkJCXRvLCB0aGUgb2JqZWN0IGJlaW5nIGNyZWF0ZWQKLi4uIHJlc3Qgb2Yg
c3RkZXJyIG91dHB1dCBkZWxldGVkIC4uLgpjb25maWd1cmU6MzQ3MTogJD8gPSAxCmNvbmZpZ3Vy
ZTozNDYwOiBDQyAtdiA+JjUKIyMjICAgICBjb21tYW5kIGxpbmUgZmlsZXMgYW5kIG9wdGlvbnMg
KGV4cGFuZGVkKToKIyMjIC12IAojIyMgQ0M6IE5vdGU6IE5MU1BBVEggPSAvb3B0L3RlcmFkYXRh
L2NsaWVudC8xMy4xMC9vZGJjXzMyL21zZy8lTjo6L2V4cG9ydC9ob21lL1NTMTEvU1VOV3Nwcm8v
cHJvZC9iaW4vLi4vbGliL2xvY2FsZS8lTC9MQ19NRVNTQUdFUy8lTi5jYXQ6L2V4cG9ydC9ob21l
L1NTMTEvU1VOV3Nwcm8vcHJvZC9iaW4vLi4vLi4vbGliL2xvY2FsZS8lTC9MQ19NRVNTQUdFUy8l
Ti5jYXQKY29uZmlndXJlOjM0NzE6ICQ/ID0gMApjb25maWd1cmU6MzQ2MDogQ0MgLVYgPiY1CkND
OiBTdW4gQysrIDUuOCAyMDA1LzEwLzEzCmNvbmZpZ3VyZTozNDcxOiAkPyA9IDAKY29uZmlndXJl
OjM0NjA6IENDIC1xdmVyc2lvbiA+JjUKQ0M6IFdhcm5pbmc6IE9wdGlvbiAtcXZlcnNpb24gcGFz
c2VkIHRvIGxkLCBpZiBsZCBpcyBpbnZva2VkLCBpZ25vcmVkIG90aGVyd2lzZQovdXNyL2Njcy9i
aW4vbGQ6IGlsbGVnYWwgb3B0aW9uIC0tIHEKL3Vzci9jY3MvYmluL2xkOiBpbGxlZ2FsIG9wdGlv
biAtLSB2CnVzYWdlOiBsZCBbLTY6YWJjOmQ6ZTpmOmg6aWw6bW86cDpyc3R1Ono6QjpDRDpGOkdJ
Okw6TTpOOlA6UTpSOlM6Vlk6P10gZmlsZShzKQoJWy02NF0JCWVuZm9yY2UgYSA2NC1iaXQgbGlu
ay1lZGl0CglbLWFdCQljcmVhdGUgYW4gYWJzb2x1dGUgZmlsZQoJWy1iXQkJZG8gbm90IGRvIHNw
ZWNpYWwgUElDIHJlbG9jYXRpb25zIGluIGEub3V0CglbLUIgZGlyZWN0IHwgbm9kaXJlY3RdCgkJ
CWVzdGFibGlzaCBkaXJlY3QgYmluZGluZ3MsIG9yIGluaGliaXQgZGlyZWN0IGJpbmRpbmcKCQkJ
dG8sIHRoZSBvYmplY3QgYmVpbmcgY3JlYXRlZAouLi4gcmVzdCBvZiBzdGRlcnIgb3V0cHV0IGRl
bGV0ZWQgLi4uCmNvbmZpZ3VyZTozNDcxOiAkPyA9IDEKY29uZmlndXJlOjM0OTE6IGNoZWNraW5n
IHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKY29uZmlndXJlOjM1MTM6IENDICAgLWxkbCBj
b25mdGVzdC5jICA+JjUKY29uZmlndXJlOjM1MTc6ICQ/ID0gMApjb25maWd1cmU6MzU2NjogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjM1Njk6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQg
b3V0cHV0IGZpbGUgbmFtZQpjb25maWd1cmU6MzU3MTogcmVzdWx0OiBhLm91dApjb25maWd1cmU6
MzU3NzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwpjb25maWd1cmU6MzU4NDog
Q0MgLW8gY29uZnRlc3QgICAtbGRsIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MzU4ODogJD8g
PSAwCmNvbmZpZ3VyZTozNjEwOiByZXN1bHQ6IApjb25maWd1cmU6MzYzMjogY2hlY2tpbmcgd2hl
dGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nCmNvbmZpZ3VyZTozNjQwOiBDQyAtbyBjb25mdGVz
dCAgIC1sZGwgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTozNjQ0OiAkPyA9IDAKY29uZmlndXJl
OjM2NTE6IC4vY29uZnRlc3QKY29uZmlndXJlOjM2NTU6ICQ/ID0gMApjb25maWd1cmU6MzY3MDog
cmVzdWx0OiBubwpjb25maWd1cmU6MzY3NTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3Qg
ZmlsZXMKY29uZmlndXJlOjM2OTc6IENDIC1jICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjM3
MDE6ICQ/ID0gMApjb25maWd1cmU6MzcyMjogcmVzdWx0OiBvCmNvbmZpZ3VyZTozNzI2OiBjaGVj
a2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIKY29uZmlndXJlOjM3
NDU6IENDIC1jICAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDE2OiBFcnJvcjog
Y2hva2UgaXMgbm90IGRlZmluZWQuCjEgRXJyb3IocykgZGV0ZWN0ZWQuCmNvbmZpZ3VyZTozNzQ1
OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq
Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO
QU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFD
S0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJz
c2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmlu
ZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgLyogZW5kIGNv
bmZkZWZzLmguICAqLwp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBfX0dOVUNfXwp8
ICAgICAgICBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m
aWd1cmU6Mzc1NDogcmVzdWx0OiBubwpjb25maWd1cmU6Mzc2MzogY2hlY2tpbmcgd2hldGhlciBD
QyBhY2NlcHRzIC1nCmNvbmZpZ3VyZTozNzgzOiBDQyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29u
ZmlndXJlOjM3ODM6ICQ/ID0gMApjb25maWd1cmU6MzgyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjM4NDE6IGNoZWNraW5nIGZvciBDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkKY29uZmlndXJl
OjM5MDU6IENDICAtYyAtZyAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDE4OiBF
cnJvcjogcCBpcyBub3QgZGVmaW5lZC4KImNvbmZ0ZXN0LmMiLCBsaW5lIDIyOiBXYXJuaW5nOiBU
aGUgdmFyaWFibGUgcCBoYXMgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEgdmFsdWUuCiJjb25mdGVz
dC5jIiwgbGluZSAyMjogV2FybmluZzogVGhlIHZhcmlhYmxlIGkgaGFzIG5vdCB5ZXQgYmVlbiBh
c3NpZ25lZCBhIHZhbHVlLgoiY29uZnRlc3QuYyIsIGxpbmUgMjU6IEVycm9yOiBVc2UgIjsiIHRv
IHRlcm1pbmF0ZSBkZWNsYXJhdGlvbnMuCiJjb25mdGVzdC5jIiwgbGluZSAyODogRXJyb3I6IF9f
YnVpbHRpbl92YV9hbGlzdCBpcyBub3QgZGVmaW5lZC4KImNvbmZ0ZXN0LmMiLCBsaW5lIDI5OiBF
cnJvcjogVGhlIGZ1bmN0aW9uICJnIiBtdXN0IGhhdmUgYSBwcm90b3R5cGUuCiJjb25mdGVzdC5j
IiwgbGluZSA1NjogRXJyb3I6IFVzZSAiOyIgdG8gdGVybWluYXRlIGRlY2xhcmF0aW9ucy4KImNv
bmZ0ZXN0LmMiLCBsaW5lIDU3OiBFcnJvcjogRm9ybWFsIGFyZ3VtZW50IGcgb2YgdHlwZSBjaGFy
KigqKShjaGFyKiosaW50KSBpbiBjYWxsIHRvIGYoY2hhciooKikoY2hhcioqLGludCksIGNoYXIq
KiwgLi4uKSBpcyBiZWluZyBwYXNzZWQgY2hhciooKikoKS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDU3
OiBFcnJvcjogRm9ybWFsIGFyZ3VtZW50IGcgb2YgdHlwZSBjaGFyKigqKShjaGFyKiosaW50KSBp
biBjYWxsIHRvIGYoY2hhciooKikoY2hhcioqLGludCksIGNoYXIqKiwgLi4uKSBpcyBiZWluZyBw
YXNzZWQgY2hhciooKikoKS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDYwOiBFcnJvcjogIn0iIGV4cGVj
dGVkIGluc3RlYWQgb2YgRU9GLgo4IEVycm9yKHMpIGFuZCAyIFdhcm5pbmcocykgZGV0ZWN0ZWQu
CmNvbmZpZ3VyZTozOTA1OiAkPyA9IDgKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg
LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZp
bmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIt
Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4y
LjYiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRhcmcuaD4KfCAjaW5j
bHVkZSA8c3RkaW8uaD4KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9z
dGF0Lmg+CnwgLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBS
Q1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwp8IHN0cnVjdCBidWYgeyBpbnQgeDsgfTsKfCBGSUxF
ICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOwp8IHN0YXRp
YyBjaGFyICplIChwLCBpKQp8ICAgICAgY2hhciAqKnA7CnwgICAgICBpbnQgaTsKfCB7CnwgICBy
ZXR1cm4gcFtpXTsKfCB9Cnwgc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBp
bnQpLCBjaGFyICoqcCwgLi4uKQp8IHsKfCAgIGNoYXIgKnM7CnwgICB2YV9saXN0IHY7CnwgICB2
YV9zdGFydCAodixwKTsKfCAgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7CnwgICB2YV9lbmQg
KHYpOwp8ICAgcmV0dXJuIHM7CnwgfQp8IAp8IC8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUg
c29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCnwgICAgZnVuY3Rpb24gcHJv
dG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRz
Lgp8ICAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVh
ZCBhcmUgc2lsZW50bHkgdHJlYXRlZAp8ICAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNl
cyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKfCAgICBwcm9wZXIgQU5TSSBt
b2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFu
CnwgICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAw
Jz09MCB0byBnZXQgc29tZXRoaW5nCnwgICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQuICAq
Lwp8IGludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07CnwgCnwgLyogSUJN
IEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNlcyBt
YWNybyBwYXJhbWV0ZXJzCnwgICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBjb25zdGFu
dHMuICAqLwp8ICNkZWZpbmUgRk9PKHgpICd4Jwp8IGludCB4bGM2X2NjX2FycmF5W0ZPTyhhKSA9
PSAneCcgPyAxIDogLTFdOwp8IAp8IGludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwp8IHN0cnVj
dCBzMSB7aW50ICgqZikgKGludCBhKTt9Owp8IHN0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBh
KTt9Owp8IGludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYg
Kiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwp8IGludCBhcmdjOwp8IGNoYXIgKiph
cmd2Owp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3Zb
MF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg
fQpjb25maWd1cmU6MzkwNTogQ0MgLXFsYW5nbHZsPWV4dGM4OSAtYyAtZyAgY29uZnRlc3QuYyA+
JjUKQ0M6IFdhcm5pbmc6IE9wdGlvbiAtcWxhbmdsdmw9ZXh0Yzg5IHBhc3NlZCB0byBsZCwgaWYg
bGQgaXMgaW52b2tlZCwgaWdub3JlZCBvdGhlcndpc2UKImNvbmZ0ZXN0LmMiLCBsaW5lIDE4OiBF
cnJvcjogcCBpcyBub3QgZGVmaW5lZC4KImNvbmZ0ZXN0LmMiLCBsaW5lIDIyOiBXYXJuaW5nOiBU
aGUgdmFyaWFibGUgcCBoYXMgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEgdmFsdWUuCiJjb25mdGVz
dC5jIiwgbGluZSAyMjogV2FybmluZzogVGhlIHZhcmlhYmxlIGkgaGFzIG5vdCB5ZXQgYmVlbiBh
c3NpZ25lZCBhIHZhbHVlLgoiY29uZnRlc3QuYyIsIGxpbmUgMjU6IEVycm9yOiBVc2UgIjsiIHRv
IHRlcm1pbmF0ZSBkZWNsYXJhdGlvbnMuCiJjb25mdGVzdC5jIiwgbGluZSAyODogRXJyb3I6IF9f
YnVpbHRpbl92YV9hbGlzdCBpcyBub3QgZGVmaW5lZC4KImNvbmZ0ZXN0LmMiLCBsaW5lIDI5OiBF
cnJvcjogVGhlIGZ1bmN0aW9uICJnIiBtdXN0IGhhdmUgYSBwcm90b3R5cGUuCiJjb25mdGVzdC5j
IiwgbGluZSA1NjogRXJyb3I6IFVzZSAiOyIgdG8gdGVybWluYXRlIGRlY2xhcmF0aW9ucy4KImNv
bmZ0ZXN0LmMiLCBsaW5lIDU3OiBFcnJvcjogRm9ybWFsIGFyZ3VtZW50IGcgb2YgdHlwZSBjaGFy
KigqKShjaGFyKiosaW50KSBpbiBjYWxsIHRvIGYoY2hhciooKikoY2hhcioqLGludCksIGNoYXIq
KiwgLi4uKSBpcyBiZWluZyBwYXNzZWQgY2hhciooKikoKS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDU3
OiBFcnJvcjogRm9ybWFsIGFyZ3VtZW50IGcgb2YgdHlwZSBjaGFyKigqKShjaGFyKiosaW50KSBp
biBjYWxsIHRvIGYoY2hhciooKikoY2hhcioqLGludCksIGNoYXIqKiwgLi4uKSBpcyBiZWluZyBw
YXNzZWQgY2hhciooKikoKS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDYwOiBFcnJvcjogIn0iIGV4cGVj
dGVkIGluc3RlYWQgb2YgRU9GLgo4IEVycm9yKHMpIGFuZCAyIFdhcm5pbmcocykgZGV0ZWN0ZWQu
CmNvbmZpZ3VyZTozOTA1OiAkPyA9IDgKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg
LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZp
bmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIt
Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4y
LjYiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRhcmcuaD4KfCAjaW5j
bHVkZSA8c3RkaW8uaD4KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9z
dGF0Lmg+CnwgLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBS
Q1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwp8IHN0cnVjdCBidWYgeyBpbnQgeDsgfTsKfCBGSUxF
ICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOwp8IHN0YXRp
YyBjaGFyICplIChwLCBpKQp8ICAgICAgY2hhciAqKnA7CnwgICAgICBpbnQgaTsKfCB7CnwgICBy
ZXR1cm4gcFtpXTsKfCB9Cnwgc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBp
bnQpLCBjaGFyICoqcCwgLi4uKQp8IHsKfCAgIGNoYXIgKnM7CnwgICB2YV9saXN0IHY7CnwgICB2
YV9zdGFydCAodixwKTsKfCAgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7CnwgICB2YV9lbmQg
KHYpOwp8ICAgcmV0dXJuIHM7CnwgfQp8IAp8IC8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUg
c29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCnwgICAgZnVuY3Rpb24gcHJv
dG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRz
Lgp8ICAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVh
ZCBhcmUgc2lsZW50bHkgdHJlYXRlZAp8ICAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNl
cyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKfCAgICBwcm9wZXIgQU5TSSBt
b2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFu
CnwgICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAw
Jz09MCB0byBnZXQgc29tZXRoaW5nCnwgICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQuICAq
Lwp8IGludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07CnwgCnwgLyogSUJN
IEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNlcyBt
YWNybyBwYXJhbWV0ZXJzCnwgICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBjb25zdGFu
dHMuICAqLwp8ICNkZWZpbmUgRk9PKHgpICd4Jwp8IGludCB4bGM2X2NjX2FycmF5W0ZPTyhhKSA9
PSAneCcgPyAxIDogLTFdOwp8IAp8IGludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwp8IHN0cnVj
dCBzMSB7aW50ICgqZikgKGludCBhKTt9Owp8IHN0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBh
KTt9Owp8IGludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYg
Kiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwp8IGludCBhcmdjOwp8IGNoYXIgKiph
cmd2Owp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3Zb
MF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg
fQpjb25maWd1cmU6MzkwNTogQ0MgLXFsYW5nbHZsPWFuc2kgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1
CkNDOiBXYXJuaW5nOiBPcHRpb24gLXFsYW5nbHZsPWFuc2kgcGFzc2VkIHRvIGxkLCBpZiBsZCBp
cyBpbnZva2VkLCBpZ25vcmVkIG90aGVyd2lzZQoiY29uZnRlc3QuYyIsIGxpbmUgMTg6IEVycm9y
OiBwIGlzIG5vdCBkZWZpbmVkLgoiY29uZnRlc3QuYyIsIGxpbmUgMjI6IFdhcm5pbmc6IFRoZSB2
YXJpYWJsZSBwIGhhcyBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2YWx1ZS4KImNvbmZ0ZXN0LmMi
LCBsaW5lIDIyOiBXYXJuaW5nOiBUaGUgdmFyaWFibGUgaSBoYXMgbm90IHlldCBiZWVuIGFzc2ln
bmVkIGEgdmFsdWUuCiJjb25mdGVzdC5jIiwgbGluZSAyNTogRXJyb3I6IFVzZSAiOyIgdG8gdGVy
bWluYXRlIGRlY2xhcmF0aW9ucy4KImNvbmZ0ZXN0LmMiLCBsaW5lIDI4OiBFcnJvcjogX19idWls
dGluX3ZhX2FsaXN0IGlzIG5vdCBkZWZpbmVkLgoiY29uZnRlc3QuYyIsIGxpbmUgMjk6IEVycm9y
OiBUaGUgZnVuY3Rpb24gImciIG11c3QgaGF2ZSBhIHByb3RvdHlwZS4KImNvbmZ0ZXN0LmMiLCBs
aW5lIDU2OiBFcnJvcjogVXNlICI7IiB0byB0ZXJtaW5hdGUgZGVjbGFyYXRpb25zLgoiY29uZnRl
c3QuYyIsIGxpbmUgNTc6IEVycm9yOiBGb3JtYWwgYXJndW1lbnQgZyBvZiB0eXBlIGNoYXIqKCop
KGNoYXIqKixpbnQpIGluIGNhbGwgdG8gZihjaGFyKigqKShjaGFyKiosaW50KSwgY2hhcioqLCAu
Li4pIGlzIGJlaW5nIHBhc3NlZCBjaGFyKigqKSgpLgoiY29uZnRlc3QuYyIsIGxpbmUgNTc6IEVy
cm9yOiBGb3JtYWwgYXJndW1lbnQgZyBvZiB0eXBlIGNoYXIqKCopKGNoYXIqKixpbnQpIGluIGNh
bGwgdG8gZihjaGFyKigqKShjaGFyKiosaW50KSwgY2hhcioqLCAuLi4pIGlzIGJlaW5nIHBhc3Nl
ZCBjaGFyKigqKSgpLgoiY29uZnRlc3QuYyIsIGxpbmUgNjA6IEVycm9yOiAifSIgZXhwZWN0ZWQg
aW5zdGVhZCBvZiBFT0YuCjggRXJyb3IocykgYW5kIDIgV2FybmluZyhzKSBkZXRlY3RlZC4KY29u
ZmlndXJlOjM5MDU6ICQ/ID0gOApjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj
b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQ
QUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwg
I2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS
RVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg
IiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIK
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRl
IDxzdGRpby5oPgp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c3lzL3N0YXQu
aD4KfCAvKiBNb3N0IG9mIHRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIHN0b2xlbiBmcm9tIFJDUyA1
LjcncyBzcmMvY29uZi5zaC4gICovCnwgc3RydWN0IGJ1ZiB7IGludCB4OyB9Owp8IEZJTEUgKiAo
KnJjc29wZW4pIChzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCk7Cnwgc3RhdGljIGNo
YXIgKmUgKHAsIGkpCnwgICAgICBjaGFyICoqcDsKfCAgICAgIGludCBpOwp8IHsKfCAgIHJldHVy
biBwW2ldOwp8IH0KfCBzdGF0aWMgY2hhciAqZiAoY2hhciAqICgqZykgKGNoYXIgKiosIGludCks
IGNoYXIgKipwLCAuLi4pCnwgewp8ICAgY2hhciAqczsKfCAgIHZhX2xpc3QgdjsKfCAgIHZhX3N0
YXJ0ICh2LHApOwp8ICAgcyA9IGcgKHAsIHZhX2FyZyAodixpbnQpKTsKfCAgIHZhX2VuZCAodik7
CnwgICByZXR1cm4gczsKfCB9CnwgCnwgLyogT1NGIDQuMCBDb21wYXEgY2MgaXMgc29tZSBzb3J0
IG9mIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQuICBJdCBoYXMKfCAgICBmdW5jdGlvbiBwcm90b3R5
cGVzIGFuZCBzdHVmZiwgYnV0IG5vdCAnXHhISCcgaGV4IGNoYXJhY3RlciBjb25zdGFudHMuCnwg
ICAgVGhlc2UgZG9uJ3QgcHJvdm9rZSBhbiBlcnJvciB1bmZvcnR1bmF0ZWx5LCBpbnN0ZWFkIGFy
ZSBzaWxlbnRseSB0cmVhdGVkCnwgICAgYXMgJ3gnLiAgVGhlIGZvbGxvd2luZyBpbmR1Y2VzIGFu
IGVycm9yLCB1bnRpbCAtc3RkIGlzIGFkZGVkIHRvIGdldAp8ICAgIHByb3BlciBBTlNJIG1vZGUu
ICBDdXJpb3VzbHkgJ1x4MDAnIT0neCcgYWx3YXlzIGNvbWVzIG91dCB0cnVlLCBmb3IgYW4KfCAg
ICBhcnJheSBzaXplIGF0IGxlYXN0LiAgSXQncyBuZWNlc3NhcnkgdG8gd3JpdGUgJ1x4MDAnPT0w
IHRvIGdldCBzb21ldGhpbmcKfCAgICB0aGF0J3MgdHJ1ZSBvbmx5IHdpdGggLXN0ZC4gICovCnwg
aW50IG9zZjRfY2NfYXJyYXkgWydceDAwJyA9PSAwID8gMSA6IC0xXTsKfCAKfCAvKiBJQk0gQyA2
IGZvciBBSVggaXMgYWxtb3N0LUFOU0kgYnkgZGVmYXVsdCwgYnV0IGl0IHJlcGxhY2VzIG1hY3Jv
IHBhcmFtZXRlcnMKfCAgICBpbnNpZGUgc3RyaW5ncyBhbmQgY2hhcmFjdGVyIGNvbnN0YW50cy4g
ICovCnwgI2RlZmluZSBGT08oeCkgJ3gnCnwgaW50IHhsYzZfY2NfYXJyYXlbRk9PKGEpID09ICd4
JyA/IDEgOiAtMV07CnwgCnwgaW50IHRlc3QgKGludCBpLCBkb3VibGUgeCk7Cnwgc3RydWN0IHMx
IHtpbnQgKCpmKSAoaW50IGEpO307Cnwgc3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEpO307
CnwgaW50IHBhaXJuYW1lcyAoaW50LCBjaGFyICoqLCBGSUxFICooKikoc3RydWN0IGJ1ZiAqLCBz
dHJ1Y3Qgc3RhdCAqLCBpbnQpLCBpbnQsIGludCk7CnwgaW50IGFyZ2M7CnwgY2hhciAqKmFyZ3Y7
CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZiAoZSwgYXJndiwgMCkgIT0gYXJndlswXSAg
fHwgIGYgKGUsIGFyZ3YsIDEpICE9IGFyZ3ZbMV07CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv
bmZpZ3VyZTozOTA1OiBDQyAtc3RkIC1jIC1nICBjb25mdGVzdC5jID4mNQpDQzogV2FybmluZzog
T3B0aW9uIC1zdGQgcGFzc2VkIHRvIGxkLCBpZiBsZCBpcyBpbnZva2VkLCBpZ25vcmVkIG90aGVy
d2lzZQoiY29uZnRlc3QuYyIsIGxpbmUgMTg6IEVycm9yOiBwIGlzIG5vdCBkZWZpbmVkLgoiY29u
ZnRlc3QuYyIsIGxpbmUgMjI6IFdhcm5pbmc6IFRoZSB2YXJpYWJsZSBwIGhhcyBub3QgeWV0IGJl
ZW4gYXNzaWduZWQgYSB2YWx1ZS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDIyOiBXYXJuaW5nOiBUaGUg
dmFyaWFibGUgaSBoYXMgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEgdmFsdWUuCiJjb25mdGVzdC5j
IiwgbGluZSAyNTogRXJyb3I6IFVzZSAiOyIgdG8gdGVybWluYXRlIGRlY2xhcmF0aW9ucy4KImNv
bmZ0ZXN0LmMiLCBsaW5lIDI4OiBFcnJvcjogX19idWlsdGluX3ZhX2FsaXN0IGlzIG5vdCBkZWZp
bmVkLgoiY29uZnRlc3QuYyIsIGxpbmUgMjk6IEVycm9yOiBUaGUgZnVuY3Rpb24gImciIG11c3Qg
aGF2ZSBhIHByb3RvdHlwZS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDU2OiBFcnJvcjogVXNlICI7IiB0
byB0ZXJtaW5hdGUgZGVjbGFyYXRpb25zLgoiY29uZnRlc3QuYyIsIGxpbmUgNTc6IEVycm9yOiBG
b3JtYWwgYXJndW1lbnQgZyBvZiB0eXBlIGNoYXIqKCopKGNoYXIqKixpbnQpIGluIGNhbGwgdG8g
ZihjaGFyKigqKShjaGFyKiosaW50KSwgY2hhcioqLCAuLi4pIGlzIGJlaW5nIHBhc3NlZCBjaGFy
KigqKSgpLgoiY29uZnRlc3QuYyIsIGxpbmUgNTc6IEVycm9yOiBGb3JtYWwgYXJndW1lbnQgZyBv
ZiB0eXBlIGNoYXIqKCopKGNoYXIqKixpbnQpIGluIGNhbGwgdG8gZihjaGFyKigqKShjaGFyKios
aW50KSwgY2hhcioqLCAuLi4pIGlzIGJlaW5nIHBhc3NlZCBjaGFyKigqKSgpLgoiY29uZnRlc3Qu
YyIsIGxpbmUgNjA6IEVycm9yOiAifSIgZXhwZWN0ZWQgaW5zdGVhZCBvZiBFT0YuCjggRXJyb3Io
cykgYW5kIDIgV2FybmluZyhzKSBkZXRlY3RlZC4KY29uZmlndXJlOjM5MDU6ICQ/ID0gOApjb25m
aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ
QUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIi
CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi
bGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxp
YnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov
CnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpbmNsdWRlIDxz
eXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAvKiBNb3N0IG9mIHRoZSBmb2xs
b3dpbmcgdGVzdHMgYXJlIHN0b2xlbiBmcm9tIFJDUyA1LjcncyBzcmMvY29uZi5zaC4gICovCnwg
c3RydWN0IGJ1ZiB7IGludCB4OyB9Owp8IEZJTEUgKiAoKnJjc29wZW4pIChzdHJ1Y3QgYnVmICos
IHN0cnVjdCBzdGF0ICosIGludCk7Cnwgc3RhdGljIGNoYXIgKmUgKHAsIGkpCnwgICAgICBjaGFy
ICoqcDsKfCAgICAgIGludCBpOwp8IHsKfCAgIHJldHVybiBwW2ldOwp8IH0KfCBzdGF0aWMgY2hh
ciAqZiAoY2hhciAqICgqZykgKGNoYXIgKiosIGludCksIGNoYXIgKipwLCAuLi4pCnwgewp8ICAg
Y2hhciAqczsKfCAgIHZhX2xpc3QgdjsKfCAgIHZhX3N0YXJ0ICh2LHApOwp8ICAgcyA9IGcgKHAs
IHZhX2FyZyAodixpbnQpKTsKfCAgIHZhX2VuZCAodik7CnwgICByZXR1cm4gczsKfCB9CnwgCnwg
LyogT1NGIDQuMCBDb21wYXEgY2MgaXMgc29tZSBzb3J0IG9mIGFsbW9zdC1BTlNJIGJ5IGRlZmF1
bHQuICBJdCBoYXMKfCAgICBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBzdHVmZiwgYnV0IG5vdCAn
XHhISCcgaGV4IGNoYXJhY3RlciBjb25zdGFudHMuCnwgICAgVGhlc2UgZG9uJ3QgcHJvdm9rZSBh
biBlcnJvciB1bmZvcnR1bmF0ZWx5LCBpbnN0ZWFkIGFyZSBzaWxlbnRseSB0cmVhdGVkCnwgICAg
YXMgJ3gnLiAgVGhlIGZvbGxvd2luZyBpbmR1Y2VzIGFuIGVycm9yLCB1bnRpbCAtc3RkIGlzIGFk
ZGVkIHRvIGdldAp8ICAgIHByb3BlciBBTlNJIG1vZGUuICBDdXJpb3VzbHkgJ1x4MDAnIT0neCcg
YWx3YXlzIGNvbWVzIG91dCB0cnVlLCBmb3IgYW4KfCAgICBhcnJheSBzaXplIGF0IGxlYXN0LiAg
SXQncyBuZWNlc3NhcnkgdG8gd3JpdGUgJ1x4MDAnPT0wIHRvIGdldCBzb21ldGhpbmcKfCAgICB0
aGF0J3MgdHJ1ZSBvbmx5IHdpdGggLXN0ZC4gICovCnwgaW50IG9zZjRfY2NfYXJyYXkgWydceDAw
JyA9PSAwID8gMSA6IC0xXTsKfCAKfCAvKiBJQk0gQyA2IGZvciBBSVggaXMgYWxtb3N0LUFOU0kg
YnkgZGVmYXVsdCwgYnV0IGl0IHJlcGxhY2VzIG1hY3JvIHBhcmFtZXRlcnMKfCAgICBpbnNpZGUg
c3RyaW5ncyBhbmQgY2hhcmFjdGVyIGNvbnN0YW50cy4gICovCnwgI2RlZmluZSBGT08oeCkgJ3gn
CnwgaW50IHhsYzZfY2NfYXJyYXlbRk9PKGEpID09ICd4JyA/IDEgOiAtMV07CnwgCnwgaW50IHRl
c3QgKGludCBpLCBkb3VibGUgeCk7Cnwgc3RydWN0IHMxIHtpbnQgKCpmKSAoaW50IGEpO307Cnwg
c3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEpO307CnwgaW50IHBhaXJuYW1lcyAoaW50LCBj
aGFyICoqLCBGSUxFICooKikoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpLCBpbnQs
IGludCk7CnwgaW50IGFyZ2M7CnwgY2hhciAqKmFyZ3Y7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBy
ZXR1cm4gZiAoZSwgYXJndiwgMCkgIT0gYXJndlswXSAgfHwgIGYgKGUsIGFyZ3YsIDEpICE9IGFy
Z3ZbMV07CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozOTA1OiBDQyAtQWUgLWMg
LWcgIGNvbmZ0ZXN0LmMgPiY1CkNDOiBXYXJuaW5nOiBPcHRpb24gLUFlIHBhc3NlZCB0byBsZCwg
aWYgbGQgaXMgaW52b2tlZCwgaWdub3JlZCBvdGhlcndpc2UKImNvbmZ0ZXN0LmMiLCBsaW5lIDE4
OiBFcnJvcjogcCBpcyBub3QgZGVmaW5lZC4KImNvbmZ0ZXN0LmMiLCBsaW5lIDIyOiBXYXJuaW5n
OiBUaGUgdmFyaWFibGUgcCBoYXMgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEgdmFsdWUuCiJjb25m
dGVzdC5jIiwgbGluZSAyMjogV2FybmluZzogVGhlIHZhcmlhYmxlIGkgaGFzIG5vdCB5ZXQgYmVl
biBhc3NpZ25lZCBhIHZhbHVlLgoiY29uZnRlc3QuYyIsIGxpbmUgMjU6IEVycm9yOiBVc2UgIjsi
IHRvIHRlcm1pbmF0ZSBkZWNsYXJhdGlvbnMuCiJjb25mdGVzdC5jIiwgbGluZSAyODogRXJyb3I6
IF9fYnVpbHRpbl92YV9hbGlzdCBpcyBub3QgZGVmaW5lZC4KImNvbmZ0ZXN0LmMiLCBsaW5lIDI5
OiBFcnJvcjogVGhlIGZ1bmN0aW9uICJnIiBtdXN0IGhhdmUgYSBwcm90b3R5cGUuCiJjb25mdGVz
dC5jIiwgbGluZSA1NjogRXJyb3I6IFVzZSAiOyIgdG8gdGVybWluYXRlIGRlY2xhcmF0aW9ucy4K
ImNvbmZ0ZXN0LmMiLCBsaW5lIDU3OiBFcnJvcjogRm9ybWFsIGFyZ3VtZW50IGcgb2YgdHlwZSBj
aGFyKigqKShjaGFyKiosaW50KSBpbiBjYWxsIHRvIGYoY2hhciooKikoY2hhcioqLGludCksIGNo
YXIqKiwgLi4uKSBpcyBiZWluZyBwYXNzZWQgY2hhciooKikoKS4KImNvbmZ0ZXN0LmMiLCBsaW5l
IDU3OiBFcnJvcjogRm9ybWFsIGFyZ3VtZW50IGcgb2YgdHlwZSBjaGFyKigqKShjaGFyKiosaW50
KSBpbiBjYWxsIHRvIGYoY2hhciooKikoY2hhcioqLGludCksIGNoYXIqKiwgLi4uKSBpcyBiZWlu
ZyBwYXNzZWQgY2hhciooKikoKS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDYwOiBFcnJvcjogIn0iIGV4
cGVjdGVkIGluc3RlYWQgb2YgRU9GLgo4IEVycm9yKHMpIGFuZCAyIFdhcm5pbmcocykgZGV0ZWN0
ZWQuCmNvbmZpZ3VyZTozOTA1OiAkPyA9IDgKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNk
ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O
ICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tB
R0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tB
R0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAi
MS4yLjYiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRhcmcuaD4KfCAj
aW5jbHVkZSA8c3RkaW8uaD4KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5
cy9zdGF0Lmg+CnwgLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJv
bSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwp8IHN0cnVjdCBidWYgeyBpbnQgeDsgfTsKfCBG
SUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOwp8IHN0
YXRpYyBjaGFyICplIChwLCBpKQp8ICAgICAgY2hhciAqKnA7CnwgICAgICBpbnQgaTsKfCB7Cnwg
ICByZXR1cm4gcFtpXTsKfCB9Cnwgc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoq
LCBpbnQpLCBjaGFyICoqcCwgLi4uKQp8IHsKfCAgIGNoYXIgKnM7CnwgICB2YV9saXN0IHY7Cnwg
ICB2YV9zdGFydCAodixwKTsKfCAgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7CnwgICB2YV9l
bmQgKHYpOwp8ICAgcmV0dXJuIHM7CnwgfQp8IAp8IC8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNv
bWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCnwgICAgZnVuY3Rpb24g
cHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3Rh
bnRzLgp8ICAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5z
dGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAp8ICAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5k
dWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKfCAgICBwcm9wZXIgQU5T
SSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9y
IGFuCnwgICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdc
eDAwJz09MCB0byBnZXQgc29tZXRoaW5nCnwgICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQu
ICAqLwp8IGludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07CnwgCnwgLyog
SUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNl
cyBtYWNybyBwYXJhbWV0ZXJzCnwgICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBjb25z
dGFudHMuICAqLwp8ICNkZWZpbmUgRk9PKHgpICd4Jwp8IGludCB4bGM2X2NjX2FycmF5W0ZPTyhh
KSA9PSAneCcgPyAxIDogLTFdOwp8IAp8IGludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwp8IHN0
cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9Owp8IHN0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJs
ZSBhKTt9Owp8IGludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBi
dWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwp8IGludCBhcmdjOwp8IGNoYXIg
Kiphcmd2Owp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFy
Z3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwp8ICAgOwp8ICAgcmV0dXJuIDA7
CnwgfQpjb25maWd1cmU6MzkwNTogQ0MgLUFhIC1EX0hQVVhfU09VUkNFIC1jIC1nICBjb25mdGVz
dC5jID4mNQpDQzogV2FybmluZzogT3B0aW9uIC1BYSBwYXNzZWQgdG8gbGQsIGlmIGxkIGlzIGlu
dm9rZWQsIGlnbm9yZWQgb3RoZXJ3aXNlCiJjb25mdGVzdC5jIiwgbGluZSAxODogRXJyb3I6IHAg
aXMgbm90IGRlZmluZWQuCiJjb25mdGVzdC5jIiwgbGluZSAyMjogV2FybmluZzogVGhlIHZhcmlh
YmxlIHAgaGFzIG5vdCB5ZXQgYmVlbiBhc3NpZ25lZCBhIHZhbHVlLgoiY29uZnRlc3QuYyIsIGxp
bmUgMjI6IFdhcm5pbmc6IFRoZSB2YXJpYWJsZSBpIGhhcyBub3QgeWV0IGJlZW4gYXNzaWduZWQg
YSB2YWx1ZS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDI1OiBFcnJvcjogVXNlICI7IiB0byB0ZXJtaW5h
dGUgZGVjbGFyYXRpb25zLgoiY29uZnRlc3QuYyIsIGxpbmUgMjg6IEVycm9yOiBfX2J1aWx0aW5f
dmFfYWxpc3QgaXMgbm90IGRlZmluZWQuCiJjb25mdGVzdC5jIiwgbGluZSAyOTogRXJyb3I6IFRo
ZSBmdW5jdGlvbiAiZyIgbXVzdCBoYXZlIGEgcHJvdG90eXBlLgoiY29uZnRlc3QuYyIsIGxpbmUg
NTY6IEVycm9yOiBVc2UgIjsiIHRvIHRlcm1pbmF0ZSBkZWNsYXJhdGlvbnMuCiJjb25mdGVzdC5j
IiwgbGluZSA1NzogRXJyb3I6IEZvcm1hbCBhcmd1bWVudCBnIG9mIHR5cGUgY2hhciooKikoY2hh
cioqLGludCkgaW4gY2FsbCB0byBmKGNoYXIqKCopKGNoYXIqKixpbnQpLCBjaGFyKiosIC4uLikg
aXMgYmVpbmcgcGFzc2VkIGNoYXIqKCopKCkuCiJjb25mdGVzdC5jIiwgbGluZSA1NzogRXJyb3I6
IEZvcm1hbCBhcmd1bWVudCBnIG9mIHR5cGUgY2hhciooKikoY2hhcioqLGludCkgaW4gY2FsbCB0
byBmKGNoYXIqKCopKGNoYXIqKixpbnQpLCBjaGFyKiosIC4uLikgaXMgYmVpbmcgcGFzc2VkIGNo
YXIqKCopKCkuCiJjb25mdGVzdC5jIiwgbGluZSA2MDogRXJyb3I6ICJ9IiBleHBlY3RlZCBpbnN0
ZWFkIG9mIEVPRi4KOCBFcnJvcihzKSBhbmQgMiBXYXJuaW5nKHMpIGRldGVjdGVkLgpjb25maWd1
cmU6MzkwNTogJD8gPSA4CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk
ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tB
R0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVm
aW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S
VCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8
ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8IC8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkYXJnLmg+CnwgI2luY2x1ZGUgPHN0
ZGlvLmg+CnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxzeXMvc3RhdC5oPgp8
IC8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydz
IHNyYy9jb25mLnNoLiAgKi8KfCBzdHJ1Y3QgYnVmIHsgaW50IHg7IH07CnwgRklMRSAqICgqcmNz
b3BlbikgKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsKfCBzdGF0aWMgY2hhciAq
ZSAocCwgaSkKfCAgICAgIGNoYXIgKipwOwp8ICAgICAgaW50IGk7Cnwgewp8ICAgcmV0dXJuIHBb
aV07CnwgfQp8IHN0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hh
ciAqKnAsIC4uLikKfCB7CnwgICBjaGFyICpzOwp8ICAgdmFfbGlzdCB2Owp8ICAgdmFfc3RhcnQg
KHYscCk7CnwgICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOwp8ICAgdmFfZW5kICh2KTsKfCAg
IHJldHVybiBzOwp8IH0KfCAKfCAvKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2Yg
YWxtb3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhhcwp8ICAgIGZ1bmN0aW9uIHByb3RvdHlwZXMg
YW5kIHN0dWZmLCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNvbnN0YW50cy4KfCAgICBU
aGVzZSBkb24ndCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNp
bGVudGx5IHRyZWF0ZWQKfCAgICBhcyAneCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJy
b3IsIHVudGlsIC1zdGQgaXMgYWRkZWQgdG8gZ2V0CnwgICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1
cmlvdXNseSAnXHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUsIGZvciBhbgp8ICAgIGFy
cmF5IHNpemUgYXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0ZSAnXHgwMCc9PTAgdG8g
Z2V0IHNvbWV0aGluZwp8ICAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAtc3RkLiAgKi8KfCBpbnQg
b3NmNF9jY19hcnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOwp8IAp8IC8qIElCTSBDIDYgZm9y
IEFJWCBpcyBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVwbGFjZXMgbWFjcm8gcGFy
YW1ldGVycwp8ICAgIGluc2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXIgY29uc3RhbnRzLiAgKi8K
fCAjZGVmaW5lIEZPTyh4KSAneCcKfCBpbnQgeGxjNl9jY19hcnJheVtGT08oYSkgPT0gJ3gnID8g
MSA6IC0xXTsKfCAKfCBpbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsKfCBzdHJ1Y3QgczEge2lu
dCAoKmYpIChpbnQgYSk7fTsKfCBzdHJ1Y3QgczIge2ludCAoKmYpIChkb3VibGUgYSk7fTsKfCBp
bnQgcGFpcm5hbWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVj
dCBzdGF0ICosIGludCksIGludCwgaW50KTsKfCBpbnQgYXJnYzsKfCBjaGFyICoqYXJndjsKfCBp
bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBmIChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAg
ZiAoZSwgYXJndiwgMSkgIT0gYXJndlsxXTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln
dXJlOjM5MDU6IENDIC1YYyAtRF9fRVhURU5TSU9OU19fIC1jIC1nICBjb25mdGVzdC5jID4mNQpD
QzogV2FybmluZzogT3B0aW9uIC1YYyBwYXNzZWQgdG8gbGQsIGlmIGxkIGlzIGludm9rZWQsIGln
bm9yZWQgb3RoZXJ3aXNlCiJjb25mdGVzdC5jIiwgbGluZSAxODogRXJyb3I6IHAgaXMgbm90IGRl
ZmluZWQuCiJjb25mdGVzdC5jIiwgbGluZSAyMjogV2FybmluZzogVGhlIHZhcmlhYmxlIHAgaGFz
IG5vdCB5ZXQgYmVlbiBhc3NpZ25lZCBhIHZhbHVlLgoiY29uZnRlc3QuYyIsIGxpbmUgMjI6IFdh
cm5pbmc6IFRoZSB2YXJpYWJsZSBpIGhhcyBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2YWx1ZS4K
ImNvbmZ0ZXN0LmMiLCBsaW5lIDI1OiBFcnJvcjogVXNlICI7IiB0byB0ZXJtaW5hdGUgZGVjbGFy
YXRpb25zLgoiY29uZnRlc3QuYyIsIGxpbmUgMjg6IEVycm9yOiBfX2J1aWx0aW5fdmFfYWxpc3Qg
aXMgbm90IGRlZmluZWQuCiJjb25mdGVzdC5jIiwgbGluZSAyOTogRXJyb3I6IFRoZSBmdW5jdGlv
biAiZyIgbXVzdCBoYXZlIGEgcHJvdG90eXBlLgoiY29uZnRlc3QuYyIsIGxpbmUgNTY6IEVycm9y
OiBVc2UgIjsiIHRvIHRlcm1pbmF0ZSBkZWNsYXJhdGlvbnMuCiJjb25mdGVzdC5jIiwgbGluZSA1
NzogRXJyb3I6IEZvcm1hbCBhcmd1bWVudCBnIG9mIHR5cGUgY2hhciooKikoY2hhcioqLGludCkg
aW4gY2FsbCB0byBmKGNoYXIqKCopKGNoYXIqKixpbnQpLCBjaGFyKiosIC4uLikgaXMgYmVpbmcg
cGFzc2VkIGNoYXIqKCopKCkuCiJjb25mdGVzdC5jIiwgbGluZSA1NzogRXJyb3I6IEZvcm1hbCBh
cmd1bWVudCBnIG9mIHR5cGUgY2hhciooKikoY2hhcioqLGludCkgaW4gY2FsbCB0byBmKGNoYXIq
KCopKGNoYXIqKixpbnQpLCBjaGFyKiosIC4uLikgaXMgYmVpbmcgcGFzc2VkIGNoYXIqKCopKCku
CiJjb25mdGVzdC5jIiwgbGluZSA2MDogRXJyb3I6ICJ9IiBleHBlY3RlZCBpbnN0ZWFkIG9mIEVP
Ri4KOCBFcnJvcihzKSBhbmQgMiBXYXJuaW5nKHMpIGRldGVjdGVkLgpjb25maWd1cmU6MzkwNTog
JD8gPSA4CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K
fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN
RSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tB
R0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3No
Mi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUg
UEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8IC8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkYXJnLmg+CnwgI2luY2x1ZGUgPHN0ZGlvLmg+Cnwg
I2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxzeXMvc3RhdC5oPgp8IC8qIE1vc3Qg
b2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydzIHNyYy9jb25m
LnNoLiAgKi8KfCBzdHJ1Y3QgYnVmIHsgaW50IHg7IH07CnwgRklMRSAqICgqcmNzb3BlbikgKHN0
cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsKfCBzdGF0aWMgY2hhciAqZSAocCwgaSkK
fCAgICAgIGNoYXIgKipwOwp8ICAgICAgaW50IGk7Cnwgewp8ICAgcmV0dXJuIHBbaV07CnwgfQp8
IHN0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hhciAqKnAsIC4u
LikKfCB7CnwgICBjaGFyICpzOwp8ICAgdmFfbGlzdCB2Owp8ICAgdmFfc3RhcnQgKHYscCk7Cnwg
ICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOwp8ICAgdmFfZW5kICh2KTsKfCAgIHJldHVybiBz
Owp8IH0KfCAKfCAvKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxtb3N0LUFO
U0kgYnkgZGVmYXVsdC4gIEl0IGhhcwp8ICAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5kIHN0dWZm
LCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNvbnN0YW50cy4KfCAgICBUaGVzZSBkb24n
dCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNpbGVudGx5IHRy
ZWF0ZWQKfCAgICBhcyAneCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3IsIHVudGls
IC1zdGQgaXMgYWRkZWQgdG8gZ2V0CnwgICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1cmlvdXNseSAn
XHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUsIGZvciBhbgp8ICAgIGFycmF5IHNpemUg
YXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0ZSAnXHgwMCc9PTAgdG8gZ2V0IHNvbWV0
aGluZwp8ICAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAtc3RkLiAgKi8KfCBpbnQgb3NmNF9jY19h
cnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOwp8IAp8IC8qIElCTSBDIDYgZm9yIEFJWCBpcyBh
bG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVwbGFjZXMgbWFjcm8gcGFyYW1ldGVycwp8
ICAgIGluc2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXIgY29uc3RhbnRzLiAgKi8KfCAjZGVmaW5l
IEZPTyh4KSAneCcKfCBpbnQgeGxjNl9jY19hcnJheVtGT08oYSkgPT0gJ3gnID8gMSA6IC0xXTsK
fCAKfCBpbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsKfCBzdHJ1Y3QgczEge2ludCAoKmYpIChp
bnQgYSk7fTsKfCBzdHJ1Y3QgczIge2ludCAoKmYpIChkb3VibGUgYSk7fTsKfCBpbnQgcGFpcm5h
bWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICos
IGludCksIGludCwgaW50KTsKfCBpbnQgYXJnYzsKfCBjaGFyICoqYXJndjsKfCBpbnQKfCBtYWlu
ICgpCnwgewp8IHJldHVybiBmIChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiAoZSwgYXJn
diwgMSkgIT0gYXJndlsxXTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjM5MjE6
IHJlc3VsdDogdW5zdXBwb3J0ZWQKY29uZmlndXJlOjM5NDA6IGNoZWNraW5nIGRlcGVuZGVuY3kg
c3R5bGUgb2YgQ0MKY29uZmlndXJlOjQwMzA6IHJlc3VsdDogbm9uZQpjb25maWd1cmU6NDA1Mzog
Y2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKY29uZmlndXJlOjQwODQ6IEND
IC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo0MDg0OiAkPyA9IDAKY29uZmlndXJlOjQwOTg6IEND
IC1FICBjb25mdGVzdC5jCiJjb25mdGVzdC5jIiwgbGluZSAxMTogRXJyb3I6IENvdWxkIG5vdCBv
cGVuIGluY2x1ZGUgZmlsZTxhY19ub25leGlzdGVudC5oPi4KMSBFcnJvcihzKSBkZXRlY3RlZC4K
Y29uZmlndXJlOjQwOTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv
KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmlu
ZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0i
CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9V
UkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIu
NiIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+
CmNvbmZpZ3VyZTo0MTIzOiByZXN1bHQ6IENDIC1FCmNvbmZpZ3VyZTo0MTQzOiBDQyAtRSAgY29u
ZnRlc3QuYwpjb25maWd1cmU6NDE0MzogJD8gPSAwCmNvbmZpZ3VyZTo0MTU3OiBDQyAtRSAgY29u
ZnRlc3QuYwoiY29uZnRlc3QuYyIsIGxpbmUgMTE6IEVycm9yOiBDb3VsZCBub3Qgb3BlbiBpbmNs
dWRlIGZpbGU8YWNfbm9uZXhpc3RlbnQuaD4uCjEgRXJyb3IocykgZGV0ZWN0ZWQuCmNvbmZpZ3Vy
ZTo0MTU3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl
ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FH
RV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZp
bmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU
ICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwg
I2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25maWd1
cmU6NDE4NjogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1l
CmNvbmZpZ3VyZTo0MjQ0OiByZXN1bHQ6IC91c3IveHBnNC9iaW4vZ3JlcApjb25maWd1cmU6NDI0
OTogY2hlY2tpbmcgZm9yIGVncmVwCmNvbmZpZ3VyZTo0MzExOiByZXN1bHQ6IC91c3IveHBnNC9i
aW4vZ3JlcCAtRQpjb25maWd1cmU6NDMxNjogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmls
ZXMKY29uZmlndXJlOjQzMzY6IENDIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDMz
NjogJD8gPSAwCmNvbmZpZ3VyZTo0NDA2OiBDQyAtbyBjb25mdGVzdCAtZyAgLWxkbCBjb25mdGVz
dC5jICA+JjUKY29uZmlndXJlOjQ0MDY6ICQ/ID0gMApjb25maWd1cmU6NDQwNjogLi9jb25mdGVz
dApjb25maWd1cmU6NDQwNjogJD8gPSAwCmNvbmZpZ3VyZTo0NDE3OiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6NDQzMDogY2hlY2tpbmcgZm9yIHN5cy90eXBlcy5oCmNvbmZpZ3VyZTo0NDMwOiBDQyAt
YyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzA6ICQ/ID0gMApjb25maWd1cmU6NDQz
MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzA6IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCmNv
bmZpZ3VyZTo0NDMwOiBDQyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzA6ICQ/
ID0gMApjb25maWd1cmU6NDQzMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzA6IGNoZWNraW5n
IGZvciBzdGRsaWIuaApjb25maWd1cmU6NDQzMDogQ0MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZTo0NDMwOiAkPyA9IDAKY29uZmlndXJlOjQ0MzA6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTo0NDMwOiBjaGVja2luZyBmb3Igc3RyaW5nLmgKY29uZmlndXJlOjQ0MzA6IENDIC1jIC1nICBj
b25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQzMDogJD8gPSAwCmNvbmZpZ3VyZTo0NDMwOiByZXN1
bHQ6IHllcwpjb25maWd1cmU6NDQzMDogY2hlY2tpbmcgZm9yIG1lbW9yeS5oCmNvbmZpZ3VyZTo0
NDMwOiBDQyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzA6ICQ/ID0gMApjb25m
aWd1cmU6NDQzMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzA6IGNoZWNraW5nIGZvciBzdHJp
bmdzLmgKY29uZmlndXJlOjQ0MzA6IENDIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6
NDQzMDogJD8gPSAwCmNvbmZpZ3VyZTo0NDMwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQzMDog
Y2hlY2tpbmcgZm9yIGludHR5cGVzLmgKY29uZmlndXJlOjQ0MzA6IENDIC1jIC1nICBjb25mdGVz
dC5jID4mNQpjb25maWd1cmU6NDQzMDogJD8gPSAwCmNvbmZpZ3VyZTo0NDMwOiByZXN1bHQ6IHll
cwpjb25maWd1cmU6NDQzMDogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo0NDMwOiBD
QyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDUzOiBFcnJvcjogQ291
bGQgbm90IG9wZW4gaW5jbHVkZSBmaWxlPHN0ZGludC5oPi4KMSBFcnJvcihzKSBkZXRlY3RlZC4K
Y29uZmlndXJlOjQ0MzA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv
KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmlu
ZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0i
CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9C
VUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9V
UkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIu
NiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8IC8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ
RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT
X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I
RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl
bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl
bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD
X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+
CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW
RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf
VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxz
dGRpbnQuaD4KY29uZmlndXJlOjQ0MzA6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ0MzA6IGNoZWNr
aW5nIGZvciB1bmlzdGQuaApjb25maWd1cmU6NDQzMDogQ0MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZTo0NDMwOiAkPyA9IDAKY29uZmlndXJlOjQ0MzA6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTo0NDQzOiBjaGVja2luZyBmb3IgbG9uZyBsb25nCmNvbmZpZ3VyZTo0NDQzOiBDQyAtYyAt
ZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0NDM6ICQ/ID0gMApjb25maWd1cmU6NDQ0Mzog
Q0MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CiJjb25mdGVzdC5jIiwgbGluZSA1NjogRXJyb3I6IEJh
ZGx5IGZvcm1lZCBleHByZXNzaW9uLgoxIEVycm9yKHMpIGRldGVjdGVkLgpjb25maWd1cmU6NDQ0
MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg
Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS
TkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBB
Q0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGli
c3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZp
bmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUg
U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I
IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVm
IEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNp
ZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwg
I2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxz
dGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0
ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg
IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1
ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8
ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8
ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlm
CnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8
ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBp
bnQKfCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKChsb25nIGxvbmcpKSkKfCAJICAgIHJldHVy
biAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NDQ0MzogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjQ0NTU6IGNoZWNraW5nIGlmIF9SRUVOVFJBTlQgaXMgYWxyZWFkeSBkZWZpbmVk
CmNvbmZpZ3VyZTo0NDc3OiBDQyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBs
aW5lIDMxOiBFcnJvcjogZm9yY2UgaXMgbm90IGRlZmluZWQuCiJjb25mdGVzdC5jIiwgbGluZSAz
MTogRXJyb3I6ICIsIiBleHBlY3RlZCBpbnN0ZWFkIG9mICJlcnJvciIuCjIgRXJyb3IocykgZGV0
ZWN0ZWQuCmNvbmZpZ3VyZTo0NDc3OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8
ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT
SU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBB
Q0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBB
Q0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lP
TiAiMS4yLjYiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ
RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf
SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAj
ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgLyogZW5k
IGNvbmZkZWZzLmguICAqLwp8IAp8IAp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgI2lmZGVm
IF9SRUVOVFJBTlQKfCAgICAgICBpbnQgZHVtbXk9MTsKfCAjZWxzZQp8ICAgICAgIGZvcmNlIGNv
bXBpbGF0aW9uIGVycm9yCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CnwgCmNv
bmZpZ3VyZTo0NDg1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0NDkzOiBjaGVja2luZyBpZiBfUkVF
TlRSQU5UIGlzIGFjdHVhbGx5IG5lZWRlZApjb25maWd1cmU6NDUwNzogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjQ1MTU6IGNoZWNraW5nIGlmIF9SRUVOVFJBTlQgaXMgb253YXJkcyBkZWZpbmVkCmNv
bmZpZ3VyZTo0NTI5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDUzOTogY2hlY2tpbmcgZm9yIGxp
YnJhcnkgY29udGFpbmluZyBzb2NrZXQKY29uZmlndXJlOjQ1NzA6IENDIC1vIGNvbmZ0ZXN0IC1n
ICAtbGRsIGNvbmZ0ZXN0LmMgID4mNQpVbmRlZmluZWQJCQlmaXJzdCByZWZlcmVuY2VkCiBzeW1i
b2wgIAkJCSAgICBpbiBmaWxlCnNvY2tldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bmZ0ZXN0Lm8KbGQ6IGZhdGFsOiBTeW1ib2wgcmVmZXJlbmNpbmcgZXJyb3JzLiBObyBvdXRwdXQg
d3JpdHRlbiB0byBjb25mdGVzdApjb25maWd1cmU6NDU3MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp
bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN
RSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0i
CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2Ui
CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAj
ZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l
IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l
IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF
X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U
VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xP
TkcgMQp8ICNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMg
IGRlZmluZSBfUkVFTlRSQU5UCnwgI2VuZGlmCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8
IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y
Lgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv
ZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs
ZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNl
bmRpZgp8IGNoYXIgc29ja2V0ICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHNvY2tl
dCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjQ1NzA6IENDIC1vIGNvbmZ0
ZXN0IC1nICAtbGRsIGNvbmZ0ZXN0LmMgLWxzb2NrZXQgICA+JjUKY29uZmlndXJlOjQ1NzA6ICQ/
ID0gMApjb25maWd1cmU6NDU4NzogcmVzdWx0OiAtbHNvY2tldApjb25maWd1cmU6NDU5NzogY2hl
Y2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBpbmV0X2FkZHIKY29uZmlndXJlOjQ2Mjg6IEND
IC1vIGNvbmZ0ZXN0IC1nICAtbGRsIGNvbmZ0ZXN0LmMgLWxzb2NrZXQgID4mNQpVbmRlZmluZWQJ
CQlmaXJzdCByZWZlcmVuY2VkCiBzeW1ib2wgIAkJCSAgICBpbiBmaWxlCmluZXRfYWRkciAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbmZ0ZXN0Lm8gIChzeW1ib2wgYmVsb25ncyB0byBpbXBs
aWNpdCBkZXBlbmRlbmN5IC91c3IvbGliL2xpYm5zbC5zby4xKQpsZDogZmF0YWw6IFN5bWJvbCBy
ZWZlcmVuY2luZyBlcnJvcnMuIE5vIG91dHB1dCB3cml0dGVuIHRvIGNvbmZ0ZXN0CmNvbmZpZ3Vy
ZTo0NjI4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl
ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FH
RV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZp
bmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU
ICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwg
I2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgI2Rl
ZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI
QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5J
U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFO
VCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYK
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h
bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg
bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhl
biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg
X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBpbmV0X2FkZHIgKCk7Cnwg
aW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gaW5ldF9hZGRyICgpOwp8ICAgOwp8ICAgcmV0dXJu
IDA7CnwgfQpjb25maWd1cmU6NDYyODogQ0MgLW8gY29uZnRlc3QgLWcgIC1sZGwgY29uZnRlc3Qu
YyAtbG5zbCAgLWxzb2NrZXQgID4mNQpjb25maWd1cmU6NDYyODogJD8gPSAwCmNvbmZpZ3VyZTo0
NjQ1OiByZXN1bHQ6IC1sbnNsCmNvbmZpZ3VyZTo0NzA0OiBjaGVja2luZyBmb3IgZ2NjCmNvbmZp
Z3VyZTo0NzMxOiByZXN1bHQ6IENDCmNvbmZpZ3VyZTo0OTYwOiBjaGVja2luZyBmb3IgQyBjb21w
aWxlciB2ZXJzaW9uCmNvbmZpZ3VyZTo0OTY5OiBDQyAtLXZlcnNpb24gPiY1CkNDOiBXYXJuaW5n
OiBPcHRpb24gLS12ZXJzaW9uIHBhc3NlZCB0byBsZCwgaWYgbGQgaXMgaW52b2tlZCwgaWdub3Jl
ZCBvdGhlcndpc2UKL3Vzci9jY3MvYmluL2xkOiBpbGxlZ2FsIG9wdGlvbiAtLSAtCi91c3IvY2Nz
L2Jpbi9sZDogaWxsZWdhbCBvcHRpb24gLS0gdgp1c2FnZTogbGQgWy02OmFiYzpkOmU6ZjpoOmls
Om1vOnA6cnN0dTp6OkI6Q0Q6RjpHSTpMOk06TjpQOlE6UjpTOlZZOj9dIGZpbGUocykKCVstNjRd
CQllbmZvcmNlIGEgNjQtYml0IGxpbmstZWRpdAoJWy1hXQkJY3JlYXRlIGFuIGFic29sdXRlIGZp
bGUKCVstYl0JCWRvIG5vdCBkbyBzcGVjaWFsIFBJQyByZWxvY2F0aW9ucyBpbiBhLm91dAoJWy1C
IGRpcmVjdCB8IG5vZGlyZWN0XQoJCQllc3RhYmxpc2ggZGlyZWN0IGJpbmRpbmdzLCBvciBpbmhp
Yml0IGRpcmVjdCBiaW5kaW5nCgkJCXRvLCB0aGUgb2JqZWN0IGJlaW5nIGNyZWF0ZWQKLi4uIHJl
c3Qgb2Ygc3RkZXJyIG91dHB1dCBkZWxldGVkIC4uLgpjb25maWd1cmU6NDk4MDogJD8gPSAxCmNv
bmZpZ3VyZTo0OTY5OiBDQyAtdiA+JjUKIyMjICAgICBjb21tYW5kIGxpbmUgZmlsZXMgYW5kIG9w
dGlvbnMgKGV4cGFuZGVkKToKIyMjIC12IAojIyMgQ0M6IE5vdGU6IE5MU1BBVEggPSAvb3B0L3Rl
cmFkYXRhL2NsaWVudC8xMy4xMC9vZGJjXzMyL21zZy8lTjo6L2V4cG9ydC9ob21lL1NTMTEvU1VO
V3Nwcm8vcHJvZC9iaW4vLi4vbGliL2xvY2FsZS8lTC9MQ19NRVNTQUdFUy8lTi5jYXQ6L2V4cG9y
dC9ob21lL1NTMTEvU1VOV3Nwcm8vcHJvZC9iaW4vLi4vLi4vbGliL2xvY2FsZS8lTC9MQ19NRVNT
QUdFUy8lTi5jYXQKY29uZmlndXJlOjQ5ODA6ICQ/ID0gMApjb25maWd1cmU6NDk2OTogQ0MgLVYg
PiY1CkNDOiBTdW4gQysrIDUuOCAyMDA1LzEwLzEzCmNvbmZpZ3VyZTo0OTgwOiAkPyA9IDAKY29u
ZmlndXJlOjQ5Njk6IENDIC1xdmVyc2lvbiA+JjUKQ0M6IFdhcm5pbmc6IE9wdGlvbiAtcXZlcnNp
b24gcGFzc2VkIHRvIGxkLCBpZiBsZCBpcyBpbnZva2VkLCBpZ25vcmVkIG90aGVyd2lzZQovdXNy
L2Njcy9iaW4vbGQ6IGlsbGVnYWwgb3B0aW9uIC0tIHEKL3Vzci9jY3MvYmluL2xkOiBpbGxlZ2Fs
IG9wdGlvbiAtLSB2CnVzYWdlOiBsZCBbLTY6YWJjOmQ6ZTpmOmg6aWw6bW86cDpyc3R1Ono6QjpD
RDpGOkdJOkw6TTpOOlA6UTpSOlM6Vlk6P10gZmlsZShzKQoJWy02NF0JCWVuZm9yY2UgYSA2NC1i
aXQgbGluay1lZGl0CglbLWFdCQljcmVhdGUgYW4gYWJzb2x1dGUgZmlsZQoJWy1iXQkJZG8gbm90
IGRvIHNwZWNpYWwgUElDIHJlbG9jYXRpb25zIGluIGEub3V0CglbLUIgZGlyZWN0IHwgbm9kaXJl
Y3RdCgkJCWVzdGFibGlzaCBkaXJlY3QgYmluZGluZ3MsIG9yIGluaGliaXQgZGlyZWN0IGJpbmRp
bmcKCQkJdG8sIHRoZSBvYmplY3QgYmVpbmcgY3JlYXRlZAouLi4gcmVzdCBvZiBzdGRlcnIgb3V0
cHV0IGRlbGV0ZWQgLi4uCmNvbmZpZ3VyZTo0OTgwOiAkPyA9IDEKY29uZmlndXJlOjQ5ODQ6IGNo
ZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgpjb25maWd1cmU6
NTAxMjogcmVzdWx0OiBubwpjb25maWd1cmU6NTAyMTogY2hlY2tpbmcgd2hldGhlciBDQyBhY2Nl
cHRzIC1nCmNvbmZpZ3VyZTo1MDgyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTA5OTogY2hlY2tp
bmcgZm9yIENDIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6NTE3OTogcmVzdWx0
OiB1bnN1cHBvcnRlZApjb25maWd1cmU6NTE5ODogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBv
ZiBDQwpjb25maWd1cmU6NTI4ODogcmVzdWx0OiBub25lCmNvbmZpZ3VyZTo1MzA2OiBjaGVja2lu
ZyB3aGV0aGVyIGxuIC1zIHdvcmtzCmNvbmZpZ3VyZTo1MzEwOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NTMxNzogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKQpjb25maWd1cmU6NTMz
OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzNTI6IGNoZWNraW5nIGZvciBzc2hkCmNvbmZpZ3Vy
ZTo1Mzg1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1NzMxOiBjaGVja2luZyBmb3IgYSBzZWQgdGhh
dCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQKY29uZmlndXJlOjU3OTU6IHJlc3VsdDogL3Vzci9i
aW4vc2VkCmNvbmZpZ3VyZTo1ODEzOiBjaGVja2luZyBmb3IgZmdyZXAKY29uZmlndXJlOjU4NzU6
IHJlc3VsdDogL3Vzci94cGc0L2Jpbi9ncmVwIC1GCmNvbmZpZ3VyZTo1OTQzOiBjaGVja2luZyBm
b3Igbm9uLUdOVSBsZApjb25maWd1cmU6NTk3NzogcmVzdWx0OiAvdXNyL3VjYi9sZApjb25maWd1
cmU6NTk4NDogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoL3Vzci91Y2IvbGQpIGlzIEdOVSBsZApj
b25maWd1cmU6NTk5OTogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxMTogY2hlY2tpbmcgZm9yIEJT
RC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pCmNvbmZpZ3VyZTo2MDYwOiByZXN1
bHQ6IC91c3IvY2NzL2Jpbi9ubSAtcApjb25maWd1cmU6NjE3ODogY2hlY2tpbmcgdGhlIG5hbWUg
bGlzdGVyICgvdXNyL2Njcy9iaW4vbm0gLXApIGludGVyZmFjZQpjb25maWd1cmU6NjE4ODogQ0Mg
LWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MTkxOiAvdXNyL2Njcy9iaW4vbm0gLXAg
ImNvbmZ0ZXN0Lm8iCmNvbmZpZ3VyZTo2MTk0OiBvdXRwdXQKCgpjb25mdGVzdC5vOgowMDAwMDAw
MDAwIGIgQmJzcy5ic3MKMDAwMDAwMDAwMCBuIERkYXRhLmRhdGEKMDAwMDAwMDAwMCBuIERyb2Rh
dGEucm9kYXRhCjAwMDAwMDAwMDAgZiBjb25mdGVzdC5jCjAwMDAwMDAwMDAgRCBzb21lX3Zhcmlh
YmxlCmNvbmZpZ3VyZTo2MTk4OiByZXN1bHQ6IEJTRCBubQpjb25maWd1cmU6NjIwMjogY2hlY2tp
bmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKY29uZmlndXJl
OjYzMjI6IHJlc3VsdDogNzg2MjQwCmNvbmZpZ3VyZTo2MzM5OiBjaGVja2luZyB3aGV0aGVyIHRo
ZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3RzCmNvbmZpZ3VyZTo2MzQ5OiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6NjM1MzogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5k
ZXJzdGFuZHMgIis9Igpjb25maWd1cmU6NjM1OTogcmVzdWx0OiBubwpjb25maWd1cmU6NjM5NDog
Y2hlY2tpbmcgZm9yIC91c3IvdWNiL2xkIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzCmNv
bmZpZ3VyZTo2NDAxOiByZXN1bHQ6IC1yCmNvbmZpZ3VyZTo2NDcwOiBjaGVja2luZyBmb3Igb2Jq
ZHVtcApjb25maWd1cmU6NjQ5NzogcmVzdWx0OiBvYmpkdW1wCmNvbmZpZ3VyZTo2NTI2OiBjaGVj
a2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMKY29uZmlndXJlOjY3MjI6
IHJlc3VsdDogcGFzc19hbGwKY29uZmlndXJlOjY3ODI6IGNoZWNraW5nIGZvciBhcgpjb25maWd1
cmU6NjgxMjogcmVzdWx0OiBubwpjb25maWd1cmU6Njg4NzogY2hlY2tpbmcgZm9yIHN0cmlwCmNv
bmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2OTg2OiBjaGVja2luZyBmb3IgcmFu
bGliCmNvbmZpZ3VyZTo3MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3MTAzOiBjaGVja2luZyBj
b21tYW5kIHRvIHBhcnNlIC91c3IvY2NzL2Jpbi9ubSAtcCBvdXRwdXQgZnJvbSBDQyBvYmplY3QK
Y29uZmlndXJlOjcyMjE6IENDIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NzIyNDog
JD8gPSAwCmNvbmZpZ3VyZTo3MjI4OiAvdXNyL2Njcy9iaW4vbm0gLXAgY29uZnRlc3QubyBcfCBz
ZWQgLW4gLWUgJ3MvXi4qWwkgXVwoW0JEUlRdW0JEUlRdKlwpWwkgXVsJIF0qXChbX0EtWmEtel1b
X0EtWmEtejAtOV0qXCkkL1wxIFwyIFwyL3AnIFw+IGNvbmZ0ZXN0Lm5tCmNvbmZpZ3VyZTo3MjMx
OiAkPyA9IDAKY29uZmlndXJlOjcyODU6IENDIC1vIGNvbmZ0ZXN0IC1nICAtbGRsIGNvbmZ0ZXN0
LmMgY29uZnRzdG0ubyA+JjUKY29uZmlndXJlOjcyODg6ICQ/ID0gMApjb25maWd1cmU6NzMyNjog
cmVzdWx0OiBvawpjb25maWd1cmU6NzUyMDogQ0MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp
Z3VyZTo3NTIzOiAkPyA9IDAKY29uZmlndXJlOjgxMzE6IGNoZWNraW5nIGZvciBkbGZjbi5oCmNv
bmZpZ3VyZTo4MTMxOiBDQyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjgxMzE6ICQ/
ID0gMApjb25maWd1cmU6ODEzMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMTM6IGNoZWNraW5n
IGZvciBvYmpkaXIKY29uZmlndXJlOjgzMjg6IHJlc3VsdDogLmxpYnMKY29uZmlndXJlOjg2Nzk6
IGNoZWNraW5nIGZvciBDQyBvcHRpb24gdG8gcHJvZHVjZSBQSUMKY29uZmlndXJlOjg5NTE6IHJl
c3VsdDogLUtQSUMgLURQSUMKY29uZmlndXJlOjg5NjM6IGNoZWNraW5nIGlmIENDIFBJQyBmbGFn
IC1LUElDIC1EUElDIHdvcmtzCmNvbmZpZ3VyZTo4OTg0OiBDQyAtYyAtZyAgLUtQSUMgLURQSUMg
LURQSUMgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjg5ODg6ICQ/ID0gMApjb25maWd1cmU6ODk5
ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjkwMjI6IGNoZWNraW5nIGlmIENDIHN0YXRpYyBmbGFn
IC1Cc3RhdGljIHdvcmtzCmNvbmZpZ3VyZTo5MDUwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTA2
NTogY2hlY2tpbmcgaWYgQ0Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vCmNvbmZpZ3VyZTo5MDg5OiBD
QyAtYyAtZyAgLW8gb3V0L2NvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MDkz
OiAkPyA9IDAKY29uZmlndXJlOjkxMTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5MTIwOiBjaGVj
a2luZyBpZiBDQyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8KY29uZmlndXJlOjkxNjc6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZTo5MjAwOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDQyBsaW5rZXIgKC91c3Iv
dWNiL2xkKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3VyZToxMDE5MTogcmVzdWx0
OiB5ZXMKY29uZmlndXJlOjEwNDMwOiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJp
c3RpY3MKY29uZmlndXJlOjExMDkzOiByZXN1bHQ6IHNvbGFyaXMyLjkgbGQuc28KY29uZmlndXJl
OjExMTk1OiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dy
YW1zCmNvbmZpZ3VyZToxMTIyMDogcmVzdWx0OiBpbW1lZGlhdGUKY29uZmlndXJlOjExNzQwOiBj
aGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUKY29uZmlndXJl
OjExNzYyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTc4MDogY2hlY2tpbmcgaWYgbGlidG9vbCBz
dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3VyZToxMTc4MjogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjExNzg1OiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMK
Y29uZmlndXJlOjExODA2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTE4MDk6IGNoZWNraW5nIHdo
ZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcwpjb25maWd1cmU6MTE4MTM6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZToxMTg0ODogY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJp
Z2VuZGlhbgpjb25maWd1cmU6MTE4NjM6IENDIC1jIC1nICBjb25mdGVzdC5jID4mNQoiY29uZnRl
c3QuYyIsIGxpbmUgMjg6IEVycm9yOiBBIGRlY2xhcmF0aW9uIHdhcyBleHBlY3RlZCBpbnN0ZWFk
IG9mICJub3QiLgoiY29uZnRlc3QuYyIsIGxpbmUgMjg6IEVycm9yOiBhIGlzIG5vdCBkZWZpbmVk
LgoiY29uZnRlc3QuYyIsIGxpbmUgMjg6IEVycm9yOiAiLCIgZXhwZWN0ZWQgaW5zdGVhZCBvZiAi
Y2FwYWJsZSIuCjMgRXJyb3IocykgZGV0ZWN0ZWQuCmNvbmZpZ3VyZToxMTg2MzogJD8gPSAzCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l
IFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3No
MiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H
ICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBj
b29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1REQ19IRUFERVJT
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg
I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm
aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l
IEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JF
RU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRSQU5UCnwgI2VuZGlmCnwgI2RlZmluZSBIQVZFX0RM
RkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwp8ICNpZm5kZWYgX19BUFBMRV9DQ19fCnwgCSAgICAgICBub3QgYSB1bml2ZXJzYWwgY2Fw
YWJsZSBjb21waWxlcgp8IAkgICAgICNlbmRpZgp8IAkgICAgIHR5cGVkZWYgaW50IGR1bW15Owp8
IApjb25maWd1cmU6MTE5MDY6IENDIC1jIC1nICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIs
IGxpbmUgMzQ6IEVycm9yOiBib2d1cyBpcyBub3QgZGVmaW5lZC4KImNvbmZ0ZXN0LmMiLCBsaW5l
IDM0OiBFcnJvcjogIiwiIGV4cGVjdGVkIGluc3RlYWQgb2YgIm1hY3JvcyIuCjIgRXJyb3Iocykg
ZGV0ZWN0ZWQuCmNvbmZpZ3VyZToxMTkwNjogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy
YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3No
MiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmlu
ZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmlu
ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZF
UlNJT04gIjEuMi42Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE
TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx
CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNk
ZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBf
UkVFTlRSQU5UCnwgI2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRf
T0JKRElSICIubGlicy8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMv
dHlwZXMuaD4KfCAJICAgICAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CnwgCnwgaW50CnwgbWFpbiAo
KQp8IHsKfCAjaWYgISAoZGVmaW5lZCBCWVRFX09SREVSICYmIGRlZmluZWQgQklHX0VORElBTiAJ
CSAgICAgJiYgZGVmaW5lZCBMSVRUTEVfRU5ESUFOICYmIEJZVEVfT1JERVIgJiYgQklHX0VORElB
TiAJCSAgICAgJiYgTElUVExFX0VORElBTikKfCAJICAgICAgYm9ndXMgZW5kaWFuIG1hY3Jvcwp8
IAkgICAgICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTE5NTA6
IENDIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTE5NTA6ICQ/ID0gMApjb25maWd1
cmU6MTE5Njc6IENDIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTE5Njc6ICQ/ID0g
MApjb25maWd1cmU6MTIwNTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjA3ODogY2hlY2tpbmcg
Zm9yIHNwZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMKY29u
ZmlndXJlOjEyMTA4OiBDQyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5l
IDM0OiBXYXJuaW5nOiBTaGlmdCBjb3VudCBpcyB0b28gbGFyZ2UuCiJjb25mdGVzdC5jIiwgbGlu
ZSAzNDogV2FybmluZzogU2hpZnQgY291bnQgaXMgdG9vIGxhcmdlLgoiY29uZnRlc3QuYyIsIGxp
bmUgMzU6IFdhcm5pbmc6IFNoaWZ0IGNvdW50IGlzIHRvbyBsYXJnZS4KImNvbmZ0ZXN0LmMiLCBs
aW5lIDM1OiBXYXJuaW5nOiBTaGlmdCBjb3VudCBpcyB0b28gbGFyZ2UuCiJjb25mdGVzdC5jIiwg
bGluZSAzNjogRXJyb3I6IEFuIGFycmF5IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZWxlbWVudC4K
MSBFcnJvcihzKSBhbmQgNCBXYXJuaW5nKHMpIGRldGVjdGVkLgpjb25maWd1cmU6MTIxMDg6ICQ/
ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg
I2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg
ImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdF
X1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDIt
ZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBB
Q0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENf
SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx
CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg
I2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZu
ZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUg
SEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09S
RFNfQklHRU5ESUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90
eXBlcy5oPgp8ICAvKiBDaGVjayB0aGF0IG9mZl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNv
cnJlY3RseS4KfCAgICAgV2UgY2FuJ3Qgc2ltcGx5IGRlZmluZSBMQVJHRV9PRkZfVCB0byBiZSA5
MjIzMzcyMDM2ODU0Nzc1ODA3LAp8ICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVl
cmFkaW5nIGFzIEMgY29tcGlsZXJzCnwgICAgIGluY29ycmVjdGx5IHJlamVjdCA5MjIzMzcyMDM2
ODU0Nzc1ODA3LiAgKi8KfCAjZGVmaW5lIExBUkdFX09GRl9UICgoKG9mZl90KSAxIDw8IDYyKSAt
IDEgKyAoKG9mZl90KSAxIDw8IDYyKSkKfCAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZG
X1QgJSAyMTQ3NDgzNjI5ID09IDcyMQp8IAkJICAgICAgICYmIExBUkdFX09GRl9UICUgMjE0NzQ4
MzY0NyA9PSAxKQp8IAkJICAgICAgPyAxIDogLTFdOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwg
ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMjExMzogQ0MgLW4zMiAtYyAtZyAgY29u
ZnRlc3QuYyA+JjUKQ0M6IFdhcm5pbmc6IE9wdGlvbiAtbjMyIHBhc3NlZCB0byBsZCwgaWYgbGQg
aXMgaW52b2tlZCwgaWdub3JlZCBvdGhlcndpc2UKImNvbmZ0ZXN0LmMiLCBsaW5lIDM0OiBXYXJu
aW5nOiBTaGlmdCBjb3VudCBpcyB0b28gbGFyZ2UuCiJjb25mdGVzdC5jIiwgbGluZSAzNDogV2Fy
bmluZzogU2hpZnQgY291bnQgaXMgdG9vIGxhcmdlLgoiY29uZnRlc3QuYyIsIGxpbmUgMzU6IFdh
cm5pbmc6IFNoaWZ0IGNvdW50IGlzIHRvbyBsYXJnZS4KImNvbmZ0ZXN0LmMiLCBsaW5lIDM1OiBX
YXJuaW5nOiBTaGlmdCBjb3VudCBpcyB0b28gbGFyZ2UuCiJjb25mdGVzdC5jIiwgbGluZSAzNjog
RXJyb3I6IEFuIGFycmF5IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZWxlbWVudC4KMSBFcnJvcihz
KSBhbmQgNCBXYXJuaW5nKHMpIGRldGVjdGVkLgpjb25maWd1cmU6MTIxMTM6ICQ/ID0gMQpjb25m
aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ
QUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIi
CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi
bGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxp
YnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx
CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk
ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu
ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI
QVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVO
VFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZD
Tl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5E
SUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8
ICAvKiBDaGVjayB0aGF0IG9mZl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4K
fCAgICAgV2UgY2FuJ3Qgc2ltcGx5IGRlZmluZSBMQVJHRV9PRkZfVCB0byBiZSA5MjIzMzcyMDM2
ODU0Nzc1ODA3LAp8ICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFz
IEMgY29tcGlsZXJzCnwgICAgIGluY29ycmVjdGx5IHJlamVjdCA5MjIzMzcyMDM2ODU0Nzc1ODA3
LiAgKi8KfCAjZGVmaW5lIExBUkdFX09GRl9UICgoKG9mZl90KSAxIDw8IDYyKSAtIDEgKyAoKG9m
Zl90KSAxIDw8IDYyKSkKfCAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3
NDgzNjI5ID09IDcyMQp8IAkJICAgICAgICYmIExBUkdFX09GRl9UICUgMjE0NzQ4MzY0NyA9PSAx
KQp8IAkJICAgICAgPyAxIDogLTFdOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICBy
ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMjEyMzogcmVzdWx0OiBubwpjb25maWd1cmU6MTIxMjk6
IGNoZWNraW5nIGZvciBfRklMRV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZp
bGVzCmNvbmZpZ3VyZToxMjE1NDogQ0MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CiJjb25mdGVzdC5j
IiwgbGluZSAzNDogV2FybmluZzogU2hpZnQgY291bnQgaXMgdG9vIGxhcmdlLgoiY29uZnRlc3Qu
YyIsIGxpbmUgMzQ6IFdhcm5pbmc6IFNoaWZ0IGNvdW50IGlzIHRvbyBsYXJnZS4KImNvbmZ0ZXN0
LmMiLCBsaW5lIDM1OiBXYXJuaW5nOiBTaGlmdCBjb3VudCBpcyB0b28gbGFyZ2UuCiJjb25mdGVz
dC5jIiwgbGluZSAzNTogV2FybmluZzogU2hpZnQgY291bnQgaXMgdG9vIGxhcmdlLgoiY29uZnRl
c3QuYyIsIGxpbmUgMzY6IEVycm9yOiBBbiBhcnJheSBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGVs
ZW1lbnQuCjEgRXJyb3IocykgYW5kIDQgV2FybmluZyhzKSBkZXRlY3RlZC4KY29uZmlndXJlOjEy
MTU0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu
aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9U
QVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUg
UEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJs
aWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2Rl
ZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgI2RlZmlu
ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF
X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE
X0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAx
CnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAj
ZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVm
aW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl
IDxzeXMvdHlwZXMuaD4KfCAgLyogQ2hlY2sgdGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYz
IC0gMSBjb3JyZWN0bHkuCnwgICAgIFdlIGNhbid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1Qg
dG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywKfCAgICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJz
IG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVycwp8ICAgICBpbmNvcnJlY3RseSByZWplY3QgOTIy
MzM3MjAzNjg1NDc3NTgwNy4gICovCnwgI2RlZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8
PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2MikpCnwgICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExB
UkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKfCAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAl
IDIxNDc0ODM2NDcgPT0gMSkKfCAJCSAgICAgID8gMSA6IC0xXTsKfCBpbnQKfCBtYWluICgpCnwg
ewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTIxNzg6IENDIC1jIC1nICBj
b25mdGVzdC5jID4mNQpjb25maWd1cmU6MTIxNzg6ICQ/ID0gMApjb25maWd1cmU6MTIxODY6IHJl
c3VsdDogNjQKY29uZmlndXJlOjEyMzcxOiBjaGVja2luZyBmb3Igbm9uLUdOVSBsZApjb25maWd1
cmU6MTI0MDI6IHJlc3VsdDogL3Vzci91Y2IvbGQKY29uZmlndXJlOjEyNDA5OiBjaGVja2luZyBp
ZiB0aGUgbGlua2VyICgvdXNyL3VjYi9sZCkgaXMgR05VIGxkCmNvbmZpZ3VyZToxMjQyMjogcmVz
dWx0OiBubwpjb25maWd1cmU6MTI0Mjk6IGNoZWNraW5nIGZvciBzaGFyZWQgbGlicmFyeSBydW4g
cGF0aCBvcmlnaW4KY29uZmlndXJlOjEyNDQyOiByZXN1bHQ6IGRvbmUKY29uZmlndXJlOjEyOTQ3
OiBjaGVja2luZyBmb3IgbGlic3NsCmNvbmZpZ3VyZToxMjk2NjogQ0MgLW8gY29uZnRlc3QgLWcg
LUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWxkbCBjb25mdGVzdC5j
IC1sbnNsIC1sc29ja2V0ICAvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2xpYi9saWJz
c2wuYSAvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2xpYi9saWJjcnlwdG8uYSA+JjUK
Y29uZmlndXJlOjEyOTY2OiAkPyA9IDAKY29uZmlndXJlOjEyOTc2OiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6MTI5ODM6IGNoZWNraW5nIGhvdyB0byBsaW5rIHdpdGggbGlic3NsCmNvbmZpZ3VyZTox
Mjk4NTogcmVzdWx0OiAvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2xpYi9saWJzc2wu
YSAvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2xpYi9saWJjcnlwdG8uYQpjb25maWd1
cmU6MTM1NTU6IGNoZWNraW5nIGZvciBFVlBfYWVzXzEyOF9jdHIKY29uZmlndXJlOjEzNTU1OiBD
QyAtbyBjb25mdGVzdCAtZyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVk
ZSAtbGRsIC9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvbGliL2xpYnNzbC5hIC9leHBv
cnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvbGliL2xpYmNyeXB0by5hIGNvbmZ0ZXN0LmMgLWxu
c2wgLWxzb2NrZXQgID4mNQpVbmRlZmluZWQJCQlmaXJzdCByZWZlcmVuY2VkCiBzeW1ib2wgIAkJ
CSAgICBpbiBmaWxlCkVWUF9hZXNfMTI4X2N0ciAgICAgICAgICAgICAgICAgICAgIGNvbmZ0ZXN0
Lm8KbGQ6IGZhdGFsOiBTeW1ib2wgcmVmZXJlbmNpbmcgZXJyb3JzLiBObyBvdXRwdXQgd3JpdHRl
biB0byBjb25mdGVzdApjb25maWd1cmU6MTM1NTU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw
cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxp
YnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNL
QUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNk
ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNk
ZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmlu
ZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF
X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF
X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P
UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEK
fCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZp
bmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5l
IExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5l
IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxCnwgLyogZW5kIGNv
bmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBFVlBfYWVzXzEyOF9jdHIgdG8gYW4gaW5ub2N1b3Vz
IHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBFVlBfYWVzXzEyOF9jdHIuCnwg
ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh
eS4gICovCnwgI2RlZmluZSBFVlBfYWVzXzEyOF9jdHIgaW5ub2N1b3VzX0VWUF9hZXNfMTI4X2N0
cgp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVm
dWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBF
VlBfYWVzXzEyOF9jdHIgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNz
ZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhp
c3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1RE
Q19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+
CnwgI2VuZGlmCnwgCnwgI3VuZGVmIEVWUF9hZXNfMTI4X2N0cgp8IAp8IC8qIE92ZXJyaWRlIGFu
eSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFy
IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1
aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g
ICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgRVZQ
X2Flc18xMjhfY3RyICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3Ig
ZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBF
Tk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5n
IHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwg
I2lmIGRlZmluZWQgX19zdHViX0VWUF9hZXNfMTI4X2N0ciB8fCBkZWZpbmVkIF9fc3R1Yl9fX0VW
UF9hZXNfMTI4X2N0cgp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK
fCByZXR1cm4gRVZQX2Flc18xMjhfY3RyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m
aWd1cmU6MTM1NTU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0MDM2OiBjaGVja2luZyBmb3IgbGli
egpjb25maWd1cmU6MTQwNTU6IENDIC1vIGNvbmZ0ZXN0IC1nIC1JL2V4cG9ydC9ob21lL3VzZXJz
L3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1sZGwgY29uZnRlc3QuYyAtbG5zbCAtbHNvY2tldCAgLWx6
ID4mNQpjb25maWd1cmU6MTQwNTU6ICQ/ID0gMApjb25maWd1cmU6MTQwNjU6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZToxNDA3MjogY2hlY2tpbmcgaG93IHRvIGxpbmsgd2l0aCBsaWJ6CmNvbmZpZ3Vy
ZToxNDA3NDogcmVzdWx0OiAtbHoKY29uZmlndXJlOjE0MTMyOiBjaGVja2luZyB3aGV0aGVyIHRv
IGVuYWJsZSBwZWRhbnRpYyBhbmQgZGVidWcgY29tcGlsZXIgb3B0aW9ucwpjb25maWd1cmU6MTQy
NjU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0MjcxOiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJs
ZSBoaWRkZW4gc3ltYm9scyBpbiB0aGUgbGlicmFyeQpjb25maWd1cmU6MTQzMTI6IHJlc3VsdDog
bm8KY29uZmlndXJlOjE0MzIzOiBjaGVja2luZyBlcnJuby5oIHVzYWJpbGl0eQpjb25maWd1cmU6
MTQzMjM6IENDIC1jIC1nIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRl
IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMyMzogJD8gPSAwCmNvbmZpZ3VyZToxNDMyMzog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIzOiBjaGVja2luZyBlcnJuby5oIHByZXNlbmNlCmNv
bmZpZ3VyZToxNDMyMzogQ0MgLUUgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2lu
Y2x1ZGUgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzMjM6ICQ/ID0gMApjb25maWd1cmU6MTQzMjM6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMyMzogY2hlY2tpbmcgZm9yIGVycm5vLmgKY29uZmln
dXJlOjE0MzIzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMjM6IGNoZWNraW5nIGZjbnRsLmgg
dXNhYmlsaXR5CmNvbmZpZ3VyZToxNDMyMzogQ0MgLWMgLWcgLUkvZXhwb3J0L2hvbWUvdXNlcnMv
c2FtYnVpbGQvc3NsL2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE0MzIzOiAkPyA9
IDAKY29uZmlndXJlOjE0MzIzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMjM6IGNoZWNraW5n
IGZjbnRsLmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzIzOiBDQyAtRSAtSS9leHBvcnQvaG9tZS91
c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDMyMzogJD8g
PSAwCmNvbmZpZ3VyZToxNDMyMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIzOiBjaGVja2lu
ZyBmb3IgZmNudGwuaApjb25maWd1cmU6MTQzMjM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMy
MzogY2hlY2tpbmcgc3RkaW8uaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzIzOiBDQyAtYyAtZyAt
SS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpj
b25maWd1cmU6MTQzMjM6ICQ/ID0gMApjb25maWd1cmU6MTQzMjM6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZToxNDMyMzogY2hlY2tpbmcgc3RkaW8uaCBwcmVzZW5jZQpjb25maWd1cmU6MTQzMjM6IEND
IC1FIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0LmMK
Y29uZmlndXJlOjE0MzIzOiAkPyA9IDAKY29uZmlndXJlOjE0MzIzOiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6MTQzMjM6IGNoZWNraW5nIGZvciBzdGRpby5oCmNvbmZpZ3VyZToxNDMyMzogcmVzdWx0
OiB5ZXMKY29uZmlndXJlOjE0MzIzOiBjaGVja2luZyBmb3Igc3RkbGliLmgKY29uZmlndXJlOjE0
MzIzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMjM6IGNoZWNraW5nIGZvciB1bmlzdGQuaApj
b25maWd1cmU6MTQzMjM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMyMzogY2hlY2tpbmcgc3lz
L3Vpby5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTQzMjM6IENDIC1jIC1nIC1JL2V4cG9ydC9ob21l
L3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMy
MzogJD8gPSAwCmNvbmZpZ3VyZToxNDMyMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIzOiBj
aGVja2luZyBzeXMvdWlvLmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzIzOiBDQyAtRSAtSS9leHBv
cnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZTox
NDMyMzogJD8gPSAwCmNvbmZpZ3VyZToxNDMyMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIz
OiBjaGVja2luZyBmb3Igc3lzL3Vpby5oCmNvbmZpZ3VyZToxNDMyMzogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjE0MzM3OiBjaGVja2luZyBzeXMvc2VsZWN0LmggdXNhYmlsaXR5CmNvbmZpZ3VyZTox
NDMzNzogQ0MgLWMgLWcgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUg
Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE0MzM3OiAkPyA9IDAKY29uZmlndXJlOjE0MzM3OiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMzc6IGNoZWNraW5nIHN5cy9zZWxlY3QuaCBwcmVzZW5j
ZQpjb25maWd1cmU6MTQzMzc6IENDIC1FIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3Nz
bC9pbmNsdWRlIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0MzM3OiAkPyA9IDAKY29uZmlndXJlOjE0
MzM3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMzc6IGNoZWNraW5nIGZvciBzeXMvc2VsZWN0
LmgKY29uZmlndXJlOjE0MzM3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMzc6IGNoZWNraW5n
IHN5cy9zb2NrZXQuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzM3OiBDQyAtYyAtZyAtSS9leHBv
cnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1
cmU6MTQzMzc6ICQ/ID0gMApjb25maWd1cmU6MTQzMzc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox
NDMzNzogY2hlY2tpbmcgc3lzL3NvY2tldC5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDMzNzogQ0Mg
LUUgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgY29uZnRlc3QuYwpj
b25maWd1cmU6MTQzMzc6ICQ/ID0gMApjb25maWd1cmU6MTQzMzc6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZToxNDMzNzogY2hlY2tpbmcgZm9yIHN5cy9zb2NrZXQuaApjb25maWd1cmU6MTQzMzc6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZToxNDMzNzogY2hlY2tpbmcgc3lzL2lvY3RsLmggdXNhYmlsaXR5
CmNvbmZpZ3VyZToxNDMzNzogQ0MgLWMgLWcgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQv
c3NsL2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE0MzM3OiAkPyA9IDAKY29uZmln
dXJlOjE0MzM3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMzc6IGNoZWNraW5nIHN5cy9pb2N0
bC5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDMzNzogQ0MgLUUgLUkvZXhwb3J0L2hvbWUvdXNlcnMv
c2FtYnVpbGQvc3NsL2luY2x1ZGUgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzMzc6ICQ/ID0gMApj
b25maWd1cmU6MTQzMzc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMzNzogY2hlY2tpbmcgZm9y
IHN5cy9pb2N0bC5oCmNvbmZpZ3VyZToxNDMzNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzM3
OiBjaGVja2luZyBzeXMvdGltZS5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTQzMzc6IENDIC1jIC1n
IC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZToxNDMzNzogJD8gPSAwCmNvbmZpZ3VyZToxNDMzNzogcmVzdWx0OiB5ZXMKY29u
ZmlndXJlOjE0MzM3OiBjaGVja2luZyBzeXMvdGltZS5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDMz
NzogQ0MgLUUgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgY29uZnRl
c3QuYwpjb25maWd1cmU6MTQzMzc6ICQ/ID0gMApjb25maWd1cmU6MTQzMzc6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZToxNDMzNzogY2hlY2tpbmcgZm9yIHN5cy90aW1lLmgKY29uZmlndXJlOjE0MzM3
OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzNTE6IGNoZWNraW5nIGFycGEvaW5ldC5oIHVzYWJp
bGl0eQpjb25maWd1cmU6MTQzNTE6IENDIC1jIC1nIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1
aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDM1MTogJD8gPSAwCmNv
bmZpZ3VyZToxNDM1MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzUxOiBjaGVja2luZyBhcnBh
L2luZXQuaCBwcmVzZW5jZQpjb25maWd1cmU6MTQzNTE6IENDIC1FIC1JL2V4cG9ydC9ob21lL3Vz
ZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0MzUxOiAkPyA9
IDAKY29uZmlndXJlOjE0MzUxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzNTE6IGNoZWNraW5n
IGZvciBhcnBhL2luZXQuaApjb25maWd1cmU6MTQzNTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox
NDM1MTogY2hlY2tpbmcgbmV0aW5ldC9pbi5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTQzNTE6IEND
IC1jIC1nIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0
LmMgPiY1CmNvbmZpZ3VyZToxNDM1MTogJD8gPSAwCmNvbmZpZ3VyZToxNDM1MTogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjE0MzUxOiBjaGVja2luZyBuZXRpbmV0L2luLmggcHJlc2VuY2UKY29uZmln
dXJlOjE0MzUxOiBDQyAtRSAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVk
ZSBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDM1MTogJD8gPSAwCmNvbmZpZ3VyZToxNDM1MTogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjE0MzUxOiBjaGVja2luZyBmb3IgbmV0aW5ldC9pbi5oCmNvbmZp
Z3VyZToxNDM1MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzY0OiBjaGVja2luZyBzeXMvdW4u
aCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzY0OiBDQyAtYyAtZyAtSS9leHBvcnQvaG9tZS91c2Vy
cy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTQzNjQ6ICQ/
ID0gMApjb25maWd1cmU6MTQzNjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDM2NDogY2hlY2tp
bmcgc3lzL3VuLmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzY0OiBDQyAtRSAtSS9leHBvcnQvaG9t
ZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDM2NDog
JD8gPSAwCmNvbmZpZ3VyZToxNDM2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzY0OiBjaGVj
a2luZyBmb3Igc3lzL3VuLmgKY29uZmlndXJlOjE0MzY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6
MTQzODM6IGNoZWNraW5nIHdpbmRvd3MuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzgzOiBDQyAt
YyAtZyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5j
ID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgNzk6IEVycm9yOiBDb3VsZCBub3Qgb3BlbiBpbmNsdWRl
IGZpbGU8d2luZG93cy5oPi4KMSBFcnJvcihzKSBkZXRlY3RlZC4KY29uZmlndXJlOjE0MzgzOiAk
PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8
ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F
ICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FH
RV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gy
LWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQ
QUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgI2RlZmluZSBTVERD
X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO
R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg
MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8
ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lm
bmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5l
IEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIFdP
UkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUg
SEFWRV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIExJQlNTSDJfSEFW
RV9aTElCIDEKfCAjZGVmaW5lIExJQlNTSDJfREhfR0VYX05FVyAxCnwgI2RlZmluZSBIQVZFX0VS
Uk5PX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAx
CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9BUlBBX0lORVRfSCAxCnwg
I2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAv
KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVf
U1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI
QVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVm
IFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYu
aD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5o
Pgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmlu
ZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1l
bW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lm
ZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVk
ZSA8d2luZG93cy5oPgpjb25maWd1cmU6MTQzODM6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0Mzgz
OiBjaGVja2luZyB3aW5kb3dzLmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzgzOiBDQyAtRSAtSS9l
eHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jCiJjb25mdGVz
dC5jIiwgbGluZSA0NjogRXJyb3I6IENvdWxkIG5vdCBvcGVuIGluY2x1ZGUgZmlsZTx3aW5kb3dz
Lmg+LgoxIEVycm9yKHMpIGRldGVjdGVkLgpjb25maWd1cmU6MTQzODM6ICQ/ID0gMQpjb25maWd1
cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL
QUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwg
I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGli
c3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5o
YXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNz
aDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg
I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg
I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp
bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI
QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF
X0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVOVFJB
TlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZDTl9I
IDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFO
IDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBIQVZFX0xJQlNTTCAx
CnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIgMQp8ICNk
ZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCnwgI2Rl
ZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhB
VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5lIEhBVkVf
TkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8IC8qIGVuZCBjb25mZGVm
cy5oLiAgKi8KfCAjaW5jbHVkZSA8d2luZG93cy5oPgpjb25maWd1cmU6MTQzODM6IHJlc3VsdDog
bm8KY29uZmlndXJlOjE0MzgzOiBjaGVja2luZyBmb3Igd2luZG93cy5oCmNvbmZpZ3VyZToxNDM4
MzogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzODM6IGNoZWNraW5nIHdpbnNvY2syLmggdXNhYmls
aXR5CmNvbmZpZ3VyZToxNDM4MzogQ0MgLWMgLWcgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVp
bGQvc3NsL2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDc5OiBFcnJv
cjogQ291bGQgbm90IG9wZW4gaW5jbHVkZSBmaWxlPHdpbnNvY2syLmg+LgoxIEVycm9yKHMpIGRl
dGVjdGVkLgpjb25maWd1cmU6MTQzODM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt
IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIi
CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZF
UlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUg
UEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUg
UEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJT
SU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U
WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ
Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8
ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVm
aW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JF
RU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09C
SkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIF9GSUxF
X09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxCnwgI2RlZmluZSBIQVZFX0xJ
QlogMQp8ICNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIgMQp8ICNkZWZpbmUgTElCU1NIMl9ESF9H
RVhfTkVXIDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk
ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2Rl
ZmluZSBIQVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVk
ZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5
cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lz
L3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRs
aWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJ
Ql9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBI
QVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF
X01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8
c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxz
dHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8
aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8
c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVu
aXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3aW5zb2NrMi5oPgpjb25maWd1cmU6MTQzODM6
IHJlc3VsdDogbm8KY29uZmlndXJlOjE0MzgzOiBjaGVja2luZyB3aW5zb2NrMi5oIHByZXNlbmNl
CmNvbmZpZ3VyZToxNDM4MzogQ0MgLUUgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3Ns
L2luY2x1ZGUgY29uZnRlc3QuYwoiY29uZnRlc3QuYyIsIGxpbmUgNDY6IEVycm9yOiBDb3VsZCBu
b3Qgb3BlbiBpbmNsdWRlIGZpbGU8d2luc29jazIuaD4uCjEgRXJyb3IocykgZGV0ZWN0ZWQuCmNv
bmZpZ3VyZToxNDM4MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q
IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIK
fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JV
R1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VS
TCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi42
Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l
IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI
QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgTkVFRF9S
RUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRSQU5UCnwg
I2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGli
cy8iCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ
VFMgNjQKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2Rl
ZmluZSBMSUJTU0gyX0hBVkVfWkxJQiAxCnwgI2RlZmluZSBMSUJTU0gyX0RIX0dFWF9ORVcgMQp8
ICNkZWZpbmUgSEFWRV9FUlJOT19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF
X1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX0lPQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf
QVJQQV9JTkVUX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVU5fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDx3aW5zb2Nr
Mi5oPgpjb25maWd1cmU6MTQzODM6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0MzgzOiBjaGVja2lu
ZyBmb3Igd2luc29jazIuaApjb25maWd1cmU6MTQzODM6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0
MzgzOiBjaGVja2luZyB3czJ0Y3BpcC5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTQzODM6IENDIC1j
IC1nIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0LmMg
PiY1CiJjb25mdGVzdC5jIiwgbGluZSA3OTogRXJyb3I6IENvdWxkIG5vdCBvcGVuIGluY2x1ZGUg
ZmlsZTx3czJ0Y3BpcC5oPi4KMSBFcnJvcihzKSBkZXRlY3RlZC4KY29uZmlndXJlOjE0MzgzOiAk
PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8
ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F
ICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FH
RV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gy
LWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQ
QUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjYiCnwgI2RlZmluZSBTVERD
X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO
R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg
MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8
ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lm
bmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5l
IEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIFdP
UkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUg
SEFWRV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIExJQlNTSDJfSEFW
RV9aTElCIDEKfCAjZGVmaW5lIExJQlNTSDJfREhfR0VYX05FVyAxCnwgI2RlZmluZSBIQVZFX0VS
Uk5PX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAx
CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCnwg
I2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9BUlBBX0lORVRfSCAxCnwg
I2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAv
KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVf
U1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI
QVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVm
IFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYu
aD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5o
Pgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmlu
ZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1l
bW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lm
ZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVk
ZSA8d3MydGNwaXAuaD4KY29uZmlndXJlOjE0MzgzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNDM4
MzogY2hlY2tpbmcgd3MydGNwaXAuaCBwcmVzZW5jZQpjb25maWd1cmU6MTQzODM6IENDIC1FIC1J
L2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIGNvbmZ0ZXN0LmMKImNvbmZ0
ZXN0LmMiLCBsaW5lIDQ2OiBFcnJvcjogQ291bGQgbm90IG9wZW4gaW5jbHVkZSBmaWxlPHdzMnRj
cGlwLmg+LgoxIEVycm9yKHMpIGRldGVjdGVkLgpjb25maWd1cmU6MTQzODM6ICQ/ID0gMQpjb25m
aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ
QUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIi
CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi
bGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29v
bC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxp
YnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx
CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk
ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu
ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI
QVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVO
VFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZD
Tl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5E
SUFOIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBIQVZFX0xJQlNT
TCAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIgMQp8
ICNkZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCnwg
I2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5l
IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5lIEhB
VkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5lIEhB
VkVfTkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8IC8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8d3MydGNwaXAuaD4KY29uZmlndXJlOjE0MzgzOiByZXN1
bHQ6IG5vCmNvbmZpZ3VyZToxNDM4MzogY2hlY2tpbmcgZm9yIHdzMnRjcGlwLmgKY29uZmlndXJl
OjE0MzgzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNDQwNTogY2hlY2tpbmcgZm9yIHBvbGwKY29u
ZmlndXJlOjE0NDA1OiBDQyAtbyBjb25mdGVzdCAtZyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1i
dWlsZC9zc2wvaW5jbHVkZSAtbGRsIGNvbmZ0ZXN0LmMgLWxuc2wgLWxzb2NrZXQgID4mNQpjb25m
aWd1cmU6MTQ0MDU6ICQ/ID0gMApjb25maWd1cmU6MTQ0MDU6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZToxNDQyMDogY2hlY2tpbmcgZm9yIGdldHRpbWVvZmRheQpjb25maWd1cmU6MTQ0MjA6IENDIC1v
IGNvbmZ0ZXN0IC1nIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1s
ZGwgY29uZnRlc3QuYyAtbG5zbCAtbHNvY2tldCAgPiY1CmNvbmZpZ3VyZToxNDQyMDogJD8gPSAw
CmNvbmZpZ3VyZToxNDQyMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0NDIwOiBjaGVja2luZyBm
b3Igc2VsZWN0CmNvbmZpZ3VyZToxNDQyMDogQ0MgLW8gY29uZnRlc3QgLWcgLUkvZXhwb3J0L2hv
bWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWxkbCBjb25mdGVzdC5jIC1sbnNsIC1sc29j
a2V0ICA+JjUKY29uZmlndXJlOjE0NDIwOiAkPyA9IDAKY29uZmlndXJlOjE0NDIwOiByZXN1bHQ6
IHllcwpjb25maWd1cmU6MTQ0MjA6IGNoZWNraW5nIGZvciBzdHJ0b2xsCmNvbmZpZ3VyZToxNDQy
MDogQ0MgLW8gY29uZnRlc3QgLWcgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2lu
Y2x1ZGUgLWxkbCBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICA+JjUKY29uZmlndXJlOjE0NDIw
OiAkPyA9IDAKY29uZmlndXJlOjE0NDIwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQ0Nzc6IGNo
ZWNraW5nIGZvciB3b3JraW5nIGFsbG9jYS5oCmNvbmZpZ3VyZToxNDQ5NDogQ0MgLW8gY29uZnRl
c3QgLWcgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWxkbCBjb25m
dGVzdC5jIC1sbnNsIC1sc29ja2V0ICA+JjUKY29uZmlndXJlOjE0NDk0OiAkPyA9IDAKY29uZmln
dXJlOjE0NTAyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQ1MTA6IGNoZWNraW5nIGZvciBhbGxv
Y2EKY29uZmlndXJlOjE0NTQ3OiBDQyAtbyBjb25mdGVzdCAtZyAtSS9leHBvcnQvaG9tZS91c2Vy
cy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtbGRsIGNvbmZ0ZXN0LmMgLWxuc2wgLWxzb2NrZXQgID4m
NQpjb25maWd1cmU6MTQ1NDc6ICQ/ID0gMApjb25maWd1cmU6MTQ1NTU6IHJlc3VsdDogeWVzCmNv
bmZpZ3VyZToxNDY2NzogY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNvbnN0CmNv
bmZpZ3VyZToxNDczMjogQ0MgLWMgLWcgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3Ns
L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE0NzMyOiAkPyA9IDAKY29uZmlndXJl
OjE0NzM5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQ3NDc6IGNoZWNraW5nIGZvciBpbmxpbmUK
Y29uZmlndXJlOjE0NzYzOiBDQyAtYyAtZyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9z
c2wvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTQ3NjM6ICQ/ID0gMApjb25maWd1
cmU6MTQ3NzE6IHJlc3VsdDogaW5saW5lCmNvbmZpZ3VyZToxNDc5MTogY2hlY2tpbmcgbm9uLWJs
b2NraW5nIHNvY2tldHMgc3R5bGUKY29uZmlndXJlOjE0ODI5OiBDQyAtYyAtZyAtSS9leHBvcnQv
aG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSBjb25mdGVzdC5jID4mNQoiY29uZnRlc3Qu
YyIsIGxpbmUgNzk6IFdhcm5pbmc6IFRoZSB2YXJpYWJsZSBzb2NrZXQgaGFzIG5vdCB5ZXQgYmVl
biBhc3NpZ25lZCBhIHZhbHVlLgoxIFdhcm5pbmcocykgZGV0ZWN0ZWQuCmNvbmZpZ3VyZToxNDgy
OTogJD8gPSAwCmNvbmZpZ3VyZToxNDk5MDogcmVzdWx0OiBPX05PTkJMT0NLCmNvbmZpZ3VyZTox
NTEyODogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICMjCiMjIFJ1bm5pbmcgY29uZmlnLnN0YXR1cy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAjIwoKVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBsaWJzc2gyIGNvbmZpZy5zdGF0dXMgLSwg
d2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NS4gIEludm9jYXRpb24gY29t
bWFuZCBsaW5lIHdhcwoKICBDT05GSUdfRklMRVMgICAgPSAKICBDT05GSUdfSEVBREVSUyAgPSAK
ICBDT05GSUdfTElOS1MgICAgPSAKICBDT05GSUdfQ09NTUFORFMgPSAKICAkIC4vY29uZmlnLnN0
YXR1cyAKCm9uIHFhZ2VuaW9zb2w5Cgpjb25maWcuc3RhdHVzOjExMTQ6IGNyZWF0aW5nIE1ha2Vm
aWxlCmNvbmZpZy5zdGF0dXM6MTExNDogY3JlYXRpbmcgc3JjL01ha2VmaWxlCmNvbmZpZy5zdGF0
dXM6MTExNDogY3JlYXRpbmcgdGVzdHMvTWFrZWZpbGUKY29uZmlnLnN0YXR1czoxMTE0OiBjcmVh
dGluZyBleGFtcGxlL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MTExNDogY3JlYXRpbmcgZG9jcy9N
YWtlZmlsZQpjb25maWcuc3RhdHVzOjExMTQ6IGNyZWF0aW5nIGxpYnNzaDIucGMKY29uZmlnLnN0
YXR1czoxMTE0OiBjcmVhdGluZyBzcmMvbGlic3NoMl9jb25maWcuaApjb25maWcuc3RhdHVzOjEx
MTQ6IGNyZWF0aW5nIGV4YW1wbGUvbGlic3NoMl9jb25maWcuaApjb25maWcuc3RhdHVzOjEzMjc6
IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwpjb25maWcuc3RhdHVzOjEzMjc6IGV4ZWN1dGlu
ZyBsaWJ0b29sIGNvbW1hbmRzCmNvbmZpZ3VyZToxNzI2NDogc3VtbWFyeSBvZiBidWlsZCBvcHRp
b25zOgoKICB2ZXJzaW9uOiAgICAgICAgICAxLjIuNgogIEhvc3QgdHlwZTogICAgICAgIHNwYXJj
LXN1bi1zb2xhcmlzMi45CiAgSW5zdGFsbCBwcmVmaXg6ICAgL2V4cG9ydC9ob21lL3NhbWJ1aWxk
L0NVUkxfU1NIMi9zc2gyCiAgQ29tcGlsZXI6ICAgICAgICAgQ0MKICBDb21waWxlciBmbGFnczog
ICAtZwogIExpYnJhcnkgdHlwZXM6ICAgIFNoYXJlZD15ZXMsIFN0YXRpYz15ZXMKICBDcnlwdG8g
bGlicmFyeTogICBvcGVuc3NsOiB5ZXMgKEFFUy1DVFI6IG5vKSBsaWJnY3J5cHQ6IG5vCiAgRGVi
dWcgYnVpbGQ6ICAgICAgbm8KICBQYXRoIHRvIHNzaGQ6ICAgICAgKG9ubHkgZm9yIHNlbGYtdGVz
dHMpCiAgbGlieiBjb21wcmVzc2lvbjogeWVzCgoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBD
YWNoZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2J1aWxkPXNw
YXJjLXN1bi1zb2xhcmlzMi45CmFjX2N2X2NfYmlnZW5kaWFuPXllcwphY19jdl9jX2NvbXBpbGVy
X2dudT1ubwphY19jdl9jX2NvbnN0PXllcwphY19jdl9jX2lubGluZT1pbmxpbmUKYWNfY3ZfZW52
X0NDX3NldD1zZXQKYWNfY3ZfZW52X0NDX3ZhbHVlPUNDCmFjX2N2X2Vudl9DRkxBR1Nfc2V0PQph
Y19jdl9lbnZfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQRkxBR1Nfc2V0PQphY19jdl9lbnZf
Q1BQRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBfc2V0PQphY19jdl9lbnZfQ1BQX3ZhbHVlPQph
Y19jdl9lbnZfTERGTEFHU19zZXQ9c2V0CmFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPS1sZGwKYWNf
Y3ZfZW52X0xJQlNfc2V0PQphY19jdl9lbnZfTElCU192YWx1ZT0KYWNfY3ZfZW52X2J1aWxkX2Fs
aWFzX3NldD0KYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPQphY19jdl9lbnZfaG9zdF9hbGlh
c19zZXQ9CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPQphY19jdl9lbnZfdGFyZ2V0X2FsaWFz
X3NldD0KYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0KYWNfY3ZfZnVuY19FVlBfYWVzXzEy
OF9jdHI9bm8KYWNfY3ZfZnVuY19hbGxvY2Ffd29ya3M9eWVzCmFjX2N2X2Z1bmNfZ2V0dGltZW9m
ZGF5PXllcwphY19jdl9mdW5jX3BvbGw9eWVzCmFjX2N2X2Z1bmNfc2VsZWN0PXllcwphY19jdl9m
dW5jX3N0cnRvbGw9eWVzCmFjX2N2X2hlYWRlcl9hcnBhX2luZXRfaD15ZXMKYWNfY3ZfaGVhZGVy
X2RsZmNuX2g9eWVzCmFjX2N2X2hlYWRlcl9lcnJub19oPXllcwphY19jdl9oZWFkZXJfZmNudGxf
aD15ZXMKYWNfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl9tZW1vcnlfaD15
ZXMKYWNfY3ZfaGVhZGVyX25ldGluZXRfaW5faD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmFj
X2N2X2hlYWRlcl9zdGRpbnRfaD1ubwphY19jdl9oZWFkZXJfc3RkaW9faD15ZXMKYWNfY3ZfaGVh
ZGVyX3N0ZGxpYl9oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nX2g9eWVzCmFjX2N2X2hlYWRlcl9z
dHJpbmdzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfaW9jdGxfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5
c19zZWxlY3RfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zb2NrZXRfaD15ZXMKYWNfY3ZfaGVhZGVy
X3N5c19zdGF0X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdGltZV9oPXllcwphY19jdl9oZWFkZXJf
c3lzX3R5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdWlvX2g9eWVzCmFjX2N2X2hlYWRlcl9z
eXNfdW5faD15ZXMKYWNfY3ZfaGVhZGVyX3VuaXN0ZF9oPXllcwphY19jdl9oZWFkZXJfd2luZG93
c19oPW5vCmFjX2N2X2hlYWRlcl93aW5zb2NrMl9oPW5vCmFjX2N2X2hlYWRlcl93czJ0Y3BpcF9o
PW5vCmFjX2N2X2hvc3Q9c3BhcmMtc3VuLXNvbGFyaXMyLjkKYWNfY3ZfbGlic3NsPXllcwphY19j
dl9saWJ6PXllcwphY19jdl9vYmpleHQ9bwphY19jdl9wYXRoX0VHUkVQPSQnL3Vzci94cGc0L2Jp
bi9ncmVwIC1FJwphY19jdl9wYXRoX0ZHUkVQPSQnL3Vzci94cGc0L2Jpbi9ncmVwIC1GJwphY19j
dl9wYXRoX0dSRVA9L3Vzci94cGc0L2Jpbi9ncmVwCmFjX2N2X3BhdGhfU0VEPS91c3IvYmluL3Nl
ZAphY19jdl9wcm9nX0FXSz1uYXdrCmFjX2N2X3Byb2dfQ1BQPSQnQ0MgLUUnCmFjX2N2X3Byb2df
YWNfY3RfQ0M9Q0MKYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPW9iamR1bXAKYWNfY3ZfcHJvZ19j
Y19jODk9bm8KYWNfY3ZfcHJvZ19jY19nPXllcwphY19jdl9wcm9nX21ha2VfbWFrZV9zZXQ9eWVz
CmFjX2N2X3NlYXJjaF9pbmV0X2FkZHI9LWxuc2wKYWNfY3Zfc2VhcmNoX3NvY2tldD0tbHNvY2tl
dAphY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cz02NAphY19jdl9zeXNfbGFyZ2VmaWxlX0NDPW5v
CmFjX2N2X3R5cGVfbG9uZ19sb25nPXllcwphY19jdl93b3JraW5nX2FsbG9jYV9oPXllcwphY2xf
Y3ZfaGFyZGNvZGVfZGlyZWN0PW5vCmFjbF9jdl9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSQn
LVIkbGliZGlyJwphY2xfY3ZfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KYWNsX2N2X2hhcmRj
b2RlX21pbnVzX0w9bm8KYWNsX2N2X2xpYmV4dD1hCmFjbF9jdl9saWJuYW1lX3NwZWM9JCdsaWIk
bmFtZScKYWNsX2N2X2xpYnJhcnlfbmFtZXNfc3BlYz0kJyRsaWJuYW1lJHNocmV4dCcKYWNsX2N2
X3BhdGhfTEQ9L3Vzci91Y2IvbGQKYWNsX2N2X3Byb2dfZ251X2xkPW5vCmFjbF9jdl9ycGF0aD1k
b25lCmFjbF9jdl9zaGxpYmV4dD1zbwphY2xfY3Zfd2w9LVdsLAphbV9jdl9DQ19kZXBlbmRlbmNp
ZXNfY29tcGlsZXJfdHlwZT1ub25lCmx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs
Cmx0X2N2X2ZpbGVfbWFnaWNfY21kPSQnJE1BR0lDX0NNRCcKbHRfY3ZfZmlsZV9tYWdpY190ZXN0
X2ZpbGU9Cmx0X2N2X2xkX3JlbG9hZF9mbGFnPS1yCmx0X2N2X25tX2ludGVyZmFjZT0kJ0JTRCBu
bScKbHRfY3Zfb2JqZGlyPS5saWJzCmx0X2N2X3BhdGhfTEQ9L3Vzci91Y2IvbGQKbHRfY3ZfcGF0
aF9OTT0kJy91c3IvY2NzL2Jpbi9ubSAtcCcKbHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzCmx0
X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPXllcwpsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRp
Y193b3Jrcz15ZXMKbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf
cGlwZT0kJ3NlZCAtbiAtZSBcJ3MvXi4qW1x0IF1cXChbQkRSVF1bQkRSVF0qXFwpW1x0IF1bXHQg
XSpcXChbX0EtWmEtel1bX0EtWmEtejAtOV0qXFwpJC9cXDEgXFwyIFxcMi9wXCcnCmx0X2N2X3N5
c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSQnc2VkIC1uIC1lIFwncy9eOiBcXChb
XiBdKlxcKSAkLyAge1xcIlxcMVxcIiwgKHZvaWQgKikgMH0sL3BcJyAtZSBcJ3MvXltCRFJUXSog
XFwoW14gXSpcXCkgXFwoW14gXSpcXCkkLyAgeyJcXDIiLCAodm9pZCAqKSBcXCZcXDJ9LC9wXCcn
Cmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9JCdz
ZWQgLW4gLWUgXCdzL146IFxcKFteIF0qXFwpICQvICB7XFwiXFwxXFwiLCAodm9pZCAqKSAwfSwv
cFwnIC1lIFwncy9eW0JEUlRdKiBcXChbXiBdKlxcKSBcXChsaWJbXiBdKlxcKSQvICB7IlxcMiIs
ICh2b2lkICopIFxcJlxcMn0sL3BcJyAtZSBcJ3MvXltCRFJUXSogXFwoW14gXSpcXCkgXFwoW14g
XSpcXCkkLyAgeyJsaWJcXDIiLCAodm9pZCAqKSBcXCZcXDJ9LC9wXCcnCmx0X2N2X3N5c19nbG9i
YWxfc3ltYm9sX3RvX2NkZWNsPSQnc2VkIC1uIC1lIFwncy9eVCAuKiBcXCguKlxcKSQvZXh0ZXJu
IGludCBcXDEoKTsvcFwnIC1lIFwncy9eW0JEUlRdKiAuKiBcXCguKlxcKSQvZXh0ZXJuIGNoYXIg
XFwxOy9wXCcnCmx0X2N2X3N5c19tYXhfY21kX2xlbj03ODYyNDAKCiMjIC0tLS0tLS0tLS0tLS0t
LS0tICMjCiMjIE91dHB1dCB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCgpB
Q0xPQ0FMPScke1NIRUxMfSAvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvbGlic3NoMi0xLjIu
Ni9taXNzaW5nIC0tcnVuIGFjbG9jYWwtMS45JwpBTExPQ0E9JycKQU1ERVBCQUNLU0xBU0g9J1wn
CkFNREVQX0ZBTFNFPScjJwpBTURFUF9UUlVFPScnCkFNVEFSPScke1NIRUxMfSAvZXhwb3J0L2hv
bWUvdXNlcnMvc2FtYnVpbGQvbGlic3NoMi0xLjIuNi9taXNzaW5nIC0tcnVuIHRhcicKQVI9J2Zh
bHNlJwpBUz0nYXMnCkFVVE9DT05GPScke1NIRUxMfSAvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVp
bGQvbGlic3NoMi0xLjIuNi9taXNzaW5nIC0tcnVuIGF1dG9jb25mJwpBVVRPSEVBREVSPScke1NI
RUxMfSAvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvbGlic3NoMi0xLjIuNi9taXNzaW5nIC0t
cnVuIGF1dG9oZWFkZXInCkFVVE9NQUtFPScke1NIRUxMfSAvZXhwb3J0L2hvbWUvdXNlcnMvc2Ft
YnVpbGQvbGlic3NoMi0xLjIuNi9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuOScKQVdLPSduYXdr
JwpDQz0nQ0MnCkNDREVQTU9ERT0nZGVwbW9kZT1ub25lJwpDRkxBR1M9Jy1nJwpDUFA9J0NDIC1F
JwpDUFBGTEFHUz0nLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUnCkNZ
R1BBVEhfVz0nZWNobycKREVGUz0nLURIQVZFX0NPTkZJR19IJwpERVBESVI9Jy5kZXBzJwpETExU
T09MPSdkbGx0b29sJwpEU1lNVVRJTD0nJwpEVU1QQklOPScnCkVDSE9fQz0nJwpFQ0hPX049Jy1u
JwpFQ0hPX1Q9JycKRUdSRVA9Jy91c3IveHBnNC9iaW4vZ3JlcCAtRScKRVhFRVhUPScnCkZHUkVQ
PScvdXNyL3hwZzQvYmluL2dyZXAgLUYnCkdSRVA9Jy91c3IveHBnNC9iaW4vZ3JlcCcKSEFWRV9M
SUJHQ1JZUFQ9JycKSEFWRV9MSUJTU0w9J3llcycKSEFWRV9MSUJaPSd5ZXMnCklOU1RBTExfREFU
QT0nJHtJTlNUQUxMfSAtbSA2NDQnCklOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKSU5TVEFM
TF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCklOU1RBTExfU1RSSVBfUFJPR1JBTT0nJHtTSEVMTH0gJChp
bnN0YWxsX3NoKSAtYyAtcycKTEQ9Jy91c3IvdWNiL2xkJwpMREZMQUdTPSctbGRsJwpMSUJHQ1JZ
UFQ9JycKTElCR0NSWVBUX0ZBTFNFPScnCkxJQkdDUllQVF9QUkVGSVg9JycKTElCR0NSWVBUX1RS
VUU9JyMnCkxJQk9CSlM9JycKTElCUz0nLWxuc2wgLWxzb2NrZXQgJwpMSUJTU0w9Jy9leHBvcnQv
aG9tZS91c2Vycy9zYW1idWlsZC9zc2wvbGliL2xpYnNzbC5hIC9leHBvcnQvaG9tZS91c2Vycy9z
YW1idWlsZC9zc2wvbGliL2xpYmNyeXB0by5hJwpMSUJTU0xfUFJFRklYPScvZXhwb3J0L2hvbWUv
dXNlcnMvc2FtYnVpbGQvc3NsJwpMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGli
dG9vbCcKTElCWj0nLWx6JwpMSUJaX1BSRUZJWD0nJwpMSVBPPScnCkxOX1M9J2xuIC1zJwpMVExJ
QkdDUllQVD0nJwpMVExJQk9CSlM9JycKTFRMSUJTU0w9Jy1ML2V4cG9ydC9ob21lL3VzZXJzL3Nh
bWJ1aWxkL3NzbC9saWIgLWxzc2wgLUwvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2xp
YiAtbGNyeXB0bycKTFRMSUJaPSctbHonCk1BSU5UPScjJwpNQUlOVEFJTkVSX01PREVfRkFMU0U9
JycKTUFJTlRBSU5FUl9NT0RFX1RSVUU9JyMnCk1BS0VJTkZPPScke1NIRUxMfSAvZXhwb3J0L2hv
bWUvdXNlcnMvc2FtYnVpbGQvbGlic3NoMi0xLjIuNi9taXNzaW5nIC0tcnVuIG1ha2VpbmZvJwpO
TT0nL3Vzci9jY3MvYmluL25tIC1wJwpOTUVESVQ9JycKT0JKRFVNUD0nb2JqZHVtcCcKT0JKRVhU
PSdvJwpPVE9PTDY0PScnCk9UT09MPScnClBBQ0tBR0U9J2xpYnNzaDInClBBQ0tBR0VfQlVHUkVQ
T1JUPSdsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZScKUEFDS0FHRV9OQU1FPSdsaWJzc2gyJwpQ
QUNLQUdFX1NUUklORz0nbGlic3NoMiAtJwpQQUNLQUdFX1RBUk5BTUU9J2xpYnNzaDInClBBQ0tB
R0VfVVJMPScnClBBQ0tBR0VfVkVSU0lPTj0nLScKUEFUSF9TRVBBUkFUT1I9JzonClJBTkxJQj0n
OicKU0VEPScvdXNyL2Jpbi9zZWQnClNFVF9NQUtFPScnClNIRUxMPScvYmluL2Jhc2gnClNTSEQ9
JycKU1NIRF9GQUxTRT0nJwpTU0hEX1RSVUU9JyMnClNUUklQPSc6JwpWRVJTSU9OPScxLjIuNicK
YWNfY3RfQ0M9J0NDJwphY19jdF9EVU1QQklOPScnCmFtX19mYXN0ZGVwQ0NfRkFMU0U9JycKYW1f
X2Zhc3RkZXBDQ19UUlVFPScjJwphbV9faW5jbHVkZT0naW5jbHVkZScKYW1fX2xlYWRpbmdfZG90
PScuJwphbV9fcXVvdGU9JycKYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInCmFt
X191bnRhcj0nJHtBTVRBUn0geGYgLScKYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCmJ1aWxk
PSdzcGFyYy1zdW4tc29sYXJpczIuOScKYnVpbGRfYWxpYXM9JycKYnVpbGRfY3B1PSdzcGFyYycK
YnVpbGRfb3M9J3NvbGFyaXMyLjknCmJ1aWxkX3ZlbmRvcj0nc3VuJwpkYXRhZGlyPScke2RhdGFy
b290ZGlyfScKZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKZG9jZGlyPScke2RhdGFyb290
ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JwpkdmlkaXI9JyR7ZG9jZGlyfScKZXhlY19wcmVm
aXg9JyR7cHJlZml4fScKaG9zdD0nc3BhcmMtc3VuLXNvbGFyaXMyLjknCmhvc3RfYWxpYXM9JycK
aG9zdF9jcHU9J3NwYXJjJwpob3N0X29zPSdzb2xhcmlzMi45Jwpob3N0X3ZlbmRvcj0nc3VuJwpo
dG1sZGlyPScke2RvY2Rpcn0nCmluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwppbmZvZGly
PScke2RhdGFyb290ZGlyfS9pbmZvJwppbnN0YWxsX3NoPScvZXhwb3J0L2hvbWUvdXNlcnMvc2Ft
YnVpbGQvbGlic3NoMi0xLjIuNi9pbnN0YWxsLXNoJwpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xp
YicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKbG9jYWxlZGlyPScke2RhdGFy
b290ZGlyfS9sb2NhbGUnCmxvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCmx0X0VDSE89J2Vj
aG8nCm1hbmRpcj0nJHtkYXRhcm9vdGRpcn0vbWFuJwpta2Rpcl9wPSckKGluc3RhbGxfc2gpIC1k
JwpvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCnBkZmRpcj0nJHtkb2NkaXJ9JwpwcmVmaXg9
Jy9leHBvcnQvaG9tZS9zYW1idWlsZC9DVVJMX1NTSDIvc3NoMicKcHJvZ3JhbV90cmFuc2Zvcm1f
bmFtZT0ncyx4LHgsJwpwc2Rpcj0nJHtkb2NkaXJ9JwpzYmluZGlyPScke2V4ZWNfcHJlZml4fS9z
YmluJwpzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKc3lzY29uZmRpcj0nJHtwcmVmaXh9
L2V0YycKdGFyZ2V0X2FsaWFzPScnCgojIyAtLS0tLS0tLS0tLSAjIwojIyBjb25mZGVmcy5oLiAj
IwojIyAtLS0tLS0tLS0tLSAjIwoKLyogY29uZmRlZnMuaCAqLwojZGVmaW5lIFBBQ0tBR0VfTkFN
RSAibGlic3NoMiIKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCiNkZWZpbmUgUEFD
S0FHRV9WRVJTSU9OICItIgojZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCiNkZWZp
bmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgojZGVmaW5l
IFBBQ0tBR0VfVVJMICIiCiNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKI2RlZmluZSBWRVJTSU9O
ICIxLjIuNiIKI2RlZmluZSBTVERDX0hFQURFUlMgMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg
MQojZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZp
bmUgSEFWRV9TVFJJTkdfSCAxCiNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9T
VFJJTkdTX0ggMQojZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9VTklTVERf
SCAxCiNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCiNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQojaWZu
ZGVmIF9SRUVOVFJBTlQKIyAgZGVmaW5lIF9SRUVOVFJBTlQKI2VuZGlmCiNkZWZpbmUgSEFWRV9E
TEZDTl9IIDEKI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKI2RlZmluZSBXT1JEU19CSUdFTkRJ
QU4gMQojZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CiNkZWZpbmUgSEFWRV9MSUJTU0wgMQoj
ZGVmaW5lIEhBVkVfTElCWiAxCiNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIgMQojZGVmaW5lIExJ
QlNTSDJfREhfR0VYX05FVyAxCiNkZWZpbmUgSEFWRV9FUlJOT19IIDEKI2RlZmluZSBIQVZFX0ZD
TlRMX0ggMQojZGVmaW5lIEhBVkVfU1RESU9fSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNk
ZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQojZGVmaW5lIEhB
VkVfU1lTX1NFTEVDVF9IIDEKI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCiNkZWZpbmUgSEFW
RV9TWVNfSU9DVExfSCAxCiNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKI2RlZmluZSBIQVZFX0FS
UEFfSU5FVF9IIDEKI2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCiNkZWZpbmUgSEFWRV9TWVNf
VU5fSCAxCiNkZWZpbmUgSEFWRV9QT0xMIDEKI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCiNk
ZWZpbmUgSEFWRV9TRUxFQ1QgMQojZGVmaW5lIEhBVkVfU1RSVE9MTCAxCiNkZWZpbmUgSEFWRV9B
TExPQ0FfSCAxCiNkZWZpbmUgSEFWRV9BTExPQ0EgMQojZGVmaW5lIEhBVkVfT19OT05CTE9DSyAx
Cgpjb25maWd1cmU6IGV4aXQgMAo=

------_=_NextPart_001_01CB2A93.035D7744
Content-Type: application/octet-stream;
	name="make.out"
Content-Transfer-Encoding: base64
Content-Description: make.out
Content-Disposition: attachment;
	filename="make.out"

TWFraW5nIGNsZWFuIGluIGRvY3MKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvZXhwb3J0
L2hvbWUvdXNlcnMvc2FtYnVpbGQvbGlic3NoMi0xLjIuNi9kb2NzJwpybSAtcmYgLmxpYnMgX2xp
YnMKcm0gLWYgKi5sbwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL2V4cG9ydC9ob21lL3Vz
ZXJzL3NhbWJ1aWxkL2xpYnNzaDItMS4yLjYvZG9jcycKTWFraW5nIGNsZWFuIGluIHRlc3RzCm1h
a2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSBgL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL2xp
YnNzaDItMS4yLjYvdGVzdHMnCiBybSAtZiBzaW1wbGUgc2ltcGxlCnJtIC1yZiAubGlicyBfbGli
cwpybSAtZiAqLm8Kcm0gLWYgKi5sbwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL2V4cG9y
dC9ob21lL3VzZXJzL3NhbWJ1aWxkL2xpYnNzaDItMS4yLjYvdGVzdHMnCk1ha2luZyBjbGVhbiBp
biBleGFtcGxlCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSBgL2V4cG9ydC9ob21lL3VzZXJz
L3NhbWJ1aWxkL2xpYnNzaDItMS4yLjYvZXhhbXBsZScKcm0gLXJmIC5saWJzIF9saWJzCiBybSAt
ZiBkaXJlY3RfdGNwaXAgZGlyZWN0X3RjcGlwCiBybSAtZiBzc2gyIHNzaDIKIHJtIC1mIHNjcCBz
Y3AKIHJtIC1mIHNjcF9ub25ibG9jayBzY3Bfbm9uYmxvY2sKIHJtIC1mIHNjcF93cml0ZSBzY3Bf
d3JpdGUKIHJtIC1mIHNjcF93cml0ZV9ub25ibG9jayBzY3Bfd3JpdGVfbm9uYmxvY2sKIHJtIC1m
IHNmdHAgc2Z0cAogcm0gLWYgc2Z0cF9ub25ibG9jayBzZnRwX25vbmJsb2NrCiBybSAtZiBzZnRw
X3dyaXRlIHNmdHBfd3JpdGUKIHJtIC1mIHNmdHBfd3JpdGVfbm9uYmxvY2sgc2Z0cF93cml0ZV9u
b25ibG9jawogcm0gLWYgc2Z0cF9ta2RpciBzZnRwX21rZGlyCiBybSAtZiBzZnRwX21rZGlyX25v
bmJsb2NrIHNmdHBfbWtkaXJfbm9uYmxvY2sKIHJtIC1mIHNmdHBfUldfbm9uYmxvY2sgc2Z0cF9S
V19ub25ibG9jawogcm0gLWYgc2Z0cGRpciBzZnRwZGlyCiBybSAtZiBzZnRwZGlyX25vbmJsb2Nr
IHNmdHBkaXJfbm9uYmxvY2sKIHJtIC1mIHNzaDJfZXhlYyBzc2gyX2V4ZWMKIHJtIC1mIHNzaDJf
YWdlbnQgc3NoMl9hZ2VudApybSAtZiAqLm8Kcm0gLWYgKi5sbwptYWtlWzFdOiBMZWF2aW5nIGRp
cmVjdG9yeSBgL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL2xpYnNzaDItMS4yLjYvZXhhbXBs
ZScKTWFraW5nIGNsZWFuIGluIHNyYwptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9leHBv
cnQvaG9tZS91c2Vycy9zYW1idWlsZC9saWJzc2gyLTEuMi42L3NyYycKdGVzdCAteiAibGlic3No
Mi5sYSIgfHwgcm0gLWYgbGlic3NoMi5sYQpybSAtZiAiLi9zb19sb2NhdGlvbnMiCnJtIC1yZiAu
bGlicyBfbGlicwpybSAtZiAqLm8Kcm0gLWYgKi5sbwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9y
eSBgL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL2xpYnNzaDItMS4yLjYvc3JjJwpNYWtpbmcg
Y2xlYW4gaW4gLgptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9leHBvcnQvaG9tZS91c2Vy
cy9zYW1idWlsZC9saWJzc2gyLTEuMi42JwpybSAtcmYgLmxpYnMgX2xpYnMKcm0gLWYgKi5sbwpt
YWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL2xp
YnNzaDItMS4yLjYnCk1ha2luZyBhbGwgaW4gc3JjCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9y
eSBgL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL2xpYnNzaDItMS4yLjYvc3JjJwptYWtlICBh
bGwtYW0KbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvZXhwb3J0L2hvbWUvdXNlcnMvc2Ft
YnVpbGQvbGlic3NoMi0xLjIuNi9zcmMnCnNvdXJjZT0nY2hhbm5lbC5jJyBvYmplY3Q9J2NoYW5u
ZWwubG8nIGxpYnRvb2w9eWVzIFwKREVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmluL2Jhc2gg
Li4vZGVwY29tcCBcCi9iaW4vYmFzaCAuLi9saWJ0b29sIC0tdGFnPUNDIC0tbW9kZT1jb21waWxl
IENDIC1ESEFWRV9DT05GSUdfSCAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9t
ZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAgLWcgLWMgLW8gY2hhbm5lbC5sbyBjaGFubmVs
LmMKbGlidG9vbDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUku
Li9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMgY2hh
bm5lbC5jICAtS1BJQyAtRFBJQyAtbyAubGlicy9jaGFubmVsLm8KbGlidG9vbDogY29tcGlsZTog
IENDIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUv
dXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMgY2hhbm5lbC5jIC1vIGNoYW5uZWwubyA+
L2Rldi9udWxsIDI+JjEKc291cmNlPSdjb21wLmMnIG9iamVjdD0nY29tcC5sbycgbGlidG9vbD15
ZXMgXApERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jp
bi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJ
R19IICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxk
L3NzbC9pbmNsdWRlICAtZyAtYyAtbyBjb21wLmxvIGNvbXAuYwpsaWJ0b29sOiBjb21waWxlOiAg
Q0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91
c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyBjb21wLmMgIC1LUElDIC1EUElDIC1vIC5s
aWJzL2NvbXAubwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5j
bHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAt
ZyAtYyBjb21wLmMgLW8gY29tcC5vID4vZGV2L251bGwgMj4mMQpzb3VyY2U9J2NyeXB0LmMnIG9i
amVjdD0nY3J5cHQubG8nIGxpYnRvb2w9eWVzIFwKREVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAv
YmluL2Jhc2ggLi4vZGVwY29tcCBcCi9iaW4vYmFzaCAuLi9saWJ0b29sIC0tdGFnPUNDIC0tbW9k
ZT1jb21waWxlIENDIC1ESEFWRV9DT05GSUdfSCAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9l
eHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAgLWcgLWMgLW8gY3J5cHQubG8g
Y3J5cHQuYwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVk
ZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAt
YyBjcnlwdC5jICAtS1BJQyAtRFBJQyAtbyAubGlicy9jcnlwdC5vCmxpYnRvb2w6IGNvbXBpbGU6
ICBDQyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21l
L3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIGNyeXB0LmMgLW8gY3J5cHQubyA+L2Rl
di9udWxsIDI+JjEKc291cmNlPSdob3N0a2V5LmMnIG9iamVjdD0naG9zdGtleS5sbycgbGlidG9v
bD15ZXMgXApERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwK
L2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NP
TkZJR19IICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1
aWxkL3NzbC9pbmNsdWRlICAtZyAtYyAtbyBob3N0a2V5LmxvIGhvc3RrZXkuYwpsaWJ0b29sOiBj
b21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBv
cnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyBob3N0a2V5LmMgIC1LUElD
IC1EUElDIC1vIC5saWJzL2hvc3RrZXkubwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NP
TkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWls
ZC9zc2wvaW5jbHVkZSAtZyAtYyBob3N0a2V5LmMgLW8gaG9zdGtleS5vID4vZGV2L251bGwgMj4m
MQpzb3VyY2U9J2tleC5jJyBvYmplY3Q9J2tleC5sbycgbGlidG9vbD15ZXMgXApERVBESVI9LmRl
cHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jpbi9iYXNoIC4uL2xpYnRv
b2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJR19IICAgLUkuLi9pbmNs
dWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlICAt
ZyAtYyAtbyBrZXgubG8ga2V4LmMKbGlidG9vbDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdf
SCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3Ns
L2luY2x1ZGUgLWcgLWMga2V4LmMgIC1LUElDIC1EUElDIC1vIC5saWJzL2tleC5vCmxpYnRvb2w6
IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4
cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIGtleC5jIC1vIGtleC5v
ID4vZGV2L251bGwgMj4mMQpzb3VyY2U9J21hYy5jJyBvYmplY3Q9J21hYy5sbycgbGlidG9vbD15
ZXMgXApERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jp
bi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJ
R19IICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxk
L3NzbC9pbmNsdWRlICAtZyAtYyAtbyBtYWMubG8gbWFjLmMKbGlidG9vbDogY29tcGlsZTogIEND
IC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNl
cnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMgbWFjLmMgIC1LUElDIC1EUElDIC1vIC5saWJz
L21hYy5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRl
IC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1j
IG1hYy5jIC1vIG1hYy5vID4vZGV2L251bGwgMj4mMQpzb3VyY2U9J21pc2MuYycgb2JqZWN0PSdt
aXNjLmxvJyBsaWJ0b29sPXllcyBcCkRFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUgL2Jpbi9iYXNo
IC4uL2RlcGNvbXAgXAovYmluL2Jhc2ggLi4vbGlidG9vbCAtLXRhZz1DQyAtLW1vZGU9Y29tcGls
ZSBDQyAtREhBVkVfQ09ORklHX0ggICAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hv
bWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgIC1nIC1jIC1vIG1pc2MubG8gbWlzYy5jCmxp
YnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3Jj
IC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIG1pc2MuYyAg
LUtQSUMgLURQSUMgLW8gLmxpYnMvbWlzYy5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVf
Q09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1
aWxkL3NzbC9pbmNsdWRlIC1nIC1jIG1pc2MuYyAtbyBtaXNjLm8gPi9kZXYvbnVsbCAyPiYxCnNv
dXJjZT0ncGFja2V0LmMnIG9iamVjdD0ncGFja2V0LmxvJyBsaWJ0b29sPXllcyBcCkRFUERJUj0u
ZGVwcyBkZXBtb2RlPW5vbmUgL2Jpbi9iYXNoIC4uL2RlcGNvbXAgXAovYmluL2Jhc2ggLi4vbGli
dG9vbCAtLXRhZz1DQyAtLW1vZGU9Y29tcGlsZSBDQyAtREhBVkVfQ09ORklHX0ggICAtSS4uL2lu
Y2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUg
IC1nIC1jIC1vIHBhY2tldC5sbyBwYWNrZXQuYwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZF
X0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1i
dWlsZC9zc2wvaW5jbHVkZSAtZyAtYyBwYWNrZXQuYyAgLUtQSUMgLURQSUMgLW8gLmxpYnMvcGFj
a2V0Lm8KbGlidG9vbDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUg
LUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMg
cGFja2V0LmMgLW8gcGFja2V0Lm8gPi9kZXYvbnVsbCAyPiYxCnNvdXJjZT0ncHVibGlja2V5LmMn
IG9iamVjdD0ncHVibGlja2V5LmxvJyBsaWJ0b29sPXllcyBcCkRFUERJUj0uZGVwcyBkZXBtb2Rl
PW5vbmUgL2Jpbi9iYXNoIC4uL2RlcGNvbXAgXAovYmluL2Jhc2ggLi4vbGlidG9vbCAtLXRhZz1D
QyAtLW1vZGU9Y29tcGlsZSBDQyAtREhBVkVfQ09ORklHX0ggICAtSS4uL2luY2x1ZGUgLUkuLi9z
cmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgIC1nIC1jIC1vIHB1
YmxpY2tleS5sbyBwdWJsaWNrZXkuYwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJ
R19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9z
c2wvaW5jbHVkZSAtZyAtYyBwdWJsaWNrZXkuYyAgLUtQSUMgLURQSUMgLW8gLmxpYnMvcHVibGlj
a2V5Lm8KbGlidG9vbDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUg
LUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMg
cHVibGlja2V5LmMgLW8gcHVibGlja2V5Lm8gPi9kZXYvbnVsbCAyPiYxCnNvdXJjZT0nc2NwLmMn
IG9iamVjdD0nc2NwLmxvJyBsaWJ0b29sPXllcyBcCkRFUERJUj0uZGVwcyBkZXBtb2RlPW5vbmUg
L2Jpbi9iYXNoIC4uL2RlcGNvbXAgXAovYmluL2Jhc2ggLi4vbGlidG9vbCAtLXRhZz1DQyAtLW1v
ZGU9Y29tcGlsZSBDQyAtREhBVkVfQ09ORklHX0ggICAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkv
ZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgIC1nIC1jIC1vIHNjcC5sbyBz
Y3AuYwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAt
SS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyBz
Y3AuYyAgLUtQSUMgLURQSUMgLW8gLmxpYnMvc2NwLm8KbGlidG9vbDogY29tcGlsZTogIENDIC1E
SEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMv
c2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMgc2NwLmMgLW8gc2NwLm8gPi9kZXYvbnVsbCAyPiYx
CnNvdXJjZT0nc2Vzc2lvbi5jJyBvYmplY3Q9J3Nlc3Npb24ubG8nIGxpYnRvb2w9eWVzIFwKREVQ
RElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmluL2Jhc2ggLi4vZGVwY29tcCBcCi9iaW4vYmFzaCAu
Li9saWJ0b29sIC0tdGFnPUNDIC0tbW9kZT1jb21waWxlIENDIC1ESEFWRV9DT05GSUdfSCAgIC1J
Li4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5j
bHVkZSAgLWcgLWMgLW8gc2Vzc2lvbi5sbyBzZXNzaW9uLmMKbGlidG9vbDogY29tcGlsZTogIEND
IC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNl
cnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMgc2Vzc2lvbi5jICAtS1BJQyAtRFBJQyAtbyAu
bGlicy9zZXNzaW9uLm8KbGlidG9vbDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdfSCAtSS4u
L2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1
ZGUgLWcgLWMgc2Vzc2lvbi5jIC1vIHNlc3Npb24ubyA+L2Rldi9udWxsIDI+JjEKc291cmNlPSdz
ZnRwLmMnIG9iamVjdD0nc2Z0cC5sbycgbGlidG9vbD15ZXMgXApERVBESVI9LmRlcHMgZGVwbW9k
ZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9
Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJR19IICAgLUkuLi9pbmNsdWRlIC1JLi4v
c3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlICAtZyAtYyAtbyBz
ZnRwLmxvIHNmdHAuYwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4v
aW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVk
ZSAtZyAtYyBzZnRwLmMgIC1LUElDIC1EUElDIC1vIC5saWJzL3NmdHAubwpsaWJ0b29sOiBjb21w
aWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQv
aG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyBzZnRwLmMgLW8gc2Z0cC5vID4v
ZGV2L251bGwgMj4mMQpzb3VyY2U9J3VzZXJhdXRoLmMnIG9iamVjdD0ndXNlcmF1dGgubG8nIGxp
YnRvb2w9eWVzIFwKREVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmluL2Jhc2ggLi4vZGVwY29t
cCBcCi9iaW4vYmFzaCAuLi9saWJ0b29sIC0tdGFnPUNDIC0tbW9kZT1jb21waWxlIENDIC1ESEFW
RV9DT05GSUdfSCAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9z
YW1idWlsZC9zc2wvaW5jbHVkZSAgLWcgLWMgLW8gdXNlcmF1dGgubG8gdXNlcmF1dGguYwpsaWJ0
b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAt
SS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyB1c2VyYXV0aC5j
ICAtS1BJQyAtRFBJQyAtbyAubGlicy91c2VyYXV0aC5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAt
REhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJz
L3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIHVzZXJhdXRoLmMgLW8gdXNlcmF1dGgubyA+L2Rl
di9udWxsIDI+JjEKc291cmNlPSd0cmFuc3BvcnQuYycgb2JqZWN0PSd0cmFuc3BvcnQubG8nIGxp
YnRvb2w9eWVzIFwKREVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmluL2Jhc2ggLi4vZGVwY29t
cCBcCi9iaW4vYmFzaCAuLi9saWJ0b29sIC0tdGFnPUNDIC0tbW9kZT1jb21waWxlIENDIC1ESEFW
RV9DT05GSUdfSCAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9z
YW1idWlsZC9zc2wvaW5jbHVkZSAgLWcgLWMgLW8gdHJhbnNwb3J0LmxvIHRyYW5zcG9ydC5jCmxp
YnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3Jj
IC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIHRyYW5zcG9y
dC5jICAtS1BJQyAtRFBJQyAtbyAubGlicy90cmFuc3BvcnQubwpsaWJ0b29sOiBjb21waWxlOiAg
Q0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91
c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyB0cmFuc3BvcnQuYyAtbyB0cmFuc3BvcnQu
byA+L2Rldi9udWxsIDI+JjEKc291cmNlPSd2ZXJzaW9uLmMnIG9iamVjdD0ndmVyc2lvbi5sbycg
bGlidG9vbD15ZXMgXApERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBj
b21wIFwKL2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURI
QVZFX0NPTkZJR19IICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJz
L3NhbWJ1aWxkL3NzbC9pbmNsdWRlICAtZyAtYyAtbyB2ZXJzaW9uLmxvIHZlcnNpb24uYwpsaWJ0
b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAt
SS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyB2ZXJzaW9uLmMg
IC1LUElDIC1EUElDIC1vIC5saWJzL3ZlcnNpb24ubwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURI
QVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9z
YW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyB2ZXJzaW9uLmMgLW8gdmVyc2lvbi5vID4vZGV2L251
bGwgMj4mMQpzb3VyY2U9J2tub3duaG9zdC5jJyBvYmplY3Q9J2tub3duaG9zdC5sbycgbGlidG9v
bD15ZXMgXApERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwK
L2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NP
TkZJR19IICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1
aWxkL3NzbC9pbmNsdWRlICAtZyAtYyAtbyBrbm93bmhvc3QubG8ga25vd25ob3N0LmMKbGlidG9v
bDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkv
ZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMga25vd25ob3N0LmMg
IC1LUElDIC1EUElDIC1vIC5saWJzL2tub3duaG9zdC5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAt
REhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJz
L3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIGtub3duaG9zdC5jIC1vIGtub3duaG9zdC5vID4v
ZGV2L251bGwgMj4mMQpzb3VyY2U9J2FnZW50LmMnIG9iamVjdD0nYWdlbnQubG8nIGxpYnRvb2w9
eWVzIFwKREVQRElSPS5kZXBzIGRlcG1vZGU9bm9uZSAvYmluL2Jhc2ggLi4vZGVwY29tcCBcCi9i
aW4vYmFzaCAuLi9saWJ0b29sIC0tdGFnPUNDIC0tbW9kZT1jb21waWxlIENDIC1ESEFWRV9DT05G
SUdfSCAgIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWls
ZC9zc2wvaW5jbHVkZSAgLWcgLWMgLW8gYWdlbnQubG8gYWdlbnQuYwpsaWJ0b29sOiBjb21waWxl
OiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9t
ZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyBhZ2VudC5jICAtS1BJQyAtRFBJQyAt
byAubGlicy9hZ2VudC5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09ORklHX0ggLUku
Li9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNs
dWRlIC1nIC1jIGFnZW50LmMgLW8gYWdlbnQubyA+L2Rldi9udWxsIDI+JjEKc291cmNlPSdvcGVu
c3NsLmMnIG9iamVjdD0nb3BlbnNzbC5sbycgbGlidG9vbD15ZXMgXApERVBESVI9LmRlcHMgZGVw
bW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10
YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJR19IICAgLUkuLi9pbmNsdWRlIC1J
Li4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlICAtZyAtYyAt
byBvcGVuc3NsLmxvIG9wZW5zc2wuYwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJ
R19IIC1JLi4vaW5jbHVkZSAtSS4uL3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9z
c2wvaW5jbHVkZSAtZyAtYyBvcGVuc3NsLmMgIC1LUElDIC1EUElDIC1vIC5saWJzL29wZW5zc2wu
bwpsaWJ0b29sOiBjb21waWxlOiAgQ0MgLURIQVZFX0NPTkZJR19IIC1JLi4vaW5jbHVkZSAtSS4u
L3NyYyAtSS9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9zc2wvaW5jbHVkZSAtZyAtYyBvcGVu
c3NsLmMgLW8gb3BlbnNzbC5vID4vZGV2L251bGwgMj4mMQpzb3VyY2U9J2xpYmdjcnlwdC5jJyBv
YmplY3Q9J2xpYmdjcnlwdC5sbycgbGlidG9vbD15ZXMgXApERVBESVI9LmRlcHMgZGVwbW9kZT1u
b25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9Q0Mg
LS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJR19IICAgLUkuLi9pbmNsdWRlIC1JLi4vc3Jj
IC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlICAtZyAtYyAtbyBsaWJn
Y3J5cHQubG8gbGliZ2NyeXB0LmMKbGlidG9vbDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdf
SCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3Ns
L2luY2x1ZGUgLWcgLWMgbGliZ2NyeXB0LmMgIC1LUElDIC1EUElDIC1vIC5saWJzL2xpYmdjcnlw
dC5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1J
Li4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIGxp
YmdjcnlwdC5jIC1vIGxpYmdjcnlwdC5vID4vZGV2L251bGwgMj4mMQpzb3VyY2U9J3BlbS5jJyBv
YmplY3Q9J3BlbS5sbycgbGlidG9vbD15ZXMgXApERVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9i
aW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2Rl
PWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJR19IICAgLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4
cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRlICAtZyAtYyAtbyBwZW0ubG8gcGVt
LmMKbGlidG9vbDogY29tcGlsZTogIENDIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUku
Li9zcmMgLUkvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMgcGVt
LmMgIC1LUElDIC1EUElDIC1vIC5saWJzL3BlbS5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAtREhB
VkVfQ09ORklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3Nh
bWJ1aWxkL3NzbC9pbmNsdWRlIC1nIC1jIHBlbS5jIC1vIHBlbS5vID4vZGV2L251bGwgMj4mMQpz
b3VyY2U9J2tlZXBhbGl2ZS5jJyBvYmplY3Q9J2tlZXBhbGl2ZS5sbycgbGlidG9vbD15ZXMgXApE
RVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jpbi9iYXNo
IC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJR19IICAg
LUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9p
bmNsdWRlICAtZyAtYyAtbyBrZWVwYWxpdmUubG8ga2VlcGFsaXZlLmMKbGlidG9vbDogY29tcGls
ZTogIENDIC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hv
bWUvdXNlcnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMga2VlcGFsaXZlLmMgIC1LUElDIC1E
UElDIC1vIC5saWJzL2tlZXBhbGl2ZS5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09O
RklHX0ggLUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxk
L3NzbC9pbmNsdWRlIC1nIC1jIGtlZXBhbGl2ZS5jIC1vIGtlZXBhbGl2ZS5vID4vZGV2L251bGwg
Mj4mMQpzb3VyY2U9J2dsb2JhbC5jJyBvYmplY3Q9J2dsb2JhbC5sbycgbGlidG9vbD15ZXMgXApE
RVBESVI9LmRlcHMgZGVwbW9kZT1ub25lIC9iaW4vYmFzaCAuLi9kZXBjb21wIFwKL2Jpbi9iYXNo
IC4uL2xpYnRvb2wgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgQ0MgLURIQVZFX0NPTkZJR19IICAg
LUkuLi9pbmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9p
bmNsdWRlICAtZyAtYyAtbyBnbG9iYWwubG8gZ2xvYmFsLmMKbGlidG9vbDogY29tcGlsZTogIEND
IC1ESEFWRV9DT05GSUdfSCAtSS4uL2luY2x1ZGUgLUkuLi9zcmMgLUkvZXhwb3J0L2hvbWUvdXNl
cnMvc2FtYnVpbGQvc3NsL2luY2x1ZGUgLWcgLWMgZ2xvYmFsLmMgIC1LUElDIC1EUElDIC1vIC5s
aWJzL2dsb2JhbC5vCmxpYnRvb2w6IGNvbXBpbGU6ICBDQyAtREhBVkVfQ09ORklHX0ggLUkuLi9p
bmNsdWRlIC1JLi4vc3JjIC1JL2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9pbmNsdWRl
IC1nIC1jIGdsb2JhbC5jIC1vIGdsb2JhbC5vID4vZGV2L251bGwgMj4mMQovYmluL2Jhc2ggLi4v
bGlidG9vbCAtLXRhZz1DQyAtLW1vZGU9bGluayBDQyAgLWcgIC1sZGwgLW8gbGlic3NoMi5sYSAt
cnBhdGggL2V4cG9ydC9ob21lL3NhbWJ1aWxkL0NVUkxfU1NIMi9zc2gyL2xpYiAtdmVyc2lvbi1p
bmZvIDE6MTowIC1uby11bmRlZmluZWQgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4ICdebGlic3NoMl8u
KicgIC1ML2V4cG9ydC9ob21lL3VzZXJzL3NhbWJ1aWxkL3NzbC9saWIgLWxzc2wgLUwvZXhwb3J0
L2hvbWUvdXNlcnMvc2FtYnVpbGQvc3NsL2xpYiAtbGNyeXB0byAtbHogY2hhbm5lbC5sbyBjb21w
LmxvIGNyeXB0LmxvIGhvc3RrZXkubG8ga2V4LmxvIG1hYy5sbyBtaXNjLmxvIHBhY2tldC5sbyBw
dWJsaWNrZXkubG8gc2NwLmxvIHNlc3Npb24ubG8gc2Z0cC5sbyB1c2VyYXV0aC5sbyB0cmFuc3Bv
cnQubG8gdmVyc2lvbi5sbyBrbm93bmhvc3QubG8gYWdlbnQubG8gb3BlbnNzbC5sbyBsaWJnY3J5
cHQubG8gcGVtLmxvIGtlZXBhbGl2ZS5sbyBnbG9iYWwubG8gICAtbG5zbCAtbHNvY2tldCAKbGli
dG9vbDogbGluazogL3Vzci9jY3MvYmluL25tIC1wICAubGlicy9jaGFubmVsLm8gLmxpYnMvY29t
cC5vIC5saWJzL2NyeXB0Lm8gLmxpYnMvaG9zdGtleS5vIC5saWJzL2tleC5vIC5saWJzL21hYy5v
IC5saWJzL21pc2MubyAubGlicy9wYWNrZXQubyAubGlicy9wdWJsaWNrZXkubyAubGlicy9zY3Au
byAubGlicy9zZXNzaW9uLm8gLmxpYnMvc2Z0cC5vIC5saWJzL3VzZXJhdXRoLm8gLmxpYnMvdHJh
bnNwb3J0Lm8gLmxpYnMvdmVyc2lvbi5vIC5saWJzL2tub3duaG9zdC5vIC5saWJzL2FnZW50Lm8g
LmxpYnMvb3BlbnNzbC5vIC5saWJzL2xpYmdjcnlwdC5vIC5saWJzL3BlbS5vIC5saWJzL2tlZXBh
bGl2ZS5vIC5saWJzL2dsb2JhbC5vICAgfCBzZWQgLW4gLWUgJ3MvXi4qWwkgXVwoW0JEUlRdW0JE
UlRdKlwpWwkgXVsJIF0qXChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCkkL1wxIFwyIFwyL3AnIHwg
L3Vzci9iaW4vc2VkICdzLy4qIC8vJyB8IHNvcnQgfCB1bmlxID4gLmxpYnMvbGlic3NoMi5leHAK
bGlidG9vbDogbGluazogL3Vzci94cGc0L2Jpbi9ncmVwIC1FIC1lICJebGlic3NoMl8uKiIgIi5s
aWJzL2xpYnNzaDIuZXhwIiA+ICIubGlicy9saWJzc2gyLmV4cFQiCmxpYnRvb2w6IGxpbms6IG12
IC1mICIubGlicy9saWJzc2gyLmV4cFQiICIubGlicy9saWJzc2gyLmV4cCIKbGlidG9vbDogbGlu
azogZWNobyAieyBnbG9iYWw6IiA+IC5saWJzL2xpYnNzaDIuc28uMS4wLjEuZXhwCmxpYnRvb2w6
IGxpbms6IGNhdCAubGlicy9saWJzc2gyLmV4cCB8IC91c3IvYmluL3NlZCAtZSAicy9cKC4qXCkv
XDE7LyIgPj4gLmxpYnMvbGlic3NoMi5zby4xLjAuMS5leHAKbGlidG9vbDogbGluazogZWNobyAi
bG9jYWw6ICo7IH07IiA+PiAubGlicy9saWJzc2gyLnNvLjEuMC4xLmV4cApsaWJ0b29sOiBsaW5r
OiAgQ0MgLUcgLXogZGVmcyAtTSAubGlicy9saWJzc2gyLnNvLjEuMC4xLmV4cCAtaCBsaWJzc2gy
LnNvLjEgLW8gLmxpYnMvbGlic3NoMi5zby4xLjAuMSAgLmxpYnMvY2hhbm5lbC5vIC5saWJzL2Nv
bXAubyAubGlicy9jcnlwdC5vIC5saWJzL2hvc3RrZXkubyAubGlicy9rZXgubyAubGlicy9tYWMu
byAubGlicy9taXNjLm8gLmxpYnMvcGFja2V0Lm8gLmxpYnMvcHVibGlja2V5Lm8gLmxpYnMvc2Nw
Lm8gLmxpYnMvc2Vzc2lvbi5vIC5saWJzL3NmdHAubyAubGlicy91c2VyYXV0aC5vIC5saWJzL3Ry
YW5zcG9ydC5vIC5saWJzL3ZlcnNpb24ubyAubGlicy9rbm93bmhvc3QubyAubGlicy9hZ2VudC5v
IC5saWJzL29wZW5zc2wubyAubGlicy9saWJnY3J5cHQubyAubGlicy9wZW0ubyAubGlicy9rZWVw
YWxpdmUubyAubGlicy9nbG9iYWwubyAgIC1sZGwgLUwvZXhwb3J0L2hvbWUvdXNlcnMvc2FtYnVp
bGQvc3NsL2xpYiAtbHNzbCAtbGNyeXB0byAtbHogLWxuc2wgLWxzb2NrZXQgLWxjICAgCmxpYnRv
b2w6IGxpbms6IHJtIC1mIC5saWJzL2xpYnNzaDIuc28uMS4wLjEuZXhwCmxpYnRvb2w6IGxpbms6
IChjZCAiLmxpYnMiICYmIHJtIC1mICJsaWJzc2gyLnNvLjEiICYmIGxuIC1zICJsaWJzc2gyLnNv
LjEuMC4xIiAibGlic3NoMi5zby4xIikKbGlidG9vbDogbGluazogKGNkICIubGlicyIgJiYgcm0g
LWYgImxpYnNzaDIuc28iICYmIGxuIC1zICJsaWJzc2gyLnNvLjEuMC4xIiAibGlic3NoMi5zbyIp
CmxpYnRvb2w6IGxpbms6IGZhbHNlIGNydSAubGlicy9saWJzc2gyLmEgIGNoYW5uZWwubyBjb21w
Lm8gY3J5cHQubyBob3N0a2V5Lm8ga2V4Lm8gbWFjLm8gbWlzYy5vIHBhY2tldC5vIHB1YmxpY2tl
eS5vIHNjcC5vIHNlc3Npb24ubyBzZnRwLm8gdXNlcmF1dGgubyB0cmFuc3BvcnQubyB2ZXJzaW9u
Lm8ga25vd25ob3N0Lm8gYWdlbnQubyBvcGVuc3NsLm8gbGliZ2NyeXB0Lm8gcGVtLm8ga2VlcGFs
aXZlLm8gZ2xvYmFsLm8KbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgYC9leHBvcnQvaG9tZS91
c2Vycy9zYW1idWlsZC9saWJzc2gyLTEuMi42L3NyYycKbWFrZVsxXTogTGVhdmluZyBkaXJlY3Rv
cnkgYC9leHBvcnQvaG9tZS91c2Vycy9zYW1idWlsZC9saWJzc2gyLTEuMi42L3NyYycK

------_=_NextPart_001_01CB2A93.035D7744
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_001_01CB2A93.035D7744--

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 20:56:19 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NIu9Qi025428;
	Fri, 23 Jul 2010 20:56:17 +0200
Received: from ponderosa.fch.wimsey.bc.ca (zz20920564179.cipherkey.net
	[209.205.64.179])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NIu7qm025407
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 20:56:08 +0200
Received: by coneharvesters.com
	via sendmail with stdio id <m1OcNPd-000l6IC@ponderosa.fch.wimsey.bc.ca>
	for libssh2-devel@cool.haxx.se; Fri, 23 Jul 2010 11:56:01 -0700 (PDT)
Date: Fri, 23 Jul 2010 11:56:00 -0700
From: Dan Fandrich <dan@coneharvesters.com>
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9
Message-ID: <20100723185559.GB24358@coneharvesters.com>
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
	<20100723165328.15459.qmail@stuge.se>
	<CEEBAFBE84E8AC48BEFC5134D0ABF6C5EFE354@OTWLMX06.opentext.net>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5EFE354@OTWLMX06.opentext.net>
User-Agent: Mutt/1.5.19 (2009-01-05)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 20:56:19 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 20:56:08 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Fri, Jul 23, 2010 at 02:13:58PM -0400, Alona Rossen wrote:
> configure:6782: checking for ar
> configure:6812: result: no

>>> Dan
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 20:57:52 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NIvp1w025930;
	Fri, 23 Jul 2010 20:57:52 +0200
Received: from opentext.com (smtpout.opentext.com [204.138.115.203])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NIvmeE025887
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 20:57:49 +0200
Received: from otwlpm02.smtp.dmz.opentext.com (otwlpm02.smtp.dmz.opentext.com
	[192.168.15.231])
	by opentext.com (8.12.8/8.12.8) with ESMTP id o6NIveS9015514
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:57:40 -0400
Received: from vectorsvc.wl.opentext.com (ava.wl.opentext.com [172.21.5.96])
	by otwlpm02.smtp.dmz.opentext.com (8.14.4/8.14.4) with ESMTP id
	o6NIvdvI007381
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:57:40 -0400
	(envelope-from arossen@opentext.com)
Received: from OTWLMX06.opentext.net (otwlxg04.wl.opentext.com [10.2.102.26])
	by vectorsvc.wl.opentext.com (8.12.8/8.12.8) with ESMTP id
	o6NIvdqt015511
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:57:39 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: RE: linking static lib fails on Solaris9
Date: Fri, 23 Jul 2010 14:56:17 -0400
Message-ID: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5EFE370@OTWLMX06.opentext.net>
In-Reply-To: <20100723175952.GA23719@coneharvesters.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: linking static lib fails on Solaris9
Thread-Index: AcsqkScwlzwoy0tSSdaRbuYtf4VYVAAB4pzw
References: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net>
	<20100723175952.GA23719@coneharvesters.com>
From: "Alona Rossen" <arossen@opentext.com>
To: "libssh2 development" <libssh2-devel@cool.haxx.se>
X-Archived: msg.2MSJZxb:2010-07-23:otwlpm02.smtp.dmz.opentext.com
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 20:57:52 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 20:57:50 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

I have resolved the problem. Thank you for your input.

-----Original Message-----
From: libssh2-devel-bounces@cool.haxx.se
[mailto:libssh2-devel-bounces@cool.haxx.se] On Behalf Of Dan Fandrich
Sent: July 23, 2010 2:00 PM
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9

On Fri, Jul 23, 2010 at 11:29:28AM -0400, Alona Rossen wrote:
> I receive the following error when I try to build static lib on
Solaris9 with
> Sun C++ 5.5 2003/03/12:
> 
> libtool: link: false cru .libs/libssh2.a??

It looks like configure or libtool is using the program 'false' to
create
static archives instead of 'ar'. Clearly, there is an issue with its
static
library support. Do you have 'ar' installed?

>>> Dan
_______________________________________________
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  Fri Jul 23 20:59:07 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NIx4Nh026453;
	Fri, 23 Jul 2010 20:59:06 +0200
Received: from opentext.com (smtpout.opentext.com [204.138.115.203])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NIx2md026335
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 20:59:02 +0200
Received: from otwlpm01.smtp.dmz.opentext.com (otwlpm01.smtp.dmz.opentext.com
	[192.168.15.230])
	by opentext.com (8.12.8/8.12.8) with ESMTP id o6NIwrS9016184
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:58:53 -0400
Received: from vectorsvc.wl.opentext.com (ava.wl.opentext.com [172.21.5.96])
	by otwlpm01.smtp.dmz.opentext.com (8.14.4/8.14.4) with ESMTP id
	o6NIwr69026575
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:58:53 -0400
	(envelope-from arossen@opentext.com)
Received: from OTWLMX06.opentext.net (otwlxg04.wl.opentext.com [10.2.102.26])
	by vectorsvc.wl.opentext.com (8.12.8/8.12.8) with ESMTP id
	o6NIwrqt016166
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 14:58:53 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: RE: linking static lib fails on Solaris9
Date: Fri, 23 Jul 2010 14:58:52 -0400
Message-ID: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969FB@OTWLMX06.opentext.net>
In-Reply-To: <20100723185559.GB24358@coneharvesters.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: linking static lib fails on Solaris9
Thread-Index: AcsqmPbZI5NCNr0hS7KDjRpgSvz1QAAAAwsA
References: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969F8@OTWLMX06.opentext.net><20100723165328.15459.qmail@stuge.se><CEEBAFBE84E8AC48BEFC5134D0ABF6C5EFE354@OTWLMX06.opentext.net>
	<20100723185559.GB24358@coneharvesters.com>
From: "Alona Rossen" <arossen@opentext.com>
To: "libssh2 development" <libssh2-devel@cool.haxx.se>
X-Archived: msg.161CQj0:2010-07-23:otwlpm01.smtp.dmz.opentext.com
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 20:59:07 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 20:59:03 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

You were right - ar was not in the PATH. However, it was not the only
issue.

-----Original Message-----
From: libssh2-devel-bounces@cool.haxx.se
[mailto:libssh2-devel-bounces@cool.haxx.se] On Behalf Of Dan Fandrich
Sent: Friday, July 23, 2010 2:56 PM
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9

On Fri, Jul 23, 2010 at 02:13:58PM -0400, Alona Rossen wrote:
> configure:6782: checking for ar
> configure:6812: result: no

>>> Dan
_______________________________________________
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  Fri Jul 23 21:09:51 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NJ9cpd003638;
	Fri, 23 Jul 2010 21:09:48 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6NJ9aMk003625
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 21:09:36 +0200
Received: (qmail 6557 invoked by uid 501); 23 Jul 2010 19:09:33 -0000
Message-ID: <20100723190933.6556.qmail@stuge.se>
Date: Fri, 23 Jul 2010 21:09:33 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <20100723185559.GB24358@coneharvesters.com>
	<CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969FB@OTWLMX06.opentext.net>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969FB@OTWLMX06.opentext.net>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 21:09:51 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 21:09:36 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Alona Rossen wrote:
> You were right - ar was not in the PATH. However, it was not the
> only issue.

Would you mind sharing what other issues there were, so that libssh2
can be improved?


> > configure:6782: checking for ar
> > configure:6812: result: no

I think this should make configure fail, or at least not try to build
a static library. It seems like something that autoconf should
already deal with - does anyone know why it didn't trigger an error?


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 21:12:25 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NJCNGD005429;
	Fri, 23 Jul 2010 21:12:25 +0200
Received: from opentext.com (smtpout.opentext.com [204.138.115.203])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NJCKHE005417
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 21:12:22 +0200
Received: from otwlpm01.smtp.dmz.opentext.com (otwlpm01.smtp.dmz.opentext.com
	[192.168.15.230])
	by opentext.com (8.12.8/8.12.8) with ESMTP id o6NJCCS9024651
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 15:12:12 -0400
Received: from vectorsvc.wl.opentext.com (ava.wl.opentext.com [172.21.5.96])
	by otwlpm01.smtp.dmz.opentext.com (8.14.4/8.14.4) with ESMTP id
	o6NJCBM3016108
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 15:12:11 -0400
	(envelope-from arossen@opentext.com)
Received: from OTWLMX06.opentext.net (otwlxg04.wl.opentext.com [10.2.102.26])
	by vectorsvc.wl.opentext.com (8.12.8/8.12.8) with ESMTP id
	o6NJCBqt024645
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 15:12:11 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: RE: linking static lib fails on Solaris9
Date: Fri, 23 Jul 2010 15:12:10 -0400
Message-ID: <CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969FC@OTWLMX06.opentext.net>
In-Reply-To: <20100723190933.6556.qmail@stuge.se>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: linking static lib fails on Solaris9
Thread-Index: Acsqms1+thRUoXyCRyKy15C4I8BBYAAAAogQ
References: <20100723185559.GB24358@coneharvesters.com><CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969FB@OTWLMX06.opentext.net>
	<20100723190933.6556.qmail@stuge.se>
From: "Alona Rossen" <arossen@opentext.com>
To: "libssh2 development" <libssh2-devel@cool.haxx.se>
X-Archived: msg.1U533QL:2010-07-23:otwlpm01.smtp.dmz.opentext.com
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 21:12:25 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 21:12:22 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Similar to missing ar, another issue was our env configuration. In
particular, I was trying to build with CC, rather than cc compiler.

-----Original Message-----
From: libssh2-devel-bounces@cool.haxx.se
[mailto:libssh2-devel-bounces@cool.haxx.se] On Behalf Of Peter Stuge
Sent: Friday, July 23, 2010 3:10 PM
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9

Alona Rossen wrote:
> You were right - ar was not in the PATH. However, it was not the
> only issue.

Would you mind sharing what other issues there were, so that libssh2
can be improved?


> > configure:6782: checking for ar
> > configure:6812: result: no

I think this should make configure fail, or at least not try to build
a static library. It seems like something that autoconf should
already deal with - does anyone know why it didn't trigger an error?


//Peter
_______________________________________________
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  Fri Jul 23 21:59:26 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NJxGqI027054;
	Fri, 23 Jul 2010 21:59:25 +0200
Received: from ponderosa.fch.wimsey.bc.ca (zz20920564179.cipherkey.net
	[209.205.64.179])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NJxE4n027044
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 21:59:15 +0200
Received: by coneharvesters.com
	via sendmail with stdio id <m1OcOOh-000l6IC@ponderosa.fch.wimsey.bc.ca>
	for libssh2-devel@cool.haxx.se; Fri, 23 Jul 2010 12:59:07 -0700 (PDT)
Date: Fri, 23 Jul 2010 12:59:07 -0700
From: Dan Fandrich <dan@coneharvesters.com>
To: libssh2-devel@cool.haxx.se
Subject: Re: linking static lib fails on Solaris9
Message-ID: <20100723195906.GA24764@coneharvesters.com>
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <20100723185559.GB24358@coneharvesters.com>
	<CEEBAFBE84E8AC48BEFC5134D0ABF6C5D969FB@OTWLMX06.opentext.net>
	<20100723190933.6556.qmail@stuge.se>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20100723190933.6556.qmail@stuge.se>
User-Agent: Mutt/1.5.19 (2009-01-05)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 21:59:26 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 21:59:15 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Fri, Jul 23, 2010 at 09:09:33PM +0200, Peter Stuge wrote:
> I think this should make configure fail, or at least not try to build
> a static library. It seems like something that autoconf should
> already deal with - does anyone know why it didn't trigger an error?

It did trigger an error, just much later when it tried to create the
static library.  It's probably not trivial to get it completely right
in configure. It's really up to libtool to do the linking, and there
are platforms that don't use or don't need ar to make static libraries.

>>> Dan
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 22:11:00 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NKAmIf004630;
	Fri, 23 Jul 2010 22:10:57 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NKAlG5004622
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 22:10:47 +0200
Received: from [10.1.10.13] (173-162-214-218-NewEngland.hfc.comcastbusiness.net
	[173.162.214.218])
	by toccata.fugue.com (Postfix) with ESMTPSA id 1502534E44EF
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 16:10:55 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Incomplete read of channel 0 data from remote host.
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <5EAD92EA-6170-4EB8-B6DD-CF2F90977FD5@fugue.com>
Date: Fri, 23 Jul 2010 16:10:37 -0400
Message-Id: <D5726BDA-6E75-4712-A51B-C7AE091432FA@fugue.com>
References: <A5033882-180E-4799-B6CF-3FC8BD4B7C35@fugue.com>
	<20100723135801.17662.qmail@stuge.se>
	<A6A97C76-81B1-466D-AB75-59B2EBF2D21C@fugue.com>
	<20100723143357.23783.qmail@stuge.se>
	<FA4CE63E-22D6-437C-BC5F-6B464B6A2DDB@fugue.com>
	<20100723170941.18475.qmail@stuge.se>
	<5EAD92EA-6170-4EB8-B6DD-CF2F90977FD5@fugue.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 22:11:00 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 22:10:48 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 23, 2010, at 1:42 PM, Ted Lemon wrote:
> I will take a look at it when I get a chance--I definitely have some ideas for how to improve libssh2, some of which you might like--but for now I will use the larger buffer size to get over this obstacle.

It turns out that my problem was something much lamer than I thought.   I would get a single read available event every time new data came from the server.   But since I wasn't reading all the data, and since the ssh library had read and cached all the data, I would get *some* data, but not the rest.   This became obvious once I got the keyboard working--every time I hit return, I'd get 1024 bytes of output.   :)

So in fact there is no bug in the library--I'm just not as smart as I thought.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 23 23:24:59 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NLOjOK021455;
	Fri, 23 Jul 2010 23:24:57 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NLOh67021435
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 23:24:44 +0200
Received: from [10.1.10.13] (173-162-214-218-NewEngland.hfc.comcastbusiness.net
	[173.162.214.218])
	by toccata.fugue.com (Postfix) with ESMTPSA id 294BA34E46B9
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 17:24:51 -0400 (EDT)
From: Ted Lemon <mellon@fugue.com>
Subject: Updating terminal rows and columns after pty is created...
Date: Fri, 23 Jul 2010 17:24:31 -0400
Message-Id: <56D476EC-2A20-4F3B-8D1F-6071CA510E14@fugue.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (Apple Message framework v1081)
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 23 Jul 2010 23:24:59 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 23 Jul 2010 23:24:44 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

I thought that the ssh protocol allowed you to send new width and height values for the terminal if it was resized, but I don't see anything that does that in the API.   Is that a protocol feature that doesn't have an API yet, or am I just out to lunch?

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 24 00:03:24 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NM3Eeg007703;
	Sat, 24 Jul 2010 00:03:22 +0200
Received: from foo.birdnet.se (qmailr@foo.birdnet.se [213.88.146.6])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6NM3Cqo007689
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 00:03:12 +0200
Received: (qmail 5338 invoked by uid 501); 23 Jul 2010 22:03:08 -0000
Message-ID: <20100723220308.5337.qmail@stuge.se>
Date: Sat, 24 Jul 2010 00:03:08 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Updating terminal rows and columns after pty is created...
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <56D476EC-2A20-4F3B-8D1F-6071CA510E14@fugue.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <56D476EC-2A20-4F3B-8D1F-6071CA510E14@fugue.com>
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 00:03:24 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 00:03:12 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Ted Lemon wrote:
> I thought that the ssh protocol allowed you to send new width and
> height values for the terminal if it was resized,

Yep, the "window-change" channel request.


> but I don't see anything that does that in the API.   Is that a
> protocol feature that doesn't have an API yet,

Yeah. Feel free to suggest a patch!


> or am I just out to lunch?

Good thing I just had dinner, or you would've made me hungry. :)


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 24 00:28:10 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6NMRvYm024323;
	Sat, 24 Jul 2010 00:28:08 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6NMRs7I023897
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 00:27:55 +0200
Received: from [IPv6:2001:1938:206::226:bbff:fe0c:e5bf] (unknown
	[IPv6:2001:1938:206:0:226:bbff:fe0c:e5bf])
	by toccata.fugue.com (Postfix) with ESMTPSA id 6526834E444C
	for <libssh2-devel@cool.haxx.se>; Fri, 23 Jul 2010 18:28:03 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Updating terminal rows and columns after pty is created...
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <20100723220308.5337.qmail@stuge.se>
Date: Fri, 23 Jul 2010 18:27:47 -0400
Message-Id: <98F2FB99-70CC-448C-BFC9-A3D337C2CF10@fugue.com>
References: <56D476EC-2A20-4F3B-8D1F-6071CA510E14@fugue.com>
	<20100723220308.5337.qmail@stuge.se>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 00:28:10 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 00:27:55 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 23, 2010, at 6:03 PM, Peter Stuge wrote:
> Yep, the "window-change" channel request.

Thanks.

>> but I don't see anything that does that in the API.   Is that a
>> protocol feature that doesn't have an API yet,
> 
> Yeah. Feel free to suggest a patch!

I will do that today if I have time--it's kind of crucial on the iPad.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 24 08:53:21 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6O6qtc0011845;
	Sat, 24 Jul 2010 08:53:16 +0200
Received: from oproxy1-pub.bluehost.com (oproxy1-pub.bluehost.com
	[66.147.249.253])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6O6qpZ1011842
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 08:52:53 +0200
Received: (qmail 32585 invoked by uid 0); 24 Jul 2010 05:53:57 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy1.bluehost.com.bluehost.com with SMTP;
	24 Jul 2010 05:53:57 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:From:Content-Type:Content-Transfer-Encoding:Subject:Date:Message-Id:To:Mime-Version:X-Mailer:X-Identified-User;
	b=IBkOL9BdtT8usYsmuuXMlmGJ6qoce29o13LQL6ohl9hd97SgpoH9BQXeVYk2Zw8xd0tiDwFP+eFFqQsvKZy/D89PFCG3sA4QODp3QLVUhR7z81dB00rO0NMZVBifgYqg;
Received: from [122.169.80.132] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OcYbJ-0007tw-Bq
	for libssh2-devel@cool.haxx.se; Sat, 24 Jul 2010 00:52:50 -0600
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
Subject: Using keys for private key
Date: Sat, 24 Jul 2010 12:22:37 +0530
Message-Id: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (Apple Message framework v1078)
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.169.80.132 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 08:53:21 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 08:52:54 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Hi,

Could you please lemme know how to authenticate a user through private key? I'm not understanding my user requests i think.! Our ssh application allows user to be authenticated and fire commands once session and channel is created. I need to open terminal and allow user to input password there on terminal. So, I think user must open terminal without authentication.

My another issue is that user must need to login terminal through private key. So, please lemme know if this it possible because it's critical for us to implement the functionality.

Regards,
Paresh Thakor.
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 24 09:00:23 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6O70Ism015920;
	Sat, 24 Jul 2010 09:00:21 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6O70GN1015879
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 09:00:17 +0200
Received: from [IPv6:2001:1938:206::226:bbff:fe0c:e5bf] (unknown
	[IPv6:2001:1938:206:0:226:bbff:fe0c:e5bf])
	by toccata.fugue.com (Postfix) with ESMTPSA id 4D02634E4231
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 03:00:28 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Using keys for private key
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
Date: Sat, 24 Jul 2010 03:00:12 -0400
Message-Id: <0C2CEDA7-F494-49E9-960F-ADB2A9579604@fugue.com>
References: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 09:00:23 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 09:00:17 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 24, 2010, at 2:52 AM, Paresh Thakor wrote:
> Could you please lemme know how to authenticate a user through private key?

Do you mean how does the server validate the user's private key against its copy of the user's public key?  Or do you mean how does the user use their private key to authenticate to a host that has their public key?

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 24 09:08:17 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6O78Alf023249;
	Sat, 24 Jul 2010 09:08:16 +0200
Received: from oproxy3-pub.bluehost.com (oproxy3-pub.bluehost.com [69.89.21.8])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6O788vU023245
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 09:08:08 +0200
Received: (qmail 15622 invoked by uid 0); 24 Jul 2010 07:08:05 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy3.bluehost.com with SMTP; 24 Jul 2010 07:08:05 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=Bbu4f+ZvjqGMKtwX98FXo/YFMFK0k98DrQ57CuFw3+pl1nNrdu8BCl678B289NFTRQnhpS7bZdO0PgH1quYjvjmkzz4Sbpd60YyAzx7saKUwo3l5S+7jpuVuAyvBwMoZ;
Received: from [122.169.80.132] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OcYq4-00044l-RK
	for libssh2-devel@cool.haxx.se; Sat, 24 Jul 2010 01:08:05 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Using keys for private key
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <0C2CEDA7-F494-49E9-960F-ADB2A9579604@fugue.com>
Date: Sat, 24 Jul 2010 12:37:59 +0530
Message-Id: <04A50809-BEA7-40A0-BB21-FBE0B9FC5E0F@moontechnolabs.com>
References: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
	<0C2CEDA7-F494-49E9-960F-ADB2A9579604@fugue.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.169.80.132 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 09:08:17 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 09:08:09 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

I'm implementing libssh2 for iPhone application. And from the application, i'll allow a user to access remote machine and fire commands on terminal. But to use libssh2, i need to authenticate user first and then channel and session can be created, you can take a look at API. But I need is to establish session and channel by authenticating user with private key. So, i need to implement private key in my application. So, is this possible with libssh2? This is critical.

On Jul 24, 2010, at 12:30 PM, Ted Lemon wrote:

> On Jul 24, 2010, at 2:52 AM, Paresh Thakor wrote:
>> Could you please lemme know how to authenticate a user through private key?
> 
> Do you mean how does the server validate the user's private key against its copy of the user's public key?  Or do you mean how does the user use their private key to authenticate to a host that has their public key?
> 
> _______________________________________________
> 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  Sat Jul 24 09:13:52 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6O7DnNh025382;
	Sat, 24 Jul 2010 09:13:51 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6O7Dldf025374
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 09:13:47 +0200
Received: from [IPv6:2001:1938:206::226:bbff:fe0c:e5bf] (unknown
	[IPv6:2001:1938:206:0:226:bbff:fe0c:e5bf])
	by toccata.fugue.com (Postfix) with ESMTPSA id B6CBC34E44DF
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 03:13:59 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1081)
Subject: Re: Using keys for private key
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <04A50809-BEA7-40A0-BB21-FBE0B9FC5E0F@moontechnolabs.com>
Date: Sat, 24 Jul 2010 03:13:44 -0400
Message-Id: <B8D30427-BE0E-40C7-AD6A-110D5B1B441D@fugue.com>
References: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
	<0C2CEDA7-F494-49E9-960F-ADB2A9579604@fugue.com>
	<04A50809-BEA7-40A0-BB21-FBE0B9FC5E0F@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1081)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 09:13:52 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 09:13:48 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 24, 2010, at 3:07 AM, Paresh Thakor wrote:
> So, i need to implement private key in my application. So, is this possible with libssh2? This is critical.

Yes.   Instead of using libssh2_userauth_password(), use libssh2_userauth_publickey_fromfile():

      rc = libssh2_userauth_publickey_fromfile(session,
					       "username", [pubkey UTF8String],
					       [privkey UTF8String], "");

The pubkey and privkey variables in the example are NSStrings containing the path to the file.   There's also an API for doing it from memory, but I haven't tried that.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Jul 24 13:13:25 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6OBD4nF020818;
	Sat, 24 Jul 2010 13:13:21 +0200
Received: from oproxy2-pub.bluehost.com (oproxy2-pub.bluehost.com
	[67.222.39.60])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6OBD0T3020740
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 13:13:02 +0200
Received: (qmail 4794 invoked by uid 0); 24 Jul 2010 11:12:57 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy2.bluehost.com with SMTP; 24 Jul 2010 11:12:57 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=MtGt28FWs2kTYVpw8tqEVv7BpndfjXvcxPowZcuVcyhBEwO9/UboeWIcyo2xluex/3vhF6CUiHYBgPLo+mQ2lVNOPWY6R9IeXcvOYHD8ook7yk6bTK95scYBGyMliWZ/;
Received: from [122.170.26.73] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1Occf2-0001Cf-NS
	for libssh2-devel@cool.haxx.se; Sat, 24 Jul 2010 05:12:57 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Using keys for private key
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <B8D30427-BE0E-40C7-AD6A-110D5B1B441D@fugue.com>
Date: Sat, 24 Jul 2010 16:42:51 +0530
Message-Id: <01EB0365-9015-40A3-9150-BD0989665390@moontechnolabs.com>
References: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
	<0C2CEDA7-F494-49E9-960F-ADB2A9579604@fugue.com>
	<04A50809-BEA7-40A0-BB21-FBE0B9FC5E0F@moontechnolabs.com>
	<B8D30427-BE0E-40C7-AD6A-110D5B1B441D@fugue.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.170.26.73 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 13:13:25 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 13:13:02 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se


On Jul 24, 2010, at 12:43 PM, Ted Lemon wrote:

> On Jul 24, 2010, at 3:07 AM, Paresh Thakor wrote:
>> So, i need to implement private key in my application. So, is this possible with libssh2? This is critical.
> 
> Yes.   Instead of using libssh2_userauth_password(), use libssh2_userauth_publickey_fromfile():
> 
>      rc = libssh2_userauth_publickey_fromfile(session,
> 					       "username", [pubkey UTF8String],
> 					       [privkey UTF8String], "");
> 
> The pubkey and privkey variables in the example are NSStrings containing the path to the file.   There's also an API for doing it from memory, but I haven't tried that.

I'm just wondering that, private key will be on server which is the machine which runs virtual terminal. So, the computer to which i need remote access will be having private key. Public key will be on my iPhone device from which i need to set remote access. What will be passphrase? do i need to specify it? And how libssh2 will access public and private keys from filename or path only? Are they both will be on server, i.e. the machine on which i need to setup remote access?

I need to implement functionality that when user inputs no password and specified the private key file, ssh must authenticate the user without password.

Please suggest something. I think i'm getting confused between public/private keys and how to set up remote connection between two devices with keypair.

Regards,
Paresh Thakor.

> 
> _______________________________________________
> 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  Sat Jul 24 14:17:35 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6OCHL9T028577;
	Sat, 24 Jul 2010 14:17:33 +0200
Received: from oproxy3-pub.bluehost.com (oproxy3-pub.bluehost.com [69.89.21.8])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o6OCHIs0028564
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 14:17:18 +0200
Received: (qmail 28793 invoked by uid 0); 24 Jul 2010 12:17:14 -0000
Received: from unknown (HELO box439.bluehost.com) (69.89.31.239)
	by oproxy3.bluehost.com with SMTP; 24 Jul 2010 12:17:14 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default;
	d=moontechnolabs.com; 
	h=Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-Identified-User;
	b=tGs0WvzGJZrRhTQyC+Doex3bn3WIEhtQresf3yir3HuLJTiSWXynUNwi1xzWZtMbn7Z/ZAmWjF201BmycyHteI9HGCylPGhIq5heJimatjBdGm99KJ6XshxKq3Gey+W6;
Received: from [122.170.26.73] (helo=[192.168.1.111])
	by box439.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128)
	(Exim 4.69) (envelope-from <paresh.thakor@moontechnolabs.com>)
	id 1OcdfF-0004sO-DA
	for libssh2-devel@cool.haxx.se; Sat, 24 Jul 2010 06:17:14 -0600
Mime-Version: 1.0 (Apple Message framework v1078)
Subject: Re: Using keys for private key
From: Paresh Thakor <paresh.thakor@moontechnolabs.com>
In-Reply-To: <01EB0365-9015-40A3-9150-BD0989665390@moontechnolabs.com>
Date: Sat, 24 Jul 2010 17:47:05 +0530
Message-Id: <F3ACC40C-FE99-4110-BFAC-CB7C56CD2574@moontechnolabs.com>
References: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
	<0C2CEDA7-F494-49E9-960F-ADB2A9579604@fugue.com>
	<04A50809-BEA7-40A0-BB21-FBE0B9FC5E0F@moontechnolabs.com>
	<B8D30427-BE0E-40C7-AD6A-110D5B1B441D@fugue.com>
	<01EB0365-9015-40A3-9150-BD0989665390@moontechnolabs.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Mailer: Apple Mail (2.1078)
X-Identified-User: {1089:box439.bluehost.com:moonsoft:moontechnolabs.com}
	{sentby:smtp auth 122.170.26.73 authed with
	paresh.thakor@moontechnolabs.com}
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 14:17:35 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 14:17:19 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

Can you suggest me on iPhone device, where my public and private keys will be? How can i send passphrase?


On Jul 24, 2010, at 4:42 PM, Paresh Thakor wrote:

> 
> On Jul 24, 2010, at 12:43 PM, Ted Lemon wrote:
> 
>> On Jul 24, 2010, at 3:07 AM, Paresh Thakor wrote:
>>> So, i need to implement private key in my application. So, is this possible with libssh2? This is critical.
>> 
>> Yes.   Instead of using libssh2_userauth_password(), use libssh2_userauth_publickey_fromfile():
>> 
>>     rc = libssh2_userauth_publickey_fromfile(session,
>> 					       "username", [pubkey UTF8String],
>> 					       [privkey UTF8String], "");
>> 
>> The pubkey and privkey variables in the example are NSStrings containing the path to the file.   There's also an API for doing it from memory, but I haven't tried that.
> 
> I'm just wondering that, private key will be on server which is the machine which runs virtual terminal. So, the computer to which i need remote access will be having private key. Public key will be on my iPhone device from which i need to set remote access. What will be passphrase? do i need to specify it? And how libssh2 will access public and private keys from filename or path only? Are they both will be on server, i.e. the machine on which i need to setup remote access?
> 
> I need to implement functionality that when user inputs no password and specified the private key file, ssh must authenticate the user without password.
> 
> Please suggest something. I think i'm getting confused between public/private keys and how to set up remote connection between two devices with keypair.
> 
> Regards,
> Paresh Thakor.
> 
>> 
>> _______________________________________________
>> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
> 
> _______________________________________________
> 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  Sat Jul 24 15:55:50 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6ODtX2n020137;
	Sat, 24 Jul 2010 15:55:48 +0200
Received: from toccata.fugue.com (toccata.fugue.com [204.152.186.142])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6ODtVH7020134
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 15:55:32 +0200
Received: from [10.22.180.124] (mobile-166-137-139-170.mycingular.net
	[166.137.139.170])
	by toccata.fugue.com (Postfix) with ESMTPSA id B835434E4457
	for <libssh2-devel@cool.haxx.se>; Sat, 24 Jul 2010 09:55:39 -0400 (EDT)
Subject: Re: Using keys for private key
References: <A1F494CF-D24E-4E59-9782-E4BC9236A0A1@moontechnolabs.com>
	<0C2CEDA7-F494-49E9-960F-ADB2A9579604@fugue.com>
	<04A50809-BEA7-40A0-BB21-FBE0B9FC5E0F@moontechnolabs.com>
	<B8D30427-BE0E-40C7-AD6A-110D5B1B441D@fugue.com>
	<01EB0365-9015-40A3-9150-BD0989665390@moontechnolabs.com>
	<F3ACC40C-FE99-4110-BFAC-CB7C56CD2574@moontechnolabs.com>
From: Ted Lemon <mellon@fugue.com>
X-Mailer: iPhone Mail (8A293)
In-Reply-To: <F3ACC40C-FE99-4110-BFAC-CB7C56CD2574@moontechnolabs.com>
Message-Id: <601418AC-EC70-4DC2-914F-3745EFBC42E2@fugue.com>
Date: Sat, 24 Jul 2010 09:55:08 -0400
To: libssh2 development <libssh2-devel@cool.haxx.se>
Mime-Version: 1.0 (iPhone Mail 8A293)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Sat, 24 Jul 2010 15:55:50 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Sat, 24 Jul 2010 15:55:32 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Jul 24, 2010, at 8:17 AM, Paresh Thakor <paresh.thakor@moontechnolabs.com> wrote:

> Can you suggest me on iPhone device, where my public and private keys will be? How can i send passphrase?

The server determines that you have your private key using your public key--it never sees the private key.  The iPhone has the private key.  If you use a passphrase, the user types it on the iPhone, and it is only used in libssh2_userauth_pubkey_*, never sent to server. 

If you didn't encrypt the key, you don't need the passphrase--just use an empty string as on the example I  sent. 

The real trick on the iPhone is getting the public/private key pair there in the first place. 
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 30 23:44:11 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6ULhonF023550;
	Fri, 30 Jul 2010 23:44:08 +0200
Received: from mail.scriptpro.com (mail.scriptpro.com [69.150.239.3])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6ULhmAS023543
	for <libssh2-devel@cool.haxx.se>; Fri, 30 Jul 2010 23:43:49 +0200
Received: from 192.168.190.236 ([192.168.190.236]) by mail.scriptpro.com
	with XWall v3.45e ; Fri, 30 Jul 2010 16:43:39 -0500
Received: from excsvr002.scriptpro.com ([192.168.190.184])
	by mxsvr003.scriptpro.com with XWall v3.44m ;
	Fri, 30 Jul 2010 16:43:38 -0500
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: libssh2, winsshd, SFTP, and publickey login
Date: Fri, 30 Jul 2010 16:43:38 -0500
Message-ID: <40AAD23D4FC4A6449A444BBCF60892BF015AC945@EXCSVR000.scriptpro.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: libssh2, winsshd, SFTP, and publickey login
Thread-Index: AcswMEVCkQW3eiT0QriDI2ZtCGT8pQ==
From: <rhamilton@scriptpro.com>
To: <libssh2-devel@cool.haxx.se>
X-XWALL-BCKS: auto
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 30 Jul 2010 23:44:11 +0200 (CEST)
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 30 Jul 2010 23:43:49 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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: multipart/mixed; boundary="===============2062280317=="
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

This is a multi-part message in MIME format.

--===============2062280317==
Content-class: urn:content-classes:message
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01CB3030.453D4B37"

This is a multi-part message in MIME format.

------_=_NextPart_001_01CB3030.453D4B37
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

(I apologize if this double posts.)

Can anybody tell me if there is a trick to getting the key format right,
so I can use cUrl/libssh2 to do an SFTP transfer to/from a winsshd
server with a username and publickey?  I have a key that works with
putty's psftp, and I've tried several ways to convert it with the
puttygen tool, but the best I can get out of winsshd (via event log) are
things like ...

		Logon attempt 1 for user name 'test' with logon method
'publickey' (algorithm: '-----BEGIN', public key MD5:
2f:97:f3:92:54:28:b2:25:50:b9:51:8e:4d:8f:a8:e8, test only) failed: The
received public key algorithm name is unsupported or doesn't match the
algorithm encoded in the public key.

We've upgraded to the latest version of winsshd, and I've tried libssh2
v1.0 and v1.2.6.  Winsshd support basically just tells us to switch to a
better tool.

Thanks,
Rod


Rodney Hamilton | ScriptPro
Senior Software Engineer | direct 913.403.5305 | fax 913.384.2180 |
rhamilton@scriptpro.com
5828 Reeds Road, Mission KS 66202 | main 913.384.1008 |
www.scriptpro.com



------_=_NextPart_001_01CB3030.453D4B37
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7653.38">
<TITLE>libssh2, winsshd, SFTP, and publickey login</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT =
FACE=3D"Calibri">(I</FONT></SPAN><SPAN LANG=3D"en-us"> <FONT =
FACE=3D"Calibri">apologize</FONT></SPAN><SPAN LANG=3D"en-us"><FONT =
FACE=3D"Calibri"> if this double posts.)</FONT></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Calibri">Can anybody =
tell me if there is a trick to getting the key format right, so I can =
use cUrl/libssh2 to do an SFTP transfer to/from a winsshd server with a =
username and publickey?&nbsp; I have a key that works with putty&#8217;s =
psftp, and I&#8217;ve tried several ways to convert it with the puttygen =
tool, but the best I can get out of winsshd (via event log) are things =
like &#8230;</FONT></SPAN></P>
<UL DIR=3DLTR><UL DIR=3DLTR>
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Calibri">Logon attempt 1 =
for user name 'test' with logon method 'publickey' (algorithm: =
'-----BEGIN', public key MD5: =
2f:97:f3:92:54:28:b2:25:50:b9:51:8e:4d:8f:a8:e8, test only) failed: The =
received public key algorithm name is unsupported or doesn't match the =
algorithm encoded in the public key.</FONT></SPAN></P>
</UL></UL>
<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Calibri">We&#8217;ve =
upgraded to the latest version of winsshd, and I&#8217;ve tried libssh2 =
v1.0 and v1.2.6.&nbsp; Winsshd support basically just tells us to switch =
to a better tool.</FONT></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT =
FACE=3D"Calibri">Thanks,</FONT></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT =
FACE=3D"Calibri">Rod</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><B><SPAN LANG=3D"en-us"></SPAN></B><B><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#7F7F7F" SIZE=3D1 FACE=3D"Arial">Rodney =
Hamilton</FONT></SPAN></B><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><B><SPAN LANG=3D"en-us"></SPAN></B><B><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#808080" SIZE=3D1 =
FACE=3D"Arial"></FONT></SPAN></B><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"></SPAN></B><B><SPAN LANG=3D"en-us"> <FONT =
COLOR=3D"#0072B3" SIZE=3D1 FACE=3D"Arial">|</FONT></SPAN></B><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT COLOR=3D"#808080" =
SIZE=3D1 FACE=3D"Arial"></FONT></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"></SPAN></B><B><SPAN LANG=3D"en-us"> <FONT =
COLOR=3D"#0072B3" SIZE=3D1 =
FACE=3D"Arial">ScriptPro</FONT></SPAN></B><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#808080" SIZE=3D1 FACE=3D"Arial">Senior =
Software Engineer</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><B><SPAN LANG=3D"en-us"></SPAN></B><B><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#808080" SIZE=3D1 =
FACE=3D"Arial"></FONT></SPAN></B><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"></SPAN></B><B><SPAN LANG=3D"en-us"> <FONT =
COLOR=3D"#0072B3" SIZE=3D1 FACE=3D"Arial">|</FONT></SPAN></B><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT COLOR=3D"#808080" =
SIZE=3D1 FACE=3D"Arial"></FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> =
<FONT COLOR=3D"#7F7F7F" SIZE=3D1 =
FACE=3D"Arial">direct</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#7F7F7F" SIZE=3D1 FACE=3D"Arial"> =
913.403.5305</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><B><SPAN LANG=3D"en-us"></SPAN></B><B><SPAN =
LANG=3D"en-us"> <FONT COLOR=3D"#0072B3" SIZE=3D1 =
FACE=3D"Arial">|</FONT></SPAN></B><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D1 FACE=3D"Arial"></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT COLOR=3D"#7F7F7F" =
SIZE=3D1 FACE=3D"Arial">fax</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT COLOR=3D"#7F7F7F" =
SIZE=3D1 FACE=3D"Arial"> 913.384.2180</FONT></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"></SPAN></B><B><SPAN LANG=3D"en-us"><FONT =
COLOR=3D"#808080" SIZE=3D1 FACE=3D"Arial"></FONT></SPAN></B><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"></SPAN></B><B><SPAN LANG=3D"en-us"> <FONT =
COLOR=3D"#0072B3" SIZE=3D1 FACE=3D"Arial">|</FONT></SPAN></B><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT COLOR=3D"#808080" =
SIZE=3D1 FACE=3D"Arial"></FONT></SPAN><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"mailto:rhamilton@scriptpro.com"><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><U></U></SPAN><U><SPAN =
LANG=3D"en-us"></SPAN></U><U><SPAN LANG=3D"en-us"><FONT =
COLOR=3D"#0000FF" SIZE=3D1 FACE=3D"Times New =
Roman">rhamilton@scriptpro.com</FONT></SPAN></U><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#808080" SIZE=3D1 =
FACE=3D"Arial">5828</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> =
<FONT COLOR=3D"#7F7F7F" SIZE=3D1 FACE=3D"Arial">Reeds Road, Mission KS =
66202</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><B><SPAN LANG=3D"en-us"></SPAN></B><B><SPAN =
LANG=3D"en-us"> <FONT COLOR=3D"#0072B3" SIZE=3D1 =
FACE=3D"Arial">|</FONT></SPAN></B><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> =
<FONT COLOR=3D"#7F7F7F" SIZE=3D1 FACE=3D"Arial">main</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT COLOR=3D"#7F7F7F" =
SIZE=3D1 FACE=3D"Arial"> 913.384.1008</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D1 =
FACE=3D"Arial"></FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><B><SPAN LANG=3D"en-us"></SPAN></B><B><SPAN =
LANG=3D"en-us"> <FONT COLOR=3D"#0072B3" SIZE=3D1 =
FACE=3D"Arial">|</FONT></SPAN></B><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D1 FACE=3D"Arial"></FONT></SPAN><SPAN =
LANG=3D"en-us"> </SPAN><A HREF=3D"http://www.scriptpro.com"><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><U></U></SPAN><U><SPAN =
LANG=3D"en-us"></SPAN></U><U><SPAN LANG=3D"en-us"><FONT =
COLOR=3D"#0000FF" SIZE=3D1 FACE=3D"Times New =
Roman">www.scriptpro.com</FONT></SPAN></U><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><U></U></SPAN><U><SPAN LANG=3D"en-us"></SPAN></U></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN></P>

</BODY>
</HTML>
------_=_NextPart_001_01CB3030.453D4B37--

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

--===============2062280317==--

From libssh2-devel-bounces@cool.haxx.se  Fri Jul 30 23:53:39 2010
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from giant.haxx.se (list@localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id o6ULraiI027359;
	Fri, 30 Jul 2010 23:53:39 +0200
Received: from giant.haxx.se (dast@giant.haxx.se [80.67.6.50])
	by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with ESMTP id
	o6ULrY0D027335
	for <libssh2-devel@cool.haxx.se>; Fri, 30 Jul 2010 23:53:34 +0200
Date: Fri, 30 Jul 2010 23:53:34 +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: libssh2, winsshd, SFTP, and publickey login
In-Reply-To: <40AAD23D4FC4A6449A444BBCF60892BF015AC945@EXCSVR000.scriptpro.com>
Message-ID: <alpine.DEB.2.00.1007302346400.411@tvnag.unkk.fr>
References: <40AAD23D4FC4A6449A444BBCF60892BF015AC945@EXCSVR000.scriptpro.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [127.0.0.1]); Fri, 30 Jul 2010 23:53:39 +0200 (CEST)
X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.3.5
	(giant.haxx.se [80.67.6.50]);
	Fri, 30 Jul 2010 23:53:34 +0200 (CEST)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.13
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"
Sender: libssh2-devel-bounces@cool.haxx.se
Errors-To: libssh2-devel-bounces@cool.haxx.se

On Fri, 30 Jul 2010, rhamilton@scriptpro.com wrote:

> Can anybody tell me if there is a trick to getting the key format right, so 
> I can use cUrl/libssh2 to do an SFTP transfer to/from a winsshd server with 
> a username and publickey? I have a key that works with putty's psftp, and 
> I've tried several ways to convert it with the puttygen tool

Note that libssh2's API still requires you to pass on both the private and the 
public keys, so you must have both in the correct format.

But it would help if you'd show us the exact little example source code you're 
running when you get your problem, and tell us what return code/error the 
libssh2 function that fails returns etc. Possibly also show us what a trace 
output log reveals.

> 		Logon attempt 1 for user name 'test' with logon method
> 'publickey' (algorithm: '-----BEGIN',

That certainly seems like a bad algorithm and an indication of a problem. It 
indicates the file is bad I'd say. Or perhaps a bug in libssh2.

> We've upgraded to the latest version of winsshd, and I've tried libssh2
> v1.0 and v1.2.6.

There's no point in using any other libssh2 version than the most recent one.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

