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.web08.30712.1637970769571895671 for ; Fri, 26 Nov 2021 15:52:50 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=XG44rQU6; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10180"; a="296527826" X-IronPort-AV: E=Sophos;i="5.87,267,1631602800"; d="scan'208";a="296527826" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Nov 2021 15:52:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,267,1631602800"; d="scan'208";a="555662256" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga008.fm.intel.com with ESMTP; 26 Nov 2021 15:52:44 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Fri, 26 Nov 2021 15:52:44 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Fri, 26 Nov 2021 15:52:43 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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.2308.20 via Frontend Transport; Fri, 26 Nov 2021 15:52:43 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.173) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Fri, 26 Nov 2021 15:52:43 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QLfnNmWshjH1X9nsqinSUpGjyq6+Ojkpf+dVr7iAbCp/Z6qtMQAn3jxVZ9boWYCleT9EUaB60zJTJUGLZvgSqhXKFlaso/e0NN3xiSx9Oz90NIRMnZ6O08b1QanEkp2+TSdAkHC5fV3cc4H8NkXv5Zamx/H3V2pFm8BfyBdJ8NjiVgM1nwj+iw5NOj68bedw8a6daXcbxrglT26EgmCDXYiNiFtDY1OzHkAoXRAHZgHH8BRxo5e7heeYH1bHxUXyhcAA6XD5nvJZiKZCzq+HZi/clFkGvjrBNhlWDe8kyOJ+LwwytNZHmpu0rUp/P4UwDq+NJIZqekUzHiklYnuIeg== 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=NrVVAPtkREZWoSpf06FVg3iaMziGBeqFSsxrDfMcy9I=; b=dsSf51hcYwGBFWQtWRRMU0nQGqtR0+JOqyiJ6DiJC2ZSui0qEFFtos8qDya9byTbLsejsovh7jqpZ3KHVx5WLxyL0KUjUL9GsCIFSzQyqEy6TpWRnTYtp2h3yHz/MhsTMlHoZNTnP5egCIDfmrZB0D8qHRp6f8kQdnbjUp0UJyCfsSRteMRR1vj3O+ROImsodO1+K9kMJ/R7/KngrR56q5S6nBe5K/B+QfQf56dE9JRg6OmEMFwE+YzTbgrir2h75IaRoWbet4f6bbWJU6KrlSfK22EKh29Frgc9Kr2ITchACoVtBmqc1yHLpfPRatX5A+0Y13hXCyxmyxaKLUuS8A== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NrVVAPtkREZWoSpf06FVg3iaMziGBeqFSsxrDfMcy9I=; b=XG44rQU6DR8YR0RvycnOonbScCtsd7zGfOBx8RJSxYTdwgAwIDUzzfY/sa7nLauWKr6U/W6o3ar3R5U5U0e2RhgacbDXHVqnFJ26KI3dT0byqS/r/Xyd3cnjplihCSqKGXA+4m7zg5b7Kc8B5CAyGlAC++zua81A38jutmk10YI= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MW5PR11MB5812.namprd11.prod.outlook.com (2603:10b6:303:193::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 26 Nov 2021 23:52:40 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%5]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021 23:52:40 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" , "Kinney, Michael D" CC: Liming Gao , Sean Brogan , Bret Barkelew Subject: Re: [edk2-devel] [PATCH v5 1/1] .pytool/Plugin/UncrustifyCheck: Add Uncrustify CI plugin Thread-Topic: [edk2-devel] [PATCH v5 1/1] .pytool/Plugin/UncrustifyCheck: Add Uncrustify CI plugin Thread-Index: AQHX4ZbLtSxfuqd7HUq0w0K8SDu7AqwWdkSw Date: Fri, 26 Nov 2021 23:52:40 +0000 Message-ID: References: <20211125005207.2814-1-mikuback@linux.microsoft.com> In-Reply-To: <20211125005207.2814-1-mikuback@linux.microsoft.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5c5ea116-2987-4fea-3d82-08d9b137d544 x-ms-traffictypediagnostic: MW5PR11MB5812: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: egW8msFHfCAJLBi/ybCT0MGbmV3lV/m3qDSh1OLr+Dld7DYeEqE8exyBxOXcbyt/7IjU4ZB5d8UKujfgkDlwT8awtH3qwOPS1E6SODtIzutQjewVzeAa8sbdqwMvwPCopdgcJoez/RIAFfHbpqxDI54J9TRyfnAYm3exQlLln6oB7Zsa1rsG2pEYKNjaJbdGGjSGfHFIWv6uv1ObadHJ+tPbckh7VwpFeoK8trPiyJvmkyzgafWUf+ZleNSEqSsJ80SQChyw04qgbaDFZWV3MAKSjpED4Cujv2KmrOh8EGyrMejrT7k8hGMNJjGy1Ag76gCi+87opRDTunzgyrw1clJC1/rE4iAF47VMVS2OapbAXqrr4Xp6fFhD3OZZsAZdDh+YRVGpev9GDTUQQRu2GSaNxcohddx/X6aSbWsyg2OU5vmByRexE/BVm1gyTlX6gNlrrb20MmJGFkHlwLnDFBAB8qcYuS3zeOmO3BRQGnM3ghssdsyMb40kxPX0q4DwfRfJI2YIQ7sTB4p51S/51ktknNYrB/uKiy5LgW5A7jZ+aithgAmEJJz/XyJOftMuPcg7cIfkZPBUrEsZkXXledyl1fdtAGq5MjrxoLe40kue3RZM0ZP1raLJtfDXgY0kzpQuuTjuKZNfpGt9qtL333ZtBeMV7RWlQkGC4ADG9LwY75E9rV3w0rbt9xv+O0N4/xG2+eJ93+Yy+P1R0ivCkMr0XtY/jQ3+HVwv7174ZI3JJU7olkUHMphQQkWToCo2TGPP0ZggQDfjI7tpKNDXIig2HOJRehc1jbd2qBW7mmKbIP3VS5E158SBttmisxWWnMoSusOBKPFK3OnekGMq8A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(54906003)(110136005)(186003)(8936002)(83380400001)(966005)(5660300002)(316002)(82960400001)(19627235002)(8676002)(4326008)(26005)(53546011)(9686003)(6506007)(86362001)(122000001)(71200400001)(66446008)(64756008)(66556008)(66476007)(508600001)(38100700002)(52536014)(45080400002)(76116006)(55016003)(38070700005)(33656002)(66946007)(30864003)(7696005)(2906002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TnN4MGp5aTBrVVZPS1U5Nm80MTlnWERNZzZkYjJPZFhtTFRma3RHMVNHS0JC?= =?utf-8?B?aDJYSHpwb21VaXJtOFU0MmR5cDEwZFhESnN5TjhBY0ZZQVBKeUd3azVRcEV0?= =?utf-8?B?b3JLS1hjTFVmbmkyRW5qdTBHTUtFdDJ3Y0t5ZW1UMDBYeWd4SXFrOUFGY2Ro?= =?utf-8?B?QlNWdlhCeVo5eGJxc3g4ZU5yOU9ESDhYUVlTZk1UakdacWtFVDk5UnVaeXV6?= =?utf-8?B?TkpUdzIrRkNoYytkeW5MVEZ5QmNqdlRxcjJWQkRMVXdBS3NpWFZpSVdiczF0?= =?utf-8?B?N0NuLzVyTFVJUHdSODM0enU4bUlZQjBLa1ZuZlBYbk5DK1VvMVkvM04za3ZV?= =?utf-8?B?VE0xVmZSaXpERjgzK1hpcTlFMXVselUvZitUNVVjUFdwcm1DUW1VNzNjY2JW?= =?utf-8?B?K2pyM2pBMlI2TytwOFFYSGFNNkVvMHFmb09RR2lkbUhCT2tRaWZsUnVHejB1?= =?utf-8?B?TGdyTDlvMjF3bVIyaDg3VGMxTjJCQVhCbkc3T01lTC9VbHdPR1pWZlcyMXN2?= =?utf-8?B?bkc0bGFXbG1WRzB4aTBnejlOYnMzOWxIbHRxRGRDd1M1ZTFFOUpEQ1Axeno5?= =?utf-8?B?T2VNMFdzSlk1ZUVlQndvSlB3dTI4YUNJbjc4WGo4RGlwM3p2Y1l4dkVjTy9M?= =?utf-8?B?ZVcwc2FOSlMrWTVPU255cVl2ekxTWVNSUlNBWGRuZEFoZGlkTE5xRDZEaGll?= =?utf-8?B?aEhUMjUyYkxMVGUwOVo1cDNSZ3k5d2Y2ODlFUzRrdnl5bHlnTDJGM3lYVWRU?= =?utf-8?B?NnV5YUlRbVNqM1p3dy82TnpWcGw0S0JFZysxa3hPMVpiVjU5NWVLWSt3SFha?= =?utf-8?B?MzlLN0xqMGFGemJvWjFxK0lIMU95VTdmYi83UDZFTlBLWmRiTGwyQlRHWk44?= =?utf-8?B?cVZ3dFFzVWlvd002RUZ0aFg4QXBmL2MyblBMUVJSd2gwZllMU1RseHJtdmV3?= =?utf-8?B?SXFZTFVLeEFzWGZNOGZYQ1Mrd1ljdEV4TURmOVJ1cE5UZ2hSb2g2cmswbU9Z?= =?utf-8?B?TzVLSGpiRFg5L0FKUVlYRzEzaE1QbTZMRDFKaDVyUnpLTjFkUElqdWR0Tm8w?= =?utf-8?B?dlo1dGdHSlljTnFEMG9VVGJQWTZ2czZ4bEVVVDdqQ0lPanplRVpXc0JXaldS?= =?utf-8?B?cUFCR2hBUG5wa2crT3JZY0s5cHBndGtZT0dMTzQzblh4UlUvMWZBSE91YXhq?= =?utf-8?B?K29rbFlXRUJDdFdGdkNscit5QTBMVjN2QVJBOEk4SjZvcWpqMGR5cHpXUWVJ?= =?utf-8?B?VkZtTnkyZENOd21pYUcwY2hzM3ozcStXZE5uMENkT24yd2N4UlV3aFRiRFBI?= =?utf-8?B?THk5K2VsNllocXVvK0lyVGZra1Z6bUF6RlN0eXFyNGlxaGNMQlQyb1BJNlJ3?= =?utf-8?B?cjVSZVV4MVgrN0xuUEo3ZFlDeHZpSmF2VlNXMkRZZzU0aUMrbUs5SU9TdklX?= =?utf-8?B?TDhpNVZFR0ZvbzJJeVNPUkhNcllYejBueGllekM4TW02cUV0eCt1KzJJSGx3?= =?utf-8?B?dzdCemdiUVBERmgvMTFQMkFML0lXcHNtS2IwRS9HTmVjZlEvZWxuV3NTL2tD?= =?utf-8?B?VEVZZTZDSWlFTGdib3pLaDBlL2hEdmttd296cmZRMlhxTTRGdTVxRHVYVE1i?= =?utf-8?B?T3dpcHp5Q2wrT0VaRmd0cjNjR2JYOUVZNFhTb2tMVDdTNGo1NGNtdFNsaEFH?= =?utf-8?B?TC9oRk5OeXFqNk5sMmtCdDV0Mm5pY3NnZFpOeVpuWFpmcTU5U3FuSG5kZnNN?= =?utf-8?B?VXZTTmt3ZGZ5dDlFamRENDBWTW5WMFBoaXJkL0NiY0ZSK2xBOTdXRGlzODBR?= =?utf-8?B?MU9HL0M3U1h5ZnNzVlRRYkxiYnBVZzJXTDBSdVhrK0gxdno1Q0FUSHc1S0tx?= =?utf-8?B?N3FIazJEWDhITkNtV0VrSlc1ZEtqYWtMK0g5TThndk4relRIRUJBYlVhTmgr?= =?utf-8?B?aktRWm5HQ3ZtZ1VYTEtrVFIrbEE0eklBS2Vuc3RRa2s1THJGc0RwdlVJeGVq?= =?utf-8?B?ZGUwMktIMmIvZDdoSU5namVvYmd4bWs3Q3NZWUZmYkpBY0xKK1E2NTVlZUNR?= =?utf-8?B?VnBoYjNUUVBJZmZ2K3BQdVVkUlRHd0VsZ21IcFA0Z1lKWXc1RUdLSXB6aXBS?= =?utf-8?B?bzZ6UnJ4eVZZQWc2R3lESVQ1QVFtSXZRcUM4SG1XN3NPN0RCcjVaM3QzNzJk?= =?utf-8?B?QWhhRlY1RTdxRERwOG9Tam9BbHRzOTFPTkYzZEhrbkxGVTFLWEh2TUVVYUZK?= =?utf-8?B?VXRvVGh4ZFRibkJQeWQrWkpRNGZ3PT0=?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c5ea116-2987-4fea-3d82-08d9b137d544 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2021 23:52:40.7230 (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: zrcNfUNEHx/tZh3TiUof+EvapFsRRCCIhB9olRz2m0qjBOyZ1OGrjJxjbj4pT1fU55T781fHVY9bCs1gntsQ4LWHGtf5kOkroWWfvilgRHM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR11MB5812 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWljaGFlbCwNCg0KVGhhbmsgeW91IGZvciB0aGUgcXVpY2sgdXBkYXRlcy4NCg0KSSBoYXZl IGJlZW4gZG9pbmcgc29tZSB0ZXN0aW5nIG9mIHRoaXMgQ0kgcGx1Z2luIGZvciBhZGRlZCBmaWxl cywgZGVsZXRlZCBmaWxlcywNCm1vdmVkIGZpbGVzLCBhbmQgbW9kaWZpZWQgZmlsZXMuDQoNClRo ZXkgYWxsIHBhc3NlZCBwcm9kdWNpbmcgdGhlIGV4cGVjdGVkIGZpbmFsIHJlc3VsdC4NCg0KSSBk aWQgbm90aWNlIHRoYXQgdGhlIEpVTklUIFhNTCBmaWxlIGRvZXMgaGF2ZSB0aGUgZGV0YWlscyBv ZiBhbnkgZmFpbHVyZXMsIA0KYnV0IHdoZW4gcnVubmluZyB0aGUgVW5jcnVzdGlmeUNoZWNrIGxv Y2FsbHksIHRoZSBzdGFuZGFyZCBwYXJ0IG9mIHRoZSBsb2cgZG9lcyANCm5vdCBzaG93IGFueSBy ZWFzb24gZm9yIGFuIFVuY3J1c3RpZnlDaGVjayBmYWlsdXJlLCBub3QgZXZlbiBhIGZpbGVuYW1l LiAgV2hhdA0KaXMgbWlzc2luZyBpcyBhIGxvZ2dpbmcuZXJyb3IoKSBtZXNzYWdlIHdpdGggdGhl IG5hbWUgb2YgdGhlIGZpbGUuICBUaGlzIGZpbGVuYW1lDQpzaG91bGQgYmUgc2hvd24gaWYgX291 dHB1dF9maWxlX2RpZmZzIGlzIGVuYWJsZWQgb3Igbm90LiBUaGUgZm9sbG93aW5nIG9uZSBsaW5l DQphZGRpdGlvbiB0byBfcHJvY2Vzc191bmNydXN0aWZ5X3Jlc3VsdHMoKSByZXNvbHZlcyB0aGlz IGlzc3VlLg0KDQpAQCAtNTMyLDEwICs1MzIsMTEgQEAgY2xhc3MgVW5jcnVzdGlmeUNoZWNrKElD aUJ1aWxkUGx1Z2luKToNCg0KICAgICAgICAgZm9yIGZvcm1hdHRlZF9maWxlIGluIGZvcm1hdHRl ZF9maWxlczoNCiAgICAgICAgICAgICBwcmVfZm9ybWF0dGVkX2ZpbGUgPSBmb3JtYXR0ZWRfZmls ZVs6LQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl bihVbmNydXN0aWZ5Q2hlY2suRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OKV0NCisgICAgICAgICAg ICBsb2dnaW5nLmVycm9yKHByZV9mb3JtYXR0ZWRfZmlsZSkNCg0KICAgICAgICAgICAgIGlmIChz ZWxmLl9vdXRwdXRfZmlsZV9kaWZmcyBvcg0KICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmls ZV90ZW1wbGF0ZV9jb250ZW50cyBpcyBub3QgTm9uZSBvcg0KICAgICAgICAgICAgICAgICAgICAg c2VsZi5fZnVuY190ZW1wbGF0ZV9jb250ZW50cyBpcyBub3QgTm9uZSk6DQogICAgICAgICAgICAg ICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKA0KICAgICAgICAgICAgICAgICAgICAgZiJGb3JtYXR0 aW5nIGVycm9ycyBpbiB7b3MucGF0aC5yZWxwYXRoKHByZV9mb3JtYXR0ZWRfZmlsZSwgc2VsZi5f YWJzX3BhY2thZ2VfcGF0aCl9XG4iKQ0KDQoNCldpdGggdGhpcyBvbmUgY2hhbmdlOg0KDQpUZXN0 ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPiANClJl dmlld2VkLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4N Cg0KSSBjYW4gbWFrZSB0aGlzIG9uZSBjaGFuZ2Ugd2hlbiBJIGFkZCB0aGUgcmV2aWV3IHRhZ3Mg YW5kIHByZXBhcmUgdGhlIFBSLg0KDQpCZXN0IHJlZ2FyZHMsDQoNCk1pa2UNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBNaWNoYWVsIEt1YmFja2kNCj4gU2VudDogV2Vk bmVzZGF5LCBOb3ZlbWJlciAyNCwgMjAyMSA0OjUyIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsgTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgU2VhbiBCcm9nYW4NCj4g PHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3 QG1pY3Jvc29mdC5jb20+DQo+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjUgMS8xXSAu cHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2s6IEFkZCBVbmNydXN0aWZ5IENJIHBsdWdpbg0K PiANCj4gRnJvbTogTWljaGFlbCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNv bT4NCj4gDQo+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dp P2lkPTM3NDgNCj4gDQo+IEFkZHMgYSBuZXcgQ0kgcGx1Z2luIGZvciBVbmNydXN0aWZ5LiBUaGlz IGlzIHVzZWQgdG8gY2hlY2sNCj4gY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2Ugb2Ygc291cmNl IGNvZGUgdG8gdGhlIEVESyBJSSBDIENvZGluZw0KPiBTdGFuZGFyZHMgU3BlY2lmaWNhdGlvbi4N Cj4gDQo+IEFuIGV4dGVybmFsIGRlcGVuZGVuY3kgaXMgYWRkZWQgaW4gdGhlIHBsdWdpbiBkaXJl Y3RvcnkgdG8gcmV0cmlldmUNCj4gdGhlIFVuY3J1c3RpZnkgZXhlY3V0YWJsZS4gQ3VycmVudGx5 LCB0aGUgZXhlY3V0YWJsZSBpcyBmcm9tIGFuIGVkazINCj4gZm9yayBvZiB0aGUgYXBwbGljYXRp b24gaG9zdCBpbiB0aGlzIHJlcG9zaXRvcnk6DQo+IA0KPiBodHRwczovL2Rldi5henVyZS5jb20v cHJvamVjdG11L1VuY3J1c3RpZnkvDQo+IA0KPiBOb3RlIHRoYXQgdGhlIFVuY3J1c3RpZnkgYXBw bGljYXRpb24gb3V0cHV0cyB0aGUgY29tbWl0IElEIHRoYXQgdGhlDQo+IGFwcGxpY2F0aW9uIHdh cyBidWlsdCBmcm9tIHdoZW4gZ2l2ZW4gdGhlIC0tdmVyc2lvbiBwYXJhbWV0ZXIuDQo+IA0KPiBU aGlzIElEIGNhbiBiZSBtYXBwZWQgdG8gdGhlIHZlcnNpb24gc3BlY2lmaWVkIGluIHRoZSBVbmNy dXN0aWZ5IENJDQo+IHBsdWdpbiBleHRlcm5hbCBkZXBlbmRlbmN5IGZpbGUgKHVuY3J1c3RpZnlf ZXh0X2RlcC55YW1sKSBzdWNoIGFzDQo+IDczLjAuMyBieSB2aXNpdGluZyB0aGUgVW5jcnVzdGlm eSBlZGsyIGZvcmsgcmVsZWFzZSBwaXBlbGluZSBwYWdlDQo+IHdoaWNoIGFzc29jaWF0ZXMgdGhl IE51R2V0IHBhY2thZ2UgdmVyc2lvbiB3aXRoIHRoZSBjb21taXQgSUQgaXQgd2FzDQo+IGJ1aWx0 IGZyb206DQo+IA0KPiBodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkv X2J1aWxkDQo+IA0KPiBUaGUgZGVmYXVsdCBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZXMg YXJlIGFkZGVkIGluIHRoZSBwbHVnaW4NCj4gZGlyZWN0b3J5LiBBZGRpdGlvbmFsIGRldGFpbHMg YXJlIGluIHRoZSBSZWFkbWUubWQgZmlsZSBhZGRlZCBpbg0KPiB0aGUgVW5jcnVzdGlmeSBwbHVn aW4gZGlyZWN0b3J5Lg0KPiANCj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPg0KPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu Pg0KPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+IENjOiBC cmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQo+IFNpZ25lZC1vZmYt Ynk6IE1pY2hhZWwgS3ViYWNraSA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+IC0t LQ0KPiANCj4gTm90ZXM6DQo+ICAgICBWNSBjaGFuZ2VzOg0KPiANCj4gICAgIDEuIERpc2FibGUg KGNvbW1lbnQgb3V0IHRoZSBzZXR0aW5nIGluIHRoZSBVbmNydXN0aWZ5IGNvbmZpZyBmaWxlKQ0K PiAgICAgICAgZm9yIGZpbGUgYW5kIGZ1bmN0aW9uIGhlYWRlciB0ZW1wbGF0ZXMgZHVlIHRvIHRo ZSBsYXJnZSBudW1iZXINCj4gICAgICAgIG9mIGZhaWx1cmVzIHRoYXQgd2lsbCB0YWtlIHRpbWUg dG8gcmVzb2x2ZS4NCj4gDQo+ICAgICAgICBUaGVzZSBzZXR0aW5ncyBjYW4gYmUgZW5hYmxlZCBp biB0aGUgZnV0dXJlIGFmdGVyIHBhY2thZ2VzIGFyZQ0KPiAgICAgICAgdXBkYXRlZCB0byBub3Qg ZmFpbCB0aGUgY2hlY2suDQo+IA0KPiAgICAgVjQgY2hhbmdlczoNCj4gDQo+ICAgICAxLiBVcGRh dGVkIGNvbW1pdCBzdWJqZWN0IHRvIHVzZSB0aGUgbmV3IHBsdWdpbiBuYW1lLg0KPiAgICAgMi4g RW5hYmxlZCBmaWxlIGFuZCBmdW5jdGlvbiBoZWFkZXIgdGVtcGxhdGVzIHRvIGJlIHBsYWNlZCBp bg0KPiAgICAgICAgZmlsZXMgbWlzc2luZyBhIGZpbGUgb3IgZnVuY3Rpb24gaGVhZGVyIChjb21t ZW50IGJsb2NrKS4NCj4gICAgIDMuIEFkZGVkIHN1cHBvcnQgdG8gZGV0ZWN0IHdoZXRoZXIgYSBm aWxlIGhlYWRlciBvciBmdW5jdGlvbg0KPiAgICAgICAgaGVhZGVyIGlzIG1pc3NpbmcgaW4gYSBm aWxlIGJ5IHNlYXJjaGluZyBmaWxlcyBtb2RpZmllZCBieQ0KPiAgICAgICAgVW5jcnVzdGlmeSBm b3IgdGhlIHRlbXBsYXRlIGZpbGUgdGV4dC4NCj4gICAgIDQuIFVwZGF0ZWQgdGhlIHBsdWdpbiBu YW1lIGRpc3BsYXllZCBpbiBzb21lIGxvZyBvdXRwdXQgbWVzc2FnZXMuDQo+IA0KPiAgICAgVjMg Y2hhbmdlczoNCj4gDQo+ICAgICAxLiBSZW5hbWVkIHRoZSBDSSBwbHVnaW4gdG8gIlVuY3J1c3Rp ZnlDaGVjayIgZnJvbSAiVW5jcnVzdGlmeSINCj4gICAgICAgIHRvIGZvbGxvdyBzaW1pbGFyIG5h bWluZyBjb252ZW50aW9ucyB1c2VkIGluIG90aGVyIHBsdWdpbnMNCj4gICAgICAgIHRoYXQgY2hl Y2sgZmlsZXMNCj4gICAgIDIuIEFkZGVkIGEgY2xhcmlmeWluZyBwYXJhZ3JhcGggdG8gdGhlIGJl Z2lubmluZyBvZiB0aGUgVW5jcnVzdGlmeQ0KPiAgICAgICAgQ0kgcGx1Z2luIFJlYWRtZS5tZCBm aWxlIHRoYXQgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQNCj4gICAgICAgIGFuZCB0 ZXN0IHJlc3VsdHMgY2FuIGJlIGlnbm9yZWQgYnkgZW5hYmxpbmcgIkF1ZGl0T25seSIgbW9kZS4N Cj4gICAgIDMuIEFkZGVkIGluc3RydWN0aW9ucyBpbiB0aGUgY29tbWl0IG1lc3NhZ2Ugb24gaG93 IHRvIG1hcCB0aGUNCj4gICAgICAgIHZlcnNpb24gcmVwb3J0ZWQgYnkgdGhlIFVuY3J1c3RpZnkg YXBwbGljYXRpb24gKC0tdmVyc2lvbikgdG8NCj4gICAgICAgIHRoZSB2ZXJzaW9uIHNwZWNpZmll ZCBpbiB0aGUgQ0kgcGx1Z2luIGV4dGVybmFsIGRlcGVuZGVuY3kNCj4gICAgICAgIFlBTUwgZmls ZS4NCj4gDQo+ICAgICBWMiBjaGFuZ2VzOg0KPiANCj4gICAgIDEuIENoYW5nZWQgcGx1Z2luIHRl bXAgZGlyZWN0b3J5IHRvIEJ1aWxkLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkNCj4gICAgIDIu IEFkZGVkIFRDQlogUkVGIGluIHBhdGNoIGNvbW1pdCBtZXNzYWdlDQo+IA0KPiAgLnB5dG9vbC9Q bHVnaW4vVW5jcnVzdGlmeUNoZWNrL1JlYWRtZS5tZCAgICAgICAgICAgICAgICAgICB8IDEyMCAr KysrDQo+ICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svVW5jcnVzdGlmeUNoZWNrLnB5 ICAgICAgICAgIHwgNjE3ICsrKysrKysrKysrKysrKysrKysrDQo+ICAucHl0b29sL1BsdWdpbi9V bmNydXN0aWZ5Q2hlY2svZGVmYXVsdF9maWxlX2hlYWRlci50eHQgICAgIHwgICA5ICsNCj4gIC5w eXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9kZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQg fCAgMTUgKw0KPiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnkuY2Zn ICAgICAgICAgICAgICB8IDQ2MiArKysrKysrKysrKysrKysNCj4gIC5weXRvb2wvUGx1Z2luL1Vu Y3J1c3RpZnlDaGVjay91bmNydXN0aWZ5X2V4dF9kZXAueWFtbCAgICAgfCAgMTYgKw0KPiAgLnB5 dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnlfcGx1Z19pbi55YW1sICAgICB8 ICAxMSArDQo+ICAucHl0b29sL1JlYWRtZS5tZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA0ICsNCj4gIDggZmlsZXMgY2hhbmdlZCwgMTI1NCBpbnNlcnRpb25z KCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL1Jl YWRtZS5tZCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9SZWFkbWUubWQNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iYjI2M2JjYzg3ZDcNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5Q2hlY2svUmVh ZG1lLm1kDQo+IEBAIC0wLDAgKzEsMTIwIEBADQo+ICsjIFVuY3J1c3RpZnlDaGVjayBQbHVnaW4N Cj4gKw0KPiArVGhpcyBDaUJ1aWxkUGx1Z2luIHNjYW5zIGFsbCB0aGUgZmlsZXMgaW4gYSBnaXZl biBwYWNrYWdlIGFuZCBjaGVja3MgZm9yIGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNlIGlzc3Vl cy4NCj4gKw0KPiArVGhpcyBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBJZiBhIHBhY2th Z2Ugd291bGQgbGlrZSB0byBwcmV2ZW50IHRoZSBwbHVnaW4gZnJvbSByZXBvcnRpbmcgZXJyb3Jz LCBpdCBjYW4gZG8NCj4gK3NvIGJ5IGVuYWJsaW5nIFtgQXVkaXRPbmx5YF0oI2F1ZGl0b25seSkg bW9kZS4NCj4gKw0KPiArVGhpcyBwbHVnaW4gcmVxdWlyZXMgdGhlIGRpcmVjdG9yeSBjb250YWlu aW5nIHRoZSBVbmNydXN0aWZ5IGV4ZWN1dGFibGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhp cyBwbHVnaW4gdG8NCj4gK2JlIHNwZWNpZmllZCBpbiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBu YW1lZCBgVU5DUlVTVElGWV9DSV9QQVRIYC4gVGhpcyB1bmlxdWUgdmFyaWFibGUgbmFtZSBpcyB1 c2VkIHRvIGF2b2lkIGNvbmZ1c2lvbg0KPiArd2l0aCBvdGhlciBwYXRocyB0byBVbmNydXN0aWZ5 IHdoaWNoIG1pZ2h0IG5vdCBiZSB0aGUgZXhwZWN0ZWQgYnVpbGQgZm9yIHVzZSBieSB0aGlzIHBs dWdpbi4NCj4gKw0KPiArQnkgZGVmYXVsdCwgYW4gVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZp bGUgbmFtZWQgInVuY3J1c3RpZnkuY2ZnIiBsb2NhdGVkIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBh cyB0aGUgcGx1Z2luIGlzDQo+ICt1c2VkLiBUaGUgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gdG8g YSBwYWNrYWdlLXNwZWNpZmljIHBhdGggd2l0aCB0aGUgYENvbmZpZ0ZpbGVQYXRoYCBjb25maWd1 cmF0aW9uIGZpbGUgb3B0aW9uLg0KPiArDQo+ICsqIFVuY3J1c3RpZnkgc291cmNlIGNvZGUgYW5k IGRvY3VtZW50YXRpb246IGh0dHBzOi8vZ2l0aHViLmNvbS91bmNydXN0aWZ5L3VuY3J1c3RpZnkN Cj4gKyogUHJvamVjdCBNdSBVbmNydXN0aWZ5IGZvcmsgc291cmNlIGNvZGUgYW5kIGRvY3VtZW50 YXRpb246IGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvVW5jcnVzdGlmeQ0KPiArDQo+ ICsjIyBGaWxlcyBDaGVja2VkIGluIGEgUGFja2FnZQ0KPiArDQo+ICtCeSBkZWZhdWx0LCB0aGlz IHBsdWdpbiB3aWxsIGRpc2NvdmVyIGFsbCBmaWxlcyBpbiB0aGUgcGFja2FnZSB3aXRoIHRoZSBm b2xsb3dpbmcgZGVmYXVsdCBwYXRoczoNCj4gKw0KPiArYGBgcHl0aG9uDQo+ICtbDQo+ICsjIEMg c291cmNlDQo+ICsiKi5jIiwNCj4gKyIqLmgiDQo+ICtdDQo+ICtgYGANCj4gKw0KPiArRnJvbSB0 aGlzIGxpc3Qgb2YgZmlsZXMsIGFueSBmaWxlcyBpZ25vcmVkIGJ5IEdpdCBvciByZXNpZGluZyBp biBhIEdpdCBzdWJtb2R1bGUgd2lsbCBiZSByZW1vdmVkLiBJZiBHaXQgaXMgbm90DQo+ICtmb3Vu ZCwgc3VibW9kdWxlcyBhcmUgbm90IGZvdW5kLCBvciBpZ25vcmVkIGZpbGVzIGFyZSBub3QgZm91 bmQgbm8gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgbGlzdCBvZiBkaXNjb3ZlcmVkIGZpbGVzLg0K PiArDQo+ICtUbyBjb250cm9sIHRoZSBwYXRocyBjaGVja2VkIGluIGEgZ2l2ZW4gcGFja2FnZSwg cmV2aWV3IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZGVzY3JpYmVkIGluIHRoaXMgZmlsZS4N Cj4gKw0KPiArIyMgQ29uZmlndXJhdGlvbg0KPiArDQo+ICtUaGUgcGx1Z2luIGNhbiBiZSBjb25m aWd1cmVkIHdpdGggYSBmZXcgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zLg0KPiArDQo+ ICtgYGAgeWFtbA0KPiArICAiVW5jcnVzdGlmeUNoZWNrIjogew0KPiArICAgICAgIkFkZGl0aW9u YWxJbmNsdWRlUGF0aHMiOiBbXSwgIyBBZGRpdGlvbmFsIHBhdGhzIHRvIGNoZWNrIGZvcm1hdHRp bmcgKHdpbGRjYXJkcyBzdXBwb3J0ZWQpLg0KPiArICAgICAgIkF1ZGl0T25seSI6IEZhbHNlLCAg ICAgICAgICAgIyBEb24ndCBmYWlsIHRoZSBidWlsZCBpZiB0aGVyZSBhcmUgZXJyb3JzLiAgSnVz dCBsb2cgdGhlbS4NCj4gKyAgICAgICJDb25maWdGaWxlUGF0aCI6ICIiLCAgICAgICAgICMgQ3Vz dG9tIHBhdGggdG8gYW4gVW5jcnVzdGlmeSBjb25maWcgZmlsZS4NCj4gKyAgICAgICJJZ25vcmVT dGFuZGFyZFBhdGhzIjogW10sICAgICMgU3RhbmRhcmQgUGx1Z2luIGRlZmluZWQgcGF0aHMgdGhh dCBzaG91bGQgYmUgaWdub3JlZC4NCj4gKyAgICAgICJPdXRwdXRGaWxlRGlmZnMiOiBGYWxzZSwg ICAgICMgT3V0cHV0IGNodW5rcyBvZiBmb3JtYXR0aW5nIGRpZmZzIGluIHRoZSB0ZXN0IGNhc2Ug bG9nLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBz aWduaWZpY2FudGx5IHNsb3cgZG93biB0aGUgcGx1Z2luIG9uIHZlcnkgbGFyZ2UgcGFja2FnZXMu DQo+ICsgICAgICAiU2tpcEdpdEV4Y2x1c2lvbnMiOiBGYWxzZSAgICAjIERvbid0IGV4Y2x1ZGUg Z2l0IGlnbm9yZWQgZmlsZXMgYW5kIGZpbGVzIGluIGdpdCBzdWJtb2R1bGVzLg0KPiArICB9DQo+ ICtgYGANCj4gKw0KPiArIyMjIGBBZGRpdGlvbmFsSW5jbHVkZVBhdGhzYA0KPiArDQo+ICtBIHBh Y2thZ2UgY29uZmlndXJhdGlvbiBmaWxlIGNhbiBzcGVjaWZ5IGFueSBhZGRpdGlvbmFsIHBhdGhz IHRvIGJlIGluY2x1ZGVkIHdpdGggdGhpcyBvcHRpb24uDQo+ICsNCj4gK0F0IHRoaXMgdGltZSwg aXQgaXMgcmVjb21tZW5kZWQgYWxsIGZpbGVzIHJ1biBhZ2FpbnN0IHRoZSBwbHVnaW4gYmUgd3Jp dHRlbiBpbiB0aGUgQyBvciBDKysgbGFuZ3VhZ2UuDQo+ICsNCj4gKyMjIyBgQXVkaXRPbmx5YA0K PiArDQo+ICtgQm9vbGVhbmAgLSBEZWZhdWx0IGlzIGBGYWxzZWAuDQo+ICsNCj4gK0lmIGBUcnVl YCwgcnVuIHRoZSB0ZXN0IGluIGFuICJhdWRpdCBvbmx5IG1vZGUiIHdoaWNoIHdpbGwgbG9nIGFs bCBlcnJvcnMgYnV0IGluc3RlYWQgb2YgZmFpbGluZyB0aGUgYnVpbGQsIGl0IHdpbGwgc2V0DQo+ ICt0aGUgdGVzdCBhcyBza2lwcGVkLiBUaGlzIGFsbG93cyB2aXNpYmlsaXR5IGludG8gdGhlIGZh aWx1cmVzIHdpdGhvdXQgYnJlYWtpbmcgdGhlIGJ1aWxkLg0KPiArDQo+ICsjIyMgYENvbmZpZ0Zp bGVQYXRoYA0KPiArDQo+ICtgU3RyaW5nYCAtIERlZmF1bHQgaXMgYCJ1bmNydXN0aWZ5LmNmZyJg DQo+ICsNCj4gK1doZW4gc3BlY2lmaWVkIGluIHRoZSBjb25maWcgZmlsZSwgdGhpcyBpcyBhIHBh Y2thZ2UgcmVsYXRpdmUgcGF0aCB0byB0aGUgVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZpbGUu DQo+ICsNCj4gKyMjIyBgSWdub3JlU3RhbmRhcmRQYXRoc2ANCj4gKw0KPiArVGhpcyBwbHVnaW4g YnkgZGVmYXVsdCB3aWxsIGNoZWNrIHRoZSBiZWxvdyBzdGFuZGFyZCBwYXRocy4gQSBwYWNrYWdl IGNvbmZpZ3VyYXRpb24gZmlsZSBjYW4gc3BlY2lmeSBhbnkgb2YgdGhlc2UgcGF0aHMNCj4gK3Rv IGJlIGlnbm9yZWQuDQo+ICsNCj4gK2BgYHB5dGhvbg0KPiArWw0KPiArIyBDIHNvdXJjZQ0KPiAr IiouYyIsDQo+ICsiKi5oIg0KPiArXQ0KPiArYGBgDQo+ICsNCj4gKyMjIyBgT3V0cHV0RmlsZURp ZmZzYA0KPiArDQo+ICtgQm9vbGVhbmAgLSBEZWZhdWx0IGlzIGBGYWxzZWAuDQo+ICsNCj4gK0lm IGBUcnVlYCwgb3V0cHV0IGRpZmZzIG9mIGZvcm1hdHRpbmcgY2hhbmdlcyBpbnRvIHRoZSB0ZXN0 IGNhc2UgbG9nLiBUaGlzIGlzIGhlbHBmdWwgdG8gZXhhY3RseSB1bmRlcnN0YW5kIHdoYXQgY2hh bmdlcw0KPiArbmVlZCB0byBiZSBtYWRlIHRvIHRoZSBzb3VyY2UgY29kZSBpbiBvcmRlciB0byBm aXggYSBjb2Rpbmcgc3RhbmRhcmQgY29tcGxpYW5jZSBpc3N1ZS4NCj4gKw0KPiArTm90ZSB0aGF0 IGNhbGN1bGF0aW5nIHRoZSBmaWxlIGRpZmZzIG9uIGEgdmVyeSBsYXJnZSBzZXQgb2Ygb2YgcmVz dWx0cyAoZS5nLiA+MTAwIGZpbGVzKSBjYW4gc2lnbmlmaWNhbnRseSBzbG93IGRvd24NCj4gK3Bs dWdpbiBleGVjdXRpb24uDQo+ICsNCj4gKyMjIyBgU2tpcEdpdEV4Y2x1c2lvbnNgDQo+ICsNCj4g K2BCb29sZWFuYCAtIERlZmF1bHQgaXMgYEZhbHNlYC4NCj4gKw0KPiArQnkgZGVmYXVsdCwgZmls ZXMgaW4gcGF0aHMgbWF0Y2hlZCBpbiBhIC5naXRpZ25vcmUgZmlsZSBvciBhIHJlY29nbml6ZWQg Z2l0IHN1Ym1vZHVsZSBhcmUgZXhjbHVkZWQuIElmIHRoaXMgb3B0aW9uDQo+ICtpcyBgVHJ1ZWAs IHRoZSBwbHVnaW4gd2lsbCBub3QgYXR0ZW1wdCB0byByZWNvZ25pemUgdGhlc2UgZmlsZXMgYW5k IGV4Y2x1ZGUgdGhlbS4NCj4gKw0KPiArIyMgSGlnaC1MZXZlbCBQbHVnaW4gT3BlcmF0aW9uDQo+ ICsNCj4gK1RoaXMgcGx1Z2luIGdlbmVyYXRlcyB0d28gbWFpbiBzZXRzIG9mIHRlbXBvcmFyeSBm aWxlczoNCj4gKw0KPiArICAxLiBBIHdvcmtpbmcgZGlyZWN0b3J5IGluIHRoZSBkaXJlY3Rvcnkg YEJ1aWxkLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlgDQo+ICsgIDIuIEZvciBlYWNoIHNvdXJj ZSBmaWxlIHdpdGggZm9ybWF0dGluZyBlcnJvcnMsIGEgc2libGluZyBmaWxlIHdpdGggdGhlIGAu dW5jcnVzdGlmeV9wbHVnaW5gIGV4dGVuc2lvbg0KPiArDQo+ICtUaGUgd29ya2luZyBkaXJlY3Rv cnkgY29udGFpbnMgdGVtcG9yYXJ5IGZpbGVzIHVuaXF1ZSB0byBvcGVyYXRpb24gb2YgdGhlIHBs dWdpbi4gQWxsIG9mIHRoZXNlIGZpbGVzIGFyZSByZW1vdmVkIG9uDQo+ICtleGl0IG9mIHRoZSBw bHVnaW4gaW5jbHVkaW5nIHN1Y2Nlc3NmdWwgb3IgdW5zdWNjZXNzZnVsIGV4ZWN1dGlvbiAoc3Vj aCBhcyBhIFB5dGhvbiBleGNlcHRpb24gb2NjdXJyaW5nKS4gSWYgZm9yIGFueQ0KPiArcmVhc29u LCBhbnkgZmlsZXMgaW4gdGhlIHBhY2thZ2UgZXhpc3QgcHJpb3IgdG8gcnVubmluZyB0aGUgcGx1 Z2luIHdpdGggdGhlIGAudW5jcnVzdGlmeV9wbHVnaW5gIGV4dGVuc2lvbiwgdGhlIHBsdWdpbg0K PiArd2lsbCBpbmZvcm0gdGhlIHVzZXIgdG8gcmVtb3ZlIHRoZXNlIGZpbGVzIGFuZCBleGl0IGJl Zm9yZSBydW5uaW5nIFVuY3J1c3RpZnkuIFRoaXMgaXMgdG8gZW5zdXJlIHRoZSBhY2N1cmFjeSBv ZiB0aGUNCj4gK3Jlc3VsdHMgcmVwb3J0ZWQgZnJvbSBlYWNoIGV4ZWN1dGlvbiBpbnN0YW5jZSBv ZiB0aGUgcGx1Z2luLg0KPiArDQo+ICtUaGUgcGx1Z2luIGRldGVybWluZXMgdGhlIGxpc3Qgb2Yg cmVsZXZhbnQgZmlsZXMgdG8gY2hlY2sgd2l0aCBVbmNydXN0aWZ5IGFuZCB0aGVuIGludm9rZXMg VW5jcnVzdGlmeSB3aXRoIHRoYXQgZmlsZQ0KPiArbGlzdC4gRm9yIGFueSBmaWxlcyBub3QgY29t cGxpYW50IHRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgcHJvdmlkZWQsIFVuY3J1c3RpZnkgd2ls bCBnZW5lcmF0ZSBhIGNvcnJlc3BvbmRpbmcgZmlsZQ0KPiArd2l0aCB0aGUgYC51bmNydXN0aWZ5 X3BsdWdpbmAgZXh0ZW5zaW9uLiBUaGUgcGx1Z2luIGRpc2NvdmVycyBhbGwgb2YgdGhlc2UgZmls ZXMuIElmIGFueSBzdWNoIGZpbGVzIGFyZSBwcmVzZW50LCB0aGlzDQo+ICtpbmRpY2F0ZXMgYSBm b3JtYXR0aW5nIGlzc3VlIHdhcyBmb3VuZCBhbmQgdGhlIHRlc3QgaXMgbWFya2VkIGZhaWxlZCAo dW5sZXNzIGBBdWRpdE9ubHlgIG1vZGUgaXMgZW5hYmxlZCkuDQo+ICsNCj4gK1RoZSB0ZXN0IGNh c2UgbG9nIHdpbGwgY29udGFpbiBhIHJlcG9ydCBvZiB3aGljaCBmaWxlcyBmYWlsZWQgdG8gZm9y bWF0IHByb3Blcmx5LCBhbGxvd2luZyB0aGUgdXNlciB0byBydW4gVW5jcnVzdGlmeQ0KPiArYWdh aW5zdCB0aGUgZmlsZSBsb2NhbGx5IHRvIGZpeCB0aGUgaXNzdWUuIElmIHRoZSBgT3V0cHV0Rmls ZURpZmZzYCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBzZXQgdG8gYFRydWVgLCB0aGUgcGx1Z2lu DQo+ICt3aWxsIG91dHB1dCBkaWZmIGNodW5rcyBmb3IgYWxsIGNvZGUgZm9ybWF0dGluZyBpc3N1 ZXMgaW4gdGhlIHRlc3QgY2FzZSBsb2cuDQo+IGRpZmYgLS1naXQgYS8ucHl0b29sL1BsdWdpbi9V bmNydXN0aWZ5Q2hlY2svVW5jcnVzdGlmeUNoZWNrLnB5IGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVz dGlmeUNoZWNrL1VuY3J1c3RpZnlDaGVjay5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwMDAuLjU5NTM0NDY5YTJkMw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi Ly5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9VbmNydXN0aWZ5Q2hlY2sucHkNCj4gQEAg LTAsMCArMSw2MTcgQEANCj4gKyMgQGZpbGUgVW5jcnVzdGlmeUNoZWNrLnB5DQo+ICsjDQo+ICsj IEFuIGVkazItcHl0b29sIGJhc2VkIHBsdWdpbiB3cmFwcGVyIGZvciBVbmNydXN0aWZ5DQo+ICsj DQo+ICsjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiArIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gK2ltcG9ydCBj b25maWdwYXJzZXINCj4gK2ltcG9ydCBkaWZmbGliDQo+ICtpbXBvcnQgZXJybm8NCj4gK2ltcG9y dCBsb2dnaW5nDQo+ICtpbXBvcnQgb3MNCj4gK2ltcG9ydCBwYXRobGliDQo+ICtpbXBvcnQgc2h1 dGlsDQo+ICtpbXBvcnQgdGltZWl0DQo+ICtmcm9tIGVkazJ0b29sZXh0LmVudmlyb25tZW50IGlt cG9ydCB2ZXJzaW9uX2FnZ3JlZ2F0b3INCj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJvbm1lbnQu cGx1Z2luX21hbmFnZXIgaW1wb3J0IFBsdWdpbk1hbmFnZXINCj4gK2Zyb20gZWRrMnRvb2xleHQu ZW52aXJvbm1lbnQucGx1Z2ludHlwZXMuY2lfYnVpbGRfcGx1Z2luIGltcG9ydCBJQ2lCdWlsZFBs dWdpbg0KPiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9ubWVudC5wbHVnaW50eXBlcy51ZWZpX2hl bHBlcl9wbHVnaW4gaW1wb3J0IEhlbHBlckZ1bmN0aW9ucw0KPiArZnJvbSBlZGsydG9vbGV4dC5l bnZpcm9ubWVudC52YXJfZGljdCBpbXBvcnQgVmFyRGljdA0KPiArZnJvbSBlZGsydG9vbGxpYi5s b2cuanVuaXRfcmVwb3J0X2Zvcm1hdCBpbXBvcnQgSnVuaXRSZXBvcnRUZXN0Q2FzZQ0KPiArZnJv bSBlZGsydG9vbGxpYi51ZWZpLmVkazIucGF0aF91dGlsaXRpZXMgaW1wb3J0IEVkazJQYXRoDQo+ ICtmcm9tIGVkazJ0b29sbGliLnV0aWxpdHlfZnVuY3Rpb25zIGltcG9ydCAgUnVuQ21kDQo+ICtm cm9tIGlvIGltcG9ydCBTdHJpbmdJTw0KPiArZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgRGljdCwg TGlzdCwgVHVwbGUNCj4gKw0KPiArIw0KPiArIyBQcm92aWRlIG1vcmUgdXNlciBmcmllbmRseSBt ZXNzYWdlcyBmb3IgY2VydGFpbiBzY2VuYXJpb3MNCj4gKyMNCj4gK2NsYXNzIFVuY3J1c3RpZnlF eGNlcHRpb24oRXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwg ZXhpdF9jb2RlKToNCj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlKQ0KPiArICAg ICAgICBzZWxmLmV4aXRfY29kZSA9IGV4aXRfY29kZQ0KPiArDQo+ICsNCj4gK2NsYXNzIFVuY3J1 c3RpZnlBcHBFbnZWYXJOb3RGb3VuZEV4Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4g KyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19p bml0X18obWVzc2FnZSwgLTEwMSkNCj4gKw0KPiArDQo+ICtjbGFzcyBVbmNydXN0aWZ5QXBwVmVy c2lvbkVycm9yRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiArICAgIGRlZiBfX2lu aXRfXyhzZWxmLCBtZXNzYWdlKToNCj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdl LCAtMTAyKQ0KPiArDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3RpZnlBcHBFeGVjdXRpb25FeGNlcHRp b24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3Nh Z2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMDMpDQo+ICsNCj4g Kw0KPiArY2xhc3MgVW5jcnVzdGlmeVN0YWxlUGx1Z2luRm9ybWF0dGVkRmlsZXNFeGNlcHRpb24o VW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2Up Og0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMjApDQo+ICsNCj4gKw0K PiArY2xhc3MgVW5jcnVzdGlmeUlucHV0RmlsZUNyZWF0aW9uRXJyb3JFeGNlcHRpb24oVW5jcnVz dGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiAr ICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMjEpDQo+ICsNCj4gK2NsYXNzIFVu Y3J1c3RpZnlJbnZhbGlkSWdub3JlU3RhbmRhcmRQYXRoc0V4Y2VwdGlvbihVbmNydXN0aWZ5RXhj ZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ICsgICAgICAg IHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEyMikNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlm eUdpdElnbm9yZUZpbGVFeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVm IF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1l c3NhZ2UsIC0xNDApDQo+ICsNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeUdpdFN1Ym1vZHVsZUV4 Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwg bWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTE0MSkNCj4g Kw0KPiArDQo+ICtjbGFzcyBVbmNydXN0aWZ5Q2hlY2soSUNpQnVpbGRQbHVnaW4pOg0KPiArICAg ICIiIg0KPiArICAgIEEgQ2lCdWlsZFBsdWdpbiB0aGF0IHVzZXMgVW5jcnVzdGlmeSB0byBjaGVj ayB0aGUgc291cmNlIGZpbGVzIGluIHRoZQ0KPiArICAgIHBhY2thZ2UgYmVpbmcgdGVzdGVkIGZv ciBjb2Rpbmcgc3RhbmRhcmQgaXNzdWVzLg0KPiArDQo+ICsgICAgQnkgZGVmYXVsdCwgdGhlIHBs dWdpbiBydW5zIGFnYWluc3Qgc3RhbmRhcmQgQyBzb3VyY2UgZmlsZSBleHRlbnNpb25zIGJ1dA0K PiArICAgIGl0cyBjb25maWd1cmF0aW9uIGNhbiBiZSBtb2RpZmllZCB0aHJvdWdoIGl0cyBjb25m aWd1cmF0aW9uIGZpbGUuDQo+ICsNCj4gKyAgICBDb25maWd1cmF0aW9uIG9wdGlvbnM6DQo+ICsg ICAgIlVuY3J1c3RpZnlDaGVjayI6IHsNCj4gKyAgICAgICAgIkFkZGl0aW9uYWxJbmNsdWRlUGF0 aHMiOiBbXSwgIyBBZGRpdGlvbmFsIHBhdGhzIHRvIGNoZWNrIGZvcm1hdHRpbmcgKHdpbGRjYXJk cyBzdXBwb3J0ZWQpLg0KPiArICAgICAgICAiQXVkaXRPbmx5IjogRmFsc2UsICAgICAgICAgICAj IERvbid0IGZhaWwgdGhlIGJ1aWxkIGlmIHRoZXJlIGFyZSBlcnJvcnMuICBKdXN0IGxvZyB0aGVt Lg0KPiArICAgICAgICAiQ29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAgICAjIEN1c3RvbSBwYXRo IHRvIGFuIFVuY3J1c3RpZnkgY29uZmlnIGZpbGUuDQo+ICsgICAgICAgICJJZ25vcmVTdGFuZGFy ZFBhdGhzIjogW10sICAgICMgU3RhbmRhcmQgUGx1Z2luIGRlZmluZWQgcGF0aHMgdGhhdCBzaG91 bGQgYmUgaWdub3JlZC4NCj4gKyAgICAgICAgIk91dHB1dEZpbGVEaWZmcyI6IEZhbHNlLCAgICAg IyBPdXRwdXQgY2h1bmtzIG9mIGZvcm1hdHRpbmcgZGlmZnMgaW4gdGhlIHRlc3QgY2FzZSBsb2cu DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gc2ln bmlmaWNhbnRseSBzbG93IGRvd24gdGhlIHBsdWdpbiBvbiB2ZXJ5IGxhcmdlIHBhY2thZ2VzLg0K PiArICAgICAgICAiU2tpcEdpdEV4Y2x1c2lvbnMiOiBGYWxzZSAgICAjIERvbid0IGV4Y2x1ZGUg Z2l0IGlnbm9yZWQgZmlsZXMgYW5kIGZpbGVzIGluIGdpdCBzdWJtb2R1bGVzLg0KPiArICAgIH0N Cj4gKyAgICAiIiINCj4gKw0KPiArICAgICMNCj4gKyAgICAjIEJ5IGRlZmF1bHQsIHVzZSBhbiAi dW5jcnVzdGlmeS5jZmciIGNvbmZpZyBmaWxlIGluIHRoZSBwbHVnaW4gZGlyZWN0b3J5DQo+ICsg ICAgIyBBIHBhY2thZ2UgY2FuIG92ZXJyaWRlIHRoaXMgcGF0aCB2aWEgIkNvbmZpZ0ZpbGVQYXRo Ig0KPiArICAgICMNCj4gKyAgICAjIE5vdGU6IFZhbHVlcyBzcGVjaWZpZWQgdmlhICJDb25maWdG aWxlUGF0aCIgYXJlIHJlbGF0aXZlIHRvIHRoZSBwYWNrYWdlDQo+ICsgICAgIw0KPiArICAgIERF RkFVTFRfQ09ORklHX0ZJTEVfUEFUSCA9IG9zLnBhdGguam9pbigNCj4gKyAgICAgICAgcGF0aGxp Yi5QYXRoKF9fZmlsZV9fKS5wYXJlbnQucmVzb2x2ZSgpLCAidW5jcnVzdGlmeS5jZmciKQ0KPiAr DQo+ICsgICAgIw0KPiArICAgICMgVGhlIGV4dGVuc2lvbiB1c2VkIGZvciBmb3JtYXR0ZWQgZmls ZXMgcHJvZHVjZWQgYnkgdGhpcyBwbHVnaW4NCj4gKyAgICAjDQo+ICsgICAgRk9STUFUVEVEX0ZJ TEVfRVhURU5TSU9OID0gIi51bmNydXN0aWZ5X3BsdWdpbiINCj4gKw0KPiArICAgICMNCj4gKyAg ICAjIEEgcGFja2FnZSBjYW4gYWRkIGFueSBhZGRpdGlvbmFsIHBhdGhzIHdpdGggIkFkZGl0aW9u YWxJbmNsdWRlUGF0aHMiDQo+ICsgICAgIyBBIHBhY2thZ2UgY2FuIHJlbW92ZSBhbnkgb2YgdGhl c2UgcGF0aHMgd2l0aCAiSWdub3JlU3RhbmRhcmRQYXRocyINCj4gKyAgICAjDQo+ICsgICAgU1RB TkRBUkRfUExVR0lOX0RFRklORURfUEFUSFMgPSAoIiouYyIsICIqLmgiKQ0KPiArDQo+ICsgICAg Iw0KPiArICAgICMgVGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gcGF0aCBzaG91bGQgc2V0IGlu IHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUNCj4gKyAgICAjDQo+ICsgICAgVU5DUlVTVElGWV9Q QVRIX0VOVl9LRVkgPSAiVU5DUlVTVElGWV9DSV9QQVRIIg0KPiArDQo+ICsgICAgZGVmIEdldFRl c3ROYW1lKHNlbGYsIHBhY2thZ2VuYW1lOiBzdHIsIGVudmlyb25tZW50OiBWYXJEaWN0KSAtPiBU dXBsZToNCj4gKyAgICAgICAgIiIiIFByb3ZpZGUgdGhlIHRlc3RjYXNlIG5hbWUgYW5kIGNsYXNz bmFtZSBmb3IgdXNlIGluIHJlcG9ydGluZw0KPiArDQo+ICsgICAgICAgICAgICBBcmdzOg0KPiAr ICAgICAgICAgICAgICBwYWNrYWdlbmFtZTogc3RyaW5nIGNvbnRhaW5pbmcgbmFtZSBvZiBwYWNr YWdlIHRvIGJ1aWxkDQo+ICsgICAgICAgICAgICAgIGVudmlyb25tZW50OiBUaGUgVmFyRGljdCBm b3IgdGhlIHRlc3QgdG8gcnVuIGluDQo+ICsgICAgICAgICAgICBSZXR1cm5zOg0KPiArICAgICAg ICAgICAgICAgIEEgdHVwbGUgY29udGFpbmluZyB0aGUgdGVzdGNhc2UgbmFtZSBhbmQgdGhlIGNs YXNzbmFtZQ0KPiArICAgICAgICAgICAgICAgICh0ZXN0Y2FzZW5hbWUsIGNsYXNzbmFtZSkNCj4g KyAgICAgICAgICAgICAgICB0ZXN0Y2xhc3NuYW1lOiBhIGRlc2NyaXB0aXZlIHN0cmluZyBmb3Ig dGhlIHRlc3RjYXNlIGNhbiBpbmNsdWRlIHdoaXRlc3BhY2UNCj4gKyAgICAgICAgICAgICAgICBj bGFzc25hbWU6IHNob3VsZCBiZSBwYXR0ZXJuZWQgPHBhY2thZ2VuYW1lPi48cGx1Z2luPi48b3B0 aW9uYWxseSBhbnkgdW5pcXVlIGNvbmRpdGlvbj4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IHJldHVybiAoIkNoZWNrIGZpbGUgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaW4gIiArIHBh Y2thZ2VuYW1lLCBwYWNrYWdlbmFtZSArICIuVW5jcnVzdGlmeUNoZWNrIikNCj4gKw0KPiArICAg IGRlZiBSdW5CdWlsZFBsdWdpbihzZWxmLCBwYWNrYWdlX3JlbF9wYXRoOiBzdHIsIGVkazJfcGF0 aDogRWRrMlBhdGgsIHBhY2thZ2VfY29uZmlnOiBEaWN0W3N0ciwgTGlzdFtzdHJdXSwNCj4gZW52 aXJvbm1lbnRfY29uZmlnOiBBbnksIHBsdWdpbl9tYW5hZ2VyOiBQbHVnaW5NYW5hZ2VyLCBwbHVn aW5fbWFuYWdlcl9oZWxwZXI6IEhlbHBlckZ1bmN0aW9ucywgdGM6IEp1bml0UmVwb3J0VGVzdENh c2UsDQo+IG91dHB1dF9zdHJlYW09Tm9uZSkgLT4gaW50Og0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgRXh0ZXJuYWwgZnVuY3Rpb24gb2YgcGx1Z2luLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQg dG8gcGVyZm9ybSB0aGUgdGFzayBvZiB0aGUgQ2lCdWlsZCBQbHVnaW4uDQo+ICsNCj4gKyAgICAg ICAgQXJnczoNCj4gKyAgICAgICAgICAtIHBhY2thZ2VfcmVsX3BhdGg6IGVkazIgd29ya3NwYWNl IHJlbGF0aXZlIHBhdGggdG8gdGhlIHBhY2thZ2UNCj4gKyAgICAgICAgICAtIGVkazJfcGF0aDog RWRrMlBhdGggb2JqZWN0IHdpdGggd29ya3NwYWNlIGFuZCBwYWNrYWdlcyBwYXRocw0KPiArICAg ICAgICAgIC0gcGFja2FnZV9jb25maWc6IERpY3Rpb25hcnkgd2l0aCB0aGUgcGFja2FnZSBjb25m aWd1cmF0aW9uDQo+ICsgICAgICAgICAgLSBlbnZpcm9ubWVudF9jb25maWc6IEVudmlyb25tZW50 IGNvbmZpZ3VyYXRpb24NCj4gKyAgICAgICAgICAtIHBsdWdpbl9tYW5hZ2VyOiBQbHVnaW4gTWFu YWdlciBJbnN0YW5jZQ0KPiArICAgICAgICAgIC0gcGx1Z2luX21hbmFnZXJfaGVscGVyOiBQbHVn aW4gTWFuYWdlciBIZWxwZXIgSW5zdGFuY2UNCj4gKyAgICAgICAgICAtIHRjOiBKVW5pdCB0ZXN0 IGNhc2UNCj4gKyAgICAgICAgICAtIG91dHB1dF9zdHJlYW06IFRoZSBTdHJpbmdJTyBvdXRwdXQg c3RyZWFtIGZyb20gdGhpcyBwbHVnaW4gKGxvZ2dpbmcpDQo+ICsNCj4gKyAgICAgICAgUmV0dXJu cw0KPiArICAgICAgICAgID4wIDogTnVtYmVyIG9mIGVycm9ycyBmb3VuZA0KPiArICAgICAgICAg IDAgIDogUGFzc2VkIHN1Y2Nlc3NmdWxseQ0KPiArICAgICAgICAgIC0xIDogU2tpcHBlZCBmb3Ig bWlzc2luZyBwcmVyZXENCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHRyeToNCj4gKyAgICAg ICAgICAgICMgSW5pdGlhbGl6ZSBwbHVnaW4gYW5kIGNoZWNrIHByZS1yZXF1aXNpdGVzLg0KPiAr ICAgICAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9lbnZpcm9ubWVudF9pbmZvKA0KPiArICAgICAg ICAgICAgICAgIHBhY2thZ2VfcmVsX3BhdGgsIGVkazJfcGF0aCwgcGFja2FnZV9jb25maWcsIHRj KQ0KPiArICAgICAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9jb25maWd1cmF0aW9uKCkNCj4gKyAg ICAgICAgICAgIHNlbGYuX2NoZWNrX2Zvcl9wcmVleGlzdGluZ19mb3JtYXR0ZWRfZmlsZXMoKQ0K PiArDQo+ICsgICAgICAgICAgICAjIExvZyBpbXBvcnRhbnQgY29udGV4dCBpbmZvcm1hdGlvbi4N Cj4gKyAgICAgICAgICAgIHNlbGYuX2xvZ191bmNydXN0aWZ5X2FwcF9pbmZvKCkNCj4gKw0KPiAr ICAgICAgICAgICAgIyBHZXQgdGVtcGxhdGUgZmlsZSBjb250ZW50cyBpZiBzcGVjaWZpZWQNCj4g KyAgICAgICAgICAgIHNlbGYuX2dldF90ZW1wbGF0ZV9maWxlX2NvbnRlbnRzKCkNCj4gKw0KPiAr ICAgICAgICAgICAgIyBDcmVhdGUgbWV0YSBpbnB1dCBmaWxlcyAmIGRpcmVjdG9yaWVzDQo+ICsg ICAgICAgICAgICBzZWxmLl9jcmVhdGVfdGVtcF93b3JraW5nX2RpcmVjdG9yeSgpDQo+ICsgICAg ICAgICAgICBzZWxmLl9jcmVhdGVfdW5jcnVzdGlmeV9maWxlX2xpc3RfZmlsZSgpDQo+ICsNCj4g KyAgICAgICAgICAgIHNlbGYuX3J1bl91bmNydXN0aWZ5KCkNCj4gKw0KPiArICAgICAgICAgICAg IyBQb3N0LWV4ZWN1dGlvbiBhY3Rpb25zLg0KPiArICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc191 bmNydXN0aWZ5X3Jlc3VsdHMoKQ0KPiArDQo+ICsgICAgICAgIGV4Y2VwdCBVbmNydXN0aWZ5RXhj ZXB0aW9uIGFzIGU6DQo+ICsgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcigNCj4gKyAg ICAgICAgICAgICAgICBmIlVuY3J1c3RpZnkgZXJyb3Ige2UuZXhpdF9jb2RlfS4gRGV0YWlsczpc blxue3N0cihlKX0iKQ0KPiArICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKA0KPiArICAgICAg ICAgICAgICAgIGYiVW5jcnVzdGlmeSBlcnJvciB7ZS5leGl0X2NvZGV9LiBEZXRhaWxzOlxuXG57 c3RyKGUpfSIpDQo+ICsgICAgICAgICAgICByZXR1cm4gLTENCj4gKyAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgIGlmIHNlbGYuX2Zvcm1hdHRlZF9maWxlX2Vycm9yX2NvdW50ID4gMDoNCj4g KyAgICAgICAgICAgICAgICBpZiBzZWxmLl9hdWRpdF9vbmx5X21vZGU6DQo+ICsgICAgICAgICAg ICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0 aW5nIHRlc3QgYXMgc2tpcHBlZCBzaW5jZSBBdWRpdE9ubHkgaXMgZW5hYmxlZCIpDQo+ICsgICAg ICAgICAgICAgICAgICAgIHNlbGYuX3RjLlNldFNraXBwZWQoKQ0KPiArICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLTENCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAg ICAgICAgICBzZWxmLl90Yy5TZXRGYWlsZWQoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBm IntzZWxmLl9wbHVnaW5fbmFtZX0gZmFpbGVkIGR1ZSB0byB7c2VsZi5fZm9ybWF0dGVkX2ZpbGVf ZXJyb3JfY291bnR9IGluY29ycmVjdGx5IGZvcm1hdHRlZA0KPiBmaWxlcy4iLCAiQ0hFQ0tfRkFJ TEVEIikNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5fdGMu U2V0U3VjY2VzcygpDQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5fZm9ybWF0dGVkX2ZpbGVf ZXJyb3JfY291bnQNCj4gKyAgICAgICAgZmluYWxseToNCj4gKyAgICAgICAgICAgIHNlbGYuX2Ns ZWFudXBfdGVtcG9yYXJ5X2Zvcm1hdHRlZF9maWxlcygpDQo+ICsgICAgICAgICAgICBzZWxmLl9j bGVhbnVwX3RlbXBvcmFyeV9kaXJlY3RvcnkoKQ0KPiArDQo+ICsgICAgZGVmIF9pbml0aWFsaXpl X2NvbmZpZ3VyYXRpb24oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IEluaXRpYWxpemVzIHBsdWdpbiBjb25maWd1cmF0aW9uLg0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgc2VsZi5faW5pdGlhbGl6ZV9hcHBfaW5mbygpDQo+ICsgICAgICAgIHNlbGYuX2luaXRp YWxpemVfY29uZmlnX2ZpbGVfaW5mbygpDQo+ICsgICAgICAgIHNlbGYuX2luaXRpYWxpemVfZmls ZV90b19mb3JtYXRfaW5mbygpDQo+ICsgICAgICAgIHNlbGYuX2luaXRpYWxpemVfdGVzdF9jYXNl X291dHB1dF9vcHRpb25zKCkNCj4gKw0KPiArICAgIGRlZiBfY2hlY2tfZm9yX3ByZWV4aXN0aW5n X2Zvcm1hdHRlZF9maWxlcyhzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAg ICAgQ2hlY2tzIGlmIGFueSBmb3JtYXR0ZWQgZmlsZXMgZnJvbSBwcmlvciBleGVjdXRpb24gYXJl IHByZXNlbnQuDQo+ICsNCj4gKyAgICAgICAgRXhpc3RlbmNlIG9mIHN1Y2ggZmlsZXMgaXMgYW4g dW5leHBlY3RlZCBjb25kaXRpb24uIFRoaXMgbWlnaHQgcmVzdWx0DQo+ICsgICAgICAgIGZyb20g YW4gZXJyb3IgdGhhdCBvY2N1cnJlZCBkdXJpbmcgYSBwcmV2aW91cyBydW4gb3IgYSBwcmVtYXR1 cmUgZXhpdCBmcm9tIGEgZGVidWcgc2NlbmFyaW8uIEluIGFueSBjYXNlLCB0aGUNCj4gcGFja2Fn ZSBzaG91bGQgYmUgY2xlYW4gYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IHJ1bi4NCj4gKyAgICAgICAg IiIiDQo+ICsgICAgICAgIHByZV9leGlzdGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudCA9IGxlbigN Cj4gKyAgICAgICAgICAgIFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluDQo+IHBhdGhs aWIuUGF0aChzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihmJyp7VW5jcnVzdGlmeUNoZWNr LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0nKV0pDQo+ICsNCj4gKyAgICAgICAgaWYgcHJlX2V4 aXN0aW5nX2Zvcm1hdHRlZF9maWxlX2NvdW50ID4gMDoNCj4gKyAgICAgICAgICAgIHJhaXNlIFVu Y3J1c3RpZnlTdGFsZVBsdWdpbkZvcm1hdHRlZEZpbGVzRXhjZXB0aW9uKA0KPiArICAgICAgICAg ICAgICAgIGYie3ByZV9leGlzdGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudH0gZm9ybWF0dGVkIGZp bGVzIGFscmVhZHkgZXhpc3QuIFRvIHByZXZlbnQgb3ZlcndyaXRpbmcgdGhlc2UgZmlsZXMsDQo+ IHBsZWFzZSByZW1vdmUgdGhlbSBiZWZvcmUgcnVubmluZyB0aGlzIHBsdWdpbi4iKQ0KPiArDQo+ ICsgICAgZGVmIF9jbGVhbnVwX3RlbXBvcmFyeV9kaXJlY3Rvcnkoc2VsZikgLT4gTm9uZToNCj4g KyAgICAgICAgIiIiDQo+ICsgICAgICAgIENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9y eSB1c2VkIGZvciB0aGlzIGV4ZWN1dGlvbiBpbnN0YW5jZS4NCj4gKw0KPiArICAgICAgICBUaGlz IHJlbW92ZXMgdGhlIGRpcmVjdG9yeSBhbmQgYWxsIGZpbGVzIGNyZWF0ZWQgZHVyaW5nIHRoaXMg aW5zdGFuY2UuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdf d29ya2luZ19kaXInKToNCj4gKyAgICAgICAgICAgIHNlbGYuX3JlbW92ZV90cmVlKHNlbGYuX3dv cmtpbmdfZGlyKQ0KPiArDQo+ICsgICAgZGVmIF9jbGVhbnVwX3RlbXBvcmFyeV9mb3JtYXR0ZWRf ZmlsZXMoc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENsZWFucyB1 cCB0aGUgdGVtcG9yYXJ5IGZvcm1tYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkgVW5jcnVzdGlmeS4N Cj4gKw0KPiArICAgICAgICBUaGlzIHdpbGwgcmVjdXJzaXZlbHkgcmVtb3ZlIGFsbCBmb3JtYXR0 ZWQgZmlsZXMgZ2VuZXJhdGVkIGJ5IFVuY3J1c3RpZnkNCj4gKyAgICAgICAgZHVyaW5nIHRoaXMg ZXhlY3V0aW9uIGluc3RhbmNlLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgaWYgaGFzYXR0 cihzZWxmLCAnX2Fic19wYWNrYWdlX3BhdGgnKToNCj4gKyAgICAgICAgICAgIGZvcm1hdHRlZF9m aWxlcyA9IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBhdGhsaWIuUGF0aCgNCj4g KyAgICAgICAgICAgICAgICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihmJyp7VW5jcnVz dGlmeUNoZWNrLkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0nKV0NCj4gKw0KPiArICAgICAgICAg ICAgZm9yIGZvcm1hdHRlZF9maWxlIGluIGZvcm1hdHRlZF9maWxlczoNCj4gKyAgICAgICAgICAg ICAgICBvcy5yZW1vdmUoZm9ybWF0dGVkX2ZpbGUpDQo+ICsNCj4gKyAgICBkZWYgX2NyZWF0ZV90 ZW1wX3dvcmtpbmdfZGlyZWN0b3J5KHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBDcmVhdGVzIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHVzZWQgZm9yIHRoaXMgZXhl Y3V0aW9uIGluc3RhbmNlLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgc2VsZi5fd29ya2lu Z19kaXIgPSBvcy5wYXRoLmpvaW4oDQo+ICsgICAgICAgICAgICBzZWxmLl9hYnNfd29ya3NwYWNl X3BhdGgsICJCdWlsZCIsICIucHl0b29sIiwgIlBsdWdpbiIsIGYie3NlbGYuX3BsdWdpbl9uYW1l fSIpDQo+ICsNCj4gKyAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgcGF0aGxpYi5QYXRoKHNl bGYuX3dvcmtpbmdfZGlyKS5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpDQo+ICsg ICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6DQo+ICsgICAgICAgICAgICByYWlzZSBVbmNydXN0 aWZ5SW5wdXRGaWxlQ3JlYXRpb25FcnJvckV4Y2VwdGlvbigNCj4gKyAgICAgICAgICAgICAgICBm IkVycm9yIGNyZWF0aW5nIHBsdWdpbiBkaXJlY3Rvcnkge3NlbGYuX3dvcmtpbmdfZGlyfS5cblxu e3JlcHIoZSl9LiIpDQo+ICsNCj4gKyAgICBkZWYgX2NyZWF0ZV91bmNydXN0aWZ5X2ZpbGVfbGlz dF9maWxlKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBDcmVhdGVz IHRoZSBmaWxlIHdpdGggdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVzIGZvciBVbmNydXN0aWZ5IHRv IHByb2Nlc3MuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLl9hcHBfaW5wdXRfZmls ZV9wYXRoID0gb3MucGF0aC5qb2luKA0KPiArICAgICAgICAgICAgc2VsZi5fd29ya2luZ19kaXIs ICJ1bmNydXN0aWZ5X2ZpbGVfbGlzdC50eHQiKQ0KPiArDQo+ICsgICAgICAgIHdpdGggb3Blbihz ZWxmLl9hcHBfaW5wdXRfZmlsZV9wYXRoLCAndycsIGVuY29kaW5nPSd1dGY4JykgYXMgZjoNCj4g KyAgICAgICAgICAgIGYud3JpdGVsaW5lcyhmIlxuIi5qb2luKHNlbGYuX2Fic19maWxlX3BhdGhz X3RvX2Zvcm1hdCkpDQo+ICsNCj4gKyAgICBkZWYgX2V4ZWN1dGVfdW5jcnVzdGlmeShzZWxmKSAt PiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgRXhlY3V0ZXMgVW5jcnVzdGlmeSB3 aXRoIHRoZSBpbml0aWFsaXplZCBjb25maWd1cmF0aW9uLg0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICBzZWxmLl9hcHBfZXhpdF9jb2Rl ID0gUnVuQ21kKA0KPiArICAgICAgICAgICAgc2VsZi5fYXBwX3BhdGgsDQo+ICsgICAgICAgICAg ICBmIi1jIHtzZWxmLl9hcHBfY29uZmlnX2ZpbGV9IC1GIHtzZWxmLl9hcHBfaW5wdXRfZmlsZV9w YXRofSAtLWlmLWNoYW5nZWQgLS1zdWZmaXgNCj4ge1VuY3J1c3RpZnlDaGVjay5GT1JNQVRURURf RklMRV9FWFRFTlNJT059Iiwgb3V0c3RyZWFtPW91dHB1dCkNCj4gKyAgICAgICAgc2VsZi5fYXBw X291dHB1dCA9IG91dHB1dC5nZXR2YWx1ZSgpLnN0cmlwKCkuc3BsaXRsaW5lcygpDQo+ICsNCj4g KyAgICBkZWYgX2dldF9naXRfaWdub3JlZF9wYXRocyhzZWxmKSAtPiBMaXN0W3N0cl06DQo+ICsg ICAgICAgICIiIiINCj4gKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZmlsZSBhYnNvbHV0ZSBw YXRoIHN0cmluZ3MgdG8gYWxsIGZpbGVzIGlnbm9yZWQgaW4gdGhpcyBnaXQgcmVwb3NpdG9yeS4N Cj4gKw0KPiArICAgICAgICBJZiBnaXQgaXMgbm90IGZvdW5kLCBhbiBlbXB0eSBsaXN0IHdpbGwg YmUgcmV0dXJuZWQuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBub3Qgc2h1dGlsLndo aWNoKCJnaXQiKToNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigNCj4gKyAgICAgICAgICAg ICAgICAiR2l0IGlzIG5vdCBmb3VuZCBvbiB0aGlzIHN5c3RlbS4gR2l0IHN1Ym1vZHVsZSBwYXRo cyB3aWxsIG5vdCBiZSBjb25zaWRlcmVkLiIpDQo+ICsgICAgICAgICAgICByZXR1cm4gW10NCj4g Kw0KPiArICAgICAgICBvdXRzdHJlYW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICBl eGl0X2NvZGUgPSBSdW5DbWQoImdpdCIsICJscy1maWxlcyAtLW90aGVyIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdvcmtpbmdkaXI9c2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLCBv dXRzdHJlYW09b3V0c3RyZWFtX2J1ZmZlciwgbG9nZ2luZ19sZXZlbD1sb2dnaW5nLk5PVFNFVCkN Cj4gKyAgICAgICAgaWYgKGV4aXRfY29kZSAhPSAwKToNCj4gKyAgICAgICAgICAgIHJhaXNlIFVu Y3J1c3RpZnlHaXRJZ25vcmVGaWxlRXhjZXB0aW9uKA0KPiArICAgICAgICAgICAgICAgIGYiQW4g ZXJyb3Igb2NjdXJyZWQgcmVhZGluZyBnaXQgaWdub3JlIHNldHRpbmdzLiBUaGlzIHdpbGwgcHJl dmVudCBVbmNydXN0aWZ5IGZyb20gcnVubmluZyBhZ2FpbnN0IHRoZQ0KPiBleHBlY3RlZCBzZXQg b2YgZmlsZXMuIikNCj4gKw0KPiArICAgICAgICAjIE5vdGU6IFRoaXMgd2lsbCBwb3RlbnRpYWxs eSBiZSBhIGxhcmdlIGxpc3QsIGJ1dCBhdCBsZWFzdCBzb3J0ZWQNCj4gKyAgICAgICAgcmV0dXJu IG91dHN0cmVhbV9idWZmZXIuZ2V0dmFsdWUoKS5zdHJpcCgpLnNwbGl0bGluZXMoKQ0KPiArDQo+ ICsgICAgZGVmIF9nZXRfZ2l0X3N1Ym1vZHVsZV9wYXRocyhzZWxmKSAtPiBMaXN0W3N0cl06DQo+ ICsgICAgICAgICIiIg0KPiArICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBkaXJlY3RvcnkgYWJz b2x1dGUgcGF0aCBzdHJpbmdzIHRvIHRoZSByb290IG9mIGVhY2ggc3VibW9kdWxlIGluIHRoZSB3 b3Jrc3BhY2UgcmVwb3NpdG9yeS4NCj4gKw0KPiArICAgICAgICBJZiBnaXQgaXMgbm90IGZvdW5k LCBhbiBlbXB0eSBsaXN0IHdpbGwgYmUgcmV0dXJuZWQuDQo+ICsgICAgICAgICIiIg0KPiArICAg ICAgICBpZiBub3Qgc2h1dGlsLndoaWNoKCJnaXQiKToNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcu d2FybigNCj4gKyAgICAgICAgICAgICAgICAiR2l0IGlzIG5vdCBmb3VuZCBvbiB0aGlzIHN5c3Rl bS4gR2l0IHN1Ym1vZHVsZSBwYXRocyB3aWxsIG5vdCBiZSBjb25zaWRlcmVkLiIpDQo+ICsgICAg ICAgICAgICByZXR1cm4gW10NCj4gKw0KPiArICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShvcy5w YXRoLmpvaW4oc2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLCAiLmdpdG1vZHVsZXMiKSk6DQo+ICsg ICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ICsgICAgICAgICAgICAgICAgZiIuZ2l0bW9kdWxl cyBmaWxlIGZvdW5kLiBFeGNsdWRpbmcgc3VibW9kdWxlcyBpbiB7c2VsZi5fcGFja2FnZV9uYW1l fS4iKQ0KPiArDQo+ICsgICAgICAgICAgICBvdXRzdHJlYW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0K PiArICAgICAgICAgICAgZXhpdF9jb2RlID0gUnVuQ21kKCJnaXQiLCAiY29uZmlnIC0tZmlsZSAu Z2l0bW9kdWxlcyAtLWdldC1yZWdleHAgcGF0aCIsIHdvcmtpbmdkaXI9c2VsZi5fYWJzX3dvcmtz cGFjZV9wYXRoLA0KPiBvdXRzdHJlYW09b3V0c3RyZWFtX2J1ZmZlciwgbG9nZ2luZ19sZXZlbD1s b2dnaW5nLk5PVFNFVCkNCj4gKyAgICAgICAgICAgIGlmIChleGl0X2NvZGUgIT0gMCk6DQo+ICsg ICAgICAgICAgICAgICAgcmFpc2UgVW5jcnVzdGlmeUdpdFN1Ym1vZHVsZUV4Y2VwdGlvbigNCj4g KyAgICAgICAgICAgICAgICAgICAgZiIuZ2l0bW9kdWxlIGZpbGUgZGV0ZWN0ZWQgYnV0IGFuIGVy cm9yIG9jY3VycmVkIHJlYWRpbmcgdGhlIGZpbGUuIENhbm5vdCBwcm9jZWVkIHdpdGggdW5rbm93 bg0KPiBzdWJtb2R1bGUgcGF0aHMuIikNCj4gKw0KPiArICAgICAgICAgICAgc3VibW9kdWxlX3Bh dGhzID0gW10NCj4gKyAgICAgICAgICAgIGZvciBsaW5lIGluIG91dHN0cmVhbV9idWZmZXIuZ2V0 dmFsdWUoKS5zdHJpcCgpLnNwbGl0bGluZXMoKToNCj4gKyAgICAgICAgICAgICAgICBzdWJtb2R1 bGVfcGF0aHMuYXBwZW5kKA0KPiArICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRo KG9zLnBhdGguam9pbihzZWxmLl9hYnNfd29ya3NwYWNlX3BhdGgsIGxpbmUuc3BsaXQoKVsxXSkp KQ0KPiArDQo+ICsgICAgICAgICAgICByZXR1cm4gc3VibW9kdWxlX3BhdGhzDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICByZXR1cm4gW10NCj4gKw0KPiArICAgIGRlZiBfZ2V0X3Rl bXBsYXRlX2ZpbGVfY29udGVudHMoc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsg ICAgICAgIEdldHMgdGhlIGNvbnRlbnRzIG9mIFVuY3J1c3RpZnkgdGVtcGxhdGUgZmlsZXMgaWYg dGhleSBhcmUgc3BlY2lmaWVkDQo+ICsgICAgICAgIGluIHRoZSBVbmNydXN0aWZ5IGNvbmZpZ3Vy YXRpb24gZmlsZS4NCj4gKyAgICAgICAgIiIiDQo+ICsNCj4gKyAgICAgICAgc2VsZi5fZmlsZV90 ZW1wbGF0ZV9jb250ZW50cyA9IE5vbmUNCj4gKyAgICAgICAgc2VsZi5fZnVuY190ZW1wbGF0ZV9j b250ZW50cyA9IE5vbmUNCj4gKw0KPiArICAgICAgICAjIEFsbG93IG5vIHZhbHVlIHRvIGFsbG93 ICJzZXQiIHN0YXRlbWVudHMgaW4gdGhlIGNvbmZpZyBmaWxlIHdoaWNoIGRvDQo+ICsgICAgICAg ICMgbm90IHNwZWNpZnkgdmFsdWUgYXNzaWdubWVudA0KPiArICAgICAgICBwYXJzZXIgPSBjb25m aWdwYXJzZXIuQ29uZmlnUGFyc2VyKGFsbG93X25vX3ZhbHVlPVRydWUpDQo+ICsgICAgICAgIHdp dGggb3BlbihzZWxmLl9hcHBfY29uZmlnX2ZpbGUsICdyJykgYXMgY2Y6DQo+ICsgICAgICAgICAg ICBwYXJzZXIucmVhZF9zdHJpbmcoIltkdW1teV9zZWN0aW9uXVxuIiArIGNmLnJlYWQoKSkNCj4g Kw0KPiArICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICBmaWxlX3RlbXBsYXRlX25hbWUgPSBw YXJzZXJbImR1bW15X3NlY3Rpb24iXVsiY210X2luc2VydF9maWxlX2hlYWRlciJdDQo+ICsNCj4g KyAgICAgICAgICAgIGZpbGVfdGVtcGxhdGVfcGF0aCA9IHBhdGhsaWIuUGF0aChmaWxlX3RlbXBs YXRlX25hbWUpDQo+ICsNCj4gKyAgICAgICAgICAgIGlmIG5vdCBmaWxlX3RlbXBsYXRlX3BhdGgu aXNfZmlsZSgpOg0KPiArICAgICAgICAgICAgICAgIGZpbGVfdGVtcGxhdGVfcGF0aCA9IHBhdGhs aWIuUGF0aChvcy5wYXRoLmpvaW4oc2VsZi5fcGx1Z2luX3BhdGgsIGZpbGVfdGVtcGxhdGVfbmFt ZSkpDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5fZmlsZV90ZW1wbGF0ZV9jb250ZW50cyA9IGZp bGVfdGVtcGxhdGVfcGF0aC5yZWFkX3RleHQoKQ0KPiArICAgICAgICBleGNlcHQgS2V5RXJyb3I6 DQo+ICsgICAgICAgICAgICBsb2dnaW5nLndhcm4oIkEgZmlsZSBoZWFkZXIgdGVtcGxhdGUgaXMg bm90IHNwZWNpZmllZCBpbiB0aGUgY29uZmlnIGZpbGUuIikNCj4gKyAgICAgICAgZXhjZXB0IEZp bGVOb3RGb3VuZEVycm9yOg0KPiArICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJUaGUgc3BlY2lm aWVkIGZpbGUgaGVhZGVyIHRlbXBsYXRlIGZpbGUgd2FzIG5vdCBmb3VuZC4iKQ0KPiArICAgICAg ICB0cnk6DQo+ICsgICAgICAgICAgICBmdW5jX3RlbXBsYXRlX25hbWUgPSBwYXJzZXJbImR1bW15 X3NlY3Rpb24iXVsiY210X2luc2VydF9mdW5jX2hlYWRlciJdDQo+ICsNCj4gKyAgICAgICAgICAg IGZ1bmNfdGVtcGxhdGVfcGF0aCA9IHBhdGhsaWIuUGF0aChmdW5jX3RlbXBsYXRlX25hbWUpDQo+ ICsNCj4gKyAgICAgICAgICAgIGlmIG5vdCBmdW5jX3RlbXBsYXRlX3BhdGguaXNfZmlsZSgpOg0K PiArICAgICAgICAgICAgICAgIGZ1bmNfdGVtcGxhdGVfcGF0aCA9IHBhdGhsaWIuUGF0aChvcy5w YXRoLmpvaW4oc2VsZi5fcGx1Z2luX3BhdGgsIGZ1bmNfdGVtcGxhdGVfbmFtZSkpDQo+ICsgICAg ICAgICAgICAgICAgc2VsZi5fZnVuY190ZW1wbGF0ZV9jb250ZW50cyA9IGZ1bmNfdGVtcGxhdGVf cGF0aC5yZWFkX3RleHQoKQ0KPiArICAgICAgICBleGNlcHQgS2V5RXJyb3I6DQo+ICsgICAgICAg ICAgICBsb2dnaW5nLndhcm4oIkEgZnVuY3Rpb24gaGVhZGVyIHRlbXBsYXRlIGlzIG5vdCBzcGVj aWZpZWQgaW4gdGhlIGNvbmZpZyBmaWxlLiIpDQo+ICsgICAgICAgIGV4Y2VwdCBGaWxlTm90Rm91 bmRFcnJvcjoNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigiVGhlIHNwZWNpZmllZCBmdW5j dGlvbiBoZWFkZXIgdGVtcGxhdGUgZmlsZSB3YXMgbm90IGZvdW5kLiIpDQo+ICsNCj4gKyAgICBk ZWYgX2luaXRpYWxpemVfYXBwX2luZm8oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ ICsgICAgICAgIEluaXRpYWxpemUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbi4N Cj4gKw0KPiArICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZGV0ZXJtaW5lIHRoZSBhcHBsaWNh dGlvbiBwYXRoIGFuZCB2ZXJzaW9uLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgIyBWZXJp ZnkgVW5jcnVzdGlmeSBpcyBzcGVjaWZpZWQgaW4gdGhlIGVudmlyb25tZW50Lg0KPiArICAgICAg ICBpZiBVbmNydXN0aWZ5Q2hlY2suVU5DUlVTVElGWV9QQVRIX0VOVl9LRVkgbm90IGluIG9zLmVu dmlyb246DQo+ICsgICAgICAgICAgICByYWlzZSBVbmNydXN0aWZ5QXBwRW52VmFyTm90Rm91bmRF eGNlcHRpb24oDQo+ICsgICAgICAgICAgICAgICAgZiJVbmNydXN0aWZ5IGVudmlyb25tZW50IHZh cmlhYmxlIHtVbmNydXN0aWZ5Q2hlY2suVU5DUlVTVElGWV9QQVRIX0VOVl9LRVl9IGlzIG5vdCBw cmVzZW50LiIpDQo+ICsNCj4gKyAgICAgICAgc2VsZi5fYXBwX3BhdGggPSBzaHV0aWwud2hpY2go J3VuY3J1c3RpZnknLCBwYXRoPW9zLmVudmlyb25bVW5jcnVzdGlmeUNoZWNrLlVOQ1JVU1RJRllf UEFUSF9FTlZfS0VZXSkNCj4gKw0KPiArICAgICAgICBpZiBzZWxmLl9hcHBfcGF0aCBpcyBOb25l Og0KPiArICAgICAgICAgICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoDQo+ICsgICAgICAgICAg ICAgICAgZXJybm8uRU5PRU5ULCBvcy5zdHJlcnJvcihlcnJuby5FTk9FTlQpLCBzZWxmLl9hcHBf cGF0aCkNCj4gKw0KPiArICAgICAgICBzZWxmLl9hcHBfcGF0aCA9IG9zLnBhdGgubm9ybWNhc2Uo b3MucGF0aC5ub3JtcGF0aChzZWxmLl9hcHBfcGF0aCkpDQo+ICsNCj4gKyAgICAgICAgaWYgbm90 IG9zLnBhdGguaXNmaWxlKHNlbGYuX2FwcF9wYXRoKToNCj4gKyAgICAgICAgICAgIHJhaXNlIEZp bGVOb3RGb3VuZEVycm9yKA0KPiArICAgICAgICAgICAgICAgIGVycm5vLkVOT0VOVCwgb3Muc3Ry ZXJyb3IoZXJybm8uRU5PRU5UKSwgc2VsZi5fYXBwX3BhdGgpDQo+ICsNCj4gKyAgICAgICAgIyBW ZXJpZnkgVW5jcnVzdGlmeSBpcyBwcmVzZW50IGF0IHRoZSBleHBlY3RlZCBwYXRoLg0KPiArICAg ICAgICByZXR1cm5fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICByZXQgPSBSdW5DbWQo c2VsZi5fYXBwX3BhdGgsICItLXZlcnNpb24iLCBvdXRzdHJlYW09cmV0dXJuX2J1ZmZlcikNCj4g KyAgICAgICAgaWYgKHJldCAhPSAwKToNCj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlB cHBWZXJzaW9uRXJyb3JFeGNlcHRpb24oDQo+ICsgICAgICAgICAgICAgICAgZiJFcnJvciBvY2N1 cnJlZCBleGVjdXRpbmcgLS12ZXJzaW9uOiB7cmV0fS4iKQ0KPiArDQo+ICsgICAgICAgICMgTG9n IFVuY3J1c3RpZnkgdmVyc2lvbiBpbmZvcm1hdGlvbi4NCj4gKyAgICAgICAgc2VsZi5fYXBwX3Zl cnNpb24gPSByZXR1cm5fYnVmZmVyLmdldHZhbHVlKCkuc3RyaXAoKQ0KPiArICAgICAgICBzZWxm Ll90Yy5Mb2dTdGRPdXQoZiJVbmNydXN0aWZ5IHZlcnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0i KQ0KPiArICAgICAgICB2ZXJzaW9uX2FnZ3JlZ2F0b3IuR2V0VmVyc2lvbkFnZ3JlZ2F0b3IoKS5S ZXBvcnRWZXJzaW9uKA0KPiArICAgICAgICAgICAgIlVuY3J1c3RpZnkiLCBzZWxmLl9hcHBfdmVy c2lvbiwgdmVyc2lvbl9hZ2dyZWdhdG9yLlZlcnNpb25UeXBlcy5JTkZPKQ0KPiArDQo+ICsgICAg ZGVmIF9pbml0aWFsaXplX2NvbmZpZ19maWxlX2luZm8oc2VsZikgLT4gTm9uZToNCj4gKyAgICAg ICAgIiIiDQo+ICsgICAgICAgIEluaXRpYWxpemUgVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZp bGUgaW5mby4NCj4gKw0KPiArICAgICAgICBUaGUgY29uZmlnIGZpbGUgcGF0aCBpcyByZWxhdGl2 ZSB0byB0aGUgcGFja2FnZSByb290Lg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgc2VsZi5f YXBwX2NvbmZpZ19maWxlID0gVW5jcnVzdGlmeUNoZWNrLkRFRkFVTFRfQ09ORklHX0ZJTEVfUEFU SA0KPiArICAgICAgICBpZiAiQ29uZmlnRmlsZVBhdGgiIGluIHNlbGYuX3BhY2thZ2VfY29uZmln Og0KPiArICAgICAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0gc2VsZi5fcGFja2FnZV9j b25maWdbIkNvbmZpZ0ZpbGVQYXRoIl0uc3RyaXAoKQ0KPiArDQo+ICsgICAgICAgICAgICBzZWxm Ll9hcHBfY29uZmlnX2ZpbGUgPSBvcy5wYXRoLm5vcm1wYXRoKA0KPiArICAgICAgICAgICAgICAg IG9zLnBhdGguam9pbihzZWxmLl9hYnNfcGFja2FnZV9wYXRoLCBzZWxmLl9hcHBfY29uZmlnX2Zp bGUpKQ0KPiArDQo+ICsgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShzZWxmLl9hcHBfY29u ZmlnX2ZpbGUpOg0KPiArICAgICAgICAgICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoDQo+ICsg ICAgICAgICAgICAgICAgZXJybm8uRU5PRU5ULCBvcy5zdHJlcnJvcihlcnJuby5FTk9FTlQpLCBz ZWxmLl9hcHBfY29uZmlnX2ZpbGUpDQo+ICsNCj4gKyAgICBkZWYgX2luaXRpYWxpemVfZW52aXJv bm1lbnRfaW5mbyhzZWxmLCBwYWNrYWdlX3JlbF9wYXRoOiBzdHIsIGVkazJfcGF0aDogRWRrMlBh dGgsIHBhY2thZ2VfY29uZmlnOiBEaWN0W3N0ciwNCj4gTGlzdFtzdHJdXSwgdGM6IEp1bml0UmVw b3J0VGVzdENhc2UpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBJbml0aWFs aXplcyBwbHVnaW4gZW52aXJvbm1lbnQgaW5mb3JtYXRpb24uDQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoID0gZWRrMl9wYXRoLkdldEFic29sdXRlUGF0 aE9uVGhpc1N5dGVtRnJvbUVkazJSZWxhdGl2ZVBhdGgoDQo+ICsgICAgICAgICAgICBwYWNrYWdl X3JlbF9wYXRoKQ0KPiArICAgICAgICBzZWxmLl9hYnNfd29ya3NwYWNlX3BhdGggPSBlZGsyX3Bh dGguV29ya3NwYWNlUGF0aA0KPiArICAgICAgICBzZWxmLl9wYWNrYWdlX2NvbmZpZyA9IHBhY2th Z2VfY29uZmlnDQo+ICsgICAgICAgIHNlbGYuX3BhY2thZ2VfbmFtZSA9IG9zLnBhdGguYmFzZW5h bWUoDQo+ICsgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKHBhY2thZ2VfcmVsX3BhdGgpKQ0K PiArICAgICAgICBzZWxmLl9wbHVnaW5fbmFtZSA9IHNlbGYuX19jbGFzc19fLl9fbmFtZV9fDQo+ ICsgICAgICAgIHNlbGYuX3BsdWdpbl9wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVh bHBhdGgoX19maWxlX18pKQ0KPiArICAgICAgICBzZWxmLl9yZWxfcGFja2FnZV9wYXRoID0gcGFj a2FnZV9yZWxfcGF0aA0KPiArICAgICAgICBzZWxmLl90YyA9IHRjDQo+ICsNCj4gKyAgICBkZWYg X2luaXRpYWxpemVfZmlsZV90b19mb3JtYXRfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiArICAgICAg ICAiIiINCj4gKyAgICAgICAgRm9ybXMgdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVzIGZvciBVbmNy dXN0aWZ5IHRvIHByb2Nlc3MuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICAjIENyZWF0ZSBh IGxpc3Qgb2YgYWxsIHRoZSBwYWNrYWdlIHJlbGF0aXZlIGZpbGUgcGF0aHMgaW4gdGhlIHBhY2th Z2UgdG8gcnVuIGFnYWluc3QgVW5jcnVzdGlmeS4NCj4gKyAgICAgICAgcmVsX2ZpbGVfcGF0aHNf dG9fZm9ybWF0ID0gbGlzdCgNCj4gKyAgICAgICAgICAgIFVuY3J1c3RpZnlDaGVjay5TVEFOREFS RF9QTFVHSU5fREVGSU5FRF9QQVRIUykNCj4gKw0KPiArICAgICAgICAjIEFsbG93IHRoZSBjaS55 YW1sIHRvIHJlbW92ZSBhbnkgb2YgdGhlIHByZS1kZWZpbmVkIHN0YW5kYXJkIHBhdGhzDQo+ICsg ICAgICAgIGlmICJJZ25vcmVTdGFuZGFyZFBhdGhzIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZzoN Cj4gKyAgICAgICAgICAgIGZvciBhIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnWyJJZ25vcmVTdGFu ZGFyZFBhdGhzIl06DQo+ICsgICAgICAgICAgICAgICAgaWYgYS5zdHJpcCgpIGluIHJlbF9maWxl X3BhdGhzX3RvX2Zvcm1hdDoNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3Rk T3V0KA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZiJJZ25vcmluZyBzdGFuZGFyZCBwYXRo IGR1ZSB0byBjaS55YW1sIGlnbm9yZToge2F9IikNCj4gKyAgICAgICAgICAgICAgICAgICAgcmVs X2ZpbGVfcGF0aHNfdG9fZm9ybWF0LnJlbW92ZShhLnN0cmlwKCkpDQo+ICsgICAgICAgICAgICAg ICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVW5jcnVzdGlmeUludmFsaWRJ Z25vcmVTdGFuZGFyZFBhdGhzRXhjZXB0aW9uKGYiSW52YWxpZCBJZ25vcmVTdGFuZGFyZFBhdGhz IHZhbHVlOiB7YX0iKQ0KPiArDQo+ICsgICAgICAgICMgQWxsb3cgdGhlIGNpLnlhbWwgdG8gc3Bl Y2lmeSBhZGRpdGlvbmFsIGluY2x1ZGUgcGF0aHMgZm9yIHRoaXMgcGFja2FnZQ0KPiArICAgICAg ICBpZiAiQWRkaXRpb25hbEluY2x1ZGVQYXRocyIgaW4gc2VsZi5fcGFja2FnZV9jb25maWc6DQo+ ICsgICAgICAgICAgICByZWxfZmlsZV9wYXRoc190b19mb3JtYXQuZXh0ZW5kKA0KPiArICAgICAg ICAgICAgICAgIHNlbGYuX3BhY2thZ2VfY29uZmlnWyJBZGRpdGlvbmFsSW5jbHVkZVBhdGhzIl0p DQo+ICsNCj4gKyAgICAgICAgc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0ID0gW10NCj4g KyAgICAgICAgZm9yIHBhdGggaW4gcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0Og0KPiArICAgICAg ICAgICAgc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0LmV4dGVuZCgNCj4gKyAgICAgICAg ICAgICAgICBbc3RyKHBhdGgucmVzb2x2ZSgpKSBmb3IgcGF0aCBpbiBwYXRobGliLlBhdGgoc2Vs Zi5fYWJzX3BhY2thZ2VfcGF0aCkucmdsb2IocGF0aCldKQ0KPiArDQo+ICsgICAgICAgIGlmIG5v dCAiU2tpcEdpdEV4Y2x1c2lvbnMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnIG9yIG5vdCBzZWxm Ll9wYWNrYWdlX2NvbmZpZ1siU2tpcEdpdEV4Y2x1c2lvbnMiXToNCj4gKyAgICAgICAgICAgICMg UmVtb3ZlIGZpbGVzIGlnbm9yZWQgYnkgZ2l0DQo+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8o DQo+ICsgICAgICAgICAgICAgICAgZiJ7c2VsZi5fcGFja2FnZV9uYW1lfSBmaWxlIGNvdW50IGJl Zm9yZSBnaXQgaWdub3JlIGZpbGUgZXhjbHVzaW9uOg0KPiB7bGVuKHNlbGYuX2Fic19maWxlX3Bh dGhzX3RvX2Zvcm1hdCl9IikNCj4gKw0KPiArICAgICAgICAgICAgaWdub3JlZF9wYXRocyA9IHNl bGYuX2dldF9naXRfaWdub3JlZF9wYXRocygpDQo+ICsgICAgICAgICAgICBzZWxmLl9hYnNfZmls ZV9wYXRoc190b19mb3JtYXQgPSBsaXN0KA0KPiArICAgICAgICAgICAgICAgIHNldChzZWxmLl9h YnNfZmlsZV9wYXRoc190b19mb3JtYXQpLmRpZmZlcmVuY2UoaWdub3JlZF9wYXRocykpDQo+ICsN Cj4gKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4gKyAgICAgICAgICAgICAgICBmIntzZWxm Ll9wYWNrYWdlX25hbWV9IGZpbGUgY291bnQgYWZ0ZXIgZ2l0IGlnbm9yZSBmaWxlIGV4Y2x1c2lv bjoNCj4ge2xlbihzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQpfSIpDQo+ICsNCj4gKyAg ICAgICAgICAgICMgUmVtb3ZlIGZpbGVzIGluIHN1Ym1vZHVsZXMNCj4gKyAgICAgICAgICAgIGxv Z2dpbmcuaW5mbygNCj4gKyAgICAgICAgICAgICAgICBmIntzZWxmLl9wYWNrYWdlX25hbWV9IGZp bGUgY291bnQgYmVmb3JlIHN1Ym1vZHVsZSBleGNsdXNpb246IHtsZW4oc2VsZi5fYWJzX2ZpbGVf cGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiArDQo+ICsgICAgICAgICAgICBzdWJtb2R1bGVfcGF0aHMg PSB0dXBsZShzZWxmLl9nZXRfZ2l0X3N1Ym1vZHVsZV9wYXRocygpKQ0KPiArICAgICAgICAgICAg Zm9yIHBhdGggaW4gc3VibW9kdWxlX3BhdGhzOg0KPiArICAgICAgICAgICAgICAgIGxvZ2dpbmcu aW5mbyhmIiAgc3VibW9kdWxlIHBhdGg6IHtwYXRofSIpDQo+ICsNCj4gKyAgICAgICAgICAgIHNl bGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCA9IFsNCj4gKyAgICAgICAgICAgICAgICBmIGZv ciBmIGluIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCBpZiBub3QgZi5zdGFydHN3aXRo KHN1Ym1vZHVsZV9wYXRocyldDQo+ICsNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygNCj4g KyAgICAgICAgICAgICAgICBmIntzZWxmLl9wYWNrYWdlX25hbWV9IGZpbGUgY291bnQgYWZ0ZXIg c3VibW9kdWxlIGV4Y2x1c2lvbjoge2xlbihzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQp fSIpDQo+ICsNCj4gKyAgICAgICAgIyBTb3J0IHRoZSBmaWxlcyBmb3IgbW9yZSBjb25zaXN0ZW50 IHJlc3VsdHMNCj4gKyAgICAgICAgc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0LnNvcnQo KQ0KPiArDQo+ICsgICAgZGVmIF9pbml0aWFsaXplX3Rlc3RfY2FzZV9vdXRwdXRfb3B0aW9ucyhz ZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgSW5pdGlhbGl6ZXMgb3B0 aW9ucyB0aGF0IGluZmx1ZW5jZSB0ZXN0IGNhc2Ugb3V0cHV0Lg0KPiArICAgICAgICAiIiINCj4g KyAgICAgICAgc2VsZi5fYXVkaXRfb25seV9tb2RlID0gRmFsc2UNCj4gKyAgICAgICAgc2VsZi5f b3V0cHV0X2ZpbGVfZGlmZnMgPSBGYWxzZQ0KPiArDQo+ICsgICAgICAgIGlmICJBdWRpdE9ubHki IGluIHNlbGYuX3BhY2thZ2VfY29uZmlnIGFuZCBzZWxmLl9wYWNrYWdlX2NvbmZpZ1siQXVkaXRP bmx5Il06DQo+ICsgICAgICAgICAgICBzZWxmLl9hdWRpdF9vbmx5X21vZGUgPSBUcnVlDQo+ICsN Cj4gKyAgICAgICAgaWYgIk91dHB1dEZpbGVEaWZmcyIgaW4gc2VsZi5fcGFja2FnZV9jb25maWcg YW5kIHNlbGYuX3BhY2thZ2VfY29uZmlnWyJPdXRwdXRGaWxlRGlmZnMiXToNCj4gKyAgICAgICAg ICAgIHNlbGYuX291dHB1dF9maWxlX2RpZmZzID0gVHJ1ZQ0KPiArDQo+ICsgICAgZGVmIF9sb2df dW5jcnVzdGlmeV9hcHBfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgTG9ncyBVbmNydXN0aWZ5IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uLg0KPiArICAgICAg ICAiIiINCj4gKyAgICAgICAgc2VsZi5fdGMuTG9nU3RkT3V0KGYiRm91bmQgVW5jcnVzdGlmeSBh dCB7c2VsZi5fYXBwX3BhdGh9IikNCj4gKyAgICAgICAgc2VsZi5fdGMuTG9nU3RkT3V0KGYiVW5j cnVzdGlmeSB2ZXJzaW9uOiB7c2VsZi5fYXBwX3ZlcnNpb259IikNCj4gKyAgICAgICAgc2VsZi5f dGMuTG9nU3RkT3V0KCdcbicpDQo+ICsgICAgICAgIGxvZ2dpbmcuaW5mbyhmIkZvdW5kIFVuY3J1 c3RpZnkgYXQge3NlbGYuX2FwcF9wYXRofSIpDQo+ICsgICAgICAgIGxvZ2dpbmcuaW5mbyhmIlVu Y3J1c3RpZnkgdmVyc2lvbjoge3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ICsgICAgICAgIGxvZ2dp bmcuaW5mbygnXG4nKQ0KPiArDQo+ICsgICAgZGVmIF9wcm9jZXNzX3VuY3J1c3RpZnlfcmVzdWx0 cyhzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgUHJvY2VzcyB0aGUg cmVzdWx0cyBmcm9tIFVuY3J1c3RpZnkuDQo+ICsNCj4gKyAgICAgICAgRGV0ZXJtaW5lcyB3aGV0 aGVyIGZvcm1hdHRpbmcgZXJyb3JzIGFyZSBwcmVzZW50IGFuZCBsb2dzIGZhaWx1cmVzLg0KPiAr ICAgICAgICAiIiINCj4gKyAgICAgICAgZm9ybWF0dGVkX2ZpbGVzID0gW3N0cihwYXRoLnJlc29s dmUoKSkgZm9yIHBhdGggaW4gcGF0aGxpYi5QYXRoKA0KPiArICAgICAgICAgICAgc2VsZi5fYWJz X3BhY2thZ2VfcGF0aCkucmdsb2IoZicqe1VuY3J1c3RpZnlDaGVjay5GT1JNQVRURURfRklMRV9F WFRFTlNJT059JyldDQo+ICsNCj4gKyAgICAgICAgc2VsZi5fZm9ybWF0dGVkX2ZpbGVfZXJyb3Jf Y291bnQgPSBsZW4oZm9ybWF0dGVkX2ZpbGVzKQ0KPiArDQo+ICsgICAgICAgIGlmIHNlbGYuX2Zv cm1hdHRlZF9maWxlX2Vycm9yX2NvdW50ID4gMDoNCj4gKyAgICAgICAgICAgIHNlbGYuX3RjLkxv Z1N0ZEVycm9yKCJGaWxlcyB3aXRoIGZvcm1hdHRpbmcgZXJyb3JzOlxuIikNCj4gKw0KPiArICAg ICAgICAgICAgaWYgc2VsZi5fb3V0cHV0X2ZpbGVfZGlmZnM6DQo+ICsgICAgICAgICAgICAgICAg bG9nZ2luZy5pbmZvKCJDYWxjdWxhdGluZyBmaWxlIGRpZmZzLiBUaGlzIG1pZ2h0IHRha2UgYSB3 aGlsZS4uLiIpDQo+ICsNCj4gKyAgICAgICAgZm9yIGZvcm1hdHRlZF9maWxlIGluIGZvcm1hdHRl ZF9maWxlczoNCj4gKyAgICAgICAgICAgIHByZV9mb3JtYXR0ZWRfZmlsZSA9IGZvcm1hdHRlZF9m aWxlWzotDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4oVW5jcnVzdGlmeUNoZWNrLkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTildDQo+ICsNCj4g KyAgICAgICAgICAgIGlmIChzZWxmLl9vdXRwdXRfZmlsZV9kaWZmcyBvcg0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLl9maWxlX3RlbXBsYXRlX2NvbnRlbnRzIGlzIG5vdCBOb25lIG9yDQo+ ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Z1bmNfdGVtcGxhdGVfY29udGVudHMgaXMgbm90 IE5vbmUpOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKA0KPiArICAg ICAgICAgICAgICAgICAgICBmIkZvcm1hdHRpbmcgZXJyb3JzIGluIHtvcy5wYXRoLnJlbHBhdGgo cHJlX2Zvcm1hdHRlZF9maWxlLCBzZWxmLl9hYnNfcGFja2FnZV9wYXRoKX1cbiIpDQo+ICsNCj4g KyAgICAgICAgICAgICAgICB3aXRoIG9wZW4oZm9ybWF0dGVkX2ZpbGUpIGFzIGZmOg0KPiArICAg ICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfZmlsZV90ZXh0ID0gZmYucmVhZCgpDQo+ICsNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX2ZpbGVfdGVtcGxhdGVfY29udGVudHMgaXMg bm90IE5vbmUgYW5kDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZV90 ZW1wbGF0ZV9jb250ZW50cyBpbiBmb3JtYXR0ZWRfZmlsZV90ZXh0KToNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKGYiRmlsZSBoZWFkZXIgaXMgbWlzc2lu ZyBpbiB7b3MucGF0aC5yZWxwYXRoKHByZV9mb3JtYXR0ZWRfZmlsZSwNCj4gc2VsZi5fYWJzX3Bh Y2thZ2VfcGF0aCl9XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9m dW5jX3RlbXBsYXRlX2NvbnRlbnRzIGlzIG5vdCBOb25lIGFuZA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX2Z1bmNfdGVtcGxhdGVfY29udGVudHMgaW4gZm9ybWF0dGVkX2Zp bGVfdGV4dCk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJv cihmIkEgZnVuY3Rpb24gaGVhZGVyIGlzIG1pc3NpbmcgaW4ge29zLnBhdGgucmVscGF0aChwcmVf Zm9ybWF0dGVkX2ZpbGUsDQo+IHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpfVxuIikNCj4gKw0KPiAr ICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vdXRwdXRfZmlsZV9kaWZmczoNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIHdpdGggb3BlbihwcmVfZm9ybWF0dGVkX2ZpbGUpIGFzIHBmOg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9mb3JtYXR0ZWRfZmlsZV90ZXh0ID0g cGYucmVhZCgpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGRp ZmZsaWIudW5pZmllZF9kaWZmKHByZV9mb3JtYXR0ZWRfZmlsZV90ZXh0LnNwbGl0KCdcbicpLA0K PiBmb3JtYXR0ZWRfZmlsZV90ZXh0LnNwbGl0KCdcbicpLCBmcm9tZmlsZT1wcmVfZm9ybWF0dGVk X2ZpbGUsIHRvZmlsZT1mb3JtYXR0ZWRfZmlsZSwgbj0zKToNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcihsaW5lKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcignXG4nKQ0KPiArICAgICAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcihwcmVfZm9ybWF0 dGVkX2ZpbGUpDQo+ICsNCj4gKyAgICBkZWYgX3JlbW92ZV90cmVlKHNlbGYsIGRpcl9wYXRoOiBz dHIsIGlnbm9yZV9lcnJvcnM6IGJvb2wgPSBGYWxzZSkgLT4gTm9uZToNCj4gKyAgICAgICAgIiIi DQo+ICsgICAgICAgIEhlbHBlciBmb3IgcmVtb3ZpbmcgYSBkaXJlY3RvcnkuIE92ZXIgdGltZSB0 aGVyZSBoYXZlIGJlZW4NCj4gKyAgICAgICAgbWFueSBwcml2YXRlIGltcGxlbWVudGF0aW9ucyBv ZiB0aGlzIGR1ZSB0byByZWxpYWJpbGl0eSBpc3N1ZXMgaW4gdGhlDQo+ICsgICAgICAgIHNodXRp bCBpbXBsZW1lbnRhdGlvbnMuIFRvIGNvbnNvbGlkYXRlIG9uIGEgc2luZ2xlIGZ1bmN0aW9uIHRo aXMgaGVscGVyIGlzIGFkZGVkLg0KPiArDQo+ICsgICAgICAgIE9uIGVycm9yIHRyeSB0byBjaGFu Z2UgZmlsZSBhdHRyaWJ1dGVzLiBBbHNvIGFkZCByZXRyeSBsb2dpYy4NCj4gKw0KPiArICAgICAg ICBUaGlzIGZ1bmN0aW9uIGlzIHRlbXBvcmFyaWx5IGJvcnJvd2VkIGZyb20gZWRrMnRvb2xsaWIu dXRpbGl0eV9mdW5jdGlvbnMNCj4gKyAgICAgICAgc2luY2UgdGhlIHZlcnNpb24gdXNlZCBpbiBl ZGsyIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIGluY2x1ZGUgdGhlDQo+ICsgICAgICAgIGZ1bmN0 aW9uLg0KPiArDQo+ICsgICAgICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlcGxhY2VkIGJ5 ICJSZW1vdmVUcmVlIiB3aGVuIGl0IGlzIGF2YWlsYWJsZS4NCj4gKw0KPiArICAgICAgICBBcmdz Og0KPiArICAgICAgICAgIC0gZGlyX3BhdGg6IFBhdGggdG8gZGlyZWN0b3J5IHRvIHJlbW92ZS4N Cj4gKyAgICAgICAgICAtIGlnbm9yZV9lcnJvcnM6IFdoZXRoZXIgdG8gaWdub3JlIGVycm9ycyBk dXJpbmcgcmVtb3ZhbA0KPiArICAgICAgICAiIiINCj4gKw0KPiArICAgICAgICBkZWYgX3JlbW92 ZV9yZWFkb25seShmdW5jLCBwYXRoLCBfKToNCj4gKyAgICAgICAgICAgICIiIg0KPiArICAgICAg ICAgICAgUHJpdmF0ZSBmdW5jdGlvbiB0byBhdHRlbXB0IHRvIGNoYW5nZSBwZXJtaXNzaW9ucyBv biBmaWxlL2ZvbGRlciBiZWluZyBkZWxldGVkLg0KPiArICAgICAgICAgICAgIiIiDQo+ICsgICAg ICAgICAgICBvcy5jaG1vZChwYXRoLCBvcy5zdGF0LlNfSVdSSVRFKQ0KPiArICAgICAgICAgICAg ZnVuYyhwYXRoKQ0KPiArDQo+ICsgICAgICAgIGZvciBfIGluIHJhbmdlKDMpOiAgIyByZXRyeSB1 cCB0byAzIHRpbWVzDQo+ICsgICAgICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICAgICAgc2h1 dGlsLnJtdHJlZShkaXJfcGF0aCwgaWdub3JlX2Vycm9ycz1pZ25vcmVfZXJyb3JzLCBvbmVycm9y PV9yZW1vdmVfcmVhZG9ubHkpDQo+ICsgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6 DQo+ICsgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKGYiRmFpbGVkIHRvIGZ1bGx5IHJl bW92ZSB7ZGlyX3BhdGh9OiB7ZXJyfSIpDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAg ICAgICAgICAgIGJyZWFrDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICByYWlzZSBS dW50aW1lRXJyb3IoZiJGYWlsZWQgdG8gcmVtb3ZlIHtkaXJfcGF0aH0iKQ0KPiArDQo+ICsgICAg ZGVmIF9ydW5fdW5jcnVzdGlmeShzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgUnVucyBVbmNydXN0aWZ5IGZvciB0aGlzIGluc3RhbmNlIG9mIHBsdWdpbiBleGVjdXRp b24uDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBsb2dnaW5nLmluZm8oIkV4ZWN1dGluZyBV bmNydXN0aWZ5LiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZS4uLiIpDQo+ICsgICAgICAgIHN0YXJ0 X3RpbWUgPSB0aW1laXQuZGVmYXVsdF90aW1lcigpDQo+ICsgICAgICAgIHNlbGYuX2V4ZWN1dGVf dW5jcnVzdGlmeSgpDQo+ICsgICAgICAgIGVuZF90aW1lID0gdGltZWl0LmRlZmF1bHRfdGltZXIo KSAtIHN0YXJ0X3RpbWUNCj4gKw0KPiArICAgICAgICBleGVjdXRpb25fc3VtbWFyeSA9IGYiVW5j cnVzdGlmeSBleGVjdXRlZCBhZ2FpbnN0IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9y bWF0KX0gZmlsZXMgaW4NCj4ge3NlbGYuX3BhY2thZ2VfbmFtZX0gaW4ge2VuZF90aW1lOi4yZn0g c2Vjb25kcy5cbiINCj4gKw0KPiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoZXhlY3V0aW9u X3N1bW1hcnkpDQo+ICsgICAgICAgIGxvZ2dpbmcuaW5mbyhleGVjdXRpb25fc3VtbWFyeSkNCj4g Kw0KPiArICAgICAgICBpZiBzZWxmLl9hcHBfZXhpdF9jb2RlICE9IDAgYW5kIHNlbGYuX2FwcF9l eGl0X2NvZGUgIT0gMToNCj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlBcHBFeGVjdXRp b25FeGNlcHRpb24oDQo+ICsgICAgICAgICAgICAgICAgZiJFcnJvciB7c3RyKHNlbGYuX2FwcF9l eGl0X2NvZGUpfSByZXR1cm5lZCBmcm9tIFVuY3J1c3RpZnk6XG5cbntzdHIoc2VsZi5fYXBwX291 dHB1dCl9IikNCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9k ZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dA0KPiBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVj ay9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwMDAuLjI5NTVhNzM0ZGZlMQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiLy5w eXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dA0KPiBA QCAtMCwwICsxLDkgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBCcmllZiBkZXNjcmlwdGlvbiBvZiB0 aGUgZmlsZSdzIHB1cnBvc2UuDQo+ICsNCj4gKyAgRGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhl IGZpbGUncyBjb250ZW50cyBhbmQgb3RoZXIgdXNlZnVsDQo+ICsgIGluZm9ybWF0aW9uIGZvciBh IHBlcnNvbiB2aWV3aW5nIHRoZSBmaWxlIGZvciB0aGUgZmlyc3QgdGltZS4NCj4gKw0KPiArICA8 PENvcHlyaWdodD4+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+ICsqKi8NCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlD aGVjay9kZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQNCj4gYi8ucHl0b29sL1BsdWdpbi9VbmNy dXN0aWZ5Q2hlY2svZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNjZlZGM3MmU2NzMxDQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL2RlZmF1bHRfZnVuY3Rp b25faGVhZGVyLnR4dA0KPiBAQCAtMCwwICsxLDE1IEBADQo+ICsvKioNCj4gKyAgQnJpZWYgZGVz Y3JpcHRpb24gb2YgdGhpcyBmdW5jdGlvbidzIHB1cnBvc2UuDQo+ICsNCj4gKyAgRm9sbG93IGl0 IGltbWVkaWF0ZWx5IHdpdGggdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uLg0KPiArDQo+ICsgIEBw YXJhbVtpbl0gICAgICBBcmcxICBEZXNjcmlwdGlvbiBvZiBBcmcxLg0KPiArICBAcGFyYW1baW5d ICAgICAgQXJnMiAgRGVzY3JpcHRpb24gb2YgQXJnMiBUaGlzIGlzIGNvbXBsaWNhdGVkIGFuZCBy ZXF1aXJlcw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgbGluZXMgdG8gZGVz Y3JpYmUuDQo+ICsgIEBwYXJhbVtvdXRdICAgICBBcmczICBEZXNjcmlwdGlvbiBvZiBBcmczLg0K PiArICBAcGFyYW1baW4sIG91dF0gQXJnNCAgRGVzY3JpcHRpb24gb2YgQXJnNC4NCj4gKw0KPiAr ICBAcmV0dmFsIFZBTF9PTkUgIERlc2NyaXB0aW9uIG9mIHdoYXQgVkFMX09ORSBzaWduaWZpZXMu DQo+ICsgIEByZXR2YWwgT1RIRVIgICAgVGhpcyBpcyB0aGUgb25seSBvdGhlciByZXR1cm4gdmFs dWUuIElmIHRoZXJlIHdlcmUgb3RoZXINCj4gKyAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFs dWVzLCB0aGV5IHdvdWxkIGJlIGxpc3RlZC4NCj4gKyoqLw0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9v bC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnkuY2ZnIGIvLnB5dG9vbC9QbHVnaW4v VW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnkuY2ZnDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAwMDAwMC4uNjI2MWViODUzNjkwDQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnkuY2ZnDQo+IEBAIC0w LDAgKzEsNDYyIEBADQo+ICsjIyBAZmlsZQ0KPiArIyBVbmNydXN0aWZ5IENvbmZpZ3VyYXRpb24g RmlsZSBmb3IgRURLIElJIEMgQ29kZQ0KPiArIw0KPiArIyBDb2RpbmcgU3RhbmRhcmQ6IGh0dHBz Oi8vZWRrMi1kb2NzLmdpdGJvb2suaW8vZWRrLWlpLWMtY29kaW5nLXN0YW5kYXJkcy1zcGVjaWZp Y2F0aW9uLw0KPiArIw0KPiArIyBUaGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBtZWFudCB0byBi ZSBhICJiZXN0IGF0dGVtcHQiIHRvIGFsaWduIHdpdGggdGhlDQo+ICsjIGRlZmluaXRpb25zIGlu IHRoZSBFREsgSUkgQyBDb2RpbmcgU3RhbmRhcmRzIFNwZWNpZmljYXRpb24uDQo+ICsjDQo+ICsj IENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiArIyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gKw0KPiArIyBGb3JjZSBV VEYtOCBlbmNvZGluZyAobm8gVVRGLTE2KQ0KPiArZW5hYmxlX2RpZ3JhcGhzICAgICAgICAgICAg ICAgICA9IGZhbHNlDQo+ICt1dGY4X2J5dGUgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UN Cj4gK3V0ZjhfZm9yY2UgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICsNCj4gKyMgQ29k ZSB3aWR0aCAvIGxpbmUgc3BsaXR0aW5nDQo+ICsjY29kZV93aWR0aCAgICAgICAgICAgICAgICAg ICAgICA9MTIwICAgICAjIFRPRE86IFRoaXMgY2F1c2VzIG5vbi1kZXRlcm1pbmlzdGljIGJlaGF2 aW91ciBpbiBzb21lIGNhc2VzIHdoZW4gY29kZSB3cmFwcw0KPiArbHNfY29kZV93aWR0aCAgICAg ICAgICAgICAgICAgICA9ZmFsc2UNCj4gK2xzX2Zvcl9zcGxpdF9mdWxsICAgICAgICAgICAgICAg PXRydWUNCj4gK2xzX2Z1bmNfc3BsaXRfZnVsbCAgICAgICAgICAgICAgPXRydWUNCj4gK3Bvc19j b21tYSAgICAgICAgICAgICAgICAgICAgICAgPXRyYWlsDQo+ICsNCj4gKyMgNS4xLjcgIEFsbCBm aWxlcyBtdXN0IGVuZCB3aXRoIENSTEYNCj4gK25ld2xpbmVzICAgICAgICAgICAgICAgICAgICAg ICAgPSBjcmxmDQo+ICsNCj4gKyMgNS4xLjIgRG8gbm90IHVzZSB0YWIgY2hhcmFjdGVycw0KPiAr DQo+ICtjbXRfY29udmVydF90YWJfdG9fc3BhY2VzICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhl ciB0byBjb252ZXJ0IGFsbCB0YWJzIHRvIHNwYWNlcyBpbiBjb21tZW50cy4gSWYgZmFsc2UsIHRh YnMgaW4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBj b21tZW50cyBhcmUgbGVmdCBhbG9uZSwgdW5sZXNzIHVzZWQgZm9yIGluZGVudGluZy4NCj4gK2lu ZGVudF9jb2x1bW5zICAgICAgICAgICAgICAgICAgPSAyICAgICAgICAgIyBOdW1iZXIgb2Ygc3Bh Y2VzIGZvciBpbmRlbnRhdGlvbg0KPiAraW5kZW50X3dpdGhfdGFicyAgICAgICAgICAgICAgICA9 IDAgICAgICAgICAjIERvIG5vdCB1c2UgVEFCIGNoYXJhY3RlcnMNCj4gK3N0cmluZ19yZXBsYWNl X3RhYl9jaGFycyAgICAgICAgPSB0cnVlICAgICAgIyBSZXBsYWNlIFRBQiB3aXRoIFNQQUNFDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTm90ZTogVGhp cyB3aWxsIGJyZWFrIC5yb2JvdCBmaWxlcyBidXQgaXMgbmVlZGVkIGZvciBlZGsyIHN0eWxlDQo+ ICsNCj4gKyMgNS4yLjEuMSBUaGVyZSBzaGFsbCBiZSBvbmx5IG9uZSBzdGF0ZW1lbnQgb24gYSBs aW5lIChzdGF0ZW1lbnQgZW5kcyB3aXRoIDspDQo+ICtubF9tdWx0aV9saW5lX2NvbmQgICAgICAg ICAgICAgID0gdHJ1ZSAgICAgICMgQWRkIGEgbmV3bGluZSBiZXR3ZWVuICcpJyBhbmQgJ3snIGlm IHRoZSAnKScgaXMgb24gYSBkaWZmZXJlbnQgbGluZSB0aGFuDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIGlmL2Zvci9ldGMuDQo+ICtubF9hZnRl cl9zZW1pY29sb24gICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhZGQgYSBu ZXdsaW5lIGFmdGVyIHNlbWljb2xvbnMsIGV4Y2VwdCBpbiAnZm9yJyBzdGF0ZW1lbnRzLg0KPiAr DQo+ICsjIDUuMi4xLjMgQW4gb3BlbiBicmFjZSAneycgZ29lcyBvbiB0aGUgc2FtZSBsaW5lIGFz IHRoZSBjbG9zaW5nIHBhcmVudGhlc2lzICcpJyBvZiBzaW1wbGUgcHJlZGljYXRlIGV4cHJlc3Np b25zDQo+ICttb2RfZnVsbF9icmFjZV9kbyAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRk IG9yIHJlbW92ZSBicmFjZXMgb24gYSBzaW5nbGUtbGluZSAnZG8nIHN0YXRlbWVudC4NCj4gK21v ZF9mdWxsX2JyYWNlX2ZvciAgICAgICAgICAgICAgPSBhZGQNCj4gK21vZF9mdWxsX2JyYWNlX2Z1 bmN0aW9uICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNp bmdsZS1saW5lIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ICttb2RfZnVsbF9icmFjZV9pZiAgICAg ICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBicmFjZXMgb24gYSBzaW5nbGUt bGluZSAnaWYnIHN0YXRlbWVudC4gQnJhY2VzIHdpbGwgbm90IGJlDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBpZiB0aGUgYnJhY2VkIHN0 YXRlbWVudCBjb250YWlucyBhbiAnZWxzZScuDQo+ICttb2RfZnVsbF9icmFjZV9pZl9jaGFpbiAg ICAgICAgID0gZmFsc2UNCj4gK21vZF9mdWxsX2JyYWNlX3doaWxlICAgICAgICAgICAgPSBhZGQN Cj4gKw0KPiArIyA1LjIuMS40IEEgY2xvc2UgYnJhY2UgJ30nIGFsd2F5cyBnb2VzIGF0IHRoZSBi ZWdpbm5pbmcgb2YgdGhlIGxhc3QgbGluZSBvZiB0aGUgYm9keQ0KPiArZWF0X2JsYW5rc19hZnRl cl9vcGVuX2JyYWNlICAgICA9IHRydWUNCj4gK2VhdF9ibGFua3NfYmVmb3JlX2Nsb3NlX2JyYWNl ICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIHJlbW92ZSBibGFuayBsaW5lcyBiZWZvcmUgJ30n Lg0KPiArDQo+ICsjIDUuMi4yLjIgQWx3YXlzIHB1dCBzcGFjZSBiZWZvcmUgYW5kIGFmdGVyIGJp bmFyeSBvcGVyYXRvcnMuDQo+ICtzcF9hc3NpZ24gICAgICAgICAgICAgICAgICAgICAgID0gYWRk ICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgYXNzaWdubWVudCBvcGVyYXRvciAn PScsICcrPScsIGV0Yy4NCj4gK3NwX2Fzc2lnbl9kZWZhdWx0ICAgICAgICAgICAgICAgPSBhZGQN Cj4gK3NwX2Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3Ig cmVtb3ZlIHNwYWNlIGFyb3VuZCBib29sZWFuIG9wZXJhdG9ycyAnJiYnIGFuZCAnfHwnLg0KPiAr c3BfY29tcGFyZSAgICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1v dmUgc3BhY2UgYXJvdW5kIGNvbXBhcmUgb3BlcmF0b3IgJzwnLCAnPicsICc9PScsIGV0Yy4NCj4g Kw0KPiArIyA1LjIuMi4zIERvIG5vdCBwdXQgc3BhY2UgYmV0d2VlbiB1bmFyeSBvcGVyYXRvcnMg YW5kIHRoZWlyIG9iamVjdA0KPiArc3BfYWRkciAgICAgICAgICAgICAgICAgICAgICAgICA9IHJl bW92ZSAgICAjIEEgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSAnJicgKGFkZHJlc3Mtb2YpIHVu YXJ5IG9wZXJhdG9yLg0KPiArc3BfaW5jZGVjICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92 ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKysnIGFuZCAnLS0nIHRoZSB3b3Jk IHRvIHdoaWNoIGl0IGlzIGJlaW5nDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgYXBwbGllZCwgYXMgaW4gJygtLXgpJyBvciAneSsrOycuDQo+ICtzcF9p bnYgICAgICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBz cGFjZSBhZnRlciB0aGUgJ34nIChpbnZlcnQpIHVuYXJ5IG9wZXJhdG9yLg0KPiArc3Bfbm90ICAg ICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2Ug YWZ0ZXIgdGhlICchJyAobm90KSB1bmFyeSBvcGVyYXRvci4NCj4gK3NwX3NpZ24gICAgICAgICAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcr JyBvciAnLScsIGFzIGluICd4ID0gLTUnIG9yICd5ID0gKzcnLg0KPiArDQo+ICsjIDUuMi4yLjQg U3Vic2VxdWVudCBsaW5lcyBvZiBtdWx0aS1saW5lIGZ1bmN0aW9uIGNhbGxzIHNob3VsZCBsaW5l IHVwIHR3byBzcGFjZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlvbg0KPiArIyAg ICAgICAgIG5hbWUNCj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmUgICAgPSB0cnVlICAg ICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgZWFjaCAnLCcgaW4gYSBmdW5jdGlv biBjYWxsIGlmICcoJyBhbmQgJyknDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgYXJlIGluIGRpZmZlcmVudCBsaW5lcy4NCj4gK25sX2Z1bmNfY2FsbF9h cmdzX211bHRpX2xpbmVfaWdub3JlX2Nsb3N1cmVzID0gZmFsc2UNCj4gKw0KPiArIyAtIEluZGVu dCBlYWNoIGFyZ3VtZW50IDIgc3BhY2VzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBu YW1lLiBJZiBhDQo+ICsjICAgZnVuY3Rpb24gaXMgY2FsbGVkIHRocm91Z2ggYSBzdHJ1Y3R1cmUg b3IgdW5pb24gbWVtYmVyLCBvZiB0eXBlDQo+ICsjICAgcG9pbnRlci10by1mdW5jdGlvbiwgdGhl biBpbmRlbnQgZWFjaCBhcmd1bWVudCAyIHNwYWNlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUNCj4g KyMgICBtZW1iZXIgbmFtZS4NCj4gK2luZGVudF9mdW5jX2NhbGxfZWRrMl9zdHlsZSAgICAgPSB0 cnVlICAgICAgIyBVc2UgRURLMiBpbmRlbnRhdGlvbiBzdHlsZSBmb3IgZnVuY3Rpb24gY2FsbHMg ICgqKkNVU1RPTSBTRVRUSU5HKiopDQo+ICtpbmRlbnRfcGFyZW5fYWZ0ZXJfZnVuY19jYWxsICAg ID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBpbmRlbnQgdGhlIG9wZW4gcGFyZW50aGVzaXMgb2Yg YSBmdW5jdGlvbiBjYWxsLCBpZiB0aGUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBwYXJlbnRoZXNpcyBpcyBvbiBpdHMgb3duIGxpbmUuDQo+ICsNCj4g KyMgLSBBbGlnbiB0aGUgY2xvc2UgcGFyZW50aGVzaXMgd2l0aCB0aGUgc3RhcnQgb2YgdGhlIGxh c3QgYXJndW1lbnQNCj4gK2luZGVudF9wYXJlbl9jbG9zZSAgICAgICAgICAgICAgPSAwICAgICAg ICAgIyBIb3cgdG8gaW5kZW50IGEgY2xvc2UgcGFyZW50aGVzaXMgYWZ0ZXIgYSBuZXdsaW5lLg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICgwOiBCb2R5 LCAxOiBPcGVucGFyZW50aGVzaXMsIDI6IEJyYWNlIGxldmVsKQ0KPiArDQo+ICsNCj4gKyMgNS4y LjIuNSBBbHdheXMgcHV0IHNwYWNlIGFmdGVyIGNvbW1hcyBvciBzZW1pY29sb25zIHRoYXQgc2Vw YXJhdGUgaXRlbXMNCj4gK3NwX2FmdGVyX2NvbW1hICAgICAgICAgICAgICAgICAgPSBmb3JjZSAg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcsJywgaS5lLiAnYSxiJyB2cy4gJ2EsIGIn Lg0KPiArc3BfYmVmb3JlX2NvbW1hICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYmVmb3JlICcsJy4NCj4gKw0KPiArIyA1LjIuMi42IEFsd2F5cyBwdXQg c3BhY2UgYmVmb3JlIGFuIG9wZW4gcGFyZW50aGVzaXMNCj4gK3NwX2FmdGVyX3NwYXJlbiAgICAg ICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcpJyBv ZiBjb250cm9sIHN0YXRlbWVudHMuDQo+ICtzcF9hdHRyaWJ1dGVfcGFyZW4gICAgICAgICAgICAg ID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdfX2F0dHJpYnV0ZV9f JyBhbmQgJygnLg0KPiArc3BfYmVmb3JlX3NwYXJlbiAgICAgICAgICAgICAgICA9IGZvcmNlICAg ICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlICcoJyBvZiBjb250cm9sIHN0YXRlbWVudHMN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoJ2lmJywg J2ZvcicsICdzd2l0Y2gnLCAnd2hpbGUnLCBldGMuKS4NCj4gK3NwX2RlZmluZWRfcGFyZW4gICAg ICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ2Rl ZmluZWQnIGFuZCAnKCcgaW4gJyNpZiBkZWZpbmVkIChGT08pJy4NCj4gK3NwX2Z1bmNfY2FsbF9w YXJlbiAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdl ZW4gZnVuY3Rpb24gbmFtZSBhbmQgJygnIG9uIGZ1bmN0aW9uIGNhbGxzLg0KPiArc3BfZnVuY19j YWxsX3BhcmVuX2VtcHR5ICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2Ug YmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCAnKCknIG9uIGZ1bmN0aW9uIGNhbGxzDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2l0aG91dCBwYXJhbWV0 ZXJzLiBJZiBzZXQgdG8gaWdub3JlICh0aGUgZGVmYXVsdCksIHNwX2Z1bmNfY2FsbF9wYXJlbiBp cw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHVzZWQu DQo+ICtzcF9mdW5jX2RlZl9wYXJlbiAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9y IHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGFsaWFzIG5hbWUgYW5kICcoJyBvZiBhIG5vbi1wb2ludGVy IGZ1bmN0aW9uDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgdHlwZSB0eXBlZGVmLg0KPiArc3BfZnVuY19wcm90b19wYXJlbiAgICAgICAgICAgICA9IGFk ZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCAn KCknIG9uIGZ1bmN0aW9uIGRlY2xhcmF0aW9uDQo+ICtzcF9zaXplb2ZfcGFyZW4gICAgICAgICAg ICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdzaXplb2Yn IGFuZCAnKCcuDQo+ICtzcF90eXBlX2Z1bmMgICAgICAgICAgICAgICAgICAgID0gYWRkICAgICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIHJldHVybiB0eXBlIGFuZCBmdW5jdGlvbiBu YW1lLiBBIG1pbmltdW0gb2YgMQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIGlzIGZvcmNlZCBleGNlcHQgZm9yIHBvaW50ZXIgcmV0dXJuIHR5cGVzLg0K PiArDQo+ICsjIE5vdCBzcGVjaWZpZWQsIGJ1dCBhbHNvIGdvb2Qgc3R5bGUgdG8gcmVtb3ZlIHNw YWNlcyBpbnNpZGUgcGFyZW50aGVzZXMgKE9wdGlvbmFsKQ0KPiArc3BfY3BhcmVuX29wYXJlbiAg ICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBi YWNrLXRvLWJhY2sgcGFyZW50aGVzZXMsIGkuZS4gJykoJyB2cy4gJykgKCcuDQo+ICtzcF9pbnNp ZGVfZnBhcmVuICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFj ZSBpbnNpZGUgZnVuY3Rpb24gJygnIGFuZCAnKScuDQo+ICtzcF9pbnNpZGVfZnBhcmVucyAgICAg ICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUgZW1wdHkg ZnVuY3Rpb24gJygpJy4NCj4gK3NwX2luc2lkZV9wYXJlbiAgICAgICAgICAgICAgICAgPSByZW1v dmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGluc2lkZSAnKCcgYW5kICcpJy4NCj4gK3NwX2lu c2lkZV9wYXJlbl9jYXN0ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNw YWNlcyBpbnNpZGUgY2FzdCBwYXJlbnRoZXNlcy4gJyhpbnQpeCcNCj4gK3NwX2luc2lkZV9zcXVh cmUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGluc2lk ZSBhIG5vbi1lbXB0eSAnWycgYW5kICddJy4NCj4gK3NwX3BhcmVuX3BhcmVuICAgICAgICAgICAg ICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gbmVzdGVkIHBh cmVudGhlc2VzLCBpLmUuICcoKCcgdnMuICcpICknLg0KPiArc3Bfc3F1YXJlX2ZwYXJlbiAgICAg ICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnXScg YW5kICcoJyB3aGVuIHBhcnQgb2YgYSBmdW5jdGlvbiBjYWxsLg0KPiArDQo+ICsjIDUuMi4yLjcg UHV0IGEgc3BhY2UgYmVmb3JlIGFuIG9wZW4gYnJhY2UgaWYgaXQgaXMgbm90IG9uIGl0cyBvd24g bGluZQ0KPiArc3BfZG9fYnJhY2Vfb3BlbiAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFk ZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnZG8nIGFuZCAneycuDQo+ICtzcF9wYXJlbl9icmFj ZSAgICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3 ZWVuICcpJyBhbmQgJ3snLg0KPiArc3Bfc3BhcmVuX2JyYWNlICAgICAgICAgICAgICAgICA9IGZv cmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKScgYW5kICd7JyBvZiBvZiBj b250cm9sIHN0YXRlbWVudHMuDQo+ICsNCj4gKyMgNS4yLjIuOCBEbyBub3QgcHV0IHNwYWNlcyBh cm91bmQgc3RydWN0dXJlIG1lbWJlciBhbmQgcG9pbnRlciBvcGVyYXRvcnMNCj4gK3NwX2FmdGVy X2J5cmVmICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGFmdGVyIHJlZmVyZW5jZSBzaWduICcmJywgaWYgZm9sbG93ZWQgYnkgYSB3b3JkLg0KPiArc3Bf YmVmb3JlX2J5cmVmICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUg c3BhY2UgYmVmb3JlIGEgcmVmZXJlbmNlIHNpZ24gJyYnLg0KPiArc3BfZGVyZWYgICAgICAgICAg ICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgdGhl ICcqJyAoZGVyZWZlcmVuY2UpIHVuYXJ5IG9wZXJhdG9yLiBUaGlzIGRvZXMNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBub3QgYWZmZWN0IHRoZSBzcGFj aW5nIGFmdGVyIGEgJyonIHRoYXQgaXMgcGFydCBvZiBhIHR5cGUuDQo+ICtzcF9tZW1iZXIgICAg ICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91 bmQgdGhlICcuJyBvciAnLT4nIG9wZXJhdG9ycy4NCj4gKw0KPiArIyA1LjIuMi45IERvIG5vdCBw dXQgc3BhY2VzIGJlZm9yZSBvcGVuIGJyYWNrZXRzIG9mIGFycmF5IHN1YnNjcmlwdHMNCj4gK3Nw X2JlZm9yZV9zcXVhcmUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3Zl IHNwYWNlIGJlZm9yZSAnWycgKGV4Y2VwdCAnW10nKS4NCj4gK3NwX2JlZm9yZV9zcXVhcmVzICAg ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnW10n Lg0KPiArc3BfYmVmb3JlX3ZhcmRlZl9zcXVhcmUgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYmVmb3JlICdbJyBmb3IgYSB2YXJpYWJsZSBkZWZpbml0aW9uLg0KPiAr DQo+ICsjIDUuMi4yLjEwIFVzZSBleHRyYSBwYXJlbnRoZXNlcyByYXRoZXIgdGhhbiBkZXBlbmRp bmcgb24gaW4tZGVwdGgga25vd2xlZGdlIG9mIHRoZSBvcmRlciBvZiBwcmVjZWRlbmNlIG9mIEMN Cj4gK21vZF9mdWxsX3BhcmVuX2lmX2Jvb2wgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVy IHRvIGZ1bGx5IHBhcmVudGhlc2l6ZSBCb29sZWFuIGV4cHJlc3Npb25zIGluICd3aGlsZScgYW5k ICdpZicNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBz dGF0ZW1lbnQsIGFzIGluICdpZiAoYSAmJiBiID4gYyknID0+ICdpZiAoYSAmJiAoYiA+IGMpKScu DQo+ICsNCj4gKyMgNS4yLjIuMTEgQWxpZ24gYSBjb250aW51YXRpb24gbGluZSB3aXRoIHRoZSBw YXJ0IG9mIHRoZSBsaW5lIHRoYXQgaXQgY29udGludWVzLg0KPiArdXNlX2luZGVudF9jb250aW51 ZV9vbmx5X29uY2UgICA9IHRydWUNCj4gKw0KPiArIyBBZGRpdGlvbmFsICd7fScgYnJhY2luZyBy dWxlcyAoT3B0aW9uYWwpDQo+ICsjIE5PVEUgLSBUaGUgc3R5bGUgZ3VpZGUgc3BlY2lmaWVzIHR3 byBkaWZmZXJlbnQgc3R5bGVzIGZvciBicmFjZXMsDQo+ICsjIHNvIHRoZXNlIGFyZSBpZ25vcmVk IGZvciBub3cgdG8gYWxsb3cgZGV2ZWxvcGVycyBzb21lIGZsZXhpYmlsaXR5Lg0KPiArbmxfYWZ0 ZXJfYnJhY2VfY2xvc2UgICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEg bmV3bGluZSBhZnRlciAnfScuIERvZXMgbm90IGFwcGx5IGlmIGZvbGxvd2VkIGJ5IGENCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWNlc3NhcnkgJzsn Lg0KPiArbmxfYnJhY2VfZWxzZSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICd9JyBhbmQgJ2Vsc2UnLg0KPiArbmxfYnJhY2Vfd2hp bGUgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBi ZXR3ZWVuICd9JyBhbmQgJ3doaWxlJyBvZiAnZG8nIHN0YXRlbWVudC4NCj4gK25sX2RvX2JyYWNl ICAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUg YmV0d2VlbiAnZG8nIGFuZCAneycuDQo+ICtubF9lbHNlX2JyYWNlICAgICAgICAgICAgICAgICAg ID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2Vsc2UnIGFuZCAn eycuDQo+ICtubF9lbHNlX2lmICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2Vsc2UnIGFuZCAnaWYnLg0KPiArbmxfZWxzZWlm X2JyYWNlICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGlu ZSBiZXR3ZWVuICdlbHNlIGlmJyBhbmQgJ3snLg0KPiArbmxfZW51bV9icmFjZSAgICAgICAgICAg ICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdlbnVt JyBhbmQgJ3snLg0KPiArbmxfZmNhbGxfYnJhY2UgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAg ICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuIGEgZnVuY3Rpb24gY2FsbCdzICcpJyBh bmQgJ3snLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IGFzIGluICdsaXN0X2Zvcl9lYWNoKGl0ZW0sICZsaXN0KSB7IH0nLg0KPiArbmxfZm9yX2JyYWNl ICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBi ZXR3ZWVuICdmb3InIGFuZCAneycuDQo+ICtubF9pZl9icmFjZSAgICAgICAgICAgICAgICAgICAg ID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2lmJyBhbmQgJ3sn Lg0KPiArbmxfc3RydWN0X2JyYWNlICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdzdHJ1Y3QgYW5kICd7Jy4NCj4gK25sX3N3aXRjaF9i cmFjZSAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUg YmV0d2VlbiAnc3dpdGNoJyBhbmQgJ3snLg0KPiArbmxfdW5pb25fYnJhY2UgICAgICAgICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICd1bmlvbicg YW5kICd7Jy4NCj4gK25sX3doaWxlX2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAg IyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnd2hpbGUnIGFuZCAneycuDQo+ICsNCj4g KyMgQWRkaXRpb25hbCB3aGl0ZXNwYWNlIHJ1bGVzIChPcHRpb25hbCkNCj4gK3NwX2FmdGVyX3B0 cl9zdGFyICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFm dGVyIHBvaW50ZXIgc3RhciAnKicsIGlmIGZvbGxvd2VkIGJ5IGEgd29yZC4NCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVc2VmdWwgd2hlbiBwYWlyZWQg d2l0aCBhbGlnbl92YXJfZGVmX3N0YXJfc3R5bGU9PTINCj4gK3NwX2FmdGVyX3B0cl9zdGFyX2Z1 bmMgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIGEgcG9p bnRlciBzdGFyICcqJywgaWYgZm9sbG93ZWQgYnkgYSBmdW5jdGlvbg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHByb3RvdHlwZSBvciBmdW5jdGlvbiBk ZWZpbml0aW9uLg0KPiArc3BfYWZ0ZXJfc2VtaSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAg ICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJzsnLCBleGNlcHQgd2hlbiBmb2xsb3dlZCBi eSBhIGNvbW1lbnQuDQo+ICtzcF9iZWZvcmVfY2FzZV9jb2xvbiAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgY2FzZSAnOicuDQo+ICtzcF9iZWZvcmVf cHRyX3N0YXIgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBi ZWZvcmUgcG9pbnRlciBzdGFyICcqJy4NCj4gK3NwX2JlZm9yZV9wdHJfc3Rhcl9mdW5jICAgICAg ICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSBhIHBvaW50ZXIgc3Rh ciAnKicsIGlmIGZvbGxvd2VkIGJ5IGEgZnVuY3Rpb24NCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBwcm90b3R5cGUgb3IgZnVuY3Rpb24gZGVmaW5pdGlv bi4NCj4gK3NwX2JlZm9yZV9zZW1pICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQg b3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnOycNCj4gK3NwX2JlZm9yZV9zZW1pX2ZvciAgICAgICAg ICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnOycgaW4gbm9u LWVtcHR5ICdmb3InIHN0YXRlbWVudHMuDQo+ICtzcF9iZWZvcmVfc2VtaV9mb3JfZW1wdHkgICAg ICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgYSBzZW1pY29sb24g b2YgYW4gZW1wdHkgcGFydCBvZiBhIGZvciBzdGF0ZW1lbnQNCj4gK3NwX2JldHdlZW5fcHRyX3N0 YXIgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4g cG9pbnRlciBzdGFycyAnKicuIChpZSwgJ1ZPSUQgKionKQ0KPiArc3BfYnJhY2VfY2xvc2Vfd2hp bGUgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAn fScgYW5kICd3aGlsZScuDQo+ICsNCj4gK3NwX2FmdGVyX2Nhc3QgICAgICAgICAgICAgICAgICAg PSByZW1vdmUNCj4gK3NwX2FmdGVyX3R5cGUgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK3Nw X2JhbGFuY2VfbmVzdGVkX3BhcmVucyAgICAgICAgPSBmYWxzZQ0KPiArc3BfYmVmb3JlX25sX2Nv bnQgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfYmVmb3JlX3NxdWFyZV9hc21fYmxvY2sgICAg ICA9IGlnbm9yZQ0KPiArc3BfYmVmb3JlX3VubmFtZWRfYnlyZWYgICAgICAgICA9IGFkZA0KPiAr c3BfYnJhY2VfYnJhY2UgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiArc3BfYnJhY2VfZWxz ZSAgICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9icmFjZV90eXBlZGVmICAgICAgICAg ICAgICAgID0gYWRkDQo+ICtzcF9jYXNlX2xhYmVsICAgICAgICAgICAgICAgICAgID0gZm9yY2UN Cj4gK3NwX2NtdF9jcHBfZG94eWdlbiAgICAgICAgICAgICAgPSB0cnVlDQo+ICtzcF9jb25kX2Nv bG9uICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtzcF9jb25kX3F1ZXN0aW9uICAgICAgICAg ICAgICAgID0gYWRkDQo+ICtzcF9jcHBfY2FzdF9wYXJlbiAgICAgICAgICAgICAgID0gZm9yY2UN Cj4gK3NwX2Vsc2VfYnJhY2UgICAgICAgICAgICAgICAgICAgPSBmb3JjZQ0KPiArc3BfZW5kaWZf Y210ICAgICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9lbnVtX2Fzc2lnbiAgICAgICAg ICAgICAgICAgID0gYWRkDQo+ICtzcF9pbnNpZGVfYnJhY2VzICAgICAgICAgICAgICAgID0gZm9y Y2UNCj4gK3NwX2luc2lkZV9icmFjZXNfZW1wdHkgICAgICAgICAgPSBmb3JjZQ0KPiArc3BfaW5z aWRlX2JyYWNlc19lbnVtICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9pbnNpZGVfYnJhY2VzX3N0 cnVjdCAgICAgICAgID0gZm9yY2UNCj4gK3NwX3BwX2NvbmNhdCAgICAgICAgICAgICAgICAgICAg PSBhZGQNCj4gK3NwX3BwX3N0cmluZ2lmeSAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK3NwX3Jl dHVybl9wYXJlbiAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK3NwX3NwZWNpYWxfc2VtaSAgICAg ICAgICAgICAgICAgPSBmb3JjZQ0KPiArc3Bfd2hpbGVfcGFyZW5fb3BlbiAgICAgICAgICAgICA9 IGZvcmNlDQo+ICsNCj4gKyMgQWRkaXRpb25hbCBJbmRlbnRhdGlvbiBSdWxlcw0KPiAraW5kZW50 X2FjY2Vzc19zcGVjICAgICAgICAgICAgICA9IDENCj4gK2luZGVudF9hY2Nlc3Nfc3BlY19ib2R5 ICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2FsaWduX2Fzc2lnbiAgICAgICAgICAgICA9IHRy dWUNCj4gK2luZGVudF9hbGlnbl9zdHJpbmcgICAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRlbnRf Ym9vbF9wYXJlbiAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X2JyYWNlX3BhcmVudCAg ICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfYnJhY2VzICAgICAgICAgICAgICAgICAgID0g ZmFsc2UNCj4gK2luZGVudF9icmFjZXNfbm9fY2xhc3MgICAgICAgICAgPSBmYWxzZQ0KPiAraW5k ZW50X2JyYWNlc19ub19mdW5jICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF9icmFjZXNfbm9f c3RydWN0ICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2NsYXNzICAgICAgICAgICAgICAgICAg ICA9IGZhbHNlDQo+ICtpbmRlbnRfY2xhc3NfY29sb24gICAgICAgICAgICAgID0gZmFsc2UNCj4g K2luZGVudF9jbXRfd2l0aF90YWJzICAgICAgICAgICAgPSBmYWxzZSAgICAgICAgICMgV2hldGhl ciB0byBpbmRlbnQgY29tbWVudHMgdGhhdCBhcmUgbm90IGF0IGEgYnJhY2UgbGV2ZWwgd2l0aCB0 YWJzIG9uDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIGEgdGFic3RvcC4gUmVxdWlyZXMgaW5kZW50X3dpdGhfdGFicz0yLiBJZiBmYWxzZSwgd2ls bCB1c2Ugc3BhY2VzLg0KPiAraW5kZW50X2NvbDFfY29tbWVudCAgICAgICAgICAgICA9IHRydWUN Cj4gK2luZGVudF9jb2wxX211bHRpX3N0cmluZ19saXRlcmFsPSB0cnVlDQo+ICtpbmRlbnRfY29t bWFfcGFyZW4gICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X2Vsc2VfaWYgICAgICAgICAg ICAgICAgICA9IHRydWUNCj4gK2luZGVudF9leHRlcm4gICAgICAgICAgICAgICAgICAgPSBmYWxz ZQ0KPiAraW5kZW50X2ZpcnN0X2Jvb2xfZXhwciAgICAgICAgICA9IHRydWUNCj4gKw0KPiAraW5k ZW50X2Z1bmNfZGVmX3BhcmFtX3BhcmVuX3Bvc190aHJlc2hvbGQgPSAwDQo+ICtpbmRlbnRfZnVu Y19wYXJhbV9kb3VibGUgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfZnVuY19w cm90b19wYXJhbSAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF9pZ25vcmVfYXNt X2Jsb2NrICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X2xhYmVsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAxDQo+ICtpbmRlbnRfbWVtYmVyICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDINCj4gK2luZGVudF9uYW1lc3BhY2UgICAgICAgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9wYXJhbSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gMg0KPiAraW5kZW50X3BhcmVuX25sICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBm YWxzZQ0KPiAraW5kZW50X3BhcmVuX29wZW5fYnJhY2UgICAgICAgICAgICAgICAgICAgPSBmYWxz ZQ0KPiAraW5kZW50X3ByZXNlcnZlX3NxbCAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0K PiAraW5kZW50X3JlbGF0aXZlX3NpbmdsZV9saW5lX2NvbW1lbnRzICAgICAgPSBmYWxzZQ0KPiAr aW5kZW50X3NpbmdfbGluZV9jb21tZW50cyAgICAgICAgICAgICAgICAgPSAwDQo+ICtpbmRlbnRf c2luZ2xlX25ld2xpbmVzICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfc3F1 YXJlX25sICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfc3dpdGNo X2Nhc2UgICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gK2luZGVudF90ZW1wbGF0ZV9wYXJh bSAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X3Zhcl9kZWZfYmxrICAgICAg ICAgICAgICAgICAgICAgICAgPSAwDQo+ICtpbmRlbnRfdmFyX2RlZl9jb250ICAgICAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ICsNCj4gKyMgVGlkeS11cCBydWxlcyAoT3B0aW9uYWwpDQo+ ICttb2RfbW92ZV9jYXNlX2JyZWFrICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0 byBtb3ZlIGEgJ2JyZWFrJyB0aGF0IGFwcGVhcnMgYWZ0ZXIgYSBmdWxseSBicmFjZWQgJ2Nhc2Un DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYmVmb3Jl IHRoZSBjbG9zZSBicmFjZSwgYXMgaW4gJ2Nhc2UgWDogeyAuLi4gfSBicmVhazsnID0+DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ2Nhc2UgWDogeyAu Li4gYnJlYWs7IH0nLg0KPiArbW9kX3Bhd25fc2VtaWNvbG9uICAgICAgICAgICAgICA9IGZhbHNl DQo+ICttb2RfcmVtb3ZlX2VtcHR5X3JldHVybiAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhl ciB0byByZW1vdmUgYSB2b2lkICdyZXR1cm47JyB0aGF0IGFwcGVhcnMgYXMgdGhlIGxhc3Qgc3Rh dGVtZW50DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg aW4gYSBmdW5jdGlvbi4NCj4gK21vZF9yZW1vdmVfZXh0cmFfc2VtaWNvbG9uICAgICAgPSB0cnVl DQo+ICttb2Rfc29ydF9pbXBvcnQgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK21vZF9zb3J0 X2luY2x1ZGUgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbW9kX3NvcnRfdXNpbmcgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9hZnRlcl9jYXNlICAgICAgICAgICAgICAgICAgID0g ZmFsc2UgICAgICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGFmdGVyIGEgJ2Nhc2UnIHN0YXRl bWVudC4NCj4gK25sX2VuZF9vZl9maWxlICAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBB ZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4NCj4gK25sX2VuZF9v Zl9maWxlX21pbiAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBUaGUgbWluaW11bSBudW1iZXIg b2YgbmV3bGluZXMgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZQ0KPiArbmxfbWF4ICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zZWN1 dGl2ZSBuZXdsaW5lcyAoMyA9IDIgYmxhbmsgbGluZXMpLg0KPiArbmxfc3RhcnRfb2ZfZmlsZSAg ICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZXMgYXQgdGhl IHN0YXJ0IG9mIHRoZSBmaWxlLg0KPiArDQo+ICsjIENvZGUgYWxpZ25tZW50IHJ1bGVzIChPcHRp b25hbCkNCj4gK2FsaWduX2FzbV9jb2xvbiAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxp Z25fYXNzaWduX3NwYW4gICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIGZvciBh bGlnbmluZyBvbiAnPScgaW4gYXNzaWdubWVudHMuDQo+ICthbGlnbl9hc3NpZ25fdGhyZXNoICAg ICAgICAgICAgID0gNA0KPiArYWxpZ25fZWRrMl9zdHlsZSAgICAgICAgICAgICAgICA9IHRydWUg ICAgICAjIFdoZXRoZXIgdG8gYXBwbHkgZWRrMi1zcGVjaWZpYyBhbGlnbm1lbnQgZm9ybWF0dGlu Zw0KPiArYWxpZ25fZW51bV9lcXVfc3BhbiAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBz cGFuIGZvciBhbGlnbmluZyBvbiAnPScgaW4gZW51bXMuDQo+ICthbGlnbl9mdW5jX3BhcmFtcyAg ICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhbGlnbiB2YXJpYWJsZSBkZWZp bml0aW9ucyBpbiBwcm90b3R5cGVzIGFuZCBmdW5jdGlvbnMuDQo+ICthbGlnbl9mdW5jX3BhcmFt c19nYXAgICAgICAgICAgID0gMg0KPiArYWxpZ25fZnVuY19wYXJhbXNfc3BhbiAgICAgICAgICA9 IDIgICAgICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMg aW4gZnVuY3Rpb24gb24gcGFyYW1ldGVyIG5hbWUuDQo+ICthbGlnbl9mdW5jX3BhcmFtc190aHJl c2ggICAgICAgID0gMA0KPiArYWxpZ25fZnVuY19wcm90b19zcGFuICAgICAgICAgICA9IDANCj4g K2FsaWduX2tlZXBfdGFicyAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxpZ25fbGVmdF9z aGlmdCAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICthbGlnbl9taXhfdmFyX3Byb3RvICAgICAg ICAgICAgID0gZmFsc2UNCj4gK2FsaWduX25sX2NvbnQgICAgICAgICAgICAgICAgICAgPSBmYWxz ZQ0KPiArYWxpZ25fb2NfZGVjbF9jb2xvbiAgICAgICAgICAgICA9IGZhbHNlDQo+ICthbGlnbl9v bl9vcGVyYXRvciAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2FsaWduX29uX3RhYnN0b3AgICAg ICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxpZ25fcHBfZGVmaW5lX2dhcCAgICAgICAgICAgICA9 IDINCj4gK2FsaWduX3BwX2RlZmluZV9zcGFuICAgICAgICAgICAgPSAxDQo+ICthbGlnbl9yaWdo dF9jbXRfYXRfY29sICAgICAgICAgID0gMCAgICAgICAgICMgQWxpZ24gdHJhaWxpbmcgY29tbWVu dCBhdCBvciBiZXlvbmQgY29sdW1uIE47ICdwdWxscyBpbicgY29tbWVudHMgYXMNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhIGJvbnVzIHNpZGUgZWZm ZWN0ICgwPWlnbm9yZSkNCj4gK2FsaWduX3JpZ2h0X2NtdF9nYXAgICAgICAgICAgICAgPSAwICAg ICAgICAgIyBJZiBhIHRyYWlsaW5nIGNvbW1lbnQgaXMgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9m IGNvbHVtbnMgYXdheSBmcm9tIHRoZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIHRleHQgaXQgZm9sbG93cywNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBpdCB3aWxsIHF1YWxpZnkgZm9yIGJlaW5nIGFsaWdu ZWQuIFRoaXMgaGFzIHRvIGJlID4gMCB0byBkbyBhbnl0aGluZy4NCj4gK2FsaWduX3JpZ2h0X2Nt dF9taXggICAgICAgICAgICAgPSBmYWxzZSAgICAgIyBJZiBhbGlnbmluZyBjb21tZW50cywgbWl4 IHdpdGggY29tbWVudHMgYWZ0ZXIgJ30nIGFuZCAjZW5kaWYgd2l0aCBsZXNzDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhhbiAzIHNwYWNlcyBiZWZv cmUgdGhlIGNvbW1lbnQNCj4gK2FsaWduX3JpZ2h0X2NtdF9zYW1lX2xldmVsICAgICAgPSB0cnVl ICAgICAgIyBXaGV0aGVyIHRvIG9ubHkgYWxpZ24gdHJhaWxpbmcgY29tbWVudHMgdGhhdCBhcmUg YXQgdGhlIHNhbWUgYnJhY2UgbGV2ZWwuDQo+ICthbGlnbl9yaWdodF9jbXRfc3BhbiAgICAgICAg ICAgID0gMiAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIGNvbW1lbnRzIHRoYXQgZW5k IGxpbmVzLg0KPiArYWxpZ25fc2FtZV9mdW5jX2NhbGxfcGFyYW1zICAgICA9IGZhbHNlDQo+ICth bGlnbl9zaW5nbGVfbGluZV9icmFjZSAgICAgICAgID0gdHJ1ZQ0KPiArYWxpZ25fc2luZ2xlX2xp bmVfZnVuYyAgICAgICAgICA9IHRydWUNCj4gK2FsaWduX3N0cnVjdF9pbml0X3NwYW4gICAgICAg ICAgPSAxICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgc3RydWN0IGluaXRpYWxpemVy IHZhbHVlcy4NCj4gK2FsaWduX3R5cGVkZWZfYW1wX3N0eWxlICAgICAgICAgPSAxDQo+ICthbGln bl90eXBlZGVmX2Z1bmMgICAgICAgICAgICAgID0gMSAgICAgICAgICMgSG93IHRvIGFsaWduIHR5 cGVkZWYnZCBmdW5jdGlvbnMgd2l0aCBvdGhlciB0eXBlZGVmcy4NCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoMDogTm8gYWxpZ24sIDE6IEFsaWduIG9w ZW4gcGFyYW50aGVzaXMsIDI6IEFsaWduIGZ1bmN0aW9uIHR5cGUgbmFtZSkNCj4gK2FsaWduX3R5 cGVkZWZfZ2FwICAgICAgICAgICAgICAgPSAyDQo+ICthbGlnbl90eXBlZGVmX3NwYW4gICAgICAg ICAgICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHNpbmdsZS1saW5lIHR5 cGVkZWZzLg0KPiArYWxpZ25fdHlwZWRlZl9zdGFyX3N0eWxlICAgICAgICA9IDENCj4gK2FsaWdu X3Zhcl9kZWZfYW1wX3N0eWxlICAgICAgICAgPSAxDQo+ICthbGlnbl92YXJfZGVmX2F0dHJpYnV0 ZSAgICAgICAgID0gdHJ1ZQ0KPiArYWxpZ25fdmFyX2RlZl9jb2xvbiAgICAgICAgICAgICA9IHRy dWUgICAgICAjIFdoZXRoZXIgdG8gYWxpZ24gdGhlIGNvbG9uIGluIHN0cnVjdCBiaXQgZmllbGRz Lg0KPiArYWxpZ25fdmFyX2RlZl9nYXAgICAgICAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBn YXAgKG1pbmltdW0gc3BhY2luZyBmb3IgYWxpZ25lZCBpdGVtcykgZm9yIHZhcmlhYmxlIGRlZmlu aXRpb25zLg0KPiArYWxpZ25fdmFyX2RlZl9pbmxpbmUgICAgICAgICAgICA9IGZhbHNlDQo+ICth bGlnbl92YXJfZGVmX3NwYW4gICAgICAgICAgICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gKGxp bmVzIG5lZWRlZCB0byBhbGlnbikgZm9yIGFsaWduaW5nIHZhcmlhYmxlIGRlZmluaXRpb25zLg0K PiArYWxpZ25fdmFyX2RlZl9zdGFyX3N0eWxlICAgICAgICA9IDEgICAgICAgICAjIEhvdyB0byBj b25zaWRlciAob3IgdHJlYXQpIHRoZSAnKicgaW4gdGhlIGFsaWdubWVudCBvZiB2YXJpYWJsZQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRlZmluaXRp b25zLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIDA6 IFBhcnQgb2YgdGhlIHR5cGUgICAgICd2b2lkICogICBmb287JyAoZGVmYXVsdCkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAxOiBQYXJ0IG9mIHRoZSB2 YXJpYWJsZSAndm9pZCAgICAgKmZvbzsnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgMjogRGFuZ2xpbmcgICAgICAgICAgICAgJ3ZvaWQgICAgKmZvbzsn DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKE5vdGUg LSBzaG91bGQgYWxzbyBzZXQgc3BfYWZ0ZXJfcHRyX3N0YXI9cmVtb3ZlKQ0KPiArYWxpZ25fdmFy X3N0cnVjdF9nYXAgICAgICAgICAgICA9IDQNCj4gK2FsaWduX3Zhcl9zdHJ1Y3Rfc3BhbiAgICAg ICAgICAgPSA4ICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgc3RydWN0L3VuaW9uIG1l bWJlciBkZWZpbml0aW9ucy4NCj4gK2FsaWduX3Zhcl9zdHJ1Y3RfdGhyZXNoICAgICAgICAgPSAw DQo+ICthbGlnbl93aXRoX3RhYnMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gKw0KPiArIyBD b21tZW50IGZvcm1hdHRpbmcNCj4gK2NtdF9hbGlnbl9kb3h5Z2VuX2phdmFkb2NfdGFncyAgPSB0 cnVlICAgICAgIyBXaGV0aGVyIHRvIGFsaWduIGRveHlnZW4gamF2YWRvYy1zdHlsZSB0YWdzICgn QHBhcmFtJywgJ0ByZXR1cm4nLCBldGMuKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIFRPRE86IEVhdHMgJ1snIGluICdbaW5dJw0KPiArY210X2NfZ3Jv dXAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtjbXRfY19ubF9lbmQgICAgICAgICAg ICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGJlZm9yZSB0 aGUgY2xvc2luZyAnKi8nIG9mIHRoZSBjb21iaW5lZCBjLWNvbW1lbnQuDQo+ICtjbXRfY19ubF9z dGFydCAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiArY210X2NwcF9ncm91cCAgICAgICAgICAg ICAgICAgICA9IGZhbHNlDQo+ICtjbXRfY3BwX25sX2VuZCAgICAgICAgICAgICAgICAgID0gdHJ1 ZQ0KPiArY210X2NwcF9ubF9zdGFydCAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2NtdF9jcHBf dG9fYyAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArY210X2luZGVudF9tdWx0aSAgICAg ICAgICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gYXBwbHkgY2hhbmdlcyB0byBtdWx0 aS1saW5lIGNvbW1lbnRzLCBpbmNsdWRpbmcgY210X3dpZHRoLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGtleXdvcmQgc3Vic3RpdHV0aW9uIGFuZCBs ZWFkaW5nIGNoYXJzLg0KPiArY210X2luc2VydF9iZWZvcmVfcHJlcHJvYyAgICAgICA9IGZhbHNl DQo+ICsjY210X2luc2VydF9maWxlX2hlYWRlciAgICAgICAgICA9IGRlZmF1bHRfZmlsZV9oZWFk ZXIudHh0DQo+ICsjY210X2luc2VydF9mdW5jX2hlYWRlciAgICAgICAgICA9IGRlZmF1bHRfZnVu Y3Rpb25faGVhZGVyLnR4dA0KPiArY210X211bHRpX2NoZWNrX2xhc3QgICAgICAgICAgICA9IGZh bHNlDQo+ICtjbXRfbXVsdGlfZmlyc3RfbGVuX21pbmltdW0gICAgID0gMg0KPiArY210X3JlZmxv d19tb2RlICAgICAgICAgICAgICAgICA9IDEgICAgICAgICAjIEhvdyB0byByZWZsb3cgY29tbWVu dHMuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKDA6 Tm8gcmVmbG93LCAxOk5vIHRvdWNoaW5nIGF0IGFsbCwgMjogRnVsbCByZWZsb3cpDQo+ICtjbXRf c3BfYWZ0ZXJfc3Rhcl9jb250ICAgICAgICAgID0gMCAgICAgICAgICMgVGhlIG51bWJlciBvZiBz cGFjZXMgdG8gaW5zZXJ0IGFmdGVyIHRoZSBzdGFyIG9uIHN1YnNlcXVlbnQgY29tbWVudCBsaW5l cy4NCj4gK2NtdF9zcF9iZWZvcmVfc3Rhcl9jb250ICAgICAgICAgPSAwICAgICAgICAgIyBUaGUg bnVtYmVyIG9mIHNwYWNlcyB0byBpbnNlcnQgYXQgdGhlIHN0YXJ0IG9mIHN1YnNlcXVlbnQgY29t bWVudCBsaW5lcy4NCj4gK2NtdF9zdGFyX2NvbnQgICAgICAgICAgICAgICAgICAgPSBmYWxzZSAg ICAgIyBXaGV0aGVyIHRvIHB1dCBhIHN0YXIgb24gc3Vic2VxdWVudCBjb21tZW50IGxpbmVzLg0K PiArY210X3dpZHRoICAgICAgICAgICAgICAgICAgICAgICA9IDEyMCAgICAgICAjIFRyeSB0byB3 cmFwIGNvbW1lbnRzIGF0IE4gY29sdW1ucy4NCj4gK3NwX2NtdF9jcHBfc3RhcnQgICAgICAgICAg ICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSBvcGVuaW5n IG9mIGEgQysrIGNvbW1lbnQsIGFzIGluDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgJy8vIDxoZXJlPiBBJy4gIE5PVEU6IEJyZWFrcyBpbmRlbnRhdGlv biB3aXRoaW4gY29tbWVudHMuDQo+ICsNCj4gKyMgRnVuY3Rpb24gZGVmaW5pdGlvbnMgLyBkZWNs YXJhdGlvbnMNCj4gK2luZGVudF9mdW5jX2NhbGxfcGFyYW0gICAgICAgICAgPSBmYWxzZSAgICAg IyBXaGV0aGVyIHRvIGluZGVudCBjb250aW51ZWQgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXJzIG9u ZSBpbmRlbnQgbGV2ZWwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgcmF0aGVyIHRoYW4gYWxpZ25pbmcgcGFyYW1ldGVycyB1bmRlciB0aGUgb3BlbiBw YXJlbnRoZXNpcy4NCj4gK2luZGVudF9mdW5jX2NsYXNzX3BhcmFtICAgICAgICAgPSBmYWxzZSAg ICAgIyBXaGV0aGVyIHRvIGluZGVudCBjb250aW51ZWQgZnVuY3Rpb24gY2FsbCBkZWNsYXJhdGlv biBvbmUgaW5kZW50IGxldmVsLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMgdW5kZXIgdGhlIG9w ZW4gcGFyZW50aGVzaXMuDQo+ICtpbmRlbnRfZnVuY19jdG9yX3Zhcl9wYXJhbSAgICAgID0gZmFs c2UgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGNsYXNzIHZhcmlhYmxlIGNvbnN0 cnVjdG9ycyBvbmUgaW5kZW50IGxldmVsLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMgdW5kZXIg dGhlIG9wZW4gcGFyZW50aGVzaXMuDQo+ICtpbmRlbnRfZnVuY19kZWZfcGFyYW0gICAgICAgICAg ID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGZ1bmN0aW9uIGRlZmlu aXRpb24gcGFyYW1ldGVycyBvbmUgaW5kZW50DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgbGV2ZWwsIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRl cnMgdW5kZXIgdGhlIG9wZW4gcGFyZW50aGVzaXMuDQo+ICtubF9mZGVmX2JyYWNlICAgICAgICAg ICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gZnVu Y3Rpb24gc2lnbmF0dXJlIGFuZCAneycuDQo+ICtubF9mdW5jX2NhbGxfZW5kX211bHRpX2xpbmUg ICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGJlZm9yZSAnKScgaW4g YSBmdW5jdGlvbiBjYWxsIGlmICcoJyBhbmQgJyknIGFyZQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGRpZmZlcmVudCBsaW5lcy4NCj4gK25sX2Z1 bmNfY2FsbF9wYXJlbiAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5l d2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBvcGVuaW5nICcoJyBpbiB0aGUN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjYWxsLg0K PiArbmxfZnVuY19jYWxsX3N0YXJ0X211bHRpX2xpbmUgICA9IHRydWUgICAgICAjIFdoZXRoZXIg dG8gYWRkIGEgbmV3bGluZSBhZnRlciAnKCcgaW4gYSBmdW5jdGlvbiBjYWxsIGlmICcoJyBhbmQg JyknIGFyZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IGluIGRpZmZlcmVudCBsaW5lcy4NCj4gK25sX2Z1bmNfZGVjbF9hcmdzICAgICAgICAgICAgICAg PSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYWZ0ZXIgZWFjaCAnLCcgaW4gYSBm dW5jdGlvbiBkZWNsYXJhdGlvbi4NCj4gK25sX2Z1bmNfZGVjbF9lbXB0eSAgICAgICAgICAgICAg PSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnKCknIGluIGEgZnVu Y3Rpb24gZGVjbGFyYXRpb24uDQo+ICtubF9mdW5jX2RlZl9hcmdzICAgICAgICAgICAgICAgID0g Zm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGFmdGVyIGVhY2ggJywnIGluIGEgZnVu Y3Rpb24gZGVmaW5pdGlvbi4NCj4gK25sX2Z1bmNfZGVmX2VtcHR5ICAgICAgICAgICAgICAgPSBh ZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnKCknIGluIGEgZnVuY3Rp b24gZGVmaW5pdGlvbi4NCj4gK25sX2Z1bmNfZGVmX3BhcmVuICAgICAgICAgICAgICAgPSByZW1v dmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5k IHRoZSBvcGVuaW5nICcoJw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIGluIHRoZSBkZWZpbml0aW9uLg0KPiArbmxfZnVuY19wYXJlbiAgICAgICAgICAg ICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuIGEgZnVu Y3Rpb24gbmFtZSBhbmQgdGhlIG9wZW5pbmcgJygnIGluDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIGRlY2xhcmF0aW9uLg0KPiArbmxfZnVuY190 eXBlX25hbWUgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGlu ZSBiZXR3ZWVuIHJldHVybiB0eXBlIGFuZCBmdW5jdGlvbiBuYW1lIGluIGEgZnVuY3Rpb24NCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWZpbml0aW9u Lg0KPiArc3BfZnBhcmVuX2JyYWNlICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKScgYW5kICd7JyBvZiBmdW5jdGlvbi4NCj4gK3VzZV9p bmRlbnRfZnVuY19jYWxsX3BhcmFtICAgICAgPSB0cnVlICAgICAgIyBpbmRlbnRfZnVuY19jYWxs X3BhcmFtIHdpbGwgYmUgdXNlZA0KPiArDQo+ICsjIEFkZGl0aW9uYWwgTmV3bGluZSBSdWxlcw0K PiArbmxfYWZ0ZXJfYnJhY2Vfb3BlbiAgICAgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlICAg ICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBhZnRlciAneycuIFRoaXMgYWxzbyBhZGRzIGEg bmV3bGluZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIGJlZm9yZSB0aGUgbWF0Y2hpbmcgJ30nLg0KPiArbmxfYWZ0ZXJfYnJhY2Vf b3Blbl9jbXQgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlICAgICAjIFdoZXRoZXIgdG8gYWRk IGEgbmV3bGluZSBiZXR3ZWVuIHRoZSBvcGVuIGJyYWNlIGFuZCBhDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdHJhaWxpbmcgc2lu Z2xlLWxpbmUgY29tbWVudC4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBSZXF1aXJlcyBubF9hZnRlcl9icmFjZV9vcGVuID0gdHJ1 ZS4NCj4gK25sX2FmdGVyX2RvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRk ICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJsYW5rIGxpbmUgYWZ0ZXIgJ2RvL3doaWxlJyBzdGF0ZW1l bnQuDQo+ICtubF9hZnRlcl9mb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFk ZCAgICAgICMgQWRkIG9yIHJlbW92ZSBibGFuayBsaW5lIGFmdGVyICdmb3InIHN0YXRlbWVudC4N Cj4gK25sX2FmdGVyX2Z1bmNfYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiAgICAg ICAgIyBUaGUgbnVtYmVyIG9mIG5ld2xpbmVzIGFmdGVyICd9JyBvZiBhIG11bHRpLWxpbmUgZnVu Y3Rpb24gYm9keQ0KPiArbmxfYWZ0ZXJfZnVuY19ib2R5X29uZV9saW5lciAgICAgICAgICAgICAg ICAgPSAyDQo+ICtubF9hZnRlcl9mdW5jX3Byb3RvICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDINCj4gK25sX2FmdGVyX2Z1bmNfcHJvdG9fZ3JvdXAgICAgICAgICAgICAgICAgICAgID0gMg0K PiArbmxfYWZ0ZXJfaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4g K25sX2FmdGVyX211bHRpbGluZV9jb21tZW50ICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4g K25sX2FmdGVyX3JldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4g K25sX2FmdGVyX3N0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMg0KPiArbmxf YWZ0ZXJfc3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK25sX2Fm dGVyX3ZicmFjZV9jbG9zZSAgICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiArbmxfYWZ0 ZXJfdmJyYWNlX29wZW4gICAgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtubF9hZnRl cl92YnJhY2Vfb3Blbl9lbXB0eSAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2FmdGVy X3doaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9hc3NpZ25f bGVhdmVfb25lX2xpbmVycyAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2JlZm9yZV9i bG9ja19jb21tZW50ICAgICAgICAgICAgICAgICAgICAgID0gMg0KPiArbmxfYmVmb3JlX2Nhc2Ug ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfYmVmb3JlX2RvICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gK25sX2JlZm9yZV9mb3Ig ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ICtubF9iZWZvcmVfaWYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiArbmxfYmVmb3JlX3N3 aXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gK25sX2JlZm9yZV93 aGlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ICtubF9iZWZvcmVf d2hvbGVfZmlsZV9pZmRlZiAgICAgICAgICAgICAgICAgICA9IDINCj4gK25sX2JyYWNlX2JyYWNl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gK25sX2JyYWNlX3N0cnVj dF92YXIgICAgICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlDQo+ICtubF9jYXNlX2NvbG9u X2JyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiArbmxfY2xhc3NfbGVhdmVf b25lX2xpbmVycyAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfY29sbGFwc2VfZW1w dHlfYm9keSAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfY29tbWVudF9mdW5j X2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxDQo+ICtubF9jcmVhdGVfZm9yX29uZV9s aW5lciAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9jcmVhdGVfaWZfb25lX2xp bmVyICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9jcmVhdGVfd2hpbGVfb25l X2xpbmVyICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9kZWZpbmVfbWFjcm8gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9kc19zdHJ1Y3RfZW51bV9j bG9zZV9icmFjZSAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2RzX3N0cnVjdF9lbnVtX2Nt dCAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2VudW1fbGVhdmVfb25lX2xp bmVycyAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2Z1bmNfZGVjbF9lbmQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9mdW5jX2RlY2xfc3RhcnQgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiArbmxfZnVuY19kZWZfZW5kICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK25sX2Z1bmNfZGVmX3N0YXJ0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9mdW5jX2xlYXZlX29uZV9saW5lcnMgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9mdW5jX3Byb3RvX3R5cGVfbmFtZSAgICAg ICAgICAgICAgICAgICAgICA9IGFkZA0KPiArbmxfZnVuY192YXJfZGVmX2JsayAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAxDQo+ICtubF9nZXRzZXRfbGVhdmVfb25lX2xpbmVycyAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9pZl9sZWF2ZV9vbmVfbGluZXJzICAgICAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9tdWx0aV9saW5lX2RlZmluZSAgICAgICAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9zcXVlZXplX2lmZGVmICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ICtubF92YXJfZGVmX2Jsa19lbmQgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IDANCj4gK25sX3Zhcl9kZWZfYmxrX3N0YXJ0ICAgICAgICAgICAgICAgICAg ICAgICAgID0gMA0KPiArDQo+ICsjIFByZXByb2Nlc3NvciBSdWxlcw0KPiArcHBfZGVmaW5lX2F0 X2xldmVsICAgICAgPSB0cnVlDQo+ICtwcF9pZl9pbmRlbnRfY29kZSAgICAgICA9IGZhbHNlDQo+ ICtwcF9pbmRlbnRfZnVuY19kZWYgICAgICA9IGZhbHNlDQo+ICtwcF9pbmRlbnRfZXh0ZXJuICAg ICAgICA9IGZhbHNlDQo+ICtwcF9pZ25vcmVfZGVmaW5lX2JvZHkgICA9IHRydWUgICAgICAgICAg ICAgICAgIyBXb3JrYXJvdW5kOiBUdXJuIG9mZiBwcm9jZXNzaW5nIGZvciAjZGVmaW5lIGJvZHkN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChjdXJy ZW50IHJ1bGVzIGRvIG5vdCB3b3JrIGZvciBzb21lIGRlZmluZXMpDQo+ICtwcF9pbmRlbnQgICAg ICAgICAgICAgICA9IGFkZA0KPiArcHBfaW5kZW50X2F0X2xldmVsICAgICAgPSB0cnVlDQo+ICtw cF9pbmRlbnRfY291bnQgICAgICAgICA9IDINCj4gK3BwX2luZGVudF9pZiAgICAgICAgICAgID0g Mg0KPiArcHBfaW5kZW50X3JlZ2lvbiAgICAgICAgPSAyDQo+ICtwcF9yZWdpb25faW5kZW50X2Nv ZGUgICA9IGZhbHNlDQo+ICtwcF9zcGFjZSAgICAgICAgICAgICAgICA9IHJlbW92ZQ0KPiArDQo+ ICsjDQo+ICsjIFRoZSB0b2tlbnMgYmVsb3cgYXJlIGFzc2lnbmVkIHNwZWNpZmljIHR5cGVzIHNv IHRoZXkgYXJlIGFsd2F5cyByZWNvZ25pemVkIHByb3Blcmx5Lg0KPiArIw0KPiArDQo+ICsjIEV4 cGxpY2l0bHkgZGVmaW5lIEVESyBJSSBxdWFsaWZpZXJzDQo+ICtzZXQgUVVBTElGSUVSIENPTlNU DQo+ICtzZXQgUVVBTElGSUVSIEVGSUFQSQ0KPiArc2V0IFFVQUxJRklFUiBJTg0KPiArc2V0IFFV QUxJRklFUiBPUFRJT05BTA0KPiArc2V0IFFVQUxJRklFUiBPVVQNCj4gKw0KPiArIyBFeHBsaWNp dGx5IGRlZmluZSBFREsgSUkgdHlwZXMNCj4gK3NldCBUWVBFIEVGSV9TVEFUVVMNCj4gK3NldCBU WVBFIFZPSUQNCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay91 bmNydXN0aWZ5X2V4dF9kZXAueWFtbA0KPiBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVj ay91bmNydXN0aWZ5X2V4dF9kZXAueWFtbA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwMDAuLmQ4YzIyNDAzYjRiMQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiLy5w eXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjay91bmNydXN0aWZ5X2V4dF9kZXAueWFtbA0KPiBA QCAtMCwwICsxLDE2IEBADQo+ICsjIyBAZmlsZQ0KPiArIyBEb3dubG9hZHMgdGhlIFVuY3J1c3Rp ZnkgYXBwbGljYXRpb24gZnJvbSBhIFByb2plY3QgTXUgTnVHZXQgcGFja2FnZS4NCj4gKyMNCj4g KyMgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ICsjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsjIw0KPiArew0KPiArICAiaWQi OiAidW5jcnVzdGlmeS1jaS0xIiwNCj4gKyAgInNjb3BlIjogImNpYnVpbGQiLA0KPiArICAidHlw ZSI6ICJudWdldCIsDQo+ICsgICJuYW1lIjogIm11LXVuY3J1c3RpZnktcmVsZWFzZSIsDQo+ICsg ICJzb3VyY2UiOiAiaHR0cHM6Ly9wa2dzLmRldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3Rp ZnkvX3BhY2thZ2luZy9tdV91bmNydXN0aWZ5L251Z2V0L3YzL2luZGV4Lmpzb24iLA0KPiArICAi dmVyc2lvbiI6ICI3My4wLjMiLA0KPiArICAiZmxhZ3MiOiBbInNldF9zaGVsbF92YXIiLCAiaG9z dF9zcGVjaWZpYyJdLA0KPiArICAidmFyX25hbWUiOiAiVU5DUlVTVElGWV9DSV9QQVRIIg0KPiAr fQ0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3Rp ZnlfcGx1Z19pbi55YW1sDQo+IGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1 c3RpZnlfcGx1Z19pbi55YW1sDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAwMC4uMDZjNzZhZjAyNzU5DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvLnB5dG9vbC9Q bHVnaW4vVW5jcnVzdGlmeUNoZWNrL3VuY3J1c3RpZnlfcGx1Z19pbi55YW1sDQo+IEBAIC0wLDAg KzEsMTEgQEANCj4gKyMjIEBmaWxlDQo+ICsjIENpQnVpbGRQbHVnaW4gdXNlZCB0byBjaGVjayBj b2Rpbmcgc3RhbmRhcmQgY29tcGxpYW5jZSBvZiBFREsgSUkgc3R5bGUgQyBzb3VyY2UgY29kZQ0K PiArIw0KPiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gKyMgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKyMjDQo+ICt7DQo+ ICsgICJzY29wZSI6ICJjaWJ1aWxkIiwNCj4gKyAgIm5hbWUiOiAiVW5jcnVzdGlmeSBDb2Rpbmcg U3RhbmRhcmQgVGVzdCIsDQo+ICsgICJtb2R1bGUiOiAiVW5jcnVzdGlmeUNoZWNrIg0KPiArfQ0K PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9SZWFkbWUubWQgYi8ucHl0b29sL1JlYWRtZS5tZA0KPiBp bmRleCBmNjUwNTUwNzk2NmEuLmUwZDA3ZjMxNzA0OSAxMDA2NDQNCj4gLS0tIGEvLnB5dG9vbC9S ZWFkbWUubWQNCj4gKysrIGIvLnB5dG9vbC9SZWFkbWUubWQNCj4gQEAgLTI2NCw2ICsyNjQsMTAg QEAgQlNELTItQ2xhdXNlLVBhdGVudC4NCj4gIFJ1biB0aGUgRWNjIHRvb2wgb24gdGhlIHBhY2th Z2UuIFRoZSBFY2MgdG9vbCBpcyBhdmFpbGFibGUgaW4gdGhlIEJhc2VUb29scw0KPiAgcGFja2Fn ZS4gSXQgY2hlY2tzIHRoYXQgdGhlIGNvZGUgY29tcGxpZXMgdG8gdGhlIEVES0lJIGNvZGluZyBz dGFuZGFyZC4NCj4gDQo+ICsjIyMgQ29kaW5nIFN0YW5kYXJkIENvbXBsaWFuY2UgLSBVbmNydXN0 aWZ5Q2hlY2sNCj4gKw0KPiArUnVucyB0aGUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiB0byBjaGVj ayBmb3IgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaXNzdWVzLg0KPiArDQo+ICAjIyBQeVRv b2wgU2NvcGVzDQo+IA0KPiAgU2NvcGVzIGFyZSBob3cgdGhlIFB5VG9vbCBleHRfZGVwLCBwYXRo X2VudiwgYW5kIHBsdWdpbnMgYXJlIGFjdGl2YXRlZC4gIE1lYW5pbmcNCj4gLS0NCj4gMi4yOC4w LndpbmRvd3MuMQ0KPiANCj4gDQo+IA0KPiAtPS09LT0tPS09LT0NCj4gR3JvdXBzLmlvIExpbmtz OiBZb3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLg0KPiBWaWV3L1Jl cGx5IE9ubGluZSAoIzg0MDY4KTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3Nh Z2UvODQwNjgNCj4gTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC84NzI5NDA1 My8xNjQzNDk2DQo+IEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbw0KPiBV bnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViIFttaWNoYWVs LmQua2lubmV5QGludGVsLmNvbV0NCj4gLT0tPS09LT0tPS09DQo+IA0KDQo=