From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1472DC282DD for ; Wed, 22 May 2019 14:31:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D0BDD217D4 for ; Wed, 22 May 2019 14:31:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729573AbfEVObD (ORCPT ); Wed, 22 May 2019 10:31:03 -0400 Received: from mail-oln040092255053.outbound.protection.outlook.com ([40.92.255.53]:55074 "EHLO APC01-HK2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729496AbfEVObC (ORCPT ); Wed, 22 May 2019 10:31:02 -0400 Received: from HK2APC01FT049.eop-APC01.prod.protection.outlook.com (10.152.248.56) by HK2APC01HT057.eop-APC01.prod.protection.outlook.com (10.152.248.228) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1922.16; Wed, 22 May 2019 14:30:57 +0000 Received: from PS2P216MB0642.KORP216.PROD.OUTLOOK.COM (10.152.248.53) by HK2APC01FT049.mail.protection.outlook.com (10.152.249.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1922.16 via Frontend Transport; Wed, 22 May 2019 14:30:57 +0000 Received: from PS2P216MB0642.KORP216.PROD.OUTLOOK.COM ([fe80::1c5e:7ea0:b90c:65c9]) by PS2P216MB0642.KORP216.PROD.OUTLOOK.COM ([fe80::1c5e:7ea0:b90c:65c9%10]) with mapi id 15.20.1922.016; Wed, 22 May 2019 14:30:57 +0000 From: Nicholas Johnson To: "linux-kernel@vger.kernel.org" CC: "linux-pci@vger.kernel.org" , "bhelgaas@google.com" , "mika.westerberg@linux.intel.com" , "corbet@lwn.net" , Nicholas Johnson Subject: [PATCH v6 2/4] PCI: Modify extend_bridge_window() to set resource size directly Thread-Topic: [PATCH v6 2/4] PCI: Modify extend_bridge_window() to set resource size directly Thread-Index: AQHVEKr4LXCXpei2wUm8E5PLOp+BQg== Date: Wed, 22 May 2019 14:30:57 +0000 Message-ID: References: <20190522222928.2964-1-nicholas.johnson-opensource@outlook.com.au> In-Reply-To: <20190522222928.2964-1-nicholas.johnson-opensource@outlook.com.au> Accept-Language: en-AU, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SYBPR01CA0182.ausprd01.prod.outlook.com (2603:10c6:10:52::26) To PS2P216MB0642.KORP216.PROD.OUTLOOK.COM (2603:1096:300:1c::16) x-incomingtopheadermarker: OriginalChecksum:740C92D4E1CF1E0C4DEDBDBFF7858B92FBD3E9145DC2DACD8163D6601E0B33EA;UpperCasedChecksum:D36088524FF24528BD8DE8C08F7B6416E2C19F590AEAF0DA82CBD58707660FD5;SizeAsReceived:7908;Count:50 x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.19.1 x-tmn: [cdS8nkYCPMEd0lOhgZUxGLkqD5fehTd5n2/Q+P+bgZhG18io+iR27BzXoljUlhnzI4P8RrUbdv8=] x-microsoft-original-message-id: <20190522222928.2964-3-nicholas.johnson-opensource@outlook.com.au> x-ms-publictraffictype: Email x-incomingheadercount: 50 x-eopattributedmessage: 0 x-ms-exchange-slblob-mailprops: zswcL9HXbeUiX0zZ7ySjSUyGp5OFWI2c3bi5ld70R/pNUM8L97IpnYUf5kDn3ez/RvkCwo820rd9CSSxvaw/2IfyUhAtqWcupnYNJgzDhpLuYHy7FBROcPNKlYf2wOWc4E65bTdbgpXtqBhwa0+LLSoH1g2f546gRyfrkbjQzjcnjap73/B5dOZF3Rn2xSN1rD6mtBlqNZHRk5K1hLBB6lyKorGfySobyIylhp83scM6ZBQPwsFrcocHPE7u88Qj+e/+NBTVXRCMP75xjhUpdA3PsmUrCa3trhAnZTu0oIH8RG16nVO9C24Z0dFqLgwU0FimzdxrXeZpmLMGL2ZA531/JrBoaLuHL0IO5WbG4zaEhINsa6q8Qfm67tOPNUjzEGMQk5uU9R3Yi+ei6sQMTBCgDjSlc4v+kLebwIEk44KC5dxxWUrcct7jvyQDU7ij7VY1EyzEPfGg4n+Fc3IWC86kHhgWmp7NLQ3IpC0QmYafJYak0sUfymg741bRSl+NDJZHGedunf0uMJgDO1O0lvH9lret1ZqaG1DfXURvb+1h7wz07VAfKW5y9s/g8HuIENLRY/CCjnDz4v9UB9MFLRE9WifRVZrTJ75y17eJMCW0eh8jkON8xLm5goDUnZWLcL4DN3lMAgJ+IVXifK8gByMC/yXAWKOS9IWv5C0LPDxxQWj21YiTIqbo2Dk8MXrNhG5VEO09I4CEnpJbBUcT5hS1u0VDNgBxDBAqXme1grxscqpmF2c3MVFbJh9syLKl x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(5050001)(7020095)(20181119110)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(201702181274)(2017031323274)(2017031324274)(2017031322404)(1601125500)(1603101475)(1701031045);SRVR:HK2APC01HT057; x-ms-traffictypediagnostic: HK2APC01HT057: x-microsoft-antispam-message-info: tDxHz0ZyQ4RFuQPtmI7Q+FPK/Fm5RZxUhK5/JpKRHzT4sOouv3pjWTIgRqKNPy87hr9aG9R3k7f0kmtHOiXZOz0CH2vREkIDjq9VrQm6xkMUGVU4KES08EJ9bf1no+ONUYCe1yZvnBWzLS3ph+OBV2poB1sl0PrHHtwnIvLsnxgEcxfz7cUnv2TKKyxmyJZY Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: acaf4792-230d-4b4a-3dd2-08d6dec21a8a X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2019 14:30:57.4146 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2APC01HT057 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org QmFja2dyb3VuZA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KSW4gdGhlIGN1cnJlbnQgc3RhdGUsIHRo ZSBQQ0kgYWxsb2NhdGlvbiBjb3VsZCBmYWlsIHdpdGggVGh1bmRlcmJvbHQNCnVuZGVyIGNlcnRh aW4gdW51c3VhbCBjaXJjdW1zdGFuY2VzLCBiZWNhdXNlIGFkZF9saXN0IHJlc291cmNlcyBhcmUN CiJvcHRpb25hbCIuIEd1YXJhbnRlZWQgYWxsb2NhdGlvbiByZXF1aXJlcyBndWFyYW50ZWVkIHJl c291cmNlIHNpemVzLg0KDQpJdCBpcyBkaWZmaWN1bHQgdG8gZ2l2ZSBleGFtcGxlcyBvZiB0aGVz ZSBmYWlsdXJlcyAtIGJlY2F1c2Ugd2l0aG91dCB0aGUNCnByZXZpb3VzIHBhdGNoIGluIHRoZSBz ZXJpZXMsIHRoZSBzeW1wdG9tcyBvZiB0aGUgcHJvYmxlbSBhcmUgaGlkZGVuIGJ5DQpsYXJnZXIg cHJvYmxlbXMuIFRoaXMgcGF0Y2ggaGFzIGJlZW4gc3BsaXQgZnJvbSB0aGUgcHJldmlvdXMgcGF0 Y2ggYW5kDQptYWtlcyBsaXR0bGUgc2Vuc2Ugb24gaXRzIG93biAtIGFzIGl0IGlzIGFsbW9zdCBp bXBvc3NpYmxlIHRvIHNlZSB0aGUNCmVmZmVjdCBvZiB0aGlzIHBhdGNoIHdpdGhvdXQgZmlyc3Qg Zml4aW5nIHRoZSBwcm9ibGVtcyBhZGRyZXNzZWQgYnkgdGhlDQpwcmV2aW91cyBwYXRjaC4gU28g dGhlIGV2aWRlbmNlIEkgcHV0IGZvcndhcmQgZm9yIG1ha2luZyB0aGlzIGNoYW5nZSBpcw0KdGhh dCBiZWNhdXNlIGFkZF9saXN0IHJlc291cmNlcyBhcmUgIm9wdGlvbmFsIiwgdGhlcmUgY291bGQg YmUgYW55DQpudW1iZXIgb2YgdW5mb3Jlc2VlbiBidWdzIHRoYXQgYXJlIHlldCB0byBiZSBlbmNv dW50ZXJlZCBpZiB0aGUga2VybmVsDQpkZWNpZGVzIG5vdCB0byBhc3NpZ24gYWxsIG9mIHRoZSBv cHRpb25hbCBzaXplLiBJbiBrZXJuZWwgZGV2ZWxvcG1lbnQsDQp3ZSBzaG91bGQgbm90IHBsYXkg YXJvdW5kIHdpdGggY2hhbmNlLg0KDQpNb3ZpbmcgYXdheSBmcm9tIGFkZF9zaXplIGFsc28gYWxs b3dzIGZvciB1c2Ugb2YgcGNpPWhwbWVtc2l6ZSB0byBhc3NpZ24NCnJlc291cmNlcy4gUHJldmlv dXNseSwgd2hlbiB1c2luZyBhZGRfc2l6ZSBhbmQgbm90IGFsbG93aW5nIHRoZSBhZGRfc2l6ZQ0K dG8gc2hyaW5rLCBpdCBtYWRlIGl0IGltcG9zc2libGUgdG8gZGlzdHJpYnV0ZSByZXNvdXJjZXMu IElmIGEgaG90cGx1Zw0KYnJpZGdlIGhhcyBzaXplIFgsIGFuZCBiZWxvdyBpdCBpcyBzb21lIGRl dmljZXMgd2l0aCBub24temVybyBzaXplIFkgYW5kDQphIG5lc3RlZCBob3RwbHVnIGJyaWRnZSBv ZiBzYW1lIHNpemUgWCwgZml0dGluZyBYK1kgaW50byBzaXplIFggaXMNCm1hdGhlbWF0aWNhbGx5 IGltcG9zc2libGUuDQoNClRoaXMgcGF0Y2ggc29sdmVzIHRoaXMgYnkgZHJvcHBpbmcgYWRkX3Np emUgYW5kIGdpdmluZyBlYWNoIGJyaWRnZSB0aGUNCm1heGltdW0gc2l6ZSBwb3NzaWJsZSB3aXRo b3V0IGZhaWxpbmcgcmVzb3VyY2UgYXNzaWdubWVudC4gVXNpbmcNCnBjaT1ocG1lbXNpemUgc3Rp bGwgd29ya3MgYXMgcGNpX2Fzc2lnbl91bmFzc2lnbmVkX3Jvb3RfYnVzX3Jlc291cmNlcygpDQpk b2VzIG5vdCBjYWxsIHBjaV9idXNfZGlzdHJpYnV0ZV9hdmFpbGFibGVfcmVzb3VyY2VzKCkuIEF0 IGJvb3QsDQpwY2lfYXNzaWduX3VuYXNzaWduZWRfcm9vdF9idXNfcmVzb3VyY2VzKCkgaXMgdXNl ZCwgaW5zdGVhZCBvZg0KcGNpX2JyaWRnZV9kaXN0cmlidXRlX2F2YWlsYWJsZV9yZXNvdXJjZXMo KS4NCg0KQnkgYWxsb3dpbmcgdG8gdXNlIHBjaT1ocG1lbXNpemUsIGl0IHJlbW92ZXMgdGhlIHJl bGlhbmNlIG9uIHRoZQ0KZmlybXdhcmUgdG8gZGVjbGFyZSB0aGUgd2luZG93IHJlc291cmNlcyB1 bmRlciB0aGUgcm9vdCBwb3J0LCBhbmQgY291bGQNCnBheSBvZmYgaW4gdGhlIGZ1dHVyZSB3aXRo IFVTQjQgKHdoaWNoIGlzIGJhY2t3YXJkLWNvbXBhdGlibGUgdG8NClRodW5kZXJib2x0IGRldmlj ZXMsIGFuZCBub3Qgc3BlY2lmaWMgdG8gSW50ZWwgc3lzdGVtcykuIFVzZXJzIG9mDQpUaHVuZGVy Ym9sdCBoYXJkd2FyZSBvbiB1bnN1cHBvcnRlZCBzeXN0ZW1zIHdpbGwgYmUgYWJsZSB0byBzcGVj aWZ5IHRoZQ0KcmVzb3VyY2VzIGluIHRoZSBrZXJuZWwgcGFyYW1ldGVycy4gVXNlcnMgb2Ygb2Zm aWNpYWwgc3lzdGVtcyB3aWxsIGJlDQphYmxlIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGZpcm13 YXJlIHdpbmRvdyBzaXplcyB0byBhbGxvY2F0ZSBtdWNoDQpsYXJnZXIgcmVzb3VyY2Ugc2l6ZXMs IHBvdGVudGlhbGx5IGVuYWJsaW5nIFRodW5kZXJib2x0IHN1cHBvcnQgZm9yDQpkZXZpY2VzIHdp dGggbWFzc2l2ZSBCQVJzICh3aXRoIGEgZmV3IG90aGVyIHByb2JsZW1zIHNvbHZlZCBieSBsYXRl cg0KcGF0Y2hlcyBpbiB0aGlzIHNlcmllcykuDQoNClBhdGNoIG5vdGVzDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KDQpNb2RpZnkgZXh0ZW5kX2JyaWRnZV93aW5kb3coKSB0byByZW1vdmUgdGhlIHJlc291 cmNlIGZyb20gYWRkX2xpc3QgYW5kDQpjaGFuZ2UgdGhlIHJlc291cmNlIHNpemUgZGlyZWN0bHku DQoNCk1vZGlmeSBleHRlbmRfYnJpZGdlX3dpbmRvdygpIHRvIHJlc2V0IHJlc291cmNlcyB0aGF0 IGFyZSBiZWluZyBhc3NpZ25lZA0KemVybyBzaXplLiBUaGlzIGlzIHJlcXVpcmVkIHRvIHByZXZl bnQgdGhlIGJyaWRnZSBub3QgYmVpbmcgZW5hYmxlZCBkdWUNCnRvIHJlc291cmNlcyB3aXRoIHpl cm8gc2l6ZS4gVGhpcyBpcyBhIGRpcmVjdCByZXF1aXJlbWVudCB0byBwcmV2ZW50IHRoZQ0KY2hh bmdlIGF3YXkgZnJvbSB1c2luZyBhZGRfbGlzdCBmcm9tIGludHJvZHVjaW5nIGEgcmVncmVzc2lv biAtIGJlY2F1c2UNCmJlZm9yZSwgaXQgd2FzIG5vdCBwb3NzaWJsZSB0byBlbmQgdXAgd2l0aCB6 ZXJvIHNpemUuDQoNClNpZ25lZC1vZmYtYnk6IE5pY2hvbGFzIEpvaG5zb24gPG5pY2hvbGFzLmpv aG5zb24tb3BlbnNvdXJjZUBvdXRsb29rLmNvbS5hdT4NCi0tLQ0KIGRyaXZlcnMvcGNpL3NldHVw LWJ1cy5jIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCiAx IGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pDQoNCmRpZmYg LS1naXQgYS9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYyBiL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5j DQppbmRleCAxYjViODUxY2EuLjU2NzUyNTRmYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGNpL3Nl dHVwLWJ1cy5jDQorKysgYi9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYw0KQEAgLTE4MTAsMjggKzE4 MTAsNDAgQEAgdm9pZCBfX2luaXQgcGNpX2Fzc2lnbl91bmFzc2lnbmVkX3Jlc291cmNlcyh2b2lk KQ0KIH0NCiANCiBzdGF0aWMgdm9pZCBleHRlbmRfYnJpZGdlX3dpbmRvdyhzdHJ1Y3QgcGNpX2Rl diAqYnJpZGdlLCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcywNCi0JCQkJIHN0cnVjdCBsaXN0X2hlYWQg KmFkZF9saXN0LA0KLQkJCQkgcmVzb3VyY2Vfc2l6ZV90IGF2YWlsYWJsZSkNCisJCQlzdHJ1Y3Qg bGlzdF9oZWFkICphZGRfbGlzdCwgcmVzb3VyY2Vfc2l6ZV90IG5ld19zaXplKQ0KIHsNCi0Jc3Ry dWN0IHBjaV9kZXZfcmVzb3VyY2UgKmRldl9yZXM7DQorCXJlc291cmNlX3NpemVfdCBhZGRfc2l6 ZTsNCiANCiAJaWYgKHJlcy0+cGFyZW50KQ0KIAkJcmV0dXJuOw0KIA0KLQlpZiAocmVzb3VyY2Vf c2l6ZShyZXMpID49IGF2YWlsYWJsZSkNCi0JCXJldHVybjsNCi0NCi0JZGV2X3JlcyA9IHJlc190 b19kZXZfcmVzKGFkZF9saXN0LCByZXMpOw0KLQlpZiAoIWRldl9yZXMpDQotCQlyZXR1cm47DQor CWlmIChuZXdfc2l6ZSA+PSByZXNvdXJjZV9zaXplKHJlcykpIHsNCisJCWFkZF9zaXplID0gbmV3 X3NpemUgLSByZXNvdXJjZV9zaXplKHJlcyk7DQorCQlwY2lfZGJnKGJyaWRnZSwgImJyaWRnZSB3 aW5kb3cgJXBSIGV4dGVuZGVkIGJ5ICVwYVxuIiwgcmVzLA0KKwkJCSZhZGRfc2l6ZSk7DQorCX0g ZWxzZSB7DQorCQlhZGRfc2l6ZSA9IHJlc291cmNlX3NpemUocmVzKSAtIG5ld19zaXplOw0KKwkJ cGNpX2RiZyhicmlkZ2UsICJicmlkZ2Ugd2luZG93ICVwUiBzaHJ1bmtlbiBieSAlcGFcbiIsIHJl cywNCisJCQkmYWRkX3NpemUpOw0KKwl9DQogDQotCS8qIElzIHRoZXJlIHJvb20gdG8gZXh0ZW5k IHRoZSB3aW5kb3c/ICovDQotCWlmIChhdmFpbGFibGUgLSByZXNvdXJjZV9zaXplKHJlcykgPD0g ZGV2X3Jlcy0+YWRkX3NpemUpDQotCQlyZXR1cm47DQorCS8qDQorCSAqIFJlc291cmNlcyByZXF1 ZXN0ZWQgdXNpbmcgYWRkX3NpemUgaW4gYWRkaXRpb25hbCByZXNvdXJjZSBsaXN0cyBhcmUNCisJ ICogY29uc2lkZXJlZCBvcHRpb25hbCB3aGVuIGFsbG9jYXRlZC4gR3VhcmFudGVlZCBzaXplIG9m IGFsbG9jYXRpb24NCisJICogaXMgcmVxdWlyZWQgdG8gZ3VhcmFudGVlIHN1Y2Nlc3NmdWwgcmVz b3VyY2UgZGlzdHJpYnV0aW9uLiBIZW5jZSwNCisJICogdGhlIHNpemUgb2YgdGhlIGFjdHVhbCBy ZXNvdXJjZSBtdXN0IGJlIGFkanVzdGVkLCBhbmQgdGhlIHJlc291cmNlDQorCSAqIHJlbW92ZWQg ZnJvbSBhZGRfbGlzdCB0byBwcmV2ZW50IGFueSBhZGRpdGlvbmFsIHNpemUgaW50ZXJmZXJpbmcu DQorCSAqLw0KKwlyZXMtPmVuZCA9IHJlcy0+c3RhcnQgKyBuZXdfc2l6ZSAtIDE7DQorCXJlbW92 ZV9mcm9tX2xpc3QoYWRkX2xpc3QsIHJlcyk7DQogDQotCWRldl9yZXMtPmFkZF9zaXplID0gYXZh aWxhYmxlIC0gcmVzb3VyY2Vfc2l6ZShyZXMpOw0KLQlwY2lfZGJnKGJyaWRnZSwgImJyaWRnZSB3 aW5kb3cgJXBSIGV4dGVuZGVkIGJ5ICVwYVxuIiwgcmVzLA0KLQkJJmRldl9yZXMtPmFkZF9zaXpl KTsNCisJLyoNCisJICogSWYgd2UgaGF2ZSBydW4gb3V0IG9mIGJyaWRnZSByZXNvdXJjZXMsIHdl IG1heSBlbmQgdXAgd2l0aCBhDQorCSAqIHplcm8tc2l6ZWQgcmVzb3VyY2Ugd2hpY2ggbWF5IGNh dXNlIGl0cyBicmlkZ2UgdG8gbm90IGJlIGVuYWJsZWQuDQorCSAqIERpc2FibGluZyB0aGUgcmVz b3VyY2UgcHJldmVudHMgYW55IHN1Y2ggaXNzdWVzLg0KKwkgKi8NCisJaWYgKCFuZXdfc2l6ZSkN CisJCXJlc2V0X3Jlc291cmNlKHJlcyk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIHBjaV9idXNfZGlz dHJpYnV0ZV9hdmFpbGFibGVfcmVzb3VyY2VzKHN0cnVjdCBwY2lfYnVzICpidXMsDQotLSANCjIu MjAuMQ0KDQo=