From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04olkn2045.outbound.protection.outlook.com [40.92.47.45]) by sourceware.org (Postfix) with ESMTPS id C44C03858C56 for ; Fri, 12 Apr 2024 22:11:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C44C03858C56 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=maskray.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=maskray.me ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C44C03858C56 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.92.47.45 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1712959899; cv=pass; b=igeBpkyvgS29/zLRykB9lcuYKdiNDTx05IgFQBTbgCVBR8y8vILya7trsKjhJu/2GxqJbol8xrxSRwT65QIQx7KFc/PMWv9N7zifM0tBFXezTS/toM84usqMM5lFop+IXGxc0Y2pfzG0q2HjraTFPU79a78TcIU+T/GbbFkqetY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1712959899; c=relaxed/simple; bh=SLJxo2emRr+Gg3EDezeMzogzqqtUHsNoXooWjG9Xsws=; h=From:Date:Message-ID:Subject:To:MIME-Version; b=Xmu4PUlq/GuXB8L1fBJHPl7N+jU9dZ2dNfo0IoQBbA40wwIlxFhLlxi5nWXmOs4Inf1VdD04DdjADnvhkUaBkgsxLy4cIPHW7Cf9ll3PE8U7T7P65yEfpbrVI2otx0qVSQskEHBSdJvUWwyW9pcHyV4B4BpADoXosd+PEpqhSjs= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MxCbHAvfqh7wPm88jxW7MyxlFG/MUdqtYrsdeucI9ZjpFpR7u8/rnehePnuwCYBI/q05zz0cOTB53/4FpC80ClkByLEr7+GgqiW+TPNb6Lz3IlEm+O87ExnkxUIu6RfLHIXHK832YDq1zdtD2W85O0a75ss4Fdn2UO2HyPsPWIdfiulhArhysiyk6Cc6fgRMZ/ZOZV+CY64KwgDn60wHoMltq0vwGPn1ztcCKoNZCVljQSkKoK2IxZHWFXaoNibifdT19VyMkO+ORENkoM0hMMaRdrA0T+xpUg7p2ZXuyYZ240w1DLS1Qz6UfSCM1ch+9ujGpTEqKiJtvwMApUygeQ== 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=Emterf1YRI4/g/tRt+QSSXsPO7AlA6XhKIqJlUYSWDw=; b=JH8iDODgzIyHpQkKNfPhr9tinBgTAvnHCLp2e/PAks82OK9497lf1sRzalbBOw1oS4JpqprWH2uMDtUCyED/u+b1BlKi1Uryx92ftIE5hus/35zNA2O8EZblSrofMVmxEChqIHKXroOqaSCIpqU6pQccXZRhYKpBIg+PNB1tE80GycNpZ4RUJEFXjhIyyS/u6qr348ZvcQTn52ZY1VQ7pNihGwIU9YGAscYAJ2RgZ2z2R7qcmbnMPfc4y3vHuakr2/2rSLc2hBTXcXYv7LEE44GWctCN4NPBmIce0uI+xz79u3+gA3vXL8syyP3c5Q3fVLb29OAofvwm0yeBdUUmkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) by IA1PR12MB8467.namprd12.prod.outlook.com (2603:10b6:208:448::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.54; Fri, 12 Apr 2024 22:11:33 +0000 Received: from DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::432:c8d:24:ad11]) by DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::432:c8d:24:ad11%4]) with mapi id 15.20.7409.053; Fri, 12 Apr 2024 22:11:32 +0000 X-Gm-Message-State: AOJu0YwfxaZyGRrdJQciQr6p+A9KoP7DNY0nqg6ErRQjTJF+ZkggMGYZ kip7+c4KDCkAZrLEHATIn+pb9HQV+CpIMNm5DtEEvje7SHF+UYGET3LIejT3hvuGpAqs/m2udB4 gN9DH4loblYUFp1vt3dORCp2b2GY= X-Google-Smtp-Source: AGHT+IHJKY89KB+KBAm+UuF/Wi1wynroJPEgvBCMVfFj/K/rrRy/LeOcmOSzfGrCPbdKWQwX59zdTVltR/gI8hoVmxs= X-Received: by 2002:a05:6122:134c:b0:4d3:34f4:7e99 with SMTP id f12-20020a056122134c00b004d334f47e99mr3745089vkp.0.1712959479172; Fri, 12 Apr 2024 15:04:39 -0700 (PDT) References: <87edbb99kx.fsf@redhat.com> In-Reply-To: From: Fangrui Song Date: Fri, 12 Apr 2024 15:04:28 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Commit: readelf: Improve display of RELR relocations To: Nick Clifton Cc: binutils@sourceware.org Content-Type: multipart/mixed; boundary="000000000000457f380615ed75aa" X-TMN: [T4GafwniSmPV2MrIudXjTs1QZxrroGd0] X-ClientProxiedBy: BN9PR03CA0920.namprd03.prod.outlook.com (2603:10b6:408:107::25) To DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5765:EE_|IA1PR12MB8467:EE_ X-MS-Office365-Filtering-Correlation-Id: bc2e9eb4-8de1-4f85-13ba-08dc5b3d829c X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqJuwtH5CpNueJuSfYZJdnfm5vPqFH/pLxC4/2BK8iKD2I3lgBs6YcvoAQKvOJ8HFysYvwNuwxs9ngxKMY4rhHToHdhOTvxvqTC0fpj2bBoKjufn+l5awWVDvUTsEVrlAPEG8YOX2QEFzmkc1elxmO0IwXGdlojMEYqo+GNmSxP9y9V7NcnHUPkrv31/nvBCjiWvwYwcwoBeUjKQiQOHA2Kug3kS3Wlf40qJnNIM26mc2a6zA4cClOlO9/lkoTFRSgUA3JDGmHy4gpwIaxJ8NrXHScjzXzJ5zdjCaptk6HGuracIK7Fhh7X61X0MH0L2G9GhaEED2oUZtOEeEkpUoq10Tvk5NAY2YuJ9QS2Odn65Oc4v9f6l0LuaPv9GIX7OsFFYRVy2cIr+qEmVncpAqOu3dk+kUmIRIJvcgSphQ0AKQ+nB+R8ivqXxigB31fD0011ZT5pRRoteL+z/qtcV0nIz9t0p6VBm9NuXQX4V3GZcWgkNah4t0/i2OvkaHTvmUtSphYx3DfPLaQ2Sc/6VgsTG8ScI+rb8pRiwIAOnpvtIhtMYkZWJr8rmsBN5iDRWNSYK0Z0ZWkwgtFisTyjuq7E8ecP7dRfwIxfBR9eylHm4k2y1stzuE22LzdMZE66UslbYDky9cf9bwGsMo9HoBMdfmZr6+VQfavOBp6DXOLCbQ5L8gSCxeB4c89RBcgPfDC610FQzSFSjKekOz/e4ChFCh+y2eoY7LgjDm+eO+OXXjKajGzZM9Vizuk2kdGdfEs= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vSGtITssE0O8DX0VKLz/VZdMlWTbYRfnqJ4Bj9sH2dFL+SCG4lT7FMHA1AGG/r34Biw8qeGk7OfjQheko/U4hhDNkgNzx9sY+qImMbwXg7a6/+Ax2NDFLwrQ/bdGpXKP3pqU7gNfznnUcHB2+9M8M5SpwftnxWSyplvsdo4ZLRcxbXR+w+WwOKjDKsXp+eAJbLO5s9a3/zw/PREQWJAKE1hkg0If8FEN9MjjlJd/F1BSOVqeywyu9yvxDNd8xuAAhOQD5ZOHnmzDO+PUVQdpbVyseHsF4Gx8c7opYouQHwtmFKGj/r3cJwtI8BJErQuMf334bKrQDcmzp8ozYrAx+y7aYg5FI7yO7ymFrIqkQm3E9J+Af/kKfH5xFELbh/Wtrrhua9k1jEz3LE8qEUHARmictk474wFniWXIokr2Lcj8qJv8AJT+ygYuB8p6qDoiCTqg2EN57gpHqox67nWhMrVHvPIo4vrZorNqTvjHVN72ydGh0tuvQ1CnK8TsvV8YXRJNvjZugoyDiuvWGSy+oSUsyiLe5500qJDvfek8z65QMySpIj5umfQVwov2YSfVq1s1JznuTLauvbSdclMaOX+jRV1GXgxTRGF6zjGDdTikOjufH4A7yZ1lLT2umqwu X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MFdURjlHMnY3RWdjbVhEWjVxelY2aWFCZGZaM2g3SzlNZWFJclQyV1ZuUGRL?= =?utf-8?B?Z2lnenhvRlhLQ2lGV1E0bVdadk9KekVKZGU1QmRDZnhoa2lQOVpBSGZDQVlK?= =?utf-8?B?K0NGWmhiOVJzR0ZVSDZ3STk0OVBhODE5RDlxTDE0ZHl0THdWUVFvb1h6VHgz?= =?utf-8?B?ODZLMVRlcWF3SlBORXM5ZVpRcHlueTd5bENhQzlXYkJLWnh5SDNkaUdiMDJD?= =?utf-8?B?aXNDa2IzZ0hiVHFneUJUSTI4L054bUNmelRtaDdQYk43MjJDcGxDQllxRVhO?= =?utf-8?B?QmFXWW9iMmxaUHFYSWJnUkRLc1hJVkR4TDZnYmp5K0FBT29kSXBOQ1NNZHFD?= =?utf-8?B?Y3RWdHpzRXdaczlCOFZFdnB2YlJLOFpxRUptM29mVG4wOEhzWlFRZUdaTFEr?= =?utf-8?B?K2FGdlR3aUcxQkcwSGxUNms0Y0UwMjRlUWRwaG5naWpKQUxOc1hnK21Tem5P?= =?utf-8?B?Ym0vQUV0YmV3TXJBSnlLMVhXRU9SYUZndy9RL09iMHhYTDNJSXJOeG9JV0tm?= =?utf-8?B?cERBMVpCWmdla3IrN01CY29YdzNxVU9ucUpRT25mcDJqbERtMkVNWFc1RlNi?= =?utf-8?B?c1NCM1p3Ry8rSHQrdWhSNEtRelplOXlqTStEOWRveC9McDRDNUwyQ2pDK0k4?= =?utf-8?B?eXdiV0JrVzVOdFdjTUF5ZFVXTmEvNEdNT05UZlNYWUFBdlZzZGkxSFhIck05?= =?utf-8?B?MGlKdjZOVzB2VUN3L04zdVUwWS92ck9udllwUmxYWmpUOUNVN28wdFNldGlT?= =?utf-8?B?SkFZQnVVS09uQ0gzT3crcWJOR014czFHOS83ajNsTWdZUEsvRi85WFMyQkx2?= =?utf-8?B?R0swRFZKZWU2ejQxcUFjamZFbS9YY2pIY21HV0Q4MDBEeE9hUEM4NVh0dHNK?= =?utf-8?B?MFd0SFExRTdVemRJV1BYMWV1QzV5cG51SWlnaHJhcHhLVkNEcFVCb3JuMVh5?= =?utf-8?B?czYwd20zVUdqVHd6dUJ1RGl2QjE4c2d1VjdPR29lenpGVW1CNkFNZ2VqbElL?= =?utf-8?B?SjlFRVZxRkNjeFRkcDN3TGVNcUFQZWs3b2Yybmo4M29GOXBXekpBcmQ3TFBH?= =?utf-8?B?akZpMGh2YVp1aGFDbW1JVUh3K3QxNGg1bGxXc3ZQYzcvZ3QrNjVGNmpSaml2?= =?utf-8?B?Vk45VmVOTGg2OFpWV1RSazF0L1JvZWc1WnVNRHY1c0VjM2ZheExxeVQ1SCty?= =?utf-8?B?L1hxZ0tRWnRKU250RkFqODZ5K0V0ekFyUCt6UnFlRUZNeVUzNmZXREVmbWxq?= =?utf-8?B?dVdjZWh3Z2hqQVhiK1ByUnZIQitSQTA4TlJKamlzb0Z2RTVkcWRDb1dscnQr?= =?utf-8?B?RHh2QmRjRGJBS2NRb1FSMmR3ay94a3VCSSsrYkRoOHhGV1pVcTlKdU5YeFpE?= =?utf-8?B?RDRjU1hIM0d5blA5a3ArUW1EQ1hoOXVacEZYd3hDYU1tWGo3eSsrVEJTZGxo?= =?utf-8?B?d3FuUVk5NlJpRHZSTGhKSkEyUmd0WjlEZk5YRW1vL0VjeHFWejNaMzhjY3lK?= =?utf-8?B?dU5HYlREa3hHY2tnQU5OMjI2YU9Xc3BWbnNnbzBNWmVQNTlsTlFETW1WQWxq?= =?utf-8?B?QlJNSVduZ2IwMDhBSmNCd1VDV1ZoSUF3a21XSWJ3RlNycG1QSmswMlpkOXpB?= =?utf-8?B?cGYwejUzL3hROW5GWkVpYjBWWlAyMGc9PQ==?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-71ea3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: bc2e9eb4-8de1-4f85-13ba-08dc5b3d829c X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5765.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2024 22:11:32.5153 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8467 X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_INFOUSMEBIZ,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000457f380615ed75aa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Apr 12, 2024 at 11:44=E2=80=AFAM Fangrui Song wrote: > > On Thu, Apr 11, 2024 at 8:56=E2=80=AFAM Nick Clifton w= rote: > > > > Hi Guys, > > > > Currently readelf's display of RELR relocations is woefully lacking i= n > > information. So I am going to apply the attached patch in order to > > improve this. For example: > > > > readelf -r /lib64/libc.so.6 > > > > Before patch: > > > > Relocation section '.relr.dyn' at offset 0x259c0 contains 32 entrie= s: > > 1067 offsets > > 00000000001d4ca0 > > 00000000001d4cb0 > > 00000000001d4cb8 > > 00000000001d4cc0 > > 00000000001d4ce0 > > 00000000001d4d00 > > ... > > Hi Nick, > > Thanks for the improvement! > > > After patch: > > > > Relocation section '.relr.dyn' at offset 0x259c0 contains 32 entrie= s: > > Index: Entry: Address relocated Symbolic Address > > 0000: 00000000001d4ca0 00000000001d4ca0 __FRAME_END__ + 0x1ddc > > 0001: ffffdff8ee15911d 00000000001d4cb0 __FRAME_END__ + 0x1dec > > 00000000001d4cb8 __FRAME_END__ + 0x1df4 > > 00000000001d4cc0 __dso_handle > > 00000000001d4ce0 _nl_C_LC_CTYPE > > 00000000001d4d00 _nl_C_LC_CTYPE + 0x20 > > ... > > In particular this new format shows the actual values held in the REL= R > > section - allowing a user to potentially spot problems - as well as > > providing an address to symbol mapping for ease in understanding what > > is being relocated. > > > > The patch also checks for malformed RELR entries (such as an entry > > with a value of just 1). > > > > The patch includes a new binutils test and updates to linker tests > > that were checking the RELR relocations. > > > > Cheers > > Nick > > > > I have some minor suggestions. > > * Do we need the ":" in "Entry:"? I presume not because the strings > don't end with ":". > * "Address relocated" feels verbose. Would a simple "Address" be > acceptable? That aligns with "Offset" (instead of "Offset relocated") > for REL/RELA output. > * Do we need the "Notes" column (new starting address, start of > bitmap)? The start of a new address/bitmap can be inferred from the > presence of the "Index" or "Entry" column string. The user needs to > look at the odd/even bit to figure out whether it is a start address > or a bitmap, but this information seems straightforward. Omitting the > column might make parsing slightly easier. > > > Relocation section '.relr.dyn' at offset 0x7ae8 contains 6372 entries: > Index: Entry: Address relocated Symbolic Address Notes > 0000: 00000000042c0350 00000000042c0350 > __do_global_dtors_aux_fini_array_entry (new starting address) > 0001: ffffffffffffffff 00000000042c0358 > __frame_dummy_init_array_entry (start of bitmap) #### (start of > bitmap) makes it slightly awkward to parse the symbolic address > 00000000042c0360 __frame_dummy_init_array_entry = + 0x8 > 00000000042c0368 __frame_dummy_init_array_entry = + 0x10 > 00000000042c0370 __frame_dummy_init_array_entry = + 0x18 > 00000000042c0378 __frame_dummy_init_array_entry = + 0x20 > Let's see if some of the ideas in the attached patch are practical :) --000000000000457f380615ed75aa Content-Type: text/x-patch; charset="US-ASCII"; name="readelf-relr.patch" Content-Disposition: attachment; filename="readelf-relr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lux7s3440 RnJvbSAzNGEzZTAyOWU2ZjM2MGQzYjBmZGM2YWM2Y2MyZjMzYWUyMWMwMzA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGYW5ncnVpIFNvbmcgPG1hc2tyYXlAZ2NjLmdudS5vcmc+CkRh dGU6IEZyaSwgMTIgQXByIDIwMjQgMTQ6Mjk6MjggLTA3MDAKU3ViamVjdDogW1BBVENIXSByZWFk ZWxmOiBBZGp1c3QgZGlzcGxheSBvZiBSRUxSIHJlbG9jYXRpb25zCgoqIFJlbW92ZSB0aGUgY29s b24gZm9yICJFbnRyeSIKKiBVbmlmeSAiQWRkcmVzcyByZWxvY2F0ZWQiICgtLXdpZGUpIGFuZCAi QWRkcmVzcyIgKG5hcnJvdykgdG8gIkFkZHJlc3MiLgoqIFJlbW92ZSB0aGUgIk5vdGVzIiBjb2x1 bW4uIFRoZSBpbmZvcm1hdGlvbiBjYW4gYmUgaW5mZXJyZWQgZnJvbSBlbnRyeSUyLgotLS0KIGJp bnV0aWxzL3JlYWRlbGYuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgKysrLS0tLS0tLS0t LS0tLS0tLS0KIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0yYi5kICAgICAgICAgIHwgIDQg KystLQogbGQvdGVzdHN1aXRlL2xkLWVsZi9kdC1yZWxyLTJjLmQgICAgICAgICAgfCAgNCArKy0t CiBsZC90ZXN0c3VpdGUvbGQtZWxmL2R0LXJlbHItMmQuZCAgICAgICAgICB8ICA0ICsrLS0KIGxk L3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0yZS5kICAgICAgICAgIHwgIDQgKystLQogbGQvdGVz dHN1aXRlL2xkLWVsZi9kdC1yZWxyLTJpLmQgICAgICAgICAgfCAgNCArKy0tCiBsZC90ZXN0c3Vp dGUvbGQtaTM4Ni9kdC1yZWxyLTFhLmQgICAgICAgICB8ICA0ICsrLS0KIGxkL3Rlc3RzdWl0ZS9s ZC1pMzg2L2R0LXJlbHItMWIuZCAgICAgICAgIHwgIDQgKystLQogbGQvdGVzdHN1aXRlL2xkLXBv d2VycGMvYWJzLXBpZS1yZWxyLnIgICAgfCAgNCArKy0tCiBsZC90ZXN0c3VpdGUvbGQtcG93ZXJw Yy9hYnMtc2hhcmVkLXJlbHIuciB8ICA0ICsrLS0KIGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvZHQt cmVsci0xYS14MzIuZCAgIHwgIDQgKystLQogbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9kdC1yZWxy LTFhLmQgICAgICAgfCAgNCArKy0tCiBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L2R0LXJlbHItMWIt eDMyLmQgICB8ICA0ICsrLS0KIGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYi5kICAg ICAgIHwgIDQgKystLQogMTQgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmludXRpbHMvcmVhZGVsZi5jIGIvYmludXRpbHMvcmVh ZGVsZi5jCmluZGV4IGZjZjk1ZWUzMDQ3Li5lMGNmNzE4YWEyOCAxMDA2NDQKLS0tIGEvYmludXRp bHMvcmVhZGVsZi5jCisrKyBiL2JpbnV0aWxzL3JlYWRlbGYuYwpAQCAtMTY2NSwyMCArMTY2NSwx MCBAQCBkdW1wX3JlbHJfcmVsb2NhdGlvbnMgKEZpbGVkYXRhICogICAgICAgICAgZmlsZWRhdGEs CiAgICAgIGJlIHVzZWQgbGF0ZXIgb24gZm9yIHNvbWUgb3RoZXIgcHVycG9zZS4gICovCiAgIHFz b3J0IChzeW10YWIsIG5zeW1zLCBzaXplb2YgKEVsZl9JbnRlcm5hbF9TeW0pLCBzeW1jbXApOwog Ci0gIGlmIChkb193aWRlKQotICAgIHsKLSAgICAgIGlmIChyZWxyX2VudHNpemUgPT0gNCkKLQlw cmludGYgKF8oIkluZGV4OiBFbnRyeTogICBBZGRyZXNzICBTeW1ib2xpYyBBZGRyZXNzICAgICBO b3Rlc1xuIikpOwotICAgICAgZWxzZQotCXByaW50ZiAoXygiSW5kZXg6IEVudHJ5OiAgICAgICAg ICAgQWRkcmVzcyByZWxvY2F0ZWQgU3ltYm9saWMgQWRkcmVzcyAgICAgICAgTm90ZXNcbiIpKTsK LSAgICB9CisgIGlmIChyZWxyX2VudHNpemUgPT0gNCkKKyAgICBwcmludGYgKF8gKCJJbmRleDog RW50cnkgICAgQWRkcmVzcyAgIFN5bWJvbGljIEFkZHJlc3NcbiIpKTsKICAgZWxzZQotICAgIHsK LSAgICAgIGlmIChyZWxyX2VudHNpemUgPT0gNCkKLQlwcmludGYgKF8oIkluZGV4OiBFbnRyeTog ICBBZGRyZXNzICBTeW1ib2xpYyBBZGRyZXNzXG4iKSk7Ci0gICAgICBlbHNlCi0JcHJpbnRmIChf KCJJbmRleDogRW50cnk6ICAgICAgICAgICBBZGRyZXNzIHJlbG9jYXRlZCBTeW1ib2xpYyBBZGRy ZXNzXG4iKSk7Ci0gICAgfQorICAgIHByaW50ZiAoXyAoIkluZGV4OiBFbnRyeSAgICAgICAgICAg IEFkZHJlc3MgICAgICAgICAgIFN5bWJvbGljIEFkZHJlc3NcbiIpKTsKIAogICBmb3IgKGkgPSAw OyBpIDwgbmVudHJpZXM7IGkrKykKICAgICB7CkBAIC0xNjk4LDggKzE2ODgsNiBAQCBkdW1wX3Jl bHJfcmVsb2NhdGlvbnMgKEZpbGVkYXRhICogICAgICAgICAgZmlsZWRhdGEsCiAJewogCSAgd2hl cmUgPSBlbnRyeTsKIAkgIHByaW50X3JlbHJfYWRkcl9hbmRfc3ltIChzeW10YWIsIG5zeW1zLCBz dHJ0YWIsIHN0cnRhYmxlbiwgd2hlcmUpOwotCSAgaWYgKGRvX3dpZGUpCi0JICAgIHByaW50ZiAo XygiIChuZXcgc3RhcnRpbmcgYWRkcmVzcykiKSk7CiAJICBwcmludGYgKCJcbiIpOwogCSAgd2hl cmUgKz0gcmVscl9lbnRzaXplOwogCX0KQEAgLTE3MjIsOCArMTcxMCw2IEBAIGR1bXBfcmVscl9y ZWxvY2F0aW9ucyAoRmlsZWRhdGEgKiAgICAgICAgICBmaWxlZGF0YSwKIAkJaWYgKGZpcnN0KQog CQkgIHsKIAkJICAgIHByaW50X3JlbHJfYWRkcl9hbmRfc3ltIChzeW10YWIsIG5zeW1zLCBzdHJ0 YWIsIHN0cnRhYmxlbiwgYWRkcik7Ci0JCSAgICBpZiAoZG9fd2lkZSkKLQkJICAgICAgcHJpbnRm IChfKCIgKHN0YXJ0IG9mIGJpdG1hcCkiKSk7CiAJCSAgICBmaXJzdCA9IGZhbHNlOwogCQkgIH0K IAkJZWxzZQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9kdC1yZWxyLTJiLmQgYi9s ZC90ZXN0c3VpdGUvbGQtZWxmL2R0LXJlbHItMmIuZAppbmRleCA0OGEzZWI3ZjE1Yy4uZjljNjg4 MDg3ZjkgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0yYi5kCisrKyBi L2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0yYi5kCkBAIC0xNCw4ICsxNCw4IEBAIFJlbG9j YXRpb24gc2VjdGlvbiAnXC5yZWwoYXwpXC5keW4nIGF0IG9mZnNldCAweFswLTlhLWZdKyBjb250 YWlucyAxIGVudHJ5OgogIy4uLgogUmVsb2NhdGlvbiBzZWN0aW9uICdcLnJlbHJcLmR5bicgYXQg b2Zmc2V0IDB4WzAtOWEtZl0rIGNvbnRhaW5zIDIgZW50cmllczoKICMuLi4KLTAwMDA6ICtbMC05 YS1mXSsgWzAtOWEtZl0rICtkYXRhIFwobmV3IHN0YXJ0aW5nIGFkZHJlc3NcKQotMDAwMTogK1sw LTlhLWZdKyBbMC05YS1mXSsgK2RhdGEgXCsgMHhbMC05YS1mXSsgXChzdGFydCBvZiBiaXRtYXBc KQorMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsgK2RhdGEKKzAwMDE6ICtbMC05YS1mXSsgWzAt OWEtZl0rICtkYXRhIFwrIDB4WzAtOWEtZl0rCiAgK1swLTlhLWZdKyArZGF0YSBcKyAweFswLTlh LWZdKwogICtbMC05YS1mXSsgK2RhdGEgXCsgMHhbMC05YS1mXSsKICNwYXNzCmRpZmYgLS1naXQg YS9sZC90ZXN0c3VpdGUvbGQtZWxmL2R0LXJlbHItMmMuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYv ZHQtcmVsci0yYy5kCmluZGV4IDdmNjM4M2IwMTg0Li5kOWUzNjk4YThmMCAxMDA2NDQKLS0tIGEv bGQvdGVzdHN1aXRlL2xkLWVsZi9kdC1yZWxyLTJjLmQKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWVs Zi9kdC1yZWxyLTJjLmQKQEAgLTE0LDcgKzE0LDcgQEAgUmVsb2NhdGlvbiBzZWN0aW9uICdcLnJl bChhfClcLmR5bicgYXQgb2Zmc2V0IDB4WzAtOWEtZl0rIGNvbnRhaW5zIDIgZW50cmllczoKICMu Li4KIFJlbG9jYXRpb24gc2VjdGlvbiAnXC5yZWxyXC5keW4nIGF0IG9mZnNldCAweFswLTlhLWZd KyBjb250YWlucyAyIGVudHJpZXM6CiAjLi4uCi0wMDAwOiArWzAtOWEtZl0rIFswLTlhLWZdKyAr LiogXChuZXcgc3RhcnRpbmcgYWRkcmVzc1wpCi0wMDAxOiArWzAtOWEtZl0rIFswLTlhLWZdKyAr LiogXChzdGFydCBvZiBiaXRtYXBcKQorMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsgKy4qCisw MDAxOiArWzAtOWEtZl0rIFswLTlhLWZdKyArLioKICArWzAtOWEtZl0rICsuKgogI3Bhc3MKZGlm ZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0yZC5kIGIvbGQvdGVzdHN1aXRl L2xkLWVsZi9kdC1yZWxyLTJkLmQKaW5kZXggZjExODRmZWZlYjIuLjY5ODYzYmRkZWM0IDEwMDY0 NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtZWxmL2R0LXJlbHItMmQuZAorKysgYi9sZC90ZXN0c3Vp dGUvbGQtZWxmL2R0LXJlbHItMmQuZApAQCAtMTQsOCArMTQsOCBAQCBSZWxvY2F0aW9uIHNlY3Rp b24gJ1wucmVsKGF8KVwuZHluJyBhdCBvZmZzZXQgMHhbMC05YS1mXSsgY29udGFpbnMgMSBlbnRy eToKICMuLi4KIFJlbG9jYXRpb24gc2VjdGlvbiAnXC5yZWxyXC5keW4nIGF0IG9mZnNldCAweFsw LTlhLWZdKyBjb250YWlucyAyIGVudHJpZXM6CiAjLi4uCi0wMDAwOiArWzAtOWEtZl0rIFswLTlh LWZdKyArZGF0YSBcKG5ldyBzdGFydGluZyBhZGRyZXNzXCkKLTAwMDE6ICtbMC05YS1mXSsgWzAt OWEtZl0rICtkYXRhIFwrIDB4WzAtOWEtZl0rIFwoc3RhcnQgb2YgYml0bWFwXCkKKzAwMDA6ICtb MC05YS1mXSsgWzAtOWEtZl0rICtkYXRhCiswMDAxOiArWzAtOWEtZl0rIFswLTlhLWZdKyArZGF0 YSBcKyAweFswLTlhLWZdKwogICtbMC05YS1mXSsgK2RhdGEgXCsgMHhbMC05YS1mXSsKICArWzAt OWEtZl0rICtkYXRhIFwrIDB4WzAtOWEtZl0rCiAjcGFzcwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1 aXRlL2xkLWVsZi9kdC1yZWxyLTJlLmQgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL2R0LXJlbHItMmUu ZAppbmRleCBlZGRiNWUzZDE0ZS4uZTA0N2MwZDY1MjkgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0 ZS9sZC1lbGYvZHQtcmVsci0yZS5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0y ZS5kCkBAIC0xNCw4ICsxNCw4IEBAIFJlbG9jYXRpb24gc2VjdGlvbiAnXC5yZWwoYXwpXC5kYXRh JyBhdCBvZmZzZXQgMHhbMC05YS1mXSsgY29udGFpbnMgMSBlbnRyeToKICMuLi4KIFJlbG9jYXRp b24gc2VjdGlvbiAnXC5yZWxyXC5keW4nIGF0IG9mZnNldCAweFswLTlhLWZdKyBjb250YWlucyAy IGVudHJpZXM6CiAjLi4uCi0wMDAwOiArWzAtOWEtZl0rIFswLTlhLWZdKyArZGF0YSBcKG5ldyBz dGFydGluZyBhZGRyZXNzXCkKLTAwMDE6ICtbMC05YS1mXSsgWzAtOWEtZl0rICtkYXRhIFwrIDB4 WzAtOWEtZl0rIFwoc3RhcnQgb2YgYml0bWFwXCkKKzAwMDA6ICtbMC05YS1mXSsgWzAtOWEtZl0r ICtkYXRhCiswMDAxOiArWzAtOWEtZl0rIFswLTlhLWZdKyArZGF0YSBcKyAweFswLTlhLWZdKwog ICtbMC05YS1mXSsgK2RhdGEgXCsgMHhbMC05YS1mXSsKICArWzAtOWEtZl0rICtkYXRhIFwrIDB4 WzAtOWEtZl0rCiAjcGFzcwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9kdC1yZWxy LTJpLmQgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL2R0LXJlbHItMmkuZAppbmRleCA1NWU4YzI1NmI5 Mi4uYTMyOGNjYjkyZTUgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0y aS5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZHQtcmVsci0yaS5kCkBAIC0xNCw4ICsxNCw4 IEBAIFJlbG9jYXRpb24gc2VjdGlvbiAnXC5yZWwoYXwpXC5keW4nIGF0IG9mZnNldCAweFswLTlh LWZdKyBjb250YWlucyAxIGVudHJ5OgogIy4uLgogUmVsb2NhdGlvbiBzZWN0aW9uICdcLnJlbHJc LmR5bicgYXQgb2Zmc2V0IDB4WzAtOWEtZl0rIGNvbnRhaW5zIDIgZW50cmllczoKICMuLi4KLTAw MDA6ICtbMC05YS1mXSsgWzAtOWEtZl0rICtkYXRhIFwobmV3IHN0YXJ0aW5nIGFkZHJlc3NcKQot MDAwMTogK1swLTlhLWZdKyBbMC05YS1mXSsgK2RhdGEgXCsgMHhbMC05YS1mXSsgXChzdGFydCBv ZiBiaXRtYXBcKQorMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsgK2RhdGEKKzAwMDE6ICtbMC05 YS1mXSsgWzAtOWEtZl0rICtkYXRhIFwrIDB4WzAtOWEtZl0rCiAgK1swLTlhLWZdKyArZGF0YSBc KyAweFswLTlhLWZdKwogICtbMC05YS1mXSsgK2RhdGEgXCsgMHhbMC05YS1mXSsKICNwYXNzCmRp ZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9kdC1yZWxyLTFhLmQgYi9sZC90ZXN0c3Vp dGUvbGQtaTM4Ni9kdC1yZWxyLTFhLmQKaW5kZXggMzk0NDkxMWU0ZjcuLjg5Y2M2MzZmNGJjIDEw MDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9kdC1yZWxyLTFhLmQKKysrIGIvbGQvdGVz dHN1aXRlL2xkLWkzODYvZHQtcmVsci0xYS5kCkBAIC0xNSw4ICsxNSw4IEBAIFJlbG9jYXRpb24g c2VjdGlvbiAnXC5yZWxcLnBsdCcgYXQgb2Zmc2V0IDB4WzAtOWEtZl0rIGNvbnRhaW5zIDEgZW50 cnk6CiAKIFJlbG9jYXRpb24gc2VjdGlvbiAnLnJlbHIuZHluJyBhdCBvZmZzZXQgMHhbYS1mMC05 XSsgY29udGFpbnMgMiBlbnRyaWVzOgogIy4uLgotMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsg Ky4qIFwobmV3IHN0YXJ0aW5nIGFkZHJlc3NcKQotMDAwMTogK1swLTlhLWZdKyBbMC05YS1mXSsg Ky4qIFwoc3RhcnQgb2YgYml0bWFwXCkKKzAwMDA6ICtbMC05YS1mXSsgWzAtOWEtZl0rICsuKgor MDAwMTogK1swLTlhLWZdKyBbMC05YS1mXSsgKy4qCiAgK1swLTlhLWZdKyArLioKICMuLi4KIFN5 bWJvbCB0YWJsZSAnLnN5bXRhYicgY29udGFpbnMgWzAtOV0rIGVudHJpZXM6CmRpZmYgLS1naXQg YS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9kdC1yZWxyLTFiLmQgYi9sZC90ZXN0c3VpdGUvbGQtaTM4 Ni9kdC1yZWxyLTFiLmQKaW5kZXggOTQ3ZDgzNTRiMjMuLjZlN2YzY2EwYTI1IDEwMDY0NAotLS0g YS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9kdC1yZWxyLTFiLmQKKysrIGIvbGQvdGVzdHN1aXRlL2xk LWkzODYvZHQtcmVsci0xYi5kCkBAIC0xOCw4ICsxOCw4IEBAIFJlbG9jYXRpb24gc2VjdGlvbiAn XC5yZWxcLnBsdCcgYXQgb2Zmc2V0IDB4WzAtOWEtZl0rIGNvbnRhaW5zIDEgZW50cnk6CiAKIFJl bG9jYXRpb24gc2VjdGlvbiAnLnJlbHIuZHluJyBhdCBvZmZzZXQgMHhbYS1mMC05XSsgY29udGFp bnMgMiBlbnRyaWVzOgogIy4uLgotMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsgKy4qIFwobmV3 IHN0YXJ0aW5nIGFkZHJlc3NcKQotMDAwMTogK1swLTlhLWZdKyBbMC05YS1mXSsgKy4qIFwoc3Rh cnQgb2YgYml0bWFwXCkKKzAwMDA6ICtbMC05YS1mXSsgWzAtOWEtZl0rICsuKgorMDAwMTogK1sw LTlhLWZdKyBbMC05YS1mXSsgKy4qCiAgK1swLTlhLWZdKyArLioKICMuLi4KIFN5bWJvbCB0YWJs ZSAnLnN5bXRhYicgY29udGFpbnMgWzAtOV0rIGVudHJpZXM6CmRpZmYgLS1naXQgYS9sZC90ZXN0 c3VpdGUvbGQtcG93ZXJwYy9hYnMtcGllLXJlbHIuciBiL2xkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBj L2Ficy1waWUtcmVsci5yCmluZGV4IDA0OWNkN2FhOTgzLi5lODRiMGFmMTE1YiAxMDA2NDQKLS0t IGEvbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWJzLXBpZS1yZWxyLnIKKysrIGIvbGQvdGVzdHN1 aXRlL2xkLXBvd2VycGMvYWJzLXBpZS1yZWxyLnIKQEAgLTQsNSArNCw1IEBACiAjcmVhZGVsZjog LXJXCiAKIFJlbG9jYXRpb24gc2VjdGlvbiAnXC5yZWxyXC5keW4nIGF0IG9mZnNldCAuKiBjb250 YWlucyAxIGVudHJ5OgotSW5kZXg6IEVudHJ5OiArQWRkcmVzcyByZWxvY2F0ZWQgU3ltYm9saWMg QWRkcmVzcyArTm90ZXMKLTAwMDA6ICtbMC05YS1mXSsgWzAtOWEtZl0rICt4IFwobmV3IHN0YXJ0 aW5nIGFkZHJlc3NcKQorSW5kZXg6IEVudHJ5ICAgICAgICAgICAgQWRkcmVzcyAgICAgICAgICAg U3ltYm9saWMgQWRkcmVzcworMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsgK3gKZGlmZiAtLWdp dCBhL2xkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2Ficy1zaGFyZWQtcmVsci5yIGIvbGQvdGVzdHN1 aXRlL2xkLXBvd2VycGMvYWJzLXNoYXJlZC1yZWxyLnIKaW5kZXggM2NlNzBmNzQwZTIuLmNlMWE3 ZWVlMzM5IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9hYnMtc2hhcmVkLXJl bHIucgorKysgYi9sZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9hYnMtc2hhcmVkLXJlbHIucgpAQCAt MTMsNiArMTMsNiBAQCBSZWxvY2F0aW9uIHNlY3Rpb24gJ1wucmVsYVwuZHluJyBhdCBvZmZzZXQg LiogY29udGFpbnMgNiBlbnRyaWVzOgogMCsxMDQ1MCAgMCs0MDAwMDAwMjYgUl9QUEM2NF9BRERS NjQgICAgICAgICAxMjM0NTY3ODlhYmNkZWYwIGMgXCsgMAogCiBSZWxvY2F0aW9uIHNlY3Rpb24g J1wucmVsclwuZHluJyBhdCBvZmZzZXQgLiogY29udGFpbnMgMSBlbnRyeToKLUluZGV4OiBFbnRy eTogK0FkZHJlc3MgcmVsb2NhdGVkIFN5bWJvbGljIEFkZHJlc3MgK05vdGVzCi0wMDAwOiArWzAt OWEtZl0rIFswLTlhLWZdKyAreCBcKG5ldyBzdGFydGluZyBhZGRyZXNzXCkKK0luZGV4OiBFbnRy eSAgICAgICAgICAgIEFkZHJlc3MgICAgICAgICAgIFN5bWJvbGljIEFkZHJlc3MKKzAwMDA6ICtb MC05YS1mXSsgWzAtOWEtZl0rICt4CiAKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYt NjQvZHQtcmVsci0xYS14MzIuZCBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYS14 MzIuZAppbmRleCA3OGZmZGE5Y2UxNS4uODYzZTk3YTc5ODAgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3Rz dWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYS14MzIuZAorKysgYi9sZC90ZXN0c3VpdGUvbGQteDg2 LTY0L2R0LXJlbHItMWEteDMyLmQKQEAgLTE1LDggKzE1LDggQEAgUmVsb2NhdGlvbiBzZWN0aW9u ICcucmVsYS5wbHQnIGF0IG9mZnNldCAweFswLTlhLWZdKyBjb250YWlucyAxIGVudHJ5OgogCiBS ZWxvY2F0aW9uIHNlY3Rpb24gJy5yZWxyLmR5bicgYXQgb2Zmc2V0IDB4W2EtZjAtOV0rIGNvbnRh aW5zIDIgZW50cmllczoKICMuLi4KLTAwMDA6ICtbMC05YS1mXSsgWzAtOWEtZl0rICsuKiBcKG5l dyBzdGFydGluZyBhZGRyZXNzXCkKLTAwMDE6ICtbMC05YS1mXSsgWzAtOWEtZl0rICsuKiBcKHN0 YXJ0IG9mIGJpdG1hcFwpCiswMDAwOiArWzAtOWEtZl0rIFswLTlhLWZdKyArLioKKzAwMDE6ICtb MC05YS1mXSsgWzAtOWEtZl0rICsuKgogICtbMC05YS1mXSsgKy4qCiAjLi4uCiBTeW1ib2wgdGFi bGUgJy5zeW10YWInIGNvbnRhaW5zIFswLTldKyBlbnRyaWVzOgpkaWZmIC0tZ2l0IGEvbGQvdGVz dHN1aXRlL2xkLXg4Ni02NC9kdC1yZWxyLTFhLmQgYi9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L2R0 LXJlbHItMWEuZAppbmRleCA4ZTA5OTI1NzAzNy4uMzBhZjg3NTM1YzkgMTAwNjQ0Ci0tLSBhL2xk L3Rlc3RzdWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYS5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC14 ODYtNjQvZHQtcmVsci0xYS5kCkBAIC0xNSw4ICsxNSw4IEBAIFJlbG9jYXRpb24gc2VjdGlvbiAn LnJlbGEucGx0JyBhdCBvZmZzZXQgMHhbMC05YS1mXSsgY29udGFpbnMgMSBlbnRyeToKIAogUmVs b2NhdGlvbiBzZWN0aW9uICcucmVsci5keW4nIGF0IG9mZnNldCAweFthLWYwLTldKyBjb250YWlu cyAyIGVudHJpZXM6CiAjLi4uCi0wMDAwOiArWzAtOWEtZl0rIFswLTlhLWZdKyArLiogXChuZXcg c3RhcnRpbmcgYWRkcmVzc1wpCi0wMDAxOiArWzAtOWEtZl0rIFswLTlhLWZdKyArLiogXChzdGFy dCBvZiBiaXRtYXBcKQorMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsgKy4qCiswMDAxOiArWzAt OWEtZl0rIFswLTlhLWZdKyArLioKICArWzAtOWEtZl0rICsuKgogIy4uLgogU3ltYm9sIHRhYmxl ICcuc3ltdGFiJyBjb250YWlucyBbMC05XSsgZW50cmllczoKZGlmZiAtLWdpdCBhL2xkL3Rlc3Rz dWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYi14MzIuZCBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQv ZHQtcmVsci0xYi14MzIuZAppbmRleCBjMmUzYTNhOTMxZi4uM2MzN2JjZDUzNTggMTAwNjQ0Ci0t LSBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYi14MzIuZAorKysgYi9sZC90ZXN0 c3VpdGUvbGQteDg2LTY0L2R0LXJlbHItMWIteDMyLmQKQEAgLTE4LDggKzE4LDggQEAgUmVsb2Nh dGlvbiBzZWN0aW9uICcucmVsYS5wbHQnIGF0IG9mZnNldCAweFswLTlhLWZdKyBjb250YWlucyAx IGVudHJ5OgogCiBSZWxvY2F0aW9uIHNlY3Rpb24gJy5yZWxyLmR5bicgYXQgb2Zmc2V0IDB4W2Et ZjAtOV0rIGNvbnRhaW5zIDIgZW50cmllczoKICMuLi4KLTAwMDA6ICtbMC05YS1mXSsgWzAtOWEt Zl0rICsuKiBcKG5ldyBzdGFydGluZyBhZGRyZXNzXCkKLTAwMDE6ICtbMC05YS1mXSsgWzAtOWEt Zl0rICsuKiBcKHN0YXJ0IG9mIGJpdG1hcFwpCiswMDAwOiArWzAtOWEtZl0rIFswLTlhLWZdKyAr LioKKzAwMDE6ICtbMC05YS1mXSsgWzAtOWEtZl0rICsuKgogICtbMC05YS1mXSsgKy4qCiAjLi4u CiBTeW1ib2wgdGFibGUgJy5zeW10YWInIGNvbnRhaW5zIFswLTldKyBlbnRyaWVzOgpkaWZmIC0t Z2l0IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9kdC1yZWxyLTFiLmQgYi9sZC90ZXN0c3VpdGUv bGQteDg2LTY0L2R0LXJlbHItMWIuZAppbmRleCAwM2UwMjAyZmU4MS4uYmMwN2NmODliMjYgMTAw NjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYi5kCisrKyBiL2xkL3Rl c3RzdWl0ZS9sZC14ODYtNjQvZHQtcmVsci0xYi5kCkBAIC0xOCw4ICsxOCw4IEBAIFJlbG9jYXRp b24gc2VjdGlvbiAnLnJlbGEucGx0JyBhdCBvZmZzZXQgMHhbMC05YS1mXSsgY29udGFpbnMgMSBl bnRyeToKIAogUmVsb2NhdGlvbiBzZWN0aW9uICcucmVsci5keW4nIGF0IG9mZnNldCAweFthLWYw LTldKyBjb250YWlucyAyIGVudHJpZXM6CiAjLi4uCi0wMDAwOiArWzAtOWEtZl0rIFswLTlhLWZd KyArLiogXChuZXcgc3RhcnRpbmcgYWRkcmVzc1wpCi0wMDAxOiArWzAtOWEtZl0rIFswLTlhLWZd KyArLiogXChzdGFydCBvZiBiaXRtYXBcKQorMDAwMDogK1swLTlhLWZdKyBbMC05YS1mXSsgKy4q CiswMDAxOiArWzAtOWEtZl0rIFswLTlhLWZdKyArLioKICArWzAtOWEtZl0rICsuKgogIy4uLgog U3ltYm9sIHRhYmxlICcuc3ltdGFiJyBjb250YWlucyBbMC05XSsgZW50cmllczoKLS0gCjIuNDQK Cg== --000000000000457f380615ed75aa--