From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by sourceware.org (Postfix) with ESMTPS id A88053858D32 for ; Fri, 10 Nov 2023 05:44:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A88053858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A88053858D32 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.55.52.151 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699595049; cv=pass; b=uuxqsjfNKrR1WG3r/yx5/2gxqEjadTbyWWr64gVxmRhu910LqOwPgsg3kXXzPYC/dlbjTq9Glr3nuBlqX3DsPmkHpKyKGVmwLxWttJfKoRODC9QUBQPnUmb9n3aMN3qGr7Y9RjeCSH8s7yTRVyVKwMwaejZeTHgc1vGLa0V0pnA= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699595049; c=relaxed/simple; bh=8V2YVgnqaEP7euTzlA/XDJIZ4bPLIYpYMmVNYuJbUrU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=cU/Qx912SyoXwQpXCW6fYfco/bILGz1J+vYzx1O4UDrPvblAm/9/YRQjVMA+6TLO693dpCgvANmHCt31o8EiSVK8KO8tp0lR5WAdbNkLH0G7FiniOz78p5VEZgXffB9rOnt48Tvsz2Ten299+YmtOk8lsjli/6p0WuRZ3xFta3Y= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1699595046; x=1731131046; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=8V2YVgnqaEP7euTzlA/XDJIZ4bPLIYpYMmVNYuJbUrU=; b=Dceaf+NOWS1dZBFk8Upb5T+htLdAvr3aUed8kvuG6y2wGhUA0gWN3zFS 96CcblhmiQIKR0p2OJtP3EbtptWyw8HBLJfL3DlhMfECZn1TWQTFwxz3L 1WBRaL7UmZM8bOnE6S70r5vTWXuwxVU9fZjN2cArafbBGOgO2N9iICatF XUd0S0v+OeKsojBG5g4GcGeJdUr6QOXM1g77wQskZSuq87H7+Ivg/VTas Jqvw1faVX1sqWlxKqNngtLTJOC0ZyFwrOFbNZKbM5hmwrBYgRGKhXxUiu NpgrIzmdVTvieUarhx3EVW0oWFu1F0CWx1x6V0HmIumg87MulnVY5JhTI w==; X-IronPort-AV: E=McAfee;i="6600,9927,10889"; a="370343057" X-IronPort-AV: E=Sophos;i="6.03,291,1694761200"; d="scan'208";a="370343057" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2023 21:44:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10889"; a="1095100461" X-IronPort-AV: E=Sophos;i="6.03,291,1694761200"; d="scan'208";a="1095100461" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 09 Nov 2023 21:44:03 -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.2507.34; Thu, 9 Nov 2023 21:44:03 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Thu, 9 Nov 2023 21:44:03 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) 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.2507.34; Thu, 9 Nov 2023 21:44:02 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aPtyJiVGhKTYwSAlEIWsgbEiAaRgqZZL8IRxOyNSxkdDfrEOCDnL9B4oygJfxAQVB33LGKLW1ooL8Oxr6+rzvPa69eM7l0BG91wcwnoZygca1bE/tg9Dnz3L88WWMIvFRML/KohEA+j8fGfbD0JWDyC2CCNyux9uxPkrIEa1iD4HD8qv+wlVzzNLEFpZhDCCqX4RTVmbWB0S2Khpto58E6qdW9900401VZ8jVp5xO3aLFOS9tyOP7be2YC4xphn0Gx0mjwMyNGsfLHXfhq0Yk/gfwgonsH2mYJAmnjDirinZY1HNgp26otSyZd+IM5E97YELOn84MZfTaQW/3jCycQ== 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=8V2YVgnqaEP7euTzlA/XDJIZ4bPLIYpYMmVNYuJbUrU=; b=cLgdY2RA7Alv5jBcB37ajWJwoW8hO1Qlcb9RXrGTWG4p44UilO3LXKesdlTroMI0sLFVvQKFl6I8P7mjcM1e/RJOe9+sfuWXRA9FNlgBuNfCDtRU9CH8BWrkg1AuRQaYzmbLXdtiuFUsXJiRzdCAZVplHK7/4osE5mz2NrZ4CrurSE7xUpKY+uh25i6yQPsaOdgTh+iU+CkQ74rMq6hP/1EMZCB7XukrqP4PtQjYTQI94uM3ArocpEj2wKyqm1etR/r/siJsZSc25kHRlaBg4neMZZgYWMVCNF/EYe5gMR/A3nk8ql6fVYDlqP2edtUon8a9DnHw/NltZa6trfe5uQ== 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 SJ0PR11MB5940.namprd11.prod.outlook.com (2603:10b6:a03:42f::18) by PH0PR11MB4870.namprd11.prod.outlook.com (2603:10b6:510:34::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.18; Fri, 10 Nov 2023 05:43:59 +0000 Received: from SJ0PR11MB5940.namprd11.prod.outlook.com ([fe80::8a10:338f:c17e:dd7f]) by SJ0PR11MB5940.namprd11.prod.outlook.com ([fe80::8a10:338f:c17e:dd7f%7]) with mapi id 15.20.6954.029; Fri, 10 Nov 2023 05:43:59 +0000 From: "Hu, Lin1" To: "Beulich, Jan" , "Cui, Lili" CC: "Lu, Hongjiu" , "ccoutant@gmail.com" , "binutils@sourceware.org" Subject: RE: [PATCH 7/8] Support APX NDD optimized encoding. Thread-Topic: [PATCH 7/8] Support APX NDD optimized encoding. Thread-Index: AQHaDX/bY3NWB3vRSUSaY4murTglurBx1hqAgAD3UBA= Date: Fri, 10 Nov 2023 05:43:59 +0000 Message-ID: References: <20231102112911.2372810-1-lili.cui@intel.com> <20231102112911.2372810-8-lili.cui@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR11MB5940:EE_|PH0PR11MB4870:EE_ x-ms-office365-filtering-correlation-id: b301b5ae-bd78-490d-bac4-08dbe1b00971 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IQOqKvKLxCT1yS8vnJwfCSNdnmkRH+5cCrq6dKmMHnPiPYnd6HIqsvnDivgvz00aBqJWGC+IiSGZaH00ClpKmjy/dTo45d8tQLF1fGxnLAH8mi4eQiA1h8HL/ycZe/ErywLAnrvtXLCQ/cRJpzBxi8B+cV6TA39WkVQwwgxyHjC14BJX1RFiwBUoFb7ARRH/Y/K99xFAPK9kHWaxkK8cwSB/IH1tTJzgXYFCglS5Z/ZR17dggXn72+0i3znaZIG6FrnQaTzU/f5q0OXOOdsxQtuBjR/z392TMzJQjzTB7vXxA576lF27P/4Hef6gJb/3ZOWuPK2IktPmdTXjN1iTV6NvlDNftdfaHc3v2ceWRoKoces5NyNI8rvAaYjv4BoarAe7Ee7T9Puj9zcGQa4P7FoNIP/laeqSv+85lcaEuNq/i0EzFr33FcRRjq+giXEu2JaYB2vFJlF8zMXb05tz+2dcAXWWHzJ8vdEbJqdiRBTtvOFuvMDBf2q5kNFjSvpq/o+6nUV4VAHpNR6YxxVk1XPZD5mvIogXcfT61zX8fmTa24SORGVC0rD3YCzMQzhaoHhtCkSaZBO8xd1Lu0QucuyCbsxbjAMbnQXFA6RIK6qGnpSWRkuoBEYahc8mKTlYBLKk2Xx7k571sJ9VDg6qPMzycnDW/Rkd4CDtrbo0Gso= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5940.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(346002)(366004)(396003)(39860400002)(230273577357003)(230922051799003)(230173577357003)(451199024)(1800799009)(186009)(64100799003)(2906002)(5660300002)(55016003)(41300700001)(30864003)(52536014)(8676002)(8936002)(4326008)(316002)(6636002)(76116006)(66476007)(66946007)(66446008)(54906003)(64756008)(110136005)(38070700009)(66899024)(66556008)(83380400001)(71200400001)(478600001)(53546011)(7696005)(6506007)(38100700002)(122000001)(86362001)(33656002)(9686003)(26005)(82960400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dEFVamxqbTFINVkwcEhQS0tYNHZOUTEvNGZtY011Tm9pdmR1T0txMENuMXZK?= =?utf-8?B?M0YvUzFET1VzM25UYzRKL1h0bzFSOTY0aTc2ZkxySENCRWhNVGZhdTNIN0Ew?= =?utf-8?B?SzUyV0NwMDUxNmVkQnlidmV4Tm0zQlRYSzdXSlM3ejR3TDlhVDU4SHl6OGJk?= =?utf-8?B?bFdvZWpKZXNCaEtXVkp1emhRQUhZalZwQy9sYnVFSWlSZk1ZQm51bG82TDFU?= =?utf-8?B?ZFpjbDNkSGtZaVJ2UlpFcDV1L0prM0Z0dXVNL0gvbnFEMGJpUHZFaW1tTi9z?= =?utf-8?B?SDlPZFQwOStkclpSbDY4TUF6eHlEWjErUmE3QzBzR0RWVlF5MWFCV2ZsOFo4?= =?utf-8?B?eHRoWkRnVGZzd0g0TGxBZlBHc2R5OFJaVlM5V0FZM0tIdFEyZnlNY3BLUGpN?= =?utf-8?B?eFJEWmdkOW83dHkweEpaYWg2TjdBL2NWWWlLcXZmOTl3ZEJNZWZlaXFLL3kv?= =?utf-8?B?OHhGRFBKMlg1WHZkU0lEa2c3cHpmUzdYanhwcUdlZ1FvVE42Z0x5ekxwUEFk?= =?utf-8?B?ZVhmSVRKOFdzUVhmOUJzQ2dTNDJqbXEycDcrNXFPMW1qUzJMbHpQd0xhT1d0?= =?utf-8?B?T09QbjVueTNEUS9LUHAvREt3SW5xKzlMN3FJMjlNNmNnTVo4MGhRakxJcmNo?= =?utf-8?B?ak9ncnF6QnNwRjgyQkNURGhOdEFxR1ZxM2FjTWkrbm5rMG9KdE9ieUJYcEFQ?= =?utf-8?B?S2l0QUtCUmNaVTUyd0hDTWtBNTRPM3dIUmRtcW4xMTUzaHZ3ZzF2NW16TjZW?= =?utf-8?B?R2JuekxOclZYcE40M1pNZnoycHRVek9HUHlXcWdEYmV5M3lFR3l6OE5ibFFN?= =?utf-8?B?L2p3ekY0YmpjS25MVGJkc0NEKzJyMmM1VmdBZ1NkYTRhbzgwUWYwODRMZnFN?= =?utf-8?B?TG1TYkhUVWVaRjlaNW5odzdMN0NDOWw0Tm1Razd4RmIxQmJNb0tJZk9PekJv?= =?utf-8?B?NW0vY3NKM09wYjl5Z2U0TjN3ak4vZHRyajVVZmZWcGFFNTNDdmVjK3JXb25x?= =?utf-8?B?RURNQmowYnFtcFpicFdtd2VSWEV6RzVaWC9lTytQc3BhM1NCaEliV05mVG1P?= =?utf-8?B?aXgzdmR2c3RaaEVzK0xGSFlsb0hNSG5uaEkzbk9yUnRkb1B1YWdaWG4xV3Ir?= =?utf-8?B?cFhTSlBtSVVZMGVPaFZ3UFZLMUhsbElXaFNjamcvYVdhbU5IZkNESERIRDFE?= =?utf-8?B?U2c5bmtmNnQrZ2Z1dU1yeFNXOWFBM1VNRnB1dis3NElsdE9Ud2lPZEFFdXpp?= =?utf-8?B?a0gxeDAzWlR5RTVtYStadGduUWFHZVZnWEpJSTJDQVg1R1BqQzFmQjQyU1ll?= =?utf-8?B?R053ZlVMN1l1elJvcDROQ0hoaWphT3hjZ2NrV29aRlp2aTZqSnV0aklSdTFD?= =?utf-8?B?d0JNRE5IRE5ydUo5NlNva3ZSaUNHNm43cEM3ZXRQenE5c2NULzNQZ2NPZkdw?= =?utf-8?B?dVIvRXprU2Iydzkvendib25MV1E1QlJTRTU0cHFTQ0JWcDd6YjdTZzU5UnNk?= =?utf-8?B?R3phOUVSMjVYSUViVE1WaHZHM09LUHhpbjIxN2VyYW1Vc0Fra1dHYVBYaVE3?= =?utf-8?B?UWFoK0J2ekJHbFJrZ2dnMldGemp0dW9jYXorR2cvdFJqR1FjaEZDcjY2VXpp?= =?utf-8?B?blZCYndTZGRMdS8xRDJScVNUTmRWdzUyNHdhQmhhdXlrLytLWS9sK3hxUmhQ?= =?utf-8?B?ZlFGMXJvVFlQWURmS3pwMmtyWU9oTzZ4SGsvQlR5OHY1OG41eW1FRFFHSkQw?= =?utf-8?B?UDFzeTJPWmRuNk8yS3UwQkVTelUvNFJ6bXlDeXo2cTJrYUJHRUhqTlduNFpB?= =?utf-8?B?cTZsei9BSXFkMUFaL0hjTDh4QUF0Q2FycDhqbTFSRmhRaUloK21XOVVzRE5w?= =?utf-8?B?bGUweU95VUF3SmJ3UWdHTnRBNElDM1hLT1JxamthZExyVWpZYi9OL05sZ0t1?= =?utf-8?B?TzBGU3pvMjlTVjN5VTBrQ01IdCtublhFcXhmdkpsZ0Ntckd4RnBaamxlM1JX?= =?utf-8?B?ZFA4WWlmbmQ5QkRsNFd6N0VHUmYxY29oZ0J2U2tlZVNYcncvaFF0OVFFSjRh?= =?utf-8?B?RFlVcWhvUkFUMTZwSjZVejY4azBlbFZCeXpzU3UxdjVUNVFvSnlWRUJsRnFO?= =?utf-8?Q?nDiI=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB5940.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b301b5ae-bd78-490d-bac4-08dbe1b00971 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Nov 2023 05:43:59.1593 (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: YkZw/cSJ0fNHzJkEJA9Cqr3iinDKEiQI7NBBGG79oioyTyBXMF9bpUtXJzpny4g4iU45kEaL5qc7dfLTNecgYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4870 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiBPbiAwMi4xMS4yMDIzIDEyOjI5LCBDdWksIExpbGkgd3JvdGU6DQo+ID4gLS0tIGEvZ2FzL2Nv bmZpZy90Yy1pMzg2LmMNCj4gPiArKysgYi9nYXMvY29uZmlnL3RjLWkzODYuYw0KPiA+IEBAIC03 MjA4LDYgKzcyMDgsNDQgQEAgY2hlY2tfRWdwck9wZXJhbmRzIChjb25zdCBpbnNuX3RlbXBsYXRl ICp0KQ0KPiA+ICAgIHJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiArLyogT3B0aW1pemUgQVBY IE5ERCBpbnNucyB0byBub24tTkREIGluc25zLiAgKi8NCj4gPiArDQo+ID4gK3N0YXRpYyBib29s DQo+ID4gK29wdGltaXplX05ERF90b19ub25OREQgKGNvbnN0IGluc25fdGVtcGxhdGUgKnQpIHsN Cj4gPiArICBpZiAodC0+b3Bjb2RlX21vZGlmaWVyLnZleHZ2dnYgPT0gVmV4VlZWVl9EU1QNCj4g PiArICAgICAgJiYgdC0+b3Bjb2RlX3NwYWNlID09IFNQQUNFX0VWRVhNQVA0DQo+ID4gKyAgICAg ICYmICFpLmhhc19uZg0KPiANCj4gQXMgbWVudGlvbmVkIGJlZm9yZSwgSSdkIHN0aWxsIHByZWZl ciB0aGUgb3B0aW1pemF0aW9uIHRvIG9ubHkgYmUgYWRkZWQgYWZ0ZXIgTkYNCj4gaGFuZGxpbmcg d2FzIHB1dCBpbiBwbGFjZS4gQnV0IEknbSBub3QgbWVhbmluZyB0byBtYWtlIHRoaXMgYSBzdHJp Y3QgcmVxdWlyZW1lbnQ6DQo+IEludHJvZHVjaW5nIHRoZSBoYXNfbmYgZmllbGQgaGVyZSAod2l0 aCBpdCBvbmx5IGJlaW5nIHJlYWQsIG5ldmVyIFtleHBsaWNpdGx5XQ0KPiB3cml0dGVuKSBpcyBj ZXJ0YWlubHkgb2theS1pc2guDQo+IChCdXQgc2VlIGFsc28gYmVsb3cuKQ0KPg0KDQpPZiBjb3Vy c2Ugd2UgY2FuIHB1dCB0aGUgb3B0aW1pemF0aW9uIHBhdGNoIGFmdGVyIHRoZSBORiBwYXRjaC4g Rm9yIG5vdywgd2UgYXJlIGp1c3QgcHV0dGluZyBpdCBoZXJlIGZvciByZXZpZXcuDQoNCj4gDQo+ IFNpbWlsYXJseSBJJ20gY29uY2VybmVkIG9mIHRoZSBORCBmb3JtIG9mIENGQ01PVmNjLCB3aGlj aCBpc24ndCB0aGVyZSB5ZXQgaW4NCj4gdGhlIHBhdGNoZXMsIGJ1dCB3aGljaCB3aWxsIGFsc28g bmVlZCBleGNsdWRpbmcgZnJvbSB0aGlzIG9wdGltaXphdGlvbi4gT2J2aW91c2x5DQo+IHRoaXMg Y29uY2VybiB0aGVuIGV4dGVuZHMgdG8gYW55IGZ1dHVyZSBORC0gZW5jb2RlZCBpbnNucywgd2hp Y2ggKGxpa2VseSkgd29uJ3QNCj4gaGF2ZSBsZWdhY3ktZW5jb2RlZCAoYW5kIGhlbmNlDQo+IFJF WDItZW5jb2RhYmxlKSBjb3VudGVycGFydHMuIEFyZSB0aGVyZSBhbnkgcGxhbnMgaG93IHRvIGRl YWwgd2l0aCBzdWNoPw0KPiAoVGhlcmUncyBhIHBvc3NpYmxlIGFwcHJvYWNoIG1lbnRpb25lZCBm dXJ0aGVyIGRvd24uKQ0KPg0KDQpMb29raW5nIGF0IG90aGVyIGN1cnJlbnQgTkREIGluc3RydWN0 aW9ucywgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBldmV4IGVuY29kaW5nIGV2ZW4gaWYg aXQgZG9lc24ndCBoYXZlIHJleDIgZW5jb2RpbmcuDQogDQo+DQo+ID4gKyAgICAgICYmIGkucmVn X29wZXJhbmRzID49IDINCj4gPiArICAgICAgJiYgaS50eXBlc1tpLm9wZXJhbmRzIC0gMV0uYml0 ZmllbGQuY2xhc3MgPT0gUmVnKQ0KPiANCj4gSXNuJ3QgdGhpcyBpbXBsaWNpdCBmcm9tIHRoZSBW ZXhWVlZWIGNoZWNrIGZ1cnRoZXIgdXA/DQo+DQoNClllcy4NCg0KPiANCj4gPiArICAgIHsNCj4g PiArICAgICAgdW5zaWduZWQgaW50IHJlYWRvbmx5X3ZhciA9IH4wOw0KPiA+ICsgICAgICB1bnNp Z25lZCBpbnQgZGVzdCA9IGkub3BlcmFuZHMgLSAxOw0KPiA+ICsgICAgICB1bnNpZ25lZCBpbnQg c3JjMSA9IChpLm9wZXJhbmRzID4gMikgPyBpLm9wZXJhbmRzIC0gMiA6IDA7DQo+IA0KPiBTaW5j ZSB3ZSBhbHJlYWR5IGtub3cgaS5vcGVyYW5kcyA+PSAyIGZyb20gdGhlIGVhcmxpZXIgY2hlY2sg b2YgaS5yZWdfb3BlcmFuZHMsDQo+IGNhbid0IHRoaXMgc2ltcGx5IGJlDQo+IA0KPiAgICAgICB1 bnNpZ25lZCBpbnQgc3JjMSA9IGkub3BlcmFuZHMgLSAyOw0KPiANCj4gPw0KPg0KDQpPSy4NCg0K PiANCj4gPiArICAgICAgdW5zaWduZWQgaW50IHNyYzIgPSAoaS5vcGVyYW5kcyA+IDMpID8gaS5v cGVyYW5kcyAtIDMgOiAwOw0KPiA+ICsNCj4gPiArICAgICAgaWYgKGkudHlwZXNbc3JjMV0uYml0 ZmllbGQuY2xhc3MgPT0gUmVnDQo+ID4gKwkgICYmIGkub3Bbc3JjMV0ucmVncyA9PSBpLm9wW2Rl c3RdLnJlZ3MpDQo+ID4gKwlyZWFkb25seV92YXIgPSBzcmMyOw0KPiANCj4gQXMgY2FuIGJlIHNl ZW4gaW4gdGhlIHRlc3RjYXNlLCB0aGlzIGFsc28gcmVzdWx0cyBpbiBBRENYL0FET1ggdG8gYmUg Y29udmVydGVkIHRvDQo+IG5vbi1ORCBFVkVYIGZvcm1zLCBpLmUuIGV2ZW4gd2hlbiB0aGF0J3Mg bm90IGEgd2luIGF0IGFsbC4NCj4gV2Ugc2hvdWxkbid0IGNoYW5nZSB3aGF0IHRoZSB1c2VyIGhh cyB3cml0dGVuIHdoZW4gdGhlIGVuY29kaW5nIGRvZXNuJ3QNCj4gYWN0dWFsbHkgaW1wcm92ZS4g KE9yIGVsc2UsIGJ1dCBJJ2QgYmUgaGVzaXRhbnQgdG8gYWNjZXB0IHRoYXQsIGF0IHRoZSB2ZXJ5 IGxlYXN0IHRoZQ0KPiBlZmZlY3Qgd291bGQgbmVlZCBwb2ludGluZyBvdXQgaW4gdGhlIGRlc2Ny aXB0aW9uIG9yIGV2ZW4gYSBjb2RlIGNvbW1lbnQsIHNvDQo+IHRoYXQgbGF0ZXIgb24gaXQgaXMg cG9zc2libGUgdG8gZmlndXJlIG91dCB3aGV0aGVyIHRoYXQgd2FzIGludGVudGlvbmFsIG9yIGFu DQo+IG92ZXJzaWdodC4pDQo+IA0KPiBUaGlzIGlzIHdoZXJlIG15IHRlbXBsYXRlIG9yZGVyaW5n IHJlbWFyayBpbiByZXBseSB0byBwYXRjaCA1IGNvbWVzIGludG8gcGxheToNCj4gV2hldGhlciBp bnZva2luZyByZS1wYXJzZSBpcyBva2F5IHdvdWxkIGZ1cnRoZXIgbmVlZCB0byBkZXBlbmQgb24g d2hldGhlciBhbg0KPiBhbHRlcm5hdGl2ZSAoZWFybGllcikgdGVtcGxhdGUgYWN0dWFsbHkgYWxs b3dzDQo+IFJFWDIgZW5jb2RpbmcgKHNhbWUgYmFzZS1vcGNvZGUgY291bGQgYmUgb25lIG9mIHRo ZSBjcml0ZXJpYSBmb3IgaG93IGZhciB0bw0KPiBsb29rIGJhY2sgdGhyb3VnaCBlYXJsaWVyIHRl bXBsYXRlczsgYW4gb3B0aW9uIG1pZ2h0IGFsc28gYmUgdG8gcHV0IHRoZSAzLQ0KPiBvcGVyYW5k IHRlbXBsYXRlcyBmaXJzdCwgc28gdGhhdCBsb29raW5nIGJhY2t3YXJkcyB3b3VsZG4ndCBiZSBu ZWNlc3NhcnkgaW4gdGhlDQo+IGZpcnN0IHBsYWNlKS4gVGhpcyB3b3VsZCB0aGVuIGxpa2VseSBh bHNvIGFkZHJlc3Mgb25lIG9mIHRoZSBmb3J3YXJkIGxvb2tpbmcNCj4gY29uY2VybnMgSSd2ZSBy YWlzZWQgYWJvdmUuDQo+DQoNCkluZGVlZCwgYWRjeCdzIGxlZ2FjeSBpbnNuIGNhbid0IHN1cHBv cnQgcmV4Mi4NCg0KRm9yIG15IHByb2JsZW0sIEkgcHJlZmVyIHRvIHJlLW9yZGVyIHRlbXBsYXRl cyBvcmRlciwgYmVjYXVzZSwgSSBoYWRuJ3QgdGhvdWdodCBvZiBhIHdheSB0byBzaW1wbHkgbW92 ZSB0IHRvIHRoZSBmYXJ0aGVzdCBzYW1lIGJhc2Vfb3Bjb2RlIHRlbXBsYXRlIGZvciB0aGUgbW9t ZW50LiBUaGUgZm9sbG93aW5nIGlzIGEgdGVudGF0aXZlIHNjZW5hcmlvOiB0aGUgb3JkZXIgd2ls bCBiZSBuZGQgZXZleCAtIHJleDIgLSBldmV4LiBBbmQgSSB3aWxsIG5lZWQgYSB0bXBfdmFyaWFi bGUgdG8gYXZvaWQgdGhlIGluc24gZG9lc24ndCBtYXRjaCB0aGUgcmV4MiwgbGV0IG1lIGJhY2t0 cmFjayB0aGUgbWF0Y2gncyByZXN1bHQgYW5kIHRoZSB2YWx1ZSBvZiBpLg0KDQo+IA0KPiA+ICsg ICAgICAvKiBhZGN4LCBhZG94IGFuZCBpbXVsIGRvbid0IGhhdmUgRCBiaXQuICAqLw0KPiA+ICsg ICAgICBlbHNlIGlmIChpLnR5cGVzW3NyYzJdLmJpdGZpZWxkLmNsYXNzID09IFJlZw0KPiA+ICsJ ICAgICAgICYmIGkub3Bbc3JjMl0ucmVncyA9PSBpLm9wW2Rlc3RdLnJlZ3MNCj4gPiArCSAgICAg ICAmJiB0LT5vcGNvZGVfbW9kaWZpZXIuY29tbXV0YXRpdmUpDQo+IA0KPiBUaGVyZSdzIGEgZGlz Y29ubmVjdCBiZXR3ZWVuIGNvbW1lbnQgYW5kIGNvZGUgaGVyZTogWW91IGRvbid0IHVzZSB0aGUg RA0KPiBhdHRyaWJ1dGUsIHNvIHdoeSBpcyBpdCBiZWluZyBtZW50aW9uZWQ/DQo+DQoNCkkgZm9y Z290IHRvIG1vZGlmeSBpdC4NCiANCj4NCj4gPiArCXJlYWRvbmx5X3ZhciA9IHNyYzE7DQo+ID4g KyAgICAgIGlmIChyZWFkb25seV92YXIgIT0gKHVuc2lnbmVkIGludCkgfjApDQo+ID4gKwl7DQo+ ID4gKwkgIC0taS5vcGVyYW5kczsNCj4gPiArCSAgLS1pLnJlZ19vcGVyYW5kczsNCj4gPiArCSAg LS1pLnRtLm9wZXJhbmRzOw0KPiA+ICsNCj4gPiArCSAgaWYgKHJlYWRvbmx5X3ZhciAhPSBzcmMy KQ0KPiA+ICsJICAgIHN3YXBfMl9vcGVyYW5kcyAocmVhZG9ubHlfdmFyLCBzcmMyKTsNCj4gDQo+ IE1heSBJIHN1Z2dlc3QgdGhhdCBqdXN0IG91dCBvZiBwcmVjYXV0aW9uIHRoZSBzd2FwcGluZyBi ZSBkb25lIGJlZm9yZSBvcGVyYW5kDQo+IGNvdW50cyBhcmUgZGVjcmVtZW50ZWQ/IEluIHByaW5j aXBsZSBzd2FwXzJfb3BlcmFuZHMoKSBjb3VsZCBkbyB3aXRoIGhhdmluZw0KPiBhc3NlcnRpb25z IGFkZGVkIGFzIHRvIGl0IGFjdHVhbGx5IGRlYWxpbmcgd2l0aCB2YWxpZCBvcGVyYW5kcy4gKFlv dSdsbCBub3RlIHRoYXQNCj4gZWxzZXdoZXJlLCB3aGVuIHdlIGFkZCBhIG5ldyBvcGVyYW5kLCB3 ZSBpbmNyZW1lbnQgZmlyc3QgYW5kIHRoZW4gc3dhcC4pDQo+IA0KDQpJbmRlZWQsIGl0J3Mgc2Fm ZXIsIEkndmUgZXhjaGFuZ2VkIHRoZSBvcmRlciBvZiBleGVjdXRpb24sIGRvIHlvdSBoYXZlIGFu eSBvdGhlciBjb21tZW50cyBvbiB0aGUgYXNzZXJ0aW9ucyAoSWYgSSB1bmRlcnN0YW5kIGNvcnJl Y3RseSwgdGhlcmUgaXMgYSBkZXNpcmUgZm9yIHNvbWUgZ2NjX2Fzc2VydD8pLCBmb3IgdGhlIHRp bWUgYmVpbmcgSSBjYW4gZ3VhcmFudGVlIHRoYXQgdGhlIHR3byBpbmRleGVzIGFyZSBkZWZpbml0 ZWx5IGluIHJhbmdlLCBpcyB0aGVyZSBhbnl0aGluZyBlbHNlIHRoYXQgbmVlZHMgdG8gYmUganVk Z2VkPw0KDQo+ID4gQEAgLTc3MjgsNiArNzc2NiwxNCBAQCBtYXRjaF90ZW1wbGF0ZSAoY2hhciBt bmVtX3N1ZmZpeCkNCj4gPiAgCSAgaS5tZW1zaGlmdCA9IG1lbXNoaWZ0Ow0KPiA+ICAJfQ0KPiA+ DQo+ID4gKyAgICAgIC8qIElmIHdlIGNhbiBvcHRpbWl6ZSBhIE5ERCBpbnNuIHRvIG5vbi1OREQg aW5zbiwgbGlrZQ0KPiA+ICsJIGFkZCAlcjE2LCAlcjgsICVyOCAtPiBhZGQgJXIxNiwgJXI4LCB0 aGVuIHJlbWF0Y2ggdGVtcGxhdGUuICAqLw0KPiA+ICsgICAgICBpZiAob3B0aW1pemUgPT0gMSAm JiBvcHRpbWl6ZV9ORERfdG9fbm9uTkREICh0KSkNCj4gDQo+IFNvIHlvdSBkbyB0aGlzIG9wdGlt aXphdGlvbiBhdCAtTzEsIGJ1dCBub3QgYXQgLU8yPyBJbW8gdGhlICI9PSAxIg0KPiBzaW1wbHkg bmVlZHMgZHJvcHBpbmcuIEZ1cnRoZXJtb3JlIHRoZSB7bm9vcHRpbWl6ZX0gYW5kIHtldmV4fSBw c2V1ZG8NCj4gcHJlZml4ZXMgbmVlZCByZXNwZWN0aW5nLiBRdWl0ZSBsaWtlbHkgcmVzcGVjdGlu ZyB7ZXZleH0gd291bGQgZWxpbWluYXRlIHRoZSBuZWVkDQo+IGZvciB0aGUgZXhwbGljaXQgLmhh c19uZiBjaGVjayBpbiB0aGUgaGVscGVyIGZ1bmN0aW9uLCBhcyBJIGV4cGVjdCAudmVjX2VuY29k aW5nIHRvDQo+IGJlIHNldCBhbG9uZ3NpZGUgdGhhdCBiaXQgYW55d2F5LiBGdXJ0aGVyIHF1aXRl IGxpa2VseSByZXNwZWN0aW5nIHtldmV4fSBoZXJlIHdpbGwNCj4gbWVhbiB0aGF0IGluIHBhdGNo IDMgeW91IG5lZWQgdG8gaW50cm9kdWNlIGEgbmV3IGVudW1lcmF0b3IgKGUuZy4NCj4gdmV4X2Vu Y29kaW5nX2VncHIsIHZhZ3VlbHkgc2ltaWxhciB0byB2ZXhfZW5jb2RpbmdfZXZleDUxMiksIHRv IGF2b2lkDQo+IHNldHRpbmcgLnZlY19lbmNvZGluZyB0byB2ZXhfZW5jb2RpbmdfZXZleCB3aGVu IGFuIGVHUFIgaXMgcGFyc2VkLg0KPiANCj4gQXMgdG8gb3B0aW1pemF0aW9uIGxldmVsOiBJbiBi dWlsZF92ZXhfcHJlZml4KCkgd2UgbGV2ZXJhZ2UgQyBvbmx5IGF0IC1PMiBvcg0KPiBoaWdoZXIg KGluY2x1ZGluZyAtT3MpLiBXZSBtYXkgd2FudCB0byBiZSBjb25zaXN0ZW50IGluIHRoaXMgcmVn YXJkIGhlcmUgKGkuZS4gYnkNCj4gYW4gZXh0cmEgY2hlY2sgaW4gdGhlIGhlbHBlciBmdW5jdGlv bikuDQo+IA0KDQpJdCdzIGEgbWlzdGFrZSwgSSBoYXZlIGZpeGVkIGl0LiBUaGUgY29uZGl0aW9u cyB3aWxsIGJlLiBJIHdpbGwgdHJ5IGxhdGVyLCBhZnRlciB0aGUgTkYgcGF0Y2ggaXMgZG9uZSwg dG8gc2VlIGlmIHRoZSBjb25zdHJhaW50IGkuaGFzX25mIGNhbiBiZSByZW1vdmVkIG9yIG5vdC4N Cg0KICAgICAgIC8qIElmIHdlIGNhbiBvcHRpbWl6ZSBhIE5ERCBpbnNuIHRvIG5vbi1OREQgaW5z biwgbGlrZQ0KICAgICAgICAgYWRkICVyMTYsICVyOCwgJXI4IC0+IGFkZCAlcjE2LCAlcjgsIHRo ZW4gcmVtYXRjaCB0ZW1wbGF0ZS4gICovDQotICAgICAgaWYgKG9wdGltaXplID09IDEgJiYgb3B0 aW1pemVfTkREX3RvX25vbk5ERCAodCkpDQorICAgICAgaWYgKCFpLm5vX29wdGltaXplICYmIGku dmVjX2VuY29kaW5nICE9IHZleF9lbmNvZGluZ19ldmV4DQorICAgICAgICAgJiYgb3B0aW1pemUg JiYgb3B0aW1pemVfTkREX3RvX25vbk5ERCAodCkpDQogICAgICAgIHsNCg0KPg0KPiA+ICsJew0K PiA+ICsJICB0ID0gY3VycmVudF90ZW1wbGF0ZXMtPnN0YXJ0IC0gMTsNCj4gDQo+IEFzIHBlciBh IHJlbWFyayBmdXJ0aGVyIHVwLCB0aGlzIGFkanVzdG1lbnQgY291bGQgYmUgYXZvaWRlZCBpZiB0 aGUgTkQgdGVtcGxhdGVzDQo+IGNhbWUgYWhlYWQgb2YgdGhlIGxlZ2FjeSBvbmVzLiBUaGV5IGNh bid0IGJlIHdyb25nbHkgdXNlZCBpbiBwbGFjZSBvZiB0aGUNCj4gbGVnYWN5IG9uZXMsIGR1ZSB0 byB0aGUgZXh0cmEgb3BlcmFuZCB0aGV5IHJlcXVpcmUuIFRoZW4gYSBjb21tZW50IGhlcmUgd291 bGQNCj4gbWVyZWx5IHBvaW50IG91dCB0aGlzIG9yZGVyaW5nIGFzcGVjdC4gQnV0IG9mIGNvdXJz ZSBjYXJlIHdpbGwgdGhlbiBuZWVkIHRvIGJlDQo+IHRha2VuIHRvIG5vdCBnbyBwYXN0IGkzODZf b3B0YWJbXSdzIGJvdW5kcyAoYnkgaGF2aW5nIHN1aXRhYmx5IG9yZGVyZWQNCj4gY29uZGl0aW9u YWxzIHdoZW4gbG9va2luZyBmb3Igd2hldGhlciB0aGVyZSBpcyBhbiBhbHRlcm5hdGl2ZSB0ZW1w bGF0ZSBpbiB0aGUNCj4gZmlyc3QgcGxhY2U7IGFnYWluIHNlZSB0aGUgcmVzcGVjdGl2ZSByZW1h cmsgZnVydGhlciB1cCkuDQo+DQoNClllcywgaWYgd2UgcmVvcmRlciB0aGUgdGVtcGxhdGUncyBv cmRlciwgSSB3aWxsIHJlbW92ZSB0aGUgbGluZS4gT25seSBvbmUgZXhhbXBsZSBvZiBhIHBvc3Np YmxlIGltcGxlbWVudGF0aW9uIGlzIGdpdmVuIGhlcmU6DQoNCiAgICAgICAgfQ0KDQorICAgICAg Ym9vbCBoYXZlX2NvbnZlcnRlZF9ORERfdG9fbm9uTkREID0gZmFsc2U7DQorICAgICAgaTM4Nl9p bnNuIHRtcF9pOw0KKw0KKyAgICAgIGlmICghaS5ub19vcHRpbWl6ZSAmJiBpLnZlY19lbmNvZGlu ZyAhPSB2ZXhfZW5jb2RpbmdfZXZleA0KKyAgICAgICAgICYmIG9wdGltaXplICYmICFoYXZlX2Nv bnZlcnRlZF9ORERfdG9fbm9uTkREDQorICAgICAgICAgJiYgY29udmVydF9ORERfdG9fbm9uTkRE ICh0KSkNCisgICAgICAgew0KKyAgICAgICAgIGhhdmVfY29udmVydGVkX05ERF90b19ub25OREQg PSB0cnVlOw0KKyAgICAgICAgIHRtcF9pID0gaTsNCisgICAgICAgfQ0KKw0KICAgICAgIC8qIFdl J3ZlIGZvdW5kIGEgbWF0Y2g7IGJyZWFrIG91dCBvZiBsb29wLiAgKi8NCiAgICAgICBicmVhazsN CiAgICAgfQ0KQEAgLTc3ODcsNiArNzgwMiw5IEBAIG1hdGNoX3RlbXBsYXRlIChjaGFyIG1uZW1f c3VmZml4KQ0KICAgICAgIHJldHVybiBOVUxMOw0KICAgICB9DQoNCisgIGlmIChoYXZlX2NvbnZl cnRlZF90b19ub25OREQpDQorICAgIGkgPSB0bXBfaTsNCisNCiAgIGlmICghcXVpZXRfd2Fybmlu Z3MpDQoNCj4gDQo+ID4gKwkgIGNvbnRpbnVlOw0KPiA+ICsJfQ0KPiANCj4gQnR3LCBjb25zaWRl cmluZyB0aGlzIHJlLW1hdGNoaW5nLCBJIHdvbmRlciB3aGV0aGVyICJjb252ZXJ0IiB3b3VsZG4n dCBiZQ0KPiBiZXR0ZXIgaW4gdGhlIGZ1bmN0aW9uIG5hbWUgY29tcGFyZWQgdG8gIm9wdGltaXpl Ii4NCj4gDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL2kz ODYveDg2LTY0LWFweC1uZGQtb3B0aW1pemUucw0KPiA+IEBAIC0wLDAgKzEsMTE3IEBADQo+ID4g KyMgQ2hlY2sgNjRiaXQgQVBYIE5ERCBpbnN0cnVjdGlvbnMgd2l0aCBvcHRpbWl6ZWQgZW5jb2Rp bmcNCj4gPiArDQo+ID4gKwkudGV4dA0KPiA+ICtfc3RhcnQ6DQo+ID4gK2luYyAgICAlcjMxLCVy MzENCj4gPiAraW5jYiAgICVyMzFiLCVyMzFiDQo+ID4gK2FkZCAgICAlcjMxLCVyOCwlcjgNCj4g PiArYWRkYiAgICVyMzFiLCVyOGIsJXI4Yg0KPiA+ICt7c3RvcmV9IGFkZCAgICAlcjMxLCVyOCwl cjgNCj4gPiAre2xvYWR9ICBhZGQgICAgJXIzMSwlcjgsJXI4DQo+ID4gK2FkZCAgICAlcjMxLCgl cjgpLCVyMzENCj4gPiArYWRkICAgICglcjMxKSwlcjgsJXI4DQo+ID4gK2FkZCAgICAkMHgxMjM0 NDQzMywlcjE1LCVyMTUNCj4gPiArYWRkICAgICQweGZmZmZmZmZmZjQzMzIyMTEsJXI4LCVyOA0K PiA+ICtkZWMgICAgJXIxNywlcjE3DQo+ID4gK2RlY2IgICAlcjE3YiwlcjE3Yg0KPiA+ICtub3Qg ICAgJXIxNywlcjE3DQo+ID4gK25vdGIgICAlcjE3YiwlcjE3Yg0KPiA+ICtuZWcgICAgJXIxNywl cjE3DQo+ID4gK25lZ2IgICAlcjE3YiwlcjE3Yg0KPiA+ICtzdWIgICAgJXIxNSwlcjE3LCVyMTcN Cj4gPiArc3ViYiAgICVyMTViLCVyMTdiLCVyMTdiDQo+ID4gK3N1YiAgICAlcjE1LCglcjgpLCVy MTUNCj4gPiArc3ViICAgICglcjE1LCVyYXgsMSksJXIxNiwlcjE2DQo+ID4gK3N1YiAgICAkMHgx MjM0LCVyMzAsJXIzMA0KPiA+ICtzYmIgICAgJXIxNSwlcjE3LCVyMTcNCj4gPiArc2JiYiAgICVy MTViLCVyMTdiLCVyMTdiDQo+ID4gK3NiYiAgICAlcjE1LCglcjgpLCVyMTUNCj4gPiArc2JiICAg ICglcjE1LCVyYXgsMSksJXIxNiwlcjE2DQo+ID4gK3NiYiAgICAkMHgxMjM0LCVyMzAsJXIzMA0K PiA+ICthZGMgICAgJXIxNSwlcjE3LCVyMTcNCj4gPiArYWRjYiAgICVyMTViLCVyMTdiLCVyMTdi DQo+ID4gK2FkYyAgICAlcjE1LCglcjgpLCVyMTUNCj4gPiArYWRjICAgICglcjE1LCVyYXgsMSks JXIxNiwlcjE2DQo+ID4gK2FkYyAgICAkMHgxMjM0LCVyMzAsJXIzMA0KPiA+ICtvciAgICAgJXIx NSwlcjE3LCVyMTcNCj4gPiArb3JiICAgICVyMTViLCVyMTdiLCVyMTdiDQo+ID4gK29yICAgICAl cjE1LCglcjgpLCVyMTUNCj4gPiArb3IgICAgICglcjE1LCVyYXgsMSksJXIxNiwlcjE2DQo+ID4g K29yICAgICAkMHgxMjM0LCVyMzAsJXIzMA0KPiA+ICt4b3IgICAgJXIxNSwlcjE3LCVyMTcNCj4g PiAreG9yYiAgICVyMTViLCVyMTdiLCVyMTdiDQo+ID4gK3hvciAgICAlcjE1LCglcjgpLCVyMTUN Cj4gPiAreG9yICAgICglcjE1LCVyYXgsMSksJXIxNiwlcjE2DQo+ID4gK3hvciAgICAkMHgxMjM0 LCVyMzAsJXIzMA0KPiA+ICthbmQgICAgJXIxNSwlcjE3LCVyMTcNCj4gPiArYW5kYiAgICVyMTVi LCVyMTdiLCVyMTdiDQo+ID4gK2FuZCAgICAlcjE1LCglcjgpLCVyMTUNCj4gPiArYW5kICAgICgl cjE1LCVyYXgsMSksJXIxNiwlcjE2DQo+ID4gK2FuZCAgICAkMHgxMjM0LCVyMzAsJXIzMA0KPiA+ ICtyb3IgICAgJXIzMSwlcjMxDQo+ID4gK3JvcmIgICAlcjMxYiwlcjMxYg0KPiA+ICtyb3IgICAg JDB4MiwlcjEyLCVyMTINCj4gPiArcm9yYiAgICQweDIsJXIxMmIsJXIxMmINCj4gPiArcm9sICAg ICVyMzEsJXIzMQ0KPiA+ICtyb2xiICAgJXIzMWIsJXIzMWINCj4gPiArcm9sICAgICQweDIsJXIx MiwlcjEyDQo+ID4gK3JvbGIgICAkMHgyLCVyMTJiLCVyMTJiDQo+ID4gK3JjciAgICAlcjMxLCVy MzENCj4gPiArcmNyYiAgICVyMzFiLCVyMzFiDQo+ID4gK3JjciAgICAkMHgyLCVyMTIsJXIxMg0K PiA+ICtyY3JiICAgJDB4MiwlcjEyYiwlcjEyYg0KPiA+ICtyY2wgICAgJXIzMSwlcjMxDQo+ID4g K3JjbGIgICAlcjMxYiwlcjMxYg0KPiA+ICtyY2wgICAgJDB4MiwlcjEyLCVyMTINCj4gPiArcmNs YiAgICQweDIsJXIxMmIsJXIxMmINCj4gPiArc2hsICAgICVyMzEsJXIzMQ0KPiA+ICtzaGxiICAg JXIzMWIsJXIzMWINCj4gPiArc2hsICAgICQweDIsJXIxMiwlcjEyDQo+ID4gK3NobGIgICAkMHgy LCVyMTJiLCVyMTJiDQo+ID4gK3NhciAgICAlcjMxLCVyMzENCj4gPiArc2FyYiAgICVyMzFiLCVy MzFiDQo+ID4gK3NhciAgICAkMHgyLCVyMTIsJXIxMg0KPiA+ICtzYXJiICAgJDB4MiwlcjEyYiwl cjEyYg0KPiA+ICtzaGwgICAgJXIzMSwlcjMxDQo+ID4gK3NobGIgICAlcjMxYiwlcjMxYg0KPiA+ ICtzaGwgICAgJDB4MiwlcjEyLCVyMTINCj4gPiArc2hsYiAgICQweDIsJXIxMmIsJXIxMmINCj4g PiArc2hyICAgICVyMzEsJXIzMQ0KPiA+ICtzaHJiICAgJXIzMWIsJXIzMWINCj4gPiArc2hyICAg ICQweDIsJXIxMiwlcjEyDQo+ID4gK3NocmIgICAkMHgyLCVyMTJiLCVyMTJiDQo+ID4gK3NobGQg ICAkMHgxLCVyMTIsKCVyYXgpLCVyMTINCj4gPiArc2hsZCAgICQweDIsJXI4LCVyMTIsJXIxMg0K PiA+ICtzaGxkICAgJWNsLCVyOSwoJXJheCksJXI5DQo+ID4gK3NobGQgICAlY2wsJXIxMiwlcjE2 LCVyMTYNCj4gPiArc2hsZCAgICVjbCwlcjEzLCglcjE5LCVyYXgsNCksJXIxMw0KPiANCj4gV2hh dCdzIHRoZSBkaWZmZXJlbmNlIChpbiB3aGF0IGlzIGJlaW5nIHRlc3RlZCkgYmV0d2VlbiB0aGlz IGFuZCANCnRoZSBmaXJzdCBvZg0KPiB0aGUgJWNsIHRlc3RzPyBTaG91bGRuJ3Qgb25lIG9mIHRo ZW0gcmF0aGVyIGJlIG9mIHRoZSBmb3JtICJyZWcxLHJlZzIscmVnMSI/DQo+IEFuZCB0aGVuIHNo b3VsZG4ndCB0aGVyZSBiZSBhIHNpbWlsYXIgdGVzdCB3aXRoIGFuIGltbWVkaWF0ZSBvcGVyYW5k PyAoU2FtZSBmb3INCj4gU0hSRCB0aGVuLCBvYnZpb3VzbHkuKQ0KPg0KDQpIYXZlIG1vZGlmaWVk Lg0KDQo+IA0KPiA+IC0tLSBhL29wY29kZXMvaTM4Ni1vcGMudGJsDQo+ID4gKysrIGIvb3Bjb2Rl cy9pMzg2LW9wYy50YmwNCj4gPiBAQCAtMTQ1LDYgKzE0NSw4IEBADQo+ID4gIC8vIFRoZSBFVkVY IHB1cnBvc2Ugb2YgU3RhdGljUm91bmRpbmcgYXBwZWFycyBvbmx5IHRvZ2V0aGVyIHdpdGggU0FF Lg0KPiA+IFJlLXVzZSAgLy8gdGhlIGJpdCB0byBtYXJrIGNvbW11dGF0aXZlIFZFWCBlbmNvZGlu Z3Mgd2hlcmUgc3dhcHBpbmcNCj4gPiB0aGUgc291cmNlICAvLyBvcGVyYW5kcyBtYXkgYWxsb3cg dG8gc3dpdGNoIGZyb20gMy1ieXRlIHRvIDItYnl0ZSBWRVgNCj4gZW5jb2RpbmcuDQo+ID4gKy8v IEFuZCByZS11c2UgdGhlIGJpdCB0byBtYXJrIHNvbWUgTkREIGluc25zIHRoYXQgc3dhcHBpbmcg dGhlIHNvdXJjZQ0KPiA+ICtvcGVyYW5kcyAvLyBtYXkgYWxsb3cgdG8gc3dpdGNoIGZyb20gMyBv cGVyYW5kcyB0byAyIG9wZXJhbmRzLg0KPiA+ICAjZGVmaW5lIEMgU3RhdGljUm91bmRpbmcNCj4g DQo+IFRoZSAzLXRvLTIgY29udmVyc2lvbiBpc24ndCB3aGF0IHdlJ3JlIHByaW1hcmlseSBhZnRl ciAoc2VlIGNvbW1lbnRzIGFib3ZlKS4NCj4gSXQncyB0aGUgRVZFWC0+UkVYMiBlbmNvZGluZyBj b252ZXJzaW9uIHdoaWNoIHdlJ2QgbGlrZSB0byBkby4NCj4gDQo+ID4gQEAgLTE2Niw2ICsxNjgs MTAgQEANCj4gPg0KPiA+ICAjIyMgTUFSS0VSICMjIw0KPiA+DQo+ID4gKy8vIFBsZWFzZSBkb24n dCBhZGQgYSBOREQgaW5zbiB3aGljaCBtYXkgYmUgb3B0aW1pemVkIHRvIGEgUkVYMiBpbnNuDQo+ ID4gK2JlZm9yZSB0aGUgLy8gbW92LiBJdCBtYXkgcmVzdWx0IHRoYXQgYSBnb29kIFVCIGNoZWNr ZXIgb2JqZWN0IHRoZQ0KPiA+ICtiZWhhdmlvciAvLyAidGVtcGxhdGUtPnN0YXJ0IC0gMSIgYXQg dGhlIGVuZCBvZiBtYXRjaF90ZW1wbGF0ZS4NCj4gPiArDQo+ID4gIC8vIE1vdmUgaW5zdHJ1Y3Rp b25zLg0KPiANCj4gV2hpbGUgSSBtZW50aW9uZWQgYWRkaW5nIGEgY29tbWVudCBoZXJlIGFzIGEg bWluaW1hbCBzb2x1dGlvbiwgZGlkIHlvdSB0cnkgdG8NCj4gdGhpbmsgb2YgYmV0dGVyIGFwcHJv YWNoZXMsIG9yIHNvbWUgZW5mb3JjZW1lbnQgb2YgdGhpcyByZXN0cmljdGlvbiAobGlrZQ0KPiBn YXNfYXNzZXJ0KCkgYmVmb3JlIHRoZSBleHByZXNzaW9uIGluIHF1ZXN0aW9uKT8gWW91IGNvdWxk IGV2ZW4gZ28gYXMgZmFyIGFzDQo+IHNpbXBseSBub3QgdHJ5aW5nIHRoZSBvcHRpbWl6YXRpb24g d2hlbiB0ID09IGkzODZfb3B0YWIsIHdpdGggbm8gbmVlZCB0byBoYXZlIGENCj4gY29tbWVudCBo ZXJlICh0aGUgY29tbWVudCB3b3VsZCB0aGVuIGJlIG5leHQgdG8gdGhhdCBwYXJ0IG9mIHRoZSBj b25kaXRpb24sDQo+IHRodXMgcmlnaHQgd2hlcmUgaXQncyByZWFsbHkgcmVsZXZhbnQpLiBUaGVu IGFueW9uZSBtaXNwbGFjaW5nIGEgbmV3IHRlbXBsYXRlIGluDQo+IHRoZSBvcGNvZGUgdGFibGUg d291bGQgc2ltcGx5IG9ic2VydmUgdGhhdCBhbiBleHBlY3RlZCBvcHRpbWl6YXRpb24gZG9lc24n dA0KPiBoYXBwZW4sIGFuZCB0aGV5IHN1cmVseSB3b3VsZCBmaW5kIHRoZSBjb25kaXRpb25hbCB3 aXRoIGl0cyBjb21tZW50Lg0KPg0KDQpJZiB3ZSBkb24ndCByZW9yZGVyIGkzODYudGJsLCBJIHdp bGwgY29uc2lkZXIgdG8gbW9kaWZ5IHQgPSBjdXJyZW50X3RlbXBsYXRlcy0+c3RhcnQgLSAxIHRv DQoNCklmICh0ICE9IGN1cnJlbnRfdGVtcGxhdGVzLT5zdGFydCkNCiAgIHQgPSBjdXJyZW50X3Rl bXBsYXRlcy0+c3RhcnQgLSAxOw0KIA0KPg0KPiBGb3IgYWxsIG9mIHRoZSBjaGFuZ2VzIGJlbG93 ICh3aGljaCBhcmUgYSBsaXR0bGUgaGFyZCB0byByZXZpZXcgaW4gZW1haWwpLCBhaXVpIHRoZXkN Cj4gb25seSBhZGQgQyBhcyBuZWVkZWQuIEkgb25jZSBhZ2FpbiB3b3VsZCBwcmVmZXIgaWYgdGhh dCBhdHRyaWJ1dGUgY291bGQgYmUgYWRkZWQNCj4gcmlnaHQgYXMgdGhlIHRlbXBsYXRlcyBhcmUg aW50cm9kdWNlZCwgd2l0aCB0aGUgZGVzY3JpcHRpb24gc3RhdGluZyB0aGUgaW50ZW50aW9uDQo+ IGFuZCB0aGF0IHRoZSBhY3R1YWwgdXNlIG9mIHRoZSBhdHRyaWJ1dGUgd2lsbCBiZSBhZGRlZCBs YXRlciAoaS5lLiBhcyBleHByZXNzZWQNCj4gZWFybGllciBhbHJlYWR5IGZvciBORikuDQo+DQoN CkFmdGVyIHRoZSBjaGFuZ2VzIGFyZSBmaW5hbGl6ZWQsIEknbGwgYnJlYWsgb3V0IHRoaXMgcGFy dCBvZiB0aGUgbW9kaWZpY2F0aW9uIHRoYXQgYWRkcyB0aGUgQyB0byBsaWxpIHNvIHNoZSBjYW4g cHV0IGl0IHdoZXJlIGl0IGJlbG9uZ3MuDQoNCkJScywNCkxpbg0K