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.web10.157297.1669744733409145865 for ; Tue, 29 Nov 2022 09:58:53 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=DHHHS1vk; 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=1669744733; x=1701280733; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=raTu81NQesAAJUlY5N3UacLaKFMgAWe/t0HCbUKToLU=; b=DHHHS1vkCrfj45r3WfIlwMTzypM/nDlw/ZjDix8RTw8zZ3dc6FwLyrKe ZtB6Bpb9EcmKffxjctIL0uSeBoPYu0aa70Fhe6Dit6+60pq4kuvbgKU/n /nSvc5nJqA/VhDGtAsYW1earH9sM1JKd+tjssyh15WX+8qHjaBTe1Kuvn oDQQNb9MvoxTspdOlPiSPtEAcoXuusuW+OyttvwUZNHym/q9yiVHeTw+8 JBYN4yLa+6U1kl82uQg+iQaCNZSDmFTRS41lTG8E9Ngjo95ryfMpmwEjR wMKyozLZmpgIPihv1Uq7bfU+i0lCluu2j1zeI9RgwvEMz61wW0rdmPyFe Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="317040934" X-IronPort-AV: E=Sophos;i="5.96,204,1665471600"; d="scan'208";a="317040934" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Nov 2022 09:58:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="707318745" X-IronPort-AV: E=Sophos;i="5.96,204,1665471600"; d="scan'208";a="707318745" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 29 Nov 2022 09:58:16 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) 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 09:58:15 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.16; Tue, 29 Nov 2022 09:58:15 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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.16 via Frontend Transport; Tue, 29 Nov 2022 09:58:15 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175) by edgegateway.intel.com (134.134.137.103) 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 09:58:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I2oagGDaZ7tWpft4DUdCaZQOSl/E0i3fkt2j0g8jAQtIAJgpGkhnsgmOPx2cKnsEk7ogYtuK3ysNM9sPfZR5wF81rmt2i+d0dILzh3zSN01WYkNZUzG3Ttb9IX5tOs0YmFMt6CBQjmtILwEw0UmI3wZ6E5DYfH48ePbuUglK4+cIMor1Od6LM6x8z3pOeo8gRZd0+/BBNn0rtHKG3RtReAGvEWzCPbUDH8WNbXP5naTflBFEK6fcoc7Sh2YBaaJomTLDlZ4FonNthWaoThsBGB26IL8xQdlqv3245E9i41c8IERs3mA5IAsxkvJmrM9XI0gqHoPBXo8DbSZsfJ3ZlQ== 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=raTu81NQesAAJUlY5N3UacLaKFMgAWe/t0HCbUKToLU=; b=gbPO9xb3WTmIL1GnPsq2k7OXCUjjl/yTw/dk0qFDq2m/SOStKpZreIm6zpOLXTo5IV1T5iLOaQM5//NzP/7Sn8PR+xmB3KUDagN9WCNMns+mG967lB1HJYSJ265gYBnn3qQRWTKTke5l7Gpb5c2Huw+U1XGHvx0FzMmE5vYoZXAn/qrIqkKoIKiM2PP0iYvz/CAQbL+jZwArxLujpfwVxXg2GCfhMHfisEFve9UsGlgVUs4V7Y4xTLjXY/5zv0y3Efm7IAYn/nwBhW2hrVfgoJ+vtGk+0FkajMzIaRL4w4R4GmdCoosclzMUVj2gWZia93jPOX1kYTH7M7krjF/FBQ== 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 PH0PR11MB7524.namprd11.prod.outlook.com (2603:10b6:510:281::18) 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 17:58:12 +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 17:58:12 +0000 From: "Michael D Kinney" To: "Jayaprakash, N" , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Rebecca Cran , "Kadapathri, Ajay" , "Frinzell, Aaron" 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/bHA1OisqDBkFkGs0VHYz1x9SK5WGHrQgAAJjACAABq0kA== Date: Tue, 29 Nov 2022 17:58:12 +0000 Message-ID: References: <20221121140026.1931-1-n.jayaprakash@intel.com> <20221121140026.1931-2-n.jayaprakash@intel.com> In-Reply-To: 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_|PH0PR11MB7524:EE_ x-ms-office365-filtering-correlation-id: 4ba32342-1a91-4be6-5c80-08dad233483b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rEPAdNgwVtU98uXefTvueukNpDkhswO8Uj1qFaA9IdNVzjWYwgkUfZP7Mp7Wv9JBS/ZacsRcLpA4cp5AC7n6uoZmSMk9+sOv+PSB8AhcPGnyndkwxcW9r+etwtElUusTRYWnBSb/mvbEcdb2P5ZvqI+qoS1Hm2CMl0AX2GUz1OI0guJf/NfOtfMU8KZd88umyMEJ/z64/6YiLd1vZibg16YVgBVl7yxoWEbOT+HMXoaTzA8142ylnBgNUHz/2U8pdsoleswBh9++GozPNdQWMnU6t2IZQE86Jc/PMgjN/I4gvctcT1plSDiMlzqw3t4b1qD0PWgAAkcOH/wvqzQGji/onaIf7A3T2KCzqj9Otl17zT7PszC2Qz9GDGjwBOCJYOvhbAXX/q6CKYMZ8ty4QWzmj4WKM6TsT2eJcCookpgOJNbdhijffVmZFwKxxyTRfjZd8/f4aKEzuC2Mnd6mXHdcWlt8EjepsNbfUYDWamJhgz+l5XjV7O7The7WzOHsuJdI7wTEgKWv7vFfnmYXuPUcwh+c5NxRZ8Lq56VK9JCLSy9cUfz3JLHz+vGJqgWnAgxJMcJ4Ei3LaP36j6sYDr3wq8uwXItVJNMyZv14eNS80tPSLJiEePLczwsivfkzgOpuXmvKW0tlq1BuegKYTpCDPgoFfT7mCsreNJqQemS/UheBQ1hu0cc3OCM54q+b0sKwEmFb2kmE9THPXhn8q7dQ9FT+axmUT6urKf8KE50Os04+ZIf23wiWOObsT21nKCj2apKCCrVjTR21E7xmQokly0GP25VSii3xTDT8K4Q= 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)(136003)(346002)(39860400002)(366004)(376002)(396003)(451199015)(6506007)(7696005)(53546011)(83380400001)(33656002)(52536014)(2906002)(186003)(8936002)(122000001)(38100700002)(82960400001)(4326008)(55016003)(8676002)(38070700005)(66446008)(64756008)(41300700001)(76116006)(66556008)(66946007)(66476007)(86362001)(110136005)(19627235002)(54906003)(9686003)(316002)(26005)(478600001)(966005)(30864003)(107886003)(71200400001)(5660300002)(545624005)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RnIwaUlaVlRROVhNY3U2ZHUvYTVTSmg3NHVaVkxNUXdrSDZCeW91anRiWlI5?= =?utf-8?B?R3dLZXJEQmJTMCtZRGtNK3VQRnlMa3VsQTFlQ3k3MlFNdnpuNU4xM0tzcnA1?= =?utf-8?B?aVRCMCtPS3hFZnYzUWk1bEdNeGhQRmNGVWpYZTlRUkp0OHhvSGcwOUZod3Vr?= =?utf-8?B?dE9zMWpGczN5VTFTY2pZajRCckZFRlltZHhpMlBRdUNRZDVoeUlTWEhoWGJk?= =?utf-8?B?S2phalJoRmM2VU5CMWE5QmM5VnNqcnhzRnFDVmZhcGJxV3NuL0lZTENGYjFC?= =?utf-8?B?M3V6K3k5TktVaFY1RlZueWd4cDVWNmREWVBpUEJCRE83WlhFSWNtakQ3Mndz?= =?utf-8?B?TWZkOGMrYzBhZ2tuUjV3My90bDNYK01VZzBsa3JockhtcUNiTEppYmFTbjVu?= =?utf-8?B?WDJJNmpHb0RZT2V2ZWdnOHRqUU9PUGlGeXJNNytyenNUMG45RDB0TmxjUzlY?= =?utf-8?B?TjRPZ29Rd0tJVEtWdjRkYVZJNFM3NmZXb3JNYW0yalhmWXF2b2hXT3RVR0ZG?= =?utf-8?B?T2p5MkVqMmIrZll2OEo0ZHVUajJZMWVmQ01XaXhwajVjZ2VjbTZXM1hDVTN3?= =?utf-8?B?a2Nrc2d5S1BoekxLS3hTbUhXOFRHNkZYcGZoVVVwaVFvczBTTWF6bHk4MEd6?= =?utf-8?B?eCtzR1hXdGhDM2lDRVBlSnVKbXNmeld5VW9HMkxkSkhwVGkxMWlFK2ovMGFn?= =?utf-8?B?MHBpT0RIbzA5SnVWZytDUkdzZncvSkdYRXdPdkpaNnRXb2tLNjl5WnpxWE5K?= =?utf-8?B?SDZWbU1rVjVuZkZaaXBGTURQU3lXWmtDNFlkK2lFVjVwY2h1bUwybm1kVjRK?= =?utf-8?B?VGZEM01LZURJTUNscm9neFlTdVN0OFRYc3R1R0J2YWl1ZDVmMDV6T1BqRDBD?= =?utf-8?B?b2MzZmNJQXFJZFhtck0wM21HWHZsR05TSHZ0UVBSV09XaXRHSTF5RDdtNU1K?= =?utf-8?B?WUlObTVMbmJMWnAxOUo2Tk9JbkpETm9WaExpYmhCb1lacUZGZEdhVkVNNEd6?= =?utf-8?B?TGYzMXp1aXFUazhNYUJBRU50M0lXTGg4TjlBazF3NkxHUVZpbWE3OVFKQzdP?= =?utf-8?B?ZzhIZXcyeTlKNlYyWUdPbEpsa1dHZVVTV3Z4SVllZnpZTGVRckZaQnViMTZ3?= =?utf-8?B?dGVPczcveDdwOGgzMzNUZlZmWnltRWRVWGIwMHRTd1RIOGQyQXcySGFVck5M?= =?utf-8?B?Q2dGbzBVbWlFbkE5cTZ3SnFDdFhWc2lmcTZaVXRkOEJvSC9lSjNMdWptZWRZ?= =?utf-8?B?eEs5K1FzL1FDOTk2T3dVVjc1djZUMGs4N3JLbEZqV0J1MGZCU3RtSU5QSmRW?= =?utf-8?B?OC81SzRRNlljU3hMaFltSXRNcVZ6Q0V3M1VlWGVQWjh6UzQ1eW5JY2JPT29P?= =?utf-8?B?WDJmenNYSFFhRlBhZTJ3NGtiZnlQTXdWS2ZGTk9PT2FhMmljOFQ3V3pUWkpv?= =?utf-8?B?R1FhZjZmeUdVQ2pGdGdGdkI1U2J6KzN6Mnp0d0kxQTVYUWRGcm1OSVJERjI1?= =?utf-8?B?eXJoTW9MeFg3WDdELzFyckNYaUVnOHRiQ1p3dW5acVlyc2R3alZ2QUFIRzhY?= =?utf-8?B?ZHJjTTVSNWt5a1pwTS9TQmYzK2JIaGY0ZGx0eVhyWisxSVkxajhxUHNvNXE4?= =?utf-8?B?dFA2cHVrL3hFSWQ1cTM3TDNuVG9uYTF6UENPWklTMXJleWNqNHh2WWNsQkkw?= =?utf-8?B?bWJIOVh1VGMxaVN1VWxGcGpxWndlTTdvSWkyTHBkTmdwZjhGYitTVWp6NVp3?= =?utf-8?B?TzVtcXl2bUFiTUZaYjkxczh6SHk0MHgvc2RJYkFDNVFFSHA2OVFIeGJjWlNx?= =?utf-8?B?OGI3QzhvbDF1bXNmbCt2dGZ0QmxNbUZJNEhhQWpKbEdjUXNGeGZ0WmNQTTlF?= =?utf-8?B?dlBzUjJzZnZ4Y3JYYi9zaTlvVDlXcmU1eGFCZnd6VXZodU1zM2cyWW5FaWtS?= =?utf-8?B?aDN4TW1lVkZvdG9MM1VKb2dpQitKa2o0V0JKbFhNZkQvdXN3bWtBOVVkdjls?= =?utf-8?B?eDNvSkk3NktweUJXeVY3VVBoYjlUcG4wamVEci8xOG1sM0dQM2RMSW1WOFFk?= =?utf-8?B?b05mVWhzUWFQR2hrMktnRkRWQjVueStvcWtYdzRWUitpU0Y5WUFqYldZSEs3?= =?utf-8?B?ODJFNzZ6cWp4Tng0SThxZTArRzYzbnVKNUNqQmF3YjkyTnUvV3pubFp1YTA2?= =?utf-8?B?Q2c9PQ==?= 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: 4ba32342-1a91-4be6-5c80-08dad233483b X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 17:58:12.2736 (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: ISgXspRTj7t+2W3tpiqAinN1NMGT/qLE3yUCVYr5lrlN6kAe7lfS1MYH9ZrEeH7KCiCcMoW+scNtoFCUuoegP7+n8L+/MviWNngCwrYIepU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7524 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 SSByZWNvbW1lbmQgbGVhdmluZyBpdCBpbiBDaGlwc2VjIHByb2plY3QgdW50aWwgdGhlIHBvcnQg dG8gTWRlUGtnIGxpYnMgY2FuIGJlIGNvbXBsZXRlZC4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEpheWFwcmFrYXNoLCBOIDxuLmpheWFwcmFrYXNoQGlu dGVsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMjksIDIwMjIgODoyMiBBTQ0KPiBU bzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgZGV2ZWxA ZWRrMi5ncm91cHMuaW8NCj4gQ2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBudXZpYWluYy5jb20+ OyBLYWRhcGF0aHJpLCBBamF5IDxhamF5LmthZGFwYXRocmlAaW50ZWwuY29tPjsgRnJpbnplbGws IEFhcm9uDQo+IDxhYXJvbi5mcmluemVsbEBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRr Mi1saWJjIFBhdGNoIDEvMV0gZWRrMi1saWJjOiBtaWdyYXRpb24gb2YgZWRrMm1vZHVsZSBmcm9t IGNoaXBzZWMgcmVwbw0KPiANCj4gSGkgTWlrZSwNCj4gDQo+IFRoYW5rcyBNaWtlIGZvciB5b3Vy IGZlZWRiYWNrLiBJIGNvbXBsZXRlbHkgYWdyZWUgd2l0aCB5b3VyIHN1Z2dlc3Rpb25zLg0KPiAN Cj4gSGF2aW5nIHNhaWQgdGhhdCwgdGhlIGNvZGUgaW4gUFIgaXMgYW4gZXhpc3Rpbmcgd2VsbCB0 ZXN0ZWQgY29kZSBmcm9tIENoaXBzZWMgZ2l0IHJlcG8gYW5kIGl0IHdhcyBwcm9iYWJseSB3cml0 dGVuIHF1aXRlIGENCj4gZmV3IHllYXJzIGFnby4NCj4gVGhpcyBpcyBwcm9iYWJseSB0aGUgcmVh c29uIHRoYXQgaXQgaXMgbm90IGZvbGxvd2luZyB0aGUgZWRrMiBjb252ZW50aW9ucyBhcmUgZ3Vp ZGVsaW5lcyB3aXRoIHJlc3BlY3QgdG8gQVNNLg0KPiBDaGlwc2VjIGdpdCByZXBvIGZvciByZWZl cmVuY2UgLSBodHRwczovL2dpdGh1Yi5jb20vY2hpcHNlYy9jaGlwc2VjL3RyZWUvbWFpbi9jaGlw c2VjX3Rvb2xzL2VkazIvUHl0aG9uRUZJDQo+IA0KPiBPdXIgaWRlYSBpcyB0byBicmluZyB0aGlz IGNvZGUgZnJvbSBDaGlwc2VjIHJlcG8gYXMgaXMgaW4gdGhlIGZpcnN0IHN0YWdlLCBlbmFibGUg dGhlIENoaXBzZWMgdG9vbCBhbmQgdGhlbiBtYWtlIGFueQ0KPiBhZGRpdGlvbmFsIGltcHJvdmVt ZW50cyByZXF1aXJlZC4NCj4gV2Ugc2hhbGwgZGVmaW5pdGVseSB0YWtlIHVwIHlvdXIgc3VnZ2Vz dGlvbnMgZWFybHkgaW4gdGhlIG5leHQgeWVhciAyMDIzLg0KPiANCj4gTGV0IG1lIGtub3cgaWYg dGhpcyBpZGVhIHNvdW5kcyBnb29kLg0KPiANCj4gUmVnYXJkcywNCj4gSlANCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KPiBTZW50OiAyOSBOb3ZlbWJlciAyMDIyIDIxOjIzDQo+IFRvOiBK YXlhcHJha2FzaCwgTiA8bi5qYXlhcHJha2FzaEBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBD YzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQG51dmlhaW5jLmNvbT4NCj4gU3ViamVjdDogUkU6IFtl ZGsyLWxpYmMgUGF0Y2ggMS8xXSBlZGsyLWxpYmM6IG1pZ3JhdGlvbiBvZiBlZGsybW9kdWxlIGZy b20gY2hpcHNlYyByZXBvDQo+IA0KPiBIaSBKUCwNCj4gDQo+IE1hbnkgb2YgdGhlc2UgQVBJcyBh cmUgYWxyZWFkeSBhdmFpbGFibGUgZnJvbSB0aGUgTWRlUGtnIEJhc2VMaWIsIElvTGliLCBhbmQg UGNpTGliLg0KPiANCj4gV2h5IHdvdWxkIHdlIGFkZCBjdXN0b20gQVNNIGltcGxlbWVudGF0aW9u cyBvZiB0aGVyZSBoZXJlPw0KPiANCj4gV2h5IEFTTSBhbmQgbm90IE5BU00uICBlZGsyIHByb2pl Y3RzIGhhdmUgY29uc29saWRhdGVkIG9uIE5BU00gZm9yIGFsbCBJQTMyL1g2NCBhc3NlbWJseSBj b2RlLg0KPiANCj4gSSB0aGluayB0aGUgYmVzdCBhcHByb2FjaCBpcyB0byBwb3J0IHRoZSBQeXRo b24gd3JhcHBlcnMgYXJvdW5kIHRoZSBjYWxscyB0byB0aGVzZQ0KPiBBU00gZnVuY3Rpb25zIHRv IGNhbGwgTWRlUGtnIEJhc2VMaWIsIElvTGliLCBhbmQgUGNpTGliIGFuZCByZW1vdmUgdGhlIEFT TSBjb2RlDQo+IGZyb20gdGhlIHBhdGNoLg0KPiANCj4gVGhhbmtzLA0KPiANCj4gTWlrZQ0KPiAN Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEpheWFwcmFrYXNoLCBO IDxuLmpheWFwcmFrYXNoQGludGVsLmNvbT4NCj4gPiBTZW50OiBNb25kYXksIE5vdmVtYmVyIDIx LCAyMDIyIDY6MDAgQU0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogUmVi ZWNjYSBDcmFuIDxyZWJlY2NhQG51dmlhaW5jLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IEpheWFwcmFrYXNoLCBODQo+ID4gPG4uamF5YXByYWth c2hAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFtlZGsyLWxpYmMgUGF0Y2ggMS8xXSBlZGsyLWxp YmM6IG1pZ3JhdGlvbiBvZiBlZGsybW9kdWxlIGZyb20gY2hpcHNlYyByZXBvDQo+ID4NCj4gPiBS RUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE2MQ0K PiA+DQo+ID4gVGhpcyBwYXRjaCBtZXJnZXMgdGhlIGVuaGFuY2VtZW50cyBkb25lIGJ5IGNoaXBz ZWMNCj4gPiB0b29sIHRvIGVkazIgbW9kdWxlIGludG8gZWRrMi1saWJjIHJlcG8uDQo+ID4gVGhl IGNoaXBzZWMgZW5oYW5jZW1lbnRzIGNhbiBiZSB1c2VkIGZvciB2YXJpb3VzDQo+ID4gb3RoZXIg UHl0aG9uIGJhc2VkIHRvb2xzIHRvIGFjY2VzcyBwbGF0Zm9ybSByZWdpc3RlcnMuDQo+ID4gVGhl c2UgZW5oYW5jZW1lbnRzIHByb3ZpZGluZyBhIHNldCBvZiBBUElzIHRvIGFjY2Vzcw0KPiA+IHRo ZSBwbGF0Zm9ybSByZWdpc3RlcnMgZGlyZWN0bHkgZnJvbSB0aGUgcHl0aG9uDQo+ID4gc2NyaXB0 cyBydW5uaW5nIG9uIFVFRkkgc2hlbGwuIFRoaXMgd2lsbCBiZW5lZml0IHRoZQ0KPiA+IFB5dGhv biB1c2VycyBvbiBVRUZJIHNoZWxsIGluIGdlbmVyYWwgYW5kIGVuaGFuY2VzDQo+ID4gaXQncyB1 c2FiaWxpdHkuIFB5dGhvbiBjYW4gYmUgdXNlZCBlZmZlY3RpdmVseSB0bw0KPiA+IGltcGxlbWVu dCB0b29scywgc2NyaXB0cyByZXF1aXJlZCBmb3IgYXV0b21hdGlvbiwNCj4gPiBkZWJ1ZyBmcm9t IFVFRkkgc2hlbGwuDQo+ID4NCj4gPiBDYzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQG51dmlhaW5j LmNvbT4NCj4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVt ZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IEpheWFwcmFrYXNoIE4gPG4uamF5YXByYWthc2hA aW50ZWwuY29tPg0KPiA+IFJldmlld2VkLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgLi4uL1B5dGhvbi0zLjYuOC9QeU1vZC0z LjYuOC9Nb2R1bGVzL2NwdS5hc20gIHwgNTE5ICsrKysrKysrKysrKysrKysNCj4gPiAgLi4uL1B5 TW9kLTMuNi44L01vZHVsZXMvY3B1X2lhMzIuYXNtICAgICAgICAgIHwgMzk1ICsrKysrKysrKysr Kw0KPiA+ICAuLi4vUHlNb2QtMy42LjgvTW9kdWxlcy9lZGsybW9kdWxlLmMgICAgICAgICAgfCA1 NjggKysrKysrKysrKysrKysrKystDQo+ID4gIC4uLi9QeXRob24vUHl0aG9uLTMuNi44L1B5dGhv bjM2OC5pbmYgICAgICAgICB8ICAzMiArLQ0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDE0OTYgaW5z ZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBBcHBQ a2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9j cHUuYXNtDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBBcHBQa2cvQXBwbGljYXRpb25zL1B5dGhv bi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHVfaWEzMi5hc20NCj4gPg0KPiA+ IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlN b2QtMy42LjgvTW9kdWxlcy9jcHUuYXNtIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0 aG9uLQ0KPiA+IDMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1LmFzbQ0KPiA+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uNjVlZGM5Ng0KPiA+IC0tLSAvZGV2L251 bGwNCj4gPiArKysgYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlN b2QtMy42LjgvTW9kdWxlcy9jcHUuYXNtDQo+ID4gQEAgLTAsMCArMSw1MTkgQEANCj4gPiArVElU TEUgICBjcHUuYXNtOiBBc3NlbWJseSBjb2RlIGZvciB0aGUgeDY0IHJlc291cmNlcw0KPiA+ICsN Cj4gPiArLkNPREUgY3B1X2FzbV9jb2RlJF9fYQ0KPiA+ICsNCj4gPiArUFVCTElDIFdyaXRlUG9y dER3b3JkDQo+ID4gK1BVQkxJQyBXcml0ZVBvcnRXb3JkDQo+ID4gK1BVQkxJQyBXcml0ZVBvcnRC eXRlDQo+ID4gK1BVQkxJQyBSZWFkUG9ydER3b3JkDQo+ID4gK1BVQkxJQyBSZWFkUG9ydFdvcmQN Cj4gPiArUFVCTElDIFJlYWRQb3J0Qnl0ZQ0KPiA+ICtQVUJMSUMgV3JpdGVIaWdoQ01PU0J5dGUN Cj4gPiArUFVCTElDIFdyaXRlTG93Q01PU0J5dGUNCj4gPiArUFVCTElDIFNlbmRBUE1TTUkNCj4g PiArUFVCTElDIFdyaXRlUENJQnl0ZQ0KPiA+ICtQVUJMSUMgV3JpdGVQQ0lXb3JkDQo+ID4gK1BV QkxJQyBXcml0ZVBDSUR3b3JkDQo+ID4gK1BVQkxJQyBSZWFkUENJQnl0ZQ0KPiA+ICtQVUJMSUMg UmVhZFBDSVdvcmQNCj4gPiArUFVCTElDIFJlYWRQQ0lEd29yZA0KPiA+ICtQVUJMSUMgX3JkbXNy DQo+ID4gK1BVQkxJQyBfd3Jtc3INCj4gPiArUFVCTElDIF9sb2FkX2dkdA0KPiA+ICtQVUJMSUMg X3JmbGFncw0KPiA+ICtQVUJMSUMgX3N3c21pDQo+ID4gKw0KPiA+ICsNCj4gPiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+ICs7IFVJTlQ2NCBfcmZsYWdzKCkNCj4gPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ICtfcmZsYWdzIFBST0MNCj4gPiArICAgIHB1c2hmcQ0KPiA+ICsgICAg cG9wIHJheA0KPiA+ICsgICAgcmV0DQo+ID4gK19yZmxhZ3MgRU5EUA0KPiA+ICsNCj4gPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7IHZvaWQgX3N0b3JlX2lkdHIoDQo+ID4gKzsgICB1 bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiA+ICs7ICAgKQ0KPiA+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ID4gK19zdG9yZV9pZHRyIFBST0MNCj4gPiArICAgIHNpZHQgZndvcmQg cHRyIFtyY3hdDQo+ID4gKyAgICByZXQNCj4gPiArX3N0b3JlX2lkdHIgRU5EUA0KPiA+ICsNCj4g PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7IHZvaWQgX2xvYWRfaWR0cigNCj4gPiAr OyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ID4gKzsgICApDQo+ID4gKzstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX2xvYWRfaWR0ciBQUk9DDQo+ID4gKyAgICBsaWR0IGZ3 b3JkIHB0ciBbcmN4XQ0KPiA+ICsgICAgcmV0DQo+ID4gK19sb2FkX2lkdHIgRU5EUA0KPiA+ICsN Cj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7IHZvaWQgX3N0b3JlX2dkdHIoDQo+ ID4gKzsgICB1bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiA+ICs7ICAgKQ0KPiA+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK19zdG9yZV9nZHRyIFBST0MNCj4gPiArICAgIHNn ZHQgZndvcmQgcHRyIFtyY3hdDQo+ID4gKyAgICByZXQNCj4gPiArX3N0b3JlX2dkdHIgRU5EUA0K PiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7IHZvaWQgX2xvYWRfZ2R0 cigNCj4gPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ID4gKzsgICApDQo+ ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX2xvYWRfZ2R0ciBQUk9DDQo+ID4gKyAg ICBsZ2R0IGZ3b3JkIHB0ciBbcmN4XQ0KPiA+ICsgICAgcmV0DQo+ID4gK19sb2FkX2dkdHIgRU5E UA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7IHZvaWQgX3N0b3Jl X2xkdHIoDQo+ID4gKzsgICB1bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiA+ICs7ICAg KQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK19zdG9yZV9sZHRyIFBST0MNCj4g PiArICAgIDtzbGR0IGZ3b3JkIHB0ciBbcmN4XQ0KPiA+ICsgICAgcmV0DQo+ID4gK19zdG9yZV9s ZHRyIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyB2b2lk IF9sb2FkX2xkdHIoDQo+ID4gKzsgICB1bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiA+ ICs7ICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK19sb2FkX2xkdHIgUFJP Qw0KPiA+ICsgICAgO2xsZHQgZndvcmQgcHRyIFtyY3hdDQo+ID4gKyAgICByZXQNCj4gPiArX2xv YWRfbGR0ciBFTkRQDQo+ID4gKw0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+ICs7IHZvaWQgX2xvYWRfZ2R0KA0KPiA+ICs7ICAgdW5zaWduZWQgY2hhciAqdmFsdWUgLy8g cmN4DQo+ID4gKzsgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX2xvYWRf Z2R0IFBST0MNCj4gPiArDQo+ID4gKyAgICBzZ2R0IGZ3b3JkIHB0ciBbcmN4XQ0KPiA+ICsgICAg bGdkdCBmd29yZCBwdHIgW3JjeF0NCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiArX2xvYWRfZ2R0 IEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdm9pZCBf cmRtc3IoDQo+ID4gKzsgICAgdW5zaWduZWQgaW50IG1zcl9udW0sIC8vIHJjeA0KPiA+ICs7ICAg IHVuc2lnbmVkIGludCogbXNyX2xvLCAvLyByZHgNCj4gPiArOyAgICB1bnNpZ25lZCBpbnQqIG1z cl9oaSAgLy8gcjgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g PiArX3JkbXNyIFBST0MNCj4gPiArICAgIHB1c2ggcjEwDQo+ID4gKyAgICBwdXNoIHIxMQ0KPiA+ ICsgICAgcHVzaCByYXgNCj4gPiArICAgIHB1c2ggcmR4DQo+ID4gKw0KPiA+ICsgICAgbW92IHIx MCwgcmR4IDsgbXNyX2xvDQo+ID4gKyAgICBtb3YgcjExLCByOCAgOyBtc3JfaGkNCj4gPiArDQo+ ID4gKyAgICA7IHJjeCBoYXMgbXNyX251bQ0KPiA+ICsgICAgcmRtc3INCj4gPiArDQo+ID4gKyAg ICA7IFdyaXRlIE1TUiByZXN1bHRzIGluIGVkeDplYXgNCj4gPiArICAgIG1vdiBkd29yZCBwdHIg W3IxMF0sIGVheA0KPiA+ICsgICAgbW92IGR3b3JkIHB0ciBbcjExXSwgZWR4DQo+ID4gKw0KPiA+ ICsgICAgcG9wIHJkeA0KPiA+ICsgICAgcG9wIHJheA0KPiA+ICsgICAgcG9wIHIxMQ0KPiA+ICsg ICAgcG9wIHIxMA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICtfcmRtc3IgRU5EUA0KPiA+ICsN Cj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB2b2lkIF93cm1zcigNCj4gPiAr OyAgICB1bnNpZ25lZCBpbnQgbXNyX251bSwgLy8gcmN4DQo+ID4gKzsgICAgdW5zaWduZWQgaW50 IG1zcl9oaSwgIC8vIHJkeA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludCBtc3JfbG8gICAvLyByOA0K PiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtfd3Jtc3IgUFJP Qw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiArDQo+ID4gKyAgICA7IHJjeCBoYXMgbXNyX251bQ0K PiA+ICsgICAgOyByZHggaGFzIG1zcl9oaQ0KPiA+ICsgICAgOyBtb3ZlIG1zcl9sbyBmcm9tIHI4 IHRvIHJheA0KPiA+ICsgICAgbW92IHJheCwgcjgNCj4gPiArICAgIHdybXNyDQo+ID4gKw0KPiA+ ICsgICAgcG9wIHJheA0KPiA+ICsgICAgcmV0DQo+ID4gK193cm1zciBFTkRQDQo+ID4gKw0KPiA+ ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB2b2lkDQo+ID4gKzsgIFdy aXRlUG9ydER3b3JkICgNCj4gPiArOyAgICB1bnNpZ25lZCBpbnQJb3V0X3ZhbHVlICAgICAgICAg IC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CXBvcnRfbnVtICAgICAgICAgICAvLyBy ZHgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3JpdGVQ b3J0RHdvcmQgUFJPQw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiArDQo+ID4gKyAgICBtb3YgcmF4 LCByY3gNCj4gPiArICAgIG91dCBkeCwgcmF4DQo+ID4gKw0KPiA+ICsgICAgcG9wIHJheA0KPiA+ ICsgICAgcmV0DQo+ID4gK1dyaXRlUG9ydER3b3JkIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdm9pZA0KPiA+ICs7ICBXcml0ZVBvcnRXb3JkICgNCj4g PiArOyAgICB1bnNpZ25lZCBzaG9ydAlvdXRfdmFsdWUgICAgICAgICAgLy8gcmN4DQo+ID4gKzsg ICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJkeA0KPiA+ICs7ICAgICkN Cj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtXcml0ZVBvcnRXb3JkIFBST0MNCj4g PiArICAgIHB1c2ggcmF4DQo+ID4gKw0KPiA+ICsgICAgbW92IHJheCwgcmN4DQo+ID4gKyAgICBv dXQgZHgsIGF4DQo+ID4gKw0KPiA+ICsgICAgcG9wIHJheA0KPiA+ICsgICAgcmV0DQo+ID4gK1dy aXRlUG9ydFdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ ICs7ICB2b2lkDQo+ID4gKzsgIFdyaXRlUG9ydEJ5dGUgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGNo YXIJb3V0X3ZhbHVlICAgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CXBv cnRfbnVtICAgICAgICAgICAvLyByZHgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiArV3JpdGVQb3J0Qnl0ZSBQUk9DDQo+ID4gKyAgICBwdXNoIHJheA0KPiA+ ICsNCj4gPiArICAgIG1vdiByYXgsIHJjeA0KPiA+ICsgICAgb3V0IGR4LCBhbA0KPiA+ICsNCj4g PiArICAgIHBvcCByYXgNCj4gPiArICAgIHJldA0KPiA+ICtXcml0ZVBvcnRCeXRlIEVORFANCj4g PiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdW5zaWduZWQgaW50DQo+ ID4gKzsgIFJlYWRQb3J0RHdvcmQgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CXBvcnRfbnVt ICAgICAgICAgICAvLyByY3gNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiArUmVhZFBvcnREd29yZCBQUk9DDQo+ID4gKyAgICBwdXNoIHJkeA0KPiA+ICsNCj4g PiArICAgIHhvciByYXgsIHJheA0KPiA+ICsgICAgbW92IHJkeCwgcmN4DQo+ID4gKyAgICBpbiBl YXgsIGR4DQo+ID4gKw0KPiA+ICsgICAgcG9wIHJkeA0KPiA+ICsgICAgcmV0DQo+ID4gK1JlYWRQ b3J0RHdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7 ICB1bnNpZ25lZCBzaG9ydA0KPiA+ICs7ICBSZWFkUG9ydFdvcmQgKA0KPiA+ICs7ICAgIHVuc2ln bmVkIHNob3J0CXBvcnRfbnVtICAgICAgICAgICAvLyByY3gNCj4gPiArOyAgICApDQo+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArUmVhZFBvcnRXb3JkIFBST0MNCj4gPiArICAgIHB1 c2ggcmR4DQo+ID4gKw0KPiA+ICsgICAgeG9yIHJheCwgcmF4DQo+ID4gKyAgICBtb3YgcmR4LCBy Y3gNCj4gPiArICAgIGluIGF4LCBkeA0KPiA+ICsNCj4gPiArICAgIHBvcCByZHgNCj4gPiArICAg IHJldA0KPiA+ICtSZWFkUG9ydFdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiA+ICs7ICB1bnNpZ25lZCBjaGFyDQo+ID4gKzsgIFJlYWRQb3J0Qnl0ZSAoDQo+ ID4gKzsgICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJjeA0KPiA+ICs7 ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUG9ydEJ5dGUgUFJP Qw0KPiA+ICsgICAgcHVzaCByZHgNCj4gPiArDQo+ID4gKyAgICB4b3IgcmF4LCByYXgNCj4gPiAr ICAgIG1vdiByZHgsIHJjeA0KPiA+ICsgICAgaW4gYWwsIGR4DQo+ID4gKw0KPiA+ICsgICAgcG9w IHJkeA0KPiA+ICsgICAgcmV0DQo+ID4gK1JlYWRQb3J0Qnl0ZSBFTkRQDQo+ID4gKw0KPiA+ICsN Cj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB2b2lkDQo+ID4gKzsgIFdyaXRl SGlnaENNT1NCeXRlICgNCj4gPiArOyAgICB1bnNpZ25lZCBjaGFyCWNtb3Nfb2ZmICAgICAgICAv LyByY3gNCj4gPiArOyAgICB1bnNpZ25lZCBjaGFyCXZhbCAgIAkJLy8gcmR4DQo+ID4gKzsgICAg KQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRlSGlnaENNT1NCeXRlIFBS T0MNCj4gPiArICAgIHB1c2ggcmF4DQo+ID4gKw0KPiA+ICsgICAgbW92IHJheCwgcmN4DQo+ID4g KyAgICBvdXQgNzJoLCBhbA0KPiA+ICsgICAgbW92IHJheCwgcmR4DQo+ID4gKyAgICBvdXQgNzNo LCBhbA0KPiA+ICsNCj4gPiArICAgIHBvcCByYXgNCj4gPiArICAgIHJldA0KPiA+ICtXcml0ZUhp Z2hDTU9TQnl0ZSBFTkRQDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdm9p ZA0KPiA+ICs7ICBXcml0ZUxvd0NNT1NCeXRlICgNCj4gPiArOyAgICB1bnNpZ25lZCBjaGFyCWNt b3Nfb2ZmICAgICAgICAvLyByY3gNCj4gPiArOyAgICB1bnNpZ25lZCBjaGFyCXZhbCAgIAkJLy8g cmR4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRl TG93Q01PU0J5dGUgUFJPQw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiArDQo+ID4gKyAgICBtb3Yg cmF4LCByY3gNCj4gPiArICAgIG9yIGFsLCA4MGgNCj4gPiArICAgIG91dCA3MGgsIGFsDQo+ID4g KyAgICBtb3YgcmF4LCByZHgNCj4gPiArICAgIG91dCA3MWgsIGFsDQo+ID4gKw0KPiA+ICsgICAg cG9wIHJheA0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlTG93Q01PU0J5dGUgRU5EUA0KPiA+ICsN Cj4gPiArDQo+ID4gKzsgQFRPRE86IGxvb2tzIGluY29ycmVjdA0KPiA+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQNCj4gPiArOyAgU2VuZEFQTVNNSSAoDQo+ID4gKzsgICAg dW5zaWduZWQgaW50CWFwbV9wb3J0X3ZhbHVlICAgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIElO ICAgVUlOVDY0CXJheF92YWx1ZSAgICAgICAgICAgICAgIC8vIHJkeA0KPiA+ICs7ICAgICkNCj4g PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtTZW5kQVBNU01JIFBST0MNCj4gPiArICAg IHB1c2ggcmF4DQo+ID4gKyAgICBwdXNoIHJkeA0KPiA+ICsNCj4gPiArICAgIG1vdiByYXgsIHJj eA0KPiA+ICsgICAgbW92IGR4LCAwQjJoDQo+ID4gKyAgICBvdXQgZHgsIHJheA0KPiA+ICsNCj4g PiArICAgIHBvcCByZHgNCj4gPiArICAgIHBvcCByYXgNCj4gPiArICAgIHJldA0KPiA+ICtTZW5k QVBNU01JIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAg dm9pZA0KPiA+ICs7ICBXcml0ZVBDSUJ5dGUgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lf cmVnICAgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3Bv cnQgICAgLy8gcmR4DQo+ID4gKzsgICAgdW5zaWduZWQgY2hhcglieXRlX3ZhbHVlICAgICAgIC8v IHI4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRl UENJQnl0ZSBQUk9DDQo+ID4gKyAgICBwdXNoIHJheA0KPiA+ICsgICAgcHVzaCByZHgNCj4gPiAr DQo+ID4gKyAgICBjbGkNCj4gPiArICAgIG1vdiByYXgsIHJjeCAgOyBwY2lfcmVnDQo+ID4gKyAg ICBtb3YgZHgsIDBDRjhoDQo+ID4gKyAgICBvdXQgZHgsIHJheA0KPiA+ICsNCj4gPiArICAgIG1v diByYXgsIHI4ICAgOyBieXRlX3ZhbHVlDQo+ID4gKyAgICBwb3AgcmR4ICAgICAgIDsgY2ZnX2Rh dGFfcG9ydA0KPiA+ICsgICAgb3V0IGR4LCBhbA0KPiA+ICsgICAgc3RpDQo+ID4gKw0KPiA+ICsg ICAgcG9wIHJheA0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlUENJQnl0ZSBFTkRQDQo+ID4gKw0K PiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQNCj4gPiArOyAgV3JpdGVQ Q0lXb3JkICgNCj4gPiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAgICAgICAvLyByY3gN Cj4gPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiA+ICs7 ICAgIHVuc2lnbmVkIHNob3J0CXdvcmRfdmFsdWUgICAgICAgLy8gcjgNCj4gPiArOyAgICApDQo+ ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3JpdGVQQ0lXb3JkIFBST0MNCj4gPiAr ICAgIHB1c2ggcmF4DQo+ID4gKyAgICBwdXNoIHJkeA0KPiA+ICsNCj4gPiArICAgIGNsaQ0KPiA+ ICsgICAgbW92IHJheCwgcmN4ICA7IHBjaV9yZWcNCj4gPiArICAgIG1vdiBkeCwgMENGOGgNCj4g PiArICAgIG91dCBkeCwgcmF4DQo+ID4gKw0KPiA+ICsgICAgbW92IHJheCwgcjggICA7IGJ5dGVf dmFsdWUNCj4gPiArICAgIHBvcCByZHggICAgICAgOyBjZmdfZGF0YV9wb3J0DQo+ID4gKyAgICBv dXQgZHgsIGF4DQo+ID4gKyAgICBzdGkNCj4gPiArDQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAg ICByZXQNCj4gPiArV3JpdGVQQ0lXb3JkIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiArOyAgdm9pZA0KPiA+ICs7ICBXcml0ZVBDSUR3b3JkICgNCj4gPiArOyAg ICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAgICAgICAvLyByY3gNCj4gPiArOyAgICB1bnNpZ25l ZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlk d29yZF92YWx1ZSAgICAgIC8vIHI4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ID4gK1dyaXRlUENJRHdvcmQgUFJPQw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiAr ICAgIHB1c2ggcmR4DQo+ID4gKw0KPiA+ICsgICAgY2xpDQo+ID4gKyAgICBtb3YgcmF4LCByY3gg IDsgcGNpX3JlZw0KPiA+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiA+ICsgICAgb3V0IGR4LCByYXgN Cj4gPiArDQo+ID4gKyAgICBtb3YgcmF4LCByOCAgIDsgYnl0ZV92YWx1ZQ0KPiA+ICsgICAgcG9w IHJkeCAgICAgICA7IGNmZ19kYXRhX3BvcnQNCj4gPiArICAgIG91dCBkeCwgZWF4DQo+ID4gKyAg ICBzdGkNCj4gPiArDQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAgICByZXQNCj4gPiArV3JpdGVQ Q0lEd29yZCBFTkRQDQo+ID4gKw0KPiA+ICsNCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gPiArOyAgdW5zaWduZWQgY2hhcg0KPiA+ICs7ICBSZWFkUENJQnl0ZSAoDQo+ID4g KzsgICAgdW5zaWduZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAgdW5z aWduZWQgc2hvcnQJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gPiArOyAgICApDQo+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArUmVhZFBDSUJ5dGUgUFJPQw0KPiA+ICsgICAgcHVz aCByZHgNCj4gPiArDQo+ID4gKyAgICBjbGkNCj4gPiArICAgIG1vdiByYXgsIHJjeCAgOyBwY2lf cmVnDQo+ID4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ID4gKyAgICBvdXQgZHgsIHJheA0KPiA+ICsN Cj4gPiArICAgIHhvciByYXgsIHJheA0KPiA+ICsgICAgcG9wIHJkeCAgICAgICA7IGNmZ19kYXRh X3BvcnQNCj4gPiArICAgIGluICBhbCwgZHgNCj4gPiArICAgIHN0aQ0KPiA+ICsNCj4gPiArICAg IHJldA0KPiA+ICtSZWFkUENJQnl0ZSBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ID4gKzsgIHVuc2lnbmVkIHNob3J0DQo+ID4gKzsgIFJlYWRQQ0lXb3JkICgNCj4g PiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAgICAgICAvLyByY3gNCj4gPiArOyAgICB1 bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiA+ICs7ICAgICkNCj4gPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUENJV29yZCBQUk9DDQo+ID4gKyAgICBw dXNoIHJkeA0KPiA+ICsNCj4gPiArICAgIGNsaQ0KPiA+ICsgICAgbW92IHJheCwgcmN4ICA7IHBj aV9yZWcNCj4gPiArICAgIG1vdiBkeCwgMENGOGgNCj4gPiArICAgIG91dCBkeCwgcmF4DQo+ID4g Kw0KPiA+ICsgICAgeG9yIHJheCwgcmF4DQo+ID4gKyAgICBwb3AgcmR4ICAgICAgIDsgY2ZnX2Rh dGFfcG9ydA0KPiA+ICsgICAgaW4gIGF4LCBkeA0KPiA+ICsgICAgc3RpDQo+ID4gKw0KPiA+ICsg ICAgcmV0DQo+ID4gK1JlYWRQQ0lXb3JkIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiArOyAgdW5zaWduZWQgaW50DQo+ID4gKzsgIFJlYWRQQ0lEd29yZCAoDQo+ ID4gKzsgICAgdW5zaWduZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAg dW5zaWduZWQgc2hvcnQJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gPiArOyAgICApDQo+ID4g KzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArUmVhZFBDSUR3b3JkIFBST0MNCj4gPiArICAg IHB1c2ggcmR4DQo+ID4gKw0KPiA+ICsgICAgY2xpDQo+ID4gKyAgICBtb3YgcmF4LCByY3ggIDsg cGNpX3JlZw0KPiA+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiA+ICsgICAgb3V0IGR4LCByYXgNCj4g PiArDQo+ID4gKyAgICB4b3IgcmF4LCByYXgNCj4gPiArICAgIHBvcCByZHggICAgICAgOyBjZmdf ZGF0YV9wb3J0DQo+ID4gKyAgICBpbiAgZWF4LCBkeA0KPiA+ICsgICAgc3RpDQo+ID4gKw0KPiA+ ICsgICAgcmV0DQo+ID4gK1JlYWRQQ0lEd29yZCBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQNCj4gPiArOyAgX3N3c21pICgNCj4gPiArOyAgICB1 bnNpZ25lZCBpbnQJc21pX2NvZGVfZGF0YQkvLyByY3gNCj4gPiArOyAgICBJTiAgIFVJTlQ2NAly YXhfdmFsdWUJLy8gcmR4DQo+ID4gKzsgICAgSU4gICBVSU5UNjQJcmJ4X3ZhbHVlCS8vIHI4DQo+ ID4gKzsgICAgSU4gICBVSU5UNjQJcmN4X3ZhbHVlCS8vIHI5DQo+ID4gKzsgICAgSU4gICBVSU5U NjQJcmR4X3ZhbHVlCS8vIHJzcCArIDB4MjgNCj4gPiArOyAgICBJTiAgIFVJTlQ2NAlyc2lfdmFs dWUJLy8gcnNwICsgMHgzMA0KPiA+ICs7ICAgIElOICAgVUlOVDY0CXJkaV92YWx1ZQkvLyByc3Ag KyAweDM4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK19z d3NtaSBQUk9DDQo+ID4gKyAgICBwdXNoIHJieA0KPiA+ICsgICAgcHVzaCByc2kNCj4gPiArICAg IHB1c2ggcmRpDQo+ID4gKw0KPiA+ICsgICAgOyByc3AgLSAweDE4DQo+ID4gKw0KPiA+ICsgICAg OyBzZXR0aW5nIHVwIEdQUiAoYXJndW1lbnRzKSB0byBTTUkgaGFuZGxlciBjYWxsDQo+ID4gKyAg ICA7IG5vdGVzOg0KPiA+ICsgICAgOyAgIFJBWCB3aWxsIGdldCBwYXJ0aWFsbHkgb3ZlcndyaXR0 ZW4gKEFYKSBieSBfc21pX2NvZGVfZGF0YSAod2hpY2ggaXMgcGFzc2VkIGluIFJDWCkNCj4gPiAr ICAgIDsgICBSRFggd2lsbCBnZXQgcGFydGlhbGx5IG92ZXJ3cml0dGVuIChEWCkgYnkgdGhlIHZh bHVlIG9mIEFQTUMgcG9ydCAoPSAweDAwQjIpDQo+ID4gKyAgICBtb3YgcmF4LCByZHggOyByYXhf dmFsdWUNCj4gPiArICAgIG1vdiBheCwgY3ggICA7IHNtaV9jb2RlX2RhdGENCj4gPiArICAgIG1v diByZHgsIHIxMCA7IHJkeF92YWx1ZQ0KPiA+ICsgICAgbW92IHJkeCwgW3JzcCArIDA0MGhdIDsg cnNwICsgMHgyOCArIDB4MTgNCj4gPiArDQo+ID4gKyAgICBtb3YgcmJ4LCByOCAgOyByYnhfdmFs dWUNCj4gPiArICAgIG1vdiByY3gsIHI5ICA7IHJjeF92YWx1ZQ0KPiA+ICsgICAgbW92IHJzaSwg W3JzcCArIDA0OGhdIDsgcnNpX3ZhbHVlDQo+ID4gKyAgICBtb3YgcmRpLCBbcnNwICsgMDUwaF0g OyByZGlfdmFsdWUNCj4gPiArDQo+ID4gKyAgICA7IHRoaXMgT1VUIGluc3RydWN0aW9uIHdpbGwg d3JpdGUgV09SRCB2YWx1ZSAoc21pX2NvZGVfZGF0YSkgdG8gcG9ydHMgMHhCMiBhbmQgMHhCMyAo U1cgU01JIGNvbnRyb2wgYW5kIGRhdGEgcG9ydHMpDQo+ID4gKyAgICBvdXQgMEIyaCwgYXgNCj4g PiArDQo+ID4gKyAgICA7IEBUT0RPOiBzb21lIFNNIGhhbmRsZXJzIHJldHVybiBkYXRhL2Vycm9y Y29kZSBpbiBHUFJzLCBuZWVkIHRvIHJldHVybiB0aGlzIHRvIHRoZSBjYWxsZXINCj4gPiArDQo+ ID4gKyAgICBwb3AgcmRpDQo+ID4gKyAgICBwb3AgcnNpDQo+ID4gKyAgICBwb3AgcmJ4DQo+ID4g KyAgICByZXQNCj4gPiArX3N3c21pIEVORFANCj4gPiArDQo+ID4gKw0KPiA+ICtFTkQNCj4gPiBk aWZmIC0tZ2l0IGEvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9k LTMuNi44L01vZHVsZXMvY3B1X2lhMzIuYXNtDQo+IGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRo b24vUHl0aG9uLQ0KPiA+IDMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1X2lhMzIuYXNtDQo+ ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi4wYjZmYzZkDQo+ID4g LS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhv bi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyLmFzbQ0KPiA+IEBAIC0wLDAgKzEs Mzk1IEBADQo+ID4gK1RJVExFICAgY3B1LmFzbTogQXNzZW1ibHkgY29kZSBmb3IgdGhlIGkzODYg cmVzb3VyY2VzDQo+ID4gKw0KPiA+ICtQVUJMSUMgV3JpdGVQb3J0RHdvcmQNCj4gPiArUFVCTElD IFdyaXRlUG9ydFdvcmQNCj4gPiArUFVCTElDIFdyaXRlUG9ydEJ5dGUNCj4gPiArUFVCTElDIFJl YWRQb3J0RHdvcmQNCj4gPiArUFVCTElDIFJlYWRQb3J0V29yZA0KPiA+ICtQVUJMSUMgUmVhZFBv cnRCeXRlDQo+ID4gK1BVQkxJQyBXcml0ZUhpZ2hDTU9TQnl0ZQ0KPiA+ICtQVUJMSUMgV3JpdGVM b3dDTU9TQnl0ZQ0KPiA+ICtQVUJMSUMgU2VuZEFQTVNNSQ0KPiA+ICtQVUJMSUMgV3JpdGVQQ0lC eXRlDQo+ID4gK1BVQkxJQyBXcml0ZVBDSVdvcmQNCj4gPiArUFVCTElDIFdyaXRlUENJRHdvcmQN Cj4gPiArUFVCTElDIFJlYWRQQ0lCeXRlDQo+ID4gK1BVQkxJQyBSZWFkUENJV29yZA0KPiA+ICtQ VUJMSUMgUmVhZFBDSUR3b3JkDQo+ID4gK1BVQkxJQyBfcmRtc3INCj4gPiArUFVCTElDIF93cm1z cg0KPiA+ICsNCj4gPiArDQo+ID4gKyAgICAuNTg2cA0KPiA+ICsgICAgLm1vZGVsICBmbGF0LEMN Cj4gPiArICAgIC5jb2RlDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g Kzsgdm9pZCBfc3RvcmVfaWR0cigNCj4gPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8g cmN4DQo+ID4gKzsgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX3N0b3Jl X2lkdHIgUFJPQw0KPiA+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3ArNF0NCj4gPiArICAg IHNpZHQgZHdvcmQgcHRyIFtlY3hdDQo+ID4gKyAgICByZXQNCj4gPiArX3N0b3JlX2lkdHIgRU5E UA0KPiA+ICsNCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyB2b2lk IF9sb2FkX2lkdHIoDQo+ID4gKzsgICB1bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiA+ ICs7ICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK19sb2FkX2lkdHIgUFJP Qw0KPiA+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3ArNF0NCj4gPiArICAgIGxpZHQgZndv cmQgcHRyIFtlY3hdDQo+ID4gKyAgICByZXQNCj4gPiArX2xvYWRfaWR0ciBFTkRQDQo+ID4gKw0K PiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgdm9pZCBfc3RvcmVfZ2R0cigNCj4g PiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ID4gKzsgICApDQo+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX3N0b3JlX2dkdHIgUFJPQw0KPiA+ICsgICAgbW92 IGVjeCwgZHdvcmQgcHRyIFtlc3ArNF0NCj4gPiArICAgIHNnZHQgZHdvcmQgcHRyIFtlY3hdDQo+ ID4gKyAgICByZXQNCj4gPiArX3N0b3JlX2dkdHIgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+ICs7IHZvaWQgX3N0b3JlX2xkdHIoDQo+ID4gKzsgICB1bnNpZ25l ZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiA+ICs7ICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ID4gK19zdG9yZV9sZHRyIFBST0MNCj4gPiArICAgIG1vdiBlY3gsIGR3b3JkIHB0 ciBbZXNwKzRdDQo+ID4gKyAgICBzbGR0IHdvcmQgcHRyIFtlY3hdDQo+ID4gKyAgICByZXQNCj4g PiArX3N0b3JlX2xkdHIgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+ICs7ICB2b2lkIF9fc3RkY2FsbCBfcmRtc3IoDQo+ID4gKzsgICAgSU4gVUlOVDMyIG1zciwN Cj4gPiArOyAgICBPVVQgVUlOVDMyKiBtc3JsbywNCj4gPiArOyAgICBPVVQgVUlOVDMyKiBtc3Jo aQ0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtfcmRtc3Ig UFJPQw0KPiA+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3AgKyA0XSA7IG1zcg0KPiA+ICsN Cj4gPiArICAgIHJkbXNyDQo+ID4gKw0KPiA+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3Ag KyA4XQ0KPiA+ICsgICAgbW92IGR3b3JkIHB0ciBbZWN4XSwgZWF4IDsgbXNybG8NCj4gPiArICAg IG1vdiBlY3gsIGR3b3JkIHB0ciBbZXNwICsgMTJdDQo+ID4gKyAgICBtb3YgZHdvcmQgcHRyIFtl Y3hdLCBlZHggOyBtc3JoaQ0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICtfcmRtc3IgRU5EUA0K PiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICBWT0lEIF9fc3RkY2Fs bCBfd3Jtc3IoDQo+ID4gKzsgICAgSU4gVUlOVDMyIG1zciwNCj4gPiArOyAgICBJTiBVSU5UMzIg bXNybG8sDQo+ID4gKzsgICAgSU4gVUlOVDMyIG1zcmhpDQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK193cm1zciBQUk9DDQo+ID4gKyAgICBtb3YgZWN4LCBk d29yZCBwdHIgW2VzcCArIDRdICA7IG1zcg0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtl c3AgKyA4XSA7IG1zcmxvDQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDEyXSA7 IG1zcmhpDQo+ID4gKw0KPiA+ICsgICAgd3Jtc3INCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiAr X3dybXNyIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArO1VJ TlQzMiBfZWZsYWdzKCkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtlZmxhZ3Mg UFJPQw0KPiA+ICsgICAgcHVzaGZkDQo+ID4gKyAgICBwb3AgZWF4DQo+ID4gKyAgICByZXQNCj4g PiArZWZsYWdzIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAr OyAgVk9JRA0KPiA+ICs7ICBXcml0ZVBvcnREd29yZCAoDQo+ID4gKzsgICAgSU4gICBVSU5UMzIg ICAgb3V0X3ZhbHVlDQo+ID4gKzsgICAgSU4gICBVSU5UMTYgICAgcG9ydF9udW0NCj4gPiArOyAg ICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3JpdGVQb3J0RHdvcmQgUFJP Qw0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgICA7IG91dF92YWx1ZQ0K PiA+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgIDsgcG9ydF9udW0NCj4gPiAr ICAgIG91dCBkeCwgZWF4DQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlUG9ydER3b3Jk IEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgVk9JRA0K PiA+ICs7ICBXcml0ZVBvcnRXb3JkICgNCj4gPiArOyAgICBJTiAgIFVJTlQxNiAgICBvdXRfdmFs dWUNCj4gPiArOyAgICBJTiAgIFVJTlQxNiAgICBwb3J0X251bQ0KPiA+ICs7ICAgICkNCj4gPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtXcml0ZVBvcnRXb3JkIFBST0MNCj4gPiArICAg IG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gICA7IG91dF92YWx1ZQ0KPiA+ICsgICAgbW92 IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyBwb3J0X251bQ0KPiA+ICsgICAgb3V0IGR4LCBh eA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICtXcml0ZVBvcnRXb3JkIEVORFANCj4gPiArDQo+ ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgVk9JRA0KPiA+ICs7ICBXcml0ZVBv cnRCeXRlICgNCj4gPiArOyAgICBJTiAgIFVJTlQ4ICAgICBvdXRfdmFsdWUNCj4gPiArOyAgICBJ TiAgIFVJTlQxNiAgICBwb3J0X251bQ0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiA+ICtXcml0ZVBvcnRCeXRlIFBST0MNCj4gPiArICAgIG1vdiBlYXgsIGR3b3Jk IHB0ciBbZXNwICsgNF0gICA7IG91dF92YWx1ZQ0KPiA+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRy IFtlc3AgKyA4XSAgOyBwb3J0X251bQ0KPiA+ICsgICAgb3V0IGR4LCBhbA0KPiA+ICsNCj4gPiAr ICAgIHJldA0KPiA+ICtXcml0ZVBvcnRCeXRlIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gPiArOyAgVUlOVDMyDQo+ID4gKzsgIFJlYWRQb3J0RHdvcmQgKA0KPiA+ ICs7ICAgIElOICAgVUlOVDE2ICAgIHBvcnRfbnVtDQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gK1JlYWRQb3J0RHdvcmQgUFJPQw0KPiA+ICsgICAgeG9yIGVh eCwgZWF4DQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDRdIDsgcG9ydF9udW0N Cj4gPiArICAgIGluIGVheCwgZHgNCj4gPiArDQo+ID4gKyAgIHJldA0KPiA+ICtSZWFkUG9ydER3 b3JkIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgVUlO VDE2DQo+ID4gKzsgIFJlYWRQb3J0V29yZCAoDQo+ID4gKzsgICAgSU4gICBVSU5UMTYgICAgcG9y dF9udW0NCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArUmVh ZFBvcnRXb3JkIFBST0MNCj4gPiArICAgIHhvciBlYXgsIGVheA0KPiA+ICsgICAgbW92IGVkeCwg ZHdvcmQgcHRyIFtlc3AgKyA0XSA7IHBvcnRfbnVtDQo+ID4gKyAgICBpbiBheCwgZHgNCj4gPiAr DQo+ID4gKyAgICByZXQNCj4gPiArUmVhZFBvcnRXb3JkIEVORFANCj4gPiArDQo+ID4gKzstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgVUlOVDgNCj4gPiArOyAgUmVhZFBvcnRCeXRlICgN Cj4gPiArOyAgICBJTiAgIFVJTlQxNiAgICBwb3J0X251bQ0KPiA+ICs7ICAgICkNCj4gPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUG9ydEJ5dGUgUFJPQw0KPiA+ICsgICAgeG9y IGVheCwgZWF4DQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDRdIDsgcG9ydF9u dW0NCj4gPiArICAgIGluIGFsLCBkeA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICtSZWFkUG9y dEJ5dGUgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICBW T0lEDQo+ID4gKzsgIFdyaXRlSGlnaENNT1NCeXRlICgNCj4gPiArOyAgICBJTiAgIFVJTlQ4ICAg ICBjbW9zX29mZg0KPiA+ICs7ICAgIElOICAgVUlOVDggICAgIHZhbA0KPiA+ICs7ICAgICkNCj4g PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtXcml0ZUhpZ2hDTU9TQnl0ZSBQUk9DDQo+ ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IGNtb3Nfb2ZmDQo+ID4gKyAg ICBvdXQgNzJoLCBhbA0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyB2 YWwNCj4gPiArICAgIG91dCA3M2gsIGFsDQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRl SGlnaENNT1NCeXRlIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g PiArOyAgVk9JRA0KPiA+ICs7ICBXcml0ZUxvd0NNT1NCeXRlICgNCj4gPiArOyAgICBJTiAgIFVJ TlQ4ICAgICBjbW9zX29mZg0KPiA+ICs7ICAgIElOICAgVUlOVDggICAgIHZhbA0KPiA+ICs7ICAg ICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtXcml0ZUxvd0NNT1NCeXRlIFBS T0MNCj4gPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgY21vc19vZmYNCj4g PiArICAgIG9yIGFsLCA4MGgNCj4gPiArICAgIG91dCA3MGgsIGFsDQo+ID4gKyAgICBtb3YgZWF4 LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IHZhbA0KPiA+ICsgICAgb3V0IDcxaCwgYWwNCj4gPiAr DQo+ID4gKyAgICByZXQNCj4gPiArV3JpdGVMb3dDTU9TQnl0ZSBFTkRQDQo+ID4gKw0KPiA+ICsN Cj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICBWT0lEDQo+ID4gKzsgIFNlbmRB UE1TTUkgKA0KPiA+ICs7ICAgIElOICAgVUlOVDMyCWFwbV9wb3J0X3ZhbHVlDQo+ID4gKzsgICAg SU4gICBVSU5UNjQJcmF4X3ZhbHVlICAgICAgICAgICAgICAgLy8gTk9UIFVTRUQ/Pz8NCj4gPiAr OyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArU2VuZEFQTVNNSSBQUk9D DQo+ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IGFwbV9wb3J0X3ZhbHVl DQo+ID4gKyAgICBtb3YgZHgsIDBCMmgNCj4gPiArICAgIG91dCBkeCwgZWF4DQo+ID4gKw0KPiA+ ICsgICAgcmV0DQo+ID4gK1NlbmRBUE1TTUkgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ICs7ICBWT0lEDQo+ID4gKzsgIFdyaXRlUENJQnl0ZSAoDQo+ID4gKzsg ICAgSU4gICBVSU5UMzIgICAgcGNpX3JlZw0KPiA+ICs7ICAgIElOICAgVUlOVDE2ICAgIGNmZ19k YXRhX3BvcnQNCj4gPiArOyAgICBJTiAgIFVJTlQ4ICAgICBieXRlX3ZhbHVlDQo+ID4gKzsgICAg KQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRlUENJQnl0ZSBQUk9DDQo+ ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IHBjaV9yZWcNCj4gPiArICAg IG1vdiBkeCwgMENGOGgNCj4gPiArICAgIG91dCBkeCwgZWF4DQo+ID4gKw0KPiA+ICsgICAgbW92 IGVheCwgZHdvcmQgcHRyIFtlc3AgKyAxMl0gIDsgd29yZF92YWx1ZQ0KPiA+ICsgICAgbW92IGVk eCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyBjZmdfZGF0YV9wb3J0DQo+ID4gKyAgICBvdXQgZHgs IGFsDQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlUENJQnl0ZSBFTkRQDQo+ID4gKw0K PiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIFZPSUQNCj4gPiArOyAgV3JpdGVQ Q0lXb3JkICgNCj4gPiArOyAgICBJTiAgIFVJTlQzMiAgICBwY2lfcmVnDQo+ID4gKzsgICAgSU4g ICBVSU5UMTYgICAgY2ZnX2RhdGFfcG9ydA0KPiA+ICs7ICAgIElOICAgVUlOVDE2ICAgIHdvcmRf dmFsdWUNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3Jp dGVQQ0lXb3JkIFBST0MNCj4gPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsg cGNpX3JlZw0KPiA+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiA+ICsgICAgb3V0IGR4LCBlYXgNCj4g PiArDQo+ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDEyXSAgOyB3b3JkX3ZhbHVl DQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IGNmZ19kYXRhX3BvcnQN Cj4gPiArICAgIG91dCBkeCwgYXgNCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiArV3JpdGVQQ0lX b3JkIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgVk9J RA0KPiA+ICs7ICBXcml0ZVBDSUR3b3JkICgNCj4gPiArOyAgICBJTiAgIFVJTlQzMglwY2lfcmVn DQo+ID4gKzsgICAgSU4gICBVSU5UMTYJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gPiArOyAg ICBJTiAgIFVJTlQzMglkd29yZF92YWx1ZSAgICAgIC8vIHI4DQo+ID4gKzsgICAgKQ0KPiA+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRlUENJRHdvcmQgUFJPQw0KPiA+ICsNCj4g PiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgcGNpX3JlZw0KPiA+ICsgICAg bW92IGR4LCAwQ0Y4aA0KPiA+ICsgICAgb3V0IGR4LCBlYXgNCj4gPiArDQo+ID4gKyAgICBtb3Yg ZWF4LCBkd29yZCBwdHIgW2VzcCArIDEyXSAgOyBkd29yZF92YWx1ZQ0KPiA+ICsgICAgbW92IGVk eCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyBjZmdfZGF0YV9wb3J0DQo+ID4gKyAgICBvdXQgZHgs IGVheA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICtXcml0ZVBDSUR3b3JkIEVORFANCj4gPiAr DQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIHVuc2lnbmVkIGNo YXINCj4gPiArOyAgUmVhZFBDSUJ5dGUgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVn ICAgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3BvcnQg ICAgLy8gcmR4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g K1JlYWRQQ0lCeXRlIFBST0MNCj4gPiArICAgIGNsaQ0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQg cHRyIFtlc3AgKyA0XSAgOyBwY2lfcmVnDQo+ID4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ID4gKyAg ICBvdXQgZHgsIGVheA0KPiA+ICsNCj4gPiArICAgIHhvciBlYXgsIGVheA0KPiA+ICsgICAgbW92 IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgIDsgY2ZnX2RhdGFfcG9ydA0KPiA+ICsgICAgaW4g IGFsLCBkeA0KPiA+ICsgICAgc3RpDQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1JlYWRQQ0lC eXRlIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdW5z aWduZWQgc2hvcnQNCj4gPiArOyAgUmVhZFBDSVdvcmQgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGlu dAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19k YXRhX3BvcnQgICAgLy8gcmR4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gK1JlYWRQQ0lXb3JkIFBST0MNCj4gPiArICAgIGNsaQ0KPiA+ICsgICAgbW92IGVh eCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgOyBwY2lfcmVnDQo+ID4gKyAgICBtb3YgZHgsIDBDRjho DQo+ID4gKyAgICBvdXQgZHgsIGVheA0KPiA+ICsNCj4gPiArICAgIHhvciBlYXgsIGVheA0KPiA+ ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgIDsgY2ZnX2RhdGFfcG9ydA0KPiA+ ICsgICAgaW4gIGF4LCBkeA0KPiA+ICsgICAgc3RpDQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4g K1JlYWRQQ0lXb3JkIEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g PiArOyAgdW5zaWduZWQgaW50DQo+ID4gKzsgIFJlYWRQQ0lEd29yZCAoDQo+ID4gKzsgICAgdW5z aWduZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAgdW5zaWduZWQgc2hv cnQJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gPiArUmVhZFBDSUR3b3JkIFBST0MNCj4gPiArICAgIGNsaQ0KPiA+ICsg ICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgOyBwY2lfcmVnDQo+ID4gKyAgICBtb3Yg ZHgsIDBDRjhoDQo+ID4gKyAgICBvdXQgZHgsIGVheA0KPiA+ICsNCj4gPiArICAgIHhvciBlYXgs IGVheA0KPiA+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgIDsgY2ZnX2RhdGFf cG9ydA0KPiA+ICsgICAgaW4gIGVheCwgZHgNCj4gPiArICAgIHN0aQ0KPiA+ICsNCj4gPiArICAg IHJldA0KPiA+ICtSZWFkUENJRHdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiA+ICs7ICB2b2lkDQo+ID4gKzsgIF9zd3NtaSAoDQo+ID4gKzsgICAgdW5zaWdu ZWQgaW50CXNtaV9jb2RlX2RhdGEJLy8gcmN4DQo+ID4gKzsgICAgSU4gICBVSU5UMzIJcmF4X3Zh bHVlCS8vIHJkeA0KPiA+ICs7ICAgIElOICAgVUlOVDMyCXJieF92YWx1ZQkvLyByOA0KPiA+ICs7 ICAgIElOICAgVUlOVDMyCXJjeF92YWx1ZQkvLyByOQ0KPiA+ICs7ICAgIElOICAgVUlOVDMyCXJk eF92YWx1ZQkvLyByMTANCj4gPiArOyAgICBJTiAgIFVJTlQzMglyc2lfdmFsdWUJLy8gcjExDQo+ ID4gKzsgICAgSU4gICBVSU5UMzIJcmRpX3ZhbHVlCS8vIHIxMg0KPiA+ICs7ICAgICkNCj4gPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtfc3dzbWkgUFJPQw0KPiA+ICsgICAgeG9yIGVh eCwgZWF4DQo+ID4gKyAgICByZXQNCj4gPiArX3N3c21pIEVORFANCj4gPiArDQo+ID4gK0VORA0K PiA+IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42Ljgv UHlNb2QtMy42LjgvTW9kdWxlcy9lZGsybW9kdWxlLmMNCj4gYi9BcHBQa2cvQXBwbGljYXRpb25z L1B5dGhvbi9QeXRob24tDQo+ID4gMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9lZGsybW9kdWxl LmMNCj4gPiBpbmRleCAwNTAxYTJiLi40ZGQ0YjdjIDEwMDY0NA0KPiA+IC0tLSBhL0FwcFBrZy9B cHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2VkazJt b2R1bGUuYw0KPiA+ICsrKyBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYu OC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2VkazJtb2R1bGUuYw0KPiA+IEBAIC0zLDcgKzMsNyBAQA0K PiA+ICAgICAgRGVyaXZlZCBmcm9tIHBvc2l4bW9kdWxlLmMgaW4gUHl0aG9uIDIuNy4yLg0KPiA+ DQo+ID4gICAgICBDb3B5cmlnaHQgKGMpIDIwMTUsIERhcnlsIE1jRGFuaWVsLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gPiAtICAgIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjEsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArICAgIENvcHlyaWdo dCAoYykgMjAxMSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gPiAgICAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlh bHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlcg0KPiA+ICAgICAgdGhlIHRl cm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSB0aGF0IGFjY29tcGFuaWVzIHRo aXMgZGlzdHJpYnV0aW9uLg0KPiA+ICAgICAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBt YXkgYmUgZm91bmQgYXQNCj4gPiBAQCAtMjksNiArMjksNDUgQEANCj4gPiAgZXh0ZXJuICJDIiB7 DQo+ID4gICNlbmRpZg0KPiA+DQo+ID4gKyNpZiBkZWZpbmVkKFVFRklfTVNWQ18zMikgfHwgZGVm aW5lZChVRUZJX01TVkNfNjQpDQo+ID4gKy8vDQo+ID4gKy8vIENISVBTRUMgZXh0ZW5zaW9uIGZv ciBlZGsyIG1vZHVsZSBvZiBQeXRob24gMy42LjgNCj4gPiArLy8gYnVpbGQgc3VwcG9ydCBhdmFp bGFibGUgZm9yDQo+ID4gKy8vIFZTIFRvb2wgY2hhaW5zIHg4NiBhbmQgeDY0IGJpdCBidWlsZHMg b25seS4NCj4gPiArLy8NCj4gPiArICAgIFB5VHlwZU9iamVjdCBFZmlHdWlkVHlwZTsNCj4gPiAr DQo+ID4gKyAgLy8gLS0gQWNjZXNzIHRvIENQVSBNU1JzDQo+ID4gKyAgZXh0ZXJuIHZvaWQgX3Jk bXNyKCB1bnNpZ25lZCBpbnQgbXNyX251bSwgdW5zaWduZWQgaW50KiBtc3JfbG8sIHVuc2lnbmVk IGludCogbXNyX2hpICk7DQo+ID4gKyAgZXh0ZXJuIHZvaWQgX3dybXNyKCB1bnNpZ25lZCBpbnQg bXNyX251bSwgdW5zaWduZWQgaW50ICBtc3JfaGksIHVuc2lnbmVkIGludCAgbXNyX2xvICk7DQo+ ID4gKyAgZXh0ZXJuIHZvaWQgX3N3c21pKCB1bnNpZ25lZCBpbnQgc21pX2NvZGVfZGF0YSwgdW5z aWduZWQgaW50IHJheF92YWx1ZSwgdW5zaWduZWQgaW50IHJieF92YWx1ZSwgdW5zaWduZWQgaW50 DQo+IHJjeF92YWx1ZSwNCj4gPiB1bnNpZ25lZCBpbnQgcmR4X3ZhbHVlLCB1bnNpZ25lZCBpbnQg cnNpX3ZhbHVlLCB1bnNpZ25lZCBpbnQgcmRpX3ZhbHVlICk7DQo+ID4gKyAgZXh0ZXJuIHVuc2ln bmVkIGludCAgQXNtQ3B1aWRFeCggdW5zaWduZWQgaW50ICBSZWdpc3RlckluRWF4LCB1bnNpZ25l ZCBpbnQgIFJlZ2lzdGVySW5FY3gsIHVuc2lnbmVkIGludCoNCj4gPiBSZWdpc3Rlck91dEVheCwg dW5zaWduZWQgaW50KiBSZWdpc3Rlck91dEVieCwgdW5zaWduZWQgaW50KiBSZWdpc3Rlck91dEVj eCwgdW5zaWduZWQgaW50KiBSZWdpc3Rlck91dEVkeCk7DQo+ID4gKyAgLy8gLS0gQWNjZXNzIHRv IFBDSSBDRkcgc3BhY2UNCj4gPiArICBleHRlcm4gdm9pZCBXcml0ZVBDSUJ5dGUgICAgICAgICAg KCB1bnNpZ25lZCBpbnQgcGNpX3JlZywgdW5zaWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9ydCwgdW5z aWduZWQgY2hhciAgYnl0ZV92YWx1ZSApOw0KPiA+ICsgIGV4dGVybiB2b2lkIFdyaXRlUENJV29y ZCAgICAgICAgICAoIHVuc2lnbmVkIGludCBwY2lfcmVnLCB1bnNpZ25lZCBzaG9ydCBjZmdfZGF0 YV9wb3J0LCB1bnNpZ25lZCBzaG9ydCB3b3JkX3ZhbHVlICk7DQo+ID4gKyAgZXh0ZXJuIHZvaWQg V3JpdGVQQ0lEd29yZCAgICAgICAgICggdW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVkIHNo b3J0IGNmZ19kYXRhX3BvcnQsIHVuc2lnbmVkIGludCAgIGR3b3JkX3ZhbHVlICk7DQo+ID4gKyAg ZXh0ZXJuIHVuc2lnbmVkIGNoYXIgIFJlYWRQQ0lCeXRlICggdW5zaWduZWQgaW50IHBjaV9yZWcs IHVuc2lnbmVkIHNob3J0IGNmZ19kYXRhX3BvcnQgKTsNCj4gPiArICBleHRlcm4gdW5zaWduZWQg c2hvcnQgUmVhZFBDSVdvcmQgKCB1bnNpZ25lZCBpbnQgcGNpX3JlZywgdW5zaWduZWQgc2hvcnQg Y2ZnX2RhdGFfcG9ydCApOw0KPiA+ICsgIGV4dGVybiB1bnNpZ25lZCBpbnQgICBSZWFkUENJRHdv cmQoIHVuc2lnbmVkIGludCBwY2lfcmVnLCB1bnNpZ25lZCBzaG9ydCBjZmdfZGF0YV9wb3J0ICk7 DQo+ID4gKyAgLy8gLS0gQWNjZXNzIHRvIFBvcnQgSS9PDQo+ID4gKyAgZXh0ZXJuIHVuc2lnbmVk IGludCAgIFJlYWRQb3J0RHdvcmQgKCB1bnNpZ25lZCBzaG9ydCBwb3J0X251bSApOw0KPiA+ICsg IGV4dGVybiB1bnNpZ25lZCBzaG9ydCBSZWFkUG9ydFdvcmQgICggdW5zaWduZWQgc2hvcnQgcG9y dF9udW0gKTsNCj4gPiArICBleHRlcm4gdW5zaWduZWQgY2hhciAgUmVhZFBvcnRCeXRlICAoIHVu c2lnbmVkIHNob3J0IHBvcnRfbnVtICk7DQo+ID4gKyAgZXh0ZXJuIHZvaWQgICAgICAgICAgIFdy aXRlUG9ydER3b3JkKCB1bnNpZ25lZCBpbnQgICBvdXRfdmFsdWUsIHVuc2lnbmVkIHNob3J0IHBv cnRfbnVtICk7DQo+ID4gKyAgZXh0ZXJuIHZvaWQgICAgICAgICAgIFdyaXRlUG9ydFdvcmQgKCB1 bnNpZ25lZCBzaG9ydCBvdXRfdmFsdWUsIHVuc2lnbmVkIHNob3J0IHBvcnRfbnVtICk7DQo+ID4g KyAgZXh0ZXJuIHZvaWQgICAgICAgICAgIFdyaXRlUG9ydEJ5dGUgKCB1bnNpZ25lZCBjaGFyICBv dXRfdmFsdWUsIHVuc2lnbmVkIHNob3J0IHBvcnRfbnVtICk7DQo+ID4gKyAgLy8gLS0gQWNjZXNz IHRvIENQVSBEZXNjcmlwdG9yIHRhYmxlcw0KPiA+ICsgIGV4dGVybiB2b2lkIF9zdG9yZV9pZHRy KCB2b2lkKiBkZXNjX2FkZHJlc3MgKTsNCj4gPiArICBleHRlcm4gdm9pZCBfbG9hZF9pZHRyICgg dm9pZCogZGVzY19hZGRyZXNzICk7DQo+ID4gKyAgZXh0ZXJuIHZvaWQgX3N0b3JlX2dkdHIoIHZv aWQqIGRlc2NfYWRkcmVzcyApOw0KPiA+ICsgIGV4dGVybiB2b2lkIF9zdG9yZV9sZHRyKCB2b2lk KiBkZXNjX2FkZHJlc3MgKTsNCj4gPiArDQo+ID4gKyAgLy8gLS0gU3VwcG9ydCByb3V0aW5lcw0K PiA+ICsgIEVGSV9TVEFUVVMgR3VpZFRvU3RyKCBJTiBFRklfR1VJRCAqZ3VpZCwgSU4gT1VUIFVJ TlQ4ICpzdHJfYnVmZmVyICk7DQo+ID4gKw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gKw0KPiA+ ICBQeURvY19TVFJWQVIoZWRrMl9fZG9jX18sDQo+ID4gICAgICAgICAgICAgICAiVGhpcyBtb2R1 bGUgcHJvdmlkZXMgYWNjZXNzIHRvIFVFRkkgZmlybXdhcmUgZnVuY3Rpb25hbGl0eSB0aGF0IGlz XG5cDQo+ID4gICAgICAgICAgICAgICBzdGFuZGFyZGl6ZWQgYnkgdGhlIEMgU3RhbmRhcmQgYW5k IHRoZSBQT1NJWCBzdGFuZGFyZCAoYSB0aGlubHlcblwNCj4gPiBAQCAtMzc4NCw3ICszODIzLDcg QEAgZWRrMl90bXBuYW0oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpDQo+ID4gICAg ICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcoYnVmZmVyKTsNCj4gPiAgfQ0KPiA+ICAjZW5k aWYNCj4gPiAtI2VuZGlmDQo+ID4gKyNlbmRpZg0KPiA+DQo+ID4gIFB5RG9jX1NUUlZBUihlZGsy X2Fib3J0X19kb2NfXywNCj4gPiAgImFib3J0KCkgLT4gZG9lcyBub3QgcmV0dXJuIVxuXG5cDQo+ ID4gQEAgLTM4MDAsNiArMzgzOSw1MDkgQEAgZWRrMl9hYm9ydChQeU9iamVjdCAqc2VsZiwgUHlP YmplY3QgKm5vYXJncykNCj4gPiAgICAgIHJldHVybiBOVUxMOw0KPiA+ICB9DQo+ID4NCj4gPiAr DQo+ID4gKyNpZiBkZWZpbmVkKFVFRklfTVNWQ18zMikgfHwgZGVmaW5lZChVRUZJX01TVkNfNjQp DQo+ID4gKy8qY29kZSBtZXJnZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vY2hpcHNlYy9jaGlw c2VjL3RyZWUvbWFpbi9jaGlwc2VjX3Rvb2xzL2VkazIvUHl0aG9uRUZJICovDQo+ID4gKy8qICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgU1RBUlQgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjICovDQo+ID4gKw0KPiA+ICt1bnNpZ25lZCBpbnQgUmVhZFBDSUNmZygNCj4gPiArICB1 bnNpZ25lZCBjaGFyIGJ1cywNCj4gPiArICB1bnNpZ25lZCBjaGFyIGRldiwNCj4gPiArICB1bnNp Z25lZCBjaGFyIGZ1biwNCj4gPiArICB1bnNpZ25lZCBjaGFyIG9mZiwNCj4gPiArICB1bnNpZ25l ZCBjaGFyIGxlbiAvLyAxLCAyLCA0IGJ5dGVzDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgdW5z aWduZWQgaW50IHJlc3VsdCA9IDA7DQo+ID4gKyAgdW5zaWduZWQgaW50IHBjaV9hZGRyID0gKDB4 ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXYgPDwgMTEpIHwgKGZ1biA8PCA4KSB8IChvZmYg JiB+MykpOw0KPiA+ICsgIHVuc2lnbmVkIHNob3J0IGNmZ19kYXRhX3BvcnQgPSAodW5zaWduZWQg c2hvcnQpKDB4Q0ZDICsgKCBvZmYgJiAweDMgKSk7DQo+ID4gKyAgaWYgICAgICggMSA9PSBsZW4g KSByZXN1bHQgPSAoUmVhZFBDSUJ5dGUgKCBwY2lfYWRkciwgY2ZnX2RhdGFfcG9ydCApICYgMHhG Rik7DQo+ID4gKyAgZWxzZSBpZiggMiA9PSBsZW4gKSByZXN1bHQgPSAoUmVhZFBDSVdvcmQgKCBw Y2lfYWRkciwgY2ZnX2RhdGFfcG9ydCApICYgMHhGRkZGKTsNCj4gPiArICBlbHNlIGlmKCA0ID09 IGxlbiApIHJlc3VsdCA9ICBSZWFkUENJRHdvcmQoIHBjaV9hZGRyLCBjZmdfZGF0YV9wb3J0ICk7 DQo+ID4gKyAgcmV0dXJuIHJlc3VsdDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBXcml0ZVBD SUNmZygNCj4gPiArICB1bnNpZ25lZCBjaGFyIGJ1cywNCj4gPiArICB1bnNpZ25lZCBjaGFyIGRl diwNCj4gPiArICB1bnNpZ25lZCBjaGFyIGZ1biwNCj4gPiArICB1bnNpZ25lZCBjaGFyIG9mZiwN Cj4gPiArICB1bnNpZ25lZCBjaGFyIGxlbiwgLy8gMSwgMiwgNCBieXRlcw0KPiA+ICsgIHVuc2ln bmVkIGludCB2YWwNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICB1bnNpZ25lZCBpbnQgcGNpX2Fk ZHIgPSAoMHg4MDAwMDAwMCB8IChidXMgPDwgMTYpIHwgKGRldiA8PCAxMSkgfCAoZnVuIDw8IDgp IHwgKG9mZiAmIH4zKSk7DQo+ID4gKyAgdW5zaWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9ydCA9ICh1 bnNpZ25lZCBzaG9ydCkoMHhDRkMgKyAoIG9mZiAmIDB4MyApKTsNCj4gPiArICBpZiAgICAgKCAx ID09IGxlbiApIFdyaXRlUENJQnl0ZSAoIHBjaV9hZGRyLCBjZmdfZGF0YV9wb3J0LCAodW5zaWdu ZWQgY2hhcikodmFsJjB4RkYpICk7DQo+ID4gKyAgZWxzZSBpZiggMiA9PSBsZW4gKSBXcml0ZVBD SVdvcmQgKCBwY2lfYWRkciwgY2ZnX2RhdGFfcG9ydCwgKHVuc2lnbmVkIHNob3J0KSh2YWwmMHhG RkZGKSApOw0KPiA+ICsgIGVsc2UgaWYoIDQgPT0gbGVuICkgV3JpdGVQQ0lEd29yZCggcGNpX2Fk ZHIsIGNmZ19kYXRhX3BvcnQsIHZhbCApOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQeURvY19TVFJW QVIoZWZpX3JkbXNyX19kb2NfXywNCj4gPiArInJkbXNyKGVjeCkgLT4gKGVheCxlZHgpXG5cDQo+ ID4gK1JlYWQgdGhlIGdpdmVuIE1TUi4iKTsNCj4gPiArDQo+ID4gK3N0YXRpYyBQeU9iamVjdCAq DQo+ID4gK3Bvc2l4X3JkbXNyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gPiAr ew0KPiA+ICsgIHVuc2lnbmVkIGludCB2ZWN4LCB2ZWF4LCB2ZWR4Ow0KPiA+ICsgIGlmICghUHlB cmdfUGFyc2VUdXBsZShhcmdzLCAiSSIsICZ2ZWN4KSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0K PiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gPiArICBfcmRtc3IoIHZlY3gsICZ2ZWF4 LCAmdmVkeCApOw0KPiA+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ID4gKyAgcmV0dXJuIFB5 X0J1aWxkVmFsdWUoIihJSSkiLCAodW5zaWduZWQgbG9uZyl2ZWF4LCAodW5zaWduZWQgbG9uZyl2 ZWR4KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArUHlEb2NfU1RSVkFSKGVmaV93cm1zcl9fZG9jX18s DQo+ID4gKyJ3cm1zcihlY3gsIGVheCwgZWR4KSAtPiBOb25lXG5cDQo+ID4gK1dyaXRlIGVkeDpl YXggdG8gdGhlIGdpdmVuIE1TUi4iKTsNCj4gPiArDQo+ID4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ ID4gK3Bvc2l4X3dybXNyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gPiArew0K PiA+ICsgIHVuc2lnbmVkIGludCB2ZWN4LCB2ZWF4LCB2ZWR4Ow0KPiA+ICsgIGlmICghUHlBcmdf UGFyc2VUdXBsZShhcmdzLCAiSUlJIiwgJnZlY3gsICZ2ZWF4LCAmdmVkeCkpDQo+ID4gKyAgICBy ZXR1cm4gTlVMTDsNCj4gPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ID4gKyAgX3dybXNy KCB2ZWN4LCB2ZWR4LCB2ZWF4ICk7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gPiAr ICBQeV9JTkNSRUYoUHlfTm9uZSk7DQo+ID4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ID4gK30NCj4g PiArDQo+ID4gK1B5RG9jX1NUUlZBUihlZmlfc3dzbWlfX2RvY19fLA0KPiA+ICsic3dzbWkoc21p X2NvZGVfZGF0YSwgcmF4X3ZhbHVlLCByYnhfdmFsdWUsIHJjeF92YWx1ZSwgcmR4X3ZhbHVlLCBy c2lfdmFsdWUsIHJkaV92YWx1ZSkgLT4gTm9uZVxuXA0KPiA+ICtUcmlnZ2VyaW5nIFNvZnR3YXJl IFNNSSIpOw0KPiA+ICsNCj4gPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gPiArcG9zaXhfc3dzbWko UHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiA+ICt7DQo+ID4gKyAgdW5zaWduZWQg aW50IHNtaV9jb2RlX2RhdGEsIHJheF92YWx1ZSwgcmJ4X3ZhbHVlLCByY3hfdmFsdWUsIHJkeF92 YWx1ZSwgcnNpX3ZhbHVlLCByZGlfdmFsdWU7DQo+ID4gKyAgaWYgKCFQeUFyZ19QYXJzZShhcmdz LCAiKElJSUlJSUkpIiwgJnNtaV9jb2RlX2RhdGEsICZyYXhfdmFsdWUsICZyYnhfdmFsdWUsICZy Y3hfdmFsdWUsICZyZHhfdmFsdWUsICZyc2lfdmFsdWUsDQo+ID4gJnJkaV92YWx1ZSkpDQo+ID4g KyAgICByZXR1cm4gTlVMTDsNCj4gPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ID4gKyAg X3N3c21pKCBzbWlfY29kZV9kYXRhLCByYXhfdmFsdWUsIHJieF92YWx1ZSwgcmN4X3ZhbHVlLCBy ZHhfdmFsdWUsIHJzaV92YWx1ZSwgcmRpX3ZhbHVlICk7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RI UkVBRFMNCj4gPiArICBQeV9JTkNSRUYoUHlfTm9uZSk7DQo+ID4gKyAgcmV0dXJuIFB5X05vbmU7 DQo+ID4gK30NCj4gPiArDQo+ID4gK1B5RG9jX1NUUlZBUihlZmlfY3B1aWRfX2RvY19fLA0KPiA+ ICsiY3B1aWQoZWF4LCBlY3gpIC0+IChlYXg6ZWJ4OmVjeDplZHgpXG5cDQo+ID4gK1JlYWQgdGhl IENQVUlELiI7KTsNCj4gPiArDQo+ID4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ID4gK3Bvc2l4X2Nw dWlkKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gPiArew0KPiA+ICsJVUlOVDMy IGVheCwgZWN4LCByYXhfdmFsdWUsIHJieF92YWx1ZSwgcmN4X3ZhbHVlLCByZHhfdmFsdWU7DQo+ ID4gKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJIiwgJmVheCwgJmVjeCkpDQo+ ID4gKyAgICAgIHJldHVybiBOVUxMOw0KPiA+ICsJUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ ICsgICAgQXNtQ3B1aWRFeCggZWF4LCBlY3gsICZyYXhfdmFsdWUsICZyYnhfdmFsdWUsICZyY3hf dmFsdWUsICZyZHhfdmFsdWUpOw0KPiA+ICsgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gPiAr ICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSUlJSSkpIiwgICh1bnNpZ25lZCBsb25nKXJheF92 YWx1ZSwgICh1bnNpZ25lZCBsb25nKXJieF92YWx1ZSwgICh1bnNpZ25lZCBsb25nKXJjeF92YWx1 ZSwNCj4gPiAodW5zaWduZWQgbG9uZylyZHhfdmFsdWUpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQ eURvY19TVFJWQVIoZWZpX2FsbG9jcGh5c21lbV9fZG9jX18sDQo+ID4gKyJhbGxvY3BoeXNtZW0o bGVuZ3RoLCBtYXhfcGEpIC0+ICh2YSlcblwNCj4gPiArVXNlIG1hbGxvYyB0byBhbGxvY2F0ZSBz cGFjZSBpbiBtZW1vcnkuIjspOw0KPiA+ICsNCj4gPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gPiAr cG9zaXhfYWxsb2NwaHlzbWVtKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gPiAr ew0KPiA+ICsJdW5zaWduZWQgaW50IGxlbmd0aCwgbWF4X3BhOw0KPiA+ICsgICAgdm9pZCAqdmE7 DQo+ID4gKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJIiwgJmxlbmd0aCwgJm1h eF9wYSkpDQo+ID4gKyAgICAgIHJldHVybiBOVUxMOw0KPiA+ICsNCj4gPiArCVB5X0JFR0lOX0FM TE9XX1RIUkVBRFMNCj4gPiArICAgIHZhID0gbWFsbG9jKGxlbmd0aCk7DQo+ID4gKyAgICBQeV9F TkRfQUxMT1dfVEhSRUFEUw0KPiA+ICsNCj4gPiArICAgIC8vIHJldHVybiBQeV9CdWlsZFZhbHVl KCIoSykiLCAgKHVuc2lnbmVkIGxvbmcpdmEpOw0KPiA+ICsgICAgcmV0dXJuIFB5X0J1aWxkVmFs dWUoIihJKSIsICAodW5zaWduZWQgbG9uZyl2YSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK1B5RG9j X1NUUlZBUihlZmlfcmVhZGlvX19kb2NfXywNCj4gPiArInJlYWRpbyhhZGRyLCBzaXplKSAtPiAo aW50KVxuXA0KPiA+ICtSZWFkIHRoZSB2YWx1ZSAoc2l6ZSA9PSAxLCAyLCBvciA0IGJ5dGVzKSBv ZiB0aGUgc3BlY2lmaWVkIElPIHBvcnQuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgUHlPYmplY3Qg Kg0KPiA+ICtwb3NpeF9yZWFkaW8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiA+ ICt7DQo+ID4gKyAgdW5zaWduZWQgaW50IGFkZHIsIHN6LCByZXN1bHQ7DQo+ID4gKyAgc2hvcnQg YWRkcnM7DQo+ID4gKw0KPiA+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUkiLCAm YWRkciwgJnN6KSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsNCj4gPiArICBQeV9CRUdJ Tl9BTExPV19USFJFQURTDQo+ID4gKyAgcmVzdWx0ID0gMDsNCj4gPiArICBhZGRycyA9IChzaG9y dCkoYWRkciAmIDB4ZmZmZik7DQo+ID4gKyAgaWYgICAgICggMSA9PSBzeiApIHJlc3VsdCA9IChS ZWFkUG9ydEJ5dGUoIGFkZHJzICkgJiAweEZGKTsNCj4gPiArICBlbHNlIGlmKCAyID09IHN6ICkg cmVzdWx0ID0gKFJlYWRQb3J0V29yZCggYWRkcnMgKSAmIDB4RkZGRik7DQo+ID4gKyAgZWxzZSBp ZiggNCA9PSBzeiApIHJlc3VsdCA9IFJlYWRQb3J0RHdvcmQoIGFkZHJzICk7DQo+ID4gKyAgUHlf RU5EX0FMTE9XX1RIUkVBRFMNCj4gPiArICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmco KHVuc2lnbmVkIGxvbmcpcmVzdWx0KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArUHlEb2NfU1RSVkFS KGVmaV93cml0ZWlvX19kb2NfXywNCj4gPiArIndyaXRlaW8oYWRkciwgc2l6ZSwgdmFsdWUpIC0+ IE5vbmVcblwNCj4gPiArV3JpdGUgdGhlIHZhbHVlIChzaXplID09IDEsIDIsIG9yIDQgYnl0ZXMp IG9mIHRoZSBzcGVjaWZpZWQgSU8gcG9ydC4iKTsNCj4gPiArDQo+ID4gK3N0YXRpYyBQeU9iamVj dCAqDQo+ID4gK3Bvc2l4X3dyaXRlaW8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0K PiA+ICt7DQo+ID4gKyAgdW5zaWduZWQgaW50IGFkZHIsIHN6LCB2YWx1ZTsNCj4gPiArICBzaG9y dCBhZGRyczsNCj4gPiArDQo+ID4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSUki LCAmYWRkciwgJnN6LCAmdmFsdWUpKQ0KPiA+ICsgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gPiArICBhZGRycyA9IChzaG9ydCkoYWRkciAm IDB4ZmZmZik7DQo+ID4gKyAgaWYgICAgICggMSA9PSBzeiApIFdyaXRlUG9ydEJ5dGUgKCAodW5z aWduZWQgY2hhcikodmFsdWUmMHhGRiksIGFkZHJzICk7DQo+ID4gKyAgZWxzZSBpZiggMiA9PSBz eiApIFdyaXRlUG9ydFdvcmQgKCAodW5zaWduZWQgc2hvcnQpKHZhbHVlJjB4RkZGRiksIGFkZHJz ICk7DQo+ID4gKyAgZWxzZSBpZiggNCA9PSBzeiApIFdyaXRlUG9ydER3b3JkKCB2YWx1ZSwgYWRk cnMgKTsNCj4gPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiA+ICsNCj4gPiArICBQeV9JTkNS RUYoUHlfTm9uZSk7DQo+ID4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ID4gK30NCj4gPiArDQo+ID4g K1B5RG9jX1NUUlZBUihlZmlfcmVhZHBjaV9fZG9jX18sDQo+ID4gKyJyZWFkcGNpKGJ1cyxkZXYs ZnVuYyxhZGRyLHNpemUpIC0+IChpbnQpXG5cDQo+ID4gK1JlYWQgdGhlIHZhbHVlIChzaXplID09 IDEsIDIsIG9yIDQgYnl0ZXMpIG9mIHRoZSBzcGVjaWZpZWQgUENJIGIvZC9mLiIpOw0KPiA+ICsN Cj4gPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gPiArcG9zaXhfcmVhZHBjaShQeU9iamVjdCAqc2Vs ZiwgUHlPYmplY3QgKmFyZ3MpDQo+ID4gK3sNCj4gPiArICB1bnNpZ25lZCBpbnQgYnVzLCBkZXYs IGZ1bmMsIGFkZHIsIHN6LCByZXN1bHQ7DQo+ID4gKw0KPiA+ICsgIGlmICghUHlBcmdfUGFyc2VU dXBsZShhcmdzLCAiSUlJSUkiLCAmYnVzLCAmZGV2LCAmZnVuYywgJmFkZHIsICZzeikpDQo+ID4g KyAgICByZXR1cm4gTlVMTDsNCj4gPiArDQo+ID4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0K PiA+ICsgIHJlc3VsdCA9IFJlYWRQQ0lDZmcoIGJ1cywgZGV2LCBmdW5jLCBhZGRyLCBzeiApOw0K PiA+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ID4gKw0KPiA+ICsgIHJldHVybiBQeUxvbmdf RnJvbVVuc2lnbmVkTG9uZygodW5zaWduZWQgbG9uZylyZXN1bHQpOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICtQeURvY19TVFJWQVIoZWZpX3dyaXRlcGNpX19kb2NfXywNCj4gPiArIndyaXRlcGNpKGJ1 cyxkZXYsZnVuYyxhZGRyLHZhbHVlLGxlbikgLT4gTm9uZVxuXA0KPiA+ICtXcml0ZSB0aGUgdmFs dWUgdG8gdGhlIHNwZWNpZmllZCBQQ0kgYi9kL2YuICBMZW4gaXMgdmFsdWUgc2l6ZSAoZWl0aGVy IDEsIDIsIG9yIDQgYnl0ZXMpLiIpOw0KPiA+ICsNCj4gPiArc3RhdGljIFB5T2JqZWN0ICoNCj4g PiArcG9zaXhfd3JpdGVwY2koUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiA+ICt7 DQo+ID4gKyAgdW5zaWduZWQgaW50IGJ1cywgZGV2LCBmdW5jLCBhZGRyLCB2YWwsIGxlbjsNCj4g PiArDQo+ID4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSUlJSUkiLCAmYnVzLCAm ZGV2LCAmZnVuYywgJmFkZHIsICZ2YWwsICZsZW4pKQ0KPiA+ICsgICAgcmV0dXJuIE5VTEw7DQo+ ID4gKw0KPiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gPiArICBXcml0ZVBDSUNmZygg YnVzLCBkZXYsIGZ1bmMsIGFkZHIsIGxlbiwgdmFsICk7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RI UkVBRFMNCj4gPiArDQo+ID4gKyAgUHlfSU5DUkVGKFB5X05vbmUpOw0KPiA+ICsgIHJldHVybiBQ eV9Ob25lOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQeURvY19TVFJWQVIoZWZpX3JlYWRtZW1fX2Rv Y19fLA0KPiA+ICsicmVhZG1lbShhZGRyX2xvLCBhZGRyX2hpLCBsZW4pIC0+IEJ5dGVTdHJpbmdc blwNCj4gPiArUmVhZCB0aGUgZ2l2ZW4gbWVtb3J5IGFkZHJlc3MuIik7DQo+ID4gKw0KPiA+ICtz dGF0aWMgUHlPYmplY3QgKg0KPiA+ICtwb3NpeF9yZWFkbWVtKFB5T2JqZWN0ICpzZWxmLCBQeU9i amVjdCAqYXJncykNCj4gPiArew0KPiA+ICsgIFB5T2JqZWN0ICAqZGF0YTsNCj4gPiArICBVSU5U MzIgICAgIGFkZHJfbG8sIGFkZHJfaGk7DQo+ID4gKyAgY2hhciAgICAgICpidWZmZXIsICpjYnVm ZmVyLCAqYWRkcjsNCj4gPiArICBpbnQgICAgICAgIGxlbiwgaW5kZXg7DQo+ID4gKw0KPiA+ICsg IGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJIiwgJmFkZHJfbG8sICZhZGRyX2hpLCAm bGVuKSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsNCj4gPiArI2lmZGVmIE1ERV9DUFVf WDY0DQo+ID4gKyAgYWRkciA9ICh1bnNpZ25lZCBjaGFyKikoKFVJTlQ2NClhZGRyX2xvIHwgKChV SU5UNjQpYWRkcl9oaSA8PCAzMikpOw0KPiA+ICsjZWxzZQ0KPiA+ICsgIGFkZHIgPSAodW5zaWdu ZWQgY2hhciopYWRkcl9sbzsNCj4gPiArI2VuZGlmDQo+ID4gKw0KPiA+ICsgIGJ1ZmZlciA9IG1h bGxvYyhsZW4pOw0KPiA+ICsgIGlmIChidWZmZXIgPT0gTlVMTCkNCj4gPiArICAgIHJldHVybiBO VUxMOw0KPiA+ICsNCj4gPiArICBjYnVmZmVyID0gYnVmZmVyOw0KPiA+ICsgIGluZGV4ID0gbGVu Ow0KPiA+ICsNCj4gPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ID4gKw0KPiA+ICsgIHdo aWxlKGluZGV4LS0pew0KPiA+ICsgICAgKmNidWZmZXIgPSAqYWRkcjsNCj4gPiArICAgIGNidWZm ZXIrKzsNCj4gPiArICAgIGFkZHIrKzsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIFB5X0VORF9B TExPV19USFJFQURTDQo+ID4gKw0KPiA+ICsgIGRhdGEgPSBQeV9CdWlsZFZhbHVlKCJ5IyIsIGJ1 ZmZlciwgbGVuKTsNCj4gPiArICBmcmVlKGJ1ZmZlcik7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBk YXRhOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQeURvY19TVFJWQVIoZWZpX3JlYWRtZW1fZHdvcmRf X2RvY19fLA0KPiA+ICsicmVhZG1lbV9kd29yZChhZGRyX2xvLCBhZGRyX2hpKSAtPiAoaW50MzIp XG5cDQo+ID4gK1JlYWQgdGhlIGdpdmVuIG1lbW9yeSBhZGRyZXNzIGFuZCByZXR1cm4gMzItYml0 IHZhbHVlLiIpOw0KPiA+ICsNCj4gPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gPiArcG9zaXhfcmVh ZG1lbV9kd29yZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ID4gK3sNCj4gPiAr ICB1bnNpZ25lZCBpbnQgcmVzdWx0LCAqYWRkcjsNCj4gPiArICBVSU5UMzIgYWRkcl9sbywgYWRk cl9oaTsNCj4gPiArDQo+ID4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSSIsICZh ZGRyX2xvLCAmYWRkcl9oaSkpDQo+ID4gKyAgICByZXR1cm4gTlVMTDsNCj4gPiArDQo+ID4gKyNp ZmRlZiBNREVfQ1BVX1g2NA0KPiA+ICsgIGFkZHIgPSAodW5zaWduZWQgaW50KikoKFVJTlQ2NClh ZGRyX2xvIHwgKChVSU5UNjQpYWRkcl9oaSA8PCAzMikpOw0KPiA+ICsjZWxzZQ0KPiA+ICsgIGFk ZHIgPSAodW5zaWduZWQgaW50KilhZGRyX2xvOw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gKyAg UHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ICsgIHJlc3VsdCA9ICphZGRyOw0KPiA+ICsgIFB5 X0VORF9BTExPV19USFJFQURTDQo+ID4gKw0KPiA+ICsgIHJldHVybiBQeUxvbmdfRnJvbVVuc2ln bmVkTG9uZygodW5zaWduZWQgbG9uZylyZXN1bHQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQeURv Y19TVFJWQVIoZWZpX3dyaXRlbWVtX19kb2NfXywNCj4gPiArIndyaXRlbWVtKGFkZHJfbG8sIGFk ZHJfaGksIGJ1ZiwgbGVuKSAtPiBOb25lXG5cDQo+ID4gK1dyaXRlIHRoZSBidWYgKFB5U3RyaW5n KSB0byB0aGUgZ2l2ZW4gbWVtb3J5IGFkZHJlc3MuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgUHlP YmplY3QgKg0KPiA+ICtwb3NpeF93cml0ZW1lbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFy Z3MpDQo+ID4gK3sNCj4gPiArICBjaGFyICpidWYsICphZGRyOw0KPiA+ICsgIGludCBsZW47DQo+ ID4gKyAgVUlOVDMyIGFkZHJfbG8sIGFkZHJfaGk7DQo+ID4gKw0KPiA+ICsgIGlmICghUHlBcmdf UGFyc2VUdXBsZShhcmdzLCAiSUlzIyIsICZhZGRyX2xvLCAmYWRkcl9oaSwgJmJ1ZiwgJmxlbikp DQo+ID4gKyAgICByZXR1cm4gTlVMTDsNCj4gPiArDQo+ID4gKyNpZmRlZiBNREVfQ1BVX1g2NA0K PiA+ICsgIGFkZHIgPSAodW5zaWduZWQgY2hhciopKChVSU5UNjQpYWRkcl9sbyB8ICgoVUlOVDY0 KWFkZHJfaGkgPDwgMzIpKTsNCj4gPiArI2Vsc2UNCj4gPiArICBhZGRyID0gKHVuc2lnbmVkIGNo YXIqKWFkZHJfbG87DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiArICBQeV9CRUdJTl9BTExPV19U SFJFQURTDQo+ID4gKyAgd2hpbGUobGVuLS0pew0KPiA+ICsgICAgKmFkZHIgPSAqYnVmOw0KPiA+ ICsgICAgYnVmKys7DQo+ID4gKyAgICBhZGRyKys7DQo+ID4gKyAgfQ0KPiA+ICsgIFB5X0VORF9B TExPV19USFJFQURTDQo+ID4gKw0KPiA+ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gPiArICBy ZXR1cm4gUHlfTm9uZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArUHlEb2NfU1RSVkFSKGVmaV93cml0 ZW1lbV9kd29yZF9fZG9jX18sDQo+ID4gKyJ3cml0ZW1lbV9kd29yZChhZGRyX2xvLCBhZGRyX2hp LCB2YWwpIC0+IE5vbmVcblwNCj4gPiArV3JpdGUgdGhlIDMyLWJpdCB2YWx1ZSB0byB0aGUgZ2l2 ZW4gbWVtb3J5IGFkZHJlc3MuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiA+ ICtwb3NpeF93cml0ZW1lbV9kd29yZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ ID4gK3sNCj4gPiArICB1bnNpZ25lZCBpbnQgKmFkZHIsIHZhbDsNCj4gPiArICBVSU5UMzIgYWRk cl9sbywgYWRkcl9oaTsNCj4gPiArDQo+ID4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3Ms ICJJSUkiLCAmYWRkcl9sbywgJmFkZHJfaGksICZ2YWwpKQ0KPiA+ICsgICAgcmV0dXJuIE5VTEw7 DQo+ID4gKw0KPiA+ICsjaWZkZWYgTURFX0NQVV9YNjQNCj4gPiArICBhZGRyID0gKHVuc2lnbmVk IGludCopKChVSU5UNjQpYWRkcl9sbyB8ICgoVUlOVDY0KWFkZHJfaGkgPDwgMzIpKTsNCj4gPiAr I2Vsc2UNCj4gPiArICBhZGRyID0gKHVuc2lnbmVkIGludCopYWRkcl9sbzsNCj4gPiArI2VuZGlm DQo+ID4gKw0KPiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gPiArICAqYWRkciA9IHZh bDsNCj4gPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiA+ICsNCj4gPiArICBQeV9JTkNSRUYo UHlfTm9uZSk7DQo+ID4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ID4gK30NCj4gPiArDQo+ID4gK1B5 RG9jX1NUUlZBUihNaXNjUlRfR2V0VmFyaWFibGVfX2RvY19fLA0KPiA+ICsiKFN0YXR1cywgQXR0 cmlidXRlcywgRGF0YSwgRGF0YVNpemUpID0gR2V0VmFyaWFibGUoVmFyaWFibGVOYW1lLCBHVUlE LCBEYXRhU2l6ZSlcblxuXA0KPiA+ICtSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlLiIp Ow0KPiA+ICsNCj4gPiArc3RhdGljDQo+ID4gK1B5T2JqZWN0ICoNCj4gPiArTWlzY1JUX0dldFZh cmlhYmxlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gPiArew0KPiA+ICsgIFB5 T2JqZWN0ICAgICAqZGF0YV9vdXQ7DQo+ID4gKyAgQ0hBUjE2ICAgICAgICpWYXJpYWJsZU5hbWU7 DQo+ID4gKyAgRUZJX0dVSUQgICAgICBWZW5kb3JHdWlkOw0KPiA+ICsgIFVJTlQzMiAgICAgICAg R3VpZFNpemU7DQo+ID4gKyAgVUlOVDMyICAgICAgICBBdHRyaWJ1dGVzOw0KPiA+ICsgIFVJTlQ2 NCAgICAgICAgRGF0YVNpemU7DQo+ID4gKyAgY2hhciAgICAgICAgICpEYXRhOw0KPiA+ICsgIGNv bnN0IENIQVIxNiAqR3VpZEluOw0KPiA+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiA+ICsN Cj4gPiArICBpZighUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAidXUjSyIsICZWYXJpYWJsZU5hbWUs ICZHdWlkSW4sICZHdWlkU2l6ZSwgJkRhdGFTaXplKSkNCj4gPiArICB7DQo+ID4gKyAgICByZXR1 cm4gTlVMTDsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIFN0clRvR3VpZChHdWlkSW4sICZWZW5k b3JHdWlkKTsNCj4gPiArDQo+ID4gKyAgRGF0YSA9IG1hbGxvYyhEYXRhU2l6ZSk7DQo+ID4gKyAg aWYgKCFEYXRhKQ0KPiA+ICsgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICsgIFB5X0JFR0lO X0FMTE9XX1RIUkVBRFMNCj4gPiArICBTdGF0dXMgPSBnUlQtPkdldFZhcmlhYmxlKFZhcmlhYmxl TmFtZSwgJlZlbmRvckd1aWQsICZBdHRyaWJ1dGVzLCAoVUlOVE4gKikmRGF0YVNpemUsICh2b2lk KilEYXRhKTsNCj4gPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiA+ICsNCj4gPiArICBkYXRh X291dCA9IFB5X0J1aWxkVmFsdWUoIihJSXkjSykiLCAoVUlOVDMyKVN0YXR1cywgQXR0cmlidXRl cywgRGF0YSwgRGF0YVNpemUsIERhdGFTaXplKTsNCj4gPiArICBmcmVlKERhdGEpOw0KPiA+ICsN Cj4gPiArICByZXR1cm4gZGF0YV9vdXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK1B5RG9jX1NUUlZB UihNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFtZV9fZG9jX18sDQo+ID4gKyIoU3RhdHVzLCBWYXJp YWJsZU5hbWVTaXplLCBWYXJpYWJsZU5hbWUsIFZlbmRvckd1aWQpID0gR2V0TmV4dFZhcmlhYmxl TmFtZShOYW1lU2l6ZSwgVmFyaWFibGVOYW1lLCBHVUlEKVxuXG5cDQo+ID4gK0VudW1lcmF0ZXMg dGhlIGN1cnJlbnQgdmFyaWFibGUgbmFtZXMuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMNCj4gPiAr UHlPYmplY3QgKg0KPiA+ICtNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFtZShQeU9iamVjdCAqc2Vs ZiwgUHlPYmplY3QgKmFyZ3MpDQo+ID4gK3sNCj4gPiArICBVSU5UNjQgICAgICAgIE5hbWVTaXpl Ow0KPiA+ICsgIENIQVIxNiAgICAgICAqVmFyaWFibGVOYW1lLCAqTmFtZUluOw0KPiA+ICsgIFVJ TlQzMiAgICAgICAgR3VpZFNpemUsIFZhcmlhYmxlTmFtZVNpemUsIGk7DQo+ID4gKyAgRUZJX0dV SUQgICAgICBWZW5kb3JHdWlkOw0KPiA+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiA+ICsg IGNvbnN0IGNoYXIgICAqR3VpZEluOw0KPiA+ICsgIGNoYXIgICAgICAgICAqVmVuZG9yR3VpZFB0 ciwgKkd1aWRPdXRbMzddOw0KPiA+ICsNCj4gPiArICBpZighUHlBcmdfUGFyc2VUdXBsZShhcmdz LCAiS3kjcyMiLCAmTmFtZVNpemUsICZOYW1lSW4sICZWYXJpYWJsZU5hbWVTaXplLCAmR3VpZElu LCAmR3VpZFNpemUpKQ0KPiA+ICsgIHsNCj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsgIH0N Cj4gPiArDQo+ID4gKyAgVmVuZG9yR3VpZFB0ciA9IChjaGFyICopJlZlbmRvckd1aWQ7DQo+ID4g KyAgZm9yIChpPTA7IGk8c2l6ZW9mKFZlbmRvckd1aWQpOyBpKyspDQo+ID4gKyAgICBWZW5kb3JH dWlkUHRyW2ldID0gR3VpZEluW2ldOw0KPiA+ICsNCj4gPiArICBmb3IgKGk9MDsgaTxOYW1lU2l6 ZSAmJiBOYW1lSW5baV0gIT0gKENIQVIxNikwOyBpKyspDQo+ID4gKyAgICBWYXJpYWJsZU5hbWVb aV0gPSBOYW1lSW5baV07DQo+ID4gKyAgVmFyaWFibGVOYW1lW2ldID0gTmFtZUluW2ldOw0KPiA+ ICsNCj4gPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ID4gKyAgU3RhdHVzID0gZ1JULT5H ZXROZXh0VmFyaWFibGVOYW1lKChVSU5UTiAqKSZOYW1lU2l6ZSwgKENIQVIxNiAqKVZhcmlhYmxl TmFtZSwgJlZlbmRvckd1aWQpOw0KPiA+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ID4gKw0K PiA+ICsgIEd1aWRUb1N0cigoRUZJX0dVSUQgKikmVmVuZG9yR3VpZCwgKFVJTlQ4ICopR3VpZE91 dCk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSXVLcykiLCAoVUlOVDMy KSBTdGF0dXMsIFZhcmlhYmxlTmFtZSwgTmFtZVNpemUsICZHdWlkT3V0KTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArUHlEb2NfU1RSVkFSKE1pc2NSVF9TZXRWYXJpYWJsZV9fZG9jX18sDQo+ID4gKyIo U3RhdHVzLCBEYXRhU2l6ZSwgR1VJRCkgPSBTZXRWYXJpYWJsZShWYXJpYWJsZU5hbWUsIEdVSUQs IEF0dHJpYnV0ZXMsIERhdGEsIERhdGFTaXplKVxuXG5cDQo+ID4gK1NldHMgdGhlIHZhbHVlIG9m IGEgdmFyaWFibGUuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMNCj4gPiArUHlPYmplY3QgKg0KPiA+ ICtNaXNjUlRfU2V0VmFyaWFibGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiA+ ICt7DQo+ID4gKyAgQ0hBUjE2ICAgICAgICpWYXJpYWJsZU5hbWU7DQo+ID4gKyAgVUlOVDY0ICAg ICAgICBEYXRhU2l6ZTsNCj4gPiArICBjaGFyICAgICAgICAgKkRhdGEsICpndWlkcHRyLCAqVmVu ZG9yR3VpZFB0cjsNCj4gPiArICBjaGFyICAgICAgICAgKkd1aWRPdXRbMzddOw0KPiA+ICsgIEVG SV9TVEFUVVMgICAgU3RhdHVzOw0KPiA+ICsgIEVGSV9HVUlEICAgICAgVmVuZG9yR3VpZDsNCj4g PiArICBVSU5UMzIgICAgICAgIEF0dHJpYnV0ZXM7DQo+ID4gKyAgVUlOVDMyICAgICAgICBHdWlk U2l6ZSwgc3RyRGF0YVNpemU7DQo+ID4gKyAgY29uc3QgQ0hBUjE2ICpHdWlkSW47DQo+ID4gKw0K PiA+ICsgIGlmKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ1dSNJcyNJIiwgJlZhcmlhYmxlTmFt ZSwgJkd1aWRJbiwgJkd1aWRTaXplLCAmQXR0cmlidXRlcywgJkRhdGEsICZzdHJEYXRhU2l6ZSwN Cj4gJkRhdGFTaXplKSkNCj4gPiArICB7DQo+ID4gKyAgICByZXR1cm4gTlVMTDsNCj4gPiArICB9 DQo+ID4gKw0KPiA+ICsgIFN0clRvR3VpZChHdWlkSW4sICZWZW5kb3JHdWlkKTsNCj4gPiArDQo+ ID4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ICsgIFN0YXR1cyA9IGdSVC0+U2V0VmFy aWFibGUoVmFyaWFibGVOYW1lLCAmVmVuZG9yR3VpZCwgQXR0cmlidXRlcywgKFVJTlROKURhdGFT aXplLCAodm9pZCopRGF0YSk7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gPiArDQo+ ID4gKyAgR3VpZFRvU3RyKChFRklfR1VJRCAqKSZWZW5kb3JHdWlkLCAoVUlOVDggKilHdWlkT3V0 KTsNCj4gPiArDQo+ID4gKy8vICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJS3UjKSIsIChVSU5U MzIpIFN0YXR1cywgRGF0YVNpemUsICZWZW5kb3JHdWlkLCBzaXplb2YoVmVuZG9yR3VpZCkpOw0K PiA+ICsgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSUtzKSIsIChVSU5UMzIpIFN0YXR1cywgRGF0 YVNpemUsICZHdWlkT3V0KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gKw0KPiA+ICtFRklf U1RBVFVTDQo+ID4gK0d1aWRUb1N0ciAoDQo+ID4gKyAgSU4gRUZJX0dVSUQgICpndWlkLA0KPiA+ ICsgIElOIE9VVCBVSU5UOCAqc3RyX2J1ZmZlcg0KPiA+ICsgICkNCj4gPiArLyorKw0KPiA+ICsN Cj4gPiArUm91dGluZSBEZXNjcmlwdGlvbjoNCj4gPiArICBUaGlzIGZ1bmN0aW9uIHByaW50cyBh IEdVSUQgdG8gYSBidWZmZXINCj4gPiArDQo+ID4gK0FyZ3VtZW50czoNCj4gPiArICBndWlkICAg ICAgIC0gUG9pbnRlciB0byBhIEdVSUQNCj4gPiArICBzdHJfYnVmZmVyIC0gUG9pbnRlciB0byBh IHN0ciBidWZmZXINCj4gPiArDQo+ID4gK1JldHVybnM6DQo+ID4gKyAgRUZJX1NVQ0NFU1MgICAg ICAgICAgICBHVUlEIHdhcyBwcmludGVkDQo+ID4gKyAgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBH VUlEIHdhcyBOVUxMDQo+ID4gKw0KPiA+ICstLSovDQo+ID4gK3sNCj4gPiArICBpZiAoZ3VpZCA9 PSBOVUxMKSB7DQo+ID4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ICsg IH0NCj4gPiArDQo+ID4gKyAgc3ByaW50ZiAoDQo+ID4gKyAgICAoQ0hBUjggKilzdHJfYnVmZmVy LA0KPiA+ICsgICAgIiUwOFgtJTA0WC0lMDRYLSUwMlglMDJYLSUwMlglMDJYJTAyWCUwMlglMDJY JTAyWCIsDQo+ID4gKyAgICAodW5zaWduZWQpIGd1aWQtPkRhdGExLA0KPiA+ICsgICAgZ3VpZC0+ RGF0YTIsDQo+ID4gKyAgICBndWlkLT5EYXRhMywNCj4gPiArICAgIGd1aWQtPkRhdGE0WzBdLA0K PiA+ICsgICAgZ3VpZC0+RGF0YTRbMV0sDQo+ID4gKyAgICBndWlkLT5EYXRhNFsyXSwNCj4gPiAr ICAgIGd1aWQtPkRhdGE0WzNdLA0KPiA+ICsgICAgZ3VpZC0+RGF0YTRbNF0sDQo+ID4gKyAgICBn dWlkLT5EYXRhNFs1XSwNCj4gPiArICAgIGd1aWQtPkRhdGE0WzZdLA0KPiA+ICsgICAgZ3VpZC0+ RGF0YTRbN10NCj4gPiArICAgICk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gKw0KPiA+ICsvKmNvZGUgbWVyZ2VkIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNlYy90cmVlL21haW4vY2hpcHNlY190b29scy9l ZGsyL1B5dGhvbkVGSSAqLw0KPiA+ICsvKiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAgICBF TkQgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAqLw0KPiA+ICsjZW5kaWYNCj4gPiAr DQo+ID4gKw0KPiA+ICBzdGF0aWMgUHlNZXRob2REZWYgZWRrMl9tZXRob2RzW10gPSB7DQo+ID4g ICAgICB7ImFjY2VzcyIsICAgICAgICAgIGVkazJfYWNjZXNzLCAgICAgTUVUSF9WQVJBUkdTLCBl ZGsyX2FjY2Vzc19fZG9jX199LA0KPiA+ICAjaWZkZWYgSEFWRV9UVFlOQU1FDQo+ID4gQEAgLTQw NDQsNyArNDU4Niw3IEBAIHN0YXRpYyBQeU1ldGhvZERlZiBlZGsyX21ldGhvZHNbXSA9IHsNCj4g PiAgI2lmZGVmIEhBVkVfVE1QTkFNDQo+ID4gICAgICB7InRtcG5hbSIsICAgICAgICAgIGVkazJf dG1wbmFtLCAgICAgTUVUSF9OT0FSR1MsICBlZGsyX3RtcG5hbV9fZG9jX199LA0KPiA+ICAjZW5k aWYNCj4gPiAtI2VuZGlmDQo+ID4gKyNlbmRpZg0KPiA+ICAjaWZkZWYgSEFWRV9DT05GU1RSDQo+ ID4gICAgICB7ImNvbmZzdHIiLCAgICAgICAgIGVkazJfY29uZnN0ciwgTUVUSF9WQVJBUkdTLCBl ZGsyX2NvbmZzdHJfX2RvY19ffSwNCj4gPiAgI2VuZGlmDQo+ID4gQEAgLTQwNTgsNiArNDYwMCwy NiBAQCBzdGF0aWMgUHlNZXRob2REZWYgZWRrMl9tZXRob2RzW10gPSB7DQo+ID4gICAgICB7InBh dGhjb25mIiwgICAgICAgIGVkazJfcGF0aGNvbmYsIE1FVEhfVkFSQVJHUywgZWRrMl9wYXRoY29u Zl9fZG9jX199LA0KPiA+ICAjZW5kaWYNCj4gPiAgICAgIHsiYWJvcnQiLCAgICAgICAgICAgZWRr Ml9hYm9ydCwgICAgICBNRVRIX05PQVJHUywgIGVkazJfYWJvcnRfX2RvY19ffSwNCj4gPiArDQo+ ID4gKyNpZiBkZWZpbmVkKFVFRklfTVNWQ18zMikgfHwgZGVmaW5lZChVRUZJX01TVkNfNjQpDQo+ ID4gKyAgICB7InJkbXNyIiwgICAgICAgICAgICAgICBwb3NpeF9yZG1zciwgICAgICAgICAgICAg ICAgIE1FVEhfVkFSQVJHUywgZWZpX3JkbXNyX19kb2NfX30sDQo+ID4gKyAgICB7IndybXNyIiwg ICAgICAgICAgICAgICBwb3NpeF93cm1zciwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywg ZWZpX3dybXNyX19kb2NfX30sDQo+ID4gKyAgICB7InJlYWRwY2kiLCAgICAgICAgICAgICBwb3Np eF9yZWFkcGNpLCAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3JlYWRwY2lfX2RvY19f fSwNCj4gPiArICAgIHsid3JpdGVwY2kiLCAgICAgICAgICAgIHBvc2l4X3dyaXRlcGNpLCAgICAg ICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfd3JpdGVwY2lfX2RvY19ffSwNCj4gPiArICAgIHsi cmVhZG1lbSIsICAgICAgICAgICAgIHBvc2l4X3JlYWRtZW0sICAgICAgICAgICAgICAgTUVUSF9W QVJBUkdTLCBlZmlfcmVhZG1lbV9fZG9jX199LA0KPiA+ICsgICAgeyJyZWFkbWVtX2R3b3JkIiwg ICAgICAgcG9zaXhfcmVhZG1lbV9kd29yZCwgICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV9yZWFk bWVtX2R3b3JkX19kb2NfX30sDQo+ID4gKyAgICB7IndyaXRlbWVtIiwgICAgICAgICAgICBwb3Np eF93cml0ZW1lbSwgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3dyaXRlbWVtX19kb2Nf X30sDQo+ID4gKyAgICB7IndyaXRlbWVtX2R3b3JkIiwgICAgICBwb3NpeF93cml0ZW1lbV9kd29y ZCwgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3dyaXRlbWVtX2R3b3JkX19kb2NfX30sDQo+ID4g KyAgICB7IndyaXRlaW8iLCAgICAgICAgICAgICBwb3NpeF93cml0ZWlvLCAgICAgICAgICAgICAg IE1FVEhfVkFSQVJHUywgZWZpX3dyaXRlaW9fX2RvY19ffSwNCj4gPiArICAgIHsicmVhZGlvIiwg ICAgICAgICAgICAgIHBvc2l4X3JlYWRpbywgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBl ZmlfcmVhZGlvX19kb2NfX30sDQo+ID4gKyAgICB7InN3c21pIiwgICAgICAgICAgICAgICBwb3Np eF9zd3NtaSwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3N3c21pX19kb2NfX30s DQo+ID4gKyAgICB7ImFsbG9jcGh5c21lbSIsICAgICAgICBwb3NpeF9hbGxvY3BoeXNtZW0sICAg ICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX2FsbG9jcGh5c21lbV9fZG9jX199LA0KPiA+ICsgICAg eyJjcHVpZCIsICAgICAgICAgICAgICAgcG9zaXhfY3B1aWQsICAgICAgICAgICAgICAgICBNRVRI X1ZBUkFSR1MsIGVmaV9jcHVpZF9fZG9jX199LA0KPiA+ICsgICAgeyJHZXRWYXJpYWJsZSIsICAg ICAgICAgTWlzY1JUX0dldFZhcmlhYmxlLCAgICAgICAgICBNRVRIX1ZBUkFSR1MsIE1pc2NSVF9H ZXRWYXJpYWJsZV9fZG9jX199LA0KPiA+ICsgICAgeyJHZXROZXh0VmFyaWFibGVOYW1lIiwgTWlz Y1JUX0dldE5leHRWYXJpYWJsZU5hbWUsICBNRVRIX1ZBUkFSR1MsIE1pc2NSVF9HZXROZXh0VmFy aWFibGVOYW1lX19kb2NfX30sDQo+ID4gKyAgICB7IlNldFZhcmlhYmxlIiwgICAgICAgICBNaXNj UlRfU2V0VmFyaWFibGUsICAgICAgICAgIE1FVEhfVkFSQVJHUywgTWlzY1JUX1NldFZhcmlhYmxl X19kb2NfX30sDQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgICAgIHtOVUxMLCAgICAgICAgICAg ICAgTlVMTH0gICAgICAgICAgICAvKiBTZW50aW5lbCAqLw0KPiA+ICB9Ow0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeXRob24z NjguaW5mIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLQ0KPiAzLjYuOC9QeXRo b24zNjguaW5mDQo+ID4gaW5kZXggMTIxZDRhOS4uZDNjY2I2YSAxMDA2NDQNCj4gPiAtLS0gYS9B cHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHl0aG9uMzY4LmluZg0KPiA+ ICsrKyBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeXRob24zNjgu aW5mDQo+ID4gQEAgLTE0LDcgKzE0LDcgQEANCj4gPg0KPiA+ICBbRGVmaW5lc10NCj4gPiAgICBJ TkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDE2DQo+ID4gLSAgQkFTRV9OQU1F ICAgICAgICAgICAgICAgICAgID0gUHl0aG9uDQo+ID4gKyAgQkFTRV9OQU1FICAgICAgICAgICAg ICAgICAgID0gUHl0aG9uDQo+ID4gICAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgID0gOURB MzBFOTgtMDk0Qy00RkYwLTk0Q0ItODFDMTBFNjlGNzUwDQo+ID4gICAgTU9EVUxFX1RZUEUgICAg ICAgICAgICAgICAgID0gVUVGSV9BUFBMSUNBVElPTg0KPiA+ICAgIFZFUlNJT05fU1RSSU5HICAg ICAgICAgICAgICA9IDAuMQ0KPiA+IEBAIC0yMDEsOCArMjAxLDggQEANCj4gPiAgICBNb2R1bGVz L19ibGFrZTIvYmxha2UyYl9pbXBsLmMgICAgICAgIw0KPiA+ICAgIE1vZHVsZXMvX2JsYWtlMi9i bGFrZTJzX2ltcGwuYyAgICAgICAjDQo+ID4gICAgTW9kdWxlcy9fc2hhMy9zaGEzbW9kdWxlLmMg ICAgICAgICAgICMNCj4gPiAtICBNb2R1bGVzL3NpZ25hbG1vZHVsZS5jICAgICAgICAgICAgICAg Iw0KPiA+IC0gICNNb2R1bGVzL3NvY2tldG1vZHVsZS5jICAgICAgICAgICAgICAgIw0KPiA+ICsg IE1vZHVsZXMvc2lnbmFsbW9kdWxlLmMgICAgICAgICAgICAgICAjDQo+ID4gKyAgI01vZHVsZXMv c29ja2V0bW9kdWxlLmMgICAgICAgICAgICAgICMNCj4gPiAgICBNb2R1bGVzL3N5bXRhYmxlbW9k dWxlLmMgICAgICAgICAgICAgIw0KPiA+ICAgIE1vZHVsZXMvdW5pY29kZWRhdGEuYyAgICAgICAg ICAgICAgICAjDQo+ID4gICAgTW9kdWxlcy94eHN1YnR5cGUuYyAgICAgICAgICAgICAgICAgICMN Cj4gPiBAQCAtMjE1LDcgKzIxNSw3IEBADQo+ID4gICAgTW9kdWxlcy9faW8vaW9iYXNlLmMgICAg ICAgICAgICAgICAgICMNCj4gPiAgICBNb2R1bGVzL19pby9zdHJpbmdpby5jICAgICAgICAgICAg ICAgIw0KPiA+ICAgIE1vZHVsZXMvX2lvL3RleHRpby5jICAgICAgICAgICAgICAgICAjDQo+ID4g LSAgTW9kdWxlcy9hdGV4aXRtb2R1bGUuYwkgICAgICAgIw0KPiA+ICsgIE1vZHVsZXMvYXRleGl0 bW9kdWxlLmMgICAgICAgICAgICAgICAjDQo+ID4NCj4gPiAgI01vZHVsZXMvY2prY29kZWNzDQo+ ID4gICAgTW9kdWxlcy9jamtjb2RlY3MvbXVsdGlieXRlY29kZWMuYyAgICMNCj4gPiBAQCAtMjUx LDI0ICsyNTEsMjYgQEAgTW9kdWxlcy96bGliDQo+ID4gICAgTW9kdWxlcy96bGliL3p1dGlsLmMg ICAgICAgICAgICAgICAgICMNCj4gPg0KPiA+ICAjTW9kdWxlcy9jdHlwZXMNCj4gPiAtICBQeU1v ZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL19jdHlwZXMvX2N0eXBlcy5jICAgIHwgTVNGVCAg ICAgICAgICAjDQo+ID4gLSAgTW9kdWxlcy9fY3R5cGVzL3N0Z2RpY3QuYyAgICAgICAgICAgfCBN U0ZUICAgIw0KPiA+IC0gIE1vZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy9wcmVwX2NpZi5jICB8 IE1TRlQjDQo+ID4gLSAgUHlNb2QtJChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9fY3R5cGVzL21h bGxvY19jbG9zdXJlLmMgICB8IE1TRlQgICAgIw0KPiA+IC0gIFB5TW9kLSQoUFlUSE9OX1ZFUlNJ T04pL01vZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy9mZmkuYyAgfCBNU0ZUICAgICAjDQo+ID4g LSAgTW9kdWxlcy9fY3R5cGVzL2NmaWVsZC5jICAgIHwgTVNGVCAgICAgICAgICAgIw0KPiA+IC0g IFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMvX2N0eXBlcy9jYWxscHJvYy5jICB8IE1T RlQgICAgICAgICAgICMNCj4gPiAtICBNb2R1bGVzL19jdHlwZXMvY2FsbGJhY2tzLmMgICAgICAg IHwgTVNGVCAgICAjDQo+ID4gKyAgUHlNb2QtJChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9fY3R5 cGVzL19jdHlwZXMuYyAgICB8IE1TRlQgICAgICAgICAgIw0KPiA+ICsgIE1vZHVsZXMvX2N0eXBl cy9zdGdkaWN0LmMgICAgICAgICAgIHwgTVNGVCAgICMNCj4gPiArICBNb2R1bGVzL19jdHlwZXMv bGliZmZpX21zdmMvcHJlcF9jaWYuYyAgfCBNU0ZUIw0KPiA+ICsgIFB5TW9kLSQoUFlUSE9OX1ZF UlNJT04pL01vZHVsZXMvX2N0eXBlcy9tYWxsb2NfY2xvc3VyZS5jICAgfCBNU0ZUICAgICMNCj4g PiArICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpX21zdmMv ZmZpLmMgIHwgTVNGVCAgICAgIw0KPiA+ICsgIE1vZHVsZXMvX2N0eXBlcy9jZmllbGQuYyAgICB8 IE1TRlQgICAgICAgICAgICMNCj4gPiArICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVz L19jdHlwZXMvY2FsbHByb2MuYyAgfCBNU0ZUICAgICAgICAgICAjDQo+ID4gKyAgTW9kdWxlcy9f Y3R5cGVzL2NhbGxiYWNrcy5jICAgICAgICB8IE1TRlQgICAgIw0KPiA+DQo+ID4gIFtTb3VyY2Vz LklBMzJdDQo+ID4gLSAgTW9kdWxlcy9fY3R5cGVzL2xpYmZmaV9tc3ZjL3dpbjMyLmMgIHwgTVNG VCAjDQo+ID4gKyAgTW9kdWxlcy9fY3R5cGVzL2xpYmZmaV9tc3ZjL3dpbjMyLmMgIHwgTVNGVCAj DQo+ID4gKyAgUHlNb2QtJChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9jcHVfaWEzMi5hc20gfCBN U0ZUICMNCj4gPg0KPiA+ICBbU291cmNlcy5YNjRdDQo+ID4gLSAgTW9kdWxlcy9fY3R5cGVzL2xp YmZmaV9tc3ZjL3dpbjY0LmFzbSAgfCBNU0ZUICMNCj4gPiArICBNb2R1bGVzL19jdHlwZXMvbGli ZmZpX21zdmMvd2luNjQuYXNtICB8IE1TRlQgIw0KPiA+ICsgIFB5TW9kLSQoUFlUSE9OX1ZFUlNJ T04pL01vZHVsZXMvY3B1LmFzbSB8IE1TRlQgIw0KPiA+DQo+ID4gIFtCdWlsZE9wdGlvbnNdDQo+ ID4gICAgTVNGVDoqXypfKl9DQ19GTEFHUyA9IC9HTC0gL09pLSAvd2Q0MDE4IC93ZDQwNTQgL3dk NDA1NSAvd2Q0MTAxIC93ZDQxMzEgL3dkNDE1MiAvd2Q0MjA0IC93ZDQyMTAgL3dkNDI0NCAvd2Q0 MjY3DQo+IC93ZDQzMDUNCj4gPiAvd2Q0MzEwIC93ZDQzODkgL3dkNDcwMSAvd2Q0NzAyIC93ZDQ3 MDYgL3dkNDQ1NiAvd2Q0MzEyIC93ZDQ0NTcgL3dkNDQ1OSAvd2Q0NDc0IC93ZDQ0NzYNCj4gPiAv SSQoV09SS1NQQUNFKVxBcHBQa2dcQXBwbGljYXRpb25zXFB5dGhvblxQeXRob24tMy42LjhcSW5j bHVkZSAvREhBVkVfTUVNTU9WRSAvRFVTRV9QWUVYUEFUX0NBUEkgL0RYTUxfU1RBVElDIC1EIFVF RkkNCj4gL1dYLQ0KPiA+IC9EWE1MX1BPT1JfRU5UUk9QWSAvRFVFRklfQ19TT1VSQ0UNCj4gPiAt ICBHQ0M6Kl8qXypfQ0NfRkxBR1MgPSAtV25vLXVudXNlZC1mdW5jdGlvbiAtV25vLWZvcm1hdCAt V25vLWVycm9yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC0NCj4gPiBJJChXT1JLU1BBQ0UpL0FwcFBr Zy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9JbmNsdWRlIC1ESEFWRV9NRU1NT1ZF IC1EVVNFX1BZRVhQQVRfQ0FQSSAtRFhNTF9TVEFUSUMgLQ0KPiA+IERYTUxfUE9PUl9FTlRST1BZ DQo+ID4gKyAgR0NDOipfKl8qX0NDX0ZMQUdTID0gLVduby11bnVzZWQtZnVuY3Rpb24gLVduby1m b3JtYXQgLVduby1lcnJvciAtZm5vLXN0cmljdC1hbGlhc2luZyAtDQo+ID4gSSQoV09SS1NQQUNF KS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvSW5jbHVkZSAtREhBVkVf TUVNTU9WRSAtRFVTRV9QWUVYUEFUX0NBUEkgLURYTUxfU1RBVElDIC0NCj4gPiBEWE1MX1BPT1Jf RU5UUk9QWQ0KPiA+DQo+ID4gIFtCdWlsZE9wdGlvbnMuSUEzMl0NCj4gPiAgICBNU0ZUOipfKl8q X0NDX0ZMQUdTID0gL0RVRUZJX01TVkNfMzINCj4gPiAtLQ0KPiA+IDIuMzMuMC53aW5kb3dzLjEN Cg0K