From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.5708.1645611576893101408 for ; Wed, 23 Feb 2022 02:19:37 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=dby9c7ox; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: siyuan.fu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645611576; x=1677147576; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=gpVfeyalh1q1HqG/UFEdwSx8JSIj6dvHq9c5bU0CP+k=; b=dby9c7ox/hLxlh87fMArI16GuhnW0WOh6c4BMcFdTPjVmrOamewuK7w4 8Qv2gnfPtxJqb1BABc9LpWjub12d0WciyfxWfJL6sSd5EnOwGL0gYcy9F LxsovORC87NMAoeRdF7et0G9nfM1zEAMVOHTJwzWVFXPNQOjFRAR5eKTc MPcwJ2Sr6VpRUt2S6tBl++0iNKUDIqogm45EnKlrTkF05a+pyJOrPrdPg C4yYtuHICh9RxWTPVsKPVw5PKUS/WcqutA50TpfG92nb4nPgub/giYB1X SdiO5IpfQs2jsv4IQqIDVHxJbdFGIqv/kC+08G3SHB7FfOKPgyoq8AssO A==; X-IronPort-AV: E=McAfee;i="6200,9189,10266"; a="312646837" X-IronPort-AV: E=Sophos;i="5.88,390,1635231600"; d="scan'208";a="312646837" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 02:19:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,390,1635231600"; d="scan'208";a="505861237" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga002.jf.intel.com with ESMTP; 23 Feb 2022 02:19:35 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Wed, 23 Feb 2022 02:19:35 -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.2308.20; Wed, 23 Feb 2022 02:19:34 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2308.21 via Frontend Transport; Wed, 23 Feb 2022 02:19:34 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.47) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Wed, 23 Feb 2022 02:19:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zsfb7X5r2Ij7iMQXhTVXzjnJTP5u0FNp4ZPdguu+BhU0WxB5oe4zzUMteBXvmsYsro2KBts3utQ5/JNqlsYuDPGzZ9cMAOrs1+mdqjZH7voQYS2HZ98XF8RawESSX7x8/heVjMgxB4Eu5vdYWbNl0YJKkmVojroXLpK7SPMAQDemZnsF6BTexiDPzBXuWySZg1x0ibH3Lf/tjOxDLedvDGHntXZ9rfiVlNYjXiFL9Eo1WMNYlLXM+I5/ZynR72WyJR9i064FHzIF3TIh5C/f3c7TVNtLKET2Q9Yu2G60O4E9B0TneLTZ2JYHnDcZt+0ptwvzmBdLTJWGnFhNCHnkBw== 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=gpVfeyalh1q1HqG/UFEdwSx8JSIj6dvHq9c5bU0CP+k=; b=j3uDxfXM67T2st0xbjjMjmVi1CPpG+R7XHABpMn18gH47ljawp3rAQCzo3obkCOWVLN4yxtGX8SYUO/leyeA4ivLrk/O9YjJ/f9Ferw6JH0mqQYVCu0o1S6uf633xqtMYYFkvvJioBrSgPhlznfHzCs2gOqCZUwwxSweYiHNTeQRbwbKaFiYp/UJqoXDUXZeoz/bge1fZbC/lRcvbuxOy71nAhYyKpRPw4u6c2qtj2Q/jO6OQR5JmqXQQ2vmnwFvsW+IdcPgN2meWcpyRTskDIZc0VkMlQcs1IdF/GbaILUJzytuDnDbQFeZyE6WlZf9puV+U5IOjHw644gJL1KzQA== 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 MWHPR11MB1598.namprd11.prod.outlook.com (2603:10b6:301:c::11) by DM5PR11MB2043.namprd11.prod.outlook.com (2603:10b6:3:e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.17; Wed, 23 Feb 2022 10:19:32 +0000 Received: from MWHPR11MB1598.namprd11.prod.outlook.com ([fe80::e15e:6e38:c26c:690c]) by MWHPR11MB1598.namprd11.prod.outlook.com ([fe80::e15e:6e38:c26c:690c%8]) with mapi id 15.20.5017.023; Wed, 23 Feb 2022 10:19:31 +0000 From: "Siyuan, Fu" To: "devel@edk2.groups.io" , "Li, Zhihao" CC: "Dong, Eric" , "Ni, Ray" , "Kumar, Rahul1" Subject: Re: [edk2-devel] [PATCH v2 1/1] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Topic: [edk2-devel] [PATCH v2 1/1] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Index: AQHYKICHFrvmCEdWVE6YwdHj357IUqyg7B4g Date: Wed, 23 Feb 2022 10:19:30 +0000 Message-ID: References: <20220223064215.3570-1-zhihao.li@intel.com> In-Reply-To: <20220223064215.3570-1-zhihao.li@intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7facbea0-a94d-4109-02ac-08d9f6b5fb15 x-ms-traffictypediagnostic: DM5PR11MB2043:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Bhuif+nSXGmQQRt2C1Q+whGuKiHBFZOUs4I4oUkAHP70rur92673WNJIscJmY3WR2Gl0oYR1K+pUwUG6H9gSuLOeOILROE4nJeTB0k1058XShiCMPkCV6zjdhI5yvW9uYSPJrSLxKxi+owvaO9AqcKwqLpvzt2NZAk5yob9OGMy8SPVhbuDlZm+RlEJHx2DJexcdh+7d9YxJGl9sCrwY34QzE14+kjyjJx45XeJMXGENZZbqF3SBjsqigyoI5uYLlulCuzK6VWv0GQXdZBlGAay1zwLANH83Lec87vdYKVYoB+zogD00qJ/MDH5DlKfiruHbOb88iwTFigPxMhDK4IHnEiV+0OmtSrotWJvAlVz1U1fMl2CucKGe6oAB1wsAdrEeNunZ1Y2olv3W8w0AZGV5YcSAUw4TtHrEICTcR4HSceLm2VP4471edp5LsOUN9sF32yVOoAUxUSoVlgwZM5BF99k6Yge4MN89YwRj63KqOyOo+lpfAy4Ixhrr0IqWb2h2vruSLqOqak44r6LQtgY1Qc16hvCvy64srmNJQXp6xCZx/PbUlIWSkpgAYYJkcAclmPnhdgnTRHfECC8dI2JZ6TodrPgZY3NkPqb19ycMcsqP97XjlJ2W3dL+Tdlp8W6BrxIaxN85k3A16kGqI3YnhEK3BqKeq+S/xVaX5C90OQ4/y2O9vnlsja3vCnmqm3e6X7udUCW/UL5zgOPabV4ITzJHTrqUlqdE3Ndqld4uDZ2N/UlnZ9buL6H3bDVoumk8ss0zNPBbo1GLcxeahZweuYs1k4DWU5bQPW+vVDGhZnq6mkBeyPWmC96ShNHuhKQobN6uncvmyu4+xIQiMw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1598.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(186003)(26005)(9686003)(66556008)(66946007)(66446008)(508600001)(53546011)(7696005)(6506007)(76116006)(966005)(86362001)(54906003)(64756008)(110136005)(8676002)(316002)(71200400001)(19627235002)(6636002)(122000001)(82960400001)(66476007)(107886003)(38070700005)(83380400001)(4326008)(30864003)(38100700002)(55016003)(5660300002)(52536014)(33656002)(8936002)(2906002)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VmxVOXBSTEVUZzZuVXV6ZVFEWm5SV2pRbStPaEVvcmFOWGFsS2hmSGVaNUY0?= =?utf-8?B?cUJtL3plUmxBNVRQa20yc0N4RVdsNlVuS3owaTQvaVlQQkdOSkFmTnBvbWg4?= =?utf-8?B?YTV4cEdhbUtDOTlrWEVMVkU4UE1KaVlHNlVVTEdTa2Nnc2lza3BNcU12OUVV?= =?utf-8?B?ck9neDB0Q2dGYmg1ZG5ocVYyOEJuVmpUZ2w2anZnK2NyOTkrR2FmTm41ZnFS?= =?utf-8?B?WDFqdUVxOVVzR3RwRVVsK3g1ZjVQQTNxYkRRWmFkYlM1eWsrcjR1R05jWHhF?= =?utf-8?B?V0hOWWtOTjR4bWUxYmxGWnVIUCtobXphUmFQbUl5RHhzU2hQbE81ZG5vakE0?= =?utf-8?B?VElSZXNpSGE3R3VuUjlEMWhTTm4xclF6ZC81bitFZzM5ZFZRRHV4MmlDc2Z4?= =?utf-8?B?K2tMUFgwUlJaT0Y5blN0WmJzb3N2UHRZSkhacWc2N0liSlZvUHhjY1JTMHRy?= =?utf-8?B?Nk44OFFza3ExNnMrbDlpY2ViUG03RzdGVGJicGdPR3kvQks3cGFKeGoyaFVK?= =?utf-8?B?VkJ1aGVOeXdKRncxTW5nZllOaFhxYVBMZnVDdUdSYXJ5SHpKc3BVTHF1ZnVJ?= =?utf-8?B?TWRJYXEvV2xIRU9IZ2s3U2lBdHVEWEhIRUVyZGdwNU1COWd5eG1FTldNQjhC?= =?utf-8?B?Sm1BcHJmN0RtQWQvakFQRXo5K1JBeTFxdU1STno1RjNjeFlXRy9QYk9uMGtl?= =?utf-8?B?cCs0dG9WTEhXTk1XaUdlcytuWnYyNm9hMHlEUEpKVEo0ZUJzTmx0Y1d0MExw?= =?utf-8?B?c29FWWt0aHVCajBCZWZKaWZIdURYcmNlVzkwWE44dUE1ckhuYkJlVHZkb1N3?= =?utf-8?B?NFN0eGs4TFNnQ0VVM2pFNUM2dkhUTkZQcWY5b3BQcHljeGhuZGxIRGZWcGhl?= =?utf-8?B?UE42amRGakJMajdlb0pjMmRNTkZmSjJXOFp6WW96cG5yOUVmL2d5R0ZaK0k1?= =?utf-8?B?T0RubEdidjNCdm9zaGtvNWR3ekJYbXpacU00cVBkR3k1My9VbmN5bWQ3SlRG?= =?utf-8?B?SW4rSE81cDNEaU5RMDQxbTQ0RXY0Qmp0UEg2RnFwVzlRNEJYMzk2cG9hSi92?= =?utf-8?B?SVZqSFd6ZFNsV0p2c2J2NjVHOHRZRS8zWjFYZDhuNHN3bWJpOVl3WHhGQjFB?= =?utf-8?B?a3YwTFF3NHNEc3pUb3BaS0laWmQvbHB6UVpRRVNTOU9KejljcDJCU2Y4eCtI?= =?utf-8?B?QXBZMGtZZS9BMEJuRS9iK21rZDFuOER0ZjJsZmFxT05oL0FRc29NTEFCNzg5?= =?utf-8?B?UDM2RWI5MWlaZ1R3aVFuQmFqeWd1bzZPalNod0dGQ1JPalBhYVlIbWFOazh5?= =?utf-8?B?N1IwQStxMWJQbHoxZFZnWkRrUFdwSHF2T3lzTm8xdjM2SDJTWDFPWkV3Tzdt?= =?utf-8?B?ZHJ1U29TMkRXMlh4QlR5dWo4dU5zeFJzcmZWYTNVR2N3dUthczcvTkg4NTNH?= =?utf-8?B?QWtoNCtQbUtDZGtQdHpyOEpnOVdPenNwMFA4YlZNRlRaYzRxNU9ZdHd1R0NN?= =?utf-8?B?Um9JUzYrNmhOc1NDMmNtNjl3WGFSN3ZNazUxSG9wZlBmVE4rVGg5M0lNNTBN?= =?utf-8?B?Mk9TYVZGK1hrTDgvTS9jMUljeDljRlkyMmZKTmppTGxSZ1hpdHl4LzNTVlJl?= =?utf-8?B?RFh4OTZacDhzaHNRTDJKaW1MWEx6ajJiWW1KQ25DQW1CNmhTUklURnBub0NE?= =?utf-8?B?Y3JKc0lHbzJtVkgwZlhTaTZFd1JodHQ4NGtWc3pZeDVEM3BpOXNjV01GdWtS?= =?utf-8?B?Ykp2OFpUNGVQK2hncWtqeUt0NDY5d3RoYWoxR3JOSjhqVnBMVUNDb3JxOXBE?= =?utf-8?B?SHJXUGtINURLeHAxYnJjQU9lTUhWWUl0dlNrZ2tSQXFhUXl4ejBhQ2kvLzlx?= =?utf-8?B?aUhyb205Y0d1bWVJanpydmRpZnlWQjVvVXFyTCtMK1JHNkFxbnJqTXFXcnc0?= =?utf-8?B?SnU4emhwS3J5UUk3aEJrY1hldnpXSWJUUGhSZWJYVVRKWkhQVk4vcGpqZUJm?= =?utf-8?B?cVViNjB1QlcrV2JFcTFIRFJEM0x5dmpmdWI0TlpJeVhORWxmYmQ1ZWw1TG9z?= =?utf-8?B?aFd3R2RZSitiU0U5TzBEcXl6MHRPS1IreVNvVXdmYzlqM0hQbDdWS1hRd1Vx?= =?utf-8?B?VVpXNWJSM0xqUllsVk44UmhMUjN5Y0h3ZlhWZkJBVWIzaTZ6UHFzSUxuaXVM?= =?utf-8?Q?oIUST9eusAZdf52BGpRSrYM=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1598.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7facbea0-a94d-4109-02ac-08d9f6b5fb15 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Feb 2022 10:19:30.6139 (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: dPVVjpa4JIc6AbpNQHgsLbJbksQIjsjx7+gNvHpNrHTebTwN7puLOocDhwB8xctnqfFsWmBu/ghLqKnWqFx7aw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB2043 Return-Path: siyuan.fu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIFpoaWhhbw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExpLCBa aGloYW8NCj4gU2VudDogMjAyMuW5tDLmnIgyM+aXpSAxNDo0Mg0KPiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5 IDxyYXkubmlAaW50ZWwuY29tPjsgS3VtYXIsDQo+IFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVs LmNvbT47IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtlZGsy LWRldmVsXSBbUEFUQ0ggdjIgMS8xXSBVZWZpQ3B1UGtnOiBFeHRlbmQgU01NIENQVSBTZXJ2aWNl IHdpdGgNCj4gcmVuZGV6dm91cyBzdXBwb3J0Lg0KPiANCj4gUkVG77yaIGh0dHBzOi8vYnVnemls bGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgxNQ0KPiANCj4gVGhpcyBwYXRjaCBk ZWZpbmUgYSBuZXcgUHJvdG9jb2wgd2l0aCB0aGUgbmV3IHNlcnZpY2VzDQo+IFNtbVdhaXRGb3JB bGxQcm9jZXNzb3IoKSwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgU01JIGhhbmRsZXINCj4gdG8gb3B0 aW9uYWxseSB3YWl0IGZvciBvdGhlciBBUHMgdG8gY29tcGxldGUgU01NIHJlbmRlenZvdXMgaW4N Cj4gcmVsYXhlZCBBUCBtb2RlLg0KPiANCj4gQSBuZXcgbGlicmFyeSBTbW1DcHVSZW5kZXp2b3Vz TGliIGlzIHByb3ZpZGVkIHRvIGFic3RyYWN0IHRoZSBzZXJ2aWNlDQo+IGludG8gbGlicmFyeSBB UEkgdG8gc2ltcGxlIFNNSSBoYW5kbGVyIGNvZGUuDQo+IA0KPiBQYXRjaF92MyBtb2RpZmllZCB0 byBwYXNzIENJIHRlc3QuICgxKUFkZCBTbW1DcHVSZW5kZXp2b3VzTGliLmluZiBpbnRvDQo+IFVl ZmlDcHVQa2cuZHNjIDxMaWJyYXJ5Q2xhc3Nlcz4vPENvbXBvbmVudD4gKDIpQWRkDQo+IFNtbUNw dVJlbmRlenZvdXNMaWIuaA0KPiBpbiBVZWZpQ3B1UGtnLmRlYyBbTGlicmFyeWNsYXNzZXMuSUEz MiwgTGlicmFyeWNsYXNzZXMueDY0XSAoMykgU29tZQ0KPiBVbmNydXN0aWZ5Q2hlY2sgbW9kaWZp Y2F0aW9ucy4NCj4gDQo+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+IENj OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IENjOiBSYWh1bCBLdW1hciA8cmFodWwxLmt1 bWFyQGludGVsLmNvbT4NCj4gQ2M6IFNpeXVhbiBGdSA8c2l5dWFuLmZ1QGludGVsLmNvbT4NCj4g DQo+IFNpZ25lZC1vZmYtYnk6IFpoaWhhbyBMaSA8emhpaGFvLmxpQGludGVsLmNvbT4NCj4gLS0t DQo+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi9TbW1DcHVSZW5kZXp2 b3VzTGliLmMgICB8IDk4DQo+ICsrKysrKysrKysrKysrKysrKysrDQo+ICBVZWZpQ3B1UGtnL1Bp U21tQ3B1RHhlU21tL0NwdVNlcnZpY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDY4DQo+ ICsrKysrKysrKysrKystDQo+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL01wU2VydmljZS5j ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrLQ0KPiAgVWVmaUNwdVBrZy9JbmNsdWRl L0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi5oICAgICAgICAgICAgICAgfCAyNyArKysrKysN Cj4gIFVlZmlDcHVQa2cvSW5jbHVkZS9Qcm90b2NvbC9TbW1DcHVTZXJ2aWNlLmggICAgICAgICAg ICAgICAgICAgIHwgMzYgKysrKysrLQ0KPiAgVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRl enZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5pbmYgfCAzNQ0KPiArKysrKysrDQo+ICBVZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmggICAgICAgICAgICAgICAgICAg ICB8IDMwICsrKysrLQ0KPiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNt bS5pbmYgICAgICAgICAgICAgICAgICAgfCAgNSArLQ0KPiAgVWVmaUNwdVBrZy9VZWZpQ3B1UGtn LmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArLQ0KPiAgVWVm aUNwdVBrZy9VZWZpQ3B1UGtnLmRzYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArDQo+ICAxMCBmaWxlcyBjaGFuZ2VkLCAzMTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNw dVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5jDQo+IGIvVWVmaUNwdVBrZy9MaWJy YXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5jDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYTUzYTVhOGYzMDFhDQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIv U21tQ3B1UmVuZGV6dm91c0xpYi5jDQo+IEBAIC0wLDAgKzEsOTggQEANCj4gKy8qKiBAZmlsZQ0K PiANCj4gKyAgU01NIENQVSBSZW5kZXp2b3VzIHNldmljZSBpbXBsZW1lbnQuDQo+IA0KPiArDQo+ IA0KPiArICBDb3B5cmlnaHQgKGMpIDIwMjEgLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKw0KPiANCj4gKyoqLw0KPiANCj4gKw0KPiANCj4g KyNpbmNsdWRlIDxCYXNlLmg+DQo+IA0KPiArI2luY2x1ZGUgPFVlZmkuaD4NCj4gDQo+ICsjaW5j bHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+IA0KPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdM aWIuaD4NCj4gDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9NbVNlcnZpY2VzVGFibGVMaWIuaD4NCj4g DQo+ICsjaW5jbHVkZSA8UHJvdG9jb2wvU21tQ3B1U2VydmljZS5oPg0KPiANCj4gKyNpbmNsdWRl IDxMaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIuaD4NCj4gDQo+ICsNCj4gDQo+ICtTVEFUSUMg RURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MICAqbVNtbUNwdVJlbmRlenZvdXMgPQ0K PiBOVUxMOw0KPiANCj4gK1NUQVRJQyBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICptUmVnaXN0cmF0aW9uICAgICA9IE5VTEw7DQo+IA0KPiArDQo+IA0KPiArLyoqDQo+IA0KPiAr ICBSZWdpc3RlciBzdGF0dXMgY29kZSBjYWxsYmFjayBmdW5jdGlvbiBvbmx5IHdoZW4gUmVwb3J0 IFN0YXR1cyBDb2RlIHByb3RvY29sDQo+IA0KPiArICBpcyBpbnN0YWxsZWQuDQo+IA0KPiArDQo+ IA0KPiArICBAcGFyYW1baW5dIFByb3RvY29sICAgUG9pbnRzIHRvIHRoZSBwcm90b2NvbCdzIHVu aXF1ZSBpZGVudGlmaWVyLg0KPiANCj4gKyAgQHBhcmFtW2luXSBJbnRlcmZhY2UgIFBvaW50cyB0 byB0aGUgaW50ZXJmYWNlIGluc3RhbmNlLg0KPiANCj4gKyAgQHBhcmFtW2luXSBIYW5kbGUgICAg IFRoZSBoYW5kbGUgb24gd2hpY2ggdGhlIGludGVyZmFjZSB3YXMgaW5zdGFsbGVkLg0KPiANCj4g Kw0KPiANCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgTm90aWZpY2F0aW9uIHJ1bnMgc3VjY2Vz c2Z1bGx5Lg0KPiANCj4gKw0KPiANCj4gKyoqLw0KPiANCj4gK0VGSV9TVEFUVVMNCj4gDQo+ICtF RklBUEkNCj4gDQo+ICtTbW1DcHVSZW5kZXp2b3VzUHJvdG9jb2xOb3RpZnkgKA0KPiANCj4gKyAg SU4gQ09OU1QgRUZJX0dVSUQgICAgKlByb3RvY29sLA0KPiANCj4gKyAgSU4gICAgICAgVk9JRCAg ICAgICAgKkludGVyZmFjZSwNCj4gDQo+ICsgIElOICAgICAgIEVGSV9IQU5ETEUgIEhhbmRsZQ0K PiANCj4gKyAgKQ0KPiANCj4gK3sNCj4gDQo+ICsgIEVGSV9TVEFUVVMgIFN0YXR1czsNCj4gDQo+ ICsNCj4gDQo+ICsgIFN0YXR1cyA9IGdNbXN0LT5NbUxvY2F0ZVByb3RvY29sICgNCj4gDQo+ICsg ICAgICAgICAgICAgICAgICAgICZnRWRraWlTbW1DcHVSZW5kZXp2b3VzUHJvdG9jb2xHdWlkLA0K PiANCj4gKyAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgIChWT0lEICoqKSZtU21tQ3B1UmVuZGV6dm91cw0KPiANCj4gKyAgICAgICAgICAgICAgICAg ICAgKTsNCj4gDQo+ICsgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+IA0KPiArDQo+IA0K PiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+IA0KPiArfQ0KPiANCj4gKw0KPiANCj4gKy8qKg0K PiANCj4gKyAgVGhpcyByb3V0aW5lIHdhaXQgZm9yIGFsbCBBUCBwcm9jZXNzb3JzIHRvIGFycml2 ZSBpbiBTTU0uDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW1baW5dIEJsb2NraW5nTW9kZSAgQmxv Y2tpbmcgbW9kZSBvciBub24tYmxvY2tpbmcgbW9kZS4NCj4gDQo+ICsNCj4gDQo+ICsgIEByZXR2 YWwgRUZJX1NVQ0NFU1MgIEFsbCBhdmFpYWJsZSBBUHMgYXJyaXZlZC4NCj4gDQo+ICsgIEByZXR2 YWwgRUZJX1RJTUVPVVQgIFdhaXQgZm9yIGFsbCBBUHMgdW50aWwgdGltZW91dC4NCj4gDQo+ICsg IEByZXR2YWwgT1RIRVIgICAgICAgIEZhaWwgdG8gcmVnaXN0ZXIgU01NIENQVSBSZW5kZXp2b3Vz IHNlcnZpY2UgUHJvdG9jb2wuDQo+IA0KPiArKiovDQo+IA0KPiArRUZJX1NUQVRVUw0KPiANCj4g K0VGSUFQSQ0KPiANCj4gK1NtbVdhaXRGb3JBbGxQcm9jZXNzb3IgKA0KPiANCj4gKyAgSU4gQk9P TEVBTiAgQmxvY2tpbmdNb2RlDQo+IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgRUZJX1NU QVRVUyAgU3RhdHVzOw0KPiANCj4gKw0KPiANCj4gKyAgaWYgKChtUmVnaXN0cmF0aW9uID09IE5V TEwpICYmIChtU21tQ3B1UmVuZGV6dm91cyA9PSBOVUxMKSkgew0KPiANCj4gKyAgICAvLw0KPiAN Cj4gKyAgICAvLyBMb2NhdGUgU01NIGNwdSByZW5kZXp2b3VzIHByb3RvY29sIGZvciB0aGUgZmly c3QgdGltZSBleGVjdXRlIHRoZQ0KPiBmdW5jdGlvbi4NCj4gDQo+ICsgICAgLy8NCj4gDQo+ICsg ICAgU3RhdHVzID0gZ01tc3QtPk1tTG9jYXRlUHJvdG9jb2wgKA0KPiANCj4gKyAgICAgICAgICAg ICAgICAgICAgICAmZ0Vka2lpU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sR3VpZCwNCj4gDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAg KFZPSUQgKiopJm1TbW1DcHVSZW5kZXp2b3VzDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAg ICk7DQo+IA0KPiArICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gDQo+ICsgICAgICBT dGF0dXMgPSBnTW1zdC0+TW1SZWdpc3RlclByb3RvY29sTm90aWZ5ICgNCj4gDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAmZ0Vka2lpU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sR3VpZCwNCj4g DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBTbW1DcHVSZW5kZXp2b3VzUHJvdG9jb2xOb3Rp ZnksDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgJm1SZWdpc3RyYXRpb24NCj4gDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICApOw0KPiANCj4gKyAgICAgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCj4gDQo+ICsgICAgICAgIHJldHVybiBTdGF0dXM7DQo+IA0KPiArICAgICAg fQ0KPiANCj4gKyAgICB9DQo+IA0KPiArICB9DQo+IA0KPiArDQo+IA0KPiArICBpZiAobVNtbUNw dVJlbmRlenZvdXMgPT0gTlVMTCkgew0KPiANCj4gKyAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ IA0KPiArICB9DQo+IA0KPiArDQo+IA0KPiArICBTdGF0dXMgPSBtU21tQ3B1UmVuZGV6dm91cy0+ V2FpdEZvckFsbFByb2Nlc3NvciAoDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtU21tQ3B1UmVuZGV6dm91cywNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJsb2NraW5nTW9kZQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsNCj4gDQo+ICsgIHJldHVybiBTdGF0dXM7DQo+IA0KPiArfQ0KPiANCj4gZGlmZiAtLWdp dCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1U2VydmljZS5jDQo+IGIvVWVmaUNwdVBr Zy9QaVNtbUNwdUR4ZVNtbS9DcHVTZXJ2aWNlLmMNCj4gaW5kZXggNWQ2MjRmOGU5ZWQ2Li5mY2Vi NjYzZmI3NGYgMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1U2Vy dmljZS5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1U2VydmljZS5jDQo+ IEBAIC0xLDcgKzEsNyBAQA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAgSW1wbGVtZW50YXRpb24gb2Yg U01NIENQVSBTZXJ2aWNlcyBQcm90b2NvbC4NCj4gDQo+IA0KPiANCj4gLUNvcHlyaWdodCAoYykg MjAxMSAtIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gDQo+ICtDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gDQo+IA0KPiANCj4gICoqLw0KPiANCj4gQEAgLTIwLDYgKzIw LDEzIEBAIEVGSV9TTU1fQ1BVX1NFUlZJQ0VfUFJPVE9DT0wgIG1TbW1DcHVTZXJ2aWNlDQo+ID0g ew0KPiAgICBTbW1SZWdpc3RlckV4Y2VwdGlvbkhhbmRsZXINCj4gDQo+ICB9Ow0KPiANCj4gDQo+ IA0KPiArLy8NCj4gDQo+ICsvLyBFREtJSSBTTU0gQ1BVIFJlbmRlenZvdXMgU2VydmljZSBQcm90 b2NvbCBpbnN0YW5jZQ0KPiANCj4gKy8vDQo+IA0KPiArRURLSUlfU01NX0NQVV9SRU5ERVpWT1VT X1BST1RPQ09MICBtU21tQ3B1UmVuZGV6dm91c1NlcnZpY2UgPSB7DQo+IA0KPiArICBTbW1XYWl0 Rm9yQWxsUHJvY2Vzc29yDQo+IA0KPiArfTsNCj4gDQo+ICsNCj4gDQo+ICAvKioNCj4gDQo+ICAg IEdldHMgcHJvY2Vzc29yIGluZm9ybWF0aW9uIG9uIHRoZSByZXF1ZXN0ZWQgcHJvY2Vzc29yIGF0 IHRoZSBpbnN0YW50IHRoaXMgY2FsbA0KPiBpcyBtYWRlLg0KPiANCj4gDQo+IA0KPiBAQCAtMzUw LDYgKzM1Nyw3IEBAIFNtbVJlZ2lzdGVyRXhjZXB0aW9uSGFuZGxlciAoDQo+ICAgIEBwYXJhbSBJ bWFnZUhhbmRsZSBUaGUgZmlybXdhcmUgYWxsb2NhdGVkIGhhbmRsZSBmb3IgdGhlIEVGSSBpbWFn ZS4NCj4gDQo+IA0KPiANCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICBFRkkgU01NIENQVSBT ZXJ2aWNlcyBQcm90b2NvbCB3YXMgaW5zdGFsbGVkDQo+IHN1Y2Nlc3NmdWxseS4NCj4gDQo+ICsg IEByZXR2YWwgT1RIRVIgICAgICAgICAgRmFpbCB0byBpbnN0YWxsIFByb3RvY29sLg0KPiANCj4g ICoqLw0KPiANCj4gIEVGSV9TVEFUVVMNCj4gDQo+ICBJbml0aWFsaXplU21tQ3B1U2VydmljZXMg KA0KPiANCj4gQEAgLTM2NCw2ICszNzIsNjQgQEAgSW5pdGlhbGl6ZVNtbUNwdVNlcnZpY2VzICgN Cj4gICAgICAgICAgICAgICAgICAgICAgRUZJX05BVElWRV9JTlRFUkZBQ0UsDQo+IA0KPiAgICAg ICAgICAgICAgICAgICAgICAmbVNtbUNwdVNlcnZpY2UNCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgICk7DQo+IA0KPiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+IA0KPiArICAgIHJl dHVybiBTdGF0dXM7DQo+IA0KPiArICB9DQo+IA0KPiArDQo+IA0KPiArICBTdGF0dXMgPSBnU21z dC0+U21tSW5zdGFsbFByb3RvY29sSW50ZXJmYWNlICgNCj4gDQo+ICsgICAgICAgICAgICAgICAg ICAgICZIYW5kbGUsDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAmZ0Vka2lpU21tQ3B1UmVu ZGV6dm91c1Byb3RvY29sR3VpZCwNCj4gDQo+ICsgICAgICAgICAgICAgICAgICAgIEVGSV9OQVRJ VkVfSU5URVJGQUNFLA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgJm1TbW1DcHVSZW5kZXp2 b3VzU2VydmljZQ0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgKTsNCj4gDQo+ICAgIEFTU0VS VF9FRklfRVJST1IgKFN0YXR1cyk7DQo+IA0KPiAgICByZXR1cm4gU3RhdHVzOw0KPiANCj4gIH0N Cj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFdhaXQgZm9yIGFsbCBwcm9jZXNzb3JzIGVu dGVycmluZyBTTU0gdW50aWwgYWxsIENQVXMgYXJlIGFscmVhZHkgc3luY2hyb25pemVkDQo+IG9y IG5vdC4NCj4gDQo+ICsNCj4gDQo+ICsgIElmIEJsb2NraW5nTW9kZSBpcyBGYWxzZSwgdGltZW91 dCB2YWx1ZSBpcyB6ZXJvLg0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtIFRoaXMgICAgICAgICAg QSBwb2ludGVyIHRvIHRoZQ0KPiBFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0wgaW5z dGFuY2UuDQo+IA0KPiArICBAcGFyYW0gQmxvY2tpbmdNb2RlICBCbG9ja2luZyBtb2RlIG9yIG5v bi1ibG9ja2luZyBtb2RlLg0KPiANCj4gKw0KPiANCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAg QWxsIGF2YWlhYmxlIEFQcyBhcnJpdmVkLg0KPiANCj4gKyAgQHJldHZhbCBFRklfVElNRU9VVCAg V2FpdCBmb3IgYWxsIEFQcyB1bnRpbCB0aW1lb3V0Lg0KPiANCj4gKw0KPiANCj4gKyoqLw0KPiAN Cj4gK0VGSV9TVEFUVVMNCj4gDQo+ICtFRklBUEkNCj4gDQo+ICtTbW1XYWl0Rm9yQWxsUHJvY2Vz c29yICgNCj4gDQo+ICsgIElOIEVES0lJX1NNTV9DUFVfUkVOREVaVk9VU19QUk9UT0NPTCAgKlRo aXMsDQo+IA0KPiArICBJTiBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJsb2Nr aW5nTW9kZQ0KPiANCj4gKyAgKQ0KPiANCj4gK3sNCj4gDQo+ICsgIEVGSV9TVEFUVVMgIFN0YXR1 czsNCj4gDQo+ICsNCj4gDQo+ICsgIC8vDQo+IA0KPiArICAvLyBSZXR1cm4gc3VjY2VzcyBpbW1l ZGlhdGVseSBpZiBhbGwgQ1BVcyBhcmUgYWxyZWFkeSBzeW5jaHJvbml6ZWQuDQo+IA0KPiArICAv Lw0KPiANCj4gKyAgaWYgKG1TbW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRXaXRoRXhjZXB0aW9u KSB7DQo+IA0KPiArICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiANCj4gKyAgICBnb3RvIE9O X0VYSVQ7DQo+IA0KPiArICB9DQo+IA0KPiArDQo+IA0KPiArICBpZiAoIUJsb2NraW5nTW9kZSkg ew0KPiANCj4gKyAgICBTdGF0dXMgPSBFRklfVElNRU9VVDsNCj4gDQo+ICsgICAgZ290byBPTl9F WElUOw0KPiANCj4gKyAgfQ0KPiANCj4gKw0KPiANCj4gKyAgLy8NCj4gDQo+ICsgIC8vIFRoZXJl IGFyZSBzb21lIEFQcyBvdXRzaWRlIFNNTSwgV2FpdCBmb3IgYWxsIGF2YWlhYmxlIEFQcyB0byBh cnJpdmUuDQo+IA0KPiArICAvLw0KPiANCj4gKyAgU21tV2FpdEZvckFwQXJyaXZhbCAoQmxvY2tp bmdNb2RlKTsNCj4gDQo+ICsgIFN0YXR1cyA9IG1TbW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRX aXRoRXhjZXB0aW9uID8gRUZJX1NVQ0NFU1MgOg0KPiBFRklfVElNRU9VVDsNCj4gDQo+ICsNCj4g DQo+ICtPTl9FWElUOg0KPiANCj4gKyAgaWYgKCFtU21tTXBTeW5jRGF0YS0+QWxsQXBBcnJpdmVk V2l0aEV4Y2VwdGlvbikgew0KPiANCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJFZGtpaVNt bVdhaXRGb3JBbGxBcEFycml2YWw6IFRpbWVvdXQgdG8gd2FpdCBhbGwNCj4gQVBzIGFycml2YWxc biIpKTsNCj4gDQo+ICsgIH0NCj4gDQo+ICsNCj4gDQo+ICsgIHJldHVybiBTdGF0dXM7DQo+IA0K PiArfQ0KPiANCj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2 aWNlLmMNCj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL01wU2VydmljZS5jDQo+IGluZGV4 IDg4MmRlZTRmZTI0Ni4uNmE4NjkzZGFlOTg5IDEwMDY0NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL1Bp U21tQ3B1RHhlU21tL01wU2VydmljZS5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVT bW0vTXBTZXJ2aWNlLmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAvKiogQGZpbGUNCj4gDQo+ICBT TU0gTVAgc2VydmljZSBpbXBsZW1lbnRhdGlvbg0KPiANCj4gDQo+IA0KPiAtQ29weXJpZ2h0IChj KSAyMDA5IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiANCj4gK0NvcHlyaWdodCAoYykgMjAwOSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJ bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiANCj4gDQo+IA0KPiAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gDQo+IEBAIC0yNjEs NyArMjYxLDcgQEAgSXNMbWNlU2lnbmFsZWQgKA0KPiAgKiovDQo+IA0KPiAgVk9JRA0KPiANCj4g IFNtbVdhaXRGb3JBcEFycml2YWwgKA0KPiANCj4gLSAgVk9JRA0KPiANCj4gKyAgSU4gQk9PTEVB TiAgQmxvY2tpbmdNb2RlDQpEbyB3ZSByZWFsbHkgbmVlZCB0byBhZGQgdGhlIHBhcmFtZXRlciBC bG9ja2luZ01vZGUgZm9yIHRoaXMgZnVuY3Rpb24/IEkgZm91bmQNCml0J3Mgc2V0IHRvIEZBTFNF IGluIGFsbCB0aGUgY29kZSBwYXRoLg0KDQpUaGFua3MuDQoNCj4gDQo+ICAgICkNCj4gDQo+ICB7 DQo+IA0KPiAgICBVSU5UNjQgICBUaW1lcjsNCj4gDQo+IEBAIC0yNzEsNiArMjcxLDEzIEBAIFNt bVdhaXRGb3JBcEFycml2YWwgKA0KPiANCj4gDQo+ICAgIEFTU0VSVCAoKm1TbW1NcFN5bmNEYXRh LT5Db3VudGVyIDw9IG1OdW1iZXJPZkNwdXMpOw0KPiANCj4gDQo+IA0KPiArICAvLw0KPiANCj4g KyAgLy8gSWYgYmxvY2sgaXMgRmFsc2UsIGRvIG5vdCB3YWl0IGFuZCByZXR1cm4gaW1tZWRpYXRl bHkuDQo+IA0KPiArICAvLw0KPiANCj4gKyAgaWYgKCFCbG9ja2luZ01vZGUpIHsNCj4gDQo+ICsg ICAgcmV0dXJuOw0KPiANCj4gKyAgfQ0KPiANCj4gKw0KPiANCj4gICAgTG1jZUVuICAgICA9IEZB TFNFOw0KPiANCj4gICAgTG1jZVNpZ25hbCA9IEZBTFNFOw0KPiANCj4gICAgaWYgKG1NYWNoaW5l Q2hlY2tTdXBwb3J0ZWQpIHsNCj4gDQo+IEBAIC01MTEsNyArNTE4LDcgQEAgQlNQSGFuZGxlciAo DQo+ICAgICAgLy8NCj4gDQo+ICAgICAgLy8gV2FpdCBmb3IgQVBzIHRvIGFycml2ZQ0KPiANCj4g ICAgICAvLw0KPiANCj4gLSAgICBTbW1XYWl0Rm9yQXBBcnJpdmFsICgpOw0KPiANCj4gKyAgICBT bW1XYWl0Rm9yQXBBcnJpdmFsIChUUlVFKTsNCj4gDQo+IA0KPiANCj4gICAgICAvLw0KPiANCj4g ICAgICAvLyBMb2NrIHRoZSBjb3VudGVyIGRvd24gYW5kIHJldHJpZXZlIHRoZSBudW1iZXIgb2Yg QVBzDQo+IA0KPiBAQCAtMTg4Nyw2ICsxODk0LDggQEAgSW5pdGlhbGl6ZU1wU3luY0RhdGEgKA0K PiAgICAgICptU21tTXBTeW5jRGF0YS0+SW5zaWRlU21tICAgICA9IEZBTFNFOw0KPiANCj4gICAg ICAqbVNtbU1wU3luY0RhdGEtPkFsbENwdXNJblN5bmMgPSBGQUxTRTsNCj4gDQo+IA0KPiANCj4g KyAgICBtU21tTXBTeW5jRGF0YS0+QWxsQXBBcnJpdmVkV2l0aEV4Y2VwdGlvbiA9IEZBTFNFOw0K PiANCj4gKw0KPiANCj4gICAgICBmb3IgKENwdUluZGV4ID0gMDsgQ3B1SW5kZXggPCBnU21tQ3B1 UHJpdmF0ZS0NCj4gPlNtbUNvcmVFbnRyeUNvbnRleHQuTnVtYmVyT2ZDcHVzOyBDcHVJbmRleCsr KSB7DQo+IA0KPiAgICAgICAgbVNtbU1wU3luY0RhdGEtPkNwdURhdGFbQ3B1SW5kZXhdLkJ1c3kg PQ0KPiANCj4gICAgICAgICAgKFNQSU5fTE9DSyAqKSgoVUlOVE4pbVNtbUNwdVNlbWFwaG9yZXMu U2VtYXBob3JlQ3B1LkJ1c3kgKw0KPiBtU2VtYXBob3JlU2l6ZSAqIENwdUluZGV4KTsNCj4gDQo+ IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0luY2x1ZGUvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3Vz TGliLmgNCj4gYi9VZWZpQ3B1UGtnL0luY2x1ZGUvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGli LmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5kMGE5ODdk YzdkMGENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9VZWZpQ3B1UGtnL0luY2x1ZGUvTGlicmFy eS9TbW1DcHVSZW5kZXp2b3VzTGliLmgNCj4gQEAgLTAsMCArMSwyNyBAQA0KPiArLyoqIEBmaWxl DQo+IA0KPiArICBTTU0gQ1BVIFJlbmRlenZvdXMgbGlicmFyeSBoZWFkZXIgZmlsZS4NCj4gDQo+ ICsNCj4gDQo+ICsgIENvcHlyaWdodCAoYykgMjAyMSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiArDQo+IA0KPiArKiovDQo+IA0KPiArDQo+ IA0KPiArI2lmbmRlZiBTTU1fQ1BVX1JFTkRFWlZPVVNfSF8NCj4gDQo+ICsjZGVmaW5lIFNNTV9D UFVfUkVOREVaVk9VU19IXw0KPiANCj4gKw0KPiANCj4gKy8qKg0KPiANCj4gKyAgVGhpcyByb3V0 aW5lIHdhaXQgZm9yIGFsbCBBUCBwcm9jZXNzb3JzIHRvIGFycml2ZSBpbiBTTU0uDQo+IA0KPiAr DQo+IA0KPiArICBAcGFyYW1baW5dICBCbG9ja2luZ01vZGUgIEJsb2NraW5nIG1vZGUgb3Igbm9u LWJsb2NraW5nIG1vZGUuDQo+IA0KPiArDQo+IA0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAg ICAgIEFsbCBwcm9jZXNzb3JzIGNoZWNrZWQgaW4gdG8gU01NLg0KPiANCj4gKyAgQHJldHZhbCBF RklfVElNRU9VVCAgICAgICBXYWl0IGZvciBhbGwgQVBzIHVudGlsIHRpbWVvdXQuDQo+IA0KPiAr DQo+IA0KPiArKiovDQo+IA0KPiArRUZJX1NUQVRVUw0KPiANCj4gK0VGSUFQSQ0KPiANCj4gK1Nt bVdhaXRGb3JBbGxQcm9jZXNzb3IgKA0KPiANCj4gKyAgSU4gIEJPT0xFQU4gIEJsb2NraW5nTW9k ZQ0KPiANCj4gKyAgKTsNCj4gDQo+ICsNCj4gDQo+ICsjZW5kaWYNCj4gDQo+IGRpZmYgLS1naXQg YS9VZWZpQ3B1UGtnL0luY2x1ZGUvUHJvdG9jb2wvU21tQ3B1U2VydmljZS5oDQo+IGIvVWVmaUNw dVBrZy9JbmNsdWRlL1Byb3RvY29sL1NtbUNwdVNlcnZpY2UuaA0KPiBpbmRleCA5NTI3NjdhZmNl NzUuLjNkOTNkMjQzNDA5YyAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9JbmNsdWRlL1Byb3Rv Y29sL1NtbUNwdVNlcnZpY2UuaA0KPiArKysgYi9VZWZpQ3B1UGtnL0luY2x1ZGUvUHJvdG9jb2wv U21tQ3B1U2VydmljZS5oDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAg U01NIENQVSBTZXJ2aWNlIHByb3RvY29sIGRlZmluaXRpb24uDQo+IA0KPiANCj4gDQo+IC1Db3B5 cmlnaHQgKGMpIDIwMTMgLSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+IA0KPiArQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAyMiwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiANCj4gIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiANCj4gDQo+ICAqKi8NCj4gDQo+IEBA IC0yMDAsNCArMjAwLDM4IEBAIHN0cnVjdCBfRUZJX1NNTV9DUFVfU0VSVklDRV9QUk9UT0NPTCB7 DQo+IA0KPiANCj4gIGV4dGVybiBFRklfR1VJRCAgZ0VmaVNtbUNwdVNlcnZpY2VQcm90b2NvbEd1 aWQ7DQo+IA0KPiANCj4gDQo+ICsvLw0KPiANCj4gKy8vICBFREtJSV9TTU1fQ1BVX1JFTkRFWlZP VVNfUFJPVE9DT0wgcHJvdmlkZSBTTU0gQ1BVDQo+IA0KPiArLy8gIHJlbmRlenZvdXMgc2Vydmlj ZSBzdXBwb3J0Lg0KPiANCj4gKy8vDQo+IA0KPiArI2RlZmluZSBFREtJSV9TTU1fQ1BVX1JFTkRF WlZPVVNfUFJPVE9DT0xfR1VJRCBcDQo+IA0KPiArICB7IFwNCj4gDQo+ICsgICAgMHhhYTAwZDUw YiwgMHg0OTExLCAweDQyOGYsIHsgMHhiOSwgMHgxYSwgMHhhNSwgMHg5ZCwgMHhkYiwgMHgxMywg MHhlMiwNCj4gMHg0YyB9IFwNCj4gDQo+ICsgIH0NCj4gDQo+ICsNCj4gDQo+ICt0eXBlZGVmIHN0 cnVjdCBfRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MDQo+IEVES0lJX1NNTV9DUFVf UkVOREVaVk9VU19QUk9UT0NPTDsNCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFdhaXQg Zm9yIGFsbCBBUHMgdG8gYXJyaXZlIFNNTSBtb2RlIGluIGdpdmVuIHRpbWVvdXQgY29uc3RyYWlu dC4NCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbVtpbl0gIFRoaXMgICAgICAgICAgICAgICAgICBB IHBvaW50ZXIgdG8gdGhlDQo+IEVES0lJX1NNTV9DUFVfUkVOREVaVk9VU19QUk9UT0NPTCBpbnN0 YW5jZS4NCj4gDQo+ICsgIEBwYXJhbVtpbl0gIEJsb2NraW5nTW9kZSAgICAgICAgICBCbG9jayBv ciBub24tYmxvY2sgbW9kZS4NCj4gDQo+ICsNCj4gDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1Mg ICAgICAgICAgICAgICBBbGwgQVBzIGhhdmUgYXJyaXZlZCBTTU0gbW9kZSBleGNlcHQgU01JDQo+ IGRpc2FibGVkIEFQcy4NCj4gDQo+ICsgIEByZXR2YWwgRUZJX1RJTUVPVVQgICAgICAgICAgICAg ICBUaGVyZSBhcmUgQVBzIG5vdCBpbiBTTU0gbW9kZSBpbiBnaXZlbg0KPiB0aW1lb3V0IGNvbnN0 cmFpbnQuDQo+IA0KPiArDQo+IA0KPiArKiovDQo+IA0KPiArdHlwZWRlZg0KPiANCj4gK0VGSV9T VEFUVVMNCj4gDQo+ICsoRUZJQVBJICpFREtJSV9XQUlUX0ZPUl9BTExfUFJPQ0VTU09SKSgNCj4g DQo+ICsgIElOICBFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0wgICpUaGlzLA0KPiAN Cj4gKyAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2tpbmdNb2Rl DQo+IA0KPiArICApOw0KPiANCj4gKw0KPiANCj4gK3N0cnVjdCBfRURLSUlfU01NX0NQVV9SRU5E RVpWT1VTX1BST1RPQ09MIHsNCj4gDQo+ICsgIEVES0lJX1dBSVRfRk9SX0FMTF9QUk9DRVNTT1Ig ICAgV2FpdEZvckFsbFByb2Nlc3NvcjsNCj4gDQo+ICt9Ow0KPiANCj4gKw0KPiANCj4gK2V4dGVy biBFRklfR1VJRCAgZ0Vka2lpU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sR3VpZDsNCj4gDQo+ICsN Cj4gDQo+ICAjZW5kaWYNCj4gDQo+IGRpZmYgLS1naXQNCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkv U21tQ3B1UmVuZGV6dm91c0xpYi9TbW1DcHVSZW5kZXp2b3VzTGliLmluZg0KPiBiL1VlZmlDcHVQ a2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlenZvdXNMaWIuaW5mDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNzY4OTZhNWIwZTFh DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRl enZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5pbmYNCj4gQEAgLTAsMCArMSwzNSBAQA0KPiAr IyMgQGZpbGUNCj4gDQo+ICsjIFNNTSBDUFUgUmVuZGV6dm91cyBzZXJ2aWNlIGxpYi4NCj4gDQo+ ICsjDQo+IA0KPiArIyBUaGlzIGlzIFNNTSBDUFUgcmVuZGV6dm91cyBzZXJ2aWNlIGxpYiB0aGF0 IHdhaXQgZm9yIGFsbA0KPiANCj4gKyMgQVBzIHRvIGVudGVyIFNNTSBtb2RlLg0KPiANCj4gKyMN Cj4gDQo+ICsjIENvcHlyaWdodCAoYykgMjAyMSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiArIw0KPiANCj4gKyMjDQo+IA0KPiArDQo+IA0K PiArW0RlZmluZXNdDQo+IA0KPiArICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAw eDAwMDEwMDA1DQo+IA0KPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBTbW1D cHVSZW5kZXp2b3VzTGliDQo+IA0KPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAg PSAxNTA5QmIzNi05QmE0LTQzOEItQjE5NS1BYzU5MTREYjE0RTINCj4gDQo+ICsgIE1PRFVMRV9U WVBFICAgICAgICAgICAgICAgICAgICA9IERYRV9TTU1fRFJJVkVSDQo+IA0KPiArICBMSUJSQVJZ X0NMQVNTICAgICAgICAgICAgICAgICAgPSBTbW1DcHVSZW5kZXp2b3VzTGlifE1NX1NUQU5EQUxP TkUNCj4gRFhFX1NNTV9EUklWRVINCj4gDQo+ICsNCj4gDQo+ICtbU291cmNlc10NCj4gDQo+ICsg IFNtbUNwdVJlbmRlenZvdXNMaWIuYw0KPiANCj4gKw0KPiANCj4gK1tQYWNrYWdlc10NCj4gDQo+ ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+IA0KPiArICBVZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVj DQo+IA0KPiArDQo+IA0KPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiANCj4gKyAgQmFzZUxpYg0KPiAN Cj4gKyAgRGVidWdMaWINCj4gDQo+ICsgIE1tU2VydmljZXNUYWJsZUxpYg0KPiANCj4gKw0KPiAN Cj4gK1tQY2RdDQo+IA0KPiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbUFw U3luY1RpbWVvdXQgICAgICAgICAgICAgICAgICMjDQo+IENPTlNVTUVTDQo+IA0KPiArDQo+IA0K PiArW1Byb3RvY29sc10NCj4gDQo+ICsgIGdFZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90b2NvbEd1 aWQNCj4gDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1 RHhlU21tLmgNCj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgN Cj4gaW5kZXggMjZkMDdjNWI1ZWEwLi4xOTYwYmI0MDE1ZWYgMTAwNjQ0DQo+IC0tLSBhL1VlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KPiArKysgYi9VZWZpQ3B1UGtn L1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAv KiogQGZpbGUNCj4gDQo+ICBBZ2VudCBNb2R1bGUgdG8gbG9hZCBvdGhlciBtb2R1bGVzIHRvIGRl cGxveSBTTU0gRW50cnkgVmVjdG9yIGZvciBYODYgQ1BVLg0KPiANCj4gDQo+IA0KPiAtQ29weXJp Z2h0IChjKSAyMDA5IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiANCj4gK0NvcHlyaWdodCAoYykgMjAwOSAtIDIwMjIsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICBDb3B5cmlnaHQgKGMpIDIwMTcs IEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiANCj4gDQo+IA0K PiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gDQo+IEBA IC00MjgsNiArNDI4LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICB2b2xhdGlsZSBTTU1fQ1BV X1NZTkNfTU9ERSAgICBFZmZlY3RpdmVTeW5jTW9kZTsNCj4gDQo+ICAgIHZvbGF0aWxlIEJPT0xF QU4gICAgICAgICAgICAgIFN3aXRjaEJzcDsNCj4gDQo+ICAgIHZvbGF0aWxlIEJPT0xFQU4gICAg ICAgICAgICAgICpDYW5kaWRhdGVCc3A7DQo+IA0KPiArICB2b2xhdGlsZSBCT09MRUFOICAgICAg ICAgICAgICBBbGxBcEFycml2ZWRXaXRoRXhjZXB0aW9uOw0KPiANCj4gICAgRUZJX0FQX1BST0NF RFVSRSAgICAgICAgICAgICAgU3RhcnR1cFByb2NlZHVyZTsNCj4gDQo+ICAgIFZPSUQgICAgICAg ICAgICAgICAgICAgICAgICAgICpTdGFydHVwUHJvY0FyZ3M7DQo+IA0KPiAgfSBTTU1fRElTUEFU Q0hFUl9NUF9TWU5DX0RBVEE7DQo+IA0KPiBAQCAtMTQ4OCw0ICsxNDg5LDMxIEBAIElzUmVzdHJp Y3RlZE1lbW9yeUFjY2VzcyAoDQo+ICAgIFZPSUQNCj4gDQo+ICAgICk7DQo+IA0KPiANCj4gDQo+ ICsvKioNCj4gDQo+ICsgIENob29zZSBibG9ja2luZyBvciBub24tYmxvY2tpbmcgbW9kZSB0byBX YWl0IGZvciBhbGwgQVBzLg0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtW2luXSAgVGhpcyAgICAg ICAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUNCj4gRURLSUlfU01NX0NQVV9SRU5ERVpWT1VT X1BST1RPQ09MIGluc3RhbmNlLg0KPiANCj4gKyAgQHBhcmFtW2luXSAgQmxvY2tpbmdNb2RlICAg ICAgICAgIEJsb2NraW5nIG9yIG5vbi1ibG9ja2luZyBtb2RlLg0KPiANCj4gKw0KPiANCj4gKyAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgIEFsbCBBUHMgaGF2ZSBhcnJpdmVkIFNN TSBtb2RlIGV4Y2VwdCBTTUkNCj4gZGlzYWJsZWQgQVBzLg0KPiANCj4gKyAgQHJldHZhbCBFRklf VElNRU9VVCAgICAgICAgICAgICAgIFRoZXJlIGFyZSBBUHMgbm90IGluIFNNTSBtb2RlIGluIGdp dmVuDQo+IHRpbWVvdXQgY29uc3RyYWludC4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtF RklfU1RBVFVTDQo+IA0KPiArRUZJQVBJDQo+IA0KPiArU21tV2FpdEZvckFsbFByb2Nlc3NvciAo DQo+IA0KPiArICBJTiAgRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MICAqVGhpcywN Cj4gDQo+ICsgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NraW5n TW9kZQ0KPiANCj4gKyAgKTsNCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIENob29zZSBi bG9ja2luZyBvciBub24tYmxvY2tpbmcgbW9kZSB0byB3YWl0IGZvciBhbGwgQVBzLiBUcnVlIGZv ciBCbG9ja2luZw0KPiBhbmQgZmFsc2UgZm9yIG5vdC4NCj4gDQo+ICsgIEluc3VyZSB3aGVuIHRo aXMgZnVuY3Rpb24gcmV0dXJucywgbm8gQVAgd2lsbCBleGVjdXRlIG5vcm1hbCBtb2RlIGNvZGUN Cj4gYmVmb3JlIGVudGVyaW5nIFNNTSwgZXhjZXB0IFNNSSBkaXNhYmxlZCBBUHMuDQo+IA0KPiAr DQo+IA0KPiArKiovDQo+IA0KPiArVk9JRA0KPiANCj4gK1NtbVdhaXRGb3JBcEFycml2YWwgKA0K PiANCj4gKyAgSU4gIEJPT0xFQU4gIEJsb2NraW5nTW9kZQ0KPiANCj4gKyAgKTsNCj4gDQo+ICsN Cj4gDQo+ICAjZW5kaWYNCj4gDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhl U21tL1BpU21tQ3B1RHhlU21tLmluZg0KPiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlT bW1DcHVEeGVTbW0uaW5mDQo+IGluZGV4IDBlODgwNzFjNzA3OS4uZGVlZjAwZjljNmU5IDEwMDY0 NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmluZg0K PiArKysgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmluZg0KPiBA QCAtNCw3ICs0LDcgQEANCj4gICMgVGhpcyBTTU0gZHJpdmVyIHBlcmZvcm1zIFNNTSBpbml0aWFs aXphdGlvbiwgZGVwbG95IFNNTSBFbnRyeSBWZWN0b3IsDQo+IA0KPiAgIyBwcm92aWRlcyBDUFUg c3BlY2lmaWMgc2VydmljZXMgaW4gU01NLg0KPiANCj4gICMNCj4gDQo+IC0jIENvcHlyaWdodCAo YykgMjAwOSAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gDQo+ICsjIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICAjIENvcHlyaWdodCAoYykgMjAxNywg QU1EIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiAgIw0KPiAN Cj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gDQo+ IEBAIC0xMDcsNyArMTA3LDggQEANCj4gICAgZ0VmaVNtbVJlYWR5VG9Mb2NrUHJvdG9jb2xHdWlk ICAgICAgICAgICAjIyBOT1RJRlkNCj4gDQo+ICAgIGdFZmlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xH dWlkICAgICAgICAgICAgIyMgUFJPRFVDRVMNCj4gDQo+ICAgIGdFZGtpaVNtbU1lbW9yeUF0dHJp YnV0ZVByb3RvY29sR3VpZCAgICAgIyMgUFJPRFVDRVMNCj4gDQo+IC0gIGdFZmlNbU1wUHJvdG9j b2xHdWlkICAgICAgICAgICAgICAgICAgICAjIyBQUk9EVUNFUw0KPiANCj4gKyAgZ0VmaU1tTXBQ cm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICAjIyBQUk9EVUNFUw0KPiANCj4gKyAgZ0Vk a2lpU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sR3VpZCAgICAgICAjIyBQUk9EVUNFUw0KPiANCj4g DQo+IA0KPiAgW0d1aWRzXQ0KPiANCj4gICAgZ0VmaUFjcGlWYXJpYWJsZUd1aWQgICAgICAgICAg ICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMgSE9CICMgaXQgaXMNCj4gdXNlZCBm b3IgUzMgYm9vdC4NCj4gDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVj IGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYw0KPiBpbmRleCA3ZGU2NmZkZTY3NGMuLjUyNWNk ZTQ2MzQzNSAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYw0KPiArKysg Yi9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgIyMgQGZp bGUgIFVlZmlDcHVQa2cuZGVjDQo+IA0KPiAgIyBUaGlzIFBhY2thZ2UgcHJvdmlkZXMgVUVGSSBj b21wYXRpYmxlIENQVSBtb2R1bGVzIGFuZCBsaWJyYXJpZXMuDQo+IA0KPiAgIw0KPiANCj4gLSMg Q29weXJpZ2h0IChjKSAyMDA3IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiANCj4gKyMgQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAyMiwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiANCj4gICMNCj4gDQo+ICAj IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiAgIw0K PiANCj4gQEAgLTYyLDYgKzYyLDkgQEANCj4gICAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVz IGZ1bmN0aW9uIGZvciBsb2FkaW5nIG1pY3JvY29kZS4NCj4gDQo+ICAgIE1pY3JvY29kZUxpYnxJ bmNsdWRlL0xpYnJhcnkvTWljcm9jb2RlTGliLmgNCj4gDQo+IA0KPiANCj4gKyAgIyMgQGxpYnJh cnljbGFzcyAgUHJvdmlkZXMgZnVuY3Rpb24gZm9yIFNNTSBDUFUgUmVuZGV6dm91cyBMaWJyYXJ5 Lg0KPiANCj4gKyAgU21tQ3B1UmVuZGV6dm91c0xpYnxJbmNsdWRlL0xpYnJhcnkvU21tQ3B1UmVu ZGV6dm91c0xpYi5oDQo+IA0KPiArDQo+IA0KPiAgW0d1aWRzXQ0KPiANCj4gICAgZ1VlZmlDcHVQ a2dUb2tlblNwYWNlR3VpZCAgICAgID0geyAweGFjMDViZjMzLCAweDk5NWEsIDB4NGVkNCwgeyAw eGFhLCAweGI4LA0KPiAweGVmLCAweDdhLCAweGU4LCAweGYsIDB4NWMsIDB4YjAgfX0NCj4gDQo+ ICAgIGdNc2VnU21yYW1HdWlkICAgICAgICAgICAgICAgICA9IHsgMHg1ODAyYmNlNCwgMHhlZWVl LCAweDRlMzMsIHsgMHhhMSwgMHgzMCwNCj4gMHhlYiwgMHhhZCwgMHgyNywgMHhmMCwgMHhlNCwg MHgzOSB9fQ0KPiANCj4gQEAgLTc3LDcgKzgwLDggQEANCj4gDQo+IA0KPiAgW1Byb3RvY29sc10N Cj4gDQo+ICAgICMjIEluY2x1ZGUvUHJvdG9jb2wvU21tQ3B1U2VydmljZS5oDQo+IA0KPiAtICBn RWZpU21tQ3B1U2VydmljZVByb3RvY29sR3VpZCAgPSB7IDB4MWQyMDJjYWIsIDB4YzhhYiwgMHg0 ZDVjLCB7IDB4OTQsDQo+IDB4ZjcsIDB4M2MsIDB4ZmMsIDB4YzAsIDB4ZDMsIDB4ZDMsIDB4MzUg fX0NCj4gDQo+ICsgIGdFZmlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xHdWlkICAgPSB7IDB4MWQyMDJj YWIsIDB4YzhhYiwgMHg0ZDVjLCB7IDB4OTQsDQo+IDB4ZjcsIDB4M2MsIDB4ZmMsIDB4YzAsIDB4 ZDMsIDB4ZDMsIDB4MzUgfX0NCj4gDQo+ICsgIGdFZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90b2Nv bEd1aWQgPSB7IDB4YWEwMGQ1MGIsIDB4NDkxMSwgMHg0MjhmLA0KPiB7IDB4YjksIDB4MWEsIDB4 YTUsIDB4OWQsIDB4ZGIsIDB4MTMsIDB4ZTIsIDB4NGMgfX0NCj4gDQo+IA0KPiANCj4gICAgIyMg SW5jbHVkZS9Qcm90b2NvbC9TbU1vbml0b3JJbml0LmgNCj4gDQo+ICAgIGdFZmlTbU1vbml0b3JJ bml0UHJvdG9jb2xHdWlkICA9IHsgMHgyMjhmMzQ0ZCwgMHhiM2RlLCAweDQzYmIsIHsgMHhhNCwg MHhkNywNCj4gMHhlYSwgMHgyMCwgMHhiLCAweDFiLCAweDE0LCAweDgyIH19DQo+IA0KPiBkaWZm IC0tZ2l0IGEvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRzYyBiL1VlZmlDcHVQa2cvVWVmaUNwdVBr Zy5kc2MNCj4gaW5kZXggZDFkNjFkZDZhMDNiLi5hMGJiZGU5OTg1ZDMgMTAwNjQ0DQo+IC0tLSBh L1VlZmlDcHVQa2cvVWVmaUNwdVBrZy5kc2MNCj4gKysrIGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtn LmRzYw0KPiBAQCAtNjEsNiArNjEsNyBAQA0KPiANCj4gVHBtTWVhc3VyZW1lbnRMaWJ8TWRlTW9k dWxlUGtnL0xpYnJhcnkvVHBtTWVhc3VyZW1lbnRMaWJOdWxsL1RwbU0NCj4gZWFzdXJlbWVudExp Yk51bGwuaW5mDQo+IA0KPiAgICBWbWdFeGl0TGlifFVlZmlDcHVQa2cvTGlicmFyeS9WbWdFeGl0 TGliTnVsbC9WbWdFeGl0TGliTnVsbC5pbmYNCj4gDQo+ICAgIE1pY3JvY29kZUxpYnxVZWZpQ3B1 UGtnL0xpYnJhcnkvTWljcm9jb2RlTGliL01pY3JvY29kZUxpYi5pbmYNCj4gDQo+ICsNCj4gU21t Q3B1UmVuZGV6dm91c0xpYnxVZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi9T bW1DcHVSDQo+IGVuZGV6dm91c0xpYi5pbmYNCj4gDQo+IA0KPiANCj4gIFtMaWJyYXJ5Q2xhc3Nl cy5jb21tb24uU0VDXQ0KPiANCj4gICAgUGxhdGZvcm1TZWNMaWJ8VWVmaUNwdVBrZy9MaWJyYXJ5 L1BsYXRmb3JtU2VjTGliTnVsbC9QbGF0Zm9ybVNlY0xpYk51bGwuaW5mDQo+IA0KPiBAQCAtMTcz LDYgKzE3NCw3IEBADQo+ICAgIH0NCj4gDQo+ICAgIFVlZmlDcHVQa2cvVW5pdmVyc2FsL0FjcGkv UzNSZXN1bWUyUGVpL1MzUmVzdW1lMlBlaS5pbmYNCj4gDQo+ICAgIFVlZmlDcHVQa2cvUmVzZXRW ZWN0b3IvVnRmMC9CaW4vUmVzZXRWZWN0b3IuaW5mDQo+IA0KPiArICBVZWZpQ3B1UGtnL0xpYnJh cnkvU21tQ3B1UmVuZGV6dm91c0xpYi9TbW1DcHVSZW5kZXp2b3VzTGliLmluZg0KPiANCj4gDQo+ IA0KPiAgW0J1aWxkT3B0aW9uc10NCj4gDQo+ICAgICpfKl8qX0NDX0ZMQUdTID0gLUQgRElTQUJM RV9ORVdfREVQUkVDQVRFRF9JTlRFUkZBQ0VTDQo+IA0KPiAtLQ0KPiAyLjI2LjIud2luZG93cy4x DQo+IA0KPiANCj4gDQo+IA0KPiANCg0K