Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFzg3-0000mx-39 for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 15:39:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pFzg1-0003bK-Vu for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 15:39:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFzg1-0003aV-2f for pgsql-hackers@lists.postgresql.org; Thu, 12 Jan 2023 15:39:37 +0000 Received: from esa4.fujitsucc.c3s2.iphmx.com ([68.232.151.214]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFzfx-0002A3-CH for pgsql-hackers@postgresql.org; Thu, 12 Jan 2023 15:39:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1673537973; x=1705073973; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=JbDRzcRLtRzZoCOi1e2iKfX6KyuHilQLI1xot/XGuQM=; b=swWpGKS+lfQiPksRvPiSsDHwd9k5oZEBJ7Py/QqRY7NK4yWpbPYrJJxr Rk2qvoldTfqcJRfr4p/VtHuwGUtBu8D3FHJKAjJaEnQEmZ/NOv0JTsV32 1ho2U4f948tmM7nqXSS3XpPzUgEBgbAHW7bKX7ximeAgsHpitn+3n5ov+ nP5vCRqr2j8SX01DP07e4K24xZSq7XW+tlqYIXUfrA1LN/kA6hgfgc/gO E5Dqx0xEKdAJGOIVX5755Kjn9gwuE8zt506wdT4drG6FgkD3h0QBn3YgN Q3YAqknQ8KfwvugnF6mOWEA1ysZuRytcTY+zzZPPMM86ljKI3qt8tirkk A==; X-IronPort-AV: E=McAfee;i="6500,9779,10588"; a="82184859" X-IronPort-AV: E=Sophos;i="5.97,211,1669042800"; d="scan'208,223";a="82184859" Received: from mail-tycjpn01lp2170.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.170]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2023 00:39:27 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ek9T86hJ6sOtUrX6JXWSoB0w6iMl1i1xGr4vrA7/AD7DPdDCraBlyDdbaynfeVwAOe+m75lzXNsQmdS2L2mOTdYYMBzcee8vQXUuy1kP+YvFMPnJ9KHo7svztKeTalq0VyUlvkqP74K0o9ENRM+K//F51pDPgbxVNXyEVth4XTKWh7u2+4aWEqy5nvQYvSP1t0IcdU9VTFTGdOyvEHqIcdrMMNJ0MMtF1vygxCZPdiNidQ41KdPvaBYRBQw0Bv4fgo4fKZjQN6GFCgaK0ntbkwr6EbBXgPtSNVoKbFlFqYuEijn5lgQW38mp4zPslPSiDjqByzOeFGQ53LYnL78lpw== 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=N6FUptlGT65xL6jGeIdw9x8v4yMKs38pSH2cimN+d5k=; b=PHI6PudfBtfBaEKkfsnrwzT5ZCc7YmV4Eghmztrr4QhGMsFK9rZouFJ915CjT6sIvW2d6wtra46vg1fYeQiE/PfwO2Ow9b2+8BrH7evDDA1rhrITGqegy9/MrKseJgz1iqsyfinB2Iy1T4ukygWLyDdvYcTfY8a7JrrNIWcYQMGYhAh0GbNZCTr2pD2mDCXXFpWE3ylK+GTMt4+hrRac9CLBAQh2DcPlPAvlUY7suZ4Ivd9UIjV2F2Xd02q4uQcz7DikTfERtXVPMriH/ZyX1Aw9JPv8onfWJUZ8A7swsAMXkKERyteDkQG0HTyq2ZuXgSbHR4XepCLKXjgXCjOAVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from TYCPR01MB8373.jpnprd01.prod.outlook.com (2603:1096:400:15f::9) by TYCPR01MB10214.jpnprd01.prod.outlook.com (2603:1096:400:1ee::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Thu, 12 Jan 2023 15:39:23 +0000 Received: from TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::941f:893d:69b8:e21a]) by TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::941f:893d:69b8:e21a%9]) with mapi id 15.20.6002.012; Thu, 12 Jan 2023 15:39:23 +0000 From: "Takamichi Osumi (Fujitsu)" To: 'Kyotaro Horiguchi' , "Hayato Kuroda (Fujitsu)" CC: "shveta.malik@gmail.com" , "vignesh21@gmail.com" , "dilipbalaut@gmail.com" , "amit.kapila16@gmail.com" , "euler@eulerto.com" , "m.melihmutlu@gmail.com" , "andres@anarazel.de" , "marcos@f10.com.br" , "pgsql-hackers@postgresql.org" , "smithpb2250@gmail.com" Subject: RE: Time delayed LR (WAS Re: logical replication restrictions) Thread-Topic: Time delayed LR (WAS Re: logical replication restrictions) Thread-Index: AQHY9/SeVGNfJ+eMH0OkVO9Bch6SIa49/p8AgAAf6ACAABrAgIAALyYAgAEoiICAGrgLgIAGnftQgAEcg4CACAUGgIAAVUUAgADhA4CAAJ9SgIAA6ooAgACaBYCAAPtugIAAI30AgAsiVvCAAjbLEIAEQWWAgAGfSACACtcCAIALd3wAgAFMWoCAAC9FAIAA74IAgADRMqA= Date: Thu, 12 Jan 2023 15:39:23 +0000 Message-ID: References: <20230112.120338.534662300633460797.horikyota.ntt@gmail.com> In-Reply-To: <20230112.120338.534662300633460797.horikyota.ntt@gmail.com> Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2023-01-12T15:39:22Z; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=3159b94f-5d54-4b16-8105-19b940aa430a; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYCPR01MB8373:EE_|TYCPR01MB10214:EE_ x-ms-office365-filtering-correlation-id: abe955d8-f9e0-4cbd-ff80-08daf4b32e2c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JFWf9LC0Uhq6w0vNkbTmASV0bcC1DhA7MAAmouRBmzWMHZV89Xx6jIPUnDady697P3G44+/yKLJsyj/BZ9z71IfjYqYCM0QLgMAlMpPv/6ldhLVuHQ/3cYbis57iSjAWe/e8VbaFJ0jQqJGPxBWu8t6ILjznNPrPxDRhtszK1RXqflwut3+lUrukg3ps3SlcvC3nVpYeczA0nKhUa4iWWDuSmfiKVz4MeuL2mK6ytkBfTEkhmbV6I2zzcu7ytP8O28X8ISTc5oVOjMiH0L6ry8f2hIBKZqv1RK8DaughKV/GBvGpQH+NAG0sP/fvlYP/YUrGz7GhiYF0U4Aq5fQB5ZSljpR6uDQrmEehLmQBMTF6DNxIKEw+k/9Oy5InWARZIFQqvXU93fj1l1i0fmK3AyorQyMk0gw2QeQGVoa1PjDlCTzlaN/oDlGeEBtEvz5sDPZM4pvJaaG7kTlgmion7NqltYy7JDjQ+LQujxjaGxfAB9DHbfAhj5hp4KDp/CIUybNu2h8EHS8nFI6G44LDK3FOtf2ANM0CO92kFQKh0Ao81nRim80JdIR7tg7a4WBsQ0T9rxSWKmB15qTQ2XauQzGiqJtdTRr19ja4EjjITZdEwE7sY2d94dHEPsWD/4T7Z+GNkc/HgBYC/k3ePRfLooDkR/iZB75OZ2bWg+Af0MUL8wpsxioUAf3Ly9myHgJiJcSRPyHhdlC8aFK0wBwyGmpEJDqLYxDLf8qI5mCLLwpNknXzNb86NSkREKMlBZE0ow66jdoXyIMGVdkeRZQQdA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB8373.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(39860400002)(136003)(376002)(396003)(366004)(451199015)(1590799012)(41300700001)(66556008)(66899015)(8676002)(122000001)(66476007)(64756008)(66946007)(52536014)(66446008)(76116006)(4326008)(5660300002)(7416002)(1580799009)(6636002)(54906003)(82960400001)(38070700005)(110136005)(316002)(8936002)(2906002)(86362001)(38100700002)(966005)(71200400001)(85182001)(7696005)(478600001)(9686003)(186003)(26005)(99936003)(55016003)(6506007)(53546011)(33656002)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?M09WUGR0UXc5cldpSTkvQ2VjMTNueFRXa0tvZHZWZkpqeFIwck01ZUx0?= =?iso-2022-jp?B?dXhwVENxRWZJcjNPVnhjNzRWTWlXWkJYTU13dUJhOGd2d09VTkNFTDIz?= =?iso-2022-jp?B?NTc4M1R4ZWdFUnIvZDZyaEJ5dXB2SXhVZTY1V2F6Zlp4NDF3ZkNjV0hM?= =?iso-2022-jp?B?ZngzK2dFSm5xOHF3UFR5UU1Jc1V3SFJZQWR0bGhPa2pLUytlNHM4SW5p?= =?iso-2022-jp?B?bmQ2UWJrZzg3SkZkVnFUVjhCZDZJb1c3YzhiMElhK3VxWlFXajE1V004?= =?iso-2022-jp?B?clVmNkh1Z21tSG5yaFpvcDVEZmFBNkhYWFlLSDF1ZjRUbERhR2FvTVY2?= =?iso-2022-jp?B?SEtiVDdwcExCYmdwYVN6TDU4MWZwNzA3RVhya29rL2wrYisxU0NUdFRq?= =?iso-2022-jp?B?RTA5SGVNNXlsSkw1Tjk0bTRDaWExYnRLenc1a09Cb3FZbDVrVEZKMThm?= =?iso-2022-jp?B?RkFBYUR4MDRxWncwMk5LWTljRXlRUXkwcHlKWWRPU0JmLzlDNk9yemND?= =?iso-2022-jp?B?cklXR0JiSTBmaFM0azZEYjJhZFg0cEhvNHIxYzNzWFJ3K0VwbnpvaVlw?= =?iso-2022-jp?B?UTVURzJRMDhCc3VocUxkN3AvWmNPUy8rY3R2UlJDN0hCckd1L252YWl5?= =?iso-2022-jp?B?MHdQU2lWbjhMUlRYQXFnM2RnRnB2bHBUa1Z3UkNSc1h4YTIrUStCeVdI?= =?iso-2022-jp?B?a2UwaWNwckd5K01TK0cySHBvcHVDU3M1NUpRdm5Tc2d2dlpxeGFzNEh6?= =?iso-2022-jp?B?NXFUeG1XTnJ4K2RpcC9obHhsY3NHRjdpUEZ2c0Q3dnN2R1I5WjRBMVor?= =?iso-2022-jp?B?VURFZE9wOHJKUzAwYmVLWlNCbENadThaZXNnN3hSZHNlall6UC9OdTRi?= =?iso-2022-jp?B?NmMyQmpsd1U3eGlKWW8yUFc0Unk4QVBpV2xUc1hKWEJpYlVYZDd6TUZH?= =?iso-2022-jp?B?RW92SVE1VWE4bkJlRE9hMFR3QmpIQW5uZDFWQkxucjZxZEZCYkcralRZ?= =?iso-2022-jp?B?Lyt1QTNMUTVMb3NuQVFjUWJrS0xnaUloU1V1TWJ6WUkzd3dSZTRRRHRs?= =?iso-2022-jp?B?YjI3T2VNMzd2c2l6L0RLd1JYZU9wdFpEc2pzeDlHcjhFa1NmcWM1Qmgy?= =?iso-2022-jp?B?NXk4QVhRdW9MaURwa0VnbE45K05MMmR2RFptajRLS2JVS285MkVySzJ0?= =?iso-2022-jp?B?WUpjYlFaK2xKaHprZGFvMGR1VzJHSDJQVXNON0lIYTIrQ01VdDJ3bHBY?= =?iso-2022-jp?B?Ti9JVGxQVGljeDN0eW96b1FsTnNqb2FtbmNCZHdObnEvQ3J2M21zSDNF?= =?iso-2022-jp?B?TmVuUEl0UHNLOEd0Z1FOeTRFRXEvakJ3bzhjMk8zcElVbUtHOXZjV1FL?= =?iso-2022-jp?B?ODFyZHFBNTZtUHdiMmxCNzFWQmxmc0M5TmMvampmV3FpZVFaVndIRTY3?= =?iso-2022-jp?B?T3hjdXljQ3kvSkZ4K2s4WTBJbnZSQlZPRUpzZFUwbmI1dGhTb2U2NUFw?= =?iso-2022-jp?B?Z0tMS0VSMVZ5TmwrMzY3Lzg5TTZZYkN2R04zOXhTTlAxYVJHTWxvNjFR?= =?iso-2022-jp?B?RUxDVWtzVTUwYjRYd3VLcjhiV2RaUEVlazJ2QklpOUFZZ2txT291THZ0?= =?iso-2022-jp?B?WHNNZ1hZckVndlpaUTFjVzFNSERUOFFDRGF1VWRmYm4xbCt3WUVKeXgw?= =?iso-2022-jp?B?UVNSNXM0VlVYclo2bUorYnpyOFNRQ1dUTkpkek9tV0NpN051N2FCekdj?= =?iso-2022-jp?B?cy9BNUl5MnFiYW5wKytSVU5tWEZVRWxtN1ZRT0Z4My9nYmxxWWJrL0lt?= =?iso-2022-jp?B?NG9rdXRoTlkwbzZVV2FLTi9QbzRiL1poMHRvSHRzQVlXVHVWOW1DVGFF?= =?iso-2022-jp?B?REdVWFRzcXM1SGVFQ2ZtK0s3NHZ5S0xkUVRoWEc3UmVsUG81bmtheXI3?= =?iso-2022-jp?B?U1Awc0FnbVYvRDBVaWNCNGd1alVlYkh3dDlnN2l3SXRwRXNIc2hOeU42?= =?iso-2022-jp?B?RFphMENKckVSY25wRnl0YnNocXJnK3VCdy9OSWIrTTdSWU5NSSsrbHI3?= =?iso-2022-jp?B?VXZzRmJ6MVJma2dKYVBsb2dseGpzaUt4aHBDL3hmSVZINHhwUXZBNkxl?= =?iso-2022-jp?B?Y1JNcXNNYW9GaWFhaEpURktoUFpVYjNMaE1SRnRBNUJyNEdoUyt3elV5?= =?iso-2022-jp?B?Um8yM1ovUlVsYmhnUndXSGcydkNpeTZwLzVPYk8wRVRCaDJyTlE0V0k5?= =?iso-2022-jp?B?eDhzK3BWVlZXNER4MndkcGQ1NEQ0YUZHcWRNcXMreFFJZkRpZFdhc3B6?= =?iso-2022-jp?B?dldQVnZENThiQVE5OXpEMHhoNU4vTDJlT1E9PQ==?= Content-Type: multipart/mixed; boundary="_002_TYCPR01MB83739C6133B50DDA8BAD1601EDFD9TYCPR01MB8373jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VUF/SozmHUg9W2SpD9MIuDq8DFiptXLBvgQ2siQkhSu4mp6gq9klqD3H8V9P7F0WapbKVPKC7L/Kn+hrKvwpeo3whsRLhN7REWwzx7+ir2igvqE60ZIRlXrx3O7PxuWy1p3Ssj4jNXmGqrwd8J2vpzfsMtQLZlCX+PZZsCTtsQ1x67Tdj1Qv/waXZavLKxfrFxJ/2RbQ8HpI8mPoFVZxmTu0IAiQ75ogO9aAp7ogT1lrvijtKeTY8wBb0r+uCRoK+OiW/UyVFfCbC6NmxE6gT7exf+CTr1DRkz5wm54l3XkG2bw9fsDIbZV3bZQsgLcaWFer91eN0x/FFNAGOIu1VLpLu1iyyY7FIBv2bULpR69PxKko7GDqPBnR+iJAZ+mNNQKsNq0+s1x0vlv5peWZurmEASCorTIXAZP4G9iFxjOiIX3sVeS4B4WOb+GNvHcyMw6MPyFGgkxC0XInkSLExC4E+jP9HZ2CG5lLVHrG10x0Dm43byQYjSVqmP3GEOUM/jLkTUjivBAWeViKaCK07x+VE092r0/DBXKuaz92mj4wI2yTjKuCC0vBLsg6cTS1F23NbqKJXGcKuRlYUrHd5FXDVEX7qyR9ITj7r8G2e1O/1+J80VTDrUBkSKmdDj/iSGmWSW8zwIOmR2xa1KzzuEBqBC+MHjKPpw1coC8Ef/v9PzbkoTVNaZublCGYDAocol4bCSE2KA8k51HdNAAkxmvA94CgZY1DwBVQUEVxEQq+8AkoQPKuQRIr0GOniIOI21gXlQ3MbWrHoW5rX9moZ6bY23Xp6Ekm4ufwdHLC+iOfhNBiNi6qGvR1PRXNpcyfyAdoc12EmU1M4wjjm/WBkIUHfREZSHgU6jxzp5OFWATdEC1jWdD6CqX5ZYajpyVk3MKsJWX2ynxWDstBVkeKLg== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB8373.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: abe955d8-f9e0-4cbd-ff80-08daf4b32e2c X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2023 15:39:23.6902 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4Oljh4Fo00ys0Pp/RnJ81+ppHwIFk7auaaDLYAa4+nAC0+RJjVAs5UvkwnZpNF9DZpkhYNzdzykwgCRrgNV+rv3j0BUl00f0oN9Ap+d+d2Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10214 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYCPR01MB83739C6133B50DDA8BAD1601EDFD9TYCPR01MB8373jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable On Thursday, January 12, 2023 12:04 PM Kyotaro Horiguchi wrote: > At Wed, 11 Jan 2023 12:46:24 +0000, "Hayato Kuroda (Fujitsu)" > wrote in > > them. Which version is better? >=20 >=20 > Some comments by a quick loock, different from the above. Horiguchi-san, thanks for your review ! > + CONNECTION 'host=3D192.168.1.50 port=3D5432 user=3Dfoo > dbname=3Dfoodb' >=20 > I understand that we (not PG people, but IT people) are supposed to use i= n > documents a certain set of special addresses that is guaranteed not to be > routed in the field. >=20 > > TEST-NET-1 : 192.0.2.0/24 > > TEST-NET-2 : 198.51.100.0/24 > > TEST-NET-3 : 203.0.113.0/24 >=20 > (I found 192.83.123.89 in the postgres_fdw doc, but it'd be another issue= ..) Fixed. If necessary we can create another thread for this. > + if (strspn(tmp, "-0123456789 ") =3D=3D strlen(tmp)) >=20 > Do we need to bother spending another memory block for apparent non-digit= s > here? Yes. The characters are necessary to handle an issue reported in [1]. The issue happened if the user inputs a negative value, then the length comparison became different between strspn and strlen and the input value was recognized as seconds, when the unit wasn't described. This led to a wrong error message for the user. Those addition of such characters solve the issue. > + errmsg(INT64_FORMAT " ms > is outside the valid range for parameter > +\"%s\"", >=20 > We don't use INT64_FORMAT in translatable message strings. Cast then > use %lld instead. Thanks for teaching us. Fixed. > This message looks unfriendly as it doesn't suggest the valid range, and = it > shows the input value in a different unit from what was in the input. A I= think we > can spell it as "\"%s\" is outside the valid range for subsciription para= meter > \"%s\" (0 .. in millisecond)" Makes sense. I incorporated the valid range with the aligned format of reco= very_min_apply_delay. FYI, the physical replication's GUC doesn't write the unites for the range = like below. I followed and applied this style. --- LOG: -1 ms is outside the valid range for parameter "recovery_min_apply_de= lay" (0 .. 2147483647) FATAL: configuration file "/home/k5user/new/pg/l/make_v15/slave/postgresql= .conf" contains errors --- > + int64 min_apply_delay; > .. > + if (ms < 0 || ms > INT_MAX) >=20 > Why is the variable wider than required? You are right. Fixed. > + errmsg("%s and %s are mutually > exclusive options", > + "min_apply_delay > 0", > "streaming =3D parallel")); >=20 > Mmm. Couldn't we refuse 0 as min_apply_delay? Sorry, the previous patch's behavior wasn't consistent with this error mess= age. In the previous patch, if we conducted alter subscription with stream =3D parallel and min_apply_delay =3D 0 (from a positive value) = at the same time, the alter command failed, although this should succeed by this time-delayed= feature specification. We fixed this part accordingly by some more tests in AlterSubscription(). By the way, we should allow users to change min_apply_dealy to 0 whenever they want from different value. Then, we didn't restrict this kind of operation. > + sub->minapplydelay > 0) > ... > + if (opts.min_apply_delay > 0 && >=20 > Is there any reason for the differenciation? Yes. The former is the object for an existing subscription configuration. For example, if we alter subscription with setting streaming =3D 'parallel' for a subscription created with min_apply_delay =3D '1 day', we need to reject the alter command. The latter is new settings. > + > errmsg("cannot set %s for subscription with %s", > + > "streaming =3D parallel", "min_apply_delay > 0")); >=20 > I think that this shoud be more like human-speking. Say, "cannot enable > min_apply_delay for subscription in parallel streaming mode" or something= .. > The same is applicable to the nearby message. Reworded the error messages. Please check. > +static void maybe_delay_apply(TimestampTz ts); >=20 > apply_spooled_messages(FileSet *stream_fileset, TransactionId xid, > - XLogRecPtr lsn) > + XLogRecPtr lsn, TimestampTz ts) >=20 > "ts" looks too generic. Couldn't it be more specific? > We need a explanation for the parameter in the function comment. Changed it to finish_ts, since it indicates commit/prepare time. This terminology should be aligned with finish lsn. > + if (!am_parallel_apply_worker()) > + { > + Assert(ts > 0); > + maybe_delay_apply(ts); >=20 > It seems to me better that the if condition and assertion are checked ins= ide > maybe_delay_apply(). Fixed. [1] - https://www.postgresql.org/message-id/CALDaNm3Bpzhh60nU-keuGxMPb-Ohcq= sfpCN3ysfCfCJ-2ShYPA%40mail.gmail.com Best Regards, Takamichi Osumi --_002_TYCPR01MB83739C6133B50DDA8BAD1601EDFD9TYCPR01MB8373jpnp_ Content-Type: application/octet-stream; name="v15-0001-Time-delayed-logical-replication-subscriber.patch" Content-Description: v15-0001-Time-delayed-logical-replication-subscriber.patch Content-Disposition: attachment; filename="v15-0001-Time-delayed-logical-replication-subscriber.patch"; size=81515; creation-date="Thu, 12 Jan 2023 15:36:14 GMT"; modification-date="Thu, 12 Jan 2023 15:36:14 GMT" Content-Transfer-Encoding: base64 RnJvbSBhZWM3ZWM0NThlMjJmMWE3NWUwNjc4OWExYjM2YjQ0MTkxZDZiNzYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthbWljaGkgT3N1bWkgPG9zdW1pLnRha2FtaWNoaUBmdWpp dHN1LmNvbT4KRGF0ZTogVGh1LCAxMiBKYW4gMjAyMyAxNTowNTo1OSArMDAwMApTdWJqZWN0OiBb UEFUQ0ggdjE1XSBUaW1lLWRlbGF5ZWQgbG9naWNhbCByZXBsaWNhdGlvbiBzdWJzY3JpYmVyCgpT aW1pbGFyIHRvIHBoeXNpY2FsIHJlcGxpY2F0aW9uLCBhIHRpbWUtZGVsYXllZCBjb3B5IG9mIHRo ZSBkYXRhIGZvcgpsb2dpY2FsIHJlcGxpY2F0aW9uIGlzIHVzZWZ1bCBmb3Igc29tZSBzY2VuYXJp b3MgKHBhcnRpY3VsYXJseSB0byBmaXgKZXJyb3JzIHRoYXQgbWlnaHQgY2F1c2UgZGF0YSBsb3Nz KS4KCklmIHRoZSBzdWJzY3JpcHRpb24gc2V0cyBtaW5fYXBwbHlfZGVsYXkgcGFyYW1ldGVyLCB0 aGUgbG9naWNhbApyZXBsaWNhdGlvbiB3b3JrZXIgd2lsbCBkZWxheSB0aGUgdHJhbnNhY3Rpb24g Y29tbWl0IGZvciBtaW5fYXBwbHlfZGVsYXkKbWlsbGlzZWNvbmRzLgoKVGhlIGRlbGF5IGlzIGNh bGN1bGF0ZWQgYmV0d2VlbiB0aGUgV0FMIHRpbWUgc3RhbXAgYW5kIHRoZSBjdXJyZW50IHRpbWUK b24gdGhlIHN1YnNjcmliZXIuCgpUaGUgZGVsYXkgb2NjdXJzIG9ubHkgb24gV0FMIHJlY29yZHMg Zm9yIHRyYW5zYWN0aW9uIGJlZ2lucy4gVGhlIG1haW4KcmVhc29uIGlzIHRvIGF2b2lkIGtlZXBp bmcgYSB0cmFuc2FjdGlvbiBvcGVuIGZvciBhIGxvbmcgdGltZS4gUmVndWxhcgphbmQgcHJlcGFy ZWQgdHJhbnNhY3Rpb25zIGFyZSBjb3ZlcmVkLiBTdHJlYW1lZCB0cmFuc2FjdGlvbnMgYXJlIGFs c28KY292ZXJlZC4KClVzaW5nIHRoaXMgZmVhdHVyZSB3aXRoIHBhcmFsbGVsIGFwcGx5IGZlYXR1 cmUgaXMgcHJvaGliaXRlZC4KCkF1dGhvcjogRXVsZXIgVGF2ZWlyYQpEaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBQi1KTHdZT1l3TD1YVHlBWEtpSDVDdE1fVm04S2pLaDdhYWl0Q0t2 bUNoNHJ6cjVwUUBtYWlsLmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s ICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAg ICAgICAgICAgICAgICAgICAgfCAgMTIgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwgICAgICAgICB8ICAgNyArCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlw dGlvbi5zZ21sICAgICAgfCAgIDUgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlw dGlvbi5zZ21sICAgICB8ICA1OSArKysrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2Ny aXB0aW9uLmMgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3 cy5zcWwgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlv bmNtZHMuYyAgICAgICB8ICA5MiArKysrKysrKy0KIC4uLi9yZXBsaWNhdGlvbi9sb2dpY2FsL2Fw cGx5cGFyYWxsZWx3b3JrZXIuYyB8ICAgMyArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC93b3JrZXIuYyAgICAgIHwgMTY2ICsrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC90aW1lc3RhbXAuYyAgICAgICAgICAgICB8ICAyOSArKysKIHNyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxNiArLQogc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC9kZXNj cmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5oICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvZGF0YXR5cGUv dGltZXN0YW1wLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0 YW1wLmggICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3Vic2NyaXB0aW9uLm91dCAgICB8IDE4NSArKysrKysrKysrKy0tLS0tLS0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICAgICB8ICAyNSArKysKIHNyYy90ZXN0L3N1 YnNjcmlwdGlvbi9tZXNvbi5idWlsZCAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzJfYXBwbHlfZGVsYXkucGwgICAgfCAxNzAgKysrKysrKysrKysrKysrKwog MjMgZmlsZXMgY2hhbmdlZCwgNzA4IGluc2VydGlvbnMoKyksIDEwMiBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfYXBwbHlfZGVsYXku cGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCmluZGV4IGMxZTQwNDgwNTQuLmJmM2MwNTI0MWMgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCkBAIC03ODczLDYgKzc4NzMsMTUgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0 O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAg IDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3VibWluYXBwbHlkZWxheTwvc3RydWN0ZmllbGQ+IDx0 eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg bGVuZ3RoIG9mIHRpbWUgKG1zKSB0byBkZWxheSB0aGUgYXBwbGljYXRpb24gb2YgY2hhbmdlcy4K KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+c3VibmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBl Pm5hbWU8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNzc1NzRlMmQ0ZS4uODljZGMwYTc1YiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbApAQCAtNDc1Myw2ICs0NzUzLDE4IEBAIEFOWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0iCiAgICAg ICAgdGhlIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBmaWxlIG9yIG9uIHRo ZSBzZXJ2ZXIKICAgICAgICBjb21tYW5kIGxpbmUuCiAgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBGb3IgdGltZSBkZWxheWVkIGxvZ2ljYWwgcmVwbGljYXRpb24sIHRoZSBhcHBs eSB3b3JrZXIgc2VuZHMgYSBTdGFuZGJ5CisgICAgICAgU3RhdHVzIFVwZGF0ZSBtZXNzYWdlIHRv IHRoZSBjb3JyZXNwb25kaW5nIHB1Ymxpc2hlciBwZXIgdGhlIGluZGljYXRlZAorICAgICAgIHRp bWUgb2YgdGhpcyBwYXJhbWV0ZXIuIFRoZXJlZm9yZSwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgbG9u Z2VyIHRoYW4KKyAgICAgICA8bGl0ZXJhbD53YWxfc2VuZGVyX3RpbWVvdXQ8L2xpdGVyYWw+IG9u IHRoZSBwdWJsaXNoZXIsIHRoZW4gdGhlCisgICAgICAgd2Fsc2VuZGVyIGRvZXNuJ3QgZ2V0IGFu eSB1cGRhdGUgbWVzc2FnZSBkdXJpbmcgdGhlIGRlbGF5IGFuZCByZXBlYXRlZGx5CisgICAgICAg dGVybWluYXRlcyBkdWUgdG8gdGhlIHRpbWVvdXQgZXJyb3JzLiBIZW5jZSwgbWFrZSBzdXJlIHRo aXMgcGFyYW1ldGVyIGlzCisgICAgICAgc2hvcnRlciB0aGFuIHRoZSA8bGl0ZXJhbD53YWxfc2Vu ZGVyX3RpbWVvdXQ8L2xpdGVyYWw+IG9mIHRoZSBwdWJsaXNoZXIuCisgICAgICAgSWYgdGhpcyBw YXJhbWV0ZXIgaXMgc2V0IHRvIHplcm8gd2l0aCB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24sIHRo ZQorICAgICAgIGFwcGx5IHdvcmtlciBkb2Vzbid0IHNlbmQgYW55IGZlZWRiYWNrIG1lc3NhZ2Vz IGR1cmluZyB0aGUKKyAgICAgICA8bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xpdGVyYWw+Lgor ICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDU0ZjQ4YmU4N2YuLjY0MDc4 MDQ1NDcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjQ3LDYgKzI0 NywxMyBAQAogICAgdGFyZ2V0IHRhYmxlLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUg c3Vic2NyaWJlciByZXBsaWNhdGlvbiBjYW4gYmUgaW5zdHJ1Y3RlZCB0byBsYWcgYmVoaW5kIHRo ZSBwdWJsaXNoZXIKKyAgIHNpZGUgY2hhbmdlcyBieSBzcGVjaWZ5aW5nIHRoZSA8bGl0ZXJhbD5t aW5fYXBwbHlfZGVsYXk8L2xpdGVyYWw+CisgICBzdWJzY3JpcHRpb24gcGFyYW1ldGVyLiBTZWUg PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPiBmb3IKKyAgIGRldGFpbHMu CisgIDwvcGFyYT4KKwogICA8c2VjdDIgaWQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tc3Vic2NyaXB0 aW9uLXNsb3QiPgogICAgPHRpdGxlPlJlcGxpY2F0aW9uIFNsb3QgTWFuYWdlbWVudDwvdGl0bGU+ CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDFlOGQ3MjA2 MmIuLmQ2M2FmZjFiOTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2Ny aXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dt bApAQCAtMjEzLDggKzIxMyw5IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICBhcmUg PGxpdGVyYWw+c2xvdF9uYW1lPC9saXRlcmFsPiwKICAgICAgIDxsaXRlcmFsPnN5bmNocm9ub3Vz X2NvbW1pdDwvbGl0ZXJhbD4sCiAgICAgICA8bGl0ZXJhbD5iaW5hcnk8L2xpdGVyYWw+LCA8bGl0 ZXJhbD5zdHJlYW1pbmc8L2xpdGVyYWw+LAotICAgICAgPGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJv cjwvbGl0ZXJhbD4sIGFuZAotICAgICAgPGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPi4KKyAgICAg IDxsaXRlcmFsPmRpc2FibGVfb25fZXJyb3I8L2xpdGVyYWw+LAorICAgICAgPGxpdGVyYWw+b3Jp Z2luPC9saXRlcmFsPiwgYW5kCisgICAgICA8bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xpdGVy YWw+LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5Pgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBlYmE3MmM2YWY2 Li5kYzMzMGU4ZGI3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3Jp cHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bApAQCAtMzQ5LDcgKzM0OSw0NyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgICAgICAg PC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgotICAg ICAgPC92YXJpYWJsZWxpc3Q+PC9wYXJhPgorCisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg ICAgPHRlcm0+PGxpdGVyYWw+bWluX2FwcGx5X2RlbGF5PC9saXRlcmFsPiAoPHR5cGU+aW50ZWdl cjwvdHlwZT4pPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICBCeSBkZWZhdWx0LCB0aGUgc3Vic2NyaWJlciBhcHBsaWVzIGNoYW5nZXMgYXMgc29v biBhcyBwb3NzaWJsZS4gQXMKKyAgICAgICAgICB3aXRoIHRoZSBwaHlzaWNhbCByZXBsaWNhdGlv biBmZWF0dXJlCisgICAgICAgICAgKDx4cmVmIGxpbmtlbmQ9Imd1Yy1yZWNvdmVyeS1taW4tYXBw bHktZGVsYXkiLz4pLCBpdCBjYW4gYmUgdXNlZnVsIHRvCisgICAgICAgICAgaGF2ZSBhIHRpbWUt ZGVsYXllZCBsb2dpY2FsIHJlcGxpY2EuIFRoaXMgcGFyYW1ldGVyIGxldHMgdGhlIHVzZXIgdG8K KyAgICAgICAgICBkZWxheSB0aGUgYXBwbGljYXRpb24gb2YgY2hhbmdlcyBieSBhIHNwZWNpZmll ZCBhbW91bnQgb2YgdGltZS4gSWYgdGhpcworICAgICAgICAgIHZhbHVlIGlzIHNwZWNpZmllZCB3 aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBhcyBtaWxsaXNlY29uZHMuIFRoZQorICAgICAgICAg IGRlZmF1bHQgaXMgemVybyhubyBkZWxheSkuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8 cGFyYT4KKyAgICAgICAgICBUaGUgZGVsYXkgb2NjdXJzIG9ubHkgb24gV0FMIHJlY29yZHMgZm9y IHRyYW5zYWN0aW9uIGJlZ2lucyBhbmQgYWZ0ZXIKKyAgICAgICAgICB0aGUgaW5pdGlhbCB0YWJs ZSBzeW5jaHJvbml6YXRpb24uIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlCisgICAgICAgICAgcmVw bGljYXRpb24gZGVsYXkgYmV0d2VlbiBwdWJsaXNoZXIgYW5kIHN1YnNjcmliZXIgZXhjZWVkcyB0 aGUgdmFsdWUKKyAgICAgICAgICBvZiB0aGlzIHBhcmFtZXRlciwgaW4gd2hpY2ggY2FzZSBubyBk ZWxheSBpcyBhZGRlZC4gTm90ZSB0aGF0IHRoZQorICAgICAgICAgIGRlbGF5IGlzIGNhbGN1bGF0 ZWQgYmV0d2VlbiB0aGUgV0FMIHRpbWUgc3RhbXAgYXMgd3JpdHRlbiBvbgorICAgICAgICAgIHB1 Ymxpc2hlciBhbmQgdGhlIGN1cnJlbnQgdGltZSBvbiB0aGUgc3Vic2NyaWJlci4gVGltZSBzcGVu dCBpbiBsb2dpY2FsCisgICAgICAgICAgZGVjb2RpbmcgYW5kIGluIHRyYW5zZmVycmluZyB0aGUg dHJhbnNhY3Rpb24gbWF5IHJlZHVjZSB0aGUgYWN0dWFsIHdhaXQKKyAgICAgICAgICB0aW1lLiBJ ZiB0aGUgc3lzdGVtIGNsb2NrcyBvbiBwdWJsaXNoZXIgYW5kIHN1YnNjcmliZXIgYXJlIG5vdAor ICAgICAgICAgIHN5bmNocm9uaXplZCwgdGhpcyBtYXkgbGVhZCB0byBhcHBseSBjaGFuZ2VzIGVh cmxpZXIgdGhhbiBleHBlY3RlZCwKKyAgICAgICAgICBidXQgdGhpcyBpcyBub3QgYSBtYWpvciBp c3N1ZSBiZWNhdXNlIHRoaXMgcGFyYW1ldGVyIGlzIHR5cGljYWxseSBtdWNoCisgICAgICAgICAg bGFyZ2VyIHRoYW4gdGhlIHRpbWUgZGV2aWF0aW9ucyBiZXR3ZWVuIHNlcnZlcnMuIE5vdGUgdGhh dCBpZiB0aGlzCisgICAgICAgICAgcGFyYW1ldGVyIGlzIHNldCB0byBhIGxvbmcgZGVsYXksIHRo ZSByZXBsaWNhdGlvbiB3aWxsIHN0b3AgaWYgdGhlCisgICAgICAgICAgcmVwbGljYXRpb24gc2xv dCBmYWxscyBiZWhpbmQgdGhlIGN1cnJlbnQgTFNOIGJ5IG1vcmUgdGhhbgorICAgICAgICAgIDxs aW5rIGxpbmtlbmQ9Imd1Yy1tYXgtc2xvdC13YWwta2VlcC1zaXplIj48bGl0ZXJhbD5tYXhfc2xv dF93YWxfa2VlcF9zaXplPC9saXRlcmFsPjwvbGluaz4uCisgICAgICAgICA8L3BhcmE+CisgICAg ICAgICA8d2FybmluZz4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBEZWxheWluZyB0 aGUgcmVwbGljYXRpb24gY2FuIG1lYW4gdGhlcmUgaXMgYSBtdWNoIGxvbmdlciB0aW1lIGJldHdl ZW4gbWFraW5nCisgICAgICAgICAgICBhIGNoYW5nZSBvbiB0aGUgcHVibGlzaGVyLCBhbmQgdGhh dCBjaGFuZ2UgYmVpbmcgY29tbWl0dGVkIG9uIHRoZSBzdWJzY3JpYmVyLgorICAgICAgICAgICAg VGhpcyBjYW4gaGF2ZSBhIGJpZyBpbXBhY3Qgb24gc3luY2hyb25vdXMgcmVwbGljYXRpb24uCisg ICAgICAgICAgICBTZWUgPHhyZWYgbGlua2VuZD0iZ3VjLXN5bmNocm9ub3VzLWNvbW1pdCIvPi4K KyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPC93YXJuaW5nPgorICAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAg IDwvcGFyYT4KIAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTQxMyw2 ICs0NTMsMTEgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAgIHB1Ymxpc2hlZCB3aXRoIGRp ZmZlcmVudCBjb2x1bW4gbGlzdHMgYXJlIG5vdCBzdXBwb3J0ZWQuCiAgIDwvcGFyYT4KIAorICA8 cGFyYT4KKyAgIFNldHRpbmcgc3RyZWFtaW5nIHRvIDxsaXRlcmFsPnBhcmFsbGVsPC9saXRlcmFs PiBtb2RlIGFuZCA8bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xpdGVyYWw+CisgICBhdCB0aGUg c2FtZSB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFdl IGFsbG93IG5vbi1leGlzdGVudCBwdWJsaWNhdGlvbnMgdG8gYmUgc3BlY2lmaWVkIHNvIHRoYXQg dXNlcnMgY2FuIGFkZAogICAgdGhvc2UgbGF0ZXIuIFRoaXMgbWVhbnMKQEAgLTQ3Miw2ICs1MTcs MTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiBteXN1YgogICAgICAgICBQVUJMSUNBVElPTiBpbnNl cnRfb25seQogICAgICAgICAgICAgICAgV0lUSCAoZW5hYmxlZCA9IGZhbHNlKTsKIDwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgc3Vic2NyaXB0aW9uIHRv IGEgcmVtb3RlIHNlcnZlciB0aGF0IHJlcGxpY2F0ZXMgdGFibGVzIGluCisgICB0aGUgPGxpdGVy YWw+bXlwdWI8L2xpdGVyYWw+IHB1YmxpY2F0aW9uIGFuZCBzdGFydHMgcmVwbGljYXRpbmcgaW1t ZWRpYXRlbHkKKyAgIG9uIGNvbW1pdC4gUHJlLWV4aXN0aW5nIGRhdGEgaXMgbm90IGNvcGllZC4g VGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgaXMKKyAgIGRlbGF5ZWQgYnkgNCBob3Vycy4KKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBTVUJTQ1JJUFRJT04gbXlzdWIKKyAgICAgICAgIENPTk5F Q1RJT04gJ2hvc3Q9MTkyLjAuMi40IHBvcnQ9NTQzMiB1c2VyPWZvbyBkYm5hbWU9Zm9vZGInCisg ICAgICAgIFBVQkxJQ0FUSU9OIG15cHViCisgICAgICAgICAgICAgICBXSVRIIChjb3B5X2RhdGEg PSBmYWxzZSwgbWluX2FwcGx5X2RlbGF5ID0gJzRoJyk7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KICA8L3JlZnNlY3QxPgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2Ny aXB0aW9uLmMKaW5kZXggYTU2YWUzMTFjMy4uYzc2N2NjMWMzYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jCkBAIC02NCw2ICs2NCw3IEBAIEdldFN1YnNjcmlwdGlvbihPaWQg c3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAlzdWItPm9pZCA9IHN1YmlkOwogCXN1Yi0+ZGJpZCA9 IHN1YmZvcm0tPnN1YmRiaWQ7CiAJc3ViLT5za2lwbHNuID0gc3ViZm9ybS0+c3Vic2tpcGxzbjsK KwlzdWItPm1pbmFwcGx5ZGVsYXkgPSBzdWJmb3JtLT5zdWJtaW5hcHBseWRlbGF5OwogCXN1Yi0+ bmFtZSA9IHBzdHJkdXAoTmFtZVN0cihzdWJmb3JtLT5zdWJuYW1lKSk7CiAJc3ViLT5vd25lciA9 IHN1YmZvcm0tPnN1Ym93bmVyOwogCXN1Yi0+ZW5hYmxlZCA9IHN1YmZvcm0tPnN1YmVuYWJsZWQ7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggNDQ3YzliOTcwZi4uNDAwNGZj ZDBjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTI5OSw5ICsxMjk5 LDEwIEBAIFJFVk9LRSBBTEwgT04gcGdfcmVwbGljYXRpb25fb3JpZ2luX3N0YXR1cyBGUk9NIHB1 YmxpYzsKIAogLS0gQWxsIGNvbHVtbnMgb2YgcGdfc3Vic2NyaXB0aW9uIGV4Y2VwdCBzdWJjb25u aW5mbyBhcmUgcHVibGljbHkgcmVhZGFibGUuCiBSRVZPS0UgQUxMIE9OIHBnX3N1YnNjcmlwdGlv biBGUk9NIHB1YmxpYzsKLUdSQU5UIFNFTEVDVCAob2lkLCBzdWJkYmlkLCBzdWJza2lwbHNuLCBz dWJuYW1lLCBzdWJvd25lciwgc3ViZW5hYmxlZCwKLSAgICAgICAgICAgICAgc3ViYmluYXJ5LCBz dWJzdHJlYW0sIHN1YnR3b3BoYXNlc3RhdGUsIHN1YmRpc2FibGVvbmVyciwKLSAgICAgICAgICAg ICAgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2lu KQorR1JBTlQgU0VMRUNUIChvaWQsIHN1YmRiaWQsIHN1YnNraXBsc24sIHN1Ym1pbmFwcGx5ZGVs YXksIHN1Ym5hbWUsIHN1Ym93bmVyLAorICAgICAgICAgICAgICBzdWJlbmFibGVkLCBzdWJiaW5h cnksIHN1YnN0cmVhbSwgc3VidHdvcGhhc2VzdGF0ZSwKKyAgICAgICAgICAgICAgc3ViZGlzYWJs ZW9uZXJyLCBzdWJzbG90bmFtZSwgc3Vic3luY2NvbW1pdCwgc3VicHVibGljYXRpb25zLAorICAg ICAgICAgICAgICBzdWJvcmlnaW4pCiAgICAgT04gcGdfc3Vic2NyaXB0aW9uIFRPIHB1YmxpYzsK IAogQ1JFQVRFIFZJRVcgcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHMgQVMKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCBiYWZmMDBkZDc0Li5iMGRkZDUzMGUzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC02Niw2ICs2Niw3IEBA CiAjZGVmaW5lIFNVQk9QVF9ESVNBQkxFX09OX0VSUgkJMHgwMDAwMDQwMAogI2RlZmluZSBTVUJP UFRfTFNOCQkJCQkweDAwMDAwODAwCiAjZGVmaW5lIFNVQk9QVF9PUklHSU4JCQkJMHgwMDAwMTAw MAorI2RlZmluZSBTVUJPUFRfTUlOX0FQUExZX0RFTEFZCQkweDAwMDAyMDAwCiAKIC8qIGNoZWNr IGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMp ICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCkBAIC05MCw2ICs5MSw3IEBAIHR5cGVkZWYg c3RydWN0IFN1Yk9wdHMKIAlib29sCQlkaXNhYmxlb25lcnI7CiAJY2hhcgkgICAqb3JpZ2luOwog CVhMb2dSZWNQdHIJbHNuOworCWludAkJCW1pbl9hcHBseV9kZWxheTsKIH0gU3ViT3B0czsKIAog c3RhdGljIExpc3QgKmZldGNoX3RhYmxlX2xpc3QoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIExp c3QgKnB1YmxpY2F0aW9ucyk7CkBAIC0xNDYsNiArMTQ4LDggQEAgcGFyc2Vfc3Vic2NyaXB0aW9u X29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCW9wdHMt PmRpc2FibGVvbmVyciA9IGZhbHNlOwogCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BU X09SSUdJTikpCiAJCW9wdHMtPm9yaWdpbiA9IHBzdHJkdXAoTE9HSUNBTFJFUF9PUklHSU5fQU5Z KTsKKwlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9NSU5fQVBQTFlfREVMQVkpKQor CQlvcHRzLT5taW5fYXBwbHlfZGVsYXkgPSAwOwogCiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZv cmVhY2gobGMsIHN0bXRfb3B0aW9ucykKQEAgLTMyNCw2ICszMjgsNDMgQEAgcGFyc2Vfc3Vic2Ny aXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJ CQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfTFNOOwogCQkJb3B0cy0+bHNuID0gbHNu OwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfTUlOX0FQUExZ X0RFTEFZKSAmJgorCQkJCSBzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJtaW5fYXBwbHlfZGVsYXki KSA9PSAwKQorCQl7CisJCQljaGFyCSAgICp2YWwsCisJCQkJCSAgICp0bXA7CisJCQlJbnRlcnZh bCAgICppbnRlcnZhbDsKKwkJCWludDY0CQltczsKKworCQkJaWYgKElzU2V0KG9wdHMtPnNwZWNp ZmllZF9vcHRzLCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKSkKKwkJCQllcnJvckNvbmZsaWN0aW5n RGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKworCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VC T1BUX01JTl9BUFBMWV9ERUxBWTsKKwkJCXRtcCA9IGRlZkdldFN0cmluZyhkZWZlbCk7CisKKwkJ CS8qCisJCQkgKiBJZiBubyB1bml0IHdhcyBzcGVjaWZpZWQsIHRoZW4gZXhwbGljaXRseSBhZGQg J21zJyBvdGhlcndpc2UKKwkJCSAqIHRoZSBpbnRlcnZhbF9pbiBmdW5jdGlvbiB3b3VsZCBhc3N1 bWUgJ3NlY29uZHMnLgorCQkJICovCisJCQlpZiAoc3Ryc3BuKHRtcCwgIi0wMTIzNDU2Nzg5ICIp ID09IHN0cmxlbih0bXApKQorCQkJCXZhbCA9IHBzcHJpbnRmKCIlc21zIiwgdG1wKTsKKwkJCWVs c2UKKwkJCQl2YWwgPSB0bXA7CisKKwkJCWludGVydmFsID0gRGF0dW1HZXRJbnRlcnZhbFAoRGly ZWN0RnVuY3Rpb25DYWxsMyhpbnRlcnZhbF9pbiwKKwkJCQkJCQkJCQkJCQkJCSBDU3RyaW5nR2V0 RGF0dW0odmFsKSwKKwkJCQkJCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKEludmFsaWRPaWQp LAorCQkJCQkJCQkJCQkJCQkJIEludDMyR2V0RGF0dW0oLTEpKSk7CisKKwkJCW1zID0gaW50ZXJ2 YWwybXMoaW50ZXJ2YWwpOworCQkJaWYgKG1zIDwgMCB8fCBtcyA+IElOVF9NQVgpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9S QU5HRSksCisJCQkJCQllcnJtc2coIiVsbGQgbXMgaXMgb3V0c2lkZSB0aGUgdmFsaWQgcmFuZ2Ug Zm9yIHBhcmFtZXRlciBcIiVzXCIgKDAgLi4gJWQpIiwKKwkJCQkJCQkgICAobG9uZyBsb25nKSBt cywgIm1pbl9hcHBseV9kZWxheSIsIElOVF9NQVgpKTsKKworCQkJb3B0cy0+bWluX2FwcGx5X2Rl bGF5ID0gbXM7CisJCX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNDA0LDYgKzQ0NSwxNyBAQCBwYXJzZV9zdWJzY3Jp cHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJ CQkJCQkJInNsb3RfbmFtZSA9IE5PTkUiLCAiY3JlYXRlX3Nsb3QgPSBmYWxzZSIpKSk7CiAJCX0K IAl9CisKKwkvKiBUZXN0IHRoZSBjb21iaW5hdGlvbiBvZiBzdHJlYW1pbmcgbW9kZSBhbmQgbWlu X2FwcGx5X2RlbGF5ICovCisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfTUlOX0FQ UExZX0RFTEFZKSAmJgorCQlvcHRzLT5taW5fYXBwbHlfZGVsYXkgPiAwKQorCXsKKwkJaWYgKG9w dHMtPnN0cmVhbWluZyA9PSBMT0dJQ0FMUkVQX1NUUkVBTV9QQVJBTExFTCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQllcnJtc2co IiVzIGFuZCAlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnMiLAorCQkJCQkJICAgIm1p bl9hcHBseV9kZWxheSA+IDAiLCAic3RyZWFtaW5nID0gcGFyYWxsZWwiKSk7CisJfQogfQogCiAv KgpAQCAtNTYwLDcgKzYxMiw4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCSAgU1VCT1BUX1NMT1RfTkFN RSB8IFNVQk9QVF9DT1BZX0RBVEEgfAogCQkJCQkgIFNVQk9QVF9TWU5DSFJPTk9VU19DT01NSVQg fCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BUX1RXT1BI QVNFX0NPTU1JVCB8Ci0JCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwgU1VCT1BUX09SSUdJ Tik7CisJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJ CSAgU1VCT1BUX01JTl9BUFBMWV9ERUxBWSk7CiAJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMo cHN0YXRlLCBzdG10LT5vcHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwogCiAJLyoKQEAg LTYyNSw2ICs2NzgsNyBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc3ViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJkYmlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKE15RGF0YWJhc2VJZCk7 CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNraXBsc24gLSAxXSA9IExTTkdldERh dHVtKEludmFsaWRYTG9nUmVjUHRyKTsKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vi bWluYXBwbHlkZWxheSAtIDFdID0gSW50NjRHZXREYXR1bShvcHRzLm1pbl9hcHBseV9kZWxheSk7 CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym5hbWUgLSAxXSA9CiAJCURpcmVjdEZ1 bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0oc3RtdC0+c3VibmFtZSkpOwogCXZh bHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1 bShvd25lcik7CkBAIC0xMDU0LDcgKzExMDgsNyBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlzdXBwb3J0ZWRf b3B0cyA9IChTVUJPUFRfU0xPVF9OQU1FIHwKIAkJCQkJCQkJICBTVUJPUFRfU1lOQ0hST05PVVNf Q09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJCQkJCSAgU1VCT1BUX1NUUkVBTUlORyB8IFNV Qk9QVF9ESVNBQkxFX09OX0VSUiB8Ci0JCQkJCQkJCSAgU1VCT1BUX09SSUdJTik7CisJCQkJCQkJ CSAgU1VCT1BUX09SSUdJTiB8IFNVQk9QVF9NSU5fQVBQTFlfREVMQVkpOwogCiAJCQkJcGFyc2Vf c3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25zLAogCQkJCQkJCQkJCSAg IHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CkBAIC0xMDk4LDYgKzExNTIsMjAgQEAgQWx0ZXJTdWJz Y3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQs CiAKIAkJCQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX1NUUkVBTUlORykp CiAJCQkJeworCQkJCQkvKgorCQkJCQkgKiBUZXN0IHRoZSBjb21iaW5hdGlvbiBvZiBzdHJlYW1p bmcgbW9kZSBhbmQKKwkJCQkJICogbWluX2FwcGx5X2RlbGF5CisJCQkJCSAqLworCQkJCQlpZiAo b3B0cy5zdHJlYW1pbmcgPT0gTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpCisJCQkJCXsKKwkJ CQkJCWlmICgoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX01JTl9BUFBMWV9ERUxB WSkgJiYgb3B0cy5taW5fYXBwbHlfZGVsYXkgPiAwKSB8fAorCQkJCQkJCSghSXNTZXQob3B0cy5z cGVjaWZpZWRfb3B0cywgU1VCT1BUX01JTl9BUFBMWV9ERUxBWSkgJiYgc3ViLT5taW5hcHBseWRl bGF5ID4gMCkpCisJCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCWVycmNvZGUoRVJSQ09E RV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCQkJCQllcnJtc2coImNh bm5vdCBlbmFibGUgJXMgbW9kZSBmb3Igc3Vic2NyaXB0aW9uIHdpdGggJXMiLAorCQkJCQkJCQkJ CSAgICJzdHJlYW1pbmcgPSBwYXJhbGxlbCIsICJtaW5fYXBwbHlfZGVsYXkiKSk7CisJCQkJCX0K KwogCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic3RyZWFtIC0gMV0gPQogCQkJ CQkJQ2hhckdldERhdHVtKG9wdHMuc3RyZWFtaW5nKTsKIAkJCQkJcmVwbGFjZXNbQW51bV9wZ19z dWJzY3JpcHRpb25fc3Vic3RyZWFtIC0gMV0gPSB0cnVlOwpAQCAtMTExMSw2ICsxMTc5LDI2IEBA IEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25T dG10ICpzdG10LAogCQkJCQkJPSB0cnVlOwogCQkJCX0KIAorCQkJCWlmIChJc1NldChvcHRzLnNw ZWNpZmllZF9vcHRzLCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKSkKKwkJCQl7CisJCQkJCS8qCisJ CQkJCSAqIFRlc3QgdGhlIGNvbWJpbmF0aW9uIG9mIHN0cmVhbWluZyBtb2RlIGFuZAorCQkJCQkg KiBtaW5fYXBwbHlfZGVsYXkKKwkJCQkJICovCisJCQkJCWlmIChvcHRzLm1pbl9hcHBseV9kZWxh eSA+IDApCisJCQkJCXsKKwkJCQkJCWlmICgoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VC T1BUX1NUUkVBTUlORykgJiYgb3B0cy5zdHJlYW1pbmcgPT0gTE9HSUNBTFJFUF9TVFJFQU1fUEFS QUxMRUwpIHx8CisJCQkJCQkJKCFJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfU1RS RUFNSU5HKSAmJiBzdWItPnN0cmVhbSA9PSBMT0dJQ0FMUkVQX1NUUkVBTV9QQVJBTExFTCkpCisJ CQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9U X0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCQkJCQllcnJtc2coImNhbm5vdCBlbmFibGUg JXMgZm9yIHN1YnNjcmlwdGlvbiBpbiAlcyBtb2RlIiwKKwkJCQkJCQkJCQkgICAibWluX2FwcGx5 X2RlbGF5IiwgInN0cmVhbWluZyA9IHBhcmFsbGVsIikpOworCQkJCQl9CisJCQkJCXZhbHVlc1tB bnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJtaW5hcHBseWRlbGF5IC0gMV0gPQorCQkJCQkJSW50NjRH ZXREYXR1bShvcHRzLm1pbl9hcHBseV9kZWxheSk7CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vi c2NyaXB0aW9uX3N1Ym1pbmFwcGx5ZGVsYXkgLSAxXSA9IHRydWU7CisJCQkJfQorCiAJCQkJaWYg KElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQogCQkJCXsKIAkJCQkJ dmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdpbiAtIDFdID0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxlbHdvcmtlci5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKaW5k ZXggMmU1OTE0ZDVkOS4uNzJlNmY1Y2U4NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKQEAgLTcwNCw3ICs3MDQsOCBA QCBwYV9wcm9jZXNzX3Nwb29sZWRfbWVzc2FnZXNfaWZfcmVxdWlyZWQodm9pZCkKIAl7CiAJCWFw cGx5X3Nwb29sZWRfbWVzc2FnZXMoJk15UGFyYWxsZWxTaGFyZWQtPmZpbGVzZXQsCiAJCQkJCQkJ ICAgTXlQYXJhbGxlbFNoYXJlZC0+eGlkLAotCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyKTsK KwkJCQkJCQkgICBJbnZhbGlkWExvZ1JlY1B0ciwKKwkJCQkJCQkgICAwKTsKIAkJcGFfc2V0X2Zp bGVzZXRfc3RhdGUoTXlQYXJhbGxlbFNoYXJlZCwgRlNfRU1QVFkpOwogCX0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggNzljZGEzOTQ0NS4uNjJmNzIwMjdh YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwor KysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC0zMTYsNiAr MzE2LDE3IEBAIHN0YXRpYyBMaXN0ICpvbl9jb21taXRfd2FrZXVwX3dvcmtlcnNfc3ViaWRzID0g TklMOwogYm9vbAkJaW5fcmVtb3RlX3RyYW5zYWN0aW9uID0gZmFsc2U7CiBzdGF0aWMgWExvZ1Jl Y1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CiAKKy8qCisgKiBJbiBv cmRlciB0byBhdm9pZCB3YWxzZW5kZXIncyB0aW1lb3V0IGR1cmluZyB0aW1lIGRlbGF5ZWQgcmVw bGljYXRpb24sCisgKiBpdCdzIG5lY2Vzc2FyeSB0byBrZWVwIHNlbmRpbmcgZmVlZGJhY2sgbWVz c2FnZXMgZHVyaW5nIHRoZSBkZWxheSBmcm9tIHRoZQorICogd29ya2VyIHByb2Nlc3MuIE1lYW53 aGlsZSwgdGhlIGZlYXR1cmUgZGVsYXlzIHRoZSBhcHBseSBiZWZvcmUgc3RhcnRpbmcgdGhlCisg KiB0cmFuc2FjdGlvbiBhbmQgdGh1cyB3ZSBkb24ndCB3cml0ZSBXQUxzIGZvciB0aGUgc3VzcGVu ZGVkIGNoYW5nZXMgZHVyaW5nCisgKiB0aGUgd2FpdC4gSGVuY2UsIGluIHRoZSBjYXNlIHRoZSB3 b3JrZXIgcHJvY2VzcyBzZW5kcyBhIGZlZWRiYWNrIGR1cmluZyB0aGUKKyAqIGRlbGF5LCBhdm9p ZCBoYXZpbmcgcG9zaXRpb25zIG9mIHRoZSBmbHVzaGVkIGFuZCBhcHBseSBMU04gb3ZlcndyaXR0 ZW4gYnkKKyAqIHRoZSBsYXRlc3QgTFNOLgorICovCitzdGF0aWMgWExvZ1JlY1B0ciBsYXN0X3Jl Y2VpdmVkID0gSW52YWxpZFhMb2dSZWNQdHI7CisKIC8qIGZpZWxkcyB2YWxpZCBvbmx5IHdoZW4g cHJvY2Vzc2luZyBzdHJlYW1lZCB0cmFuc2FjdGlvbiAqLwogc3RhdGljIGJvb2wgaW5fc3RyZWFt ZWRfdHJhbnNhY3Rpb24gPSBmYWxzZTsKIApAQCAtMzg2LDEwICszOTcsMTMgQEAgc3RhdGljIHZv aWQgc3RyZWFtX3dyaXRlX2NoYW5nZShjaGFyIGFjdGlvbiwgU3RyaW5nSW5mbyBzKTsKIHN0YXRp YyB2b2lkIHN0cmVhbV9vcGVuX2FuZF93cml0ZV9jaGFuZ2UoVHJhbnNhY3Rpb25JZCB4aWQsIGNo YXIgYWN0aW9uLCBTdHJpbmdJbmZvIHMpOwogc3RhdGljIHZvaWQgc3RyZWFtX2Nsb3NlX2ZpbGUo dm9pZCk7CiAKLXN0YXRpYyB2b2lkIHNlbmRfZmVlZGJhY2soWExvZ1JlY1B0ciByZWN2cG9zLCBi b29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSk7CitzdGF0aWMgdm9pZCBzZW5kX2ZlZWRiYWNr KFhMb2dSZWNQdHIgcmVjdnBvcywgYm9vbCBmb3JjZSwgYm9vbCByZXF1ZXN0UmVwbHksCisJCQkJ CQkgIGJvb2wgaW5fZGVsYXlpbmdfYXBwbHkpOwogCiBzdGF0aWMgdm9pZCBEaXNhYmxlU3Vic2Ny aXB0aW9uQW5kRXhpdCh2b2lkKTsKIAorc3RhdGljIHZvaWQgbWF5YmVfZGVsYXlfYXBwbHkoVGlt ZXN0YW1wVHogZmluaXNoX3RzKTsKKwogc3RhdGljIHZvaWQgYXBwbHlfaGFuZGxlX2NvbW1pdF9p bnRlcm5hbChMb2dpY2FsUmVwQ29tbWl0RGF0YSAqY29tbWl0X2RhdGEpOwogc3RhdGljIHZvaWQg YXBwbHlfaGFuZGxlX2luc2VydF9pbnRlcm5hbChBcHBseUV4ZWN1dGlvbkRhdGEgKmVkYXRhLAog CQkJCQkJCQkJCSBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLApAQCAtOTk2LDYgKzEwMTAsOTkgQEAg c2xvdF9tb2RpZnlfZGF0YShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgVHVwbGVUYWJsZVNsb3QgKnNy Y3Nsb3QsCiAJRXhlY1N0b3JlVmlydHVhbFR1cGxlKHNsb3QpOwogfQogCisvKgorICogV2hlbiBt aW5fYXBwbHlfZGVsYXkgcGFyYW1ldGVyIGlzIHNldCBvbiB0aGUgc3Vic2NyaWJlciwgd2Ugd2Fp dCBsb25nIGVub3VnaAorICogdG8gbWFrZSBzdXJlIGEgdHJhbnNhY3Rpb24gaXMgYXBwbGllZCBh dCBsZWFzdCB0aGF0IGludGVydmFsIGJlaGluZCB0aGUKKyAqIHB1Ymxpc2hlci4KKyAqCisgKiBX aGlsZSB0aGUgcGh5c2ljYWwgcmVwbGljYXRpb24gYXBwbGllcyB0aGUgZGVsYXkgYXQgY29tbWl0 IHRpbWUsIHRoaXMKKyAqIGZlYXR1cmUgYXBwbGllcyB0aGUgZGVsYXkgZm9yIHRoZSBuZXh0IHRy YW5zYWN0aW9uIGJ1dCBiZWZvcmUgc3RhcnRpbmcgdGhlCisgKiB0cmFuc2FjdGlvbi4gVGhpcyBp cyBtYWlubHkgYmVjYXVzZSBrZWVwaW5nIGEgdHJhbnNhY3Rpb24gdGhhdCBjb25kdWN0ZWQKKyAq IHdyaXRlIG9wZXJhdGlvbnMgb3BlbiBmb3IgYSBsb25nIHRpbWUgcmVzdWx0cyBpbiBzb21lIGlz c3VlcyBzdWNoIGFzIGJsb2F0CisgKiBhbmQgbG9ja3MuCisgKgorICogVGhlIG1pbl9hcHBseV9k ZWxheSBwYXJhbWV0ZXIgd2lsbCB0YWtlIGVmZmVjdCBvbmx5IGFmdGVyIGFsbCB0YWJsZXMgYXJl IGluCisgKiBSRUFEWSBzdGF0ZS4KKyAqCisgKiBmaW5pc2hfdHMgaXMgdGhlIGNvbW1pdC9wcmVw YXJlIHRpbWUgb2YgYm90aCByZWd1bGFyIChub24tc3RyZWFtZWQpIGFuZAorICogc3RyZWFtZWQg dHJhbnNhY3Rpb25zIGZvciB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24uCisgKi8KK3N0YXRpYyB2 b2lkCittYXliZV9kZWxheV9hcHBseShUaW1lc3RhbXBUeiBmaW5pc2hfdHMpCit7CisJQXNzZXJ0 KGZpbmlzaF90cyA+IDApOworCisJLyogTm90aGluZyB0byBkbyBpZiBubyBkZWxheSBzZXQgKi8K KwlpZiAoTXlTdWJzY3JpcHRpb24tPm1pbmFwcGx5ZGVsYXkgPD0gMCkKKwkJcmV0dXJuOworCisJ LyoKKwkgKiBUaGUgbWluX2FwcGx5X2RlbGF5IHBhcmFtZXRlciBpcyBpZ25vcmVkIHVudGlsIGFs bCB0YWJsZXN5bmMgd29ya2VycworCSAqIGhhdmUgcmVhY2hlZCBSRUFEWSBzdGF0ZS4gSWYgd2Ug YWxsb3cgdGhlIGRlbGF5IGR1cmluZyB0aGUgY2F0Y2h1cAorCSAqIHBoYXNlLCBvbmNlIHdlIHJl YWNoIHRoZSBsaW1pdCBvZiB0YWJsZXN5bmMgd29ya2VycywgaXQgd2lsbCBpbXBvc2UgYQorCSAq IGRlbGF5IGZvciBlYWNoIHN1YnNlcXVlbnQgd29ya2VyLiBJdCBtZWFucyBpdCB3aWxsIHRha2Ug YSBsb25nIHRpbWUgdG8KKwkgKiBmaW5pc2ggdGhlIGluaXRpYWwgdGFibGUgc3luY2hyb25pemF0 aW9uLgorCSAqLworCWlmICghQWxsVGFibGVzeW5jc1JlYWR5KCkpCisJCXJldHVybjsKKworCXdo aWxlICh0cnVlKQorCXsKKwkJbG9uZwkJZGlmZm1zOworCisJCVJlc2V0TGF0Y2goTXlMYXRjaCk7 CisKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQlpZiAoQ29uZmlnUmVsb2FkUGVuZGlu ZykKKwkJeworCQkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOworCQkJUHJvY2Vzc0NvbmZp Z0ZpbGUoUEdDX1NJR0hVUCk7CisJCX0KKworCQkvKgorCQkgKiBCZWZvcmUgY2FsY3VsYXRpbmcg dGhlIHRpbWUgZHVyYXRpb24sIHJlbG9hZCB0aGUgY2F0YWxvZyBpZiBuZWVkZWQuCisJCSAqLwor CQlpZiAoIWluX3JlbW90ZV90cmFuc2FjdGlvbiAmJiAhaW5fc3RyZWFtZWRfdHJhbnNhY3Rpb24p CisJCXsKKwkJCUFjY2VwdEludmFsaWRhdGlvbk1lc3NhZ2VzKCk7CisJCQltYXliZV9yZXJlYWRf c3Vic2NyaXB0aW9uKCk7CisJCX0KKworCQlkaWZmbXMgPSBUaW1lc3RhbXBEaWZmZXJlbmNlTWls bGlzZWNvbmRzKEdldEN1cnJlbnRUaW1lc3RhbXAoKSwKKwkJCQkJCQkJCQkJCSBUaW1lc3RhbXBU elBsdXNNaWxsaXNlY29uZHMoZmluaXNoX3RzLCBNeVN1YnNjcmlwdGlvbi0+bWluYXBwbHlkZWxh eSkpOworCisJCS8qCisJCSAqIEV4aXQgd2l0aG91dCBhcm1pbmcgdGhlIGxhdGNoIGlmIGl0J3Mg YWxyZWFkeSBwYXN0IHRpbWUgdG8gYXBwbHkKKwkJICogdGhpcyB0cmFuc2FjdGlvbi4KKwkJICov CisJCWlmIChkaWZmbXMgPD0gMCkKKwkJCWJyZWFrOworCisJCWVsb2coREVCVUcyLCAibG9naWNh bCByZXBsaWNhdGlvbiBhcHBseSBkZWxheTogJWxkIG1zIiwgZGlmZm1zKTsKKworCQkvKgorCQkg KiBDYWxsIHNlbmRfZmVlZGJhY2soKSB0byBwcmV2ZW50IHRoZSBwdWJsaXNoZXIgZnJvbSBleGl0 aW5nIGJ5CisJCSAqIHRpbWVvdXQgZHVyaW5nIHRoZSBkZWxheSwgd2hlbiB3YWxfcmVjZWl2ZXJf c3RhdHVzX2ludGVydmFsIGlzCisJCSAqIGF2YWlsYWJsZS4KKwkJICovCisJCWlmICh3YWxfcmVj ZWl2ZXJfc3RhdHVzX2ludGVydmFsID4gMAorCQkJJiYgZGlmZm1zID4gd2FsX3JlY2VpdmVyX3N0 YXR1c19pbnRlcnZhbCAqIDEwMDApCisJCXsKKwkJCVdhaXRMYXRjaChNeUxhdGNoLAorCQkJCQkg IFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRILAorCQkJCQkg IChsb25nKSB3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsICogMTAwMCwKKwkJCQkJICBXQUlU X0VWRU5UX1JFQ09WRVJZX0FQUExZX0RFTEFZKTsKKwkJCXNlbmRfZmVlZGJhY2sobGFzdF9yZWNl aXZlZCwgdHJ1ZSwgZmFsc2UsIHRydWUpOworCQl9CisJCWVsc2UKKwkJCVdhaXRMYXRjaChNeUxh dGNoLAorCQkJCQkgIFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RF QVRILAorCQkJCQkgIGRpZmZtcywKKwkJCQkJICBXQUlUX0VWRU5UX1JFQ09WRVJZX0FQUExZX0RF TEFZKTsKKwl9Cit9CisKIC8qCiAgKiBIYW5kbGUgQkVHSU4gbWVzc2FnZS4KICAqLwpAQCAtMTAw Nyw2ICsxMTE0LDkgQEAgYXBwbHlfaGFuZGxlX2JlZ2luKFN0cmluZ0luZm8gcykKIAlsb2dpY2Fs cmVwX3JlYWRfYmVnaW4ocywgJmJlZ2luX2RhdGEpOwogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0 X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNuKTsKIAorCS8qIFNob3Vs ZCB3ZSBkZWxheSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbj8gKi8KKwltYXliZV9kZWxheV9hcHBs eShiZWdpbl9kYXRhLmNvbW1pdHRpbWUpOworCiAJcmVtb3RlX2ZpbmFsX2xzbiA9IGJlZ2luX2Rh dGEuZmluYWxfbHNuOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBpbmdfY2hhbmdlcyhiZWdpbl9kYXRh LmZpbmFsX2xzbik7CkBAIC0xMDYxLDYgKzExNzEsOSBAQCBhcHBseV9oYW5kbGVfYmVnaW5fcHJl cGFyZShTdHJpbmdJbmZvIHMpCiAJbG9naWNhbHJlcF9yZWFkX2JlZ2luX3ByZXBhcmUocywgJmJl Z2luX2RhdGEpOwogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQs IGJlZ2luX2RhdGEucHJlcGFyZV9sc24pOwogCisJLyogU2hvdWxkIHdlIGRlbGF5IHRoZSBjdXJy ZW50IHByZXBhcmVkIHRyYW5zYWN0aW9uPyAqLworCW1heWJlX2RlbGF5X2FwcGx5KGJlZ2luX2Rh dGEucHJlcGFyZV90aW1lKTsKKwogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9kYXRhLnByZXBh cmVfbHNuOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBpbmdfY2hhbmdlcyhiZWdpbl9kYXRhLnByZXBh cmVfbHNuKTsKQEAgLTEzMDgsNyArMTQyMSw4IEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1fcHJlcGFy ZShTdHJpbmdJbmZvIHMpCiAJCQkgKiBzcG9vbGVkIG9wZXJhdGlvbnMuCiAJCQkgKi8KIAkJCWFw cGx5X3Nwb29sZWRfbWVzc2FnZXMoTXlMb2dpY2FsUmVwV29ya2VyLT5zdHJlYW1fZmlsZXNldCwK LQkJCQkJCQkJICAgcHJlcGFyZV9kYXRhLnhpZCwgcHJlcGFyZV9kYXRhLnByZXBhcmVfbHNuKTsK KwkJCQkJCQkJICAgcHJlcGFyZV9kYXRhLnhpZCwgcHJlcGFyZV9kYXRhLnByZXBhcmVfbHNuLAor CQkJCQkJCQkgICBwcmVwYXJlX2RhdGEucHJlcGFyZV90aW1lKTsKIAogCQkJLyogTWFyayB0aGUg dHJhbnNhY3Rpb24gYXMgcHJlcGFyZWQuICovCiAJCQlhcHBseV9oYW5kbGVfcHJlcGFyZV9pbnRl cm5hbCgmcHJlcGFyZV9kYXRhKTsKQEAgLTE5OTgsMTAgKzIxMTIsMTMgQEAgZW5zdXJlX2xhc3Rf bWVzc2FnZShGaWxlU2V0ICpzdHJlYW1fZmlsZXNldCwgVHJhbnNhY3Rpb25JZCB4aWQsIGludCBm aWxlbm8sCiAKIC8qCiAgKiBDb21tb24gc3Bvb2xmaWxlIHByb2Nlc3NpbmcuCisgKgorICogVGhl IGNvbW1pdC9wcmVwYXJlIHRpbWUgZm9yIHN0cmVhbWluZyB0cmFuc2FjdGlvbiBpcyByZXF1aXJl ZCB0byBhY2hpZXZlIHRpbWUKKyAqIGRlbGF5ZWQgcmVwbGljYXRpb24uCiAgKi8KIHZvaWQKIGFw cGx5X3Nwb29sZWRfbWVzc2FnZXMoRmlsZVNldCAqc3RyZWFtX2ZpbGVzZXQsIFRyYW5zYWN0aW9u SWQgeGlkLAotCQkJCQkgICBYTG9nUmVjUHRyIGxzbikKKwkJCQkJICAgWExvZ1JlY1B0ciBsc24s IFRpbWVzdGFtcFR6IGZpbmlzaF90cykKIHsKIAlTdHJpbmdJbmZvRGF0YSBzMjsKIAlpbnQJCQlu Y2hhbmdlczsKQEAgLTIwMTIsNiArMjEyOSwyMSBAQCBhcHBseV9zcG9vbGVkX21lc3NhZ2VzKEZp bGVTZXQgKnN0cmVhbV9maWxlc2V0LCBUcmFuc2FjdGlvbklkIHhpZCwKIAlpbnQJCQlmaWxlbm87 CiAJb2ZmX3QJCW9mZnNldDsKIAorCS8qCisJICogU2hvdWxkIHdlIGRlbGF5IHRoZSBjdXJyZW50 IHRyYW5zYWN0aW9uPworCSAqCisJICogVW5saWtlIHRoZSByZWd1bGFyIChub24tc3RyZWFtZWQp IGNhc2VzLCB0aGUgZGVsYXkgaXMgYXBwbGllZCBpbiBhCisJICogU1RSRUFNIENPTU1JVC9TVFJF QU0gUFJFUEFSRSBtZXNzYWdlIGZvciBzdHJlYW1lZCB0cmFuc2FjdGlvbnMuIFRoZQorCSAqIFNU UkVBTSBTVEFSVCBtZXNzYWdlIGRvZXMgbm90IGNvbnRhaW4gYSBjb21taXQvcHJlcGFyZSB0aW1l IChpdCB3aWxsIGJlCisJICogYXZhaWxhYmxlIHdoZW4gdGhlIGluLXByb2dyZXNzIHRyYW5zYWN0 aW9uIGZpbmlzaGVzKS4gSGVuY2UsIGl0J3Mgbm90CisJICogYXBwcm9wcmlhdGUgdG8gYXBwbHkg YSBkZWxheSBhdCB0aGF0IHRpbWUuCisJICoKKwkgKiBJdCdzIG5vdCBhbGxvd2VkIHRvIGV4ZWN1 dGUgdGltZSBkZWxheWVkIHJlcGxpY2F0aW9uIHdpdGggcGFyYWxsZWwKKwkgKiBhcHBseSBmZWF0 dXJlLgorCSAqLworCWlmICghYW1fcGFyYWxsZWxfYXBwbHlfd29ya2VyKCkpCisJCW1heWJlX2Rl bGF5X2FwcGx5KGZpbmlzaF90cyk7CisKIAlpZiAoIWFtX3BhcmFsbGVsX2FwcGx5X3dvcmtlcigp KQogCQltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGxzbik7CiAKQEAgLTIxNzEsNyArMjMw Myw3IEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1fY29tbWl0KFN0cmluZ0luZm8gcykKIAkJCSAqIHNw b29sZWQgb3BlcmF0aW9ucy4KIAkJCSAqLwogCQkJYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhNeUxv Z2ljYWxSZXBXb3JrZXItPnN0cmVhbV9maWxlc2V0LCB4aWQsCi0JCQkJCQkJCSAgIGNvbW1pdF9k YXRhLmNvbW1pdF9sc24pOworCQkJCQkJCQkgICBjb21taXRfZGF0YS5jb21taXRfbHNuLCBjb21t aXRfZGF0YS5jb21taXR0aW1lKTsKIAogCQkJYXBwbHlfaGFuZGxlX2NvbW1pdF9pbnRlcm5hbCgm Y29tbWl0X2RhdGEpOwogCkBAIC0zNDQ0LDcgKzM1NzYsNyBAQCBVcGRhdGVXb3JrZXJTdGF0cyhY TG9nUmVjUHRyIGxhc3RfbHNuLCBUaW1lc3RhbXBUeiBzZW5kX3RpbWUsIGJvb2wgcmVwbHkpCiAg KiBBcHBseSBtYWluIGxvb3AuCiAgKi8KIHN0YXRpYyB2b2lkCi1Mb2dpY2FsUmVwQXBwbHlMb29w KFhMb2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKK0xvZ2ljYWxSZXBBcHBseUxvb3Aodm9pZCkKIHsK IAlUaW1lc3RhbXBUeiBsYXN0X3JlY3ZfdGltZXN0YW1wID0gR2V0Q3VycmVudFRpbWVzdGFtcCgp OwogCWJvb2wJCXBpbmdfc2VudCA9IGZhbHNlOwpAQCAtMzU2NSw3ICszNjk3LDcgQEAgTG9naWNh bFJlcEFwcGx5TG9vcChYTG9nUmVjUHRyIGxhc3RfcmVjZWl2ZWQpCiAJCQkJCQlpZiAobGFzdF9y ZWNlaXZlZCA8IGVuZF9sc24pCiAJCQkJCQkJbGFzdF9yZWNlaXZlZCA9IGVuZF9sc247CiAKLQkJ CQkJCXNlbmRfZmVlZGJhY2sobGFzdF9yZWNlaXZlZCwgcmVwbHlfcmVxdWVzdGVkLCBmYWxzZSk7 CisJCQkJCQlzZW5kX2ZlZWRiYWNrKGxhc3RfcmVjZWl2ZWQsIHJlcGx5X3JlcXVlc3RlZCwgZmFs c2UsIGZhbHNlKTsKIAkJCQkJCVVwZGF0ZVdvcmtlclN0YXRzKGxhc3RfcmVjZWl2ZWQsIHRpbWVz dGFtcCwgdHJ1ZSk7CiAJCQkJCX0KIAkJCQkJLyogb3RoZXIgbWVzc2FnZSB0eXBlcyBhcmUgcHVy cG9zZWZ1bGx5IGlnbm9yZWQgKi8KQEAgLTM1NzgsNyArMzcxMCw3IEBAIExvZ2ljYWxSZXBBcHBs eUxvb3AoWExvZ1JlY1B0ciBsYXN0X3JlY2VpdmVkKQogCQl9CiAKIAkJLyogY29uZmlybSBhbGwg d3JpdGVzIHNvIGZhciAqLwotCQlzZW5kX2ZlZWRiYWNrKGxhc3RfcmVjZWl2ZWQsIGZhbHNlLCBm YWxzZSk7CisJCXNlbmRfZmVlZGJhY2sobGFzdF9yZWNlaXZlZCwgZmFsc2UsIGZhbHNlLCBmYWxz ZSk7CiAKIAkJaWYgKCFpbl9yZW1vdGVfdHJhbnNhY3Rpb24gJiYgIWluX3N0cmVhbWVkX3RyYW5z YWN0aW9uKQogCQl7CkBAIC0zNjc1LDcgKzM4MDcsNyBAQCBMb2dpY2FsUmVwQXBwbHlMb29wKFhM b2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKIAkJCQl9CiAJCQl9CiAKLQkJCXNlbmRfZmVlZGJhY2so bGFzdF9yZWNlaXZlZCwgcmVxdWVzdFJlcGx5LCByZXF1ZXN0UmVwbHkpOworCQkJc2VuZF9mZWVk YmFjayhsYXN0X3JlY2VpdmVkLCByZXF1ZXN0UmVwbHksIHJlcXVlc3RSZXBseSwgZmFsc2UpOwog CiAJCQkvKgogCQkJICogRm9yY2UgcmVwb3J0aW5nIHRvIGVuc3VyZSBsb25nIGlkbGUgcGVyaW9k cyBkb24ndCBsZWFkIHRvCkBAIC0zNzA1LDcgKzM4MzcsNyBAQCBMb2dpY2FsUmVwQXBwbHlMb29w KFhMb2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKICAqIHRvIHNlbmQgYSByZXNwb25zZSB0byBhdm9p ZCB0aW1lb3V0cy4KICAqLwogc3RhdGljIHZvaWQKLXNlbmRfZmVlZGJhY2soWExvZ1JlY1B0ciBy ZWN2cG9zLCBib29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSkKK3NlbmRfZmVlZGJhY2soWExv Z1JlY1B0ciByZWN2cG9zLCBib29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSwgYm9vbCBpbl9k ZWxheWluZ19hcHBseSkKIHsKIAlzdGF0aWMgU3RyaW5nSW5mbyByZXBseV9tZXNzYWdlID0gTlVM TDsKIAlzdGF0aWMgVGltZXN0YW1wVHogc2VuZF90aW1lID0gMDsKQEAgLTM3MzUsOCArMzg2Nywx NSBAQCBzZW5kX2ZlZWRiYWNrKFhMb2dSZWNQdHIgcmVjdnBvcywgYm9vbCBmb3JjZSwgYm9vbCBy ZXF1ZXN0UmVwbHkpCiAJLyoKIAkgKiBObyBvdXRzdGFuZGluZyB0cmFuc2FjdGlvbnMgdG8gZmx1 c2gsIHdlIGNhbiByZXBvcnQgdGhlIGxhdGVzdCByZWNlaXZlZAogCSAqIHBvc2l0aW9uLiBUaGlz IGlzIGltcG9ydGFudCBmb3Igc3luY2hyb25vdXMgcmVwbGljYXRpb24uCisJICoKKwkgKiBEdXJp bmcgdGhlIGRlbGF5IG9mIHRpbWUgZGVsYXllZCByZXBsaWNhdGlvbiwgZG8gbm90IHRlbGwgdGhl IHB1Ymxpc2hlcgorCSAqIHRoYXQgdGhlIHJlY2VpdmVkIGxhdGVzdCBMU04gaXMgYWxyZWFkeSBh cHBsaWVkIGFuZCBmbHVzaGVkIGF0IHRoaXMKKwkgKiBzdGFnZSwgc2luY2Ugd2UgZG9uJ3QgYXBw bHkgdGhlIHRyYW5zYWN0aW9uIHlldC4gSWYgd2UgZG8gc28sIGl0IGxlYWRzCisJICogdG8gYSB3 cm9uZyBhc3N1bXB0aW9uIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gcHJvZ3Jlc3Mgb24gdGhlIHB1 Ymxpc2hlcgorCSAqIHNpZGUuIEhlcmUsIHdlIGp1c3Qgc2VuZCBhIGZlZWRiYWNrIG1lc3NhZ2Ug dG8gYXZvaWQgcHVibGlzaGVyJ3MKKwkgKiB0aW1lb3V0IGR1cmluZyB0aGUgZGVsYXkuCiAJICov Ci0JaWYgKCFoYXZlX3BlbmRpbmdfdHhlcykKKwlpZiAoIWhhdmVfcGVuZGluZ190eGVzICYmICFp bl9kZWxheWluZ19hcHBseSkKIAkJZmx1c2hwb3MgPSB3cml0ZXBvcyA9IHJlY3Zwb3M7CiAKIAlp ZiAod3JpdGVwb3MgPCBsYXN0X3dyaXRlcG9zKQpAQCAtNDM2MiwxMSArNDUwMSwxMSBAQCBzdGFy dF90YWJsZV9zeW5jKFhMb2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcywgY2hhciAqKm15c2xvdG5h bWUpCiAgKiBvZiBzeXN0ZW0gcmVzb3VyY2UgZXJyb3IgYW5kIGFyZSBub3QgcmVwZWF0YWJsZS4K ICAqLwogc3RhdGljIHZvaWQKLXN0YXJ0X2FwcGx5KFhMb2dSZWNQdHIgb3JpZ2luX3N0YXJ0cG9z KQorc3RhcnRfYXBwbHkodm9pZCkKIHsKIAlQR19UUlkoKTsKIAl7Ci0JCUxvZ2ljYWxSZXBBcHBs eUxvb3Aob3JpZ2luX3N0YXJ0cG9zKTsKKwkJTG9naWNhbFJlcEFwcGx5TG9vcCgpOwogCX0KIAlQ R19DQVRDSCgpOwogCXsKQEAgLTQ2NTMsNyArNDc5Miw4IEBAIEFwcGx5V29ya2VyTWFpbihEYXR1 bSBtYWluX2FyZykKIAl9CiAKIAkvKiBSdW4gdGhlIG1haW4gbG9vcC4gKi8KLQlzdGFydF9hcHBs eShvcmlnaW5fc3RhcnRwb3MpOworCWxhc3RfcmVjZWl2ZWQgPSBvcmlnaW5fc3RhcnRwb3M7CisJ c3RhcnRfYXBwbHkoKTsKIAogCXByb2NfZXhpdCgwKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3Rh bXAuYwppbmRleCA5MjhjMzMwODk3Li40MjJlNmFkMGZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVz dGFtcC5jCkBAIC0yNDMxLDYgKzI0MzEsMzUgQEAgaW50ZXJ2YWxfY21wX2ludGVybmFsKGNvbnN0 IEludGVydmFsICppbnRlcnZhbDEsIGNvbnN0IEludGVydmFsICppbnRlcnZhbDIpCiAJcmV0dXJu IGludDEyOF9jb21wYXJlKHNwYW4xLCBzcGFuMik7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRoZSBu dW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuCisgKi8KK2lu dDY0CitpbnRlcnZhbDJtcyhjb25zdCBJbnRlcnZhbCAqaW50ZXJ2YWwpCit7CisJaW50NjQJCWRh eXM7CisJaW50NjQJCW1zOworCWludDY0CQlyZXN1bHQ7CisKKwlkYXlzID0gaW50ZXJ2YWwtPm1v bnRoICogSU5UNjRDT05TVCgzMCk7CisJZGF5cyArPSBpbnRlcnZhbC0+ZGF5OworCisJLyogRGV0 ZWN0IHdoZXRoZXIgdGhlIHZhbHVlIG9mIGludGVydmFsIGNhbiBjYXVzZSBhbiBvdmVyZmxvdyAq LworCWlmIChwZ19tdWxfczY0X292ZXJmbG93KGRheXMsIE1TRUNTX1BFUl9EQVksICZyZXN1bHQp KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09V VF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpOworCisJLyog QWRkcyBwb3J0aW9uIHRpbWUgKGluIG1zKSB0byB0aGUgcHJldmlvdXMgcmVzdWx0ICovCisJbXMg PSBpbnRlcnZhbC0+dGltZSAvIElOVDY0Q09OU1QoMTAwMCk7CisJaWYgKHBnX2FkZF9zNjRfb3Zl cmZsb3cocmVzdWx0LCBtcywgJnJlc3VsdCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29k ZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coImJpZ2lu dCBvdXQgb2YgcmFuZ2UiKSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiBEYXR1bQogaW50ZXJ2 YWxfZXEoUEdfRlVOQ1RJT05fQVJHUykKIHsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDJjMGE5Njk5NzIuLjE2 ZDNiMDAzZmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDQ5NCw2ICs0NDk0LDcgQEAgZ2V0U3Vic2NyaXB0 aW9ucyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfc3Vic3luY2NvbW1pdDsKIAlpbnQJCQlpX3N1 YnB1YmxpY2F0aW9uczsKIAlpbnQJCQlpX3N1YmJpbmFyeTsKKwlpbnQJCQlpX3N1Ym1pbmFwcGx5 ZGVsYXk7CiAJaW50CQkJaSwKIAkJCQludHVwczsKIApAQCAtNDU0Niw5ICs0NTQ3LDE0IEBAIGdl dFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJCSAgTE9HSUNBTFJFUF9UV09QSEFT RV9TVEFURV9ESVNBQkxFRCk7CiAKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNjAwMDAp Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHMuc3Vib3JpZ2luXG4iKTsKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICIgcy5zdWJvcmlnaW4sXG4iCisJCQkJ CQkJICIgcy5zdWJtaW5hcHBseWRlbGF5XG4iKTsKIAllbHNlCi0JCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiICclcycgQVMgc3Vib3JpZ2luXG4iLCBMT0dJQ0FMUkVQX09SSUdJTl9BTlkpOwor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgJyVzJyBBUyBzdWJvcmlnaW4sXG4iLCBM T0dJQ0FMUkVQX09SSUdJTl9BTlkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiAw IEFTIHN1Ym1pbmFwcGx5ZGVsYXlcbiIpOworCX0KIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iCkBAIC00NTc2LDYgKzQ1ODIs NyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaV9zdWJ0d29waGFzZXN0YXRl ID0gUFFmbnVtYmVyKHJlcywgInN1YnR3b3BoYXNlc3RhdGUiKTsKIAlpX3N1YmRpc2FibGVvbmVy ciA9IFBRZm51bWJlcihyZXMsICJzdWJkaXNhYmxlb25lcnIiKTsKIAlpX3N1Ym9yaWdpbiA9IFBR Zm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKKwlpX3N1Ym1pbmFwcGx5ZGVsYXkgPSBQUWZudW1i ZXIocmVzLCAic3VibWluYXBwbHlkZWxheSIpOwogCiAJc3ViaW5mbyA9IHBnX21hbGxvYyhudHVw cyAqIHNpemVvZihTdWJzY3JpcHRpb25JbmZvKSk7CiAKQEAgLTQ2MDYsNiArNDYxMyw4IEBAIGdl dFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJc3ViaW5mb1tpXS5zdWJkaXNhYmxlb25l cnIgPQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmRpc2FibGVvbmVycikp OwogCQlzdWJpbmZvW2ldLnN1Ym9yaWdpbiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwg aV9zdWJvcmlnaW4pKTsKKwkJc3ViaW5mb1tpXS5zdWJtaW5hcHBseWRlbGF5ID0KKwkJCXN0cnRv aTY0KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1Ym1pbmFwcGx5ZGVsYXkpLCBOVUxMLCAxMCk7CiAK IAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBh YmxlT2JqZWN0KCYoc3ViaW5mb1tpXS5kb2JqKSwgZm91dCk7CkBAIC00Njg3LDYgKzQ2OTYsOSBA QCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8g KnN1YmluZm8pCiAJaWYgKHN0cmNtcChzdWJpbmZvLT5zdWJzeW5jY29tbWl0LCAib2ZmIikgIT0g MCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsIHN5bmNocm9ub3VzX2NvbW1pdCA9ICVz IiwgZm10SWQoc3ViaW5mby0+c3Vic3luY2NvbW1pdCkpOwogCisJaWYgKHN1YmluZm8tPnN1Ym1p bmFwcGx5ZGVsYXkgPiAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgbWluX2FwcGx5 X2RlbGF5ID0gJyIgSU5UNjRfRk9STUFUICIgbXMnIiwgc3ViaW5mby0+c3VibWluYXBwbHlkZWxh eSk7CisKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4iKTsKIAogCWlmIChzdWJp bmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5k ZXggZTdjYmQ4ZDdlZC4uZTI1MjVmNzBhYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02NjEsNiArNjYxLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJkaXNhYmxl b25lcnI7CiAJY2hhcgkgICAqc3Vib3JpZ2luOwogCWNoYXIJICAgKnN1YnN5bmNjb21taXQ7CisJ aW50NjQJCXN1Ym1pbmFwcGx5ZGVsYXk7CiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogfSBT dWJzY3JpcHRpb25JbmZvOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGM4YTBiYjdiM2EuLjhhMjcwNjNiZWQgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC02NDcyLDcgKzY0NzIsNyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1 ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9j b2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlm IChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTY1MjcsMTAgKzY1MjcsMTMgQEAgZGVz Y3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJCQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAogCQkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIikpOwogCisJCS8qIE9yaWdpbiBhbmQgbWluX2FwcGx5 X2RlbGF5IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTYgYW5kIGhpZ2hlciAqLwogCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxNjAwMDApCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJ CSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiT3Jp Z2luIikpOworCQkJCQkJCSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxuIgorCQkJCQkJCSAgIiwg c3VibWluYXBwbHlkZWxheSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIk9y aWdpbiIpLAorCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNaW4gYXBwbHkgZGVsYXkgKG1zKSIpKTsK IAogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJICAiLCAgc3Vic3luY2NvbW1pdCBB UyBcIiVzXCJcbiIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCAyMzc1MGVhNWZiLi4xOWQyZjkwZGMwIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5jCkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01QTEVURV9XSVRIKCIoIiwg IlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1lPiBTRVQgKCAqLwog CWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkg JiYgVGFpbE1hdGNoZXMoIlNFVCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJk aXNhYmxlX29uX2Vycm9yIiwgIm9yaWdpbiIsICJzbG90X25hbWUiLAorCQlDT01QTEVURV9XSVRI KCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJvciIsICJtaW5fYXBwbHlfZGVsYXkiLCAib3JpZ2lu IiwgInNsb3RfbmFtZSIsCiAJCQkJCSAgInN0cmVhbWluZyIsICJzeW5jaHJvbm91c19jb21taXQi KTsKIAkvKiBBTFRFUiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNLSVAgKCAqLwogCWVsc2UgaWYgKEhl YWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkgJiYgVGFpbE1hdGNo ZXMoIlNLSVAiLCAiKCIpKQpAQCAtMzI0Nyw3ICszMjQ3LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNv bnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkvKiBDb21wbGV0ZSAiQ1JFQVRF IFNVQlNDUklQVElPTiA8bmFtZT4gLi4uICBXSVRIICggPG9wdD4iICovCiAJZWxzZSBpZiAoSGVh ZE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iKSAmJiBUYWlsTWF0Y2hlcygiV0lUSCIs ICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIs ICJjcmVhdGVfc2xvdCIsCi0JCQkJCSAgImRpc2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJv cmlnaW4iLCAic2xvdF9uYW1lIiwKKwkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVk IiwgIm1pbl9hcHBseV9kZWxheSIsICJvcmlnaW4iLCAic2xvdF9uYW1lIiwKIAkJCQkJICAic3Ry ZWFtaW5nIiwgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKIAogLyogQ1JFQVRF IFRSSUdHRVIgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWls TWF0Y2hlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggYjBmMmEx NzA1ZC4uMDc4NDk1Y2JmMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBA IC03MCw2ICs3MCw4IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9u UmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJWExvZ1JlY1B0cglzdWJz a2lwbHNuOwkJLyogQWxsIGNoYW5nZXMgZmluaXNoZWQgYXQgdGhpcyBMU04gYXJlCiAJCQkJCQkJ CSAqIHNraXBwZWQgKi8KIAorCWludDY0CQlzdWJtaW5hcHBseWRlbGF5OwkvKiBSZXBsaWNhdGlv biBhcHBseSBkZWxheSAqLworCiAJTmFtZURhdGEJc3VibmFtZTsJCS8qIE5hbWUgb2YgdGhlIHN1 YnNjcmlwdGlvbiAqLwogCiAJT2lkCQkJc3Vib3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOyAv KiBPd25lciBvZiB0aGUgc3Vic2NyaXB0aW9uICovCkBAIC0xMjAsNiArMTIyLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAJCQkJCQkJCSAqIGluICovCiAJWExvZ1JlY1B0cglza2lw bHNuOwkJLyogQWxsIGNoYW5nZXMgZmluaXNoZWQgYXQgdGhpcyBMU04gYXJlCiAJCQkJCQkJCSAq IHNraXBwZWQgKi8KKwlpbnQ2NAkJbWluYXBwbHlkZWxheTsJLyogUmVwbGljYXRpb24gYXBwbHkg ZGVsYXkgKi8KIAljaGFyCSAgICpuYW1lOwkJCS8qIE5hbWUgb2YgdGhlIHN1YnNjcmlwdGlvbiAq LwogCU9pZAkJCW93bmVyOwkJCS8qIE9pZCBvZiB0aGUgc3Vic2NyaXB0aW9uIG93bmVyICovCiAJ Ym9vbAkJZW5hYmxlZDsJCS8qIEluZGljYXRlcyBpZiB0aGUgc3Vic2NyaXB0aW9uIGlzIGVuYWJs ZWQgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2RhdGF0eXBlL3RpbWVzdGFtcC5oIGIvc3Jj L2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmgKaW5kZXggMjFhMzdlMjFlOS4uOGIzNjhhZjI5 OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmgKKysrIGIvc3Jj L2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmgKQEAgLTEyNyw2ICsxMjcsOCBAQCBzdHJ1Y3Qg cGdfaXRtX2luCiAjZGVmaW5lIFNFQ1NfUEVSX01JTlVURSA2MAogI2RlZmluZSBNSU5TX1BFUl9I T1VSCTYwCiAKKyNkZWZpbmUgTVNFQ1NfUEVSX0RBWQlJTlQ2NENPTlNUKDg2NDAwMDAwKQorCiAj ZGVmaW5lIFVTRUNTX1BFUl9EQVkJSU5UNjRDT05TVCg4NjQwMDAwMDAwMCkKICNkZWZpbmUgVVNF Q1NfUEVSX0hPVVIJSU5UNjRDT05TVCgzNjAwMDAwMDAwKQogI2RlZmluZSBVU0VDU19QRVJfTUlO VVRFIElOVDY0Q09OU1QoNjAwMDAwMDApCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9p bnRlcm5hbC5oCmluZGV4IGRiODkxZWVhOGEuLjRlZjEzMmQyNDMgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBAIC0yNTUsNyArMjU1LDcgQEAgZXh0ZXJuIHZv aWQgc3RyZWFtX3N0b3BfaW50ZXJuYWwoVHJhbnNhY3Rpb25JZCB4aWQpOwogCiAvKiBDb21tb24g c3RyZWFtaW5nIGZ1bmN0aW9uIHRvIGFwcGx5IGFsbCB0aGUgc3Bvb2xlZCBtZXNzYWdlcyAqLwog ZXh0ZXJuIHZvaWQgYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhGaWxlU2V0ICpzdHJlYW1fZmlsZXNl dCwgVHJhbnNhY3Rpb25JZCB4aWQsCi0JCQkJCQkJCSAgIFhMb2dSZWNQdHIgbHNuKTsKKwkJCQkJ CQkJICAgWExvZ1JlY1B0ciBsc24sIFRpbWVzdGFtcFR6IGZpbmlzaF90cyk7CiAKIGV4dGVybiB2 b2lkIGFwcGx5X2Rpc3BhdGNoKFN0cmluZ0luZm8gcyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL3RpbWVzdGFtcC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0YW1wLmgKaW5k ZXggNDJmODAyYmI5ZC4uNTM0MDUxZmUxMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv dGltZXN0YW1wLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0YW1wLmgKQEAgLTEwMiw2 ICsxMDIsOCBAQCBleHRlcm4gYm9vbCBUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVkcyhUaW1lc3Rh bXBUeiBzdGFydF90aW1lLAogCQkJCQkJCQkJICAgVGltZXN0YW1wVHogc3RvcF90aW1lLAogCQkJ CQkJCQkJICAgaW50IG1zZWMpOwogCitleHRlcm4gaW50NjQgaW50ZXJ2YWwybXMoY29uc3QgSW50 ZXJ2YWwgKmludGVydmFsKTsKKwogZXh0ZXJuIFRpbWVzdGFtcFR6IHRpbWVfdF90b190aW1lc3Rh bXB0eihwZ190aW1lX3QgdG0pOwogZXh0ZXJuIHBnX3RpbWVfdCB0aW1lc3RhbXB0el90b190aW1l X3QoVGltZXN0YW1wVHogdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0 aW9uLm91dAppbmRleCAxZWQ2ZjRjMzljLi43YjE2YzgwOTI2IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xMTQsMTggKzExNCwxOCBAQCBDUkVBVEUg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0JyBQVQogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0 IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11 c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNj cmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrIHJlZ3Jlc3NfdGVz dHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YjQg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBu b25lICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViNCBTRVQgKG9yaWdpbiA9IGFueSk7CiBcZFJzKyByZWdyZXNzX3Rl c3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0 IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViMzsKQEAgLTEzNSwxMCArMTM1LDEwIEBAIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxp ZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGlu IGNvbm5lY3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cp CiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9OIHRl c3RwdWIyLCB0ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMTU1LDEwICsxNTUs MTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0 ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAo bHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBT a2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi Mix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdDIgfCAwLzEyMzQ1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlv biAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzEyMzQ1CiAo MSByb3cpCiAKIC0tIG9rIC0gd2l0aCBsc24gPSBOT05FCkBAIC0xNjcsMTAgKzE2NywxMCBAQCBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9IE5PTkUpOwogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8wJyk7CiBFUlJP UjogIGludmFsaWQgV0FMIGxvY2F0aW9uIChMU04pOiAwLzAKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNh dGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAg ICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 MiB8IDAvMAogKDEgcm93KQogCiBCRUdJTjsKQEAgLTIwMiwxMCArMjAyLDEwIEBAIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAoc3luY2hyb25vdXNfY29tbWl0ID0g Zm9vYmFyKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJzeW5jaHJvbm91 c19jb21taXQiOiAiZm9vYmFyIgogSElOVDogIEF2YWlsYWJsZSB2YWx1ZXM6IGxvY2FsLCByZW1v dGVfd3JpdGUsIHJlbW90ZV9hcHBseSwgb24sIG9mZi4KIFxkUnMrCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgICBOYW1l ICAgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJs aWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgbG9j YWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBw bHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IGxvY2FsICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogLS0gcmVuYW1lIGJh Y2sgdG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKQEAgLTIzOSwxOSArMjM5LDE5IEBAIENSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQg aXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVz dCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2Ny aXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IHQgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5 IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAg ICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChi aW5hcnkgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAor LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJP UCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMjYzLDI3ICsyNjMsMjcgQEAgQ1JF QVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQs IGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlv dSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBz dWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4g YXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAg ICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMp IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0g ZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBw dWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMjk4LDEwICsyOTgsMTAgQEAgQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3Rw dWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBV QkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogRVJS T1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2NyaXB0aW9uICJy ZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCAgICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBs eSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHVi Mn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tIGZhaWwg LSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhlbiBvbmNlCkBAIC0zMTYsMTAgKzMxNiwxMCBAQCBF UlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAicmVn cmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIy IFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg b2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykK IAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMzU1LDEwICszNTUsMTAg QEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNy ZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRp b24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxl IHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAg ICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS1mYWlsIC0gYWx0ZXIgb2YgdHdvX3BoYXNlIG9w dGlvbiBub3Qgc3VwcG9ydGVkLgpAQCAtMzY3LDEwICszNjcsMTAgQEAgRVJST1I6ICB1bnJlY29n bml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogInR3b19waGFzZSIKIC0tIGJ1dCBjYW4gYWx0 ZXIgc3RyZWFtaW5nIHdoZW4gdHdvX3BoYXNlIGVuYWJsZWQKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBs eSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAg ICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CkBAIC0zODAsMTAgKzM4MCwxMCBAQCBDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBj b25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFs bHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwg YW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAo bXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEg cm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1l ID0gTk9ORSk7CkBAIC0zOTYsMjAgKzM5Niw2MSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgog V0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQK IEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRl IHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJl c2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAot LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYg ICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g CistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9vbl9lcnJvciA9 IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8 IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIGZhaWwgLS0gbWluX2FwcGx5X2RlbGF5IG11c3Qg YmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcgorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElP TiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgbWluX2FwcGx5X2RlbGF5ID0gZm9vKTsK K0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZXJ2YWw6ICJmb28iCitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZh bHNlLCBtaW5fYXBwbHlfZGVsYXkgPSAtMSk7CitFUlJPUjogIC0xIG1zIGlzIG91dHNpZGUgdGhl IHZhbGlkIHJhbmdlIGZvciBwYXJhbWV0ZXIgIm1pbl9hcHBseV9kZWxheSIgKDAgLi4gMjE0NzQ4 MzY0NykKKy0tIGZhaWwgLSB1dGlsaXppbmcgc3RyZWFtaW5nID0gcGFyYWxsZWwgd2l0aCB0aW1l IGRlbGF5ZWQgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZC4KK0NSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHN0cmVhbWluZyA9 IHBhcmFsbGVsLCBtaW5fYXBwbHlfZGVsYXkgPSAnMSBkYXknKTsKK0VSUk9SOiAgbWluX2FwcGx5 X2RlbGF5ID4gMCBhbmQgc3RyZWFtaW5nID0gcGFyYWxsZWwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2 ZSBvcHRpb25zCistLSBzdWNjZXNzIC0tIHZhbHVlIHdpdGhvdXQgdW5pdCBpcyB0YWtlbiBhcyBt aWxsaXNlY29uZHMKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRI IChjb25uZWN0ID0gZmFsc2UsIG1pbl9hcHBseV9kZWxheSA9IDEyMyk7CitXQVJOSU5HOiAgc3Vi c2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGlu aXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0 aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2Ny aXB0aW9uLgorXGRScysKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBw bHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAgICAg ICAxMjMgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAKKygxIHJvdykKKworLS0gc3VjY2VzcyAtLSBpbnRlcnZhbCBpcyBjb252ZXJ0ZWQgaW50 byBtcyBhbmQgc3RvcmVkIGFzIGludGVnZXIKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChtaW5fYXBwbHlfZGVsYXkgPSAnNGggMjdtaW4gMzVzJyk7CitcZFJzKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g CistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAxNjA1NTAwMCB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorKDEgcm93KQorCist LSBmYWlsIC0gYWx0ZXIgc3Vic2NyaXB0aW9uIHdpdGggc3RyZWFtaW5nID0gcGFyYWxsZWwgc2hv dWxkIGZhaWwgd2hlbiB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24gaXMgc2V0LgorQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKK0VS Uk9SOiAgY2Fubm90IGVuYWJsZSBzdHJlYW1pbmcgPSBwYXJhbGxlbCBtb2RlIGZvciBzdWJzY3Jp cHRpb24gd2l0aCBtaW5fYXBwbHlfZGVsYXkKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjsKKy0tIGZhaWwgLSBhbHRlciBzdWJzY3JpcHRpb24gd2l0aCBtaW5fYXBwbHlfZGVs YXkgc2hvdWxkIGZhaWwgd2hlbiBzdHJlYW1pbmcgPSBwYXJhbGxlbCBpcyBzZXQuCitDUkVBVEUg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBz dHJlYW1pbmcgPSBwYXJhbGxlbCk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVk LCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5 b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUg c3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgorQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1pbl9hcHBseV9kZWxheSA9IDEyMyk7CitFUlJP UjogIGNhbm5vdCBlbmFibGUgbWluX2FwcGx5X2RlbGF5IGZvciBzdWJzY3JpcHRpb24gaW4gc3Ry ZWFtaW5nID0gcGFyYWxsZWwgbW9kZQogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNj cmlwdGlvbi5zcWwKaW5kZXggNzk5MWFiZmU4Zi4uYmE4MjJkNGMyOSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC0yNzksNiArMjc5LDMxIEBAIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAKKy0tIGZhaWwgLS0gbWluX2FwcGx5 X2RlbGF5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcgorQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgbWluX2FwcGx5X2Rl bGF5ID0gZm9vKTsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRI IChjb25uZWN0ID0gZmFsc2UsIG1pbl9hcHBseV9kZWxheSA9IC0xKTsKKy0tIGZhaWwgLSB1dGls aXppbmcgc3RyZWFtaW5nID0gcGFyYWxsZWwgd2l0aCB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24g aXMgbm90IHN1cHBvcnRlZC4KK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1 YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHN0cmVhbWluZyA9IHBhcmFsbGVsLCBtaW5fYXBwbHlf ZGVsYXkgPSAnMSBkYXknKTsKKworLS0gc3VjY2VzcyAtLSB2YWx1ZSB3aXRob3V0IHVuaXQgaXMg dGFrZW4gYXMgbWlsbGlzZWNvbmRzCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRl c3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkgPSAxMjMpOworXGRS cysKKworLS0gc3VjY2VzcyAtLSBpbnRlcnZhbCBpcyBjb252ZXJ0ZWQgaW50byBtcyBhbmQgc3Rv cmVkIGFzIGludGVnZXIKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUICht aW5fYXBwbHlfZGVsYXkgPSAnNGggMjdtaW4gMzVzJyk7CitcZFJzKworCistLSBmYWlsIC0gYWx0 ZXIgc3Vic2NyaXB0aW9uIHdpdGggc3RyZWFtaW5nID0gcGFyYWxsZWwgc2hvdWxkIGZhaWwgd2hl biB0aW1lIGRlbGF5ZWQgcmVwbGljYXRpb24gaXMgc2V0LgorQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKworLS0gZmFpbCAtIGFsdGVyIHN1YnNjcmlwdGlvbiB3 aXRoIG1pbl9hcHBseV9kZWxheSBzaG91bGQgZmFpbCB3aGVuIHN0cmVhbWluZyA9IHBhcmFsbGVs IGlzIHNldC4KK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChtaW5fYXBwbHlfZGVsYXkgPSAxMjMpOworQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOworCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T047CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIERST1AgUk9MRSByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAppbmRleCAz ZGIwZmRmZDk2Li5hMTg2ODc2ZWI0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24v bWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCkBAIC0z OCw2ICszOCw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAyOV9vbl9lcnJvci5wbCcsCiAgICAg ICAndC8wMzBfb3JpZ2luLnBsJywKICAgICAgICd0LzAzMV9jb2x1bW5fbGlzdC5wbCcsCisgICAg ICAndC8wMzJfYXBwbHlfZGVsYXkucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0s CiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfYXBwbHlfZGVs YXkucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfYXBwbHlfZGVsYXkucGwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYjIxZGUxZmY2MwotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9hcHBseV9kZWxheS5wbApAQCAtMCww ICsxLDE3MCBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IHJlcGxpY2F0aW9uIGFwcGx5IGRlbGF5Cit1c2Ugc3Ry aWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2Ug UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBDcmVhdGUgcHVi bGlzaGVyIG5vZGUuCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVz dGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJl YW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+YXBwZW5kX2NvbmYoJ3Bvc3Rn cmVzcWwuY29uZicsCisJJ2xvZ2ljYWxfZGVjb2Rpbmdfd29ya19tZW0gPSA2NGtCJyk7Ciskbm9k ZV9wdWJsaXNoZXItPnN0YXJ0OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUuCitteSAkbm9k ZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVy Jyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0OworJG5vZGVfc3Vic2NyaWJlci0+YXBwZW5kX2Nv bmYoJ3Bvc3RncmVzcWwuY29uZicsCisJImxvZ19taW5fbWVzc2FnZXMgPSBkZWJ1ZzIiKTsKKyRu b2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIENyZWF0ZSBzb21lIHByZWV4aXN0aW5nIGNvbnRl bnQgb24gcHVibGlzaGVyLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFRBQkxFIHRlc3RfdGFiIChhIGludCBwcmltYXJ5IGtleSwgYiB2YXJjaGFyLCBj IHRpbWVzdGFtcHR6IERFRkFVTFQgbm93KCkpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZXN0X3RhYiBWQUxVRVMgKDEsICdmb28nKSwg KDIsICdiYXInKSIpOworCisjIFNldHVwIHN0cnVjdHVyZSBvbiBzdWJzY3JpYmVyLgorJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZXN0X3Rh YiAoYSBpbnQgcHJpbWFyeSBrZXksIGIgdGV4dCwgYyB0aW1lc3RhbXB0eiBERUZBVUxUIG5vdygp LCBkIGJpZ2ludCBERUZBVUxUIDk5OSkiCispOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRp b24uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAn IGRibmFtZT1wb3N0Z3Jlcyc7CisKKyMgY29sdW1uIGMgbXVzdCBub3QgYmUgcHVibGlzaGVkIGJl Y2F1c2Ugd2Ugd2FudCB0byBjb21wYXJlIHRoZSB0aW1lIGRpZmZlcmVuY2UuCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1 YiBGT1IgVEFCTEUgdGVzdF90YWIgKGEsIGIpIik7CisKK215ICRhcHBuYW1lID0gJ3RhcF9zdWIn OworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJT Q1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHIgYXBwbGljYXRp b25fbmFtZT0kYXBwbmFtZScgUFVCTElDQVRJT04gdGFwX3B1YiBXSVRIIChzdHJlYW1pbmcgPSBv biwgbWluX2FwcGx5X2RlbGF5ID0gJzNzJykiCispOworCisjIFdhaXQgZm9yIGluaXRpYWwgdGFi bGUgc3luYyB0byBmaW5pc2guCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRp b25fc3luYygkbm9kZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKKworIyBDaGVjayBsb2cgc3RhcnRp bmcgbm93IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5IGRlbGF5LgorbXkgJGxvZ19sb2Nh dGlvbiA9IC1zICRub2RlX3N1YnNjcmliZXItPmxvZ2ZpbGU7CisKK215ICRyZXN1bHQgPQorICAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCop LCBtaW4oYSksIG1heChhKSBGUk9NIHRlc3RfdGFiIik7CitpcygkcmVzdWx0LCBxcSgyfDF8Miks ICdjaGVjayBpbml0aWFsIGRhdGEgd2FzIGNvcGllZCB0byBzdWJzY3JpYmVyJyk7CisKKyMgTmV3 IHJvdyB0byB0cmlnZ2VyIGFwcGx5IGRlbGF5LgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVzdF90YWIgVkFMVUVTICgzLCAnYmF6JykiKTsK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRl c3RfdGFiIFZBTFVFUyAoNCwgJ2FiYycpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZXN0X3RhYiBWQUxVRVMgKDUsICdkZWYnKSIpOwor Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJGFwcG5hbWUpOworCiskcmVzdWx0 ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBj b3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0ZXN0X3RhYiIpOworaXMoJHJlc3VsdCwgcXEo NXwxfDUpLCAnY2hlY2sgaWYgdGhlIG5ldyByb3dzIHdlcmUgYXBwbGllZCB0byBzdWJzY3JpYmVy Jyk7CisKK2NoZWNrX2FwcGx5X2RlbGF5X2xvZygibG9naWNhbCByZXBsaWNhdGlvbiBhcHBseSBk ZWxheSIsICIyMDAwIik7CisKK2NoZWNrX2FwcGx5X2RlbGF5X3RpbWUoJzUnLCAnMycpOworCisj IFRlc3Qgc3RyZWFtZWQgdHJhbnNhY3Rpb24uCisjIEluc2VydCwgdXBkYXRlIGFuZCBkZWxldGUg ZW5vdWdoIHJvd3MgdG8gZXhjZWVkIDY0a0IgbGltaXQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLCBxeworQkVHSU47CitJTlNFUlQgSU5UTyB0ZXN0X3RhYiBTRUxF Q1QgaSwgbWQ1KGk6OnRleHQpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDYsIDUwMDApIHMoaSk7CitV UERBVEUgdGVzdF90YWIgU0VUIGIgPSBtZDUoYikgV0hFUkUgbW9kKGEsIDIpID0gMDsKK0RFTEVU RSBGUk9NIHRlc3RfdGFiIFdIRVJFIG1vZChhLCAzKSA9IDA7CitDT01NSVQ7Cit9KTsKKworJG5v ZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRhcHBuYW1lKTsKKworJHJlc3VsdCA9Cisg ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQo KiksIG1pbihhKSwgbWF4KGEpIEZST00gdGVzdF90YWIiKTsKK2lzKCRyZXN1bHQsIHFxKDMzMzR8 MXw1MDAwKSwgJ2NoZWNrIGlmIHRoZSBuZXcgcm93cyB3ZXJlIGFwcGxpZWQgdG8gc3Vic2NyaWJl cicpOworCitjaGVja19hcHBseV9kZWxheV9sb2coImxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkg ZGVsYXkiLCAiMjAwMCIpOworCitjaGVja19hcHBseV9kZWxheV90aW1lKCc1MDAwJywgJzMnKTsK KworIyBUZXN0IEFMVEVSIFNVQlNDUklQVElPTi4gRGVsYXkgODY0NjAgc2Vjb25kcyAoMSBkYXkg MSBtaW51dGUpLgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFM VEVSIFNVQlNDUklQVElPTiB0YXBfc3ViIFNFVCAobWluX2FwcGx5X2RlbGF5ID0gODY0NjAwMDAp IgorKTsKKworIyBOZXcgcm93IHRvIHRyaWdnZXIgYXBwbHkgZGVsYXkuCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZXN0X3RhYiBWQUxVRVMg KDAsICdmb29iYXInKSIpOworCitjaGVja19hcHBseV9kZWxheV9sb2coImxvZ2ljYWwgcmVwbGlj YXRpb24gYXBwbHkgZGVsYXkiLCAiODAwMDAwMDAiKTsKKworIyBEaXNhYmxlIHN1YnNjcmlwdGlv bi4gd29ya2VyIHNob3VsZCBkaWUgaW1tZWRpYXRlbHkuCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWIgRElTQUJMRTsi CispOworCisjIFdhaXQgdW50aWwgd29ya2VyIGRpZXMuCitteSAkc3ViX3F1ZXJ5ID0KKyAgIlNF TEVDVCBjb3VudCgxKSA9IDAgRlJPTSBwZ19zdGF0X3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3RhcF9zdWInIEFORCBwaWQgSVMgTk9UIE5VTEw7IjsKKyRub2RlX3N1YnNjcmliZXItPnBv bGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywgJHN1Yl9xdWVyeSkKKyAgb3IgZGllICJUaW1lZCBv dXQgd2hpbGUgd2FpdGluZyBmb3Igc3Vic2NyaWJlciB0byBkaWUiOworCiskbm9kZV9zdWJzY3Jp YmVyLT5zdG9wOworJG5vZGVfcHVibGlzaGVyLT5zdG9wOworCitkb25lX3Rlc3RpbmcoKTsKKwor c3ViIGNoZWNrX2FwcGx5X2RlbGF5X2xvZworeworCW15ICgkbWVzc2FnZSwgJGV4cGVjdGVkKSA9 IEBfOworCSRleHBlY3RlZCA9IDAgdW5sZXNzIGRlZmluZWQgJGV4cGVjdGVkOworCisJbXkgJG9s ZF9sb2dfbG9jYXRpb24gPSAkbG9nX2xvY2F0aW9uOworCisJJGxvZ19sb2NhdGlvbiA9ICRub2Rl X3N1YnNjcmliZXItPndhaXRfZm9yX2xvZyhxci8kbWVzc2FnZS8sICRsb2dfbG9jYXRpb24pOwor CisJY21wX29rKCRsb2dfbG9jYXRpb24sICc+JywgJG9sZF9sb2dfbG9jYXRpb24sCisJCSJsb2dm aWxlIGNvbnRhaW5zIHRyaWdnZXJlZCBsb2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5IGRlbGF5Igor CSk7CisKKwlpZiAoJGV4cGVjdGVkID4gMCkKKwl7CisJCSMgR2V0IHRoZSBkZWxheSB0aW1lIGlu IHRoZSBzZXJ2ZXIgbG9nLgorCQlteSAkY29udGVudHMgPSBzbHVycF9maWxlKCRub2RlX3N1YnNj cmliZXItPmxvZ2ZpbGUsICRvbGRfbG9nX2xvY2F0aW9uKTsKKwkJJGNvbnRlbnRzID1+CisJCXFy L2xvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkgZGVsYXk6IChcZCspIG1zLworCQlvciBkaWUgImNv dWxkIG5vdCBnZXQgdGltZSI7CisJCW15ICRsb2dnZWRfZGVsYXkgPSAkMTsKKworCQkjIElzIGl0 IGxhcmdlciB0aGFuIGV4cGVjdGVkID8KKwkJY21wX29rKCRsb2dnZWRfZGVsYXksICc+JywgJGV4 cGVjdGVkLAorCQkJIlRoZSB3YWl0IHRpbWUgb2YgdGhlIGFwcGx5IHdvcmtlciBpcyBsb25nIGVu b3VnaCBleHBlY3RlZGx5IgorCQkpOworCX0KK30KKworc3ViIGNoZWNrX2FwcGx5X2RlbGF5X3Rp bWUKK3sKKwlteSAoJHByaW1hcnlfa2V5LCAkZXhwZWN0ZWRfZGlmZnMpID0gQF87CisKKwlteSAk aW5zZXJ0ZWRfdGltZV9vbl9wdWIgPSAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcVsKKwkJU0VMRUNUIGV4dHJhY3QoZXBvY2ggZnJvbSBjKSBGUk9NIHRlc3RfdGFiIFdI RVJFIGEgPSAkcHJpbWFyeV9rZXk7CisJXSk7CisKKwlteSAkaW5zZXJ0ZWRfdGltZV9vbl9zdWIg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXFbCisJCVNFTEVDVCBl eHRyYWN0KGVwb2NoIGZyb20gYykgRlJPTSB0ZXN0X3RhYiBXSEVSRSBhID0gJHByaW1hcnlfa2V5 OworCV0pOworCisJY21wX29rKCRpbnNlcnRlZF90aW1lX29uX3N1YiAtICRpbnNlcnRlZF90aW1l X29uX3B1YiwgJz4nLCAkZXhwZWN0ZWRfZGlmZnMsCisJCSJUaGUgdHVwbGUgb24gdGhlIHN1YnNj cmliZXIgd2FzIG1vZGlmaWVkIGxhdGVyIHRoYW4gdGhlIHB1Ymxpc2hlciIpOworfQotLSAKMi4z MC4wCgo= --_002_TYCPR01MB83739C6133B50DDA8BAD1601EDFD9TYCPR01MB8373jpnp_--