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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4D24EC10F1A for ; Tue, 7 May 2024 13:10:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BAB4210F9AE; Tue, 7 May 2024 13:10:52 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="nnZ87oq0"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6455C10F969; Tue, 7 May 2024 13:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1715087450; x=1746623450; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tf+0TWEOvPFBDlGy1svvAE2G3sRia6TpQ1dfpOKOUvU=; b=nnZ87oq021EklYSFTwJcZNe8JOSQR3TXFXy+h7xIKNX07xIXFSniZo9Y dwRvH95/je2Ze9acHB53ghGXPBAqIEWyZvLimFUVcMK2rRDNJtUJ03QKT aIrK2/3wcSpQ76enpzGSm3kbIVVlTZyQ2bo++SE6wYGsEej4w9cZvCts3 5rZDJrILcfe4g1aTf0uvUtbEVT51KdxBREBnlQLIOMa44OlQR7YArFa2x Ld2xFWWFXw5aQOQnxdF/NlCPo0qFs8T1WvfH4pF/4+emLMW1jv75+5qLT /soAG6WRr+mjZfH0JIn7DWwDQZeYWg0fOO+lC1CfAXR2kMOB7Dt1FDYEw Q==; X-CSE-ConnectionGUID: x7o1Drr1ReWid2fU6GfY2g== X-CSE-MsgGUID: NN3iSI96TAG5SAlUXLu6BQ== X-IronPort-AV: E=McAfee;i="6600,9927,11065"; a="11408999" X-IronPort-AV: E=Sophos;i="6.08,261,1712646000"; d="scan'208";a="11408999" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2024 06:10:50 -0700 X-CSE-ConnectionGUID: 9VGm6OEBRq2XfuKgp58HXQ== X-CSE-MsgGUID: 5W3we3TCS2mUmCJXVvQmqA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,261,1712646000"; d="scan'208";a="32984173" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmviesa005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 May 2024 06:10:49 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 7 May 2024 06:10:49 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 7 May 2024 06:10:49 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 7 May 2024 06:10:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OjG0DbVPVHyZBWEvwlRwQmepZi3l1zH06wCSj8e+XzmayW/jd56dWf+a/RNoYbnIcUFUgop0PO9npINHWh7tej4odfq5Vp1Rdy9ISIid9hv5Dovuff2punSBQT1wI/kadAmoYPDyMTLQzyL9Y1Ibxra2bgp0bvzP4pBZeCJOSGPD/gPao4ZSrS+W8/ktlKzgrzgjsP/dHZargDhM0n4fwt5H3fyxzJptE4RwKpXxgCYmi+bd1/hIP51OH1cIrbt1+P9nL9oHccQNajIZfr+21I0zmFVoRlvfE1DLvyAsolX8RZB2E0brHiCzrTxhe8X+nSlM0bCeiSkgECMNratpoQ== 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=tf+0TWEOvPFBDlGy1svvAE2G3sRia6TpQ1dfpOKOUvU=; b=X+euIPEBR+jZ3RTu+ha6g98K9Q970gKbEq7mWoDcc+HFnY/QgQEMno0AkRDGrsHTnpINeXOhyEwZP8zlrBRSdV7NuWmNMc1xz8K61Ho1d6o6E5hlvVT7r0iKXliXSSDZNUuEOd+RulwTDumdlW9w74ckTGP79PATd2g99PDSyhTfl6+mdG6Rn3N+qF60pdzznJNR/+bU40TiMBFJLhz8Y3ZHB4mKHBRS8nOWmMPhoorDXO3htGfi2P06zK72te8222hoCjOLpfvl1DAjVV++xvycYAhPz9UpDZ0OsfRJixjYQLBNi2Emeg/lqUIjdOVPZIp2lKD0lCZ46S1kToaIxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH8PR11MB6753.namprd11.prod.outlook.com (2603:10b6:510:1c8::22) by CH3PR11MB7722.namprd11.prod.outlook.com (2603:10b6:610:122::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.42; Tue, 7 May 2024 13:10:16 +0000 Received: from PH8PR11MB6753.namprd11.prod.outlook.com ([fe80::872:479f:4c28:21b5]) by PH8PR11MB6753.namprd11.prod.outlook.com ([fe80::872:479f:4c28:21b5%6]) with mapi id 15.20.7544.036; Tue, 7 May 2024 13:10:11 +0000 From: "Illipilli, TejasreeX" To: Manasi Navare , "Saarinen, Jani" CC: "Modem, Bhanuprakash" , "igt-dev@lists.freedesktop.org" , "Drew Davenport" , =?utf-8?B?VmlsbGUgU3lyasOkbMOk?= , Sean Paul , "I915-ci-infra@lists.freedesktop.org" Subject: RE: [PATCH v3 1/2] tests/kms_vrr: Add a subtest for seamless modeset to a virtual LRR mode Thread-Topic: [PATCH v3 1/2] tests/kms_vrr: Add a subtest for seamless modeset to a virtual LRR mode Thread-Index: AQHaloP2VppOdXOPIkevRW9neBXqibF4mkcAgACA/4CAAM+3AIAAREQAgADCjYCAAAT/AIAAAPEAgAAE54CABhbZgIAA8v6AgAAgKgCACHuQAIABMGCg Date: Tue, 7 May 2024 13:10:11 +0000 Message-ID: References: <20240424201344.783935-1-navaremanasi@chromium.org> <64cef3df-1610-4d53-a44c-905220e09b76@intel.com> <682dccc4-c788-4bfd-b8ef-b24d60b488d6@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH8PR11MB6753:EE_|CH3PR11MB7722:EE_ x-ms-office365-filtering-correlation-id: 432da9c1-6ce6-4a41-7b5d-08dc6e9706d5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?QUFydzZ0UkllZ0NLV296OG1qNHZYc0lrR2g5bTl6U1JQUHFCbUptVFBZeE1t?= =?utf-8?B?cFhic1VyYnpsUWtjbHgrUzRSN0RpMXpHN2FrOXUzK0kyWnZCU21RT01BUi9J?= =?utf-8?B?YkVBS0Y0OWJBdGFkbHFmQmR3S2FBUnpVRHk4KzRDcHl3Vjd6dldIbEhYMCtX?= =?utf-8?B?bmkya1RzS1ZqejZRNmtQa3d5ZnhDcVVUbjREZ3BQdE1pbmdyenY3OW05UG02?= =?utf-8?B?eXVhT1R6c3FFQTF2ZXRraGkreWpCRUUwellYelp4QWtJRUVDWmkwMlpQNW1Z?= =?utf-8?B?c1pvNENvd21GeDBYVjJCa1VtOFN4YXpERWFXQzFBOE1qcDhJZ2haUlU3ZktL?= =?utf-8?B?SVQ0VUExYTJ3MjZiWU4zczJHV1dCQUdaR2loMERkM0ZoM0tVbGpLNU9xQTNC?= =?utf-8?B?ZzJJay9Zems0QTloV2g2SEdrR1l5bG0wUUhaT29pUHA1U2toemR4NG5CYmxt?= =?utf-8?B?TVFjdERiVFV4WGNZQmh6S3RzTlZBdHljUUQzRndXRVFzaDNBWDIxbFdxUGNM?= =?utf-8?B?NjRvQytvWm9lM0dDVXhxSjkvOVkvSmhYRm1ITUUwdGd0cHQva3c1OVUyZzhY?= =?utf-8?B?alNJVGFyQUtZV0lQYlU3QU1rTm5DM1FveUsvMWRhajFubVhlSmRBZ05IUGxW?= =?utf-8?B?Wmd2ZnlBbGJXYXc5TnpaeStMOHhWUFJxbWkyOERHOEV4RlM3cTYzUldRZGY4?= =?utf-8?B?MzdiWFd2M1REdk9YTFB2OFZHTXVySDlXazU2cGNEaThwN2tacUFrVHA3Nm9Q?= =?utf-8?B?TlNGMUtPS1FHYkdDNlhOM28wRDJtQm4xbDN1OTlSYk0ySW9BTVNLWjF5Mjlv?= =?utf-8?B?eGlkMklWVk9zL3ZibmJqVlp6ckZFVWVldGlrQ1FZcXJudGVBL0FyeDFBb1RK?= =?utf-8?B?c2ZQUDVhamVVMXdYTmtHaVoyQ2tHejFBeEZVVm9ndFNnNHk1WnM4cjVNeFpS?= =?utf-8?B?TE1hcHJ5U1Y1bzQwZ3lXSHVVS0d6S0cyajZ0MXNnOHNNM1hnK00ybUVPdjV0?= =?utf-8?B?cXRIMDdMbHFON204cmp0TVJlWDMzblZodXByMUpkcER5NldrSVpxWEtZSTRn?= =?utf-8?B?ank4L2p6K2JLeHlKL0Z0VDNhS0gyUGFYb3haRFYrWGFVZGM4YzFuenNpZmdq?= =?utf-8?B?VStXVzZXdnJ6T1pZRlRWSmQ1KzVIT0NTMENMV3NlMFRsRnBadFhhOWUydUtY?= =?utf-8?B?Vyt3Q0RpWG9aQlk4RVJXUDJmbFRDTkdTcG1BbWRjS3NRRnU5TFpHejVwa2xO?= =?utf-8?B?UHJ1bFN1RVNRTkFjZVEzdGtnQy9USUtYYU1JOEd2SENsWTlCTU5lVCszWXdk?= =?utf-8?B?K0F3SDFMZWE5eFZzSkZ2K3NyNnJFeTVEanQ1M01wYVBNbFE2K0NrT0EzTStC?= =?utf-8?B?UVZVUDVFY1JlZXlqSVhhSUlWZ3BJR0hzRDJxVlZyMDRyYzNkQ205SmM3RmNk?= =?utf-8?B?Z28xR0h0cFpwbXdoRGxTbW5iVmdLeVA0dTU2c1poN2czQW1sSWZRWWxPV0ZF?= =?utf-8?B?TGp5cTlMWEQ2NjI2ZFltZjdmSDJ3UmxWVXFSS1l5a002LzU3RThlMHo5LzFY?= =?utf-8?B?cHFEb3VZLzQySmRrTHBzNFZVbHZxalJQZVNzNkhEcDVaNW5EWEpvNjd5eHhQ?= =?utf-8?B?YTFlSmREdHVUenNZTnVsVXJHY2djL2hFb1RGUmFlUmVSb2I1QU1oVDg3WS9L?= =?utf-8?B?QTJ0TDQvKzNPNWpXVGN4MW5KbmFGRmU2TXNOWEs4amNtWUxyV1lnSEEwS2E1?= =?utf-8?Q?p/kd3jV64FpTQpxEhs=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH8PR11MB6753.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WlM0ZUM2Z1piYmxPc2w0SkRjcUhJYkdZc21Qc3FoWjBDRnFmYUJRSVg0b0FE?= =?utf-8?B?WDZoWTVKTE9qT3AzZE9jQXJ0MG85WTBQWnVEWEx0TCtvdVF3MnE2aEoyUlM0?= =?utf-8?B?NzN2QjFxSTZwdmxTcFF2MmUvZjJCZnV1SzFKNW9MdTB5bm5xNTVVeVkzTjRi?= =?utf-8?B?WFE4Y1dKTEZxWTRwejZ6K2hzOTdWZ2dSVlAxNGVSWU5wQStCNStNd2VDTHc2?= =?utf-8?B?aTZRbmVjZmtNd2xjRW1HQ1ZkMVlrRnkwcUpEUXE5YjlhRElEZlNKTHZCVE9P?= =?utf-8?B?QktkczVBcFhHRjNMdlkvQ09FSnRZR1h4bGkyNktFNkVyVmhrL0FtWGtsZmxX?= =?utf-8?B?elR6enNrWXhGQ0pwclJzOENBZFVXTjhxVUJuZU1LRlAreW5weERZNnBkRUpT?= =?utf-8?B?VSsrci9KV1RPQWVpaUpmOW9vK2Zzakk4Ymk2NjNUbmdsem5HSllLd1hGZ3ND?= =?utf-8?B?WGlWM3ZTbUlEWUV1S3Y1WE0xT0xsaGQwOWhTZUFnNzFXZ3g2cG9lWUpPc1dE?= =?utf-8?B?UDRSMmxWR29lNFN0Uy9WMHBleDhRZVE2RzVOTE0xYlZMQnFITnl5MEM2ZDN6?= =?utf-8?B?OFZTV090WlMzWUcvZFYweno0T21rTk80YWdMYlQvSkN5cjlQQ0ZMNE9hN2dW?= =?utf-8?B?c1RkQlpwbmpBcndZZkpObThFUzRQR3cvRW1vb0NENExlKzhLS05BdkE1QlRN?= =?utf-8?B?NkZnWFViZzVQVnZUNk9SYXJGVkU3Y0lNcEpMR254aEJLS1l4YWhoRCs5Tm5m?= =?utf-8?B?dEkvRzc2aE84VkRQS05FLzlPYit4dlFLZS9OUmVDTUpaaTFuVnpzSWZjV2lq?= =?utf-8?B?NjJTc1REVG5VQ2pTS1FVTE9GVjREWkZGeGdCd2pJWUtyNFRzY2Q0bDNibzhs?= =?utf-8?B?N3NYNEZqQzNkQ2VZRXNNLzg5REkrWURlYmFBR21WaFlDMXhBUnlpZmNqRFFl?= =?utf-8?B?bU1Jci9oQjN1VDNicG1mWGJlWFFyaUpLYmVIMGlacVo5TlVFMlQyQXV4RDd5?= =?utf-8?B?b3JXK29OanFXUDRUTzBnY0t3aGYxSzV6dXMvRkJDTGdEOHQzTVJFUUNiVEFt?= =?utf-8?B?UEwzOVI2TDlwd3NRZlVVWG03Wll6TXlDcXpGNE95TGU0ZVZ4N25zRkJFZjVl?= =?utf-8?B?WmVSVUFqbDg5RUZZWlE1MnkxcUdyOUJmdzlESE9HVUI4MS9oOHg3b1YxK1B3?= =?utf-8?B?NFY5SXFGSlZPcDRTMHBQRCszRFJNTm5qNGVxNmtHSWI2RjlSdFpEemttdHNm?= =?utf-8?B?MjVJY1J3V29RM3dZT1p1bi9HSGhoV2g0K2RtdzEwWjBrRHFoSEZraXJ1eU4z?= =?utf-8?B?emRmZmFlT1BkUm5BcVU3cmx2UGppMDhrQ1Bva0RUOC84VzdBSjdhRnJLQkZX?= =?utf-8?B?OVZaejRxcCtMdEtWNng3VkRPTXpaRDg3ai9aOXZNaVM2TzM1TUhGU1JsNGpM?= =?utf-8?B?ci9jS3M3RnMwUW84akhGbWYwSDdHbnBrdUh6T2dVWWlGZW5UMm9wNVpwV1hx?= =?utf-8?B?WTZYUDdLQm81dWd5Wk9WQ3FOZFFjL3E1MjJnL25aV3B5RWdueHFEOC9WMlVX?= =?utf-8?B?N2lvZ0RnOXdFV0R3OG9lczhGWmVHbFFhbmVCR2hUR05kcWFuMVdCVDVNQjQ5?= =?utf-8?B?RnpzeHJETEl1ZjZPbVlmU0FJazVsS1NyUDl2RHFRcEhJdU9xM1BzM2EwL1E4?= =?utf-8?B?MVhvMjlES2RiWC9zSzJQU1pCWStLaUpMbHphclVOSjZaZkQvYXVHSG1VTnJq?= =?utf-8?B?UHRqZ2p3S004WGFXMklqaVVWTkVBNGVNa3QvTitFK2NJSHFSeDJnQUljQW5r?= =?utf-8?B?T0x2VTlMUDEydUIvNlBMdlY4WlJRKzJGbWIyVmFiTFRQTms5Ym1LR1RZWGxG?= =?utf-8?B?VVNrbVVVbGliaVJhRVZRRk8zY01xSXVsek9XeWRjcThObmt5TUVVZU5YL0Rj?= =?utf-8?B?K3VFb3BNWDE5cnNLVmJ3VjJvcXJoV1NoN2dhY3pZZ283dmlUNk51NExRM3Aw?= =?utf-8?B?ZEx1K1ZiM2tITUJiWGdJZkYySktUaUJOdU81UjNPUEJTUzVjT2NtSVBSMlBL?= =?utf-8?B?M2hCSlMwMjNONkFRY0RrMWxtbXhiRHhRY2tVTmI5b1dnUll2RzJ4R29JQ0VE?= =?utf-8?B?MEtCK0Vlb0pqV0hOc1Bqa09wU0x4cDlLSVlxeCt5UmF3ME44NWZYNlRtd1lS?= =?utf-8?B?VFE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH8PR11MB6753.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 432da9c1-6ce6-4a41-7b5d-08dc6e9706d5 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2024 13:10:11.3038 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Nz8o4uWyY4feFihM3HOLfqUpjXAcp0aHc41DoWv1rUQ657VZoEfHez8p14kIhVforOr7JKCkR+HvmLqkAdAIZl+fdYSiPu/V6J5szO45Gds= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB7722 X-OriginatorOrg: intel.com X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" SGkgTWFuYXNpLA0KDQpUaGlzIFBXIGNhbm5vdCBiZSByZS1yZXBvcnRlZCwgcmVzdWx0cyB3ZXJl IGFscmVhZHkgZHJvcHBlZCBmcm9tIHRoZSBzZXJ2ZXIuIFJlc3VsdHMgYXJlIGtlcHQgZm9yIGEg d2VlayBvbmx5LiBQbGVhc2UgdHJ5IHJlLXRlc3QuDQoNClRoYW5rcywNClRlamFzcmVlDQoNCi0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBpZ3QtZGV2IDxpZ3QtZGV2LWJvdW5jZXNA bGlzdHMuZnJlZWRlc2t0b3Aub3JnPiBPbiBCZWhhbGYgT2YgTWFuYXNpIE5hdmFyZQ0KU2VudDog VHVlc2RheSwgTWF5IDcsIDIwMjQgMTI6MzAgQU0NClRvOiBTYWFyaW5lbiwgSmFuaSA8amFuaS5z YWFyaW5lbkBpbnRlbC5jb20+DQpDYzogTW9kZW0sIEJoYW51cHJha2FzaCA8YmhhbnVwcmFrYXNo Lm1vZGVtQGludGVsLmNvbT47IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBEcmV3IERh dmVucG9ydCA8ZGRhdmVucG9ydEBjaHJvbWl1bS5vcmc+OyBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPjsgU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5v cmc+OyBJOTE1LWNpLWluZnJhQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KU3ViamVjdDogUmU6IFtQ QVRDSCB2MyAxLzJdIHRlc3RzL2ttc192cnI6IEFkZCBhIHN1YnRlc3QgZm9yIHNlYW1sZXNzIG1v ZGVzZXQgdG8gYSB2aXJ0dWFsIExSUiBtb2RlDQoNCkhpLA0KDQpUaGUgcmVwb3J0ZWQgY2hhbmdl cyBoYXZlIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgY2hhbmdlcyBpbnRyb2R1Y2VkIGluDQpJR1RQ V18xMTA3OSBhbmQgbmVlZCB0byBiZSBkb2N1bWVudGVkIGFzIG5ldyBmYWlsdXJlIG1vZGUuDQoN ClJlZ2FyZHMNCk1hbmFzaQ0KDQpPbiBXZWQsIE1heSAxLCAyMDI0IGF0IDI6MjfigK9BTSBTYWFy aW5lbiwgSmFuaSA8amFuaS5zYWFyaW5lbkBpbnRlbC5jb20+IHdyb3RlOg0KPg0KPiBIaSwNCj4N Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE1hbmFzaSBOYXZhcmUg PG5hdmFyZW1hbmFzaUBjaHJvbWl1bS5vcmc+DQo+ID4gU2VudDogV2VkbmVzZGF5LCAxIE1heSAy MDI0IDEwLjMzDQo+ID4gVG86IFNhYXJpbmVuLCBKYW5pIDxqYW5pLnNhYXJpbmVuQGludGVsLmNv bT4NCj4gPiBDYzogTW9kZW0sIEJoYW51cHJha2FzaCA8YmhhbnVwcmFrYXNoLm1vZGVtQGludGVs LmNvbT47IGlndC0gDQo+ID4gZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgRHJldyBEYXZlbnBv cnQgPGRkYXZlbnBvcnRAY2hyb21pdW0ub3JnPjsgDQo+ID4gVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT47IFNlYW4gUGF1bCANCj4gPiA8c2VhbnBhdWxAY2hy b21pdW0ub3JnPg0KPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMS8yXSB0ZXN0cy9rbXNfdnJy OiBBZGQgYSBzdWJ0ZXN0IGZvciANCj4gPiBzZWFtbGVzcyBtb2Rlc2V0IHRvIGEgdmlydHVhbCBM UlIgbW9kZQ0KPiA+DQo+ID4gSGkgSmFuaSwgQmhhbnUsDQo+ID4NCj4gPiBFdmVuIHdpdGggdGhl IHJlcnVuIHRoZXJlIGFyZSBzb21lIHNraXBzIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHRoZSAN Cj4gPiBjaGFuZ2VzIGluIHRoaXMgdGVzdC4gQ291bGQgeW91IHBsZWFzZSB0YWtlIGEgbG9vayBh bmQgbWVyZ2UgdGhpcyANCj4gPiBzaW5jZSBCaGFudSBhbHJlYWR5IHJldmlld2VkIHRoaXMuDQo+ IFlvdSBrbm93IGhvdyB0aGlzIGdvZXMuDQo+IElmIEJBVCBpcyBub3QgcGFzc2VkIHRoZXJlIGFy ZSBpbnN0cnVjdGlvbnMgc2VudCB0byBwYXRjaCBvd25lciB3aGF0IGFyZSBhY3Rpb25zIHRvIHRh a2UuIFlvdSBfbXVzdF8gZ2V0IEZ1bGwgQ0kgcmVzdWx0cy4NCj4gWW91IGhhdmUgZ290IEJBVCBy ZXN1bHRzIHdoZXJlIGl0IHNheXMgIiBGQUlMVVJFIFNlcmlvdXMgdW5rbm93biANCj4gY2hhbmdl cyBjb21pbmcgd2l0aCBJR1RQV18xMTA3OSBhYnNvbHV0ZWx5IG5lZWQgdG8gYmUgdmVyaWZpZWQg bWFudWFsbHkuDQo+IElmIHlvdSB0aGluayB0aGUgcmVwb3J0ZWQgY2hhbmdlcyBoYXZlIG5vdGhp bmcgdG8gZG8gd2l0aCB0aGUgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIElHVFBXXzExMDc5LCBwbGVh c2Ugbm90aWZ5IHlvdXIgYnVnIHRlYW0gKCdJOTE1LWNpLWluZnJhQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZycpIHRvIGFsbG93IHRoZW0gdG8gZG9jdW1lbnQgdGhpcyBuZXcgZmFpbHVyZSBtb2RlLCB3 aGljaCB3aWxsIHJlZHVjZSBmYWxzZSBwb3NpdGl2ZXMgaW4gQ0kuIg0KPg0KPiA+DQo+ID4gUmVn YXJkcw0KPiA+IE1hbmFzaQ0KPg0KPiBCciwNCj4gSmFuaQ0KPg0KPiA+DQo+ID4gT24gVHVlLCBB cHIgMzAsIDIwMjQgYXQgMTA6MDPigK9BTSBNYW5hc2kgTmF2YXJlIA0KPiA+IDxuYXZhcmVtYW5h c2lAY2hyb21pdW0ub3JnPiB3cm90ZToNCj4gPiA+DQo+ID4gPiBIaSBCaGFudSwNCj4gPiA+DQo+ ID4gPiBDb3VsZCB5b3UgcGxlYXNlIGdldCB0aGlzIGxhbmRlZD8NCj4gPiA+DQo+ID4gPiBSZWdh cmRzDQo+ID4gPiBNYW5hc2kNCj4gPiA+DQo+ID4gPiBPbiBGcmksIEFwciAyNiwgMjAyNCBhdCAx OjAz4oCvUE0gU2FhcmluZW4sIEphbmkgDQo+ID4gPiA8amFuaS5zYWFyaW5lbkBpbnRlbC5jb20+ DQo+ID4gd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+IEhpLA0KPiA+ID4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogTWFuYXNpIE5hdmFyZSA8bmF2YXJlbWFu YXNpQGNocm9taXVtLm9yZz4NCj4gPiA+ID4gPiBTZW50OiBGcmlkYXksIDI2IEFwcmlsIDIwMjQg MjIuNDYNCj4gPiA+ID4gPiBUbzogU2FhcmluZW4sIEphbmkgPGphbmkuc2FhcmluZW5AaW50ZWwu Y29tPg0KPiA+ID4gPiA+IENjOiBNb2RlbSwgQmhhbnVwcmFrYXNoIDxiaGFudXByYWthc2gubW9k ZW1AaW50ZWwuY29tPjsgaWd0LSANCj4gPiA+ID4gPiBkZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn OyBEcmV3IERhdmVucG9ydCANCj4gPiA+ID4gPiA8ZGRhdmVucG9ydEBjaHJvbWl1bS5vcmc+OyBW aWxsZSBTeXJqw6Rsw6QgDQo+ID4gPiA+ID4gPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PjsgU2VhbiBQYXVsIA0KPiA+ID4gPiA+IDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+DQo+ID4gPiA+ ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAxLzJdIHRlc3RzL2ttc192cnI6IEFkZCBhIHN1YnRl c3QgZm9yIA0KPiA+ID4gPiA+IHNlYW1sZXNzIG1vZGVzZXQgdG8gYSB2aXJ0dWFsIExSUiBtb2Rl DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBHcmVhdCB0aGFua3MgSmFuaSwNCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IENvdWxkIHlvdSBwbGVhc2Uga2ljayBpbiBhIHJlIHJ1biBvbiB5b3VyIGVuZD8NCj4g PiA+ID4gRG9uZTogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy8xMzI4 NjYvI3JldjINCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFJlZ2FyZHMNCj4gPiA+ID4g PiBNYW5hc2kNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uIEZyaSwgQXByIDI2LCAyMDI0IGF0IDEy OjQy4oCvUE0gU2FhcmluZW4sIEphbmkgDQo+ID4gPiA+ID4gPGphbmkuc2FhcmluZW5AaW50ZWwu Y29tPg0KPiA+ID4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEhpLA0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ ID4gPiA+ID4gRnJvbTogTWFuYXNpIE5hdmFyZSA8bmF2YXJlbWFuYXNpQGNocm9taXVtLm9yZz4N Cj4gPiA+ID4gPiA+ID4gU2VudDogRnJpZGF5LCAyNiBBcHJpbCAyMDI0IDIyLjI1DQo+ID4gPiA+ ID4gPiA+IFRvOiBTYWFyaW5lbiwgSmFuaSA8amFuaS5zYWFyaW5lbkBpbnRlbC5jb20+DQo+ID4g PiA+ID4gPiA+IENjOiBNb2RlbSwgQmhhbnVwcmFrYXNoIDxiaGFudXByYWthc2gubW9kZW1AaW50 ZWwuY29tPjsgDQo+ID4gPiA+ID4gPiA+IGlndC0gZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsg RHJldyBEYXZlbnBvcnQNCj4gPiA+ID4gPiA8ZGRhdmVucG9ydEBjaHJvbWl1bS5vcmc+Ow0KPiA+ ID4gPiA+ID4gPiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PjsgU2VhbiBQYXVsIA0KPiA+ID4gPiA+ID4gPiA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPg0KPiA+ ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvMl0gdGVzdHMva21zX3ZycjogQWRk IGEgc3VidGVzdCANCj4gPiA+ID4gPiA+ID4gZm9yIHNlYW1sZXNzIG1vZGVzZXQgdG8gYSB2aXJ0 dWFsIExSUiBtb2RlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEhpIEJoYW51LCBKYW5p LA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJIGRvIHNlZSB0aGF0IGV2ZW4gdGhlIG90 aGVyIHZyciB0ZXN0cyA6DQo+ID4gPiA+ID4gPiA+IHNlYW1sZXNzLXJyLXN3aXRjaC12cnIgL2Ry cnMvIGJhc2ljLSBmYXN0c2V0IGFyZSBnZXR0aW5nIA0KPiA+ID4gPiA+ID4gPiBza2lwcGVkIG9u IEJBVCwgc28gaXRzIG5vdCByZWxhdGVkIHRvIHRoaXMgdGVzdC4gSSBhbSBhYmxlIA0KPiA+ID4g PiA+ID4gPiB0byBydW4gaXQgaGVyZQ0KPiA+IGxvY2FsbHkgYW5kIHRlc3QuDQo+ID4gPiA+ID4g PiBJIHdhcyBtYWlubHkgbG9va2luZyBhdA0KPiA+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNr dG9wLm9yZy9zZXJpZXMvMTMyODY2Lw0KPiA+ID4gPiA+ID4gICAgICAgICBQb3NzaWJsZSByZWdy ZXNzaW9ucw0KPiA+ID4gPiA+ID4gICAgICAgICBpZ3RAZGVidWdmc190ZXN0QHJlYWRfYWxsX2Vu dHJpZXM6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICBiYXQtYXJscy0yOiBQQVNT IC0+IEZBSUwgKzE4IG90aGVyIHRlc3RzIGZhaWwNCj4gPiA+ID4gPiA+ICAgICAgICAgaWd0QGdl bV9leGVjX2ZlbmNlQG5iLWF3YWl0Og0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICAg YmF0LWFybHMtMjogTk9UUlVOIC0+IElOQ09NUExFVEUgKzcgb3RoZXIgdGVzdHMgaW5jb21wbGV0 ZQ0KPiA+ID4gPiA+ID4gICAgICAgICBpZ3RAa21zX2FkZGZiX2Jhc2ljQGFkZGZiMjUtbW9kaWZp ZXItbm8tZmxhZzoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgIGJhdC1hcmxzLTI6 IFBBU1MgLT4gSU5DT01QTEVURSArMzcgb3RoZXIgdGVzdHMgaW5jb21wbGV0ZQ0KPiA+ID4gPiA+ ID4gICAgICAgICBpZ3RAa21zX3ZyckBzZWFtbGVzcy1yci1zd2l0Y2gtdmlydHVhbCAoTkVXKToN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBidXQgdGhlcmUgd2FzIHNvbWUgaHcgbWFpbnRlbmFu Y2UgZG9uZSB0b2RheSB0byB0aGlzIHNldHVwDQo+ID4gPiA+ID4gPiAoYmFyLWFybHMtMikgc28g bWF5YmUgc2FmZXN0IHdvdWxkIGJlIHJlLXJ1biB0byBzZWUgbGF0ZXN0DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiBDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSBsb29rIGFuZCBzZWUgd2h5IGFs bCBvZiB0aGVzZSANCj4gPiA+ID4gPiA+ID4gd291bGQgYmUNCj4gPiBza2lwcGVkPw0KPiA+ID4g PiA+ID4gPiBTZWVtcyB1bnJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UuDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IFJlZ2FyZHMNCj4gPiA+ID4gPiA+ID4gTWFuYXNpDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IE9uIEZyaSwgQXByIDI2LCAyMDI0IGF0IDEyOjQ44oCvQU0gU2Fhcmlu ZW4sIEphbmkgDQo+ID4gPiA+ID4gPiA+IDxqYW5pLnNhYXJpbmVuQGludGVsLmNvbT4NCj4gPiA+ ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBIaSwNCj4g PiA+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ ID4gPiBGcm9tOiBpZ3QtZGV2IDxpZ3QtZGV2LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn PiANCj4gPiA+ID4gPiA+ID4gPiA+IE9uIEJlaGFsZiBPZiBNb2RlbSwgQmhhbnVwcmFrYXNoDQo+ ID4gPiA+ID4gPiA+ID4gPiBTZW50OiBGcmlkYXksIDI2IEFwcmlsIDIwMjQgNi40NA0KPiA+ID4g PiA+ID4gPiA+ID4gVG86IE1hbmFzaSBOYXZhcmUgPG5hdmFyZW1hbmFzaUBjaHJvbWl1bS5vcmc+ DQo+ID4gPiA+ID4gPiA+ID4gPiBDYzogaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IERy ZXcgRGF2ZW5wb3J0IA0KPiA+ID4gPiA+ID4gPiA+ID4gPGRkYXZlbnBvcnRAY2hyb21pdW0ub3Jn PjsgVmlsbGUgU3lyasOkbMOkIA0KPiA+ID4gPiA+ID4gPiA+ID4gPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPjsgU2VhbiBQYXVsIA0KPiA+ID4gPiA+ID4gPiA+ID4gPHNlYW5wYXVsQGNo cm9taXVtLm9yZz4NCj4gPiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMS8y XSB0ZXN0cy9rbXNfdnJyOiBBZGQgYSANCj4gPiA+ID4gPiA+ID4gPiA+IHN1YnRlc3QgZm9yIHNl YW1sZXNzIG1vZGVzZXQgdG8gYSB2aXJ0dWFsIExSUiBtb2RlDQo+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gSGkgTWFuYXNpLA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+IE9uIDI1LTA0LTIwMjQgMDg6NTAgcG0sIE1hbmFzaSBOYXZhcmUgd3JvdGU6DQo+ ID4gPiA+ID4gPiA+ID4gPiA+IEhpIEJoYW51LA0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBUaGFua3MgZm9yIHRoZSByZXZpZXcuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IFRoaXMgaXMgbm90IHNwZWNpZmljIHRvIGVkcCwgaXQgYXBwbGllcyB0byBhbGwgY29ubmVjdG9y cy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSWYgdGhlIEJBVCBy ZXN1bHRzIGxvb2sgb2theSBhbmQgSSBoYXZlIHlvdXIgci1iLCANCj4gPiA+ID4gPiA+ID4gPiA+ ID4gY291bGQgd2UgZ2V0IHRoaXMNCj4gPiA+ID4gPiA+ID4gbWVyZ2VkPw0KPiA+ID4gPiA+ID4g PiA+IERpZCB5b3UgbG9vayB0aG9zZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+IExvb2tzLCBCQVQgcmVzdWx0cyBhcmUgbm90IE9LIHRvIG1l Lg0KPiA+ID4gPiA+ID4gPiA+IFJpZ2h0LiBUbyBtZSBsb29rcyBzbyB0b28uDQo+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBUaGUgbmV3bHkgYWRk ZWQgdGVzdCBpcyBnZXR0aW5nIHNraXAgb24gVlJSIGNvbmZpZ3M6DQo+ID4gPiA+ID4gPiA+ID4g PiBodHRwczovL2ludGVsLWdmeC1jaS4wMS5vcmcvdHJlZS9kcm0tdGlwL0lHVFBXXzExMDY1L2IN Cj4gPiA+ID4gPiA+ID4gPiA+IGF0LSANCj4gPiA+ID4gPiA+ID4gPiA+IGFsbC5odG1sP3Rlc3Rm aWx0ZXI9a21zX3ZyciZob3N0cz1iYXQtYWRscC02JTdDYmF0LWFkbA0KPiA+ID4gPiA+ID4gPiA+ ID4gcC05JQ0KPiA+ID4gPiA+ID4gPiA+ID4gN0NiYXQtDQo+ID4gPiA+ID4gPiA+ID4gPiBycGxz DQo+ID4gPiA+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiA+ID4gPiA0JTdDYmF0LWFkbHMtNg0K PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IC0gQmhhbnUNCj4gPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gTWFuYXNpDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gPiA+IE9uIFRodSwgQXByIDI1LCAyMDI0IGF0IDEyOjM54oCvQU0gTW9kZW0sIEJo YW51cHJha2FzaCANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPGJoYW51cHJha2FzaC5tb2RlbUBpbnRl bC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+ IEhpIE1hbmFzaSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBP biAyNS0wNC0yMDI0IDAxOjQzIGFtLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0KPiA+ID4gPiA+ID4g PiA+ID4gPj4+IFRoaXMgc3VidGVzdCB2YWxpZGF0ZXMgTFJSIGZhc3RzZXQgZnVuY3Rpb25hbGl0 eSANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBieSB0ZXN0aW5nIHNlYW1sZXNzIHN3aXRjaGluZyB3 aXRob3V0IGZ1bGwgbW9kZXNldCANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiB0byBhbnkgb2YgdGhl IHZpcnR1YWwgTFJSIG1vZGUgd2l0aGluIFZSUg0KPiA+ID4gPiA+ID4gPiA+ID4gcmFuZ2UuDQo+ ID4gPiA+ID4gPiA+ID4gPiA+Pj4gSGVyZSB3ZSBzdGFydCBmcm9tIGhpZ2hlc3QgcmVmcmVzaCBy YXRlIG1vZGUgYW5kIA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IHRoZW4gc3dpdGNoIHRvIHZpcnR1 YWwgTFJSIG1vZGVzIGluIHRoZSBzdGVwcyBvZiANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAxMEh6 IHdpdGhpbiB0aGUNCj4gPiBWUlIgcmFuZ2UuDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4+PiBUaGlzIGlzIHVzZWQgdG8gdGVzdCB0aGUgTFJSIGZhc3RzZXQgZnVu Y3Rpb25hbGl0eSBvZiB0aGUgZHJpdmVyLg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ ID4gPiA+ID4gPiA+Pj4gdjU6DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gLSBQYXNzIGEgcmVmZXJl bmNlIHRvIGZsaXBfYW5kX21lYXN1cmUgKGJoYW51KQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0g QWRkIGEgbmV3IGxpbmUgYmV0d2VlbiBiZXR3ZWVuIGRlY2xhcmF0aW9uIGFuZCANCj4gPiA+ID4g PiA+ID4gPiA+ID4+PiBjb2RlIGxvZ2ljDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4g PiA+ID4gPiA+ID4+PiB2NDoNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAtIENoYW5nZSB0aGUgdGVz dCBuYW1lIHRvIGFsaWduIHdpdGggZHJycy92cnIgDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gdGVz dHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAoQmhhbnUpDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g LSBGaXggc29tZSBidWlsZCB3YXJuaW5ncyBkdWUgdG8gcmViYXNlDQo+ID4gPiA+ID4gPiA+ID4g PiA+Pj4gLSBVc2UgYSBsb2NhbCB2aXJ0dWFsX21vZGUgdmFyaWFibGUNCj4gPiA+ID4gPiA+ID4g PiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IHYzOg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ IC0gRml4IGJ1aWxkIGVycm9yIGR1ZSB0byByZWJhc2UgKE1hbmFzaSkNCj4gPiA+ID4gPiA+ID4g PiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IENjOiBEcmV3IERhdmVucG9ydCA8ZGRhdmVu cG9ydEBjaHJvbWl1bS5vcmc+DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gQ2M6IEJoYW51cHJha2Fz aCBNb2RlbQ0KPiA+IDxiaGFudXByYWthc2gubW9kZW1AaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4g PiA+ID4gPj4+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IENjOiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9t aXVtLm9yZz4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2 YXJlIA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IDxuYXZhcmVtYW5hc2lAY2hyb21pdW0ub3JnPg0K PiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0tLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgIHRlc3Rz L2ttc192cnIuYyB8IDczDQo+ID4gPiA+ID4gPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICAgMSBm aWxlIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDQgDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g ZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+ PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3Zyci5jIGIvdGVzdHMva21zX3Zyci5jIA0KPiA+ID4g PiA+ID4gPiA+ID4gPj4+IGluZGV4DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gMTVjNjJiMzRiLi43 ZjY0ZDY4MDYgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gLS0tIGEvdGVzdHMva21zX3Zy ci5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKysrIGIvdGVzdHMva21zX3Zyci5jDQo+ID4gPiA+ ID4gPiA+ID4gPiA+Pj4gQEAgLTY2LDYgKzY2LDExIEBADQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g ICAgICogRGVzY3JpcHRpb246IFRlc3QgdG8gc3dpdGNoIFJSIHNlYW1sZXNzbHkgDQo+ID4gPiA+ ID4gPiA+ID4gPiA+Pj4gd2l0aG91dA0KPiA+IG1vZGVzZXQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ Pj4gICAgICogRnVuY3Rpb25hbGl0eTogYWRhcHRpdmVfc3luYywgZHJycw0KPiA+ID4gPiA+ID4g PiA+ID4gPj4+ICAgICAqDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyAqIFNVQlRFU1Q6IHNlYW1s ZXNzLXJyLXN3aXRjaC12aXJ0dWFsDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyAqIERlc2NyaXB0 aW9uOiBUZXN0IHRvIGNyZWF0ZSBhIFZpcnR1YWwgTW9kZSBpbiANCj4gPiA+ID4gPiA+ID4gPiA+ ID4+PiArIFZSUiByYW5nZSBhbmQgc3dpdGNoIHRvDQo+ID4gPiA+ID4gPiA+ID4gPiBpdA0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4+ICsgKiAgICAgICAgICAgd2l0aG91dCBhIGZ1bGwgbW9kZXNldC4N Cj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArICogRnVuY3Rpb25hbGl0eTogTFJSDQo+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gKyAqDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICAgICogU1VCVEVTVDogbWF4 LW1pbg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgICAqIERlc2NyaXB0aW9uOiBPc2NpbGxhdGVz IGJldHdlZW4gaGlnaGVzdCBhbmQgDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gbG93ZXN0IHJlZnJl c2ggZWFjaA0KPiA+ID4gPiA+ID4gPiA+ID4gZnJhbWUgZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ Pj4gICAgICogICAgICAgICAgICAgIG1hbnVhbCBmbGlja2VyIHByb2ZpbGluZw0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4+IEBAIC04OSw5ICs5NCwxMCBAQCBlbnVtIHsNCj4gPiA+ID4gPiA+ID4gPiA+ ID4+PiAgICAgICAgVEVTVF9GTElQTElORSA9IDEgPDwgMywNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ PiAgICAgICAgVEVTVF9TRUFNTEVTU19WUlIgPSAxIDw8IDQsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ Pj4gICAgICAgIFRFU1RfU0VBTUxFU1NfRFJSUyA9IDEgPDwgNSwNCj4gPiA+ID4gPiA+ID4gPiA+ ID4+PiAtICAgICBURVNUX0ZBU1RTRVQgPSAxIDw8IDYsDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g LSAgICAgVEVTVF9NQVhNSU4gPSAxIDw8IDcsDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gLSAgICAg VEVTVF9ORUdBVElWRSA9IDEgPDwgOCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArICAgICBURVNU X1NFQU1MRVNTX1ZJUlRVQUxfUlIgPSAxIDw8IDYsDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyAg ICAgVEVTVF9GQVNUU0VUID0gMSA8PCA3LA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgIFRF U1RfTUFYTUlOID0gMSA8PCA4LA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgIFRFU1RfTkVH QVRJVkUgPSAxIDw8IDksDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICAgfTsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgIGVudW0gew0KPiA+ID4gPiA+ID4g PiA+ID4gPj4+IEBAIC0yMTQsNiArMjIwLDE4IEBADQo+ID4gPiA+ID4gbG93X3JyX21vZGVfd2l0 aF9zYW1lX3JlcyhpZ3Rfb3V0cHV0X3QNCj4gPiA+ID4gPiA+ID4gPiA+ICpvdXRwdXQsIHVuc2ln bmVkIGludCB2cnJfbWluKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgICAgICByZXR1cm4gbW9k ZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgICB9DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4g PiA+ID4gPiA+ID4gPiA+ID4+PiArc3RhdGljIGRybU1vZGVNb2RlSW5mbyANCj4gPiA+ID4gPiA+ ID4gPiA+ID4+PiArdmlydHVhbF9ycl92cnJfcmFuZ2VfbW9kZShpZ3Rfb3V0cHV0X3QgKm91dHB1 dCwgDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gK3Vuc2lnbmVkIGludA0KPiA+ID4gPiA+ID4gPiA+ ID4gPj4+ICt2aXJ0dWFsX3JlZnJlc2hfcmF0ZSkgew0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsg ICAgIGRybU1vZGVNb2RlSW5mbyBtb2RlID0NCj4gPiAqaWd0X291dHB1dF9nZXRfbW9kZShvdXRw dXQpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgIHVpbnQ2NF90IGNsb2NrX2h6ID0gbW9k ZS5jbG9jayAqIDEwMDA7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKw0KPiA+ID4gPiA+ID4gPiA+ ID4gPj4+ICsgICAgIG1vZGUudnRvdGFsID0gY2xvY2tfaHogLyAobW9kZS5odG90YWwgKg0KPiA+ IHZpcnR1YWxfcmVmcmVzaF9yYXRlKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArICAgICBtb2Rl LnZyZWZyZXNoID0gdmlydHVhbF9yZWZyZXNoX3JhdGU7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g Kw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgIHJldHVybiBtb2RlOyB9DQo+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgIC8qIFJlYWQgbWluIGFuZCBt YXggdnJyIHJhbmdlIGZyb20gdGhlIGNvbm5lY3RvciBkZWJ1Z2ZzLg0KPiA+ICovDQo+ID4gPiA+ ID4gPiA+ID4gPiA+Pj4gICAgc3RhdGljIHJhbmdlX3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAg ICBnZXRfdnJyX3JhbmdlKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90IA0KPiA+ID4gPiA+ID4g PiA+ID4gPj4+ICpvdXRwdXQpIEBADQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gLTY0MSw2DQo+ID4g PiA+ID4gPiA+ID4gPiA+Pj4gKzY1OSw0OSBAQCB0ZXN0X3NlYW1sZXNzX3JyX2Jhc2ljKGRhdGFf dCAqZGF0YSwgDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gK2VudW0gcGlwZSBwaXBlLA0KPiA+ID4g PiA+ID4gPiA+ID4gaWd0X291dHB1dF90ICpvdXRwdXQsIHVpbnQzDQo+ID4gPiA+ID4gPiA+ID4g PiA+Pj4gICAgICAgICAgICAgICAgICAgICB2cnIgPyAib24iIDogIm9mZiIsIHZyciA/ICJub3Qg DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gcmVhY2hlZCIgOiAiZXhjZWVkZWQiLA0KPiA+IHJlc3Vs dCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+DQo+ ID4gPiA+ID4gPiA+ID4gPiA+Pj4gK3N0YXRpYyB2b2lkDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g K3Rlc3Rfc2VhbWxlc3NfdmlydHVhbF9ycl9iYXNpYyhkYXRhX3QgKmRhdGEsIGVudW0gDQo+ID4g PiA+ID4gPiA+ID4gPiA+Pj4gK3BpcGUgcGlwZSwgaWd0X291dHB1dF90ICpvdXRwdXQsIHVpbnQz Ml90IGZsYWdzKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyAgICAgdWludDMyX3QgcmVzdWx0 Ow0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgIHVuc2lnbmVkIGludCB2cmVmcmVzaDsNCj4g PiA+ID4gPiA+ID4gPiA+ID4+PiArICAgICB1aW50NjRfdCByYXRlW10gPSB7MH07DQo+ID4gPiA+ ID4gPiA+ID4gPiA+Pj4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgIGlndF9pbmZvKCJV c2UgSElHSF9SUiBNb2RlIGFzIGRlZmF1bHRcbiIpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsg ICAgIGttc3Rlc3RfZHVtcF9tb2RlKCZkYXRhLQ0KPiA+ID4gPiA+ID5zd2l0Y2hfbW9kZXNbSElH SF9SUl9NT0RFXSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKw0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4+ICsgICAgIHByZXBhcmVfdGVzdChkYXRhLCBvdXRwdXQsIHBpcGUpOw0KPiA+ID4gPiA+ID4g PiA+ID4gPj4+ICsgICAgIHJhdGVbMF0gPQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgcmF0ZV9m cm9tX3JlZnJlc2goZGF0YS0NCj4gPiA+ID4gPiA+c3dpdGNoX21vZGVzW0hJR0hfUlJfTU9ERV0u dnJlZnJlcw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgaCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ Pj4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgIC8qDQo+ID4gPiA+ID4gPiA+ID4gPiA+ Pj4gKyAgICAgICogU2luayB3aXRoIERSUiBhbmQgVlJSIGNhbiBiZSBpbiBkb3duY2xvY2sgbW9k ZSBzbw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgICAqIHN3aXRjaCB0byBoaWdoZXN0IHJl ZnJlc2ggcmF0ZSBtb2RlLg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgICAqLw0KPiA+ID4g PiA+ID4gPiA+ID4gPj4+ICsgICAgIGlndF9vdXRwdXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsICZk YXRhLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPnN3aXRjaF9tb2Rlc1tISUdIX1JSX01PREVdKTsNCj4g PiA+ID4gPiA+ID4gPiA+ID4+PiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyBpZ3RfYXNzZXJ0 KGlndF9kaXNwbGF5X3RyeV9jb21taXRfYXRvbWljKCZkYXRhLT4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4+PiArIGRpc3AgbGF5LCBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQsIE5VTEwpID09IDApOw0K PiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArICAgICByZXN1 bHQgPSBmbGlwX2FuZF9tZWFzdXJlKGRhdGEsIG91dHB1dCwgDQo+ID4gPiA+ID4gPiA+ID4gPiA+ Pj4gKyBwaXBlLCByYXRlLCAxLA0KPiA+ID4gPiA+ID4gPiA+ID4gVEVTVF9EVVJBVElPTl9OUyk7 DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyAgICAgaWd0X2Fzc2VydF9mKHJlc3VsdCA+IDc1LA0K PiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgICAgICAgICAgICAgICAiUmVmcmVzaCByYXRlICgl dSBIeikgJSJQUkl1NjQibnM6DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyBUYXJnZXQgdGhyZXNo b2xkIG5vdA0KPiA+ID4gPiA+ID4gPiA+ID4gcmVhY2hlZCwgcmVzdWx0IHdhcyAldSUlXG4iLA0K PiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArIGRhdGEtPnN3 aXRjaF9tb2Rlc1tISUdIX1JSX01PREVdLnZyZWZyZXNoLA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ ICsgcmF0ZVswXSwgcmVzdWx0KTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArDQo+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gKyAgICAgLyogU3dpdGNoIHRvIFZpcnR1YWwgUlIgKi8NCj4gPiA+ID4gPiA+ ID4gPiA+ID4+PiArICAgICBmb3IgKHZyZWZyZXNoID0gZGF0YS0+cmFuZ2UubWluICsgMTA7IA0K PiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgdnJlZnJlc2ggPA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ ICsgZGF0YS0+cmFuZ2UubWF4Ow0KPiA+ID4gPiA+ID4gPiA+ID4gdnJlZnJlc2ggKz0gMTApIHsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArICAgICAgICAgICAgIGRybU1vZGVNb2RlSW5mbyB2aXJ0 dWFsX21vZGUgPSANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArIHZpcnR1YWxfcnJfdnJyX3Jhbmdl X21vZGUob3V0cHV0LCB2cmVmcmVzaCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKw0KPiA+ID4g PiA+ID4gPiA+ID4gPj4+ICsgICAgICAgICAgICAgaWd0X2luZm8oIlJlcXVlc3RpbmcgVmlydHVh bCBNb2RlIA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgd2l0aCBSZWZyZXNoIFJhdGUgKCV1IEh6 KTogXG4iLA0KPiA+ID4gPiA+ID4gPiA+ID4gdnJlZnJlc2gpOw0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4+ICsgICAgICAgICAgICAga21zdGVzdF9kdW1wX21vZGUoJnZpcnR1YWxfbW9kZSk7DQo+ID4g PiA+ID4gPiA+ID4gPiA+Pj4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgICAgICAgICAg aWd0X291dHB1dF9vdmVycmlkZV9tb2RlKG91dHB1dCwgDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g KyAmdmlydHVhbF9tb2RlKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArDQo+ID4gPiA+ID4gPiA+ ID4gPiA+Pj4gKyBpZ3RfYXNzZXJ0KGlndF9kaXNwbGF5X3RyeV9jb21taXRfYXRvbWljKCZkYXRh LT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArIGRpc3ANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAr IGxheSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArIDAsDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g KyBOVUxMKSA9PSAwKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArDQo+ID4gPiA+ID4gPiA+ID4g PiA+Pj4gKyAgICAgICAgICAgICByYXRlWzBdID0gcmF0ZV9mcm9tX3JlZnJlc2godnJlZnJlc2gp Ow0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgICAgICAgICAgICAgcmVzdWx0ID0gZmxpcF9hbmRf bWVhc3VyZShkYXRhLCANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArIG91dHB1dCwgcGlwZSwgcmF0 ZSwgMSwNCj4gPiA+ID4gPiA+ID4gPiA+IFRFU1RfRFVSQVRJT05fTlMpOw0KPiA+ID4gPiA+ID4g PiA+ID4gPj4+ICsgICAgICAgICAgICAgaWd0X2Fzc2VydF9mKHJlc3VsdCA+IDc1LA0KPiA+ID4g PiA+ID4gPiA+ID4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWZyZXNoIHJhdGUg KCV1IEh6KSAlIlBSSXU2NCJuczoNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiArIFRhcmdldCB0aHJl c2hvbGQgbm90DQo+ID4gPiA+ID4gPiA+ID4gPiByZWFjaGVkLCByZXN1bHQgd2FzICV1JSVcbiIs DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdnJlZnJl c2gsIHJhdGVbMF0sIHJlc3VsdCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyAgICAgfQ0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4+ICt9DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKw0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4+ICAgIHN0YXRpYyB2b2lkIHRlc3RfY2xlYW51cChkYXRhX3QgKmRhdGEsIGVu dW0gDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gcGlwZSBwaXBlLCBpZ3Rfb3V0cHV0X3QNCj4gPiA+ ID4gPiA+ID4gPiA+ICpvdXRwdXQpDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICAgew0KPiA+ID4g PiA+ID4gPiA+ID4gPj4+ICAgICAgICBpZiAodnJyX2NhcGFibGUob3V0cHV0KSkgQEAgLTY4Niw3 ICs3NDcsNyANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBAQCBzdGF0aWMgYm9vbCBvdXRwdXRfY29u c3RyYWludChkYXRhX3QgKmRhdGEsDQo+ID4gPiA+ID4gPiA+ID4gPiBpZ3Rfb3V0cHV0X3QgKm91 dHB1dCwgdWludDMyX3QgZmxhZ3MNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgICAgICAgaWd0X291 dHB1dF9vdmVycmlkZV9tb2RlKG91dHB1dCwgDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gJmRhdGEt PnN3aXRjaF9tb2Rlc1tISUdIX1JSX01PREVdKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4+ICAgICAgICAvKiBTZWFyY2ggZm9yIGEgbG93IHJlZnJlc2ggcmF0 ZSBtb2RlLiAqLw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0gICAgIGlmICghKGZsYWdzICYgKFRF U1RfU0VBTUxFU1NfVlJSIHwNCj4gPiBURVNUX1NFQU1MRVNTX0RSUlMpKSkNCj4gPiA+ID4gPiA+ ID4gPiA+ID4+PiArICAgICBpZiAoIShmbGFncyAmIChURVNUX1NFQU1MRVNTX1ZSUiB8IA0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4+ICsgVEVTVF9TRUFNTEVTU19EUlJTDQo+ID4gPiA+ID4gPiA+ID4g PiA+Pj4gKyB8DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKyBURVNUX1NFQU1MRVNTX1ZJUlRVQUxf UlIpKSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBEb2VzIHRo aXMgdmlydHVhbCBSUiBhcHBsaWNhYmxlIHRvIGVEUCBvbmx5IG9yIA0KPiA+ID4gPiA+ID4gPiA+ ID4gPj4gc3VwcG9ydHMgb3RoZXIgY29ubmVjdG9yIHR5cGVzIHRvbz8gSWYgaXQgaXMgZURQIA0K PiA+ID4gPiA+ID4gPiA+ID4gPj4gc3BlY2lmaWMgWypdLCB0aGVuIHdlIG11c3QgYWRkIGEgY2hl Y2sgZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGF0Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4g PiA+ID4gPiA+ID4gPiA+ID4+IFsqXToNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGh0dHBzOi8vY2dp dC5mcmVlZGVza3RvcC5vcmcvZHJtL2lndC1ncHUtdG9vbHMvdHJlZQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPj4gL3Rlcw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gdHMva21zDQo+ID4gPiA+ID4gPiA+ID4g PiA+PiBfdnJyDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAuYyNuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ PiA2NjANCj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBXaXRoIGFi b3ZlIGNvbW1lbnQgYWRkcmVzc2VkLCB0aGlzIHBhdGNoIGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ PiBSZXZpZXdlZC1ieTogQmhhbnVwcmFrYXNoIE1vZGVtDQo+ID4gPiA+ID4gPiA+IDxiaGFudXBy YWthc2gubW9kZW1AaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4+IC0gQmhhbnUNCj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4g PiA+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4N Cj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgICAgICAgZGF0YS0+c3dpdGNoX21vZGVzW0xPV19SUl9N T0RFXSA9IA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IGxvd19ycl9tb2RlX3dpdGhfc2FtZV9yZXMo b3V0cHV0LCANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBkYXRhLT5yYW5nZS5taW4pOw0KPiA+IEBA DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gLTg0MSw2DQo+ID4gPiA+ID4gPiA+ID4gPiArOTAyLDEw IEBAIGlndF9tYWluX2FyZ3MoImRyczoiLCBsb25nX29wdHMsIGhlbHBfc3RyLCANCj4gPiA+ID4g PiA+ID4gPiA+ICtvcHRfaGFuZGxlciwNCj4gPiA+ID4gPiA+ID4gPiA+ICsmZGF0YSkNCj4gPiA+ ID4gPiA+ID4gPiA+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJldHdlZW4gZmxp cCANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiB0aW1lc3RhbXBzIGNvbnZlcmdlcyB0byB0aGUgcmVx dWVzdGVkDQo+ID4gPiA+ID4gPiA+ID4gPiByYXRlIik7DQo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g ICAgICAgICAgICAgICAgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJmbGlwLWJhc2ljLWZhc3Rz ZXQiKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Zy cl90ZXN0KCZkYXRhLCANCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiB0ZXN0X2Jhc2ljLCBURVNUX0ZB U1RTRVQpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAr ICAgICAgICAgICAgIGlndF9kZXNjcmliZSgiVGVzdCB0byBzd2l0Y2ggdG8gYW55IA0KPiA+ID4g PiA+ID4gPiA+ID4gPj4+ICsgY3VzdG9tIHZpcnR1YWwgbW9kZSBpbiBWUlINCj4gPiA+ID4gPiA+ ID4gPiA+IHJhbmdlIHdpdGhvdXQgbW9kZXNldC4iKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiAr ICAgICAgICAgICAgIA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsgaWd0X3N1YnRlc3Rfd2l0aF9k eW5hbWljKCJzZWFtbGVzcy1yci1zd2l0Y2gtDQo+ID4gdmlydHVhbCIpDQo+ID4gPiA+ID4gPiA+ ID4gPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgIHJ1bl92cnJfdGVzdCgmZGF0YSwgDQo+ID4g PiA+ID4gPiA+ID4gPiA+Pj4gKyB0ZXN0X3NlYW1sZXNzX3ZpcnR1YWxfcnJfYmFzaWMsIA0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4+ICsgVEVTVF9TRUFNTEVTU19WSVJUVUFMX1JSKTsNCj4gPiA+ID4g PiA+ID4gPiA+ID4+PiAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gICAgICAgIGlndF9maXh0dXJlIHsNCg==