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 D315246283; Fri, 21 Feb 2025 03:17:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0DA3B40A8A; Fri, 21 Feb 2025 03:17:15 +0100 (CET) Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.216.63.35]) by mails.dpdk.org (Postfix) with ESMTP id 9545140E01 for ; Fri, 21 Feb 2025 03:17:12 +0100 (CET) Received: from mse-fl1.zte.com.cn (unknown [10.5.228.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxhk.zte.com.cn (FangMail) with ESMTPS id 4YzYfv1Z94z5B1Jt; Fri, 21 Feb 2025 10:17:11 +0800 (CST) Received: from szxl2zmapp06.zte.com.cn ([10.1.32.108]) by mse-fl1.zte.com.cn with SMTP id 51L2Gq6p044801; Fri, 21 Feb 2025 10:16:52 +0800 (+08) (envelope-from wang.junlong1@zte.com.cn) Received: from localhost.localdomain (unknown [192.168.6.15]) by smtp (Zmail) with SMTP; Fri, 21 Feb 2025 10:16:53 +0800 X-Zmail-TransId: 3e8167b7e215004-f0a38 From: Junlong Wang To: stephen@networkplumber.org Cc: dev@dpdk.org, Junlong Wang Subject: [PATCH v2 07/16] net/zxdh: optimize promisc ops Date: Fri, 21 Feb 2025 10:03:35 +0800 Message-ID: <20250221020346.494392-8-wang.junlong1@zte.com.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250221020346.494392-1-wang.junlong1@zte.com.cn> References: <20250213064134.88166-2-wang.junlong1@zte.com.cn> <20250221020346.494392-1-wang.junlong1@zte.com.cn> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: multipart/mixed; boundary="=====_001_next=====" X-MAIL: mse-fl1.zte.com.cn 51L2Gq6p044801 X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 67B7E227.002/4YzYfv1Z94z5B1Jt 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 --=====_001_next===== Content-Type: multipart/related; boundary="=====_002_next=====" --=====_002_next===== Content-Type: multipart/alternative; boundary="=====_003_next=====" --=====_003_next===== Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 b3B0aW1pemUgcHJvbWlzYyBvcHMuDQoNClNpZ25lZC1vZmYtYnk6IEp1bmxvbmcgV2FuZyA8d2Fu Zy5qdW5sb25nMUB6dGUuY29tLmNuPg0KLS0tDQogZHJpdmVycy9uZXQvenhkaC96eGRoX21zZy5j ICAgIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGRyaXZlcnMvbmV0 L3p4ZGgvenhkaF90YWJsZXMuYyB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGRy aXZlcnMvbmV0L3p4ZGgvenhkaF90YWJsZXMuaCB8ICAzICstDQogMyBmaWxlcyBjaGFuZ2VkLCAx MTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvenhkaC96eGRoX21zZy5jIGIvZHJpdmVycy9uZXQvenhkaC96eGRoX21zZy5jDQppbmRleCA3 YjM0NTYyNDhjLi44OTJkNTdhNTFlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvenhkaC96eGRo X21zZy5jDQorKysgYi9kcml2ZXJzL25ldC96eGRoL3p4ZGhfbXNnLmMNCkBAIC0xMjIzLDYgKzEy MjMsMjQgQEAgenhkaF9iYXJfY2hhbl9tc2dfcmVjdl9yZWdpc3Rlcih1aW50OF90IG1vZHVsZV9p ZCwgenhkaF9iYXJfY2hhbl9tc2dfcmVjdl9jYWxsYmENCiAJcmV0dXJuIFpYREhfQkFSX01TR19P SzsNCiB9DQogDQorc3RhdGljIGludA0KK3p4ZGhfdmZfcHJvbWlzY19pbml0KHN0cnVjdCB6eGRo X2h3ICpodywgdW5pb24genhkaF92aXJwb3J0X251bSB2cG9ydCkNCit7DQorCWludDE2X3QgcmV0 Ow0KKw0KKwlyZXQgPSB6eGRoX2Rldl9icm9hZGNhc3Rfc2V0KGh3LCB2cG9ydC52cG9ydCwgdHJ1 ZSk7DQorCXJldHVybiByZXQ7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCit6eGRoX3ZmX3Byb21pc2Nf dW5pbml0KHN0cnVjdCB6eGRoX2h3ICpodywgdW5pb24genhkaF92aXJwb3J0X251bSB2cG9ydCkN Cit7DQorCWludDE2X3QgcmV0Ow0KKw0KKwlyZXQgPSB6eGRoX2Rldl9icm9hZGNhc3Rfc2V0KGh3 LCB2cG9ydC52cG9ydCwgZmFsc2UpOw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCiBzdGF0aWMgaW50 DQogenhkaF92Zl9wb3J0X2luaXQoc3RydWN0IHp4ZGhfaHcgKnBmX2h3LCB1aW50MTZfdCB2cG9y dCwgdm9pZCAqY2ZnX2RhdGEsDQogCQlzdHJ1Y3QgenhkaF9tc2dfcmVwbHlfYm9keSAqcmVzX2lu Zm8gX19ydGVfdW51c2VkLA0KQEAgLTEyNTEsNiArMTI2OSwxMiBAQCB6eGRoX3ZmX3BvcnRfaW5p dChzdHJ1Y3QgenhkaF9odyAqcGZfaHcsIHVpbnQxNl90IHZwb3J0LCB2b2lkICpjZmdfZGF0YSwN CiAJCWdvdG8gcHJvY19lbmQ7DQogCX0NCiANCisJcmV0ID0genhkaF92Zl9wcm9taXNjX2luaXQo cGZfaHcsIHBvcnQpOw0KKwlpZiAocmV0KSB7DQorCQlQTURfRFJWX0xPRyhFUlIsICJ2Zl9wcm9t aXNjX3RhYmxlX2luaXQgZmFpbGVkLCBjb2RlOiVkIiwgcmV0KTsNCisJCWdvdG8gcHJvY19lbmQ7 DQorCX0NCisNCiAJcmVzX2luZm8tPmZsYWcgPSBaWERIX1JFUFNfU1VDQzsNCiAJKnJlc19sZW4g PSBzaXplb2YocmVzX2luZm8tPmZsYWcpOw0KIA0KQEAgLTEzMDksNiArMTMzMywxMiBAQCB6eGRo X3ZmX3BvcnRfdW5pbml0KHN0cnVjdCB6eGRoX2h3ICpwZl9odywNCiAJCWdvdG8gcHJvY19lbmQ7 DQogCX0NCiANCisJcmV0ID0genhkaF92Zl9wcm9taXNjX3VuaW5pdChwZl9odywgdnBvcnRfbnVt KTsNCisJaWYgKHJldCkgew0KKwkJUE1EX0RSVl9MT0coRVJSLCAidmZfcHJvbWlzY190YWJsZV91 bmluaXQgZmFpbGVkLCBjb2RlOiVkIiwgcmV0KTsNCisJCWdvdG8gcHJvY19lbmQ7DQorCX0NCisN CiAJKnJlc19sZW4gKz0gc3RybGVuKHN0cik7DQogCXJ0ZV9tZW1jcHkoJnJlc19pbmZvLT5yZXBs eV9kYXRhLCBzdHIsIHN0cmxlbihzdHIpICsgMSk7DQogCXJlc19pbmZvLT5mbGFnID0gWlhESF9S RVBTX1NVQ0M7DQpAQCAtMTQwOCwxMiArMTQzOCw0NCBAQCB6eGRoX2RlbF92Zl9tYWNfdGFibGUo c3RydWN0IHp4ZGhfaHcgKmh3LCB1aW50MTZfdCB2cG9ydCwgdm9pZCAqY2ZnX2RhdGEsDQogCXJl dHVybiByZXQ7DQogfQ0KIA0KK3N0YXRpYyBpbnQNCit6eGRoX3ZmX3Byb21pc2Nfc2V0KHN0cnVj dCB6eGRoX2h3ICpodywgdWludDE2X3QgdnBvcnQsIHZvaWQgKmNmZ19kYXRhLA0KKwkJc3RydWN0 IHp4ZGhfbXNnX3JlcGx5X2JvZHkgKnJlcGx5LCB1aW50MTZfdCAqcmVzX2xlbikNCit7DQorCXN0 cnVjdCB6eGRoX3BvcnRfcHJvbWlzY19tc2cgKnByb21pc2NfbXNnID0gKHN0cnVjdCB6eGRoX3Bv cnRfcHJvbWlzY19tc2cgKiljZmdfZGF0YTsNCisJaW50IHJldCA9IDA7DQorDQorCVJURV9BU1NF UlQoIWNmZ19kYXRhIHx8ICFodyB8fCAhcmVzX2luZm8gfHwgIXJlc19sZW4pOw0KKw0KKwlpZiAo cHJvbWlzY19tc2ctPm1vZGUgPT0gWlhESF9QUk9NSVNDX01PREUpIHsNCisJCXp4ZGhfZGV2X3Vu aWNhc3RfdGFibGVfc2V0KGh3LCB2cG9ydCwgcHJvbWlzY19tc2ctPnZhbHVlKTsNCisJCWlmIChw cm9taXNjX21zZy0+bWNfZm9sbG93ID09IDEpDQorCQkJcmV0ID0genhkaF9kZXZfbXVsdGljYXN0 X3RhYmxlX3NldChodywgdnBvcnQsIHByb21pc2NfbXNnLT52YWx1ZSk7DQorCX0gZWxzZSBpZiAo cHJvbWlzY19tc2ctPm1vZGUgPT0gWlhESF9BTExNVUxUSV9NT0RFKSB7DQorCQlyZXQgPSB6eGRo X2Rldl9tdWx0aWNhc3RfdGFibGVfc2V0KGh3LCB2cG9ydCwgcHJvbWlzY19tc2ctPnZhbHVlKTsN CisJfSBlbHNlIHsNCisJCVBNRF9EUlZfTE9HKEVSUiwgInByb21pc2Nfc2V0X21zZyBtb2RlWyV1 XSBlcnJvciIsIHByb21pc2NfbXNnLT5tb2RlKTsNCisJCWdvdG8gcHJvY19lbmQ7DQorCX0NCisN CisJKnJlc19sZW4gPSBzaXplb2Yoc3RydWN0IHp4ZGhfcG9ydF9hdHRyX3NldF9tc2cpICsgc2l6 ZW9mKGVudW0genhkaF9yZXBzX2ZsYWcpOw0KKwlyZXBseS0+ZmxhZyA9IFpYREhfUkVQU19TVUND Ow0KKw0KKwlyZXR1cm4gcmV0Ow0KKw0KK3Byb2NfZW5kOg0KKwkqcmVzX2xlbiA9IHNpemVvZihz dHJ1Y3QgenhkaF9wb3J0X2F0dHJfc2V0X21zZykgKyBzaXplb2YoZW51bSB6eGRoX3JlcHNfZmxh Zyk7DQorCXJlcGx5LT5mbGFnID0gWlhESF9SRVBTX0ZBSUw7DQorCXJldHVybiByZXQ7DQorfQ0K Kw0KIHp4ZGhfbXNnX3Byb2Nlc3NfY2FsbGJhY2sgenhkaF9wcm9jX2NiW10gPSB7DQogCVtaWERI X05VTExdID0gTlVMTCwNCiAJW1pYREhfVkZfUE9SVF9JTklUXSA9IHp4ZGhfdmZfcG9ydF9pbml0 LA0KIAlbWlhESF9WRl9QT1JUX1VOSU5JVF0gPSB6eGRoX3ZmX3BvcnRfdW5pbml0LA0KIAlbWlhE SF9NQUNfQUREXSA9IHp4ZGhfYWRkX3ZmX21hY190YWJsZSwNCiAJW1pYREhfTUFDX0RFTF0gPSB6 eGRoX2RlbF92Zl9tYWNfdGFibGUsDQorCVtaWERIX1BPUlRfUFJPTUlTQ19TRVRdID0genhkaF92 Zl9wcm9taXNjX3NldCwNCiB9Ow0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvenhkaC96eGRoX3RhYmxlcy5jIGIvZHJpdmVycy9uZXQvenhkaC96eGRoX3Rh Ymxlcy5jDQppbmRleCBiZmMyNDBhMDUxLi45ODM4YjhkMTAzIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvenhkaC96eGRoX3RhYmxlcy5jDQorKysgYi9kcml2ZXJzL25ldC96eGRoL3p4ZGhfdGFi bGVzLmMNCkBAIC01OTUsNiArNTk1LDcgQEAgenhkaF9kZXZfdW5pY2FzdF90YWJsZV9zZXQoc3Ry dWN0IHp4ZGhfaHcgKmh3LCB1aW50MTZfdCB2cG9ydCwgYm9vbCBlbmFibGUpDQogew0KIAlzdHJ1 Y3QgenhkaF9kdGJfc2hhcmVkX2RhdGEgKmR0Yl9kYXRhID0gJmh3LT5kZXZfc2QtPmR0Yl9zZDsN CiAJc3RydWN0IHp4ZGhfdW5pdGNhc3RfdGFibGUgdWNfdGFibGUgPSB7MH07DQorCXN0cnVjdCB6 eGRoX3BvcnRfYXR0cl90YWJsZSBwb3J0X2F0dHIgPSB7MH07DQogCXVuaW9uIHp4ZGhfdmlycG9y dF9udW0gdnBvcnRfbnVtID0gKHVuaW9uIHp4ZGhfdmlycG9ydF9udW0pdnBvcnQ7DQogCWludDE2 X3QgcmV0ID0gMDsNCiANCkBAIC02MjksNiArNjMwLDIwIEBAIHp4ZGhfZGV2X3VuaWNhc3RfdGFi bGVfc2V0KHN0cnVjdCB6eGRoX2h3ICpodywgdWludDE2X3QgdnBvcnQsIGJvb2wgZW5hYmxlKQ0K IAkJUE1EX0RSVl9MT0coRVJSLCAidW5pY2FzdF90YWJsZV9zZXRfZmFpbGVkOiVkIiwgaHctPnZm aWQpOw0KIAkJcmV0dXJuIC1yZXQ7DQogCX0NCisNCisJcmV0ID0genhkaF9nZXRfcG9ydF9hdHRy KGh3LCB2cG9ydCwgJnBvcnRfYXR0cik7DQorCWlmIChyZXQpIHsNCisJCVBNRF9EUlZfTE9HKEVS UiwgInBvcnRfYXR0cl90YWJsZV9nZXRfZmFpbGVkOiVkIiwgaHctPnZmaWQpOw0KKwkJcmV0dXJu IC1yZXQ7DQorCX0NCisNCisJcG9ydF9hdHRyLnByb21pc2NfZW5hYmxlID0gZW5hYmxlOw0KKwly ZXQgPSB6eGRoX3NldF9wb3J0X2F0dHIoaHcsIHZwb3J0LCAmcG9ydF9hdHRyKTsNCisJaWYgKHJl dCkgew0KKwkJUE1EX0RSVl9MT0coRVJSLCAicG9ydF9hdHRyX3RhYmxlX3NldF9mYWlsZWQ6JWQi LCBody0+dmZpZCk7DQorCQlyZXR1cm4gLXJldDsNCisJfQ0KKw0KIAlyZXR1cm4gMDsNCiB9DQog DQpAQCAtODUyLDMgKzg2NywzNyBAQCB6eGRoX3Jzc190YWJsZV9nZXQoc3RydWN0IHp4ZGhfaHcg Kmh3LCB1aW50MTZfdCB2cG9ydCwgc3RydWN0IHp4ZGhfcnNzX3JldGEgKnJzcw0KIAl9DQogCXJl dHVybiAwOw0KIH0NCisNCitpbnQNCit6eGRoX2Rldl9icm9hZGNhc3Rfc2V0KHN0cnVjdCB6eGRo X2h3ICpodywgdWludDE2X3QgdnBvcnQsIGJvb2wgZW5hYmxlKQ0KK3sNCisJc3RydWN0IHp4ZGhf ZHRiX3NoYXJlZF9kYXRhICpkdGJfZGF0YSA9ICZody0+ZGV2X3NkLT5kdGJfc2Q7DQorCXN0cnVj dCB6eGRoX2Jyb2Nhc3RfdGFibGUgYnJvY2FzdF90YWJsZSA9IHswfTsNCisJdW5pb24genhkaF92 aXJwb3J0X251bSB2cG9ydF9udW0gPSAodW5pb24genhkaF92aXJwb3J0X251bSl2cG9ydDsNCisJ aW50MTZfdCB2Zl9ncm91cF9pZCA9IHZwb3J0X251bS52ZmlkIC8gNjQ7DQorCWludDE2X3QgcmV0 ID0gMDsNCisNCisJWlhESF9EVEJfRVJBTV9FTlRSWV9JTkZPX1QgZXJhbV9lbnRyeSA9IHsNCisJ CQkoKGh3LT52ZmlkIC0gWlhESF9CQVNFX1ZGSUQpIDw8IDIpICsgdmZfZ3JvdXBfaWQsDQorCQkJ KHVpbnQzMl90ICopJmJyb2Nhc3RfdGFibGV9Ow0KKwlaWERIX0RUQl9VU0VSX0VOVFJZX1QgZW50 cnlfZ2V0ID0gew0KKwkJCS5zZHRfbm8gPSBaWERIX1NEVF9CUk9DQVNUX0FUVF9UQUJMRSwNCisJ CQkucF9lbnRyeV9kYXRhID0gKHZvaWQgKikmZXJhbV9lbnRyeX07DQorDQorCXJldCA9IHp4ZGhf bnBfZHRiX3RhYmxlX2VudHJ5X2dldChody0+c2xvdF9pZCwgZHRiX2RhdGEtPnF1ZXVlaWQsICZl bnRyeV9nZXQsIDEpOw0KKwlpZiAocmV0ID09IDApIHsNCisJCWlmIChlbmFibGUpDQorCQkJYnJv Y2FzdF90YWJsZS5iaXRtYXBbKHZwb3J0X251bS52ZmlkICUgNjQpIC8gMzJdIHw9DQorCQkJCQko KFVJTlQzMl9DKDEpIDw8ICgzMSAtICh2cG9ydF9udW0udmZpZCAlIDY0KSAlIDMyKSkpOw0KKwkJ ZWxzZQ0KKwkJCWJyb2Nhc3RfdGFibGUuYml0bWFwWyh2cG9ydF9udW0udmZpZCAlIDY0KSAvIDMy XSAmPQ0KKwkJCQkJfigoVUlOVDMyX0MoMSkgPDwgKDMxIC0gKHZwb3J0X251bS52ZmlkICUgNjQp ICUgMzIpKSk7DQorDQorCQlyZXQgPSB6eGRoX25wX2R0Yl90YWJsZV9lbnRyeV93cml0ZShody0+ c2xvdF9pZCwgZHRiX2RhdGEtPnF1ZXVlaWQsIDEsICZlbnRyeV9nZXQpOw0KKwkJaWYgKHJldCkg ew0KKwkJCVBNRF9EUlZfTE9HKEVSUiwgImJyb2Nhc3RfdGFibGVfd3JpdGVfZmFpbGVkLiBjb2Rl OiVkIiwgcmV0KTsNCisJCQlyZXR1cm4gLXJldDsNCisJCX0NCisJfQ0KKwlyZXR1cm4gMDsNCit9 DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvenhkaC96eGRoX3RhYmxlcy5oIGIvZHJpdmVycy9u ZXQvenhkaC96eGRoX3RhYmxlcy5oDQppbmRleCBkZTMwNDc0MjEwLi4wNDA4NjdkMzMzIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvenhkaC96eGRoX3RhYmxlcy5oDQorKysgYi9kcml2ZXJzL25l dC96eGRoL3p4ZGhfdGFibGVzLmgNCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCB6eGRoX3BvcnRf YXR0cl90YWJsZSB7DQogCXVpbnQ4X3QgaXNfdXA6IDE7DQogCXVpbnQ4X3QgcnN2MTogMTsNCiAN Ci0JdWludDhfdCByc3YzIDogMTsNCisJdWludDhfdCBwcm9taXNjX2VuYWJsZSA6IDE7DQogCXVp bnQ4X3QgcmRtYV9vZmZsb2FkX2VuYWJsZTogMTsNCiAJdWludDhfdCB2bGFuX2ZpbHRlcl9lbmFi bGU6IDE7DQogCXVpbnQ4X3Qgdmxhbl9zdHJpcF9vZmZsb2FkOiAxOw0KQEAgLTI0OCw1ICsyNDgs NiBAQCBpbnQgenhkaF9yc3NfdGFibGVfc2V0KHN0cnVjdCB6eGRoX2h3ICpodywgdWludDE2X3Qg dnBvcnQsIHN0cnVjdCB6eGRoX3Jzc19yZXRhDQogaW50IHp4ZGhfcnNzX3RhYmxlX2dldChzdHJ1 Y3QgenhkaF9odyAqaHcsIHVpbnQxNl90IHZwb3J0LCBzdHJ1Y3QgenhkaF9yc3NfcmV0YSAqcnNz X3JldGEpOw0KIGludCB6eGRoX2dldF9wYW5lbF9hdHRyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LCBzdHJ1Y3QgenhkaF9wYW5lbF90YWJsZSAqcGFuZWxfYXR0cik7DQogaW50IHp4ZGhfc2V0X3Bh bmVsX2F0dHIoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCB6eGRoX3BhbmVsX3RhYmxl ICpwYW5lbF9hdHRyKTsNCitpbnQgenhkaF9kZXZfYnJvYWRjYXN0X3NldChzdHJ1Y3QgenhkaF9o dyAqaHcsIHVpbnQxNl90IHZwb3J0LCBib29sIGVuYWJsZSk7DQogDQogI2VuZGlmIC8qIFpYREhf VEFCTEVTX0ggKi8NCi0tIA0KMi4yNy4w --=====_003_next===== Content-Type: text/html ; charset="UTF-8" Content-Transfer-Encoding: base64 b3B0aW1pemUmbmJzcDtwcm9taXNjJm5ic3A7b3BzLjxiciAvPg08YnIgLz5TaWduZWQtb2ZmLWJ5 OiZuYnNwO0p1bmxvbmcmbmJzcDtXYW5nJm5ic3A7Jmx0O3dhbmcuanVubG9uZzFAenRlLmNvbS5j biZndDsNPGJyIC8+LS0tPGJyIC8+Jm5ic3A7ZHJpdmVycy9uZXQvenhkaC96eGRoX21zZy5jJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOzYyJm5ic3A7KysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKzxiciAvPiZuYnNwO2RyaXZlcnMvbmV0L3p4ZGgvenhkaF90YWJsZXMuYyZu YnNwO3wmbmJzcDs0OSZuYnNwOysrKysrKysrKysrKysrKysrKysrKysrKysrKzxiciAvPiZuYnNw O2RyaXZlcnMvbmV0L3p4ZGgvenhkaF90YWJsZXMuaCZuYnNwO3wmbmJzcDsmbmJzcDszJm5ic3A7 Ky08YnIgLz4mbmJzcDszJm5ic3A7ZmlsZXMmbmJzcDtjaGFuZ2VkLCZuYnNwOzExMyZuYnNwO2lu c2VydGlvbnMoKyksJm5ic3A7MSZuYnNwO2RlbGV0aW9uKC0pPGJyIC8+DTxiciAvPmRpZmYmbmJz cDstLWdpdCZuYnNwO2EvZHJpdmVycy9uZXQvenhkaC96eGRoX21zZy5jJm5ic3A7Yi9kcml2ZXJz L25ldC96eGRoL3p4ZGhfbXNnLmM8YnIgLz5pbmRleCZuYnNwOzdiMzQ1NjI0OGMuLjg5MmQ1N2E1 MWUmbmJzcDsxMDA2NDQ8YnIgLz4tLS0mbmJzcDthL2RyaXZlcnMvbmV0L3p4ZGgvenhkaF9tc2cu YzxiciAvPisrKyZuYnNwO2IvZHJpdmVycy9uZXQvenhkaC96eGRoX21zZy5jPGJyIC8+QEAmbmJz cDstMTIyMyw2Jm5ic3A7KzEyMjMsMjQmbmJzcDtAQCZuYnNwO3p4ZGhfYmFyX2NoYW5fbXNnX3Jl Y3ZfcmVnaXN0ZXIodWludDhfdCZuYnNwO21vZHVsZV9pZCwmbmJzcDt6eGRoX2Jhcl9jaGFuX21z Z19yZWN2X2NhbGxiYTxiciAvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiZu YnNwO1pYREhfQkFSX01TR19PSzs8YnIgLz4mbmJzcDt9PGJyIC8+Jm5ic3A7DTxiciAvPitzdGF0 aWMmbmJzcDtpbnQ8YnIgLz4renhkaF92Zl9wcm9taXNjX2luaXQoc3RydWN0Jm5ic3A7enhkaF9o dyZuYnNwOypodywmbmJzcDt1bmlvbiZuYnNwO3p4ZGhfdmlycG9ydF9udW0mbmJzcDt2cG9ydCk8 YnIgLz4rezxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQxNl90Jm5ic3A7cmV0Ozxi ciAvPis8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0Jm5ic3A7PSZuYnNwO3p4ZGhf ZGV2X2Jyb2FkY2FzdF9zZXQoaHcsJm5ic3A7dnBvcnQudnBvcnQsJm5ic3A7dHJ1ZSk7PGJyIC8+ KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiZuYnNwO3JldDs8YnIgLz4rfTxiciAvPis8 YnIgLz4rc3RhdGljJm5ic3A7aW50PGJyIC8+K3p4ZGhfdmZfcHJvbWlzY191bmluaXQoc3RydWN0 Jm5ic3A7enhkaF9odyZuYnNwOypodywmbmJzcDt1bmlvbiZuYnNwO3p4ZGhfdmlycG9ydF9udW0m bmJzcDt2cG9ydCk8YnIgLz4rezxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQxNl90 Jm5ic3A7cmV0OzxiciAvPis8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0Jm5ic3A7 PSZuYnNwO3p4ZGhfZGV2X2Jyb2FkY2FzdF9zZXQoaHcsJm5ic3A7dnBvcnQudnBvcnQsJm5ic3A7 ZmFsc2UpOzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4mbmJzcDtyZXQ7PGJy IC8+K308YnIgLz4rPGJyIC8+Jm5ic3A7c3RhdGljJm5ic3A7aW50PGJyIC8+Jm5ic3A7enhkaF92 Zl9wb3J0X2luaXQoc3RydWN0Jm5ic3A7enhkaF9odyZuYnNwOypwZl9odywmbmJzcDt1aW50MTZf dCZuYnNwO3Zwb3J0LCZuYnNwO3ZvaWQmbmJzcDsqY2ZnX2RhdGEsPGJyIC8+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c3RydWN0Jm5ic3A7enhk aF9tc2dfcmVwbHlfYm9keSZuYnNwOypyZXNfaW5mbyZuYnNwO19fcnRlX3VudXNlZCw8YnIgLz5A QCZuYnNwOy0xMjUxLDYmbmJzcDsrMTI2OSwxMiZuYnNwO0BAJm5ic3A7enhkaF92Zl9wb3J0X2lu aXQoc3RydWN0Jm5ic3A7enhkaF9odyZuYnNwOypwZl9odywmbmJzcDt1aW50MTZfdCZuYnNwO3Zw b3J0LCZuYnNwO3ZvaWQmbmJzcDsqY2ZnX2RhdGEsPGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Z290byZuYnNwO3Byb2NfZW5kOzxiciAv PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO308YnIgLz4mbmJzcDsNPGJyIC8+KyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO3JldCZuYnNwOz0mbmJzcDt6eGRoX3ZmX3Byb21pc2NfaW5pdChw Zl9odywmbmJzcDtwb3J0KTs8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYmbmJzcDso cmV0KSZuYnNwO3s8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7UE1EX0RSVl9MT0coRVJSLCZuYnNwOyZxdW90O3ZmX3Byb21pc2NfdGFibGVfaW5p dCZuYnNwO2ZhaWxlZCwmbmJzcDtjb2RlOiVkJnF1b3Q7LCZuYnNwO3JldCk7PGJyIC8+KyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2dvdG8mbmJzcDtwcm9j X2VuZDs8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fTxiciAvPis8YnIgLz4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXNfaW5mby0mZ3Q7ZmxhZyZuYnNwOz0mbmJzcDtaWERI X1JFUFNfU1VDQzs8YnIgLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsqcmVzX2xlbiZu YnNwOz0mbmJzcDtzaXplb2YocmVzX2luZm8tJmd0O2ZsYWcpOzxiciAvPiZuYnNwOw08YnIgLz5A QCZuYnNwOy0xMzA5LDYmbmJzcDsrMTMzMywxMiZuYnNwO0BAJm5ic3A7enhkaF92Zl9wb3J0X3Vu aW5pdChzdHJ1Y3QmbmJzcDt6eGRoX2h3Jm5ic3A7KnBmX2h3LDxiciAvPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2dvdG8mbmJzcDtwcm9jX2Vu ZDs8YnIgLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt9PGJyIC8+Jm5ic3A7DTxiciAv PismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXQmbmJzcDs9Jm5ic3A7enhkaF92Zl9wcm9taXNj X3VuaW5pdChwZl9odywmbmJzcDt2cG9ydF9udW0pOzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtpZiZuYnNwOyhyZXQpJm5ic3A7ezxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQTURfRFJWX0xPRyhFUlIsJm5ic3A7JnF1b3Q7dmZfcHJv bWlzY190YWJsZV91bmluaXQmbmJzcDtmYWlsZWQsJm5ic3A7Y29kZTolZCZxdW90OywmbmJzcDty ZXQpOzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtnb3RvJm5ic3A7cHJvY19lbmQ7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO308YnIg Lz4rPGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KnJlc19sZW4mbmJzcDsrPSZu YnNwO3N0cmxlbihzdHIpOzxiciAvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3J0ZV9t ZW1jcHkoJmFtcDtyZXNfaW5mby0mZ3Q7cmVwbHlfZGF0YSwmbmJzcDtzdHIsJm5ic3A7c3RybGVu KHN0cikmbmJzcDsrJm5ic3A7MSk7PGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 cmVzX2luZm8tJmd0O2ZsYWcmbmJzcDs9Jm5ic3A7WlhESF9SRVBTX1NVQ0M7PGJyIC8+QEAmbmJz cDstMTQwOCwxMiZuYnNwOysxNDM4LDQ0Jm5ic3A7QEAmbmJzcDt6eGRoX2RlbF92Zl9tYWNfdGFi bGUoc3RydWN0Jm5ic3A7enhkaF9odyZuYnNwOypodywmbmJzcDt1aW50MTZfdCZuYnNwO3Zwb3J0 LCZuYnNwO3ZvaWQmbmJzcDsqY2ZnX2RhdGEsPGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7cmV0dXJuJm5ic3A7cmV0OzxiciAvPiZuYnNwO308YnIgLz4mbmJzcDsNPGJyIC8+K3N0 YXRpYyZuYnNwO2ludDxiciAvPit6eGRoX3ZmX3Byb21pc2Nfc2V0KHN0cnVjdCZuYnNwO3p4ZGhf aHcmbmJzcDsqaHcsJm5ic3A7dWludDE2X3QmbmJzcDt2cG9ydCwmbmJzcDt2b2lkJm5ic3A7KmNm Z19kYXRhLDxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtzdHJ1Y3QmbmJzcDt6eGRoX21zZ19yZXBseV9ib2R5Jm5ic3A7KnJlcGx5LCZuYnNwO3Vp bnQxNl90Jm5ic3A7KnJlc19sZW4pPGJyIC8+K3s8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7c3RydWN0Jm5ic3A7enhkaF9wb3J0X3Byb21pc2NfbXNnJm5ic3A7KnByb21pc2NfbXNnJm5i c3A7PSZuYnNwOyhzdHJ1Y3QmbmJzcDt6eGRoX3BvcnRfcHJvbWlzY19tc2cmbmJzcDsqKWNmZ19k YXRhOzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQmbmJzcDtyZXQmbmJzcDs9Jm5i c3A7MDs8YnIgLz4rPGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JURV9BU1NFUlQoIWNm Z19kYXRhJm5ic3A7fHwmbmJzcDshaHcmbmJzcDt8fCZuYnNwOyFyZXNfaW5mbyZuYnNwO3x8Jm5i c3A7IXJlc19sZW4pOzxiciAvPis8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYmbmJz cDsocHJvbWlzY19tc2ctJmd0O21vZGUmbmJzcDs9PSZuYnNwO1pYREhfUFJPTUlTQ19NT0RFKSZu YnNwO3s8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7enhkaF9kZXZfdW5pY2FzdF90YWJsZV9zZXQoaHcsJm5ic3A7dnBvcnQsJm5ic3A7cHJvbWlz Y19tc2ctJmd0O3ZhbHVlKTs8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7aWYmbmJzcDsocHJvbWlzY19tc2ctJmd0O21jX2ZvbGxvdyZuYnNwOz09 Jm5ic3A7MSk8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0Jm5ic3A7PSZuYnNwO3p4ZGhfZGV2X211 bHRpY2FzdF90YWJsZV9zZXQoaHcsJm5ic3A7dnBvcnQsJm5ic3A7cHJvbWlzY19tc2ctJmd0O3Zh bHVlKTs8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fSZuYnNwO2Vsc2UmbmJzcDtpZiZu YnNwOyhwcm9taXNjX21zZy0mZ3Q7bW9kZSZuYnNwOz09Jm5ic3A7WlhESF9BTExNVUxUSV9NT0RF KSZuYnNwO3s8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7cmV0Jm5ic3A7PSZuYnNwO3p4ZGhfZGV2X211bHRpY2FzdF90YWJsZV9zZXQoaHcsJm5i c3A7dnBvcnQsJm5ic3A7cHJvbWlzY19tc2ctJmd0O3ZhbHVlKTs8YnIgLz4rJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7fSZuYnNwO2Vsc2UmbmJzcDt7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BNRF9EUlZfTE9HKEVSUiwmbmJzcDsmcXVvdDtw cm9taXNjX3NldF9tc2cmbmJzcDttb2RlWyV1XSZuYnNwO2Vycm9yJnF1b3Q7LCZuYnNwO3Byb21p c2NfbXNnLSZndDttb2RlKTs8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Z290byZuYnNwO3Byb2NfZW5kOzxiciAvPismbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDt9PGJyIC8+KzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsqcmVzX2xlbiZu YnNwOz0mbmJzcDtzaXplb2Yoc3RydWN0Jm5ic3A7enhkaF9wb3J0X2F0dHJfc2V0X21zZykmbmJz cDsrJm5ic3A7c2l6ZW9mKGVudW0mbmJzcDt6eGRoX3JlcHNfZmxhZyk7PGJyIC8+KyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO3JlcGx5LSZndDtmbGFnJm5ic3A7PSZuYnNwO1pYREhfUkVQU19TVUND OzxiciAvPis8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuJm5ic3A7cmV0Ozxi ciAvPis8YnIgLz4rcHJvY19lbmQ6PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOypyZXNf bGVuJm5ic3A7PSZuYnNwO3NpemVvZihzdHJ1Y3QmbmJzcDt6eGRoX3BvcnRfYXR0cl9zZXRfbXNn KSZuYnNwOysmbmJzcDtzaXplb2YoZW51bSZuYnNwO3p4ZGhfcmVwc19mbGFnKTs8YnIgLz4rJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmVwbHktJmd0O2ZsYWcmbmJzcDs9Jm5ic3A7WlhESF9SRVBT X0ZBSUw7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiZuYnNwO3JldDs8YnIg Lz4rfTxiciAvPis8YnIgLz4mbmJzcDt6eGRoX21zZ19wcm9jZXNzX2NhbGxiYWNrJm5ic3A7enhk aF9wcm9jX2NiW10mbmJzcDs9Jm5ic3A7ezxiciAvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO1taWERIX05VTExdJm5ic3A7PSZuYnNwO05VTEwsPGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7W1pYREhfVkZfUE9SVF9JTklUXSZuYnNwOz0mbmJzcDt6eGRoX3ZmX3BvcnRf aW5pdCw8YnIgLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtbWlhESF9WRl9QT1JUX1VO SU5JVF0mbmJzcDs9Jm5ic3A7enhkaF92Zl9wb3J0X3VuaW5pdCw8YnIgLz4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtbWlhESF9NQUNfQUREXSZuYnNwOz0mbmJzcDt6eGRoX2FkZF92Zl9t YWNfdGFibGUsPGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7W1pYREhfTUFDX0RF TF0mbmJzcDs9Jm5ic3A7enhkaF9kZWxfdmZfbWFjX3RhYmxlLDxiciAvPismbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtbWlhESF9QT1JUX1BST01JU0NfU0VUXSZuYnNwOz0mbmJzcDt6eGRoX3ZmX3By b21pc2Nfc2V0LDxiciAvPiZuYnNwO307PGJyIC8+Jm5ic3A7DTxiciAvPiZuYnNwO3N0YXRpYyZu YnNwO2lubGluZSZuYnNwO2ludDxiciAvPmRpZmYmbmJzcDstLWdpdCZuYnNwO2EvZHJpdmVycy9u ZXQvenhkaC96eGRoX3RhYmxlcy5jJm5ic3A7Yi9kcml2ZXJzL25ldC96eGRoL3p4ZGhfdGFibGVz LmM8YnIgLz5pbmRleCZuYnNwO2JmYzI0MGEwNTEuLjk4MzhiOGQxMDMmbmJzcDsxMDA2NDQ8YnIg Lz4tLS0mbmJzcDthL2RyaXZlcnMvbmV0L3p4ZGgvenhkaF90YWJsZXMuYzxiciAvPisrKyZuYnNw O2IvZHJpdmVycy9uZXQvenhkaC96eGRoX3RhYmxlcy5jPGJyIC8+QEAmbmJzcDstNTk1LDYmbmJz cDsrNTk1LDcmbmJzcDtAQCZuYnNwO3p4ZGhfZGV2X3VuaWNhc3RfdGFibGVfc2V0KHN0cnVjdCZu YnNwO3p4ZGhfaHcmbmJzcDsqaHcsJm5ic3A7dWludDE2X3QmbmJzcDt2cG9ydCwmbmJzcDtib29s Jm5ic3A7ZW5hYmxlKTxiciAvPiZuYnNwO3s8YnIgLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtzdHJ1Y3QmbmJzcDt6eGRoX2R0Yl9zaGFyZWRfZGF0YSZuYnNwOypkdGJfZGF0YSZuYnNw Oz0mbmJzcDsmYW1wO2h3LSZndDtkZXZfc2QtJmd0O2R0Yl9zZDs8YnIgLz4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtzdHJ1Y3QmbmJzcDt6eGRoX3VuaXRjYXN0X3RhYmxlJm5ic3A7dWNf dGFibGUmbmJzcDs9Jm5ic3A7ezB9OzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzdHJ1 Y3QmbmJzcDt6eGRoX3BvcnRfYXR0cl90YWJsZSZuYnNwO3BvcnRfYXR0ciZuYnNwOz0mbmJzcDt7 MH07PGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dW5pb24mbmJzcDt6eGRoX3Zp cnBvcnRfbnVtJm5ic3A7dnBvcnRfbnVtJm5ic3A7PSZuYnNwOyh1bmlvbiZuYnNwO3p4ZGhfdmly cG9ydF9udW0pdnBvcnQ7PGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50MTZf dCZuYnNwO3JldCZuYnNwOz0mbmJzcDswOzxiciAvPiZuYnNwOw08YnIgLz5AQCZuYnNwOy02Mjks NiZuYnNwOys2MzAsMjAmbmJzcDtAQCZuYnNwO3p4ZGhfZGV2X3VuaWNhc3RfdGFibGVfc2V0KHN0 cnVjdCZuYnNwO3p4ZGhfaHcmbmJzcDsqaHcsJm5ic3A7dWludDE2X3QmbmJzcDt2cG9ydCwmbmJz cDtib29sJm5ic3A7ZW5hYmxlKTxiciAvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BNRF9EUlZfTE9HKEVSUiwmbmJzcDsmcXVvdDt1bmljYXN0 X3RhYmxlX3NldF9mYWlsZWQ6JWQmcXVvdDssJm5ic3A7aHctJmd0O3ZmaWQpOzxiciAvPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiZu YnNwOy1yZXQ7PGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fTxiciAvPis8YnIg Lz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0Jm5ic3A7PSZuYnNwO3p4ZGhfZ2V0X3BvcnRf YXR0cihodywmbmJzcDt2cG9ydCwmbmJzcDsmYW1wO3BvcnRfYXR0cik7PGJyIC8+KyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2lmJm5ic3A7KHJldCkmbmJzcDt7PGJyIC8+KyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BNRF9EUlZfTE9HKEVSUiwmbmJzcDsm cXVvdDtwb3J0X2F0dHJfdGFibGVfZ2V0X2ZhaWxlZDolZCZxdW90OywmbmJzcDtody0mZ3Q7dmZp ZCk7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O3JldHVybiZuYnNwOy1yZXQ7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO308YnIgLz4r PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3BvcnRfYXR0ci5wcm9taXNjX2VuYWJsZSZu YnNwOz0mbmJzcDtlbmFibGU7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldCZuYnNw Oz0mbmJzcDt6eGRoX3NldF9wb3J0X2F0dHIoaHcsJm5ic3A7dnBvcnQsJm5ic3A7JmFtcDtwb3J0 X2F0dHIpOzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiZuYnNwOyhyZXQpJm5ic3A7 ezxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQ TURfRFJWX0xPRyhFUlIsJm5ic3A7JnF1b3Q7cG9ydF9hdHRyX3RhYmxlX3NldF9mYWlsZWQ6JWQm cXVvdDssJm5ic3A7aHctJmd0O3ZmaWQpOzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4mbmJzcDstcmV0OzxiciAvPismbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDt9PGJyIC8+KzxiciAvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O3JldHVybiZuYnNwOzA7PGJyIC8+Jm5ic3A7fTxiciAvPiZuYnNwOw08YnIgLz5AQCZuYnNwOy04 NTIsMyZuYnNwOys4NjcsMzcmbmJzcDtAQCZuYnNwO3p4ZGhfcnNzX3RhYmxlX2dldChzdHJ1Y3Qm bmJzcDt6eGRoX2h3Jm5ic3A7Kmh3LCZuYnNwO3VpbnQxNl90Jm5ic3A7dnBvcnQsJm5ic3A7c3Ry dWN0Jm5ic3A7enhkaF9yc3NfcmV0YSZuYnNwOypyc3M8YnIgLz4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDt9PGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuJm5i c3A7MDs8YnIgLz4mbmJzcDt9PGJyIC8+KzxiciAvPitpbnQ8YnIgLz4renhkaF9kZXZfYnJvYWRj YXN0X3NldChzdHJ1Y3QmbmJzcDt6eGRoX2h3Jm5ic3A7Kmh3LCZuYnNwO3VpbnQxNl90Jm5ic3A7 dnBvcnQsJm5ic3A7Ym9vbCZuYnNwO2VuYWJsZSk8YnIgLz4rezxiciAvPismbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtzdHJ1Y3QmbmJzcDt6eGRoX2R0Yl9zaGFyZWRfZGF0YSZuYnNwOypkdGJfZGF0 YSZuYnNwOz0mbmJzcDsmYW1wO2h3LSZndDtkZXZfc2QtJmd0O2R0Yl9zZDs8YnIgLz4rJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7c3RydWN0Jm5ic3A7enhkaF9icm9jYXN0X3RhYmxlJm5ic3A7YnJv Y2FzdF90YWJsZSZuYnNwOz0mbmJzcDt7MH07PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O3VuaW9uJm5ic3A7enhkaF92aXJwb3J0X251bSZuYnNwO3Zwb3J0X251bSZuYnNwOz0mbmJzcDso dW5pb24mbmJzcDt6eGRoX3ZpcnBvcnRfbnVtKXZwb3J0OzxiciAvPismbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtpbnQxNl90Jm5ic3A7dmZfZ3JvdXBfaWQmbmJzcDs9Jm5ic3A7dnBvcnRfbnVtLnZm aWQmbmJzcDsvJm5ic3A7NjQ7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ludDE2X3Qm bmJzcDtyZXQmbmJzcDs9Jm5ic3A7MDs8YnIgLz4rPGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO1pYREhfRFRCX0VSQU1fRU5UUllfSU5GT19UJm5ic3A7ZXJhbV9lbnRyeSZuYnNwOz0mbmJz cDt7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOygoaHctJmd0O3ZmaWQmbmJzcDstJm5ic3A7WlhESF9C QVNFX1ZGSUQpJm5ic3A7Jmx0OyZsdDsmbmJzcDsyKSZuYnNwOysmbmJzcDt2Zl9ncm91cF9pZCw8 YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KHVpbnQzMl90Jm5ic3A7KikmYW1wO2Jyb2Nhc3RfdGFibGV9 OzxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtaWERIX0RUQl9VU0VSX0VOVFJZX1QmbmJz cDtlbnRyeV9nZXQmbmJzcDs9Jm5ic3A7ezxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsuc2R0X25vJm5i c3A7PSZuYnNwO1pYREhfU0RUX0JST0NBU1RfQVRUX1RBQkxFLDxiciAvPismbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsucF9lbnRyeV9kYXRhJm5ic3A7PSZuYnNwOyh2b2lkJm5ic3A7KikmYW1wO2VyYW1fZW50cnl9 OzxiciAvPis8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0Jm5ic3A7PSZuYnNwO3p4 ZGhfbnBfZHRiX3RhYmxlX2VudHJ5X2dldChody0mZ3Q7c2xvdF9pZCwmbmJzcDtkdGJfZGF0YS0m Z3Q7cXVldWVpZCwmbmJzcDsmYW1wO2VudHJ5X2dldCwmbmJzcDsxKTs8YnIgLz4rJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7aWYmbmJzcDsocmV0Jm5ic3A7PT0mbmJzcDswKSZuYnNwO3s8YnIgLz4r Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYmbmJzcDso ZW5hYmxlKTxiciAvPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDticm9jYXN0X3RhYmxlLmJpdG1hcFsodnBvcnRf bnVtLnZmaWQmbmJzcDslJm5ic3A7NjQpJm5ic3A7LyZuYnNwOzMyXSZuYnNwO3w9PGJyIC8+KyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOygoVUlOVDMyX0MoMSkmbmJzcDsmbHQ7Jmx0OyZuYnNwOygzMSZuYnNwOy0mbmJzcDsodnBv cnRfbnVtLnZmaWQmbmJzcDslJm5ic3A7NjQpJm5ic3A7JSZuYnNwOzMyKSkpOzxiciAvPismbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbHNlPGJyIC8+KyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2Jyb2Nhc3RfdGFibGUuYml0bWFwWyh2cG9ydF9udW0udmZpZCZuYnNwOyUm bmJzcDs2NCkmbmJzcDsvJm5ic3A7MzJdJm5ic3A7JmFtcDs9PGJyIC8+KyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO34oKFVJTlQz Ml9DKDEpJm5ic3A7Jmx0OyZsdDsmbmJzcDsoMzEmbmJzcDstJm5ic3A7KHZwb3J0X251bS52Zmlk Jm5ic3A7JSZuYnNwOzY0KSZuYnNwOyUmbmJzcDszMikpKTs8YnIgLz4rPGJyIC8+KyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldCZuYnNwOz0mbmJzcDt6 eGRoX25wX2R0Yl90YWJsZV9lbnRyeV93cml0ZShody0mZ3Q7c2xvdF9pZCwmbmJzcDtkdGJfZGF0 YS0mZ3Q7cXVldWVpZCwmbmJzcDsxLCZuYnNwOyZhbXA7ZW50cnlfZ2V0KTs8YnIgLz4rJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYmbmJzcDsocmV0KSZu YnNwO3s8YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UE1EX0RSVl9MT0coRVJSLCZuYnNwOyZxdW90O2Jy b2Nhc3RfdGFibGVfd3JpdGVfZmFpbGVkLiZuYnNwO2NvZGU6JWQmcXVvdDssJm5ic3A7cmV0KTs8 YnIgLz4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuJm5ic3A7LXJldDs8YnIgLz4rJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fTxiciAvPismbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDt9PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiZuYnNwOzA7 PGJyIC8+K308YnIgLz5kaWZmJm5ic3A7LS1naXQmbmJzcDthL2RyaXZlcnMvbmV0L3p4ZGgvenhk aF90YWJsZXMuaCZuYnNwO2IvZHJpdmVycy9uZXQvenhkaC96eGRoX3RhYmxlcy5oPGJyIC8+aW5k ZXgmbmJzcDtkZTMwNDc0MjEwLi4wNDA4NjdkMzMzJm5ic3A7MTAwNjQ0PGJyIC8+LS0tJm5ic3A7 YS9kcml2ZXJzL25ldC96eGRoL3p4ZGhfdGFibGVzLmg8YnIgLz4rKysmbmJzcDtiL2RyaXZlcnMv bmV0L3p4ZGgvenhkaF90YWJsZXMuaDxiciAvPkBAJm5ic3A7LTYwLDcmbmJzcDsrNjAsNyZuYnNw O0BAJm5ic3A7c3RydWN0Jm5ic3A7enhkaF9wb3J0X2F0dHJfdGFibGUmbmJzcDt7PGJyIC8+Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dWludDhfdCZuYnNwO2lzX3VwOiZuYnNwOzE7PGJy IC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dWludDhfdCZuYnNwO3JzdjE6Jm5ic3A7 MTs8YnIgLz4mbmJzcDsNPGJyIC8+LSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3VpbnQ4X3QmbmJz cDtyc3YzJm5ic3A7OiZuYnNwOzE7PGJyIC8+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3VpbnQ4 X3QmbmJzcDtwcm9taXNjX2VuYWJsZSZuYnNwOzombmJzcDsxOzxiciAvPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO3VpbnQ4X3QmbmJzcDtyZG1hX29mZmxvYWRfZW5hYmxlOiZuYnNwOzE7 PGJyIC8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dWludDhfdCZuYnNwO3ZsYW5fZmls dGVyX2VuYWJsZTombmJzcDsxOzxiciAvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Vp bnQ4X3QmbmJzcDt2bGFuX3N0cmlwX29mZmxvYWQ6Jm5ic3A7MTs8YnIgLz5AQCZuYnNwOy0yNDgs NSZuYnNwOysyNDgsNiZuYnNwO0BAJm5ic3A7aW50Jm5ic3A7enhkaF9yc3NfdGFibGVfc2V0KHN0 cnVjdCZuYnNwO3p4ZGhfaHcmbmJzcDsqaHcsJm5ic3A7dWludDE2X3QmbmJzcDt2cG9ydCwmbmJz cDtzdHJ1Y3QmbmJzcDt6eGRoX3Jzc19yZXRhPGJyIC8+Jm5ic3A7aW50Jm5ic3A7enhkaF9yc3Nf dGFibGVfZ2V0KHN0cnVjdCZuYnNwO3p4ZGhfaHcmbmJzcDsqaHcsJm5ic3A7dWludDE2X3QmbmJz cDt2cG9ydCwmbmJzcDtzdHJ1Y3QmbmJzcDt6eGRoX3Jzc19yZXRhJm5ic3A7KnJzc19yZXRhKTs8 YnIgLz4mbmJzcDtpbnQmbmJzcDt6eGRoX2dldF9wYW5lbF9hdHRyKHN0cnVjdCZuYnNwO3J0ZV9l dGhfZGV2Jm5ic3A7KmRldiwmbmJzcDtzdHJ1Y3QmbmJzcDt6eGRoX3BhbmVsX3RhYmxlJm5ic3A7 KnBhbmVsX2F0dHIpOzxiciAvPiZuYnNwO2ludCZuYnNwO3p4ZGhfc2V0X3BhbmVsX2F0dHIoc3Ry dWN0Jm5ic3A7cnRlX2V0aF9kZXYmbmJzcDsqZGV2LCZuYnNwO3N0cnVjdCZuYnNwO3p4ZGhfcGFu ZWxfdGFibGUmbmJzcDsqcGFuZWxfYXR0cik7PGJyIC8+K2ludCZuYnNwO3p4ZGhfZGV2X2Jyb2Fk Y2FzdF9zZXQoc3RydWN0Jm5ic3A7enhkaF9odyZuYnNwOypodywmbmJzcDt1aW50MTZfdCZuYnNw O3Zwb3J0LCZuYnNwO2Jvb2wmbmJzcDtlbmFibGUpOzxiciAvPiZuYnNwOw08YnIgLz4mbmJzcDsj ZW5kaWYmbmJzcDsvKiZuYnNwO1pYREhfVEFCTEVTX0gmbmJzcDsqLzxiciAvPi0tJm5ic3A7DTxi ciAvPjIuMjcuMDxiciAvPg== --=====_003_next=====-- --=====_002_next=====-- --=====_001_next=====--