From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web09.18901.1605669291647134618 for ; Tue, 17 Nov 2020 19:14:51 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=Y/bE6Eee; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=05914cc97e=abner.chang@hpe.com) Received: from pps.filterd (m0134422.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0AI3Bufb000679; Wed, 18 Nov 2020 03:14:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=/ACN05uGRHFZB3u/ynNsuBa5hXttajpsfhM0WIzS+S8=; b=Y/bE6EeeoQZJyDRj/EqIYXVjIu0C/oaTr3/wlySxyGBTnF47WPi2cQeOWp54siFSwpLG DaRgHCQMJrMRdQOWE5cXTPrn5h1F7FTinEzN67Pb1LuusLqxwerH0g6IKEl8Rwg7KdeC vivUN3d78mQ9ZVphvYH8Us2iOz9sTrGn+WA8TgOOpkAyVqWuRaut0dTlU2pWm2ppeSua 8TjVRFRQyS3E3CP8imGyxjAx9dUvR0F9JNFQCqrjDVhZ1o2uQUArZ18/0ZgiJEq47nUW tuHES2FIPcQhsPTCbz4pxvx98NOMUSx9j8H35FUmiwUNrXrJaTVfOs5CNauYbaoSH+qE wg== Received: from g2t2354.austin.hpe.com (g2t2354.austin.hpe.com [15.233.44.27]) by mx0b-002e3701.pphosted.com with ESMTP id 34vnd5a8at-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 18 Nov 2020 03:14:50 +0000 Received: from G1W8106.americas.hpqcorp.net (g1w8106.austin.hp.com [16.193.72.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g2t2354.austin.hpe.com (Postfix) with ESMTPS id DCA59C6; Wed, 18 Nov 2020 03:14:49 +0000 (UTC) Received: from G4W9329.americas.hpqcorp.net (16.208.32.99) by G1W8106.americas.hpqcorp.net (16.193.72.61) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 18 Nov 2020 03:14:09 +0000 Received: from G9W9210.americas.hpqcorp.net (2002:10dc:429b::10dc:429b) by G4W9329.americas.hpqcorp.net (2002:10d0:2063::10d0:2063) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 18 Nov 2020 03:14:08 +0000 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (15.241.52.11) by G9W9210.americas.hpqcorp.net (16.220.66.155) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 18 Nov 2020 03:14:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a/4R7iaUMdEEIc00ZLhk+o9VJ8Bpzcmdajc2LEtEvkDHCMlifJlRt4xLmSzM1x9bb7ADvFB9ZSGzUnnDX+RBoyB10qO2its6Kblty4ZQ1Lug6Cbj/ZP3xCKwNQyhJlcW7pcxcwmaOZ6QFFAt5X6xNGhOTcDmf/4rkxpnzTcrrcVEoI2Sj4sJpz5Issax0UfNRx+0KTBhzjhXiObHFyEzE3LfCQ/Eq16cKZR/1BvSDHo4Wux729DQBz0ZgBC2mmO8blLW/2GloobvTEobPt1g8SruCCQQLZ8O8D1zZf9qGZmXXskL6HnoHKLEJYPWq+KLzgJAmgQjbiKNrHsmytUwPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MzKaBgu+FhUHE7EIfittvkin/aARacUCr6PX6MPW/z4=; b=cRTROPMzGWF0jd4qdI2dN966GnW9IpkAY4OzaBL4Sr/urvq2opFsdtmvH62yrwvDl3NMfslsB4BmlOb/RiT32AFv2+3HSeU+YgpT7hJMm5usV0VTRZBNgeS+TFA8E4QZTNwIaUZGwKpDKRtR0nvZvbLTWFCLIt9NnfCTBOc4eSXlPLdbvjr5VKPasXCVxOt9U2FrvJTcei6DD2qsmrCVYeyt1kTAo2NoxnKMqTL2yYvRrvvAfRi4M2YEHgJliwZVFxqhvjCikft7dhJhWve+Z1bXK/teXwYLk8IzZ3CKe4l0Pzhr1UJl0X/B3aa6tV7HZdPZaaTPED/RpyzH7B8P2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7508::16) by CS1PR8401MB0469.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7507::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3564.28; Wed, 18 Nov 2020 03:14:06 +0000 Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a094:ed67:fb40:340e]) by CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a094:ed67:fb40:340e%10]) with mapi id 15.20.3589.020; Wed, 18 Nov 2020 03:14:06 +0000 From: "Abner Chang" To: "devel@edk2.groups.io" , "lersek@redhat.com" CC: Maciej Rabeda , Jiaxin Wu , Siyuan Fu , "Wang, Nickle (HPS SW)" , "O'Hanley, Peter (EXL)" Subject: Re: [edk2-devel] [NETWORK_HTTP_ENABLE PATCH 1/1] NetworkPkg: Add NETWORK_HTTP_ENABLE macro Thread-Topic: [edk2-devel] [NETWORK_HTTP_ENABLE PATCH 1/1] NetworkPkg: Add NETWORK_HTTP_ENABLE macro Thread-Index: AQHWuHCorRv4LBC0Pk2+oyqnzqdI7KnKB+YQgAKPzQCAAJSmYA== Date: Wed, 18 Nov 2020 03:14:06 +0000 Message-ID: References: <20201111131927.21323-1-abner.chang@hpe.com> <20201111131927.21323-2-abner.chang@hpe.com> <9357a533-108e-b4c3-6aa8-3f9dcea0846c@redhat.com> <0a6b860d-5e45-20bb-0f44-42c4ac99f178@redhat.com> In-Reply-To: <0a6b860d-5e45-20bb-0f44-42c4ac99f178@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=hpe.com; x-originating-ip: [1.34.113.40] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 9ad26f5c-e949-416f-7f1e-08d88b700257 x-ms-traffictypediagnostic: CS1PR8401MB0469: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2276; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: m4hnCc/nIwrmt8eaUDbwj3RN9MB+C5Kl0eg32ocVsCSMRWtQiACqhm0tGw0CN+yBSUt8B2ejPyECNV4KXp2lManhq1j1quuZNGB3nrRq8bvMkIQwy1xvDVMppLHktxsbiFTevMdzLtF56OB72vNjAprd19Nt5YrB/7L1MeZ7Up+VaDM0qy0+S5d5uUii89SvlFwGpxXAXKLgwHRZoNxmIsbN7bzuH/PMUgnxGI5DMNp1EYkRFuK3mM4CCQ0lqMuHpwd25SQvJKoJhRogVABp3pwF0cYP90UrT3SqahTRYmApwT8NQq2/1JVGgfiSTwgaD7j1qbMt9kR4xm0keYXgXTpJnLFo2J/0D65qq62QAOBvfcLngKBnIWVLSX6yPjR7sHAxRJV3izZBFY/osFb/4w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(346002)(376002)(366004)(136003)(39860400002)(396003)(33656002)(186003)(54906003)(2906002)(71200400001)(53546011)(26005)(8936002)(478600001)(19627235002)(66946007)(86362001)(9686003)(6506007)(55016002)(7696005)(110136005)(966005)(8676002)(4326008)(66556008)(52536014)(64756008)(66476007)(66446008)(83380400001)(5660300002)(76116006)(316002)(30864003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: r572q2i40ewWn9xmyQHUhqWKaJ+Mxq8UYy7vTPzHr9V42R6krOnmbMLbSzhdKJxLFo+e0KH+wAEFBxKqq5iZiYtlItDslVUgUeIB+o8j6vsB2I8+G5Ix69h147arU8CfxTJ0fQQqgImjA3asAF0bj/CyeZxKGk+FU75yuNCWpuzTDtGZI0n9EUKuWavYmfqKuFgZWIdOFjrpOo7lTVdQLWnFRk92eI9Mp8c4UU7fpZzCTZU52OoGvNAlhfzZL7A7jQPUurV1lhvTZW3cDlW0r1JvBwQGkXfYxKRHQyql1UDnOIkBFNElMvO4d5cVlEZuWTt3Nu5og0dUiJC+gGrUzRyTt/TNk5P5ago4mW4fewMOi4pEsWGidOlLu4Ri9Z3z9hkleYyZvvI260px4+gIOJH8VGRUb1N8oSiAMLKjWFv2dHTYhNciX5wm0TfxhujkzZFNdmvTN47YhSIhlTURkfdG62gKd/Q5wrqkffwzi/x6khrcBwCZV3WIcJRvlYB7fDqyi3qmANutbFcyKOfHOFGin1tMugZ5Y9W+j9uJITi4PwoqwdMJYARfRVSSlFipxdis3UqcO9fN9k2doSi5EMbb8TiYfDbWzv9Qni1KQct/nw6yA3w6KGqUz/oG9yfE+s8j8c9u+hhAwhl5Q23bFWMMlWv18tW8ZGZcRjczD79nnXr3/+VOaAuMK0dbcwBVZ/Syr+XIdzpCeRIBw39sdqNOHnflksybIq15JxRIaHG6bmw3lD0CD1GujltQKUEvuaLyzdgo0DkWi0QMPsKeSDXY49ALzLNTi0d52k7d+XPnVmWXPebXCN8ffudjit9QtokchbYmONyL2HQi+FGqhAK2xRGJ1BLB4o+F6KolQtV+3H98RnzMKZ5yDSN3hiSsUvl9ZmxafYhJ/sKqYuBGXQ== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 9ad26f5c-e949-416f-7f1e-08d88b700257 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2020 03:14:06.3932 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GmNFfe2mKVcWo8VOqw9pQuAgn/9Lc+yhV5lG1FoGLNt5q2NLipkRhVpzYsmlE4sLaaLH+vClTL66FT9Kq/LSLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB0469 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312,18.0.737 definitions=2020-11-18_01:2020-11-17,2020-11-18 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 phishscore=0 clxscore=1015 spamscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011180020 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFsZiBP Zg0KPiBMYXN6bG8gRXJzZWsNCj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAxOCwgMjAyMCAx OjA5IEFNDQo+IFRvOiBDaGFuZywgQWJuZXIgKEhQUyBTVy9GVyBUZWNobm9sb2dpc3QpIDxhYm5l ci5jaGFuZ0BocGUuY29tPjsNCj4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IE1hY2llaiBS YWJlZGEgPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPjsgSmlheGluIFd1DQo+IDxqaWF4 aW4ud3VAaW50ZWwuY29tPjsgU2l5dWFuIEZ1IDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgV2FuZywg Tmlja2xlIChIUFMNCj4gU1cpIDxuaWNrbGUud2FuZ0BocGUuY29tPjsgTydIYW5sZXksIFBldGVy IChFWEwpDQo+IDxwZXRlci5vaGFubGV5QGhwZS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW05FVFdPUktfSFRUUF9FTkFCTEUgUEFUQ0ggMS8xXQ0KPiBOZXR3b3JrUGtnOiBBZGQg TkVUV09SS19IVFRQX0VOQUJMRSBtYWNybw0KPiANCj4gSGkgQWJuZXIsDQo+IA0KPiBPbiAxMS8x Ni8yMCAwMzozMiwgQ2hhbmcsIEFibmVyIChIUFMgU1cvRlcgVGVjaG5vbG9naXN0KSB3cm90ZToN Cj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFs ZiBPZg0KPiA+PiBMYXN6bG8gRXJzZWsNCj4gPj4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDEy LCAyMDIwIDU6MjIgQU0NCj4gPj4gVG86IENoYW5nLCBBYm5lciAoSFBTIFNXL0ZXIFRlY2hub2xv Z2lzdCkgPGFibmVyLmNoYW5nQGhwZS5jb20+Ow0KPiA+PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+PiBDYzogTWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5pbnRlbC5jb20+OyBK aWF4aW4gV3UNCj4gPj4gPGppYXhpbi53dUBpbnRlbC5jb20+OyBTaXl1YW4gRnUgPHNpeXVhbi5m dUBpbnRlbC5jb20+OyBXYW5nLCBOaWNrbGUNCj4gPj4gKEhQUw0KPiA+PiBTVykgPG5pY2tsZS53 YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwgUGV0ZXIgKEVYTCkNCj4gPj4gPHBldGVyLm9oYW5sZXlA aHBlLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbTkVUV09SS19IVFRQX0VO QUJMRSBQQVRDSCAxLzFdDQo+ID4+IE5ldHdvcmtQa2c6IEFkZCBORVRXT1JLX0hUVFBfRU5BQkxF IG1hY3JvDQo+ID4+DQo+ID4+IE9uIDExLzExLzIwIDE0OjE5LCBBYm5lciBDaGFuZyB3cm90ZToN Cj4gDQo+IFsuLi5dDQo+IA0KPiA+Pj4gZGlmZiAtLWdpdCBhL05ldHdvcmtQa2cvTmV0d29ya0Rl ZmluZXMuZHNjLmluYw0KPiA+Pj4gYi9OZXR3b3JrUGtnL05ldHdvcmtEZWZpbmVzLmRzYy5pbmMN Cj4gPj4+IGluZGV4IGE0NDJkMWIxNTcuLjZmMjc0NTgyYTggMTAwNjQ0DQo+ID4+PiAtLS0gYS9O ZXR3b3JrUGtnL05ldHdvcmtEZWZpbmVzLmRzYy5pbmMNCj4gPj4+ICsrKyBiL05ldHdvcmtQa2cv TmV0d29ya0RlZmluZXMuZHNjLmluYw0KPiA+Pj4gQEAgLTE1LDEyICsxNSwxNCBAQA0KPiA+Pj4g ICMgICBERUZJTkUgTkVUV09SS19JUDRfRU5BQkxFICAgICAgICAgICAgID0gVFJVRQ0KPiA+Pj4g ICMgICBERUZJTkUgTkVUV09SS19JUDZfRU5BQkxFICAgICAgICAgICAgID0gVFJVRQ0KPiA+Pj4g ICMgICBERUZJTkUgTkVUV09SS19UTFNfRU5BQkxFICAgICAgICAgICAgID0gVFJVRQ0KPiA+Pj4g KyMgICBERUZJTkUgTkVUV09SS19IVFRQX0VOQUJMRSAgICAgICAgICAgID0gVFJVRQ0KPiA+Pj4g ICMgICBERUZJTkUgTkVUV09SS19IVFRQX0JPT1RfRU5BQkxFICAgICAgID0gVFJVRQ0KPiA+Pg0K PiA+PiAoMikgSSBkaXNhZ3JlZTsgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIE5FVFdPUktfSFRUUF9F TkFCTEUgc2hvdWxkIGJlDQo+ID4+IEZBTFNFLg0KPiA+Pg0KPiA+PiBFeGlzdGVudCBwbGF0Zm9y bXMgdGhhdCBjb25zdW1lICJOZXR3b3JrUGtnL05ldHdvcmtEZWZpbmVzLmRzYy5pbmMiLA0KPiA+ PiBvciB0aGUgaGlnaGVyIGxldmVsICJOZXR3b3JrLmRzYy5pbmMiLCBmYWxsIGluIG9uZSBvZiB0 aGUgZm9sbG93aW5nDQo+IGNhdGVnb3JpZXM6DQo+ID4+DQo+ID4+IC0gVGhleSBkb24ndCBzcGVj aWZ5IE5FVFdPUktfSFRUUF9CT09UX0VOQUJMRSBhdCBhbGwuIEFzIGEgcmVzdWx0LA0KPiA+PiB0 aGV5IGdldCB0aGUgZnVsbCBIVFRQIHN0YWNrLg0KPiA+Pg0KPiA+PiAtIFRoZXkgc2V0IE5FVFdP UktfSFRUUF9CT09UX0VOQUJMRSBleHBsaWNpdGx5IHRvIFRSVUUuIEFzIGEgcmVzdWx0LA0KPiA+ PiB0aGV5IGdldCB0aGUgZnVsbCBIVFRQIHN0YWNrLg0KPiA+Pg0KPiA+PiAtIFRoZXkgc2V0IE5F VFdPUktfSFRUUF9CT09UX0VOQUJMRSBleHBsaWNpdGx5IHRvIEZBTFNFLiBBcyBhIHJlc3VsdCwN Cj4gPj4gdGhleSBnZXQgKm5vbmUqIG9mIHRoZSBmdWxsIEhUVFAgc3RhY2suIFRoZXkgZG9uJ3Qg Z2V0IGEgKnN1YnNldCogb2YNCj4gPj4gdGhlIEhUVFAgc3RhY2sgLS0gdGhleSBnZXQgKm5vbmUq IG9mIGl0Lg0KPiA+Pg0KPiA+PiBUaGUgbGFzdCBidWxsZXQgZXhwbGFpbnMgd2h5IHRoZSBORVRX T1JLX0hUVFBfRU5BQkxFIGRlZmF1bHQgc2hvdWxkDQo+ID4+IGJlIEZBTFNFLg0KPiA+IEkgZG9u 4oCZdCBxdWl0ZSBnZXQgdGhlIGxhc3Qgc2NlbmFyaW8uIElmIHRoZXkgc2V0DQo+IE5FVFdPUktf SFRUUF9CT09UX0VOQUJMRSB0byBGQUxTRSB0aGVuIE5FVFdPUktfSFRUUF9FTkFCTEUgaXMNCj4g c3RpbGwgVFVSRSBmb3Igb3RoZXIgSFRUUCB1c2UgY2FzZXMuDQo+ID4gVGhleSBjYW4gc2V0IE5F VFdPUktfSFRUUF9FTkFCTEUgdG8gRkFMU0UgZXhwbGljaXRseSBpZiB0aGV5IGRvbuKAmXQgZXZl bg0KPiBuZWVkIEhUVFAuDQo+ID4NCj4gDQo+IFdoZW4gd2UgaW1wbGVtZW50IGEgbmV3IGZlYXR1 cmUgKG9yIGp1c3QgYSBjaGFuZ2UpIGluIGNvcmUgZWRrMiwgaXQncyBiZXN0DQo+IHRvIGtlZXAg cGxhdGZvcm1zIChlc3BlY2lhbGx5IG91dC1vZi10cmVlIHBsYXRmb3JtcykgY29tcGxldGVseSB1 bmFmZmVjdGVkLA0KPiAqaWYqIHRoaXMgaXMgcG9zc2libGUgdG8gZG8gd2l0aG91dCBtYWpvciBk aWZmaWN1bHRpZXMuDQoNCkkgZ290IHlvdXIgcG9pbnQgbm93LCBORVRXT1JLX0hUVFBfQk9PVF9F TkFCTEUgZGVmYXVsdCBzZXQgdG8gRkFMU0UgbWFrZXMgc2Vuc2UuDQoNCj4gDQo+IENvbnNpZGVy IGEgcGxhdGZvcm0gdGhhdCBjdXJyZW50bHkgY29udGFpbnMsIGluIGl0cyBEU0MgZmlsZSwNCj4g DQo+ICAgREVGSU5FIE5FVFdPUktfSFRUUF9CT09UX0VOQUJMRSA9IEZBTFNFDQo+IA0KPiBhbmQg dGhlbiBhbiAhaW5jbHVkZSBkaXJlY3RpdmUgZm9yICJOZXR3b3JrUGtnL05ldHdvcmtEZWZpbmVz LmRzYy5pbmMiLg0KPiANCj4gVGhhdCBwYXJ0aWN1bGFyIHBsYXRmb3JtIHBlcm1pdHMgaXRzIHVz ZXJzIHRvIGJ1aWxkIGl0IHdpdGggdGhlIEhUVFAgQm9vdA0KPiBmZWF0dXJlLCBidXQgdGhlIGRl ZmF1bHQgc2V0dGluZyBmb3IgdGhhdCBwbGF0Zm9ybSBpcyB0byBub3QgaW5jbHVkZSBIVFRQIEJv b3QgLQ0KPiAtIG9yIGluIGZhY3QgKkFOWSogb2YgdGhlIEhUVFAgaW5mcmFzdHJ1Y3R1cmUgZWxl bWVudHMuDQo+IA0KPiBJZiB5b3VyIHBhdGNoIHdlcmUgYXBwbGllZCBhcy1pcyB0byBjb3JlIGVk azIsIHRoZW4gc3VjaCBwbGF0Zm9ybXMgd291bGQNCj4gc3VkZGVubHkgc3RhcnQgaW5jbHVkaW5n ICpzb21lKiBwYXJ0cyBvZiB0aGUgSFRUUCBpbmZyYXN0cnVjdHVyZSBieSBkZWZhdWx0LA0KPiB3 aXRob3V0IGV2ZXIgaGF2aW5nIGFza2VkIGZvciBpdC4NCj4gDQo+ID4gSSB0aGluayB0aG9zZSBu ZXR3b3JrIGRlZmluaXRpb25zIHdlcmUgZGVzaWduZWQgYXMgZGVmYXVsdCBPTi4NCj4gDQo+IFRo YXQgZGVmYXVsdCAoZnJvbSBOZXR3b3JrUGtnKSBhcHBsaWVzICp1bmxlc3MqIHRoZSBwbGF0Zm9y bSBzZXRzIGENCj4gZGlmZmVyZW50IGRlZmF1bHQuIENvbnNpZGVyICJOZXR3b3JrUGtnL05ldHdv cmtEZWZpbmVzLmRzYy5pbmMiOg0KPiANCj4gIWlmbmRlZiBORVRXT1JLX0hUVFBfQk9PVF9FTkFC TEUNCj4gICAjDQo+ICAgIyBUaGlzIGZsYWcgaXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgSFRUUChT KSBib290IGZlYXR1cmUuDQo+ICAgIw0KPiAgIERFRklORSBORVRXT1JLX0hUVFBfQk9PVF9FTkFC TEUgPSBUUlVFICFlbmRpZg0KPiANCj4gVGhlIHBsYXRmb3JtIGlzIHdlbGNvbWUgdG8gc2V0IE5F VFdPUktfSFRUUF9CT09UX0VOQUJMRSB0byBGQUxTRSBhcw0KPiB0aGUgcGxhdGZvcm0gZGVmYXVs dCwgYmVmb3JlIGluY2x1ZGluZw0KPiAiTmV0d29ya1BrZy9OZXR3b3JrRGVmaW5lcy5kc2MuaW5j Ii4NCj4gVGhhdCBkb2Vzbid0IG1lYW4gdGhlIHBsYXRmb3JtICpuZXZlciogd2FudHMgdG8gZW5h YmxlIEhUVFAgYm9vdCAodXNlcnMNCj4gbWF5IHN0aWxsIG92ZXJyaWRlIE5FVFdPUktfSFRUUF9C T09UX0VOQUJMRSB0byBUUlVFIG9uIHRoZSBidWlsZA0KPiBjb21tYW5kIGxpbmUpLCBpdCBqdXN0 IG1lYW5zIHRoYXQgdGhlIGRlZmF1bHQgZm9yIHRoZSBwbGF0Zm9ybSBpcyBGQUxTRS4NCj4gDQo+ IEFuZCB5b3VyIHBhdGNoIHdvdWxkIGJyZWFrIHRoYXQsIGFzIGl0IHdvdWxkIHNuZWFrIHNvbWUg dW53YW50ZWQNCj4gY29tcG9uZW50cyBpbnRvIHRoZSBkZWZhdWx0IGJ1aWxkIG9mIHN1Y2ggcGxh dGZvcm1zLg0KPiANCj4gSXQncyBub3QgZ29vZCBwcmFjdGljZSB0byBzYXkgInRoZXkgY2FuIHN0 aWxsIHNldCB0aGUgJ25ldyBmbGFnJyBmb3IgdW5kb2luZyB0aGUNCj4gZGFtYWdlIHdlJ3JlIGNh dXNpbmcgdGhlbSIuIFRoZXJlIHNob3VsZCBiZSAqbm8gZGFtYWdlKiB0byB0aGVtIGluIHRoZQ0K PiBmaXJzdCBwbGFjZSAoaWYgdGhhdCdzIHBvc3NpYmxlIHRvIGltcGxlbWVudCkuIFRoZSBidXJk ZW4gc2hvdWxkIGJlIG9uDQo+IHBsYXRmb3JtcyB0aGF0IHdhbnQgdG8gY29uc3VtZSB0aGUgbmV3 IGZlYXR1cmUgdG8gZXhwbGljaXRseSBhc2sgZm9yIHRoZSBuZXcNCj4gZmVhdHVyZS4NCj4gDQo+ IA0KPiA+DQo+ID4+DQo+ID4+DQo+ID4+IFRoZSBuZXcgc2NlbmFyaW8gc2hvdWxkIG9ubHkgYmUg YWN0aXZlIGlmIGEgcGxhdGZvcm0gZXhwbGljaXRseSBzZXRzDQo+ID4+ICpib3RoKiBORVRXT1JL X0hUVFBfRU5BQkxFPVRSVUUgKmFuZCoNCj4gTkVUV09SS19IVFRQX0JPT1RfRU5BQkxFPUZBTFNF Lg0KPiA+Pg0KPiA+Pg0KPiA+Pj4gICMgICBERUZJTkUgTkVUV09SS19BTExPV19IVFRQX0NPTk5F Q1RJT05TID0gRkFMU0UNCj4gPj4+ICAjICAgREVGSU5FIE5FVFdPUktfSVNDU0lfRU5BQkxFICAg ICAgICAgICA9IFRSVUUNCj4gPj4+ICAjICAgREVGSU5FIE5FVFdPUktfVkxBTl9FTkFCTEUgICAg ICAgICAgICA9IFRSVUUNCj4gPj4+ICAjDQo+ID4+PiAgIyBDb3B5cmlnaHQgKGMpIDIwMTksIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4+ICsjIChDKSBD b3B5cmlnaHQgMjAyMCBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxC Uj4NCj4gPj4+ICAjDQo+ID4+PiAgIyAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiA+Pj4gICMNCj4gPj4+IEBAIC03Myw2ICs3NSwxMyBAQA0KPiA+Pj4g ICAgREVGSU5FIE5FVFdPUktfVExTX0VOQUJMRSA9IFRSVUUNCj4gPj4+ICAhZW5kaWYNCj4gPj4+ DQo+ID4+PiArIWlmbmRlZiBORVRXT1JLX0hUVFBfRU5BQkxFDQo+ID4+PiArICAjDQo+ID4+PiAr ICAjIFRoaXMgZmxhZyBpcyB0byBlbmFibGUgb3IgZGlzYWJsZSBIVFRQKFMpIGZlYXR1cmUuDQo+ ID4+PiArICAjDQo+ID4+DQo+ID4+ICgzKSBUaGUgZG9jdW1lbnRhdGlvbiBoZXJlIG11c3QgZXhw bGFpbiB0aGF0IE5FVFdPUktfSFRUUF9FTkFCTEUNCj4gaXMNCj4gPj4gaWdub3JlZCAoaXQgaGFz IG5vIGVmZmVjdCB3aGF0c29ldmVyKSBpZiBORVRXT1JLX0hUVFBfQk9PVF9FTkFCTEUNCj4gaXMN Clllcy4NCg0KPiA+PiBUUlVFLg0KPiA+Pg0KPiA+Pj4gKyAgREVGSU5FIE5FVFdPUktfSFRUUF9F TkFCTEUgPSBUUlVFDQo+ID4+DQo+ID4+ICg0KSBTZWUgKDIpLCB0aGlzIHNob3VsZCBiZSBGQUxT RS4NClllcw0KDQo+ID4+DQo+ID4+PiArIWVuZGlmDQo+ID4+PiArDQo+ID4+PiAgIWlmbmRlZiBO RVRXT1JLX0hUVFBfQk9PVF9FTkFCTEUNCj4gPj4+ICAgICMNCj4gPj4+ICAgICMgVGhpcyBmbGFn IGlzIHRvIGVuYWJsZSBvciBkaXNhYmxlIEhUVFAoUykgYm9vdCBmZWF0dXJlLg0KPiA+Pj4NCj4g Pj4NCj4gPj4gKDUpIFRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIHNob3VsZCBiZSB1cGRhdGVkIHRv bzoNCj4gPj4NCj4gPj4gICAhaWYgKCQoTkVUV09SS19IVFRQX0JPT1RfRU5BQkxFKSA9PSBUUlVF KSBBTkQNCj4gPj4gKCQoTkVUV09SS19UTFNfRU5BQkxFKSA9PSBGQUxTRSkgQU5EDQo+ID4+ICgk KE5FVFdPUktfQUxMT1dfSFRUUF9DT05ORUNUSU9OUykgPT0gRkFMU0UpDQo+ID4+ICAgICAhZXJy b3IgIk11c3QgZW5hYmxlIFRMUyB0byBzdXBwb3J0IEhUVFBTLCBvciBhbGxvdyB1bnNlY3VyZWQg SFRUUA0KPiA+PiBjb25uZWN0aW9uLCBpZiBORVRXT1JLX0hUVFBfQk9PVF9FTkFCTEUgaXMgc2V0 IHRvIFRSVUUhIg0KPiA+PiAgICFlbmRpZg0KPiA+Pg0KPiA+PiBUaGF0J3MgYmVjYXVzZSBORVRX T1JLX0FMTE9XX0hUVFBfQ09OTkVDVElPTlMgY29udHJvbHMNCj4gPj4gIlBjZEFsbG93SHR0cENv bm5lY3Rpb25zIiwgYW5kIHRoaXMgUENEIGlzIGNvbnN1bWVkIGJ5IEh0dHBEeGUgYXMNCj4gPj4g d2VsbCwgbm90IGp1c3QgSHR0cEJvb3REeGUuDQo+ID4+DQo+ID4+IFRodXMsIHRoZSBzdWJjb25k aXRpb24NCj4gPj4NCj4gPj4gICAoJChORVRXT1JLX0hUVFBfQk9PVF9FTkFCTEUpID09IFRSVUUp DQo+ID4+DQo+ID4+IHNob3VsZCBiZSByZXBsYWNlZCBieQ0KPiA+Pg0KPiA+PiAgICgoJChORVRX T1JLX0hUVFBfQk9PVF9FTkFCTEUpID09IFRSVUUpIE9SDQo+ID4+ICgkKE5FVFdPUktfSFRUUF9F TkFCTEUpID09IFRSVUUpKQ0KPiA+Pg0KPiA+PiBiZWNhdXNlIHRoYXQgY29uZGl0aW9uIGRlc2Ny aWJlcyB3aGV0aGVyIEh0dHBEeGUgd2lsbCBiZSBpbmNsdWRlZC4NClllcywgYnV0IEkgd2lsbCBi cmVhayBkb3duIHRoaXMgbG9uZyBjb25kaXRpb24gY2hlY2sgaW50byB0d28gYmxvY2tzIGZvciB0 aGUgcmVhZGFiaWxpdHkuDQoNCiFpZiAoJChORVRXT1JLX0hUVFBfQk9PVF9FTkFCTEUpID09IFRS VUUpIE9SICgkKE5FVFdPUktfSFRUUF9FTkFCTEUpID09IFRSVUUpDQogICAhaWYgKCgkKE5FVFdP UktfVExTX0VOQUJMRSkgPT0gRkFMU0UpIEFORCAoJChORVRXT1JLX0FMTE9XX0hUVFBfQ09OTkVD VElPTlMpID09IEZBTFNFKQ0KICAgICAgIWVycm9yICJNdXN0IGVuYWJsZSBUTFMgdG8gc3VwcG9y dCBIVFRQUywgb3IgYWxsb3cgdW5zZWN1cmVkIEhUVFAgY29ubmVjdGlvbiwgaWYgTkVUV09SS19I VFRQX0JPT1RfRU5BQkxFIG9yIE5FVFdPUktfSFRUUF9FTkFCTEUgaXMgc2V0IHRvIFRSVUUhIg0K ICAgIWVuZGlmDQohZW5kaWYNCg0KPiA+Pg0KPiA+PiBTcGVjaWZpY2FsbHksIHRoZSBmb2xsb3dp bmcgYnVpbGQgY29uZmlnIHNob3VsZCBiZSByZWplY3RlZDoNCj4gPj4NCj4gPj4gICBORVRXT1JL X0hUVFBfQk9PVF9FTkFCTEUgICAgICAgPSBGQUxTRSAobWFudWFsbHkgc2V0KQ0KPiA+PiAgIE5F VFdPUktfSFRUUF9FTkFCTEUgICAgICAgICAgICA9IFRSVUUgIChtYW51YWxseSBzZXQpDQo+ID4+ ICAgTkVUV09SS19UTFNfRU5BQkxFICAgICAgICAgICAgID0gRkFMU0UgKG1hbnVhbGx5IHNldCkN Cj4gPj4gICBORVRXT1JLX0FMTE9XX0hUVFBfQ09OTkVDVElPTlMgPSBGQUxTRSAoZGVmYXVsdCkN Cj4gPiBXaGF0IGlmIHRoZSB1c2UgY2FzZSBqdXN0IHJlcXVpcmVzIEhUVFAgVXRpbGl0eSBQcm90 b2NvbCB0byBwcm9kdWNlIGFuZA0KPiBjb25zdW1lIEhUVFAgaGVhZGVycyBidXQgbm90IHNlbmRp bmcgb3V0IHRocm91Z2ggSFRUUCBwcm90b2NvbCwgdmlhIGluLQ0KPiBiYW5kIGNoYW5uZWwgaW5z dGVhZC4gIEkgZG9u4oCZdCB0aGluayB3ZSBoYXZlIHRvIHB1dCB0aGUgcmVzdHJpY3Rpb25zIHRo aXMgb25lLg0KPiANCj4gSSBkb24ndCB1bmRlcnN0YW5kLCBJJ20gc29ycnkuDQo+IA0KPiBUaGUg YWJvdmUgY29tYmluYXRpb24gb2YgZmxhZ3MgbWVhbnMgdGhhdDoNCj4gLSB0aGUgdXNlciB3YW50 cyB0aGUgSFRUUCBiYXNlIGluZnJhc3RydWN0dXJlLCB3aXRob3V0IEhUVFAgQm9vdCwNCj4gLSAq cGx1cyogdGhleSBkaXNhYmxlIFRMUywNCj4gLSAqcGx1cyogdGhleSBmb3JiaWQgdGhlIEhUVFAg YmFzZSBpbmZyYXN0cnVjdHVyZSBmb3IgbWFraW5nIChvciBldmVuDQo+IGFjY2VwdGluZykgcGxh aW50ZXh0IEhUVFAgY29ubmVjdGlvbnMuDQo+IA0KPiBUaGUgZGVzY3JpYmVkIHNjZW5hcmlvIHJl cXVpcmVzIHRoZSBIVFRQIGJhc2UgaW5mcmFzdHJ1Y3R1cmUgdG8gYWx3YXlzDQo+IGNyZWF0ZSAo b3IgZW5mb3JjZSkgZW5jcnlwdGVkIChIVFRQUykgY29ubmVjdGlvbnMsICpidXQqIHdpdGhvdXQg cmVseWluZyBvbg0KPiBUTFMuDQo+IA0KPiBCdXQgdGhhdCdzIGEgcmVxdWlyZW1lbnQgdGhhdCdz IGltcG9zc2libGUgdG8gc2F0aXNmeTogaW4gZWRrMiwgdGhlDQo+ICpvbmx5KiBtZWFucyBmb3Ig bWFraW5nIG9yIGFjY2VwdGluZyBIVFRQUyBjb25uZWN0aW9ucyAocmVnYXJkbGVzcyBvZg0KPiB3 aGV0aGVyIHRoZXkgYXJlIGZvciBCb290IHB1cnBvc2VzIG9yIG90aGVyd2lzZSkgaXMgVExTLg0K PiANCj4gU28gaW4gdGhpcyBzY2VuYXJpbywgdGhlIGJ1aWxkIHNob3VsZCBhYm9ydCBhdCBvbmNl Lg0KQWgsIHlvdXIgcG9pbnQgaXMgdGhhdOKAmXMgbm90IHJlYXNvbmFibGUgdG8gaGF2ZSBib3Ro IE5FVFdPUktfVExTX0VOQUJMRSBhbmQgTkVUV09SS19BTExPV19IVFRQX0NPTk5FQ1RJT05TIHNl dCB0byBGQUxTRSBvbiBlZGsyLiBCdXQgdGhpcyBzZWVtcyB0byBtZSB0aGlzIHNjZW5hcmlvIGZh bGxzIGludG8gdGhlIGNoYW5nZSBmb3IgKDUpLA0KDQohaWYgKCQoTkVUV09SS19IVFRQX0JPT1Rf RU5BQkxFKSA9PSBUUlVFKSBPUiAoJChORVRXT1JLX0hUVFBfRU5BQkxFKSA9PSBUUlVFKQ0KICAg IWlmICgoJChORVRXT1JLX1RMU19FTkFCTEUpID09IEZBTFNFKSBBTkQgKCQoTkVUV09SS19BTExP V19IVFRQX0NPTk5FQ1RJT05TKSA9PSBGQUxTRSkNCiAgICAgICFlcnJvciAiTXVzdCBlbmFibGUg VExTIHRvIHN1cHBvcnQgSFRUUFMsIG9yIGFsbG93IHVuc2VjdXJlZCBIVFRQIGNvbm5lY3Rpb24s IGlmIE5FVFdPUktfSFRUUF9CT09UX0VOQUJMRSBvciBORVRXT1JLX0hUVFBfRU5BQkxFIGlzIHNl dCB0byBUUlVFISINCiAgICFlbmRpZg0KIWVuZGlmDQpPciB5b3Ugd291bGQgbGlrZSB0byBoYXZl IHRoZSBkaWZmZXJlbnQgZXJyb3IgbWVzc2FnZXM/DQoNCg0KDQpNeSBwb2ludCB3YXMgdGhlIG1h Y3JvIHdvdWxkIGJlIGxvb2tlZCBhcyBiZWxvdyBhZnRlciB0aGlzIHBhdGNoLA0KIWlmICgkKE5F VFdPUktfSFRUUF9CT09UX0VOQUJMRSkgPT0gVFJVRSkgT1IgKCQoTkVUV09SS19IVFRQX0VOQUJM RSkgPT0gVFJVRSkNCiAgICBOZXR3b3JrUGtnL0Ruc0R4ZS9EbnNEeGUuaW5mDQogICAgTmV0d29y a1BrZy9IdHRwRHhlL0h0dHBEeGUuaW5mDQogICAgTmV0d29ya1BrZy9IdHRwVXRpbGl0aWVzRHhl L0h0dHBVdGlsaXRpZXNEeGUuaW5mDQohZW5kaWYNCg0KVGhlcmUgY291bGQgYmUgdGhlIHVzZSBj YXNlICh3aXRoIE5FVFdPUktfSFRUUF9CT09UX0VOQUJMRSA9IEZBTFNFKSB0aGF0IHRoZSBpbXBs ZW1lbnRhdGlvbiBqdXN0IHJlcXVpcmVzIEh0dHBVdGlsaXRpZXNEeGUgdG8gbWFuaXB1bGF0ZSB0 aGUgSFRUUCBoZWFkZXJzIGJ1dCBub3QgcmVhbGx5IHRyYW5zZmVycmluZyBIVFRQIHJlcXVlc3Qv cmVzcG9uc2UgdGhyb3VnaCBIVFRQIHByb3RvY29sLiBIVFRQIHBheWxvYWRzIG1heSB0cmFuc2Zl cnJlZCBvdmVyIHRoZSBpbi1iYW5kIHRyYW5zcG9ydC4NCkFib3ZlIGNvbmRpdGlvbiBjaGVjayBi cmVha3MgdGhpcyB1c2UgY2FzZS4gVGhpcyBhbHNvIHJlbWluZHMgbWUgdGhhdCB0aGUgY2hhbmdl IGZvciAoNSkgYWxzbyBicmVha3MgdGhpcyB1c2UgY2FzZS4gDQoNCkhvdyBhYm91dCB3ZSBqdXN0 IGxlYXZlIGl0IHVuY2hhbmdlZCBmb3IgKDUpLCBvbmx5IGhhbmRsZSBORVRXT1JLX0hUVFBfQk9P VF9FTkFCTEUgY2FzZS4gT3IsIHdlIGNyZWF0ZSBhbm90aGVyIG1hY3JvIGZvciBORVRXT1JLX0hU VFBfVVRJTElUWSBidXQgaXQgc2VlbXMgdG8gbWUgdG9vIG11Y2guDQpIb3dldmVyLCBJIHdvdWxk IGxpa2UgdG8gaGF2ZSBhbm90aGVyIG1hY3JvIGZvciBOZXR3b3JrUGtnL0Ruc0R4ZS9EbnNEeGUu aW5mIGJlY2F1c2Ugbm90IGFsbCBvZiBIVFRQIGNvbm5lY3Rpb25zIHJlcXVpcmVzIEROUy4NCkhv dyBkbyB5b3UgdGhpbms/DQoNCkFibmVyDQoNCj4gDQo+IExhc3psbw0KPiANCj4gDQo+IA0KPiAN Cj4gDQoNCg==