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.web10.24956.1608476882853567074 for ; Sun, 20 Dec 2020 07:08:03 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=CAgoJBwP; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=06231ac905=abner.chang@hpe.com) Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 0BKF2ASr030135; Sun, 20 Dec 2020 15:08:02 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=kLuYNUFbTpt+AnHPaxfYqY0h4ZWLV3LkVPu52zpMFN0=; b=CAgoJBwP5qQ7gHz0NBFAYN4AUvvHjBdK8gBFbIHbHx8UXnLlYKiI6tgQ21S8hzL//wEt +adFTVM0zVwdIB6R+WDn7v15O9vhuCP/Pn03IU7/nF4HS7PCR6Axai8VSxraDt6qK/BZ 6Al3+C+grdB4fd5OK6ug+lJiiCpzpyZjm+VwVKsnas6ECd8i1bJ59qQB+ngR8jgoQlSz aajeWSXKdrDGrcfoWgyMAcdUfclqujOLuKyf7nQ73zeWFkqIleISFv0YvQDJOELByEoL CgJqu+dzlOVthEXQ/DvV62C1/D3MS1rMNkyxoT/h/G/nPjKJBVAuKESc3PGsjEmJWKsV 3w== Received: from g2t2352.austin.hpe.com (g2t2352.austin.hpe.com [15.233.44.25]) by mx0b-002e3701.pphosted.com with ESMTP id 35huj3afhj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 20 Dec 2020 15:08:01 +0000 Received: from G2W6309.americas.hpqcorp.net (g2w6309.austin.hp.com [16.197.64.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g2t2352.austin.hpe.com (Postfix) with ESMTPS id 107EC85; Sun, 20 Dec 2020 15:08:00 +0000 (UTC) Received: from G4W9120.americas.hpqcorp.net (2002:10d2:150f::10d2:150f) by G2W6309.americas.hpqcorp.net (2002:10c5:4033::10c5:4033) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 20 Dec 2020 15:08:00 +0000 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (15.241.52.13) by G4W9120.americas.hpqcorp.net (16.210.21.15) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Sun, 20 Dec 2020 15:08:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZCEB9PaJpE3sTeWcvvD8XmHH+c4zSpqvaoirglEuuiFM17iekUXpawol98t4Bs3+K2PiYSho+lqh9jTsjea71rGIAe/PoP6hH4tVi+mCK4qg2Xy6UpC/8l9MZeuDWPfgy58oEJshJtiAl0FsM6wEGiHZ3D2uXEgfmmgYsFTqJwS4YybWYzpEeCEjyjl89UFvr6qm35O9wBeRbCLB8iPUwLbWafAZ8XgntzpheCUHClxfKmng/TXAAliv56lU5TmQYNd5Pjm5lVjiJrnFOAoB6nAp4R0lVONrgCG9To5Z8F1eybX8mWejOoS7x8L1WDfbGPbGX29FDbJr7RNPKk2BjQ== 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=zS7sp331/DPuoNbs3FmOu7ongPkeVbecXI/YGCzsCeo=; b=R0+LjeScJOQop1j5/641c5qweWYVdrwzm2RDCxNBE0f7X6XYBdBycFQF+n9+7MebdSTKNCk8AWrNdiBwWj1n4djIOQh293e4Qw09nHP11jOOInrMfQN+qPnRpXcOudQiw3pCsarzrxzq9Q38qtTsGgntKSuaX3YWIcjRDSiqDXygkgvdPb1OCUu1vK3wq3POJRlC4VvXiIjqQZGkAVV2HSovmTl8svnB4hwcI6oK781eRtdLe1lfoYhEsq5sJmJJD8CZa6IaJaN94ghTOVDaVJUC/YwPVPf2Yc/NmCrx1GFI0OoAekJAesGqxQIpyPZMpgHVKzWhTuD9hg89gfnCvw== 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 CS1PR8401MB1096.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7512::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.29; Sun, 20 Dec 2020 15:07:57 +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.3676.033; Sun, 20 Dec 2020 15:07:56 +0000 From: "Abner Chang" To: "devel@edk2.groups.io" , "michael.d.kinney@intel.com" CC: Leif Lindholm , "Wang, Nickle (HPS SW)" , "O'Hanley, Peter (EXL)" Subject: Re: [edk2-devel] [PATCH v6 3/6] RedfishPkg/CrtLib: C runtime library Thread-Topic: [edk2-devel] [PATCH v6 3/6] RedfishPkg/CrtLib: C runtime library Thread-Index: AQHW0jt/9ZknCiqcYkm8poCnEy7pLKn5S2FAgAbTwoA= Date: Sun, 20 Dec 2020 15:07:56 +0000 Message-ID: References: <20201214035321.17000-1-abner.chang@hpe.com> <20201214035321.17000-4-abner.chang@hpe.com> <16511FD303DAB3AC.18439@groups.io> In-Reply-To: <16511FD303DAB3AC.18439@groups.io> 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: [165.225.116.142] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: ff001fdc-8c68-48f5-2fb7-08d8a4f9087c x-ms-traffictypediagnostic: CS1PR8401MB1096: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 19IQ2o14EuOLlr9OsD4E/bcElrmZINyji+44lhje985NO6jRltzxdTVH86VVq/JU53YiAdBWWeKh1v9ufZ8x7CYNHFY4lYDPJtOFNOwi/ifdexIj2YRQOQkpqesFqndi0neBuYBm2OedpA7468SsXH91K21YiIoDhDN974iOLmd3C2rwMifoB9cAfwBhAV0V+KMwBrsyUVE41EvKXlmJ/zAs9uQ94mit7CWJXSk5pKY5r++TbryD2hjGeIfvUrL9bWJYcwu6sMuGKsxi+dg6PKAgNrzAVab2plHmQ96+1CjE+DiWLSpL41AGX+jojX5Mjg4YK+KqMeqn1vYgZDaN2qd+Rof334hMIzDUtHKS/1CUBxkKBrdMjuvUej10sPMNvPrcdL6iLrrurfo4aU0iz8mGX7jvQDnTBk9OEjUIAtA++mJSXfhVC120nC4p2ahvkFNhC4ct099vG97HvZioiEk94fawUv5Vwo2AijLGiqVs5gwTu43TMnDjgwzxsPoBC+MvLGa+NHzIwhE5rl4lmrKGdLf70T44NroIkoYS/y4= 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:(396003)(366004)(376002)(136003)(346002)(39860400002)(8936002)(55016002)(316002)(30864003)(110136005)(54906003)(9686003)(55236004)(26005)(478600001)(5660300002)(86362001)(53546011)(83380400001)(8676002)(66476007)(4326008)(186003)(76116006)(66446008)(66556008)(33656002)(66946007)(64756008)(966005)(19627235002)(71200400001)(6506007)(2906002)(52536014)(7696005)(461764006)(21314003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NDZjaXl0RXJsaUk1MDV4MThDQ3BHZzB1K2ZPRGNPQndkcllTZWp3THAxNUlj?= =?utf-8?B?d0ZBRGw2TU9yQitOa1Bmd0VNNkhEWGs0U1c2eUNPUCtsZlE0T0FHenRTZlVr?= =?utf-8?B?ODhhWEdXRXJOM3g1UjlaaGc5RWs0SmdxM2hVUFZmT3FlaGtMbzVIaVZ2UTEx?= =?utf-8?B?ZWhXaXdDNzVhYlZWNWZkSm5GT3NydHljby9UOENKelhXamlvendobElqSmUv?= =?utf-8?B?M2RSWEdRQ1VhZzV1OTBqTTEzc0ZXTGNzZjNEdkFlQmRLWmlXbE9MREdvNEJs?= =?utf-8?B?VFJMbDRuYVBPR3VOVlRadHRkRE9QbEs2T2F0SC9DbnJiVjNCZHB0eEs2NnZ5?= =?utf-8?B?U05UenFYQ0NKV1NtbHhmVFE5cmt3SWtCQjBlWmdZWVVWMlRiQzA1U3F4aXAr?= =?utf-8?B?OGYzNWpyUkJQdk10endRZWcvNVZJamZNRFhoSndDdlV4Q0VUS0QvQUJUTG1Y?= =?utf-8?B?dmlrVm80bUluQWM0SWNtWldXU084Zkl0OWdBWTZ2UUVHTUIzeC9hd0YxU3dt?= =?utf-8?B?VUgvWm9IeU16bys4S1VqL2Y5K216c1JNTnhjOS9ha3hBM2ZKMmZGRmJYVjE5?= =?utf-8?B?cy9HTG1MYTlBdXpCUWkrclkya1dZWHkrN2NsYWlPNXFONjFtQ3UrUmdxZmJo?= =?utf-8?B?cFM2OTQzTFpwWHBHcXIzUm4xUjZTVi9hUEhnS0pETlFLTFhiZVdCcEFEK3pZ?= =?utf-8?B?ZjBoZ0F5NGJmWnpvNk1Wb2JLYVA1QU1zM0puenlBMnJLUG5QOG5ObmozNVJq?= =?utf-8?B?TXcxbXNvYTBjemlRcGZlcEdzTVV6MDRqZnl2Vm9hUlIrR0dKOUU1OEVzWFVN?= =?utf-8?B?TWJjN3JIa2sxOG1kV25JVTg4OGpxK0h4ZWZXVDFwWDYyTGZwZWtuQUxYQlZp?= =?utf-8?B?UmhDeGJ6NjJpL2djOUE3Q2NXeDZFK2hTaW9pUHI5cld2Tit1bnM1V2tENzJ3?= =?utf-8?B?MGx0SjErZ2ZWZVUwSnF2bFN0S2t2ZVplVENianVkUjRSV0pVL3dWZHJzdDUx?= =?utf-8?B?Rys4YWJjOTd3OXZ1TVMvdm4ydHNjVitjNmk2NUxrcjFZa3B6ampaR2NMMnA1?= =?utf-8?B?S2JGWVZ4aUUvR0hONGxFRGVKWXlEd1RKVlpFR0RXRkFhYnZDc3pwM3pCUW1Q?= =?utf-8?B?OWc5VGttNUF2YVNZWEZDMGprNGVTQXJCczQvRFpvTjRMZmtEZjBrZXozbUlM?= =?utf-8?B?eWlvU1hzeE5CTUtCUDFJL1pGNGo0SW9rVWtJRHhLM2VWSi9IKzBONURRSnp4?= =?utf-8?B?aEtiZk5IOGhBeWg1TWRiWXhEMi85N1J0bjZJajg4WG9IcFBQNjJTV3NXOTFZ?= =?utf-8?Q?3L4KAye1XEf/0=3D?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: ff001fdc-8c68-48f5-2fb7-08d8a4f9087c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2020 15:07:56.7244 (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: 3ZGAo8z5SewJQMo54EiK8Za2S2Ld2/tCfLP4Byqq6/h3VSk7zSk0JrLhietOT3jIK5PvFqsXp3nVw7weDDs9PQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB1096 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.343,18.0.737 definitions=2020-12-20_07:2020-12-19,2020-12-20 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 mlxlogscore=999 clxscore=1015 priorityscore=1501 bulkscore=0 spamscore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012200112 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWlrZSwNCkFueSBvdGhlciBjb21tZW50cyBvbiB2OCBwYXRjaGVzPw0KDQpBYm5lcg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlv IFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFsZiBPZg0KPiBBYm5lciBDaGFu Zw0KPiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDE2LCAyMDIwIDI6NTIgUE0NCj4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPiBDYzogTGVp ZiBMaW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+OyBXYW5nLCBOaWNrbGUgKEhQUyBTVykNCj4g PG5pY2tsZS53YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwgUGV0ZXIgKEVYTCkgPHBldGVyLm9oYW5s ZXlAaHBlLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjYgMy82XSBS ZWRmaXNoUGtnL0NydExpYjogQyBydW50aW1lIGxpYnJhcnkNCj4gDQo+IERvbmUuIEZpeCBpbiBu ZXh0IHNldCBvZiBwYXRjaGVzLg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMu aW9dIE9uIEJlaGFsZiBPZg0KPiA+IE1pY2hhZWwgRCBLaW5uZXkNCj4gPiBTZW50OiBUdWVzZGF5 LCBEZWNlbWJlciAxNSwgMjAyMCAxOjA3IEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBDaGFuZywgQWJuZXIgKEhQUyBTVy9GVyBUZWNobm9sb2dpc3QpDQo+ID4gPGFibmVyLmNoYW5n QGhwZS5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+DQo+ID4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPjsgV2FuZywgTmlj a2xlIChIUFMgU1cpDQo+ID4gPG5pY2tsZS53YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwgUGV0ZXIg KEVYTCkNCj4gPHBldGVyLm9oYW5sZXlAaHBlLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazIt ZGV2ZWxdIFtQQVRDSCB2NiAzLzZdIFJlZGZpc2hQa2cvQ3J0TGliOiBDIHJ1bnRpbWUNCj4gbGli cmFyeQ0KPiA+DQo+ID4gSWYgQ3J0TGliIGlzIGEgY3VzdG9tIGxpYnJhcnkgdG8gc3VwcG9ydCB1 c2Ugb2YgIGphbnNzb24sIHRoZW4gaXQgc2hvdWxkIGdvIGludG8NCj4gYQ0KPiA+IHByaXZhdGUg aW5jbHVkZSBkaXJlY3RvcnkgaW4gUmVkRmlzaFBrZywgbm90IHRoZSBwdWJsaWMgaW5jbHVkZSBk aXJlY3RvcnkuDQo+ID4NCj4gPiBUaGUgb25seSBpbmNsdWRlIGZpbGVzIHRoYXQgc2hvdWxkIGdv IGludG8gdGhlIHB1YmxpYyBpbmNsdWRlIGRpcmVjdG9yeSBvZiBhDQo+ID4gcGFja2FnZSBhcmUg aW5jbHVkZSBmaWxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8gbW9kdWxlcy9saWJzIGltcGxlbWVu dGVkDQo+ID4gb3V0c2lkZSB0aGUgUmVkRmlzaFBrZy4gIFBsZWFzZSByZXZpZXcgYWxsIHRoZSBp bmNsdWRlIGZpbGVzIGluIFJlZEZpc2hQa2cNCj4gd2l0aA0KPiA+IHRoaXMgaW4gbWluZC4NCj4g Pg0KPiA+IE1pa2UNCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmIE9mDQo+IEFibmVyDQo+ID4gPiBDaGFuZw0KPiA+ID4gU2VudDogU3VuZGF5LCBEZWNlbWJl ciAxMywgMjAyMCA3OjUzIFBNDQo+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ IENjOiBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47IE5pY2tsZSBXYW5nDQo+ID4g PiA8bmlja2xlLndhbmdAaHBlLmNvbT47IFBldGVyIE8nSGFubGV5IDxwZXRlci5vaGFubGV5QGhw ZS5jb20+DQo+ID4gPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHY2IDMvNl0gUmVkZmlz aFBrZy9DcnRMaWI6IEMgcnVudGltZQ0KPiA+ID4gbGlicmFyeQ0KPiA+ID4NCj4gPiA+IENSVCBs aWJyYXJ5IGlzIGN1cnJlbnRseSB1c2VkIGJ5IGVkazIgSnNvbkxpYiAob3BlbiBzb3VyY2UgamFu c3Nvbg0KPiA+ID4gcHJvamVjdCkgYW5kIGVkazIgUmVkZmlzaExpYiAobGlicmVkZmlzaCBvcGVu IHNvdXJjZSBwcm9qZWN0KS4gQ3J0TGliDQo+ID4gPiBsaWJyYXJ5IHByb3ZpZGVzIHRoZSBuZWNl c3NhcnkgQyBydW50aW1lIGVxdWl2YWxlbnQgZWRrMiBmdW5jdGlvbnMgZm9yDQo+ID4gPiBvcGVu IHNvdXJjZSBwcm9qZWN0cy4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBYm5lciBDaGFu ZyA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4gPiA+DQo+ID4gPiBDYzogTGVpZiBMaW5kaG9sbSA8 bGVpZkBudXZpYWluYy5jb20+DQo+ID4gPiBDYzogTmlja2xlIFdhbmcgPG5pY2tsZS53YW5nQGhw ZS5jb20+DQo+ID4gPiBDYzogUGV0ZXIgTydIYW5sZXkgPHBldGVyLm9oYW5sZXlAaHBlLmNvbT4N Cj4gPiA+IC0tLQ0KPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvYXNzZXJ0LmggICAgICB8 ICAxNiArDQo+ID4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9lcnJuby5oICAgICAgIHwgIDE2 ICsNCj4gPiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L2xpbWl0cy5oICAgICAgfCAgMTYgKw0K PiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvbWF0aC5oICAgICAgICB8ICAxNiArDQo+ID4g PiAgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRhcmcuaCAgICAgIHwgIDE1ICsNCj4gPiA+ICBS ZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N0ZGRlZi5oICAgICAgfCAgMTYgKw0KPiA+ID4gIFJlZGZp c2hQa2cvSW5jbHVkZS9DcnQvc3RkaW8uaCAgICAgICB8ICAxNSArDQo+ID4gPiAgUmVkZmlzaFBr Zy9JbmNsdWRlL0NydC9zdGRsaWIuaCAgICAgIHwgIDE2ICsNCj4gPiA+ICBSZWRmaXNoUGtnL0lu Y2x1ZGUvQ3J0L3N0cmluZy5oICAgICAgfCAgMTYgKw0KPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVk ZS9DcnQvc3lzL3RpbWUuaCAgICB8ICAxNSArDQo+ID4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0Ny dC9zeXMvdHlwZXMuaCAgIHwgIDE1ICsNCj4gPiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3Rp bWUuaCAgICAgICAgfCAgMTUgKw0KPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9MaWJyYXJ5L0Ny dExpYi5oICB8IDE5NSArKysrKysrKw0KPiA+ID4gIFJlZGZpc2hQa2cvTGlicmFyeS9DcnRMaWIv Q3J0TGliLmMgICB8IDcwNQ0KPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4g IFJlZGZpc2hQa2cvTGlicmFyeS9DcnRMaWIvQ3J0TGliLmluZiB8ICAzNyArKw0KPiA+ID4gIFJl ZGZpc2hQa2cvUmVkZmlzaExpYnMuZHNjLmluYyAgICAgICB8ICAgMSArDQo+ID4gPiAgUmVkZmlz aFBrZy9SZWRmaXNoUGtnLmNpLnlhbWwgICAgICAgIHwgIDE5ICsNCj4gPiA+ICBSZWRmaXNoUGtn L1JlZGZpc2hQa2cuZGVjICAgICAgICAgICAgfCAgIDggKw0KPiA+ID4gIFJlZGZpc2hQa2cvUmVk ZmlzaFBrZy5kc2MgICAgICAgICAgICB8ICAgMSArDQo+ID4gPiAgMTkgZmlsZXMgY2hhbmdlZCwg MTE1MyBpbnNlcnRpb25zKCspDQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFJlZGZpc2hQa2cv SW5jbHVkZS9DcnQvYXNzZXJ0LmggIGNyZWF0ZSBtb2RlDQo+ID4gPiAxMDA2NDQgUmVkZmlzaFBr Zy9JbmNsdWRlL0NydC9lcnJuby5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+IFJlZGZpc2hQ a2cvSW5jbHVkZS9DcnQvbGltaXRzLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gUmVkZmlz aFBrZy9JbmNsdWRlL0NydC9tYXRoLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gUmVkZmlz aFBrZy9JbmNsdWRlL0NydC9zdGRhcmcuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiBSZWRm aXNoUGtnL0luY2x1ZGUvQ3J0L3N0ZGRlZi5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+IFJl ZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkaW8uaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiBS ZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N0ZGxpYi5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+ IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RyaW5nLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ ID4gUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zeXMvdGltZS5oICBjcmVhdGUgbW9kZSAxMDA2NDQN Cj4gPiA+IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3lzL3R5cGVzLmgNCj4gPiA+ICBjcmVhdGUg bW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC90aW1lLmggIGNyZWF0ZSBtb2RlIDEw MDY0NA0KPiA+ID4gUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvQ3J0TGliLmgNCj4gPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuYw0KPiA+ ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBSZWRmaXNoUGtnL0xpYnJhcnkvQ3J0TGliL0NydExpYi5p bmYNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9hc3Nl cnQuaA0KPiA+ID4gYi9SZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L2Fzc2VydC5oIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0IGluZGV4DQo+ID4gPiAwMDAwMDAwMDAwLi5mOWFiN2VmOWNhDQo+ID4gPiAtLS0g L2Rldi9udWxsDQo+ID4gPiArKysgYi9SZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L2Fzc2VydC5oDQo+ ID4gPiBAQCAtMCwwICsxLDE2IEBADQo+ID4gPiArLyoqIEBmaWxlDQo+ID4gPiArICBJbmNsdWRl IGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgamFuc3NvbiBsaWJyYXJ5 Lg0KPiA+ID4gKw0KPiA+ID4gKyBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsgKEMpIENvcHlyaWdodCAyMDIwIEhl d2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gKw0KPiA+ ID4gKyAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4gKw0KPiA+ID4gKyNpZm5kZWYgQ1JUX0FTU0VSVF9IXw0K PiA+ID4gKyNkZWZpbmUgQ1JUX0FTU0VSVF9IXw0KPiA+ID4gKw0KPiA+ID4gKyNpbmNsdWRlIDxM aWJyYXJ5L0NydExpYi5oPg0KPiA+ID4gKw0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gZGlmZiAtLWdp dCBhL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvZXJybm8uaA0KPiA+ID4gYi9SZWRmaXNoUGtnL0lu Y2x1ZGUvQ3J0L2Vycm5vLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPiA+IDAwMDAw MDAwMDAuLmQzMGFlZTE0ZGUNCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL1JlZGZp c2hQa2cvSW5jbHVkZS9DcnQvZXJybm8uaA0KPiA+ID4gQEAgLTAsMCArMSwxNiBAQA0KPiA+ID4g Ky8qKiBAZmlsZQ0KPiA+ID4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhl IHRoaXJkLXBhcnR5IGphbnNzb24gbGlicmFyeS4NCj4gPiA+ICsNCj4gPiA+ICsgQ29weXJpZ2h0 IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ID4gPiArIChDKSBDb3B5cmlnaHQgMjAyMCBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZl bG9wbWVudCBMUDxCUj4NCj4gPiA+ICsNCj4gPiA+ICsgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICsNCj4g PiA+ICsjaWZuZGVmIENSVF9FUlJOT19IXw0KPiA+ID4gKyNkZWZpbmUgQ1JUX0VSUk5PX0hfDQo+ ID4gPiArDQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvQ3J0TGliLmg+DQo+ID4gPiArDQo+ID4g PiArI2VuZGlmDQo+ID4gPiBkaWZmIC0tZ2l0IGEvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9saW1p dHMuaA0KPiA+ID4gYi9SZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L2xpbWl0cy5oIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0IGluZGV4DQo+ID4gPiAwMDAwMDAwMDAwLi5mM2JkZDMzZjJhDQo+ID4gPiAtLS0g L2Rldi9udWxsDQo+ID4gPiArKysgYi9SZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L2xpbWl0cy5oDQo+ ID4gPiBAQCAtMCwwICsxLDE2IEBADQo+ID4gPiArLyoqIEBmaWxlDQo+ID4gPiArICBJbmNsdWRl IGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgamFuc3NvbiBsaWJyYXJ5 Lg0KPiA+ID4gKw0KPiA+ID4gKyBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsgKEMpIENvcHlyaWdodCAyMDIwIEhl d2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gKw0KPiA+ ID4gKyAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4gKw0KPiA+ID4gKyNpZm5kZWYgQ1JUX0xJTUlUU19IXw0K PiA+ID4gKyNkZWZpbmUgQ1JUX0xJTUlUU19IXw0KPiA+ID4gKw0KPiA+ID4gKyNpbmNsdWRlIDxM aWJyYXJ5L0NydExpYi5oPg0KPiA+ID4gKw0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gZGlmZiAtLWdp dCBhL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvbWF0aC5oDQo+ID4gPiBiL1JlZGZpc2hQa2cvSW5j bHVkZS9DcnQvbWF0aC5oIG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4DQo+ID4gPiAwMDAwMDAw MDAwLi45ODRjMGNjYzIxDQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9SZWRmaXNo UGtnL0luY2x1ZGUvQ3J0L21hdGguaA0KPiA+ID4gQEAgLTAsMCArMSwxNiBAQA0KPiA+ID4gKy8q KiBAZmlsZQ0KPiA+ID4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRo aXJkLXBhcnR5IGphbnNzb24gbGlicmFyeS4NCj4gPiA+ICsNCj4gPiA+ICsgQ29weXJpZ2h0IChj KSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4g PiArIChDKSBDb3B5cmlnaHQgMjAyMCBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9w bWVudCBMUDxCUj4NCj4gPiA+ICsNCj4gPiA+ICsgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICsNCj4gPiA+ ICsjaWZuZGVmIENSVF9NQVRIX0hfDQo+ID4gPiArI2RlZmluZSBDUlRfTUFUSF9IXw0KPiA+ID4g Kw0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0NydExpYi5oPg0KPiA+ID4gKw0KPiA+ID4gKyNl bmRpZg0KPiA+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkYXJnLmgN Cj4gPiA+IGIvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRhcmcuaCBuZXcgZmlsZSBtb2RlIDEw MDY0NCBpbmRleA0KPiA+ID4gMDAwMDAwMDAwMC4uZDVhMzE0YWQzYg0KPiA+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ID4gKysrIGIvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRhcmcuaA0KPiA+ID4g QEAgLTAsMCArMSwxNSBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+ID4gKyAgSW5jbHVkZSBmaWxl IHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRoaXJkLXBhcnR5IGphbnNzb24gbGlicmFyeS4NCj4g PiA+ICsNCj4gPiA+ICsgQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPiArIChDKSBDb3B5cmlnaHQgMjAyMCBIZXdsZXR0 IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4gPiA+ICsNCj4gPiA+ICsg ICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsN Cj4gPiA+ICsqKi8NCj4gPiA+ICsjaWZuZGVmIENSVF9TVERBUkdfSF8NCj4gPiA+ICsjZGVmaW5l IENSVF9TVERBUkdfSF8NCj4gPiA+ICsNCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9DcnRMaWIu aD4NCj4gPiA+ICsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+IGRpZmYgLS1naXQgYS9SZWRmaXNoUGtn L0luY2x1ZGUvQ3J0L3N0ZGRlZi5oDQo+ID4gPiBiL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3Rk ZGVmLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPiA+IDAwMDAwMDAwMDAuLjE1YTM3 YmY1MGUNCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL1JlZGZpc2hQa2cvSW5jbHVk ZS9DcnQvc3RkZGVmLmgNCj4gPiA+IEBAIC0wLDAgKzEsMTYgQEANCj4gPiA+ICsvKiogQGZpbGUN Cj4gPiA+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0 eSBqYW5zc29uIGxpYnJhcnkuDQo+ID4gPiArDQo+ID4gPiArIENvcHlyaWdodCAoYykgMjAxOSwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gKyAoQykg Q29weXJpZ2h0IDIwMjAgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8 QlI+DQo+ID4gPiArDQo+ID4gPiArICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lmbmRl ZiBDUlRfU1REREVGX0hfDQo+ID4gPiArI2RlZmluZSBDUlRfU1REREVGX0hfDQo+ID4gPiArDQo+ ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvQ3J0TGliLmg+DQo+ID4gPiArDQo+ID4gPiArI2VuZGlm DQo+ID4gPiBkaWZmIC0tZ2l0IGEvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRpby5oDQo+ID4g PiBiL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkaW8uaCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBp bmRleA0KPiA+ID4gMDAwMDAwMDAwMC4uMjVlNjEwYmUxMA0KPiA+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ID4gKysrIGIvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRpby5oDQo+ID4gPiBAQCAtMCww ICsxLDE1IEBADQo+ID4gPiArLyoqIEBmaWxlDQo+ID4gPiArICBJbmNsdWRlIGZpbGUgdG8gc3Vw cG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgamFuc3NvbiBsaWJyYXJ5Lg0KPiA+ID4gKw0K PiA+ID4gKyBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gPiA+ICsgKEMpIENvcHlyaWdodCAyMDIwIEhld2xldHQgUGFja2Fy ZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gKw0KPiA+ID4gKyAgICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gKw0KPiA+ID4g KyoqLw0KPiA+ID4gKyNpZm5kZWYgQ1JUX1NURElPX0hfDQo+ID4gPiArI2RlZmluZSBDUlRfU1RE SU9fSF8NCj4gPiA+ICsNCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9DcnRMaWIuaD4NCj4gPiA+ ICsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+IGRpZmYgLS1naXQgYS9SZWRmaXNoUGtnL0luY2x1ZGUv Q3J0L3N0ZGxpYi5oDQo+ID4gPiBiL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkbGliLmggbmV3 IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPiA+IDAwMDAwMDAwMDAuLjViM2RkMjczYzgNCj4g PiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3Rk bGliLmgNCj4gPiA+IEBAIC0wLDAgKzEsMTYgQEANCj4gPiA+ICsvKiogQGZpbGUNCj4gPiA+ICsg IEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBqYW5zc29u IGxpYnJhcnkuDQo+ID4gPiArDQo+ID4gPiArIENvcHlyaWdodCAoYykgMjAxOSwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gKyAoQykgQ29weXJpZ2h0 IDIwMjAgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+DQo+ID4g PiArDQo+ID4gPiArICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lmbmRlZiBDUlRfU1RE TElCX0hfDQo+ID4gPiArI2RlZmluZSBDUlRfU1RETElCX0hfDQo+ID4gPiArDQo+ID4gPiArI2lu Y2x1ZGUgPExpYnJhcnkvQ3J0TGliLmg+DQo+ID4gPiArDQo+ID4gPiArI2VuZGlmDQo+ID4gPiBk aWZmIC0tZ2l0IGEvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdHJpbmcuaA0KPiA+ID4gYi9SZWRm aXNoUGtnL0luY2x1ZGUvQ3J0L3N0cmluZy5oIG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4DQo+ ID4gPiAwMDAwMDAwMDAwLi5mNjBiODdjY2QyDQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiAr KysgYi9SZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N0cmluZy5oDQo+ID4gPiBAQCAtMCwwICsxLDE2 IEBADQo+ID4gPiArLyoqIEBmaWxlDQo+ID4gPiArICBJbmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBi dWlsZGluZyB0aGUgdGhpcmQtcGFydHkgamFuc3NvbiBsaWJyYXJ5Lg0KPiA+ID4gKw0KPiA+ID4g KyBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gPiA+ICsgKEMpIENvcHlyaWdodCAyMDIwIEhld2xldHQgUGFja2FyZCBFbnRl cnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gKw0KPiA+ID4gKyAgICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gKw0KPiA+ID4gKyoqLw0K PiA+ID4gKw0KPiA+ID4gKyNpZm5kZWYgQ1JUX1NUUklOR19IXw0KPiA+ID4gKyNkZWZpbmUgQ1JU X1NUUklOR19IXw0KPiA+ID4gKw0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0NydExpYi5oPg0K PiA+ID4gKw0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvSW5j bHVkZS9DcnQvc3lzL3RpbWUuaA0KPiA+ID4gYi9SZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N5cy90 aW1lLmgNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAw Li40Y2VkMTc2Y2RhDQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9SZWRmaXNoUGtn L0luY2x1ZGUvQ3J0L3N5cy90aW1lLmgNCj4gPiA+IEBAIC0wLDAgKzEsMTUgQEANCj4gPiA+ICsv KiogQGZpbGUNCj4gPiA+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0 aGlyZC1wYXJ0eSBqYW5zc29uIGxpYnJhcnkuDQo+ID4gPiArDQo+ID4gPiArIENvcHlyaWdodCAo YykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ ID4gKyAoQykgQ29weXJpZ2h0IDIwMjAgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxv cG1lbnQgTFA8QlI+DQo+ID4gPiArDQo+ID4gPiArICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArI2lmbmRl ZiBDUlRfU1lTX1RJTUVfSF8NCj4gPiA+ICsjZGVmaW5lIENSVF9TWVNfVElNRV9IXw0KPiA+ID4g Kw0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0NydExpYi5oPg0KPiA+ID4gKw0KPiA+ID4gKyNl bmRpZg0KPiA+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3lzL3R5cGVz LmgNCj4gPiA+IGIvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zeXMvdHlwZXMuaA0KPiA+ID4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAuLmM0ZjgwNzIxNGMNCj4g PiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3lz L3R5cGVzLmgNCj4gPiA+IEBAIC0wLDAgKzEsMTUgQEANCj4gPiA+ICsvKiogQGZpbGUNCj4gPiA+ ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBqYW5z c29uIGxpYnJhcnkuDQo+ID4gPiArDQo+ID4gPiArIENvcHlyaWdodCAoYykgMjAxOSwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gKyAoQykgQ29weXJp Z2h0IDIwMjAgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+DQo+ ID4gPiArDQo+ID4gPiArICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArI2lmbmRlZiBDUlRfU1lTX1RZUEVT X0hfDQo+ID4gPiArI2RlZmluZSBDUlRfU1lTX1RZUEVTX0hfDQo+ID4gPiArDQo+ID4gPiArI2lu Y2x1ZGUgPExpYnJhcnkvQ3J0TGliLmg+DQo+ID4gPiArDQo+ID4gPiArI2VuZGlmDQo+ID4gPiBk aWZmIC0tZ2l0IGEvUmVkZmlzaFBrZy9JbmNsdWRlL0NydC90aW1lLmgNCj4gPiA+IGIvUmVkZmlz aFBrZy9JbmNsdWRlL0NydC90aW1lLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPiA+ IDAwMDAwMDAwMDAuLmNhMDRhYzg3MzANCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBi L1JlZGZpc2hQa2cvSW5jbHVkZS9DcnQvdGltZS5oDQo+ID4gPiBAQCAtMCwwICsxLDE1IEBADQo+ ID4gPiArLyoqIEBmaWxlDQo+ID4gPiArICBJbmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGlu ZyB0aGUgdGhpcmQtcGFydHkgamFuc3NvbiBsaWJyYXJ5Lg0KPiA+ID4gKw0KPiA+ID4gKyBDb3B5 cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gPiA+ICsgKEMpIENvcHlyaWdodCAyMDIwIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNl IERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gKw0KPiA+ID4gKyAgICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4g KyNpZm5kZWYgQ1JUX1RJTUVfSF8NCj4gPiA+ICsjZGVmaW5lIENSVF9USU1FX0hfDQo+ID4gPiAr DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvQ3J0TGliLmg+DQo+ID4gPiArDQo+ID4gPiArI2Vu ZGlmDQo+ID4gPiBkaWZmIC0tZ2l0IGEvUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvQ3J0TGli LmgNCj4gPiA+IGIvUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvQ3J0TGliLmgNCj4gPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAwLi44Yzc0ODRlNzViDQo+ ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9SZWRmaXNoUGtnL0luY2x1ZGUvTGlicmFy eS9DcnRMaWIuaA0KPiA+ID4gQEAgLTAsMCArMSwxOTUgQEANCj4gPiA+ICsvKiogQGZpbGUNCj4g PiA+ICsgIENSVCB3cmFwcGVyIGhlYWQgZnVuY3Rpb25zIGZvciBqYW5zc29uIHN5c3RlbSBjYWxs Lg0KPiA+ID4gKw0KPiA+ID4gKyAgQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPiArICAoQykgQ29weXJpZ2h0IDIwMjAg SGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+DQo+ID4gPiArDQo+ ID4gPiArICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lmbmRlZiBDUlRfTElCX0hfDQo+ ID4gPiArI2RlZmluZSBDUlRfTElCX0hfDQo+ID4gPiArDQo+ID4gPiArI2luY2x1ZGUgPExpYnJh cnkvQmFzZUxpYi5oPg0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4N Cj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiA+ID4gKyNpbmNsdWRlIDxM aWJyYXJ5L1ByaW50TGliLmg+DQo+ID4gPiArDQo+ID4gPiArI2RlZmluZSBNQVhfU1RSSU5HX1NJ WkUgIDB4MTAwMDAwMDANCj4gPiA+ICsNCj4gPiA+ICsvLyBNaW5pbXVtIHZhbHVlIGZvciBhbiBv YmplY3Qgb2YgdHlwZSBsb25nIGxvbmcgaW50Lg0KPiA+ID4gKyNkZWZpbmUgTExPTkdfTUlOICAg TUlOX0lOVDY0DQo+ID4gPiArDQo+ID4gPiArLy8gTWF4aW11bSB2YWx1ZSBmb3IgYW4gb2JqZWN0 IG9mIHR5cGUgbG9uZyBsb25nIGludC4NCj4gPiA+ICsjZGVmaW5lIExMT05HX01BWCAgIE1BWF9J TlQ2NA0KPiA+ID4gKw0KPiA+ID4gKy8vIFdlIGRvbnQgc3VwcG9ydCBkb3VibGUgb24gZWRrMg0K PiA+ID4gKyNkZWZpbmUgSFVHRV9WQUwgICAgMA0KPiA+ID4gKw0KPiA+ID4gKyNpZiBkZWZpbmVk KE1ERV9DUFVfWDY0KSB8fCBkZWZpbmVkKE1ERV9DUFVfQUFSQ0g2NCkgfHwNCj4gPiA+ICtkZWZp bmVkKE1ERV9DUFVfSUE2NCkgfHwgZGVmaW5lZChNREVfQ1BVX1JJU0NWNjQpIC8vIC8vIFdpdGgN Cj4gR0NDDQo+ID4gd2UNCj4gPiA+ICt3b3VsZCBub3JtYWxseSB1c2UgU0lYVFlfRk9VUl9CSVRf TE9ORywgYnV0IE1TVkMgbmVlZHMgLy8NCj4gPiA+ICtTSVhUWV9GT1VSX0JJVCwgYmVjYXVzZSAn bG9uZycgaXMgMzItYml0IGFuZCBvbmx5ICdsb25nIGxvbmcnIGlzIC8vDQo+ID4gPiArNjQtYml0 LiBTaW5jZSB1c2luZyAnbG9uZyBsb25nJyB3b3JrcyBmaW5lIG9uIEdDQyB0b28sIGp1c3QgZG8g dGhhdC4NCj4gPiA+ICsvLw0KPiA+ID4gKyNkZWZpbmUgU0lYVFlfRk9VUl9CSVQNCj4gPiA+ICsj ZWxpZiBkZWZpbmVkKE1ERV9DUFVfSUEzMikgfHwgZGVmaW5lZChNREVfQ1BVX0FSTSkgfHwNCj4g PiA+ICtkZWZpbmVkKE1ERV9DUFVfRUJDKSAjZGVmaW5lIFRISVJUWV9UV09fQklUICNlbmRpZg0K PiA+ID4gKw0KPiA+ID4gKy8vDQo+ID4gPiArLy8gTWFwIGFsbCB2YV94eHh4IGVsZW1lbnRzIHRv IFZBX3h4eCBkZWZpbmVkIGluDQo+ID4gPiArTWRlUGtnL0luY2x1ZGUvQmFzZS5oIC8vICNpZiAh ZGVmaW5lZChfX0NDX0FSTSkgLy8gaWYgdmFfbGlzdCBpcyBub3QNCj4gPiA+ICthbHJlYWR5IGRl ZmluZWQNCj4gPiA+ICsjZGVmaW5lIHZhX2xpc3QgICBWQV9MSVNUDQo+ID4gPiArI2RlZmluZSB2 YV9hcmcgICAgVkFfQVJHDQo+ID4gPiArI2RlZmluZSB2YV9zdGFydCAgVkFfU1RBUlQNCj4gPiA+ ICsjZGVmaW5lIHZhX2VuZCAgICBWQV9FTkQNCj4gPiA+ICsjZWxzZSAvLyBfX0NDX0FSTQ0KPiA+ ID4gKyNkZWZpbmUgdmFfc3RhcnQoTWFya2VyLCBQYXJhbWV0ZXIpICAgX192YV9zdGFydChNYXJr ZXIsIFBhcmFtZXRlcikNCj4gPiA+ICsjZGVmaW5lIHZhX2FyZyhNYXJrZXIsIFRZUEUpICAgICAg ICAgIF9fdmFfYXJnKE1hcmtlciwgVFlQRSkNCj4gPiA+ICsjZGVmaW5lIHZhX2VuZChNYXJrZXIp ICAgICAgICAgICAgICAgICgodm9pZCkwKQ0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gKw0KPiA+ID4g Ky8vDQo+ID4gPiArLy8gRGVmaW5pdGlvbnMgZm9yIGdsb2JhbCBjb25zdGFudHMgdXNlZCBieSBD UlQgbGlicmFyeSByb3V0aW5lcyAvLw0KPiA+ID4gKyNkZWZpbmUgSU5UX01BWCAgICAgIE1BWF9J TlQzMiAgICAgICAgLyogTWF4aW11bSAoc2lnbmVkKSBpbnQgdmFsdWUgKi8NCj4gPiA+ICsjZGVm aW5lIExPTkdfTUFYICAgICAwWDdGRkZGRkZGTCAgICAgIC8qIG1heCB2YWx1ZSBmb3IgYSBsb25n ICovDQo+ID4gPiArI2RlZmluZSBMT05HX01JTiAgICAgKC1MT05HX01BWC0xKSAgICAvKiBtaW4g dmFsdWUgZm9yIGEgbG9uZyAqLw0KPiA+ID4gKyNkZWZpbmUgVUxPTkdfTUFYICAgIDB4RkZGRkZG RkYgICAgICAgLyogTWF4aW11bSB1bnNpZ25lZCBsb25nDQo+IHZhbHVlDQo+ID4gKi8NCj4gPiA+ ICsjZGVmaW5lIENIQVJfQklUICAgICA4ICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBiaXRz IGluIGEgY2hhciAqLw0KPiA+ID4gKw0KPiA+ID4gKy8vIE1heGltdW0gdmFsdWUgZm9yIGFuIG9i amVjdCBvZiB0eXBlIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQuDQo+ID4gPiArI2RlZmluZSBVTExP TkdfTUFYICAweEZGRkZGRkZGRkZGRkZGRkZVTEwgLy8gMl42NCAtIDEgLy8gTWF4aW11bQ0KPiA+ ID4gK3ZhbHVlIGZvciBhbiBvYmplY3Qgb2YgdHlwZSB1bnNpZ25lZCBjaGFyLg0KPiA+ID4gKyNk ZWZpbmUgVUNIQVJfTUFYICAgMjU1ICAvLyAyXjggLSAxDQo+ID4gPiArDQo+ID4gPiArLy8NCj4g PiA+ICsvLyBCYXNpYyB0eXBlcyBtYXBwaW5nDQo+ID4gPiArLy8NCj4gPiA+ICt0eXBlZGVmIFVJ TlROICAgICAgICAgIHNpemVfdDsNCj4gPiA+ICt0eXBlZGVmIElOVE4gICAgICAgICAgIHNzaXpl X3Q7DQo+ID4gPiArdHlwZWRlZiBJTlQzMiAgICAgICAgICB0aW1lX3Q7DQo+ID4gPiArdHlwZWRl ZiBVSU5UOCAgICAgICAgICBfX3VpbnQ4X3Q7DQo+ID4gPiArdHlwZWRlZiBVSU5UOCAgICAgICAg ICBzYV9mYW1pbHlfdDsNCj4gPiA+ICt0eXBlZGVmIFVJTlQzMiAgICAgICAgIHVpZF90Ow0KPiA+ ID4gK3R5cGVkZWYgVUlOVDMyICAgICAgICAgZ2lkX3Q7DQo+ID4gPiArdHlwZWRlZiBJTlQzMiAg ICAgICAgICBpbnQzMl90Ow0KPiA+ID4gK3R5cGVkZWYgVUlOVDMyICAgICAgICAgdWludDMyX3Q7 DQo+ID4gPiArdHlwZWRlZiBVSU5UMTYgICAgICAgICB1aW50MTZfdDsNCj4gPiA+ICt0eXBlZGVm IFVJTlQ4ICAgICAgICAgIHVpbnQ4X3Q7DQo+ID4gPiArdHlwZWRlZiBlbnVtIHtmYWxzZSwgdHJ1 ZX0gYm9vbDsNCj4gPiA+ICsNCj4gPiA+ICsvLw0KPiA+ID4gKy8vIEZpbGUgb3BlcmF0aW9ucyBh cmUgbm90IHJlcXVpcmVkIGZvciBFRkkgYnVpbGRpbmcsIC8vIHNvIEZJTEUgaXMNCj4gPiA+ICtt YXBwZWQgdG8gVk9JRCAqIHRvIHBhc3MgYnVpbGQgLy8gdHlwZWRlZiBWT0lEICAqRklMRTsNCj4g PiA+ICsNCj4gPiA+ICsvLw0KPiA+ID4gKy8vIEdsb2JhbCB2YXJpYWJsZXMNCj4gPiA+ICsvLw0K PiA+ID4gK2V4dGVybiBpbnQgIGVycm5vOw0KPiA+ID4gK2V4dGVybiBGSUxFICpzdGRlcnI7DQo+ ID4gPiArDQo+ID4gPiArLy8NCj4gPiA+ICsvLyBGdW5jdGlvbiBwcm90b3R5cGVzIG9mIENSVCBM aWJyYXJ5IHJvdXRpbmVzIC8vDQo+ID4gPiArdm9pZCAgICAgICAgICAgKm1hbGxvYyAgICAgKHNp emVfdCk7DQo+ID4gPiArdm9pZCAgICAgICAgICAgKnJlYWxsb2MgICAgKHZvaWQgKiwgc2l6ZV90 KTsNCj4gPiA+ICt2b2lkICAgICAgICAgICAqY2FsbG9jICAgICAoc2l6ZV90IE51bSwgc2l6ZV90 IFNpemUpOw0KPiA+ID4gK3ZvaWQgICAgICAgICAgIGZyZWUgICAgICAgICh2b2lkICopOw0KPiA+ ID4gK3ZvaWQgICAgICAgICAgICptZW1zZXQgICAgICh2b2lkICosIGludCwgc2l6ZV90KTsNCj4g PiA+ICtpbnQgICAgICAgICAgICBtZW1jbXAgICAgICAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lk ICosIHNpemVfdCk7DQo+ID4gPiAraW50ICAgICAgICAgICAgaXNkaWdpdCAgICAgKGludCk7DQo+ ID4gPiAraW50ICAgICAgICAgICAgaXNzcGFjZSAgICAgKGludCk7DQo+ID4gPiAraW50ICAgICAg ICAgICAgdG9sb3dlciAgICAgKGludCk7DQo+ID4gPiAraW50ICAgICAgICAgICAgaXN1cHBlciAg ICAgKGludCk7DQo+ID4gPiAraW50ICAgICAgICAgICAgaXN4ZGlnaXQgICAgKGludCk7DQo+ID4g PiAraW50ICAgICAgICAgICAgaXNhbG51bSAgICAgKGludCk7DQo+ID4gPiArdm9pZCAgICAgICAg ICAgKm1lbWNweSAgICAgKHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QpOw0KPiA+ID4gK3Zv aWQgICAgICAgICAgICptZW1zZXQgICAgICh2b2lkICosIGludCwgc2l6ZV90KTsNCj4gPiA+ICt2 b2lkICAgICAgICAgICAqbWVtY2hyICAgICAoY29uc3Qgdm9pZCAqLCBpbnQsIHNpemVfdCk7DQo+ ID4gPiAraW50ICAgICAgICAgICAgbWVtY21wICAgICAgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9p ZCAqLCBzaXplX3QpOw0KPiA+ID4gK3ZvaWQgICAgICAgICAgICptZW1tb3ZlICAgICh2b2lkICos IGNvbnN0IHZvaWQgKiwgc2l6ZV90KTsNCj4gPiA+ICtpbnQgICAgICAgICAgICBzdHJjbXAgICAg ICAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOw0KPiA+ID4gK2ludCAgICAgICAgICAgIHN0 cm5jbXAgICAgIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsNCj4gPiA+ICtj aGFyICAgICAgICAgICAqc3RyY3B5ICAgICAoY2hhciAqLCBjb25zdCBjaGFyICopOw0KPiA+ID4g K3NpemVfdCAgICAgICAgIHN0cmxlbiAgICAgIChjb25zdCBjaGFyICopOw0KPiA+ID4gK2NoYXIg ICAgICAgICAgICpzdHJjYXQgICAgIChjaGFyICosIGNvbnN0IGNoYXIgKik7DQo+ID4gPiArY2hh ciAgICAgICAgICAgKnN0cmNociAgICAgKGNvbnN0IGNoYXIgKiwgaW50KTsNCj4gPiA+ICtpbnQg ICAgICAgICAgICBzdHJjYXNlY21wICAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOw0KPiA+ ID4gK2ludCAgICAgICAgICAgIHN0cm5jYXNlY21wIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg Kiwgc2l6ZV90KTsNCj4gPiA+ICtjaGFyICAgICAgICAgICAqc3RybmNweSAgICAoY2hhciAqLCBz aXplX3QsIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsNCj4gPiA+ICtpbnQgICAgICAgICAgICBzdHJu Y21wICAgICAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7DQo+ID4gPiArY2hh ciAgICAgICAgICAgKnN0cnJjaHIgICAgKGNvbnN0IGNoYXIgKiwgaW50KTsNCj4gPiA+ICt1bnNp Z25lZCBsb25nICBzdHJ0b3VsICAgICAoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOw0KPiA+ ID4gK2NoYXIgKiAgICAgICAgIHN0cnN0ciAgICAgIChjb25zdCBjaGFyICpzMSAsIGNvbnN0IGNo YXIgKnMyKTsNCj4gPiA+ICtsb25nICAgICAgICAgICBzdHJ0b2wgICAgICAoY29uc3QgY2hhciAq LCBjaGFyICoqLCBpbnQpOw0KPiA+ID4gK2NoYXIgICAgICAgICAgICpzdHJlcnJvciAgIChpbnQp Ow0KPiA+ID4gK3NpemVfdCAgICAgICAgIHN0cnNwbiAgICAgIChjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKik7DQo+ID4gPiArY2hhciAqICAgICAgICAgc3RyZHVwICAgICAgKGNvbnN0IGNoYXIg KnN0cik7DQo+ID4gPiArY2hhciAqICAgICAgICAgc3RycGJyayAgICAgKGNvbnN0IGNoYXIgKnMx LCBjb25zdCBjaGFyICpzMik7DQo+ID4gPiArdW5zaWduZWQgbG9uZyBsb25nIHN0cnRvdWxsKGNv bnN0IGNoYXIgKiBucHRyLCBjaGFyICoqIGVuZHB0ciwgaW50IGJhc2UpOw0KPiA+ID4gK2xvbmcg bG9uZyAgICAgIHN0cnRvbGwgICAgIChjb25zdCBjaGFyICogbnB0ciwgY2hhciAqKiBlbmRwdHIs IGludCBiYXNlKTsNCj4gPiA+ICtsb25nICAgICAgICAgICBzdHJ0b2wgICAgICAoY29uc3QgY2hh ciAqIG5wdHIsIGNoYXIgKiogZW5kcHRyLCBpbnQgYmFzZSk7DQo+ID4gPiArZG91YmxlICAgICAg ICAgc3RydG9kICAgICAgKGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0IG5wdHIsIGNoYXIgKiogX19y ZXN0cmljdA0KPiA+IGVuZHB0cik7DQo+ID4gPiArc2l6ZV90ICAgICAgICAgc3RyY3NwbiAgICAg KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsNCj4gPiA+ICtpbnQgICAgICAgICAgICBwcmlu dGYgICAgICAoY29uc3QgY2hhciAqLCAuLi4pOw0KPiA+ID4gK2ludCAgICAgICAgICAgIHNzY2Fu ZiAgICAgIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsNCj4gPiA+ICtGSUxFICAg ICAgICAgICAqZm9wZW4gICAgICAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOw0KPiA+ID4g K3NpemVfdCAgICAgICAgIGZyZWFkICAgICAgICh2b2lkICosIHNpemVfdCwgc2l6ZV90LCBGSUxF ICopOw0KPiA+ID4gK3NpemVfdCAgICAgICAgIGZ3cml0ZSAgICAgIChjb25zdCB2b2lkICosIHNp emVfdCwgc2l6ZV90LCBGSUxFICopOw0KPiA+ID4gK2ludCAgICAgICAgICAgIGZjbG9zZSAgICAg IChGSUxFICopOw0KPiA+ID4gK2ludCAgICAgICAgICAgIGZwcmludGYgICAgIChGSUxFICosIGNv bnN0IGNoYXIgKiwgLi4uKTsNCj4gPiA+ICtpbnQgICAgICAgICAgICBmZ2V0YyAgICAgICAoRklM RSAqIF9GaWxlKTsNCj4gPiA+ICt1aWRfdCAgICAgICAgICBnZXR1aWQgICAgICAodm9pZCk7DQo+ ID4gPiArdWlkX3QgICAgICAgICAgZ2V0ZXVpZCAgICAgKHZvaWQpOw0KPiA+ID4gK2dpZF90ICAg ICAgICAgIGdldGdpZCAgICAgICh2b2lkKTsNCj4gPiA+ICtnaWRfdCAgICAgICAgICBnZXRlZ2lk ICAgICAodm9pZCk7DQo+ID4gPiArdm9pZCAgICAgICAgICAgcXNvcnQgICAgICAgKHZvaWQgKiwg c2l6ZV90LCBzaXplX3QsIGludCAoKikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkDQo+ID4gKikp Ow0KPiA+ID4gK2NoYXIgICAgICAgICAgICpnZXRlbnYgICAgIChjb25zdCBjaGFyICopOw0KPiA+ ID4gKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gMikNCj4gPiA+ICt2b2lk ICAgICAgICAgICBhYm9ydCAgICAgICAodm9pZCkgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9f KSk7DQo+ID4gPiArI2Vsc2UNCj4gPiA+ICt2b2lkICAgICAgICAgICBhYm9ydCAgICAgICAodm9p ZCk7DQo+ID4gPiArI2VuZGlmDQo+ID4gPiAraW50ICAgICAgICAgICAgdG91cHBlciAgICAgKGlu dCk7DQo+ID4gPiAraW50ICAgICAgICAgICAgRGlnaXQyVmFsICAgKGludCk7DQo+ID4gPiArdGlt ZV90ICAgICAgICAgdGltZSAgICAgICAgKHRpbWVfdCAqKTsNCj4gPiA+ICsNCj4gPiA+ICsvLw0K PiA+ID4gKy8vIE1hY3JvcyB0aGF0IGRpcmVjdGx5IG1hcCBmdW5jdGlvbnMgdG8gQmFzZUxpYiwg QmFzZU1lbW9yeUxpYiwgYW5kDQo+ID4gPiArRGVidWdMaWIgZnVuY3Rpb25zIC8vDQo+ID4gPiAr I2RlZmluZSBzdHJjbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNjaWlTdHJDbXANCj4g PiA+ICsjZGVmaW5lIG1lbWNweShkZXN0LHNvdXJjZSxjb3VudCkNCj4gPiBDb3B5TWVtKGRlc3Qs c291cmNlLChVSU5UTikoY291bnQpKQ0KPiA+ID4gKyNkZWZpbmUgbWVtc2V0KGRlc3QsY2gsY291 bnQpDQo+ID4gU2V0TWVtKGRlc3QsKFVJTlROKShjb3VudCksKFVJTlQ4KShjaCkpDQo+ID4gPiAr I2RlZmluZSBtZW1jaHIoYnVmLGNoLGNvdW50KQ0KPiA+IFNjYW5NZW04KGJ1ZiwoVUlOVE4pKGNv dW50KSwoVUlOVDgpY2gpDQo+ID4gPiArI2RlZmluZSBtZW1jbXAoYnVmMSxidWYyLGNvdW50KQ0K PiA+IChpbnQpKENvbXBhcmVNZW0oYnVmMSxidWYyLChVSU5UTikoY291bnQpKSkNCj4gPiA+ICsj ZGVmaW5lIG1lbW1vdmUoZGVzdCxzb3VyY2UsY291bnQpDQo+ID4gQ29weU1lbShkZXN0LHNvdXJj ZSwoVUlOVE4pKGNvdW50KSkNCj4gPiA+ICsjZGVmaW5lIHN0cmxlbihzdHIpDQo+ID4gKHNpemVf dCkoQXNjaWlTdHJuTGVuUyhzdHIsTUFYX1NUUklOR19TSVpFKSkNCj4gPiA+ICsjZGVmaW5lIHN0 cmNweShzdHJEZXN0LHN0clNvdXJjZSkNCj4gPiBBc2NpaVN0ckNweVMoc3RyRGVzdCwoc3RybGVu KHN0clNvdXJjZSkrMSksc3RyU291cmNlKQ0KPiA+ID4gKyNkZWZpbmUgc3RybmNweShzdHJEZXN0 LHN0clNvdXJjZSxjb3VudCkNCj4gPiA+ICtBc2NpaVN0cm5DcHlTKHN0ckRlc3QsKFVJTlROKWNv dW50LHN0clNvdXJjZSwoVUlOVE4pY291bnQpDQo+ID4gPiArI2RlZmluZSBzdHJuY3B5cyhzdHJE ZXN0LCBEZXN0TGVuLCBzdHJTb3VyY2UsY291bnQpDQo+ID4gQXNjaWlTdHJuQ3B5UyhzdHJEZXN0 LERlc3RMZW4sc3RyU291cmNlLChVSU5UTiljb3VudCkNCj4gPiA+ICsjZGVmaW5lIHN0cmNhdChz dHJEZXN0LHN0clNvdXJjZSkNCj4gPiBBc2NpaVN0ckNhdFMoc3RyRGVzdCwoc3RybGVuKHN0clNv dXJjZSkrc3RybGVuKHN0ckRlc3QpKzEpLHN0clNvdXJjZSkNCj4gPiA+ICsjZGVmaW5lIHN0cmNo cihzdHIsY2gpICAgICAgICAgICAgICAgICAgICBTY2FuTWVtOCgoVk9JRA0KPiA+ICopKHN0ciks QXNjaWlTdHJTaXplKHN0ciksKFVJTlQ4KWNoKQ0KPiA+ID4gKyNkZWZpbmUgc3RybmNtcChzdHJp bmcxLHN0cmluZzIsY291bnQpDQo+ID4gKGludCkoQXNjaWlTdHJuQ21wKHN0cmluZzEsc3RyaW5n MiwoVUlOVE4pKGNvdW50KSkpDQo+ID4gPiArI2RlZmluZSBzdHJjYXNlY21wKHN0cjEsc3RyMikg ICAgICAgICAgICAgKGludClBc2NpaVN0cmlDbXAoc3RyMSxzdHIyKQ0KPiA+ID4gKyNkZWZpbmUg c3Ryc3RyKHMxLHMyKSAgICAgICAgICAgICAgICAgICAgIEFzY2lpU3RyU3RyKHMxLHMyKQ0KPiA+ ID4gKyNkZWZpbmUgc3ByaW50ZihidWYsLi4uKQ0KPiA+IEFzY2lpU1ByaW50KGJ1ZixNQVhfU1RS SU5HX1NJWkUsX19WQV9BUkdTX18pDQo+ID4gPiArI2RlZmluZSBzbnByaW50ZihidWYsbGVuLC4u LikgICAgICAgICAgICAgQXNjaWlTUHJpbnQoYnVmLGxlbixfX1ZBX0FSR1NfXykNCj4gPiA+ICsj ZGVmaW5lIHZzbnByaW50ZihidWYsbGVuLGZvcm1hdCxtYXJrZXIpDQo+ID4gQXNjaWlWU1ByaW50 KChidWYpLChsZW4pLChmb3JtYXQpLChtYXJrZXIpKQ0KPiA+ID4gKyNkZWZpbmUgYXNzZXJ0KGV4 cHJlc3Npb24pICAgICAgICAgICAgICAgIEFTU0VSVChleHByZXNzaW9uKQ0KPiA+ID4gKyNkZWZp bmUgYXRvaShucHRyKSAgICAgICAgICAgICAgICAgICAgICAgIEFzY2lpU3RyRGVjaW1hbFRvVWlu dG4obnB0cikNCj4gPiA+ICsjZGVmaW5lIGZhYnMoeCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKCh4KSA8IDAuMCk/ICgteCk6ICh4KSkNCj4gPiA+ICsjZGVmaW5lIG9mZnNldG9mKHR5cGUs bWVtYmVyKSAgICAgICAgICAgICBPRkZTRVRfT0YodHlwZSxtZW1iZXIpDQo+ID4gPiArDQo+ID4g PiArI2RlZmluZSBFT0YgKC0xKQ0KPiA+ID4gKw0KPiA+ID4gK2V4dGVybiBpbnQgIGVycm5vOw0K PiA+ID4gKw0KPiA+ID4gKyNkZWZpbmUgRVJBTkdFICAgMzQgICAgICAgICAgICAgICAgLyogMzQg ICBSZXN1bHQgdG9vIGxhcmdlICovDQo+ID4gPiArDQo+ID4gPiArI2VuZGlmDQo+ID4gPiBkaWZm IC0tZ2l0IGEvUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuYw0KPiA+ID4gYi9SZWRm aXNoUGtnL0xpYnJhcnkvQ3J0TGliL0NydExpYi5jDQo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+ID4gaW5kZXggMDAwMDAwMDAwMC4uMWZmNDAyM2RiZQ0KPiA+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ID4gKysrIGIvUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuYw0KPiA+ID4g QEAgLTAsMCArMSw3MDUgQEANCj4gPiA+ICsvKiogQGZpbGUNCj4gPiA+ICsgIENSVCB3cmFwcGVy IGZ1bmN0aW9ucyBmb3Igc3lzdGVtIGNhbGwuDQo+ID4gPiArDQo+ID4gPiArICBDb3B5cmlnaHQg KGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g PiA+ICsgIChDKSBDb3B5cmlnaHQgMjAyMCBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZl bG9wbWVudCBMUDxCUj4NCj4gPiA+ICsNCj4gPiA+ICsgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICsjaW5j bHVkZSA8VWVmaS5oPg0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0NydExpYi5oPg0KPiA+ID4g KyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4gI2luY2x1ZGUNCj4gPiA+ ICs8TGlicmFyeS9VZWZpUnVudGltZVNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiA+ICsNCj4gPiA+ ICtpbnQgIGVycm5vID0gMDsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIERldGVybWlu ZSBpZiBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIGlzIGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIN Cj4gPiA+ICsgIEByZXR1cm4gIFJldHVybnMgMSBpZiBjIGlzIGFuIGFscGhhbnVtZXJpYyBjaGFy YWN0ZXIsIG90aGVyd2lzZSByZXR1cm5zDQo+IDAuDQo+ID4gPiArKiovDQo+ID4gPiAraW50IGlz YWxudW0gKGludCBjKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyA8YWxudW0+ IDo6PSBbMC05XSB8IFthLXpdIHwgW0EtWl0NCj4gPiA+ICsgIC8vDQo+ID4gPiArICByZXR1cm4g KCgoJzAnIDw9IChjKSkgJiYgKChjKSA8PSAnOScpKSB8fA0KPiA+ID4gKyAgICAgICAgICAoKCdh JyA8PSAoYykpICYmICgoYykgPD0gJ3onKSkgfHwNCj4gPiA+ICsgICAgICAgICAgKCgnQScgPD0g KGMpKSAmJiAoKGMpIDw9ICdaJykpKTsgfQ0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAg RGV0ZXJtaW5lIGlmIGEgcGFydGljdWxhciBjaGFyYWN0ZXIgaXMgYSBkaWdpdGFsIGNoYXJhY3Rl cg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHVybiAgUmV0dXJucyAxIGlmIGMgaXMgYW4gZGlnaXRh bCBjaGFyYWN0ZXIsIG90aGVyd2lzZSByZXR1cm5zIDAuDQo+ID4gPiArKiovDQo+ID4gPiAraW50 IGlzZGNoYXIgKGludCBjKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBbMC05 XSB8IFtlICstLl0NCj4gPiA+ICsgIC8vDQo+ID4gPiArICByZXR1cm4gKCgoJzAnIDw9IChjKSkg JiYgKChjKSA8PSAnOScpKSB8fA0KPiA+ID4gKyAgICAgICAgICAoYyA9PSAnZScpIHx8IChjID09 ICdFJykgfHwNCj4gPiA+ICsgICAgICAgICAgKGMgPT0gJysnKSB8fCAoYyA9PSAnLScpIHx8DQo+ ID4gPiArICAgICAgICAgIChjID09ICcuJykpOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICsv KioNCj4gPiA+ICsgIERldGVybWluZSBpZiBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIGlzIGEgc3Bh Y2UgY2hhcmFjdGVyDQo+ID4gPiArDQo+ID4gPiArICBAcmV0dXJuICBSZXR1cm5zIDEgaWYgYyBp cyBhIHNwYWNlIGNoYXJhY3RlciAqKi8gaW50IGlzc3BhY2UgKGludA0KPiA+ID4gK2MpIHsNCj4g PiA+ICsgIC8vDQo+ID4gPiArICAvLyA8c3BhY2U+IDo6PSBbIF0NCj4gPiA+ICsgIC8vDQo+ID4g PiArICByZXR1cm4gKChjKSA9PSAnICcpIHx8ICgoYykgPT0gJ1x0JykgfHwgKChjKSA9PSAnXHIn KSB8fCAoKGMpID09DQo+ID4gPiArJ1xuJykgfHwgKChjKSA9PSAnXHYnKSAgfHwgKChjKSA9PSAn XGYnKTsgfQ0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgQWxsb2NhdGVzIG1lbW9yeSBi bG9ja3MNCj4gPiA+ICsqLw0KPiA+ID4gK3ZvaWQgKm1hbGxvYyAoc2l6ZV90IHNpemUpDQo+ID4g PiArew0KPiA+ID4gKyAgcmV0dXJuIEFsbG9jYXRlUG9vbCAoKFVJTlROKSBzaXplKTsgfQ0KPiA+ ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgRGUtYWxsb2NhdGVzIG9yIGZyZWVzIGEgbWVtb3J5 IGJsb2NrICovIHZvaWQgZnJlZSAodm9pZCAqcHRyKSB7DQo+ID4gPiArICAvLw0KPiA+ID4gKyAg Ly8gSW4gU3RhbmRhcmQgQywgZnJlZSgpIGhhbmRsZXMgYSBudWxsIHBvaW50ZXIgYXJndW1lbnQN Cj4gPiA+ICt0cmFuc3BhcmVudGx5LiBUaGlzDQo+ID4gPiArICAvLyBpcyBub3QgdHJ1ZSBvZiBG cmVlUG9vbCgpIGJlbG93LCBzbyBwcm90ZWN0IGl0Lg0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIGlm IChwdHIgIT0gTlVMTCkgew0KPiA+ID4gKyAgICBGcmVlUG9vbCAocHRyKTsNCj4gPiA+ICsgIH0N Cj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBOZXRCU0QgQ29tcGF0aWJp bGl0eSBGdW5jdGlvbiBzdHJkdXAgY3JlYXRlcyBhIGR1cGxpY2F0ZSBjb3B5IG9mIGENCj4gc3Ry aW5nLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHVybiAgUmV0dXJucyB0aGUgcG9pbnRlciB0byBk dXBsaWNhdGVkIHN0cmluZy4NCj4gPiA+ICsqKi8NCj4gPiA+ICtjaGFyICogc3RyZHVwKGNvbnN0 IGNoYXIgKnN0cikNCj4gPiA+ICt7DQo+ID4gPiArICBzaXplX3QgbGVuOw0KPiA+ID4gKyAgY2hh ciAqY29weTsNCj4gPiA+ICsNCj4gPiA+ICsgIGxlbiA9IHN0cmxlbihzdHIpICsgMTsNCj4gPiA+ ICsgIGlmICgoY29weSA9IG1hbGxvYyhsZW4pKSA9PSBOVUxMKQ0KPiA+ID4gKyAgICByZXR1cm4g KE5VTEwpOw0KPiA+ID4gKyAgbWVtY3B5KGNvcHksIHN0ciwgbGVuKTsNCj4gPiA+ICsgIHJldHVy biAoY29weSk7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKy8qKiBUaGUgdG91cHBlciBmdW5j dGlvbiBjb252ZXJ0cyBhIGxvd2VyY2FzZSBsZXR0ZXIgdG8gYSBjb3JyZXNwb25kaW5nDQo+ID4g PiArICAgIHVwcGVyY2FzZSBsZXR0ZXIuDQo+ID4gPiArDQo+ID4gPiArICAgIEBwYXJhbVtpbl0g ICAgYyAgIFRoZSBjaGFyYWN0ZXIgdG8gYmUgY29udmVydGVkLg0KPiA+ID4gKw0KPiA+ID4gKyAg ICBAcmV0dXJuICAgSWYgdGhlIGFyZ3VtZW50IGlzIGEgY2hhcmFjdGVyIGZvciB3aGljaCBpc2xv d2VyIGlzIHRydWUgYW5kDQo+ID4gPiArICAgICAgICAgICAgICB0aGVyZSBhcmUgb25lIG9yIG1v cmUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzLCBhcyBzcGVjaWZpZWQgYnkNCj4gPiA+ICsgICAg ICAgICAgICAgIHRoZSBjdXJyZW50IGxvY2FsZSwgZm9yIHdoaWNoIGlzdXBwZXIgaXMgdHJ1ZSwg dGhlIHRvdXBwZXINCj4gPiA+ICsgICAgICAgICAgICAgIGZ1bmN0aW9uIHJldHVybnMgb25lIG9m IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgKGFsd2F5cyB0aGUNCj4gPiA+ICsgICAgICAg ICAgICAgIHNhbWUgb25lIGZvciBhbnkgZ2l2ZW4gbG9jYWxlKTsgb3RoZXJ3aXNlLCB0aGUgYXJn dW1lbnQgaXMNCj4gPiA+ICsgICAgICAgICAgICAgIHJldHVybmVkIHVuY2hhbmdlZC4NCj4gPiA+ ICsqKi8NCj4gPiA+ICtpbnQNCj4gPiA+ICt0b3VwcGVyKA0KPiA+ID4gKyAgSU4gIGludCBjDQo+ ID4gPiArICApDQo+ID4gPiArew0KPiA+ID4gKyAgaWYgKCAoYyA+PSAnYScpICYmIChjIDw9ICd6 JykgKSB7DQo+ID4gPiArICAgIGMgPSBjIC0gKCdhJyAtICdBJyk7DQo+ID4gPiArICB9DQo+ID4g PiArICByZXR1cm4gYzsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBE aWdpdCB0byBhIHZhbHVlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHVybiAgUmV0dXJucyB0aGUg dmFsdWUgb2YgZGlnaXQuDQo+ID4gPiArKiovDQo+ID4gPiAraW50DQo+ID4gPiArRGlnaXQyVmFs KCBpbnQgYykNCj4gPiA+ICt7DQo+ID4gPiArICBpZiAoKChjID49ICdhJykgJiYgKGMgPD0gJ3on KSkgfHwgKChjID49ICdBJykgJiYgKGMgPD0gJ1onKSkpIHsgIC8qIElmIGMgaXMgb25lIG9mDQo+ IFtBLQ0KPiA+IFphLXpdLi4uICovDQo+ID4gPiArICAgIGMgPSB0b3VwcGVyKGMpIC0gNzsgICAv LyBBZGp1c3Qgc28gJ0EnIGlzICgnOScgKyAxKQ0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgcmV0dXJu IGMgLSAnMCc7ICAgLy8gVmFsdWUgcmV0dXJuZWQgaXMgYmV0d2VlbiAwIGFuZCAzNSwgaW5jbHVz aXZlLg0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICsNCj4gPiA+ICsvKiogVGhlIHN0cnRvbGwg ZnVuY3Rpb24gY29udmVydHMgdGhlIGluaXRpYWwgcG9ydGlvbiBvZiB0aGUgc3RyaW5nIHBvaW50 ZWQNCj4gdG8NCj4gPiA+ICsgICAgYnkgbnB0ciB0byBsb25nIGxvbmcgaW50IHJlcHJlc2VudGF0 aW9uLg0KPiA+ID4gKw0KPiA+ID4gKyAgICBTZWUgdGhlIGRlc2NyaXB0aW9uIGZvciBzdHJ0b2wg Zm9yIG1vcmUgaW5mb3JtYXRpb24uDQo+ID4gPiArDQo+ID4gPiArICBAcmV0dXJuICAgVGhlIHN0 cnRvbGwgZnVuY3Rpb24gcmV0dXJucyB0aGUgY29udmVydGVkIHZhbHVlLCBpZiBhbnkuIElmIG5v DQo+ID4gPiArICAgICAgICAgICAgY29udmVyc2lvbiBjb3VsZCBiZSBwZXJmb3JtZWQsIHplcm8g aXMgcmV0dXJuZWQuIElmIHRoZSBjb3JyZWN0DQo+ID4gPiArICAgICAgICAgICAgdmFsdWUgaXMg b3V0c2lkZSB0aGUgcmFuZ2Ugb2YgcmVwcmVzZW50YWJsZSB2YWx1ZXMsIExMT05HX01JTiBvcg0K PiA+ID4gKyAgICAgICAgICAgIExMT05HX01BWCBpcyByZXR1cm5lZCAoYWNjb3JkaW5nIHRvIHRo ZSBzaWduIG9mIHRoZSB2YWx1ZSwgaWYgYW55KSwNCj4gPiA+ICsgICAgICAgICAgICBhbmQgdGhl IHZhbHVlIG9mIHRoZSBtYWNybyBFUkFOR0UgaXMgc3RvcmVkIGluIGVycm5vLg0KPiA+ID4gKyoq Lw0KPiA+ID4gK2xvbmcgbG9uZw0KPiA+ID4gK3N0cnRvbGwoY29uc3QgY2hhciAqIG5wdHIsIGNo YXIgKiogZW5kcHRyLCBpbnQgYmFzZSkgew0KPiA+ID4gKyAgY29uc3QgY2hhciAqcEVuZDsNCj4g PiA+ICsgIGxvbmcgbG9uZyAgIFJlc3VsdCA9IDA7DQo+ID4gPiArICBsb25nIGxvbmcgICBQcmV2 aW91czsNCj4gPiA+ICsgIGludCAgICAgICAgIHRlbXA7DQo+ID4gPiArICBCT09MRUFOICAgICBO ZWdhdGl2ZSA9IEZBTFNFOw0KPiA+ID4gKw0KPiA+ID4gKyAgcEVuZCA9IG5wdHI7DQo+ID4gPiAr DQo+ID4gPiArICBpZigoYmFzZSA8IDApIHx8IChiYXNlID09IDEpIHx8IChiYXNlID4gMzYpKSB7 DQo+ID4gPiArICAgIGlmKGVuZHB0ciAhPSBOVUxMKSB7DQo+ID4gPiArICAgICplbmRwdHIgPSBO VUxMOw0KPiA+ID4gKyAgICB9DQo+ID4gPiArICAgIHJldHVybiAwOw0KPiA+ID4gKyAgfQ0KPiA+ ID4gKyAgLy8gU2tpcCBsZWFkaW5nIHNwYWNlcy4NCj4gPiA+ICsgIHdoaWxlKGlzc3BhY2UoKm5w dHIpKSAgICsrbnB0cjsNCj4gPiA+ICsNCj4gPiA+ICsgIC8vIFByb2Nlc3MgU3ViamVjdCBzZXF1 ZW5jZTogb3B0aW9uYWwgc2lnbiBmb2xsb3dlZCBieSBkaWdpdHMuDQo+ID4gPiArICBpZigqbnB0 ciA9PSAnKycpIHsNCj4gPiA+ICsgICAgTmVnYXRpdmUgPSBGQUxTRTsNCj4gPiA+ICsgICAgKytu cHRyOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgZWxzZSBpZigqbnB0ciA9PSAnLScpIHsNCj4gPiA+ ICsgICAgTmVnYXRpdmUgPSBUUlVFOw0KPiA+ID4gKyAgICArK25wdHI7DQo+ID4gPiArICB9DQo+ ID4gPiArDQo+ID4gPiArICBpZigqbnB0ciA9PSAnMCcpIHsgIC8qIE1pZ2h0IGJlIE9jdGFsIG9y IEhleCAqLw0KPiA+ID4gKyAgICBpZih0b3VwcGVyKG5wdHJbMV0pID09ICdYJykgeyAgIC8qIExv b2tzIGxpa2UgSGV4ICovDQo+ID4gPiArICAgICAgaWYoKGJhc2UgPT0gMCkgfHwgKGJhc2UgPT0g MTYpKSB7DQo+ID4gPiArICAgICAgICBucHRyICs9IDI7ICAvKiBTa2lwIHRoZSAiMFgiICAgICAg Ki8NCj4gPiA+ICsgICAgICAgIGJhc2UgPSAxNjsgIC8qIEluIGNhc2UgYmFzZSB3YXMgMCAqLw0K PiA+ID4gKyAgICAgIH0NCj4gPiA+ICsgICAgfQ0KPiA+ID4gKyAgICBlbHNlIHsgICAgLyogTG9v a3MgbGlrZSBPY3RhbCAqLw0KPiA+ID4gKyAgICAgIGlmKChiYXNlID09IDApIHx8IChiYXNlID09 IDgpKSB7DQo+ID4gPiArICAgICAgICArK25wdHI7ICAgICAvKiBTa2lwIHRoZSBsZWFkaW5nICIw IiAqLw0KPiA+ID4gKyAgICAgICAgYmFzZSA9IDg7ICAgLyogSW4gY2FzZSBiYXNlIHdhcyAwICAg Ki8NCj4gPiA+ICsgICAgICB9DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgIH0NCj4gPiA+ICsgIGlm KGJhc2UgPT0gMCkgeyAgIC8qIElmIHN0aWxsIHplcm8gdGhlbiBtdXN0IGJlIGRlY2ltYWwgKi8N Cj4gPiA+ICsgICAgYmFzZSA9IDEwOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgaWYoKm5wdHIgID09 ICcwJykgew0KPiA+ID4gKyAgICBmb3IoIDsgKm5wdHIgPT0gJzAnOyArK25wdHIpOyAgLyogU2tp cCBhbnkgcmVtYWluaW5nIGxlYWRpbmcgemVyb3MgKi8NCj4gPiA+ICsgICAgcEVuZCA9IG5wdHI7 DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICB3aGlsZSggaXNhbG51bSgqbnB0cikgJiYg KCh0ZW1wID0gRGlnaXQyVmFsKCpucHRyKSkgPCBiYXNlKSkgew0KPiA+ID4gKyAgICBQcmV2aW91 cyA9IFJlc3VsdDsNCj4gPiA+ICsgICAgUmVzdWx0ID0gTXVsdFM2NHg2NCAoUmVzdWx0LCBiYXNl KSArIChsb25nIGxvbmcgaW50KXRlbXA7DQo+ID4gPiArICAgIGlmKCBSZXN1bHQgPD0gUHJldmlv dXMpIHsgICAvLyBEZXRlY3QgT3ZlcmZsb3cNCj4gPiA+ICsgICAgICBpZihOZWdhdGl2ZSkgew0K PiA+ID4gKyAgICAgICAgUmVzdWx0ID0gTExPTkdfTUlOOw0KPiA+ID4gKyAgICAgIH0NCj4gPiA+ ICsgICAgICBlbHNlIHsNCj4gPiA+ICsgICAgICAgIFJlc3VsdCA9IExMT05HX01BWDsNCj4gPiA+ ICsgICAgICB9DQo+ID4gPiArICAgICAgTmVnYXRpdmUgPSBGQUxTRTsNCj4gPiA+ICsgICAgICBl cnJubyA9IEVSQU5HRTsNCj4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+ICsgICAgfQ0KPiA+ID4g KyAgICBwRW5kID0gKytucHRyOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgaWYoTmVnYXRpdmUpIHsN Cj4gPiA+ICsgICAgUmVzdWx0ID0gLVJlc3VsdDsNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ ICsgIC8vIFNhdmUgcG9pbnRlciB0byBmaW5hbCBzZXF1ZW5jZQ0KPiA+ID4gKyAgaWYoZW5kcHRy ICE9IE5VTEwpIHsNCj4gPiA+ICsgICAgKmVuZHB0ciA9IChjaGFyICopcEVuZDsNCj4gPiA+ICsg IH0NCj4gPiA+ICsgIHJldHVybiBSZXN1bHQ7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKy8q KiBUaGUgc3RydG9sLCBzdHJ0b2xsLCBzdHJ0b3VsLCBhbmQgc3RydG91bGwgZnVuY3Rpb25zIGNv bnZlcnQgdGhlIGluaXRpYWwNCj4gPiA+ICsgICAgcG9ydGlvbiBvZiB0aGUgc3RyaW5nIHBvaW50 ZWQgdG8gYnkgbnB0ciB0byBsb25nIGludCwgbG9uZyBsb25nIGludCwNCj4gPiA+ICsgICAgdW5z aWduZWQgbG9uZyBpbnQsIGFuZCB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHJlcHJlc2VudGF0aW9u LA0KPiA+IHJlc3BlY3RpdmVseS4NCj4gPiA+ICsgICAgRmlyc3QsIHRoZXkgZGVjb21wb3NlIHRo ZSBpbnB1dCBzdHJpbmcgaW50byB0aHJlZSBwYXJ0czogYW4gaW5pdGlhbCwNCj4gPiA+ICsgICAg cG9zc2libHkgZW1wdHksIHNlcXVlbmNlIG9mIHdoaXRlLXNwYWNlIGNoYXJhY3RlcnMgKGFzIHNw ZWNpZmllZCBieQ0KPiA+IHRoZQ0KPiA+ID4gKyAgICBpc3NwYWNlIGZ1bmN0aW9uKSwgYSBzdWJq ZWN0IHNlcXVlbmNlIHJlc2VtYmxpbmcgYW4gaW50ZWdlcg0KPiA+IHJlcHJlc2VudGVkIGluDQo+ ID4gPiArICAgIHNvbWUgcmFkaXggZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUgb2YgYmFzZSwgYW5k IGEgZmluYWwgc3RyaW5nIG9mIG9uZQ0KPiBvcg0KPiA+ID4gKyAgICBtb3JlIHVucmVjb2duaXpl ZCBjaGFyYWN0ZXJzLCBpbmNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwNCj4gY2hhcmFjdGVy DQo+ID4gb2YNCj4gPiA+ICsgICAgdGhlIGlucHV0IHN0cmluZy4gVGhlbiwgdGhleSBhdHRlbXB0 IHRvIGNvbnZlcnQgdGhlIHN1YmplY3Qgc2VxdWVuY2UNCj4gdG8NCj4gPiBhbg0KPiA+ID4gKyAg ICBpbnRlZ2VyLCBhbmQgcmV0dXJuIHRoZSByZXN1bHQuDQo+ID4gPiArDQo+ID4gPiArICAgIElm IHRoZSB2YWx1ZSBvZiBiYXNlIGlzIHplcm8sIHRoZSBleHBlY3RlZCBmb3JtIG9mIHRoZSBzdWJq ZWN0DQo+IHNlcXVlbmNlDQo+ID4gaXMNCj4gPiA+ICsgICAgdGhhdCBvZiBhbiBpbnRlZ2VyIGNv bnN0YW50LCBvcHRpb25hbGx5IHByZWNlZGVkDQo+ID4gPiArICAgIGJ5IGEgcGx1cyBvciBtaW51 cyBzaWduLCBidXQgbm90IGluY2x1ZGluZyBhbiBpbnRlZ2VyIHN1ZmZpeC4gSWYgdGhlIHZhbHVl DQo+ID4gPiArICAgIG9mIGJhc2UgaXMgYmV0d2VlbiAyIGFuZCAzNiAoaW5jbHVzaXZlKSwgdGhl IGV4cGVjdGVkIGZvcm0gb2YgdGhlDQo+ID4gc3ViamVjdA0KPiA+ID4gKyAgICBzZXF1ZW5jZSBp cyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgYW5kIGRpZ2l0cyByZXByZXNlbnRpbmcgYW4gaW50ZWdl cg0KPiA+IHdpdGgNCj4gPiA+ICsgICAgdGhlIHJhZGl4IHNwZWNpZmllZCBieSBiYXNlLCBvcHRp b25hbGx5IHByZWNlZGVkIGJ5IGEgcGx1cyBvciBtaW51cw0KPiBzaWduLA0KPiA+ID4gKyAgICBi dXQgbm90IGluY2x1ZGluZyBhbiBpbnRlZ2VyIHN1ZmZpeC4gVGhlIGxldHRlcnMgZnJvbSBhIChv ciBBKSB0aHJvdWdoIHoNCj4gPiA+ICsgICAgKG9yIFopIGFyZSBhc2NyaWJlZCB0aGUgdmFsdWVz IDEwIHRocm91Z2ggMzU7IG9ubHkgbGV0dGVycyBhbmQgZGlnaXRzDQo+ID4gd2hvc2UNCj4gPiA+ ICsgICAgYXNjcmliZWQgdmFsdWVzIGFyZSBsZXNzIHRoYW4gdGhhdCBvZiBiYXNlIGFyZSBwZXJt aXR0ZWQuIElmIHRoZSB2YWx1ZQ0KPiBvZg0KPiA+ID4gKyAgICBiYXNlIGlzIDE2LCB0aGUgY2hh cmFjdGVycyAweCBvciAwWCBtYXkgb3B0aW9uYWxseSBwcmVjZWRlIHRoZQ0KPiBzZXF1ZW5jZQ0K PiA+IG9mDQo+ID4gPiArICAgIGxldHRlcnMgYW5kIGRpZ2l0cywgZm9sbG93aW5nIHRoZSBzaWdu IGlmIHByZXNlbnQuDQo+ID4gPiArDQo+ID4gPiArICAgIFRoZSBzdWJqZWN0IHNlcXVlbmNlIGlz IGRlZmluZWQgYXMgdGhlIGxvbmdlc3QgaW5pdGlhbCBzdWJzZXF1ZW5jZSBvZg0KPiA+IHRoZQ0K PiA+ID4gKyAgICBpbnB1dCBzdHJpbmcsIHN0YXJ0aW5nIHdpdGggdGhlIGZpcnN0IG5vbi13aGl0 ZS1zcGFjZSBjaGFyYWN0ZXIsIHRoYXQgaXMNCj4gb2YNCj4gPiA+ICsgICAgdGhlIGV4cGVjdGVk IGZvcm0uIFRoZSBzdWJqZWN0IHNlcXVlbmNlIGNvbnRhaW5zIG5vIGNoYXJhY3RlcnMgaWYNCj4g dGhlDQo+ID4gaW5wdXQNCj4gPiA+ICsgICAgc3RyaW5nIGlzIGVtcHR5IG9yIGNvbnNpc3RzIGVu dGlyZWx5IG9mIHdoaXRlIHNwYWNlLCBvciBpZiB0aGUgZmlyc3QNCj4gPiA+ICsgICAgbm9uLXdo aXRlLXNwYWNlIGNoYXJhY3RlciBpcyBvdGhlciB0aGFuIGEgc2lnbiBvciBhIHBlcm1pc3NpYmxl IGxldHRlcg0KPiBvcg0KPiA+IGRpZ2l0Lg0KPiA+ID4gKw0KPiA+ID4gKyAgICBJZiB0aGUgc3Vi amVjdCBzZXF1ZW5jZSBoYXMgdGhlIGV4cGVjdGVkIGZvcm0gYW5kIHRoZSB2YWx1ZSBvZiBiYXNl DQo+IGlzDQo+ID4gPiArICAgIHplcm8sIHRoZSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHN0YXJ0 aW5nIHdpdGggdGhlIGZpcnN0IGRpZ2l0IGlzDQo+ID4gPiArICAgIGludGVycHJldGVkIGFzIGFu IGludGVnZXIgY29uc3RhbnQuIElmIHRoZSBzdWJqZWN0IHNlcXVlbmNlIGhhcyB0aGUNCj4gPiA+ ICsgICAgZXhwZWN0ZWQgZm9ybSBhbmQgdGhlIHZhbHVlIG9mIGJhc2UgaXMgYmV0d2VlbiAyIGFu ZCAzNiwgaXQgaXMgdXNlZCBhcw0KPiA+IHRoZQ0KPiA+ID4gKyAgICBiYXNlIGZvciBjb252ZXJz aW9uLCBhc2NyaWJpbmcgdG8gZWFjaCBsZXR0ZXIgaXRzIHZhbHVlIGFzIGdpdmVuIGFib3ZlLiBJ Zg0KPiA+ID4gKyAgICB0aGUgc3ViamVjdCBzZXF1ZW5jZSBiZWdpbnMgd2l0aCBhIG1pbnVzIHNp Z24sIHRoZSB2YWx1ZSByZXN1bHRpbmcNCj4gZnJvbQ0KPiA+IHRoZQ0KPiA+ID4gKyAgICBjb252 ZXJzaW9uIGlzIG5lZ2F0ZWQgKGluIHRoZSByZXR1cm4gdHlwZSkuIEEgcG9pbnRlciB0byB0aGUg ZmluYWwgc3RyaW5nDQo+ID4gPiArICAgIGlzIHN0b3JlZCBpbiB0aGUgb2JqZWN0IHBvaW50ZWQg dG8gYnkgZW5kcHRyLCBwcm92aWRlZCB0aGF0IGVuZHB0ciBpcw0KPiA+ID4gKyAgICBub3QgYSBu dWxsIHBvaW50ZXIuDQo+ID4gPiArDQo+ID4gPiArICAgIEluIG90aGVyIHRoYW4gdGhlICJDIiBs b2NhbGUsIGFkZGl0aW9uYWwgbG9jYWxlLXNwZWNpZmljIHN1YmplY3QNCj4gc2VxdWVuY2UNCj4g PiA+ICsgICAgZm9ybXMgbWF5IGJlIGFjY2VwdGVkLg0KPiA+ID4gKw0KPiA+ID4gKyAgICBJZiB0 aGUgc3ViamVjdCBzZXF1ZW5jZSBpcyBlbXB0eSBvciBkb2VzIG5vdCBoYXZlIHRoZSBleHBlY3Rl ZCBmb3JtLA0KPiA+IG5vDQo+ID4gPiArICAgIGNvbnZlcnNpb24gaXMgcGVyZm9ybWVkOyB0aGUg dmFsdWUgb2YgbnB0ciBpcyBzdG9yZWQgaW4gdGhlIG9iamVjdA0KPiA+IHBvaW50ZWQNCj4gPiA+ ICsgICAgdG8gYnkgZW5kcHRyLCBwcm92aWRlZCB0aGF0IGVuZHB0ciBpcyBub3QgYSBudWxsIHBv aW50ZXIuDQo+ID4gPiArDQo+ID4gPiArICBAcmV0dXJuICAgVGhlIHN0cnRvbCwgc3RydG9sbCwg c3RydG91bCwgYW5kIHN0cnRvdWxsIGZ1bmN0aW9ucyByZXR1cm4gdGhlDQo+ID4gPiArICAgICAg ICAgICAgY29udmVydGVkIHZhbHVlLCBpZiBhbnkuIElmIG5vIGNvbnZlcnNpb24gY291bGQgYmUg cGVyZm9ybWVkLCB6ZXJvDQo+ID4gPiArICAgICAgICAgICAgaXMgcmV0dXJuZWQuIElmIHRoZSBj b3JyZWN0IHZhbHVlIGlzIG91dHNpZGUgdGhlIHJhbmdlIG9mDQo+ID4gPiArICAgICAgICAgICAg cmVwcmVzZW50YWJsZSB2YWx1ZXMsIExPTkdfTUlOLCBMT05HX01BWCwgTExPTkdfTUlOLA0KPiA+ IExMT05HX01BWCwNCj4gPiA+ICsgICAgICAgICAgICBVTE9OR19NQVgsIG9yIFVMTE9OR19NQVgg aXMgcmV0dXJuZWQgKGFjY29yZGluZyB0byB0aGUNCj4gcmV0dXJuDQo+ID4gdHlwZQ0KPiA+ID4g KyAgICAgICAgICAgIGFuZCBzaWduIG9mIHRoZSB2YWx1ZSwgaWYgYW55KSwgYW5kIHRoZSB2YWx1 ZSBvZiB0aGUgbWFjcm8gRVJBTkdFDQo+ID4gPiArICAgICAgICAgICAgaXMgc3RvcmVkIGluIGVy cm5vLg0KPiA+ID4gKyoqLw0KPiA+ID4gK2xvbmcNCj4gPiA+ICtzdHJ0b2woY29uc3QgY2hhciAq IG5wdHIsIGNoYXIgKiogZW5kcHRyLCBpbnQgYmFzZSkgew0KPiA+ID4gKyAgY29uc3QgY2hhciAq cEVuZDsNCj4gPiA+ICsgIGxvbmcgICAgICAgIFJlc3VsdCA9IDA7DQo+ID4gPiArICBsb25nICAg ICAgICBQcmV2aW91czsNCj4gPiA+ICsgIGludCAgICAgICAgIHRlbXA7DQo+ID4gPiArICBCT09M RUFOICAgICBOZWdhdGl2ZSA9IEZBTFNFOw0KPiA+ID4gKw0KPiA+ID4gKyAgcEVuZCA9IG5wdHI7 DQo+ID4gPiArDQo+ID4gPiArICBpZigoYmFzZSA8IDApIHx8IChiYXNlID09IDEpIHx8IChiYXNl ID4gMzYpKSB7DQo+ID4gPiArICAgIGlmKGVuZHB0ciAhPSBOVUxMKSB7DQo+ID4gPiArICAgICpl bmRwdHIgPSBOVUxMOw0KPiA+ID4gKyAgICB9DQo+ID4gPiArICAgIHJldHVybiAwOw0KPiA+ID4g KyAgfQ0KPiA+ID4gKyAgLy8gU2tpcCBsZWFkaW5nIHNwYWNlcy4NCj4gPiA+ICsgIHdoaWxlKGlz c3BhY2UoKm5wdHIpKSAgICsrbnB0cjsNCj4gPiA+ICsNCj4gPiA+ICsgIC8vIFByb2Nlc3MgU3Vi amVjdCBzZXF1ZW5jZTogb3B0aW9uYWwgc2lnbiBmb2xsb3dlZCBieSBkaWdpdHMuDQo+ID4gPiAr ICBpZigqbnB0ciA9PSAnKycpIHsNCj4gPiA+ICsgICAgTmVnYXRpdmUgPSBGQUxTRTsNCj4gPiA+ ICsgICAgKytucHRyOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgZWxzZSBpZigqbnB0ciA9PSAnLScp IHsNCj4gPiA+ICsgICAgTmVnYXRpdmUgPSBUUlVFOw0KPiA+ID4gKyAgICArK25wdHI7DQo+ID4g PiArICB9DQo+ID4gPiArDQo+ID4gPiArICBpZigqbnB0ciA9PSAnMCcpIHsgIC8qIE1pZ2h0IGJl IE9jdGFsIG9yIEhleCAqLw0KPiA+ID4gKyAgICBpZih0b3VwcGVyKG5wdHJbMV0pID09ICdYJykg eyAgIC8qIExvb2tzIGxpa2UgSGV4ICovDQo+ID4gPiArICAgICAgaWYoKGJhc2UgPT0gMCkgfHwg KGJhc2UgPT0gMTYpKSB7DQo+ID4gPiArICAgICAgICBucHRyICs9IDI7ICAvKiBTa2lwIHRoZSAi MFgiICAgICAgKi8NCj4gPiA+ICsgICAgICAgIGJhc2UgPSAxNjsgIC8qIEluIGNhc2UgYmFzZSB3 YXMgMCAqLw0KPiA+ID4gKyAgICAgIH0NCj4gPiA+ICsgICAgfQ0KPiA+ID4gKyAgICBlbHNlIHsg ICAgLyogTG9va3MgbGlrZSBPY3RhbCAqLw0KPiA+ID4gKyAgICAgIGlmKChiYXNlID09IDApIHx8 IChiYXNlID09IDgpKSB7DQo+ID4gPiArICAgICAgICArK25wdHI7ICAgICAvKiBTa2lwIHRoZSBs ZWFkaW5nICIwIiAqLw0KPiA+ID4gKyAgICAgICAgYmFzZSA9IDg7ICAgLyogSW4gY2FzZSBiYXNl IHdhcyAwICAgKi8NCj4gPiA+ICsgICAgICB9DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgIH0NCj4g PiA+ICsgIGlmKGJhc2UgPT0gMCkgeyAgIC8qIElmIHN0aWxsIHplcm8gdGhlbiBtdXN0IGJlIGRl Y2ltYWwgKi8NCj4gPiA+ICsgICAgYmFzZSA9IDEwOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgaWYo Km5wdHIgID09ICcwJykgew0KPiA+ID4gKyAgICBmb3IoIDsgKm5wdHIgPT0gJzAnOyArK25wdHIp OyAgLyogU2tpcCBhbnkgcmVtYWluaW5nIGxlYWRpbmcgemVyb3MgKi8NCj4gPiA+ICsgICAgcEVu ZCA9IG5wdHI7DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICB3aGlsZSggaXNhbG51bSgq bnB0cikgJiYgKCh0ZW1wID0gRGlnaXQyVmFsKCpucHRyKSkgPCBiYXNlKSkgew0KPiA+ID4gKyAg ICBQcmV2aW91cyA9IFJlc3VsdDsNCj4gPiA+ICsgICAgUmVzdWx0ID0gKFJlc3VsdCAqIGJhc2Up ICsgKGxvbmcgaW50KXRlbXA7DQo+ID4gPiArICAgIGlmKCBSZXN1bHQgPD0gUHJldmlvdXMpIHsg ICAvLyBEZXRlY3QgT3ZlcmZsb3cNCj4gPiA+ICsgICAgICBpZihOZWdhdGl2ZSkgew0KPiA+ID4g KyAgICAgICAgUmVzdWx0ID0gTE9OR19NSU47DQo+ID4gPiArICAgICAgfQ0KPiA+ID4gKyAgICAg IGVsc2Ugew0KPiA+ID4gKyAgICAgICAgUmVzdWx0ID0gTE9OR19NQVg7DQo+ID4gPiArICAgICAg fQ0KPiA+ID4gKyAgICAgIE5lZ2F0aXZlID0gRkFMU0U7DQo+ID4gPiArICAgICAgZXJybm8gPSBF UkFOR0U7DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgICAgcEVu ZCA9ICsrbnB0cjsNCj4gPiA+ICsgIH0NCj4gPiA+ICsgIGlmKE5lZ2F0aXZlKSB7DQo+ID4gPiAr ICAgIFJlc3VsdCA9IC1SZXN1bHQ7DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICAvLyBT YXZlIHBvaW50ZXIgdG8gZmluYWwgc2VxdWVuY2UNCj4gPiA+ICsgIGlmKGVuZHB0ciAhPSBOVUxM KSB7DQo+ID4gPiArICAgICplbmRwdHIgPSAoY2hhciAqKXBFbmQ7DQo+ID4gPiArICB9DQo+ID4g PiArICByZXR1cm4gUmVzdWx0Ow0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICsvKiogVGhlIHN0 cnRvdWxsIGZ1bmN0aW9uIGNvbnZlcnRzIHRoZSBpbml0aWFsIHBvcnRpb24gb2YgdGhlIHN0cmlu ZyBwb2ludGVkDQo+ID4gdG8NCj4gPiA+ICsgICAgYnkgbnB0ciB0byB1bnNpZ25lZCBsb25nIGxv bmcgaW50IHJlcHJlc2VudGF0aW9uLg0KPiA+ID4gKw0KPiA+ID4gKyAgICBTZWUgdGhlIGRlc2Ny aXB0aW9uIGZvciBzdHJ0b2wgZm9yIG1vcmUgaW5mb3JtYXRpb24uDQo+ID4gPiArDQo+ID4gPiAr ICBAcmV0dXJuICAgVGhlIHN0cnRvdWxsIGZ1bmN0aW9uIHJldHVybnMgdGhlIGNvbnZlcnRlZCB2 YWx1ZSwgaWYgYW55LiBJZiBubw0KPiA+ID4gKyAgICAgICAgICAgIGNvbnZlcnNpb24gY291bGQg YmUgcGVyZm9ybWVkLCB6ZXJvIGlzIHJldHVybmVkLiBJZiB0aGUgY29ycmVjdA0KPiA+ID4gKyAg ICAgICAgICAgIHZhbHVlIGlzIG91dHNpZGUgdGhlIHJhbmdlIG9mIHJlcHJlc2VudGFibGUgdmFs dWVzLCBVTExPTkdfTUFYDQo+IGlzDQo+ID4gPiArICAgICAgICAgICAgcmV0dXJuZWQgYW5kIHRo ZSB2YWx1ZSBvZiB0aGUgbWFjcm8gRVJBTkdFIGlzIHN0b3JlZCBpbiBlcnJuby4NCj4gPiA+ICsq Ki8NCj4gPiA+ICt1bnNpZ25lZCBsb25nIGxvbmcNCj4gPiA+ICtzdHJ0b3VsbChjb25zdCBjaGFy ICogbnB0ciwgY2hhciAqKiBlbmRwdHIsIGludCBiYXNlKSB7DQo+ID4gPiArICBjb25zdCBjaGFy ICAgICAgICAgICAqcEVuZDsNCj4gPiA+ICsgIHVuc2lnbmVkIGxvbmcgbG9uZyAgICBSZXN1bHQg PSAwOw0KPiA+ID4gKyAgdW5zaWduZWQgbG9uZyBsb25nICAgIFByZXZpb3VzOw0KPiA+ID4gKyAg aW50ICAgICAgICAgICAgICAgICAgIHRlbXA7DQo+ID4gPiArDQo+ID4gPiArICBwRW5kID0gbnB0 cjsNCj4gPiA+ICsNCj4gPiA+ICsgIGlmKChiYXNlIDwgMCkgfHwgKGJhc2UgPT0gMSkgfHwgKGJh c2UgPiAzNikpIHsNCj4gPiA+ICsgICAgaWYoZW5kcHRyICE9IE5VTEwpIHsNCj4gPiA+ICsgICAg KmVuZHB0ciA9IE5VTEw7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgICAgcmV0dXJuIDA7DQo+ID4g PiArICB9DQo+ID4gPiArICAvLyBTa2lwIGxlYWRpbmcgc3BhY2VzLg0KPiA+ID4gKyAgd2hpbGUo aXNzcGFjZSgqbnB0cikpICAgKytucHRyOw0KPiA+ID4gKw0KPiA+ID4gKyAgLy8gUHJvY2VzcyBT dWJqZWN0IHNlcXVlbmNlOiBvcHRpb25hbCArIHNpZ24gZm9sbG93ZWQgYnkgZGlnaXRzLg0KPiA+ ID4gKyAgaWYoKm5wdHIgPT0gJysnKSB7DQo+ID4gPiArICAgICsrbnB0cjsNCj4gPiA+ICsgIH0N Cj4gPiA+ICsNCj4gPiA+ICsgIGlmKCpucHRyID09ICcwJykgeyAgLyogTWlnaHQgYmUgT2N0YWwg b3IgSGV4ICovDQo+ID4gPiArICAgIGlmKHRvdXBwZXIobnB0clsxXSkgPT0gJ1gnKSB7ICAgLyog TG9va3MgbGlrZSBIZXggKi8NCj4gPiA+ICsgICAgICBpZigoYmFzZSA9PSAwKSB8fCAoYmFzZSA9 PSAxNikpIHsNCj4gPiA+ICsgICAgICAgIG5wdHIgKz0gMjsgIC8qIFNraXAgdGhlICIwWCIgICAg ICAqLw0KPiA+ID4gKyAgICAgICAgYmFzZSA9IDE2OyAgLyogSW4gY2FzZSBiYXNlIHdhcyAwICov DQo+ID4gPiArICAgICAgfQ0KPiA+ID4gKyAgICB9DQo+ID4gPiArICAgIGVsc2UgeyAgICAvKiBM b29rcyBsaWtlIE9jdGFsICovDQo+ID4gPiArICAgICAgaWYoKGJhc2UgPT0gMCkgfHwgKGJhc2Ug PT0gOCkpIHsNCj4gPiA+ICsgICAgICAgICsrbnB0cjsgICAgIC8qIFNraXAgdGhlIGxlYWRpbmcg IjAiICovDQo+ID4gPiArICAgICAgICBiYXNlID0gODsgICAvKiBJbiBjYXNlIGJhc2Ugd2FzIDAg ICAqLw0KPiA+ID4gKyAgICAgIH0NCj4gPiA+ICsgICAgfQ0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAg aWYoYmFzZSA9PSAwKSB7ICAgLyogSWYgc3RpbGwgemVybyB0aGVuIG11c3QgYmUgZGVjaW1hbCAq Lw0KPiA+ID4gKyAgICBiYXNlID0gMTA7DQo+ID4gPiArICB9DQo+ID4gPiArICBpZigqbnB0ciAg PT0gJzAnKSB7DQo+ID4gPiArICAgIGZvciggOyAqbnB0ciA9PSAnMCc7ICsrbnB0cik7ICAvKiBT a2lwIGFueSByZW1haW5pbmcgbGVhZGluZyB6ZXJvcyAqLw0KPiA+ID4gKyAgICBwRW5kID0gbnB0 cjsNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsgIHdoaWxlKCBpc2FsbnVtKCpucHRyKSAm JiAoKHRlbXAgPSBEaWdpdDJWYWwoKm5wdHIpKSA8IGJhc2UpKSB7DQo+ID4gPiArICAgIFByZXZp b3VzID0gUmVzdWx0Ow0KPiA+ID4gKyAgICBSZXN1bHQgPSBEaXZVNjR4MzIgKFJlc3VsdCwgYmFz ZSkgKyAodW5zaWduZWQgbG9uZyBsb25nKXRlbXA7DQo+ID4gPiArICAgIGlmKCBSZXN1bHQgPCBQ cmV2aW91cykgIHsgICAvLyBJZiB3ZSBvdmVyZmxvd2VkDQo+ID4gPiArICAgICAgUmVzdWx0ID0g VUxMT05HX01BWDsNCj4gPiA+ICsgICAgICBlcnJubyA9IEVSQU5HRTsNCj4gPiA+ICsgICAgICBi cmVhazsNCj4gPiA+ICsgICAgfQ0KPiA+ID4gKyAgICBwRW5kID0gKytucHRyOw0KPiA+ID4gKyAg fQ0KPiA+ID4gKw0KPiA+ID4gKyAgLy8gU2F2ZSBwb2ludGVyIHRvIGZpbmFsIHNlcXVlbmNlDQo+ ID4gPiArICBpZihlbmRwdHIgIT0gTlVMTCkgew0KPiA+ID4gKyAgICAqZW5kcHRyID0gKGNoYXIg KilwRW5kOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKyAgcmV0dXJuIFJlc3VsdDsNCj4gPiA+ICt9DQo+ ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBlZGsyIEphbnNzb24gcG9ydCBkb2VzIG5vdCBz dXBwb3J0IGRvdWJsZXMsIHNpbXBseSByZXR1cm4gMC4NCj4gPiA+ICsNCj4gPiA+ICsgIFRoZXNl IGNvbnZlcnNpb24gZnVuY3Rpb25zIGNvbnZlcnQgdGhlIGluaXRpYWwgcG9ydGlvbiBvZiB0aGUN Cj4gPiA+ICsgc3RyaW5nICBwb2ludGVkIHRvIGJ5IG5wdHIgdG8gZG91YmxlLCBmbG9hdCwgYW5k IGxvbmcgZG91YmxlDQo+ID4gPiArIHJlcHJlc2VudGF0aW9uLCAgcmVzcGVjdGl2ZWx5Lg0KPiA+ ID4gKw0KPiA+ID4gKyAgVGhlIHN0cnRvZCgpLCBzdHJ0b2YoKSwgYW5kIHN0cnRvbGQoKSBmdW5j dGlvbnMgcmV0dXJuIHRoZQ0KPiA+ID4gKyBjb252ZXJ0ZWQgIHZhbHVlLCBpZiBhbnkuDQo+ID4g PiArDQo+ID4gPiArICBJZiBlbmRwdHIgaXMgbm90IE5VTEwsIGEgcG9pbnRlciB0byB0aGUgY2hh cmFjdGVyIGFmdGVyIHRoZSBsYXN0DQo+ID4gPiArIGNoYXJhYy0gIHRlciB1c2VkIGluIHRoZSBj b252ZXJzaW9uIGlzIHN0b3JlZCBpbiB0aGUgbG9jYXRpb24NCj4gPiA+ICsgcmVmZXJlbmNlZCBi eSAgZW5kcHRyLg0KPiA+ID4gKw0KPiA+ID4gKyAgSWYgbm8gY29udmVyc2lvbiBpcyBwZXJmb3Jt ZWQsIHplcm8gaXMgcmV0dXJuZWQgYW5kIHRoZSB2YWx1ZSBvZg0KPiA+ID4gKyBucHRyIGlzICBz dG9yZWQgaW4gdGhlIGxvY2F0aW9uIHJlZmVyZW5jZWQgYnkgZW5kcHRyLg0KPiA+ID4gKw0KPiA+ ID4gKyAgSWYgdGhlIGNvcnJlY3QgdmFsdWUgd291bGQgY2F1c2Ugb3ZlcmZsb3csIHBsdXMgb3Ig bWludXMgSFVHRV9WQUwsDQo+ID4gPiArIEhVR0VfVkFMRiwgb3IgSFVHRV9WQUxMIGlzIHJldHVy bmVkIChhY2NvcmRpbmcgdG8gdGhlIHNpZ24gYW5kIHR5cGUNCj4gPiA+ICsgb2YgIHRoZSByZXR1 cm4gdmFsdWUpLCBhbmQgRVJBTkdFIGlzIHN0b3JlZCBpbiBlcnJuby4gIElmIHRoZQ0KPiA+ID4g KyBjb3JyZWN0IHZhbHVlICB3b3VsZCBjYXVzZSB1bmRlcmZsb3csIHplcm8gaXMgcmV0dXJuZWQg YW5kIEVSQU5HRSBpcw0KPiA+IHN0b3JlZCBpbiBlcnJuby4NCj4gPiA+ICsNCj4gPiA+ICsgIEBy ZXR1cm4gIFJldHVybiAwLg0KPiA+ID4gKyoqLw0KPiA+ID4gK2RvdWJsZQ0KPiA+ID4gK3N0cnRv ZCAoY29uc3QgY2hhciAqIF9fcmVzdHJpY3QgbnB0ciwgY2hhciAqKiBfX3Jlc3RyaWN0IGVuZHB0 cikgew0KPiA+ID4gKyAgICBpZihlbmRwdHIpDQo+ID4gPiArICAgICAgKmVuZHB0ciA9IChjaGFy ICopKG5wdHIgKyBzdHJsZW4obnB0cikpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICByZXR1cm4gKGRv dWJsZSkwOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIEFsbG9jYXRl IGFuZCB6ZXJvLWluaXRpYWxpemUgYXJyYXkuDQo+ID4gPiArKiovDQo+ID4gPiArdm9pZCAqDQo+ ID4gPiArY2FsbG9jKHNpemVfdCBOdW0sIHNpemVfdCBTaXplKQ0KPiA+ID4gK3sNCj4gPiA+ICsg IHZvaWQgICAgICAgKlJldFZhbDsNCj4gPiA+ICsgIHNpemVfdCAgICAgIE51bVNpemU7DQo+ID4g PiArDQo+ID4gPiArICBOdW1TaXplID0gTnVtICogU2l6ZTsNCj4gPiA+ICsgIFJldFZhbCAgPSBO VUxMOw0KPiA+ID4gKyAgaWYgKE51bVNpemUgIT0gMCkgew0KPiA+ID4gKyAgUmV0VmFsID0gbWFs bG9jKE51bVNpemUpOw0KPiA+ID4gKyAgaWYoIFJldFZhbCAhPSBOVUxMKSB7DQo+ID4gPiArICAg IChWT0lEKVplcm9NZW0oIFJldFZhbCwgTnVtU2l6ZSk7DQo+ID4gPiArICB9DQo+ID4gPiArICB9 DQo+ID4gPiArICBERUJVRygoREVCVUdfUE9PTCwgIjB4JXAgPSBjYWxsb2MoJWQsICVkKVxuIiwg UmV0VmFsLCBOdW0sIFNpemUpKTsNCj4gPiA+ICsNCj4gPiA+ICsgIHJldHVybiBSZXRWYWw7DQo+ ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKy8vDQo+ID4gPiArLy8gIFRoZSBhcnJheXMgZ2l2ZSB0 aGUgY3VtdWxhdGl2ZSBudW1iZXIgb2YgZGF5cyB1cCB0byB0aGUgZmlyc3Qgb2YNCj4gPiA+ICt0 aGUgLy8gIG1vbnRoIG51bWJlciB1c2VkIGFzIHRoZSBpbmRleCAoMSAtPiAxMikgZm9yIHJlZ3Vs YXIgYW5kIGxlYXANCj4gPiB5ZWFycy4NCj4gPiA+ICsvLyAgVGhlIHZhbHVlIGF0IGluZGV4IDEz IGlzIGZvciB0aGUgd2hvbGUgeWVhci4NCj4gPiA+ICsvLw0KPiA+ID4gK1VJTlROIEN1bXVsYXRp dmVEYXlzWzJdWzE0XSA9IHsNCj4gPiA+ICsgIHsNCj4gPiA+ICsgICAgMCwNCj4gPiA+ICsgICAg MCwNCj4gPiA+ICsgICAgMzEsDQo+ID4gPiArICAgIDMxICsgMjgsDQo+ID4gPiArICAgIDMxICsg MjggKyAzMSwNCj4gPiA+ICsgICAgMzEgKyAyOCArIDMxICsgMzAsDQo+ID4gPiArICAgIDMxICsg MjggKyAzMSArIDMwICsgMzEsDQo+ID4gPiArICAgIDMxICsgMjggKyAzMSArIDMwICsgMzEgKyAz MCwNCj4gPiA+ICsgICAgMzEgKyAyOCArIDMxICsgMzAgKyAzMSArIDMwICsgMzEsDQo+ID4gPiAr ICAgIDMxICsgMjggKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEsDQo+ID4gPiArICAgIDMx ICsgMjggKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEgKyAzMCwNCj4gPiA+ICsgICAgMzEg KyAyOCArIDMxICsgMzAgKyAzMSArIDMwICsgMzEgKyAzMSArIDMwICsgMzEsDQo+ID4gPiArICAg IDMxICsgMjggKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEgKyAzMCArIDMxICsgMzAsDQo+ ID4gPiArICAgIDMxICsgMjggKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEgKyAzMCArIDMx ICsgMzAgKyAzMQ0KPiA+ID4gKyAgfSwNCj4gPiA+ICsgIHsNCj4gPiA+ICsgICAgMCwNCj4gPiA+ ICsgICAgMCwNCj4gPiA+ICsgICAgMzEsDQo+ID4gPiArICAgIDMxICsgMjksDQo+ID4gPiArICAg IDMxICsgMjkgKyAzMSwNCj4gPiA+ICsgICAgMzEgKyAyOSArIDMxICsgMzAsDQo+ID4gPiArICAg IDMxICsgMjkgKyAzMSArIDMwICsgMzEsDQo+ID4gPiArICAgIDMxICsgMjkgKyAzMSArIDMwICsg MzEgKyAzMCwNCj4gPiA+ICsgICAgMzEgKyAyOSArIDMxICsgMzAgKyAzMSArIDMwICsgMzEsDQo+ ID4gPiArICAgIDMxICsgMjkgKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEsDQo+ID4gPiAr ICAgIDMxICsgMjkgKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEgKyAzMCwNCj4gPiA+ICsg ICAgMzEgKyAyOSArIDMxICsgMzAgKyAzMSArIDMwICsgMzEgKyAzMSArIDMwICsgMzEsDQo+ID4g PiArICAgIDMxICsgMjkgKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEgKyAzMCArIDMxICsg MzAsDQo+ID4gPiArICAgIDMxICsgMjkgKyAzMSArIDMwICsgMzEgKyAzMCArIDMxICsgMzEgKyAz MCArIDMxICsgMzAgKyAzMQ0KPiA+ID4gKyAgfQ0KPiA+ID4gK307DQo+ID4gPiArDQo+ID4gPiAr I2RlZmluZSBJc0xlYXAoeSkgICAoKCh5KSAlIDQpID09IDAgJiYgKCgoeSkgJSAxMDApICE9IDAg fHwgKCh5KSAlIDQwMCkgPT0NCj4gMCkpDQo+ID4gPiArI2RlZmluZSBTRUNTUEVSTUlOICAoNjAp DQo+ID4gPiArI2RlZmluZSBTRUNTUEVSSE9VUiAoNjAgKiA2MCkNCj4gPiA+ICsjZGVmaW5lIFNF Q1NQRVJEQVkgICgyNCAqIFNFQ1NQRVJIT1VSKQ0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4g KyAgR2V0IHRoZSBzeXN0ZW0gdGltZSBhcyBzZWNvbmRzIGVsYXBzZWQgc2luY2UgbWlkbmlnaHQs IEphbnVhcnkgMSwNCj4gMTk3MC4NCj4gPiA+ICsqKi8NCj4gPiA+ICt0aW1lX3QgdGltZSAodGlt ZV90ICp0aW1lcikNCj4gPiA+ICt7DQo+ID4gPiArICBFRklfVElNRSAgVGltZTsNCj4gPiA+ICsg IHRpbWVfdCAgICBDYWxUaW1lOw0KPiA+ID4gKyAgVUlOVE4gICAgIFllYXI7DQo+ID4gPiArDQo+ ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gR2V0IHRoZSBjdXJyZW50IHRpbWUgYW5kIGRhdGUgaW5m b3JtYXRpb24gIC8vICBnUlQtPkdldFRpbWUNCj4gPiA+ICsgKCZUaW1lLCBOVUxMKTsNCj4gPiA+ ICsNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBZZWFycyBIYW5kbGluZw0KPiA+ID4gKyAgLy8g VVRpbWUgc2hvdWxkIG5vdyBiZSBzZXQgdG8gMDA6MDA6MDAgb24gSmFuIDEgb2YgdGhlIGN1cnJl bnQgeWVhci4NCj4gPiA+ICsgIC8vDQo+ID4gPiArICBmb3IgKFllYXIgPSAxOTcwLCBDYWxUaW1l ID0gMDsgWWVhciAhPSBUaW1lLlllYXI7IFllYXIrKykgew0KPiA+ID4gKyAgICBDYWxUaW1lID0g Q2FsVGltZSArICh0aW1lX3QpKEN1bXVsYXRpdmVEYXlzW0lzTGVhcChZZWFyKV1bMTNdICoNCj4g PiA+ICsgU0VDU1BFUkRBWSk7ICB9DQo+ID4gPiArDQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8g QWRkIGluIG51bWJlciBvZiBzZWNvbmRzIGZvciBjdXJyZW50IE1vbnRoLCBEYXksIEhvdXIsIE1p bnV0ZSwNCj4gPiA+ICsgU2Vjb25kcywgYW5kIFRpbWVab25lIGFkanVzdG1lbnQgIC8vICBDYWxU aW1lID0gQ2FsVGltZSArDQo+ID4gPiArICAgICAgICAgICAgKHRpbWVfdCkoKFRpbWUuVGltZVpv bmUgIT0gRUZJX1VOU1BFQ0lGSUVEX1RJTUVaT05FKSA/DQo+ID4gKFRpbWUuVGltZVpvbmUgKiA2 MCkgOiAwKSArDQo+ID4gPiArICAgICAgICAgICAgKHRpbWVfdCkoQ3VtdWxhdGl2ZURheXNbSXNM ZWFwKFRpbWUuWWVhcildW1RpbWUuTW9udGhdICoNCj4gPiBTRUNTUEVSREFZKSArDQo+ID4gPiAr ICAgICAgICAgICAgKHRpbWVfdCkoKChUaW1lLkRheSA+IDApID8gVGltZS5EYXkgLSAxIDogMCkg KiBTRUNTUEVSREFZKSArDQo+ID4gPiArICAgICAgICAgICAgKHRpbWVfdCkoVGltZS5Ib3VyICog U0VDU1BFUkhPVVIpICsNCj4gPiA+ICsgICAgICAgICAgICAodGltZV90KShUaW1lLk1pbnV0ZSAq IDYwKSArDQo+ID4gPiArICAgICAgICAgICAgKHRpbWVfdClUaW1lLlNlY29uZDsNCj4gPiA+ICsN Cj4gPiA+ICsgIGlmICh0aW1lciAhPSBOVUxMKSB7DQo+ID4gPiArICAgICp0aW1lciA9IENhbFRp bWU7DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICByZXR1cm4gQ2FsVGltZTsNCj4gPiA+ ICt9DQo+ID4gPiArDQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK2ludA0KPiA+ID4gKygqU09SVF9D T01QQVJFKSgNCj4gPiA+ICsgIElOICBWT0lEICAqQnVmZmVyMSwNCj4gPiA+ICsgIElOICBWT0lE ICAqQnVmZmVyMg0KPiA+ID4gKyAgKTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIER1 cGxpY2F0ZWQgZnJvbSBFREtJSSBCYXNlU29ydExpYiBmb3IgcXNvcnQoKSB3cmFwcGVyDQo+ID4g PiArICBAcGFyYW1baW4sIG91dF0gQnVmZmVyVG9Tb3J0ICAgb24gY2FsbCBhIEJ1ZmZlciBvZiAo cG9zc2libHkgc29ydGVkKQ0KPiA+IGVsZW1lbnRzDQo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb24gcmV0dXJuIGEgYnVmZmVyIG9mIHNvcnRlZCBlbGVtZW50cw0KPiA+ ID4gKyAgQHBhcmFtW2luXSBDb3VudCAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgZWxlbWVu dHMgaW4gdGhlIGJ1ZmZlciB0byBzb3J0DQo+ID4gPiArICBAcGFyYW1baW5dIEVsZW1lbnRTaXpl ICAgICAgICAgU2l6ZSBvZiBhbiBlbGVtZW50IGluIGJ5dGVzDQo+ID4gPiArICBAcGFyYW1baW5d IENvbXBhcmVGdW5jdGlvbiAgICAgVGhlIGZ1bmN0aW9uIHRvIGNhbGwgdG8gcGVyZm9ybSB0aGUN Cj4gPiBjb21wYXJpc29uDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2YgYW55IDIgZWxlbWVudHMNCj4gPiA+ICsgIEBwYXJhbVtpbl0gQnVmZmVyICAgICAgICAgICAg ICBCdWZmZXIgb2Ygc2l6ZSBFbGVtZW50U2l6ZSBmb3IgdXNlIGluDQo+IHN3YXBwaW5nDQo+ID4g PiArKiovDQo+ID4gPiArU1RBVElDDQo+ID4gPiArVk9JRA0KPiA+ID4gK1F1aWNrU29ydFdvcmtl ciAoDQo+ID4gPiArICBJTiBPVVQgICAgVk9JRCAgICAgICAgICAqQnVmZmVyVG9Tb3J0LA0KPiA+ ID4gKyAgSU4gQ09OU1QgIFVJTlROICAgICAgICAgQ291bnQsDQo+ID4gPiArICBJTiBDT05TVCAg VUlOVE4gICAgICAgICBFbGVtZW50U2l6ZSwNCj4gPiA+ICsgIElOICAgICAgICBTT1JUX0NPTVBB UkUgIENvbXBhcmVGdW5jdGlvbiwNCj4gPiA+ICsgIElOICAgICAgICBWT0lEICAgICAgICAgICpC dWZmZXINCj4gPiA+ICsgICkNCj4gPiA+ICt7DQo+ID4gPiArICBWT0lEICAgICAgICAqUGl2b3Q7 DQo+ID4gPiArICBVSU5UTiAgICAgICBMb29wQ291bnQ7DQo+ID4gPiArICBVSU5UTiAgICAgICBO ZXh0U3dhcExvY2F0aW9uOw0KPiA+ID4gKw0KPiA+ID4gKyAgQVNTRVJUKEJ1ZmZlclRvU29ydCAg ICAhPSBOVUxMKTsNCj4gPiA+ICsgIEFTU0VSVChDb21wYXJlRnVuY3Rpb24gIT0gTlVMTCk7DQo+ ID4gPiArICBBU1NFUlQoQnVmZmVyICAgICAgICAgICE9IE5VTEwpOw0KPiA+ID4gKw0KPiA+ID4g KyAgaWYgKENvdW50IDwgMiB8fCBFbGVtZW50U2l6ZSAgPCAxKSB7DQo+ID4gPiArICAgIHJldHVy bjsNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsgIE5leHRTd2FwTG9jYXRpb24gPSAwOw0K PiA+ID4gKw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIC8vIFBpY2sgYSBwaXZvdCAod2UgY2hvb3Nl IGxhc3QgZWxlbWVudCkgIC8vICBQaXZvdCA9ICgoVUlOVDgNCj4gPiA+ICsgKilCdWZmZXJUb1Nv cnQgKyAoKENvdW50IC0gMSkgKiBFbGVtZW50U2l6ZSkpOw0KPiA+ID4gKw0KPiA+ID4gKyAgLy8N Cj4gPiA+ICsgIC8vIE5vdyBnZXQgdGhlIHBpdm90IHN1Y2ggdGhhdCBhbGwgb24gImxlZnQiIGFy ZSBiZWxvdyBpdCAgLy8gYW5kDQo+ID4gPiArIGV2ZXJ5dGhpbmcgInJpZ2h0IiBhcmUgYWJvdmUg aXQgIC8vICBmb3IgKExvb3BDb3VudCA9IDA7IExvb3BDb3VudCA8DQo+ID4gPiArIENvdW50IC0g MTsgIExvb3BDb3VudCsrKSAgew0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICAvLyBJZiB0aGUg ZWxlbWVudCBpcyBsZXNzIHRoYW4gdGhlIHBpdm90DQo+ID4gPiArICAgIC8vDQo+ID4gPiArICAg IGlmIChDb21wYXJlRnVuY3Rpb24gKChWT0lEICopKChVSU5UOCAqKUJ1ZmZlclRvU29ydCArICgo TG9vcENvdW50KQ0KPiAqDQo+ID4gRWxlbWVudFNpemUpKSwgUGl2b3QpIDw9IDApIHsNCj4gPiA+ ICsgICAgICAvLw0KPiA+ID4gKyAgICAgIC8vIFN3YXANCj4gPiA+ICsgICAgICAvLw0KPiA+ID4g KyAgICAgIENvcHlNZW0gKEJ1ZmZlciwgKFVJTlQ4ICopQnVmZmVyVG9Tb3J0ICsgKE5leHRTd2Fw TG9jYXRpb24gKg0KPiA+IEVsZW1lbnRTaXplKSwgRWxlbWVudFNpemUpOw0KPiA+ID4gKyAgICAg IENvcHlNZW0gKChVSU5UOCAqKUJ1ZmZlclRvU29ydCArIChOZXh0U3dhcExvY2F0aW9uICoNCj4g PiA+ICsgRWxlbWVudFNpemUpLCAoVUlOVDggKilCdWZmZXJUb1NvcnQgKyAoKExvb3BDb3VudCkg Kg0KPiA+ID4gRWxlbWVudFNpemUpLCBFbGVtZW50U2l6ZSk7DQo+ID4gPiArICAgICAgQ29weU1l bSAoKFVJTlQ4ICopQnVmZmVyVG9Tb3J0ICsgKChMb29wQ291bnQpICogRWxlbWVudFNpemUpLA0K PiA+ID4gKyBCdWZmZXIsIEVsZW1lbnRTaXplKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAvLw0K PiA+ID4gKyAgICAgIC8vIEluY3JlbWVudCBOZXh0U3dhcExvY2F0aW9uDQo+ID4gPiArICAgICAg Ly8NCj4gPiA+ICsgICAgICBOZXh0U3dhcExvY2F0aW9uKys7DQo+ID4gPiArICAgIH0NCj4gPiA+ ICsgIH0NCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBTd2FwIHBpdm90IHRvIGl0J3MgZmluYWwg cG9zaXRpb24gKE5leHRTd2FwTG9jYWl0b24pICAvLw0KPiA+ID4gKyBDb3B5TWVtIChCdWZmZXIs IFBpdm90LCBFbGVtZW50U2l6ZSk7ICBDb3B5TWVtIChQaXZvdCwgKFVJTlQ4DQo+ID4gPiArICop QnVmZmVyVG9Tb3J0ICsgKE5leHRTd2FwTG9jYXRpb24gKiBFbGVtZW50U2l6ZSksIEVsZW1lbnRT aXplKTsNCj4gPiA+ICsgQ29weU1lbSAoKFVJTlQ4ICopQnVmZmVyVG9Tb3J0ICsgKE5leHRTd2Fw TG9jYXRpb24gKiBFbGVtZW50U2l6ZSksDQo+ID4gPiArIEJ1ZmZlciwgRWxlbWVudFNpemUpOw0K PiA+ID4gKw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIC8vIE5vdyByZWN1cnNlIG9uIDIgcGFyaXRp YWwgbGlzdHMuICBOZWl0aGVyIG9mIHRoZXNlIHdpbGwgaGF2ZSB0aGUgJ3Bpdm90Jw0KPiA+IGVs ZW1lbnQuDQo+ID4gPiArICAvLyBJRSBsaXN0IGlzIHNvcnRlZCBsZWZ0IGhhbGYsIHBpdm90IGVs ZW1lbnQsIHNvcnRlZCByaWdodCBoYWxmLi4uDQo+ID4gPiArICAvLw0KPiA+ID4gKyAgUXVpY2tT b3J0V29ya2VyICgNCj4gPiA+ICsgICAgQnVmZmVyVG9Tb3J0LA0KPiA+ID4gKyAgICBOZXh0U3dh cExvY2F0aW9uLA0KPiA+ID4gKyAgICBFbGVtZW50U2l6ZSwNCj4gPiA+ICsgICAgQ29tcGFyZUZ1 bmN0aW9uLA0KPiA+ID4gKyAgICBCdWZmZXINCj4gPiA+ICsgICAgKTsNCj4gPiA+ICsNCj4gPiA+ ICsgIFF1aWNrU29ydFdvcmtlciAoDQo+ID4gPiArICAgIChVSU5UOCAqKUJ1ZmZlclRvU29ydCAr IChOZXh0U3dhcExvY2F0aW9uICsgMSkgKiBFbGVtZW50U2l6ZSwNCj4gPiA+ICsgICAgQ291bnQg LSBOZXh0U3dhcExvY2F0aW9uIC0gMSwNCj4gPiA+ICsgICAgRWxlbWVudFNpemUsDQo+ID4gPiAr ICAgIENvbXBhcmVGdW5jdGlvbiwNCj4gPiA+ICsgICAgQnVmZmVyDQo+ID4gPiArICAgICk7DQo+ ID4gPiArDQo+ID4gPiArICByZXR1cm47DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKy8qKg0K PiA+ID4gKyAgUGVyZm9ybXMgYSBxdWljayBzb3J0DQo+ID4gPiArKiovDQo+ID4gPiArdm9pZCBx c29ydCAodm9pZCAqYmFzZSwgc2l6ZV90IG51bSwgc2l6ZV90IHdpZHRoLCBpbnQNCj4gPiA+ICso KmNvbXBhcmUpKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKSkgew0KPiA+ID4gKyAgVk9JRCAg KkJ1ZmZlcjsNCj4gPiA+ICsNCj4gPiA+ICsgIEFTU0VSVCAoYmFzZSAgICAhPSBOVUxMKTsNCj4g PiA+ICsgIEFTU0VSVCAoY29tcGFyZSAhPSBOVUxMKTsNCj4gPiA+ICsNCj4gPiA+ICsgIC8vDQo+ ID4gPiArICAvLyBVc2UgQ1JULXN0eWxlIG1hbGxvYyB0byBjb3ZlciBCUyBhbmQgUlQgbWVtb3J5 IGFsbG9jYXRpb24uDQo+ID4gPiArICAvLw0KPiA+ID4gKyAgQnVmZmVyID0gbWFsbG9jICh3aWR0 aCk7DQo+ID4gPiArICBBU1NFUlQgKEJ1ZmZlciAhPSBOVUxMKTsNCj4gPiA+ICsNCj4gPiA+ICsg IC8vDQo+ID4gPiArICAvLyBSZS11c2UgUGVyZm9ybVF1aWNrU29ydCgpIGZ1bmN0aW9uIEltcGxl bWVudGF0aW9uIGluIEVES0lJDQo+ID4gQmFzZVNvcnRMaWIuDQo+ID4gPiArICAvLw0KPiA+ID4g KyAgUXVpY2tTb3J0V29ya2VyIChiYXNlLCAoVUlOVE4pbnVtLCAoVUlOVE4pd2lkdGgsDQo+ID4g PiArIChTT1JUX0NPTVBBUkUpY29tcGFyZSwgQnVmZmVyKTsNCj4gPiA+ICsNCj4gPiA+ICsgIGZy ZWUgKEJ1ZmZlcik7DQo+ID4gPiArICByZXR1cm47DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4g Ky8qKg0KPiA+ID4gKyAgR2V0IGNoYXJhY3RlciBmcm9tIHN0cmVhbSwgd2UgZG9uJ3Qgc3VwcG9y dCBmaWxlIG9wZXJhc3Rpb24gb24gZWRrMg0KPiA+IEpTT04gbGlicmFyeS4NCj4gPiA+ICsNCj4g PiA+ICsgIEByZXR1cm4gUmV0dXJucyB0aGUgY2hhcmFjdGVyIGN1cnJlbnRseSBwb2ludGVkIGJ5 IHRoZSBpbnRlcm5hbA0KPiA+ID4gKyBmaWxlIHBvc2l0aW9uIGluZGljYXRvciBvZiB0aGUgc3Bl Y2lmaWVkIHN0cmVhbQ0KPiA+ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4gK2ludCBmZ2V0YyhGSUxF ICogX0ZpbGUpew0KPiA+ID4gKyAgIHJldHVybiAwOw0KPiA+ID4gK30NCj4gPiA+IGRpZmYgLS1n aXQgYS9SZWRmaXNoUGtnL0xpYnJhcnkvQ3J0TGliL0NydExpYi5pbmYNCj4gPiA+IGIvUmVkZmlz aFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuaW5mDQo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+ID4gaW5kZXggMDAwMDAwMDAwMC4uYjUxNDgxN2NmNA0KPiA+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ID4gKysrIGIvUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuaW5mDQo+ID4g PiBAQCAtMCwwICsxLDM3IEBADQo+ID4gPiArIyMgQGZpbGUNCj4gPiA+ICsjIEVESzIgQyBSdW50 aW1lIExpYnJhcnkgZm9yIG9wZW5zb3VyY2UgcHJvamVjdC4NCj4gPiA+ICsjDQo+ID4gPiArIyBD b3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4gIw0KPiA+ID4gKyhDKSBDb3B5cmlnaHQgMjAyMCBIZXdsZXR0IFBhY2thcmQgRW50ZXJw cmlzZSBEZXZlbG9wbWVudCBMUDxCUj4gIw0KPiA+ID4gKyMgICAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsjDQo+ID4gPiArIyMNCj4gPiA+ICsN Cj4gPiA+ICtbRGVmaW5lc10NCj4gPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAg ICA9IDB4MDAwMTAwMWINCj4gPiA+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9 IENydExpYg0KPiA+ID4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gODI2M0I4 QUMtRDAyMS00MjVELUIzMzctM0VDOTZGNURDMTlCDQo+ID4gPiArICBNT0RVTEVfVFlQRSAgICAg ICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQo+ID4gPiArICBWRVJTSU9OX1NUUklORyAgICAg ICAgICAgICAgICAgPSAxLjANCj4gPiA+ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAg ICA9IENydExpYnxEWEVfQ09SRSBEWEVfRFJJVkVSDQo+ID4gRFhFX1JVTlRJTUVfRFJJVkVSIERY RV9TTU1fRFJJVkVSIFVFRklfQVBQTElDQVRJT04NCj4gPiA+IFVFRklfRFJJVkVSDQo+ID4gPiAr DQo+ID4gPiArIw0KPiA+ID4gKyMgIFZBTElEX0FSQ0hJVEVDVFVSRVMgICAgICAgICAgID0gSUEz MiBYNjQgQVJNIEFBUkNINjQgUklTQ1Y2NA0KPiA+ID4gKyMNCj4gPiA+ICsNCj4gPiA+ICtbU291 cmNlc10NCj4gPiA+ICsgIENydExpYi5jDQo+ID4gPiArDQo+ID4gPiArW0xpYnJhcnlDbGFzc2Vz XQ0KPiA+ID4gKyAgQmFzZUxpYg0KPiA+ID4gKyAgRGVidWdMaWINCj4gPiA+ICsgIE1lbW9yeUFs bG9jYXRpb25MaWINCj4gPiA+ICsgIFVlZmlSdW50aW1lU2VydmljZXNUYWJsZUxpYg0KPiA+ID4g Kw0KPiA+ID4gK1tQYWNrYWdlc10NCj4gPiA+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gPiAr ICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gKyAgUmVkZmlzaFBrZy9SZWRm aXNoUGtnLmRlYw0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQ a2cvUmVkZmlzaExpYnMuZHNjLmluYw0KPiA+ID4gYi9SZWRmaXNoUGtnL1JlZGZpc2hMaWJzLmRz Yy5pbmMgaW5kZXggZDRjMDhlMThhYy4uMmE5NTFiZDhmYSAxMDA2NDQNCj4gPiA+IC0tLSBhL1Jl ZGZpc2hQa2cvUmVkZmlzaExpYnMuZHNjLmluYw0KPiA+ID4gKysrIGIvUmVkZmlzaFBrZy9SZWRm aXNoTGlicy5kc2MuaW5jDQo+ID4gPiBAQCAtMTIsNSArMTIsNiBAQA0KPiA+ID4gICMjDQo+ID4g PiAgIWlmICQoUkVERklTSF9FTkFCTEUpID09IFRSVUUNCj4gPiA+ICAgIFVjczJVdGY4TGlifFJl ZGZpc2hQa2cvTGlicmFyeS9CYXNlVWNzMlV0ZjhMaWIvQmFzZVVjczJVdGY4TGliLmluZg0KPiA+ ID4gKyAgQ3J0TGlifFJlZGZpc2hQa2cvTGlicmFyeS9DcnRMaWIvQ3J0TGliLmluZg0KPiA+ID4g ICFlbmRpZg0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9SZWRmaXNoUGtnL1JlZGZpc2hQa2cu Y2kueWFtbA0KPiA+ID4gYi9SZWRmaXNoUGtnL1JlZGZpc2hQa2cuY2kueWFtbCBpbmRleCAyMGMy OTdhZDIyLi45ODk1ZmRhYzk5IDEwMDY0NA0KPiA+ID4gLS0tIGEvUmVkZmlzaFBrZy9SZWRmaXNo UGtnLmNpLnlhbWwNCj4gPiA+ICsrKyBiL1JlZGZpc2hQa2cvUmVkZmlzaFBrZy5jaS55YW1sDQo+ ID4gPiBAQCAtMTcsNiArMTcsMjUgQEANCj4gPiA+ICAgICAgICAgIF0sDQo+ID4gPiAgICAgICAg ICAjIyBCb3RoIGZpbGUgcGF0aCBhbmQgZGlyZWN0b3J5IHBhdGggYXJlIGFjY2VwdGVkLg0KPiA+ ID4gICAgICAgICAgIklnbm9yZUZpbGVzIjogWw0KPiA+ID4gKyAgICAgICAgICAgICMjIEJlbG93 IGFyZSBmaWxlcyBpbmNvcnBvcmF0ZWQgd2l0aCBvcGVuIHNvdXJjZSB3aGljaCBhcmUNCj4gPiA+ ICsgICAgICAgICAgICAjIyBub3QgZWRrMiBjb2Rpbmcgc3RhbmRhcmQgY29tcGxpYW50Lg0KPiA+ ID4gKyAgICAgICAgICAgICMjDQo+ID4gPiArICAgICAgICAgICAgIyMgRURLMiBDUlQgbGlicmFy eSB3aGljaCBpcyBub3QgZWRrMiBjb2RpbmcNCj4gPiA+ICsgICAgICAgICAgICAjIyBzdGFuZGFy ZCBjb21wbGlhbnQuDQo+ID4gPiArICAgICAgICAgICAgIyMgQyBydW50aW1lIGxpYnJhcnkgZm9y IEVES0lJIEpzb25MaWIuDQo+ID4gPiArICAgICAgICAgICAgIkluY2x1ZGUvQ3J0L3N5cyIsDQo+ ID4gPiArICAgICAgICAgICAgIkluY2x1ZGUvQ3J0L2Fzc2VydC5oIiwNCj4gPiA+ICsgICAgICAg ICAgICAiSW5jbHVkZS9DcnQvZXJybm8uaCIsDQo+ID4gPiArICAgICAgICAgICAgIkluY2x1ZGUv Q3J0L2xpbWl0cy5oIiwNCj4gPiA+ICsgICAgICAgICAgICAiSW5jbHVkZS9DcnQvbWF0aC5oIiwN Cj4gPiA+ICsgICAgICAgICAgICAiSW5jbHVkZS9DcnQvc3RkYXJnLmgiLA0KPiA+ID4gKyAgICAg ICAgICAgICJJbmNsdWRlL0NydC9zdGRkZWYuaCIsDQo+ID4gPiArICAgICAgICAgICAgIkluY2x1 ZGUvQ3J0L3N0ZGlvLmgiLA0KPiA+ID4gKyAgICAgICAgICAgICJJbmNsdWRlL0NydC9zdGRsaWIu aCIsDQo+ID4gPiArICAgICAgICAgICAgIkluY2x1ZGUvQ3J0L3N0cmluZy5oIiwNCj4gPiA+ICsg ICAgICAgICAgICAiSW5jbHVkZS9DcnQvdGltZS5oIiwNCj4gPiA+ICsgICAgICAgICAgICAiSW5j bHVkZS9MaWJyYXJ5L0NydExpYi5oIiwNCj4gPiA+ICsgICAgICAgICAgICAiTGlicmFyeS9DcnRM aWIvQ3J0TGliLmMiDQo+ID4gPiAgICAgICAgICBdDQo+ID4gPiAgICAgIH0sDQo+ID4gPiAgICAg ICJDb21waWxlclBsdWdpbiI6IHsNCj4gPiA+IGRpZmYgLS1naXQgYS9SZWRmaXNoUGtnL1JlZGZp c2hQa2cuZGVjIGIvUmVkZmlzaFBrZy9SZWRmaXNoUGtnLmRlYw0KPiA+ID4gaW5kZXggYWVjYzFm NGEzYS4uMjE0MmI0MzY0MCAxMDA2NDQNCj4gPiA+IC0tLSBhL1JlZGZpc2hQa2cvUmVkZmlzaFBr Zy5kZWMNCj4gPiA+ICsrKyBiL1JlZGZpc2hQa2cvUmVkZmlzaFBrZy5kZWMNCj4gPiA+IEBAIC0x NSwxNiArMTUsMjQgQEANCj4gPiA+DQo+ID4gPiAgW0luY2x1ZGVzXQ0KPiA+ID4gICAgSW5jbHVk ZQ0KPiA+ID4gKyAgSW5jbHVkZS9DcnQgICAgICAgICAgICAgICAgICAgIyBIZWFkZXIgZmlsZXMg Zm9yIEMgUlRMLg0KPiA+ID4NCj4gPiA+ICBbTGlicmFyeUNsYXNzZXNdDQo+ID4gPiAgICAjIyAg QGxpYnJhcnljbGFzcyBQbGF0Zm9ybSBSZWRmaXNoIEhvc3QgSW50ZXJmYWNlIExpYnJhcnkNCj4g PiA+ICAgICMgICBQbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBSZWRmaXNoIEhvc3Qg SW50ZXJmYWNlLg0KPiA+ID4NCj4gPiA+IFJlZGZpc2hQbGF0Zm9ybUhvc3RJbnRlcmZhY2VMaWJ8 SW5jbHVkZS9MaWJyYXJ5L1JlZGZpc2hIb3N0SW50ZXJmYWNlTGkNCj4gPiA+IGIuaA0KPiA+ID4g Kw0KPiA+ID4gICAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFRoaXMgbGlicmFyeSBwcm92aWRlcyBVQ1My IHRvIFVURjggbWFuaXB1bGF0aW9uDQo+ID4gPiAgICAjICAgZnVuY3Rpb25zLg0KPiA+ID4gICAg Iw0KPiA+ID4gICAgVWNzMlV0ZjhMaWJ8SW5jbHVkZS9MaWJyYXJ5L0Jhc2VVY3MyVXRmOExpYi5o DQo+ID4gPg0KPiA+ID4gKyAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVzIHRoZSBDIHJ1bnRp bWUgbGlicmFyeSBmdW5jdGlvbnMNCj4gPiA+ICsgICMgICBDUlQgbGlicmFyeSBpcyBjdXJyZW50 bHkgdXNlZCBieSBlZGsyIEpzb25MaWIgKG9wZW4gc291cmNlDQo+ID4gPiArICAjICAgamFuc3Nv biBwcm9qZWN0KSBhbmQgZWRrMiBSZWRmaXNoTGliIChsaWJyZWRmaXNoIG9wZW4gc291cmNlDQo+ ID4gPiArICAjICAgcHJvamVjdCkuDQo+ID4gPiArICBDcnRMaWJ8SW5jbHVkZS9MaWJyYXJ5L0Ny dExpYi5oDQo+ID4gPiArDQo+ID4gPiAgW1Byb3RvY29sc10NCj4gPiA+ICAgICMjIEluY2x1ZGUv UHJvdG9jb2wvUmVkZmlzaERpc2NvdmVyLmgNCj4gPiA+ICAgIGdFZmlSZWRmaXNoRGlzY292ZXJQ cm90b2NvbEd1aWQgICAgICA9IHsgMHg1ZGIxMjUwOSwgMHg0NTUwLCAweDQzNDcsDQo+IHsgMHg5 NiwNCj4gPiAweGIzLCAweDczLCAweGMwLCAweGZmLCAweDZlLCAweDg2LCAweDlmDQo+ID4gPiB9 fQ0KPiA+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvUmVkZmlzaFBrZy5kc2MgYi9SZWRmaXNo UGtnL1JlZGZpc2hQa2cuZHNjDQo+ID4gPiBpbmRleCAzNjM5YjYyMGU2Li5hYTFjY2Q1YTk1IDEw MDY0NA0KPiA+ID4gLS0tIGEvUmVkZmlzaFBrZy9SZWRmaXNoUGtnLmRzYw0KPiA+ID4gKysrIGIv UmVkZmlzaFBrZy9SZWRmaXNoUGtnLmRzYw0KPiA+ID4gQEAgLTQ4LDUgKzQ4LDYgQEANCj4gPiA+ ICBbQ29tcG9uZW50c10NCj4gPiA+DQo+ID4NCj4gUmVkZmlzaFBrZy9MaWJyYXJ5L1BsYXRmb3Jt SG9zdEludGVyZmFjZUxpYk51bGwvUGxhdGZvcm1Ib3N0SW50ZXJmYWNlTGliTg0KPiA+IHVsbC5p bmYNCj4gPiA+ICAgIFJlZGZpc2hQa2cvTGlicmFyeS9CYXNlVWNzMlV0ZjhMaWIvQmFzZVVjczJV dGY4TGliLmluZg0KPiA+ID4gKyAgUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuaW5m DQo+ID4gPg0KPiA+ID4gICAgIWluY2x1ZGUgUmVkZmlzaFBrZy9SZWRmaXNoLmRzYy5pbmMNCj4g PiA+IC0tDQo+ID4gPiAyLjE3LjENCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0K PiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gDQo+IA0KPiANCj4gDQo+IA0KDQo=