From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A22B2C433F5 for ; Tue, 15 Mar 2022 08:13:37 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.web09.8240.1647332015947606844 for ; Tue, 15 Mar 2022 01:13:36 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@windriver.com header.s=pps06212021 header.b=G0qIAq/U; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=0073abe464=zhe.he@windriver.com) Received: from pps.filterd (m0250811.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 22F7wpg1024432 for ; Tue, 15 Mar 2022 08:13:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=message-id : date : subject : to : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=PPS06212021; bh=D6H16tHA3BzjN33BocV4BoTD17FQGaGJnqZNWx/VvWg=; b=G0qIAq/UE74ZHeZdCeFThMH6R07F26ADntWuj6VHeHEBA+Az5v2yhbh9+TsTmno6ROSX PDxmi8zzleJN0GvcN4ISbKCIdMkJBjoOvJv9sdafDs84mYmjgKfwN27JlVSAaL+s/Dgu i83Un1f0WIY3aqnfyzmGNSBOJbdCyxKJxygkLLxiacAF5ryL8FKWBMgtYdgRJeeDSY99 nlrd2kwLwglwfazoyNgYKs/pxMTQe6dlMMMhljlvaaM1o2vyLORPIWkRwr4NEO1NrnJX BvOsmw9uJNeeoiYhrCYZzniPtiGzHmGsNd6K9WNaeKXfkDDQnFMlhx5Ux3SJ5vxjinc4 Cg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 3ergr0acx7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 15 Mar 2022 08:13:34 +0000 Received: from m0250811.ppops.net (m0250811.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 22F8DYsn022291 for ; Tue, 15 Mar 2022 08:13:34 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2174.outbound.protection.outlook.com [104.47.58.174]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 3ergr0acx5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 15 Mar 2022 08:13:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sx1rFn3f0xAa5wyiRyKglMfnGDbOmRGGXhiCBaGBl/fGd9sQxiTchDcSSdEMwAXFwg2k2P9tpjmSV5tApBoADGShG3U4OUkOaZS9vdx6dYRCQ8SDYAH1e1Yrz8qtFq+DNvzBccsp6ufN0VmtYM6NKLc5L/v2OiKjDUG2JYYMFrv/ffPqOdgTJyeNeO9sGXEphPTctjKCAih0Ta2IwsYliqEJLpyIZjwRvi85987fh0pxOPI1MgK35LOAU4KIl3dQ8eQeS0B/dpA0Db1OvXrGPS6jKrrE1oeQk952H4dtEsZJ7MCn9/a750Ft0FiQ1l7RfW3vDRzpaSn+KDhnfA5+sQ== 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=D6H16tHA3BzjN33BocV4BoTD17FQGaGJnqZNWx/VvWg=; b=awHF5ZeyxaKK17niYguk7fKafMQZkT99UeG45sAnoemEu7LZpghvEArUWz/emtUMKIvYPGCTx9VxaKnQa94GC/NcRELTtIil8ZdYxQmSXU1QtyoIVkIueqqV0kKyeKTIxsdceZsc3pYQ25kQTHjbz0nBZqfFlKm0+E+slWAx1DBDqnet7UD59c6jYiAPCcrLaIidSMuunsgwfBOtld2sflA0rZs4N8+U6Ts1MB4mAbu1mIyrn4VuvG27HPiT9ShLB4pWRZLP5akNHg9NQR5BlAODfTBBoM332pZ002UIfZ3WdiPa3V3MYqez/k2biMJte/wK5DSevXRJbNmF9nVYkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from MWHPR11MB1358.namprd11.prod.outlook.com (2603:10b6:300:23::8) by BY5PR11MB4117.namprd11.prod.outlook.com (2603:10b6:a03:18a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.14; Tue, 15 Mar 2022 08:13:31 +0000 Received: from MWHPR11MB1358.namprd11.prod.outlook.com ([fe80::2cb7:7dbc:9904:2c3e]) by MWHPR11MB1358.namprd11.prod.outlook.com ([fe80::2cb7:7dbc:9904:2c3e%5]) with mapi id 15.20.5061.029; Tue, 15 Mar 2022 08:13:31 +0000 Message-ID: <5bb7b9f3-7619-0032-37f0-e18212c776da@windriver.com> Date: Tue, 15 Mar 2022 16:09:02 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [OE-core] [hardknott][PATCH] babeltrace: Handle negative time and offset from Epoch Content-Language: en-US To: "Mittal, Anuj" , "openembedded-core@lists.openembedded.org" References: <20220309082607.2165890-1-zhe.he@windriver.com> From: He Zhe In-Reply-To: Content-Type: text/plain; charset=UTF-8 X-ClientProxiedBy: SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) To MWHPR11MB1358.namprd11.prod.outlook.com (2603:10b6:300:23::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2890918a-2cf7-4042-7eeb-08da065bb119 X-MS-TrafficTypeDiagnostic: BY5PR11MB4117:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AuGVEfKIKC/fOr/1jGd79RjobXq+yooQ5IWgTQVn/IKGctEKLuCMTjtDbpkcZtJSL1ly3JN8dLYe1lqIESEi5kRCb0uak0Pq+WynRkyhtg/b9pnTJBg4TBPZ2/5B5tPjNcTFn4OOoVT+jwhD+HkA0dMWiDplVkXJefxQcaFblQ5Sk+CTrsvEOCgNe0o4u/L7ia1n8PzwRLOWCVzDzyhffc4xQZwuSzkdmQPEScfPVhvqNlf+iSvrdr6bc+OPPWxjSJ+/Tdih+vV4xrNGjuwy6pvAfOSXqVJLb0lSPNcAa27Muh2TB/rfo3jeDxR/6UjxMvU9IRIJqyZ8HhyRgDDfGTkBNZuOUEY7Ta2OOmWEIV51XKUDNjRGbILfR6nO7HXsEUH8smpAhkVJ7HmfUK2uJDKuYfen6LEpvnnMUSaEtwKQlrjAGChdniZcXn196ptxmZydfLcEA8l71Hb/TakE0l/UEzCprvIhEcl6HGrTedzWUhSzzMbsFGVpQjGfbcQ+jLnchlp6BuC/dA2cSOJYlDhAOfeP7MqYgloETK0ZKE0xCI2MYvL/k6XihcmcOhGDGv+/5XXpU4VSa4JmNA7mlQxNgs0W6KyR2i53u85yFjCEM5rQIe7VlaH7GzkrSEm1tAndNpTDH4iduCJQNj4lLSOZ5kl95i6mmBsrefhYKpUZzGluGrzncycobBN+1WMVp7auPq8Xvbv37hLafB3JD3SofCCvf/bCpyH3HJK1QKgBpO/vx7sXrDT+tSF38l627CSguZbCPr+d+ybK/QHTl60KlVCSeKQlOqUZ+epAuBnNwBB7GC1bBHywsp2raPTmVPdxNAI6yhmhlcSVEWDdK3xjqDY5udrA7cZI6c6kBpjE9XXWC7VMo2Ld3GwwYStqBHPeQA4JfPtelIFz1Ww/xQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1358.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(110136005)(2906002)(86362001)(31696002)(316002)(6486002)(966005)(38350700002)(38100700002)(508600001)(83380400001)(26005)(186003)(2616005)(66574015)(6506007)(6666004)(53546011)(52116002)(6512007)(8936002)(30864003)(66556008)(66946007)(66476007)(31686004)(8676002)(5660300002)(36756003)(43740500002)(45980500001)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SU05VGFObHNCUURBWHhxVkxpT1E0VkJBZnFkZDFXNk5IMldOSmYydFlzY2kz?= =?utf-8?B?VzhKM3JKNGpmbmVYdFN5MEUvdWZzOUJxa2xMNTZwYjVHTFJobDF5enA3VUlt?= =?utf-8?B?azl4OVJQQ1hpd00xVzg1Q3NFenhmRUVJR0c3UHNqTlJOaThIZDllb0dvdlMz?= =?utf-8?B?RHpvOVB2WVFhcUhRSy9aSE5nSkJic3dtUXNZRmx1L1ovaXJuSGdrWHppSjAw?= =?utf-8?B?T25wdm1ROGNXenNwdFNnRUZWWGdDMGV6bVVaTG1wRStHUGszUWJ4TzM1Zitl?= =?utf-8?B?Y0tPOC9wVFc2RUQ2R2MvMFVubFhzSHdvRTIzVVIrcmFHVzdzVXpvQy9BbHdT?= =?utf-8?B?dGVRTXJuWkJEeUpJcHNJUUd5ZTRwM2NCMFhQY016V2E2cm9EMTBTOXdvM2FJ?= =?utf-8?B?Yk9lNW5qRGkvWjJnNGpZK0FOQk40UVRUc0VMR1VibGcreW53MWZtNCtjZzht?= =?utf-8?B?TW5pVDRtREREeU9xZ0xscjByZlZVWGNaZ3VUOVlWdlhXSWtyQkVDUkk4RWIy?= =?utf-8?B?U0JpRjdYenA1YlJyQWFBRmNZTUZRZWt0cldRa09OaWhSZzJPM1Z0eW15Z1lz?= =?utf-8?B?N3hUOExzOWQ3TWs2OW5STzFvZU11MUlzSlJ3dVBoeHRoK3RIRkxDYXM3LzY5?= =?utf-8?B?VDhWTXJxSkFPcmtscW1haTd0UWo2dzEwck01UTZ5a0xTMzlka01qTVBlY25k?= =?utf-8?B?R2tIM0U2cWJkbzVDcEFWZHRJZ0JRWHhaQ2RDR0tpQ0RkZUpyMXlkdUwwTGhM?= =?utf-8?B?ODAvVFk1SWt6MGhQOVJUK25EK0NvQm1sRkFhNWFKTi9LY0VoZFVEUDFSVVdH?= =?utf-8?B?NUE3Q0thUUJQaDRrZU43WnlpR3M1c2dnNXFiTHA4WnVzN3dVTDhFZVBvNGI4?= =?utf-8?B?Q3BCR3ZnejJlQXdIQUkrMFk4OTk1bVE1UlprNmRuTEgzdzJvSWZ2SzZNZDJp?= =?utf-8?B?NW9xdEY1Z0E4L2hPbGZ4NUtSY0FNMXFSeEZWWTNTdG1xc0FpMHdISjQvQzlE?= =?utf-8?B?eDZuZjJlNjVMUzJUTWF1VU1PaWJ2QU1yNTY4VFMxR0k4L0NmV2JhdDU0YU53?= =?utf-8?B?RXNSK3IwUlhGU0laTm1JV05oVFpyZ0R1Vm14ckJlYXo1Y2liaTJaQmkrN3JO?= =?utf-8?B?K1JIaUlING9zVTRuSFBMRUgzV1VpcHpTZW9lays2eUU5RVZGOEdOSGpzVW9U?= =?utf-8?B?dE1sTW1EUDBSTkRSR0o0anVLNjBRUXd6dEhkeUJQRlJ3NzlaZlBaM3llb290?= =?utf-8?B?emQ3b2RHYW1IV3hUNDZvd0MrNFUrSnBPdE0wMXI0OUgwbEhhdDNjQTZzTm4v?= =?utf-8?B?b0RLYkVUMGEvdUdub1hsMnNBM0YzTG82c0o4ZE9BaFBzNHRrNUZyemZNSmFY?= =?utf-8?B?eGlUUlVyWHZvOS9OaGZZYlJCajFkMXNrbjMwTWNheXdqeWFDZGtJdkZHcXpF?= =?utf-8?B?TWxHazFnVkRtODFJMFYxWTZEa1I1QllZcDdzbWpaenFoVlJWWGR4OGJGY1hh?= =?utf-8?B?MUtvdnQrUkEySHJCZU1YNkRQa1J2TjBQVkJNaVJleGROb2xGa3YzQWQwNVJK?= =?utf-8?B?dERKSzRCYUE4RmJsSmxCZ2NyTVg4V1lRdGhZV01KV0hGL3dkdk1KUnVFT3pN?= =?utf-8?B?MElzRy93RmtpS2pkQVd1NVlESWpzbDBDMytwMFRoR2xrcS93R0laM251eUo2?= =?utf-8?B?VlIzRVByWWszbE01YTFJa2RMY2xFenZGaWhURVU5UzNDcE5MVVFQa0VOVFJj?= =?utf-8?B?MVFzaktFWVcxbTVjc0NTaVFRU3lyZHJUbjNHMEgrN3p4VUFjYUhuNnRCK0pm?= =?utf-8?B?c0s1RmRra1VidTJQeWhqeWttN1JQcnQ4VThUaEt0Z3BLS0grN3ZIY3BUNU16?= =?utf-8?B?cUlWOTZnT2l3YjBLYzhuSFB4OGs5RUh2S2dIZ2h5VVQ5NUp1YW84LzNGZTVU?= =?utf-8?Q?dCI36uw+pi3pQNCviwPEDa3zCkuStbQg?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2890918a-2cf7-4042-7eeb-08da065bb119 X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1358.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2022 08:13:31.1875 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: C/jMBf8Sfa33fjxTJzk+7QbZ37bI5+OZb8r9/szKjP/b12Suzvqlfkn+w5IuFUrU4lm5b+VPF7zXc37WEpdfxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4117 X-Proofpoint-GUID: VwSmN9x6c5bMSCeoBS2m7RxE_eFOB8s1 X-Proofpoint-ORIG-GUID: N3zAHotdCxD6k5QIz9JkQqz37KC14poG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.850,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-14_14,2022-03-14_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 impostorscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203150054 Content-Transfer-Encoding: base64 X-MIME-Autoconverted: from 8bit to base64 by mx0a-0064b401.pphosted.com id 22F7wpg1024432 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 15 Mar 2022 08:13:37 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/163227 DQoNCk9uIDMvMTQvMjIgMTU6MDgsIE1pdHRhbCwgQW51aiB3cm90ZToNCj4gT24gV2VkLCAy MDIyLTAzLTA5IGF0IDE2OjI2ICswODAwLCBIZSBaaGUgd3JvdGU6DQo+PiBCYWNrcG9ydCBh IHBhdGNoIGZyb20gdXBzdHJlYW0gdG8gaGFuZGxlIG5lZ2F0aXZlIHRpbWUgYW5kIG9mZnNl dA0KPj4gZnJvbSBFcG9jaA0KPiBUaGlzIGlzIGNhdXNpbmcgcHRlc3QgZmFpbHVyZXMgZm9y IGJvdGggcWVtdXg4Ni02NCBhbmQgcWVtdWFybTY0Og0KPg0KPiBodHRwczovL2F1dG9idWls ZGVyLnlvY3RvcHJvamVjdC5vcmcvdHlwaG9vbi8jL2J1aWxkZXJzLzgyL2J1aWxkcy8yOTcw DQo+DQo+IGh0dHBzOi8vYXV0b2J1aWxkZXIueW9jdG9wcm9qZWN0Lm9yZy90eXBob29uLyMv YnVpbGRlcnMvODEvYnVpbGRzLzMyMzENCj4NCj4gJ2JhYmVsdHJhY2UnOiBbJ2Jpbi9pbnRl cnNlY3Rpb24vdGVzdF9pbnRlcnNlY3Rpb25fMl8tDQo+IF8zX2V2ZW50c19pbl9wYWNrZXRz X2ludGVyc2VjdGluZycsDQo+ICAgICAgICAgICAgICAgICAnYmluL2ludGVyc2VjdGlvbi90 ZXN0X2ludGVyc2VjdGlvbl80Xy0NCj4gXzNfZXZlbnRzX2luX3BhY2tldHNfaW50ZXJzZWN0 aW5nJywNCj4gICAgICAgICAgICAgICAgICdiaW4vaW50ZXJzZWN0aW9uL3Rlc3RfaW50ZXJz ZWN0aW9uXzZfLQ0KPiBfMF9ldmVudHNfaW5fcGFja2V0c19pbnRlcnNlY3RpbmcnXSwNCj4g IA0KPiBUaGFua3MsDQoNCk9LLiBXZSB3aWxsIHRha2UgYSBsb29rIGF0IHRoaXMuIFRoYW5r cy4NCg0KWmhlDQoNCj4NCj4gQW51ag0KPg0KPg0KPj4gU2lnbmVkLW9mZi1ieTogSGUgWmhl IDx6aGUuaGVAd2luZHJpdmVyLmNvbT4NCj4+IC0tLQ0KPj4gwqAuLi4tbmVnYXRpdmUtdGlt ZS1hbmQtb2Zmc2V0LWZyb20tRXBvY2gucGF0Y2ggfCA4NTMNCj4+ICsrKysrKysrKysrKysr KysrKw0KPj4gwqBtZXRhL3JlY2lwZXMta2VybmVsL2x0dG5nL2JhYmVsdHJhY2VfMS41Ljgu YmIgfMKgwqAgMSArDQo+PiDCoDIgZmlsZXMgY2hhbmdlZCwgODU0IGluc2VydGlvbnMoKykN Cj4+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IG1ldGEvcmVjaXBlcy1rZXJuZWwvbHR0bmcvYmFi ZWx0cmFjZS8wMDAxLUhhbmRsZS0NCj4+IG5lZ2F0aXZlLXRpbWUtYW5kLW9mZnNldC1mcm9t LUVwb2NoLnBhdGNoDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1rZXJuZWwv bHR0bmcvYmFiZWx0cmFjZS8wMDAxLUhhbmRsZS0NCj4+IG5lZ2F0aXZlLXRpbWUtYW5kLW9m ZnNldC1mcm9tLUVwb2NoLnBhdGNoIGIvbWV0YS9yZWNpcGVzLQ0KPj4ga2VybmVsL2x0dG5n L2JhYmVsdHJhY2UvMDAwMS1IYW5kbGUtbmVnYXRpdmUtdGltZS1hbmQtb2Zmc2V0LWZyb20t DQo+PiBFcG9jaC5wYXRjaA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAw MDAwMDAwMDAuLjM3Y2E2OThiZDgNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL21ldGEv cmVjaXBlcy1rZXJuZWwvbHR0bmcvYmFiZWx0cmFjZS8wMDAxLUhhbmRsZS1uZWdhdGl2ZS10 aW1lLQ0KPj4gYW5kLW9mZnNldC1mcm9tLUVwb2NoLnBhdGNoDQo+PiBAQCAtMCwwICsxLDg1 MyBAQA0KPj4gK0Zyb20gNzhmNjI3NDUzMTNhNTFlYmRhYTY0ZDRjNTkxMzFlZjg3ZWYwMDkx NyBNb24gU2VwIDE3IDAwOjAwOjAwDQo+PiAyMDAxDQo+PiArRnJvbTogTWF0aGlldSBEZXNu b3llcnMgPG1hdGhpZXUuZGVzbm95ZXJzQGVmZmljaW9zLmNvbT4NCj4+ICtEYXRlOiBXZWQs IDIyIEFwciAyMDIwIDAzOjAwOjAyICswMDAwDQo+PiArU3ViamVjdDogW1BBVENIXSBIYW5k bGUgbmVnYXRpdmUgdGltZSBhbmQgb2Zmc2V0IGZyb20gRXBvY2gNCj4+ICsNCj4+ICtIYW5k bGUgY2FzZXMgd2hlcmUgYSB0cmFjZSBoYXZlIGEgbmVnYXRpdmUgb2Zmc2V0IGZyb20gRXBv Y2guDQo+PiArSWYgRXBvY2ggaXMgYXJiaXRyYXJ5IChlLmcuIGVtYmVkZGVkIHN5c3RlbSBz dGFydGluZyBhdCAwLCB3aXRob3V0DQo+PiBhbnkNCj4+ICtuZXR3b3JrIGFjY2VzcyksIHRo ZSAiMCIgY2FuIGJlIHVzZWQgYXMgY29ycmVsYXRpb24gcG9pbnQgYmV0d2Vlbg0KPj4gK3Zh cmlvdXMgY29tcG9uZW50cywgYW5kIHNvbWUgY29tcG9uZW50cyBjb3VsZCBzdGFydCBiZWZv cmUgdGhlDQo+PiArY29ycmVsYXRpb24gcG9pbnQuIFRoZXJlZm9yZSwgZXNwZWNpYWxseSBp biB0cmFjZXMgd2hlcmUgdGhlIHRpbWUgaXMNCj4+ICttZWFudCB0byBiZSBzaG93biBpbiBu YW5vc2Vjb25kcyBvciBjeWNsZXMgZnJvbSB0aGUgY29ycmVsYXRpb24NCj4+IHBvaW50LA0K Pj4gK2l0IGFsc28gbWFrZXMgc2Vuc2UgdG8gaGF2ZSBhIG5lZ2F0aXZlIHRpbWUgdmFsdWUu DQo+PiArDQo+PiArSXQgaW50cm9kdWNlcyBBUEktYnJlYWtpbmcgY2hhbmdlcyBpbiB0aGUg QyBhbmQgUHl0aG9uIEFQSXMsIHNpbmNlDQo+PiB3ZQ0KPj4gK25lZWQgdG8gYmUgYWJsZSB0 byByZXR1cm4gbmVnYXRpdmUgdGltZSB2YWx1ZXMsIHdoaWNoIHdlcmUNCj4+IHByZXZpb3Vz bHkNCj4+ICt1c2VkIGFzIGVycm9ycyAoLTFVTEwpLg0KPj4gKw0KPj4gK1RoZSAtLW9mZnNl dCBhbmQgLS1vZmZzZXQtbnMgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgY2FuIG5vdyB0YWtl DQo+PiArbmVnYXRpdmUgb2Zmc2V0IChzZWNvbmRzIGFuZCBuYW5vc2Vjb25kcykgdmFsdWVz IHRvby4NCj4+ICsNCj4+ICtUaGUgW3NlYy5uc10gZm9ybWF0IGlzIHVzZWQgYXMgZmFsbGJh Y2sgc28gd2UgZG9uJ3QgYXR0ZW1wdCB0byBwYXNzDQo+PiArYSBuZWdhdGl2ZSB0aW1lIHZh bHVlIHRvIFBPU0lYIHRpbWUtZm9ybWF0dGluZyBBUElzLg0KPj4gKw0KPj4gK1RoaXMgYWxz byBmaXhlcyBhbiBpbmFjY3VyYXRlIHJldHVybiB2YWx1ZSBpbiBhbiBlcnJvciBwYXRoIG9m DQo+PiArYnRfY3RmX2V2ZW50X3BvcHVsYXRlX2V2ZW50X2hlYWRlcigpLg0KPj4gKw0KPj4g K1NpZ25lZC1vZmYtYnk6IE1hdGhpZXUgRGVzbm95ZXJzIDxtYXRoaWV1LmRlc25veWVyc0Bl ZmZpY2lvcy5jb20+DQo+PiArU2lnbmVkLW9mZi1ieTogSsOpcsOpbWllIEdhbGFybmVhdSA8 amVyZW1pZS5nYWxhcm5lYXVAZWZmaWNpb3MuY29tPg0KPj4gKw0KPj4gK1Vwc3RyZWFtLVN0 YXR1czogQmFja3BvcnQNCj4+IFtodHRwczovL2dpdC5lZmZpY2lvcy5jb20vP3A9YmFiZWx0 cmFjZS5naXQ7YT1jb21taXQ7aD02MWNmNTg4YmVhZTc1Mg0KPj4gZTVkZGZjNjBiNmI1MzEw Zjc2OWFjOWU4NTJdDQo+PiArDQo+PiArU2lnbmVkLW9mZi1ieTogSGUgWmhlIDx6aGUuaGVA d2luZHJpdmVyLmNvbT4NCj4+ICstLS0NCj4+ICsgY29udmVydGVyL2JhYmVsdHJhY2UuY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgNCAr LQ0KPj4gKyBmb3JtYXRzL2N0Zi10ZXh0L2N0Zi10ZXh0LmPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArLQ0KPj4gKyBmb3JtYXRzL2N0Zi9jdGYuY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHwgMTE1ICsrKysrKysrKysrKystLQ0KPj4gLS0tDQo+PiArIGZvcm1hdHMvY3RmL2V2ZW50 cy1wcml2YXRlLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxMCAr LQ0KPj4gKyBmb3JtYXRzL2N0Zi9ldmVudHMuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxMSArLQ0KPj4gKyAuLi4vbWV0YWRhdGEv Y3RmLXZpc2l0b3ItZ2VuZXJhdGUtaW8tc3RydWN0LmMgfMKgwqAgMSAtDQo+PiArIGluY2x1 ZGUvYmFiZWx0cmFjZS9iYWJlbHRyYWNlLWludGVybmFsLmjCoMKgwqDCoMKgIHzCoMKgIDgg Ky0NCj4+ICsgaW5jbHVkZS9iYWJlbHRyYWNlL2Nsb2NrLWludGVybmFsLmjCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqDCoCAyICstDQo+PiArIGluY2x1ZGUvYmFiZWx0cmFjZS9jdGYtaXIv Y2xvY2staW50ZXJuYWwuaMKgwqDCoCB8wqDCoCAyICstDQo+PiArIGluY2x1ZGUvYmFiZWx0 cmFjZS9jdGYvZXZlbnRzLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDgg Ky0NCj4+ICsgaW5jbHVkZS9iYWJlbHRyYWNlL2N0Zi90eXBlcy5owqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoMKgIDYgKy0NCj4+ICsgaW5jbHVkZS9iYWJlbHRyYWNlL2Zv cm1hdC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxMCArLQ0K Pj4gKyBpbmNsdWRlL2JhYmVsdHJhY2UvdHJhY2UtaGFuZGxlLWludGVybmFsLmjCoMKgwqAg fMKgwqAgOCArLQ0KPj4gKyBpbmNsdWRlL2JhYmVsdHJhY2UvdHJhY2UtaGFuZGxlLmjCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDI1ICsrLS0NCj4+ICsgbGliL2NvbnRleHQuY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfMKgIDQ0ICsrKysrLS0NCj4+ICsgbGliL3RyYWNlLWhhbmRsZS5jwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAz OSArKystLS0NCj4+ICsgdGVzdHMvbGliL3Rlc3RfY3RmX3dyaXRlci5jwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDYgKy0NCj4+ICsgdGVzdHMvbGliL3Rl c3Rfc2Vlay5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoCAyOCArKy0tLQ0KPj4gKyAxOCBmaWxlcyBjaGFuZ2VkLCAyMDkgaW5zZXJ0aW9u cygrKSwgMTIwIGRlbGV0aW9ucygtKQ0KPj4gKw0KPj4gK2RpZmYgLS1naXQgYS9jb252ZXJ0 ZXIvYmFiZWx0cmFjZS5jIGIvY29udmVydGVyL2JhYmVsdHJhY2UuYw0KPj4gK2luZGV4IGVm NzgzZWQ0Li4yYWMxNjE3OSAxMDA2NDQNCj4+ICstLS0gYS9jb252ZXJ0ZXIvYmFiZWx0cmFj ZS5jDQo+PiArKysrIGIvY29udmVydGVyL2JhYmVsdHJhY2UuYw0KPj4gK0BAIC0zNzUsNyAr Mzc1LDcgQEAgc3RhdGljIGludCBwYXJzZV9vcHRpb25zKGludCBhcmdjLCBjaGFyICoqYXJn dikNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGdvdG8gZW5kOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVycm5vID0gMDsNCj4+ICstwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBvcHRfY2xvY2tfb2Zmc2V0ID0gc3RydG91 bGwoc3RyLCAmZW5kcHRyLCAwKTsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBvcHRfY2xvY2tfb2Zmc2V0ID0gc3RydG9sbChzdHIsICZlbmRw dHIsIDApOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZiAoKmVuZHB0ciAhPSAnXDAnIHx8IHN0ciA9PSBlbmRwdHIgfHwgZXJybm8NCj4+ ICE9IDApIHsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZwcmludGYoc3RkZXJyLCAiW2Vycm9yXSBJbmNvcnJl Y3QgLS0NCj4+IGNsb2NrLW9mZnNldCBhcmd1bWVudDogJXNcbiIsIHN0cik7DQo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXQgPSAtRUlOVkFMOw0KPj4gK0BAIC00MDAsNyArNDAwLDcgQEAgc3RhdGljIGlu dCBwYXJzZV9vcHRpb25zKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdv dG8gZW5kOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB9DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGVycm5vID0gMDsNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBvcHRfY2xvY2tfb2Zmc2V0X25zID0gc3RydG91bGwoc3RyLCAmZW5kcHRy LA0KPj4gMCk7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgb3B0X2Nsb2NrX29mZnNldF9ucyA9IHN0cnRvbGwoc3RyLCAmZW5kcHRyLA0KPj4g MCk7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlmICgqZW5kcHRyICE9ICdcMCcgfHwgc3RyID09IGVuZHB0ciB8fCBlcnJubw0KPj4gIT0g MCkgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZnByaW50ZihzdGRlcnIsICJbZXJyb3JdIEluY29ycmVjdCAt LQ0KPj4gY2xvY2stb2Zmc2V0LW5zIGFyZ3VtZW50OiAlc1xuIiwgc3RyKTsNCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHJldCA9IC1FSU5WQUw7DQo+PiArZGlmZiAtLWdpdCBhL2Zvcm1hdHMvY3RmLXRleHQv Y3RmLXRleHQuYyBiL2Zvcm1hdHMvY3RmLXRleHQvY3RmLQ0KPj4gdGV4dC5jDQo+PiAraW5k ZXggMTZmMTU2ZGUuLmUwMDFhNTQ4IDEwMDY0NA0KPj4gKy0tLSBhL2Zvcm1hdHMvY3RmLXRl eHQvY3RmLXRleHQuYw0KPj4gKysrKyBiL2Zvcm1hdHMvY3RmLXRleHQvY3RmLXRleHQuYw0K Pj4gK0BAIC00Myw3ICs0Myw3IEBADQo+PiArICNpbmNsdWRlIDx1bmlzdGQuaD4NCj4+ICsg I2luY2x1ZGUgPHN0ZGxpYi5oPg0KPj4gKyANCj4+ICstI2RlZmluZSBOU0VDX1BFUl9TRUMg MTAwMDAwMDAwMFVMTA0KPj4gKysjZGVmaW5lIE5TRUNfUEVSX1NFQyAxMDAwMDAwMDAwTEwN Cj4+ICsgDQo+PiArIGludCBvcHRfYWxsX2ZpZWxkX25hbWVzLA0KPj4gK8KgwqDCoMKgwqDC oMKgb3B0X3Njb3BlX2ZpZWxkX25hbWVzLA0KPj4gK2RpZmYgLS1naXQgYS9mb3JtYXRzL2N0 Zi9jdGYuYyBiL2Zvcm1hdHMvY3RmL2N0Zi5jDQo+PiAraW5kZXggMWJhOTAxN2YuLjNjNzc0 MTg4IDEwMDY0NA0KPj4gKy0tLSBhL2Zvcm1hdHMvY3RmL2N0Zi5jDQo+PiArKysrIGIvZm9y bWF0cy9jdGYvY3RmLmMNCj4+ICtAQCAtNzAsNyArNzAsNyBAQA0KPj4gK8KgICovDQo+PiAr ICNkZWZpbmUgV1JJVEVfUEFDS0VUX0xFTsKgwqDCoMKgwqDCoChnZXRwYWdlc2l6ZSgpICog OCAqIENIQVJfQklUKQ0KPj4gKyANCj4+ICstI2RlZmluZSBOU0VDX1BFUl9TRUMgMTAwMDAw MDAwMFVMTA0KPj4gKysjZGVmaW5lIE5TRUNfUEVSX1NFQyAxMDAwMDAwMDAwTEwNCj4+ICsg DQo+PiArICNkZWZpbmUgSU5ERVhfUEFUSCAiLi9pbmRleC8lcy5pZHgiDQo+PiArIA0KPj4g K0BAIC03OSw4ICs3OSw4IEBAIGludCBvcHRfY2xvY2tfY3ljbGVzLA0KPj4gK8KgwqDCoMKg wqDCoMKgb3B0X2Nsb2NrX2RhdGUsDQo+PiArwqDCoMKgwqDCoMKgwqBvcHRfY2xvY2tfZ210 Ow0KPj4gKyANCj4+ICstdWludDY0X3Qgb3B0X2Nsb2NrX29mZnNldDsNCj4+ICstdWludDY0 X3Qgb3B0X2Nsb2NrX29mZnNldF9uczsNCj4+ICsraW50NjRfdCBvcHRfY2xvY2tfb2Zmc2V0 Ow0KPj4gKytpbnQ2NF90IG9wdF9jbG9ja19vZmZzZXRfbnM7DQo+PiArIA0KPj4gKyBleHRl cm4gaW50IHl5ZGVidWc7DQo+PiArIGNoYXIgKm9wdF9kZWJ1Z19pbmZvX2RpcjsNCj4+ICtA QCAtMTE0LDExICsxMTQsMTMgQEAgdm9pZCBjdGZfc2V0X2hhbmRsZShzdHJ1Y3QgYnRfdHJh Y2VfZGVzY3JpcHRvcg0KPj4gKmRlc2NyaXB0b3IsDQo+PiArIHN0YXRpYw0KPj4gKyBpbnQg Y3RmX2Nsb3NlX3RyYWNlKHN0cnVjdCBidF90cmFjZV9kZXNjcmlwdG9yICpkZXNjcmlwdG9y KTsNCj4+ICsgc3RhdGljDQo+PiArLXVpbnQ2NF90IGN0Zl90aW1lc3RhbXBfYmVnaW4oc3Ry dWN0IGJ0X3RyYWNlX2Rlc2NyaXB0b3INCj4+ICpkZXNjcmlwdG9yLA0KPj4gKy3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGJ0X3RyYWNlX2hhbmRsZSAqaGFuZGxlLCBl bnVtIGJ0X2Nsb2NrX3R5cGUNCj4+IHR5cGUpOw0KPj4gKytpbnQgY3RmX3RpbWVzdGFtcF9i ZWdpbihzdHJ1Y3QgYnRfdHJhY2VfZGVzY3JpcHRvciAqZGVzY3JpcHRvciwNCj4+ICsrwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBidF90cmFjZV9oYW5kbGUgKmhhbmRs ZSwgZW51bSBidF9jbG9ja190eXBlDQo+PiB0eXBlLCANCj4+ICsrwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGludDY0X3QgKnRpbWVzdGFtcCk7DQo+PiArIHN0YXRpYw0KPj4gKy11 aW50NjRfdCBjdGZfdGltZXN0YW1wX2VuZChzdHJ1Y3QgYnRfdHJhY2VfZGVzY3JpcHRvciAq ZGVzY3JpcHRvciwNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBi dF90cmFjZV9oYW5kbGUgKmhhbmRsZSwgZW51bSBidF9jbG9ja190eXBlDQo+PiB0eXBlKTsN Cj4+ICsraW50IGN0Zl90aW1lc3RhbXBfZW5kKHN0cnVjdCBidF90cmFjZV9kZXNjcmlwdG9y ICpkZXNjcmlwdG9yLA0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0 IGJ0X3RyYWNlX2hhbmRsZSAqaGFuZGxlLCBlbnVtIGJ0X2Nsb2NrX3R5cGUNCj4+IHR5cGUs DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQ2NF90ICp0aW1lc3RhbXAp Ow0KPj4gKyBzdGF0aWMNCj4+ICsgaW50IGN0Zl9jb252ZXJ0X2luZGV4X3RpbWVzdGFtcChz dHJ1Y3QgYnRfdHJhY2VfZGVzY3JpcHRvciAqdGRwKTsNCj4+ICsgDQo+PiArQEAgLTE2Nywx NyArMTY5LDIwIEBAIHZvaWQgYnRfY3RmX2hvb2sodm9pZCkNCj4+ICsgfQ0KPj4gKyANCj4+ ICsgc3RhdGljDQo+PiArLXVpbnQ2NF90IGN0Zl90aW1lc3RhbXBfYmVnaW4oc3RydWN0IGJ0 X3RyYWNlX2Rlc2NyaXB0b3INCj4+ICpkZXNjcmlwdG9yLA0KPj4gKy3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgc3RydWN0IGJ0X3RyYWNlX2hhbmRsZSAqaGFuZGxlLCBlbnVtIGJ0 X2Nsb2NrX3R5cGUNCj4+IHR5cGUpDQo+PiArK2ludCBjdGZfdGltZXN0YW1wX2JlZ2luKHN0 cnVjdCBidF90cmFjZV9kZXNjcmlwdG9yICpkZXNjcmlwdG9yLA0KPj4gKyvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGJ0X3RyYWNlX2hhbmRsZSAqaGFuZGxlLCBlbnVt IGJ0X2Nsb2NrX3R5cGUNCj4+IHR5cGUsDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpbnQ2NF90ICp0aW1lc3RhbXApDQo+PiArIHsNCj4+ICvCoMKgwqDCoMKgwqDCoHN0 cnVjdCBjdGZfdHJhY2UgKnRpbjsNCj4+ICstwqDCoMKgwqDCoMKgdWludDY0X3QgYmVnaW4g PSBVTExPTkdfTUFYOw0KPj4gKy3CoMKgwqDCoMKgwqBpbnQgaSwgajsNCj4+ICsrwqDCoMKg wqDCoMKgaW50NjRfdCBiZWdpbiA9IExMT05HX01BWDsNCj4+ICsrwqDCoMKgwqDCoMKgaW50 IGksIGosIHJldDsNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqB0aW4gPSBjb250YWluZXJf b2YoZGVzY3JpcHRvciwgc3RydWN0IGN0Zl90cmFjZSwgcGFyZW50KTsNCj4+ICsgDQo+PiAr LcKgwqDCoMKgwqDCoGlmICghdGluKQ0KPj4gKyvCoMKgwqDCoMKgwqBpZiAoIXRpbiB8fCAh dGltZXN0YW1wKSB7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSAt RUlOVkFMOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZXJyb3I7 DQo+PiArK8KgwqDCoMKgwqDCoMKgIH0NCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqAvKiBm b3IgZWFjaCBzdHJlYW1fY2xhc3MgKi8NCj4+ICvCoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7 IGkgPCB0aW4tPnN0cmVhbXMtPmxlbjsgaSsrKSB7DQo+PiArQEAgLTE5OCw4ICsyMDMsMTAg QEAgdWludDY0X3QgY3RmX3RpbWVzdGFtcF9iZWdpbihzdHJ1Y3QNCj4+IGJ0X3RyYWNlX2Rl c2NyaXB0b3IgKmRlc2NyaXB0b3IsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFy ZW50KTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgc3RyZWFtX3BvcyA9ICZjZnMtPnBvczsNCj4+ICsgDQo+PiArLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCFzdHJlYW1fcG9zLT5wYWNrZXRf aW5kZXgpDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgaWYgKCFzdHJlYW1fcG9zLT5wYWNrZXRfaW5kZXgpIHsNCj4+ICsrwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0g LUVJTlZBTDsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZXJyb3I7DQo+PiArK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPj4gKyANCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHN0cmVhbV9wb3MtPnBh Y2tldF9pbmRleC0+bGVuIDw9IDApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250aW51ZTsNCj4+ICtAQCAt MjE0LDI5ICsyMjEsMzggQEAgdWludDY0X3QgY3RmX3RpbWVzdGFtcF9iZWdpbihzdHJ1Y3QN Cj4+IGJ0X3RyYWNlX2Rlc2NyaXB0b3IgKmRlc2NyaXB0b3IsDQo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAo aW5kZXgtPnRzX2N5Y2xlcy50aW1lc3RhbXBfYmVnaW4NCj4+IDwgYmVnaW4pDQo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgYmVnaW4gPSBpbmRleC0NCj4+PiB0c19jeWNsZXMudGlt ZXN0YW1wX2JlZ2luOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqB9IGVsc2Ugew0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSAtRUlOVkFMOw0KPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgZ290byBlcnJvcjsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0N Cj4+ICvCoMKgwqDCoMKgwqDCoH0NCj4+ICsgDQo+PiArLcKgwqDCoMKgwqDCoHJldHVybiBi ZWdpbjsNCj4+ICsrwqDCoMKgwqDCoMKgwqAgaWYgKGJlZ2luID09IExMT05HX01BWCkgew0K Pj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gLUVOT0VOVDsNCj4+ ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZXJyb3I7DQo+PiArK8Kg wqDCoMKgwqDCoMKgIH0NCj4+ICsrwqDCoMKgwqDCoMKgwqAgKnRpbWVzdGFtcCA9IGJlZ2lu Ow0KPj4gKyvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+ICsgDQo+PiArIGVycm9yOg0K Pj4gKy3CoMKgwqDCoMKgwqByZXR1cm4gLTFVTEw7DQo+PiArK8KgwqDCoMKgwqDCoHJldHVy biByZXQ7DQo+PiArIH0NCj4+ICsgDQo+PiArIHN0YXRpYw0KPj4gKy11aW50NjRfdCBjdGZf dGltZXN0YW1wX2VuZChzdHJ1Y3QgYnRfdHJhY2VfZGVzY3JpcHRvciAqZGVzY3JpcHRvciwN Cj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBidF90cmFjZV9oYW5k bGUgKmhhbmRsZSwgZW51bSBidF9jbG9ja190eXBlDQo+PiB0eXBlKQ0KPj4gKytpbnQgY3Rm X3RpbWVzdGFtcF9lbmQoc3RydWN0IGJ0X3RyYWNlX2Rlc2NyaXB0b3IgKmRlc2NyaXB0b3Is DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYnRfdHJhY2VfaGFu ZGxlICpoYW5kbGUsIGVudW0gYnRfY2xvY2tfdHlwZQ0KPj4gdHlwZSwNCj4+ICsrwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludDY0X3QgKnRpbWVzdGFtcCkNCj4+ICsgew0KPj4g K8KgwqDCoMKgwqDCoMKgc3RydWN0IGN0Zl90cmFjZSAqdGluOw0KPj4gKy3CoMKgwqDCoMKg wqB1aW50NjRfdCBlbmQgPSAwOw0KPj4gKy3CoMKgwqDCoMKgwqBpbnQgaSwgajsNCj4+ICsr wqDCoMKgwqDCoMKgaW50NjRfdCBlbmQgPSBMTE9OR19NSU47DQo+PiArK8KgwqDCoMKgwqDC oGludCBpLCBqLCByZXQ7DQo+PiArIA0KPj4gK8KgwqDCoMKgwqDCoMKgdGluID0gY29udGFp bmVyX29mKGRlc2NyaXB0b3IsIHN0cnVjdCBjdGZfdHJhY2UsIHBhcmVudCk7DQo+PiArIA0K Pj4gKy3CoMKgwqDCoMKgwqBpZiAoIXRpbikNCj4+ICsrwqDCoMKgwqDCoMKgwqAgaWYgKCF0 aW4gfHwgIXRpbWVzdGFtcCkgew0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0ID0gLUVJTlZBTDsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBn b3RvIGVycm9yOw0KPj4gKyvCoMKgwqDCoMKgwqB9DQo+PiArIA0KPj4gK8KgwqDCoMKgwqDC oMKgLyogZm9yIGVhY2ggc3RyZWFtX2NsYXNzICovDQo+PiArwqDCoMKgwqDCoMKgwqBmb3Ig KGkgPSAwOyBpIDwgdGluLT5zdHJlYW1zLT5sZW47IGkrKykgew0KPj4gK0BAIC0yNTcsOCAr MjczLDEwIEBAIHVpbnQ2NF90IGN0Zl90aW1lc3RhbXBfZW5kKHN0cnVjdA0KPj4gYnRfdHJh Y2VfZGVzY3JpcHRvciAqZGVzY3JpcHRvciwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBwYXJlbnQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBzdHJlYW1fcG9zID0gJmNmcy0+cG9zOw0KPj4gKyANCj4+ICstwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIXN0cmVhbV9wb3MtPnBh Y2tldF9pbmRleCkNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoIXN0cmVhbV9wb3MtPnBhY2tldF9pbmRleCkgew0KPj4gKyvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBy ZXQgPSAtRUlOVkFMOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byBlcnJvcjsNCj4+ICsrwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+PiArIA0KPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoc3RyZWFtX3Bv cy0+cGFja2V0X2luZGV4LT5sZW4gPD0gMCkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlOw0KPj4g K0BAIC0yNzMsMTUgKzI5MSwyMSBAQCB1aW50NjRfdCBjdGZfdGltZXN0YW1wX2VuZChzdHJ1 Y3QNCj4+IGJ0X3RyYWNlX2Rlc2NyaXB0b3IgKmRlc2NyaXB0b3IsDQo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBp ZiAoaW5kZXgtPnRzX2N5Y2xlcy50aW1lc3RhbXBfZW5kID4NCj4+IGVuZCkNCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBlbmQgPSBpbmRleC0NCj4+PiB0c19jeWNsZXMudGltZXN0 YW1wX2VuZDsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfSBlbHNlIHsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gLUVJTlZBTDsNCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGdvdG8gZXJyb3I7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoH0NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+PiAr wqDCoMKgwqDCoMKgwqB9DQo+PiArIA0KPj4gKy3CoMKgwqDCoMKgwqByZXR1cm4gZW5kOw0K Pj4gKyvCoMKgwqDCoMKgwqDCoCBpZiAoZW5kID09IExMT05HX01JTikgew0KPj4gKyvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gLUVOT0VOVDsNCj4+ICsrwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZXJyb3I7DQo+PiArK8KgwqDCoMKgwqDC oMKgIH0NCj4+ICsrwqDCoMKgwqDCoMKgwqAgKnRpbWVzdGFtcCA9IGVuZDsNCj4+ICsrwqDC oMKgwqDCoMKgwqAgcmV0dXJuIDA7DQo+PiArIA0KPj4gKyBlcnJvcjoNCj4+ICstwqDCoMKg wqDCoMKgcmV0dXJuIC0xVUxMOw0KPj4gKyvCoMKgwqDCoMKgwqByZXR1cm4gcmV0Ow0KPj4g KyB9DQo+PiArIA0KPj4gKyAvKg0KPj4gK0BAIC0zMjgsNyArMzUyLDkgQEAgdm9pZCBjdGZf cHJpbnRfdGltZXN0YW1wX3JlYWwoRklMRSAqZnAsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBjdGZfc3RyZWFtX2RlZmluaXRp b24gKnN0cmVhbSwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgdWludDY0X3QgdGltZXN0YW1wKQ0KPj4gKyB7DQo+PiArLcKgwqDCoMKgwqDC oHVpbnQ2NF90IHRzX3NlYyA9IDAsIHRzX25zZWM7DQo+PiArK8KgwqDCoMKgwqDCoMKgIGlu dDY0X3QgdHNfc2VjID0gMCwgdHNfbnNlYzsNCj4+ICsrwqDCoMKgwqDCoMKgwqAgdWludDY0 X3QgdHNfc2VjX2FicywgdHNfbnNlY19hYnM7DQo+PiArK8KgwqDCoMKgwqDCoMKgIGJvb2wg aXNfbmVnYXRpdmU7DQo+PiArIA0KPj4gK8KgwqDCoMKgwqDCoMKgdHNfbnNlYyA9IHRpbWVz dGFtcDsNCj4+ICsgDQo+PiArQEAgLTM0MSw5ICszNjcsNDAgQEAgdm9pZCBjdGZfcHJpbnRf dGltZXN0YW1wX3JlYWwoRklMRSAqZnAsDQo+PiArwqDCoMKgwqDCoMKgwqB0c19zZWMgKz0g dHNfbnNlYyAvIE5TRUNfUEVSX1NFQzsNCj4+ICvCoMKgwqDCoMKgwqDCoHRzX25zZWMgPSB0 c19uc2VjICUgTlNFQ19QRVJfU0VDOw0KPj4gKyANCj4+ICsrwqDCoMKgwqDCoMKgwqAgaWYg KHRzX3NlYyA+PSAwICYmIHRzX25zZWMgPj0gMCkgew0KPj4gKyvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaXNfbmVnYXRpdmUgPSBmYWxzZTsNCj4+ICsrwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHRzX3NlY19hYnMgPSB0c19zZWM7DQo+PiArK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c19uc2VjX2FicyA9IHRzX25zZWM7DQo+PiArK8Kg wqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAodHNfc2VjID4gMCAmJiB0c19uc2VjIDwgMCkgew0K Pj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaXNfbmVnYXRpdmUgPSBmYWxz ZTsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRzX3NlY19hYnMgPSB0 c19zZWMgLSAxOw0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHNfbnNl Y19hYnMgPSBOU0VDX1BFUl9TRUMgKyB0c19uc2VjOw0KPj4gKyvCoMKgwqDCoMKgwqDCoCB9 IGVsc2UgaWYgKHRzX3NlYyA9PSAwICYmIHRzX25zZWMgPCAwKSB7DQo+PiArK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpc19uZWdhdGl2ZSA9IHRydWU7DQo+PiArK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c19zZWNfYWJzID0gdHNfc2VjOw0KPj4gKyvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHNfbnNlY19hYnMgPSAtdHNfbnNlYzsN Cj4+ICsrwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmICh0c19zZWMgPCAwICYmIHRzX25zZWMg PiAwKSB7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpc19uZWdhdGl2 ZSA9IHRydWU7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c19zZWNf YWJzID0gLSh0c19zZWMgKyAxKTsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHRzX25zZWNfYWJzID0gTlNFQ19QRVJfU0VDIC0gdHNfbnNlYzsNCj4+ICsrwqDCoMKg wqDCoMKgwqAgfSBlbHNlIGlmICh0c19zZWMgPCAwICYmIHRzX25zZWMgPT0gMCkgew0KPj4g KyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaXNfbmVnYXRpdmUgPSB0cnVlOw0K Pj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHNfc2VjX2FicyA9IC10c19z ZWM7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c19uc2VjX2FicyA9 IHRzX25zZWM7DQo+PiArK8KgwqDCoMKgwqDCoMKgIH0gZWxzZSB7wqDCoMKgwqDCoMKgwqAg LyogKHRzX3NlYyA8IDAgJiYgdHNfbnNlYyA8IDApICovDQo+PiArK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpc19uZWdhdGl2ZSA9IHRydWU7DQo+PiArK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB0c19zZWNfYWJzID0gLXRzX3NlYzsNCj4+ICsrwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRzX25zZWNfYWJzID0gLXRzX25zZWM7DQo+PiAr K8KgwqDCoMKgwqDCoMKgIH0NCj4+ICsrDQo+PiArwqDCoMKgwqDCoMKgwqBpZiAoIW9wdF9j bG9ja19zZWNvbmRzKSB7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3Ry dWN0IHRtIHRtOw0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGltZV90IHRp bWVfcyA9ICh0aW1lX3QpIHRzX3NlYzsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHRpbWVfdCB0aW1lX3MgPSAodGltZV90KSB0c19zZWNfYWJzOw0KPj4gKysNCj4+ICsr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChpc19uZWdhdGl2ZSkgew0KPj4g KyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZwcmlu dGYoc3RkZXJyLCAiW3dhcm5pbmddIEZhbGxiYWNrIHRvDQo+PiBbc2VjLm5zXSBmb3IgcHJp bnRpbmcgbmVnYXRpdmUgdGltZSB2YWx1ZS4gVXNlIC0tY2xvY2stc2Vjb25kcy5cbiIpOw0K Pj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdv dG8gc2Vjb25kczsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH3CoMKg wqDCoMKgDQo+PiArIA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgh b3B0X2Nsb2NrX2dtdCkgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdG0gKnJlczsNCj4+ICtAQCAtMzc3LDEyICs0MzQsMTIg QEAgdm9pZCBjdGZfcHJpbnRfdGltZXN0YW1wX3JlYWwoRklMRSAqZnAsDQo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC8qIFByaW50IHRpbWUgaW4gSEg6TU06U1MubnMgKi8NCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBmcHJpbnRmKGZwLCAiJTAyZDolMDJkOiUwMmQuJTA5IiBQ Ukl1NjQsDQo+PiArLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgdG0udG1faG91ciwgdG0udG1fbWluLCB0bS50bV9zZWMsIHRzX25zZWMpOw0KPj4gKyvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRtLnRtX2hvdXIs IHRtLnRtX21pbiwgdG0udG1fc2VjLA0KPj4gdHNfbnNlY19hYnMpOw0KPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZW5kOw0KPj4gK8KgwqDCoMKgwqDCoMKgfQ0K Pj4gKyBzZWNvbmRzOg0KPj4gKy3CoMKgwqDCoMKgwqBmcHJpbnRmKGZwLCAiJTMiIFBSSXU2 NCAiLiUwOSIgUFJJdTY0LA0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHNf c2VjLCB0c19uc2VjKTsNCj4+ICsrwqDCoMKgwqDCoMKgwqAgZnByaW50ZihmcCwgIiVzJSIg UFJJZDY0ICIuJTA5IiBQUkl1NjQsDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpc19uZWdhdGl2ZSA/ICItIiA6ICIiLCB0c19zZWNfYWJzLCB0c19uc2VjX2Ficyk7 DQo+PiArIA0KPj4gKyBlbmQ6DQo+PiArwqDCoMKgwqDCoMKgwqByZXR1cm47DQo+PiArQEAg LTQwMSw3ICs0NTgsNyBAQCB2b2lkIGN0Zl9wcmludF90aW1lc3RhbXBfY3ljbGVzKEZJTEUg KmZwLA0KPj4gKyANCj4+ICsgdm9pZCBjdGZfcHJpbnRfdGltZXN0YW1wKEZJTEUgKmZwLA0K Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBjdGZfc3RyZWFtX2Rl ZmluaXRpb24gKnN0cmVhbSwNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVp bnQ2NF90IHRpbWVzdGFtcCkNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlu dDY0X3QgdGltZXN0YW1wKQ0KPj4gKyB7DQo+PiArwqDCoMKgwqDCoMKgwqBpZiAob3B0X2Ns b2NrX2N5Y2xlcykgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGN0Zl9w cmludF90aW1lc3RhbXBfY3ljbGVzKGZwLCBzdHJlYW0sIHRpbWVzdGFtcCk7DQo+PiArZGlm ZiAtLWdpdCBhL2Zvcm1hdHMvY3RmL2V2ZW50cy1wcml2YXRlLmggYi9mb3JtYXRzL2N0Zi9l dmVudHMtDQo+PiBwcml2YXRlLmgNCj4+ICtpbmRleCA5YmVhNzVkNC4uYzQ3ZmQ3ZDggMTAw NjQ0DQo+PiArLS0tIGEvZm9ybWF0cy9jdGYvZXZlbnRzLXByaXZhdGUuaA0KPj4gKysrKyBi L2Zvcm1hdHMvY3RmL2V2ZW50cy1wcml2YXRlLmgNCj4+ICtAQCAtMzUsMjAgKzM1LDIwIEBA DQo+PiArICNpbmNsdWRlIDxiYWJlbHRyYWNlL2Nsb2NrLWludGVybmFsLmg+DQo+PiArIA0K Pj4gKyBzdGF0aWMgaW5saW5lDQo+PiArLXVpbnQ2NF90IGN0Zl9nZXRfcmVhbF90aW1lc3Rh bXAoc3RydWN0IGN0Zl9zdHJlYW1fZGVmaW5pdGlvbg0KPj4gKnN0cmVhbSwNCj4+ICstwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1aW50NjRfdCB0aW1l c3RhbXApDQo+PiArK2ludDY0X3QgY3RmX2dldF9yZWFsX3RpbWVzdGFtcChzdHJ1Y3QgY3Rm X3N0cmVhbV9kZWZpbml0aW9uDQo+PiAqc3RyZWFtLA0KPj4gKyvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVpbnQ2NF90IHRzX2N5Y2xlcykNCj4+ICsg ew0KPj4gKy3CoMKgwqDCoMKgwqB1aW50NjRfdCB0c19uc2VjOw0KPj4gKyvCoMKgwqDCoMKg wqBpbnQ2NF90IHRzX25zZWM7DQo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgY3RmX3RyYWNl ICp0cmFjZSA9IHN0cmVhbS0+c3RyZWFtX2NsYXNzLT50cmFjZTsNCj4+ICvCoMKgwqDCoMKg wqDCoHN0cnVjdCB0cmFjZV9jb2xsZWN0aW9uICp0YyA9IHRyYWNlLT5wYXJlbnQuY29sbGVj dGlvbjsNCj4+ICstwqDCoMKgwqDCoMKgdWludDY0X3QgdGNfb2Zmc2V0Ow0KPj4gKyvCoMKg wqDCoMKgwqBpbnQ2NF90IHRjX29mZnNldDsNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqBp ZiAodGMtPmNsb2NrX3VzZV9vZmZzZXRfYXZnKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHRjX29mZnNldCA9IHRjLT5zaW5nbGVfY2xvY2tfb2Zmc2V0X2F2ZzsNCj4+ ICvCoMKgwqDCoMKgwqDCoGVsc2UNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB0Y19vZmZzZXQgPSBjbG9ja19vZmZzZXRfbnModHJhY2UtDQo+Pj4gcGFyZW50LnNpbmds ZV9jbG9jayk7DQo+PiArIA0KPj4gKy3CoMKgwqDCoMKgwqB0c19uc2VjID0gY2xvY2tfY3lj bGVzX3RvX25zKHN0cmVhbS0+Y3VycmVudF9jbG9jaywNCj4+IHRpbWVzdGFtcCk7DQo+PiAr K8KgwqDCoMKgwqDCoHRzX25zZWMgPSBjbG9ja19jeWNsZXNfdG9fbnMoc3RyZWFtLT5jdXJy ZW50X2Nsb2NrLA0KPj4gdHNfY3ljbGVzKTsNCj4+ICvCoMKgwqDCoMKgwqDCoHRzX25zZWMg Kz0gdGNfb2Zmc2V0O8KgwqDCoC8qIEFkZCBvZmZzZXQgKi8NCj4+ICvCoMKgwqDCoMKgwqDC oHJldHVybiB0c19uc2VjOw0KPj4gKyB9DQo+PiArZGlmZiAtLWdpdCBhL2Zvcm1hdHMvY3Rm L2V2ZW50cy5jIGIvZm9ybWF0cy9jdGYvZXZlbnRzLmMNCj4+ICtpbmRleCBiZDE5NWI5My4u YzVhZWZkODIgMTAwNjQ0DQo+PiArLS0tIGEvZm9ybWF0cy9jdGYvZXZlbnRzLmMNCj4+ICsr KysgYi9mb3JtYXRzL2N0Zi9ldmVudHMuYw0KPj4gK0BAIC0zMTUsMTggKzMxNSwxOSBAQCBp bnQgYnRfY3RmX2V2ZW50X2dldF9oYW5kbGVfaWQoY29uc3Qgc3RydWN0DQo+PiBidF9jdGZf ZXZlbnQgKmN0Zl9ldmVudCkNCj4+ICvCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7DQo+PiAr IH0NCj4+ICsgDQo+PiArLXVpbnQ2NF90IGJ0X2N0Zl9nZXRfdGltZXN0YW1wKGNvbnN0IHN0 cnVjdCBidF9jdGZfZXZlbnQgKmN0Zl9ldmVudCkNCj4+ICsraW50IGJ0X2N0Zl9nZXRfdGlt ZXN0YW1wKGNvbnN0IHN0cnVjdCBidF9jdGZfZXZlbnQgKmN0Zl9ldmVudCwNCj4+IGludDY0 X3QgKnRpbWVzdGFtcCkNCj4+ICsgew0KPj4gK8KgwqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0 IGN0Zl9ldmVudF9kZWZpbml0aW9uICpldmVudDsNCj4+ICsgDQo+PiArLcKgwqDCoMKgwqDC oGlmICghY3RmX2V2ZW50KQ0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIC0xVUxMOw0KPj4gKyvCoMKgwqDCoMKgwqBpZiAoIWN0Zl9ldmVudCB8fCAhdGltZXN0 YW1wKQ0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC0xOw0KPj4g KyANCj4+ICvCoMKgwqDCoMKgwqDCoGV2ZW50ID0gY3RmX2V2ZW50LT5wYXJlbnQ7DQo+PiAr wqDCoMKgwqDCoMKgwqBpZiAoZXZlbnQgJiYgZXZlbnQtPnN0cmVhbS0+aGFzX3RpbWVzdGFt cCkNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBldmVudC0+c3Ry ZWFtLT5yZWFsX3RpbWVzdGFtcDsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCp0aW1lc3RhbXAgPSBldmVudC0+c3RyZWFtLT5yZWFsX3RpbWVzdGFtcDsNCj4+ICvCoMKg wqDCoMKgwqDCoGVsc2UNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy biAtMVVMTDsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtMTsN Cj4+ICsrwqDCoMKgwqDCoMKgcmV0dXJuIDA7DQo+PiArIH0NCj4+ICsgDQo+PiArIHVpbnQ2 NF90IGJ0X2N0Zl9nZXRfY3ljbGVzKGNvbnN0IHN0cnVjdCBidF9jdGZfZXZlbnQgKmN0Zl9l dmVudCkNCj4+ICtkaWZmIC0tZ2l0IGEvZm9ybWF0cy9jdGYvbWV0YWRhdGEvY3RmLXZpc2l0 b3ItZ2VuZXJhdGUtaW8tc3RydWN0LmMNCj4+IGIvZm9ybWF0cy9jdGYvbWV0YWRhdGEvY3Rm LXZpc2l0b3ItZ2VuZXJhdGUtaW8tc3RydWN0LmMNCj4+ICtpbmRleCA4ZDM0OGQ2Ni4uZGQ4 Mzc0ZmMgMTAwNjQ0DQo+PiArLS0tIGEvZm9ybWF0cy9jdGYvbWV0YWRhdGEvY3RmLXZpc2l0 b3ItZ2VuZXJhdGUtaW8tc3RydWN0LmMNCj4+ICsrKysgYi9mb3JtYXRzL2N0Zi9tZXRhZGF0 YS9jdGYtdmlzaXRvci1nZW5lcmF0ZS1pby1zdHJ1Y3QuYw0KPj4gK0BAIC0yMTksNyArMjE5 LDYgQEAgaW50IGdldF91bmFyeV9zaWduZWQoc3RydWN0IGJ0X2xpc3RfaGVhZCAqaGVhZCwN Cj4+IGludDY0X3QgKnZhbHVlKQ0KPj4gKyANCj4+ICvCoMKgwqDCoMKgwqDCoGJ0X2xpc3Rf Zm9yX2VhY2hfZW50cnkobm9kZSwgaGVhZCwgc2libGluZ3MpIHsNCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAobm9kZS0+dHlwZSAhPSBOT0RFX1VOQVJZX0VYUFJF U1NJT04NCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgfHwgbm9kZS0+dS51bmFyeV9leHByZXNzaW9uLnR5cGUgIT0N Cj4+IFVOQVJZX1VOU0lHTkVEX0NPTlNUQU5UDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8fCAobm9kZS0+dS51 bmFyeV9leHByZXNzaW9uLnR5cGUgIT0NCj4+IFVOQVJZX1VOU0lHTkVEX0NPTlNUQU5UICYm IG5vZGUtPnUudW5hcnlfZXhwcmVzc2lvbi50eXBlICE9DQo+PiBVTkFSWV9TSUdORURfQ09O U1RBTlQpDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB8fCBub2RlLT51LnVuYXJ5X2V4cHJlc3Npb24ubGluayAh PQ0KPj4gVU5BUllfTElOS19VTktOT1dODQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8fCBpICE9IDApDQo+PiAr ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYmFiZWx0cmFjZS9iYWJlbHRyYWNlLWludGVybmFsLmgN Cj4+IGIvaW5jbHVkZS9iYWJlbHRyYWNlL2JhYmVsdHJhY2UtaW50ZXJuYWwuaA0KPj4gK2lu ZGV4IDZmOGUyMDA2Li4zZTEzN2U0YyAxMDA2NDQNCj4+ICstLS0gYS9pbmNsdWRlL2JhYmVs dHJhY2UvYmFiZWx0cmFjZS1pbnRlcm5hbC5oDQo+PiArKysrIGIvaW5jbHVkZS9iYWJlbHRy YWNlL2JhYmVsdHJhY2UtaW50ZXJuYWwuaA0KPj4gK0BAIC0xNzgsOCArMTc4LDggQEAgc3Ry dWN0IHRyYWNlX2NvbGxlY3Rpb24gew0KPj4gK8KgwqDCoMKgwqDCoMKgR1B0ckFycmF5ICph cnJheTvCoMKgwqDCoMKgwqDCoC8qIHN0cnVjdCBidF90cmFjZV9kZXNjcmlwdG9yICovDQo+ PiArwqDCoMKgwqDCoMKgwqBHSGFzaFRhYmxlICpjbG9ja3M7wqDCoMKgwqDCoC8qIHN0cnVj dCBjdGZfY2xvY2sgKi8NCj4+ICsgDQo+PiArLcKgwqDCoMKgwqDCoHVpbnQ2NF90IHNpbmds ZV9jbG9ja19vZmZzZXRfYXZnOw0KPj4gKy3CoMKgwqDCoMKgwqB1aW50NjRfdCBvZmZzZXRf Zmlyc3Q7DQo+PiArK8KgwqDCoMKgwqDCoGludDY0X3Qgc2luZ2xlX2Nsb2NrX29mZnNldF9h dmc7DQo+PiArK8KgwqDCoMKgwqDCoGludDY0X3Qgb2Zmc2V0X2ZpcnN0Ow0KPj4gK8KgwqDC oMKgwqDCoMKgaW50NjRfdCBkZWx0YV9vZmZzZXRfZmlyc3Rfc3VtOw0KPj4gK8KgwqDCoMKg wqDCoMKgaW50IG9mZnNldF9ucjsNCj4+ICvCoMKgwqDCoMKgwqDCoGludCBjbG9ja191c2Vf b2Zmc2V0X2F2ZzsNCj4+ICtAQCAtMjA4LDggKzIwOCw4IEBAIGV4dGVybiBpbnQgb3B0X2Fs bF9maWVsZF9uYW1lcywNCj4+ICvCoMKgwqDCoMKgwqDCoG9wdF9jbG9ja19mb3JjZV9jb3Jy ZWxhdGUsDQo+PiArwqDCoMKgwqDCoMKgwqBvcHRfZGVidWdfaW5mb19mdWxsX3BhdGg7DQo+ PiArIA0KPj4gKy1leHRlcm4gdWludDY0X3Qgb3B0X2Nsb2NrX29mZnNldDsNCj4+ICstZXh0 ZXJuIHVpbnQ2NF90IG9wdF9jbG9ja19vZmZzZXRfbnM7DQo+PiArK2V4dGVybiBpbnQ2NF90 IG9wdF9jbG9ja19vZmZzZXQ7DQo+PiArK2V4dGVybiBpbnQ2NF90IG9wdF9jbG9ja19vZmZz ZXRfbnM7DQo+PiArIGV4dGVybiBpbnQgYmFiZWx0cmFjZV9jdGZfY29uc29sZV9vdXRwdXQ7 DQo+PiArIGV4dGVybiBjaGFyICpvcHRfZGVidWdfaW5mb19kaXI7DQo+PiArIGV4dGVybiBj aGFyICpvcHRfZGVidWdfaW5mb190YXJnZXRfcHJlZml4Ow0KPj4gK2RpZmYgLS1naXQgYS9p bmNsdWRlL2JhYmVsdHJhY2UvY2xvY2staW50ZXJuYWwuaA0KPj4gYi9pbmNsdWRlL2JhYmVs dHJhY2UvY2xvY2staW50ZXJuYWwuaA0KPj4gK2luZGV4IGNkNmJkYmFlLi44Njk1NGI3OCAx MDA2NDQNCj4+ICstLS0gYS9pbmNsdWRlL2JhYmVsdHJhY2UvY2xvY2staW50ZXJuYWwuaA0K Pj4gKysrKyBiL2luY2x1ZGUvYmFiZWx0cmFjZS9jbG9jay1pbnRlcm5hbC5oDQo+PiArQEAg LTQ5LDcgKzQ5LDcgQEAgdWludDY0X3QgY2xvY2tfY3ljbGVzX3RvX25zKHN0cnVjdCBjdGZf Y2xvY2sNCj4+ICpjbG9jaywgdWludDY0X3QgY3ljbGVzKQ0KPj4gK8KgICogbWFudGlzc2Eu DQo+PiArwqAgKi8NCj4+ICsgc3RhdGljIGlubGluZQ0KPj4gKy11aW50NjRfdCBjbG9ja19v ZmZzZXRfbnMoc3RydWN0IGN0Zl9jbG9jayAqY2xvY2spDQo+PiArK2ludDY0X3QgY2xvY2tf b2Zmc2V0X25zKHN0cnVjdCBjdGZfY2xvY2sgKmNsb2NrKQ0KPj4gKyB7DQo+PiArwqDCoMKg wqDCoMKgwqByZXR1cm4gY2xvY2stPm9mZnNldF9zICogMTAwMDAwMDAwMFVMTA0KPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqArIGNsb2NrX2N5 Y2xlc190b19ucyhjbG9jaywgY2xvY2stPm9mZnNldCk7DQo+PiArZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvYmFiZWx0cmFjZS9jdGYtaXIvY2xvY2staW50ZXJuYWwuaA0KPj4gYi9pbmNsdWRl L2JhYmVsdHJhY2UvY3RmLWlyL2Nsb2NrLWludGVybmFsLmgNCj4+ICtpbmRleCA3NTY3Nzcw Ny4uZjFlODk2YjYgMTAwNjQ0DQo+PiArLS0tIGEvaW5jbHVkZS9iYWJlbHRyYWNlL2N0Zi1p ci9jbG9jay1pbnRlcm5hbC5oDQo+PiArKysrIGIvaW5jbHVkZS9iYWJlbHRyYWNlL2N0Zi1p ci9jbG9jay1pbnRlcm5hbC5oDQo+PiArQEAgLTQyLDcgKzQyLDcgQEAgc3RydWN0IGJ0X2N0 Zl9jbG9jayB7DQo+PiArwqDCoMKgwqDCoMKgwqB1aW50NjRfdCBwcmVjaXNpb247DQo+PiAr wqDCoMKgwqDCoMKgwqBpbnQ2NF90IG9mZnNldF9zO8KgwqDCoMKgwqDCoMKgLyogT2Zmc2V0 IGluIHNlY29uZHMgKi8NCj4+ICvCoMKgwqDCoMKgwqDCoGludDY0X3Qgb2Zmc2V0O8KgwqDC oMKgwqDCoMKgwqDCoC8qIE9mZnNldCBpbiB0aWNrcyAqLw0KPj4gKy3CoMKgwqDCoMKgwqB1 aW50NjRfdCB2YWx1ZTvCoMKgwqDCoMKgwqDCoMKgwqAvKiBDdXJyZW50IGNsb2NrIHZhbHVl ICovDQo+PiArK8KgwqDCoMKgwqDCoGludDY0X3QgdmFsdWU7wqDCoMKgwqDCoMKgwqDCoMKg wqAvKiBDdXJyZW50IGNsb2NrIHZhbHVlICovDQo+PiArwqDCoMKgwqDCoMKgwqB1dWlkX3Qg dXVpZDsNCj4+ICvCoMKgwqDCoMKgwqDCoGludCB1dWlkX3NldDsNCj4+ICvCoMKgwqDCoMKg wqDCoGludCBhYnNvbHV0ZTsNCj4+ICtkaWZmIC0tZ2l0IGEvaW5jbHVkZS9iYWJlbHRyYWNl L2N0Zi9ldmVudHMuaA0KPj4gYi9pbmNsdWRlL2JhYmVsdHJhY2UvY3RmL2V2ZW50cy5oDQo+ PiAraW5kZXggYzgxZDg4NTIuLjE1ODMwYTMwIDEwMDY0NA0KPj4gKy0tLSBhL2luY2x1ZGUv YmFiZWx0cmFjZS9jdGYvZXZlbnRzLmgNCj4+ICsrKysgYi9pbmNsdWRlL2JhYmVsdHJhY2Uv Y3RmL2V2ZW50cy5oDQo+PiArQEAgLTEwOSwxMCArMTA5LDEyIEBAIGNvbnN0IGNoYXIgKmJ0 X2N0Zl9ldmVudF9uYW1lKGNvbnN0IHN0cnVjdA0KPj4gYnRfY3RmX2V2ZW50ICpldmVudCk7 DQo+PiArIHVpbnQ2NF90IGJ0X2N0Zl9nZXRfY3ljbGVzKGNvbnN0IHN0cnVjdCBidF9jdGZf ZXZlbnQgKmV2ZW50KTsNCj4+ICsgDQo+PiArIC8qDQo+PiArLSAqIGJ0X2N0Zl9nZXRfdGlt ZXN0YW1wOiByZXR1cm5zIHRoZSB0aW1lc3RhbXAgb2YgdGhlIGV2ZW50DQo+PiBvZmZzZXR0 ZWQNCj4+ICstICogd2l0aCB0aGUgc3lzdGVtIGNsb2NrIHNvdXJjZSAoaW4gbnMpIG9yIC0x VUxMIG9uIGVycm9yDQo+PiArKyAqIGJ0X2N0Zl9nZXRfdGltZXN0YW1wOiBnZXQgdGhlIHRp bWVzdGFtcCBvZiB0aGUgZXZlbnQgb2Zmc2V0dGVkDQo+PiArKyAqIHdpdGggdGhlIHN5c3Rl bSBjbG9jayBzb3VyY2UgKGluIG5zKSBpbiAqdGltZXN0YW1wLg0KPj4gKysgKg0KPj4gKysg KiBSZXR1cm4gMCBvbiBzdWNjZXNzLCBvciAtMVVMTCBvbiBlcnJvci4NCj4+ICvCoCAqLw0K Pj4gKy11aW50NjRfdCBidF9jdGZfZ2V0X3RpbWVzdGFtcChjb25zdCBzdHJ1Y3QgYnRfY3Rm X2V2ZW50ICpldmVudCk7DQo+PiArK2ludCBidF9jdGZfZ2V0X3RpbWVzdGFtcChjb25zdCBz dHJ1Y3QgYnRfY3RmX2V2ZW50ICpldmVudCwgaW50NjRfdA0KPj4gKnRpbWVzdGFtcCk7DQo+ PiArIA0KPj4gKyAvKg0KPj4gK8KgICogYnRfY3RmX2dldF9maWVsZF9saXN0OiBvYnRhaW4g dGhlIGxpc3Qgb2YgZmllbGRzIGZvciBjb21wb3VuZA0KPj4gdHlwZQ0KPj4gK2RpZmYgLS1n aXQgYS9pbmNsdWRlL2JhYmVsdHJhY2UvY3RmL3R5cGVzLmgNCj4+IGIvaW5jbHVkZS9iYWJl bHRyYWNlL2N0Zi90eXBlcy5oDQo+PiAraW5kZXggMGJjMDAzYzguLjRiNjI2YjM5IDEwMDY0 NA0KPj4gKy0tLSBhL2luY2x1ZGUvYmFiZWx0cmFjZS9jdGYvdHlwZXMuaA0KPj4gKysrKyBi L2luY2x1ZGUvYmFiZWx0cmFjZS9jdGYvdHlwZXMuaA0KPj4gK0BAIC00Niw4ICs0Niw4IEBA DQo+PiArIHN0cnVjdCBidF9zdHJlYW1fY2FsbGJhY2tzOw0KPj4gKyANCj4+ICsgc3RydWN0 IHBhY2tldF9pbmRleF90aW1lIHsNCj4+ICstwqDCoMKgwqDCoMKgdWludDY0X3QgdGltZXN0 YW1wX2JlZ2luOw0KPj4gKy3CoMKgwqDCoMKgwqB1aW50NjRfdCB0aW1lc3RhbXBfZW5kOw0K Pj4gKyvCoMKgwqDCoMKgwqBpbnQ2NF90IHRpbWVzdGFtcF9iZWdpbjsNCj4+ICsrwqDCoMKg wqDCoMKgaW50NjRfdCB0aW1lc3RhbXBfZW5kOw0KPj4gKyB9Ow0KPj4gKyANCj4+ICsgc3Ry dWN0IHBhY2tldF9pbmRleCB7DQo+PiArQEAgLTI1Myw3ICsyNTMsNyBAQCBpbnQgY3RmX3Bv c19nZXRfZXZlbnQoc3RydWN0IGN0Zl9zdHJlYW1fcG9zDQo+PiAqcG9zKQ0KPj4gKyB9DQo+ PiArIA0KPj4gKyB2b2lkIGN0Zl9wcmludF90aW1lc3RhbXAoRklMRSAqZnAsIHN0cnVjdCBj dGZfc3RyZWFtX2RlZmluaXRpb24NCj4+ICpzdHJlYW0sDQo+PiArLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdWludDY0X3QgdGltZXN0YW1wKTsNCj4+ ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQ2NF90 IHRpbWVzdGFtcCk7DQo+PiArIGludCBjdGZfYXBwZW5kX3RyYWNlX21ldGFkYXRhKHN0cnVj dCBidF90cmFjZV9kZXNjcmlwdG9yICp0ZHAsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEZJTEUgKm1ldGFkYXRhX2ZwKTsNCj4+ICsgdm9p ZCBjdGZfcHJpbnRfZGlzY2FyZGVkX2xvc3QoRklMRSAqZnAsIHN0cnVjdA0KPj4gY3RmX3N0 cmVhbV9kZWZpbml0aW9uICpzdHJlYW0pOw0KPj4gK2RpZmYgLS1naXQgYS9pbmNsdWRlL2Jh YmVsdHJhY2UvZm9ybWF0LmgNCj4+IGIvaW5jbHVkZS9iYWJlbHRyYWNlL2Zvcm1hdC5oDQo+ PiAraW5kZXggZGVhOGUwZTUuLmJmMzNhMjM5IDEwMDY0NA0KPj4gKy0tLSBhL2luY2x1ZGUv YmFiZWx0cmFjZS9mb3JtYXQuaA0KPj4gKysrKyBiL2luY2x1ZGUvYmFiZWx0cmFjZS9mb3Jt YXQuaA0KPj4gK0BAIC03MywxMCArNzMsMTIgQEAgc3RydWN0IGJ0X2Zvcm1hdCB7DQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBi dF9jb250ZXh0ICpjdHgpOw0KPj4gK8KgwqDCoMKgwqDCoMKgdm9pZCAoKnNldF9oYW5kbGUp KHN0cnVjdCBidF90cmFjZV9kZXNjcmlwdG9yICpkZXNjcmlwdG9yLA0KPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYnRfdHJhY2Vf aGFuZGxlICpoYW5kbGUpOw0KPj4gKy3CoMKgwqDCoMKgwqB1aW50NjRfdCAoKnRpbWVzdGFt cF9iZWdpbikoc3RydWN0IGJ0X3RyYWNlX2Rlc2NyaXB0b3INCj4+ICpkZXNjcmlwdG9yLA0K Pj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVj dCBidF90cmFjZV9oYW5kbGUgKmhhbmRsZSwgZW51bQ0KPj4gYnRfY2xvY2tfdHlwZSB0eXBl KTsNCj4+ICstwqDCoMKgwqDCoMKgdWludDY0X3QgKCp0aW1lc3RhbXBfZW5kKShzdHJ1Y3Qg YnRfdHJhY2VfZGVzY3JpcHRvcg0KPj4gKmRlc2NyaXB0b3IsDQo+PiArLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGJ0X3RyYWNlX2hhbmRs ZSAqaGFuZGxlLCBlbnVtDQo+PiBidF9jbG9ja190eXBlIHR5cGUpOw0KPj4gKyvCoMKgwqDC oMKgwqDCoCBpbnQgKCp0aW1lc3RhbXBfYmVnaW4pKHN0cnVjdCBidF90cmFjZV9kZXNjcmlw dG9yDQo+PiAqZGVzY3JpcHRvciwNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYnRfdHJhY2VfaGFuZGxlICpoYW5kbGUsIGVu dW0NCj4+IGJ0X2Nsb2NrX3R5cGUgdHlwZSwNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQ2NF90ICp0aW1lc3RhbXApOw0KPj4gKyvC oMKgwqDCoMKgwqDCoCBpbnQgKCp0aW1lc3RhbXBfZW5kKShzdHJ1Y3QgYnRfdHJhY2VfZGVz Y3JpcHRvcg0KPj4gKmRlc2NyaXB0b3IsDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGJ0X3RyYWNlX2hhbmRsZSAqaGFuZGxl LCBlbnVtDQo+PiBidF9jbG9ja190eXBlIHR5cGUsDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50NjRfdCAqdGltZXN0YW1wKTsNCj4+ ICvCoMKgwqDCoMKgwqDCoGludCAoKmNvbnZlcnRfaW5kZXhfdGltZXN0YW1wKShzdHJ1Y3Qg YnRfdHJhY2VfZGVzY3JpcHRvcg0KPj4gKmRlc2NyaXB0b3IpOw0KPj4gKyB9Ow0KPj4gKyAN Cj4+ICtkaWZmIC0tZ2l0IGEvaW5jbHVkZS9iYWJlbHRyYWNlL3RyYWNlLWhhbmRsZS1pbnRl cm5hbC5oDQo+PiBiL2luY2x1ZGUvYmFiZWx0cmFjZS90cmFjZS1oYW5kbGUtaW50ZXJuYWwu aA0KPj4gK2luZGV4IDVlOWMxYzZhLi45MjRjNzMwYyAxMDA2NDQNCj4+ICstLS0gYS9pbmNs dWRlL2JhYmVsdHJhY2UvdHJhY2UtaGFuZGxlLWludGVybmFsLmgNCj4+ICsrKysgYi9pbmNs dWRlL2JhYmVsdHJhY2UvdHJhY2UtaGFuZGxlLWludGVybmFsLmgNCj4+ICtAQCAtNDYsMTAg KzQ2LDEwIEBAIHN0cnVjdCBidF90cmFjZV9oYW5kbGUgew0KPj4gK8KgwqDCoMKgwqDCoMKg c3RydWN0IGJ0X3RyYWNlX2Rlc2NyaXB0b3IgKnRkOw0KPj4gK8KgwqDCoMKgwqDCoMKgc3Ry dWN0IGJ0X2Zvcm1hdCAqZm9ybWF0Ow0KPj4gK8KgwqDCoMKgwqDCoMKgY2hhciBwYXRoW1BB VEhfTUFYXTsNCj4+ICstwqDCoMKgwqDCoMKgdWludDY0X3QgcmVhbF90aW1lc3RhbXBfYmVn aW47DQo+PiArLcKgwqDCoMKgwqDCoHVpbnQ2NF90IHJlYWxfdGltZXN0YW1wX2VuZDsNCj4+ ICstwqDCoMKgwqDCoMKgdWludDY0X3QgY3ljbGVzX3RpbWVzdGFtcF9iZWdpbjsNCj4+ICst wqDCoMKgwqDCoMKgdWludDY0X3QgY3ljbGVzX3RpbWVzdGFtcF9lbmQ7DQo+PiArK8KgwqDC oMKgwqDCoGludDY0X3QgcmVhbF90aW1lc3RhbXBfYmVnaW47DQo+PiArK8KgwqDCoMKgwqDC oGludDY0X3QgcmVhbF90aW1lc3RhbXBfZW5kOw0KPj4gKyvCoMKgwqDCoMKgwqBpbnQ2NF90 IGN5Y2xlc190aW1lc3RhbXBfYmVnaW47DQo+PiArK8KgwqDCoMKgwqDCoGludDY0X3QgY3lj bGVzX3RpbWVzdGFtcF9lbmQ7DQo+PiArIH07DQo+PiArIA0KPj4gKyAvKg0KPj4gK2RpZmYg LS1naXQgYS9pbmNsdWRlL2JhYmVsdHJhY2UvdHJhY2UtaGFuZGxlLmgNCj4+IGIvaW5jbHVk ZS9iYWJlbHRyYWNlL3RyYWNlLWhhbmRsZS5oDQo+PiAraW5kZXggOTZlNGE4MWIuLjU1Yzg1 MGY4IDEwMDY0NA0KPj4gKy0tLSBhL2luY2x1ZGUvYmFiZWx0cmFjZS90cmFjZS1oYW5kbGUu aA0KPj4gKysrKyBiL2luY2x1ZGUvYmFiZWx0cmFjZS90cmFjZS1oYW5kbGUuaA0KPj4gK0BA IC01MywyMCArNTMsMjUgQEAgc3RydWN0IGJ0X2N0Zl9ldmVudDsNCj4+ICsgY29uc3QgY2hh ciAqYnRfdHJhY2VfaGFuZGxlX2dldF9wYXRoKHN0cnVjdCBidF9jb250ZXh0ICpjdHgsIGlu dA0KPj4gaGFuZGxlX2lkKTsNCj4+ICsgDQo+PiArIC8qDQo+PiArLSAqIGJ0X3RyYWNlX2hh bmRsZV9nZXRfdGltZXN0YW1wX2JlZ2luIDogcmV0dXJucyB0aGUgY3JlYXRpb24gdGltZQ0K Pj4gKGluDQo+PiArLSAqIG5hbm9zZWNvbmRzIG9yIGN5Y2xlcyBkZXBlbmRpbmcgb24gdHlw ZSkgb2YgdGhlIGJ1ZmZlcnMgb2YgYQ0KPj4gdHJhY2UNCj4+ICstICogb3IgLTFVTEwgb24g ZXJyb3IuDQo+PiArKyAqIGJ0X3RyYWNlX2hhbmRsZV9nZXRfdGltZXN0YW1wX2JlZ2luIDog Z2V0IHRoZSBjcmVhdGlvbiB0aW1lIChpbg0KPj4gKysgKiBuYW5vc2Vjb25kcyBvciBjeWNs ZXMgZGVwZW5kaW5nIG9uIHR5cGUpIG9mIHRoZSBidWZmZXJzIG9mIGENCj4+IHRyYWNlLg0K Pj4gKysgKg0KPj4gKysgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLTEgb24gZXJyb3IuDQo+ PiArwqAgKi8NCj4+ICstdWludDY0X3QgYnRfdHJhY2VfaGFuZGxlX2dldF90aW1lc3RhbXBf YmVnaW4oc3RydWN0IGJ0X2NvbnRleHQNCj4+ICpjdHgsDQo+PiArLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpbnQgaGFuZGxlX2lkLCBlbnVtIGJ0X2Nsb2NrX3R5cGUgdHlwZSk7 DQo+PiArK2ludCBidF90cmFjZV9oYW5kbGVfZ2V0X3RpbWVzdGFtcF9iZWdpbihzdHJ1Y3Qg YnRfY29udGV4dCAqY3R4LA0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50 IGhhbmRsZV9pZCwgZW51bSBidF9jbG9ja190eXBlIHR5cGUsDQo+PiArK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpbnQ2NF90ICp0aW1lc3RhbXApOw0KPj4gKyANCj4+ICsgLyoN Cj4+ICstICogYnRfdHJhY2VfaGFuZGxlX2dldF90aW1lc3RhbXBfZW5kIDogcmV0dXJucyB0 aGUgZGVzdHJ1Y3Rpb24NCj4+IHRpbWVzdGFtcA0KPj4gKy0gKiAoaW4gbmFub3NlY29uZHMg b3IgY3ljbGVzIGRlcGVuZGluZyBvbiB0eXBlKSBvZiB0aGUgYnVmZmVycyBvZiBhDQo+PiB0 cmFjZQ0KPj4gKy0gKiBvciAtMVVMTCBvbiBlcnJvci4NCj4+ICsrICogYnRfdHJhY2VfaGFu ZGxlX2dldF90aW1lc3RhbXBfZW5kIDogZ2V0IHRoZSBkZXN0cnVjdGlvbiB0aW1lDQo+PiAr KyAqIChpbiBuYW5vc2Vjb25kcyBvciBjeWNsZXMgZGVwZW5kaW5nIG9uIHR5cGUpIG9mIHRo ZSBidWZmZXJzIG9mIGENCj4+ICsrICogdHJhY2UuDQo+PiArKyAqDQo+PiArKyAqIFJldHVy bnMgMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvci4NCj4+ICvCoCAqLw0KPj4gKy11aW50NjRf dCBidF90cmFjZV9oYW5kbGVfZ2V0X3RpbWVzdGFtcF9lbmQoc3RydWN0IGJ0X2NvbnRleHQg KmN0eCwNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCBoYW5kbGVfaWQs IGVudW0gYnRfY2xvY2tfdHlwZSB0eXBlKTsNCj4+ICsraW50IGJ0X3RyYWNlX2hhbmRsZV9n ZXRfdGltZXN0YW1wX2VuZChzdHJ1Y3QgYnRfY29udGV4dCAqY3R4LA0KPj4gKyvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50IGhhbmRsZV9pZCwgZW51bSBidF9jbG9ja190eXBl IHR5cGUsDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQ2NF90ICp0aW1l c3RhbXApOw0KPj4gKyANCj4+ICsgLyoNCj4+ICvCoCAqIGJ0X2N0Zl9ldmVudF9nZXRfaGFu ZGxlX2lkIDogZ2V0IHRoZSBoYW5kbGUgaWQgYXNzb2NpYXRlZCB3aXRoDQo+PiBhbiBldmVu dA0KPj4gK2RpZmYgLS1naXQgYS9saWIvY29udGV4dC5jIGIvbGliL2NvbnRleHQuYw0KPj4g K2luZGV4IDg3OTAxYjNjLi4zNGExYmM4MiAxMDA2NDQNCj4+ICstLS0gYS9saWIvY29udGV4 dC5jDQo+PiArKysrIGIvbGliL2NvbnRleHQuYw0KPj4gK0BAIC0xMzksMTggKzEzOSwzOCBA QCBpbnQgYnRfY29udGV4dF9hZGRfdHJhY2Uoc3RydWN0IGJ0X2NvbnRleHQNCj4+ICpjdHgs IGNvbnN0IGNoYXIgKnBhdGgsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGdvdG8gZXJyb3JfY29sbGVjdGlvbl9kZWw7DQo+PiArwqDCoMKg wqDCoMKgwqB9DQo+PiArIA0KPj4gKy3CoMKgwqDCoMKgwqBpZiAoZm10LT50aW1lc3RhbXBf YmVnaW4pDQo+PiArLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBoYW5kbGUtPnJlYWxf dGltZXN0YW1wX2JlZ2luID0gZm10LQ0KPj4+IHRpbWVzdGFtcF9iZWdpbih0ZCwNCj4+ICst wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaGFuZGxlLCBCVF9DTE9DS19SRUFMKTsNCj4+ICstwqDCoMKgwqDCoMKgaWYgKGZt dC0+dGltZXN0YW1wX2VuZCkNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGhh bmRsZS0+cmVhbF90aW1lc3RhbXBfZW5kID0gZm10LT50aW1lc3RhbXBfZW5kKHRkLA0KPj4g aGFuZGxlLA0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBCVF9DTE9DS19SRUFMKTsNCj4+ICstwqDCoMKgwqDCoMKg aWYgKGZtdC0+dGltZXN0YW1wX2JlZ2luKQ0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaGFuZGxlLT5jeWNsZXNfdGltZXN0YW1wX2JlZ2luID0gZm10LQ0KPj4+IHRpbWVz dGFtcF9iZWdpbih0ZCwNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaGFuZGxlLCBCVF9DTE9DS19DWUNMRVMpOw0K Pj4gKy3CoMKgwqDCoMKgwqBpZiAoZm10LT50aW1lc3RhbXBfZW5kKQ0KPj4gKy3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaGFuZGxlLT5jeWNsZXNfdGltZXN0YW1wX2VuZCA9IGZt dC0+dGltZXN0YW1wX2VuZCh0ZCwNCj4+IGhhbmRsZSwNCj4+ICstwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgQlRfQ0xPQ0tf Q1lDTEVTKTsNCj4+ICsrwqDCoMKgwqDCoMKgwqAgaWYgKGZtdC0+dGltZXN0YW1wX2JlZ2lu KSB7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBmbXQtPnRp bWVzdGFtcF9iZWdpbih0ZCwgaGFuZGxlLA0KPj4gQlRfQ0xPQ0tfUkVBTCwNCj4+ICsrwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgJmhhbmRsZS0+cmVhbF90aW1lc3RhbXBfYmVnaW4pOw0KPj4gKyvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldCA8IDAgJiYgcmV0ICE9IC1FTk9FTlQpIHsN Cj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXQgPSAtMTsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBnb3RvIGVycm9yX2NvbGxlY3Rpb25fZGVsOw0KPj4gKyvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4gKyvCoMKgwqDCoMKgwqDCoCB9DQo+PiArK8KgwqDC oMKgwqDCoMKgIGlmIChmbXQtPnRpbWVzdGFtcF9lbmQpIHsNCj4+ICsrwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IGZtdC0+dGltZXN0YW1wX2VuZCh0ZCwgaGFuZGxl LCBCVF9DTE9DS19SRUFMLA0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmaGFuZGxlLT5yZWFsX3RpbWVzdGFt cF9lbmQpOw0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldCA8 IDAgJiYgcmV0ICE9IC1FTk9FTlQpIHsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSAtMTsNCj4+ICsrwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycm9yX2NvbGxlY3Rpb25f ZGVsOw0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4gKyvCoMKg wqDCoMKgwqDCoCB9DQo+PiArK8KgwqDCoMKgwqDCoMKgIGlmIChmbXQtPnRpbWVzdGFtcF9i ZWdpbikgew0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gZm10 LT50aW1lc3RhbXBfYmVnaW4odGQsIGhhbmRsZSwNCj4+IEJUX0NMT0NLX0NZQ0xFUywNCj4+ ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgJmhhbmRsZS0+Y3ljbGVzX3RpbWVzdGFtcF9iZWdpbik7DQo+PiArK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocmV0IDwgMCAmJiByZXQgIT0gLUVO T0VOVCkgew0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHJldCA9IC0xOw0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGdvdG8gZXJyb3JfY29sbGVjdGlvbl9kZWw7DQo+PiArK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9DQo+PiArK8KgwqDCoMKgwqDCoMKgIH0NCj4+ ICsrwqDCoMKgwqDCoMKgwqAgaWYgKGZtdC0+dGltZXN0YW1wX2VuZCkgew0KPj4gKyvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gZm10LT50aW1lc3RhbXBfZW5kKHRk LCBoYW5kbGUsDQo+PiBCVF9DTE9DS19DWUNMRVMsDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZoYW5kbGUt PmN5Y2xlc190aW1lc3RhbXBfZW5kKTsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGlmIChyZXQgPCAwICYmIHJldCAhPSAtRU5PRU5UKSB7DQo+PiArK8KgwqDCoO+/ ve+/vcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IC0xOw0K Pj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdv dG8gZXJyb3JfY29sbGVjdGlvbl9kZWw7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB9DQo+PiArK8KgwqDCoMKgwqDCoMKgIH0NCj4+ICsgDQo+PiArwqDCoMKgwqDC oMKgwqAvKiBBZGQgbmV3IGhhbmRsZSB0byBjb250YWluZXIgKi8NCj4+ICvCoMKgwqDCoMKg wqDCoGdfaGFzaF90YWJsZV9pbnNlcnQoY3R4LT50cmFjZV9oYW5kbGVzLA0KPj4gK2RpZmYg LS1naXQgYS9saWIvdHJhY2UtaGFuZGxlLmMgYi9saWIvdHJhY2UtaGFuZGxlLmMNCj4+ICtp bmRleCBkNWI5MDZhYS4uOGYxMWM3Y2MgMTAwNjQ0DQo+PiArLS0tIGEvbGliL3RyYWNlLWhh bmRsZS5jDQo+PiArKysrIGIvbGliL3RyYWNlLWhhbmRsZS5jDQo+PiArQEAgLTY2LDU0ICs2 Niw1NyBAQCBjb25zdCBjaGFyICpidF90cmFjZV9oYW5kbGVfZ2V0X3BhdGgoc3RydWN0DQo+ PiBidF9jb250ZXh0ICpjdHgsIGludCBoYW5kbGVfaWQpDQo+PiArwqDCoMKgwqDCoMKgwqBy ZXR1cm4gaGFuZGxlLT5wYXRoOw0KPj4gKyB9DQo+PiArIA0KPj4gKy11aW50NjRfdCBidF90 cmFjZV9oYW5kbGVfZ2V0X3RpbWVzdGFtcF9iZWdpbihzdHJ1Y3QgYnRfY29udGV4dA0KPj4g KmN0eCwNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCBoYW5kbGVfaWQs IGVudW0gYnRfY2xvY2tfdHlwZSB0eXBlKQ0KPj4gKytpbnQgYnRfdHJhY2VfaGFuZGxlX2dl dF90aW1lc3RhbXBfYmVnaW4oc3RydWN0IGJ0X2NvbnRleHQgKmN0eCwNCj4+ICsrwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCBoYW5kbGVfaWQsIGVudW0gYnRfY2xvY2tfdHlw ZSB0eXBlLA0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50NjRfdCAqdGlt ZXN0YW1wKQ0KPj4gKyB7DQo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYnRfdHJhY2VfaGFu ZGxlICpoYW5kbGU7DQo+PiArLcKgwqDCoMKgwqDCoHVpbnQ2NF90IHJldDsNCj4+ICsgDQo+ PiArLcKgwqDCoMKgwqDCoGlmICghY3R4KQ0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgcmV0dXJuIC0xVUxMOw0KPj4gKyvCoMKgwqDCoMKgwqBpbnQgcmV0ID0gMDsNCj4+ ICsrwqDCoMKgwqDCoMKgDQo+PiArK8KgwqDCoMKgwqDCoMKgIGlmICghY3R4IHx8ICF0aW1l c3RhbXApDQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLTE7 DQo+PiArIA0KPj4gK8KgwqDCoMKgwqDCoMKgaGFuZGxlID0gZ19oYXNoX3RhYmxlX2xvb2t1 cChjdHgtPnRyYWNlX2hhbmRsZXMsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoChncG9pbnRlcikgKHVuc2lnbmVkIGxvbmcpIGhhbmRsZV9p ZCk7DQo+PiArwqDCoMKgwqDCoMKgwqBpZiAoIWhhbmRsZSkgew0KPj4gKy3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gLTFVTEw7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqByZXQgPSAtMTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBnb3RvIGVuZDsNCj4+ICvCoMKgwqDCoMKgwqDCoH0NCj4+ICvCoMKgwqDCoMKgwqDCoGlm ICh0eXBlID09IEJUX0NMT0NLX1JFQUwpIHsNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldCA9IGhhbmRsZS0+cmVhbF90aW1lc3RhbXBfYmVnaW47DQo+PiArK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqdGltZXN0YW1wID0gaGFuZGxlLT5yZWFsX3RpbWVz dGFtcF9iZWdpbjsNCj4+ICvCoMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAodHlwZSA9PSBCVF9D TE9DS19DWUNMRVMpIHsNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9 IGhhbmRsZS0+Y3ljbGVzX3RpbWVzdGFtcF9iZWdpbjsNCj4+ICsrwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCp0aW1lc3RhbXAgPSBoYW5kbGUtPmN5Y2xlc190aW1lc3RhbXBfYmVn aW47DQo+PiArwqDCoMKgwqDCoMKgwqB9IGVsc2Ugew0KPj4gKy3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgcmV0ID0gLTFVTEw7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXQgPSAtMTsNCj4+ICvCoMKgwqDCoMKgwqDCoH0NCj4+ICsgDQo+PiArIGVuZDoN Cj4+ICvCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7DQo+PiArIH0NCj4+ICsgDQo+PiArLXVp bnQ2NF90IGJ0X3RyYWNlX2hhbmRsZV9nZXRfdGltZXN0YW1wX2VuZChzdHJ1Y3QgYnRfY29u dGV4dCAqY3R4LA0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50IGhhbmRs ZV9pZCwgZW51bSBidF9jbG9ja190eXBlIHR5cGUpDQo+PiArK2ludCBidF90cmFjZV9oYW5k bGVfZ2V0X3RpbWVzdGFtcF9lbmQoc3RydWN0IGJ0X2NvbnRleHQgKmN0eCwNCj4+ICsrwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCBoYW5kbGVfaWQsIGVudW0gYnRfY2xvY2tf dHlwZSB0eXBlLA0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50NjRfdCAq dGltZXN0YW1wKQ0KPj4gKyB7DQo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYnRfdHJhY2Vf aGFuZGxlICpoYW5kbGU7DQo+PiArLcKgwqDCoMKgwqDCoHVpbnQ2NF90IHJldDsNCj4+ICsr wqDCoMKgwqDCoMKgaW50IHJldCA9IDA7DQo+PiArIA0KPj4gKy3CoMKgwqDCoMKgwqBpZiAo IWN0eCkNCj4+ICstwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtMVVMTDsN Cj4+ICsrwqDCoMKgwqDCoMKgaWYgKCFjdHggfHwgIXRpbWVzdGFtcCkNCj4+ICsrwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtMTsNCj4+ICsgDQo+PiArwqDCoMKgwqDC oMKgwqBoYW5kbGUgPSBnX2hhc2hfdGFibGVfbG9va3VwKGN0eC0+dHJhY2VfaGFuZGxlcywN Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKGdw b2ludGVyKSAodW5zaWduZWQgbG9uZykgaGFuZGxlX2lkKTsNCj4+ICvCoMKgwqDCoMKgwqDC oGlmICghaGFuZGxlKSB7DQo+PiArLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQg PSAtMVVMTDsNCj4+ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9IC0xOw0K Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZW5kOw0KPj4gK8KgwqDC oMKgwqDCoMKgfQ0KPj4gK8KgwqDCoMKgwqDCoMKgaWYgKHR5cGUgPT0gQlRfQ0xPQ0tfUkVB TCkgew0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gaGFuZGxlLT5y ZWFsX3RpbWVzdGFtcF9lbmQ7DQo+PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAq dGltZXN0YW1wID0gaGFuZGxlLT5yZWFsX3RpbWVzdGFtcF9lbmQ7DQo+PiArwqDCoMKgwqDC oMKgwqB9IGVsc2UgaWYgKHR5cGUgPT0gQlRfQ0xPQ0tfQ1lDTEVTKSB7DQo+PiArLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBoYW5kbGUtPmN5Y2xlc190aW1lc3RhbXBf ZW5kOw0KPj4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKnRpbWVzdGFtcCA9IGhh bmRsZS0+Y3ljbGVzX3RpbWVzdGFtcF9lbmQ7DQo+PiArwqDCoMKgwqDCoMKgwqB9IGVsc2Ug ew0KPj4gKy3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gLTFVTEw7DQo+PiAr K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSAtMTsNCj4+ICvCoMKgwqDCoMKg wqDCoH0NCj4+ICsgDQo+PiArIGVuZDoNCj4+ICtkaWZmIC0tZ2l0IGEvdGVzdHMvbGliL3Rl c3RfY3RmX3dyaXRlci5jDQo+PiBiL3Rlc3RzL2xpYi90ZXN0X2N0Zl93cml0ZXIuYw0KPj4g K2luZGV4IDUzNjEzYzkxLi4yOWQ3NmRmOCAxMDA2NDQNCj4+ICstLS0gYS90ZXN0cy9saWIv dGVzdF9jdGZfd3JpdGVyLmMNCj4+ICsrKysgYi90ZXN0cy9saWIvdGVzdF9jdGZfd3JpdGVy LmMNCj4+ICtAQCAtNDUsNyArNDUsNyBAQA0KPj4gKyAjZGVmaW5lIFNFUVVFTkNFX1RFU1Rf TEVOR1RIIDEwDQo+PiArICNkZWZpbmUgUEFDS0VUX1JFU0laRV9URVNUX0xFTkdUSCAxMDAw MDANCj4+ICsgDQo+PiArLXN0YXRpYyB1aW50NjRfdCBjdXJyZW50X3RpbWU7DQo+PiArK3N0 YXRpYyBpbnQ2NF90IGN1cnJlbnRfdGltZTsNCj4+ICsgDQo+PiArIHZvaWQgdmFsaWRhdGVf bWV0YWRhdGEoY2hhciAqcGFyc2VyX3BhdGgsIGNoYXIgKm1ldGFkYXRhX3BhdGgpDQo+PiAr IHsNCj4+ICtAQCAtNjk1LDggKzY5NSw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikNCj4+ICvCoMKgwqDCoMKgwqDCoGNvbnN0IGNoYXIgKmNsb2NrX25hbWUgPSAidGVz dF9jbG9jayI7DQo+PiArwqDCoMKgwqDCoMKgwqBjb25zdCBjaGFyICpjbG9ja19kZXNjcmlw dGlvbiA9ICJUaGlzIGlzIGEgdGVzdCBjbG9jayI7DQo+PiArwqDCoMKgwqDCoMKgwqBjb25z dCB1aW50NjRfdCBmcmVxdWVuY3kgPSAxMDAwMDAwMDAwOw0KPj4gKy3CoMKgwqDCoMKgwqBj b25zdCB1aW50NjRfdCBvZmZzZXRfcyA9IDEzNTE1MzA5Mjk5NDU4MjQzMjM7DQo+PiArLcKg wqDCoMKgwqDCoGNvbnN0IHVpbnQ2NF90IG9mZnNldCA9IDEyMzQ1Njc7DQo+PiArK8KgwqDC oMKgwqDCoGNvbnN0IGludDY0X3Qgb2Zmc2V0X3MgPSAxMzUxNTMwOTI5OTQ1ODI0MzIzOw0K Pj4gKyvCoMKgwqDCoMKgwqBjb25zdCBpbnQ2NF90IG9mZnNldCA9IDEyMzQ1Njc7DQo+PiAr wqDCoMKgwqDCoMKgwqBjb25zdCB1aW50NjRfdCBwcmVjaXNpb24gPSAxMDsNCj4+ICvCoMKg wqDCoMKgwqDCoGNoYXIgKm1ldGFkYXRhX3N0cmluZzsNCj4+ICvCoMKgwqDCoMKgwqDCoHN0 cnVjdCBidF9jdGZfd3JpdGVyICp3cml0ZXI7DQo+PiArZGlmZiAtLWdpdCBhL3Rlc3RzL2xp Yi90ZXN0X3NlZWsuYyBiL3Rlc3RzL2xpYi90ZXN0X3NlZWsuYw0KPj4gK2luZGV4IDNjNzhl OGFkLi4wNGJlYWY5NyAxMDA2NDQNCj4+ICstLS0gYS90ZXN0cy9saWIvdGVzdF9zZWVrLmMN Cj4+ICsrKysgYi90ZXN0cy9saWIvdGVzdF9zZWVrLmMNCj4+ICtAQCAtMzMsNyArMzMsNyBA QA0KPj4gKyAjaW5jbHVkZSA8dGFwL3RhcC5oPg0KPj4gKyAjaW5jbHVkZSAiY29tbW9uLmgi DQo+PiArIA0KPj4gKy0jZGVmaW5lIE5SX1RFU1RTwqDCoMKgwqDCoMKgMjkNCj4+ICsrI2Rl ZmluZSBOUl9URVNUU8KgwqDCoMKgwqDCoDM2DQo+PiArIA0KPj4gKyB2b2lkIHJ1bl9zZWVr X2JlZ2luKGNoYXIgKnBhdGgsIHVpbnQ2NF90IGV4cGVjdGVkX2JlZ2luKQ0KPj4gKyB7DQo+ PiArQEAgLTQyLDggKzQyLDggQEAgdm9pZCBydW5fc2Vla19iZWdpbihjaGFyICpwYXRoLCB1 aW50NjRfdA0KPj4gZXhwZWN0ZWRfYmVnaW4pDQo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg YnRfY3RmX2V2ZW50ICpldmVudDsNCj4+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBidF9pdGVy X3BvcyBuZXdwb3M7DQo+PiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Ow0KPj4gKy3CoMKgwqDC oMKgwqB1aW50NjRfdCB0aW1lc3RhbXBfYmVnaW47DQo+PiArLcKgwqDCoMKgwqDCoHVpbnQ2 NF90IHRpbWVzdGFtcF9zZWVrX2JlZ2luOw0KPj4gKyvCoMKgwqDCoMKgwqBpbnQ2NF90IHRp bWVzdGFtcF9iZWdpbjsNCj4+ICsrwqDCoMKgwqDCoMKgaW50NjRfdCB0aW1lc3RhbXBfc2Vl a19iZWdpbjsNCj4+ICvCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGludCBucl9zZWVrX2JlZ2lu X3Rlc3Q7DQo+PiArIA0KPj4gK8KgwqDCoMKgwqDCoMKgbnJfc2Vla19iZWdpbl90ZXN0ID0g NTsNCj4+ICtAQCAtNjcsNyArNjcsNyBAQCB2b2lkIHJ1bl9zZWVrX2JlZ2luKGNoYXIgKnBh dGgsIHVpbnQ2NF90DQo+PiBleHBlY3RlZF9iZWdpbikNCj4+ICvCoMKgwqDCoMKgwqDCoG9r KGV2ZW50LCAiRXZlbnQgdmFsaWQiKTsNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqAvKiBW YWxpZGF0ZSB0aGF0IHRoZSBmaXJzdCB0aW1lc3RhbXAgaXMgcmlnaHQgKi8NCj4+ICstwqDC oMKgwqDCoMKgdGltZXN0YW1wX2JlZ2luID0gYnRfY3RmX2dldF90aW1lc3RhbXAoZXZlbnQp Ow0KPj4gKyvCoMKgwqDCoMKgwqBvazEoYnRfY3RmX2dldF90aW1lc3RhbXAoZXZlbnQsICZ0 aW1lc3RhbXBfYmVnaW4pID09IDApOw0KPj4gKyANCj4+ICvCoMKgwqDCoMKgwqDCoG9rMSh0 aW1lc3RhbXBfYmVnaW4gPT0gZXhwZWN0ZWRfYmVnaW4pOw0KPj4gKyANCj4+ICtAQCAtODEs OCArODEsOCBAQCB2b2lkIHJ1bl9zZWVrX2JlZ2luKGNoYXIgKnBhdGgsIHVpbnQ2NF90DQo+ PiBleHBlY3RlZF9iZWdpbikNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqBvayhldmVudCwg IkV2ZW50IHZhbGlkIik7DQo+PiArIA0KPj4gKy3CoMKgwqDCoMKgwqB0aW1lc3RhbXBfc2Vl a19iZWdpbiA9IGJ0X2N0Zl9nZXRfdGltZXN0YW1wKGV2ZW50KTsNCj4+ICstDQo+PiArK8Kg wqDCoMKgwqDCoG9rMShidF9jdGZfZ2V0X3RpbWVzdGFtcChldmVudCwgJnRpbWVzdGFtcF9z ZWVrX2JlZ2luKSA9PSAwKTsNCj4+ICsrwqDCoMKgwqDCoMKgDQo+PiArwqDCoMKgwqDCoMKg wqBvazEodGltZXN0YW1wX2JlZ2luID09IHRpbWVzdGFtcF9zZWVrX2JlZ2luKTsNCj4+ICsg DQo+PiArwqDCoMKgwqDCoMKgwqBidF9jb250ZXh0X3B1dChjdHgpOw0KPj4gK0BAIC05Niw3 ICs5Niw3IEBAIHZvaWQgcnVuX3NlZWtfbGFzdChjaGFyICpwYXRoLCB1aW50NjRfdA0KPj4g ZXhwZWN0ZWRfbGFzdCkNCj4+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBidF9jdGZfZXZlbnQg KmV2ZW50Ow0KPj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGJ0X2l0ZXJfcG9zIG5ld3BvczsN Cj4+ICvCoMKgwqDCoMKgwqDCoGludCByZXQ7DQo+PiArLcKgwqDCoMKgwqDCoHVpbnQ2NF90 IHRpbWVzdGFtcF9sYXN0Ow0KPj4gKyvCoMKgwqDCoMKgwqBpbnQ2NF90IHRpbWVzdGFtcF9s YXN0Ow0KPj4gK8KgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IG5yX3NlZWtfbGFzdF90ZXN0 czsNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqBucl9zZWVrX2xhc3RfdGVzdHMgPSA2Ow0K Pj4gK0BAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBydW5fc2Vla19sYXN0KGNoYXIgKnBhdGgs IHVpbnQ2NF90DQo+PiBleHBlY3RlZF9sYXN0KQ0KPj4gKyANCj4+ICvCoMKgwqDCoMKgwqDC oG9rKGV2ZW50LCAiRXZlbnQgdmFsaWQgYXQgbGFzdCBwb3NpdGlvbiIpOw0KPj4gKyANCj4+ ICstwqDCoMKgwqDCoMKgdGltZXN0YW1wX2xhc3QgPSBidF9jdGZfZ2V0X3RpbWVzdGFtcChl dmVudCk7DQo+PiArK8KgwqDCoMKgwqDCoG9rMShidF9jdGZfZ2V0X3RpbWVzdGFtcChldmVu dCwgJnRpbWVzdGFtcF9sYXN0KSA9PSAwKTsNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqBv azEodGltZXN0YW1wX2xhc3QgPT0gZXhwZWN0ZWRfbGFzdCk7DQo+PiArIA0KPj4gK0BAIC0x NTIsNyArMTUyLDcgQEAgdm9pZCBydW5fc2Vla190aW1lX2F0X2xhc3QoY2hhciAqcGF0aCwg dWludDY0X3QNCj4+IGV4cGVjdGVkX2xhc3QpDQo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg YnRfY3RmX2V2ZW50ICpldmVudDsNCj4+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBidF9pdGVy X3BvcyBuZXdwb3M7DQo+PiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Ow0KPj4gKy3CoMKgwqDC oMKgwqB1aW50NjRfdCB0aW1lc3RhbXBfbGFzdDsNCj4+ICsrwqDCoMKgwqDCoMKgaW50NjRf dCB0aW1lc3RhbXBfbGFzdDsNCj4+ICvCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGludCBucl9z ZWVrX3RpbWVfYXRfbGFzdF90ZXN0czsNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqBucl9z ZWVrX3RpbWVfYXRfbGFzdF90ZXN0cyA9IDY7DQo+PiArQEAgLTE4OCw3ICsxODgsNyBAQCB2 b2lkIHJ1bl9zZWVrX3RpbWVfYXRfbGFzdChjaGFyICpwYXRoLCB1aW50NjRfdA0KPj4gZXhw ZWN0ZWRfbGFzdCkNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqBvayhldmVudCwgIkV2ZW50 IHZhbGlkIGF0IGxhc3QgcG9zaXRpb24iKTsNCj4+ICsgDQo+PiArLcKgwqDCoMKgwqDCoHRp bWVzdGFtcF9sYXN0ID0gYnRfY3RmX2dldF90aW1lc3RhbXAoZXZlbnQpOw0KPj4gKyvCoMKg wqDCoMKgwqBvazEoYnRfY3RmX2dldF90aW1lc3RhbXAoZXZlbnQsICZ0aW1lc3RhbXBfbGFz dCkgPT0gMCk7DQo+PiArIA0KPj4gK8KgwqDCoMKgwqDCoMKgb2sxKHRpbWVzdGFtcF9sYXN0 ID09IGV4cGVjdGVkX2xhc3QpOw0KPj4gKyANCj4+ICtAQCAtMjEzLDcgKzIxMyw3IEBAIHZv aWQgcnVuX3NlZWtfY3ljbGVzKGNoYXIgKnBhdGgsDQo+PiArwqDCoMKgwqDCoMKgwqBzdHJ1 Y3QgYnRfY3RmX2V2ZW50ICpldmVudDsNCj4+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBidF9p dGVyX3BvcyBuZXdwb3M7DQo+PiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Ow0KPj4gKy3CoMKg wqDCoMKgwqB1aW50NjRfdCB0aW1lc3RhbXA7DQo+PiArK8KgwqDCoMKgwqDCoGludDY0X3Qg dGltZXN0YW1wOw0KPj4gKyANCj4+ICvCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGludCBucl9z ZWVrX2N5Y2xlc190ZXN0czsNCj4+ICsgDQo+PiArQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lk IHJ1bl9zZWVrX2N5Y2xlcyhjaGFyICpwYXRoLA0KPj4gKyANCj4+ICvCoMKgwqDCoMKgwqDC oG9rKGV2ZW50LCAiRXZlbnQgdmFsaWQgYXQgbGFzdCBwb3NpdGlvbiIpOw0KPj4gKyANCj4+ ICstwqDCoMKgwqDCoMKgdGltZXN0YW1wID0gYnRfY3RmX2dldF90aW1lc3RhbXAoZXZlbnQp Ow0KPj4gKyvCoMKgwqDCoMKgwqBvazEoYnRfY3RmX2dldF90aW1lc3RhbXAoZXZlbnQsICZ0 aW1lc3RhbXApID09IDApOw0KPj4gKyANCj4+ICvCoMKgwqDCoMKgwqDCoG9rMSh0aW1lc3Rh bXAgPT0gZXhwZWN0ZWRfbGFzdCk7DQo+PiArIA0KPj4gK0BAIC0yNzAsNyArMjcwLDcgQEAg dm9pZCBydW5fc2Vla19jeWNsZXMoY2hhciAqcGF0aCwNCj4+ICsgDQo+PiArwqDCoMKgwqDC oMKgwqBvayhldmVudCwgIkV2ZW50IHZhbGlkIGF0IGZpcnN0IHBvc2l0aW9uIik7DQo+PiAr IA0KPj4gKy3CoMKgwqDCoMKgwqB0aW1lc3RhbXAgPSBidF9jdGZfZ2V0X3RpbWVzdGFtcChl dmVudCk7DQo+PiArK8KgwqDCoMKgwqDCoG9rMShidF9jdGZfZ2V0X3RpbWVzdGFtcChldmVu dCwgJnRpbWVzdGFtcCkgPT0gMCk7DQo+PiArIA0KPj4gK8KgwqDCoMKgwqDCoMKgb2sxKHRp bWVzdGFtcCA9PSBleHBlY3RlZF9iZWdpbik7DQo+PiArIA0KPj4gK0BAIC0yODQsNyArMjg0 LDcgQEAgdm9pZCBydW5fc2Vla19jeWNsZXMoY2hhciAqcGF0aCwNCj4+ICsgDQo+PiArwqDC oMKgwqDCoMKgwqBvayhldmVudCwgIkV2ZW50IHZhbGlkIGF0IGxhc3QgcG9zaXRpb24iKTsN Cj4+ICsgDQo+PiArLcKgwqDCoMKgwqDCoHRpbWVzdGFtcCA9IGJ0X2N0Zl9nZXRfdGltZXN0 YW1wKGV2ZW50KTsNCj4+ICsrwqDCoMKgwqDCoMKgb2sxKGJ0X2N0Zl9nZXRfdGltZXN0YW1w KGV2ZW50LCAmdGltZXN0YW1wKSA9PSAwKTsNCj4+ICsgDQo+PiArwqDCoMKgwqDCoMKgwqBv azEodGltZXN0YW1wID09IGV4cGVjdGVkX2xhc3QpOw0KPj4gKyANCj4+ICstLSANCj4+ICsy LjI1LjENCj4+ICsNCj4+IGRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMta2VybmVsL2x0dG5n L2JhYmVsdHJhY2VfMS41LjguYmINCj4+IGIvbWV0YS9yZWNpcGVzLWtlcm5lbC9sdHRuZy9i YWJlbHRyYWNlXzEuNS44LmJiDQo+PiBpbmRleCA5ZTVkM2E3YTk3Li44NjY2NGIxNGJhIDEw MDY0NA0KPj4gLS0tIGEvbWV0YS9yZWNpcGVzLWtlcm5lbC9sdHRuZy9iYWJlbHRyYWNlXzEu NS44LmJiDQo+PiArKysgYi9tZXRhL3JlY2lwZXMta2VybmVsL2x0dG5nL2JhYmVsdHJhY2Vf MS41LjguYmINCj4+IEBAIC05LDYgKzksNyBAQCBERVBFTkRTID0gImdsaWItMi4wIHV0aWwt bGludXggcG9wdCBiaXNvbi1uYXRpdmUNCj4+IGZsZXgtbmF0aXZlIg0KPj4gwqANCj4+IMKg U1JDX1VSSSA9ICJnaXQ6Ly9naXQuZWZmaWNpb3MuY29tL2JhYmVsdHJhY2UuZ2l0O2JyYW5j aD1zdGFibGUtMS41IFwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZpbGU6Ly9ydW4tcHRl c3TCoFwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqANCj4+IGZpbGU6Ly8wMDAxLUhhbmRsZS1u ZWdhdGl2ZS10aW1lLWFuZC1vZmZzZXQtZnJvbS1FcG9jaC5wYXRjaMKgXA0KPj4gwqDCoMKg wqDCoMKgwqDCoMKgICINCj4+IMKgU1JDUkVWID0gIjA1NGE1NGFlMTBiMDFhMjcxYWZjNGYx OTQ5NmMwNDFiMTBmYjQxNGMiDQo+PiDCoFVQU1RSRUFNX0NIRUNLX0dJVFRBR1JFR0VYID0g InYoP1A8cHZlcj4xKFwuXGQrKSspJCINCj4+DQo+PiAtPS09LT0tPS09LT0tPS09LT0tPS09 LQ0KPj4gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3Jv dXAuDQo+PiBWaWV3L1JlcGx5IE9ubGluZSAoIzE2Mjk1Mik6DQo+PiBodHRwczovL2xpc3Rz Lm9wZW5lbWJlZGRlZC5vcmcvZy9vcGVuZW1iZWRkZWQtY29yZS9tZXNzYWdlLzE2Mjk1Mg0K Pj4gTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2xpc3RzLm9wZW5lbWJlZGRlZC5vcmcvbXQv ODk2NTc5NzIvMzYxNjcwMg0KPj4gR3JvdXAgT3duZXI6IG9wZW5lbWJlZGRlZC1jb3JlK293 bmVyQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcNCj4+IFVuc3Vic2NyaWJlOg0KPj4gaHR0cHM6 Ly9saXN0cy5vcGVuZW1iZWRkZWQub3JnL2cvb3BlbmVtYmVkZGVkLWNvcmUvdW5zdWLCoFsN Cj4+IGFudWoubWl0dGFsQGludGVsLmNvbV0NCj4+IC09LT0tPS09LT0tPS09LT0tPS09LT0t DQo+Pg0KDQo=