From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.153708.1669737180636723826 for ; Tue, 29 Nov 2022 07:53:00 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=eR1aFphz; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669737180; x=1701273180; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=jh9R3RIcg1W9Hd75zOuLlvHr4FJxnrdeX5GrtAhzk7Q=; b=eR1aFphz/N1JRw9mygaGd3tIzdPHyC2aIZMuOD9rjokj8lXsXHUqMORI Cet27Q6E9B5B2WK2ELI66baznXdmzVPOtXZZ7Ldj76egUa2S048fdniAg LZG3yZaXwLrTTMZJbmntntZ/PHq1skrHboaprabi496aUUK18dXoEtN0g wg42t01ef57R3oRr8FUJserSe2xa575lFiXJ8otKdtUiaL1KmJ8C9yeg0 4xtN9eK39l6X201sKKzDD+btJhISpP5I5oM0afHOEEWTEsMFatPNsRlJb eRN7jdRe5Talry9yW+oDLb7OMrBFiPXV2H1PIJlJv76Ciu1ScQk9pDJex A==; X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="316980799" X-IronPort-AV: E=Sophos;i="5.96,203,1665471600"; d="scan'208";a="316980799" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Nov 2022 07:53:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="643827289" X-IronPort-AV: E=Sophos;i="5.96,203,1665471600"; d="scan'208";a="643827289" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga002.jf.intel.com with ESMTP; 29 Nov 2022 07:52:59 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 29 Nov 2022 07:52:59 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 29 Nov 2022 07:52:58 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Tue, 29 Nov 2022 07:52:58 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.47) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Tue, 29 Nov 2022 07:52:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K+WNlj8bhJU9AsTipcRhiJRl8ToyjaA0A6s31L31COwmUpunr95xXf5wI01zbtXQ7LFS95t2MaZoRYzLo6DF+1moStjqz1sx/CegHMkOyCcqhnDmc2dqC9VrBz/eCyblagxW9RPtp0B1nxXLaTK4ADgecUvPplNc7XCkSGuoIi6XnpAvM9wqVnCFGIWOJ++jgHjh2Z6FCr+Ho3AossyDA6ZGjzcH373yr2bWlxnN6gP6yH4DclGGqAEqkc8ElG1j0f4OQKqDIPy/oD0kaD7lRWq02MYZD/A8ZTKeLFStUi0iL8DMot9k0lzKaivusoerjmq3iFW7YSAOODobkAl40Q== 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=jh9R3RIcg1W9Hd75zOuLlvHr4FJxnrdeX5GrtAhzk7Q=; b=N70KRL4Js0OuqOSgsPnATXOORi/CUMPbM28quWVG9kT/ldIgB6IC+9GPQKC+S3gk85hWfkGdN0kTZw2yY3ui5s/2ymLlReZdlNfdoDd8f1jq9ZBOdrI6EMM5YMpzjYqAV+TUCeVHPl6ko4cAGT64kHDlWnehTcDp9Zcf/Op4JXuo6PGTWG2kYQ+o9p75NgYqx7isa9GwnGoAEXYL/vXLia2xopPWhIJ0Q2AaDLOEObfJpGfRGcSN6SJI089jkVqen8Tf8f1olIYWTUE7Sbr++S520Yvq2XWaE/xa5Y3cLRUGFJY7cEPR8AobWlcrDtCbuzaKlUAcXVKoQQuXMyTahA== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CO1PR11MB5010.namprd11.prod.outlook.com (2603:10b6:303:93::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 15:52:55 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b%6]) with mapi id 15.20.5857.023; Tue, 29 Nov 2022 15:52:55 +0000 From: "Michael D Kinney" To: "Jayaprakash, N" , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Rebecca Cran Subject: Re: [edk2-libc Patch 1/1] edk2-libc: migration of edk2module from chipsec repo Thread-Topic: [edk2-libc Patch 1/1] edk2-libc: migration of edk2module from chipsec repo Thread-Index: AQHY/bHA1OisqDBkFkGs0VHYz1x9SK5WGHrQ Date: Tue, 29 Nov 2022 15:52:55 +0000 Message-ID: References: <20221121140026.1931-1-n.jayaprakash@intel.com> <20221121140026.1931-2-n.jayaprakash@intel.com> In-Reply-To: <20221121140026.1931-2-n.jayaprakash@intel.com> Accept-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: CO1PR11MB4929:EE_|CO1PR11MB5010:EE_ x-ms-office365-filtering-correlation-id: c46a5404-9a32-4576-d157-08dad221c7ea x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AHKyaOuklBzTI+WOa27L8ASc950yDCDpFUt0zpkZA4LXE2tkTGtP21usv6+Xp4OCahxHg9HTeIwbz36rxxOf5bXw6/2lhFoTPZI9LhtHne/D29AWzUetyXXy5RypVyi0XD13jdyBxB5TCUhrPYZO1EoM2jVQ9pfUGj68fgmKdMu2rlMe+3TGVSqIKnZ1oGICe0GmGgNUS7LTXqdVzz+QgLPWc1oDeasUjzDBKbW8OvWn/ii/YlzY/HM6u8+et8gaeBRAQhWUwnSUJHoxB9Vzw9GogxYgW6OuQKYeZ5dicT1HwS1ezYJnzY4fMme0v7d5lRrc5QhSzRyfokHGVRSYIhOEqQXQ2Jenn6cXOiwkwBl5ht2U5826yOd8kjGVW/35o33wuH6VSqgsumVdNYQcwZycWWtH9+vgmjunTdz4urjH9x4jEagIt5hhpZ+JKzrVssXlFMXVfzXyjTkL/07k9WGa6Dwly7BNLnYJ0lwrNyt5bfwUaw/j1Ak2pMNa3UzCeQlHdrtwey3K3JxpmEXZZLnkuSfgxRkY2ooarU2/hwrr2n0fDkNi2zm9TRpF6adxVmKRMI+KmKnIZrKDc+/pf4ZFTkDCkDrnaZUn8ad3j14fRu0igGyuTyk2KQtDayO2amVe8PyaiNCmi+bYTs66bcLqhMrCQMxTv/ijHvOZfu4UtdukhKn2A/uqTo0xtGlgLkQRrAL5D8w8yXWznNaNRpZWYgeG6+OOlMghhM7qCWOeVyoHp8d6Vs8yq+eg8o85JQIOr2qFpH1tH39wZ2S66PdmG/RPGn8BRJT8CMmB4HQ= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(39860400002)(136003)(376002)(346002)(451199015)(8676002)(66446008)(64756008)(26005)(4326008)(5660300002)(8936002)(9686003)(82960400001)(19627235002)(52536014)(66556008)(41300700001)(66476007)(316002)(38070700005)(110136005)(83380400001)(2906002)(33656002)(86362001)(122000001)(30864003)(38100700002)(478600001)(76116006)(966005)(66946007)(186003)(6506007)(7696005)(71200400001)(55016003)(53546011)(545624005)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TXhLdVBwbUNnZXhlSWgva29iVVB3RVArSzlvUVdkaDdLM2ptalRzY1B0Q2Nw?= =?utf-8?B?TzdSQXlqNlpwdjNLRGFVWXFNKzBlelV6U3B2MWlSOXp6N1JwMzlkSDhyOHZh?= =?utf-8?B?UWE3eVNLL0xGTk1JMHhHM3N4NWZUNUhnNXZseERBQmw2bmRBcFhwMWNkYXJ2?= =?utf-8?B?UnNXc3oweG1JU2YzVjNsa1lWTmVwMG03WG40RVRVM1FIM3NqVDZ5UDhIUzZD?= =?utf-8?B?ZEtDOXZ5amM4MjQ5Mngra0dDQVJvZnFjeTZkMEFVVC9sd1dVVWYyZzdINHNy?= =?utf-8?B?NThsT0M5ZDQ1MS8rZDFhc2pIdHhISzBHY0V6K2dhSDRDSGZUMVNrZVZYU0ZH?= =?utf-8?B?bEY0SXRaMytTZXVHRjNZY0JxclRxM0daUTc3VEVSOW5EdWFNbWVVMkNMZWpL?= =?utf-8?B?d0o5UUNNZS9Fb3pQeXZ0MGp5eXZpbFJyVlg4QjdaTjUxY0dUWDJQRk1SbU9p?= =?utf-8?B?a2g1MU5qOGo5NDdvT0hkck9tbnFYbWdnN0U3V0hsUGs5cWVSSUFiOCttK2Ur?= =?utf-8?B?clM0UFFLd0xScmhQNmhaS0ZNK3ZiRVBTcnQzY1UzdS9zQnc1NnBLdVhFTi81?= =?utf-8?B?akxTT2wwYTY4d2k3YWxPMVBwMHBiYVpjakhMb0p2RWlEYjU2c2JjYWhUWUx5?= =?utf-8?B?S1FsZllIck1sRWp1bTRGS3hRcTExM2p5WmxsL2dPN29ZSFF4K21xdnc0dzZM?= =?utf-8?B?dEdwUzBoYjFSTTh2a3RxTDZjU1VHb2NrQ2RDWEhXWjA5QTk0N0xYMm9yQjhD?= =?utf-8?B?WjhzZmtiR3Y2VTEzQlJMT0N5VTVmZ2Znb1NEZGRIZkdEUllvb29hV013ZitM?= =?utf-8?B?WEpVM3RVbU1VZy9YaVlzUHB5bmRqb3Z5Snd3d082emE3Y0dVM210blVNZitp?= =?utf-8?B?ZllQa2lGTkRDNjBYR1h0K3NMRTlCeFIrV09tTzVpYTErTXBDOWZyZmdwc1BW?= =?utf-8?B?dXZPdnloV295azV4OU50SWpEVFhDOSt1ZEV1MzVzWFdjTjFST3JSMEpQVHZP?= =?utf-8?B?Y21ZbjZIQ2xGOUdjQ3dVTkpjcDg0a1dCbWx2NEt0NUJJZGYxRmxqWXlhTFlk?= =?utf-8?B?K1o2cm1IUFYyNFdJYmdQUlJNZ05FM0trT2xyNHRid3l3VWplcFRNdExwbXdo?= =?utf-8?B?NHVYNllEaUNRYmswNFVnRCtxdmVxQWV2N1RmV1BpR1ltUzBmODEzT3g3SEM3?= =?utf-8?B?ZmVoUGhKaFdhVVQreUNOM3I4a0JhdTNhRDFQaUtQNkJYWmdUdEx3YTZVempo?= =?utf-8?B?WnlVTloycnQrMEQ5Rm40MTRQbGhjNzNmVEowU05KMWNnelpxVTI0bE55alJo?= =?utf-8?B?dnczVjlJbHFHVXFnaDZvejdKeE1rRXc0cms3elpKcWVYZGNvNDlqbFNyZVlX?= =?utf-8?B?TU5tMk9EZUZHbVByQXlHK0dFczgxNG1xTHpFTHB3WmZnYitZcjJGQmovZytK?= =?utf-8?B?dzlzakt2SjNTcVA4YlZ4SUZUUkloa0ZGOWR1NzJsTVFDNXhSREUvRGk0Wk42?= =?utf-8?B?Qk9ncllKQUU5N1MxK0p0TEpuZ1RiSldlM0VmUDBRMEFEZklHOVZHa1hvSTBP?= =?utf-8?B?M1A2RitoNXN5ZW5EMjlxQ0JvRFZVWC8zOS90di9JVytFNkZSR213NjhFU2ZO?= =?utf-8?B?dDk0MWhsSnNoMWdzLzBYUy9PSS9XUk1wRU8zeVNyVVBVUDFMNkpkdUJWOXo3?= =?utf-8?B?WGVjZXdBeEhpbWowbXNibzJNYzNkdGF2RzlWajJWU2prL3ZHVUl1VmpMWDNI?= =?utf-8?B?RVhXcGpaK2kxSGg0NXRxUzBpclk2Z09aYi8rZFNlNHE3ZDVWTnd0YXJ0L3Qv?= =?utf-8?B?b2g4dERaeTdyTisxWFFFTHpSTjlXTVk5Umd4U3JkQTJDaUhsMHhuS00wNWRj?= =?utf-8?B?cXJiTkp2aUdwRWdjVGVLcjZNL090Z09UZ2JTL3dRd002WjFkY1ZtMVJrMFJk?= =?utf-8?B?R0pyUFZtYkxpME5ucHlHayt6bU5kcTlDYlMwYkV6V0Q0RzlyT2Y2MEF4YWlW?= =?utf-8?B?UDVhUmZYQU9EaEVCdXo4UnBFc0dOUlB5VFlFaTJUREw5SmlKdHBrYmhUQ25r?= =?utf-8?B?QTRBTXM0Y3J3K1YveUQ4d214TFFLL2xhZG52SWg0dmtmclFRb2t0L1NNamZv?= =?utf-8?B?Ym51RVZsbjJDMkNUQVQ5ZG1XeXU1aGhYY2hhdXAvdXhCLzU1K3kwVlhIekxi?= =?utf-8?B?SFE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c46a5404-9a32-4576-d157-08dad221c7ea X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 15:52:55.5842 (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: 2IESEMmEzUdmZeCeoI2ManFJ6oG8GEY11c3eD3whwLasuJKNj6Gnq3pQ797lcE1likGvihEpjZTxjBgnVpsS5Apd4nmHNsmmxtUq/eHJdLA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5010 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgSlAsDQoNCk1hbnkgb2YgdGhlc2UgQVBJcyBhcmUgYWxyZWFkeSBhdmFpbGFibGUgZnJvbSB0 aGUgTWRlUGtnIEJhc2VMaWIsIElvTGliLCBhbmQgUGNpTGliLg0KDQpXaHkgd291bGQgd2UgYWRk IGN1c3RvbSBBU00gaW1wbGVtZW50YXRpb25zIG9mIHRoZXJlIGhlcmU/DQoNCldoeSBBU00gYW5k IG5vdCBOQVNNLiAgZWRrMiBwcm9qZWN0cyBoYXZlIGNvbnNvbGlkYXRlZCBvbiBOQVNNIGZvciBh bGwgSUEzMi9YNjQgYXNzZW1ibHkgY29kZS4NCg0KSSB0aGluayB0aGUgYmVzdCBhcHByb2FjaCBp cyB0byBwb3J0IHRoZSBQeXRob24gd3JhcHBlcnMgYXJvdW5kIHRoZSBjYWxscyB0byB0aGVzZQ0K QVNNIGZ1bmN0aW9ucyB0byBjYWxsIE1kZVBrZyBCYXNlTGliLCBJb0xpYiwgYW5kIFBjaUxpYiBh bmQgcmVtb3ZlIHRoZSBBU00gY29kZQ0KZnJvbSB0aGUgcGF0Y2guDQoNClRoYW5rcywNCg0KTWlr ZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEpheWFwcmFrYXNoLCBO IDxuLmpheWFwcmFrYXNoQGludGVsLmNvbT4NCj4gU2VudDogTW9uZGF5LCBOb3ZlbWJlciAyMSwg MjAyMiA2OjAwIEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogUmViZWNjYSBD cmFuIDxyZWJlY2NhQG51dmlhaW5jLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47IEpheWFwcmFrYXNoLCBODQo+IDxuLmpheWFwcmFrYXNoQGludGVs LmNvbT4NCj4gU3ViamVjdDogW2VkazItbGliYyBQYXRjaCAxLzFdIGVkazItbGliYzogbWlncmF0 aW9uIG9mIGVkazJtb2R1bGUgZnJvbSBjaGlwc2VjIHJlcG8NCj4gDQo+IFJFRjogaHR0cHM6Ly9i dWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00MTYxDQo+IA0KPiBUaGlzIHBh dGNoIG1lcmdlcyB0aGUgZW5oYW5jZW1lbnRzIGRvbmUgYnkgY2hpcHNlYw0KPiB0b29sIHRvIGVk azIgbW9kdWxlIGludG8gZWRrMi1saWJjIHJlcG8uDQo+IFRoZSBjaGlwc2VjIGVuaGFuY2VtZW50 cyBjYW4gYmUgdXNlZCBmb3IgdmFyaW91cw0KPiBvdGhlciBQeXRob24gYmFzZWQgdG9vbHMgdG8g YWNjZXNzIHBsYXRmb3JtIHJlZ2lzdGVycy4NCj4gVGhlc2UgZW5oYW5jZW1lbnRzIHByb3ZpZGlu ZyBhIHNldCBvZiBBUElzIHRvIGFjY2Vzcw0KPiB0aGUgcGxhdGZvcm0gcmVnaXN0ZXJzIGRpcmVj dGx5IGZyb20gdGhlIHB5dGhvbg0KPiBzY3JpcHRzIHJ1bm5pbmcgb24gVUVGSSBzaGVsbC4gVGhp cyB3aWxsIGJlbmVmaXQgdGhlDQo+IFB5dGhvbiB1c2VycyBvbiBVRUZJIHNoZWxsIGluIGdlbmVy YWwgYW5kIGVuaGFuY2VzDQo+IGl0J3MgdXNhYmlsaXR5LiBQeXRob24gY2FuIGJlIHVzZWQgZWZm ZWN0aXZlbHkgdG8NCj4gaW1wbGVtZW50IHRvb2xzLCBzY3JpcHRzIHJlcXVpcmVkIGZvciBhdXRv bWF0aW9uLA0KPiBkZWJ1ZyBmcm9tIFVFRkkgc2hlbGwuDQo+IA0KPiBDYzogUmViZWNjYSBDcmFu IDxyZWJlY2NhQG51dmlhaW5jLmNvbT4NCj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRy aWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+IFNpZ25lZC1vZmYtYnk6IEpheWFwcmFrYXNoIE4gPG4u amF5YXByYWthc2hAaW50ZWwuY29tPg0KPiBSZXZpZXdlZC1ieTogTWljaGFlbCBEIEtpbm5leSA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgLi4uL1B5dGhvbi0zLjYuOC9Q eU1vZC0zLjYuOC9Nb2R1bGVzL2NwdS5hc20gIHwgNTE5ICsrKysrKysrKysrKysrKysNCj4gIC4u Li9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyLmFzbSAgICAgICAgICB8IDM5NSArKysrKysr KysrKysNCj4gIC4uLi9QeU1vZC0zLjYuOC9Nb2R1bGVzL2VkazJtb2R1bGUuYyAgICAgICAgICB8 IDU2OCArKysrKysrKysrKysrKysrKy0NCj4gIC4uLi9QeXRob24vUHl0aG9uLTMuNi44L1B5dGhv bjM2OC5pbmYgICAgICAgICB8ICAzMiArLQ0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNDk2IGluc2Vy dGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEFwcFBrZy9B cHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdS5h c20NCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBBcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRo b24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHVfaWEzMi5hc20NCj4gDQo+IGRpZmYgLS1n aXQgYS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42Ljgv TW9kdWxlcy9jcHUuYXNtIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLQ0KPiAz LjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdS5hc20NCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMC4uNjVlZGM5Ng0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL0FwcFBr Zy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2Nw dS5hc20NCj4gQEAgLTAsMCArMSw1MTkgQEANCj4gK1RJVExFICAgY3B1LmFzbTogQXNzZW1ibHkg Y29kZSBmb3IgdGhlIHg2NCByZXNvdXJjZXMNCj4gKw0KPiArLkNPREUgY3B1X2FzbV9jb2RlJF9f YQ0KPiArDQo+ICtQVUJMSUMgV3JpdGVQb3J0RHdvcmQNCj4gK1BVQkxJQyBXcml0ZVBvcnRXb3Jk DQo+ICtQVUJMSUMgV3JpdGVQb3J0Qnl0ZQ0KPiArUFVCTElDIFJlYWRQb3J0RHdvcmQNCj4gK1BV QkxJQyBSZWFkUG9ydFdvcmQNCj4gK1BVQkxJQyBSZWFkUG9ydEJ5dGUNCj4gK1BVQkxJQyBXcml0 ZUhpZ2hDTU9TQnl0ZQ0KPiArUFVCTElDIFdyaXRlTG93Q01PU0J5dGUNCj4gK1BVQkxJQyBTZW5k QVBNU01JDQo+ICtQVUJMSUMgV3JpdGVQQ0lCeXRlDQo+ICtQVUJMSUMgV3JpdGVQQ0lXb3JkDQo+ ICtQVUJMSUMgV3JpdGVQQ0lEd29yZA0KPiArUFVCTElDIFJlYWRQQ0lCeXRlDQo+ICtQVUJMSUMg UmVhZFBDSVdvcmQNCj4gK1BVQkxJQyBSZWFkUENJRHdvcmQNCj4gK1BVQkxJQyBfcmRtc3INCj4g K1BVQkxJQyBfd3Jtc3INCj4gK1BVQkxJQyBfbG9hZF9nZHQNCj4gK1BVQkxJQyBfcmZsYWdzDQo+ ICtQVUJMSUMgX3N3c21pDQo+ICsNCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAr OyBVSU5UNjQgX3JmbGFncygpDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfcmZsYWdz IFBST0MNCj4gKyAgICBwdXNoZnENCj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcmV0DQo+ICtfcmZs YWdzIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyB2b2lkIF9zdG9y ZV9pZHRyKA0KPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ICs7ICAgKQ0K PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArX3N0b3JlX2lkdHIgUFJPQw0KPiArICAgIHNp ZHQgZndvcmQgcHRyIFtyY3hdDQo+ICsgICAgcmV0DQo+ICtfc3RvcmVfaWR0ciBFTkRQDQo+ICsN Cj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgdm9pZCBfbG9hZF9pZHRyKA0KPiArOyAg IHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ICs7ICAgKQ0KPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArX2xvYWRfaWR0ciBQUk9DDQo+ICsgICAgbGlkdCBmd29yZCBwdHIgW3Jj eF0NCj4gKyAgICByZXQNCj4gK19sb2FkX2lkdHIgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICs7IHZvaWQgX3N0b3JlX2dkdHIoDQo+ICs7ICAgdW5zaWduZWQgY2hhciAq YWRkcmVzcyAvLyByY3gNCj4gKzsgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtf c3RvcmVfZ2R0ciBQUk9DDQo+ICsgICAgc2dkdCBmd29yZCBwdHIgW3JjeF0NCj4gKyAgICByZXQN Cj4gK19zdG9yZV9nZHRyIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAr OyB2b2lkIF9sb2FkX2dkdHIoDQo+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRkcmVzcyAvLyByY3gN Cj4gKzsgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfbG9hZF9nZHRyIFBST0MN Cj4gKyAgICBsZ2R0IGZ3b3JkIHB0ciBbcmN4XQ0KPiArICAgIHJldA0KPiArX2xvYWRfZ2R0ciBF TkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgdm9pZCBfc3RvcmVfbGR0 cigNCj4gKzsgICB1bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiArOyAgICkNCj4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK19zdG9yZV9sZHRyIFBST0MNCj4gKyAgICA7c2xkdCBm d29yZCBwdHIgW3JjeF0NCj4gKyAgICByZXQNCj4gK19zdG9yZV9sZHRyIEVORFANCj4gKw0KPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyB2b2lkIF9sb2FkX2xkdHIoDQo+ICs7ICAgdW5z aWduZWQgY2hhciAqYWRkcmVzcyAvLyByY3gNCj4gKzsgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICtfbG9hZF9sZHRyIFBST0MNCj4gKyAgICA7bGxkdCBmd29yZCBwdHIgW3JjeF0N Cj4gKyAgICByZXQNCj4gK19sb2FkX2xkdHIgRU5EUA0KPiArDQo+ICsNCj4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gKzsgdm9pZCBfbG9hZF9nZHQoDQo+ICs7ICAgdW5zaWduZWQgY2hhciAq dmFsdWUgLy8gcmN4DQo+ICs7ICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArX2xv YWRfZ2R0IFBST0MNCj4gKw0KPiArICAgIHNnZHQgZndvcmQgcHRyIFtyY3hdDQo+ICsgICAgbGdk dCBmd29yZCBwdHIgW3JjeF0NCj4gKw0KPiArICAgIHJldA0KPiArX2xvYWRfZ2R0IEVORFANCj4g Kw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdm9pZCBfcmRtc3IoDQo+ICs7ICAg IHVuc2lnbmVkIGludCBtc3JfbnVtLCAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgaW50KiBtc3Jf bG8sIC8vIHJkeA0KPiArOyAgICB1bnNpZ25lZCBpbnQqIG1zcl9oaSAgLy8gcjgNCj4gKzsgICAg KQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArX3JkbXNyIFBST0MNCj4gKyAgICBwdXNo IHIxMA0KPiArICAgIHB1c2ggcjExDQo+ICsgICAgcHVzaCByYXgNCj4gKyAgICBwdXNoIHJkeA0K PiArDQo+ICsgICAgbW92IHIxMCwgcmR4IDsgbXNyX2xvDQo+ICsgICAgbW92IHIxMSwgcjggIDsg bXNyX2hpDQo+ICsNCj4gKyAgICA7IHJjeCBoYXMgbXNyX251bQ0KPiArICAgIHJkbXNyDQo+ICsN Cj4gKyAgICA7IFdyaXRlIE1TUiByZXN1bHRzIGluIGVkeDplYXgNCj4gKyAgICBtb3YgZHdvcmQg cHRyIFtyMTBdLCBlYXgNCj4gKyAgICBtb3YgZHdvcmQgcHRyIFtyMTFdLCBlZHgNCj4gKw0KPiAr ICAgIHBvcCByZHgNCj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcG9wIHIxMQ0KPiArICAgIHBvcCBy MTANCj4gKw0KPiArICAgIHJldA0KPiArX3JkbXNyIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArOyAgdm9pZCBfd3Jtc3IoDQo+ICs7ICAgIHVuc2lnbmVkIGludCBtc3Jf bnVtLCAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgaW50IG1zcl9oaSwgIC8vIHJkeA0KPiArOyAg ICB1bnNpZ25lZCBpbnQgbXNyX2xvICAgLy8gcjgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArX3dybXNyIFBST0MNCj4gKyAgICBwdXNoIHJheA0KPiArDQo+ICsgICAg OyByY3ggaGFzIG1zcl9udW0NCj4gKyAgICA7IHJkeCBoYXMgbXNyX2hpDQo+ICsgICAgOyBtb3Zl IG1zcl9sbyBmcm9tIHI4IHRvIHJheA0KPiArICAgIG1vdiByYXgsIHI4DQo+ICsgICAgd3Jtc3IN Cj4gKw0KPiArICAgIHBvcCByYXgNCj4gKyAgICByZXQNCj4gK193cm1zciBFTkRQDQo+ICsNCj4g Kw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdm9pZA0KPiArOyAgV3JpdGVQb3J0 RHdvcmQgKA0KPiArOyAgICB1bnNpZ25lZCBpbnQJb3V0X3ZhbHVlICAgICAgICAgIC8vIHJjeA0K PiArOyAgICB1bnNpZ25lZCBzaG9ydAlwb3J0X251bSAgICAgICAgICAgLy8gcmR4DQo+ICs7ICAg ICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dyaXRlUG9ydER3b3JkIFBST0MNCj4g KyAgICBwdXNoIHJheA0KPiArDQo+ICsgICAgbW92IHJheCwgcmN4DQo+ICsgICAgb3V0IGR4LCBy YXgNCj4gKw0KPiArICAgIHBvcCByYXgNCj4gKyAgICByZXQNCj4gK1dyaXRlUG9ydER3b3JkIEVO RFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdm9pZA0KPiArOyAgV3Jp dGVQb3J0V29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIHNob3J0CW91dF92YWx1ZSAgICAgICAgICAv LyByY3gNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJkeA0K PiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBvcnRXb3JkIFBS T0MNCj4gKyAgICBwdXNoIHJheA0KPiArDQo+ICsgICAgbW92IHJheCwgcmN4DQo+ICsgICAgb3V0 IGR4LCBheA0KPiArDQo+ICsgICAgcG9wIHJheA0KPiArICAgIHJldA0KPiArV3JpdGVQb3J0V29y ZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHZvaWQNCj4gKzsg IFdyaXRlUG9ydEJ5dGUgKA0KPiArOyAgICB1bnNpZ25lZCBjaGFyCW91dF92YWx1ZSAgICAgICAg ICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJk eA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBvcnRCeXRl IFBST0MNCj4gKyAgICBwdXNoIHJheA0KPiArDQo+ICsgICAgbW92IHJheCwgcmN4DQo+ICsgICAg b3V0IGR4LCBhbA0KPiArDQo+ICsgICAgcG9wIHJheA0KPiArICAgIHJldA0KPiArV3JpdGVQb3J0 Qnl0ZSBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHVuc2lnbmVk IGludA0KPiArOyAgUmVhZFBvcnREd29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIHNob3J0CXBvcnRf bnVtICAgICAgICAgICAvLyByY3gNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArUmVhZFBvcnREd29yZCBQUk9DDQo+ICsgICAgcHVzaCByZHgNCj4gKw0KPiArICAgIHhv ciByYXgsIHJheA0KPiArICAgIG1vdiByZHgsIHJjeA0KPiArICAgIGluIGVheCwgZHgNCj4gKw0K PiArICAgIHBvcCByZHgNCj4gKyAgICByZXQNCj4gK1JlYWRQb3J0RHdvcmQgRU5EUA0KPiArDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB1bnNpZ25lZCBzaG9ydA0KPiArOyAgUmVh ZFBvcnRXb3JkICgNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8v IHJjeA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFkUG9ydFdv cmQgUFJPQw0KPiArICAgIHB1c2ggcmR4DQo+ICsNCj4gKyAgICB4b3IgcmF4LCByYXgNCj4gKyAg ICBtb3YgcmR4LCByY3gNCj4gKyAgICBpbiBheCwgZHgNCj4gKw0KPiArICAgIHBvcCByZHgNCj4g KyAgICByZXQNCj4gK1JlYWRQb3J0V29yZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gKzsgIHVuc2lnbmVkIGNoYXINCj4gKzsgIFJlYWRQb3J0Qnl0ZSAoDQo+ICs7ICAg IHVuc2lnbmVkIHNob3J0CXBvcnRfbnVtICAgICAgICAgICAvLyByY3gNCj4gKzsgICAgKQ0KPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArUmVhZFBvcnRCeXRlIFBST0MNCj4gKyAgICBwdXNo IHJkeA0KPiArDQo+ICsgICAgeG9yIHJheCwgcmF4DQo+ICsgICAgbW92IHJkeCwgcmN4DQo+ICsg ICAgaW4gYWwsIGR4DQo+ICsNCj4gKyAgICBwb3AgcmR4DQo+ICsgICAgcmV0DQo+ICtSZWFkUG9y dEJ5dGUgRU5EUA0KPiArDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHZv aWQNCj4gKzsgIFdyaXRlSGlnaENNT1NCeXRlICgNCj4gKzsgICAgdW5zaWduZWQgY2hhcgljbW9z X29mZiAgICAgICAgLy8gcmN4DQo+ICs7ICAgIHVuc2lnbmVkIGNoYXIJdmFsICAgCQkvLyByZHgN Cj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArV3JpdGVIaWdoQ01PU0J5 dGUgUFJPQw0KPiArICAgIHB1c2ggcmF4DQo+ICsNCj4gKyAgICBtb3YgcmF4LCByY3gNCj4gKyAg ICBvdXQgNzJoLCBhbA0KPiArICAgIG1vdiByYXgsIHJkeA0KPiArICAgIG91dCA3M2gsIGFsDQo+ ICsNCj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcmV0DQo+ICtXcml0ZUhpZ2hDTU9TQnl0ZSBFTkRQ DQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2b2lkDQo+ICs7ICBXcml0ZUxvd0NN T1NCeXRlICgNCj4gKzsgICAgdW5zaWduZWQgY2hhcgljbW9zX29mZiAgICAgICAgLy8gcmN4DQo+ ICs7ICAgIHVuc2lnbmVkIGNoYXIJdmFsICAgCQkvLyByZHgNCj4gKzsgICAgKQ0KPiArOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiArV3JpdGVMb3dDTU9TQnl0ZSBQUk9DDQo+ICsgICAgcHVzaCBy YXgNCj4gKw0KPiArICAgIG1vdiByYXgsIHJjeA0KPiArICAgIG9yIGFsLCA4MGgNCj4gKyAgICBv dXQgNzBoLCBhbA0KPiArICAgIG1vdiByYXgsIHJkeA0KPiArICAgIG91dCA3MWgsIGFsDQo+ICsN Cj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcmV0DQo+ICtXcml0ZUxvd0NNT1NCeXRlIEVORFANCj4g Kw0KPiArDQo+ICs7IEBUT0RPOiBsb29rcyBpbmNvcnJlY3QNCj4gKzstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gKzsgIHZvaWQNCj4gKzsgIFNlbmRBUE1TTUkgKA0KPiArOyAgICB1bnNpZ25lZCBp bnQJYXBtX3BvcnRfdmFsdWUgICAgICAgICAgLy8gcmN4DQo+ICs7ICAgIElOICAgVUlOVDY0CXJh eF92YWx1ZSAgICAgICAgICAgICAgIC8vIHJkeA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICtTZW5kQVBNU01JIFBST0MNCj4gKyAgICBwdXNoIHJheA0KPiArICAgIHB1 c2ggcmR4DQo+ICsNCj4gKyAgICBtb3YgcmF4LCByY3gNCj4gKyAgICBtb3YgZHgsIDBCMmgNCj4g KyAgICBvdXQgZHgsIHJheA0KPiArDQo+ICsgICAgcG9wIHJkeA0KPiArICAgIHBvcCByYXgNCj4g KyAgICByZXQNCj4gK1NlbmRBUE1TTUkgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ICs7ICB2b2lkDQo+ICs7ICBXcml0ZVBDSUJ5dGUgKA0KPiArOyAgICB1bnNpZ25lZCBp bnQJcGNpX3JlZyAgICAgICAgICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJY2ZnX2Rh dGFfcG9ydCAgICAvLyByZHgNCj4gKzsgICAgdW5zaWduZWQgY2hhcglieXRlX3ZhbHVlICAgICAg IC8vIHI4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dyaXRlUENJ Qnl0ZSBQUk9DDQo+ICsgICAgcHVzaCByYXgNCj4gKyAgICBwdXNoIHJkeA0KPiArDQo+ICsgICAg Y2xpDQo+ICsgICAgbW92IHJheCwgcmN4ICA7IHBjaV9yZWcNCj4gKyAgICBtb3YgZHgsIDBDRjho DQo+ICsgICAgb3V0IGR4LCByYXgNCj4gKw0KPiArICAgIG1vdiByYXgsIHI4ICAgOyBieXRlX3Zh bHVlDQo+ICsgICAgcG9wIHJkeCAgICAgICA7IGNmZ19kYXRhX3BvcnQNCj4gKyAgICBvdXQgZHgs IGFsDQo+ICsgICAgc3RpDQo+ICsNCj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcmV0DQo+ICtXcml0 ZVBDSUJ5dGUgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2b2lk DQo+ICs7ICBXcml0ZVBDSVdvcmQgKA0KPiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAg ICAgICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJY2ZnX2RhdGFfcG9ydCAgICAvLyBy ZHgNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJd29yZF92YWx1ZSAgICAgICAvLyByOA0KPiArOyAg ICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBDSVdvcmQgUFJPQw0KPiAr ICAgIHB1c2ggcmF4DQo+ICsgICAgcHVzaCByZHgNCj4gKw0KPiArICAgIGNsaQ0KPiArICAgIG1v diByYXgsIHJjeCAgOyBwY2lfcmVnDQo+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiArICAgIG91dCBk eCwgcmF4DQo+ICsNCj4gKyAgICBtb3YgcmF4LCByOCAgIDsgYnl0ZV92YWx1ZQ0KPiArICAgIHBv cCByZHggICAgICAgOyBjZmdfZGF0YV9wb3J0DQo+ICsgICAgb3V0IGR4LCBheA0KPiArICAgIHN0 aQ0KPiArDQo+ICsgICAgcG9wIHJheA0KPiArICAgIHJldA0KPiArV3JpdGVQQ0lXb3JkIEVORFAN Cj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdm9pZA0KPiArOyAgV3JpdGVQ Q0lEd29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0K PiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiArOyAgICB1 bnNpZ25lZCBpbnQJZHdvcmRfdmFsdWUgICAgICAvLyByOA0KPiArOyAgICApDQo+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBDSUR3b3JkIFBST0MNCj4gKyAgICBwdXNoIHJheA0K PiArICAgIHB1c2ggcmR4DQo+ICsNCj4gKyAgICBjbGkNCj4gKyAgICBtb3YgcmF4LCByY3ggIDsg cGNpX3JlZw0KPiArICAgIG1vdiBkeCwgMENGOGgNCj4gKyAgICBvdXQgZHgsIHJheA0KPiArDQo+ ICsgICAgbW92IHJheCwgcjggICA7IGJ5dGVfdmFsdWUNCj4gKyAgICBwb3AgcmR4ICAgICAgIDsg Y2ZnX2RhdGFfcG9ydA0KPiArICAgIG91dCBkeCwgZWF4DQo+ICsgICAgc3RpDQo+ICsNCj4gKyAg ICBwb3AgcmF4DQo+ICsgICAgcmV0DQo+ICtXcml0ZVBDSUR3b3JkIEVORFANCj4gKw0KPiArDQo+ ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHVuc2lnbmVkIGNoYXINCj4gKzsg IFJlYWRQQ0lCeXRlICgNCj4gKzsgICAgdW5zaWduZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8g cmN4DQo+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3BvcnQgICAgLy8gcmR4DQo+ICs7 ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1JlYWRQQ0lCeXRlIFBST0MNCj4g KyAgICBwdXNoIHJkeA0KPiArDQo+ICsgICAgY2xpDQo+ICsgICAgbW92IHJheCwgcmN4ICA7IHBj aV9yZWcNCj4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ICsgICAgb3V0IGR4LCByYXgNCj4gKw0KPiAr ICAgIHhvciByYXgsIHJheA0KPiArICAgIHBvcCByZHggICAgICAgOyBjZmdfZGF0YV9wb3J0DQo+ ICsgICAgaW4gIGFsLCBkeA0KPiArICAgIHN0aQ0KPiArDQo+ICsgICAgcmV0DQo+ICtSZWFkUENJ Qnl0ZSBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHVuc2lnbmVk IHNob3J0DQo+ICs7ICBSZWFkUENJV29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVn ICAgICAgICAgIC8vIHJjeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAg IC8vIHJkeA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFkUENJ V29yZCBQUk9DDQo+ICsgICAgcHVzaCByZHgNCj4gKw0KPiArICAgIGNsaQ0KPiArICAgIG1vdiBy YXgsIHJjeCAgOyBwY2lfcmVnDQo+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiArICAgIG91dCBkeCwg cmF4DQo+ICsNCj4gKyAgICB4b3IgcmF4LCByYXgNCj4gKyAgICBwb3AgcmR4ICAgICAgIDsgY2Zn X2RhdGFfcG9ydA0KPiArICAgIGluICBheCwgZHgNCj4gKyAgICBzdGkNCj4gKw0KPiArICAgIHJl dA0KPiArUmVhZFBDSVdvcmQgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ICs7ICB1bnNpZ25lZCBpbnQNCj4gKzsgIFJlYWRQQ0lEd29yZCAoDQo+ICs7ICAgIHVuc2lnbmVk IGludAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdf ZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ICtSZWFkUENJRHdvcmQgUFJPQw0KPiArICAgIHB1c2ggcmR4DQo+ICsNCj4gKyAgICBjbGkN Cj4gKyAgICBtb3YgcmF4LCByY3ggIDsgcGNpX3JlZw0KPiArICAgIG1vdiBkeCwgMENGOGgNCj4g KyAgICBvdXQgZHgsIHJheA0KPiArDQo+ICsgICAgeG9yIHJheCwgcmF4DQo+ICsgICAgcG9wIHJk eCAgICAgICA7IGNmZ19kYXRhX3BvcnQNCj4gKyAgICBpbiAgZWF4LCBkeA0KPiArICAgIHN0aQ0K PiArDQo+ICsgICAgcmV0DQo+ICtSZWFkUENJRHdvcmQgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICs7ICB2b2lkDQo+ICs7ICBfc3dzbWkgKA0KPiArOyAgICB1bnNpZ25l ZCBpbnQJc21pX2NvZGVfZGF0YQkvLyByY3gNCj4gKzsgICAgSU4gICBVSU5UNjQJcmF4X3ZhbHVl CS8vIHJkeA0KPiArOyAgICBJTiAgIFVJTlQ2NAlyYnhfdmFsdWUJLy8gcjgNCj4gKzsgICAgSU4g ICBVSU5UNjQJcmN4X3ZhbHVlCS8vIHI5DQo+ICs7ICAgIElOICAgVUlOVDY0CXJkeF92YWx1ZQkv LyByc3AgKyAweDI4DQo+ICs7ICAgIElOICAgVUlOVDY0CXJzaV92YWx1ZQkvLyByc3AgKyAweDMw DQo+ICs7ICAgIElOICAgVUlOVDY0CXJkaV92YWx1ZQkvLyByc3AgKyAweDM4DQo+ICs7ICAgICkN Cj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK19zd3NtaSBQUk9DDQo+ICsgICAgcHVzaCBy YngNCj4gKyAgICBwdXNoIHJzaQ0KPiArICAgIHB1c2ggcmRpDQo+ICsNCj4gKyAgICA7IHJzcCAt IDB4MTgNCj4gKw0KPiArICAgIDsgc2V0dGluZyB1cCBHUFIgKGFyZ3VtZW50cykgdG8gU01JIGhh bmRsZXIgY2FsbA0KPiArICAgIDsgbm90ZXM6DQo+ICsgICAgOyAgIFJBWCB3aWxsIGdldCBwYXJ0 aWFsbHkgb3ZlcndyaXR0ZW4gKEFYKSBieSBfc21pX2NvZGVfZGF0YSAod2hpY2ggaXMgcGFzc2Vk IGluIFJDWCkNCj4gKyAgICA7ICAgUkRYIHdpbGwgZ2V0IHBhcnRpYWxseSBvdmVyd3JpdHRlbiAo RFgpIGJ5IHRoZSB2YWx1ZSBvZiBBUE1DIHBvcnQgKD0gMHgwMEIyKQ0KPiArICAgIG1vdiByYXgs IHJkeCA7IHJheF92YWx1ZQ0KPiArICAgIG1vdiBheCwgY3ggICA7IHNtaV9jb2RlX2RhdGENCj4g KyAgICBtb3YgcmR4LCByMTAgOyByZHhfdmFsdWUNCj4gKyAgICBtb3YgcmR4LCBbcnNwICsgMDQw aF0gOyByc3AgKyAweDI4ICsgMHgxOA0KPiArDQo+ICsgICAgbW92IHJieCwgcjggIDsgcmJ4X3Zh bHVlDQo+ICsgICAgbW92IHJjeCwgcjkgIDsgcmN4X3ZhbHVlDQo+ICsgICAgbW92IHJzaSwgW3Jz cCArIDA0OGhdIDsgcnNpX3ZhbHVlDQo+ICsgICAgbW92IHJkaSwgW3JzcCArIDA1MGhdIDsgcmRp X3ZhbHVlDQo+ICsNCj4gKyAgICA7IHRoaXMgT1VUIGluc3RydWN0aW9uIHdpbGwgd3JpdGUgV09S RCB2YWx1ZSAoc21pX2NvZGVfZGF0YSkgdG8gcG9ydHMgMHhCMiBhbmQgMHhCMyAoU1cgU01JIGNv bnRyb2wgYW5kIGRhdGEgcG9ydHMpDQo+ICsgICAgb3V0IDBCMmgsIGF4DQo+ICsNCj4gKyAgICA7 IEBUT0RPOiBzb21lIFNNIGhhbmRsZXJzIHJldHVybiBkYXRhL2Vycm9yY29kZSBpbiBHUFJzLCBu ZWVkIHRvIHJldHVybiB0aGlzIHRvIHRoZSBjYWxsZXINCj4gKw0KPiArICAgIHBvcCByZGkNCj4g KyAgICBwb3AgcnNpDQo+ICsgICAgcG9wIHJieA0KPiArICAgIHJldA0KPiArX3N3c21pIEVORFAN Cj4gKw0KPiArDQo+ICtFTkQNCj4gZGlmZiAtLWdpdCBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0 aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyLmFzbSBiL0FwcFBr Zy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0NCj4gMy42LjgvUHlNb2QtMy42LjgvTW9kdWxl cy9jcHVfaWEzMi5hc20NCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4u MGI2ZmM2ZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0 aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyLmFzbQ0KPiBAQCAt MCwwICsxLDM5NSBAQA0KPiArVElUTEUgICBjcHUuYXNtOiBBc3NlbWJseSBjb2RlIGZvciB0aGUg aTM4NiByZXNvdXJjZXMNCj4gKw0KPiArUFVCTElDIFdyaXRlUG9ydER3b3JkDQo+ICtQVUJMSUMg V3JpdGVQb3J0V29yZA0KPiArUFVCTElDIFdyaXRlUG9ydEJ5dGUNCj4gK1BVQkxJQyBSZWFkUG9y dER3b3JkDQo+ICtQVUJMSUMgUmVhZFBvcnRXb3JkDQo+ICtQVUJMSUMgUmVhZFBvcnRCeXRlDQo+ ICtQVUJMSUMgV3JpdGVIaWdoQ01PU0J5dGUNCj4gK1BVQkxJQyBXcml0ZUxvd0NNT1NCeXRlDQo+ ICtQVUJMSUMgU2VuZEFQTVNNSQ0KPiArUFVCTElDIFdyaXRlUENJQnl0ZQ0KPiArUFVCTElDIFdy aXRlUENJV29yZA0KPiArUFVCTElDIFdyaXRlUENJRHdvcmQNCj4gK1BVQkxJQyBSZWFkUENJQnl0 ZQ0KPiArUFVCTElDIFJlYWRQQ0lXb3JkDQo+ICtQVUJMSUMgUmVhZFBDSUR3b3JkDQo+ICtQVUJM SUMgX3JkbXNyDQo+ICtQVUJMSUMgX3dybXNyDQo+ICsNCj4gKw0KPiArICAgIC41ODZwDQo+ICsg ICAgLm1vZGVsICBmbGF0LEMNCj4gKyAgICAuY29kZQ0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICs7IHZvaWQgX3N0b3JlX2lkdHIoDQo+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRk cmVzcyAvLyByY3gNCj4gKzsgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfc3Rv cmVfaWR0ciBQUk9DDQo+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3ArNF0NCj4gKyAgICBz aWR0IGR3b3JkIHB0ciBbZWN4XQ0KPiArICAgIHJldA0KPiArX3N0b3JlX2lkdHIgRU5EUA0KPiAr DQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgdm9pZCBfbG9hZF9pZHRyKA0K PiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ICs7ICAgKQ0KPiArOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiArX2xvYWRfaWR0ciBQUk9DDQo+ICsgICAgbW92IGVjeCwgZHdv cmQgcHRyIFtlc3ArNF0NCj4gKyAgICBsaWR0IGZ3b3JkIHB0ciBbZWN4XQ0KPiArICAgIHJldA0K PiArX2xvYWRfaWR0ciBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsg dm9pZCBfc3RvcmVfZ2R0cigNCj4gKzsgICB1bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0K PiArOyAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK19zdG9yZV9nZHRyIFBST0MN Cj4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCs0XQ0KPiArICAgIHNnZHQgZHdvcmQgcHRy IFtlY3hdDQo+ICsgICAgcmV0DQo+ICtfc3RvcmVfZ2R0ciBFTkRQDQo+ICsNCj4gKzstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gKzsgdm9pZCBfc3RvcmVfbGR0cigNCj4gKzsgICB1bnNpZ25lZCBj aGFyICphZGRyZXNzIC8vIHJjeA0KPiArOyAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gK19zdG9yZV9sZHRyIFBST0MNCj4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCs0XQ0K PiArICAgIHNsZHQgd29yZCBwdHIgW2VjeF0NCj4gKyAgICByZXQNCj4gK19zdG9yZV9sZHRyIEVO RFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdm9pZCBfX3N0ZGNhbGwg X3JkbXNyKA0KPiArOyAgICBJTiBVSU5UMzIgbXNyLA0KPiArOyAgICBPVVQgVUlOVDMyKiBtc3Js bywNCj4gKzsgICAgT1VUIFVJTlQzMiogbXNyaGkNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArX3JkbXNyIFBST0MNCj4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2Vz cCArIDRdIDsgbXNyDQo+ICsNCj4gKyAgICByZG1zcg0KPiArDQo+ICsgICAgbW92IGVjeCwgZHdv cmQgcHRyIFtlc3AgKyA4XQ0KPiArICAgIG1vdiBkd29yZCBwdHIgW2VjeF0sIGVheCA7IG1zcmxv DQo+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3AgKyAxMl0NCj4gKyAgICBtb3YgZHdvcmQg cHRyIFtlY3hdLCBlZHggOyBtc3JoaQ0KPiArDQo+ICsgICAgcmV0DQo+ICtfcmRtc3IgRU5EUA0K PiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICBWT0lEIF9fc3RkY2FsbCBfd3Jt c3IoDQo+ICs7ICAgIElOIFVJTlQzMiBtc3IsDQo+ICs7ICAgIElOIFVJTlQzMiBtc3JsbywNCj4g KzsgICAgSU4gVUlOVDMyIG1zcmhpDQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gK193cm1zciBQUk9DDQo+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAg OyBtc3INCj4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDhdIDsgbXNybG8NCj4gKyAg ICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDEyXSA7IG1zcmhpDQo+ICsNCj4gKyAgICB3cm1z cg0KPiArDQo+ICsgICAgcmV0DQo+ICtfd3Jtc3IgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICs7VUlOVDMyIF9lZmxhZ3MoKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArZWZsYWdzIFBST0MNCj4gKyAgICBwdXNoZmQNCj4gKyAgICBwb3AgZWF4DQo+ICsgICAg cmV0DQo+ICtlZmxhZ3MgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7 ICBWT0lEDQo+ICs7ICBXcml0ZVBvcnREd29yZCAoDQo+ICs7ICAgIElOICAgVUlOVDMyICAgIG91 dF92YWx1ZQ0KPiArOyAgICBJTiAgIFVJTlQxNiAgICBwb3J0X251bQ0KPiArOyAgICApDQo+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBvcnREd29yZCBQUk9DDQo+ICsgICAgbW92 IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgICA7IG91dF92YWx1ZQ0KPiArICAgIG1vdiBlZHgs IGR3b3JkIHB0ciBbZXNwICsgOF0gICA7IHBvcnRfbnVtDQo+ICsgICAgb3V0IGR4LCBlYXgNCj4g Kw0KPiArICAgIHJldA0KPiArV3JpdGVQb3J0RHdvcmQgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICs7ICBWT0lEDQo+ICs7ICBXcml0ZVBvcnRXb3JkICgNCj4gKzsgICAg SU4gICBVSU5UMTYgICAgb3V0X3ZhbHVlDQo+ICs7ICAgIElOICAgVUlOVDE2ICAgIHBvcnRfbnVt DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dyaXRlUG9ydFdvcmQg UFJPQw0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gICA7IG91dF92YWx1ZQ0K PiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBbZXNwICsgOF0gIDsgcG9ydF9udW0NCj4gKyAgICBv dXQgZHgsIGF4DQo+ICsNCj4gKyAgICByZXQNCj4gK1dyaXRlUG9ydFdvcmQgRU5EUA0KPiArDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICBWT0lEDQo+ICs7ICBXcml0ZVBvcnRCeXRl ICgNCj4gKzsgICAgSU4gICBVSU5UOCAgICAgb3V0X3ZhbHVlDQo+ICs7ICAgIElOICAgVUlOVDE2 ICAgIHBvcnRfbnVtDQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dy aXRlUG9ydEJ5dGUgUFJPQw0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gICA7 IG91dF92YWx1ZQ0KPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBbZXNwICsgOF0gIDsgcG9ydF9u dW0NCj4gKyAgICBvdXQgZHgsIGFsDQo+ICsNCj4gKyAgICByZXQNCj4gK1dyaXRlUG9ydEJ5dGUg RU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICBVSU5UMzINCj4gKzsg IFJlYWRQb3J0RHdvcmQgKA0KPiArOyAgICBJTiAgIFVJTlQxNiAgICBwb3J0X251bQ0KPiArOyAg ICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFkUG9ydER3b3JkIFBST0MNCj4g KyAgICB4b3IgZWF4LCBlYXgNCj4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDRdIDsg cG9ydF9udW0NCj4gKyAgICBpbiBlYXgsIGR4DQo+ICsNCj4gKyAgIHJldA0KPiArUmVhZFBvcnRE d29yZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFVJTlQxNg0K PiArOyAgUmVhZFBvcnRXb3JkICgNCj4gKzsgICAgSU4gICBVSU5UMTYgICAgcG9ydF9udW0NCj4g KzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArUmVhZFBvcnRXb3JkIFBST0MN Cj4gKyAgICB4b3IgZWF4LCBlYXgNCj4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDRd IDsgcG9ydF9udW0NCj4gKyAgICBpbiBheCwgZHgNCj4gKw0KPiArICAgIHJldA0KPiArUmVhZFBv cnRXb3JkIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgVUlOVDgN Cj4gKzsgIFJlYWRQb3J0Qnl0ZSAoDQo+ICs7ICAgIElOICAgVUlOVDE2ICAgIHBvcnRfbnVtDQo+ ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1JlYWRQb3J0Qnl0ZSBQUk9D DQo+ICsgICAgeG9yIGVheCwgZWF4DQo+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA0 XSA7IHBvcnRfbnVtDQo+ICsgICAgaW4gYWwsIGR4DQo+ICsNCj4gKyAgICByZXQNCj4gK1JlYWRQ b3J0Qnl0ZSBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFZPSUQN Cj4gKzsgIFdyaXRlSGlnaENNT1NCeXRlICgNCj4gKzsgICAgSU4gICBVSU5UOCAgICAgY21vc19v ZmYNCj4gKzsgICAgSU4gICBVSU5UOCAgICAgdmFsDQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gK1dyaXRlSGlnaENNT1NCeXRlIFBST0MNCj4gKyAgICBtb3YgZWF4LCBk d29yZCBwdHIgW2VzcCArIDRdICA7IGNtb3Nfb2ZmDQo+ICsgICAgb3V0IDcyaCwgYWwNCj4gKyAg ICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IHZhbA0KPiArICAgIG91dCA3M2gsIGFs DQo+ICsNCj4gKyAgICByZXQNCj4gK1dyaXRlSGlnaENNT1NCeXRlIEVORFANCj4gKw0KPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgVk9JRA0KPiArOyAgV3JpdGVMb3dDTU9TQnl0ZSAo DQo+ICs7ICAgIElOICAgVUlOVDggICAgIGNtb3Nfb2ZmDQo+ICs7ICAgIElOICAgVUlOVDggICAg IHZhbA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZUxvd0NN T1NCeXRlIFBST0MNCj4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IGNtb3Nf b2ZmDQo+ICsgICAgb3IgYWwsIDgwaA0KPiArICAgIG91dCA3MGgsIGFsDQo+ICsgICAgbW92IGVh eCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyB2YWwNCj4gKyAgICBvdXQgNzFoLCBhbA0KPiArDQo+ ICsgICAgcmV0DQo+ICtXcml0ZUxvd0NNT1NCeXRlIEVORFANCj4gKw0KPiArDQo+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICs7ICBWT0lEDQo+ICs7ICBTZW5kQVBNU01JICgNCj4gKzsgICAg SU4gICBVSU5UMzIJYXBtX3BvcnRfdmFsdWUNCj4gKzsgICAgSU4gICBVSU5UNjQJcmF4X3ZhbHVl ICAgICAgICAgICAgICAgLy8gTk9UIFVTRUQ/Pz8NCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArU2VuZEFQTVNNSSBQUk9DDQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRy IFtlc3AgKyA0XSAgOyBhcG1fcG9ydF92YWx1ZQ0KPiArICAgIG1vdiBkeCwgMEIyaA0KPiArICAg IG91dCBkeCwgZWF4DQo+ICsNCj4gKyAgICByZXQNCj4gK1NlbmRBUE1TTUkgRU5EUA0KPiArDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICBWT0lEDQo+ICs7ICBXcml0ZVBDSUJ5dGUg KA0KPiArOyAgICBJTiAgIFVJTlQzMiAgICBwY2lfcmVnDQo+ICs7ICAgIElOICAgVUlOVDE2ICAg IGNmZ19kYXRhX3BvcnQNCj4gKzsgICAgSU4gICBVSU5UOCAgICAgYnl0ZV92YWx1ZQ0KPiArOyAg ICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBDSUJ5dGUgUFJPQw0KPiAr ICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgcGNpX3JlZw0KPiArICAgIG1vdiBk eCwgMENGOGgNCj4gKyAgICBvdXQgZHgsIGVheA0KPiArDQo+ICsgICAgbW92IGVheCwgZHdvcmQg cHRyIFtlc3AgKyAxMl0gIDsgd29yZF92YWx1ZQ0KPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBb ZXNwICsgOF0gIDsgY2ZnX2RhdGFfcG9ydA0KPiArICAgIG91dCBkeCwgYWwNCj4gKw0KPiArICAg IHJldA0KPiArV3JpdGVQQ0lCeXRlIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArOyAgVk9JRA0KPiArOyAgV3JpdGVQQ0lXb3JkICgNCj4gKzsgICAgSU4gICBVSU5UMzIg ICAgcGNpX3JlZw0KPiArOyAgICBJTiAgIFVJTlQxNiAgICBjZmdfZGF0YV9wb3J0DQo+ICs7ICAg IElOICAgVUlOVDE2ICAgIHdvcmRfdmFsdWUNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiArV3JpdGVQQ0lXb3JkIFBST0MNCj4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIg W2VzcCArIDRdICA7IHBjaV9yZWcNCj4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ICsgICAgb3V0IGR4 LCBlYXgNCj4gKw0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgMTJdICA7IHdvcmRf dmFsdWUNCj4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IGNmZ19kYXRhX3Bv cnQNCj4gKyAgICBvdXQgZHgsIGF4DQo+ICsNCj4gKyAgICByZXQNCj4gK1dyaXRlUENJV29yZCBF TkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFZPSUQNCj4gKzsgIFdy aXRlUENJRHdvcmQgKA0KPiArOyAgICBJTiAgIFVJTlQzMglwY2lfcmVnDQo+ICs7ICAgIElOICAg VUlOVDE2CWNmZ19kYXRhX3BvcnQgICAgLy8gcmR4DQo+ICs7ICAgIElOICAgVUlOVDMyCWR3b3Jk X3ZhbHVlICAgICAgLy8gcjgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiArV3JpdGVQQ0lEd29yZCBQUk9DDQo+ICsNCj4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2Vz cCArIDRdICA7IHBjaV9yZWcNCj4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ICsgICAgb3V0IGR4LCBl YXgNCj4gKw0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgMTJdICA7IGR3b3JkX3Zh bHVlDQo+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyBjZmdfZGF0YV9wb3J0 DQo+ICsgICAgb3V0IGR4LCBlYXgNCj4gKw0KPiArICAgIHJldA0KPiArV3JpdGVQQ0lEd29yZCBF TkRQDQo+ICsNCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdW5zaWduZWQg Y2hhcg0KPiArOyAgUmVhZFBDSUJ5dGUgKA0KPiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAg ICAgICAgICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJY2ZnX2RhdGFfcG9ydCAgICAv LyByZHgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArUmVhZFBDSUJ5 dGUgUFJPQw0KPiArICAgIGNsaQ0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0g IDsgcGNpX3JlZw0KPiArICAgIG1vdiBkeCwgMENGOGgNCj4gKyAgICBvdXQgZHgsIGVheA0KPiAr DQo+ICsgICAgeG9yIGVheCwgZWF4DQo+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4 XSAgIDsgY2ZnX2RhdGFfcG9ydA0KPiArICAgIGluICBhbCwgZHgNCj4gKyAgICBzdGkNCj4gKw0K PiArICAgIHJldA0KPiArUmVhZFBDSUJ5dGUgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICs7ICB1bnNpZ25lZCBzaG9ydA0KPiArOyAgUmVhZFBDSVdvcmQgKA0KPiArOyAg ICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAgICAgICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQg c2hvcnQJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArUmVhZFBDSVdvcmQgUFJPQw0KPiArICAgIGNsaQ0KPiArICAgIG1vdiBl YXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgcGNpX3JlZw0KPiArICAgIG1vdiBkeCwgMENGOGgN Cj4gKyAgICBvdXQgZHgsIGVheA0KPiArDQo+ICsgICAgeG9yIGVheCwgZWF4DQo+ICsgICAgbW92 IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgIDsgY2ZnX2RhdGFfcG9ydA0KPiArICAgIGluICBh eCwgZHgNCj4gKyAgICBzdGkNCj4gKw0KPiArICAgIHJldA0KPiArUmVhZFBDSVdvcmQgRU5EUA0K PiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB1bnNpZ25lZCBpbnQNCj4gKzsg IFJlYWRQQ0lEd29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVnICAgICAgICAgIC8v IHJjeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiAr OyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFkUENJRHdvcmQgUFJPQw0K PiArICAgIGNsaQ0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgcGNpX3Jl Zw0KPiArICAgIG1vdiBkeCwgMENGOGgNCj4gKyAgICBvdXQgZHgsIGVheA0KPiArDQo+ICsgICAg eG9yIGVheCwgZWF4DQo+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgIDsgY2Zn X2RhdGFfcG9ydA0KPiArICAgIGluICBlYXgsIGR4DQo+ICsgICAgc3RpDQo+ICsNCj4gKyAgICBy ZXQNCj4gK1JlYWRQQ0lEd29yZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gKzsgIHZvaWQNCj4gKzsgIF9zd3NtaSAoDQo+ICs7ICAgIHVuc2lnbmVkIGludAlzbWlfY29k ZV9kYXRhCS8vIHJjeA0KPiArOyAgICBJTiAgIFVJTlQzMglyYXhfdmFsdWUJLy8gcmR4DQo+ICs7 ICAgIElOICAgVUlOVDMyCXJieF92YWx1ZQkvLyByOA0KPiArOyAgICBJTiAgIFVJTlQzMglyY3hf dmFsdWUJLy8gcjkNCj4gKzsgICAgSU4gICBVSU5UMzIJcmR4X3ZhbHVlCS8vIHIxMA0KPiArOyAg ICBJTiAgIFVJTlQzMglyc2lfdmFsdWUJLy8gcjExDQo+ICs7ICAgIElOICAgVUlOVDMyCXJkaV92 YWx1ZQkvLyByMTINCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArX3N3 c21pIFBST0MNCj4gKyAgICB4b3IgZWF4LCBlYXgNCj4gKyAgICByZXQNCj4gK19zd3NtaSBFTkRQ DQo+ICsNCj4gK0VORA0KPiBkaWZmIC0tZ2l0IGEvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24v UHl0aG9uLTMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvZWRrMm1vZHVsZS5jIGIvQXBwUGtnL0Fw cGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLQ0KPiAzLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2Vk azJtb2R1bGUuYw0KPiBpbmRleCAwNTAxYTJiLi40ZGQ0YjdjIDEwMDY0NA0KPiAtLS0gYS9BcHBQ a2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9l ZGsybW9kdWxlLmMNCj4gKysrIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMu Ni44L1B5TW9kLTMuNi44L01vZHVsZXMvZWRrMm1vZHVsZS5jDQo+IEBAIC0zLDcgKzMsNyBAQA0K PiAgICAgIERlcml2ZWQgZnJvbSBwb3NpeG1vZHVsZS5jIGluIFB5dGhvbiAyLjcuMi4NCj4gDQo+ ICAgICAgQ29weXJpZ2h0IChjKSAyMDE1LCBEYXJ5bCBNY0RhbmllbC4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+IC0gICAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAyMSwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICAgIENvcHlyaWdodCAoYykgMjAx MSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g ICAgICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBsaWNl bnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXINCj4gICAgICB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIHRoYXQgYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRp b24uDQo+ICAgICAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQN Cj4gQEAgLTI5LDYgKzI5LDQ1IEBADQo+ICBleHRlcm4gIkMiIHsNCj4gICNlbmRpZg0KPiANCj4g KyNpZiBkZWZpbmVkKFVFRklfTVNWQ18zMikgfHwgZGVmaW5lZChVRUZJX01TVkNfNjQpDQo+ICsv Lw0KPiArLy8gQ0hJUFNFQyBleHRlbnNpb24gZm9yIGVkazIgbW9kdWxlIG9mIFB5dGhvbiAzLjYu OA0KPiArLy8gYnVpbGQgc3VwcG9ydCBhdmFpbGFibGUgZm9yDQo+ICsvLyBWUyBUb29sIGNoYWlu cyB4ODYgYW5kIHg2NCBiaXQgYnVpbGRzIG9ubHkuDQo+ICsvLw0KPiArICAgIFB5VHlwZU9iamVj dCBFZmlHdWlkVHlwZTsNCj4gKw0KPiArICAvLyAtLSBBY2Nlc3MgdG8gQ1BVIE1TUnMNCj4gKyAg ZXh0ZXJuIHZvaWQgX3JkbXNyKCB1bnNpZ25lZCBpbnQgbXNyX251bSwgdW5zaWduZWQgaW50KiBt c3JfbG8sIHVuc2lnbmVkIGludCogbXNyX2hpICk7DQo+ICsgIGV4dGVybiB2b2lkIF93cm1zcigg dW5zaWduZWQgaW50IG1zcl9udW0sIHVuc2lnbmVkIGludCAgbXNyX2hpLCB1bnNpZ25lZCBpbnQg IG1zcl9sbyApOw0KPiArICBleHRlcm4gdm9pZCBfc3dzbWkoIHVuc2lnbmVkIGludCBzbWlfY29k ZV9kYXRhLCB1bnNpZ25lZCBpbnQgcmF4X3ZhbHVlLCB1bnNpZ25lZCBpbnQgcmJ4X3ZhbHVlLCB1 bnNpZ25lZCBpbnQgcmN4X3ZhbHVlLA0KPiB1bnNpZ25lZCBpbnQgcmR4X3ZhbHVlLCB1bnNpZ25l ZCBpbnQgcnNpX3ZhbHVlLCB1bnNpZ25lZCBpbnQgcmRpX3ZhbHVlICk7DQo+ICsgIGV4dGVybiB1 bnNpZ25lZCBpbnQgIEFzbUNwdWlkRXgoIHVuc2lnbmVkIGludCAgUmVnaXN0ZXJJbkVheCwgdW5z aWduZWQgaW50ICBSZWdpc3RlckluRWN4LCB1bnNpZ25lZCBpbnQqDQo+IFJlZ2lzdGVyT3V0RWF4 LCB1bnNpZ25lZCBpbnQqIFJlZ2lzdGVyT3V0RWJ4LCB1bnNpZ25lZCBpbnQqIFJlZ2lzdGVyT3V0 RWN4LCB1bnNpZ25lZCBpbnQqIFJlZ2lzdGVyT3V0RWR4KTsNCj4gKyAgLy8gLS0gQWNjZXNzIHRv IFBDSSBDRkcgc3BhY2UNCj4gKyAgZXh0ZXJuIHZvaWQgV3JpdGVQQ0lCeXRlICAgICAgICAgICgg dW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVkIHNob3J0IGNmZ19kYXRhX3BvcnQsIHVuc2ln bmVkIGNoYXIgIGJ5dGVfdmFsdWUgKTsNCj4gKyAgZXh0ZXJuIHZvaWQgV3JpdGVQQ0lXb3JkICAg ICAgICAgICggdW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVkIHNob3J0IGNmZ19kYXRhX3Bv cnQsIHVuc2lnbmVkIHNob3J0IHdvcmRfdmFsdWUgKTsNCj4gKyAgZXh0ZXJuIHZvaWQgV3JpdGVQ Q0lEd29yZCAgICAgICAgICggdW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVkIHNob3J0IGNm Z19kYXRhX3BvcnQsIHVuc2lnbmVkIGludCAgIGR3b3JkX3ZhbHVlICk7DQo+ICsgIGV4dGVybiB1 bnNpZ25lZCBjaGFyICBSZWFkUENJQnl0ZSAoIHVuc2lnbmVkIGludCBwY2lfcmVnLCB1bnNpZ25l ZCBzaG9ydCBjZmdfZGF0YV9wb3J0ICk7DQo+ICsgIGV4dGVybiB1bnNpZ25lZCBzaG9ydCBSZWFk UENJV29yZCAoIHVuc2lnbmVkIGludCBwY2lfcmVnLCB1bnNpZ25lZCBzaG9ydCBjZmdfZGF0YV9w b3J0ICk7DQo+ICsgIGV4dGVybiB1bnNpZ25lZCBpbnQgICBSZWFkUENJRHdvcmQoIHVuc2lnbmVk IGludCBwY2lfcmVnLCB1bnNpZ25lZCBzaG9ydCBjZmdfZGF0YV9wb3J0ICk7DQo+ICsgIC8vIC0t IEFjY2VzcyB0byBQb3J0IEkvTw0KPiArICBleHRlcm4gdW5zaWduZWQgaW50ICAgUmVhZFBvcnRE d29yZCAoIHVuc2lnbmVkIHNob3J0IHBvcnRfbnVtICk7DQo+ICsgIGV4dGVybiB1bnNpZ25lZCBz aG9ydCBSZWFkUG9ydFdvcmQgICggdW5zaWduZWQgc2hvcnQgcG9ydF9udW0gKTsNCj4gKyAgZXh0 ZXJuIHVuc2lnbmVkIGNoYXIgIFJlYWRQb3J0Qnl0ZSAgKCB1bnNpZ25lZCBzaG9ydCBwb3J0X251 bSApOw0KPiArICBleHRlcm4gdm9pZCAgICAgICAgICAgV3JpdGVQb3J0RHdvcmQoIHVuc2lnbmVk IGludCAgIG91dF92YWx1ZSwgdW5zaWduZWQgc2hvcnQgcG9ydF9udW0gKTsNCj4gKyAgZXh0ZXJu IHZvaWQgICAgICAgICAgIFdyaXRlUG9ydFdvcmQgKCB1bnNpZ25lZCBzaG9ydCBvdXRfdmFsdWUs IHVuc2lnbmVkIHNob3J0IHBvcnRfbnVtICk7DQo+ICsgIGV4dGVybiB2b2lkICAgICAgICAgICBX cml0ZVBvcnRCeXRlICggdW5zaWduZWQgY2hhciAgb3V0X3ZhbHVlLCB1bnNpZ25lZCBzaG9ydCBw b3J0X251bSApOw0KPiArICAvLyAtLSBBY2Nlc3MgdG8gQ1BVIERlc2NyaXB0b3IgdGFibGVzDQo+ ICsgIGV4dGVybiB2b2lkIF9zdG9yZV9pZHRyKCB2b2lkKiBkZXNjX2FkZHJlc3MgKTsNCj4gKyAg ZXh0ZXJuIHZvaWQgX2xvYWRfaWR0ciAoIHZvaWQqIGRlc2NfYWRkcmVzcyApOw0KPiArICBleHRl cm4gdm9pZCBfc3RvcmVfZ2R0ciggdm9pZCogZGVzY19hZGRyZXNzICk7DQo+ICsgIGV4dGVybiB2 b2lkIF9zdG9yZV9sZHRyKCB2b2lkKiBkZXNjX2FkZHJlc3MgKTsNCj4gKw0KPiArICAvLyAtLSBT dXBwb3J0IHJvdXRpbmVzDQo+ICsgIEVGSV9TVEFUVVMgR3VpZFRvU3RyKCBJTiBFRklfR1VJRCAq Z3VpZCwgSU4gT1VUIFVJTlQ4ICpzdHJfYnVmZmVyICk7DQo+ICsNCj4gKyNlbmRpZg0KPiArDQo+ ICsNCj4gIFB5RG9jX1NUUlZBUihlZGsyX19kb2NfXywNCj4gICAgICAgICAgICAgICAiVGhpcyBt b2R1bGUgcHJvdmlkZXMgYWNjZXNzIHRvIFVFRkkgZmlybXdhcmUgZnVuY3Rpb25hbGl0eSB0aGF0 IGlzXG5cDQo+ICAgICAgICAgICAgICAgc3RhbmRhcmRpemVkIGJ5IHRoZSBDIFN0YW5kYXJkIGFu ZCB0aGUgUE9TSVggc3RhbmRhcmQgKGEgdGhpbmx5XG5cDQo+IEBAIC0zNzg0LDcgKzM4MjMsNyBA QCBlZGsyX3RtcG5hbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5vYXJncykNCj4gICAgICBy ZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcoYnVmZmVyKTsNCj4gIH0NCj4gICNlbmRpZg0KPiAt I2VuZGlmDQo+ICsjZW5kaWYNCj4gDQo+ICBQeURvY19TVFJWQVIoZWRrMl9hYm9ydF9fZG9jX18s DQo+ICAiYWJvcnQoKSAtPiBkb2VzIG5vdCByZXR1cm4hXG5cblwNCj4gQEAgLTM4MDAsNiArMzgz OSw1MDkgQEAgZWRrMl9hYm9ydChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5vYXJncykNCj4g ICAgICByZXR1cm4gTlVMTDsNCj4gIH0NCj4gDQo+ICsNCj4gKyNpZiBkZWZpbmVkKFVFRklfTVNW Q18zMikgfHwgZGVmaW5lZChVRUZJX01TVkNfNjQpDQo+ICsvKmNvZGUgbWVyZ2VkIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNlYy90cmVlL21haW4vY2hpcHNlY190b29scy9l ZGsyL1B5dGhvbkVGSSAqLw0KPiArLyogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgICBTVEFS VCAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgKi8NCj4gKw0KPiArdW5zaWduZWQgaW50 IFJlYWRQQ0lDZmcoDQo+ICsgIHVuc2lnbmVkIGNoYXIgYnVzLA0KPiArICB1bnNpZ25lZCBjaGFy IGRldiwNCj4gKyAgdW5zaWduZWQgY2hhciBmdW4sDQo+ICsgIHVuc2lnbmVkIGNoYXIgb2ZmLA0K PiArICB1bnNpZ25lZCBjaGFyIGxlbiAvLyAxLCAyLCA0IGJ5dGVzDQo+ICsgICkNCj4gK3sNCj4g KyAgdW5zaWduZWQgaW50IHJlc3VsdCA9IDA7DQo+ICsgIHVuc2lnbmVkIGludCBwY2lfYWRkciA9 ICgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2IDw8IDExKSB8IChmdW4gPDwgOCkgfCAo b2ZmICYgfjMpKTsNCj4gKyAgdW5zaWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9ydCA9ICh1bnNpZ25l ZCBzaG9ydCkoMHhDRkMgKyAoIG9mZiAmIDB4MyApKTsNCj4gKyAgaWYgICAgICggMSA9PSBsZW4g KSByZXN1bHQgPSAoUmVhZFBDSUJ5dGUgKCBwY2lfYWRkciwgY2ZnX2RhdGFfcG9ydCApICYgMHhG Rik7DQo+ICsgIGVsc2UgaWYoIDIgPT0gbGVuICkgcmVzdWx0ID0gKFJlYWRQQ0lXb3JkICggcGNp X2FkZHIsIGNmZ19kYXRhX3BvcnQgKSAmIDB4RkZGRik7DQo+ICsgIGVsc2UgaWYoIDQgPT0gbGVu ICkgcmVzdWx0ID0gIFJlYWRQQ0lEd29yZCggcGNpX2FkZHIsIGNmZ19kYXRhX3BvcnQgKTsNCj4g KyAgcmV0dXJuIHJlc3VsdDsNCj4gK30NCj4gKw0KPiArdm9pZCBXcml0ZVBDSUNmZygNCj4gKyAg dW5zaWduZWQgY2hhciBidXMsDQo+ICsgIHVuc2lnbmVkIGNoYXIgZGV2LA0KPiArICB1bnNpZ25l ZCBjaGFyIGZ1biwNCj4gKyAgdW5zaWduZWQgY2hhciBvZmYsDQo+ICsgIHVuc2lnbmVkIGNoYXIg bGVuLCAvLyAxLCAyLCA0IGJ5dGVzDQo+ICsgIHVuc2lnbmVkIGludCB2YWwNCj4gKyAgKQ0KPiAr ew0KPiArICB1bnNpZ25lZCBpbnQgcGNpX2FkZHIgPSAoMHg4MDAwMDAwMCB8IChidXMgPDwgMTYp IHwgKGRldiA8PCAxMSkgfCAoZnVuIDw8IDgpIHwgKG9mZiAmIH4zKSk7DQo+ICsgIHVuc2lnbmVk IHNob3J0IGNmZ19kYXRhX3BvcnQgPSAodW5zaWduZWQgc2hvcnQpKDB4Q0ZDICsgKCBvZmYgJiAw eDMgKSk7DQo+ICsgIGlmICAgICAoIDEgPT0gbGVuICkgV3JpdGVQQ0lCeXRlICggcGNpX2FkZHIs IGNmZ19kYXRhX3BvcnQsICh1bnNpZ25lZCBjaGFyKSh2YWwmMHhGRikgKTsNCj4gKyAgZWxzZSBp ZiggMiA9PSBsZW4gKSBXcml0ZVBDSVdvcmQgKCBwY2lfYWRkciwgY2ZnX2RhdGFfcG9ydCwgKHVu c2lnbmVkIHNob3J0KSh2YWwmMHhGRkZGKSApOw0KPiArICBlbHNlIGlmKCA0ID09IGxlbiApIFdy aXRlUENJRHdvcmQoIHBjaV9hZGRyLCBjZmdfZGF0YV9wb3J0LCB2YWwgKTsNCj4gK30NCj4gKw0K PiArUHlEb2NfU1RSVkFSKGVmaV9yZG1zcl9fZG9jX18sDQo+ICsicmRtc3IoZWN4KSAtPiAoZWF4 LGVkeClcblwNCj4gK1JlYWQgdGhlIGdpdmVuIE1TUi4iKTsNCj4gKw0KPiArc3RhdGljIFB5T2Jq ZWN0ICoNCj4gK3Bvc2l4X3JkbXNyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4g K3sNCj4gKyAgdW5zaWduZWQgaW50IHZlY3gsIHZlYXgsIHZlZHg7DQo+ICsgIGlmICghUHlBcmdf UGFyc2VUdXBsZShhcmdzLCAiSSIsICZ2ZWN4KSkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKyAg UHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICBfcmRtc3IoIHZlY3gsICZ2ZWF4LCAmdmVkeCAp Ow0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgi KElJKSIsICh1bnNpZ25lZCBsb25nKXZlYXgsICh1bnNpZ25lZCBsb25nKXZlZHgpOw0KPiArfQ0K PiArDQo+ICtQeURvY19TVFJWQVIoZWZpX3dybXNyX19kb2NfXywNCj4gKyJ3cm1zcihlY3gsIGVh eCwgZWR4KSAtPiBOb25lXG5cDQo+ICtXcml0ZSBlZHg6ZWF4IHRvIHRoZSBnaXZlbiBNU1IuIik7 DQo+ICsNCj4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ICtwb3NpeF93cm1zcihQeU9iamVjdCAqc2Vs ZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCB2ZWN4LCB2ZWF4LCB2 ZWR4Ow0KPiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJSSIsICZ2ZWN4LCAmdmVh eCwgJnZlZHgpKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArICBQeV9CRUdJTl9BTExPV19USFJF QURTDQo+ICsgIF93cm1zciggdmVjeCwgdmVkeCwgdmVheCApOw0KPiArICBQeV9FTkRfQUxMT1df VEhSRUFEUw0KPiArICBQeV9JTkNSRUYoUHlfTm9uZSk7DQo+ICsgIHJldHVybiBQeV9Ob25lOw0K PiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoZWZpX3N3c21pX19kb2NfXywNCj4gKyJzd3NtaShz bWlfY29kZV9kYXRhLCByYXhfdmFsdWUsIHJieF92YWx1ZSwgcmN4X3ZhbHVlLCByZHhfdmFsdWUs IHJzaV92YWx1ZSwgcmRpX3ZhbHVlKSAtPiBOb25lXG5cDQo+ICtUcmlnZ2VyaW5nIFNvZnR3YXJl IFNNSSIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfc3dzbWkoUHlPYmpl Y3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArICB1bnNpZ25lZCBpbnQgc21pX2Nv ZGVfZGF0YSwgcmF4X3ZhbHVlLCByYnhfdmFsdWUsIHJjeF92YWx1ZSwgcmR4X3ZhbHVlLCByc2lf dmFsdWUsIHJkaV92YWx1ZTsNCj4gKyAgaWYgKCFQeUFyZ19QYXJzZShhcmdzLCAiKElJSUlJSUkp IiwgJnNtaV9jb2RlX2RhdGEsICZyYXhfdmFsdWUsICZyYnhfdmFsdWUsICZyY3hfdmFsdWUsICZy ZHhfdmFsdWUsICZyc2lfdmFsdWUsDQo+ICZyZGlfdmFsdWUpKQ0KPiArICAgIHJldHVybiBOVUxM Ow0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgIF9zd3NtaSggc21pX2NvZGVfZGF0 YSwgcmF4X3ZhbHVlLCByYnhfdmFsdWUsIHJjeF92YWx1ZSwgcmR4X3ZhbHVlLCByc2lfdmFsdWUs IHJkaV92YWx1ZSApOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArICBQeV9JTkNSRUYo UHlfTm9uZSk7DQo+ICsgIHJldHVybiBQeV9Ob25lOw0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJW QVIoZWZpX2NwdWlkX19kb2NfXywNCj4gKyJjcHVpZChlYXgsIGVjeCkgLT4gKGVheDplYng6ZWN4 OmVkeClcblwNCj4gK1JlYWQgdGhlIENQVUlELiI7KTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0 ICoNCj4gK3Bvc2l4X2NwdWlkKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gK3sN Cj4gKwlVSU5UMzIgZWF4LCBlY3gsIHJheF92YWx1ZSwgcmJ4X3ZhbHVlLCByY3hfdmFsdWUsIHJk eF92YWx1ZTsNCj4gKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJIiwgJmVheCwg JmVjeCkpDQo+ICsgICAgICByZXR1cm4gTlVMTDsNCj4gKwlQeV9CRUdJTl9BTExPV19USFJFQURT DQo+ICsgICAgQXNtQ3B1aWRFeCggZWF4LCBlY3gsICZyYXhfdmFsdWUsICZyYnhfdmFsdWUsICZy Y3hfdmFsdWUsICZyZHhfdmFsdWUpOw0KPiArICAgIFB5X0VORF9BTExPV19USFJFQURTDQo+ICsg ICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJSUlJKSkiLCAgKHVuc2lnbmVkIGxvbmcpcmF4X3Zh bHVlLCAgKHVuc2lnbmVkIGxvbmcpcmJ4X3ZhbHVlLCAgKHVuc2lnbmVkIGxvbmcpcmN4X3ZhbHVl LA0KPiAodW5zaWduZWQgbG9uZylyZHhfdmFsdWUpOw0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJW QVIoZWZpX2FsbG9jcGh5c21lbV9fZG9jX18sDQo+ICsiYWxsb2NwaHlzbWVtKGxlbmd0aCwgbWF4 X3BhKSAtPiAodmEpXG5cDQo+ICtVc2UgbWFsbG9jIHRvIGFsbG9jYXRlIHNwYWNlIGluIG1lbW9y eS4iOyk7DQo+ICsNCj4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ICtwb3NpeF9hbGxvY3BoeXNtZW0o UHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArCXVuc2lnbmVkIGludCBs ZW5ndGgsIG1heF9wYTsNCj4gKyAgICB2b2lkICp2YTsNCj4gKyAgICBpZiAoIVB5QXJnX1BhcnNl VHVwbGUoYXJncywgIklJIiwgJmxlbmd0aCwgJm1heF9wYSkpDQo+ICsgICAgICByZXR1cm4gTlVM TDsNCj4gKw0KPiArCVB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgICB2YSA9IG1hbGxvYyhs ZW5ndGgpOw0KPiArICAgIFB5X0VORF9BTExPV19USFJFQURTDQo+ICsNCj4gKyAgICAvLyByZXR1 cm4gUHlfQnVpbGRWYWx1ZSgiKEspIiwgICh1bnNpZ25lZCBsb25nKXZhKTsNCj4gKyAgICByZXR1 cm4gUHlfQnVpbGRWYWx1ZSgiKEkpIiwgICh1bnNpZ25lZCBsb25nKXZhKTsNCj4gK30NCj4gKw0K PiArUHlEb2NfU1RSVkFSKGVmaV9yZWFkaW9fX2RvY19fLA0KPiArInJlYWRpbyhhZGRyLCBzaXpl KSAtPiAoaW50KVxuXA0KPiArUmVhZCB0aGUgdmFsdWUgKHNpemUgPT0gMSwgMiwgb3IgNCBieXRl cykgb2YgdGhlIHNwZWNpZmllZCBJTyBwb3J0LiIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3Qg Kg0KPiArcG9zaXhfcmVhZGlvKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gK3sN Cj4gKyAgdW5zaWduZWQgaW50IGFkZHIsIHN6LCByZXN1bHQ7DQo+ICsgIHNob3J0IGFkZHJzOw0K PiArDQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUkiLCAmYWRkciwgJnN6KSkN Cj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ ICsgIHJlc3VsdCA9IDA7DQo+ICsgIGFkZHJzID0gKHNob3J0KShhZGRyICYgMHhmZmZmKTsNCj4g KyAgaWYgICAgICggMSA9PSBzeiApIHJlc3VsdCA9IChSZWFkUG9ydEJ5dGUoIGFkZHJzICkgJiAw eEZGKTsNCj4gKyAgZWxzZSBpZiggMiA9PSBzeiApIHJlc3VsdCA9IChSZWFkUG9ydFdvcmQoIGFk ZHJzICkgJiAweEZGRkYpOw0KPiArICBlbHNlIGlmKCA0ID09IHN6ICkgcmVzdWx0ID0gUmVhZFBv cnREd29yZCggYWRkcnMgKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKyAgcmV0dXJu IFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKCh1bnNpZ25lZCBsb25nKXJlc3VsdCk7DQo+ICt9DQo+ ICsNCj4gK1B5RG9jX1NUUlZBUihlZmlfd3JpdGVpb19fZG9jX18sDQo+ICsid3JpdGVpbyhhZGRy LCBzaXplLCB2YWx1ZSkgLT4gTm9uZVxuXA0KPiArV3JpdGUgdGhlIHZhbHVlIChzaXplID09IDEs IDIsIG9yIDQgYnl0ZXMpIG9mIHRoZSBzcGVjaWZpZWQgSU8gcG9ydC4iKTsNCj4gKw0KPiArc3Rh dGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4X3dyaXRlaW8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzKQ0KPiArew0KPiArICB1bnNpZ25lZCBpbnQgYWRkciwgc3osIHZhbHVlOw0KPiArICBz aG9ydCBhZGRyczsNCj4gKw0KPiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJSSIs ICZhZGRyLCAmc3osICZ2YWx1ZSkpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsNCj4gKyAgUHlf QkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICBhZGRycyA9IChzaG9ydCkoYWRkciAmIDB4ZmZmZik7 DQo+ICsgIGlmICAgICAoIDEgPT0gc3ogKSBXcml0ZVBvcnRCeXRlICggKHVuc2lnbmVkIGNoYXIp KHZhbHVlJjB4RkYpLCBhZGRycyApOw0KPiArICBlbHNlIGlmKCAyID09IHN6ICkgV3JpdGVQb3J0 V29yZCAoICh1bnNpZ25lZCBzaG9ydCkodmFsdWUmMHhGRkZGKSwgYWRkcnMgKTsNCj4gKyAgZWxz ZSBpZiggNCA9PSBzeiApIFdyaXRlUG9ydER3b3JkKCB2YWx1ZSwgYWRkcnMgKTsNCj4gKyAgUHlf RU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBQeV9JTkNSRUYoUHlfTm9uZSk7DQo+ICsgIHJl dHVybiBQeV9Ob25lOw0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoZWZpX3JlYWRwY2lfX2Rv Y19fLA0KPiArInJlYWRwY2koYnVzLGRldixmdW5jLGFkZHIsc2l6ZSkgLT4gKGludClcblwNCj4g K1JlYWQgdGhlIHZhbHVlIChzaXplID09IDEsIDIsIG9yIDQgYnl0ZXMpIG9mIHRoZSBzcGVjaWZp ZWQgUENJIGIvZC9mLiIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfcmVh ZHBjaShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVuc2lnbmVk IGludCBidXMsIGRldiwgZnVuYywgYWRkciwgc3osIHJlc3VsdDsNCj4gKw0KPiArICBpZiAoIVB5 QXJnX1BhcnNlVHVwbGUoYXJncywgIklJSUlJIiwgJmJ1cywgJmRldiwgJmZ1bmMsICZhZGRyLCAm c3opKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVB RFMNCj4gKyAgcmVzdWx0ID0gUmVhZFBDSUNmZyggYnVzLCBkZXYsIGZ1bmMsIGFkZHIsIHN6ICk7 DQo+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ICsNCj4gKyAgcmV0dXJuIFB5TG9uZ19Gcm9t VW5zaWduZWRMb25nKCh1bnNpZ25lZCBsb25nKXJlc3VsdCk7DQo+ICt9DQo+ICsNCj4gK1B5RG9j X1NUUlZBUihlZmlfd3JpdGVwY2lfX2RvY19fLA0KPiArIndyaXRlcGNpKGJ1cyxkZXYsZnVuYyxh ZGRyLHZhbHVlLGxlbikgLT4gTm9uZVxuXA0KPiArV3JpdGUgdGhlIHZhbHVlIHRvIHRoZSBzcGVj aWZpZWQgUENJIGIvZC9mLiAgTGVuIGlzIHZhbHVlIHNpemUgKGVpdGhlciAxLCAyLCBvciA0IGJ5 dGVzKS4iKTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4X3dyaXRlcGNpKFB5 T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gK3sNCj4gKyAgdW5zaWduZWQgaW50IGJ1 cywgZGV2LCBmdW5jLCBhZGRyLCB2YWwsIGxlbjsNCj4gKw0KPiArICBpZiAoIVB5QXJnX1BhcnNl VHVwbGUoYXJncywgIklJSUlJSSIsICZidXMsICZkZXYsICZmdW5jLCAmYWRkciwgJnZhbCwgJmxl bikpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFE Uw0KPiArICBXcml0ZVBDSUNmZyggYnVzLCBkZXYsIGZ1bmMsIGFkZHIsIGxlbiwgdmFsICk7DQo+ ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ICsNCj4gKyAgUHlfSU5DUkVGKFB5X05vbmUpOw0K PiArICByZXR1cm4gUHlfTm9uZTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV9yZWFk bWVtX19kb2NfXywNCj4gKyJyZWFkbWVtKGFkZHJfbG8sIGFkZHJfaGksIGxlbikgLT4gQnl0ZVN0 cmluZ1xuXA0KPiArUmVhZCB0aGUgZ2l2ZW4gbWVtb3J5IGFkZHJlc3MuIik7DQo+ICsNCj4gK3N0 YXRpYyBQeU9iamVjdCAqDQo+ICtwb3NpeF9yZWFkbWVtKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqYXJncykNCj4gK3sNCj4gKyAgUHlPYmplY3QgICpkYXRhOw0KPiArICBVSU5UMzIgICAgIGFk ZHJfbG8sIGFkZHJfaGk7DQo+ICsgIGNoYXIgICAgICAqYnVmZmVyLCAqY2J1ZmZlciwgKmFkZHI7 DQo+ICsgIGludCAgICAgICAgbGVuLCBpbmRleDsNCj4gKw0KPiArICBpZiAoIVB5QXJnX1BhcnNl VHVwbGUoYXJncywgIklJSSIsICZhZGRyX2xvLCAmYWRkcl9oaSwgJmxlbikpDQo+ICsgICAgcmV0 dXJuIE5VTEw7DQo+ICsNCj4gKyNpZmRlZiBNREVfQ1BVX1g2NA0KPiArICBhZGRyID0gKHVuc2ln bmVkIGNoYXIqKSgoVUlOVDY0KWFkZHJfbG8gfCAoKFVJTlQ2NClhZGRyX2hpIDw8IDMyKSk7DQo+ ICsjZWxzZQ0KPiArICBhZGRyID0gKHVuc2lnbmVkIGNoYXIqKWFkZHJfbG87DQo+ICsjZW5kaWYN Cj4gKw0KPiArICBidWZmZXIgPSBtYWxsb2MobGVuKTsNCj4gKyAgaWYgKGJ1ZmZlciA9PSBOVUxM KQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICsgIGNidWZmZXIgPSBidWZmZXI7DQo+ICsg IGluZGV4ID0gbGVuOw0KPiArDQo+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiAr ICB3aGlsZShpbmRleC0tKXsNCj4gKyAgICAqY2J1ZmZlciA9ICphZGRyOw0KPiArICAgIGNidWZm ZXIrKzsNCj4gKyAgICBhZGRyKys7DQo+ICsgIH0NCj4gKw0KPiArICBQeV9FTkRfQUxMT1dfVEhS RUFEUw0KPiArDQo+ICsgIGRhdGEgPSBQeV9CdWlsZFZhbHVlKCJ5IyIsIGJ1ZmZlciwgbGVuKTsN Cj4gKyAgZnJlZShidWZmZXIpOw0KPiArDQo+ICsgIHJldHVybiBkYXRhOw0KPiArfQ0KPiArDQo+ ICtQeURvY19TVFJWQVIoZWZpX3JlYWRtZW1fZHdvcmRfX2RvY19fLA0KPiArInJlYWRtZW1fZHdv cmQoYWRkcl9sbywgYWRkcl9oaSkgLT4gKGludDMyKVxuXA0KPiArUmVhZCB0aGUgZ2l2ZW4gbWVt b3J5IGFkZHJlc3MgYW5kIHJldHVybiAzMi1iaXQgdmFsdWUuIik7DQo+ICsNCj4gK3N0YXRpYyBQ eU9iamVjdCAqDQo+ICtwb3NpeF9yZWFkbWVtX2R3b3JkKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqYXJncykNCj4gK3sNCj4gKyAgdW5zaWduZWQgaW50IHJlc3VsdCwgKmFkZHI7DQo+ICsgIFVJ TlQzMiBhZGRyX2xvLCBhZGRyX2hpOw0KPiArDQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShh cmdzLCAiSUkiLCAmYWRkcl9sbywgJmFkZHJfaGkpKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiAr DQo+ICsjaWZkZWYgTURFX0NQVV9YNjQNCj4gKyAgYWRkciA9ICh1bnNpZ25lZCBpbnQqKSgoVUlO VDY0KWFkZHJfbG8gfCAoKFVJTlQ2NClhZGRyX2hpIDw8IDMyKSk7DQo+ICsjZWxzZQ0KPiArICBh ZGRyID0gKHVuc2lnbmVkIGludCopYWRkcl9sbzsNCj4gKyNlbmRpZg0KPiArDQo+ICsgIFB5X0JF R0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgcmVzdWx0ID0gKmFkZHI7DQo+ICsgIFB5X0VORF9BTExP V19USFJFQURTDQo+ICsNCj4gKyAgcmV0dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKCh1bnNp Z25lZCBsb25nKXJlc3VsdCk7DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihlZmlfd3JpdGVt ZW1fX2RvY19fLA0KPiArIndyaXRlbWVtKGFkZHJfbG8sIGFkZHJfaGksIGJ1ZiwgbGVuKSAtPiBO b25lXG5cDQo+ICtXcml0ZSB0aGUgYnVmIChQeVN0cmluZykgdG8gdGhlIGdpdmVuIG1lbW9yeSBh ZGRyZXNzLiIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfd3JpdGVtZW0o UHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArICBjaGFyICpidWYsICph ZGRyOw0KPiArICBpbnQgbGVuOw0KPiArICBVSU5UMzIgYWRkcl9sbywgYWRkcl9oaTsNCj4gKw0K PiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJcyMiLCAmYWRkcl9sbywgJmFkZHJf aGksICZidWYsICZsZW4pKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICsjaWZkZWYgTURF X0NQVV9YNjQNCj4gKyAgYWRkciA9ICh1bnNpZ25lZCBjaGFyKikoKFVJTlQ2NClhZGRyX2xvIHwg KChVSU5UNjQpYWRkcl9oaSA8PCAzMikpOw0KPiArI2Vsc2UNCj4gKyAgYWRkciA9ICh1bnNpZ25l ZCBjaGFyKilhZGRyX2xvOw0KPiArI2VuZGlmDQo+ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhS RUFEUw0KPiArICB3aGlsZShsZW4tLSl7DQo+ICsgICAgKmFkZHIgPSAqYnVmOw0KPiArICAgIGJ1 ZisrOw0KPiArICAgIGFkZHIrKzsNCj4gKyAgfQ0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0K PiArDQo+ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ICt9 DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihlZmlfd3JpdGVtZW1fZHdvcmRfX2RvY19fLA0KPiArIndy aXRlbWVtX2R3b3JkKGFkZHJfbG8sIGFkZHJfaGksIHZhbCkgLT4gTm9uZVxuXA0KPiArV3JpdGUg dGhlIDMyLWJpdCB2YWx1ZSB0byB0aGUgZ2l2ZW4gbWVtb3J5IGFkZHJlc3MuIik7DQo+ICsNCj4g K3N0YXRpYyBQeU9iamVjdCAqDQo+ICtwb3NpeF93cml0ZW1lbV9kd29yZChQeU9iamVjdCAqc2Vs ZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCAqYWRkciwgdmFsOw0K PiArICBVSU5UMzIgYWRkcl9sbywgYWRkcl9oaTsNCj4gKw0KPiArICBpZiAoIVB5QXJnX1BhcnNl VHVwbGUoYXJncywgIklJSSIsICZhZGRyX2xvLCAmYWRkcl9oaSwgJnZhbCkpDQo+ICsgICAgcmV0 dXJuIE5VTEw7DQo+ICsNCj4gKyNpZmRlZiBNREVfQ1BVX1g2NA0KPiArICBhZGRyID0gKHVuc2ln bmVkIGludCopKChVSU5UNjQpYWRkcl9sbyB8ICgoVUlOVDY0KWFkZHJfaGkgPDwgMzIpKTsNCj4g KyNlbHNlDQo+ICsgIGFkZHIgPSAodW5zaWduZWQgaW50KilhZGRyX2xvOw0KPiArI2VuZGlmDQo+ ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICAqYWRkciA9IHZhbDsNCj4gKyAg UHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBQeV9JTkNSRUYoUHlfTm9uZSk7DQo+ICsg IHJldHVybiBQeV9Ob25lOw0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoTWlzY1JUX0dldFZh cmlhYmxlX19kb2NfXywNCj4gKyIoU3RhdHVzLCBBdHRyaWJ1dGVzLCBEYXRhLCBEYXRhU2l6ZSkg PSBHZXRWYXJpYWJsZShWYXJpYWJsZU5hbWUsIEdVSUQsIERhdGFTaXplKVxuXG5cDQo+ICtSZXR1 cm5zIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlLiIpOw0KPiArDQo+ICtzdGF0aWMNCj4gK1B5T2Jq ZWN0ICoNCj4gK01pc2NSVF9HZXRWYXJpYWJsZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFy Z3MpDQo+ICt7DQo+ICsgIFB5T2JqZWN0ICAgICAqZGF0YV9vdXQ7DQo+ICsgIENIQVIxNiAgICAg ICAqVmFyaWFibGVOYW1lOw0KPiArICBFRklfR1VJRCAgICAgIFZlbmRvckd1aWQ7DQo+ICsgIFVJ TlQzMiAgICAgICAgR3VpZFNpemU7DQo+ICsgIFVJTlQzMiAgICAgICAgQXR0cmlidXRlczsNCj4g KyAgVUlOVDY0ICAgICAgICBEYXRhU2l6ZTsNCj4gKyAgY2hhciAgICAgICAgICpEYXRhOw0KPiAr ICBjb25zdCBDSEFSMTYgKkd1aWRJbjsNCj4gKyAgRUZJX1NUQVRVUyAgICBTdGF0dXM7DQo+ICsN Cj4gKyAgaWYoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInV1I0siLCAmVmFyaWFibGVOYW1lLCAm R3VpZEluLCAmR3VpZFNpemUsICZEYXRhU2l6ZSkpDQo+ICsgIHsNCj4gKyAgICByZXR1cm4gTlVM TDsNCj4gKyAgfQ0KPiArDQo+ICsgIFN0clRvR3VpZChHdWlkSW4sICZWZW5kb3JHdWlkKTsNCj4g Kw0KPiArICBEYXRhID0gbWFsbG9jKERhdGFTaXplKTsNCj4gKyAgaWYgKCFEYXRhKQ0KPiArICAg IHJldHVybiBOVUxMOw0KPiArDQo+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgU3Rh dHVzID0gZ1JULT5HZXRWYXJpYWJsZShWYXJpYWJsZU5hbWUsICZWZW5kb3JHdWlkLCAmQXR0cmli dXRlcywgKFVJTlROICopJkRhdGFTaXplLCAodm9pZCopRGF0YSk7DQo+ICsgIFB5X0VORF9BTExP V19USFJFQURTDQo+ICsNCj4gKyAgZGF0YV9vdXQgPSBQeV9CdWlsZFZhbHVlKCIoSUl5I0spIiwg KFVJTlQzMilTdGF0dXMsIEF0dHJpYnV0ZXMsIERhdGEsIERhdGFTaXplLCBEYXRhU2l6ZSk7DQo+ ICsgIGZyZWUoRGF0YSk7DQo+ICsNCj4gKyAgcmV0dXJuIGRhdGFfb3V0Ow0KPiArfQ0KPiArDQo+ ICtQeURvY19TVFJWQVIoTWlzY1JUX0dldE5leHRWYXJpYWJsZU5hbWVfX2RvY19fLA0KPiArIihT dGF0dXMsIFZhcmlhYmxlTmFtZVNpemUsIFZhcmlhYmxlTmFtZSwgVmVuZG9yR3VpZCkgPSBHZXRO ZXh0VmFyaWFibGVOYW1lKE5hbWVTaXplLCBWYXJpYWJsZU5hbWUsIEdVSUQpXG5cblwNCj4gK0Vu dW1lcmF0ZXMgdGhlIGN1cnJlbnQgdmFyaWFibGUgbmFtZXMuIik7DQo+ICsNCj4gK3N0YXRpYw0K PiArUHlPYmplY3QgKg0KPiArTWlzY1JUX0dldE5leHRWYXJpYWJsZU5hbWUoUHlPYmplY3QgKnNl bGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArICBVSU5UNjQgICAgICAgIE5hbWVTaXplOw0K PiArICBDSEFSMTYgICAgICAgKlZhcmlhYmxlTmFtZSwgKk5hbWVJbjsNCj4gKyAgVUlOVDMyICAg ICAgICBHdWlkU2l6ZSwgVmFyaWFibGVOYW1lU2l6ZSwgaTsNCj4gKyAgRUZJX0dVSUQgICAgICBW ZW5kb3JHdWlkOw0KPiArICBFRklfU1RBVFVTICAgIFN0YXR1czsNCj4gKyAgY29uc3QgY2hhciAg ICpHdWlkSW47DQo+ICsgIGNoYXIgICAgICAgICAqVmVuZG9yR3VpZFB0ciwgKkd1aWRPdXRbMzdd Ow0KPiArDQo+ICsgIGlmKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJLeSNzIyIsICZOYW1lU2l6 ZSwgJk5hbWVJbiwgJlZhcmlhYmxlTmFtZVNpemUsICZHdWlkSW4sICZHdWlkU2l6ZSkpDQo+ICsg IHsNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKyAgfQ0KPiArDQo+ICsgIFZlbmRvckd1aWRQdHIg PSAoY2hhciAqKSZWZW5kb3JHdWlkOw0KPiArICBmb3IgKGk9MDsgaTxzaXplb2YoVmVuZG9yR3Vp ZCk7IGkrKykNCj4gKyAgICBWZW5kb3JHdWlkUHRyW2ldID0gR3VpZEluW2ldOw0KPiArDQo+ICsg IGZvciAoaT0wOyBpPE5hbWVTaXplICYmIE5hbWVJbltpXSAhPSAoQ0hBUjE2KTA7IGkrKykNCj4g KyAgICBWYXJpYWJsZU5hbWVbaV0gPSBOYW1lSW5baV07DQo+ICsgIFZhcmlhYmxlTmFtZVtpXSA9 IE5hbWVJbltpXTsNCj4gKw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgIFN0YXR1 cyA9IGdSVC0+R2V0TmV4dFZhcmlhYmxlTmFtZSgoVUlOVE4gKikmTmFtZVNpemUsIChDSEFSMTYg KilWYXJpYWJsZU5hbWUsICZWZW5kb3JHdWlkKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMN Cj4gKw0KPiArICBHdWlkVG9TdHIoKEVGSV9HVUlEICopJlZlbmRvckd1aWQsIChVSU5UOCAqKUd1 aWRPdXQpOw0KPiArDQo+ICsgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSXVLcykiLCAoVUlOVDMy KSBTdGF0dXMsIFZhcmlhYmxlTmFtZSwgTmFtZVNpemUsICZHdWlkT3V0KTsNCj4gK30NCj4gKw0K PiArUHlEb2NfU1RSVkFSKE1pc2NSVF9TZXRWYXJpYWJsZV9fZG9jX18sDQo+ICsiKFN0YXR1cywg RGF0YVNpemUsIEdVSUQpID0gU2V0VmFyaWFibGUoVmFyaWFibGVOYW1lLCBHVUlELCBBdHRyaWJ1 dGVzLCBEYXRhLCBEYXRhU2l6ZSlcblxuXA0KPiArU2V0cyB0aGUgdmFsdWUgb2YgYSB2YXJpYWJs ZS4iKTsNCj4gKw0KPiArc3RhdGljDQo+ICtQeU9iamVjdCAqDQo+ICtNaXNjUlRfU2V0VmFyaWFi bGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArICBDSEFSMTYgICAg ICAgKlZhcmlhYmxlTmFtZTsNCj4gKyAgVUlOVDY0ICAgICAgICBEYXRhU2l6ZTsNCj4gKyAgY2hh ciAgICAgICAgICpEYXRhLCAqZ3VpZHB0ciwgKlZlbmRvckd1aWRQdHI7DQo+ICsgIGNoYXIgICAg ICAgICAqR3VpZE91dFszN107DQo+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiArICBFRklf R1VJRCAgICAgIFZlbmRvckd1aWQ7DQo+ICsgIFVJTlQzMiAgICAgICAgQXR0cmlidXRlczsNCj4g KyAgVUlOVDMyICAgICAgICBHdWlkU2l6ZSwgc3RyRGF0YVNpemU7DQo+ICsgIGNvbnN0IENIQVIx NiAqR3VpZEluOw0KPiArDQo+ICsgIGlmKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ1dSNJcyNJ IiwgJlZhcmlhYmxlTmFtZSwgJkd1aWRJbiwgJkd1aWRTaXplLCAmQXR0cmlidXRlcywgJkRhdGEs ICZzdHJEYXRhU2l6ZSwgJkRhdGFTaXplKSkNCj4gKyAgew0KPiArICAgIHJldHVybiBOVUxMOw0K PiArICB9DQo+ICsNCj4gKyAgU3RyVG9HdWlkKEd1aWRJbiwgJlZlbmRvckd1aWQpOw0KPiArDQo+ ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgU3RhdHVzID0gZ1JULT5TZXRWYXJpYWJs ZShWYXJpYWJsZU5hbWUsICZWZW5kb3JHdWlkLCBBdHRyaWJ1dGVzLCAoVUlOVE4pRGF0YVNpemUs ICh2b2lkKilEYXRhKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBHdWlk VG9TdHIoKEVGSV9HVUlEICopJlZlbmRvckd1aWQsIChVSU5UOCAqKUd1aWRPdXQpOw0KPiArDQo+ ICsvLyAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSUt1IykiLCAoVUlOVDMyKSBTdGF0dXMsIERh dGFTaXplLCAmVmVuZG9yR3VpZCwgc2l6ZW9mKFZlbmRvckd1aWQpKTsNCj4gKyAgcmV0dXJuIFB5 X0J1aWxkVmFsdWUoIihJS3MpIiwgKFVJTlQzMikgU3RhdHVzLCBEYXRhU2l6ZSwgJkd1aWRPdXQp Ow0KPiArfQ0KPiArDQo+ICsNCj4gKw0KPiArRUZJX1NUQVRVUw0KPiArR3VpZFRvU3RyICgNCj4g KyAgSU4gRUZJX0dVSUQgICpndWlkLA0KPiArICBJTiBPVVQgVUlOVDggKnN0cl9idWZmZXINCj4g KyAgKQ0KPiArLyorKw0KPiArDQo+ICtSb3V0aW5lIERlc2NyaXB0aW9uOg0KPiArICBUaGlzIGZ1 bmN0aW9uIHByaW50cyBhIEdVSUQgdG8gYSBidWZmZXINCj4gKw0KPiArQXJndW1lbnRzOg0KPiAr ICBndWlkICAgICAgIC0gUG9pbnRlciB0byBhIEdVSUQNCj4gKyAgc3RyX2J1ZmZlciAtIFBvaW50 ZXIgdG8gYSBzdHIgYnVmZmVyDQo+ICsNCj4gK1JldHVybnM6DQo+ICsgIEVGSV9TVUNDRVNTICAg ICAgICAgICAgR1VJRCB3YXMgcHJpbnRlZA0KPiArICBFRklfSU5WQUxJRF9QQVJBTUVURVIgIEdV SUQgd2FzIE5VTEwNCj4gKw0KPiArLS0qLw0KPiArew0KPiArICBpZiAoZ3VpZCA9PSBOVUxMKSB7 DQo+ICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gKyAgfQ0KPiArDQo+ICsg IHNwcmludGYgKA0KPiArICAgIChDSEFSOCAqKXN0cl9idWZmZXIsDQo+ICsgICAgIiUwOFgtJTA0 WC0lMDRYLSUwMlglMDJYLSUwMlglMDJYJTAyWCUwMlglMDJYJTAyWCIsDQo+ICsgICAgKHVuc2ln bmVkKSBndWlkLT5EYXRhMSwNCj4gKyAgICBndWlkLT5EYXRhMiwNCj4gKyAgICBndWlkLT5EYXRh MywNCj4gKyAgICBndWlkLT5EYXRhNFswXSwNCj4gKyAgICBndWlkLT5EYXRhNFsxXSwNCj4gKyAg ICBndWlkLT5EYXRhNFsyXSwNCj4gKyAgICBndWlkLT5EYXRhNFszXSwNCj4gKyAgICBndWlkLT5E YXRhNFs0XSwNCj4gKyAgICBndWlkLT5EYXRhNFs1XSwNCj4gKyAgICBndWlkLT5EYXRhNFs2XSwN Cj4gKyAgICBndWlkLT5EYXRhNFs3XQ0KPiArICAgICk7DQo+ICsNCj4gKyAgcmV0dXJuIEVGSV9T VUNDRVNTOw0KPiArfQ0KPiArDQo+ICsNCj4gKw0KPiArLypjb2RlIG1lcmdlZCBmcm9tIGh0dHBz Oi8vZ2l0aHViLmNvbS9jaGlwc2VjL2NoaXBzZWMvdHJlZS9tYWluL2NoaXBzZWNfdG9vbHMvZWRr Mi9QeXRob25FRkkgKi8NCj4gKy8qICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgIEVORCAg ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICovDQo+ICsjZW5kaWYNCj4gKw0KPiArDQo+ ICBzdGF0aWMgUHlNZXRob2REZWYgZWRrMl9tZXRob2RzW10gPSB7DQo+ICAgICAgeyJhY2Nlc3Mi LCAgICAgICAgICBlZGsyX2FjY2VzcywgICAgIE1FVEhfVkFSQVJHUywgZWRrMl9hY2Nlc3NfX2Rv Y19ffSwNCj4gICNpZmRlZiBIQVZFX1RUWU5BTUUNCj4gQEAgLTQwNDQsNyArNDU4Niw3IEBAIHN0 YXRpYyBQeU1ldGhvZERlZiBlZGsyX21ldGhvZHNbXSA9IHsNCj4gICNpZmRlZiBIQVZFX1RNUE5B TQ0KPiAgICAgIHsidG1wbmFtIiwgICAgICAgICAgZWRrMl90bXBuYW0sICAgICBNRVRIX05PQVJH UywgIGVkazJfdG1wbmFtX19kb2NfX30sDQo+ICAjZW5kaWYNCj4gLSNlbmRpZg0KPiArI2VuZGlm DQo+ICAjaWZkZWYgSEFWRV9DT05GU1RSDQo+ICAgICAgeyJjb25mc3RyIiwgICAgICAgICBlZGsy X2NvbmZzdHIsIE1FVEhfVkFSQVJHUywgZWRrMl9jb25mc3RyX19kb2NfX30sDQo+ICAjZW5kaWYN Cj4gQEAgLTQwNTgsNiArNDYwMCwyNiBAQCBzdGF0aWMgUHlNZXRob2REZWYgZWRrMl9tZXRob2Rz W10gPSB7DQo+ICAgICAgeyJwYXRoY29uZiIsICAgICAgICBlZGsyX3BhdGhjb25mLCBNRVRIX1ZB UkFSR1MsIGVkazJfcGF0aGNvbmZfX2RvY19ffSwNCj4gICNlbmRpZg0KPiAgICAgIHsiYWJvcnQi LCAgICAgICAgICAgZWRrMl9hYm9ydCwgICAgICBNRVRIX05PQVJHUywgIGVkazJfYWJvcnRfX2Rv Y19ffSwNCj4gKw0KPiArI2lmIGRlZmluZWQoVUVGSV9NU1ZDXzMyKSB8fCBkZWZpbmVkKFVFRklf TVNWQ182NCkNCj4gKyAgICB7InJkbXNyIiwgICAgICAgICAgICAgICBwb3NpeF9yZG1zciwgICAg ICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3JkbXNyX19kb2NfX30sDQo+ICsgICAgeyJ3 cm1zciIsICAgICAgICAgICAgICAgcG9zaXhfd3Jtc3IsICAgICAgICAgICAgICAgICBNRVRIX1ZB UkFSR1MsIGVmaV93cm1zcl9fZG9jX199LA0KPiArICAgIHsicmVhZHBjaSIsICAgICAgICAgICAg IHBvc2l4X3JlYWRwY2ksICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfcmVhZHBjaV9f ZG9jX199LA0KPiArICAgIHsid3JpdGVwY2kiLCAgICAgICAgICAgIHBvc2l4X3dyaXRlcGNpLCAg ICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfd3JpdGVwY2lfX2RvY19ffSwNCj4gKyAgICB7 InJlYWRtZW0iLCAgICAgICAgICAgICBwb3NpeF9yZWFkbWVtLCAgICAgICAgICAgICAgIE1FVEhf VkFSQVJHUywgZWZpX3JlYWRtZW1fX2RvY19ffSwNCj4gKyAgICB7InJlYWRtZW1fZHdvcmQiLCAg ICAgICBwb3NpeF9yZWFkbWVtX2R3b3JkLCAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3JlYWRt ZW1fZHdvcmRfX2RvY19ffSwNCj4gKyAgICB7IndyaXRlbWVtIiwgICAgICAgICAgICBwb3NpeF93 cml0ZW1lbSwgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3dyaXRlbWVtX19kb2NfX30s DQo+ICsgICAgeyJ3cml0ZW1lbV9kd29yZCIsICAgICAgcG9zaXhfd3JpdGVtZW1fZHdvcmQsICAg ICAgICBNRVRIX1ZBUkFSR1MsIGVmaV93cml0ZW1lbV9kd29yZF9fZG9jX199LA0KPiArICAgIHsi d3JpdGVpbyIsICAgICAgICAgICAgIHBvc2l4X3dyaXRlaW8sICAgICAgICAgICAgICAgTUVUSF9W QVJBUkdTLCBlZmlfd3JpdGVpb19fZG9jX199LA0KPiArICAgIHsicmVhZGlvIiwgICAgICAgICAg ICAgIHBvc2l4X3JlYWRpbywgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfcmVhZGlv X19kb2NfX30sDQo+ICsgICAgeyJzd3NtaSIsICAgICAgICAgICAgICAgcG9zaXhfc3dzbWksICAg ICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV9zd3NtaV9fZG9jX199LA0KPiArICAgIHsi YWxsb2NwaHlzbWVtIiwgICAgICAgIHBvc2l4X2FsbG9jcGh5c21lbSwgICAgICAgICAgTUVUSF9W QVJBUkdTLCBlZmlfYWxsb2NwaHlzbWVtX19kb2NfX30sDQo+ICsgICAgeyJjcHVpZCIsICAgICAg ICAgICAgICAgcG9zaXhfY3B1aWQsICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV9j cHVpZF9fZG9jX199LA0KPiArICAgIHsiR2V0VmFyaWFibGUiLCAgICAgICAgIE1pc2NSVF9HZXRW YXJpYWJsZSwgICAgICAgICAgTUVUSF9WQVJBUkdTLCBNaXNjUlRfR2V0VmFyaWFibGVfX2RvY19f fSwNCj4gKyAgICB7IkdldE5leHRWYXJpYWJsZU5hbWUiLCBNaXNjUlRfR2V0TmV4dFZhcmlhYmxl TmFtZSwgIE1FVEhfVkFSQVJHUywgTWlzY1JUX0dldE5leHRWYXJpYWJsZU5hbWVfX2RvY19ffSwN Cj4gKyAgICB7IlNldFZhcmlhYmxlIiwgICAgICAgICBNaXNjUlRfU2V0VmFyaWFibGUsICAgICAg ICAgIE1FVEhfVkFSQVJHUywgTWlzY1JUX1NldFZhcmlhYmxlX19kb2NfX30sDQo+ICsjZW5kaWYN Cj4gKw0KPiAgICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgICAvKiBTZW50 aW5lbCAqLw0KPiAgfTsNCj4gDQo+IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBwbGljYXRpb25zL1B5 dGhvbi9QeXRob24tMy42LjgvUHl0aG9uMzY4LmluZiBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0 aG9uL1B5dGhvbi0zLjYuOC9QeXRob24zNjguaW5mDQo+IGluZGV4IDEyMWQ0YTkuLmQzY2NiNmEg MTAwNjQ0DQo+IC0tLSBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9Q eXRob24zNjguaW5mDQo+ICsrKyBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0z LjYuOC9QeXRob24zNjguaW5mDQo+IEBAIC0xNCw3ICsxNCw3IEBADQo+IA0KPiAgW0RlZmluZXNd DQo+ICAgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMTYNCj4gLSAgQkFT RV9OQU1FICAgICAgICAgICAgICAgICAgID0gUHl0aG9uDQo+ICsgIEJBU0VfTkFNRSAgICAgICAg ICAgICAgICAgICA9IFB5dGhvbg0KPiAgICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgPSA5 REEzMEU5OC0wOTRDLTRGRjAtOTRDQi04MUMxMEU2OUY3NTANCj4gICAgTU9EVUxFX1RZUEUgICAg ICAgICAgICAgICAgID0gVUVGSV9BUFBMSUNBVElPTg0KPiAgICBWRVJTSU9OX1NUUklORyAgICAg ICAgICAgICAgPSAwLjENCj4gQEAgLTIwMSw4ICsyMDEsOCBAQA0KPiAgICBNb2R1bGVzL19ibGFr ZTIvYmxha2UyYl9pbXBsLmMgICAgICAgIw0KPiAgICBNb2R1bGVzL19ibGFrZTIvYmxha2Uyc19p bXBsLmMgICAgICAgIw0KPiAgICBNb2R1bGVzL19zaGEzL3NoYTNtb2R1bGUuYyAgICAgICAgICAg Iw0KPiAtICBNb2R1bGVzL3NpZ25hbG1vZHVsZS5jICAgICAgICAgICAgICAgIw0KPiAtICAjTW9k dWxlcy9zb2NrZXRtb2R1bGUuYyAgICAgICAgICAgICAgICMNCj4gKyAgTW9kdWxlcy9zaWduYWxt b2R1bGUuYyAgICAgICAgICAgICAgICMNCj4gKyAgI01vZHVsZXMvc29ja2V0bW9kdWxlLmMgICAg ICAgICAgICAgICMNCj4gICAgTW9kdWxlcy9zeW10YWJsZW1vZHVsZS5jICAgICAgICAgICAgICMN Cj4gICAgTW9kdWxlcy91bmljb2RlZGF0YS5jICAgICAgICAgICAgICAgICMNCj4gICAgTW9kdWxl cy94eHN1YnR5cGUuYyAgICAgICAgICAgICAgICAgICMNCj4gQEAgLTIxNSw3ICsyMTUsNyBAQA0K PiAgICBNb2R1bGVzL19pby9pb2Jhc2UuYyAgICAgICAgICAgICAgICAgIw0KPiAgICBNb2R1bGVz L19pby9zdHJpbmdpby5jICAgICAgICAgICAgICAgIw0KPiAgICBNb2R1bGVzL19pby90ZXh0aW8u YyAgICAgICAgICAgICAgICAgIw0KPiAtICBNb2R1bGVzL2F0ZXhpdG1vZHVsZS5jCSAgICAgICAj DQo+ICsgIE1vZHVsZXMvYXRleGl0bW9kdWxlLmMgICAgICAgICAgICAgICAjDQo+IA0KPiAgI01v ZHVsZXMvY2prY29kZWNzDQo+ICAgIE1vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmMg ICAjDQo+IEBAIC0yNTEsMjQgKzI1MSwyNiBAQCBNb2R1bGVzL3psaWINCj4gICAgTW9kdWxlcy96 bGliL3p1dGlsLmMgICAgICAgICAgICAgICAgICMNCj4gDQo+ICAjTW9kdWxlcy9jdHlwZXMNCj4g LSAgUHlNb2QtJChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9fY3R5cGVzL19jdHlwZXMuYyAgICB8 IE1TRlQgICAgICAgICAgIw0KPiAtICBNb2R1bGVzL19jdHlwZXMvc3RnZGljdC5jICAgICAgICAg ICB8IE1TRlQgICAjDQo+IC0gIE1vZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy9wcmVwX2NpZi5j ICB8IE1TRlQjDQo+IC0gIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMvX2N0eXBlcy9t YWxsb2NfY2xvc3VyZS5jICAgfCBNU0ZUICAgICMNCj4gLSAgUHlNb2QtJChQWVRIT05fVkVSU0lP TikvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaV9tc3ZjL2ZmaS5jICB8IE1TRlQgICAgICMNCj4gLSAg TW9kdWxlcy9fY3R5cGVzL2NmaWVsZC5jICAgIHwgTVNGVCAgICAgICAgICAgIw0KPiAtICBQeU1v ZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL19jdHlwZXMvY2FsbHByb2MuYyAgfCBNU0ZUICAg ICAgICAgICAjDQo+IC0gIE1vZHVsZXMvX2N0eXBlcy9jYWxsYmFja3MuYyAgICAgICAgfCBNU0ZU ICAgICMNCj4gKyAgUHlNb2QtJChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9fY3R5cGVzL19jdHlw ZXMuYyAgICB8IE1TRlQgICAgICAgICAgIw0KPiArICBNb2R1bGVzL19jdHlwZXMvc3RnZGljdC5j ICAgICAgICAgICB8IE1TRlQgICAjDQo+ICsgIE1vZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy9w cmVwX2NpZi5jICB8IE1TRlQjDQo+ICsgIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMv X2N0eXBlcy9tYWxsb2NfY2xvc3VyZS5jICAgfCBNU0ZUICAgICMNCj4gKyAgUHlNb2QtJChQWVRI T05fVkVSU0lPTikvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaV9tc3ZjL2ZmaS5jICB8IE1TRlQgICAg ICMNCj4gKyAgTW9kdWxlcy9fY3R5cGVzL2NmaWVsZC5jICAgIHwgTVNGVCAgICAgICAgICAgIw0K PiArICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL19jdHlwZXMvY2FsbHByb2MuYyAg fCBNU0ZUICAgICAgICAgICAjDQo+ICsgIE1vZHVsZXMvX2N0eXBlcy9jYWxsYmFja3MuYyAgICAg ICAgfCBNU0ZUICAgICMNCj4gDQo+ICBbU291cmNlcy5JQTMyXQ0KPiAtICBNb2R1bGVzL19jdHlw ZXMvbGliZmZpX21zdmMvd2luMzIuYyAgfCBNU0ZUICMNCj4gKyAgTW9kdWxlcy9fY3R5cGVzL2xp YmZmaV9tc3ZjL3dpbjMyLmMgIHwgTVNGVCAjDQo+ICsgIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04p L01vZHVsZXMvY3B1X2lhMzIuYXNtIHwgTVNGVCAjDQo+IA0KPiAgW1NvdXJjZXMuWDY0XQ0KPiAt ICBNb2R1bGVzL19jdHlwZXMvbGliZmZpX21zdmMvd2luNjQuYXNtICB8IE1TRlQgIw0KPiArICBN b2R1bGVzL19jdHlwZXMvbGliZmZpX21zdmMvd2luNjQuYXNtICB8IE1TRlQgIw0KPiArICBQeU1v ZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL2NwdS5hc20gfCBNU0ZUICMNCj4gDQo+ICBbQnVp bGRPcHRpb25zXQ0KPiAgICBNU0ZUOipfKl8qX0NDX0ZMQUdTID0gL0dMLSAvT2ktIC93ZDQwMTgg L3dkNDA1NCAvd2Q0MDU1IC93ZDQxMDEgL3dkNDEzMSAvd2Q0MTUyIC93ZDQyMDQgL3dkNDIxMCAv d2Q0MjQ0IC93ZDQyNjcgL3dkNDMwNQ0KPiAvd2Q0MzEwIC93ZDQzODkgL3dkNDcwMSAvd2Q0NzAy IC93ZDQ3MDYgL3dkNDQ1NiAvd2Q0MzEyIC93ZDQ0NTcgL3dkNDQ1OSAvd2Q0NDc0IC93ZDQ0NzYN Cj4gL0kkKFdPUktTUEFDRSlcQXBwUGtnXEFwcGxpY2F0aW9uc1xQeXRob25cUHl0aG9uLTMuNi44 XEluY2x1ZGUgL0RIQVZFX01FTU1PVkUgL0RVU0VfUFlFWFBBVF9DQVBJIC9EWE1MX1NUQVRJQyAt RCBVRUZJIC9XWC0NCj4gL0RYTUxfUE9PUl9FTlRST1BZIC9EVUVGSV9DX1NPVVJDRQ0KPiAtICBH Q0M6Kl8qXypfQ0NfRkxBR1MgPSAtV25vLXVudXNlZC1mdW5jdGlvbiAtV25vLWZvcm1hdCAtV25v LWVycm9yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC0NCj4gSSQoV09SS1NQQUNFKS9BcHBQa2cvQXBw bGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvSW5jbHVkZSAtREhBVkVfTUVNTU9WRSAtRFVT RV9QWUVYUEFUX0NBUEkgLURYTUxfU1RBVElDIC0NCj4gRFhNTF9QT09SX0VOVFJPUFkNCj4gKyAg R0NDOipfKl8qX0NDX0ZMQUdTID0gLVduby11bnVzZWQtZnVuY3Rpb24gLVduby1mb3JtYXQgLVdu by1lcnJvciAtZm5vLXN0cmljdC1hbGlhc2luZyAtDQo+IEkkKFdPUktTUEFDRSkvQXBwUGtnL0Fw cGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L0luY2x1ZGUgLURIQVZFX01FTU1PVkUgLURV U0VfUFlFWFBBVF9DQVBJIC1EWE1MX1NUQVRJQyAtDQo+IERYTUxfUE9PUl9FTlRST1BZDQo+IA0K PiAgW0J1aWxkT3B0aW9ucy5JQTMyXQ0KPiAgICBNU0ZUOipfKl8qX0NDX0ZMQUdTID0gL0RVRUZJ X01TVkNfMzINCj4gLS0NCj4gMi4zMy4wLndpbmRvd3MuMQ0KDQo=