From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id sA09MlXba2MEbwAAbAwnHQ (envelope-from ) for ; Wed, 09 Nov 2022 17:54:45 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id 0HM/MVXba2PgOQEAG6o9tA (envelope-from ) for ; Wed, 09 Nov 2022 17:54:45 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 73EC6269FA for ; Wed, 9 Nov 2022 17:54:45 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osoKp-0004L0-AY; Wed, 09 Nov 2022 11:53:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1osoKn-0004Kc-N2 for emacs-orgmode@gnu.org; Wed, 09 Nov 2022 11:53:53 -0500 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1osoKl-0006im-NO for emacs-orgmode@gnu.org; Wed, 09 Nov 2022 11:53:53 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1osoKi-0006Mz-OR for emacs-orgmode@gnu.org; Wed, 09 Nov 2022 17:53:48 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [PATCH v2] org-attach.el: ID to path functions may return nil Date: Wed, 9 Nov 2022 23:53:41 +0700 Message-ID: References: <87k084v1wa.fsf@localhost> <871qtxhsm6.fsf@localhost> <87a68ce32u.fsf@localhost> <871qtodygs.fsf@localhost> <87v8qz9zui.fsf@localhost> <35cbf452-c3ed-d97f-db96-dcae57463eff@gmail.com> <87wnbc7ltm.fsf@localhost> <87bksn1nl1.fsf@localhost> <87sfk6zixs.fsf@localhost> <874jwiakpn.fsf@localhost> <87y1sm11aj.fsf@localhost> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------FZ40EsyItx5wj7jY8rHrpz5j" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Content-Language: en-US In-Reply-To: <87y1sm11aj.fsf@localhost> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 28 X-Spam_score: 2.8 X-Spam_bar: ++ X-Spam_report: (2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-0.001, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1668012885; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=Y7xlzF+VF9JSY3HHxdo6db9vkMppzoSYjAC9Qs7kXak=; b=O7uOCXblWJTl75GzWNF2zD2GzupmBPXWdLWKCEMVl8LXAeuB/tVJyx54s/AcuXoQp+c1iW WmWEn7HthuqYGaqU0XZptqus7PDD4wsE4kHtlQhUW9Othl888YdRJhuB4h6Wl8WLFgLGHw zaB6ZyC7A8VPJUeSb/CRdLOBsPdwtG79JpgLhAIqjOveiQra4oWA1DYOZwtpEusd5bZLFz lGtoaBN4iuhiEYkR9oG8xfRyzDbWDymMRKysnU11awkj/KeciKgPlDeG/3xGT9lpxAcUUM 3JvTzT93OGofpXchjcLNWalN73AWHQQUS7ll4DkjsVSwEMs1qK1fngiJFiSlSQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1668012885; a=rsa-sha256; cv=none; b=eTqAcUlucFBWU1qCY0K5VwIKrsWKl7pmaBIHKfOPw//fIrpYvj1KswvbBMDVVvLMnJe6qN LX7H45xdY5s4oPR4ObJs7poo8GyI1DzVY472iObPk7wGrDhGyDKpRiqEJF2+u3uuvHvbe7 ryXtXkFXAQMviGXZHtv604I2A5RLGtnisWTl/Z+rCU69mwiB6A/UdGksIIwx3D1UCTe7BF uYyob7uF8Tsg2jL4UUZAKtiEcGCmYStQDS7OeaTSydVVz2q28DpoYY+UtGGGwHLpJsXsVV mzWV2jObEEQHWYALf8uiXxmUln98kb/a6o4fNovd01TnyBMvNSIaTkF4+JbDpw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 3.78 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 73EC6269FA X-Spam-Score: 3.78 X-Migadu-Scanner: scn1.migadu.com X-TUID: lY5lTyZoJirk This is a multi-part message in MIME format. --------------FZ40EsyItx5wj7jY8rHrpz5j Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 08/11/2022 12:08, Ihor Radchenko wrote: > > I feel like this makes the docstring confusing. > > Note that `org-attach-id-to-path-function-list': I have tried to update the docstrings. >> if: No attachment directory is associated with the current node, adjust >> ‘org-attach-id-to-path-function-list’ >> >> I do not think this message is unhelpful. > > With your patch, such message will be displayed even when > `org-attach-preferred-new-method' is set to something other than 'id. > And the message will be wrong then. I have moved `error' call despite I have not figured out how to trigger the error for other options. >> +(defun org-attach-id-fallback-folder-format (id) >> + "May be added last to `org-attach-id-path-function-list'. > > This is not a proper first line in a function docstring. First line must > describe what the function does. I am still unsure that in this case effect is more important than purpose. The function is too specific. P.S. At first I believed that you have some objections concerning changed role of the first function in the list, not just how it is documented. --------------FZ40EsyItx5wj7jY8rHrpz5j Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-org-attach.el-ID-to-path-functions-may-return-nil.patch" Content-Disposition: attachment; filename*0="v2-0001-org-attach.el-ID-to-path-functions-may-return-nil.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkZmMzNWY0NmY1OWQ1OTM4ZjFhNTIwYjg2MGMzZWRhMzZmNDlhOWQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXggTmlrdWxpbiA8bWFuaWt1bGluQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCA3IE5vdiAyMDIyIDIzOjQ4OjAyICswNzAwClN1YmplY3Q6IFtQQVRD SCB2Ml0gb3JnLWF0dGFjaC5lbDogSUQgdG8gcGF0aCBmdW5jdGlvbnMgbWF5IHJldHVybiBu aWwKCiogbGlzcC9vcmctYXR0YWNoLmVsIChvcmctYXR0YWNoLWRpci1mcm9tLWlkKTogSWdu b3JlIG5pbCB2YWx1ZXMKcmV0dXJuZWQgYnkgZW50cmllcyBmcm9tIGBvcmctYXR0YWNoLWlk LXRvLXBhdGgtZnVuY3Rpb24tbGlzdCcuCihvcmctYXR0YWNoLWRpci1nZXQtY3JlYXRlKTog VXBkYXRlIGVycm9yIG1lc3NhZ2UgdG8gc3VnZ2VzdApjdXN0b21pemF0aW9uIG9mIGBvcmct YXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb24tbGlzdCcuCihvcmctYXR0YWNoLWlkLXRvLXBh dGgtZnVuY3Rpb24tbGlzdCk6IEFkZCB0byB0aGUgZG9jc3RyaW5nIGV4YW1wbGVzCmhvdyB0 byBoYW5kbGUgdW51c3VhbCBJRHMuCihvcmctYXR0YWNoLWlkLXV1aWQtZm9sZGVyLWZvcm1h dCwgb3JnLWF0dGFjaC1pZC10cy1mb2xkZXItZm9ybWF0KToKUmV0dXJuIG5pbCBpZiBJRCBp cyB0b28gc2hvcnQuCihvcmctYXR0YWNoLWlkLWZhbGxiYWNrLWZvbGRlci1mb3JtYXQpOiBO ZXcgZnVuY3Rpb24gdGhhdCBtYXkgYmUgYWRkZWQKYXMgdGhlIGxhc3QgZWxlbWVudCBvZiBg b3JnLWF0dGFjaC1pZC1wYXRoLWZ1bmN0aW9uLWxpc3QnIHRvIGhhbmRsZQp1bmV4cGVjdGVk bHkgc2hvcnQgSURzLgoKRWFybGllciBhbiBvYnNjdXJlIGVycm9yIGxpa2UgJ29yZy1hdHRh Y2gtaWQtdHMtZm9sZGVyLWZvcm1hdDogQXJncyBvdXQKb2YgcmFuZ2U6ICJmdHQiLCAwLCA2 JyB3YXMgc2lnbmFsbGVkIGluIHRoZSBjYXNlIG9mIHVuZXhwZWN0ZWRseSBzaG9ydApJRC4K ClJlcG9ydGVkIGJ5IEphbmVrIEYgPHhlcnVzeEBwbS5tZT4KaHR0cHM6Ly9saXN0Lm9yZ21v ZGUub3JnL0tDOFBjeXBKYXBCcEpRdEp4TTBrWDVON1owVEhMMkxxNkVRakJNenB3MS12Z1Fm NzJlZ1oySk9JbFRiUFlpcUFWRDRNZFNCaHJoQlpyMllrZjVETjFtb2NtMUFOdnZ1S0taU2hs a2d6S1lNPUBwbS5tZQotLS0KIGxpc3Avb3JnLWF0dGFjaC5lbCB8IDk4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 NSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL29y Zy1hdHRhY2guZWwgYi9saXNwL29yZy1hdHRhY2guZWwKaW5kZXggZWYxODM0NzRlLi5iZDMw MzQ5OTIgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWF0dGFjaC5lbAorKysgYi9saXNwL29yZy1h dHRhY2guZWwKQEAgLTE2NiwyNiArMTY2LDU2IEBAIFdoZW4gc2V0IHRvIGBxdWVyeScsIGFz ayB0aGUgdXNlciBpbnN0ZWFkLiIKICAgIlRyYW5zbGF0ZSBhbiBVVUlEIElEIGludG8gYSBm b2xkZXItcGF0aC4KIERlZmF1bHQgZm9ybWF0IGZvciBob3cgT3JnIHRyYW5zbGF0ZXMgSUQg cHJvcGVydGllcyB0byBhIHBhdGggZm9yCiBhdHRhY2htZW50cy4gIFVzZWZ1bCBpZiBJRCBp cyBnZW5lcmF0ZWQgd2l0aCBVVUlELiIKLSAgKGZvcm1hdCAiJXMvJXMiCi0JICAoc3Vic3Ry aW5nIGlkIDAgMikKLQkgIChzdWJzdHJpbmcgaWQgMikpKQorICAoYW5kICg8IDIgKGxlbmd0 aCBpZCkpCisgICAgICAgKGZvcm1hdCAiJXMvJXMiCisgICAgICAgICAgICAgICAoc3Vic3Ry aW5nIGlkIDAgMikKKyAgICAgICAgICAgICAgIChzdWJzdHJpbmcgaWQgMikpKSkKIAogKGRl ZnVuIG9yZy1hdHRhY2gtaWQtdHMtZm9sZGVyLWZvcm1hdCAoaWQpCiAgICJUcmFuc2xhdGUg YW4gSUQgYmFzZWQgb24gYSB0aW1lc3RhbXAgdG8gYSBmb2xkZXItcGF0aC4KIFVzZWZ1bCB3 YXkgb2YgdHJhbnNsYXRpb24gaWYgSUQgaXMgZ2VuZXJhdGVkIGJhc2VkIG9uIElTTzg2MDEK IHRpbWVzdGFtcC4gIFNwbGl0cyB0aGUgYXR0YWNobWVudCBmb2xkZXIgaGllcmFyY2h5IGlu dG8KIHllYXItbW9udGgsIHRoZSByZXN0LiIKLSAgKGZvcm1hdCAiJXMvJXMiCi0JICAoc3Vi c3RyaW5nIGlkIDAgNikKLQkgIChzdWJzdHJpbmcgaWQgNikpKQorICAoYW5kICg8IDYgKGxl bmd0aCBpZCkpCisgICAgICAgKGZvcm1hdCAiJXMvJXMiCisgICAgICAgICAgICAgICAoc3Vi c3RyaW5nIGlkIDAgNikKKyAgICAgICAgICAgICAgIChzdWJzdHJpbmcgaWQgNikpKSkKKwor KGRlZnVuIG9yZy1hdHRhY2gtaWQtZmFsbGJhY2stZm9sZGVyLWZvcm1hdCAoaWQpCisgICJV c2UgXCJfXy9JRFwiIGZvbGRlciBwYXRoIGFzIGEgZHVtYiBmYWxsYmFjay4KK01heSBiZSBh ZGRlZCBhcyB0aGUgbGFzdCBlbGVtZW50IG9mIGBvcmctYXR0YWNoLWlkLXBhdGgtZnVuY3Rp b24tbGlzdCcKK3RvIGF2b2lkIGVycm9ycyBmb3IgY3VzdG9taXplZCBJRCB2YWx1ZXMgdGhh dCBvdGhlciBmdW5jdGlvbnMKK2FyZSB1bmFibGUgdG8gaGFuZGxlLiBBbiBleGFtcGxlIGlz IHRvbyBzaG9ydCBJRCBmb3IKK2BvcmctYXR0YWNoLWlkLXRzLWZvbGRlci1mb3JtYXQnLiAg SG93ZXZlciBpdCBpcyBiZXR0ZXIgdG8gZGVmaW5lCithIG1vcmUgc3BlY2lmaWMgZnVuY3Rp b24gc3ByZWFkaW5nIGVudHJpZXMgb3ZlciBzdWJmb2xkZXJzLiIKKyAgKGZvcm1hdCAiX18v JXMiIGlkKSkKIAogKGRlZmN1c3RvbSBvcmctYXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb24t bGlzdCAnKG9yZy1hdHRhY2gtaWQtdXVpZC1mb2xkZXItZm9ybWF0CiAJCQkJCQkgb3JnLWF0 dGFjaC1pZC10cy1mb2xkZXItZm9ybWF0KQotICAiTGlzdCBvZiBmdW5jdGlvbnMgcGFyc2lu ZyBhbiBJRCBzdHJpbmcgaW50byBhIGZvbGRlci1wYXRoLgotVGhlIGZpcnN0IGZ1bmN0aW9u IGluIHRoaXMgbGlzdCBkZWZpbmVzIHRoZSBwcmVmZXJyZWQgZnVuY3Rpb24KLXdoaWNoIHdp bGwgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG5ldyBhdHRhY2htZW50IGZvbGRlcnMuICBBbGwK LWZ1bmN0aW9ucyBvZiB0aGlzIGxpc3Qgd2lsbCBiZSB0cmllZCB3aGVuIGxvb2tpbmcgZm9y IGV4aXN0aW5nCi1hdHRhY2htZW50IGZvbGRlcnMgYmFzZWQgb24gSUQuIgorICAiTGlzdCBv ZiBmdW5jdGlvbnMgdHJpZWQgdG8gZ2V0IGEgZm9sZGVyIHBhdGggZm9yIGFuIElEIHN0cmlu Zy4KK0Z1bmN0aW9ucyBhcmUgY2FsbGVkIGluIG9yZGVyIHRpbGwgc29tZSBvZiB0aGVtIHJl dHVybnMgYW4gZXhpc3RpbmcKK2ZvbGRlci4gIElmIG5vIGZvbGRlciBoYXMgYmVlbiBjcmVh dGVkIHlldCBmb3IgdGhlIGdpdmVuIElECit0aGVuIGZpcnN0IHZhbHVlIGRlZmluZXMgZm9s ZGVyIG5hbWUgdGhhdCB3aWxsIGJlIGNyZWF0ZWQKK3RvIHN0b3JlIGFuIGF0dGFjaG1lbnQu ICBOaWwgdmFsdWVzIGFyZSBza2lwcGVkLgorCitQcmVmZXJyZWQgc3RvcmFnZSBwb2xpY3kg ZGVwZW5kcyBvbiBgb3JnLWlkLW1ldGhvZCcgYW5kIHNob3VsZCBiZSBjaG9zZW4KK3RvIGF2 b2lkIGV4Y2Vzc2l2ZSBudW1iZXIgb2YgZW50cmllcyBpbiBhIHNpbmdsZSBkaXJlY3Rvcnku ICBMaXN0CitvZiBmdW5jdGlvbnMgYWxsb3dzIHRvIGhhbmRsZSB0aGUgY2FzZSBvZiBtaXhl ZCBJRCBzdHlsZXMgYWZ0ZXIKK2NoYW5nZSBvZiBJRCBnZW5lcmF0b3IuCisKK0lmIGZvcm1h dCBvZiBzb21lIElEIHN0cmluZ3MgZGlmZmVycyBmcm9tIGBvcmctaWQtbWV0aG9kJyB5b3Ug bWF5CithZGQgYG9yZy1hdHRhY2gtaWQtZmFsbGJhY2stZm9sZGVyLWZvcm1hdCcgdG8gdGhl IGVuZCBvZiB0aGUgbGlzdC4KK0EgYmV0dGVyIG9wdGlvbiBpcyB0byBrZWVwIGF0dGFjaG1l bnRzIGluc2lkZSBhIGRlZGljYXRlZCBmb2xkZXIuCitBIGZ1bmN0aW9uIGxpa2UgdGhlIGZv bGxvd2luZyBvbmUgbWF5IGJlIGFkZGVkIGFzIGZpcnN0IGVsZW1lbnQKK29mIHRoZSBsaXN0 LgorCisgICAgKGRlZnVuIG15L2F0dGFjaC1pZC1jdXN0b20tZm9sZGVyLWZvcm1hdCAoaWQp CisgICAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSkKKwkodW5sZXNzCisJICAgIChv ciAob3JnLXV1aWRnZW4tcCBpZCkKKwkJKHN0cmluZy1tYXRjaC1wIFwiWzAtOWEtel1cXFxc PVxcezEyXFxcXH1cIiBpZCkKKyAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgXCJb MC05XVxcXFw9XFx7OFxcXFx9VFswLTldXFxcXD1cXHs2XFxcXH1cXC5bMC05XVxcXFw9XFx7 NlxcXFx9XCIgaWQpKQorICAgICAgICAgIChmb3JtYXQgXCJpbXBvcnRhbnQvJXMvJXNcIiAo c3Vic3RyaW5nIGlkIDAgMSkgaWQpKSkpIgogICA6Z3JvdXAgJ29yZy1hdHRhY2gKICAgOnBh Y2thZ2UtdmVyc2lvbiAnKE9yZyAuICI5LjMiKQogICA6dHlwZSAnKHJlcGVhdCAoZnVuY3Rp b24gOnRhZyAiRnVuY3Rpb24gd2l0aCBJRCBhcyBpbnB1dCIpKSkKQEAgLTM2MCw3ICszOTAs NyBAQCBJZiBubyBhdHRhY2htZW50IGRpcmVjdG9yeSBjYW4gYmUgZGVyaXZlZCwgcmV0dXJu IG5pbC4iCiAgICAgICAob3JnLWF0dGFjaC1jaGVjay1hYnNvbHV0ZS1wYXRoIGF0dGFjaC1k aXIpKQogICAgICAoKHNldHEgaWQgKG9yZy1lbnRyeS1nZXQgbmlsICJJRCIgb3JnLWF0dGFj aC11c2UtaW5oZXJpdGFuY2UpKQogICAgICAgKG9yZy1hdHRhY2gtY2hlY2stYWJzb2x1dGUt cGF0aCBuaWwpCi0gICAgICAoc2V0cSBhdHRhY2gtZGlyIChvcmctYXR0YWNoLWRpci1mcm9t LWlkIGlkICd0cnktYWxsKSkpKQorICAgICAgKHNldHEgYXR0YWNoLWRpciAob3JnLWF0dGFj aC1kaXItZnJvbS1pZCBpZCAnZXhpc3RpbmcpKSkpCiAgICAgKGlmIG5vLWZzLWNoZWNrCiAJ YXR0YWNoLWRpcgogICAgICAgKHdoZW4gKGFuZCBhdHRhY2gtZGlyIChmaWxlLWRpcmVjdG9y eS1wIGF0dGFjaC1kaXIpKQpAQCAtMzgxLDcgKzQxMSwxMSBAQCBJZiB0aGUgYXR0YWNobWVu dCBieSBzb21lIHJlYXNvbiBjYW5ub3QgYmUgY3JlYXRlZCBhbiBlcnJvciB3aWxsIGJlIHJh aXNlZC4iCiAJICAoc2V0cSBhbnN3ZXIgKHJlYWQtY2hhci1leGNsdXNpdmUpKSkKIAkoY29u ZAogCSAoKG9yIChlcSBvcmctYXR0YWNoLXByZWZlcnJlZC1uZXctbWV0aG9kICdpZCkgKGVx IGFuc3dlciA/MSkpCi0JICAoc2V0cSBhdHRhY2gtZGlyIChvcmctYXR0YWNoLWRpci1mcm9t LWlkIChvcmctaWQtZ2V0IG5pbCB0KSkpKQorCSAgKGxldCAoKGlkIChvcmctaWQtZ2V0IG5p bCB0KSkpCisJICAgIChvciAoc2V0cSBhdHRhY2gtZGlyIChvcmctYXR0YWNoLWRpci1mcm9t LWlkIGlkKSkKKwkJKGVycm9yICJGYWlsZWQgdG8gZ2V0IGZvbGRlciBmb3IgaWQgJXMsIFwK K2FkanVzdCBgb3JnLWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9uLWxpc3QnIgorCQkgICAg ICAgIGlkKSkpKQogCSAoKG9yIChlcSBvcmctYXR0YWNoLXByZWZlcnJlZC1uZXctbWV0aG9k ICdkaXIpIChlcSBhbnN3ZXIgPzIpKQogCSAgKHNldHEgYXR0YWNoLWRpciAob3JnLWF0dGFj aC1zZXQtZGlyZWN0b3J5KSkpCiAJICgoZXEgb3JnLWF0dGFjaC1wcmVmZXJyZWQtbmV3LW1l dGhvZCAnbmlsKQpAQCAtMzkyLDI3ICs0MjYsMjUgQEAgSWYgdGhlIGF0dGFjaG1lbnQgYnkg c29tZSByZWFzb24gY2Fubm90IGJlIGNyZWF0ZWQgYW4gZXJyb3Igd2lsbCBiZSByYWlzZWQu IgogICAgICAgKG1ha2UtZGlyZWN0b3J5IGF0dGFjaC1kaXIgdCkpCiAgICAgYXR0YWNoLWRp cikpCiAKLShkZWZ1biBvcmctYXR0YWNoLWRpci1mcm9tLWlkIChpZCAgJm9wdGlvbmFsIHRy eS1hbGwpCisoZGVmdW4gb3JnLWF0dGFjaC1kaXItZnJvbS1pZCAoaWQgICZvcHRpb25hbCBl eGlzdGluZykKICAgIlJldHVybiBhIGZvbGRlciBwYXRoIGJhc2VkIG9uIGBvcmctYXR0YWNo LWlkLWRpcicgYW5kIElELgotSWYgVFJZLUFMTCBpcyBub24tbmlsLCB0cnkgYWxsIGlkLXRv LXBhdGggZnVuY3Rpb25zIGluCi1gb3JnLWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9uLWxp c3QnIGFuZCByZXR1cm4gdGhlIGZpcnN0IHBhdGgKLXRoYXQgZXhpc3QgaW4gdGhlIGZpbGVz eXN0ZW0sIG9yIHRoZSBmaXJzdCBvbmUgaWYgbm9uZSBleGlzdC4KLU90aGVyd2lzZSBvbmx5 IHVzZSB0aGUgZmlyc3QgZnVuY3Rpb24gaW4gdGhhdCBsaXN0LiIKLSAgKGxldCAoKGF0dGFj aC1kaXItcHJlZmVycmVkIChleHBhbmQtZmlsZS1uYW1lCi0JCQkgICAgICAgKGZ1bmNhbGwg KGNhciBvcmctYXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb24tbGlzdCkgaWQpCi0JCQkgICAg ICAgKGV4cGFuZC1maWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1kaXIpKSkpCi0gICAgKGlmIHRy eS1hbGwKLQkobGV0ICgoYXR0YWNoLWRpciBhdHRhY2gtZGlyLXByZWZlcnJlZCkKLQkgICAg ICAoZnVuLWxpc3QgKGNkciBvcmctYXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb24tbGlzdCkp KQotCSAgKHdoaWxlIChhbmQgZnVuLWxpc3QgKG5vdCAoZmlsZS1kaXJlY3RvcnktcCBhdHRh Y2gtZGlyKSkpCi0JICAgIChzZXRxIGF0dGFjaC1kaXIgKGV4cGFuZC1maWxlLW5hbWUKLQkJ CSAgICAgIChmdW5jYWxsIChjYXIgZnVuLWxpc3QpIGlkKQotCQkJICAgICAgKGV4cGFuZC1m aWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1kaXIpKSkKLQkgICAgKHNldHEgZnVuLWxpc3QgKGNk ciBmdW4tbGlzdCkpKQotCSAgKGlmIChmaWxlLWRpcmVjdG9yeS1wIGF0dGFjaC1kaXIpCi0J ICAgICAgYXR0YWNoLWRpcgotCSAgICBhdHRhY2gtZGlyLXByZWZlcnJlZCkpCi0gICAgICBh dHRhY2gtZGlyLXByZWZlcnJlZCkpKQorVHJ5IGlkLXRvLXBhdGggZnVuY3Rpb25zIGluIGBv cmctYXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb24tbGlzdCcKK2lnbm9yaW5nIG5pbHMuIElm IEVYSVNUSU5HIGlzIG5vbi1uaWxsIHRoZW4gcmV0dXJuIHRoZSBmaXJzdCBwYXRoCitmb3Vu ZCBpbiB0aGUgZmlsZXN5c3RlbS4gT3RoZXJ3aXNlIHJldHVybiB0aGUgZmlyc3Qgbm9uIG5p bCB2YWx1ZS4iCisgIChsZXQgKChmdW4tbGlzdCBvcmctYXR0YWNoLWlkLXRvLXBhdGgtZnVu Y3Rpb24tbGlzdCkKKyAgICAgICAgKGJhc2UtZGlyIChleHBhbmQtZmlsZS1uYW1lIG9yZy1h dHRhY2gtaWQtZGlyKSkKKyAgICAgICAgcHJlZmVycmVkIGZpcnN0KQorICAgICh3aGlsZSAo YW5kIGZ1bi1saXN0CisgICAgICAgICAgICAgICAgKG5vdCBwcmVmZXJyZWQpKQorICAgICAg KGxldCogKChuYW1lIChmdW5jYWxsIChjYXIgZnVuLWxpc3QpIGlkKSkKKyAgICAgICAgICAg ICAoY2FuZGlkYXRlIChhbmQgbmFtZSAoZXhwYW5kLWZpbGUtbmFtZSBuYW1lIGJhc2UtZGly KSkpKQorICAgICAgICAoc2V0cSBmdW4tbGlzdCAoY2RyIGZ1bi1saXN0KSkKKyAgICAgICAg KHdoZW4gY2FuZGlkYXRlCisgICAgICAgICAgKGlmIChvciAobm90IGV4aXN0aW5nKSAoZmls ZS1kaXJlY3RvcnktcCBjYW5kaWRhdGUpKQorICAgICAgICAgICAgICAoc2V0cSBwcmVmZXJy ZWQgY2FuZGlkYXRlKQorICAgICAgICAgICAgKHVubGVzcyBmaXJzdAorICAgICAgICAgICAg ICAoc2V0cSBmaXJzdCBjYW5kaWRhdGUpKSkpKSkKKyAgICAob3IgcHJlZmVycmVkIGZpcnN0 KSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLWNoZWNrLWFic29sdXRlLXBhdGggKGRpcikKICAg IkNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHJvb3QgdGhlIGF0dGFj aG1lbnQgZGlyZWN0b3J5LgotLSAKMi4yNS4xCgo= --------------FZ40EsyItx5wj7jY8rHrpz5j--