From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7A09143C9E; Wed, 13 Mar 2024 10:38:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D74E840A84; Wed, 13 Mar 2024 10:38:04 +0100 (CET) Received: from szxga06-in.huawei.com (szxga06-in.huawei.com [45.249.212.32]) by mails.dpdk.org (Postfix) with ESMTP id 347D64069D for ; Wed, 13 Mar 2024 10:38:02 +0100 (CET) Received: from mail.maildlp.com (unknown [172.19.88.214]) by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4Tvllw1XYLz1vwbs; Wed, 13 Mar 2024 17:37:16 +0800 (CST) Received: from dggpeml500021.china.huawei.com (unknown [7.185.36.21]) by mail.maildlp.com (Postfix) with ESMTPS id 6B54E1A016C; Wed, 13 Mar 2024 17:37:59 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by dggpeml500021.china.huawei.com (7.185.36.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 13 Mar 2024 17:37:58 +0800 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.035; Wed, 13 Mar 2024 10:37:56 +0100 From: Konstantin Ananyev To: "Varghese, Vipin" , Fengchengwen , "dev@dpdk.org" CC: "ferruh.yigit@amd.com" , "neerav.parikh@amd.com" Subject: RE: [PATCH v2] app/dma-perf: calrify incorrect NUMA config Thread-Topic: [PATCH v2] app/dma-perf: calrify incorrect NUMA config Thread-Index: AQHac3mi55mVBZ7TsEKZ2/vlgQGQrLEzTT4AgAAbMgCAAgRegA== Date: Wed, 13 Mar 2024 09:37:56 +0000 Message-ID: <6ddf3909cb3f45fca968b8ebb4267067@huawei.com> References: <20240306150204.1375-1-vipin.varghese@amd.com> <20240311060053.137-1-vipin.varghese@amd.com> <6ee9b198-4419-2016-a05b-4e1711d946a7@huawei.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.206.138.42] Content-Type: multipart/alternative; boundary="_000_6ddf3909cb3f45fca968b8ebb4267067huaweicom_" MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --_000_6ddf3909cb3f45fca968b8ebb4267067huaweicom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Pk9rLCB0aGUgbmFtaW5nIGNvbnZlbnRpb24gdXNlZCBieSBtZSBpcyBgQ2FtZWxDYXNlYC4gT25l IHN1Z2dlc3RlZCBmcm9tIHlvdXIgZW5kIGlzIGBzbmFrZV9jYXNlYC4NCg0KPkRvZXMgRFBESyBo YXMgYSBjb25zdHJhaW4gaXQgY2FuIG5vdCB1c2UgQ2FtZWxDYXNlLg0KDQoNCg0KUGxlYXNlIHJl ZmVyIHRvOg0KDQpodHRwczovL2RvYy5kcGRrLm9yZy9ndWlkZXMvY29udHJpYnV0aW5nL2NvZGlu Z19zdHlsZS5odG1sDQoNCkluIHBhcnRpY3VsYXI6DQoxLjUuNC4gVmFyaWFibGUgRGVjbGFyYXRp b25zDQpJbiBkZWNsYXJhdGlvbnMsIGRvIG5vdCBwdXQgYW55IHdoaXRlc3BhY2UgYmV0d2VlbiBh c3Rlcmlza3MgYW5kIGFkamFjZW50IHRva2VucywgZXhjZXB0IGZvciB0b2tlbnMgdGhhdCBhcmUg aWRlbnRpZmllcnMgcmVsYXRlZCB0byB0eXBlcy4gKFRoZXNlIGlkZW50aWZpZXJzIGFyZSB0aGUg bmFtZXMgb2YgYmFzaWMgdHlwZXMsIHR5cGUgcXVhbGlmaWVycywgYW5kIHR5cGVkZWYtbmFtZXMg b3RoZXIgdGhhbiB0aGUgb25lIGJlaW5nIGRlY2xhcmVkLikgU2VwYXJhdGUgdGhlc2UgaWRlbnRp ZmllcnMgZnJvbSBhc3Rlcmlza3MgdXNpbmcgYSBzaW5nbGUgc3BhY2UuDQpGb3IgZXhhbXBsZToN CmludCAqeDsgICAgICAgICAvKiBubyBzcGFjZSBhZnRlciBhc3RlcmlzayAqLw0KaW50ICogY29u c3QgeDsgIC8qIHNwYWNlIGFmdGVyIGFzdGVyaXNrIHdoZW4gdXNpbmcgYSB0eXBlIHF1YWxpZmll ciAqLw0KwrcgICAgICAgICBBbGwgZXh0ZXJuYWxseS12aXNpYmxlIHZhcmlhYmxlcyBzaG91bGQg aGF2ZSBhbiBydGVfIHByZWZpeCBpbiB0aGUgbmFtZSB0byBhdm9pZCBuYW1lc3BhY2UgY29sbGlz aW9ucy4NCsK3ICAgICAgICAgRG8gbm90IHVzZSB1cHBlcmNhc2UgbGV0dGVycyAtIGVpdGhlciBp biB0aGUgZm9ybSBvZiBBTExfVVBQRVJDQVNFLCBvciBDYW1lbENhc2UgLSBpbiB2YXJpYWJsZSBu YW1lcy4gTG93ZXItY2FzZSBsZXR0ZXJzIGFuZCB1bmRlcnNjb3JlcyBvbmx5Lg0KDQoNCg0KDQoN Cg0KRnJvbTogVmFyZ2hlc2UsIFZpcGluIDx2aXBpbi52YXJnaGVzZUBhbWQuY29tPg0KU2VudDog VHVlc2RheSwgTWFyY2ggMTIsIDIwMjQgMzo0OCBBTQ0KVG86IEZlbmdjaGVuZ3dlbiA8ZmVuZ2No ZW5nd2VuQGh1YXdlaS5jb20+OyBkZXZAZHBkay5vcmcNCkNjOiBmZXJydWgueWlnaXRAYW1kLmNv bTsgbmVlcmF2LnBhcmlraEBhbWQuY29tDQpTdWJqZWN0OiBSZTogW1BBVENIIHYyXSBhcHAvZG1h LXBlcmY6IGNhbHJpZnkgaW5jb3JyZWN0IE5VTUEgY29uZmlnDQoNCjxzbmlwcGVkPg0KDQpkaWZm IC0tZ2l0IGEvYXBwL3Rlc3QtZG1hLXBlcmYvYmVuY2htYXJrLmMgYi9hcHAvdGVzdC1kbWEtcGVy Zi9iZW5jaG1hcmsuYw0KDQppbmRleCA5YjFmNThjNzhjLi5iNmQwZGJlNGMwIDEwMDY0NA0KDQot LS0gYS9hcHAvdGVzdC1kbWEtcGVyZi9iZW5jaG1hcmsuYw0KDQorKysgYi9hcHAvdGVzdC1kbWEt cGVyZi9iZW5jaG1hcmsuYw0KDQpAQCAtMzExLDkgKzMxMSwxNCBAQCBzZXR1cF9tZW1vcnlfZW52 KHN0cnVjdCB0ZXN0X2NvbmZpZ3VyZSAqY2ZnLCBzdHJ1Y3QgcnRlX21idWYgKioqc3JjcywNCg0K ICAgICAgdWludDMyX3QgbnJfYnVmID0gY2ZnLT5ucl9idWY7DQoNCg0KDQogICAgICBucl9zb2Nr ZXRzID0gcnRlX3NvY2tldF9jb3VudCgpOw0KDQotICAgICBpZiAoY2ZnLT5zcmNfbnVtYV9ub2Rl ID49IG5yX3NvY2tldHMgfHwNCg0KLSAgICAgICAgICAgICBjZmctPmRzdF9udW1hX25vZGUgPj0g bnJfc29ja2V0cykgew0KDQotICAgICAgICAgICAgIHByaW50ZigiRXJyb3I6IFNvdXJjZSBvciBk ZXN0aW5hdGlvbiBudW1hIGV4Y2VlZHMgdGhlIGFjdHVyZSBudW1hIG5vZGVzLlxuIik7DQoNCisN Cg0KKyAgICAgYm9vbCBpc1NyY051bWFJbmNvcnJlY3QgPSAoY2ZnLT5zcmNfbnVtYV9ub2RlID49 IG5yX3NvY2tldHMpOw0KDQorICAgICBib29sIGlzRHN0TnVtYUluY29ycmVjdCA9IChjZmctPmRz dF9udW1hX25vZGUgPj0gbnJfc29ja2V0cyk7DQoNCg0KDQpUaGUgbmFtaW5nIHN0eWxlIG5lZWRz IHRvIGJlIGFkanVzdGVkLCBob3cgYWJvdXQNCg0KYm9vbCBpc19zcmNfbnVtYV9leGNlZWQsIGlz X2RzdF9udW1hX2V4Y2VlZDsNCg0KT2ssIHRoZSBuYW1pbmcgY29udmVudGlvbiB1c2VkIGJ5IG1l IGlzIGBDYW1lbENhc2VgLiBPbmUgc3VnZ2VzdGVkIGZyb20geW91ciBlbmQgaXMgYHNuYWtlX2Nh c2VgLg0KDQpEb2VzIERQREsgaGFzIGEgY29uc3RyYWluIGl0IGNhbiBub3QgdXNlIENhbWVsQ2Fz ZS4NCg0KDQoNCg0KDQpBbmQgcHJlZGVmaW5lIHRoZSB2YXJpYWJsZSBhdCB0aGUgYmVnaW5uaW5n IG9mIGZ1bmN0aW9uLCBzb3J0IGJ5IGxlbmd0aCwgc29tZSBsaWtlOg0KDQoNCg0KICAgICAgICBi b29sIGlzX3NyY19udW1hX2V4Y2VlZCwgaXNfZHN0X251bWFfZXhjZWVkOw0KDQogICAgICAgIHVu c2lnbmVkIGludCBidWZfc2l6ZSA9IGNmZy0+YnVmX3NpemUuY3VyOw0KDQogICAgICAgIHVpbnQz Ml90IG5yX2J1ZiA9IGNmZy0+bnJfYnVmOw0KDQogICAgICAgIHVuc2lnbmVkIGludCBucl9zb2Nr ZXRzOw0KDQoNCg0KICAgICAgICBucl9zb2NrZXRzID0gcnRlX3NvY2tldF9jb3VudCgpOw0KDQog ICAgICAgIGlzX3NyY19udW1hX2V4Y2VlZCA9DQoNCiAgICAgICAgaXNfZHN0X251bWFfZXhjZWVk ID0NCg0KICAgICAgICBpZiAoeHh4KQ0KDQogICAgICAgICAgICAgICAgLi4uDQoNCg0KDQorDQoN CisgICAgIGlmIChpc1NyY051bWFJbmNvcnJlY3QgfHwgaXNEc3ROdW1hSW5jb3JyZWN0KSB7DQoN CisgICAgICAgICAgICAgUFJJTlRfRVJSKCJFcnJvcjogTlVNQSBjb25maWcgZXhjZWVkcyB0aGUg YWN0dWFsIG51bWEgbm9kZXMgZm9yICVzLlxuIiwNCg0KKyAgICAgICAgICAgICAgICAgICAgIChp c1NyY051bWFJbmNvcnJlY3QgJiYgaXNEc3ROdW1hSW5jb3JyZWN0KSA/ICJTb3VyY2UgJiBEZXN0 aW5hdGlvbiIgOg0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNTcmNOdW1hSW5j b3JyZWN0KSA/ICJTb3VyY2UiIDogIkRlc3RpbmF0aW9uIik7DQoNCg0KDQpQbGVhc2UgZG9uJ3Qg Y2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mICJTb3VyY2UiIGFuZCAiRGVzdGluYXRpb24i DQoNCkNhbiB5b3UgcGxlYXNlIGV4cGxhaW4gd2h5Pw0KDQoNCg0KDQoNCg0KDQpUaGFua3MNCg0K DQoNCiAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KDQogICAgICB9DQoNCg0KDQoNCg== --_000_6ddf3909cb3f45fca968b8ebb4267067huaweicom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDb25zb2xhczsNCglwYW5vc2UtMToyIDEx IDYgOSAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5Okdlb3JnaWE7DQoJ cGFub3NlLTE6MiA0IDUgMiA1IDQgNSAyIDMgMzt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0K cC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0K CW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5 OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCmgzDQoJe21zby1zdHlsZS1wcmlvcml0eTo5Ow0KCW1z by1zdHlsZS1saW5rOiJIZWFkaW5nIDMgQ2hhciI7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 DQoJbWFyZ2luLXJpZ2h0OjBpbjsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJn aW4tbGVmdDowaW47DQoJZm9udC1zaXplOjEzLjVwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs c2Fucy1zZXJpZjsNCglmb250LXdlaWdodDpib2xkO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxp bmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7DQoJdGV4dC1kZWNv cmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQN Cgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJdGV4dC1kZWNvcmF0 aW9uOnVuZGVybGluZTt9DQpwcmUNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHls ZS1saW5rOiJIVE1MIFByZWZvcm1hdHRlZCBDaGFyIjsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1i b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVy IE5ldyI7fQ0KcC5tc29ub3JtYWwwLCBsaS5tc29ub3JtYWwwLCBkaXYubXNvbm9ybWFsMA0KCXtt c28tc3R5bGUtbmFtZTptc29ub3JtYWw7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFy Z2luLXJpZ2h0OjBpbjsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVm dDowaW47DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1z ZXJpZjt9DQpzcGFuLkhUTUxQcmVmb3JtYXR0ZWRDaGFyDQoJe21zby1zdHlsZS1uYW1lOiJIVE1M IFByZWZvcm1hdHRlZCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxl LWxpbms6IkhUTUwgUHJlZm9ybWF0dGVkIjsNCglmb250LWZhbWlseTpDb25zb2xhczt9DQpzcGFu LkVtYWlsU3R5bGUyMQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZh bWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4uSGVh ZGluZzNDaGFyDQoJe21zby1zdHlsZS1uYW1lOiJIZWFkaW5nIDMgQ2hhciI7DQoJbXNvLXN0eWxl LXByaW9yaXR5Ojk7DQoJbXNvLXN0eWxlLWxpbms6IkhlYWRpbmcgMyI7DQoJZm9udC1mYW1pbHk6 IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJZm9udC13ZWlnaHQ6Ym9sZDt9DQpzcGFuLmt0DQoJe21z by1zdHlsZS1uYW1lOmt0O30NCnNwYW4ubw0KCXttc28tc3R5bGUtbmFtZTpvO30NCnNwYW4ubg0K CXttc28tc3R5bGUtbmFtZTpuO30NCnNwYW4ucA0KCXttc28tc3R5bGUtbmFtZTpwO30NCnNwYW4u Y20NCgl7bXNvLXN0eWxlLW5hbWU6Y207fQ0Kc3Bhbi5rDQoJe21zby1zdHlsZS1uYW1lOms7fQ0K c3Bhbi5wcmUNCgl7bXNvLXN0eWxlLW5hbWU6cHJlO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1z dHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0KQHBhZ2UgV29yZFNl Y3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAx LjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi8qIExpc3Qg RGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJe21zby1saXN0LWlkOjE4MjkwMTA4MTg7DQoJbXNv LWxpc3QtdGVtcGxhdGUtaWRzOjE3MjkwMjcxMjA7fQ0KQGxpc3QgbDA6bGV2ZWwxDQoJe21zby1s ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxl dmVsLXRhYi1zdG9wOi41aW47DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl eHQtaW5kZW50Oi0uMjVpbjsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFt aWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6 YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MS4waW47 DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsN Cgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlz dCBsMDpsZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZl bC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MS41aW47DQoJbXNvLWxldmVsLW51bWJl ci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCgltc28tYW5zaS1mb250LXNp emU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDQNCgl7bXNv LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28t bGV2ZWwtdGFiLXN0b3A6Mi4waW47DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0K CXRleHQtaW5kZW50Oi0uMjVpbjsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQt ZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3Jt YXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6Mi41 aW47DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVp bjsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpA bGlzdCBsMDpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s ZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6My4waW47DQoJbXNvLWxldmVsLW51 bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCgltc28tYW5zaS1mb250 LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDcNCgl7 bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCglt c28tbGV2ZWwtdGFiLXN0b3A6My41aW47DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0 Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZv bnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1m b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6 NC4waW47DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0u MjVpbjsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9 DQpAbGlzdCBsMDpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1z by1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6NC41aW47DQoJbXNvLWxldmVs LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCgltc28tYW5zaS1m b250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpvbA0KCXttYXJnaW4tYm90 dG9tOjBpbjt9DQp1bA0KCXttYXJnaW4tYm90dG9tOjBpbjt9DQotLT48L3N0eWxlPjwhLS1baWYg Z3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0i MTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86 c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEi IC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBs YW5nPSJFTi1VUyIgbGluaz0iIzA1NjNDMSIgdmxpbms9IiM5NTRGNzIiPg0KPGRpdiBjbGFzcz0i V29yZFNlY3Rpb24xIj4NCjxwPiZndDtPaywgdGhlIG5hbWluZyBjb252ZW50aW9uIHVzZWQgYnkg bWUgaXMgYENhbWVsQ2FzZWAuIE9uZSBzdWdnZXN0ZWQgZnJvbSB5b3VyIGVuZCBpcyBgc25ha2Vf Y2FzZWAuPG86cD48L286cD48L3A+DQo8cD4mZ3Q7RG9lcyBEUERLIGhhcyBhIGNvbnN0cmFpbiBp dCBjYW4gbm90IHVzZSBDYW1lbENhc2UuPG86cD48L286cD48L3A+DQo8cD48bzpwPiZuYnNwOzwv bzpwPjwvcD4NCjxwPlBsZWFzZSByZWZlciB0bzo8bzpwPjwvbzpwPjwvcD4NCjxwPjxhIGhyZWY9 Imh0dHBzOi8vZG9jLmRwZGsub3JnL2d1aWRlcy9jb250cmlidXRpbmcvY29kaW5nX3N0eWxlLmh0 bWwiPmh0dHBzOi8vZG9jLmRwZGsub3JnL2d1aWRlcy9jb250cmlidXRpbmcvY29kaW5nX3N0eWxl Lmh0bWw8L2E+PG86cD48L286cD48L3A+DQo8cD5JbiBwYXJ0aWN1bGFyOjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv O2JhY2tncm91bmQ6I0ZDRkNGQyI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNS4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7R2VvcmdpYSZxdW90OyxzZXJpZjtjb2xvcjojNDA0MDQwIj4xLjUuNC4g VmFyaWFibGUgRGVjbGFyYXRpb25zPG86cD48L286cD48L3NwYW4+PC9iPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOi4yNWluO2xpbmUtaGVpZ2h0OjE4LjBw dDtiYWNrZ3JvdW5kOiNGQ0ZDRkMiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNDA0MDQwIj5JbiBk ZWNsYXJhdGlvbnMsIGRvIG5vdCBwdXQgYW55IHdoaXRlc3BhY2UgYmV0d2VlbiBhc3Rlcmlza3Mg YW5kIGFkamFjZW50IHRva2VucywgZXhjZXB0IGZvciB0b2tlbnMgdGhhdCBhcmUgaWRlbnRpZmll cnMgcmVsYXRlZCB0byB0eXBlcy4gKFRoZXNlIGlkZW50aWZpZXJzIGFyZSB0aGUgbmFtZXMgb2Yg YmFzaWMNCiB0eXBlcywgdHlwZSBxdWFsaWZpZXJzLCBhbmQgdHlwZWRlZi1uYW1lcyBvdGhlciB0 aGFuIHRoZSBvbmUgYmVpbmcgZGVjbGFyZWQuKSBTZXBhcmF0ZSB0aGVzZSBpZGVudGlmaWVycyBm cm9tIGFzdGVyaXNrcyB1c2luZyBhIHNpbmdsZSBzcGFjZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTouMjVpbjtsaW5lLWhl aWdodDoxOC4wcHQ7YmFja2dyb3VuZDojRkNGQ0ZDIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6 MTIuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzQw NDA0MCI+Rm9yIGV4YW1wbGU6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9ImJhY2tncm91bmQ6I0Y4RjhGOCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5 LjBwdDtmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjojQjAwMDQwIj5pbnQ8L3NwYW4+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjojNDA0MDQw Ij4NCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OkNvbnNv bGFzO2NvbG9yOiM2NjY2NjYiPio8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtm b250LWZhbWlseTpDb25zb2xhcztjb2xvcjojNDA0MDQwIj54OyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxpPjxzcGFuIHN0eWxlPSJmb250 LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6IzQwODA4MCI+Lyogbm8gc3Bh Y2UgYWZ0ZXIgYXN0ZXJpc2sgKi88L3NwYW4+PC9pPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4w cHQ7Zm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6IzQwNDA0MCI+PG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImJhY2tncm91bmQ6I0Y4RjhGOCI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjojQjAw MDQwIj5pbnQ8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTpD b25zb2xhcztjb2xvcjojNDA0MDQwIj4NCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjku MHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOiM2NjY2NjYiPio8L3NwYW4+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjojNDA0MDQwIj4N Cjwvc3Bhbj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OkNvbnNv bGFzO2NvbG9yOmdyZWVuIj5jb25zdDwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5 LjBwdDtmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjojNDA0MDQwIj4geDsmbmJzcDsNCjwvc3Bh bj48aT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2Nv bG9yOiM0MDgwODAiPi8qIHNwYWNlIGFmdGVyIGFzdGVyaXNrIHdoZW4gdXNpbmcgYSB0eXBlIHF1 YWxpZmllciAqLzwvc3Bhbj48L2k+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZh bWlseTpDb25zb2xhcztjb2xvcjojNDA0MDQwIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6LjI1aW47dGV4dC1pbmRlbnQ6LS4yNWluO2xp bmUtaGVpZ2h0OjE4LjBwdDttc28tbGlzdDpsMCBsZXZlbDEgbGZvMTtiYWNrZ3JvdW5kOiNGQ0ZD RkMiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7 Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiM0MDQwNDAiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJ Z25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1 b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwv c3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM0MDQwNDAi PkFsbCBleHRlcm5hbGx5LXZpc2libGUgdmFyaWFibGVzIHNob3VsZCBoYXZlIGFuJm5ic3A7PC9z cGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6Q29uc29sYXM7Y29s b3I6I0U3NEMzQztib3JkZXI6c29saWQgI0UxRTRFNSAxLjBwdDtwYWRkaW5nOjIuMHB0O2JhY2tn cm91bmQ6d2hpdGUiPnJ0ZV88L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojNDA0MDQwIj4mbmJz cDtwcmVmaXgNCiBpbiB0aGUgbmFtZSB0byBhdm9pZCBuYW1lc3BhY2UgY29sbGlzaW9ucy48bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6LjI1 aW47dGV4dC1pbmRlbnQ6LS4yNWluO2xpbmUtaGVpZ2h0OjE4LjBwdDttc28tbGlzdDpsMCBsZXZl bDEgbGZvMTtiYWNrZ3JvdW5kOiNGQ0ZDRkMiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiM0MDQwNDAi PjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQg JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3Bh biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90Oyxz YW5zLXNlcmlmO2NvbG9yOiM0MDQwNDAiPkRvIG5vdCB1c2UgdXBwZXJjYXNlIGxldHRlcnMgLSBl aXRoZXIgaW4gdGhlIGZvcm0gb2YgQUxMX1VQUEVSQ0FTRSwgb3IgQ2FtZWxDYXNlIC0gaW4gdmFy aWFibGUgbmFtZXMuIExvd2VyLWNhc2UgbGV0dGVycyBhbmQgdW5kZXJzY29yZXMgb25seS48bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cD48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwPjxvOnA+Jm5i c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9 ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGlu IDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpz b2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IFZhcmdoZXNlLCBWaXBpbiAmbHQ7dmlwaW4udmFyZ2hl c2VAYW1kLmNvbSZndDsgPGJyPg0KPGI+U2VudDo8L2I+IFR1ZXNkYXksIE1hcmNoIDEyLCAyMDI0 IDM6NDggQU08YnI+DQo8Yj5Ubzo8L2I+IEZlbmdjaGVuZ3dlbiAmbHQ7ZmVuZ2NoZW5nd2VuQGh1 YXdlaS5jb20mZ3Q7OyBkZXZAZHBkay5vcmc8YnI+DQo8Yj5DYzo8L2I+IGZlcnJ1aC55aWdpdEBh bWQuY29tOyBuZWVyYXYucGFyaWtoQGFtZC5jb208YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtQ QVRDSCB2Ml0gYXBwL2RtYS1wZXJmOiBjYWxyaWZ5IGluY29ycmVjdCBOVU1BIGNvbmZpZzxvOnA+ PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmx0O3NuaXBwZWQmZ3Q7Jm5ic3A7 IDxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFy Z2luLWJvdHRvbTo1LjBwdCI+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDtt YXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxwcmU+ZGlmZiAtLWdpdCBhL2FwcC90ZXN0LWRtYS1wZXJm L2JlbmNobWFyay5jIGIvYXBwL3Rlc3QtZG1hLXBlcmYvYmVuY2htYXJrLmM8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT5pbmRleCA5YjFmNThjNzhjLi5iNmQwZGJlNGMwIDEwMDY0NDxvOnA+PC9vOnA+ PC9wcmU+DQo8cHJlPi0tLSBhL2FwcC90ZXN0LWRtYS1wZXJmL2JlbmNobWFyay5jPG86cD48L286 cD48L3ByZT4NCjxwcmU+JiM0MzsmIzQzOyYjNDM7IGIvYXBwL3Rlc3QtZG1hLXBlcmYvYmVuY2ht YXJrLmM8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5AQCAtMzExLDkgJiM0MzszMTEsMTQgQEAgc2V0 dXBfbWVtb3J5X2VudihzdHJ1Y3QgdGVzdF9jb25maWd1cmUgKmNmZywgc3RydWN0IHJ0ZV9tYnVm ICoqKnNyY3MsPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IHVpbnQzMl90IG5yX2J1ZiA9IGNmZy0mZ3Q7bnJfYnVmOzxvOnA+PC9vOnA+PC9wcmU+ DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyBucl9zb2NrZXRzID0gcnRlX3NvY2tldF9jb3VudCgpOzxvOnA+PC9vOnA+PC9w cmU+DQo8cHJlPi0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKGNmZy0mZ3Q7c3JjX251bWFf bm9kZSAmZ3Q7PSBucl9zb2NrZXRzIHx8PG86cD48L286cD48L3ByZT4NCjxwcmU+LSZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBjZmctJmd0O2RzdF9udW1hX25vZGUgJmd0Oz0gbnJfc29ja2V0cykgezxvOnA+PC9v OnA+PC9wcmU+DQo8cHJlPi0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHJpbnRmKCZxdW90O0Vycm9yOiBTb3Vy Y2Ugb3IgZGVzdGluYXRpb24gbnVtYSBleGNlZWRzIHRoZSBhY3R1cmUgbnVtYSBub2Rlcy5cbiZx dW90Oyk7PG86cD48L286cD48L3ByZT4NCjxwcmU+JiM0Mzs8bzpwPjwvbzpwPjwvcHJlPg0KPHBy ZT4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBib29sIGlzU3JjTnVtYUluY29ycmVjdCA9 IChjZmctJmd0O3NyY19udW1hX25vZGUgJmd0Oz0gbnJfc29ja2V0cyk7PG86cD48L286cD48L3By ZT4NCjxwcmU+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYm9vbCBpc0RzdE51bWFJbmNv cnJlY3QgPSAoY2ZnLSZndDtkc3RfbnVtYV9ub2RlICZndDs9IG5yX3NvY2tldHMpOzxvOnA+PC9v OnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8 cHJlPlRoZSBuYW1pbmcgc3R5bGUgbmVlZHMgdG8gYmUgYWRqdXN0ZWQsIGhvdyBhYm91dDxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPmJvb2wgaXNfc3JjX251bWFfZXhjZWVkLCBpc19kc3RfbnVtYV9l eGNlZWQ7PG86cD48L286cD48L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxwPk9rLCB0aGUgbmFtaW5n IGNvbnZlbnRpb24gdXNlZCBieSBtZSBpcyBgQ2FtZWxDYXNlYC4gT25lIHN1Z2dlc3RlZCBmcm9t IHlvdXIgZW5kIGlzIGBzbmFrZV9jYXNlYC48bzpwPjwvbzpwPjwvcD4NCjxwPkRvZXMgRFBESyBo YXMgYSBjb25zdHJhaW4gaXQgY2FuIG5vdCB1c2UgQ2FtZWxDYXNlLjxvOnA+PC9vOnA+PC9wPg0K PGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+ DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9w cmU+DQo8cHJlPkFuZCBwcmVkZWZpbmUgdGhlIHZhcmlhYmxlIGF0IHRoZSBiZWdpbm5pbmcgb2Yg ZnVuY3Rpb24sIHNvcnQgYnkgbGVuZ3RoLCBzb21lIGxpa2U6PG86cD48L286cD48L3ByZT4NCjxw cmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJvb2wgaXNfc3JjX251bWFfZXhjZWVkLCBpc19kc3RfbnVtYV9l eGNlZWQ7PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IHVuc2lnbmVkIGludCBidWZfc2l6ZSA9IGNmZy0mZ3Q7YnVmX3NpemUu Y3VyOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyB1aW50MzJfdCBucl9idWYgPSBjZmctJmd0O25yX2J1Zjs8bzpwPjwvbzpw PjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg dW5zaWduZWQgaW50IG5yX3NvY2tldHM7PG86cD48L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJz cDs8L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IG5yX3NvY2tldHMgPSBydGVfc29ja2V0X2NvdW50KCk7PG86cD48L286cD48L3ByZT4N CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlzX3NyY19u dW1hX2V4Y2VlZCA9PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlzX2RzdF9udW1hX2V4Y2VlZCA9PG86cD48L286cD48L3By ZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICh4 eHgpPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IC4uLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8 YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4N CjxwcmU+JiM0Mzs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mIzQzOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBpZiAoaXNTcmNOdW1hSW5jb3JyZWN0IHx8IGlzRHN0TnVtYUluY29ycmVjdCkgezxv OnA+PC9vOnA+PC9wcmU+DQo8cHJlPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFBSSU5UX0VSUigmcXVv dDtFcnJvcjogTlVNQSBjb25maWcgZXhjZWVkcyB0aGUgYWN0dWFsIG51bWEgbm9kZXMgZm9yICVz LlxuJnF1b3Q7LDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChpc1NyY051bWFJ bmNvcnJlY3QgJmFtcDsmYW1wOyBpc0RzdE51bWFJbmNvcnJlY3QpID8gJnF1b3Q7U291cmNlICZh bXA7IERlc3RpbmF0aW9uJnF1b3Q7IDo8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mIzQzOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAoaXNTcmNO dW1hSW5jb3JyZWN0KSA/ICZxdW90O1NvdXJjZSZxdW90OyA6ICZxdW90O0Rlc3RpbmF0aW9uJnF1 b3Q7KTs8bzpwPjwvbzpwPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHByZT48bzpwPiZuYnNwOzwv bzpwPjwvcHJlPg0KPHByZT5QbGVhc2UgZG9uJ3QgY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVy IG9mICZxdW90O1NvdXJjZSZxdW90OyBhbmQgJnF1b3Q7RGVzdGluYXRpb24mcXVvdDs8bzpwPjwv bzpwPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHA+Q2FuIHlvdSBwbGVhc2UgZXhwbGFpbiB3aHk/ PG86cD48L286cD48L3A+DQo8cD48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0 eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHByZT48bzpwPiZu YnNwOzwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT5UaGFu a3M8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPGJsb2Nr cXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8cHJl PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PG86cD48L286cD48L3ByZT4NCjxwcmU+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48 bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPC9i bG9ja3F1b3RlPg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRt bD4NCg== --_000_6ddf3909cb3f45fca968b8ebb4267067huaweicom_--