From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 1CFBC3858D39 for ; Fri, 1 Jul 2022 00:00:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1CFBC3858D39 Received: by mail-wm1-x330.google.com with SMTP id be14-20020a05600c1e8e00b003a04a458c54so553381wmb.3 for ; Thu, 30 Jun 2022 17:00:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:from:subject; bh=S6VVWQYJtpyVWNd0YXQjCwI6oyMSxcPKGSQC/KmFNrM=; b=GVzJ96h7Jw8xu+t6EDwvag01PRfEUrPncWeWTkRMBcPjz15ewjthyedyiWe5ACiquQ nk2yzmU6Go+t5HRAi9Rzc/2T+bi3fJyCK/fuaJcZhVDxd2xmtRMs6SfnqTR2P5nKBF8Y BVeHWJdsLxbgzJd1oikjkh+XCrge68a8gqi6Wi9A4zGU1oxT/el5pF7fKWDoF8nRufFO 0Ecm2BdiylhXD8v/kx5+jIiAgTz5dOLGHpitY4gC45OjmrLtSm0r9D0Cubf2b22IhWSl AHInkoDjAedVzyIvVOyXGOuoE3bfzWyJ6HD9/ijfIIuyL9mzET0PAwKv5CswugbrLMcl /3+A== X-Gm-Message-State: AJIora/PvrUYrpmlHtZMawBqBN/FGnBrov8vXEnBNQRRNXCwQ7haHcGV tMj/odLEhyRno7QVkhTpO3XJsA76pqLYtA== X-Google-Smtp-Source: AGRyM1sQ2FLvqFr+2s+BIPAfO6mMe5N28wxclNXZGw1I7kj9RIhxO1R63ieurpLraTfMvi02RdlEkg== X-Received: by 2002:a7b:c921:0:b0:3a0:41c3:f44a with SMTP id h1-20020a7bc921000000b003a041c3f44amr13161455wml.122.1656633641469; Thu, 30 Jun 2022 17:00:41 -0700 (PDT) Received: from [192.168.1.4] ([197.33.250.10]) by smtp.gmail.com with ESMTPSA id r12-20020a05600c35cc00b003a04e900552sm5024985wmq.1.2022.06.30.17.00.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Jun 2022 17:00:40 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------2o2Dd40K6zAkI05h4iOq5zKg" Message-ID: Date: Fri, 1 Jul 2022 02:00:38 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Content-Language: en-US To: gcc-patches@gcc.gnu.org From: Ahmed Sayed Mousse Subject: [patch] libgompd: Add thread handles X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jul 2022 00:01:13 -0000 This is a multi-part message in MIME format. --------------2o2Dd40K6zAkI05h4iOq5zKg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit /This patch is the initial implementation of OpenMP-API specs book section //20.5.5 with title "Thread Handles". /libgomp/ChangeLog /2022-07-01 Ahmed Sayed // * Makefile.am (libgompd_la_SOURCES): Add ompd-threads.c.///* Makefile.in: Regenerate. * team.c ( gomp_free_thread ): Called ompd_bp_thread_end ()./* ompd-support.c ( gompd_thread_initial_tls_bias ): New Variable. (gompd_load): Initialize gompd_thread_initial_tls_bias./// --------------2o2Dd40K6zAkI05h4iOq5zKg Content-Type: text/plain; charset=UTF-8; name="diff.txt" Content-Disposition: attachment; filename="diff.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYmdvbXAvTWFrZWZpbGUuYW0gYi9saWJnb21wL01ha2VmaWxlLmFt CmluZGV4IDZkOTEzYTkzZTdmLi4yM2Y1YmVkZTFiZiAxMDA2NDQKLS0tIGEvbGliZ29tcC9N YWtlZmlsZS5hbQorKysgYi9saWJnb21wL01ha2VmaWxlLmFtCkBAIC05NCw3ICs5NCw3IEBA IGxpYmdvbXBfbGFfU09VUkNFUyA9IGFsbG9jLmMgYXRvbWljLmMgYmFycmllci5jIGNyaXRp Y2FsLmMgZW52LmMgZXJyb3IuYyBcCiAJcHJpb3JpdHlfcXVldWUuYyBhZmZpbml0eS1mbXQu YyB0ZWFtcy5jIGFsbG9jYXRvci5jIG9hY2MtcHJvZmlsaW5nLmMgXAogCW9hY2MtdGFyZ2V0 LmMgb21wZC1zdXBwb3J0LmMKIAotbGliZ29tcGRfbGFfU09VUkNFUyA9IG9tcGQtaW5pdC5j IG9tcGQtaGVscGVyLmMgb21wZC1pY3YuYworbGliZ29tcGRfbGFfU09VUkNFUyA9IG9tcGQt aW5pdC5jIG9tcGQtaGVscGVyLmMgb21wZC1pY3YuYyBvbXBkLXRocmVhZHMuYwogCiBpbmNs dWRlICQodG9wX3NyY2RpcikvcGx1Z2luL01ha2VmcmFnLmFtCiAKZGlmZiAtLWdpdCBhL2xp YmdvbXAvTWFrZWZpbGUuaW4gYi9saWJnb21wL01ha2VmaWxlLmluCmluZGV4IDQwZjg5NmI1 ZjAzLi44YmJjNDZjY2EyNSAxMDA2NDQKLS0tIGEvbGliZ29tcC9NYWtlZmlsZS5pbgorKysg Yi9saWJnb21wL01ha2VmaWxlLmluCkBAIC0xMzMsMjEgKzEzMyw4IEBAIHRhcmdldF90cmlw bGV0ID0gQHRhcmdldEAKIEBVU0VfRk9SVFJBTl9UUlVFQGFtX19hcHBlbmRfNyA9IG9wZW5h Y2MuZjkwCiBzdWJkaXIgPSAuCiBBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2Fs Lm00Ci1hbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS8uLi9jb25maWcvYWN4 Lm00IFwKLQkkKHRvcF9zcmNkaXIpLy4uL2NvbmZpZy9heF9jb3VudF9jcHVzLm00IFwKLQkk KHRvcF9zcmNkaXIpLy4uL2NvbmZpZy9kZXBzdGFuZC5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8u Li9jb25maWcvZW5hYmxlLm00IFwKLQkkKHRvcF9zcmNkaXIpLy4uL2NvbmZpZy9mdXRleC5t NCBcCi0JJCh0b3Bfc3JjZGlyKS8uLi9jb25maWcvbGVhZC1kb3QubTQgXAotCSQodG9wX3Ny Y2RpcikvLi4vY29uZmlnL2x0aG9zdGZsYWdzLm00IFwKLQkkKHRvcF9zcmNkaXIpLy4uL2Nv bmZpZy9tdWx0aS5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8uLi9jb25maWcvb3ZlcnJpZGUubTQg XAotCSQodG9wX3NyY2RpcikvLi4vY29uZmlnL3Rscy5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8u Li9jb25maWcvdG9vbGV4ZWNsaWJkaXIubTQgXAotCSQodG9wX3NyY2RpcikvLi4vbHRvcHRp b25zLm00ICQodG9wX3NyY2RpcikvLi4vbHRzdWdhci5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8u Li9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS8uLi9sdH5vYnNvbGV0ZS5tNCBcCi0JJCh0 b3Bfc3JjZGlyKS9hY2luY2x1ZGUubTQgJCh0b3Bfc3JjZGlyKS8uLi9saWJ0b29sLm00IFwK LQkkKHRvcF9zcmNkaXIpLy4uL2NvbmZpZy9jZXQubTQgXAorYW1fX2FjbG9jYWxfbTRfZGVw cyA9ICQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00IFwKKwkkKHRvcF9zcmNkaXIpLy4uL2xp YnRvb2wubTQgJCh0b3Bfc3JjZGlyKS8uLi9jb25maWcvY2V0Lm00IFwKIAkkKHRvcF9zcmNk aXIpL3BsdWdpbi9jb25maWdmcmFnLmFjICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCiBh bV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAogCSQoQUNMT0NBTF9NNCkKQEAgLTIzMyw3ICsyMjAsOCBAQCBh bV9saWJnb21wX2xhX09CSkVDVFMgPSBhbGxvYy5sbyBhdG9taWMubG8gYmFycmllci5sbyBj cml0aWNhbC5sbyBcCiAJYWZmaW5pdHktZm10LmxvIHRlYW1zLmxvIGFsbG9jYXRvci5sbyBv YWNjLXByb2ZpbGluZy5sbyBcCiAJb2FjYy10YXJnZXQubG8gb21wZC1zdXBwb3J0LmxvICQo YW1fX29iamVjdHNfMSkKIGxpYmdvbXBfbGFfT0JKRUNUUyA9ICQoYW1fbGliZ29tcF9sYV9P QkpFQ1RTKQotYW1fbGliZ29tcGRfbGFfT0JKRUNUUyA9IG9tcGQtaW5pdC5sbyBvbXBkLWhl bHBlci5sbyBvbXBkLWljdi5sbworYW1fbGliZ29tcGRfbGFfT0JKRUNUUyA9IG9tcGQtaW5p dC5sbyBvbXBkLWhlbHBlci5sbyBvbXBkLWljdi5sbyBcCisJb21wZC10aHJlYWRzLmxvCiBs aWJnb21wZF9sYV9PQkpFQ1RTID0gJChhbV9saWJnb21wZF9sYV9PQkpFQ1RTKQogQU1fVl9Q ID0gJChhbV9fdl9QX0BBTV9WQCkKIGFtX192X1BfID0gJChhbV9fdl9QX0BBTV9ERUZBVUxU X1ZAKQpAQCAtNDg1LDcgKzQ3Myw2IEBAIGR2aWRpciA9IEBkdmlkaXJACiBlbmFibGVfc2hh cmVkID0gQGVuYWJsZV9zaGFyZWRACiBlbmFibGVfc3RhdGljID0gQGVuYWJsZV9zdGF0aWNA CiBleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLWdldF9nY2NfYmFzZV92ZXIgPSBAZ2V0 X2djY19iYXNlX3ZlckAKIGhvc3QgPSBAaG9zdEAKIGhvc3RfYWxpYXMgPSBAaG9zdF9hbGlh c0AKIGhvc3RfY3B1ID0gQGhvc3RfY3B1QApAQCAtNTAxLDEwICs0ODgsOCBAQCBsaWJ0b29s X1ZFUlNJT04gPSBAbGlidG9vbF9WRVJTSU9OQAogbGlua19nb21wID0gQGxpbmtfZ29tcEAK IGxvY2FsZWRpciA9IEBsb2NhbGVkaXJACiBsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVk aXJACi1sdF9ob3N0X2ZsYWdzID0gQGx0X2hvc3RfZmxhZ3NACiBtYW5kaXIgPSBAbWFuZGly QAogbWtkaXJfcCA9IEBta2Rpcl9wQAotbXVsdGlfYmFzZWRpciA9IEBtdWx0aV9iYXNlZGly QAogb2ZmbG9hZF9hZGRpdGlvbmFsX2xpYl9wYXRocyA9IEBvZmZsb2FkX2FkZGl0aW9uYWxf bGliX3BhdGhzQAogb2ZmbG9hZF9hZGRpdGlvbmFsX29wdGlvbnMgPSBAb2ZmbG9hZF9hZGRp dGlvbmFsX29wdGlvbnNACiBvZmZsb2FkX3BsdWdpbnMgPSBAb2ZmbG9hZF9wbHVnaW5zQApA QCAtNTE0LDYgKzQ5OSw3IEBAIHBkZmRpciA9IEBwZGZkaXJACiBwcmVmaXggPSBAcHJlZml4 QAogcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAog cHNkaXIgPSBAcHNkaXJACitydW5zdGF0ZWRpciA9IEBydW5zdGF0ZWRpckAKIHNiaW5kaXIg PSBAc2JpbmRpckAKIHNoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAogc3JjZGly ID0gQHNyY2RpckAKQEAgLTU4Myw3ICs1NjksNyBAQCBsaWJnb21wX2xhX1NPVVJDRVMgPSBh bGxvYy5jIGF0b21pYy5jIGJhcnJpZXIuYyBjcml0aWNhbC5jIGVudi5jIFwKIAlvYWNjLWFz eW5jLmMgb2FjYy1wbHVnaW4uYyBvYWNjLWN1ZGEuYyBwcmlvcml0eV9xdWV1ZS5jIFwKIAlh ZmZpbml0eS1mbXQuYyB0ZWFtcy5jIGFsbG9jYXRvci5jIG9hY2MtcHJvZmlsaW5nLmMgXAog CW9hY2MtdGFyZ2V0LmMgb21wZC1zdXBwb3J0LmMgJChhbV9fYXBwZW5kXzcpCi1saWJnb21w ZF9sYV9TT1VSQ0VTID0gb21wZC1pbml0LmMgb21wZC1oZWxwZXIuYyBvbXBkLWljdi5jCits aWJnb21wZF9sYV9TT1VSQ0VTID0gb21wZC1pbml0LmMgb21wZC1oZWxwZXIuYyBvbXBkLWlj di5jIG9tcGQtdGhyZWFkcy5jCiAKICMgTnZpZGlhIFBUWCBPcGVuQUNDIHBsdWdpbi4KIEBQ TFVHSU5fTlZQVFhfVFJVRUBsaWJnb21wX3BsdWdpbl9udnB0eF92ZXJzaW9uX2luZm8gPSAt dmVyc2lvbi1pbmZvICQobGlidG9vbF9WRVJTSU9OKQpAQCAtODAxLDYgKzc4Nyw3IEBAIGRp c3RjbGVhbi1jb21waWxlOgogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL29tcGQtaWN2LlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb21wZC1pbml0LlBsb0BhbV9fcXVv dGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv b21wZC1zdXBwb3J0LlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvb21wZC10aHJlYWRzLlBsb0BhbV9fcXVvdGVACiBA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb3JkZXJl ZC5QbG9AYW1fX3F1b3RlQAogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL3BhcmFsbGVsLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcHJpb3JpdHlfcXVldWUuUGxvQGFt X19xdW90ZUAKZGlmZiAtLWdpdCBhL2xpYmdvbXAvYWNsb2NhbC5tNCBiL2xpYmdvbXAvYWNs b2NhbC5tNAppbmRleCA1NWQ5ZDcxODk1YS4uNDE5MTUyMTZiZWIgMTAwNjQ0Ci0tLSBhL2xp YmdvbXAvYWNsb2NhbC5tNAorKysgYi9saWJnb21wL2FjbG9jYWwubTQKQEAgLTYyNiw2ICs2 MjYsMjUgQEAgaWYgdGVzdCB4IiR7aW5zdGFsbF9zaCtzZXR9IiAhPSB4c2V0OyB0aGVuCiBm aQogQUNfU1VCU1QoW2luc3RhbGxfc2hdKV0pCiAKKyMgQ29weXJpZ2h0IChDKSAyMDAzLTIw MTcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KKworIyBDaGVjayB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGZpbGUtc3lz dGVtIHN1cHBvcnRzIGZpbGVuYW1lcworIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3IgaW5z dGFuY2UgTVMtRE9TIGRvZXNuJ3QuCitBQ19ERUZVTihbQU1fU0VUX0xFQURJTkdfRE9UXSwK K1tybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAorbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAoraWYg dGVzdCAtZCAudHN0OyB0aGVuCisgIGFtX19sZWFkaW5nX2RvdD0uCitlbHNlCisgIGFtX19s ZWFkaW5nX2RvdD1fCitmaQorcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorQUNfU1VCU1QoW2Ft X19sZWFkaW5nX2RvdF0pXSkKKwogIyBBZGQgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlIG9w dGlvbiB0byBjb25maWd1cmUuICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIyBGcm9tIEpp bSBNZXllcmluZwogCkBAIC0xMTY3LDE5ICsxMTg2LDQgQEAgQUNfU1VCU1QoW2FtX190YXJd KQogQUNfU1VCU1QoW2FtX191bnRhcl0pCiBdKSAjIF9BTV9QUk9HX1RBUgogCi1tNF9pbmNs dWRlKFsuLi9jb25maWcvYWN4Lm00XSkKLW00X2luY2x1ZGUoWy4uL2NvbmZpZy9heF9jb3Vu dF9jcHVzLm00XSkKLW00X2luY2x1ZGUoWy4uL2NvbmZpZy9kZXBzdGFuZC5tNF0pCi1tNF9p bmNsdWRlKFsuLi9jb25maWcvZW5hYmxlLm00XSkKLW00X2luY2x1ZGUoWy4uL2NvbmZpZy9m dXRleC5tNF0pCi1tNF9pbmNsdWRlKFsuLi9jb25maWcvbGVhZC1kb3QubTRdKQotbTRfaW5j bHVkZShbLi4vY29uZmlnL2x0aG9zdGZsYWdzLm00XSkKLW00X2luY2x1ZGUoWy4uL2NvbmZp Zy9tdWx0aS5tNF0pCi1tNF9pbmNsdWRlKFsuLi9jb25maWcvb3ZlcnJpZGUubTRdKQotbTRf aW5jbHVkZShbLi4vY29uZmlnL3Rscy5tNF0pCi1tNF9pbmNsdWRlKFsuLi9jb25maWcvdG9v bGV4ZWNsaWJkaXIubTRdKQotbTRfaW5jbHVkZShbLi4vbHRvcHRpb25zLm00XSkKLW00X2lu Y2x1ZGUoWy4uL2x0c3VnYXIubTRdKQotbTRfaW5jbHVkZShbLi4vbHR2ZXJzaW9uLm00XSkK LW00X2luY2x1ZGUoWy4uL2x0fm9ic29sZXRlLm00XSkKIG00X2luY2x1ZGUoW2FjaW5jbHVk ZS5tNF0pCmRpZmYgLS1naXQgYS9saWJnb21wL2NvbmZpZ3VyZSBiL2xpYmdvbXAvY29uZmln dXJlCmluZGV4IGIyNTFhMzg5ZDg5Li45NjgyYTgzNjAyOSAxMDA3NTUKLS0tIGEvbGliZ29t cC9jb25maWd1cmUKKysrIGIvbGliZ29tcC9jb25maWd1cmUKQEAgLTcyMCw3ICs3MjAsNiBA QCBhbV9fbm9kZXAKIEFNREVQQkFDS1NMQVNICiBBTURFUF9GQUxTRQogQU1ERVBfVFJVRQot YW1fX3F1b3RlCiBhbV9faW5jbHVkZQogREVQRElSCiBPQkpFWFQKQEAgLTgxMSw3ICs4MTAs OCBAQCBQQUNLQUdFX1ZFUlNJT04KIFBBQ0tBR0VfVEFSTkFNRQogUEFDS0FHRV9OQU1FCiBQ QVRIX1NFUEFSQVRPUgotU0hFTEwnCitTSEVMTAorYW1fX3F1b3RlJwogYWNfc3Vic3RfZmls ZXM9JycKIGFjX3VzZXJfb3B0cz0nCiBlbmFibGVfb3B0aW9uX2NoZWNraW5nCkBAIC0yODcw LDcgKzI4NzAsNyBAQCB0YXJnZXRfYWxpYXM9JHt0YXJnZXRfYWxpYXMtJGhvc3RfYWxpYXN9 CiAjICAtV2FsbDogIHR1cm5zIG9uIGFsbCBhdXRvbWFrZSB3YXJuaW5ncy4uLgogIyAgLVdu by1wb3J0YWJpbGl0eTogIC4uLmV4Y2VwdCB0aGlzIG9uZSwgc2luY2UgR05VIG1ha2UgaXMg cmVxdWlyZWQuCiAjICAtV25vLW92ZXJyaWRlOiAuLi4gYW5kIHRoaXMgb25lLCBzaW5jZSB3 ZSBkbyB3YW50IHRoaXMgaW4gdGVzdHN1aXRlLgotYW1fX2FwaV92ZXJzaW9uPScxLjE1Jwor YW1fX2FwaV92ZXJzaW9uPScxLjE2JwogCiAjIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3Jh bS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKICMgc28gb25lIHNjcmlwdCBp cyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgpAQCAtMzM4 Niw4ICszMzg2LDggQEAgTUFLRUlORk89JHtNQUtFSU5GTy0iJHthbV9taXNzaW5nX3J1bn1t YWtlaW5mbyJ9CiAKICMgRm9yIGJldHRlciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgVG8g YmUgcmVtb3ZlZCBvbmNlIEF1dG9tYWtlIDEuOS54CiAjIGRpZXMgb3V0IGZvciBnb29kLiAg Rm9yIG1vcmUgYmFja2dyb3VuZCwgc2VlOgotIyA8aHR0cDovL2xpc3RzLmdudS5vcmcvYXJj aGl2ZS9odG1sL2F1dG9tYWtlLzIwMTItMDcvbXNnMDAwMDEuaHRtbD4KLSMgPGh0dHA6Ly9s aXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9hdXRvbWFrZS8yMDEyLTA3L21zZzAwMDE0Lmh0 bWw+CisjIDxodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2F1dG9tYWtlLzIw MTItMDcvbXNnMDAwMDEuaHRtbD4KKyMgPGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZl L2h0bWwvYXV0b21ha2UvMjAxMi0wNy9tc2cwMDAxNC5odG1sPgogbWtkaXJfcD0nJChNS0RJ Ul9QKScKIAogIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0IChhbmQgcG9z c2libHkgdGhlIFRBUCBkcml2ZXIpLiAgVGhlCkBAIC0zNDM4LDcgKzM0MzgsNyBAQCBFTkQK IEFib3J0aW5nIHRoZSBjb25maWd1cmF0aW9uIHByb2Nlc3MsIHRvIGVuc3VyZSB5b3UgdGFr ZSBub3RpY2Ugb2YgdGhlIGlzc3VlLgogCiBZb3UgY2FuIGRvd25sb2FkIGFuZCBpbnN0YWxs IEdOVSBjb3JldXRpbHMgdG8gZ2V0IGFuICdybScgaW1wbGVtZW50YXRpb24KLXRoYXQgYmVo YXZlcyBwcm9wZXJseTogPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9jb3JldXRpbHMv Pi4KK3RoYXQgYmVoYXZlcyBwcm9wZXJseTogPGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvY29yZXV0aWxzLz4uCiAKIElmIHlvdSB3YW50IHRvIGNvbXBsZXRlIHRoZSBjb25maWd1 cmF0aW9uIHByb2Nlc3MgdXNpbmcgeW91ciBwcm9ibGVtYXRpYwogJ3JtJyBhbnl3YXksIGV4 cG9ydCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQUNDRVBUX0lORkVSSU9SX1JNX1BST0dS QU0KQEAgLTQzOTksNDUgKzQzOTksNDUgQEAgREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1k ZXBzIgogCiBhY19jb25maWdfY29tbWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMgZGVwZmls ZXMiCiAKLQotYW1fbWFrZT0ke01BS0UtbWFrZX0KLWNhdCA+IGNvbmZpbmMgPDwgJ0VORCcK K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hl dGhlciAke01BS0UtbWFrZX0gc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlIiA+JjUK KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHN1cHBvcnRzIHRo ZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiAiID4mNjsgfQorY2F0ID4gY29uZmluYy5tayA8PCAn RU5EJwogYW1fX2RvaXQ6Ci0JQGVjaG8gdGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0CisJ QGVjaG8gdGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0ID5jb25maW5jLm91dAogLlBIT05Z OiBhbV9fZG9pdAogRU5ECi0jIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3Rp dmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCi17ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQg YnkgJGFtX21ha2UiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGlu Y2x1ZGUgdXNlZCBieSAkYW1fbWFrZS4uLiAiID4mNjsgfQogYW1fX2luY2x1ZGU9IiMiCiBh bV9fcXVvdGU9Ci1fYW1fcmVzdWx0PW5vbmUKLSMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxl IGluY2x1ZGUuCi1lY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0jIElnbm9yZSBh bGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJvbSAnbWFrZScuCi1jYXNlIGAkYW1f bWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAotKnRoZVwgYW1fX2RvaXRc IHRhcmdldCopCi0gIGFtX19pbmNsdWRlPWluY2x1ZGUKLSAgYW1fX3F1b3RlPQotICBfYW1f cmVzdWx0PUdOVQotICA7OwotZXNhYwotIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1 ZGUuCi1pZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCi0gICBlY2hvICcuaW5j bHVkZSAiY29uZmluYyInID4gY29uZm1mCi0gICBjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25m bWYgMj4gL2Rldi9udWxsYCBpbiAjKAotICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0g ICAgIGFtX19pbmNsdWRlPS5pbmNsdWRlCi0gICAgIGFtX19xdW90ZT0iXCIiCi0gICAgIF9h bV9yZXN1bHQ9QlNECisjIEJTRCBtYWtlIGRvZXMgaXQgbGlrZSB0aGlzLgorZWNobyAnLmlu Y2x1ZGUgImNvbmZpbmMubWsiICMgaWdub3JlZCcgPiBjb25mbWYuQlNECisjIE90aGVyIG1h a2UgaW1wbGVtZW50YXRpb25zIChHTlUsIFNvbGFyaXMgMTAsIEFJWCkgZG8gaXQgbGlrZSB0 aGlzLgorZWNobyAnaW5jbHVkZSBjb25maW5jLm1rICMgaWdub3JlZCcgPiBjb25mbWYuR05V CitfYW1fcmVzdWx0PW5vCitmb3IgcyBpbiBHTlUgQlNEOyBkbworICB7IGVjaG8gIiRhc19t ZTokTElORU5POiAke01BS0UtbWFrZX0gLWYgY29uZm1mLiRzICYmIGNhdCBjb25maW5jLm91 dCIgPiY1CisgICAoJHtNQUtFLW1ha2V9IC1mIGNvbmZtZi4kcyAmJiBjYXQgY29uZmluYy5v dXQpID4mNSAyPiY1CisgICBhY19zdGF0dXM9JD8KKyAgIGVjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgIChleGl0ICRhY19zdGF0dXMpOyB9CisgIGNh c2UgJD86YGNhdCBjb25maW5jLm91dCAyPi9kZXYvbnVsbGAgaW4gIygKKyAgJzA6dGhpcyBp cyB0aGUgYW1fX2RvaXQgdGFyZ2V0JykgOgorICAgIGNhc2UgJHMgaW4gIygKKyAgQlNEKSA6 CisgICAgYW1fX2luY2x1ZGU9Jy5pbmNsdWRlJyBhbV9fcXVvdGU9JyInIDs7ICMoCisgICop IDoKKyAgICBhbV9faW5jbHVkZT0naW5jbHVkZScgYW1fX3F1b3RlPScnIDs7Citlc2FjIDs7 ICMoCisgICopIDoKICAgICAgOzsKLSAgIGVzYWMKLWZpCi0KLQoteyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRfYW1fcmVzdWx0IiA+JjUKLSRh c19lY2hvICIkX2FtX3Jlc3VsdCIgPiY2OyB9Ci1ybSAtZiBjb25maW5jIGNvbmZtZgorZXNh YworICBpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiICE9ICIjIjsgdGhlbgorICAgIF9hbV9yZXN1 bHQ9InllcyAoJHMgc3R5bGUpIgorICAgIGJyZWFrCisgIGZpCitkb25lCitybSAtZiBjb25m aW5jLiogY29uZm1mLioKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAke19hbV9yZXN1bHR9IiA+JjUKKyRhc19lY2hvICIke19hbV9yZXN1bHR9 IiA+JjY7IH0KIAogIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tp bmcgd2FzIGdpdmVuLgogaWYgdGVzdCAiJHtlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZytz ZXR9IiA9IHNldDsgdGhlbiA6CkBAIC0xNzc1OSw3ICsxNzc1OSw3IEBAIENDPSIkQ0MiCiBD WFg9IiRDWFgiCiBHRk9SVFJBTj0iJEdGT1JUUkFOIgogR0RDPSIkR0RDIgotQU1ERVBfVFJV RT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgorQU1ERVBfVFJVRT0i JEFNREVQX1RSVUUiIE1BS0U9IiR7TUFLRS1tYWtlfSIKIAogCiAjIFRoZSBIUC1VWCBrc2gg YW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dApA QCAtMTg3NTEsMjkgKzE4NzUxLDM1IEBAIGVzYWMgOzsKICAgIyBPbGRlciBBdXRvY29uZiBx dW90ZXMgLS1maWxlIGFyZ3VtZW50cyBmb3IgZXZhbCwgYnV0IG5vdCB3aGVuIGZpbGVzCiAg ICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25s eSBlbmFibGUgdGhlIGV2YWwKICAgIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCi0gIGNh c2UgJENPTkZJR19GSUxFUyBpbgotICAqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVT IiA7OwotICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKLSAgZXNhYworICAjIFRPRE86 IHNlZSB3aGV0aGVyIHRoaXMgZXh0cmEgaGFjayBjYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIHN0 YXJ0CisgICMgcmVxdWlyaW5nIEF1dG9jb25mIDIuNzAgb3IgbGF0ZXIuCisgIGNhc2UgJENP TkZJR19GSUxFUyBpbiAjKAorICAqXCcqKSA6CisgICAgZXZhbCBzZXQgeCAiJENPTkZJR19G SUxFUyIgOzsgIygKKyAgKikgOgorICAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsgIygKKyAg KikgOgorICAgICA7OworZXNhYwogICBzaGlmdAotICBmb3IgbWYKKyAgIyBVc2VkIHRvIGZs YWcgYW5kIHJlcG9ydCBib290c3RyYXBwaW5nIGZhaWx1cmVzLgorICBhbV9yYz0wCisgIGZv ciBhbV9tZgogICBkbwogICAgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5h bWUgb2YgdGhlIGZpbGUuCi0gICAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8v J2AKLSAgICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQg TWFrZWZpbGUgb3Igbm90LgotICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxl cyBuYW1lZCAnTWFrZWZpbGUuaW4nLCBidXQKLSAgICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0 aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSAgICAjIEdy ZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3Qt cHJvY2VzcwotICAgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24g dG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCi0gICAgIyBHcmVwJ2luZyB0aGUgd2hvbGUg ZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKKyAgICBhbV9t Zj1gJGFzX2VjaG8gIiRhbV9tZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKKyAgICAjIENoZWNr IHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgd2hpY2gg aW5jbHVkZXMKKyAgICAjIGRlcGVuZGVuY3ktdHJhY2tpbmcgcmVsYXRlZCBydWxlcyBhbmQg aW5jbHVkZXMuCisgICAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBkaXJlY3RseSBpcyBu b3QgZ3JlYXQ6IEFJWCBncmVwIGhhcyBhIGxpbmUKICAgICAjIGxpbWl0IG9mIDIwNDgsIGJ1 dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KLSAg ICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRtZiIg fCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICBkaXJwYXJ0PWAkYXNfZGly bmFtZSAtLSAiJG1mIiB8fAotJGFzX2V4cHIgWCIkbWYiIDogJ1hcKC4qW14vXVwpLy8qW14v XVteL10qLyokJyBcfCBcCi0JIFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRt ZiIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkbWYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYv bnVsbCB8fAotJGFzX2VjaG8gWCIkbWYiIHwKKyAgICBzZWQgLW4gJ3MsXmFtLS1kZXBmaWxl czouKixYLHAnICIkYW1fbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMSBcCisgICAgICB8 fCBjb250aW51ZQorICAgIGFtX2RpcnBhcnQ9YCRhc19kaXJuYW1lIC0tICIkYW1fbWYiIHx8 CiskYXNfZXhwciBYIiRhbV9tZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8 IFwKKwkgWCIkYW1fbWYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFtX21mIiA6ICdY XCgvL1wpJCcgXHwgXAorCSBYIiRhbV9tZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxs IHx8CiskYXNfZWNobyBYIiRhbV9tZiIgfAogICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8q W14vXVteL10qXC8qJC97CiAJICAgIHMvL1wxLwogCSAgICBxCkBAIC0xODc5MSw1MyArMTg3 OTcsNDggQEAgJGFzX2VjaG8gWCIkbWYiIHwKIAkgICAgcQogCSAgfQogCSAgcy8uKi8uLzsg cSdgCi0gICAgZWxzZQotICAgICAgY29udGludWUKLSAgICBmaQotICAgICMgRXh0cmFjdCB0 aGUgZGVmaW5pdGlvbiBvZiBERVBESVIsIGFtX19pbmNsdWRlLCBhbmQgYW1fX3F1b3RlCi0g ICAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgJ21ha2UnLgotICAgIERF UERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0gICAgdGVzdCAteiAi JERFUERJUiIgJiYgY29udGludWUKLSAgICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9f aW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKLSAgICB0ZXN0IC16ICIkYW1fX2luY2x1ZGUiICYm IGNvbnRpbnVlCi0gICAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcg PCAiJG1mImAKLSAgICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5 IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0gICAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFt ZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhlCi0gICAgIyBzaW1w bGVzdCBhcHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1 ZSBpbiB0aGUKLSAgICAjIGV4cGFuc2lvbi4KLSAgICBmb3IgZmlsZSBpbiBgc2VkIC1uICIK LSAgICAgIHMvXiRhbV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9f cXVvdGUiJyQvXDEvcCcgPCIkbWYiIHwgXAotCSBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRE RVBESVIiJy9nJ2A7IGRvCi0gICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0 cy4KLSAgICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQotICAgICAg ZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRmaWxlIiB8fAotJGFzX2V4cHIgWCIkZmlsZSIgOiAn WFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkZmlsZSIgOiAnWFwoLy9c KVteL10nIFx8IFwKLQkgWCIkZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkZmlsZSIg OiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0kYXNfZWNobyBYIiRmaWxlIiB8Ci0g ICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLQkgICAgcy8vXDEv Ci0JICAgIHEKLQkgIH0KLQkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKyAgICBhbV9maWxlcGFy dD1gJGFzX2Jhc2VuYW1lIC0tICIkYW1fbWYiIHx8CiskYXNfZXhwciBYLyIkYW1fbWYiIDog Jy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKwkgWCIkYW1fbWYiIDogJ1hcKC8vXCkkJyBc fCBcCisJIFgiJGFtX21mIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyRhc19l Y2hvIFgvIiRhbV9tZiIgfAorICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQvewog CSAgICBzLy9cMS8KIAkgICAgcQogCSAgfQotCSAgL15YXChcL1wvXCkkL3sKKwkgIC9eWFwv XChcL1wvXCkkL3sKIAkgICAgcy8vXDEvCiAJICAgIHEKIAkgIH0KLQkgIC9eWFwoXC9cKS4q L3sKKwkgIC9eWFwvXChcL1wpLiovewogCSAgICBzLy9cMS8KIAkgICAgcQogCSAgfQogCSAg cy8uKi8uLzsgcSdgCi0gICAgICBhc19kaXI9JGRpcnBhcnQvJGZkaXI7IGFzX2ZuX21rZGly X3AKLSAgICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCi0gICAgICBlY2hv ICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKLSAgICBkb25lCisgICAgeyBlY2hvICIk YXNfbWU6JExJTkVOTzogY2QgIiRhbV9kaXJwYXJ0IiBcCisgICAgICAmJiBzZWQgLWUgJy8j IGFtLS1pbmNsdWRlLW1hcmtlci9kJyAiJGFtX2ZpbGVwYXJ0IiBcCisgICAgICAgIHwgJE1B S0UgLWYgLSBhbS0tZGVwZmlsZXMiID4mNQorICAgKGNkICIkYW1fZGlycGFydCIgXAorICAg ICAgJiYgc2VkIC1lICcvIyBhbS0taW5jbHVkZS1tYXJrZXIvZCcgIiRhbV9maWxlcGFydCIg XAorICAgICAgICB8ICRNQUtFIC1mIC0gYW0tLWRlcGZpbGVzKSA+JjUgMj4mNQorICAgYWNf c3RhdHVzPSQ/CisgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisgICAoZXhpdCAkYWNfc3RhdHVzKTsgfSB8fCBhbV9yYz0kPwogICBkb25lCisgIGlm IHRlc3QgJGFtX3JjIC1uZSAwOyB0aGVuCisgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CiskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Cithc19mbl9lcnJvciAk PyAiU29tZXRoaW5nIHdlbnQgd3JvbmcgYm9vdHN0cmFwcGluZyBtYWtlZmlsZSBmcmFnbWVu dHMKKyAgICBmb3IgYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcuICBUcnkgcmUtcnVu bmluZyBjb25maWd1cmUgd2l0aCB0aGUKKyAgICAnLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJh Y2tpbmcnIG9wdGlvbiB0byBhdCBsZWFzdCBiZSBhYmxlIHRvIGJ1aWxkCisgICAgdGhlIHBh Y2thZ2UgKGFsYmVpdCB3aXRob3V0IHN1cHBvcnQgZm9yIGF1dG9tYXRpYyBkZXBlbmRlbmN5 IHRyYWNraW5nKS4KK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElO RU5PIiA1OyB9CisgIGZpCisgIHsgYW1fZGlycGFydD07IHVuc2V0IGFtX2RpcnBhcnQ7fQor ICB7IGFtX2ZpbGVwYXJ0PTsgdW5zZXQgYW1fZmlsZXBhcnQ7fQorICB7IGFtX21mPTsgdW5z ZXQgYW1fbWY7fQorICB7IGFtX3JjPTsgdW5zZXQgYW1fcmM7fQorICBybSAtZiBjb25mdGVz dC1kZXBzLm1rCiB9CiAgOzsKICAgICAibGlidG9vbCI6QykKZGlmZiAtLWdpdCBhL2xpYmdv bXAvb21wZC1zdXBwb3J0LmMgYi9saWJnb21wL29tcGQtc3VwcG9ydC5jCmluZGV4IDI3YzVh ZDE0OGUwLi5lNzY5ZTU1ZmQwZiAxMDA2NDQKLS0tIGEvbGliZ29tcC9vbXBkLXN1cHBvcnQu YworKysgYi9saWJnb21wL29tcGQtc3VwcG9ydC5jCkBAIC0zMyw2ICszMyw4IEBAIGNvbnN0 IHVuc2lnbmVkIHNob3J0IGdvbXBkX3NpemVvZl9nb21wX3RocmVhZF9oYW5kbGUKICAgX19h dHRyaWJ1dGVfXyAoKHVzZWQpKSBPTVBEX1NFQ1RJT04gPSAwOwogI2VuZGlmCiAKK3Vuc2ln bmVkIGxvbmcgZ29tcGRfdGhyZWFkX2luaXRpYWxfdGxzX2JpYXMgX19hdHRyaWJ1dGVfXyAo KHVzZWQpKTsKKwogLyogR2V0IG9mZnNldCBvZiB0aGUgbWVtYmVyIG0gaW4gc3RydWN0IHQu ICAqLwogI2RlZmluZSBnb21wZF9nZXRfb2Zmc2V0KHQsIG0pIFwKICAgY29uc3QgdW5zaWdu ZWQgc2hvcnQgZ29tcGRfYWNjZXNzXyMjdCMjXyMjbSBfX2F0dHJpYnV0ZV9fICgodXNlZCkp IFwKQEAgLTY3LDYgKzY5LDkgQEAgZ29tcGRfbG9hZCAodm9pZCkKICAgZ29tcGRfc3RhdGUg fD0gT01QRF9FTkFCTEVEOwogICBvbXBkX2RsbF9sb2NhdGlvbnMgPSAmb21wZF9kbGxfbG9j YXRpb25zX2FycmF5WzBdOwogICBvbXBkX2RsbF9sb2NhdGlvbnNfdmFsaWQgKCk7CisKKyAg Z29tcGRfdGhyZWFkX2luaXRpYWxfdGxzX2JpYXMgPSAodW5zaWduZWQgbG9uZykgKChjaGFy ICopICZnb21wX3Rsc19kYXRhCisgIAkJCQkJCSAgIC0gKGNoYXIgKikgcHRocmVhZF9zZWxm ICgpKTsKIH0KIAogI2lmbmRlZiBfX0VMRl9fCmRpZmYgLS1naXQgYS9saWJnb21wL29tcGQt dGhyZWFkcy5jIGIvbGliZ29tcC9vbXBkLXRocmVhZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNDM2YTdkNjE3ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9s aWJnb21wL29tcGQtdGhyZWFkcy5jCkBAIC0wLDAgKzEsMjE2IEBACisvKiBDb3B5cmlnaHQg KEMpIFRoZSBHTlUgVG9vbGNoYWluIEF1dGhvcnMuCisgICBDb250cmlidXRlZCBieSBBaG1l ZCBTYXllZCA8YWhtZWRzYXllZG1vdXNzZUBnbWFpbC5jb20+LgorICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgdGhlIEdOVSBPZmZsb2FkaW5nIGFuZCBNdWx0aSBQcm9jZXNzaW5nIExpYnJh cnkKKyAgIChsaWJnb21wKS4KKworICAgTGliZ29tcCBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgICB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3Ig KGF0IHlvdXIgb3B0aW9uKQorICAgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIExpYmdvbXAg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0 IFdJVEhPVVQgQU5ZCisgICBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgICBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgor ICAgbW9yZSBkZXRhaWxzLgorCisgICBVbmRlciBTZWN0aW9uIDcgb2YgR1BMIHZlcnNpb24g MywgeW91IGFyZSBncmFudGVkIGFkZGl0aW9uYWwKKyAgIHBlcm1pc3Npb25zIGRlc2NyaWJl ZCBpbiB0aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24sIHZlcnNpb24KKyAgIDMu MSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFuZAorICAgYSBjb3B5IG9mIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5 IEV4Y2VwdGlvbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsKKyAgIHNlZSB0aGUgZmlsZXMg Q09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNl ZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyogVGhpcyBm aWxlIGNvbnRhaW5zIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgZGVmaW5lZCBp bgorICAgU2VjdGlvbiA1LjUgVGhyZWFkSGFuZGxlcy4gKi8KKworCisjaW5jbHVkZSAib21w ZC1oZWxwZXIuaCIKKworb21wZF9yY190CitvbXBkX2dldF90aHJlYWRfaW5fcGFyYWxsZWwg KG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZSwKKwkJCSAgICAgaW50 IHRocmVhZF9udW0sCisJCQkgICAgIG9tcGRfdGhyZWFkX2hhbmRsZV90ICoqdGhyZWFkX2hh bmRsZSkKK3sKKworICBpZiAocGFyYWxsZWxfaGFuZGxlID09IE5VTEwpCisgICAgcmV0dXJu IG9tcGRfcmNfc3RhbGVfaGFuZGxlOworICBDSEVDSyAocGFyYWxsZWxfaGFuZGxlLT5haCk7 CisKKyAgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdCAqY29udGV4dCA9IHBhcmFsbGVs X2hhbmRsZS0+YWgtPmNvbnRleHQ7CisgIG9tcGRfcmNfdCByZXQ7CisKKyAgb21wZF93b3Jk X3QgdGVhbV9zaXplX3ZhciA9IDE7CisgIGlmIChwYXJhbGxlbF9oYW5kbGUtPnRoLmFkZHJl c3MpCisgICAgZ29tcGRfZ2V0X3RlYW1fc2l6ZShwYXJhbGxlbF9oYW5kbGUsICZ0ZWFtX3Np emVfdmFyKTsKKworICBpZiAodGhyZWFkX251bSA8IDAgfHwgdGhyZWFkX251bSA+PSB0ZWFt X3NpemVfdmFyKQorICAgIHJldHVybiBvbXBkX3JjX2JhZF9pbnB1dDsKKworICBvbXBkX3dv cmRfdCB0ZW1wX29mZnNldDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9zeW1ib2xfYWRkciwg c3ltYm9sX2FkZHIgPSB7T01QRF9TRUdNRU5UX1VOU1BFQ0lGSUVELCAwfTsKKyAgb21wZF9h ZGRyX3QgdGVtcF9hZGRyOworCisgIEFDQ0VTU19WQUxVRSAoY29udGV4dCwgTlVMTCwgImdv bXBkX2FjY2Vzc19nb21wX3RocmVhZF9wb29sX3RocmVhZHMiLAorCQl0ZW1wX29mZnNldCwg MSwgcmV0LCBzeW1ib2xfYWRkciwgdGVtcF9zeW1ib2xfYWRkciwgdGVtcF9hZGRyKTsKKwor ICBzeW1ib2xfYWRkci5hZGRyZXNzICs9IHRocmVhZF9udW0gKiB0YXJnZXRfc2l6ZXMuc2l6 ZW9mX3BvaW50ZXI7CisKKyAgREVSRUZFUkVOQ0UgKGNvbnRleHQsIE5VTEwsIHN5bWJvbF9h ZGRyLCB0YXJnZXRfc2l6ZXMuc2l6ZW9mX3BvaW50ZXIsIDEsCisJICAgICAgIHRlbXBfYWRk ciwgcmV0LCAxKTsKKworICByZXQgPSBjYWxsYmFja3MtPmFsbG9jX21lbW9yeSAoc2l6ZW9m IChvbXBkX3RocmVhZF9oYW5kbGVfdCksCisJCQkJICh2b2lkICoqKSB0aHJlYWRfaGFuZGxl KTsKKworICBDSEVDS19SRVQgKHJldCk7CisKKyAgaWYgKHN5bWJvbF9hZGRyLmFkZHJlc3Mg PT0gMCkKKyAgICByZXR1cm4gb21wZF9yY191bnN1cHBvcnRlZDsKKworICAoKnRocmVhZF9o YW5kbGUpLT50aCA9IHN5bWJvbF9hZGRyOworICAoKnRocmVhZF9oYW5kbGUpLT5haCA9IHBh cmFsbGVsX2hhbmRsZS0+YWg7CisgIHJldHVybiByZXQ7Cit9CisKKy8qIFRoZSBvbXBkX2dl dF90aHJlYWRfaGFuZGxlIGZ1bmN0aW9uIHRoYXQgbWFwcyBhIG5hdGl2ZSB0aHJlYWQgdG8g YW4KKyAgIE9NUEQgdGhyZWFkIGhhbmRsZS4gICovCisKK29tcGRfcmNfdAorb21wZF9nZXRf dGhyZWFkX2hhbmRsZSAob21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90ICpoYW5kbGUsCisJ CQlvbXBkX3RocmVhZF9pZF90IGtpbmQsIG9tcGRfc2l6ZV90IHNpemVvZl90aHJlYWRfaWQs CisJCQljb25zdCB2b2lkICp0aHJlYWRfaWQsCisJCQlvbXBkX3RocmVhZF9oYW5kbGVfdCAq KnRocmVhZF9oYW5kbGUpCit7CisgIENIRUNLIChoYW5kbGUpOworICBpZiAoa2luZCAhPSBP TVBEX1RIUkVBRF9JRF9QVEhSRUFEKQorICAgIHJldHVybiBvbXBkX3JjX3Vuc3VwcG9ydGVk OworCisgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmNvbnRleHQgPSBoYW5kbGUt PmNvbnRleHQ7CisgIG9tcGRfdGhyZWFkX2NvbnRleHRfdCAqdGNvbnRleHQ7CisgIG9tcGRf cmNfdCByZXQ7CisKKyAgcmV0ID0gY2FsbGJhY2tzLT5nZXRfdGhyZWFkX2NvbnRleHRfZm9y X3RocmVhZF9pZCAoY29udGV4dCwga2luZCwKKwkJCQkJCSAgICAgc2l6ZW9mX3RocmVhZF9p ZCwKKwkJCQkJCSAgICAgdGhyZWFkX2lkLCAmdGNvbnRleHQpOworICBDSEVDS19SRVQgKHJl dCk7CisKKyAgb21wZF9zaXplX3QgdGVtcF9zeW1ib2xfc2l6ZSwgc3ltYm9sX3NpemU7Cisg IG9tcGRfYWRkcmVzc190IHRlbXBfc3ltYm9sX2FkZHIsIHN5bWJvbF9hZGRyID0ge09NUERf U0VHTUVOVF9VTlNQRUNJRklFRCwgMH07CisKKyAgR0VUX1ZBTFVFIChjb250ZXh0LCBOVUxM LCAiZ29tcGRfc2l6ZW9mX2dvbXBfdGhyZWFkIiwgc3ltYm9sX3NpemUsCisJICAgICB0ZW1w X3N5bWJvbF9zaXplLCB0YXJnZXRfc2l6ZXMuc2l6ZW9mX3Nob3J0LCAxLCByZXQsCisJICAg ICB0ZW1wX3N5bWJvbF9hZGRyKTsKKworICBHRVRfVkFMVUUgKGNvbnRleHQsIHRjb250ZXh0 LCAiZ29tcF90bHNfZGF0YSIsIHN5bWJvbF9hZGRyLmFkZHJlc3MsCisJICAgICB0ZW1wX3N5 bWJvbF9hZGRyLmFkZHJlc3MsIHN5bWJvbF9zaXplLCAxLCByZXQsIHN5bWJvbF9hZGRyKTsK KworICByZXQgPSBjYWxsYmFja3MtPmFsbG9jX21lbW9yeSAoc2l6ZW9mIChvbXBkX3RocmVh ZF9oYW5kbGVfdCksCisJCQkJICh2b2lkICoqKSB0aHJlYWRfaGFuZGxlKTsKKworICBDSEVD S19SRVQgKHJldCk7CisKKyAgKCp0aHJlYWRfaGFuZGxlKS0+YWggPSBoYW5kbGU7CisgICgq dGhyZWFkX2hhbmRsZSktPnRoID0gc3ltYm9sX2FkZHI7CisgICgqdGhyZWFkX2hhbmRsZSkt PnRocmVhZF9jb250ZXh0ID0gdGNvbnRleHQ7CisgIHJldHVybiByZXQ7Cit9CisKKworb21w ZF9yY190CitvbXBkX3JlbF90aHJlYWRfaGFuZGxlIChvbXBkX3RocmVhZF9oYW5kbGVfdCAq dGhyZWFkX2hhbmRsZSkKK3sKKyAgaWYgKHRocmVhZF9oYW5kbGUgPT0gTlVMTCkKKyAgICBy ZXR1cm4gb21wZF9yY19zdGFsZV9oYW5kbGU7CisKKyAgb21wZF9yY190IHJldDsKKyAgcmV0 ID0gY2FsbGJhY2tzLT5mcmVlX21lbW9yeSAoKHZvaWQgKikgdGhyZWFkX2hhbmRsZSk7Cisg IGlmIChyZXQgIT0gb21wZF9yY19vaykKKyAgcmV0dXJuIHJldDsKKworICByZXR1cm4gb21w ZF9yY19vazsKK30KKworCisvKiByZXR1cm4gLTEsIDAgb3IgMSBmb3IgdGhyZWFkX2hhbmRs ZV8xIDwsID09IG9yID4gdGhyZWFkX2hhbmRsZV8yLiAgKi8KK29tcGRfcmNfdAorb21wZF90 aHJlYWRfaGFuZGxlX2NvbXBhcmUgKG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFu ZGxlXzEsCisJCQkgICAgb21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9oYW5kbGVfMiwK KwkJCSAgICBpbnQJKmNtcF92YWx1ZSApCit7CisKKyAgaWYgKHRocmVhZF9oYW5kbGVfMSA9 PSBOVUxMIHx8IHRocmVhZF9oYW5kbGVfMiA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3Jj X3N0YWxlX2hhbmRsZTsKKyAgaWYgKGNtcF92YWx1ZSA9PSBOVUxMKQorICAgIHJldHVybiBv bXBkX3JjX2JhZF9pbnB1dDsKKyAgaWYgKHRocmVhZF9oYW5kbGVfMS0+YWgtPmtpbmQgIT0g dGhyZWFkX2hhbmRsZV8yLT5haC0+a2luZCkKKyAgICByZXR1cm4gb21wZF9yY19iYWRfaW5w dXQ7CisKKyAgKmNtcF92YWx1ZSA9IHRocmVhZF9oYW5kbGVfMS0+dGguYWRkcmVzcyAtIHRo cmVhZF9oYW5kbGVfMi0+dGguYWRkcmVzczsKKyAgcmV0dXJuIG9tcGRfcmNfb2s7Cit9CisK Kworb21wZF9yY190CitvbXBkX2dldF90aHJlYWRfaWQgKG9tcGRfdGhyZWFkX2hhbmRsZV90 ICp0aHJlYWRfaGFuZGxlLCBvbXBkX3RocmVhZF9pZF90IGtpbmQsCisJCSAgICBvbXBkX3Np emVfdCBzaXplb2ZfdGhyZWFkX2lkLCB2b2lkICp0aHJlYWRfaWQpCit7CisgIGlmIChraW5k ICE9IE9NUERfVEhSRUFEX0lEX1BUSFJFQUQpCisgICAgcmV0dXJuIG9tcGRfcmNfdW5zdXBw b3J0ZWQ7CisgIGlmICh0aHJlYWRfaWQgPT0gTlVMTCkKKyAgICByZXR1cm4gb21wZF9yY19i YWRfaW5wdXQ7CisgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpCisgICAgcmV0dXJuIG9t cGRfcmNfc3RhbGVfaGFuZGxlOworCisgIENIRUNLICh0aHJlYWRfaGFuZGxlLT5haCk7Cisg IG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmNvbnRleHQgPSB0aHJlYWRfaGFuZGxl LT5haC0+Y29udGV4dDsKKworICBvbXBkX3JjX3QgcmV0OworICBvbXBkX2FkZHJlc3NfdCB0 YWRkciA9IHRocmVhZF9oYW5kbGUtPnRoOworICBvbXBkX2FkZHJlc3NfdCB0ZW1wX3N5bWJv bF9hZGRyLCBzeW1ib2xfYWRkciA9IHtPTVBEX1NFR01FTlRfVU5TUEVDSUZJRUQsIDB9Owor ICBvbXBkX3NpemVfdCB0ZW1wX3N5bWJvbF9zaXplLCBzeW1ib2xfc2l6ZTsKKyAgb21wZF93 b3JkX3QgdGVtcF9vZmZzZXQsIG9mZnNldDsKKworICBHRVRfVkFMVUUgKGNvbnRleHQsIE5V TEwsICJnb21wZF9zaXplb2ZfZ29tcF90aHJlYWRfaGFuZGxlIiwgc3ltYm9sX3NpemUsCisJ ICAgICB0ZW1wX3N5bWJvbF9zaXplLCB0YXJnZXRfc2l6ZXMuc2l6ZW9mX3Nob3J0LCAxLCBy ZXQsIHN5bWJvbF9hZGRyKTsKKworICBpZiAoc3ltYm9sX3NpemUgPT0gMCkKKyAgICBnb3Rv IHVzZV90bHNfYmlhczsKKworICBpZiAoc2l6ZW9mX3RocmVhZF9pZCAhPSBzeW1ib2xfc2l6 ZSkKKyAgICByZXR1cm4gb21wZF9yY19iYWRfaW5wdXQ7CisKKyAgR0VUX1ZBTFVFIChjb250 ZXh0LCBOVUxMLCAiZ29tcGRfYWNjZXNzX2dvbXBfdGhyZWFkX2hhbmRsZSIsIG9mZnNldCwK KwkgICAgIHRlbXBfb2Zmc2V0LCB0YXJnZXRfc2l6ZXMuc2l6ZW9mX3Nob3J0LCAxLCByZXQs IHN5bWJvbF9hZGRyKTsKKyAgdGFkZHIuYWRkcmVzcyArPSBvZmZzZXQ7CisKKyAgcmV0ID0g Y2FsbGJhY2tzLT5yZWFkX21lbW9yeSAoY29udGV4dCwgTlVMTCwgJnRhZGRyLCBzeW1ib2xf c2l6ZSwgdGhyZWFkX2lkKTsKKyAgcmV0dXJuIHJldDsKKwordXNlX3Rsc19iaWFzOgorCisg IEdFVF9WQUxVRSAoY29udGV4dCwgTlVMTCwgImdvbXBkX3RocmVhZF9pbml0aWFsX3Rsc19i aWFzIiwgb2Zmc2V0LCB0ZW1wX29mZnNldCwKKwkgICAgIHRhcmdldF9zaXplcy5zaXplb2Zf bG9uZywgMSwgcmV0LCBzeW1ib2xfYWRkcik7CisKKyAgcmV0ID0gY2FsbGJhY2tzLT5zeW1i b2xfYWRkcl9sb29rdXAgKGNvbnRleHQsIE5VTEwsImdvbXBfdGxzX2RhdGEiLAorCQkJCSAg ICAgICAmc3ltYm9sX2FkZHIsIE5VTEwpOworICByZXQgPSBjYWxsYmFja3MtPmRldmljZV90 b19ob3N0IChjb250ZXh0LCAmdGVtcF9zeW1ib2xfYWRkci5hZGRyZXNzLAorCQkJCSAgIHRh cmdldF9zaXplcy5zaXplb2ZfbG9uZ19sb25nLCAxLAorCQkJCSAgICZzeW1ib2xfYWRkci5h ZGRyZXNzKTsKKyAgQ0hFQ0tfUkVUIChyZXQpOworCisgIHRhZGRyLmFkZHJlc3MgPSBzeW1i b2xfYWRkci5hZGRyZXNzICsgb2Zmc2V0OworICByZXQgPSBjYWxsYmFja3MtPnJlYWRfbWVt b3J5IChjb250ZXh0LCBOVUxMLCAmdGFkZHIsCisJCQkJdGFyZ2V0X3NpemVzLnNpemVvZl9s b25nX2xvbmcsIHRocmVhZF9pZCk7CisgIHJldHVybiByZXQ7Cit9CisKKworLyogT01QRCBk b2Vzbid0IHN1cHBvcnQgR1BVcyBmb3Igbm93LiAgKi8KK29tcGRfcmNfdCBvbXBkX2dldF9k ZXZpY2VfZnJvbV90aHJlYWQgKG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFuZGxl LAorCQkJCSAgICAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfaGFuZGxlX3QgKipkZXZpY2UpCit7 CisgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRfcmNfc3Rh bGVfaGFuZGxlOworICByZXR1cm4gb21wZF9yY191bnN1cHBvcnRlZDsKK30KZGlmZiAtLWdp dCBhL2xpYmdvbXAvdGVhbS5jIGIvbGliZ29tcC90ZWFtLmMKaW5kZXggZDUzMjQ2OTYxYjcu LjhlMThmZDZhZjYzIDEwMDY0NAotLS0gYS9saWJnb21wL3RlYW0uYworKysgYi9saWJnb21w L3RlYW0uYwpAQCAtNzcsNiArNzcsNyBAQCBnb21wX3RocmVhZF9zdGFydCAodm9pZCAqeGRh dGEpCiAgIHZvaWQgKmxvY2FsX2RhdGE7CiAKICAgb21wZF9icF90aHJlYWRfYmVnaW4gKCk7 CisKICNpZiBkZWZpbmVkIEhBVkVfVExTIHx8IGRlZmluZWQgVVNFX0VNVVRMUwogICB0aHIg PSAmZ29tcF90bHNfZGF0YTsKICNlbHNlCkBAIC0zMTMsNiArMzE0LDkgQEAgZ29tcF9mcmVl X3RocmVhZCAodm9pZCAqYXJnIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQogICAgICAgZ29t cF9lbmRfdGFzayAoKTsKICAgICAgIGZyZWUgKHRhc2spOwogICAgIH0KKworICBvbXBkX2Jw X3RocmVhZF9lbmQgKCk7CisKIH0KIAogLyogTGF1bmNoIGEgdGVhbS4gICovCmRpZmYgLS1n aXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbiBiL2xpYmdvbXAvdGVzdHN1aXRl L01ha2VmaWxlLmluCmluZGV4IDA0ODg0NGYwYTQwLi43NmNkMDliMGZhZiAxMDA2NDQKLS0t IGEvbGliZ29tcC90ZXN0c3VpdGUvTWFrZWZpbGUuaW4KKysrIGIvbGliZ29tcC90ZXN0c3Vp dGUvTWFrZWZpbGUuaW4KQEAgLTkwLDIxICs5MCw4IEBAIGhvc3RfdHJpcGxldCA9IEBob3N0 QAogdGFyZ2V0X3RyaXBsZXQgPSBAdGFyZ2V0QAogc3ViZGlyID0gdGVzdHN1aXRlCiBBQ0xP Q0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci1hbV9fYWNsb2NhbF9tNF9kZXBz ID0gJCh0b3Bfc3JjZGlyKS8uLi9jb25maWcvYWN4Lm00IFwKLQkkKHRvcF9zcmNkaXIpLy4u L2NvbmZpZy9heF9jb3VudF9jcHVzLm00IFwKLQkkKHRvcF9zcmNkaXIpLy4uL2NvbmZpZy9k ZXBzdGFuZC5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8uLi9jb25maWcvZW5hYmxlLm00IFwKLQkk KHRvcF9zcmNkaXIpLy4uL2NvbmZpZy9mdXRleC5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8uLi9j b25maWcvbGVhZC1kb3QubTQgXAotCSQodG9wX3NyY2RpcikvLi4vY29uZmlnL2x0aG9zdGZs YWdzLm00IFwKLQkkKHRvcF9zcmNkaXIpLy4uL2NvbmZpZy9tdWx0aS5tNCBcCi0JJCh0b3Bf c3JjZGlyKS8uLi9jb25maWcvb3ZlcnJpZGUubTQgXAotCSQodG9wX3NyY2RpcikvLi4vY29u ZmlnL3Rscy5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8uLi9jb25maWcvdG9vbGV4ZWNsaWJkaXIu bTQgXAotCSQodG9wX3NyY2RpcikvLi4vbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvLi4v bHRzdWdhci5tNCBcCi0JJCh0b3Bfc3JjZGlyKS8uLi9sdHZlcnNpb24ubTQgJCh0b3Bfc3Jj ZGlyKS8uLi9sdH5vYnNvbGV0ZS5tNCBcCi0JJCh0b3Bfc3JjZGlyKS9hY2luY2x1ZGUubTQg JCh0b3Bfc3JjZGlyKS8uLi9saWJ0b29sLm00IFwKLQkkKHRvcF9zcmNkaXIpLy4uL2NvbmZp Zy9jZXQubTQgXAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvYWNpbmNs dWRlLm00IFwKKwkkKHRvcF9zcmNkaXIpLy4uL2xpYnRvb2wubTQgJCh0b3Bfc3JjZGlyKS8u Li9jb25maWcvY2V0Lm00IFwKIAkkKHRvcF9zcmNkaXIpL3BsdWdpbi9jb25maWdmcmFnLmFj ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCiBhbV9fY29uZmlndXJlX2RlcHMgPSAkKGFt X19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAogCSQoQUNM T0NBTF9NNCkKQEAgLTI0OSw3ICsyMzYsNiBAQCBkdmlkaXIgPSBAZHZpZGlyQAogZW5hYmxl X3NoYXJlZCA9IEBlbmFibGVfc2hhcmVkQAogZW5hYmxlX3N0YXRpYyA9IEBlbmFibGVfc3Rh dGljQAogZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi1nZXRfZ2NjX2Jhc2VfdmVyID0g QGdldF9nY2NfYmFzZV92ZXJACiBob3N0ID0gQGhvc3RACiBob3N0X2FsaWFzID0gQGhvc3Rf YWxpYXNACiBob3N0X2NwdSA9IEBob3N0X2NwdUAKQEAgLTI2NSwxMCArMjUxLDggQEAgbGli dG9vbF9WRVJTSU9OID0gQGxpYnRvb2xfVkVSU0lPTkAKIGxpbmtfZ29tcCA9IEBsaW5rX2dv bXBACiBsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAogbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0 YXRlZGlyQAotbHRfaG9zdF9mbGFncyA9IEBsdF9ob3N0X2ZsYWdzQAogbWFuZGlyID0gQG1h bmRpckAKIG1rZGlyX3AgPSBAbWtkaXJfcEAKLW11bHRpX2Jhc2VkaXIgPSBAbXVsdGlfYmFz ZWRpckAKIG9mZmxvYWRfYWRkaXRpb25hbF9saWJfcGF0aHMgPSBAb2ZmbG9hZF9hZGRpdGlv bmFsX2xpYl9wYXRoc0AKIG9mZmxvYWRfYWRkaXRpb25hbF9vcHRpb25zID0gQG9mZmxvYWRf YWRkaXRpb25hbF9vcHRpb25zQAogb2ZmbG9hZF9wbHVnaW5zID0gQG9mZmxvYWRfcGx1Z2lu c0AKQEAgLTI3OCw2ICsyNjIsNyBAQCBwZGZkaXIgPSBAcGRmZGlyQAogcHJlZml4ID0gQHBy ZWZpeEAKIHByb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZUAKIHBzZGlyID0gQHBzZGlyQAorcnVuc3RhdGVkaXIgPSBAcnVuc3RhdGVkaXJACiBzYmlu ZGlyID0gQHNiaW5kaXJACiBzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKIHNy Y2RpciA9IEBzcmNkaXJACg== --------------2o2Dd40K6zAkI05h4iOq5zKg--