From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id 7E0E63858298 for ; Sun, 16 Jul 2023 02:19:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7E0E63858298 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689473941; x=1721009941; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=cpIzAOdu0C0jquTuh97TtHCftlF3YbZ8S8GilNVi2go=; b=P8RWedqv95rQq/VwoUt+W3ibIclJ7+4h8hInICvR8mJRToJVVuObDKyz cms9n7O8pLjHIxkRojnvwEbgc2n70uea7bGwJU9pZy4f8coTO958Be1yH hkIwOE27BH9dOqCoG8gj8TY6CYdE0FesZhNWQEdHn3MdG0L54oxsqmu7S G5HDPGV+a40Mr0kvq12Yq/VIsLYYeUR+hmgqKhu7RP1g0v8YaAy0ilP3i 7J59f+14tIISoVIZLV1VVwnPxTTYPk2an+WtaX7COrGdnxYKSMf6HYmUs w6Yg6XkIVDQNWvB2HME1nO+fdnMbHSu1L0KwWgRi8EIiOY9+dbZG32CZ/ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10772"; a="452096787" X-IronPort-AV: E=Sophos;i="6.01,209,1684825200"; d="scan'208";a="452096787" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jul 2023 19:18:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10772"; a="752475196" X-IronPort-AV: E=Sophos;i="6.01,209,1684825200"; d="scan'208";a="752475196" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga008.jf.intel.com with ESMTP; 15 Jul 2023 19:18:59 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Sat, 15 Jul 2023 19:18:59 -0700 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.27 via Frontend Transport; Sat, 15 Jul 2023 19:18:59 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.169) 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.27; Sat, 15 Jul 2023 19:18:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nO/Hzh53lVx5ZmitE8Rv62yOP/V6mlSBZrQR5AvJX79/z1A3aLsnbLJt8ewDDKk01DA6rF7vxZVKGDX4cLoxBxS72YR0LguvMm2Hb1HxcAfCCWwZ2P0pHSS6ZgSGxI0fEubo9tmz9s8iQod5Of1eV6oo2xi2gbEvgufTjzFyO+CiUszHN8f5KzW0v7VR9bUU4hUSdl7baXAvVLCseJ1ddyIq5DPybrUCiLiOHDnyqIRTlI4tL6PmU2EmctIPI6MDwkmA4Xrahc7r56ZwyipVH2xKAg3INoprKObjdOQk6ELPerTpLJUzv0pLE0BQqslJsiG7kYelvPEmnBXcRGIRLg== 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=cpIzAOdu0C0jquTuh97TtHCftlF3YbZ8S8GilNVi2go=; b=KXi0D4ZgJQv7j1vD3wfUnrQqH9XInU8G0qfOVfzXx75bxH47zwjK8C+eIc+kfUrM+WFeocoUIIZsfl8RmBPjTp9fzDkJ7j84j0NXh8WrUGGpl0uQmOaEb/aiNgntQURsoynuUsMtcydUq1EzyCc3Mny9PCKe0+vnav/UKg2TiIBQqUhBqus3wML6K1Gx3hG0XJzjW0+CbRFQU9eYzU2K6geH7ZCfNSDVMWioNfP7V0HP27BVK62fN+2zmqdRjhJWTfh7cCq4Ti4jDRy7tJL/qQi1uDWe1ktO8u84DTS/M3sD8cXVZ2ZtD5RR+VSrKFelJzgYLTkWveS5q47nRu8+RA== 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 MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by MW3PR11MB4569.namprd11.prod.outlook.com (2603:10b6:303:54::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.31; Sun, 16 Jul 2023 02:18:57 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73%6]) with mapi id 15.20.6565.028; Sun, 16 Jul 2023 02:18:57 +0000 From: "Li, Pan2" To: =?utf-8?B?6ZKf5bGF5ZOy?= , kito.cheng CC: gcc-patches , kito.cheng , palmer , rdapp.gcc , Jeff Law Subject: RE: Re: [PATCH] RISC-V: Support non-SLP unordered reduction Thread-Topic: Re: [PATCH] RISC-V: Support non-SLP unordered reduction Thread-Index: AQHZtk8mxhZpb3rF/EWGF67fFoV3ya+5M4SAgAAD4VqAAnNU4A== Date: Sun, 16 Jul 2023 02:18:56 +0000 Message-ID: References: <20230714123038.1017670-1-juzhe.zhong@rivai.ai>, <0928E5F7B75873FB+202307142051277469218@rivai.ai> In-Reply-To: <0928E5F7B75873FB+202307142051277469218@rivai.ai> 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: MW5PR11MB5908:EE_|MW3PR11MB4569:EE_ x-ms-office365-filtering-correlation-id: d5ab6a2d-d266-4a89-d16c-08db85a3024b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1JmZ5a00+ygzU8NtJDxP0PFsRhsiNkozr+7cRr7/bGc1xuzJw+wnIhQf0vBznlVop4AH7fCPKrP8fgVABBUdaPYqB1HhYR0tolcc+CFmsCS1jNF6oWXIlkoCrlKV/1StqXNJCNuvD/FJhB/OFPIp21ggOUirItwX6f28HIKL/dYnJV1LbrrvUwtqBa+Hp8+52rp8jINgK+HQHJTesG5Z62iBTemk3SxZUu1tbj0fzqeGV57ZpiRx+9vAb/tJkuxKRDF1mnSubIE7fNAGlwYwuB7LWry3j8XskL8yVLQp+qMlODDiUdFzJ05Tp5fdbHAui1iZdJ5p3YJBxLZuSFx/LunboOB129LiukNfGHat3Kv+qkDGUfonS7MjCqJ3UBYjrOOCBHoiH5yzSao+FSNnLMo5fQ+r+jEL7/T+nlj8wPWuvCvvTAVKR97mPlMvYXRMj50sTXaeA6hwb0lKHhaggXzMfdFtJSnGme7c6gw6mwKozgIS84gGGnO3X2Y8zw6PYTQkhHgkaN/3rKkER7S9N0gFpcX3nXNji2gQZ67PH9rNGMTmCD5wp/Et3W8ake4UXUDJJSaqyB4UOGDCGl5xKJNt92O93CZRVrquqy6Mns09EhfwqiiDHBlxypLRaHe2 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(39860400002)(136003)(366004)(376002)(451199021)(55016003)(54906003)(122000001)(110136005)(82960400001)(38100700002)(7696005)(478600001)(41300700001)(8676002)(5660300002)(71200400001)(52536014)(8936002)(316002)(66946007)(66476007)(66446008)(64756008)(66556008)(4326008)(76116006)(186003)(83380400001)(966005)(53546011)(9686003)(6506007)(26005)(86362001)(33656002)(38070700005)(30864003)(2906002)(84970400001)(579004)(559001)(77204004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S0ZxU2pnMnRVL0lOWDhEZW5lWjF6Nk9GdllWVlRYdjVieUxaWEdkZm43cVRZ?= =?utf-8?B?MzA4ZGN6UmF6aVZsaHRvQzFzT21qcU9vcHNtSjA5Nys5Tm11ZWVDMTlIakxW?= =?utf-8?B?R3pjbFM1a3BUR3NzM20rb0JpZ01VaDg2bUY0Wk1mbFFLdVFvY0c4QVIydE9X?= =?utf-8?B?QjBSc0tBV0JwU2p5c0lmaHpDdE4rTjgwZk9YY1pzcGpsQlVZQlE2U0F0aXRE?= =?utf-8?B?NkZDSXRIRlRTVTd2Yllld3hDaVdDTnpiN1MxTGdEL05pYW41eEZpSzlOWTY5?= =?utf-8?B?NXhHMTE5Ym5JdlNUMHhtOVdiZUFOU01iZi9XL0Y5S0Zsbk90V1RLWCtoZDhM?= =?utf-8?B?aDk1U2ZneGZMdE9EWmdGaFJrL0RoTWJsVHZIMXZyWHNpTlFLd3lGWnhlbmpm?= =?utf-8?B?ZnF4SzdqWk9qWG1ZeHM5WG43TmNhaC9xbkpmSG5Wc1gvd3RBZXh1R0VFbE9k?= =?utf-8?B?bzRQdWVVUXBvdkpneGNyTFpVaThySmFLQjJ4WVZVTER0cWVpeXk3UDZMMWtU?= =?utf-8?B?NHBaWHhoSEhDQkNxRXdkclgvbGViWWdNODVPK3V5Ri9tRTJibGRXNVQ2YWVH?= =?utf-8?B?NjI4cHV4Wjlvd2cwRW4yZXl5VGJnYWtqYVFwWFFDUDArT1d1c0x3amQ3bCtU?= =?utf-8?B?R2RWd2Zzcm5CbHRFVkNzY291SVFCa1cyZSs5TzhmUzR2UGtKQjR1UW9QTXo3?= =?utf-8?B?alA4QjczMXVQWVduTDNGNGp1QUs3bHFKdjVQVnl2QUsxRVAralJ2bm5vU1pI?= =?utf-8?B?SWVZSXhDekZkRURYeWp0RzBkRTVPRXZnUWR2RWswVkNTSXRTRnBMT2ZqSVFN?= =?utf-8?B?b1BoL3VVOVNuaFZKL1ZtOHVoVzdEdmxVOHhkWHd3YlRCb05SUzFUbkRZL1BP?= =?utf-8?B?cFpGWER3QWRRenZtWkJQdlJqV1J5dS9ZTnFseFZvcE5JQ3ZzUnlvd0d0enV1?= =?utf-8?B?Ym9HWnhNRlBibG5STWVwTCtvZ1VuS00xaXRYSVM4U3pUNElGbzRkamViY3Yr?= =?utf-8?B?UW5JVm5BS09lM0w0OXRDWC9oRVlPdW41R0dDQ09QN0h3eXlWRWRaQXNnc3ox?= =?utf-8?B?MmZNdm4xS3hqUmFtcmNGekpkZ3VKVEdtSDA4YlUzd1I5YnBpOUlNbUFDMVhr?= =?utf-8?B?MkE4MTB5WGNFc2kwUFBOL3VId0kwWEVMcVA3RDR0M20rRlJ3Q2VzUmFpOCt3?= =?utf-8?B?Y2t0QXNldVVNVXQ3TjlJeDhEbWNveE9HellURmxpbjYxUVhQTmNsbzVlc1JH?= =?utf-8?B?Mlkvd0V3VGR4UTd0L0JmNnY3bnZsRjBGMXZKUUlDUzVTVG5iWWxkcFNWVEkz?= =?utf-8?B?WFd3SHJnNGoyd3pyanN4NmRhQjJmK3kzWnpoNFhiZ0pJQzFxRHNSSHlNRmpo?= =?utf-8?B?STZRbzhTZzRHa1picVVpVldKZ3cwRW1YMVpxK29reE5Sc20zSEg3andmUGZK?= =?utf-8?B?WDl6RUpyYjJ6bllEMEZZRzNQMlVhMWY0d25BcHhjUWQ4WlJBcXE4TDBxeUlm?= =?utf-8?B?Y0lONVBuUkdGaW0vWmVmcDNXcVU5OXFPODZuM0k0YmVmM3pQTVArRmwzYzNY?= =?utf-8?B?UUtkWmpzcHcwb2lJOTU4U0s0cXVEaHI2Qi9GQWFpazg1MkZxdVE1UFJtRzI3?= =?utf-8?B?UTVoQmR3cEVLdGpDT1ZYKzdjKzZkSDRWWWFhQlNHdnFESUNqZE1YYkplbVAx?= =?utf-8?B?K0RuWjV1WXY4b0xWRkJpRWpPMGt3TUVyU2lGUEo1SWd5Mlp1NHEwSXA2dFdy?= =?utf-8?B?NGZ4cS80V3dYRXhtQXFrNkxjVlhsenI4SDgwZ3U3MjFXb3ZXY3A4QTR4SUlz?= =?utf-8?B?WVNZbC9rUlF4WXNZbXZnVzQwbnVSTGV0YzJJRTR3NXE0SkZLNWUweGxXL1NV?= =?utf-8?B?d3ZWZFZpUzRSVEdrNHI4VVp2RS9tZXZKUnc3UFlES3lsV28vbXJFREFqTm9I?= =?utf-8?B?ZnExWmJpN2RGUlZWNG5pWjhwa3BBd3F2QUNrTURnanN1eDA1VS9ub0ltMUxI?= =?utf-8?B?YTV0RTFuZXVreXNYYzR6TXFTZHFiY0JOS1VGMGtHaGZPNWtiOEphbGhMR2s0?= =?utf-8?B?dWxYMjE3NUk1R3ZsR245RlNzNGlMOFZhQ0JZSzJWQTVmNC9FbXdMOFN2ZUVF?= =?utf-8?Q?4poQ=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: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5ab6a2d-d266-4a89-d16c-08db85a3024b X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jul 2023 02:18:56.7547 (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: deZCF7muPBWtoM5N+QMeekS7d84hUOWf4k7Ux5Pi0ebNx6sxyWv7hRDXovtw1VqUdHY0ytz9GpeSPrZ0sj93cw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4569 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_SHORT,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: RmlsZSBhIHNlcGFyYXRlZCBQQVRDSCB0YXJnZXQgR0NDIDEzIGZvciB0aGlzIGJ1ZyB3aXRoIHJ2 di5leHAgYW5kIHJpc2N2LmV4cCB0ZXN0IHBhc3NlZC4gVW5mb3J0dW5hdGVseSwgaXQgaXMgbm90 IGVhc3kgdG8gcmVwcm9kdWNlIHRoaXMgYnkgSW50cmluc2ljIEFQSS4NCg0KaHR0cHM6Ly9nY2Mu Z251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1KdWx5LzYyNDU3NC5odG1sDQoNClBh bg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogR2NjLXBhdGNoZXMgPGdjYy1w YXRjaGVzLWJvdW5jZXMrcGFuMi5saT1pbnRlbC5jb21AZ2NjLmdudS5vcmc+IE9uIEJlaGFsZiBP ZiA/Pz8NClNlbnQ6IEZyaWRheSwgSnVseSAxNCwgMjAyMyA4OjUxIFBNDQpUbzoga2l0by5jaGVu ZyA8a2l0by5jaGVuZ0BnbWFpbC5jb20+DQpDYzogZ2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdj Yy5nbnUub3JnPjsga2l0by5jaGVuZyA8a2l0by5jaGVuZ0BzaWZpdmUuY29tPjsgcGFsbWVyIDxw YWxtZXJAcml2b3NpbmMuY29tPjsgcmRhcHAuZ2NjIDxyZGFwcC5nY2NAZ21haWwuY29tPjsgSmVm ZiBMYXcgPGplZmZyZXlhbGF3QGdtYWlsLmNvbT4NClN1YmplY3Q6IFJlOiBSZTogW1BBVENIXSBS SVNDLVY6IFN1cHBvcnQgbm9uLVNMUCB1bm9yZGVyZWQgcmVkdWN0aW9uDQoNClNvIHRvIGJlIHNh ZmUsIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGJhY2twb3J0IHRvIEdDQyAxMyBldmVuIHRob3VnaCBJ IGRpZG4ndCBoYXZlIGEgaW50cmluc2ljIHRlc3RjYXNlIHRvIHJlcHJvZHVjZSBpdC4NCg0KDQoN Cmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBLaXRvIENoZW5nDQpEYXRlOiAyMDIzLTA3 LTE0IDIwOjM4DQpUbzog6ZKf5bGF5ZOyDQpDQzogR0NDIFBhdGNoZXM7IEtpdG8gQ2hlbmc7IFBh bG1lciBEYWJiZWx0OyBSb2JpbiBEYXBwOyBKZWZmIExhdw0KU3ViamVjdDogUmU6IFtQQVRDSF0g UklTQy1WOiBTdXBwb3J0IG5vbi1TTFAgdW5vcmRlcmVkIHJlZHVjdGlvbg0KDQoNCjxqdXpoZS56 aG9uZ0ByaXZhaS5haT4g5pa8IDIwMjPlubQ35pyIMTTml6Ug6YCx5LqUIDIwOjMxIOWvq+mBk++8 mg0KRnJvbTogSnUtWmhlIFpob25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCg0KVGhpcyBwYXRj aCBhZGQgcmVkdWNfKl9zY2FsIHRvIHN1cHBvcnQgcmVkdWN0aW9uIGF1dG8tdmVjdG9yaXphdGlv bi4NCg0KVXNlIENPTkRfTEVOXyogKyByZWR1Y18qX3NjYWwgdG8gc3VwcG9ydCB1bm9yZGVyZWQg bm9uLVNMUCBhdXRvLXZlY3Rvcml6YXRpb24uDQoNCkNvbnNpZGVyIHRoaXMgZm9sbG93aW5nIGNh c2U6DQppbnQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KYW5kX2xvb3AgKGludDMyX3QgKiBfX3Jl c3RyaWN0IHgsIA0KaW50MzJfdCBuLCBpbnQgcmVzKQ0Kew0KICBmb3IgKGludCBpID0gMDsgaSA8 IG47ICsraSkNCiAgICByZXMgJj0geFtpXTsNCiAgcmV0dXJuIHJlczsNCn0NCg0KQVNNOg0KYW5k X2xvb3A6DQogICAgICAgIGJsZSAgICAgYTEsemVybywuTDQNCiAgICAgICAgdnNldHZsaSBhMyx6 ZXJvLGUzMixtMSx0YSxtYQ0KICAgICAgICB2bXYudi5pIHYxLC0xDQouTDM6DQogICAgICAgIHZz ZXR2bGkgYTUsYTEsZTMyLG0xLHR1LG1hICAgICAgIC0tLS0tLS0tLS0tLT4gTVVTVCBCRSAiVFUi Lg0KICAgICAgICBzbGxpICAgIGE0LGE1LDINCiAgICAgICAgc3ViICAgICBhMSxhMSxhNQ0KICAg ICAgICB2bGUzMi52IHYyLDAoYTApDQogICAgICAgIGFkZCAgICAgYTAsYTAsYTQNCiAgICAgICAg dmFuZC52diB2MSx2Mix2MQ0KICAgICAgICBibmUgICAgIGExLHplcm8sLkwzDQogICAgICAgIHZz ZXRpdmxpICAgICAgICB6ZXJvLDEsZTMyLG0xLHRhLG1hDQogICAgICAgIHZtdi52LmkgdjIsLTEN CiAgICAgICAgdnNldHZsaSBhMyx6ZXJvLGUzMixtMSx0YSxtYQ0KICAgICAgICB2cmVkYW5kLnZz ICAgICAgdjEsdjEsdjINCiAgICAgICAgdm12LngucyBhNSx2MQ0KICAgICAgICBhbmQgICAgIGEw LGEyLGE1DQogICAgICAgIHJldA0KLkw0Og0KICAgICAgICBtdiAgICAgIGEwLGEyDQogICAgICAg IHJldA0KDQpGaXggYnVnIG9mIFZTRVRWTCBQQVNTIHdoaWNoIGlzIGNhdXNlZCBieSByZWR1Y3Rp b24gdGVzdGNhc2UuDQoNCg0KSXQncyBwZXJmb3JtYW5jZSBidWcgb3IgY29ycmVjdG5lc3MgYnVn PyBEb2VzIGl0J3MgYWxzbyBhcHBlYXJlZCBpbiBnY2MgMTMgaWYgaXQncyBhIGNvcnJlY3RuZXNz IGJ1Zz8NCg0KDQpTTFAgcmVkdWN0aW9uIGFuZCBmbG9hdGluZy1wb2ludCBpbi1vcmRlciByZWR1 Y3Rpb24gYXJlIG5vdCBzdXBwb3J0ZWQgeWV0Lg0KDQpnY2MvQ2hhbmdlTG9nOg0KDQogICAgICAg ICogY29uZmlnL3Jpc2N2L2F1dG92ZWMubWQgKHJlZHVjX3BsdXNfc2NhbF88bW9kZT4pOiBOZXcg cGF0dGVybi4NCiAgICAgICAgKHJlZHVjX3NtYXhfc2NhbF88bW9kZT4pOiBEaXR0by4NCiAgICAg ICAgKHJlZHVjX3VtYXhfc2NhbF88bW9kZT4pOiBEaXR0by4NCiAgICAgICAgKHJlZHVjX3NtaW5f c2NhbF88bW9kZT4pOiBEaXR0by4NCiAgICAgICAgKHJlZHVjX3VtaW5fc2NhbF88bW9kZT4pOiBE aXR0by4NCiAgICAgICAgKHJlZHVjX2FuZF9zY2FsXzxtb2RlPik6IERpdHRvLg0KICAgICAgICAo cmVkdWNfaW9yX3NjYWxfPG1vZGU+KTogRGl0dG8uDQogICAgICAgIChyZWR1Y194b3Jfc2NhbF88 bW9kZT4pOiBEaXR0by4NCiAgICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggKGVu dW0gaW5zbl90eXBlKTogTmV3IGVudW0uDQogICAgICAgIChlbWl0X25vbnZsbWF4X2ludGVnZXJf bW92ZV9pbnNuKTogQWRkIHJlZHVjdGlvbi4NCiAgICAgICAgKGV4cGFuZF9yZWR1Y3Rpb24pOiBO ZXcgZnVuY3Rpb24uDQogICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgKGVtaXRfdmxt YXhfcmVkdWN0aW9uX2luc24pOiBEaXR0by4NCiAgICAgICAgKGVtaXRfdmxtYXhfZnBfcmVkdWN0 aW9uX2luc24pOiBEaXR0by4NCiAgICAgICAgKGdldF9tMV9tb2RlKTogRGl0dG8uDQogICAgICAg IChleHBhbmRfY29uZF9sZW5fYmlub3ApOiBGaXggbmFtZS4NCiAgICAgICAgKGV4cGFuZF9yZWR1 Y3Rpb24pOiBOZXcgZnVuY3Rpb24uDQogICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2 bC5jYyAoZ2VuX3ZzZXR2bF9wYXQpOiBGaXggYnVnLg0KICAgICAgICAoY2hhbmdlX2luc24pOiBE aXR0by4NCiAgICAgICAgKGNoYW5nZV92c2V0dmxfaW5zbik6IERpdHRvLg0KICAgICAgICAocGFz c192c2V0dmw6OmJhY2t3YXJkX2RlbWFuZF9mdXNpb24pOiBEaXR0by4NCg0KZ2NjL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6DQoNCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9ydnYuZXhwOiBB ZGQgcmVkdWN0aW9uIHRlc3RzLg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvcmVkdWMvcmVkdWMtMS5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTIuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0zLmM6IE5ldyB0ZXN0Lg0KICAgICAg ICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtNC5jOiBOZXcgdGVz dC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1 bi0xLmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMv cmVkdWMvcmVkdWNfcnVuLTIuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNj di9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tMy5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1bi00LmM6IE5ldyB0ZXN0 Lg0KDQotLS0NCiBnY2MvY29uZmlnL3Jpc2N2L2F1dG92ZWMubWQgICAgICAgICAgICAgICAgICAg fCAxMzggKysrKysrKysrKysrKysrKysrDQogZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3Mu aCAgICAgICAgICAgICAgIHwgICAzICsNCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgICAg ICAgICAgICAgICAgICAgfCAgODQgKysrKysrKysrKy0NCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZzZXR2bC5jYyAgICAgICAgICAgICAgfCAgMjggKysrLQ0KIC4uLi9yaXNjdi9ydnYvYXV0b3Zl Yy9yZWR1Yy9yZWR1Yy0xLmMgICAgICAgICB8IDExOCArKysrKysrKysrKysrKysNCiAuLi4vcmlz Y3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMi5jICAgICAgICAgfCAxMjkgKysrKysrKysrKysr KysrKw0KIC4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0zLmMgICAgICAgICB8ICA2 NSArKysrKysrKysNCiAuLi4vcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtNC5jICAgICAg ICAgfCAgNTkgKysrKysrKysNCiAuLi4vcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVu LTEuYyAgICAgfCAgNTYgKysrKysrKw0KIC4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1 Y19ydW4tMi5jICAgICB8ICA3OSArKysrKysrKysrDQogLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3Jl ZHVjL3JlZHVjX3J1bi0zLmMgICAgIHwgIDQ5ICsrKysrKysNCiAuLi4vcmlzY3YvcnZ2L2F1dG92 ZWMvcmVkdWMvcmVkdWNfcnVuLTQuYyAgICAgfCAgNjYgKysrKysrKysrDQogZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9ydnYuZXhwICAgIHwgICAyICsNCiAxMyBmaWxlcyBjaGFu Z2VkLCA4NjggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkNCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVj LTEuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMi5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0zLmMNCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3JlZHVjL3JlZHVjLTQuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTEuYw0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMv cmVkdWNfcnVuLTIuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTMuYw0KIGNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVk dWNfcnVuLTQuYw0KDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9hdXRvdmVjLm1kIGIv Z2NjL2NvbmZpZy9yaXNjdi9hdXRvdmVjLm1kDQppbmRleCAwNDc2YjFkZWE0NS4uYTc0ZjY2ZjQx YWMgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L2F1dG92ZWMubWQNCisrKyBiL2djYy9j b25maWcvcmlzY3YvYXV0b3ZlYy5tZA0KQEAgLTE1MzEsMyArMTUzMSwxNDEgQEANCiAgIHJpc2N2 X3ZlY3Rvcjo6ZXhwYW5kX2NvbmRfbGVuX2Jpbm9wICg8Q09ERT4sIG9wZXJhbmRzKTsNCiAgIERP TkU7DQogfSkNCisNCis7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorOzsgPT0gUmVkdWN0aW9ucw0KKzs7 ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCisNCis7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorOzsgLS0tLSBbSU5U XSBUcmVlIHJlZHVjdGlvbnMNCis7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorOzsgSW5jbHVkZXM6DQor OzsgLSB2cmVkc3VtLnZzDQorOzsgLSB2cmVkbWF4dS52cw0KKzs7IC0gdnJlZG1heC52cw0KKzs7 IC0gdnJlZG1pbnUudnMNCis7OyAtIHZyZWRtaW4udnMNCis7OyAtIHZyZWRhbmQudnMNCis7OyAt IHZyZWRvci52cw0KKzs7IC0gdnJlZHhvci52cw0KKzs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCiso ZGVmaW5lX2V4cGFuZCAicmVkdWNfcGx1c19zY2FsXzxtb2RlPiINCisgIFsobWF0Y2hfb3BlcmFu ZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpWSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiINCit7DQorICByaXNjdl92ZWN0 b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKFBMVVMsIG9wZXJhbmRzLCBDT05TVDBfUlRYICg8VkVMPm1v ZGUpKTsNCisgIERPTkU7DQorfSkNCisNCisoZGVmaW5lX2V4cGFuZCAicmVkdWNfc21heF9zY2Fs Xzxtb2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIikN CisgICAobWF0Y2hfb3BlcmFuZDpWSSAxICJyZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFSR0VU X1ZFQ1RPUiINCit7DQorICBpbnQgcHJlYyA9IEdFVF9NT0RFX1BSRUNJU0lPTiAoPFZFTD5tb2Rl KTsNCisgIHJ0eCBtaW4gPSBpbW1lZF93aWRlX2ludF9jb25zdCAod2k6Om1pbl92YWx1ZSAocHJl YywgU0lHTkVEKSwgPFZFTD5tb2RlKTsNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3JlZHVjdGlv biAoU01BWCwgb3BlcmFuZHMsIG1pbik7DQorICBET05FOw0KK30pDQorDQorKGRlZmluZV9leHBh bmQgInJlZHVjX3VtYXhfc2NhbF88bW9kZT4iDQorICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAi cmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJfb3Bl cmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQorew0KKyAgcmlzY3ZfdmVjdG9yOjpleHBhbmRf cmVkdWN0aW9uIChVTUFYLCBvcGVyYW5kcywgQ09OU1QwX1JUWCAoPFZFTD5tb2RlKSk7DQorICBE T05FOw0KK30pDQorDQorKGRlZmluZV9leHBhbmQgInJlZHVjX3NtaW5fc2NhbF88bW9kZT4iDQor ICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgKG1hdGNo X29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJfb3BlcmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQor ew0KKyAgaW50IHByZWMgPSBHRVRfTU9ERV9QUkVDSVNJT04gKDxWRUw+bW9kZSk7DQorICBydHgg bWF4ID0gaW1tZWRfd2lkZV9pbnRfY29uc3QgKHdpOjptYXhfdmFsdWUgKHByZWMsIFNJR05FRCks IDxWRUw+bW9kZSk7DQorICByaXNjdl92ZWN0b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKFNNSU4sIG9w ZXJhbmRzLCBtYXgpOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJyZWR1Y191 bWluX3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29w ZXJhbmQiKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZJIDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisg ICJUQVJHRVRfVkVDVE9SIg0KK3sNCisgIGludCBwcmVjID0gR0VUX01PREVfUFJFQ0lTSU9OICg8 VkVMPm1vZGUpOw0KKyAgcnR4IG1heCA9IGltbWVkX3dpZGVfaW50X2NvbnN0ICh3aTo6bWF4X3Zh bHVlIChwcmVjLCBVTlNJR05FRCksIDxWRUw+bW9kZSk7DQorICByaXNjdl92ZWN0b3I6OmV4cGFu ZF9yZWR1Y3Rpb24gKFVNSU4sIG9wZXJhbmRzLCBtYXgpOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhk ZWZpbmVfZXhwYW5kICJyZWR1Y19hbmRfc2NhbF88bW9kZT4iDQorICBbKG1hdGNoX29wZXJhbmQ6 PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVn aXN0ZXJfb3BlcmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQorew0KKyAgcmlzY3ZfdmVjdG9y OjpleHBhbmRfcmVkdWN0aW9uIChBTkQsIG9wZXJhbmRzLCBDT05TVE0xX1JUWCAoPFZFTD5tb2Rl KSk7DQorICBET05FOw0KK30pDQorDQorKGRlZmluZV9leHBhbmQgInJlZHVjX2lvcl9zY2FsXzxt b2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIikNCisg ICAobWF0Y2hfb3BlcmFuZDpWSSAxICJyZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFSR0VUX1ZF Q1RPUiINCit7DQorICByaXNjdl92ZWN0b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKElPUiwgb3BlcmFu ZHMsIENPTlNUMF9SVFggKDxWRUw+bW9kZSkpOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhkZWZpbmVf ZXhwYW5kICJyZWR1Y194b3Jfc2NhbF88bW9kZT4iDQorICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4g MCAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJf b3BlcmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQorew0KKyAgcmlzY3ZfdmVjdG9yOjpleHBh bmRfcmVkdWN0aW9uIChYT1IsIG9wZXJhbmRzLCBDT05TVDBfUlRYICg8VkVMPm1vZGUpKTsNCisg IERPTkU7DQorfSkNCisNCis7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorOzsgLS0tLSBbRlBdIFRyZWUg cmVkdWN0aW9ucw0KKzs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCis7OyBJbmNsdWRlczoNCis7OyAtIHZm cmVkdXN1bS52cw0KKzs7IC0gdmZyZWRtYXgudnMNCis7OyAtIHZmcmVkbWluLnZzDQorOzsgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJyZWR1Y19wbHVzX3NjYWxfPG1vZGU+ Ig0KKyAgWyhtYXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgICht YXRjaF9vcGVyYW5kOlZGIDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisgICJUQVJHRVRfVkVDVE9S Ig0KK3sNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3JlZHVjdGlvbiAoUExVUywgb3BlcmFuZHMs IENPTlNUMF9SVFggKDxWRUw+bW9kZSkpOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhkZWZpbmVfZXhw YW5kICJyZWR1Y19zbWF4X3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRjaF9vcGVyYW5kOjxWRUw+IDAg InJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZGIDEgInJlZ2lzdGVyX29w ZXJhbmQiKV0NCisgICJUQVJHRVRfVkVDVE9SIg0KK3sNCisgIFJFQUxfVkFMVUVfVFlQRSBydjsN CisgIHJlYWxfaW5mICgmcnYsIHRydWUpOw0KKyAgcnR4IGYgPSBjb25zdF9kb3VibGVfZnJvbV9y ZWFsX3ZhbHVlIChydiwgPFZFTD5tb2RlKTsNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3JlZHVj dGlvbiAoU01BWCwgb3BlcmFuZHMsIGYpOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhkZWZpbmVfZXhw YW5kICJyZWR1Y19zbWluX3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRjaF9vcGVyYW5kOjxWRUw+IDAg InJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZGIDEgInJlZ2lzdGVyX29w ZXJhbmQiKV0NCisgICJUQVJHRVRfVkVDVE9SIg0KK3sNCisgIFJFQUxfVkFMVUVfVFlQRSBydjsN CisgIHJlYWxfaW5mICgmcnYsIGZhbHNlKTsNCisgIHJ0eCBmID0gY29uc3RfZG91YmxlX2Zyb21f cmVhbF92YWx1ZSAocnYsIDxWRUw+bW9kZSk7DQorICByaXNjdl92ZWN0b3I6OmV4cGFuZF9yZWR1 Y3Rpb24gKFNNSU4sIG9wZXJhbmRzLCBmKTsNCisgIERPTkU7DQorfSkNCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1w cm90b3MuaA0KaW5kZXggMWE2MjJjNThmNGIuLmYxOWI3ZmMyYjhkIDEwMDY0NA0KLS0tIGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di1wcm90b3MuaA0KQEAgLTE5Nyw2ICsxOTcsNyBAQCBlbnVtIGluc25fdHlwZQ0KICAgUlZWX0NP TVBSRVNTX09QID0gNCwNCiAgIFJWVl9HQVRIRVJfTV9PUCA9IDUsDQogICBSVlZfU0NBVFRFUl9N X09QID0gNCwNCisgIFJWVl9SRURVQ1RJT05fT1AgPSAzLA0KIH07DQogZW51bSB2bG11bF90eXBl DQogew0KQEAgLTI0Nyw2ICsyNDgsNyBAQCB2b2lkIGVtaXRfdmxtYXhfY21wX211X2luc24gKHVu c2lnbmVkLCBydHggKik7DQogdm9pZCBlbWl0X3ZsbWF4X21hc2tlZF9tdV9pbnNuICh1bnNpZ25l ZCwgaW50LCBydHggKik7DQogdm9pZCBlbWl0X3NjYWxhcl9tb3ZlX2luc24gKHVuc2lnbmVkLCBy dHggKik7DQogdm9pZCBlbWl0X25vbnZsbWF4X2ludGVnZXJfbW92ZV9pbnNuICh1bnNpZ25lZCwg cnR4ICosIHJ0eCk7DQorLy92b2lkIGVtaXRfdmxtYXhfcmVkdWN0aW9uX2luc24gKHVuc2lnbmVk LCBydHggKik7DQogZW51bSB2bG11bF90eXBlIGdldF92bG11bCAobWFjaGluZV9tb2RlKTsNCiB1 bnNpZ25lZCBpbnQgZ2V0X3JhdGlvIChtYWNoaW5lX21vZGUpOw0KIHVuc2lnbmVkIGludCBnZXRf bmYgKG1hY2hpbmVfbW9kZSk7DQpAQCAtMjgwLDYgKzI4Miw3IEBAIGJvb2wgaGFzX3ZpX3Zhcmlh bnRfcCAocnR4X2NvZGUsIHJ0eCk7DQogdm9pZCBleHBhbmRfdmVjX2NtcCAocnR4LCBydHhfY29k ZSwgcnR4LCBydHgpOw0KIGJvb2wgZXhwYW5kX3ZlY19jbXBfZmxvYXQgKHJ0eCwgcnR4X2NvZGUs IHJ0eCwgcnR4LCBib29sKTsNCiB2b2lkIGV4cGFuZF9jb25kX2xlbl9iaW5vcCAocnR4X2NvZGUs IHJ0eCAqKTsNCit2b2lkIGV4cGFuZF9yZWR1Y3Rpb24gKHJ0eF9jb2RlLCBydHggKiwgcnR4KTsN CiAjZW5kaWYNCiBib29sIHNldzY0X3NjYWxhcl9oZWxwZXIgKHJ0eCAqLCBydHggKiwgcnR4LCBt YWNoaW5lX21vZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wsIHZvaWQgKCopKHJ0 eCAqLCBydHgpKTsNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MNCmluZGV4IDkwZGE2Mzg4OWJkLi5jY2YwZjZmZjg1 MiAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYw0KKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12LmNjDQpAQCAtMTEzNyw2ICsxMTM3LDQzIEBAIGVtaXRfdmxtYXhf Y29tcHJlc3NfaW5zbiAodW5zaWduZWQgaWNvZGUsIHJ0eCAqb3BzKQ0KICAgZS5lbWl0X2luc24g KChlbnVtIGluc25fY29kZSkgaWNvZGUsIG9wcyk7DQogfQ0KDQorLyogRW1pdCByZWR1Y3Rpb24g aW5zdHJ1Y3Rpb24uICAqLw0KK3N0YXRpYyB2b2lkDQorZW1pdF92bG1heF9yZWR1Y3Rpb25faW5z biAodW5zaWduZWQgaWNvZGUsIGludCBvcF9udW0sIHJ0eCAqb3BzKQ0KK3sNCisgIG1hY2hpbmVf bW9kZSBkZXN0X21vZGUgPSBHRVRfTU9ERSAob3BzWzBdKTsNCisgIG1hY2hpbmVfbW9kZSBtYXNr X21vZGUgPSBnZXRfbWFza19tb2RlIChHRVRfTU9ERSAob3BzWzFdKSkucmVxdWlyZSAoKTsNCisg IGluc25fZXhwYW5kZXI8UlZWX0lOU05fT1BFUkFORFNfTUFYPiBlIChvcF9udW0sDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBIQVNfREVTVF9QICovIHRydWUs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGVUxMWV9VTk1B U0tFRF9QICovIHRydWUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBVU0VfUkVBTF9NRVJHRV9QICovIGZhbHNlLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogSEFTX0FWTF9QICovIHRydWUsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBWTE1BWF9QICovIHRydWUsIGRlc3RfbW9kZSwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2tfbW9kZSk7DQor DQorICBlLnNldF9wb2xpY3kgKFRBSUxfQU5ZKTsNCisgIGUuZW1pdF9pbnNuICgoZW51bSBpbnNu X2NvZGUpIGljb2RlLCBvcHMpOw0KK30NCisNCisvKiBFbWl0IHJlZHVjdGlvbiBpbnN0cnVjdGlv bi4gICovDQorc3RhdGljIHZvaWQNCitlbWl0X3ZsbWF4X2ZwX3JlZHVjdGlvbl9pbnNuICh1bnNp Z25lZCBpY29kZSwgaW50IG9wX251bSwgcnR4ICpvcHMpDQorew0KKyAgbWFjaGluZV9tb2RlIGRl c3RfbW9kZSA9IEdFVF9NT0RFIChvcHNbMF0pOw0KKyAgbWFjaGluZV9tb2RlIG1hc2tfbW9kZSA9 IGdldF9tYXNrX21vZGUgKEdFVF9NT0RFIChvcHNbMV0pKS5yZXF1aXJlICgpOw0KKyAgaW5zbl9l eHBhbmRlcjxSVlZfSU5TTl9PUEVSQU5EU19NQVg+IGUgKG9wX251bSwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEhBU19ERVNUX1AgKi8gdHJ1ZSwNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZVTExZX1VOTUFTS0VEX1Ag Ki8gdHJ1ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVT RV9SRUFMX01FUkdFX1AgKi8gZmFsc2UsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBIQVNfQVZMX1AgKi8gdHJ1ZSwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIFZMTUFYX1AgKi8gdHJ1ZSwgZGVzdF9tb2RlLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza19tb2RlKTsNCisNCisgIGUu c2V0X3BvbGljeSAoVEFJTF9BTlkpOw0KKyAgZS5zZXRfcm91bmRpbmdfbW9kZSAoRlJNX0RZTik7 DQorICBlLmVtaXRfaW5zbiAoKGVudW0gaW5zbl9jb2RlKSBpY29kZSwgb3BzKTsNCit9DQorDQog LyogRW1pdCBtZXJnZSBpbnN0cnVjdGlvbi4gICovDQoNCiBzdGF0aWMgbWFjaGluZV9tb2RlDQpA QCAtMTYyOSw2ICsxNjY2LDE3IEBAIGdldF9tYXNrX21vZGUgKG1hY2hpbmVfbW9kZSBtb2RlKQ0K ICAgcmV0dXJuIGdldF92ZWN0b3JfbW9kZSAoQkltb2RlLCBHRVRfTU9ERV9OVU5JVFMgKG1vZGUp KTsNCiB9DQoNCisvKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIE0xIG1vZGUgZm9yIE1PREUuICAq Lw0KKw0KK3N0YXRpYyBvcHRfbWFjaGluZV9tb2RlDQorZ2V0X20xX21vZGUgKG1hY2hpbmVfbW9k ZSBtb2RlKQ0KK3sNCisgIHNjYWxhcl9tb2RlIHNtb2RlID0gR0VUX01PREVfSU5ORVIgKG1vZGUp Ow0KKyAgdW5zaWduZWQgaW50IGJ5dGVzID0gR0VUX01PREVfU0laRSAoc21vZGUpOw0KKyAgcG9s eV91aW50NjQgbTFfbnVuaXRzID0gZXhhY3RfZGl2IChCWVRFU19QRVJfUklTQ1ZfVkVDVE9SLCBi eXRlcyk7DQorICByZXR1cm4gZ2V0X3ZlY3Rvcl9tb2RlIChzbW9kZSwgbTFfbnVuaXRzKTsNCit9 DQorDQogLyogUmV0dXJuIHRoZSBSVlYgdmVjdG9yIG1vZGUgdGhhdCBoYXMgTlVOSVRTIGVsZW1l bnRzIG9mIG1vZGUgSU5ORVJfTU9ERS4NCiAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBvbmx5IHVz ZWQgYnkgYnVpbHRpbnMsIGJ1dCBhbHNvIHdpbGwgYmUgdXNlZCBieQ0KICAgIGF1dG8tdmVjdG9y aXphdGlvbiBpbiB0aGUgZnV0dXJlLiAgKi8NCkBAIC0zMDk5LDkgKzMxNDcsOSBAQCBleHBhbmRf Y29uZF9sZW5fYmlub3AgKHJ0eF9jb2RlIGNvZGUsIHJ0eCAqb3BzKQ0KICAgICAgIHJ0eCBvcHNb XSA9IHtkZXN0LCBtYXNrLCBtZXJnZSwgc3JjMSwgc3JjMn07DQogICAgICAgaW5zbl9jb2RlIGlj b2RlID0gY29kZV9mb3JfcHJlZCAoY29kZSwgbW9kZSk7DQogICAgICAgaWYgKG5lZWRzX2ZwX3Jv dW5kaW5nIChjb2RlLCBtb2RlKSkNCi0gICAgICAgZW1pdF9ub252bG1heF9mcF90dV9pbnNuIChp Y29kZSwgUlZWX0JJTk9QX01VLCBvcHMsIGxlbik7DQorICAgICAgIGVtaXRfbm9udmxtYXhfZnBf dHVfaW5zbiAoaWNvZGUsIFJWVl9CSU5PUF9UVSwgb3BzLCBsZW4pOw0KICAgICAgIGVsc2UNCi0g ICAgICAgZW1pdF9ub252bG1heF90dV9pbnNuIChpY29kZSwgUlZWX0JJTk9QX01VLCBvcHMsIGxl bik7DQorICAgICAgIGVtaXRfbm9udmxtYXhfdHVfaW5zbiAoaWNvZGUsIFJWVl9CSU5PUF9UVSwg b3BzLCBsZW4pOw0KICAgICB9DQogICBlbHNlDQogICAgIC8qIEZJWE1FOiBFbmFibGUgdGhpcyBj YXNlIHdoZW4gd2Ugc3VwcG9ydCBpdCBpbiB0aGUgbWlkZGxlLWVuZC4gICovDQpAQCAtMzI2Nyw0 ICszMzE1LDM2IEBAIGV4cGFuZF9nYXRoZXJfc2NhdHRlciAocnR4ICpvcHMsIGJvb2wgaXNfbG9h ZCkNCiAgICAgfQ0KIH0NCg0KKy8qIEV4cGFuZCByZWR1Y3Rpb24gb3BlcmF0aW9ucy4gICovDQor dm9pZA0KK2V4cGFuZF9yZWR1Y3Rpb24gKHJ0eF9jb2RlIGNvZGUsIHJ0eCAqb3BzLCBydHggaW5p dCkNCit7DQorICBtYWNoaW5lX21vZGUgdm1vZGUgPSBHRVRfTU9ERSAob3BzWzFdKTsNCisgIG1h Y2hpbmVfbW9kZSBtMV9tb2RlID0gZ2V0X20xX21vZGUgKHZtb2RlKS5yZXF1aXJlICgpOw0KKyAg bWFjaGluZV9tb2RlIG0xX21tb2RlID0gZ2V0X21hc2tfbW9kZSAobTFfbW9kZSkucmVxdWlyZSAo KTsNCisNCisgIHJ0eCBtMV90bXAgPSBnZW5fcmVnX3J0eCAobTFfbW9kZSk7DQorICBydHggbTFf bWFzayA9IGdlbl9zY2FsYXJfbW92ZV9tYXNrIChtMV9tbW9kZSk7DQorICBydHggbTFfdW5kZWYg PSBSVlZfVlVOREVGIChtMV9tb2RlKTsNCisgIHJ0eCBzY2FsYXJfbW92ZV9vcHNbXSA9IHttMV90 bXAsIG0xX21hc2ssIG0xX3VuZGVmLCBpbml0fTsNCisgIGVtaXRfc2NhbGFyX21vdmVfaW5zbiAo Y29kZV9mb3JfcHJlZF9icm9hZGNhc3QgKG0xX21vZGUpLCBzY2FsYXJfbW92ZV9vcHMpOw0KKw0K KyAgcnR4IG0xX3RtcDIgPSBnZW5fcmVnX3J0eCAobTFfbW9kZSk7DQorICBydHggcmVkdWNfb3Bz W10gPSB7bTFfdG1wMiwgb3BzWzFdLCBtMV90bXB9Ow0KKw0KKyAgaWYgKEZMT0FUX01PREVfUCAo dm1vZGUpICYmIGNvZGUgPT0gUExVUykNCisgICAgew0KKyAgICAgIGluc25fY29kZSBpY29kZQ0K KyAgICAgICA9IGNvZGVfZm9yX3ByZWRfcmVkdWNfcGx1cyAoVU5TUEVDX1VOT1JERVJFRCwgdm1v ZGUsIG0xX21vZGUpOw0KKyAgICAgIGVtaXRfdmxtYXhfZnBfcmVkdWN0aW9uX2luc24gKGljb2Rl LCBSVlZfUkVEVUNUSU9OX09QLCByZWR1Y19vcHMpOw0KKyAgICB9DQorICBlbHNlDQorICAgIHsN CisgICAgICBpbnNuX2NvZGUgaWNvZGUgPSBjb2RlX2Zvcl9wcmVkX3JlZHVjIChjb2RlLCB2bW9k ZSwgbTFfbW9kZSk7DQorICAgICAgZW1pdF92bG1heF9yZWR1Y3Rpb25faW5zbiAoaWNvZGUsIFJW Vl9SRURVQ1RJT05fT1AsIHJlZHVjX29wcyk7DQorICAgIH0NCisNCisgIGVtaXRfaW5zbiAoZ2Vu X3ByZWRfZXh0cmFjdF9maXJzdCAobTFfbW9kZSwgb3BzWzBdLCBtMV90bXAyKSk7DQorfQ0KKw0K IH0gLy8gbmFtZXNwYWNlIHJpc2N2X3ZlY3Rvcg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdnNldHZsLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwuY2MNCmlu ZGV4IDU4NmRjOGU1Mzc5Li45N2E5ZGFkOGE3NyAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdnNldHZsLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2bC5j Yw0KQEAgLTY0Niw3ICs2NDYsOCBAQCBnZW5fdnNldHZsX3BhdCAoZW51bSB2c2V0dmxfdHlwZSBp bnNuX3R5cGUsIGNvbnN0IHZsX3Z0eXBlX2luZm8gJmluZm8sIHJ0eCB2bCkNCiB9DQoNCiBzdGF0 aWMgcnR4DQotZ2VuX3ZzZXR2bF9wYXQgKHJ0eF9pbnNuICpyaW5zbiwgY29uc3QgdmVjdG9yX2lu c25faW5mbyAmaW5mbykNCitnZW5fdnNldHZsX3BhdCAocnR4X2luc24gKnJpbnNuLCBjb25zdCB2 ZWN0b3JfaW5zbl9pbmZvICZpbmZvLA0KKyAgICAgICAgICAgICAgIHJ0eCB2bCA9IE5VTExfUlRY KQ0KIHsNCiAgIHJ0eCBuZXdfcGF0Ow0KICAgdmxfdnR5cGVfaW5mbyBuZXdfaW5mbyA9IGluZm87 DQpAQCAtNjU3LDcgKzY1OCw3IEBAIGdlbl92c2V0dmxfcGF0IChydHhfaW5zbiAqcmluc24sIGNv bnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8pDQogICBpZiAodnNldHZsX2luc25fcCAocmluc24p IHx8IHZsbWF4X2F2bF9wIChpbmZvLmdldF9hdmwgKCkpKQ0KICAgICB7DQogICAgICAgcnR4IGRl c3QgPSBnZXRfdmwgKHJpbnNuKTsNCi0gICAgICBuZXdfcGF0ID0gZ2VuX3ZzZXR2bF9wYXQgKFZT RVRWTF9OT1JNQUwsIG5ld19pbmZvLCBkZXN0KTsNCisgICAgICBuZXdfcGF0ID0gZ2VuX3ZzZXR2 bF9wYXQgKFZTRVRWTF9OT1JNQUwsIG5ld19pbmZvLCB2bCA/IHZsIDogZGVzdCk7DQogICAgIH0N CiAgIGVsc2UgaWYgKElOU05fQ09ERSAocmluc24pID09IENPREVfRk9SX3ZzZXR2bF92dHlwZV9j aGFuZ2Vfb25seSkNCiAgICAgbmV3X3BhdCA9IGdlbl92c2V0dmxfcGF0IChWU0VUVkxfVlRZUEVf Q0hBTkdFX09OTFksIG5ld19pbmZvLCBOVUxMX1JUWCk7DQpAQCAtODE4LDcgKzgxOSw4IEBAIGNo YW5nZV9pbnNuIChydHhfaW5zbiAqcmluc24sIHJ0eCBuZXdfcGF0KQ0KICAgICAgIHByaW50X3J0 bF9zaW5nbGUgKGR1bXBfZmlsZSwgUEFUVEVSTiAocmluc24pKTsNCiAgICAgfQ0KDQotICB2YWxp ZGF0ZV9jaGFuZ2UgKHJpbnNuLCAmUEFUVEVSTiAocmluc24pLCBuZXdfcGF0LCBmYWxzZSk7DQor ICBib29sIGNoYW5nZV9wID0gdmFsaWRhdGVfY2hhbmdlIChyaW5zbiwgJlBBVFRFUk4gKHJpbnNu KSwgbmV3X3BhdCwgZmFsc2UpOw0KKyAgZ2NjX2Fzc2VydCAoY2hhbmdlX3ApOw0KDQogICBpZiAo ZHVtcF9maWxlKQ0KICAgICB7DQpAQCAtOTMxLDcgKzkzMyw4IEBAIGNoYW5nZV9pbnNuIChmdW5j dGlvbl9pbmZvICpzc2EsIGluc25fY2hhbmdlIGNoYW5nZSwgaW5zbl9pbmZvICppbnNuLA0KIH0N Cg0KIHN0YXRpYyB2b2lkDQotY2hhbmdlX3ZzZXR2bF9pbnNuIChjb25zdCBpbnNuX2luZm8gKmlu c24sIGNvbnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8pDQorY2hhbmdlX3ZzZXR2bF9pbnNuIChj b25zdCBpbnNuX2luZm8gKmluc24sIGNvbnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8sDQorICAg ICAgICAgICAgICAgICAgIHJ0eCB2bCA9IE5VTExfUlRYKQ0KIHsNCiAgIHJ0eF9pbnNuICpyaW5z bjsNCiAgIGlmICh2ZWN0b3JfY29uZmlnX2luc25fcCAoaW5zbi0+cnRsICgpKSkNCkBAIC05NDUs NyArOTQ4LDcgQEAgY2hhbmdlX3ZzZXR2bF9pbnNuIChjb25zdCBpbnNuX2luZm8gKmluc24sIGNv bnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8pDQogICAgICAgcmluc24gPSBQUkVWX0lOU04gKGlu c24tPnJ0bCAoKSk7DQogICAgICAgZ2NjX2Fzc2VydCAodmVjdG9yX2NvbmZpZ19pbnNuX3AgKHJp bnNuKSk7DQogICAgIH0NCi0gIHJ0eCBuZXdfcGF0ID0gZ2VuX3ZzZXR2bF9wYXQgKHJpbnNuLCBp bmZvKTsNCisgIHJ0eCBuZXdfcGF0ID0gZ2VuX3ZzZXR2bF9wYXQgKHJpbnNuLCBpbmZvLCB2bCk7 DQogICBjaGFuZ2VfaW5zbiAocmluc24sIG5ld19wYXQpOw0KIH0NCg0KQEAgLTMzNzcsNyArMzM4 MCwyMCBAQCBwYXNzX3ZzZXR2bDo6YmFja3dhcmRfZGVtYW5kX2Z1c2lvbiAodm9pZCkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19pbmZvKSkNCiAgICAgICAgICAg ICAgICBjb250aW51ZTsNCg0KLSAgICAgICAgICAgICBjaGFuZ2VfdnNldHZsX2luc24gKG5ld19p bmZvLmdldF9pbnNuICgpLCBuZXdfaW5mbyk7DQorICAgICAgICAgICAgIHJ0eCB2bCA9IE5VTExf UlRYOw0KKyAgICAgICAgICAgICAvKiBCYWNrd2FyZCBWTE1BWCBWTDoNCisgICAgICAgICAgICAg ICAgICBiYiAzOg0KKyAgICAgICAgICAgICAgICAgICAgdnNldGl2bGkgemVybywgMSAuLi4gLT4g dnNldHZsaSB0MSwgemVybw0KKyAgICAgICAgICAgICAgICAgICAgdm12LnMueA0KKyAgICAgICAg ICAgICAgICAgIGJiIDU6DQorICAgICAgICAgICAgICAgICAgICB2c2V0dmxpIHQxLCB6ZXJvIC4u LiAtPiB0byBiZSBlbGlkZWQuDQorICAgICAgICAgICAgICAgICAgICB2bHNlMTYudg0KKw0KKyAg ICAgICAgICAgICAgICAgIFdlIHNob3VsZCBmb3J3YXJkICJ0MSIuICAqLw0KKyAgICAgICAgICAg ICBpZiAoIWJsb2NrX2luZm8ucmVhY2hpbmdfb3V0Lmhhc19hdmxfcmVnICgpDQorICAgICAgICAg ICAgICAgICAmJiB2bG1heF9hdmxfcCAobmV3X2luZm8uZ2V0X2F2bCAoKSkpDQorICAgICAgICAg ICAgICAgdmwgPSBnZXRfdmwgKHByb3AuZ2V0X2luc24gKCktPnJ0bCAoKSk7DQorICAgICAgICAg ICAgIGNoYW5nZV92c2V0dmxfaW5zbiAobmV3X2luZm8uZ2V0X2luc24gKCksIG5ld19pbmZvLCB2 bCk7DQogICAgICAgICAgICAgIGlmIChibG9ja19pbmZvLmxvY2FsX2RlbSA9PSBibG9ja19pbmZv LnJlYWNoaW5nX291dCkNCiAgICAgICAgICAgICAgICBibG9ja19pbmZvLmxvY2FsX2RlbSA9IG5l d19pbmZvOw0KICAgICAgICAgICAgICBibG9ja19pbmZvLnJlYWNoaW5nX291dCA9IG5ld19pbmZv Ow0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9yZWR1Yy9yZWR1Yy0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvcmVkdWMvcmVkdWMtMS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjBkNTQzYWYxM2NhDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMS5jDQpAQCAtMCwwICsxLDEx OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzJkIC0tcGFyYW09cmlzY3YtYXV0b3Zl Yy1wcmVmZXJlbmNlPXNjYWxhYmxlIC1mZmFzdC1tYXRoIC1mbm8tdmVjdC1jb3N0LW1vZGVsIiB9 ICovDQorDQorI2luY2x1ZGUgPHN0ZGludC1nY2MuaD4NCisNCisjZGVmaW5lIERFRl9SRURVQ19Q TFVTKFRZUEUpICAgICAgICAgICAgICAgICAgIFwNCitUWVBFIF9fYXR0cmlidXRlX18gKChub2lu bGluZSwgbm9jbG9uZSkpICAgICAgIFwNCityZWR1Y19wbHVzXyMjVFlQRSAoVFlQRSAqYSwgaW50 IG4pICAgICAgICAgICAgIFwNCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIFRZUEUgciA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSAgICAgICAgICAgICAgICAgIFwN CisgICAgciArPSBhW2ldOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIHJl dHVybiByOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCit9DQorDQorI2Rl ZmluZSBURVNUX1BMVVMoVCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4 X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQxNl90KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQzMl90KSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ2NF90KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50OF90KSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICBUICh1aW50MTZfdCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBUICh1aW50MzJfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUICh1aW50NjRfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBUIChfRmxvYXQxNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChm bG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChkb3VibGUp DQorDQorVEVTVF9QTFVTIChERUZfUkVEVUNfUExVUykNCisNCisjZGVmaW5lIERFRl9SRURVQ19N QVhNSU4oVFlQRSwgTkFNRSwgQ01QX09QKSAgIFwNCitUWVBFIF9fYXR0cmlidXRlX18gKChub2lu bGluZSwgbm9jbG9uZSkpICAgICAgIFwNCityZWR1Y18jI05BTUUjI18jI1RZUEUgKFRZUEUgKmEs IGludCBuKSAgICAgICAgIFwNCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIFRZUEUgciA9IDEzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSAgICAgICAgICAgICAgICAgIFwN CisgICAgciA9IGFbaV0gQ01QX09QIHIgPyBhW2ldIDogcjsgICAgICAgICAgICAgIFwNCisgIHJl dHVybiByOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCit9DQorDQorI2Rl ZmluZSBURVNUX01BWE1JTihUKSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4 X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQxNl90LCBt YXgsID4pICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQzMl90LCBtYXgsID4p ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ2NF90LCBtYXgsID4pICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50OF90LCBtYXgsID4pICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICBUICh1aW50MTZfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBUICh1aW50MzJfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUICh1aW50NjRfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBUIChfRmxvYXQxNiwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChm bG9hdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChkb3VibGUs IG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4X3QsIG1pbiwgPCkgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQxNl90LCBtaW4sIDwpICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQzMl90LCBtaW4sIDwpICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICBUIChpbnQ2NF90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBUICh1aW50OF90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICBUICh1aW50MTZfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU ICh1aW50MzJfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50 NjRfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChfRmxvYXQxNiwg bWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChmbG9hdCwgbWluLCA8KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChkb3VibGUsIG1pbiwgPCkNCisNCitU RVNUX01BWE1JTiAoREVGX1JFRFVDX01BWE1JTikNCisNCisjZGVmaW5lIERFRl9SRURVQ19CSVRX SVNFKFRZUEUsIE5BTUUsIEJJVF9PUCkgIFwNCitUWVBFIF9fYXR0cmlidXRlX18gKChub2lubGlu ZSwgbm9jbG9uZSkpICAgICAgIFwNCityZWR1Y18jI05BTUUjI18jI1RZUEUgKFRZUEUgKmEsIGlu dCBuKSAgICAgICAgIFwNCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFRZUEUgciA9IDEzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSAgICAgICAgICAgICAgICAgIFwNCisg ICAgciBCSVRfT1AgYVtpXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIHJldHVy biByOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCit9DQorDQorI2RlZmlu ZSBURVNUX0JJVFdJU0UoVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KGludDhfdCwgYW5kLCAmPSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDE2 X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDMyX3QsIGFu ZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDY0X3QsIGFuZCwgJj0p ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3QsIGFuZCwgJj0pICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90LCBhbmQsICY9KSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDMyX3QsIGFuZCwgJj0pICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50NjRfdCwgYW5kLCAmPSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDhfdCwgaW9yLCB8PSkgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIFQgKGludDE2X3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKGludDMyX3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIFQgKGludDY0X3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IFQgKHVpbnQ4X3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVp bnQxNl90LCBpb3IsIHw9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo dWludDMyX3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU ICh1aW50NjRfdCwgaW9yLCB8PSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGlu dDhfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDE2X3Qs IHhvciwgXj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDMyX3QsIHhvciwg Xj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDY0X3QsIHhvciwgXj0pICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3QsIHhvciwgXj0pICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90LCB4b3IsIF49KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDMyX3QsIHhvciwgXj0pICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50NjRfdCwgeG9yLCBePSkNCisNCitURVNU X0JJVFdJU0UgKERFRl9SRURVQ19CSVRXSVNFKQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnJlZHN1bVwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTld K30gOCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRt YXhcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDQgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWF4dVwudnNccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqdlswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZyZWRtaW5cLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9 IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWlu dVwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gNCB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRhbmRcLnZzXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKnZbMC05XSt9IDggfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2cmVkb3JcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDgg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkeG9yXC52 c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA4IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZyZWR1c3VtXC52c1xzK3ZbMC05XSssXHMqdlsw LTldKyxccyp2WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dmZyZWRtYXhcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDMg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZnJlZG1pblwu dnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gMyB9IH0gKi8NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMt Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3Jl ZHVjLTIuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xMzZhOGEz NzhiZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTIuYw0KQEAgLTAsMCArMSwxMjkgQEANCisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbWFyY2g9cnYz Mmdjdl96dmZoIC1tYWJpPWlscDMyZCAtLXBhcmFtPXJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1z Y2FsYWJsZSAtZmZhc3QtbWF0aCAtZm5vLXZlY3QtY29zdC1tb2RlbCIgfSAqLw0KKw0KKyNpbmNs dWRlIDxzdGRpbnQtZ2NjLmg+DQorDQorI2RlZmluZSBOVU1fRUxFTVMoVFlQRSkgKDEwMjQgLyBz aXplb2YgKFRZUEUpKQ0KKw0KKyNkZWZpbmUgREVGX1JFRFVDX1BMVVMoVFlQRSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCit2b2lkIF9fYXR0cmlidXRlX18gKChub2lubGlu ZSwgbm9jbG9uZSkpICAgICAgICAgICAgICAgICAgICAgICBcDQorcmVkdWNfcGx1c18jI1RZUEUg KFRZUEUgKCpyZXN0cmljdCBhKVtOVU1fRUxFTVMgKFRZUEUpXSwgICAgICAgXA0KKyAgICAgICAg ICAgICAgICAgIFRZUEUgKnJlc3RyaWN0IHIsIGludCBuKSAgICAgICAgICAgICAgICAgICAgIFwN Cit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICByW2ldID0gMDsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICBm b3IgKGludCBqID0gMDsgaiA8IE5VTV9FTEVNUyAoVFlQRSk7IGorKykgICAgICAgICAgICAgICBc DQorICAgICAgICByW2ldICs9IGFbaV1bal07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCit9DQorDQorI2RlZmluZSBURVNUX1BMVVMoVCkgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4X3QpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICBUIChpbnQxNl90KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBUIChpbnQzMl90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUIChpbnQ2NF90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBUICh1aW50OF90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1 aW50MTZfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50MzJf dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50NjRfdCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChfRmxvYXQxNikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChmbG9hdCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUIChkb3VibGUpDQorDQorVEVTVF9QTFVTIChERUZfUkVE VUNfUExVUykNCisNCisjZGVmaW5lIERFRl9SRURVQ19NQVhNSU4oVFlQRSwgTkFNRSwgQ01QX09Q KSAgICAgICAgICAgICAgICAgICBcDQordm9pZCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUsIG5v Y2xvbmUpKSAgICAgICAgICAgICAgICAgICAgICAgXA0KK3JlZHVjXyMjTkFNRSMjXyMjVFlQRSAo VFlQRSAoKnJlc3RyaWN0IGEpW05VTV9FTEVNUyAoVFlQRSldLCAgIFwNCisgICAgICAgICAgICAg ICAgICAgICAgVFlQRSAqcmVzdHJpY3QgciwgaW50IG4pICAgICAgICAgICAgICAgICBcDQoreyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgcltpXSA9IGFbaV1bMF07ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIGZvciAoaW50IGogPSAw OyBqIDwgTlVNX0VMRU1TIChUWVBFKTsgaisrKSAgICAgICAgICAgICAgIFwNCisgICAgICAgIHJb aV0gPSBhW2ldW2pdIENNUF9PUCByW2ldID8gYVtpXVtqXSA6IHJbaV07ICAgICAgICAgICBcDQor ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KK30NCisNCisjZGVmaW5lIFRFU1RfTUFYTUlOKFQpICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKGludDhfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIFQgKGludDE2X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IFQgKGludDMyX3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGlu dDY0X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3Qs IG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90LCBtYXgs ID4pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQzMl90LCBtYXgsID4pICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ2NF90LCBtYXgsID4pICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIFQgKF9GbG9hdDE2LCBtYXgsID4pICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIFQgKGZsb2F0LCBtYXgsID4pICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKGRvdWJsZSwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KGludDhfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDE2 X3QsIG1pbiwgPCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDMyX3QsIG1p biwgPCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDY0X3QsIG1pbiwgPCkg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3QsIG1pbiwgPCkgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90LCBtaW4sIDwpICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQzMl90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKHVpbnQ2NF90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIFQgKF9GbG9hdDE2LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IFQgKGZsb2F0LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGRv dWJsZSwgbWluLCA8KQ0KKw0KK1RFU1RfTUFYTUlOIChERUZfUkVEVUNfTUFYTUlOKQ0KKw0KKyNk ZWZpbmUgREVGX1JFRFVDX0JJVFdJU0UoVFlQRSxOQU1FLEJJVF9PUCkgICAgICAgICAgICAgICAg ICAgIFwNCit2b2lkIF9fYXR0cmlidXRlX18gKChub2lubGluZSwgbm9jbG9uZSkpICAgICAgICAg ICAgICAgICAgICAgICBcDQorcmVkdWNfIyNOQU1FIyNUWVBFIChUWVBFICgqcmVzdHJpY3QgYSlb TlVNX0VMRU1TKFRZUEUpXSwgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICBUWVBFICpyZXN0 cmljdCByLCBpbnQgbikgICAgICAgICAgICAgICAgICAgIFwNCit7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGlu dCBpID0gMDsgaSA8IG47IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgICByW2ldID0gYVtpXVswXTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBOVU1fRUxFTVMo VFlQRSk7IGorKykgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICByW2ldIEJJVF9P UCBhW2ldW2pdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Cit9DQorDQorI2RlZmluZSBURVNUX0JJVFdJU0UoVCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKGludDhfdCwgYW5kLCAmPSkgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIFQgKGludDE2X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IFQgKGludDMyX3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGlu dDY0X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3Qs IGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90LCBhbmQs ICY9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDMyX3QsIGFu ZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50NjRfdCwg YW5kLCAmPSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDhfdCwgaW9yLCB8 PSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDE2X3QsIGlvciwgfD0pICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDMyX3QsIGlvciwgfD0pICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDY0X3QsIGlvciwgfD0pICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKHVpbnQxNl90LCBpb3IsIHw9KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAodWludDMyX3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBUICh1aW50NjRfdCwgaW9yLCB8PSkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKGludDhfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIFQgKGludDE2X3QsIHhvciwgXj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KGludDMyX3QsIHhvciwgXj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDY0 X3QsIHhvciwgXj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3QsIHhv ciwgXj0pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90LCB4b3IsIF49 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDMyX3QsIHhvciwg Xj0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50NjRfdCwgeG9y LCBePSkNCisNCitURVNUX0JJVFdJU0UgKERFRl9SRURVQ19CSVRXSVNFKQ0KKw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZHN1bVwudnNccyt2WzAtOV0rLFxzKnZb MC05XSssXHMqdlswLTldK30gOCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZyZWRtYXhcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDQg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWF4dVwu dnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRtaW5cLnZzXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKnZbMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2cmVkbWludVwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gNCB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRhbmRcLnZz XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDggfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkb3JcLnZzXHMrdlswLTldKyxccyp2WzAtOV0r LFxzKnZbMC05XSt9IDggfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2cmVkeG9yXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA4IH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZyZWR1c3VtXC52c1xz K3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZyZWRtYXhcLnZzXHMrdlswLTldKyxccyp2WzAtOV0r LFxzKnZbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2ZnJlZG1pblwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gMyB9IH0g Ki8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvcmVkdWMvcmVkdWMtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3JlZHVjL3JlZHVjLTMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi5jMzYzODM0NGY4MA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTMuYw0KQEAgLTAsMCArMSw2 NSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi1tYXJjaD1ydjMyZ2N2IC1tYWJpPWlscDMyZCAtLXBhcmFtPXJpc2N2LWF1dG92ZWMtcHJl ZmVyZW5jZT1zY2FsYWJsZSAtZmZhc3QtbWF0aCAtZm5vLXZlY3QtY29zdC1tb2RlbCIgfSAqLw0K Kw0KKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1 dGVfXygobm9pcGEpKQ0KK2FkZF9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4pDQorew0K KyAgdW5zaWduZWQgc2hvcnQgcmVzID0gMDsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytp KQ0KKyAgICByZXMgKz0geFtpXTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2lnbmVkIHNo b3J0IF9fYXR0cmlidXRlX18oKG5vaXBhKSkNCittaW5fbG9vcCAodW5zaWduZWQgc2hvcnQgKngs IGludCBuKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IHJlcyA9IH4wOw0KKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyA9IHJlcyA8IHhbaV0gPyByZXMgOiB4W2ldOw0KKyAg cmV0dXJuIHJlczsNCit9DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEp KQ0KK21heF9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4pDQorew0KKyAgdW5zaWduZWQg c2hvcnQgcmVzID0gMDsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMg PSByZXMgPiB4W2ldID8gcmVzIDogeFtpXTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2ln bmVkIHNob3J0IF9fYXR0cmlidXRlX18oKG5vaXBhKSkNCithbmRfbG9vcCAodW5zaWduZWQgc2hv cnQgKngsIGludCBuKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IHJlcyA9IH4wOw0KKyAgZm9yIChp bnQgaSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyAmPSB4W2ldOw0KKyAgcmV0dXJuIHJlczsN Cit9DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KK29yX2xvb3Ag KHVuc2lnbmVkIHNob3J0ICp4LCBpbnQgbikNCit7DQorICB1bnNpZ25lZCBzaG9ydCByZXMgPSAw Ow0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyB8PSB4W2ldOw0KKyAg cmV0dXJuIHJlczsNCit9DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEp KQ0KK2Vvcl9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4pDQorew0KKyAgdW5zaWduZWQg c2hvcnQgcmVzID0gMDsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMg Xj0geFtpXTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnJlZHN1bVwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTld K30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRt YXh1XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG1pbnVcLnZzXHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2cmVkYW5kXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0r fSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG9y XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZHhvclwudnNccyt2WzAtOV0rLFxzKnZb MC05XSssXHMqdlswLTldK30gMSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtNC5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTQuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5mMDBhMTI4MjZjNg0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVj L3JlZHVjLTQuYw0KQEAgLTAsMCArMSw1OSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQor LyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2IC1tYWJpPWlscDMyZCAt LXBhcmFtPXJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1zY2FsYWJsZSAtZmZhc3QtbWF0aCAtZm5v LXZlY3QtY29zdC1tb2RlbCIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQorDQor dW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KK2FkZF9sb29wICh1bnNpZ25l ZCBzaG9ydCAqeCwgaW50IG4sIHVuc2lnbmVkIHNob3J0IHJlcykNCit7DQorICBmb3IgKGludCBp ID0gMDsgaSA8IG47ICsraSkNCisgICAgcmVzICs9IHhbaV07DQorICByZXR1cm4gcmVzOw0KK30N CisNCit1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQorbWluX2xvb3AgKHVu c2lnbmVkIHNob3J0ICp4LCBpbnQgbiwgdW5zaWduZWQgc2hvcnQgcmVzKQ0KK3sNCisgIGZvciAo aW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMgPSByZXMgPCB4W2ldID8gcmVzIDogeFtp XTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18o KG5vaXBhKSkNCittYXhfbG9vcCAodW5zaWduZWQgc2hvcnQgKngsIGludCBuLCB1bnNpZ25lZCBz aG9ydCByZXMpDQorew0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyA9 IHJlcyA+IHhbaV0gPyByZXMgOiB4W2ldOw0KKyAgcmV0dXJuIHJlczsNCit9DQorDQordW5zaWdu ZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KK2FuZF9sb29wICh1bnNpZ25lZCBzaG9y dCAqeCwgaW50IG4sIHVuc2lnbmVkIHNob3J0IHJlcykNCit7DQorICBmb3IgKGludCBpID0gMDsg aSA8IG47ICsraSkNCisgICAgcmVzICY9IHhbaV07DQorICByZXR1cm4gcmVzOw0KK30NCisNCit1 bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQorb3JfbG9vcCAodW5zaWduZWQg c2hvcnQgKngsIGludCBuLCB1bnNpZ25lZCBzaG9ydCByZXMpDQorew0KKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyB8PSB4W2ldOw0KKyAgcmV0dXJuIHJlczsNCit9DQor DQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KK2Vvcl9sb29wICh1bnNp Z25lZCBzaG9ydCAqeCwgaW50IG4sIHVuc2lnbmVkIHNob3J0IHJlcykNCit7DQorICBmb3IgKGlu dCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgcmVzIF49IHhbaV07DQorICByZXR1cm4gcmVzOw0K K30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRzdW1cLnZz XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWF4dVwudnNccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqdlswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZyZWRtaW51XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZGFuZFwudnNc cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRvclwudnNccyt2WzAtOV0rLFxzKnZbMC05XSss XHMqdlswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZyZWR4b3JcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3JlZHVjL3JlZHVjX3J1bi0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTEuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAwMDAwLi5iNTAwZjg1NzU5OA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1bi0xLmMNCkBA IC0wLDAgKzEsNTYgQEANCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9 IH0gfSAqLw0KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItLXBhcmFtPXJpc2N2LWF1dG92 ZWMtcHJlZmVyZW5jZT1zY2FsYWJsZSAtZmZhc3QtbWF0aCAtZm5vLXZlY3QtY29zdC1tb2RlbCIg fSAqLw0KKw0KKyNpbmNsdWRlICJyZWR1Yy0xLmMiDQorDQorI2RlZmluZSBOVU1fRUxFTVMoVFlQ RSkgKDczICsgc2l6ZW9mIChUWVBFKSkNCisNCisjZGVmaW5lIElOSVRfVkVDVE9SKFRZUEUpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVFlQRSBhW05VTV9FTEVNUyAoVFlQRSkg KyAxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGZvciAoaW50IGkgPSAw OyBpIDwgTlVNX0VMRU1TIChUWVBFKSArIDE7IGkrKykgICAgICAgXA0KKyAgICB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgYVtpXSA9 ICgoaSAqIDIpICogKGkgJiAxID8gMSA6IC0xKSB8IDMpOyAgICAgICAgIFwNCisgICAgICBhc20g dm9sYXRpbGUgKCIiIDo6OiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgXA0KKyAgICB9DQor DQorI2RlZmluZSBURVNUX1JFRFVDX1BMVVMoVFlQRSkgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgICBJTklUX1ZFQ1RPUiAoVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgICAgVFlQRSByMSA9IHJlZHVjX3BsdXNfIyNUWVBFIChhLCBOVU1f RUxFTVMgKFRZUEUpKTsgXA0KKyAgICB2b2xhdGlsZSBUWVBFIHIyID0gMDsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0VMRU1TIChU WVBFKTsgKytpKSAgICAgICAgIFwNCisgICAgICByMiArPSBhW2ldOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICBpZiAocjEgIT0gcjIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgX19idWlsdGluX2Fib3J0ICgpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIH0NCisNCisjZGVmaW5lIFRFU1RfUkVEVUNf TUFYTUlOKFRZUEUsIE5BTUUsIENNUF9PUCkgICAgICAgICAgICAgICAgICBcDQorICB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgICBJTklUX1ZFQ1RPUiAoVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgICBUWVBFIHIxID0gcmVkdWNfIyNOQU1FIyNfIyNUWVBFIChh LCBOVU1fRUxFTVMgKFRZUEUpKTsgICAgIFwNCisgICAgdm9sYXRpbGUgVFlQRSByMiA9IDEzOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTlVNX0VMRU1TIChUWVBFKTsgKytpKSAgICAgICAgICAgICAgICAgXA0KKyAgICAgIHIy ID0gYVtpXSBDTVBfT1AgcjIgPyBhW2ldIDogcjI7ICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgICAgaWYgKHIxICE9IHIyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICAgICAgX19idWlsdGluX2Fib3J0ICgpOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgfQ0KKw0KKyNkZWZpbmUgVEVTVF9SRURVQ19CSVRXSVNF KFRZUEUsIE5BTUUsIEJJVF9PUCkgICAgICAgICAgICAgICAgIFwNCisgIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIElO SVRfVkVDVE9SIChUWVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICAgIFRZUEUgcjEgPSByZWR1Y18jI05BTUUjI18jI1RZUEUgKGEsIE5VTV9F TEVNUyAoVFlQRSkpOyAgICAgXA0KKyAgICB2b2xhdGlsZSBUWVBFIHIyID0gMTM7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBO VU1fRUxFTVMgKFRZUEUpOyArK2kpICAgICAgICAgICAgICAgICBcDQorICAgICAgcjIgQklUX09Q IGFbaV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICBp ZiAocjEgIT0gcjIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICB9DQorDQoraW50IG1haW4gKCkNCit7DQorICBURVNUX1BMVVMgKFRF U1RfUkVEVUNfUExVUykNCisgIFRFU1RfTUFYTUlOIChURVNUX1JFRFVDX01BWE1JTikNCisgIFRF U1RfQklUV0lTRSAoVEVTVF9SRURVQ19CSVRXSVNFKQ0KKw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1 Yy9yZWR1Y19ydW4tMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3JlZHVjL3JlZHVjX3J1bi0yLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwMC4uM2MyZjYyNTU3YjENCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tMi5jDQpAQCAtMCww ICsxLDc5IEBADQorLyogeyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0g Ki8NCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLS1wYXJhbT1yaXNjdi1hdXRvdmVjLXBy ZWZlcmVuY2U9c2NhbGFibGUiIH0gKi8NCisNCisjaW5jbHVkZSAicmVkdWMtMi5jIg0KKw0KKyNk ZWZpbmUgTlJPV1MgNTMNCisNCisvKiAtZmZhc3QtbWF0aCBmdXp6IGZvciBQTFVTLiAgKi8NCisj ZGVmaW5lIENNUF9fRmxvYXQxNihYLCBZKSAoKFgpID49IChZKSAqIDAuODc1ICYmIChYKSA8PSAo WSkgKiAxLjEyNSkNCisjZGVmaW5lIENNUF9mbG9hdChYLCBZKSAoKFgpID09IChZKSkNCisjZGVm aW5lIENNUF9kb3VibGUoWCwgWSkgKChYKSA9PSAoWSkpDQorI2RlZmluZSBDTVBfaW50OF90KFgs IFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUgQ01QX2ludDE2X3QoWCwgWSkgKChYKSA9PSAoWSkp DQorI2RlZmluZSBDTVBfaW50MzJfdChYLCBZKSAoKFgpID09IChZKSkNCisjZGVmaW5lIENNUF9p bnQ2NF90KFgsIFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUgQ01QX3VpbnQ4X3QoWCwgWSkgKChY KSA9PSAoWSkpDQorI2RlZmluZSBDTVBfdWludDE2X3QoWCwgWSkgKChYKSA9PSAoWSkpDQorI2Rl ZmluZSBDTVBfdWludDMyX3QoWCwgWSkgKChYKSA9PSAoWSkpDQorI2RlZmluZSBDTVBfdWludDY0 X3QoWCwgWSkgKChYKSA9PSAoWSkpDQorDQorI2RlZmluZSBJTklUX01BVFJJWChUWVBFKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFRZUEUgbWF0W05ST1dTXVtOVU1fRUxFTVMg KFRZUEUpXTsgICAgICAgICAgICAgICAgICAgXA0KKyAgVFlQRSByW05ST1dTXTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGludCBpID0gMDsgaSA8IE5S T1dTOyBpKyspICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgZm9yIChpbnQgaiA9IDA7IGog PCBOVU1fRUxFTVMgKFRZUEUpOyBqKyspICAgICAgICAgXA0KKyAgICAgIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgbWF0 W2ldW2pdID0gaSArIChqICogMikgKiAoaiAmIDEgPyAxIDogLTEpOyAgICAgXA0KKyAgICAgICBh c20gdm9sYXRpbGUgKCIiIDo6OiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICBcDQorICAgICAg fQ0KKw0KKyNkZWZpbmUgVEVTVF9SRURVQ19QTFVTKFRZUEUpICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgSU5JVF9NQVRSSVggKFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICAgIHJlZHVjX3BsdXNfIyNUWVBFIChtYXQsIHIsIE5ST1dT KTsgICAgICAgICAgICAgICAgIFwNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOUk9XUzsgaSsr KSAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgdm9sYXRpbGUgVFlQRSBy MiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICBmb3IgKGludCBqID0g MDsgaiA8IE5VTV9FTEVNUyAoVFlQRSk7ICsraikgICAgICBcDQorICAgICAgICAgcjIgKz0gbWF0 W2ldW2pdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgaWYgKCFDTVBf IyNUWVBFIChyW2ldLCByMikpICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgIF9fYnVp bHRpbl9hYm9ydCAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg ICB9DQorDQorI2RlZmluZSBURVNUX1JFRFVDX01BWE1JTihUWVBFLCBOQU1FLCBDTVBfT1ApICAg ICAgICAgIFwNCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgICBJTklUX01BVFJJWCAoVFlQRSk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgICAgcmVkdWNfIyNOQU1FIyNfIyNUWVBFIChtYXQsIHIs IE5ST1dTKTsgICAgICAgICAgICAgXA0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE5ST1dTOyBp KyspICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICB2b2xhdGlsZSBUWVBF IHIyID0gbWF0W2ldWzBdOyAgICAgICAgICAgICAgICAgICBcDQorICAgICAgIGZvciAoaW50IGog PSAwOyBqIDwgTlVNX0VMRU1TIChUWVBFKTsgKytqKSAgICAgIFwNCisgICAgICAgICByMiA9IG1h dFtpXVtqXSBDTVBfT1AgcjIgPyBtYXRbaV1bal0gOiByMjsgICAgXA0KKyAgICAgICBpZiAocltp XSAhPSByMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgX19i dWlsdGluX2Fib3J0ICgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICAgIH0NCisNCisjZGVmaW5lIFRFU1RfUkVEVUNfQklUV0lTRShUWVBFLCBOQU1FLCBCSVRfT1Ap ICAgICAgICAgXA0KKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICAgIElOSVRfTUFUUklYIChUWVBFKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICByZWR1Y18jI05BTUUjI18jI1RZUEUgKG1hdCwg ciwgTlJPV1MpOyAgICAgICAgICAgICBcDQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlJPV1M7 IGkrKykgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgIHZvbGF0aWxlIFRZ UEUgcjIgPSBtYXRbaV1bMF07ICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgZm9yIChpbnQg aiA9IDA7IGogPCBOVU1fRUxFTVMgKFRZUEUpOyArK2opICAgICAgXA0KKyAgICAgICAgIHIyIEJJ VF9PUCBtYXRbaV1bal07ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgIGlmIChy W2ldICE9IHIyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgICBf X2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIH0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgICAgfQ0KKw0KK2ludCBtYWluICgpDQorew0KKyAgVEVTVF9QTFVTIChURVNUX1JFRFVDX1BM VVMpDQorICBURVNUX01BWE1JTiAoVEVTVF9SRURVQ19NQVhNSU4pDQorDQorICByZXR1cm4gMDsN Cit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3JlZHVjL3JlZHVjX3J1bi0zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi5kMWIyMmMwZDY5YQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1bi0zLmMN CkBAIC0wLDAgKzEsNDkgQEANCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3Rv ciB9IH0gfSAqLw0KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItLXBhcmFtPXJpc2N2LWF1 dG92ZWMtcHJlZmVyZW5jZT1zY2FsYWJsZSAtZmZhc3QtbWF0aCAtZm5vLXZlY3QtY29zdC1tb2Rl bCIgfSAqLw0KKw0KKyNpbmNsdWRlICJyZWR1Yy0zLmMiDQorDQorI2RlZmluZSBOIDB4MTEwMA0K Kw0KK2ludA0KK21haW4gKHZvaWQpDQorew0KKyAgdW5zaWduZWQgc2hvcnQgeFtOXTsNCisgIGZv ciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQ0KKyAgICB4W2ldID0gKGkgKyAxKSAqIChpICsgMik7 DQorDQorICBpZiAoYWRkX2xvb3AgKHgsIDApICE9IDANCisgICAgICB8fCBhZGRfbG9vcCAoeCwg MTEpICE9IDU3Mg0KKyAgICAgIHx8IGFkZF9sb29wICh4LCAweDEwMCkgIT0gMjIwMTYNCisgICAg ICB8fCBhZGRfbG9vcCAoeCwgMHhmZmYpICE9IDIwNDgwDQorICAgICAgfHwgbWF4X2xvb3AgKHgs IDApICE9IDANCisgICAgICB8fCBtYXhfbG9vcCAoeCwgMTEpICE9IDEzMg0KKyAgICAgIHx8IG1h eF9sb29wICh4LCAweDEwMCkgIT0gNjUyODANCisgICAgICB8fCBtYXhfbG9vcCAoeCwgMHhmZmYp ICE9IDY1NTA0DQorICAgICAgfHwgb3JfbG9vcCAoeCwgMCkgIT0gMA0KKyAgICAgIHx8IG9yX2xv b3AgKHgsIDExKSAhPSAweGZlDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHg4MCkgIT0gMHg3ZmZl DQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHhiNCkgIT0gMHg3ZmZlDQorICAgICAgfHwgb3JfbG9v cCAoeCwgMHhiNSkgIT0gMHhmZmZlDQorICAgICAgfHwgZW9yX2xvb3AgKHgsIDApICE9IDANCisg ICAgICB8fCBlb3JfbG9vcCAoeCwgMTEpICE9IDB4ZTgNCisgICAgICB8fCBlb3JfbG9vcCAoeCwg MHgxMDApICE9IDB4Y2YwMA0KKyAgICAgIHx8IGVvcl9sb29wICh4LCAweGZmZikgIT0gMHhhMDAw KQ0KKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8IE47 ICsraSkNCisgICAgeFtpXSA9IH54W2ldOw0KKw0KKyAgaWYgKG1pbl9sb29wICh4LCAwKSAhPSA2 NTUzNQ0KKyAgICAgIHx8IG1pbl9sb29wICh4LCAxMSkgIT0gNjU0MDMNCisgICAgICB8fCBtaW5f bG9vcCAoeCwgMHgxMDApICE9IDI1NQ0KKyAgICAgIHx8IG1pbl9sb29wICh4LCAweGZmZikgIT0g MzENCisgICAgICB8fCBhbmRfbG9vcCAoeCwgMCkgIT0gMHhmZmZmDQorICAgICAgfHwgYW5kX2xv b3AgKHgsIDExKSAhPSAweGZmMDENCisgICAgICB8fCBhbmRfbG9vcCAoeCwgMHg4MCkgIT0gMHg4 MDAxDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDB4YjQpICE9IDB4ODAwMQ0KKyAgICAgIHx8IGFu ZF9sb29wICh4LCAweGI1KSAhPSAxKQ0KKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQorDQorICBy ZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1bi00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTQuYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5jMTdlMTI1YTc2Mw0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVj X3J1bi00LmMNCkBAIC0wLDAgKzEsNjYgQEANCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJp c2N2X3ZlY3RvciB9IH0gfSAqLw0KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItLXBhcmFt PXJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1zY2FsYWJsZSAtZmZhc3QtbWF0aCAtZm5vLXZlY3Qt Y29zdC1tb2RlbCIgfSAqLw0KKw0KKyNpbmNsdWRlICJyZWR1Yy00LmMiDQorDQorI2RlZmluZSBO IDB4MTEwMA0KKw0KK2ludA0KK21haW4gKHZvaWQpDQorew0KKyAgdW5zaWduZWQgc2hvcnQgeFtO XTsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQ0KKyAgICB4W2ldID0gKGkgKyAxKSAq IChpICsgMik7DQorDQorICBpZiAoYWRkX2xvb3AgKHgsIDAsIDEwKSAhPSAxMA0KKyAgICAgIHx8 IGFkZF9sb29wICh4LCAxMSwgNDIpICE9IDYxNA0KKyAgICAgIHx8IGFkZF9sb29wICh4LCAweDEw MCwgODQpICE9IDIyMTAwDQorICAgICAgfHwgYWRkX2xvb3AgKHgsIDB4ZmZmLCAyMCkgIT0gMjA1 MDANCisgICAgICB8fCBtYXhfbG9vcCAoeCwgMCwgMTApICE9IDEwDQorICAgICAgfHwgbWF4X2xv b3AgKHgsIDExLCAxMzEpICE9IDEzMg0KKyAgICAgIHx8IG1heF9sb29wICh4LCAxMSwgMTMzKSAh PSAxMzMNCisgICAgICB8fCBtYXhfbG9vcCAoeCwgMHgxMDAsIDY1Mjc5KSAhPSA2NTI4MA0KKyAg ICAgIHx8IG1heF9sb29wICh4LCAweDEwMCwgNjUyODEpICE9IDY1MjgxDQorICAgICAgfHwgbWF4 X2xvb3AgKHgsIDB4ZmZmLCA2NTUwMykgIT0gNjU1MDQNCisgICAgICB8fCBtYXhfbG9vcCAoeCwg MHhmZmYsIDY1NTA1KSAhPSA2NTUwNQ0KKyAgICAgIHx8IG9yX2xvb3AgKHgsIDAsIDB4NzEpICE9 IDB4NzENCisgICAgICB8fCBvcl9sb29wICh4LCAxMSwgMCkgIT0gMHhmZQ0KKyAgICAgIHx8IG9y X2xvb3AgKHgsIDExLCAweGIzYykgIT0gMHhiZmUNCisgICAgICB8fCBvcl9sb29wICh4LCAweDgw LCAwKSAhPSAweDdmZmUNCisgICAgICB8fCBvcl9sb29wICh4LCAweDgwLCAxKSAhPSAweDdmZmYN CisgICAgICB8fCBvcl9sb29wICh4LCAweGI0LCAwKSAhPSAweDdmZmUNCisgICAgICB8fCBvcl9s b29wICh4LCAweGI0LCAxKSAhPSAweDdmZmYNCisgICAgICB8fCBvcl9sb29wICh4LCAweGI1LCAw KSAhPSAweGZmZmUNCisgICAgICB8fCBvcl9sb29wICh4LCAweGI1LCAxKSAhPSAweGZmZmYNCisg ICAgICB8fCBlb3JfbG9vcCAoeCwgMCwgMHgzZSkgIT0gMHgzZQ0KKyAgICAgIHx8IGVvcl9sb29w ICh4LCAxMSwgMCkgIT0gMHhlOA0KKyAgICAgIHx8IGVvcl9sb29wICh4LCAxMSwgMHgxZmYpICE9 IDB4MTE3DQorICAgICAgfHwgZW9yX2xvb3AgKHgsIDB4MTAwLCAwKSAhPSAweGNmMDANCisgICAg ICB8fCBlb3JfbG9vcCAoeCwgMHgxMDAsIDB4ZWVlKSAhPSAweGMxZWUNCisgICAgICB8fCBlb3Jf bG9vcCAoeCwgMHhmZmYsIDApICE9IDB4YTAwMA0KKyAgICAgIHx8IGVvcl9sb29wICh4LCAweGZm ZiwgMHg4ODg4KSAhPSAweDI4ODgpDQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCisNCisgIGZv ciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQ0KKyAgICB4W2ldID0gfnhbaV07DQorDQorICBpZiAo bWluX2xvb3AgKHgsIDAsIDEwMDAwKSAhPSAxMDAwMA0KKyAgICAgIHx8IG1pbl9sb29wICh4LCAx MSwgNjU0MDQpICE9IDY1NDAzDQorICAgICAgfHwgbWluX2xvb3AgKHgsIDExLCA2NTQwMikgIT0g NjU0MDINCisgICAgICB8fCBtaW5fbG9vcCAoeCwgMHgxMDAsIDI1NikgIT0gMjU1DQorICAgICAg fHwgbWluX2xvb3AgKHgsIDB4MTAwLCAyNTQpICE9IDI1NA0KKyAgICAgIHx8IG1pbl9sb29wICh4 LCAweGZmZiwgMzIpICE9IDMxDQorICAgICAgfHwgbWluX2xvb3AgKHgsIDB4ZmZmLCAzMCkgIT0g MzANCisgICAgICB8fCBhbmRfbG9vcCAoeCwgMCwgMHgxMjM0KSAhPSAweDEyMzQNCisgICAgICB8 fCBhbmRfbG9vcCAoeCwgMTEsIDB4ZmZmZikgIT0gMHhmZjAxDQorICAgICAgfHwgYW5kX2xvb3Ag KHgsIDExLCAweGNkZWYpICE9IDB4Y2QwMQ0KKyAgICAgIHx8IGFuZF9sb29wICh4LCAweDgwLCAw eGZmZmYpICE9IDB4ODAwMQ0KKyAgICAgIHx8IGFuZF9sb29wICh4LCAweDgwLCAweGZmZmUpICE9 IDB4ODAwMA0KKyAgICAgIHx8IGFuZF9sb29wICh4LCAweGI0LCAweGZmZmYpICE9IDB4ODAwMQ0K KyAgICAgIHx8IGFuZF9sb29wICh4LCAweGI0LCAweGZmZmUpICE9IDB4ODAwMA0KKyAgICAgIHx8 IGFuZF9sb29wICh4LCAweGI1LCAweGZmZmYpICE9IDENCisgICAgICB8fCBhbmRfbG9vcCAoeCwg MHhiNSwgMHhmZmZlKSAhPSAwKQ0KKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQorDQorICByZXR1 cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9ydnYuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9ydnYuZXhwDQpp bmRleCAxOTU4OWZhOTYzOC4uNTMyYzE3YzQwNjUgMTAwNjQ0DQotLS0gYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3J2di5leHANCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvcnZ2LmV4cA0KQEAgLTcxLDYgKzcxLDggQEAgZm9yZWFjaCBvcCAkQVVU T1ZFQ19URVNUX09QVFMgew0KICAgICAiIiAiJG9wIg0KICAgZGctcnVudGVzdCBbbHNvcnQgW2ds b2IgLW5vY29tcGxhaW4gJHNyY2Rpci8kc3ViZGlyL2F1dG92ZWMvdGVybm9wLyouXFtjU1xdXV0g XA0KICAgICAiIiAiJG9wIg0KKyAgZGctcnVudGVzdCBbbHNvcnQgW2dsb2IgLW5vY29tcGxhaW4g JHNyY2Rpci8kc3ViZGlyL2F1dG92ZWMvcmVkdWMvKi5cW2NTXF1dXSBcDQorICAgICIiICIkb3Ai DQogfQ0KDQogIyB3aWRlbmluZyBvcGVyYXRpb24gb25seSB0ZXN0IG9uIExNVUwgPCA4DQotLSAN CjIuMzYuMw0KDQo=