From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.3216.1682044397151153505 for ; Thu, 20 Apr 2023 19:33:17 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=i7Hb9NZf; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: chasel.chiu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682044397; x=1713580397; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=5sXHhk/otUbjrc3Hah3Di6O8Xz8rQLXRn07OYhNQJNI=; b=i7Hb9NZfxd/2Y1GMdlg0UnWt8POsrwx+I/zjYYbNveAJ5LMKzZYYKn4+ W2U6ACirRMbsB7f4YKy8OpRm8AyF1sUweacxQBb1ZFne4K9UHhoQz+U+V pX5eVuKXGI2a9euq3hNexP65NlJF57WQFc3mPATJWhMPp8Sfo+M4xq8uV 2UdmDtmEMIZ5hbHPYYW+tGeDkzg6fDWqkd+QC5yP2l6DDrqN9cc5uP+D3 L9ZTjpB0Xnw1UEjJq14jSX6n3/YkB+YqmIX0xSB9myC66Kn9c5g4OhyFI VUbgCXifw3n9lk1Sn2/hR3xmVTuklWXh6EPWOyfZnb6lUOKkChYAjSI3K A==; X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="408837090" X-IronPort-AV: E=Sophos;i="5.99,214,1677571200"; d="scan'208";a="408837090" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2023 19:33:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="722602216" X-IronPort-AV: E=Sophos;i="5.99,214,1677571200"; d="scan'208";a="722602216" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga008.jf.intel.com with ESMTP; 20 Apr 2023 19:33:16 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 20 Apr 2023 19:33:16 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 20 Apr 2023 19:33:15 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 20 Apr 2023 19:33:15 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.172) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 20 Apr 2023 19:33:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TDdehyNor4dKAxDER8KqTvTF8Zr00N1PiJI1LR8V9z252EFDSWN8zPJLqyFQUW3CT0wAb2nwCbXwViLdhzSNOTF6Lhlw7BLhsA6xtAC8KmfrbwFpz2OxCrysBZcTIFSgFRfJZ6OPlvQivBZil4yekPeLF4G0apDVrYPzZxi9adYWfQTTvAz/RFpjf93VOsGBpeBi9fe9JizAISSTPmORpWtplGzXR2V6ks+OscDPqKu4h1FLD46pN7rAW5xfXumNVkpPSlheknmal340LC7abdQWYsY25Hr9hlPLZSZ9wqLEeQbZBmxLmbCjRwrg1haZ8Q6itSi0csHuwk8KajlkmA== 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=5sXHhk/otUbjrc3Hah3Di6O8Xz8rQLXRn07OYhNQJNI=; b=AzV0SsAAzri6rQMD1hcHOQs09V8ExCM7pA4nGzjLXHUlGpoeE1fWtQt4T5zYTR4aTfzX6QbvTkm2yV+tuJch20KeWVfem64Rc9QtO4Cqc+DskG0lA+fWp9Jo7FiRZcS6YlK0hwKoex9wwUeg1Lndx3bI3qaPovaS0TXZmoIPbxNxhlmfo8Edl1EQ1y9iOm+0SyqgHpZIajHFO+XkK6p/HmYrTXUp0OFWBxg3JP1AKSBKe0QdSo4gxwhx4JvRYmMdiI7ValF4ZLDTYmUoS8G+YBgs3dmONLceWmivJ700P310CtMVNxXur5gUvpSmwksElEOXGF952iSm3cd8T+ZnZw== 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 BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by MW3PR11MB4763.namprd11.prod.outlook.com (2603:10b6:303:2c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.22; Fri, 21 Apr 2023 02:33:11 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a%7]) with mapi id 15.20.6319.022; Fri, 21 Apr 2023 02:33:11 +0000 From: "Chiu, Chasel" To: "devel@edk2.groups.io" , "Kinney, Michael D" , "Lin, Benny" , "Leif Lindholm" CC: "Gao, Liming" , "Liu, Zhiguang" , Pedro Falcato Subject: Re: [edk2-devel] [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Topic: [edk2-devel] [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Index: AQHZcO6+WfGGK3ArXUC9dbXYFUl/La8yzIKAgAAVuICAAEDWgIAAe1iAgADOW4CAAKH64A== Date: Fri, 21 Apr 2023 02:33:11 +0000 Message-ID: References: <20230417053505.670-1-benny.lin@intel.com> <20230417053505.670-3-benny.lin@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5483:EE_|MW3PR11MB4763:EE_ x-ms-office365-filtering-correlation-id: 2d190521-23c3-4dcc-9834-08db4210c052 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: kFv7zcLIpQYmL7ioZ/nxmGvxs+vOznkeXryUblhyd6okFy63ZWgbOT7lOofGpVTXhHzhGrN6cm7m2S/nyxmTinGggCExPk9AdVTEtZgKLrHacTv7Zx0aTjRtgDZWBm0UUyRLU7swCdLgmzOGOkc0r72sosL8rO6dYIEzvlY4Sa7XLniqxcLFpc3iVt18NmcvZTDfKj91fMbd9sJtGM0vL74bilOVahJ7YwSTw3jB5CfxwK/F0zEPrHAVS/mOGvL1dOLX1/eANc5FEkFJy3KiQ1vH3z3qLC1fx/oAGWMxCFt5IJX70JzetlJX1fzzxDCFInvTc7E3VLCiPAWITT95RDwHOjH7QN7+ci8fhQTsnyBuld5LUgGJIVJBrBtvMORuFAncyyw80Ch6dhj58+1Lou8U3K2RYIBEOMgPFdmBt85VIBswzUCIz4mpfLzhWdWOZkDj9SAeT09lHt6CNF9LTfLHWDEpqtcS08JRLPtplLDBg/kFgpTZjLNXPfiHa1rKnHgOmpA7/PFUZZokiaOJN/r45PeEsDX8zHBqTb480iGavtxAsx1EpLhVyfZSScFdk0TQWfTBh/xRXd4edM88idfKJfC3hbOE/++rI6fYNUep9xpgok4rdyincit0jxElnzU1uHxCPok2eGGMsPLnsg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(396003)(376002)(346002)(39860400002)(136003)(451199021)(66476007)(38070700005)(38100700002)(30864003)(122000001)(2906002)(8936002)(8676002)(66899021)(86362001)(52536014)(5660300002)(33656002)(41300700001)(7696005)(55016003)(71200400001)(9686003)(53546011)(26005)(6506007)(966005)(54906003)(45080400002)(478600001)(83380400001)(186003)(19627235002)(316002)(82960400001)(66946007)(110136005)(76116006)(66556008)(4326008)(66446008)(64756008)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZGdhUm8vcGdBSk5qRzNzK2RpcWxpTGZiTkNzYmZES0xPRnE0WWowSlkvSWxI?= =?utf-8?B?MzY2TEVSMXNxQnZTSUhreXhkWm1UUThkdFpZSUVML0xlSmMwbURvTktmbDAw?= =?utf-8?B?R01CY2Yzdi85YTlvbS9nZTBSdDdDMnEvR2s5eHFoNUdNYVBCeUN0ZWRSQ0M1?= =?utf-8?B?SDRsRXFZbi9TbDJmNStiUGFpT0FMZ2cwQzZrTTFmNUJoQ1BzTnhySXdyak9v?= =?utf-8?B?NWZKa0Jqem4vRkZOQzE4MXZjK2ZLMkVWRGRQWW1uZmpsZ0MzdDloazVvamU0?= =?utf-8?B?d1BhZ2QxYysvZXY4cFJEaVlFRnh2UjgzL3BJSk81OUtDSWdnb3RmY0tHTGNv?= =?utf-8?B?WXVNQkJIV05oWEU1QWcyazFLbm9yMEdLbzFkUmRuTDNFL2Z4dlVHQXZuM3Zh?= =?utf-8?B?TiswVTRyUzVTRnBsb0NEdTU3eHJpTXpmdUltckNmTGVvOVlYQ3d4UXQrWXpS?= =?utf-8?B?MkMzRTBTUm5QYlpyUUlWMUEzbEkrbS9VK0JXL2lSbU8rYk5QZ0lxSmpkNldh?= =?utf-8?B?ZW5jbzY3KzVyUHNEOG95TmxnUnRydjdJTzdaZjNDajFKQ1VrVFlYRTdxcmVp?= =?utf-8?B?Nmo1MVhzZXJDR3hiYWFJbEVvblpFbWRFMFpOd1M1a1lXbjFFYm9pbCtVdVlp?= =?utf-8?B?cHZKSjZUT3pQbTFLdmhNWHVNV05yQlFDdGd4cFpyQVhod3JWU053NktRUDY2?= =?utf-8?B?Y3htMjROZ0k5TVd3Y3BvUVBTSk5LRVFLQU4zRXVrQ2hqbXp1Y2todlluQUxY?= =?utf-8?B?dHAvTXBYeE9IczFEUUlHalRrNUMyY3QxMG53ZDVuYUhQTUFwSWpuMGVmLyto?= =?utf-8?B?OHRqUnIySFg5YXZnYklLbDhQZVJzWDA5TmdsTTJHcklYSkhKOXpaWWovaVZ6?= =?utf-8?B?Nk9JUkkvWGJMa3hBZmV3TVNmU1NvaUVqNncvQXMwNU95RlZQelhmMitzVmJS?= =?utf-8?B?WWN5WURTVEFINWVRTWVqS3FvS1FtVTFZTGJQQUFMRjZnN2dodzBGamJuN0VT?= =?utf-8?B?QUR4RFVrbjVVeEtrSktWOTh4U3I5czRSWjVYaDRyZmRPSUFsZ2lvcjBjTWc1?= =?utf-8?B?R3BOaWp1aU4rMHFJN2lLdTFhdGQ4TE1DVk0vZGFvam1PN1NuQlVjUzBSbHpj?= =?utf-8?B?T1RyVWhlckFxeHNLV2RLeHhsRmZtS1dYNUNSMmxVb3I2TGtqdFpiT3VmRXJx?= =?utf-8?B?dVYzbXh5OGE5djJxblB4Mi90OXA0UTJsc3Q0RFBuNFJIcFlzSE55cWpDTVZu?= =?utf-8?B?ZXF1RzcwL251YUVaRUdHYlpuUlYzeDJoZjRER0s5Ui9USFBhaWM0eFZlaEQz?= =?utf-8?B?QkdLeEcvR0N1ZW9mN3E5KzZSVXNQSC9SUTdyV3h5cW5TOERSVS9tR1ZqWG10?= =?utf-8?B?ekFRRC9peFpqSHVzTDcvY1V0WTVpUGVmNVNHQXFQc3ZVRHN6T3gwSDA4TStM?= =?utf-8?B?TmlyMy9USUhhN1RvRWFvWDlOaHN1MFl4NTdEM1REcFA5SzRlRERHa2psdHZk?= =?utf-8?B?Y21NSGQ4UzgyVjVvK2RlbDBPVU5XNlNuTEkrODBGQS9KY05nUUVXTFBCNXc5?= =?utf-8?B?NVNab0lYQ20zSWxuQ2F6d3NMVXhDcTVIb0lYZWdDWlhMa2tsUEZvQTVxOThn?= =?utf-8?B?a0ZKOEF2K2FsMkkwL1d3dDRPU0hVRW5ER3pGWHByQmI3ZTFta1VraEl0NkYr?= =?utf-8?B?eUIxK0gxQUR6b0RvYzZ0UzBZN3dPZ3E4aEV4MmE2b3VLYkJtMDA1Ymx0VmhC?= =?utf-8?B?T3VBV3htRURzUWF5RG1Oa2dRQ1JMbCtqRloza0NGZnBnOW9LbGNKOU0vcklh?= =?utf-8?B?bUowaTZ1TzV2eTFzcHR3b0w3OG5UZUowdGhmMmhSa0xJRzEzMDZNZW8rdWgz?= =?utf-8?B?QlQ1SXlFTjNHaEFiYmI3UCtjcVlrclpxSHRYblFBb1k4Q3ZaSkt2cVpxcktF?= =?utf-8?B?eXdBd0wrc1FLNGJWMnByRE9YaUYvTENoTmwrNDFqemhZNi9ZSXA5QlZxdDU5?= =?utf-8?B?eGJHME5ieWsxVG0wdWo4T0lzMVFqUWhiTm5CQzdHQ1I2dWZhVTEvQ1hIUXN0?= =?utf-8?B?WklMbVVQYWFvR1krZ0s3cm00OU9WanhYOFFkRmEyU2RzbStOYjZZdHcvektQ?= =?utf-8?Q?ayKw5gsJ7hMB1WSTwdNnKBlQL?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2d190521-23c3-4dcc-9834-08db4210c052 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Apr 2023 02:33:11.6218 (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: Aa6qIDQfseU55yJZpzMCH3rtPGTcOgylBbazECzZAEScMY9n7/kbqnovaZNTfisv7vuTRqYipa+VDnE+GNjS9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4763 Return-Path: chasel.chiu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpIaSBNaWtlLA0KDQpUaGFua3MgZm9yIGJyaW5naW5nIHRoaXMgZ29vZCBwb2ludCENCldlIHdv dWxkIGxpa2UgdG8gZG9jdW1lbnQgdGhhdCBhbGwgRkRUIHN0cnVjdHVyZSBkYXRhIGFyZSBpbiAq YmlnIGVuZGlhbiogZm9ybWF0IGFuZCByZW1vdmUgdGhvc2UgU3dhcEJ5dGVzIE1BQ1JPcyBmcm9t IEZkdExpYi5oDQpJdCBtYWtlcyBzZW5zZSB0byBoYW5kbGUgdGhpcyBmcm9tIGxpYnJhcnkgY29u c3VtZXIgc2lkZSAoY29uc3VtZXIgY2FuIGRlZmluZSB0aGVpciBvd24gTUFDUk9zKSBiZWNhdXNl IHdlIGNhbm5vdCBhc3N1bWUgY29uc3VtZXIgdXNhZ2UgYWx3YXlzIHJlcXVpcmVzIFN3YXBCeXRl cy4NCg0KV2Ugd2lsbCBzZW5kIFY0IHBhdGNoIHRvIHVwZGF0ZSB0aGlzLg0KDQpUaGFua3MsDQpD aGFzZWwNCg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTWljaGFl bCBEDQo+IEtpbm5leQ0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwgMjAsIDIwMjMgOTo0NCBBTQ0K PiBUbzogTGluLCBCZW5ueSA8YmVubnkubGluQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBMZWlmIExpbmRob2xtDQo+IDxsbGluZGhvbEBxdGkucXVhbGNvbW0uY29tPg0KPiBDYzog R2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcNCj4g PHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdt YWlsLmNvbT47IEtpbm5leSwNCj4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjMgMi8zXSBNZGVQa2c6IFN1 cHBvcnQgRkRUIGxpYnJhcnkuDQo+IA0KPiBIaSBMZWlmLA0KPiANCj4gV2hhdCBpcyB5b3VyIG9w aW5pb24gb24gRkRUIGJlaW5nIGJpZyBlbmRpYW4uDQo+IA0KPiBEbyB3ZSB3YW50IHRoZSBsaWIg dG8gaGVscCB3aXRoIHRoYXQgYXNwZWN0LCBvciBsZWF2ZSBpdCB1cCB0byB0aGUgY29uc3VtZXIg b2YNCj4gdGhlIGxpYiB0bw0KPiBjb252ZXJ0IGFzIG5lZWRlZD8gIFNlZW1zIGxpa2UgYW4gYXJl YSB0aGF0IGNvdWxkIGJlIHZlcnkgZXJyb3IgcHJvbmUgaWYgd2UgYXJlDQo+IG5vdA0KPiBjYXJl ZnVsLg0KPiANCj4gTWlrZQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ IEZyb206IExpbiwgQmVubnkgPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4gU2VudDogV2VkbmVz ZGF5LCBBcHJpbCAxOSwgMjAyMyA5OjI1IFBNDQo+ID4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gQ2M6 IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nDQo+ IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgUGVkcm8gRmFsY2F0byA8cGVkcm8uZmFsY2F0b0Bn bWFpbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2MyAyLzNdIE1kZVBrZzogU3VwcG9y dCBGRFQgbGlicmFyeS4NCj4gPg0KPiA+DQo+ID4NCj4gPiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+RnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiA+ID5TZW50OiBUaHVyc2RheSwgQXByaWwgMjAsIDIwMjMgNTowNCBBTQ0KPiA+ ID5UbzogTGluLCBCZW5ueSA8YmVubnkubGluQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBz LmlvDQo+ID4gPkNjOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1 LCBaaGlndWFuZw0KPiA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47IFBlZHJvIEZhbGNhdG8gPHBl ZHJvLmZhbGNhdG9AZ21haWwuY29tPjsgS2lubmV5LA0KPiA+IE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPlN1YmplY3Q6IFJFOiBbUEFUQ0ggdjMgMi8zXSBNZGVQ a2c6IFN1cHBvcnQgRkRUIGxpYnJhcnkuDQo+ID4gPg0KPiA+ID5SZXNwb25zZXMgYmVsb3cNCj4g PiA+DQo+ID4gPk1pa2UNCj4gPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+PiBGcm9tOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPg0KPiA+ID4+IFNl bnQ6IFdlZG5lc2RheSwgQXByaWwgMTksIDIwMjMgMTA6MTIgQU0NCj4gPiA+PiBUbzogS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiA+PiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbw0KPiA+ID4+IENjOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPjsgTGl1LCBaaGlndWFuZw0KPiA+ID4+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsg UGVkcm8gRmFsY2F0byA8cGVkcm8uZmFsY2F0b0BnbWFpbC5jb20+DQo+ID4gPj4gU3ViamVjdDog UkU6IFtQQVRDSCB2MyAyLzNdIE1kZVBrZzogU3VwcG9ydCBGRFQgbGlicmFyeS4NCj4gPiA+Pg0K PiA+ID4+IFBsZWFzZSBmaW5kIG15IGZlZWRiYWNrIGJlbG93Lg0KPiA+ID4+IFdlIGNhbiByZW1v dmUgRkRUX1JFU0VSVkVfRU5UUlkgYnV0IGtlZXAgRkRUX05PREVfSEVBREVSLCB3aGF0DQo+IGRv IHlvdSB0aGluaz8NCj4gPiA+Pg0KPiA+ID4+IFFRUQ0KPiA+ID4+IEJlbm55DQo+ID4gPj4NCj4g PiA+PiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiA+RnJvbTogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4+ID5TZW50OiBXZWRu ZXNkYXksIEFwcmlsIDE5LCAyMDIzIDExOjU0IFBNDQo+ID4gPj4gPlRvOiBMaW4sIEJlbm55IDxi ZW5ueS5saW5AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+PiA+Q2M6IEdh bywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nDQo+ID4g Pj4gPjx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgUGVkcm8gRmFsY2F0byA8cGVkcm8uZmFsY2F0 b0BnbWFpbC5jb20+Ow0KPiA+ID4+ID5LaW5uZXksDQo+ID4gPj4gTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+PiA+U3ViamVjdDogUkU6IFtQQVRDSCB2MyAyLzNd IE1kZVBrZzogU3VwcG9ydCBGRFQgbGlicmFyeS4NCj4gPiA+PiA+DQo+ID4gPj4gPkEgZmV3IGNv bW1lbnRzIGJlbG93Lg0KPiA+ID4+ID4NCj4gPiA+PiA+TWlrZQ0KPiA+ID4+ID4NCj4gPiA+PiA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+ID4+IEZyb206IExpbiwgQmVubnkg PGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4gPj4gPj4gU2VudDogU3VuZGF5LCBBcHJpbCAxNiwg MjAyMyAxMDozNSBQTQ0KPiA+ID4+ID4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4+ ID4+IENjOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVs IEQNCj4gPiA+PiA+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0K PiA+ID4+ID4+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nIDx6aGln dWFuZy5saXVAaW50ZWwuY29tPjsNCj4gPiA+PiA+PiBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxj YXRvQGdtYWlsLmNvbT4NCj4gPiA+PiA+PiBTdWJqZWN0OiBbUEFUQ0ggdjMgMi8zXSBNZGVQa2c6 IFN1cHBvcnQgRkRUIGxpYnJhcnkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBGcm9tOiBCZW5ueSBM aW4gPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBSRUY6IGh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM5Mg0KPiA+ID4+ID4+ IEFkZCBGRFQgc3VwcG9ydCBpbiBFREsyIGJ5IHN1Ym1vZHVsZSAzcmQgcGFydHkgbGliZmR0DQo+ ID4gPj4gPj4gKGh0dHBzOi8vZ2l0aHViLmNvbS9kZXZpY2V0cmVlLW9yZy9weWxpYmZkdC90cmVl L21haW4vbGliZmR0KQ0KPiA+ID4+ID4+IGFuZCByZWZlciB0byBMaWJjTGliIGltcGxlbWVudGF0 aW9uIGJ5IFBlZHJvLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4+ID4+IENjOiBMaW1pbmcgR2FvIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4gPj4gPj4gQ2M6IFpoaWd1YW5nIExpdSA8emhp Z3VhbmcubGl1QGludGVsLmNvbT4NCj4gPiA+PiA+PiBBY2tlZC1ieTogUGVkcm8gRmFsY2F0byA8 cGVkcm8uZmFsY2F0b0BnbWFpbC5jb20+DQo+ID4gPj4gPj4gU2lnbmVkLW9mZi1ieTogQmVubnkg TGluIDxiZW5ueS5saW5AaW50ZWwuY29tPg0KPiA+ID4+ID4+IC0tLQ0KPiA+ID4+ID4+ICBNZGVQ a2cvSW5jbHVkZS9MaWJyYXJ5L0ZkdExpYi5oICAgICAgICAgICB8IDMxNCArKysrKysrKysrKysr KysrKysrKw0KPiA+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIu aW5mICB8ICA2MiArKysrDQo+ID4gPj4gPj4gTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNl RmR0TGliLnVuaSAgfCAgMTQgKw0KPiA+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGli L0ZkdExpYi5jICAgICAgICB8IDMwMSArKysrKysrKysrKysrKysrKysrDQo+ID4gPj4gPj4gIE1k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0U3VwcG9ydC5oIHwgIDk5ICsrKysrKw0KPiA+ ID4+ID4+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBlci5jIHwgMTczICsr KysrKysrKysrDQo+ID4gPj4gPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvbGltaXRzLmgg ICAgICAgIHwgIDEwICsNCj4gPiA+PiA+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRi b29sLmggICAgICAgfCAgMTAgKw0KPiA+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGli L3N0ZGRlZi5oICAgICAgICB8ICAxMCArDQo+ID4gPj4gPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VG ZHRMaWIvc3RkaW50LmggICAgICAgIHwgIDEwICsNCj4gPiA+PiA+PiAgTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9zdGRsaWIuaCAgICAgICAgfCAgMTAgKw0KPiA+ID4+ID4+ICBNZGVQa2cvTGli cmFyeS9CYXNlRmR0TGliL3N0cmluZy5oICAgICAgICB8ICAxMCArDQo+ID4gPj4gPj4gIE1kZVBr Zy9NZGVQa2cuY2kueWFtbCAgICAgICAgICAgICAgICAgICAgIHwgIDE3ICstDQo+ID4gPj4gPj4g IE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCj4gPiA+ PiA+PiAgTWRlUGtnL01kZVBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0K PiA+ID4+ID4+ICAxNSBmaWxlcyBjaGFuZ2VkLCAxMDQzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUv TGlicmFyeS9GZHRMaWIuaA0KPiA+ID4+ID4+IGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9GZHRM aWIuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPiA+ID4+ID4+IDAwMDAwMDAwMDAuLmQ1 OWI3NDljMjUNCj4gPiA+PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPj4gPj4gKysrIGIvTWRlUGtn L0luY2x1ZGUvTGlicmFyeS9GZHRMaWIuaA0KPiA+ID4+ID4+IEBAIC0wLDAgKzEsMzE0IEBADQo+ ID4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgRmxhdHRlbmVkIERl dmljZSBUcmVlIExpYnJhcnkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArI2lmbmRlZiBGRFRfTElCX0hfDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr I2RlZmluZSBGRFRfTElCX0hfDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArLy8vDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLy8vIEZsYXR0ZW5lZCBEZXZpY2Ug VHJlZSBkZWZpbml0aW9uDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLy8vDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgVUlOVDMy ICAgIE1hZ2ljOyAgICAgICAgICAgICAgIC8qIG1hZ2ljIHdvcmQgRkRUX01BR0lDICovDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICBVSU5UMzIgICAgVG90YWxTaXplOyAgICAgICAgICAgLyogdG90 YWwgc2l6ZSBvZiBEVCBibG9jayAqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgVUlOVDMyICAg IE9mZnNldER0U3RydWN0OyAgICAgIC8qIG9mZnNldCB0byBzdHJ1Y3R1cmUgKi8NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsgIFVJTlQzMiAgICBPZmZzZXREdFN0cmluZ3M7ICAgICAvKiBvZmZzZXQg dG8gc3RyaW5ncyAqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgVUlOVDMyICAgIE9mZnNldE1l bVJzdm1hcDsgICAgIC8qIG9mZnNldCB0byBtZW1vcnkgcmVzZXJ2ZSBtYXAgKi8NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsgIFVJTlQzMiAgICBWZXJzaW9uOyAgICAgICAgICAgICAvKiBmb3JtYXQg dmVyc2lvbiAqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgVUlOVDMyICAgIExhc3RDb21wVmVy c2lvbjsgICAgIC8qIGxhc3QgY29tcGF0aWJsZSB2ZXJzaW9uICovDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAvKiB2ZXJzaW9uIDIgZmllbGRzIGJlbG93 ICovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBVSU5UMzIgICAgQm9vdENwdWlkUGh5czsgICAg ICAgLyogV2hpY2ggcGh5c2ljYWwgQ1BVIGlkIHdlJ3JlDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdGluZyBvbiAqLw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgLyogdmVyc2lvbiAzIGZpZWxkcyBiZWxvdyAqLw0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyAgVUlOVDMyICAgIFNpemVEdFN0cmluZ3M7ICAgICAgIC8qIHNpemUgb2Yg dGhlIHN0cmluZ3MgYmxvY2sgKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIC8qIHZlcnNpb24gMTcgZmllbGRzIGJlbG93ICovDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArICBVSU5UMzIgICAgU2l6ZUR0U3RydWN0OyAgICAgICAgLyogc2l6ZSBvZiB0aGUg c3RydWN0dXJlIGJsb2NrICovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArfSBGRFRfSEVBREVSOw0K PiA+ID4+ID4NCj4gPiA+PiA+SSBzZWUgdGhlIG1hY3JvcyBiZWxvdyB1c2UgU3dhcEJ5dGVzMzIo KSBvbiBhbGwgdGhlIGZpZWxkcyBmcm9tIHRoaXMNCj4gPiA+PiA+c3RydWN0dXJlLiAgRG9lcyB0 aGlzIG1lYW4gdGhpcyBzdHJ1Y3R1cmUgaXMgYmlnID5lbmRpYW4/ICBJZg0KPiA+ID4+IHRoYXQg aXMgdGhlIGNhc2UsIHRoZW4gdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgc3RydWN0dXJlIGFuZCBh bGwNCj4gPiA+PiBpbmRpdmlkdWFsIGZpZWxkcyBtdXN0IG1ha2UgdGhhdCB2ZXJ5IGNsZWFyID5z byBhbnkgY29uc3VtZXIgb2YgdGhlDQo+ID4gPj4gc3RydWN0dXJlIGtub3dzIGl0IGRvZXMgbm90 IGZvbGxvdyB0aGUgZGVmYXVsdCBlbmRpYW5uZXNzIG9mIFVFRkkvUEkgYW5kDQo+IHRoYXQgY29u c3VtZXJzID5tdXN0IGVpdGhlciB1c2UgdGhlIG1hY3JvcyBvciBjb25zdW1lcnMNCj4gPiBtdXN0 IHVzZSBTd2FwQnl0ZXMzMigpIG9uIHRoZWlyIG93biB3aGVuIHVzaW5nIHRoaXMgc3RydWN0dXJl IGRpcmVjdGx5Lg0KPiA+ID4+DQo+ID4gPj4gWWVzLCBpdCdzIGJpZyBlbmRpYW4uIEkgd2lsbCBj b21wbGV0ZSBtb3JlIGRlc2NyaXB0aW9ucyBpbiBwYXRjaCB2NC4NCj4gPiA+DQo+ID4gPldvdWxk IGl0IGJlIHNpbXBsZXIgaWYgd2UgaGF2ZSBhIGxpYiBzZXJ2aWNlIHRoYXQgY29udmVydHMgdGhl IGVudGlyZSBoZWFkZXINCj4gZnJvbSBiaWcgZW5kaWFuIHRvIGxpdHRsZSBlbmRpYW4uDQo+ID4g PlRoYXQgd2F5LCB0aGUgY29uc3VtZXIgY2FuIHVzZSB0aGUgRkRUX0hFQURFUiBkaXJlY3RseSB3 aXRob3V0IGFueSBvZiB0aGUNCj4gbWFjcm9zPw0KPiA+ID4NCj4gPiA+QWxzbywgaXMgdGhlIHJl c3Qgb2YgdGhlIEZEVCBibG9iIGFsc28gYmlnIGVuZGlhbj8NCj4gPg0KPiA+IEZEVCBibG9iIGZv cm1hdCBpcyBiaW5hcnkgZW5jb2Rpbmcgb2YgRkRUIGRhdGEgd2l0aCBiaWcgZW5kaWFuLiBJbiBh ZGRpdGlvbiwNCj4gdGhlIGNvbnN1bWVyIHdpbGwgc2V0IG9yIGdldCBGRFQgZGF0YSB3aXRoIEZE VCBibG9iLiBXZQ0KPiA+IGNhbiBjb21wbGV0ZSBtb3JlIGRlc2NyaXB0aW9ucyB0byB3YXJuIGNv bnN1bWVycyB0byBiZSBjYXJlZnVsIGlmIGp1c3QgdXNlDQo+IGhlYWRlciBzdHJ1Y3QgZm9yIG1h cHBpbmcgYW5kIGdldC9zZXQgRkRUIGRhdGEgd2l0aCBGRFQNCj4gPiBibG9iLg0KPiA+DQo+ID4g Rm9yIHByb3ZpZGUgbGliIHNlcnZpY2VzIHRoYXQgY29udmVydHMgYmV0d2VlbiBiaWcgZW5kaWFu IGFuZCBsaXR0bGUgZW5kaWFuLCB3ZQ0KPiBjYW4gcHJvdmlkZSBhIGdldCBoZWFkZXIgZnVuY3Rp b24gdG8gY29udmVydCBiZXR3ZWVuDQo+ID4gYmlnIGVuZGlhbiBhbmQgbGl0dGxlIGVuZGlhbi4g SG93ZXZlciwgd2UgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIHRoZSBwcm9wZXJ0eQ0KPiB2YWx1ZSBm b3Igc2V0dGluZyBhbmQgZ2V0dGluZyB0aGVuIHdlIGNhbiBjb252ZXJ0IGluDQo+ID4gd3JhcHBl ciBmdW5jdGlvbnMuDQo+ID4NCj4gPiBGb3IgZXhhbXBsZSwNCj4gPg0KPiA+IElOVDMyDQo+ID4g RUZJQVBJDQo+ID4gRmR0U2V0UHJvcCAoDQo+ID4gICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4g PiAgIElOIElOVDMyICAgICAgICBOb2RlT2Zmc2V0LA0KPiA+ICAgSU4gQ09OU1QgQ0hBUjggICpO YW1lLA0KPiA+ICAgSU4gQ09OU1QgVk9JRCAgICpWYWx1ZSwNCj4gPiAgIElOIFVJTlQzMiAgICAg ICBMZW5ndGgNCj4gPiAgICkNCj4gPiB7DQo+ID4gICByZXR1cm4gZmR0X3NldHByb3AgKEZkdCwg Tm9kZU9mZnNldCwgTmFtZSwgVmFsdWUsIChpbnQpTGVuZ3RoKTsNCj4gPiB9DQo+ID4NCj4gPiBN b3JlIGZ1bmN0aW9ucyBmb3IgdmFyaW91cyBieXRlIHdpZHRoLg0KPiA+IElOVDMyDQo+ID4gRUZJ QVBJDQo+ID4gRmR0U2V0UHJvcDE2ICgNCj4gPiAgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPiA+ ICAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+ID4gICBJTiBDT05TVCBDSEFSOCAgKk5h bWUsDQo+ID4gICBJTiBDT05TVCBVSU5UMTYgICAqVmFsdWUsDQo+ID4gICBJTiBVSU5UMzIgICAg ICAgTGVuZ3RoDQo+ID4gICApDQo+ID4gew0KPiA+ICAgcmV0dXJuIGZkdF9zZXRwcm9wIChGZHQs IE5vZGVPZmZzZXQsIE5hbWUsIFN3YXBCeXRlczE2KFZhbHVlKSwgKGludClMZW5ndGgpOw0KPiA+ IH0NCj4gPg0KPiA+IElOVDMyDQo+ID4gRUZJQVBJDQo+ID4gRmR0U2V0UHJvcDMyICgNCj4gPiAg IElOIFZPSUQgICAgICAgICAqRmR0LA0KPiA+ICAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQs DQo+ID4gICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+ID4gICBJTiBDT05TVCBVSU5UMzIgICAq VmFsdWUsDQo+ID4gICBJTiBVSU5UMzIgICAgICAgTGVuZ3RoDQo+ID4gICApDQo+ID4gew0KPiA+ ICAgcmV0dXJuIGZkdF9zZXRwcm9wIChGZHQsIE5vZGVPZmZzZXQsIE5hbWUsIFN3YXBCeXRlczMy KFZhbHVlKSwgKGludClMZW5ndGgpOw0KPiA+IH0NCj4gPg0KPiA+ID4+DQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgVUlOVDY0ICAgIEFkZHJlc3M7DQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBVSU5UNjQgICAgU2l6ZTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt9IEZEVF9SRVNFUlZF X0VOVFJZOw0KPiA+ID4+ID4NCj4gPiA+PiA+DQo+ID4gPj4gPkkgZG8gbm90IHNlZSB0aGlzIHR5 cGUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgbGliIGNsYXNzIG9yIHRoZSBsaWIgaW5zdGFuY2UuDQo+ ID4gPj4gPkNhbiBpdCBiZSByZW1vdmVkPw0KPiA+ID4+DQo+ID4gPj4gSSB0aGluayB3ZSBjYW4g cmVtb3ZlIGl0IGJlY2F1c2UgaXQgbWlnaHQgYmUgbm90IHVzZWQgZm9yIGZ1cnRoZXIgdXNhZ2Ug b2YNCj4gRkRUIHN1cHBvcnQuDQo+ID4gPj4NCj4gPiA+PiA+DQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyAgVUlOVDMyICAgIFRhZzsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIENIQVI4 ICAgICBOYW1lW107DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArfSBGRFRfTk9ERV9IRUFERVI7DQo+ ID4gPj4gPg0KPiA+ID4+ID4NCj4gPiA+PiA+SSBkbyBub3Qgc2VlIHRoaXMgdHlwZSB1c2VkIGFu eXdoZXJlIGluIHRoZSBsaWIgY2xhc3Mgb3IgdGhlIGxpYiBpbnN0YW5jZS4NCj4gPiA+PiA+Q2Fu IGl0IGJlIHJlbW92ZWQ/DQo+ID4gPj4NCj4gPiA+PiBXaGVuIHdlIG5lZWQgcmV0cmlldmUgYSBu b2RlIGZyb20gYSBGRFQgYmxvYiwgd2Ugd2lsbCBnZXQgYSBub2RlDQo+ID4gPj4gb2Zmc2V0IHRo ZW4gd2UgY291bGQgdXNlIHRoZSBzdHJ1Y3QgdG8gbWFwIHRoZSBub2RlIGNvbnRlbnQuIEl0J3Mg dmVyeQ0KPiB1c2VmdWwuDQo+ID4gPg0KPiA+ID5QbGVhc2UgYWRkIGEgY29tbWVudCBoZWFkZXIg Zm9yIHRoaXMgc3RydWN0dXJlIGFuZCBkZXNjcmliZSB0aGUgdXNhZ2UgYXMgaXQNCj4gcmVsYXRl ZCB0byB0aGUgcmVzdCBvZiB0aGUgRmR0TGliID5zZXJ2aWNlcy4NCj4gPg0KPiA+IEkgd2lsbCBh ZGQgZGVzY3JpcHRpb25zIGZvciB0aGUgdXNhZ2UgYW5kIHJlbW92ZSBGRFRfUkVTRVJWRV9FTlRS WSBpbiBwYXRjaA0KPiB2NC4NCj4gPg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+ID4NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICBVSU5UMzIgICAgVGFnOw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgVUlOVDMyICAgIExlbmd0aDsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFVJTlQzMiAg ICBOYW1lT2Zmc2V0Ow0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQ0hBUjggICAgIERhdGFbXTsN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt9IEZEVF9QUk9QRVJUWTsNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIEZEVF9HRVRfSEVBREVSKEZkdCwg RmllbGQpICBTd2FwQnl0ZXMzMigoKENPTlNUDQo+IEZEVF9IRUFERVINCj4gPiA+PiA+PiArKiko RmR0KSktPkZpZWxkKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyNkZWZpbmUgRkRUX01BR0lDKEZkdCkgICAgICAgICAgICAgIChGRFRfR0VUX0hFQURFUihG ZHQsIE1hZ2ljKSkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIEZEVF9UT1RBTF9TSVpF KEZkdCkgICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBUb3RhbFNpemUpKQ0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyNkZWZpbmUgRkRUX09GRlNFVF9EVF9TVFJVQ1QoRmR0KSAgIChGRFRfR0VU X0hFQURFUihGZHQsDQo+IE9mZnNldER0U3RydWN0KSkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsj ZGVmaW5lIEZEVF9PRkZTRVRfRFRfU1RSSU5HUyhGZHQpICAoRkRUX0dFVF9IRUFERVIoRmR0LA0K PiA+ID4+ID4+ICtPZmZzZXREdFN0cmluZ3MpKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNkZWZp bmUgRkRUX09GRlNFVF9NRU1fUlNWTUFQKEZkdCkgIChGRFRfR0VUX0hFQURFUihGZHQsDQo+ID4g Pj4gPj4gK09mZnNldE1lbVJzdm1hcCkpDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArI2RlZmluZSBG RFRfVkVSU0lPTihGZHQpICAgICAgICAgICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgVmVyc2lvbikp DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArI2RlZmluZSBGRFRfTEFTVF9DT01QX1ZFUlNJT04oRmR0 KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwNCj4gPiA+PiA+PiArTGFzdENvbXBWZXJzaW9uKSkNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIEZEVF9CT09UX0NQVUlEX1BIWVMoRmR0KSAgICAo RkRUX0dFVF9IRUFERVIoRmR0LA0KPiBCb290Q3B1aWRQaHlzKSkNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsjZGVmaW5lIEZEVF9TSVpFX0RUX1NUUklOR1MoRmR0KSAgICAoRkRUX0dFVF9IRUFERVIo RmR0LA0KPiBTaXplRHRTdHJpbmdzKSkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIEZE VF9TSVpFX0RUX1NUUlVDVChGZHQpICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LA0KPiBTaXplRHRT dHJ1Y3QpKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8q Kg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgVmVyaWZ5IHRoZSBoZWFkZXIgb2YgdGhlIEZsYXR0 ZW5lZCBEZXZpY2UgVHJlZQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxv Yi4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEByZXR1 cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gK0lOVDMyDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArRmR0Q2hlY2tIZWFkZXIgKA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1Qg Vk9JRCAgKkZkdA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKTsNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IENyZWF0ZSBhIGVtcHR5IEZsYXR0ZW5lZCBEZXZpY2UgVHJlZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gQnVmZmVyICAgICAgICAg VGhlIHBvaW50ZXIgdG8gYWxsb2NhdGUgYSBwb29sIGZvciBGRFQgYmxvYi4NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gQnVmZmVyU2l6ZSAgICAgVGhlIEJ1ZmZlclNpemUgdG8g dGhlIHBvb2wgc2l6ZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgIEByZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gK1JFVFVSTl9TVEFUVVMNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklB UEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtGZHRDcmVhdGVFbXB0eVRyZWUgKA0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyAgSU4gVk9JRCAgICpCdWZmZXIsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICBJTiBVSU5UTiAgQnVmZmVyU2l6ZQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4dCBub2RlIGZyb20gdGhlIGdpdmVu IG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBA cGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRv IHByZXZpb3VzIG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIERlcHRo ICAgICAgICAgIFRoZSBkZXB0aCB0byB0aGUgbGV2ZWwgb2YgdHJlZSBoaWVyYXJjaHkuDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcmV0dXJuIFRoZSBv ZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0ZkdE5leHROb2Rl ICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQsDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBJTiBJTlQzMiAgICAgICAqRGVwdGgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICk7 DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLyoqDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IG5vZGUgdW5kZXIg dGhlIGdpdmVuIG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9i Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUg b2Zmc2V0IHRvIHByZXZpb3VzIG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4N Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gK0ZkdEZpcnN0U3Vibm9kZSAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gSU5U MzIgICAgICAgT2Zmc2V0DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICApOw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8qKg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBuZXh0IG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4N Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtp bl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlv dXMgbm9kZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IG5vZGUgb2Zmc2V0Lg0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g K0lOVDMyDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArRmR0TmV4dFN1Ym5vZGUgKA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9J RCAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFJldHVybnMgYSBv ZmZzZXQgb2YgZmlyc3Qgbm9kZSB3aGljaCBpbmNsdWRlcyB0aGUgZ2l2ZW4gbmFtZS4NCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0 ICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgQHBhcmFtW2luXSBQYXJlbnRPZmZzZXQgICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSB3 aGljaCBzdGFydCBmaW5kDQo+IHVuZGVyLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFt W2luXSBOYW1lICAgICAgICAgICAgVGhlIG5hbWUgdG8gc2VhcmNoIHRoZSBub2RlIHdpdGggdGhl IG5hbWUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWVMZW5ndGggICAg ICBUaGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHRvIGNoZWNrIG9ubHkuDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbm9k ZSBvZmZzZXQgd2l0aCBnaXZlbiBub2RlIG5hbWUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArSU5UMzINCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtGZHRTdWJu b2RlT2Zmc2V0TmFtZUxlbiAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lE ICAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBQYXJlbnRP ZmZzZXQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgTmFtZUxlbmd0aA0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgKTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQg b2YgZmlyc3Qgbm9kZSB3aGljaCBpbmNsdWRlcyB0aGUgZ2l2ZW4gcHJvcGVydHkgbmFtZQ0KPiBh bmQgdmFsdWUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gU3RhcnRPZmZzZXQgICAgIFRoZSBvZmZz ZXQgdG8gdGhlIHN0YXJ0aW5nIG5vZGUgdG8gZmluZC4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IEBwYXJhbVtpbl0gUHJvcGVydHlOYW1lICAgIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIHNlYXJjaCB0 aGUgbm9kZQ0KPiBpbmNsdWRpbmcgdGhlIG5hbWVkIHByb3BlcnR5Lg0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKyAgQHBhcmFtW2luXSBQcm9wZXJ0eVZhbHVlICAgVGhlIHByb3BlcnR5IHZhbHVlIHRv IGNoZWNrIHRoZSBzYW1lDQo+IHByb3BlcnR5IHZhbHVlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgQHBhcmFtW2luXSBQcm9wZXJ0eUxlbmd0aCAgVGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaW4g UHJvcGVydFZhbHVlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5vZGUgb2Zmc2V0IHdpdGggZ2l2ZW4gcHJvcGVy dHkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArSU5UMzINCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtGZHROb2RlT2Zmc2V0QnlQcm9wVmFsdWUgKA0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpGZHQsDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBJTiBJTlQzMiAgICAgICAgU3RhcnRPZmZzZXQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBJTiBDT05TVCBDSEFSOCAgKlByb3BlcnR5TmFtZSwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIElOIENPTlNUIFZPSUQgICAqUHJvcGVydHlWYWx1ZSwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIElOIElOVDMyICAgICAgICBQcm9wZXJ0eUxlbmd0aA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgKTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFJldHVybnMgYSBwcm9wZXJ0eSB3aXRoIHRoZSBnaXZl biBuYW1lIGZyb20gdGhlIGdpdmVuIG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVy IHRvIEZEVCBibG9iLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBOb2RlT2Zm c2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBnaXZlbiBub2RlLg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgQHBhcmFtW2luXSBOYW1lICAgICAgICAgICBUaGUgbmFtZSB0byB0aGUgcHJvcGVydHkg d2hpY2ggbmVlZCBiZQ0KPiBzZWFyY2hlZA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFt W2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0 eSBmb3VuZC4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IEByZXR1cm4gVGhlIHByb3BlcnR5IHRvIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGZvdW5kIHByb3Bl cnR5Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gK0NPTlNUIEZEVF9QUk9QRVJUWSAqDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArRUZJQVBJDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRmR0R2V0UHJvcGVydHkgKA0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpGZHQsDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IElOIElOVDMyICAgICAgICAqTGVuZ3RoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICApOw0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8qKg0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBwcm9wZXJ0eSBpbiB0aGUg Z2l2ZW4gbm9kZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZz ZXQgdG8gdGhlIG5vZGUgd2hpY2ggbmVlZCBiZQ0KPiBzZWFyY2hlZC4NCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBm aXJzdCBwcm9wZXJ0eSBvZmZzZXQgaW4gdGhlIGdpdmVuIG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr SU5UMzINCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICtGZHRGaXJzdFByb3BlcnR5T2Zmc2V0ICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIENP TlNUIFZPSUQgICpGZHQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBO b2RlT2Zmc2V0DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICApOw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8qKg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAg UmV0dXJucyBhIG9mZnNldCBvZiBuZXh0IHByb3BlcnR5IGZyb20gdGhlIGdpdmVuIHByb3BlcnR5 Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFt W2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2 aW91cyBwcm9wZXJ0eS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IHByb3BlcnR5IG9mZnNldC4NCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICtJTlQzMg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gK0ZkdE5leHRQcm9wZXJ0eU9mZnNldCAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gSU5U MzIgICAgICAgT2Zmc2V0DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICApOw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8qKg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgUmV0dXJucyBhIHByb3BlcnR5IGZyb20gdGhlIGdpdmVuIG9mZnNldCBvZiB0aGUgcHJv cGVydHkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBA cGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRv IHRoZSBnaXZlbiBvZmZzZXQgb2YgdGhlIHByb3BlcnR5Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRo ZSBwcm9wZXJ0eSBmb3VuZC4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsgIEByZXR1cm4gVGhlIHByb3BlcnR5IHRvIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGdp dmVuIHByb3BlcnR5IG9mZnNldC4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtDT05TVCBGRFRfUFJPUEVSVFkg Kg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0Zk dEdldFByb3BlcnR5QnlPZmZzZXQgKA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1Qg Vk9JRCAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNl dCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGgNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgICk7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArLyoqDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBSZXR1cm5zIGEgc3RyaW5n IGJ5IHRoZSBnaXZlbiBzdHJpbmcgb2Zmc2V0Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRl ciB0byBGRFQgYmxvYi4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gU3RyT2Zm c2V0ICAgICAgVGhlIG9mZnNldCB0byB0aGUgbG9jYXRpb24gaW4gdGhlIHN0cmluZ3MgYmxvY2sN Cj4gb2YgRkRULg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAg ICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHN0cmluZyB3aGljaCBuZWVkIGJlDQo+IHJl dHJpZXZlZC4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IEByZXR1cm4gVGhlIHN0cmluZyB0byB0aGUgZ2l2ZW4gc3RyaW5nIG9mZnNldC4NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICtDT05TVCBDSEFSOCAqDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRUZJQVBJDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArRmR0R2V0U3RyaW5nICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAg ICAgICBTdHJPZmZzZXQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAq TGVuZ3RoICAgICAgICBPUFRJT05BTA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKTsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIEFkZCBhIG5ldyBub2RlIHRvIHRoZSBGRFQuDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAg IFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFt W2luXSBQYXJlbnRPZmZzZXQgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2RlIG9mZnNldCB3aGljaCB3 YW50DQo+IHRvIGFkZCBpbi4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTmFt ZSAgICAgICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgbm9kZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEByZXR1cm4gIFRoZSBvZmZzZXQgdG8gdGhl IG5ldyBub2RlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0lOVDMyDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr RUZJQVBJDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRmR0QWRkU3Vibm9kZSAoDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIElOIElOVDMyICAgICAgICBQYXJlbnRPZmZzZXQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICBJTiBDT05TVCBDSEFSOCAgKk5hbWUNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICk7DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLyoqDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICBBZGQgb3IgbW9kaWZ5IGEgcHJvcGVydHkgaW4gdGhlIGdpdmVuIG5vZGUu DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1b aW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBOb2RlT2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBu b2RlIG9mZnNldCB3aGljaCB3YW50DQo+IHRvIGFkZCBpbi4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgcHJvcGVy dHkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIFZhbHVlICAgICAgICAgIFRo ZSB2YWx1ZSB0byB0aGUgcHJvcGVydHkgdmFsdWUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBA cGFyYW1baW5dIExlbmd0aCAgICAgICAgIFRoZSBsZW5ndGggdG8gdGhlIHNpemUgb2YgdGhlIHBy b3BlcnR5Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAg QHJldHVybiAgWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gK0lOVDMyDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArRmR0U2V0UHJvcCAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBWT0lE ICAgICAgICAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBO b2RlT2Zmc2V0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1l LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpWYWx1ZSwNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgIElOIFVJTlQzMiAgICAgICBMZW5ndGgNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsgICk7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArI2VuZGlmIC8qIEZEVF9MSUJfSF8gKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+IGRpZmYgLS1n aXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIuaW5mDQo+ID4gPj4gPj4g Yi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIuaW5mDQo+ID4gPj4gPj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+PiA+PiBpbmRleCAwMDAwMDAwMDAwLi43MzBlNTY4ZmY2 DQo+ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5 L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi5pbmYNCj4gPiA+PiA+PiBAQCAtMCwwICsxLDYyIEBADQo+ ID4gPj4gPj4gKyMjIEBmaWxlDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArIyBGbGF0dGVuZWQgRGV2 aWNlIFRyZWUgTGlicmFyeS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArIyBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArIyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArIw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyMjDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArW0RlZmluZXNdDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTkZfVkVSU0lPTiAg ICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDFCDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBC QVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBCYXNlRmR0TGliDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArICBNT0RVTEVfVU5JX0ZJTEUgICAgICAgICAgICAgICAgPSBCYXNlRmR0TGliLnVu aQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAg ID0gQzY0RENCMDEtQjAzNy00RkY2LTlDRjMtRThDRUMyMDZERTA0DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IEZkdExp Yg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgREVGSU5F IEZEVF9MSUJfUEFUSCAgICAgICAgICAgID0gbGliZmR0L2xpYmZkdA0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyMNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsj ICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElBMzIgWDY0DQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArIw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g K1tTb3VyY2VzXQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgRmR0TGliLmMNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIExpYkZkdFdyYXBwZXIuYw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgIyBo ZWFkZXIgV3JhcHBlciBmaWxlcw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgbGltaXRzLmgNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHN0ZGJvb2wuaA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAg c3RkZGVmLmgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHN0ZGludC5oDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArICBzdGRsaWIuaA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgc3RyaW5nLmgNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICQoRkRUX0xJQl9Q QVRIKS9mZHQuYw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdC5o DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X2FkZHJlc3Nlcy5j DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X2NoZWNrLmMNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfZW1wdHlfdHJlZS5jDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X292ZXJsYXkuYw0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF9yby5jDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3J3LmMNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfc3RyZXJyb3IuYw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF9zdy5jDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAk KEZEVF9MSUJfUEFUSCkvZmR0X3dpcC5jDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAkKEZEVF9M SUJfUEFUSCkvbGliZmR0LmgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICQoRkRUX0xJQl9QQVRI KS9saWJmZHRfZW52LmgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9s aWJmZHRfaW50ZXJuYWwuaA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gK1tQYWNrYWdlc10NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIE1kZVBrZy9NZGVQa2cu ZGVjDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArW0xpYnJh cnlDbGFzc2VzXQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQmFzZUxpYg0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyAgQmFzZU1lbW9yeUxpYg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gK1tCdWlsZE9wdGlvbnNdDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBN U0ZUOipfKl9JQTMyX0NDX0ZMQUdTID0gL3dkNDE0NiAvd2Q0MjQ1DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBNU0ZUOipfKl9YNjRfQ0NfRkxBR1MgID0gL3dkNDE0NiAvd2Q0MjQ0IC93ZDQyNDUg L3dkNDI2Nw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gZGlm ZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi51bmkNCj4gPiA+ PiA+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi51bmkNCj4gPiA+PiA+ PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4+ID4+IGluZGV4IDAwMDAwMDAwMDAuLjNmN2U0 NWVhNmYNCj4gPiA+PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPj4gPj4gKysrIGIvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLnVuaQ0KPiA+ID4+ID4+IEBAIC0wLDAgKzEsMTQg QEANCj4gPiA+PiA+PiArLy8gLyoqIEBmaWxlDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLy8gRmxh dHRlbmVkIERldmljZSBUcmVlIExpYnJhcnkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLy8NCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvLw0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLy8NCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsvLyAqKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjc3RyaW5nIFNUUl9NT0RVTEVfQUJTVFJBQ1QgICAg ICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJJbnN0YW5jZSBvZg0KPiBGRFQgTGlicmFyeSINCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjc3RyaW5nIFNUUl9N T0RVTEVfREVTQ1JJUFRJT04gICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJUaGlzDQo+IG1vZHVs ZSBwcm92aWRlcyBGRFQgTGlicmFyeSBpbXBsZW1lbnRhdGlvbi4iDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9GZHRMaWIuYw0KPiA+ID4+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9GZHRMaWIuYw0KPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPj4gPj4gaW5k ZXggMDAwMDAwMDAwMC4uMjAwYTQ5NmM3ZQ0KPiA+ID4+ID4+IC0tLSAvZGV2L251bGwNCj4gPiA+ PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jDQo+ID4gPj4gPj4g QEAgLTAsMCArMSwzMDEgQEANCj4gPiA+PiA+PiArLyoqIEBmaWxlDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBGbGF0dGVuZWQgRGV2aWNlIFRyZWUgTGlicmFyeS4NCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIENvcHlyaWdodCAoYykgMjAyMywgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjaW5jbHVkZSA8bGliZmR0L2xpYmZk dC9saWJmZHQuaD4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFZlcmlmeSB0aGUgaGVhZGVyIG9mIHRoZSBG bGF0dGVuZWQgRGV2aWNlIFRyZWUNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRU IGJsb2IuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBA cmV0dXJuIFplcm8gZm9yIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICtJTlQzMg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gK0ZkdENoZWNrSGVhZGVyICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIENP TlNUIFZPSUQgICpGZHQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICkNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICt7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICByZXR1cm4gZmR0X2NoZWNrX2hlYWRl cihGZHQpOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIENyZWF0 ZSBhIGVtcHR5IEZsYXR0ZW5lZCBEZXZpY2UgVHJlZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gQnVmZmVyICAgICAgICAgVGhlIHBv aW50ZXIgdG8gYWxsb2NhdGUgYSBwb29sIGZvciBGRFQgYmxvYi4NCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgIEBwYXJhbVtpbl0gQnVmZmVyU2l6ZSAgICAgVGhlIEJ1ZmZlclNpemUgdG8gdGhlIHBv b2wgc2l6ZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IEByZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gK0lOVDMyDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRUZJQVBJDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArRmR0Q3JlYXRlRW1wdHlUcmVlICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IElOIFZPSUQgICAgKkJ1ZmZlciwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIFVJTlQzMiAg QnVmZmVyU2l6ZQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKQ0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gK3sNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHJldHVybiBmZHRfY3JlYXRlX2VtcHR5X3Ry ZWUgKEJ1ZmZlciwgKGludClCdWZmZXJTaXplKTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt9DQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLyoqDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBmcm9tIHRoZSBn aXZlbiBub2RlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNl dCB0byBwcmV2aW91cyBub2RlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBE ZXB0aCAgICAgICAgICBUaGUgZGVwdGggdG8gdGhlIGxldmVsIG9mIHRyZWUgaGllcmFyY2h5Lg0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHJldHVybiBU aGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArSU5UMzINCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtGZHROZXh0 Tm9kZSAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0LA0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgKkRlcHRoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICApDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArew0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgcmV0 dXJuIGZkdF9uZXh0X25vZGUgKEZkdCwgT2Zmc2V0LCBEZXB0aCk7DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArfQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8q Kg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2Rl IHVuZGVyIHRoZSBnaXZlbiBub2RlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBG RFQgYmxvYi4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAg ICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBv ZmZzZXQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArKiov DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArSU5UMzINCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklB UEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtGZHRGaXJzdFN1Ym5vZGUgKA0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IElOIElOVDMyICAgICAgIE9mZnNldA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKQ0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gK3sNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHJldHVybiBmZHRfZmly c3Rfc3Vibm9kZSAoRmR0LCBPZmZzZXQpOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4dCBub2RlIGZyb20gdGhlIGdpdmVu IG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBA cGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRv IHByZXZpb3VzIG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICtJTlQzMg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gK0ZkdE5leHRTdWJub2RlICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIENP TlNUIFZPSUQgICpGZHQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBP ZmZzZXQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt7 DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICByZXR1cm4gZmR0X25leHRfc3Vibm9kZSAoRmR0LCBP ZmZzZXQpOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFJldHVy bnMgYSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB3aGljaCBpbmNsdWRlcyB0aGUgZ2l2ZW4gbmFtZS4N Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtp bl0gRmR0ICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBQYXJlbnRPZmZzZXQgICAgVGhlIG9mZnNldCB0byB0aGUg bm9kZSB3aGljaCBzdGFydCBmaW5kDQo+IHVuZGVyLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAg QHBhcmFtW2luXSBOYW1lICAgICAgICAgICAgVGhlIG5hbWUgdG8gc2VhcmNoIHRoZSBub2RlIHdp dGggdGhlIG5hbWUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWVMZW5n dGggICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHRvIGNoZWNrIG9ubHkuDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQg dG8gbm9kZSBvZmZzZXQgd2l0aCBnaXZlbiBub2RlIG5hbWUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArSU5U MzINCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtG ZHRTdWJub2RlT2Zmc2V0TmFtZUxlbiAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05T VCBWT0lEICAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBQ YXJlbnRPZmZzZXQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05TVCBDSEFSOCAgKk5h bWUsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgTmFtZUxlbmd0aA0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK3sNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgIHJldHVybiBmZHRfc3Vibm9kZV9vZmZzZXRfbmFtZWxlbiAoRmR0 LCBQYXJlbnRPZmZzZXQsIE5hbWUsDQo+ID4gPj4gPj4gKyBOYW1lTGVuZ3RoKTsNCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICt9DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArLyoqDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIGZp cnN0IG5vZGUgd2hpY2ggaW5jbHVkZXMgdGhlIGdpdmVuIHByb3BlcnR5IG5hbWUNCj4gYW5kIHZh bHVlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBh cmFtW2luXSBGZHQgICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIFN0YXJ0T2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRv IHRoZSBzdGFydGluZyBub2RlIHRvIGZpbmQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFy YW1baW5dIFByb3BlcnR5TmFtZSAgICBUaGUgcHJvcGVydHkgbmFtZSB0byBzZWFyY2ggdGhlIG5v ZGUNCj4gaW5jbHVkaW5nIHRoZSBuYW1lZCBwcm9wZXJ0eS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIEBwYXJhbVtpbl0gUHJvcGVydHlWYWx1ZSAgIFRoZSBwcm9wZXJ0eSB2YWx1ZSB0byBjaGVj ayB0aGUgc2FtZQ0KPiBwcm9wZXJ0eSB2YWx1ZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBw YXJhbVtpbl0gUHJvcGVydHlMZW5ndGggIFRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIFByb3Bl cnRWYWx1ZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg IEByZXR1cm4gVGhlIG9mZnNldCB0byBub2RlIG9mZnNldCB3aXRoIGdpdmVuIHByb3BlcnR5Lg0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gK0lOVDMyDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRUZJQVBJDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArRmR0Tm9kZU9mZnNldEJ5UHJvcFZhbHVlICgNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICAqRmR0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgSU4gSU5UMzIgICAgICAgIFN0YXJ0T2Zmc2V0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAg SU4gQ09OU1QgQ0hBUjggICpQcm9wZXJ0eU5hbWUsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJ TiBDT05TVCBWT0lEICAgKlByb3BlcnR5VmFsdWUsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJ TiBJTlQzMiAgICAgICAgUHJvcGVydHlMZW5ndGgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICkN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICByZXR1cm4g ZmR0X25vZGVfb2Zmc2V0X2J5X3Byb3BfdmFsdWUgKEZkdCwgU3RhcnRPZmZzZXQsDQo+ID4gPj4g Pj4gKyBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5VmFsdWUsIFByb3BlcnR5TGVuZ3RoKTsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICt9DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArLyoqDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBSZXR1cm5zIGEgcHJvcGVydHkg d2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAg ICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJh bVtpbl0gTm9kZU9mZnNldCAgICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8g dGhlIHByb3BlcnR5IHdoaWNoIG5lZWQgYmUNCj4gc2VhcmNoZWQNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBv ZiB0aGUgcHJvcGVydHkgZm91bmQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICBAcmV0dXJuIFRoZSBwcm9wZXJ0eSB0byB0aGUgc3RydWN0dXJlIG9mIHRo ZSBmb3VuZCBwcm9wZXJ0eS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtDT05TVCBzdHJ1Y3QgZmR0X3Byb3Bl cnR5ICoNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICtGZHRHZXRQcm9wZXJ0eSAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lE ICAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBOb2RlT2Zm c2V0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgICpMZW5ndGgNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgICkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt7DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICByZXR1cm4gZmR0X2dldF9wcm9wZXJ0eSAoRmR0LCBOb2RlT2Zmc2V0LCBOYW1lLCBM ZW5ndGgpOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFJldHVy bnMgYSBvZmZzZXQgb2YgZmlyc3QgcHJvcGVydHkgaW4gdGhlIGdpdmVuIG5vZGUuDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAg ICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgQHBhcmFtW2luXSBOb2RlT2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2RlIHdoaWNo IG5lZWQgYmUNCj4gc2VhcmNoZWQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gZmlyc3QgcHJvcGVydHkgb2Zmc2V0 IGluIHRoZSBnaXZlbiBub2RlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0lOVDMyDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArRUZJQVBJDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArRmR0Rmlyc3RQcm9wZXJ0eU9m ZnNldCAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgTm9kZU9mZnNldA0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyAgKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK3sNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsgIHJldHVybiBmZHRfZmlyc3RfcHJvcGVydHlfb2Zmc2V0IChGZHQsIE5vZGVPZmZz ZXQpOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIFJldHVybnMg YSBvZmZzZXQgb2YgbmV4dCBwcm9wZXJ0eSBmcm9tIHRoZSBnaXZlbiBwcm9wZXJ0eS4NCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0 ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgcHJv cGVydHkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBA cmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBwcm9wZXJ0eSBvZmZzZXQuDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArSU5UMzINCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICtGZHROZXh0UHJvcGVydHlPZmZzZXQgKA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4g Q09OU1QgVk9JRCAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAg IE9mZnNldA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g K3sNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHJldHVybiBmZHRfbmV4dF9wcm9wZXJ0eV9vZmZz ZXQgKEZkdCwgT2Zmc2V0KTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt9DQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLyoqDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBSZXR1cm5zIGEgcHJvcGVydHkgZnJvbSB0aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9w ZXJ0eS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBw YXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8g dGhlIGdpdmVuIG9mZnNldCBvZiB0aGUgcHJvcGVydHkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICBAcGFyYW1baW5dIExlbmd0aCAgICAgICAgIFRoZSBsZW5ndGggdG8gdGhlIHNpemUgb2YgdGhl IHByb3BlcnR5IGZvdW5kLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKyAgQHJldHVybiBUaGUgcHJvcGVydHkgdG8gdGhlIHN0cnVjdHVyZSBvZiB0aGUgZ2l2 ZW4gcHJvcGVydHkgb2Zmc2V0Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0NPTlNUIHN0cnVjdCBmZHRfcHJv cGVydHkgKg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gK0ZkdEdldFByb3BlcnR5QnlPZmZzZXQgKA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4g Q09OU1QgVk9JRCAgKkZkdCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAg IE9mZnNldCwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGgN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt7DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICByZXR1cm4gZmR0X2dldF9wcm9wZXJ0eV9ieV9vZmZzZXQgKEZk dCwgT2Zmc2V0LCBMZW5ndGgpOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgIFJldHVybnMgYSBzdHJpbmcgYnkgdGhlIGdpdmVuIHN0cmluZyBvZmZzZXQuDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIEZk dCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgQHBhcmFtW2luXSBTdHJPZmZzZXQgICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBsb2NhdGlv biBpbiB0aGUgc3RyaW5ncyBibG9jaw0KPiBvZiBGRFQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICBAcGFyYW1baW5dIExlbmd0aCAgICAgICAgIFRoZSBsZW5ndGggdG8gdGhlIHNpemUgb2Ygc3Ry aW5nIHdoaWNoIG5lZWQgYmUNCj4gcmV0cmlldmVkLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHJldHVybiBUaGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBz dHJpbmcgb2Zmc2V0Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0NPTlNUIENIQVI4ICoNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtGZHRHZXRTdHJpbmcgKA0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIElOIElOVDMyICAgICAgIFN0ck9mZnNldCwNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGggICAgICAgIE9QVElPTkFMDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICApDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArew0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKyAgcmV0dXJuIGZkdF9nZXRfc3RyaW5nIChGZHQsIFN0ck9mZnNldCwgTGVuZ3RoKTsN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt9DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArLyoqDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBBZGQgYSBuZXcgbm9k ZSB0byB0aGUgRkRULg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4N Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gUGFyZW50T2Zmc2V0ICAgVGhlIG9m ZnNldCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2ggd2FudA0KPiB0byBhZGQgaW4uDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBuYW1lIHRvIG5h bWUgdGhlIG5vZGUuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBAcmV0dXJuICBUaGUgb2Zmc2V0IHRvIHRoZSBuZXcgbm9kZS4NCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICtJTlQzMg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK0VGSUFQSQ0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gK0ZkdEFkZFN1Ym5vZGUgKA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gVk9JRCAgICAg ICAgICpGZHQsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAgUGFyZW50 T2Zmc2V0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICApDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArew0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgcmV0dXJuIGZkdF9hZGRfc3Vibm9kZSAoRmR0LCBQYXJlbnRPZmZz ZXQsIE5hbWUpOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvKioNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEFk ZCBvciBtb2RpZnkgYSBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAg ICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcGFy YW1baW5dIE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNo IHdhbnQNCj4gdG8gYWRkIGluLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQHBhcmFtW2luXSBO YW1lICAgICAgICAgICBUaGUgbmFtZSB0byBuYW1lIHRoZSBwcm9wZXJ0eS4NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gVmFsdWUgICAgICAgICAgVGhlIHZhbHVlIHRvIHRoZSBw cm9wZXJ0eSB2YWx1ZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3Ro ICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVydHkuDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBAcmV0dXJuICBaZXJvIGZv ciBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSBmYWlsZWQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArKiovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArSU5UMzIN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtFRklBUEkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtGZHRT ZXRQcm9wICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIElOIFZPSUQgICAgICAgICAqRmR0LA0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAgKlZhbHVlLA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgSU4gVUlOVDMyICAgICAgIExlbmd0aA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKQ0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gK3sNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHJldHVybiBmZHRf c2V0cHJvcCAoRmR0LCBOb2RlT2Zmc2V0LCBOYW1lLCBWYWx1ZSwgKGludClMZW5ndGgpOw0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+IGRpZmYgLS1naXQgYS9N ZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFN1cHBvcnQuaA0KPiA+ID4+ID4+IGIvTWRl UGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0LmgNCj4gPiA+PiA+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiA+ID4+ID4+IGluZGV4IDAwMDAwMDAwMDAuLmU3MzhmNGRlZDQNCj4g PiA+PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFz ZUZkdExpYi9MaWJGZHRTdXBwb3J0LmgNCj4gPiA+PiA+PiBAQCAtMCwwICsxLDk5IEBADQo+ID4g Pj4gPj4gKy8qKiBAZmlsZQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgUm9vdCBpbmNsdWRlIGZp bGUgb2YgQyBydW50aW1lIGxpYnJhcnkgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUNCj4gPiA+PiA+ PiArIHRoaXJkLXBhcnR5DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBsaWJmZHQgbGlicmFyeS4N Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIENvcHlyaWdo dCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjaWZu ZGVmIEZEVF9MSUJfU1VQUE9SVF9IXw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNkZWZpbmUgRkRU X0xJQl9TVVBQT1JUX0hfDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArI2luY2x1ZGUgPEJhc2UuaD4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjaW5jbHVkZSA8 TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArI2luY2x1ZGUgPExpYnJh cnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gK3R5cGVkZWYgVUlOVDggICAgdWludDhfdDsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICt0eXBlZGVmIFVJTlQxNiAgIHVpbnQxNl90Ow0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK3R5cGVk ZWYgSU5UMzIgICAgaW50MzJfdDsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt0eXBlZGVmIFVJTlQz MiAgIHVpbnQzMl90Ow0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK3R5cGVkZWYgVUlOVDY0ICAgdWlu dDY0X3Q7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArdHlwZWRlZiBVSU5UTiAgICB1aW50cHRyX3Q7 DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArdHlwZWRlZiBVSU5UTiAgICBzaXplX3Q7DQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArdHlwZWRlZiBCT09MRUFOICBib29sOw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNkZWZpbmUgdHJ1ZSAgICgxID09IDEpDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArI2RlZmluZSBmYWxzZSAgKDEgPT0gMCkNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g Ky8vIERlZmluaXRpb25zIGZvciBnbG9iYWwgY29uc3RhbnRzIHVzZWQgYnkgbGliZmR0IGxpYnJh cnkNCj4gPiA+PiA+PiArcm91dGluZXMNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvLw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyNkZWZpbmUgSU5UX01BWCAgICAgICAgICAweDdGRkZGRkZGICAgICAg LyogTWF4aW11bSAoc2lnbmVkKSBpbnQgdmFsdWUgKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsj ZGVmaW5lIElOVDMyX01BWCAgICAgICAgMHg3RkZGRkZGRiAgICAgIC8qIE1heGltdW0gKHNpZ25l ZCkgaW50MzIgdmFsdWUNCj4gKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIFVJTlQz Ml9NQVggICAgICAgMHhGRkZGRkZGRiAgICAgIC8qIE1heGltdW0gdW5zaWduZWQgaW50MzINCj4g dmFsdWUgKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsv Lw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8vIEZ1bmN0aW9uIHByb3RvdHlwZXMgb2YgbGliZmR0 IExpYnJhcnkgcm91dGluZXMNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvLw0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gK3ZvaWQgKg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK21lbXNldCAgICAgKA0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgdm9pZCAqLA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgaW50 LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgc2l6ZV90DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICApOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK2ludA0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gK21lbWNtcCAgICAgICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIGNvbnN0IHZvaWQgKiwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIGNvbnN0IHZvaWQgKiwN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHNpemVfdA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAg KTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtpbnQNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICtzdHJjbXAgICAgICAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICBjb25zdCBjaGFyICosDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBjb25zdCBjaGFyICoNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgICk7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArY2hhciAqDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArc3RyY2hyICAgICAo DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBjb25zdCBjaGFyICosDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBpbnQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICk7DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArY2hhciAqDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArc3RycmNociAgICAoDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBjb25zdCBjaGFyICosDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICBpbnQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICk7DQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArdW5zaWduZWQgbG9u Zw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK3N0cnRvdWwgICAgICgNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgIGNvbnN0IGNoYXIgKiwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIGNoYXIgKiosDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICBpbnQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICk7DQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArY2hhciAqDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArc3RyY3B5ICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIGNoYXIg ICAgICAgICpzdHJEZXN0LA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgY29uc3QgY2hhciAgKnN0 clNvdXJjZQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8vIE1h Y3JvcyB0aGF0IGRpcmVjdGx5IG1hcCBmdW5jdGlvbnMgdG8gQmFzZUxpYiwgQmFzZU1lbW9yeUxp YiwNCj4gPiA+PiA+PiArYW5kIERlYnVnTGliIGZ1bmN0aW9ucw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKy8vDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArI2RlZmluZSBtZW1jcHkoZGVzdCwgc291cmNl LCBjb3VudCkgICAgICAgICBDb3B5TWVtKGRlc3Qsc291cmNlLA0KPiAoVUlOVE4pKGNvdW50KSkN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIG1lbXNldChkZXN0LCBjaCwgY291bnQpICAg ICAgICAgICAgIFNldE1lbShkZXN0LA0KPiAoVUlOVE4pKGNvdW50KSwoVUlOVDgpKGNoKSkNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIG1lbWNocihidWYsIGNoLCBjb3VudCkgICAgICAg ICAgICAgIFNjYW5NZW04KGJ1ZiwNCj4gKFVJTlROKShjb3VudCksKFVJTlQ4KWNoKQ0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyNkZWZpbmUgbWVtY21wKGJ1ZjEsIGJ1ZjIsIGNvdW50KSAgICAgICAg ICAgKGludCkoQ29tcGFyZU1lbShidWYxLA0KPiBidWYyLCAoVUlOVE4pKGNvdW50KSkpDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArI2RlZmluZSBtZW1tb3ZlKGRlc3QsIHNvdXJjZSwgY291bnQpICAg ICAgICBDb3B5TWVtKGRlc3QsIHNvdXJjZSwNCj4gKFVJTlROKShjb3VudCkpDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArI2RlZmluZSBzdHJsZW4oc3RyKSAgICAgICAgICAgICAgICAgICAgICAgICAo c2l6ZV90KShBc2NpaVN0ckxlbihzdHIpKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNkZWZpbmUg c3RybmxlbihzdHIsIGNvdW50KSAgICAgICAgICAgICAgICAgKHNpemVfdCkoQXNjaWlTdHJuTGVu UyhzdHIsIGNvdW50KSkNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIHN0cm5jcHkoc3Ry RGVzdCwgc3RyU291cmNlLCBjb3VudCkgIEFzY2lpU3RybkNweVMoc3RyRGVzdCwNCj4gPiA+PiA+ PiArTUFYX1NUUklOR19TSVpFLCBzdHJTb3VyY2UsIChVSU5UTiljb3VudCkNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsjZGVmaW5lIHN0cmNhdChzdHJEZXN0LCBzdHJTb3VyY2UpICAgICAgICAgIEFz Y2lpU3RyQ2F0UyhzdHJEZXN0LA0KPiBNQVhfU1RSSU5HX1NJWkUsIHN0clNvdXJjZSkNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsjZGVmaW5lIHN0cmNtcChzdHJpbmcxLCBzdHJpbmcyLCBjb3VudCkg ICAgIChpbnQpKEFzY2lpU3RyQ21wKHN0cmluZzEsDQo+IHN0cmluZzIpKQ0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyNkZWZpbmUgc3RybmNtcChzdHJpbmcxLCBzdHJpbmcyLCBjb3VudCkgICAgKGlu dCkoQXNjaWlTdHJuQ21wKHN0cmluZzEsDQo+IHN0cmluZzIsIChVSU5UTikoY291bnQpKSkNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsjZW5kaWYgLyogRkRU X0xJQl9TVVBQT1JUX0hfICovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRl UGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRXcmFwcGVyLmMNCj4gPiA+PiA+PiBiL01kZVBr Zy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBlci5jDQo+ID4gPj4gPj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gPiA+PiA+PiBpbmRleCAwMDAwMDAwMDAwLi43NzJiYmE0ODM5DQo+ID4g Pj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VG ZHRMaWIvTGliRmR0V3JhcHBlci5jDQo+ID4gPj4gPj4gQEAgLTAsMCArMSwxNzMgQEANCj4gPiA+ PiA+PiArLyoqIEBmaWxlDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBJU08gQyBpbXBsZW1lbnRh dGlvbnMgb2Ygc3RyY2hyLCBzdHJyY2hyIGFuZCBzdHJ0b3VsLg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBDb3B5cmlnaHQgKGMpIDIwMjMgUGVkcm8gRmFsY2F0byBBbGwgcmlnaHRzIHJlc2VydmVk Lg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsqKi8NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsj aW5jbHVkZSA8QmFzZS5oPg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKyNkZWZpbmUgVUxPTkdfTUFYICAgICAgICAweEZGRkZGRkZGICAgICAgLyogTWF4aW11 bSB1bnNpZ25lZCBsb25nDQo+IHZhbHVlICovDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArLy8gVmVyeSBxdWljayBub3RlczoNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsvLyBXZSBvbmx5IGdvIHRocm91Z2ggdGhlIHN0cmluZyBvbmNlIGZvciBib3RoIGZ1bmN0 aW9ucw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKy8vIFRoZXkgYXJlIG1pbmltYWwgaW1wbGVtZW50 YXRpb25zIChub3Qgc3BlZWQgb3B0aW1pemVkKSBvZiBJU08gQw0KPiA+ID4+ID4+ICtzZW1hbnRp Y3MNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsvLyBzdHJjaHIgYW5kIHN0cnJjaHIgYWxzbyBpbmNs dWRlIHRoZSBudWxsIHRlcm1pbmF0b3IgYXMgcGFydCBvZg0KPiA+ID4+ID4+ICt0aGUgc3RyaW5n DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArLy8gc28gdGhlIGNvZGUgZ2V0cyBhIGJpdCBjbHVua3kg dG8gaGFuZGxlIHRoYXQgY2FzZSBzcGVjaWZpY2FsbHkuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArY2hhciAqDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArc3Ry Y2hyICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIGNvbnN0IGNoYXIgICpTdHIsDQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICBpbnQgICAgICAgICBDaGFyDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICApDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArew0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgY2hh ciAgKlM7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBT ID0gKGNoYXIgKilTdHI7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICBmb3IgKCA7IDsgUysrKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIGlmICgq UyA9PSBDaGFyKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgcmV0dXJuIFM7DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICAgIH0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsgICAgaWYgKCpTID09ICdcMCcpIHsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgICAgICByZXR1cm4gTlVMTDsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgfQ0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgfQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtjaGFyICoNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICtzdHJyY2hyICgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIGNvbnN0IGNoYXIgICpT dHIsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBpbnQgICAgICAgICBDaGFyDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICApDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArew0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKyAgY2hhciAgKlMsICpsYXN0Ow0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgUyAgICA9IChjaGFyICopU3RyOw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgbGFzdCA9IE5VTEw7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArICBmb3IgKCA7IDsgUysrKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIGlm ICgqUyA9PSBDaGFyKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgbGFzdCA9IFM7DQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIH0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgICAgaWYgKCpTID09ICdcMCcpIHsNCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgICAgICByZXR1cm4gbGFzdDsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgfQ0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgfQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gK30NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtTVEFUSUMNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICtpbnQNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtfX2lzc3BhY2UgKA0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgaW50ICBjaA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgKQ0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gK3sNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIC8vIGJhc2ljIEFT Q0lJIGN0eXBlLmg6aXNzcGFjZSgpLiBOb3QgZWZmaWNpZW50DQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICByZXR1cm4gY2ggPT0gJ1xyJyB8fCBjaCA9PSAnXG4nIHx8IGNoID09ICcgJyB8fCBjaCA9 PSAnXHQnIHx8IGNoDQo+ID4gPj4gPj4gKyA9PSAnXHYnIHx8IGNoID09ICdcZic7DQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArfQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gK3Vuc2lnbmVkIGxvbmcNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtzdHJ0b3VsICgNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgIGNvbnN0IGNoYXIgICpOcHRyLA0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKyAgY2hhciAgICAgICAgKipFbmRQdHIsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBp bnQgICAgICAgICBCYXNlDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICApDQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArew0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQk9PTEVBTiAgICAgICAgTmVnYXRl Ow0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgQk9PTEVBTiAgICAgICAgT3ZlcmZsb3c7DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICB1bnNpZ25lZCBsb25nICBWYWw7DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBOZWdhdGUgICA9IEZBTFNFOw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgT3ZlcmZsb3cgPSBGQUxTRTsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIFZhbCAgICAgID0gMDsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsgIC8vIFJlamVjdCBiYWQgbnVtZXJpYyBiYXNlcw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgaWYgKChCYXNlIDwgMCkgfHwgKEJhc2UgPT0gMSkgfHwgKEJhc2UgPiAzNikpIHsNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgcmV0dXJuIDA7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICB9DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAvLyBT a2lwIHdoaXRlc3BhY2UNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHdoaWxlIChfX2lzc3BhY2Ug KCpOcHRyKSkgew0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgICBOcHRyKys7DQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICB9DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICAvLyBDaGVjayBmb3IgKyBvciAtIHByZWZpeGVzDQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICBpZiAoKk5wdHIgPT0gJy0nKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIE5lZ2F0 ZSA9IFRSVUU7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIE5wdHIrKzsNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIH0gZWxzZSBpZiAoKk5wdHIgPT0gJysnKSB7DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArICAgIE5wdHIrKzsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIH0NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIC8vIENvbnN1bWUgdGhlIHN0YXJ0 LCBhdXRvZGV0ZWN0aW5nIGJhc2UgaWYgbmVlZGVkDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBp ZiAoKE5wdHJbMF0gPT0gJzAnKSAmJiAoKE5wdHJbMV0gPT0gJ3gnKSB8fCAoTnB0clsxXSA9PSAn WCcpKQ0KPiA+ID4+ID4+ICsgJiYgKChCYXNlID09IDApIHx8IChCYXNlID09IDE2KSkpIHsNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgLy8gSGV4DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAg IE5wdHIgKz0gMjsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgQmFzZSAgPSAxNjsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgIH0gZWxzZSBpZiAoKE5wdHJbMF0gPT0gJzAnKSAmJiAoKE5wdHJb MV0gPT0gJ2InKSB8fCAoTnB0clsxXSA9PQ0KPiA+ID4+ID4+ICsgJ0InKSkgJiYgKChCYXNlID09 IDApIHx8IChCYXNlID09IDIpKSkgew0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgICAvLyBCaW5h cnkgKHN0YW5kYXJkIHBlbmRpbmcgQzIzKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgICBOcHRy ICs9IDI7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIEJhc2UgID0gMjsNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIH0gZWxzZSBpZiAoKE5wdHJbMF0gPT0gJzAnKSAmJiAoKEJhc2UgPT0gMCkg fHwgKEJhc2UgPT0gOCkpKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIC8vIE9jdGFsDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIE5wdHIrKzsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg ICAgQmFzZSA9IDg7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICB9IGVsc2Ugew0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyAgICBpZiAoQmFzZSA9PSAwKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICAgICAgLy8gQXNzdW1lIGRlY2ltYWwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgICBCYXNl ID0gMTA7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIH0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICsgIH0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIHdo aWxlIChUUlVFKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIGludCAgICAgICAgICAgIERp Z2l0Ow0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgICBjaGFyICAgICAgICAgICBDOw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKyAgICB1bnNpZ25lZCBsb25nICBOZXdWYWw7DQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIEMgICAgID0gKk5wdHI7DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICAgIERpZ2l0ID0gLTE7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIGlmICgoQyA+PSAnMCcpICYmIChDIDw9ICc5Jykp IHsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgICBEaWdpdCA9IEMgLSAnMCc7DQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiArICAgIH0gZWxzZSBpZiAoKEMgPj0gJ2EnKSAmJiAoQyA8PSAneicpKSB7 DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgRGlnaXQgPSBDIC0gJ2EnICsgMTA7DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICAgIH0gZWxzZSBpZiAoKEMgPj0gJ0EnKSAmJiAoQyA8PSAnWicp KSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgRGlnaXQgPSBDIC0gJ0EnICsgMTA7DQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIH0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgICAgaWYgKChEaWdpdCA9PSAtMSkgfHwgKERpZ2l0ID49IEJhc2Up KSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgY2FzZSBh bHNvIGhhbmRsZXMgdGhlIFwwDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgaWYgKEVuZFB0 cikgew0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgICAgICAgKkVuZFB0ciA9IChjaGFyICopTnB0 cjsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgICB9DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgYnJlYWs7DQo+ID4gPj4gPj4NCj4gPiA+PiA+ PiArICAgIH0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsg ICAgTmV3VmFsID0gVmFsICogQmFzZSArIERpZ2l0Ow0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgICBpZiAoTmV3VmFsIDwgVmFsKSB7DQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICAgICAgLy8gT3ZlcmZsb3cNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAg ICBPdmVyZmxvdyA9IFRSVUU7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIH0NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgICAgVmFsID0gTmV3VmFsOw0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAgICBOcHRyKys7 DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICB9DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICBpZiAoTmVnYXRlKSB7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAr ICAgIFZhbCA9IC1WYWw7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICB9DQo+ID4gPj4gPj4NCj4g PiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICBpZiAoT3ZlcmZsb3cpIHsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgICAgVmFsID0gVUxPTkdfTUFYOw0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gKyAgfQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyAg Ly8gVE9ETzogV2UncmUgbGFja2luZyBlcnJubyBoZXJlLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgcmV0dXJuIFZhbDsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICt9DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9saW1pdHMuaA0KPiA+ ID4+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9saW1pdHMuaA0KPiA+ID4+ID4+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcw Mg0KPiA+ID4+ID4+IC0tLSAvZGV2L251bGwNCj4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFy eS9CYXNlRmR0TGliL2xpbWl0cy5oDQo+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4+ ID4+ICsvKiogQGZpbGUNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBz dXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRT dXBwb3J0Lmg+DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBk aWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRib29sLmgNCj4gPiA+PiA+ PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkYm9vbC5oDQo+ID4gPj4gPj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiA+PiA+PiBpbmRleCAwMDAwMDAwMDAwLi5mNmNmOGQ1NzAyDQo+ ID4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VGZHRMaWIvc3RkYm9vbC5oDQo+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4+ID4+ ICsvKiogQGZpbGUNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBw b3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBw b3J0Lmg+DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZm IC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaA0KPiA+ID4+ID4+IGIv TWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaA0KPiA+ID4+ID4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+ID4+ ID4+IC0tLSAvZGV2L251bGwNCj4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0 TGliL3N0ZGRlZi5oDQo+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4+ID4+ICsvKiog QGZpbGUNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1 aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+ DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZmIC0tZ2l0 IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQuaA0KPiA+ID4+ID4+IGIvTWRlUGtn L0xpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQuaA0KPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+ID4+ID4+IC0t LSAvZGV2L251bGwNCj4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0 ZGludC5oDQo+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4+ID4+ICsvKiogQGZpbGUN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5n IHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4gKw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g Kw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRl UGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRsaWIuaA0KPiA+ID4+ID4+IGIvTWRlUGtnL0xpYnJh cnkvQmFzZUZkdExpYi9zdGRsaWIuaA0KPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+ID4+ID4+IC0tLSAvZGV2 L251bGwNCj4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5o DQo+ID4gPj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4+ID4+ICsvKiogQGZpbGUNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0 aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g Kw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+DQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9zdHJpbmcuaA0KPiA+ID4+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFz ZUZkdExpYi9zdHJpbmcuaA0KPiA+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPj4g Pj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+ID4+ID4+IC0tLSAvZGV2L251bGwN Cj4gPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0cmluZy5oDQo+ID4g Pj4gPj4gQEAgLTAsMCArMSwxMCBAQA0KPiA+ID4+ID4+ICsvKiogQGZpbGUNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1w YXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICtTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyoqLw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+ DQo+ID4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL01kZVBrZy5j aS55YW1sIGIvTWRlUGtnL01kZVBrZy5jaS55YW1sIGluZGV4DQo+ID4gPj4gPj4gNmJhODVlYmU2 MS4uZjAzOWRhY2NkYiAxMDA2NDQNCj4gPiA+PiA+PiAtLS0gYS9NZGVQa2cvTWRlUGtnLmNpLnlh bWwNCj4gPiA+PiA+PiArKysgYi9NZGVQa2cvTWRlUGtnLmNpLnlhbWwNCj4gPiA+PiA+PiBAQCAt Miw3ICsyLDcgQEANCj4gPiA+PiA+PiAgIyBDSSBjb25maWd1cmF0aW9uIGZvciBNZGVQa2cNCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICAjDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgIyBDb3B5cmlnaHQg KGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gLSMgQ29weXJp Z2h0IChjKSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArIyBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICAj IENvcHlyaWdodCAoYykgMjAyMSwgQXJtIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gICMgQ29weXJpZ2h0IChjKSAyMDIzLCBMb29uZ3NvbiBU ZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQuIEFsbA0KPiA+ID4+ID4+IHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gQEAgLTY3LDcgKzY3 LDggQEANCj4gPiA+PiA+PiAgICAgICAgICAgICAgIkluY2x1ZGUvTGlicmFyeS9QY2RMaWIuaCIs DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgICAgICAgICAgICAgIkluY2x1ZGUvTGlicmFyeS9TYWZl SW50TGliLmgiLA0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gICAgICAgICAgICAgICJJbmNsdWRlL1By b3RvY29sL0RlYnVnU3VwcG9ydC5oIiwNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+IC0gICAgICAgICAg ICAiVGVzdC9Vbml0VGVzdC9MaWJyYXJ5L0Jhc2VTYWZlSW50TGliL1Rlc3RCYXNlU2FmZUludExp Yi5jIg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gKw0KPiA+ID4+ID4+ICsgIlRlc3QvVW5pdFRlc3Qv TGlicmFyeS9CYXNlU2FmZUludExpYi9UZXN0QmFzZVNhZmVJbnRMaWIuYyIsDQo+ID4gPj4gPj4N Cj4gPiA+PiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYiINCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICAgICAgICAgIF0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICAgICAgfSwNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICAgICAgIyMgb3B0aW9ucyBkZWZpbmVkIGNpL1BsdWdpbi9Db21waWxl clBsdWdpbg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gQEAgLTE2NCw1ICsxNjUsMTcgQEANCj4gPiA+ PiA+PiAgICAgICAgICAiRXh0ZW5kV29yZHMiOiBbXSwgICAgICAgICAgICMgd29yZHMgdG8gZXh0 ZW5kIHRvIHRoZSBkaWN0aW9uYXJ5IGZvciB0aGlzDQo+IHBhY2thZ2UNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICAgICAgICAgICJJZ25vcmVTdGFuZGFyZFBhdGhzIjogW10sICAgIyBTdGFuZGFyZCBQ bHVnaW4gZGVmaW5lZCBwYXRocyB0aGF0DQo+IHNob3VsZCBiZSBpZ25vcmUNCj4gPiA+PiA+Pg0K PiA+ID4+ID4+ICAgICAgICAgICJBZGRpdGlvbmFsSW5jbHVkZVBhdGhzIjogW10gIyBBZGRpdGlv bmFsIHBhdGhzIHRvIHNwZWxsDQo+ID4gPj4gPj4gY2hlY2sgKHdpbGRjYXJkcyBzdXBwb3J0ZWQp DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgIH0sDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAg ICMgb3B0aW9ucyBkZWZpbmVkIGluIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjaw0KPiA+ ID4+ID4+DQo+ID4gPj4gPj4gKyAgICAiVW5jcnVzdGlmeUNoZWNrIjogew0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gKyAgICAgICAgIklnbm9yZUZpbGVzIjogWw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4g KyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvbGliZmR0IiwNCj4gPiA+PiA+Pg0KPiA+ ID4+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL2xpbWl0cy5oIiwNCj4gPiA+ PiA+Pg0KPiA+ID4+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL3N0ZGJvb2wu aCIsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExp Yi9zdGRkZWYuaCIsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgICAgICAgIkxpYnJhcnkv QmFzZUZkdExpYi9zdGRpbnQuaCIsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAgICAgICAgICAg IkxpYnJhcnkvQmFzZUZkdExpYi9zdGRsaWIuaCIsDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAg ICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9zdHJpbmcuaCINCj4gPiA+PiA+Pg0KPiA+ID4+ ID4+ICsgICAgICAgIF0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICAgICAgfQ0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gIH0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTWRl UGtnLmRlYyBiL01kZVBrZy9NZGVQa2cuZGVjIGluZGV4DQo+ID4gPj4gPj4gZTcwMTgyYmY3Zi4u OTgwNGE3YTZiZCAxMDA2NDQNCj4gPiA+PiA+PiAtLS0gYS9NZGVQa2cvTWRlUGtnLmRlYw0KPiA+ ID4+ID4+ICsrKyBiL01kZVBrZy9NZGVQa2cuZGVjDQo+ID4gPj4gPj4gQEAgLTI4OSw2ICsyODks MTAgQEANCj4gPiA+PiA+PiAgICAjDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgICBBcm1Ucm5nTGli fEluY2x1ZGUvTGlicmFyeS9Bcm1Ucm5nTGliLmgNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+DQo+ID4g Pj4gPj4NCj4gPiA+PiA+PiArICAjIyAgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgQVBJcyBmb3Ig dGhpcmQtcGFydHkgbGlicmFyeSBsaWJmZHQuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiArICAjDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArICBGZHRMaWJ8SW5jbHVkZS9MaWJyYXJ5L0ZkdExpYi5oDQo+ ID4gPj4gPj4NCj4gPiA+PiA+PiArDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgW0xpYnJhcnlDbGFz c2VzLklBMzIsIExpYnJhcnlDbGFzc2VzLlg2NCwgTGlicmFyeUNsYXNzZXMuQUFSQ0g2NF0NCj4g PiA+PiA+Pg0KPiA+ID4+ID4+ICAgICMjICBAbGlicmFyeWNsYXNzICBQcm92aWRlcyBzZXJ2aWNl cyB0byBnZW5lcmF0ZSByYW5kb20gbnVtYmVyLg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gICAgIw0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZHNjIGIvTWRl UGtnL01kZVBrZy5kc2MgaW5kZXgNCj4gPiA+PiA+PiAxNTJjMDI5OTFhLi5iMzhjODYzODEyIDEw MDY0NA0KPiA+ID4+ID4+IC0tLSBhL01kZVBrZy9NZGVQa2cuZHNjDQo+ID4gPj4gPj4gKysrIGIv TWRlUGtnL01kZVBrZy5kc2MNCj4gPiA+PiA+PiBAQCAtMTM3LDYgKzEzNyw3IEBADQo+ID4gPj4g Pj4NCj4gPiA+PiA+Pg0KPiBNZGVQa2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliTnVsbC9T bW1DcHVSZW5kZXp2b3VzTGliTnVsbC5pbmYNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4NCj4gPiA+PiA+PiAgICBNZGVQa2cvTGlicmFyeS9KZWRlY0plcDEwNkxpYi9KZWRlY0plcDEw NkxpYi5pbmYNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICsgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRM aWIvQmFzZUZkdExpYi5pbmYNCj4gPiA+PiA+Pg0KPiA+ID4+ID4+DQo+ID4gPj4gPj4NCj4gPiA+ PiA+PiAgW0NvbXBvbmVudHMuSUEzMiwgQ29tcG9uZW50cy5YNjQsIENvbXBvbmVudHMuQVJNLA0K PiA+ID4+ID4+IENvbXBvbmVudHMuQUFSQ0g2NF0NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+ICAgICMN Cj4gPiA+PiA+Pg0KPiA+ID4+ID4+IC0tDQo+ID4gPj4gPj4gMi4zOS4xLndpbmRvd3MuMQ0KPiA+ ID4NCj4gPiA+DQo+IA0KPiANCj4gDQo+IA0KDQo=