From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 0239E38937FE; Thu, 15 Dec 2022 15:28:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0239E38937FE Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BFEn8BY015292; Thu, 15 Dec 2022 15:28:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=cBzewX0cZnY2CIUAi/AdMLknL+rQfI+hAO/eiTFtRTY=; b=CBAj0F1TM6gZodVc4N0KsYw7OQN8OLKO+V2QUFgh3tXhTOIGJSMNfPhmAzgOLMgA4Jp/ zFcRh5Urk4K4V//8/PNGDWHDhNU2HQU5YOrwLbGG9Wfth4N7zIrevSTqSLJutSsi+3Dz IFSQK2JHnYaQ1r02yMti+iO26414wnsREd+R9zYUFW9yfI97P8u1WETDkeYNon9asysn 1Y5S2JAZzEj+FgvJ2/7adq/hPAufHQmHsxC+vpsg6PjapBPmiGzVzmgbsiX5GHCgtGG9 IrskgURsJVUwE4NLFkKcjZRLmUQ5PMSJiVayNGOeq1WaXyFtd+hecnMnPUQsJ9g1ymjk 3g== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3meyerwd3v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Dec 2022 15:28:02 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2BFEfjuM033071; Thu, 15 Dec 2022 15:28:01 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2104.outbound.protection.outlook.com [104.47.58.104]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3meyequhf3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Dec 2022 15:28:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KFweFbRqPGvbo/NQTWlIa5hTc7cLMaQSDhs1FhXKABAqT5vYqPIyq4Fq8ZBLvdZer8Vw97rysvFy7XrBwBsdqkpJxWpnjkNpLHFTvRg3+RZybftt/Z7vOx6gpjuBB7jGgVPKGU1YYtxqHbOhwuRal9S69oEsAkLByNL1GeQEBCA3rvdi+xB6DZk69/NkUtYTkLHTnwkUwgmISJvW406Wt8Cgh64Mjn+fBRWvaT56ZBkwdfgglmVOrpcZk6LSLzF1s9dsMvjcpVLh7LBnB1fzCVudBYtZpa3NOhOZt9j6nAd36Ox1/RU11jrgNGhJj2PT1G/P+MfjP87GendYzZY/8w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cBzewX0cZnY2CIUAi/AdMLknL+rQfI+hAO/eiTFtRTY=; b=mcSwpxIad/MCm5iB+eJ2aPaqL7ayRwdSwyHURe33X6iyfJgvMlU0glMVQ0/samWisqwth9KjtDfCv22hGzX8X4lVQBRueXQMQYqGh3phP6Mygc7EOPrgCzBhqe0ezHXEmAcKZmJxWD7COCn/p6wC8x14KujxgW15yGPjIZNmCzK5a32odCuy2737hy9vQTdEbrQjISml0EWDeZ1gobmLC1PDuYqsljWpfWiobyA3pFxlvrOjD/rpbqb7gUlw6Qj31Cu1UeiTSN+Nn0DsqZb0O4DUPTjUx/Uda+OAf52fG8DUiPYLSso7hAUbyQ58yLAX4fbij2Olik9Mmpogiftesw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cBzewX0cZnY2CIUAi/AdMLknL+rQfI+hAO/eiTFtRTY=; b=FOjbBZY7ISO0mtZooWXPRKtm2LF6nBv6Q+gzlQN7BFSD6rwJpIr2ymdbFZfgilnn9nDz2rUYjwQUpwpIdo6bQyAinsmVDKGf8s1N4svJn2f6EEKKvx3ul7bAAiN7v8a0BW6RlMEDhZ3tu09/WI3nGXjzsedVfw9xtcMGv+yQMvc= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by SJ2PR10MB7081.namprd10.prod.outlook.com (2603:10b6:a03:4d2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.12; Thu, 15 Dec 2022 15:27:55 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113%9]) with mapi id 15.20.5880.019; Thu, 15 Dec 2022 15:27:55 +0000 From: Qing Zhao To: Richard Biener CC: "joseph@codesourcery.com" , "gcc-patches@gcc.gnu.org" , "keescook@chromium.org" , "siddhesh@gcc.gnu.org" Subject: Re: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Topic: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Index: AQHZCY5sSXlMD9UupU2COKrkmjhESK5r+8aAgAEnFgCAAH+DgIAA/WyAgACAs4A= Date: Thu, 15 Dec 2022 15:27:55 +0000 Message-ID: References: <20221206161844.2397151-1-qing.zhao@oracle.com> <71748F0C-F789-4036-AC79-54BDCCE75135@oracle.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.120.41.1.1) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|SJ2PR10MB7081:EE_ x-ms-office365-filtering-correlation-id: 745c4d74-546f-4ae5-c221-08dadeb0f083 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zsPXf+sBYczxs3q2w+DDmTy1cRItqSifoyQikf9mA+hiGIPuvzIFVNSsC92WVeNzxJ3Z0HCri0BOjpGPsjvD/jBpu6y5zfmRfpeLa45MIA4jiHWm516pLstRwicpPZlw57n6TQPqcfnSdy3HjzNE7qUs48dAwe42Jl73VI4tB1Gup8b6JU6CeRkQqeTjzGMPbOGn5QFMPvYUZ/Hz/8eRIPOXYPZFq4X9SmG7V9m8eU9DbZHHOZbsRbxQKNgxLxRrg4rnB3loFTyoEqDodimc9LHchmkSWYynSEKJWc9GGCQmi7HnZCESC20Kcb/lFL5d9ZEIrrCZo1XHryoRk0jUtRpllqe5ByUrgxGvw1uuGCjbq6/ABvj5J8G/yI5W2WUFe6DCv49SOFI9dgM5Ce1am+Mam4k2EJ6S4lzHSXvcis8MJHMqXdCA1t9K0Jy+h6Oa44yhj8jfQcgHlxjdoeD62W0qbHHuzKZC/YcywCI6HkhGkWmnkGru9QYCVO+o+ZK3NtWIZg2MdBLRlRHNBk2ftw29D6AsC/2RR6g8hKgLr+R9bwtU7Zh4IZOk9uq2VCk1ybWs9bWftqNQmiEYSpzdgxZUemYct74WBcnSLlQ5SpLb7Vn9Afu8lmxaqYdJkF05W6qFE+6h/SVv6t392gH5ODeFQ51od0yN3Re1Or2vyHf44fYT9mRt2m9DyB41hvM1rex+5h1ofklNUv5uKm89PPYiHLaZyV2cOUwP6AoRp3u5hUE0zp924oj9yxRQFQmghFjWE2yzCuTnYqrYYcOTJ4/nfPymUN5+mEuCwC7Cnd3w9vaDbCCAjtbuPTPDudoB x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR10MB4344.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(376002)(346002)(366004)(136003)(451199015)(84970400001)(36756003)(33656002)(2906002)(38070700005)(8936002)(5660300002)(41300700001)(6916009)(83380400001)(38100700002)(122000001)(86362001)(30864003)(478600001)(6486002)(54906003)(71200400001)(44832011)(6506007)(4326008)(53546011)(76116006)(8676002)(64756008)(66476007)(316002)(91956017)(2616005)(66446008)(66946007)(66556008)(26005)(186003)(6512007)(45980500001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Z0hsblhsS0FuK1BMR3hiWmFKbGNoL2RNSzQ0a1NpNEM0RmtnRzJqOFBLeGF0?= =?utf-8?B?YmtzVTNiSmFYWEladCtlbDk0UE52NjExdWx4cVY3U2lxdUdtNllEN2hiYmpF?= =?utf-8?B?U2tnRGh6MjZVRERpYnUvUWUxOUswRWdCUFllVEdDZE1ZOEUrdW5sNk1lcUFJ?= =?utf-8?B?UzRQNE43eG1QKy9VdllOa3RWMHBldjI2NWRtVlRqSWNIRHozNlE0WjdRZVlm?= =?utf-8?B?RW9mWG9ESy91NmVxR3VsU0l3SEpUNGJia1R2K3I3aFBkb1lBbklGVjNCR3kw?= =?utf-8?B?Mk1WeC9weFpQcVJacktzYWpVMFpISUozeHl5TG43RFBaSXNtd21jR0JRSlBY?= =?utf-8?B?NzQxcUM3ZVZXdlVueENNc2tpUXprNm0rNWUza0pXelc1OUpXd21RZ2xpQUhm?= =?utf-8?B?dk5nMWxJK1JzNWNpTi9xWXRIY2pFdEJWRXkzNjB4SWVZRVNQd2tFc2trVXV1?= =?utf-8?B?a2JwczFDOFBzdVY0Yi8rOEQ5NTBmNjJ1eW5BSGpEM2srR0Y2T2ozSDZTTy9C?= =?utf-8?B?aEszVmJOaWRZNjA0QXZQVlQyQWQ5QnZLdTdjMzIrUVFTR2h2OWRnenNuWDNV?= =?utf-8?B?MGZJWUJaSVBhYW9rNHRrNEx0NzUxWWFpYlpieEZQMGZSb2diTStFKytOamdV?= =?utf-8?B?RnpxRndTV29RUmdKWnJYWGU2QjR2MTVKNHhnTnJiMkpha3lNZC9IY3lrQ0JK?= =?utf-8?B?bjlXanRXNGVGSEFvRlB6aExjMm96Q3pVWCtxUGhnSVhhTGptUWgwSDNSM0Fw?= =?utf-8?B?Yy9WN1VGaVhUZjM4ZkJJbjRmMW5JR213Zm9GNXljRmVQb0xNamQ4Zm5nTS82?= =?utf-8?B?V1QwSkRxMnRxYSt4NWZreWNjMG11WnhWZkVleGtmS0h4NlBWYUh1dmkwRFVY?= =?utf-8?B?a3RGT3NUMWd2ckkzejVYL2kvVDRhZHUxWWVHeFlXNW9ROHk5MVVaU0h0Q1Jp?= =?utf-8?B?R0Yydy81aXNGMnNrK1BQU0tCM0c3eDEzYnNaL2pGK3Zrcmw2YmJLdEkwL041?= =?utf-8?B?YXlMZXNmL25LcWE2MzJMVzBhTDRmRzlKUmlKdHQzRFJhalZyNjJvRjFNZmdG?= =?utf-8?B?ZXphdG9vMjhtSGhtVlpIN3BhUnlUNFFmcWUvUlQvL21ENGpqemZqa05hcllF?= =?utf-8?B?RDJBN0lKSmxCcEtHK28vWitqT3lJekRZY1BFNDhjbE1mMHlyNGtjanp5Wi9R?= =?utf-8?B?cXh6bis2VGQ4eC9ucnRUTDhib0F0eWltcWRSQ3JMemp3aFF2Vk1sNkdVenp2?= =?utf-8?B?TkVuN3hBajdYOUpSRzBQMDV4clNETTl2Q0NnUU5PTElUVm9uRU1iVzRIMm9q?= =?utf-8?B?YVNNTkdXUkhsTi9vbWJWc0M5cmthZmhkY1NoVTEyTFlZWXlnSkRpTVdwb2NP?= =?utf-8?B?K3FjSHRrTVhKd3BTcjVDZXh5Nmh0Nzh1YkhPamFPZVMxcmRTK1BTNjdDRXdR?= =?utf-8?B?VCt1cEhhbkF1bUlsdlpCWTI2em9XaWFHeWJsNjBWTGJ6ZHJlYnJhL1JWUlJ2?= =?utf-8?B?Qm1jM0s2OGtNUmNTaERJcThvdmhGazN2NnFTajVXV05WakdjMjhPQlN1UVhm?= =?utf-8?B?K2NtUjJmUjJPbVVDTDFsWnpMWHo1Y0JFRENwdlRyZUUvMkNhaERXdUc3YXRV?= =?utf-8?B?Z1kzeGZEREVHQ0NDdzk3Q0xqc2pOemJSL0lwSSsxTGJhWVd5cUtqWW5HRWhs?= =?utf-8?B?U3RURHAzRkswY3RmY3dHbTN1bWg4MkxJdmVMYTFxR0luSnRxbTZpdGZjWmZR?= =?utf-8?B?ZGlaVFhFb3lrbTFDK1JBTmVGS0dBekV5cmthaXdrZzlsT01USCtGVzM5blRj?= =?utf-8?B?ZDNHa1h4U3ZXOWJ3cUlLdU96VHVWaDJsOWlaV3Nqd2xsT0hydHJtNzFQTjlE?= =?utf-8?B?aFhWbkNWZ3pTKzRNeXlGcXVON0RHaytHV3ZBSENyL09MZ2s2NlNHZmtZUWdF?= =?utf-8?B?TFRpUHhkSG1mcTZaYWZGWThoelJpWDIzL2k1bUMxWFZ2QmRmSStJamlNV2Va?= =?utf-8?B?WDU5VGtWK3FsdFI5YmIwTE5nUVVXSUpHcFBMQTYwc0t3dmI1Mko4YzRiS1N3?= =?utf-8?B?blJOUjlGVHdPQzhHRU9aYUk1SFp4dmtEMHdWMzlVZ2JQaW9ESG40bSsrK0Jm?= =?utf-8?Q?23NBUFOlnLGQmgQO1OzmJLu6e?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 745c4d74-546f-4ae5-c221-08dadeb0f083 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2022 15:27:55.6498 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TD+8ZzaPISKU138kenC80jax9tnnklbAcqIX2GOxKgohKRqETv7PZ+82A0k/r2fKfLp2pItGKCo0Z1EmX1Di4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR10MB7081 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-15_08,2022-12-15_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2212150126 X-Proofpoint-ORIG-GUID: 3HnAhJL53B9snpRZ-_M0bH5iblg4oBlX X-Proofpoint-GUID: 3HnAhJL53B9snpRZ-_M0bH5iblg4oBlX X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: DQoNCj4gT24gRGVjIDE1LCAyMDIyLCBhdCAyOjQ3IEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gV2VkLCAxNCBEZWMgMjAyMiwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IEhpLCBSaWNoYXJkLA0KPj4gDQo+PiBJIGd1ZXNzIHRoYXQgd2Ugbm93 IGFncmVlZCBvbiB0aGUgZm9sbG93aW5nOg0KPj4gDQo+PiDigJwgdGhlIGluZm9ybWF0aW9uIHRo YXQgd2UgcmFuIGludG8gYSB0cmFpbGluZyBhcnJheSBidXQgZGlkbid0IGNvbnNpZGVyIA0KPj4g aXQgYSBmbGV4IGFycmF5IGJlY2F1c2Ugb2YgLWZzdHJpY3QtZmxleC1hcnJheXMgaXMgYWx3YXlz IGEgdXNlZnVsIGluZm9ybWF0aW9u4oCdDQo+PiANCj4+IFRoZSBvbmx5IHRoaW5nIHdlIGRpZG7i gJl0IGRlY2lkZSBpczoNCj4+IA0KPj4gQS4gQW1lbmQgc3VjaCBuZXcgaW5mb3JtYXRpb24gdG8g LVdhcnJheS1ib3VuZHMgd2hlbiAtZnN0cmljdC1mbGV4LWFycmF5cz1OIChOPjApIHNwZWNpZmll ZC4NCj4+IA0KPj4gT1INCj4+IA0KPj4gQi4gSXNzdWUgc3VjaCBuZXcgaW5mb3JtYXRpb24gd2l0 aCBhIG5ldyB3YXJuaW5nIG9wdGlvbiAtV3N0cmljdC1mbGV4LWFycmF5cyB3aGVuIC1mc3RyaWN0 LWZsZXgtYXJyYXlzPU4gKE4+MCkgc3BlY2lmaWVkLg0KPj4gDQo+PiBNeSBjdXJyZW50IHBhdGNo IGltcGxlbWVudGVkIEIuIA0KPiANCj4gUGx1cyBpdCBpbXBsZW1lbnRzIGl0IHRvIHNwZWNpZnkg YSBkaWZmZXJlbnQgZmxleC1hcnJheSB2YXJpYW50IGZvcg0KPiB0aGUgZXh0cmEgZGlhZ25vc3Rp Yy4NCkNvdWxkIHlvdSBjbGFyaWZ5IGEgbGl0dGxlIGJpdCBvbiB0aGlzPyAoRG9u4oCZdCBxdWl0 ZSB1bmRlcnN0YW5k4oCmKQ0KPiANCj4+IElmIHlvdSB0aGluayBBIGlzIGJldHRlciwgSSB3aWxs IGNoYW5nZSB0aGUgcGF0Y2ggYXMgQS4gDQo+IA0KPiBJIHdvdWxkIHRlbmQgdG8gQSBzaW5jZSwg YXMgSSBzYWlkLCBpdCdzIHVzZWZ1bCBpbmZvcm1hdGlvbiB0aGF0DQo+IHNob3VsZG4ndCBiZSBo aWRkZW4gYW5kIG5vdCBhZGRpbmcgYW4gb3B0aW9uIHJlbW92ZXMgb2RkIGNvbWJpbmF0aW9uDQo+ IHBvc3NpYmlsaXRpZXMgc3VjaCBhcyAtV25vLWFycmF5LWJvdW5kcyAtV3N0cmljdC1mbGV4LWFy cmF5cy4NCg0KV2l0aCBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB0aGUgYWJvdmUgY29tYmluYXRp b24gd2lsbCBPTkxZIHJlcG9ydCB0aGUgbWlzdXNlIG9mIHRyYWlsaW5nIGFycmF5IGFzIGZsZXgt YXJyYXkuICBObyBvdXQtb2YtYm91bmRzIHdhcm5pbmdzIGlzc3VlZC4NCg0KPiBJbiBwYXJ0aWN1 bGFyIEkgZmluZCwgc2F5LCAtZnN0cmljdC1mbGV4LWFycmF5cz0yIC1Xc3RyaWN0LWZsZXgtYXJy YXlzPTENCj4gaGFyZGx5IHVzZWZ1bC4NCg0KVGhlIGFib3ZlIGNvbWJpbmF0aW9uIHdpbGwgTk9U IGhhcHBlbiwgYmVjYXVzZSB0aGVyZSBpcyBOTyBsZXZlbCBhcmd1bWVudCBmb3IgLVdzdHJpY3Qt ZmxleC1hcnJheXMuDQoNClRoZSBvbmx5IGNvbWJpbmF0aW9uIHdpbGwgYmU6ICAgIC1mc3RyaWN0 LWZsZXgtYXJyYXlzPU4gLVdzdHJpY3QtZmxleC1hcnJheXMNCg0KV2hlbiBOID4gMCwgLVdzdHJp Y3QtZmxleC1hcnJheXMgd2lsbCByZXBvcnQgYW55IG1pc3VzZSBvZiB0cmFpbGluZyBhcnJheXMg YXMgZmxleGlibGUgYXJyYXkgcGVyIHRoZSB2YWx1ZSBvZiBOLg0KPiANCj4gQnV0IEknbSBpbnRl cmVzdGVkIGluIG90aGVyIG9waW5pb25zLg0KDQpBZGRpbmcgYSBzZXBhcmF0ZSAtV3N0cmljdC1m bGV4LWFycmF5cyB3aWxsIHByb3ZpZGUgdXNlcnMgYSBjaG9pY2UgdG8gT05MWSBsb29rIGF0IHRo ZSBtaXMtdXNlIG9mIHRyYWlsaW5nIGFycmF5cyBhcyBmbGV4LWFycmF5cy4gIFdpdGhvdXQgdGhp cyBuZXcgb3B0aW9uLCBzdWNoIGluZm9ybWF0aW9uIHdpbGwgYmUgYnVyaWVkIGludG8gdG9ucyBv ZiBvdXQtb2YtYm91bmRzIG1lc3NnZXMuIA0KDQpJIHRoaW5rIHRoaXMgaXMgdGhlIG1ham9yIGJl bmVmaXQgdG8gaGF2ZSBvbmUgc2VwYXJhdGUgbmV3IHdhcm5pbmcgLVdzdHJpY3QtZmxleC1hcnJh eXMuIA0KDQpEbyB3ZSBuZWVkIHRvIHByb3ZpZGUgdGhlIHVzZXJzIHRoaXMgY2hvaWNlPw0KDQpU aGFua3MuDQoNClFpbmcNCj4gDQo+IFRoYW5rcywNCj4gUmljaGFyZC4NCj4gDQo+PiBMZXQgbWUg a25vdyB5b3VyIG9waW5pb24uDQo+PiANCj4+IHRoYW5rcy4NCj4+IA0KPj4gUWluZw0KPj4gDQo+ PiANCj4+PiBPbiBEZWMgMTQsIDIwMjIsIGF0IDQ6MDMgQU0sIFJpY2hhcmQgQmllbmVyIDxyZ3Vl bnRoZXJAc3VzZS5kZT4gd3JvdGU6DQo+Pj4gDQo+Pj4gT24gVHVlLCAxMyBEZWMgMjAyMiwgUWlu ZyBaaGFvIHdyb3RlOg0KPj4+IA0KPj4+PiBSaWNoYXJkLCANCj4+Pj4gDQo+Pj4+IERvIHlvdSBo YXZlIGFueSBkZWNpc2lvbiBvbiB0aGlzIG9uZT8gDQo+Pj4+IERvIHdlIG5lZWQgdGhpcyB3YXJu aW5nIG9wdGlvbiBGb3IgR0NDPyANCj4+PiANCj4+PiBMb29raW5nIGF0IHRoZSB0ZXN0Y2FzZXMg aXQgc2VlbXMgdGhhdCB0aGUgZGlhZ25vc3RpYyBhbWVuZHMNCj4+PiAtV2FycmF5LWJvdW5kcyBk aWFnbm9zdGljcyBmb3IgdHJhaWxpbmcgYnV0IG5vdCBmbGV4aWJsZSBhcnJheXM/DQo+Pj4gV291 bGRuJ3QgaXQgYmUgYmV0dGVyIHRvIGdlbmVyYWxseSBkaWFnbm9zZSB0aGlzLCBzbyBoYXZlDQo+ Pj4gLVdhcnJheS1ib3VuZHMsIHdpdGggLWZzdHJpY3QtZmxleC1hcnJheXMsIGZvcg0KPj4+IA0K Pj4+IHN0cnVjdCBYIHsgaW50IGFbMV07IH07DQo+Pj4gaW50IGZvbyAoc3RydWN0IFggKnApDQo+ Pj4gew0KPj4+IHJldHVybiBwLT5hWzFdOw0KPj4+IH0NCj4+PiANCj4+PiBlbWl0DQo+Pj4gDQo+ Pj4gd2FybmluZzogYXJyYXkgc3Vic2NyaXB0IDEgaXMgYWJvdmUgYXJyYXkgYm91bmRzIC4uLg0K Pj4+IG5vdGU6IHRoZSB0cmFpbGluZyBhcnJheSBpcyBvbmx5IGEgZmxleGlibGUgYXJyYXkgbWVt YmVyIHdpdGggDQo+Pj4gLWZuby1zdHJpY3QtZmxleC1hcnJheXMNCj4+PiANCj4+PiA/ICBIYXZp bmcgLVdzdHJpY3QtZmxleC1hcnJheXM9TiBhbmQgTiBub3QgYWdyZWUgd2l0aCB0aGUNCj4+PiAt ZnN0cmljdC1mbGV4LWFycmF5cyBsZXZlbCBzb3VuZHMgaGFyZGx5IHVzZWZ1bCB0byBtZSBidXQg dGhlDQo+Pj4gaW5mb3JtYXRpb24gdGhhdCB3ZSByYW4gaW50byBhIHRyYWlsaW5nIGFycmF5IGJ1 dCBkaWRuJ3QgY29uc2lkZXINCj4+PiBpdCBhIGZsZXggYXJyYXkgYmVjYXVzZSBvZiAtZnN0cmlj dC1mbGV4LWFycmF5cyBpcyBhbHdheXMgYQ0KPj4+IHVzZWZ1bCBpbmZvcm1hdGlvbj8NCj4+PiAN Cj4+PiBCdXQgbWF5YmUgSSBtaXN1bmRlcnN0b29kIHRoaXMgbmV3IGRpYWdub3N0aWM/DQo+Pj4g DQo+Pj4gVGhhbmtzLA0KPj4+IFJpY2hhcmQuDQo+Pj4gDQo+Pj4gDQo+Pj4+IHRoYW5rcy4NCj4+ Pj4gDQo+Pj4+IFFpbmcNCj4+Pj4gDQo+Pj4+PiBPbiBEZWMgNiwgMjAyMiwgYXQgMTE6MTggQU0s IFFpbmcgWmhhbyA8cWluZy56aGFvQG9yYWNsZS5jb20+IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+PiAn LVdzdHJpY3QtZmxleC1hcnJheXMnDQo+Pj4+PiAgIFdhcm4gYWJvdXQgaW5wcm9wZXIgdXNhZ2Vz IG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMgYWNjb3JkaW5nIHRvDQo+Pj4+PiAgIHRoZSBMRVZF TCBvZiB0aGUgJ3N0cmljdF9mbGV4X2FycmF5IChMRVZFTCknIGF0dHJpYnV0ZSBhdHRhY2hlZCB0 bw0KPj4+Pj4gICB0aGUgdHJhaWxpbmcgYXJyYXkgZmllbGQgb2YgYSBzdHJ1Y3R1cmUgaWYgaXQn cyBhdmFpbGFibGUsDQo+Pj4+PiAgIG90aGVyd2lzZSBhY2NvcmRpbmcgdG8gdGhlIExFVkVMIG9m IHRoZSBvcHRpb24NCj4+Pj4+ICAgJy1mc3RyaWN0LWZsZXgtYXJyYXlzPUxFVkVMJy4NCj4+Pj4+ IA0KPj4+Pj4gICBUaGlzIG9wdGlvbiBpcyBlZmZlY3RpdmUgb25seSB3aGVuIExFVkVMIGlzIGJp Z2dlciB0aGFuIDAuDQo+Pj4+PiAgIE90aGVyd2lzZSwgaXQgd2lsbCBiZSBpZ25vcmVkIHdpdGgg YSB3YXJuaW5nLg0KPj4+Pj4gDQo+Pj4+PiAgIHdoZW4gTEVWRUw9MSwgd2FybmluZ3Mgd2lsbCBi ZSBpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgYXJyYXkNCj4+Pj4+ICAgcmVmZXJlbmNlIG9mIGEgc3Ry dWN0dXJlIHRoYXQgaGF2ZSAyIG9yIG1vcmUgZWxlbWVudHMgaWYgdGhlDQo+Pj4+PiAgIHRyYWls aW5nIGFycmF5IGlzIHJlZmVyZW5jZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4+ PiANCj4+Pj4+ICAgd2hlbiBMRVZFTD0yLCBpbiBhZGRpdGlvbiB0byBMRVZFTD0xLCBhZGRpdGlv bmFsIHdhcm5pbmdzIHdpbGwgYmUNCj4+Pj4+ICAgaXNzdWVkIGZvciBhIHRyYWlsaW5nIG9uZS1l bGVtZW50IGFycmF5IHJlZmVyZW5jZSBvZiBhIHN0cnVjdHVyZSBpZg0KPj4+Pj4gICB0aGUgYXJy YXkgaXMgcmVmZXJlbmNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlci4NCj4+Pj4+IA0KPj4+ Pj4gICB3aGVuIExFVkVMPTMsIGluIGFkZGl0aW9uIHRvIExFVkVMPTIsIGFkZGl0aW9uYWwgd2Fy bmluZ3Mgd2lsbCBiZQ0KPj4+Pj4gICBpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgemVyby1sZW5ndGgg YXJyYXkgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlIGlmDQo+Pj4+PiAgIHRoZSBhcnJheSBpcyBy ZWZlcmVuY2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+Pj4gDQo+Pj4+PiBnY2Mv Q2hhbmdlTG9nOg0KPj4+Pj4gDQo+Pj4+PiAJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IC1X c3RyaWN0LWZsZXgtYXJyYXlzIG9wdGlvbi4NCj4+Pj4+IAkqIGdpbXBsZS1hcnJheS1ib3VuZHMu Y2MgKGNoZWNrX291dF9vZl9ib3VuZHNfYW5kX3dhcm4pOiBBZGQgdHdvIG1vcmUNCj4+Pj4+IAlh cmd1bWVudHMuDQo+Pj4+PiAJKGFycmF5X2JvdW5kc19jaGVja2VyOjpjaGVja19hcnJheV9yZWYp OiBJc3N1ZSB3YXJuaW5ncyBmb3INCj4+Pj4+IAktV3N0cmljdC1mbGV4LWFycmF5cy4NCj4+Pj4+ IAkqIG9wdHMuY2MgKGZpbmlzaF9vcHRpb25zKTogSXNzdWUgd2FybmluZyBmb3IgdW5zdXBwb3J0 ZWQgY29tYmluYXRpb24NCj4+Pj4+IAlvZiAtV3N0cmljdF9mbGV4X2FycmF5cyBhbmQgLWZzdHJp Y3QtZmxleC1hcnJheS4NCj4+Pj4+IAkqIHRyZWUtdnJwLmNjIChleGVjdXRlX3Jhbmdlcl92cnAp OiBFbmFibGUgdGhlIHBhc3Mgd2hlbg0KPj4+Pj4gCXdhcm5fc3RyaWN0X2ZsZXhfYXJyYXkgaXMg dHJ1ZS4NCj4+Pj4+IA0KPj4+Pj4gZ2NjL2MtZmFtaWx5L0NoYW5nZUxvZzoNCj4+Pj4+IA0KPj4+ Pj4gCSogYy5vcHQgKFdzdHJpY3QtZmxleC1hcnJheXMpOiBOZXcgb3B0aW9uLg0KPj4+Pj4gDQo+ Pj4+PiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4+Pj4+IA0KPj4+Pj4gCSogZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jOiBVcGRhdGUgdGVzdGluZyBjYXNlIHdpdGgNCj4+ Pj4+IAktV3N0cmljdC1mbGV4LWFycmF5cy4NCj4+Pj4+IAkqIGdjYy5kZy9XYXJyYXktYm91bmRz LWZsZXgtYXJyYXlzLTIuYzogTGlrZXdpc2UuDQo+Pj4+PiAJKiBnY2MuZGcvV2FycmF5LWJvdW5k cy1mbGV4LWFycmF5cy0zLmM6IExpa2V3aXNlLg0KPj4+Pj4gCSogZ2NjLmRnL1dhcnJheS1ib3Vu ZHMtZmxleC1hcnJheXMtNC5jOiBMaWtld2lzZS4NCj4+Pj4+IAkqIGdjYy5kZy9XYXJyYXktYm91 bmRzLWZsZXgtYXJyYXlzLTUuYzogTGlrZXdpc2UuDQo+Pj4+PiAJKiBnY2MuZGcvV2FycmF5LWJv dW5kcy1mbGV4LWFycmF5cy02LmM6IExpa2V3aXNlLg0KPj4+Pj4gCSogYy1jKystY29tbW9uL1dz dHJpY3QtZmxleC1hcnJheXMuYzogTmV3IHRlc3QuDQo+Pj4+PiAJKiBnY2MuZGcvV3N0cmljdC1m bGV4LWFycmF5cy0yLmM6IE5ldyB0ZXN0Lg0KPj4+Pj4gCSogZ2NjLmRnL1dzdHJpY3QtZmxleC1h cnJheXMtMy5jOiBOZXcgdGVzdC4NCj4+Pj4+IAkqIGdjYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlz LmM6IE5ldyB0ZXN0Lg0KPj4+Pj4gLS0tDQo+Pj4+PiBnY2MvYy1mYW1pbHkvYy5vcHQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KPj4+Pj4gZ2NjL2RvYy9pbnZva2UudGV4aSAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI3ICsrKystDQo+Pj4+PiBnY2MvZ2ltcGxlLWFy cmF5LWJvdW5kcy5jYyAgICAgICAgICAgICAgICAgICAgfCAxMDMgKysrKysrKysrKysrKystLS0t DQo+Pj4+PiBnY2Mvb3B0cy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDggKysNCj4+Pj4+IC4uLi9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5jICAgICAg ICB8ICAgOSArKw0KPj4+Pj4gLi4uL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEu YyAgICAgIHwgICA1ICstDQo+Pj4+PiAuLi4vZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJh eXMtMi5jICAgICAgfCAgIDYgKy0NCj4+Pj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4 LWFycmF5cy0zLmMgICAgICB8ICAgNyArLQ0KPj4+Pj4gLi4uL2djYy5kZy9XYXJyYXktYm91bmRz LWZsZXgtYXJyYXlzLTQuYyAgICAgIHwgICA1ICstDQo+Pj4+PiAuLi4vZ2NjLmRnL1dhcnJheS1i b3VuZHMtZmxleC1hcnJheXMtNS5jICAgICAgfCAgIDYgKy0NCj4+Pj4+IC4uLi9nY2MuZGcvV2Fy cmF5LWJvdW5kcy1mbGV4LWFycmF5cy02LmMgICAgICB8ICAgNyArLQ0KPj4+Pj4gZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMgIHwgIDM5ICsrKysrKysNCj4+Pj4+ IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMy5jICB8ICAzOSArKysr KysrDQo+Pj4+PiBnY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMgICAg fCAgMzkgKysrKysrKw0KPj4+Pj4gZ2NjL3RyZWUtdnJwLmNjICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstDQo+Pj4+PiAxNSBmaWxlcyBjaGFuZ2VkLCAyNzMgaW5zZXJ0aW9u cygrKSwgMzQgZGVsZXRpb25zKC0pDQo+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5jDQo+Pj4+PiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMNCj4+ Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgt YXJyYXlzLTMuYw0KPj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRn L1dzdHJpY3QtZmxleC1hcnJheXMuYw0KPj4+Pj4gDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2Mt ZmFtaWx5L2Mub3B0IGIvZ2NjL2MtZmFtaWx5L2Mub3B0DQo+Pj4+PiBpbmRleCAwZDBhZDBhNjM3 NC4uMzNlZGVlZmQyODUgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2MvYy1mYW1pbHkvYy5vcHQNCj4+ Pj4+ICsrKyBiL2djYy9jLWZhbWlseS9jLm9wdA0KPj4+Pj4gQEAgLTk3Niw2ICs5NzYsMTEgQEAg V3N0cmluZ29wLXRydW5jYXRpb24NCj4+Pj4+IEMgT2JqQyBDKysgTFRPIE9iakMrKyBWYXIod2Fy bl9zdHJpbmdvcF90cnVuY2F0aW9uKSBXYXJuaW5nIEluaXQgKDEpIExhbmdFbmFibGVkQnkoQyBP YmpDIEMrKyBMVE8gT2JqQysrLCBXYWxsKQ0KPj4+Pj4gV2FybiBhYm91dCB0cnVuY2F0aW9uIGlu IHN0cmluZyBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGxpa2Ugc3RybmNhdCBhbmQgc3RybmNweS4N Cj4+Pj4+IA0KPj4+Pj4gK1dzdHJpY3QtZmxleC1hcnJheXMNCj4+Pj4+ICtDIEMrKyBWYXIod2Fy bl9zdHJpY3RfZmxleF9hcnJheXMpIFdhcm5pbmcNCj4+Pj4+ICtXYXJuIGFib3V0IGlucHJvcGVy IHVzYWdlcyBvZiBmbGV4aWJsZSBhcnJheSBtZW1iZXJzDQo+Pj4+PiArYWNjb3JkaW5nIHRvIHRo ZSBsZXZlbCBvZiAtZnN0cmljdC1mbGV4LWFycmF5cy4NCj4+Pj4+ICsNCj4+Pj4+IFdzdWdnZXN0 LWF0dHJpYnV0ZT1mb3JtYXQNCj4+Pj4+IEMgT2JqQyBDKysgT2JqQysrIFZhcih3YXJuX3N1Z2dl c3RfYXR0cmlidXRlX2Zvcm1hdCkgV2FybmluZw0KPj4+Pj4gV2FybiBhYm91dCBmdW5jdGlvbnMg d2hpY2ggbWlnaHQgYmUgY2FuZGlkYXRlcyBmb3IgZm9ybWF0IGF0dHJpYnV0ZXMuDQo+Pj4+PiBk aWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9kb2MvaW52b2tlLnRleGkNCj4+ Pj4+IGluZGV4IDcyNjM5MjQwOWI2Li40NDAyYjA0MjdlZiAxMDA2NDQNCj4+Pj4+IC0tLSBhL2dj Yy9kb2MvaW52b2tlLnRleGkNCj4+Pj4+ICsrKyBiL2djYy9kb2MvaW52b2tlLnRleGkNCj4+Pj4+ IEBAIC0zOTgsNyArMzk4LDcgQEAgT2JqZWN0aXZlLUMgYW5kIE9iamVjdGl2ZS1DKysgRGlhbGVj dHN9Lg0KPj4+Pj4gLVdzdHJpY3QtYWxpYXNpbmc9biAgLVdzdHJpY3Qtb3ZlcmZsb3cgIC1Xc3Ry aWN0LW92ZXJmbG93PUB2YXJ7bn0gQGdvbA0KPj4+Pj4gLVdzdHJpbmctY29tcGFyZSBAZ29sDQo+ Pj4+PiAtV25vLXN0cmluZ29wLW92ZXJmbG93IC1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQgQGdvbA0K Pj4+Pj4gLS1Xbm8tc3RyaW5nb3AtdHJ1bmNhdGlvbiBAZ29sDQo+Pj4+PiArLVduby1zdHJpbmdv cC10cnVuY2F0aW9uIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIEBnb2wNCj4+Pj4+IC1Xc3VnZ2VzdC1h dHRyaWJ1dGU9QHJ7W31wdXJlQHJ7fH1jb25zdEBye3x9bm9yZXR1cm5Acnt8fWZvcm1hdEBye3x9 bWFsbG9jQHJ7XX0gQGdvbA0KPj4+Pj4gLVdzd2l0Y2ggIC1Xbm8tc3dpdGNoLWJvb2wgIC1Xc3dp dGNoLWRlZmF1bHQgIC1Xc3dpdGNoLWVudW0gQGdvbA0KPj4+Pj4gLVduby1zd2l0Y2gtb3V0c2lk ZS1yYW5nZSAgLVduby1zd2l0Y2gtdW5yZWFjaGFibGUgIC1Xc3luYy1uYW5kIEBnb2wNCj4+Pj4+ IEBAIC03ODM1LDYgKzc4MzUsMzEgQEAgaG93ZXZlciwgYXJlIG5vdCBzdWl0YWJsZSBhcmd1bWVu dHMgdG8gZnVuY3Rpb25zIHRoYXQgZXhwZWN0DQo+Pj4+PiBzdWNoIGFycmF5cyBHQ0MgaXNzdWVz IHdhcm5pbmdzIHVubGVzcyBpdCBjYW4gcHJvdmUgdGhhdCB0aGUgdXNlIGlzDQo+Pj4+PiBzYWZl LiAgQHhyZWZ7Q29tbW9uIFZhcmlhYmxlIEF0dHJpYnV0ZXN9Lg0KPj4+Pj4gDQo+Pj4+PiArQGl0 ZW0gLVdzdHJpY3QtZmxleC1hcnJheXMNCj4+Pj4+ICtAb3BpbmRleCBXc3RyaWN0LWZsZXgtYXJy YXlzDQo+Pj4+PiArQG9waW5kZXggV25vLXN0cmljdC1mbGV4LWFycmF5cw0KPj4+Pj4gK1dhcm4g YWJvdXQgaW5wcm9wZXIgdXNhZ2VzIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMNCj4+Pj4+ICth Y2NvcmRpbmcgdG8gdGhlIEB2YXJ7bGV2ZWx9IG9mIHRoZSBAY29kZXtzdHJpY3RfZmxleF9hcnJh eSAoQHZhcntsZXZlbH0pfQ0KPj4+Pj4gK2F0dHJpYnV0ZSBhdHRhY2hlZCB0byB0aGUgdHJhaWxp bmcgYXJyYXkgZmllbGQgb2YgYSBzdHJ1Y3R1cmUgaWYgaXQncw0KPj4+Pj4gK2F2YWlsYWJsZSwg b3RoZXJ3aXNlIGFjY29yZGluZyB0byB0aGUgQHZhcntsZXZlbH0gb2YgdGhlIG9wdGlvbg0KPj4+ Pj4gK0BvcHRpb257LWZzdHJpY3QtZmxleC1hcnJheXM9QHZhcntsZXZlbH19Lg0KPj4+Pj4gKw0K Pj4+Pj4gK1RoaXMgb3B0aW9uIGlzIGVmZmVjdGl2ZSBvbmx5IHdoZW4gQHZhcntsZXZlbH0gaXMg YmlnZ2VyIHRoYW4gMC4gIE90aGVyd2lzZSwNCj4+Pj4+ICtpdCB3aWxsIGJlIGlnbm9yZWQgd2l0 aCBhIHdhcm5pbmcuDQo+Pj4+PiArDQo+Pj4+PiArd2hlbiBAdmFye2xldmVsfT0xLCB3YXJuaW5n cyB3aWxsIGJlIGlzc3VlZCBmb3IgYSB0cmFpbGluZyBhcnJheSByZWZlcmVuY2UNCj4+Pj4+ICtv ZiBhIHN0cnVjdHVyZSB0aGF0IGhhdmUgMiBvciBtb3JlIGVsZW1lbnRzIGlmIHRoZSB0cmFpbGlu ZyBhcnJheSBpcyByZWZlcmVuY2VkDQo+Pj4+PiArYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIu DQo+Pj4+PiArDQo+Pj4+PiArd2hlbiBAdmFye2xldmVsfT0yLCBpbiBhZGRpdGlvbiB0byBAdmFy e2xldmVsfT0xLCBhZGRpdGlvbmFsIHdhcm5pbmdzIHdpbGwgYmUNCj4+Pj4+ICtpc3N1ZWQgZm9y IGEgdHJhaWxpbmcgb25lLWVsZW1lbnQgYXJyYXkgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlDQo+ Pj4+PiAraWYgdGhlIGFycmF5IGlzIHJlZmVyZW5jZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1i ZXIuDQo+Pj4+PiArDQo+Pj4+PiArd2hlbiBAdmFye2xldmVsfT0zLCBpbiBhZGRpdGlvbiB0byBA dmFye2xldmVsfT0yLCBhZGRpdGlvbmFsIHdhcm5pbmdzIHdpbGwgYmUNCj4+Pj4+ICtpc3N1ZWQg Zm9yIGEgdHJhaWxpbmcgemVyby1sZW5ndGggYXJyYXkgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJl DQo+Pj4+PiAraWYgdGhlIGFycmF5IGlzIHJlZmVyZW5jZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBt ZW1iZXIuDQo+Pj4+PiArDQo+Pj4+PiArDQo+Pj4+PiBAaXRlbSAtV3N1Z2dlc3QtYXR0cmlidXRl PUBye1t9cHVyZUBye3x9Y29uc3RAcnt8fW5vcmV0dXJuQHJ7fH1mb3JtYXRAcnt8fWNvbGRAcnt8 fW1hbGxvY0Bye119DQo+Pj4+PiBAb3BpbmRleCBXc3VnZ2VzdC1hdHRyaWJ1dGU9DQo+Pj4+PiBA b3BpbmRleCBXbm8tc3VnZ2VzdC1hdHRyaWJ1dGU9DQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2dp bXBsZS1hcnJheS1ib3VuZHMuY2MgYi9nY2MvZ2ltcGxlLWFycmF5LWJvdW5kcy5jYw0KPj4+Pj4g aW5kZXggZGIzNDU5YWYzMjUuLjgyNWYxMTMzMWI1IDEwMDY0NA0KPj4+Pj4gLS0tIGEvZ2NjL2dp bXBsZS1hcnJheS1ib3VuZHMuY2MNCj4+Pj4+ICsrKyBiL2djYy9naW1wbGUtYXJyYXktYm91bmRz LmNjDQo+Pj4+PiBAQCAtMjUyLDI1ICsyNTIsMzQgQEAgZ2V0X3VwX2JvdW5kc19mb3JfYXJyYXlf cmVmICh0cmVlIHJlZiwgdHJlZSAqZGVjbCwNCj4+Pj4+IA0KPj4+Pj4gLyogR2l2ZW4gdGhlIExP V19TVUJfT1JHLCBMT1dfU1VCIGFuZCBVUF9TVUIsIGFuZCB0aGUgY29tcHV0ZWQgVVBfQk9VTkQN Cj4+Pj4+ICBhbmQgVVBfQk9VTkRfUDEsIGNoZWNrIHdoZXRoZXIgdGhlIGFycmF5IHJlZmVyZW5j ZSBSRUYgaXMgb3V0IG9mIGJvdW5kLg0KPj4+Pj4gLSAgIElzc3VlIHdhcm5pbmdzIGlmIG91dCBv ZiBib3VuZCwgcmV0dXJuIFRSVUUgaWYgd2FybmluZ3MgYXJlIGlzc3VlZC4gICovIA0KPj4+Pj4g KyAgIFdoZW4gb3V0IG9mIGJvdW5kcywgc2V0IE9VVF9PRl9CT1VORCB0byB0cnVlLg0KPj4+Pj4g KyAgIElzc3VlIHdhcm5pbmdzIGlmIEZPUl9BUlJBWV9CT1VORCBpcyB0cnVlLg0KPj4+Pj4gKyAg IHJldHVybiBUUlVFIGlmIHdhcm5pbmdzIGFyZSBpc3N1ZWQuICAqLw0KPj4+Pj4gKw0KPj4+Pj4g DQo+Pj4+PiBzdGF0aWMgYm9vbA0KPj4+Pj4gY2hlY2tfb3V0X29mX2JvdW5kc19hbmRfd2FybiAo bG9jYXRpb25fdCBsb2NhdGlvbiwgdHJlZSByZWYsDQo+Pj4+PiAJCQkgICAgICB0cmVlIGxvd19z dWJfb3JnLCB0cmVlIGxvd19zdWIsIHRyZWUgdXBfc3ViLA0KPj4+Pj4gCQkJICAgICAgdHJlZSB1 cF9ib3VuZCwgdHJlZSB1cF9ib3VuZF9wMSwNCj4+Pj4+IAkJCSAgICAgIGNvbnN0IHZhbHVlX3Jh bmdlICp2ciwNCj4+Pj4+IC0JCQkgICAgICBib29sIGlnbm9yZV9vZmZfYnlfb25lKQ0KPj4+Pj4g KwkJCSAgICAgIGJvb2wgaWdub3JlX29mZl9ieV9vbmUsIGJvb2wgZm9yX2FycmF5X2JvdW5kLA0K Pj4+Pj4gKwkJCSAgICAgIGJvb2wgKm91dF9vZl9ib3VuZCkNCj4+Pj4+IHsNCj4+Pj4+IHRyZWUg bG93X2JvdW5kID0gYXJyYXlfcmVmX2xvd19ib3VuZCAocmVmKTsNCj4+Pj4+IHRyZWUgYXJ0eXBl ID0gVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHJlZiwgMCkpOw0KPj4+Pj4gDQo+Pj4+PiBib29s IHdhcm5lZCA9IGZhbHNlOw0KPj4+Pj4gKyAgKm91dF9vZl9ib3VuZCA9IGZhbHNlOw0KPj4+Pj4g DQo+Pj4+PiAvKiBFbXB0eSBhcnJheS4gICovDQo+Pj4+PiBpZiAodXBfYm91bmQgJiYgdHJlZV9p bnRfY3N0X2VxdWFsIChsb3dfYm91bmQsIHVwX2JvdW5kX3AxKSkNCj4+Pj4+IC0gICAgd2FybmVk ID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+IC0JCQkg ImFycmF5IHN1YnNjcmlwdCAlRSBpcyBvdXRzaWRlIGFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+ Pj4gLQkJCSBsb3dfc3ViX29yZywgYXJ0eXBlKTsNCj4+Pj4+ICsgICAgew0KPj4+Pj4gKyAgICAg ICpvdXRfb2ZfYm91bmQgPSB0cnVlOw0KPj4+Pj4gKyAgICAgIGlmIChmb3JfYXJyYXlfYm91bmQp DQo+Pj4+PiArCXdhcm5lZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2FycmF5X2JvdW5k c18sDQo+Pj4+PiArCQkJICAgICAiYXJyYXkgc3Vic2NyaXB0ICVFIGlzIG91dHNpZGUgYXJyYXki DQo+Pj4+PiArCQkJICAgICAiIGJvdW5kcyBvZiAlcVQiLCBsb3dfc3ViX29yZywgYXJ0eXBlKTsN Cj4+Pj4+ICsgICAgfQ0KPj4+Pj4gDQo+Pj4+PiBpZiAod2FybmVkKQ0KPj4+Pj4gICA7IC8qIERv IG5vdGhpbmcuICAqLw0KPj4+Pj4gQEAgLTI4MywyNCArMjkyLDMzIEBAIGNoZWNrX291dF9vZl9i b3VuZHNfYW5kX3dhcm4gKGxvY2F0aW9uX3QgbG9jYXRpb24sIHRyZWUgcmVmLA0KPj4+Pj4gCSAg ICAgIDogdHJlZV9pbnRfY3N0X2xlICh1cF9ib3VuZCwgdXBfc3ViKSkNCj4+Pj4+IAkgICYmIFRS RUVfQ09ERSAobG93X3N1YikgPT0gSU5URUdFUl9DU1QNCj4+Pj4+IAkgICYmIHRyZWVfaW50X2Nz dF9sZSAobG93X3N1YiwgbG93X2JvdW5kKSkNCj4+Pj4+IC0Jd2FybmVkID0gd2FybmluZ19hdCAo bG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+IC0JCQkgICAgICJhcnJheSBzdWJz Y3JpcHQgWyVFLCAlRV0gaXMgb3V0c2lkZSAiDQo+Pj4+PiAtCQkJICAgICAiYXJyYXkgYm91bmRz IG9mICVxVCIsDQo+Pj4+PiAtCQkJICAgICBsb3dfc3ViLCB1cF9zdWIsIGFydHlwZSk7DQo+Pj4+ PiArCXsNCj4+Pj4+ICsJICAqb3V0X29mX2JvdW5kID0gdHJ1ZTsNCj4+Pj4+ICsJICB3YXJuZWQg PSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+Pj4gKwkJCSAg ICAgICAiYXJyYXkgc3Vic2NyaXB0IFslRSwgJUVdIGlzIG91dHNpZGUgIg0KPj4+Pj4gKwkJCSAg ICAgICAiYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+PiArCQkJICAgICAgIGxvd19zdWIsIHVw X3N1YiwgYXJ0eXBlKTsNCj4+Pj4+ICsJfQ0KPj4+Pj4gICB9DQo+Pj4+PiBlbHNlIGlmICh1cF9i b3VuZA0KPj4+Pj4gCSAgICYmIFRSRUVfQ09ERSAodXBfc3ViKSA9PSBJTlRFR0VSX0NTVA0KPj4+ Pj4gCSAgICYmIChpZ25vcmVfb2ZmX2J5X29uZQ0KPj4+Pj4gCSAgICAgICA/ICF0cmVlX2ludF9j c3RfbGUgKHVwX3N1YiwgdXBfYm91bmRfcDEpDQo+Pj4+PiAJICAgICAgIDogIXRyZWVfaW50X2Nz dF9sZSAodXBfc3ViLCB1cF9ib3VuZCkpKQ0KPj4+Pj4gLSAgICB3YXJuZWQgPSB3YXJuaW5nX2F0 IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+Pj4gLQkJCSAiYXJyYXkgc3Vic2Ny aXB0ICVFIGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+Pj4gLQkJCSB1cF9zdWIs IGFydHlwZSk7DQo+Pj4+PiArICAgIHsNCj4+Pj4+ICsgICAgICAqb3V0X29mX2JvdW5kID0gdHJ1 ZTsNCj4+Pj4+ICsgICAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJh eV9ib3VuZHNfLA0KPj4+Pj4gKwkJCSAgICJhcnJheSBzdWJzY3JpcHQgJUUgaXMgYWJvdmUgYXJy YXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+PiArCQkJICAgdXBfc3ViLCBhcnR5cGUpOw0KPj4+Pj4g KyAgICB9DQo+Pj4+PiBlbHNlIGlmIChUUkVFX0NPREUgKGxvd19zdWIpID09IElOVEVHRVJfQ1NU DQo+Pj4+PiAJICAgJiYgdHJlZV9pbnRfY3N0X2x0IChsb3dfc3ViLCBsb3dfYm91bmQpKQ0KPj4+ Pj4gLSAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNf LA0KPj4+Pj4gLQkJCSAiYXJyYXkgc3Vic2NyaXB0ICVFIGlzIGJlbG93IGFycmF5IGJvdW5kcyBv ZiAlcVQiLA0KPj4+Pj4gLQkJCSBsb3dfc3ViLCBhcnR5cGUpOw0KPj4+Pj4gKyAgICB7DQo+Pj4+ PiArICAgICAgKm91dF9vZl9ib3VuZCA9IHRydWU7DQo+Pj4+PiArICAgICAgd2FybmVkID0gd2Fy bmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4+ICsJCQkgICAiYXJy YXkgc3Vic2NyaXB0ICVFIGlzIGJlbG93IGFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+Pj4gKwkJ CSAgIGxvd19zdWIsIGFydHlwZSk7DQo+Pj4+PiArICAgIH0NCj4+Pj4+IHJldHVybiB3YXJuZWQ7 DQo+Pj4+PiB9DQo+Pj4+PiANCj4+Pj4+IEBAIC0zMzMsMTQgKzM1MSwyMSBAQCBhcnJheV9ib3Vu ZHNfY2hlY2tlcjo6Y2hlY2tfYXJyYXlfcmVmIChsb2NhdGlvbl90IGxvY2F0aW9uLCB0cmVlIHJl ZiwNCj4+Pj4+IA0KPj4+Pj4gdHJlZSBhcmcgPSBUUkVFX09QRVJBTkQgKHJlZiwgMCk7DQo+Pj4+ PiBjb25zdCBib29sIGNvbXByZWYgPSBUUkVFX0NPREUgKGFyZykgPT0gQ09NUE9ORU5UX1JFRjsN Cj4+Pj4+ICsgIHVuc2lnbmVkIGludCBzdHJpY3RfZmxleF9hcnJheV9sZXZlbCA9IGZsYWdfc3Ry aWN0X2ZsZXhfYXJyYXlzOw0KPj4+Pj4gDQo+Pj4+PiBpZiAoY29tcHJlZikNCj4+Pj4+IC0gICAg LyogVHJ5IHRvIGRldGVybWluZSBzcGVjaWFsIGFycmF5IG1lbWJlciB0eXBlIGZvciB0aGlzIENP TVBPTkVOVF9SRUYuICAqLw0KPj4+Pj4gLSAgICBzYW0gPSBjb21wb25lbnRfcmVmX3NhbV90eXBl IChhcmcpOw0KPj4+Pj4gKyAgICB7DQo+Pj4+PiArICAgICAgLyogVHJ5IHRvIGRldGVybWluZSBz cGVjaWFsIGFycmF5IG1lbWJlciB0eXBlIGZvciB0aGlzIENPTVBPTkVOVF9SRUYuICAqLw0KPj4+ Pj4gKyAgICAgIHNhbSA9IGNvbXBvbmVudF9yZWZfc2FtX3R5cGUgKGFyZyk7DQo+Pj4+PiArICAg ICAgLyogR2V0IHRoZSBsZXZlbCBvZiBzdHJpY3RfZmxleF9hcnJheSBmb3IgdGhpcyBhcnJheSBm aWVsZC4gICovDQo+Pj4+PiArICAgICAgdHJlZSBhZmllbGRfZGVjbCA9IFRSRUVfT1BFUkFORCAo YXJnLCAxKTsNCj4+Pj4+ICsgICAgICBzdHJpY3RfZmxleF9hcnJheV9sZXZlbCA9IHN0cmljdF9m bGV4X2FycmF5X2xldmVsX29mIChhZmllbGRfZGVjbCk7DQo+Pj4+PiArICAgIH0NCj4+Pj4+IA0K Pj4+Pj4gZ2V0X3VwX2JvdW5kc19mb3JfYXJyYXlfcmVmIChyZWYsICZkZWNsLCAmdXBfYm91bmQs ICZ1cF9ib3VuZF9wMSk7DQo+Pj4+PiANCj4+Pj4+IGJvb2wgd2FybmVkID0gZmFsc2U7DQo+Pj4+ PiArICBib29sIG91dF9vZl9ib3VuZCA9IGZhbHNlOw0KPj4+Pj4gDQo+Pj4+PiB0cmVlIGFydHlw ZSA9IFRSRUVfVFlQRSAoVFJFRV9PUEVSQU5EIChyZWYsIDApKTsNCj4+Pj4+IHRyZWUgbG93X3N1 Yl9vcmcgPSBUUkVFX09QRVJBTkQgKHJlZiwgMSk7DQo+Pj4+PiBAQCAtMzYxLDcgKzM4Niw4IEBA IGFycmF5X2JvdW5kc19jaGVja2VyOjpjaGVja19hcnJheV9yZWYgKGxvY2F0aW9uX3QgbG9jYXRp b24sIHRyZWUgcmVmLA0KPj4+Pj4gd2FybmVkID0gY2hlY2tfb3V0X29mX2JvdW5kc19hbmRfd2Fy biAobG9jYXRpb24sIHJlZiwNCj4+Pj4+IAkJCQkJIGxvd19zdWJfb3JnLCBsb3dfc3ViLCB1cF9z dWIsDQo+Pj4+PiAJCQkJCSB1cF9ib3VuZCwgdXBfYm91bmRfcDEsIHZyLA0KPj4+Pj4gLQkJCQkJ IGlnbm9yZV9vZmZfYnlfb25lKTsNCj4+Pj4+ICsJCQkJCSBpZ25vcmVfb2ZmX2J5X29uZSwgd2Fy bl9hcnJheV9ib3VuZHMsDQo+Pj4+PiArCQkJCQkgJm91dF9vZl9ib3VuZCk7DQo+Pj4+PiANCj4+ Pj4+IA0KPj4+Pj4gaWYgKCF3YXJuZWQgJiYgc2FtID09IHNwZWNpYWxfYXJyYXlfbWVtYmVyOjpp bnRfMCkNCj4+Pj4+IEBAIC0zNzMsMTkgKzM5OSw1NiBAQCBhcnJheV9ib3VuZHNfY2hlY2tlcjo6 Y2hlY2tfYXJyYXlfcmVmIChsb2NhdGlvbl90IGxvY2F0aW9uLCB0cmVlIHJlZiwNCj4+Pj4+IAkJ CSAgICAgICAib2YgYW4gaW50ZXJpb3IgemVyby1sZW5ndGggYXJyYXkgJXFUIikpLA0KPj4+Pj4g CQkJIGxvd19zdWIsIGFydHlwZSk7DQo+Pj4+PiANCj4+Pj4+IC0gIGlmICh3YXJuZWQpDQo+Pj4+ PiArICBpZiAod2FybmVkIHx8IG91dF9vZl9ib3VuZCkNCj4+Pj4+ICAgew0KPj4+Pj4gLSAgICAg IGlmIChkdW1wX2ZpbGUgJiYgKGR1bXBfZmxhZ3MgJiBUREZfREVUQUlMUykpDQo+Pj4+PiArICAg ICAgaWYgKHdhcm5lZCAmJiBkdW1wX2ZpbGUgJiYgKGR1bXBfZmxhZ3MgJiBUREZfREVUQUlMUykp DQo+Pj4+PiAJew0KPj4+Pj4gCSAgZnByaW50ZiAoZHVtcF9maWxlLCAiQXJyYXkgYm91bmQgd2Fy bmluZyBmb3IgIik7DQo+Pj4+PiAJICBkdW1wX2dlbmVyaWNfZXhwciAoTVNHX05PVEUsIFRERl9T TElNLCByZWYpOw0KPj4+Pj4gCSAgZnByaW50ZiAoZHVtcF9maWxlLCAiXG4iKTsNCj4+Pj4+IAl9 DQo+Pj4+PiANCj4+Pj4+ICsgICAgICAvKiBpc3N1ZSB3YXJuaW5ncyBmb3IgLVdzdHJpY3QtZmxl eC1hcnJheXMgYWNjb3JkaW5nIHRvIHRoZSBsZXZlbCBvZg0KPj4+Pj4gKwkgZmxhZ19zdHJpY3Rf ZmxleF9hcnJheXMuICAqLw0KPj4+Pj4gKyAgICAgIGlmIChvdXRfb2ZfYm91bmQgJiYgd2Fybl9z dHJpY3RfZmxleF9hcnJheXMpDQo+Pj4+PiArICAgICAgc3dpdGNoIChzdHJpY3RfZmxleF9hcnJh eV9sZXZlbCkNCj4+Pj4+ICsJew0KPj4+Pj4gKwkgIGNhc2UgMzoNCj4+Pj4+ICsJICAgIC8qIElz c3VlIGFkZGl0aW9uYWwgd2FybmluZ3MgZm9yIHRyYWlsaW5nIGFycmF5cyBbMF0uICAqLw0KPj4+ Pj4gKwkgICAgaWYgKHNhbSA9PSBzcGVjaWFsX2FycmF5X21lbWJlcjo6dHJhaWxfMCkNCj4+Pj4+ ICsJICAgICAgd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9Xc3RyaWN0X2ZsZXhf YXJyYXlzLA0KPj4+Pj4gKwkJCQkgICAidHJhaWxpbmcgYXJyYXkgJXFUIHNob3VsZCBub3QgYmUg dXNlZCBhcyAiDQo+Pj4+PiArCQkJCSAgICJhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2 ZWwgMyIsDQo+Pj4+PiArCQkJCSAgIGFydHlwZSk7DQo+Pj4+PiArCSAgICAvKiBGQUxMVEhST1VH SC4gICovDQo+Pj4+PiArCSAgY2FzZSAyOg0KPj4+Pj4gKwkgICAgLyogSXNzdWUgYWRkaXRpb25h bCB3YXJuaW5ncyBmb3IgdHJhaWxpbmcgYXJyYXlzIFsxXS4gICovDQo+Pj4+PiArCSAgICBpZiAo c2FtID09IHNwZWNpYWxfYXJyYXlfbWVtYmVyOjp0cmFpbF8xKQ0KPj4+Pj4gKwkgICAgICB3YXJu ZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dzdHJpY3RfZmxleF9hcnJheXMsDQo+Pj4+ PiArCQkJCSAgICJ0cmFpbGluZyBhcnJheSAlcVQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzICINCj4+ Pj4+ICsJCQkJICAgImEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCAiDQo+ Pj4+PiArCQkJCSAgICJhYm92ZSIsIGFydHlwZSk7DQo+Pj4+PiArCSAgICAvKiBGQUxMVEhST1VH SC4gICovDQo+Pj4+PiArCSAgY2FzZSAxOg0KPj4+Pj4gKwkgICAgLyogSXNzdWUgd2FybmluZ3Mg Zm9yIHRyYWlsaW5nIGFycmF5cyBbbl0uICAqLw0KPj4+Pj4gKwkgICAgaWYgKHNhbSA9PSBzcGVj aWFsX2FycmF5X21lbWJlcjo6dHJhaWxfbikNCj4+Pj4+ICsJICAgICAgd2FybmVkID0gd2Fybmlu Z19hdCAobG9jYXRpb24sIE9QVF9Xc3RyaWN0X2ZsZXhfYXJyYXlzLA0KPj4+Pj4gKwkJCQkgICAi dHJhaWxpbmcgYXJyYXkgJXFUIHNob3VsZCBub3QgYmUgdXNlZCBhcyAiDQo+Pj4+PiArCQkJCSAg ICJhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgIg0KPj4+Pj4gKwkJCQkg ICAiYWJvdmUiLCBhcnR5cGUpOw0KPj4+Pj4gKwkgICAgYnJlYWs7DQo+Pj4+PiArCSAgY2FzZSAw Og0KPj4+Pj4gKwkgICAgLyogRG8gbm90aGluZy4gICovDQo+Pj4+PiArCSAgICBicmVhazsNCj4+ Pj4+ICsJICBkZWZhdWx0Og0KPj4+Pj4gKwkgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KPj4+Pj4g Kwl9DQo+Pj4+PiArDQo+Pj4+PiAgICAgLyogQXZvaWQgbW9yZSB3YXJuaW5ncyB3aGVuIGNoZWNr aW5nIG1vcmUgc2lnbmlmaWNhbnQgc3Vic2NyaXB0cw0KPj4+Pj4gCSBvZiB0aGUgc2FtZSBleHBy ZXNzaW9uLiAgKi8NCj4+Pj4+ICAgICByZWYgPSBUUkVFX09QRVJBTkQgKHJlZiwgMCk7DQo+Pj4+ PiAgICAgc3VwcHJlc3Nfd2FybmluZyAocmVmLCBPUFRfV2FycmF5X2JvdW5kc18pOw0KPj4+Pj4g KyAgICAgIHN1cHByZXNzX3dhcm5pbmcgKHJlZiwgT1BUX1dzdHJpY3RfZmxleF9hcnJheXMpOw0K Pj4+Pj4gDQo+Pj4+PiAgICAgaWYgKGRlY2wpDQo+Pj4+PiAJcmVmID0gZGVjbDsNCj4+Pj4+IGRp ZmYgLS1naXQgYS9nY2Mvb3B0cy5jYyBiL2djYy9vcHRzLmNjDQo+Pj4+PiBpbmRleCA3M2ZjOTc3 NTZlNC4uOGRiNTNhZDZjNzcgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2Mvb3B0cy5jYw0KPj4+Pj4g KysrIGIvZ2NjL29wdHMuY2MNCj4+Pj4+IEBAIC0xNDExLDYgKzE0MTEsMTQgQEAgZmluaXNoX29w dGlvbnMgKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0cywgc3RydWN0IGdjY19vcHRpb25zICpvcHRz X3NldCwNCj4+Pj4+ICAgICBvcHRzLT54X3Byb2ZpbGVfZmxhZyA9IDA7DQo+Pj4+PiAgIH0NCj4+ Pj4+IA0KPj4+Pj4gKyAgaWYgKG9wdHMtPnhfd2Fybl9zdHJpY3RfZmxleF9hcnJheXMpDQo+Pj4+ PiArICAgIGlmIChvcHRzLT54X2ZsYWdfc3RyaWN0X2ZsZXhfYXJyYXlzID09IDApDQo+Pj4+PiAr ICAgICAgew0KPj4+Pj4gKwlvcHRzLT54X3dhcm5fc3RyaWN0X2ZsZXhfYXJyYXlzID0gMDsNCj4+ Pj4+ICsJd2FybmluZ19hdCAoVU5LTk9XTl9MT0NBVElPTiwgMCwNCj4+Pj4+ICsJCSAgICAiJTwt V3N0cmljdC1mbGV4LWFycmF5cyU+IGlzIGlnbm9yZWQgd2hlbiINCj4+Pj4+ICsJCSAgICAiICU8 LWZzdHJpY3QtZmxleC1hcnJheXMlPiBkb2VzIG5vdCBwcmVzZW50Iik7DQo+Pj4+PiArICAgICAg fQ0KPj4+Pj4gDQo+Pj4+PiBkaWFnbm9zZV9vcHRpb25zIChvcHRzLCBvcHRzX3NldCwgbG9jKTsN Cj4+Pj4+IH0NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9X c3RyaWN0LWZsZXgtYXJyYXlzLmMgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9Xc3RyaWN0 LWZsZXgtYXJyYXlzLmMNCj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+PiBpbmRleCAw MDAwMDAwMDAwMC4uNzJiNGI3YzY0MDYNCj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+ICsrKyBi L2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL1dzdHJpY3QtZmxleC1hcnJheXMuYw0KPj4+Pj4g QEAgLTAsMCArMSw5IEBADQo+Pj4+PiArLyogVGVzdCB0aGUgdXNhZ2Ugb2Ygb3B0aW9uIC1Xc3Ry aWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+ Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIiB9ICovDQo+Pj4+ PiArDQo+Pj4+PiAraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCj4+Pj4+ICt7DQo+ Pj4+PiArICAgIHJldHVybiAwOw0KPj4+Pj4gK30NCj4+Pj4+ICsvKiB7IGRnLXdhcm5pbmcgImlz IGlnbm9yZWQgd2hlbiBcJy1mc3RyaWN0LWZsZXgtYXJyYXlzXCcgZG9lcyBub3QgcHJlc2VudCIg IiIgeyB0YXJnZXQgKi0qLSogfSAwIH0gKi8NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jDQo+Pj4+PiBpbmRleCBkMzZiYTRk ODZjYi4uNjVjOWZlYzQzYWYgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5k Zy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYw0KPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmMNCj4+Pj4+IEBAIC0xLDYgKzEs NiBAQA0KPj4+Pj4gLS8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5k cy4gICovDQo+Pj4+PiArLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91 bmRzICsgLVdzdHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+Pj4gLyogeyBkZy1kbyBjb21waWxl fSAqLw0KPj4+Pj4gLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTEg LVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmlj dC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0xIC1XYXJyYXktYm91bmRzIiB9ICov DQo+Pj4+PiANCj4+Pj4+IHN0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+ICAgaW50IGE7 DQo+Pj4+PiBAQCAtMzIsNiArMzIsNyBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVf XykpIHN0dWZmKA0KPj4+Pj4gICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxl eCkNCj4+Pj4+IHsNCj4+Pj4+ICAgbm9ybWFsLT5jWzVdID0gNTsgCS8qeyBkZy13YXJuaW5nICJh cnJheSBzdWJzY3JpcHQgNSBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4+ICsg ICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFy cmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0x IH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctYm9ndXMgImFycmF5 IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGct Ym9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfZmxleC0+Y1sx MF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4gZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMt Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmMN Cj4+Pj4+IGluZGV4IGY2MzIwNmUxOTQ4Li4yYjVhODk1YzU5OCAxMDA2NDQNCj4+Pj4+IC0tLSBh L2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMi5jDQo+Pj4+ PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTIu Yw0KPj4+Pj4gQEAgLTEsNiArMSw2IEBADQo+Pj4+PiAtLyogVGVzdCAtZnN0cmljdC1mbGV4LWFy cmF5cyArIC1XYXJyYXktYm91bmRzLiAgKi8NCj4+Pj4+ICsvKiBUZXN0IC1mc3RyaWN0LWZsZXgt YXJyYXlzICsgLVdhcnJheS1ib3VuZHMgKyAtV3N0cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4+ PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+Pj4gLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1m c3RyaWN0LWZsZXgtYXJyYXlzPTIgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4+ICsvKiB7IGRn LW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0y IC1XYXJyYXktYm91bmRzIiB9ICovDQo+Pj4+PiANCj4+Pj4+IHN0cnVjdCB0cmFpbGluZ19hcnJh eV8xIHsNCj4+Pj4+ICAgaW50IGE7DQo+Pj4+PiBAQCAtMzIsNyArMzIsOSBAQCB2b2lkIF9fYXR0 cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHN0dWZmKA0KPj4+Pj4gICBzdHJ1Y3QgdHJhaWxpbmdf YXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4+IHsNCj4+Pj4+ICAgbm9ybWFsLT5jWzVdID0g NTsgCS8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgNSBpcyBhYm92ZSBhcnJheSBib3Vu ZHMgb2YiIH0gKi8NCj4+Pj4+ICsgICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUg dXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIi IHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMS0+Y1syXSA9IDI7 IC8qIHsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDIgaXMgYWJvdmUgYXJyYXkgYm91bmRz IG9mIiAgfSAqLw0KPj4+Pj4gKyAgICAJCQkgIC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBi ZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIg IiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+Pj4gICB0cmFpbGluZ18wLT5jWzFdID0g MTsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4gICB0cmFpbGlu Z19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICov DQo+Pj4+PiANCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXkt Ym91bmRzLWZsZXgtYXJyYXlzLTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3Vu ZHMtZmxleC1hcnJheXMtMy5jDQo+Pj4+PiBpbmRleCBlMzI3MzcxNGU4Yi4uMjViOTAzZjI2MTUg MTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZs ZXgtYXJyYXlzLTMuYw0KPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJv dW5kcy1mbGV4LWFycmF5cy0zLmMNCj4+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+Pj4gLS8qIFRl c3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcy4gICovDQo+Pj4+PiArLyog VGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzICsgLVdzdHJpY3QtZmxl eC1hcnJheXMuICAqLw0KPj4+Pj4gLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+IC0vKiB7 IGRnLW9wdGlvbnMgIi1PMiAtZnN0cmljdC1mbGV4LWFycmF5cz0zIC1XYXJyYXktYm91bmRzIiB9 ICovDQo+Pj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZz dHJpY3QtZmxleC1hcnJheXM9MyAtV2FycmF5LWJvdW5kcyIgfSAqLw0KPj4+Pj4gDQo+Pj4+PiBz dHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+PiAgIGludCBhOw0KPj4+Pj4gQEAgLTMyLDgg KzMyLDExIEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ PiAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV80ICp0cmFpbGluZ19mbGV4KQ0KPj4+Pj4gew0KPj4+ Pj4gICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1 IGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLyANCj4+Pj4+ICsgICAgCQkJLyp7IGRnLXdh cm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3Ig bGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+ICAg dHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgMiBp cyBhYm92ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8gDQo+Pj4+PiArICAgIAkJCSAgLyogeyBkZy13 YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9y IGxldmVsIDIgYW5kIGFib3ZlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+PiAg IHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDEg aXMgb3V0c2lkZSBhcnJheSBib3VuZHMgb2YiIH0gKi8gDQo+Pj4+PiArICAgIAkJCSAgLyogeyBk Zy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIg Zm9yIGxldmVsIDMiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+ICAgdHJhaWxp bmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0IiB9ICov DQo+Pj4+PiANCj4+Pj4+IH0NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5k Zy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtNC5jDQo+Pj4+PiBpbmRleCBjYWJhZWE3N2RjMi4uNWZj NTAwYTE5Y2EgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXkt Ym91bmRzLWZsZXgtYXJyYXlzLTQuYw0KPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv V2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy00LmMNCj4+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+ Pj4gLS8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yLiAgKi8N Cj4+Pj4+ICsvKiBUZXN0IC1mc3RyaWN0LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHM9MiAr IC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4+IC8qIHsgZGctZG8gY29tcGlsZSB9ICov DQo+Pj4+PiAtLyogeyBkZy1vcHRpb25zICItTzIgLWZzdHJpY3QtZmxleC1hcnJheXM9MSAtV2Fy cmF5LWJvdW5kcz0yIiB9ICovDQo+Pj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLVdzdHJpY3Qt ZmxleC1hcnJheXMgLWZzdHJpY3QtZmxleC1hcnJheXM9MSAtV2FycmF5LWJvdW5kcz0yIiB9ICov DQo+Pj4+PiANCj4+Pj4+IHN0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4+ICAgaW50IGE7 DQo+Pj4+PiBAQCAtMzIsNiArMzIsNyBAQCB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVf XykpIHN0dWZmKA0KPj4+Pj4gICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxl eCkNCj4+Pj4+IHsNCj4+Pj4+ICAgbm9ybWFsLT5jWzVdID0gNTsgCS8qeyBkZy13YXJuaW5nICJh cnJheSBzdWJzY3JpcHQgNSBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4+ICsg ICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFy cmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0x IH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctYm9ndXMgImFycmF5 IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGct Ym9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfZmxleC0+Y1sx MF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+Pj4gZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMt NS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy01LmMN Cj4+Pj4+IGluZGV4IDhiN2RiNmU0ZjM5Li4zMGJiNGNhODgzMiAxMDA2NDQNCj4+Pj4+IC0tLSBh L2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtNS5jDQo+Pj4+ PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTUu Yw0KPj4+Pj4gQEAgLTEsNiArMSw2IEBADQo+Pj4+PiAtLyogVGVzdCAtZnN0cmljdC1mbGV4LWFy cmF5cyArIC1XYXJyYXktYm91bmRzPTIuICAqLw0KPj4+Pj4gKy8qIFRlc3QgLWZzdHJpY3QtZmxl eC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yICsgLVdzdHJpY3QtZmxleC1hcnJheXMuICAqLw0K Pj4+Pj4gLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+IC0vKiB7IGRnLW9wdGlvbnMgIi1P MiAtZnN0cmljdC1mbGV4LWFycmF5cz0yIC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+Pj4+ICsv KiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFy cmF5cz0yIC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+Pj4+IA0KPj4+Pj4gc3RydWN0IHRyYWls aW5nX2FycmF5XzEgew0KPj4+Pj4gICBpbnQgYTsNCj4+Pj4+IEBAIC0zMiw3ICszMiw5IEBAIHZv aWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+PiAgIHN0cnVjdCB0 cmFpbGluZ19hcnJheV80ICp0cmFpbGluZ19mbGV4KQ0KPj4+Pj4gew0KPj4+Pj4gICBub3JtYWwt PmNbNV0gPSA1OyAgIC8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgNSBpcyBhYm92ZSBh cnJheSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4+ICsgICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3Vs ZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQg YWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMS0+ Y1syXSA9IDI7IC8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgMiBpcyBhYm92ZSBhcnJh eSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4+ICsgICAgCQkJICAvKiB7IGRnLXdhcm5pbmcgInNob3Vs ZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMiBhbmQg YWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMC0+ Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4+ICAg dHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0 ICIgfSAqLw0KPj4+Pj4gDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv V2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy02LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJy YXktYm91bmRzLWZsZXgtYXJyYXlzLTYuYw0KPj4+Pj4gaW5kZXggMDM1YmY0ODEzOTYuLmU4NDdh NDQ1MTZlIDEwMDY0NA0KPj4+Pj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJv dW5kcy1mbGV4LWFycmF5cy02LmMNCj4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtNi5jDQo+Pj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+Pj4+ IC0vKiBUZXN0IC1mc3RyaWN0LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHM9Mi4gICovDQo+ Pj4+PiArLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzPTIgKyAt V3N0cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Pj4+Pj4gLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTMgLVdhcnJh eS1ib3VuZHM9MiIgfSAqLw0KPj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZs ZXgtYXJyYXlzIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTMgLVdhcnJheS1ib3VuZHM9MiIgfSAqLw0K Pj4+Pj4gDQo+Pj4+PiBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+PiAgIGludCBhOw0K Pj4+Pj4gQEAgLTMyLDggKzMyLDExIEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9f KSkgc3R1ZmYoDQo+Pj4+PiAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV80ICp0cmFpbGluZ19mbGV4 KQ0KPj4+Pj4gew0KPj4+Pj4gICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFy cmF5IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLyANCj4+Pj4+ICsg ICAgCQkJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFy cmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0x IH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qeyBkZy13YXJuaW5nICJhcnJh eSBzdWJzY3JpcHQgMiBpcyBhYm92ZSBhcnJheSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4+ICsgICAg CQkJICAvKiB7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFy cmF5IG1lbWJlciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0x IH0gKi8NCj4+Pj4+ICAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qeyBkZy13YXJuaW5nICJhcnJh eSBzdWJzY3JpcHQgMSBpcyBvdXRzaWRlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+Pj4gKyAg ICAJCQkgIC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUg YXJyYXkgbWVtYmVyIGZvciBsZXZlbCAzIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+ Pj4+PiAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1 YnNjcmlwdCAiIH0gKi8NCj4+Pj4+IA0KPj4+Pj4gfQ0KPj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMNCj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uMmUyNDFmOTYyMDgNCj4+Pj4+IC0tLSAvZGV2L251 bGwNCj4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMt Mi5jDQo+Pj4+PiBAQCAtMCwwICsxLDM5IEBADQo+Pj4+PiArLyogVGVzdCAtV3N0cmljdC1mbGV4 LWFycmF5cy4gICovDQo+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+ICsvKiB7 IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5 cz0yIiB9ICovDQo+Pj4+PiArDQo+Pj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgew0KPj4+ Pj4gKyAgICBpbnQgYTsNCj4+Pj4+ICsgICAgaW50IGI7DQo+Pj4+PiArICAgIGludCBjWzRdOyAN Cj4+Pj4+ICt9Ow0KPj4+Pj4gKw0KPj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8yIHsNCj4+ Pj4+ICsgICAgaW50IGE7DQo+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4gKyAgICBpbnQgY1sxXTsg DQo+Pj4+PiArfTsNCj4+Pj4+ICsNCj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMyB7DQo+ Pj4+PiArICAgIGludCBhOw0KPj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+ICsgICAgaW50IGNbMF07 DQo+Pj4+PiArfTsNCj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCB7DQo+Pj4+PiArICAg IGludCBhOw0KPj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+ICsgICAgaW50IGNbXTsNCj4+Pj4+ICt9 Ow0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1 ZmYoDQo+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8xICpub3JtYWwsDQo+Pj4+PiAr ICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8yICp0cmFpbGluZ18xLA0KPj4+Pj4gKyAgICBzdHJ1 Y3QgdHJhaWxpbmdfYXJyYXlfMyAqdHJhaWxpbmdfMCwNCj4+Pj4+ICsgICAgc3RydWN0IHRyYWls aW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+PiArew0KPj4+Pj4gKyAgICBub3JtYWwt PmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhp YmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4+ICsgICAg dHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5vdCBiZSB1c2Vk IGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92ZSIgfSAqLw0K Pj4+Pj4gKyAgICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1cyAic2hvdWxkIG5v dCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92 ZSIgfSAqLw0KPj4+Pj4gKyAgICB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJv Z3VzICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxl dmVsIDIgYW5kIGFib3ZlIiB9ICovDQo+Pj4+PiArDQo+Pj4+PiArfQ0KPj4+Pj4gZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMy5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0zLmMNCj4+Pj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uOTdlYjY1YmEwYTkNCj4+Pj4+IC0t LSAvZGV2L251bGwNCj4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxl eC1hcnJheXMtMy5jDQo+Pj4+PiBAQCAtMCwwICsxLDM5IEBADQo+Pj4+PiArLyogVGVzdCAtV3N0 cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+ Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1m bGV4LWFycmF5cz0zIiB9ICovDQo+Pj4+PiArDQo+Pj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5 XzEgew0KPj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4+ICsgICAgaW50IGI7DQo+Pj4+PiArICAgIGlu dCBjWzRdOyANCj4+Pj4+ICt9Ow0KPj4+Pj4gKw0KPj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJh eV8yIHsNCj4+Pj4+ICsgICAgaW50IGE7DQo+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4gKyAgICBp bnQgY1sxXTsgDQo+Pj4+PiArfTsNCj4+Pj4+ICsNCj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJy YXlfMyB7DQo+Pj4+PiArICAgIGludCBhOw0KPj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+ICsgICAg aW50IGNbMF07DQo+Pj4+PiArfTsNCj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCB7DQo+ Pj4+PiArICAgIGludCBhOw0KPj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+ICsgICAgaW50IGNbXTsN Cj4+Pj4+ICt9Ow0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGlu ZV9fKSkgc3R1ZmYoDQo+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8xICpub3JtYWws DQo+Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8yICp0cmFpbGluZ18xLA0KPj4+Pj4g KyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMyAqdHJhaWxpbmdfMCwNCj4+Pj4+ICsgICAgc3Ry dWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+PiArew0KPj4+Pj4gKyAg ICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBh cyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8NCj4+ Pj4+ICsgICAgdHJhaWxpbmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctd2FybmluZyAic2hvdWxkIG5v dCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCBhYm92 ZSIgfSAqLw0KPj4+Pj4gKyAgICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy13YXJuaW5n ICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVs IDMiIH0gKi8NCj4+Pj4+ICsgICAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1i b2d1cyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBs ZXZlbCAzIiB9ICovDQo+Pj4+PiArDQo+Pj4+PiArfQ0KPj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL1dzdHJpY3QtZmxleC1hcnJheXMuYw0KPj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+ Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi4xMTBmZGM3Mjc3OA0KPj4+Pj4gLS0tIC9kZXYvbnVsbA0K Pj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy5jDQo+ Pj4+PiBAQCAtMCwwICsxLDM5IEBADQo+Pj4+PiArLyogVGVzdCAtV3N0cmljdC1mbGV4LWFycmF5 cy4gICovDQo+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+ICsvKiB7IGRnLW9w dGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0cmljdC1mbGV4LWFycmF5cz0xIiB9 ICovDQo+Pj4+PiArDQo+Pj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgew0KPj4+Pj4gKyAg ICBpbnQgYTsNCj4+Pj4+ICsgICAgaW50IGI7DQo+Pj4+PiArICAgIGludCBjWzRdOyANCj4+Pj4+ ICt9Ow0KPj4+Pj4gKw0KPj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJheV8yIHsNCj4+Pj4+ICsg ICAgaW50IGE7DQo+Pj4+PiArICAgIGludCBiOw0KPj4+Pj4gKyAgICBpbnQgY1sxXTsgDQo+Pj4+ PiArfTsNCj4+Pj4+ICsNCj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMyB7DQo+Pj4+PiAr ICAgIGludCBhOw0KPj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+ICsgICAgaW50IGNbMF07DQo+Pj4+ PiArfTsNCj4+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCB7DQo+Pj4+PiArICAgIGludCBh Ow0KPj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4+ICsgICAgaW50IGNbXTsNCj4+Pj4+ICt9Ow0KPj4+ Pj4gKw0KPj4+Pj4gK3ZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+ Pj4+PiArICAgIHN0cnVjdCB0cmFpbGluZ19hcnJheV8xICpub3JtYWwsDQo+Pj4+PiArICAgIHN0 cnVjdCB0cmFpbGluZ19hcnJheV8yICp0cmFpbGluZ18xLA0KPj4+Pj4gKyAgICBzdHJ1Y3QgdHJh aWxpbmdfYXJyYXlfMyAqdHJhaWxpbmdfMCwNCj4+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2Fy cmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+PiArew0KPj4+Pj4gKyAgICBub3JtYWwtPmNbNV0g PSA1OyAJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFy cmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4+ICsgICAgdHJhaWxp bmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctYm9ndXMgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZs ZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4+ICsg ICAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMgInNob3VsZCBub3QgYmUgdXNl ZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8N Cj4+Pj4+ICsgICAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1ib2d1cyAic2hv dWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAxIGFu ZCBhYm92ZSIgfSAqLw0KPj4+Pj4gKw0KPj4+Pj4gK30NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2Mv dHJlZS12cnAuY2MgYi9nY2MvdHJlZS12cnAuY2MNCj4+Pj4+IGluZGV4IDM4NDZkYzFkODQ5Li5l NmM2YzVhMzAxZCAxMDA2NDQNCj4+Pj4+IC0tLSBhL2djYy90cmVlLXZycC5jYw0KPj4+Pj4gKysr IGIvZ2NjL3RyZWUtdnJwLmNjDQo+Pj4+PiBAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgZXhlY3V0ZV9y YW5nZXJfdnJwIChzdHJ1Y3QgZnVuY3Rpb24gKmZ1biwgYm9vbCB3YXJuX2FycmF5X2JvdW5kc19w LA0KPj4+Pj4gaWYgKGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9ERVRBSUxTKSkNCj4+ Pj4+ICAgcmFuZ2VyLT5kdW1wIChkdW1wX2ZpbGUpOw0KPj4+Pj4gDQo+Pj4+PiAtICBpZiAod2Fy bl9hcnJheV9ib3VuZHMgJiYgd2Fybl9hcnJheV9ib3VuZHNfcCkNCj4+Pj4+ICsgIGlmICgod2Fy bl9hcnJheV9ib3VuZHMgfHwgd2Fybl9zdHJpY3RfZmxleF9hcnJheXMpICYmIHdhcm5fYXJyYXlf Ym91bmRzX3ApDQo+Pj4+PiAgIHsNCj4+Pj4+ICAgICAvLyBTZXQgYWxsIGVkZ2VzIGFzIGV4ZWN1 dGFibGUsIGV4Y2VwdCB0aG9zZSByYW5nZXIgc2F5cyBhcmVuJ3QuDQo+Pj4+PiAgICAgaW50IG5v bl9leGVjX2ZsYWcgPSByYW5nZXItPm5vbl9leGVjdXRhYmxlX2VkZ2VfZmxhZzsNCj4+Pj4+IC0t IA0KPj4+Pj4gMi4zMS4xDQo+Pj4+PiANCj4+Pj4gDQo+Pj4+IA0KPj4+IA0KPj4+IC0tIA0KPj4+ IFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NCj4+PiBTVVNFIFNvZnR3YXJlIFNv bHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJn LA0KPj4+IEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYsIEFuZHJldyBNeWVycywgQW5kcmV3IE1jRG9u YWxkLCBCb3VkaWVuIE1vZXJtYW47DQo+Pj4gSFJCIDM2ODA5IChBRyBOdWVybmJlcmcpDQo+PiAN Cj4+IA0KPiANCj4gLS0gDQo+IFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NCj4g U1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYXNzZSAxNDYs IDkwNDYxIE51ZXJuYmVyZywNCj4gR2VybWFueTsgR0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJz LCBBbmRyZXcgTWNEb25hbGQsIEJvdWRpZW4gTW9lcm1hbjsNCj4gSFJCIDM2ODA5IChBRyBOdWVy bmJlcmcpDQoNCg==