From owner-sc22wg5@open-std.org  Fri Jul 25 01:13:36 2008
Return-Path: <owner-sc22wg5@open-std.org>
X-Original-To: sc22wg5-dom6
Delivered-To: sc22wg5-dom6@open-std.org
Received: by open-std.org (Postfix, from userid 521)
	id A7587DA837; Fri, 25 Jul 2008 01:13:36 +0200 (CET DST)
X-Original-To: sc22wg5@open-std.org
Delivered-To: sc22wg5@open-std.org
Received: from mail1.cray.com (mail1.cray.com [136.162.0.111])
	by open-std.org (Postfix) with ESMTP id 897D7393D9
	for <sc22wg5@open-std.org>; Fri, 25 Jul 2008 01:13:21 +0200 (CET DST)
Received: from beaver.us.cray.com (beaver.us.cray.com [172.30.74.51])
	by mail1.cray.com (8.13.6/8.13.3/gw-5323) with ESMTP id m6ONDJD2022523
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <sc22wg5@open-std.org>; Thu, 24 Jul 2008 18:13:19 -0500 (CDT)
Received: from CFEXFE01.us.cray.com (cfexfe01.us.cray.com [172.30.74.93])
	by beaver.us.cray.com (8.13.8/8.13.3/hub-5273) with ESMTP id m6ONDGHZ028874
	for <sc22wg5@open-std.org>; Thu, 24 Jul 2008 18:13:18 -0500
Received: from mh-dhcp-172-31-20-57.us.cray.com ([172.31.20.57]) by CFEXFE01.us.cray.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.3959);
	 Thu, 24 Jul 2008 18:13:15 -0500
Message-ID: <48890C92.3020308@cray.com>
Date: Thu, 24 Jul 2008 18:13:22 -0500
From: Bill Long <longb@cray.com>
Reply-To: longb@cray.com
Organization: Cray Inc.
User-Agent: Thunderbird 2.0.0.9 (Macintosh/20071031)
MIME-Version: 1.0
To: sc22wg5 <sc22wg5@open-std.org>
Subject: Assumed-type and Assumed-rank extensions for C Interop TR.
Content-Type: multipart/mixed;
 boundary="------------030203000100050803020906"
X-OriginalArrivalTime: 24 Jul 2008 23:13:15.0787 (UTC) FILETIME=[DA1E4DB0:01C8EDE2]
X-Cray-VirusStatus: clean
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

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


At the last J3 meeting there was discussion about how to better 
interoperate with C functions that have void * arguments. This was 
mainly in the context of cooperation with the MPI committee that is 
trying to design a better Fortran interface module for the MPI library.  
However, the basic issue is wider than just MPI.

Debate in May narrowed down the list of options to 3 (see paper 
08-185r1).  Attached is a draft of a proposal for one of these options, 
somewhat expanded. This was the option that, at least to me, seemed to 
have the fewest vocal opponents.

The original mandate for the TR did not include a feature like this, so 
the first question is whether WG5 supports this addition. 

Comments on the proposal itself are also welcome.  The MPI folks prefer 
adding this feature to the TR rather than making this part of the Base 
f08, on the grounds that a vendor could implement the TR as an addition 
to f03, as it does not depend on any of the new f08 features. This would 
enable earlier access. 

As before, fell free to solicit input from others not on the WG5 list.

Cheers,
Bill


-- 
Bill Long                                   longb@cray.com
Fortran Technical Support    &              voice: 651-605-9024
Bioinformatics Software Development         fax:   651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120

            


--------------030203000100050803020906
Content-Type: application/octet-stream;
 name="typestar.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="typestar.txt"

UHJvcG9zYWwgdG8gYWRkIFRZUEUoKikgdG8gRm9ydHJhbi4KClRoZSBkZXNpcmUgZm9yIGEg
c2ltcGxlIG1lY2hhbmlzbSB0byBpbnRlcm9wZXJhdGUgd2l0aCBDIG9iamVjdHMKZGVjbGFy
ZWQgYXMgKHZvaWQgKikgaGFzIGxlYWQgdG8gc2V2ZXJhbCBwcm9wb3NlZCBtb2RpZmljYXRp
b25zIHRvCkZvcnRyYW4uIE9uZSBvZiB0aGUgbW9zdCBkaXJlY3Qgc29sdXRpb25zIGlzIHRv
IHByb3ZpZGUgYXMgZXNzZW50aWFsbHkKZXF1aXZhbGVudCBkZWNsYXJhdGlvbiBpbiBGb3J0
cmFuIGFuZCBsaW1pdCBpdHMgYXNzb2NpYXRlZApzZW1hbnRpY3MuIFRoZSBmb3JtIG9mIHRo
ZSBkZWNsYXJhdGlvbiBwcm9wb3NlZCBpcyBUWVBFKCopIHdoaWNoCmV4dGVuZHMgdGhlIGFs
cmVhZHkgZXhpc3RpbmcgVFlQRSguLi4pIHN5bnRheCwgYW5kIGJvcnJvd3MgdGhlCiJhc3N1
bWVkIiBzZW1hbnRpY3MgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2Ugb2YgKiBpbiBkZWNsYXJh
dGlvbnMuICBJbgprZWVwaW5nIHdpdGggdGhlIHJlc3Qgb2YgdGhlIFRSLCB0aGUgaWRlYSBp
cyBleHBhbmRlZCB0byBpbmNsdWRlCmFzc3VtZWQtc2hhcGUsIGFsbG9jYXRhYmxlLCBhbmQg
cG9pbnRlciB2YXJpYWJsZXMuIFdpdGggdGhvc2UKYWRkaXRpb25zLCBhIG1lY2hhbmlzbSB0
byBpZ25vcmUgdGhlIHJhbmsgaXMgYWxzbyBuZWVkZWQuCgoKU3ludGF4IGNoYW5nZXM6Ci0t
LS0tLS0tLS0tLS0tLQoKQXQgWzQ5OlI0MDNdOgoKQWRkICI8PG9yPj4gVFlQRSAoKikiIHRv
IHRoZSBvcHRpb25zIGZvciA8ZGVjbGFyYXRpb24tdHlwZS1zcGVjPi4KCkF0IFs5Mjo1MTVd
OgoKQWRkICI8PG9yPj4gPGFzc3VtZWQtcmFuay1zcGVjPiIKCkFmdGVyIFs5NDo1LjMuOC42
XSBpbiBhIG5ldyBzdWJjbGF1c2UgbmFtZWQgIkFzc3VtZWQtcmFuayBhcnJheSIKaW5jbHVk
ZSBhIHN5bnRheCBydWxlOgoKIlI1MjJhICA8YXNzdW1lZC1yYW5rLXNwZWM+ICA8PGlzPj4g
IDo6IgoKU2VtYW50aWNzIGZvciBhc3N1bWVkLXR5cGUgdmFyaWFibGVzOgotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBbiA8YXNzdW1lZC10eXBlPiB2YXJpYWJs
ZSBpcyBhIHZhcmlhYmxlIGRlY2xhcmVkIHdpdGggVFlQRSAoKikuIFRoZXNlCmNvbnN0cmFp
bnRzIGFwcGx5IHRvIGFzc3VtZWQtdHlwZSB2YXJpYWJsZXM6CgpDMSkgQW4gPGFzc3VtZWQt
dHlwZT4gdmFyaWFibGUgc2hhbGwgYmUgYSBkdW1teSB2YXJpYWJsZS4KCkMyKSBBbiA8YXNz
dW1lZC10eXBlPiB2YXJpYWJsZSBzaGFsbCBub3QgaGF2ZSB0aGUgQ09ESU1FTlNJT04sCkVY
VEVSTkFMLCBJTlRSSU5TSUMsIG9yIFZBTFVFIGF0dHJpYnV0ZS4KCk5vdGU6IFRoZSBBTExP
Q0FUQUJMRSwgQVNZTkNIUk9OT1VTLCBESU1FTlNJT04sIElOVEVOVCwgT1BUSU9OQUwsClBP
SU5URVIsIFRBUkdFVCwgYW5kIFZPTEFUSUxFIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQuCgpD
MykgQW4gYXNzdW1lZC10eXBlIHZhcmlhYmxlIG1heSBhcHBlYXIgb25seSBhcyBhIGR1bW15
IGFyZ3VtZW50LCBhbgphY3R1YWwgYXJndW1lbnQgYXNzb2NpYXRlZCB3aXRoIGEgZHVtbXkg
YXJndW1lbnQgdGhhdCBpcyBhc3N1bWVkLXR5cGUsCm9yIHRoZSBmaXJzdCBhcmd1bWVudCB0
byB0aGVzZSBpbnRyaW5zaWMgYW5kIGludHJpbnNpYyBtb2R1bGUKZnVuY3Rpb25zOiBJU19D
T05USUdVT1VTLCBMQk9VTkQsIFBSRVNFTlQsIFNIQVBFLCBTSVpFLCBVQk9VTkQsIG9yCkNf
TE9DLgoKQWRkaXRpb25hbCBydWxlcyBnb3Zlcm5pbmcgdmFyaWFibGVzIGRlY2xhcmVkIFRZ
UEUoKik6CgpBbiBleHBsaWNpdCBpbnRlcmZhY2UgaXMgcmVxdWlyZWQgZm9yIGEgcHJvY2Vk
dXJlIHRoYXQgaGFzIGFuCmFzc3VtZWQtdHlwZSBkdW1teSBhcmd1bWVudC4KCkluIHRoZSBh
c3NvY2lhdGlvbiBvZiBhY3R1YWwgYW5kIGR1bW15IGFyZ3VtZW50cywgYSBhc3N1bWVkLXR5
cGUgZHVtbXkKYXJndW1lbnQgaXMgdHlwZSBhbmQga2luZCBjb21wYXRpYmxlIHdpdGggYW55
IGFjdHVhbCBhcmd1bWVudC4KCkluIHJlc29sdmluZyBhIGdlbmVyaWMgaW50ZXJmYWNlLCBj
b3JyZXNwb25kaW5nIGR1bW15IGFyZ3VtZW50cyBtYXkKaW5jbHVkZSBhIGR1bW15IGFyZ3Vt
ZW50IG9mIFRZUEUgKCopLiBNYXRjaGVzIHRvIGR1bW15IGFyZ3VtZW50cyBvZgpvdGhlciB0
eXBlcyB3aWxsIHdpbjsgdGhlIFRZUEUgKCopIG1hdGNoIGlzIHVzZWQgYXMgdGhlIGxhc3Qg
cmVzb3J0LApzaW1pbGFyIHRvIHRoZSB0cmVhdG1lbnQgb2YgdGhlIENBU0UgREVGQVVMVCBj
bGF1c2Ugb24gYSBDQVNFCmNvbnN0cnVjdC4gIFRoaXMgd291bGQgYWxsb3cgZm9yIHdyaXRp
bmcgc3BlY2lmaWMgcm91dGluZXMgZm9yCnNlbGVjdGVkIGRhdGEgdHlwZXMsIGFuZCB0aGUg
aW5jbHVkZSBhIGNhdGNoLWFsbCByb3V0aW5lIHNwZWNpZnlpbmcKVFlQRSAoKikgZm9yIGFs
bCBvdGhlciB0eXBlL2tpbmQgY29tYmluYXRpb25zIG9mIGFjdHVhbCBhcmd1bWVudC4KClRZ
UEUoKikgaXMgaW50ZXJvcGVyYWJsZSB3aXRoIHRoZSBDIHR5cGUgKHZvaWQgKikuCgpBIEJJ
TkQoQykgaW50ZXJmYWNlIG1heSBzcGVjaWZ5IGR1bW15IGFyZ3VtZW50cyB0aGF0IGFyZQph
c3N1bWVkLXR5cGUuIElmIHRoZSBkdW1teSBhcmd1bWVudCBpcyBhIHNjYWxhciwgYW4gZXhw
bGljaXQtc2hhcGUKYXJyYXksIG9yIGFuIGFzc3VtZWQtc2l6ZSBhcnJheSwgdGhlIGFjdHVh
bCBhcmd1bWVudCBpcyBwYXNzZWQgYXMgYQpzaW1wbGUgYWRkcmVzcyBjb21wYXRpYmxlIHdp
dGggdm9pZCAqLiAgSWYgdGhlIGR1bW15IGFyZ3VtZW50IGhhcyB0aGUKQUxMT0NBVEFCTEUg
b3IgUE9JTlRFUiBhdHRyaWJ1dGVzLCBvciBpcyBhc3N1bWVkLXNoYXBlIG9yCmFzc3VtZWQt
cmFuaywgdGhlIGFjdHVhbCBhcmd1bWVudCBpcyBwYXNzZWQgYXMgYSBkZXNjcmlwdG9yLCBh
cwpzZXBjaWZpZWQgZWxzZXdoZXJlIGluIHRoZSBUUi4KClNlbWFudGljcyBmb3IgYXNzdW1l
ZC1yYW5rIHZhcmlhYmxlczoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQoKQW4gPGFzc3VtZWQtcmFuaz4gdmFyaWFibGUgaXMgYSB2YXJpYWJsZSBkZWNsYXJlZCB3
aXRoIGFuCjxhc3N1bWVkLXJhbmstc3BlYz4uIFRoaXMgY29uc3RyYWludCBhcHBsaWVzOgoK
QzQpIEFuIDxhc3N1bWVkLXJhbms+IHZhcmlhYmxlIHNoYWxsIGJlIGEgZHVtbXkgdmFyaWFi
bGUuCgpDNSkgQW4gPGFzc3VtZWQtcmFuaz4gdmFyaWFibGUgc2hhbGwgbm90IGhhdmUgdGhl
IENPRElNRU5TSU9OLApFWFRFUk5BTCwgSU5UUklOU0lDLCBvciBWQUxVRSBhdHRyaWJ1dGUu
CgpOb3RlOiBUaGUgQUxMT0NBVEFCTEUsIEFTWU5DSFJPTk9VUywgRElNRU5TSU9OLCBJTlRF
TlQsIE9QVElPTkFMLApQT0lOVEVSLCBUQVJHRVQsIGFuZCBWT0xBVElMRSBhdHRyaWJ1dGVz
IGFyZSBhbGxvd2VkLgoKQzYpIEFuIGFzc3VtZWQtcmFuayB2YXJpYWJsZSBtYXkgYXBwZWFy
IG9ubHkgYXMgYSBkdW1teSBhcmd1bWVudCwgYW4KYWN0dWFsIGFyZ3VtZW50IGFzc29jaWF0
ZWQgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHRoYXQgaXMgYXNzdW1lZC1yYW5rLApvciB0aGUg
Zmlyc3QgYXJndW1lbnQgdG8gdGhlc2UgaW50cmluc2ljIGFuZCBpbnRyaW5zaWMgbW9kdWxl
CmZ1bmN0aW9uczogSVNfQ09OVElHVU9VUywgTEJPVU5ELCBQUkVTRU5ULCBTSEFQRSwgU0la
RSwgVUJPVU5ELCBvcgpDX0xPQy4KCkFkZGl0aW9uYWwgcnVsZXMgZ292ZXJuaW5nIGFzc3Vt
ZWQtcmFuayB2YXJpYWJsZXM6CgpBbiBleHBsaWNpdCBpbnRlcmZhY2UgaXMgcmVxdWlyZWQg
Zm9yIGEgcHJvY2VkdXJlIHRoYXQgaGFzIGFuCmFzc3VtZWQtcmFuayBkdW1teSBhcmd1bWVu
dC4KCkluIHRoZSBhc3NvY2lhdGlvbiBvZiBhY3R1YWwgYW5kIGR1bW15IGFyZ3VtZW50cywg
YSBhc3N1bWVkLXJhbmsgZHVtbXkKYXJndW1lbnQgaXMgcmFuayBjb21wYXRpYmxlIHdpdGgg
YW55IGFjdHVhbCBhcnJheSBhcmd1bWVudC4KCkluIHJlc29sdmluZyBhIGdlbmVyaWMgaW50
ZXJmYWNlLCBjb3JyZXNwb25kaW5nIGR1bW15IGFyZ3VtZW50cyBtYXkKaW5jbHVkZSBhbiBh
c3N1bWVkLXJhbmsgZHVtbXkgYXJndW1lbnQuIE1hdGNoZXMgdG8gZHVtbXkgYXJndW1lbnRz
IG9mCmV4cGxpY2l0IHJhbmtzIHdpbGwgd2luOyB0aGUgYXNzdW1lZC1yYW5rIG1hdGNoIGlz
IHVzZWQgYXMgdGhlIGxhc3QKcmVzb3J0LCBzaW1pbGFyIHRvIHRoZSB0cmVhdG1lbnQgb2Yg
dGhlIENBU0UgREVGQVVMVCBjbGF1c2Ugb24gYSBDQVNFCmNvbnN0cnVjdC4gIFRoaXMgd291
bGQgYWxsb3cgZm9yIHdyaXRpbmcgc3BlY2lmaWMgcm91dGluZXMgZm9yCnNlbGVjdGVkIHJh
bmtzLCBhbmQgdGhlIGluY2x1ZGUgYSBjYXRjaC1hbGwgcm91dGluZSBzcGVjaWZ5aW5nIGFu
CmFzc3VtZWQtcmFuayBkdW1teSBhcmd1bWVudCBmb3IgYWxsIG90aGVyIHJhbmtzIG9mIGFj
dHVhbCBhcmd1bWVudC4KCkEgQklORChDKSBpbnRlcmZhY2UgbWF5IHNwZWNpZnkgZHVtbXkg
YXJndW1lbnRzIHRoYXQgYXJlCmFzc3VtZWQtcmFuay4gSWYgdGhlIGR1bW15IGFyZ3VtZW50
IGlzIGFzc3VtZWQtcmFuaywgdGhlIGFjdHVhbAphcmd1bWVudCBpcyBwYXNzZWQgYXMgYSBk
ZXNjcmlwdG9yLCBhcyBzZXBjaWZpZWQgZWxzZXdoZXJlIGluIHRoZSBUUi4KCk5vdGU6IEFz
c3VtZWQtcmFuayB2YXJpYWJsZXMgYXJlIG5vdCByZXN0cmljdGVkIHRvIGJlIGFzc3VtZWQt
dHlwZS4KRm9yIGV4YW1wbGUsIG1hbnkgb2YgdGhlIHByb2NlZHVyZXMgaW4gQ2xhdXNlIDE0
IGNvdWxkIGJlIHdyaXR0ZW4KdXNpbmcgYW4gYXNzdW1lZC1yYW5rIGR1bW15IGFyZ3VtZW50
IGluc3RlYWQgb2Ygd3JpdGluZyAxNiBzZXBhcmF0ZQpzcGVjaWZpYyByb3V0aW5lcyBmb3Ig
ZWFjaCBwb3NzaWJsZSByYW5rLiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tCgpFeGFtcGxlIG9m
IFRZUEUgKCopIGZvciBhbiBhYnN0cmFjdGVkIE1QSSByb3V0aW5lIHdpdGggdHdvCmFyZ3Vt
ZW50cy4gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgZGF0YSBidWZmZXIgb2YgdHlwZSAodm9p
ZCAqKSBhbmQKdGhlIHNlY29uZCBpcyBhbiBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIHNpemUg
b2YgdGhlIGJ1ZmZlci4gIFRoZQpnZW5lcmljIGludGVyZmFjZSBhbGxvd3MgZm9yIGJvdGgg
NCBhbmQgOCBieXRlIGludGVnZXJzLCBhcyBhIHNvbHV0aW9uCnRvIHRoZSAiLWk4IiBjb21w
aWxlciBzd2l0Y2ggcHJvYmxlbS4KCkluIEM6ICB2b2lkIE1QSV94eHggKCB2b2lkICogYnVm
ZmVyLCBpbnQgbik7CgpJbiB0aGUgRm9ydHJhbiBNUEkgbW9kdWxlOgoKaW50ZXJmYWNlIE1Q
SV94eHgKICAgc3Vicm91dGluZSBNUElfeHh4IChidWZmZXIsIG4pIGJpbmQoYyxuYW1lPSJN
UElfeHh4IikKICAgICAgdHlwZSgqKSxkaW1lbnNpb24oKikgOjogYnVmZmVyCiAgICAgIGlu
dGVnZXIoY19pbnQpLHZhbHVlIDo6IG4KICAgZW5kIHN1YnJvdXRpbmUgTVBJX3h4eAogICBt
b2R1bGUgcHJvY2VkdXJlIE1QSV94eHhfaTgKZW5kIGludGVyZmFjZSBNUElfeHh4CgouLi4K
CnN1YnJvdXRpbmUgTVBJX3h4eF9pOCAoYnVmZmVyLCBuKQogICB0eXBlKCopLGRpbWVuc2lv
bigqKSA6OiBidWZmZXIKICAgaW50ZWdlcig4KSA6OiBuCiAgIGNhbGwgTVBJX3h4eChidWZm
ZXIsIGludChuLGNfaW50KSkKZW5kIHN1YnJvdXRpbmUgTVBJX3h4eF9pOAoKLS0tLS0tLS0t
LS0tLS0tLS0tLS0gCgpJdCBpcyBwb3NzaWJsZSB0byAiY2FzdCIgYSBUWVBFICgqKSBvYmpl
Y3QgdG8gYSB1c2FibGUgdHlwZSwgZXhhY3RseQphcyBpcyBkb25lIGZvciB2b2lkICogb2Jq
ZWN0cyBpbiBDLiBGb3IgZXhhbXBsZSwgdGhpcyBjb2RlIGZyYWdtZW50CmNhc3RzIGEgYmxv
Y2sgb2YgbWVtb3J5IHRvIGJlIHVzZWQgYXMgYW4gaW50Z2VyIGFycmF5LgoKCnR5cGUoKiks
dGFyZ2V0ICAgICA6OiBibG9jaygqKQppbnRlZ2VyKDgpICAgICAgICAgOjogbmJ5dGVzCklu
dGVnZXIoOCkscG9pbnRlciA6OiB1c2FibGUoOikKCmNhbGwgY19mX3BvaW50ZXIgKGNfbG9j
KGJsb2NrKSwgdXNhYmxlLCBbbmJ5dGVzKmJpdF9zaXplKHVzYWJsZSkvOF0gKQoKLS0tLS0t
LS0tLS0tLS0tLS0tLS0KCkFuIGV4YW1wbGUgb2YgYW4gYXNzdW1lZC1yYW5rIGR1bW15IGFy
Z3VtZW50IGZvciB0aGUgc3BlY2lmaWMKcHJvY2VkdXJlcyBmb3IgYSBDbGF1c2UgMTQgZnVu
Y3Rpb24uCgppbnRlcmZhY2UgaWVlZV9zdXBwb3J0X2RpdmlkZQogICAgbW9kdWxlIHByb2Nl
ZHVyZSBpZWVlX3N1cHBvcnRfZGl2aWRlX25vYXJnCiAgICBtb2R1bGUgcHJvY2VkdXJlIGll
ZWVfc3VwcG9ydF9kaXZpZGVfb25lYXJnX3I0CiAgICBtb2R1bGUgcHJvY2VkdXJlIGllZWVf
c3VwcG9ydF9kaXZpZGVfb25lYXJnX3I4CiAgICBtb2R1bGUgcHJvY2VkdXJlIGllZWVfc3Vw
cG9ydF9kaXZpZGVfb25lYXJnX3I0X3NjYWxhcgogICAgbW9kdWxlIHByb2NlZHVyZSBpZWVl
X3N1cHBvcnRfZGl2aWRlX29uZWFyZ19yOF9zY2FsYXIKZW5kIGludGVyZmFjZSBpZWVlX3N1
cHBvcnRfZGl2aWRlCgouLi4KCmxvZ2ljYWwgZnVuY3Rpb24gaWVlZV9zdXBwb3J0X2Rpdmlk
ZV9ub2FyZyAoKQogICAgaWVlZV9zdXBwb3J0X2RpdmlkZV9ub2FyZyA9IC50cnVlLgplbmQg
ZnVuY3Rpb24gaWVlZV9zdXBwb3J0X2RpdmlkZV9vbmVhcmdfcjQKCmxvZ2ljYWwgZnVuY3Rp
b24gaWVlZV9zdXBwb3J0X2RpdmlkZV9vbmVhcmdfcjQgKHgpCiAgICByZWFsKDQpLGRpbWVu
c2lvbig6OikgOjogeAogICAgaWVlZV9zdXBwb3J0X2RpdmlkZV9vbmVhcmdfcjQgPSAudHJ1
ZS4KZW5kIGZ1bmN0aW9uIGllZWVfc3VwcG9ydF9kaXZpZGVfb25lYXJnX3I0Cgpsb2dpY2Fs
IGZ1bmN0aW9uIGllZWVfc3VwcG9ydF9kaXZpZGVfb25lYXJnX3I4ICh4KQogICAgcmVhbCg4
KSxkaW1lbnNpb24oOjopIDo6IHgKICAgIGllZWVfc3VwcG9ydF9kaXZpZGVfb25lYXJnX3I4
ID0gLnRydWUuCmVuZCBmdW5jdGlvbiBpZWVlX3N1cHBvcnRfZGl2aWRlX29uZWFyZ19yOAoK
bG9naWNhbCBmdW5jdGlvbiBpZWVlX3N1cHBvcnRfZGl2aWRlX29uZWFyZ19yNF9zY2FsYXIg
KHgpCiAgICByZWFsKDQpIDo6IHgKICAgIGllZWVfc3VwcG9ydF9kaXZpZGVfb25lYXJnX3I0
X3NjYWxhciA9IC50cnVlLgplbmQgZnVuY3Rpb24gaWVlZV9zdXBwb3J0X2RpdmlkZV9vbmVh
cmdfcjRfc2NhbGFyCgpsb2dpY2FsIGZ1bmN0aW9uIGllZWVfc3VwcG9ydF9kaXZpZGVfb25l
YXJnX3I4X3NjYWxhciAoeCkKICAgIHJlYWwoOCkgOjogeAogICAgaWVlZV9zdXBwb3J0X2Rp
dmlkZV9vbmVhcmdfcjhfc2NhbGFyID0gLnRydWUuCmVuZCBmdW5jdGlvbiBpZWVlX3N1cHBv
cnRfZGl2aWRlX29uZWFyZ19yOF9zY2FsYXIKCg==
--------------030203000100050803020906--
