From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 0BeKLiNIHWAORwAA0tVLHw (envelope-from ) for ; Fri, 05 Feb 2021 13:29:07 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id 2ORPKiNIHWAmOQAAB5/wlQ (envelope-from ) for ; Fri, 05 Feb 2021 13:29:07 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [144.217.243.247]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (2048 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 395D8940309 for ; Fri, 5 Feb 2021 13:29:07 +0000 (UTC) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 7CE231FF2D; Fri, 5 Feb 2021 08:27:49 -0500 (EST) Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197]) by mail.notmuchmail.org (Postfix) with ESMTP id 4F2D21FBC8 for ; Fri, 5 Feb 2021 08:27:20 -0500 (EST) Received: by fethera.tethera.net (Postfix, from userid 1001) id 479ED6067F; Fri, 5 Feb 2021 08:27:20 -0500 (EST) Received: (nullmailer pid 3258413 invoked by uid 1000); Fri, 05 Feb 2021 13:27:02 -0000 From: David Bremner To: notmuch@notmuchmail.org Cc: David Bremner Subject: [PATCH 19/39] CLI/{search,address}: convert to new configuration framework Date: Fri, 5 Feb 2021 09:26:34 -0400 Message-Id: <20210205132654.3258292-20-david@tethera.net> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210205132654.3258292-1-david@tethera.net> References: <20210205132654.3258292-1-david@tethera.net> MIME-Version: 1.0 Message-ID-Hash: 4S6RDOE56SE5FCG2B4RRFSG6BUG2CSOY X-Message-ID-Hash: 4S6RDOE56SE5FCG2B4RRFSG6BUG2CSOY X-MailFrom: bremner@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -0.84 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 144.217.243.247 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 395D8940309 X-Spam-Score: -0.84 X-Migadu-Scanner: scn1.migadu.com X-TUID: wC7fjjSvaPLk U2luY2Ugd2UgYXJlIGFscmVhZHkgcGFzc2luZyBhIHNlYXJjaCBjb250ZXh0IGFyb3VuZCBhcyBh IGtpbmQgb2YNCnBhcmFtZXRlciBibG9jaywgYWRkIGEgbmV3IHRhbGxvYyBjb250ZXh0IHRvIHRo YXQgdG8gcmVwbGFjZSByZWx5aW5nDQpvbiAnY29uZmlnJy4NCg0KQ29udmVydCBub3RtdWNoLXNl YXJjaCBhbmQgbm90bXVjaC1hZGRyZXNzIGF0IHRoZSBzYW1lIHRpbWUsIGJlY2F1c2UNCnRoZXkg c2hhcmUgc29tZSBjb2RlLg0KDQpBZGQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBicmVh ayBwYXNzaW5nIGNvbmZpZ3VyYXRpb24gYXMgYQ0KY29tbWFuZCBsaW5lIGFyZ3VtZW50Lg0KLS0t DQogbm90bXVjaC1zZWFyY2guYyAgICAgICAgIHwgIDU0ICsrKysrKysrKy0tLS0tLS0tLS0tLQ0K IG5vdG11Y2guYyAgICAgICAgICAgICAgICB8ICAgNCArLQ0KIHRlc3QvVDAzNS1yZWFkLWNvbmZp Zy5zaCB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiB0ZXN0 L1Q3NTAtdXNlci1oZWFkZXIuc2ggfCAgMTggKysrKysrKw0KIDQgZmlsZXMgY2hhbmdlZCwgMTQy IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvbm90bXVjaC1z ZWFyY2guYyBiL25vdG11Y2gtc2VhcmNoLmMNCmluZGV4IDM0ZTI3MDU4Li5hYmEyMjc5OSAxMDA2 NDQNCi0tLSBhL25vdG11Y2gtc2VhcmNoLmMNCisrKyBiL25vdG11Y2gtc2VhcmNoLmMNCkBAIC01 Miw2ICs1Miw3IEBAIHR5cGVkZWYgZW51bSB7DQogDQogdHlwZWRlZiBzdHJ1Y3Qgew0KICAgICBu b3RtdWNoX2RhdGFiYXNlX3QgKm5vdG11Y2g7DQorICAgIHZvaWQgKnRhbGxvY19jdHg7DQogICAg IGludCBmb3JtYXRfc2VsOw0KICAgICBzcHJpbnRlcl90ICpmb3JtYXQ7DQogICAgIGludCBleGNs dWRlOw0KQEAgLTY3NywyOCArNjc4LDI5IEBAIGRvX3NlYXJjaF90YWdzIChjb25zdCBzZWFyY2hf Y29udGV4dF90ICpjdHgpDQogfQ0KIA0KIHN0YXRpYyBpbnQNCi1fbm90bXVjaF9zZWFyY2hfcHJl cGFyZSAoc2VhcmNoX2NvbnRleHRfdCAqY3R4LCBub3RtdWNoX2NvbmZpZ190ICpjb25maWcsIGlu dCBhcmdjLCBjaGFyICphcmd2W10pDQorX25vdG11Y2hfc2VhcmNoX3ByZXBhcmUgKHNlYXJjaF9j b250ZXh0X3QgKmN0eCwgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCiB7DQogICAgIGNoYXIgKnF1 ZXJ5X3N0cjsNCi0gICAgdW5zaWduZWQgaW50IGk7DQotICAgIGNoYXIgKnN0YXR1c19zdHJpbmcg PSBOVUxMOw0KKw0KKyAgICBpZiAoISBjdHgtPnRhbGxvY19jdHgpDQorCWN0eC0+dGFsbG9jX2N0 eCA9IHRhbGxvY19uZXcgKE5VTEwpOw0KIA0KICAgICBzd2l0Y2ggKGN0eC0+Zm9ybWF0X3NlbCkg ew0KICAgICBjYXNlIE5PVE1VQ0hfRk9STUFUX1RFWFQ6DQotCWN0eC0+Zm9ybWF0ID0gc3ByaW50 ZXJfdGV4dF9jcmVhdGUgKGNvbmZpZywgc3Rkb3V0KTsNCisJY3R4LT5mb3JtYXQgPSBzcHJpbnRl cl90ZXh0X2NyZWF0ZSAoY3R4LT50YWxsb2NfY3R4LCBzdGRvdXQpOw0KIAlicmVhazsNCiAgICAg Y2FzZSBOT1RNVUNIX0ZPUk1BVF9URVhUMDoNCiAJaWYgKGN0eC0+b3V0cHV0ID09IE9VVFBVVF9T VU1NQVJZKSB7DQogCSAgICBmcHJpbnRmIChzdGRlcnIsICJFcnJvcjogLS1mb3JtYXQ9dGV4dDAg aXMgbm90IGNvbXBhdGlibGUgd2l0aCAtLW91dHB1dD1zdW1tYXJ5LlxuIik7DQogCSAgICByZXR1 cm4gRVhJVF9GQUlMVVJFOw0KIAl9DQotCWN0eC0+Zm9ybWF0ID0gc3ByaW50ZXJfdGV4dDBfY3Jl YXRlIChjb25maWcsIHN0ZG91dCk7DQorCWN0eC0+Zm9ybWF0ID0gc3ByaW50ZXJfdGV4dDBfY3Jl YXRlIChjdHgtPnRhbGxvY19jdHgsIHN0ZG91dCk7DQogCWJyZWFrOw0KICAgICBjYXNlIE5PVE1V Q0hfRk9STUFUX0pTT046DQotCWN0eC0+Zm9ybWF0ID0gc3ByaW50ZXJfanNvbl9jcmVhdGUgKGNv bmZpZywgc3Rkb3V0KTsNCisJY3R4LT5mb3JtYXQgPSBzcHJpbnRlcl9qc29uX2NyZWF0ZSAoY3R4 LT50YWxsb2NfY3R4LCBzdGRvdXQpOw0KIAlicmVhazsNCiAgICAgY2FzZSBOT1RNVUNIX0ZPUk1B VF9TRVhQOg0KLQljdHgtPmZvcm1hdCA9IHNwcmludGVyX3NleHBfY3JlYXRlIChjb25maWcsIHN0 ZG91dCk7DQorCWN0eC0+Zm9ybWF0ID0gc3ByaW50ZXJfc2V4cF9jcmVhdGUgKGN0eC0+dGFsbG9j X2N0eCwgc3Rkb3V0KTsNCiAJYnJlYWs7DQogICAgIGRlZmF1bHQ6DQogCS8qIHRoaXMgc2hvdWxk IG5ldmVyIGhhcHBlbiAqLw0KQEAgLTcwNywxOCArNzA5LDYgQEAgX25vdG11Y2hfc2VhcmNoX3By ZXBhcmUgKHNlYXJjaF9jb250ZXh0X3QgKmN0eCwgbm90bXVjaF9jb25maWdfdCAqY29uZmlnLCBp bnQgYXINCiANCiAgICAgbm90bXVjaF9leGl0X2lmX3Vuc3VwcG9ydGVkX2Zvcm1hdCAoKTsNCiAN Ci0gICAgaWYgKG5vdG11Y2hfZGF0YWJhc2Vfb3Blbl92ZXJib3NlICgNCi0JICAgIG5vdG11Y2hf Y29uZmlnX2dldF9kYXRhYmFzZV9wYXRoIChjb25maWcpLA0KLQkgICAgTk9UTVVDSF9EQVRBQkFT RV9NT0RFX1JFQURfT05MWSwgJmN0eC0+bm90bXVjaCwgJnN0YXR1c19zdHJpbmcpKSB7DQotDQot CWlmIChzdGF0dXNfc3RyaW5nKSB7DQotCSAgICBmcHV0cyAoc3RhdHVzX3N0cmluZywgc3RkZXJy KTsNCi0JICAgIGZyZWUgKHN0YXR1c19zdHJpbmcpOw0KLQl9DQotDQotCXJldHVybiBFWElUX0ZB SUxVUkU7DQotICAgIH0NCi0NCiAgICAgbm90bXVjaF9leGl0X2lmX3VubWF0Y2hlZF9kYl91dWlk IChjdHgtPm5vdG11Y2gpOw0KIA0KICAgICBxdWVyeV9zdHIgPSBxdWVyeV9zdHJpbmdfZnJvbV9h cmdzIChjdHgtPm5vdG11Y2gsIGFyZ2MsIGFyZ3YpOw0KQEAgLTc0OCwyMSArNzM4LDIwIEBAIF9u b3RtdWNoX3NlYXJjaF9wcmVwYXJlIChzZWFyY2hfY29udGV4dF90ICpjdHgsIG5vdG11Y2hfY29u ZmlnX3QgKmNvbmZpZywgaW50IGFyDQogICAgIH0NCiANCiAgICAgaWYgKGN0eC0+ZXhjbHVkZSAh PSBOT1RNVUNIX0VYQ0xVREVfRkFMU0UpIHsNCi0JY29uc3QgY2hhciAqKnNlYXJjaF9leGNsdWRl X3RhZ3M7DQotCXNpemVfdCBzZWFyY2hfZXhjbHVkZV90YWdzX2xlbmd0aDsNCisJbm90bXVjaF9j b25maWdfdmFsdWVzX3QgKmV4Y2x1ZGVfdGFnczsNCiAJbm90bXVjaF9zdGF0dXNfdCBzdGF0dXM7 DQogDQotCXNlYXJjaF9leGNsdWRlX3RhZ3MgPSBub3RtdWNoX2NvbmZpZ19nZXRfc2VhcmNoX2V4 Y2x1ZGVfdGFncyAoDQotCSAgICBjb25maWcsICZzZWFyY2hfZXhjbHVkZV90YWdzX2xlbmd0aCk7 DQorCWZvciAoZXhjbHVkZV90YWdzID0gbm90bXVjaF9jb25maWdfZ2V0X3ZhbHVlcyAoY3R4LT5u b3RtdWNoLCBOT1RNVUNIX0NPTkZJR19FWENMVURFX1RBR1MpOw0KKwkgICAgIG5vdG11Y2hfY29u ZmlnX3ZhbHVlc192YWxpZCAoZXhjbHVkZV90YWdzKTsNCisJICAgICBub3RtdWNoX2NvbmZpZ192 YWx1ZXNfbW92ZV90b19uZXh0IChleGNsdWRlX3RhZ3MpKSB7DQogDQotCWZvciAoaSA9IDA7IGkg PCBzZWFyY2hfZXhjbHVkZV90YWdzX2xlbmd0aDsgaSsrKSB7DQotCSAgICBzdGF0dXMgPSBub3Rt dWNoX3F1ZXJ5X2FkZF90YWdfZXhjbHVkZSAoY3R4LT5xdWVyeSwgc2VhcmNoX2V4Y2x1ZGVfdGFn c1tpXSk7DQorCSAgICBzdGF0dXMgPSBub3RtdWNoX3F1ZXJ5X2FkZF90YWdfZXhjbHVkZSAoY3R4 LT5xdWVyeSwNCisJCQkJCQkgICAgbm90bXVjaF9jb25maWdfdmFsdWVzX2dldCAoZXhjbHVkZV90 YWdzKSk7DQogCSAgICBpZiAoc3RhdHVzICYmIHN0YXR1cyAhPSBOT1RNVUNIX1NUQVRVU19JR05P UkVEKSB7DQogCQlwcmludF9zdGF0dXNfcXVlcnkgKCJub3RtdWNoIHNlYXJjaCIsIGN0eC0+cXVl cnksIHN0YXR1cyk7DQogCQlyZXR1cm4gRVhJVF9GQUlMVVJFOw0KIAkgICAgfQ0KIAl9DQotDQog CW5vdG11Y2hfcXVlcnlfc2V0X29taXRfZXhjbHVkZWQgKGN0eC0+cXVlcnksIGN0eC0+ZXhjbHVk ZSk7DQogICAgIH0NCiANCkBAIC04MDUsNyArNzk0LDcgQEAgc3RhdGljIGNvbnN0IG5vdG11Y2hf b3B0X2Rlc2NfdCBjb21tb25fb3B0aW9uc1tdID0gew0KIH07DQogDQogaW50DQotbm90bXVjaF9z ZWFyY2hfY29tbWFuZCAobm90bXVjaF9jb25maWdfdCAqY29uZmlnLCB1bnVzZWQobm90bXVjaF9k YXRhYmFzZV90ICpub3RtdWNoKSwgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCitub3RtdWNoX3Nl YXJjaF9jb21tYW5kICh1bnVzZWQobm90bXVjaF9jb25maWdfdCAqY29uZmlnKSwgbm90bXVjaF9k YXRhYmFzZV90ICpub3RtdWNoLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KIHsNCiAgICAgc2Vh cmNoX2NvbnRleHRfdCAqY3R4ID0gJnNlYXJjaF9jb250ZXh0Ow0KICAgICBpbnQgb3B0X2luZGV4 LCByZXQ7DQpAQCAtODMyLDYgKzgyMSw3IEBAIG5vdG11Y2hfc2VhcmNoX2NvbW1hbmQgKG5vdG11 Y2hfY29uZmlnX3QgKmNvbmZpZywgdW51c2VkKG5vdG11Y2hfZGF0YWJhc2VfdCAqbm90DQogCXsg fQ0KICAgICB9Ow0KIA0KKyAgICBjdHgtPm5vdG11Y2ggPSBub3RtdWNoOw0KICAgICBjdHgtPm91 dHB1dCA9IE9VVFBVVF9TVU1NQVJZOw0KICAgICBvcHRfaW5kZXggPSBwYXJzZV9hcmd1bWVudHMg KGFyZ2MsIGFyZ3YsIG9wdGlvbnMsIDEpOw0KICAgICBpZiAob3B0X2luZGV4IDwgMCkNCkBAIC04 NDUsOCArODM1LDcgQEAgbm90bXVjaF9zZWFyY2hfY29tbWFuZCAobm90bXVjaF9jb25maWdfdCAq Y29uZmlnLCB1bnVzZWQobm90bXVjaF9kYXRhYmFzZV90ICpub3QNCiAJcmV0dXJuIEVYSVRfRkFJ TFVSRTsNCiAgICAgfQ0KIA0KLSAgICBpZiAoX25vdG11Y2hfc2VhcmNoX3ByZXBhcmUgKGN0eCwg Y29uZmlnLA0KLQkJCQkgYXJnYyAtIG9wdF9pbmRleCwgYXJndiArIG9wdF9pbmRleCkpDQorICAg IGlmIChfbm90bXVjaF9zZWFyY2hfcHJlcGFyZSAoY3R4LCBhcmdjIC0gb3B0X2luZGV4LCBhcmd2 ICsgb3B0X2luZGV4KSkNCiAJcmV0dXJuIEVYSVRfRkFJTFVSRTsNCiANCiAgICAgc3dpdGNoIChj dHgtPm91dHB1dCkgew0KQEAgLTg3MSw3ICs4NjAsNyBAQCBub3RtdWNoX3NlYXJjaF9jb21tYW5k IChub3RtdWNoX2NvbmZpZ190ICpjb25maWcsIHVudXNlZChub3RtdWNoX2RhdGFiYXNlX3QgKm5v dA0KIH0NCiANCiBpbnQNCi1ub3RtdWNoX2FkZHJlc3NfY29tbWFuZCAobm90bXVjaF9jb25maWdf dCAqY29uZmlnLCB1bnVzZWQobm90bXVjaF9kYXRhYmFzZV90ICpub3RtdWNoKSwgaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkNCitub3RtdWNoX2FkZHJlc3NfY29tbWFuZCAodW51c2VkKG5vdG11Y2hf Y29uZmlnX3QgKmNvbmZpZyksIG5vdG11Y2hfZGF0YWJhc2VfdCAqbm90bXVjaCwgaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkNCiB7DQogICAgIHNlYXJjaF9jb250ZXh0X3QgKmN0eCA9ICZzZWFyY2hf Y29udGV4dDsNCiAgICAgaW50IG9wdF9pbmRleCwgcmV0Ow0KQEAgLTg5Nyw2ICs4ODYsOCBAQCBu b3RtdWNoX2FkZHJlc3NfY29tbWFuZCAobm90bXVjaF9jb25maWdfdCAqY29uZmlnLCB1bnVzZWQo bm90bXVjaF9kYXRhYmFzZV90ICpubw0KIAl7IH0NCiAgICAgfTsNCiANCisgICAgY3R4LT5ub3Rt dWNoID0gbm90bXVjaDsNCisNCiAgICAgb3B0X2luZGV4ID0gcGFyc2VfYXJndW1lbnRzIChhcmdj LCBhcmd2LCBvcHRpb25zLCAxKTsNCiAgICAgaWYgKG9wdF9pbmRleCA8IDApDQogCXJldHVybiBF WElUX0ZBSUxVUkU7DQpAQCAtOTExLDggKzkwMiw3IEBAIG5vdG11Y2hfYWRkcmVzc19jb21tYW5k IChub3RtdWNoX2NvbmZpZ190ICpjb25maWcsIHVudXNlZChub3RtdWNoX2RhdGFiYXNlX3QgKm5v DQogCXJldHVybiBFWElUX0ZBSUxVUkU7DQogICAgIH0NCiANCi0gICAgaWYgKF9ub3RtdWNoX3Nl YXJjaF9wcmVwYXJlIChjdHgsIGNvbmZpZywNCi0JCQkJIGFyZ2MgLSBvcHRfaW5kZXgsIGFyZ3Yg KyBvcHRfaW5kZXgpKQ0KKyAgICBpZiAoX25vdG11Y2hfc2VhcmNoX3ByZXBhcmUgKGN0eCwgYXJn YyAtIG9wdF9pbmRleCwgYXJndiArIG9wdF9pbmRleCkpDQogCXJldHVybiBFWElUX0ZBSUxVUkU7 DQogDQogICAgIGN0eC0+YWRkcmVzc2VzID0gZ19oYXNoX3RhYmxlX25ld19mdWxsIChzdHJjYXNl X2hhc2gsIHN0cmNhc2VfZXF1YWwsDQpkaWZmIC0tZ2l0IGEvbm90bXVjaC5jIGIvbm90bXVjaC5j DQppbmRleCA5NWNkNGFlNS4uMTY1MDRmYzUgMTAwNjQ0DQotLS0gYS9ub3RtdWNoLmMNCisrKyBi L25vdG11Y2guYw0KQEAgLTE0Nyw5ICsxNDcsOSBAQCBzdGF0aWMgY29tbWFuZF90IGNvbW1hbmRz W10gPSB7DQogICAgICAgIkZpbmQgYW5kIGltcG9ydCBuZXcgbWVzc2FnZXMgdG8gdGhlIG5vdG11 Y2ggZGF0YWJhc2UuIiB9LA0KICAgICB7ICJpbnNlcnQiLCBub3RtdWNoX2luc2VydF9jb21tYW5k LCBOT1RNVUNIX0NPTU1BTkRfREFUQUJBU0VfRUFSTFkgfCBOT1RNVUNIX0NPTU1BTkRfREFUQUJB U0VfV1JJVEUsDQogICAgICAgIkFkZCBhIG5ldyBtZXNzYWdlIGludG8gdGhlIG1haWxkaXIgYW5k IG5vdG11Y2ggZGF0YWJhc2UuIiB9LA0KLSAgICB7ICJzZWFyY2giLCBub3RtdWNoX3NlYXJjaF9j b21tYW5kLCBOT1RNVUNIX0NPTU1BTkRfQ09ORklHX09QRU4sDQorICAgIHsgInNlYXJjaCIsIG5v dG11Y2hfc2VhcmNoX2NvbW1hbmQsIE5PVE1VQ0hfQ09NTUFORF9EQVRBQkFTRV9FQVJMWSwNCiAg ICAgICAiU2VhcmNoIGZvciBtZXNzYWdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHRlcm1z LiIgfSwNCi0gICAgeyAiYWRkcmVzcyIsIG5vdG11Y2hfYWRkcmVzc19jb21tYW5kLCBOT1RNVUNI X0NPTU1BTkRfQ09ORklHX09QRU4sDQorICAgIHsgImFkZHJlc3MiLCBub3RtdWNoX2FkZHJlc3Nf Y29tbWFuZCwgTk9UTVVDSF9DT01NQU5EX0RBVEFCQVNFX0VBUkxZLA0KICAgICAgICJHZXQgYWRk cmVzc2VzIGZyb20gbWVzc2FnZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCB0ZXJtcy4iIH0s DQogICAgIHsgInNob3ciLCBub3RtdWNoX3Nob3dfY29tbWFuZCwgTk9UTVVDSF9DT01NQU5EX0NP TkZJR19PUEVOLA0KICAgICAgICJTaG93IGFsbCBtZXNzYWdlcyBtYXRjaGluZyB0aGUgc2VhcmNo IHRlcm1zLiIgfSwNCmRpZmYgLS1naXQgYS90ZXN0L1QwMzUtcmVhZC1jb25maWcuc2ggYi90ZXN0 L1QwMzUtcmVhZC1jb25maWcuc2gNCmluZGV4IDNkYTljYmU2Li42Y2M0ZGE4ZCAxMDA3NTUNCi0t LSBhL3Rlc3QvVDAzNS1yZWFkLWNvbmZpZy5zaA0KKysrIGIvdGVzdC9UMDM1LXJlYWQtY29uZmln LnNoDQpAQCAtMjY4LDQgKzI2OCwxMDQgQEAgbm90bXVjaCByZXBseSBxdWVyeTokcXVlcnlfbmFt ZSA+PiBPVVRQVVQNCiByZXN0b3JlX2NvbmZpZw0KIHRlc3RfZXhwZWN0X2VxdWFsX2ZpbGUgRVhQ RUNURUQgT1VUUFVUDQogDQorYmFja3VwX2RhdGFiYXNlDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJz ZWFyY2ggd2l0aCBhbHRlcm5hdGUgY29uZmlnIg0KK25vdG11Y2ggdGFnIC0tICtmb29iYXIxNyAn KicNCitjcCBub3RtdWNoLWNvbmZpZyBhbHQtY29uZmlnDQorbm90bXVjaCAtLWNvbmZpZz1hbHQt Y29uZmlnIGNvbmZpZyBzZXQgc2VhcmNoLmV4Y2x1ZGVfdGFncyBmb29iYXIxNw0KK291dHB1dD0k KG5vdG11Y2ggLS1jb25maWc9YWx0LWNvbmZpZyBjb3VudCAnKicpDQordGVzdF9leHBlY3RfZXF1 YWwgIiRvdXRwdXQiICIwIg0KK3Jlc3RvcmVfZGF0YWJhc2UNCisNCitjYXQgPDxFT0YgPiBFWFBF Q1RFRA0KK0JlZm9yZToNCitBZnRlcjoNCit0aHJlYWQ6WFhYICAgMjAwOS0xMS0xOCBbMS8yXSBD YXJsIFdvcnRofCBBbGV4IEJvdGVyby1Mb3dyeTsgW25vdG11Y2hdIFtQQVRDSF0gRXJyb3Igb3V0 IGlmIG5vIHF1ZXJ5IGlzIHN1cHBsaWVkIHRvIHNlYXJjaCBpbnN0ZWFkIG9mIGdvaW5nIGludG8g YW4gaW5maW5pdGUgbG9vcCAoYXR0YWNobWVudCBpbmJveCB1bnJlYWQpDQordGhyZWFkOlhYWCAg IDIwMDktMTEtMTggWzEvMl0gQ2FybCBXb3J0aHwgSW5nbWFyIFZhbmhhc3NlbDsgW25vdG11Y2hd IFtQQVRDSF0gVHlwc29zIChpbmJveCB1bnJlYWQpDQordGhyZWFkOlhYWCAgIDIwMDktMTEtMTgg WzEvM10gQ2FybCBXb3J0aHwgQWRyaWFuIFBlcmV6IGRlIENhc3RybywgS2VpdGggUGFja2FyZDsg W25vdG11Y2hdIEludHJvZHVjaW5nIG15c2VsZiAoaW5ib3ggc2lnbmVkIHVucmVhZCkNCit0aHJl YWQ6WFhYICAgMjAwOS0xMS0xOCBbMS8zXSBDYXJsIFdvcnRofCBJc3JhZWwgSGVycmFpeiwgS2Vp dGggUGFja2FyZDsgW25vdG11Y2hdIE5ldyB0byB0aGUgbGlzdCAoaW5ib3ggdW5yZWFkKQ0KK3Ro cmVhZDpYWFggICAyMDA5LTExLTE4IFsxLzNdIENhcmwgV29ydGh8IEphbiBKYW5hazsgW25vdG11 Y2hdIFdoYXQgYSBncmVhdCBpZGVhISAoaW5ib3ggdW5yZWFkKQ0KK3RocmVhZDpYWFggICAyMDA5 LTExLTE4IFsxLzJdIENhcmwgV29ydGh8IEphbiBKYW5hazsgW25vdG11Y2hdIFtQQVRDSF0gT2xk ZXIgdmVyc2lvbnMgb2YgaW5zdGFsbCBkbyBub3Qgc3VwcG9ydCAtQy4gKGluYm94IHVucmVhZCkN Cit0aHJlYWQ6WFhYICAgMjAwOS0xMS0xOCBbMS8zKDQpXSBDYXJsIFdvcnRofCBBcm9uIEdyaWZm aXMsIEtlaXRoIFBhY2thcmQ7IFtub3RtdWNoXSBhcmNoaXZlIChpbmJveCB1bnJlYWQpDQordGhy ZWFkOlhYWCAgIDIwMDktMTEtMTggWzEvMl0gQ2FybCBXb3J0aHwgS2VpdGggUGFja2FyZDsgW25v dG11Y2hdIFtQQVRDSF0gTWFrZSBub3RtdWNoLXNob3cgJ1gnIChhbmQgJ3gnKSBjb21tYW5kcyBy ZW1vdmUgaW5ib3ggKGFuZCB1bnJlYWQpIHRhZ3MgKGluYm94IHVucmVhZCkNCit0aHJlYWQ6WFhY ICAgMjAwOS0xMS0xOCBbMS83XSBDYXJsIFdvcnRofCBMYXJzIEtlbGxvZ2ctU3RlZG1hbiwgTWlr aGFpbCBHdXNhcm92LCBLZWl0aCBQYWNrYXJkOyBbbm90bXVjaF0gV29ya2luZyB3aXRoIE1haWxk aXIgc3RvcmFnZT8gKGluYm94IHNpZ25lZCB1bnJlYWQpDQordGhyZWFkOlhYWCAgIDIwMDktMTEt MTggWzIvNV0gQ2FybCBXb3J0aHwgTWlraGFpbCBHdXNhcm92LCBLZWl0aCBQYWNrYXJkOyBbbm90 bXVjaF0gW1BBVENIIDEvMl0gQ2xvc2UgbWVzc2FnZSBmaWxlIGFmdGVyIHBhcnNpbmcgbWVzc2Fn ZSBoZWFkZXJzIChpbmJveCB1bnJlYWQpDQordGhyZWFkOlhYWCAgIDIwMDktMTEtMTcgWzEvMl0g Q2FybCBXb3J0aHwgQWxleCBCb3Rlcm8tTG93cnk7IFtub3RtdWNoXSBwcmVsaW1pbmFyeSBGcmVl QlNEIHN1cHBvcnQgKGF0dGFjaG1lbnQgaW5ib3ggdW5yZWFkKQ0KK0VPRg0KKw0KK3Rlc3RfYmVn aW5fc3VidGVzdCAic2VhcmNoIHdpdGggc2F2ZWQgcXVlcnkgZnJvbSBjb25maWcgZmlsZSINCitx dWVyeV9uYW1lPSJ0ZXN0JHtSQU5ET019Ig0KK2JhY2t1cF9jb25maWcNCitwcmludGYgIkJlZm9y ZTpcbiIgPiBPVVRQVVQNCitub3RtdWNoIHNlYXJjaCBxdWVyeTokcXVlcnlfbmFtZSAyPiYxIHwg bm90bXVjaF9zZWFyY2hfc2FuaXRpemUgPj4gT1VUUFVUDQorcHJpbnRmICJcbltxdWVyeV1cbiR7 cXVlcnlfbmFtZX0gPSBmcm9tOmN3b3J0aFxuIiA+PiBub3RtdWNoLWNvbmZpZw0KK3ByaW50ZiAi QWZ0ZXI6XG4iID4+IE9VVFBVVA0KK25vdG11Y2ggc2VhcmNoIHF1ZXJ5OiRxdWVyeV9uYW1lIDI+ JjEgfCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSA+PiBPVVRQVVQNCityZXN0b3JlX2NvbmZpZw0K K3Rlc3RfZXhwZWN0X2VxdWFsX2ZpbGUgRVhQRUNURUQgT1VUUFVUDQorDQordGVzdF9iZWdpbl9z dWJ0ZXN0ICJzZWFyY2ggd2l0aCBzYXZlZCBxdWVyeSBmcm9tIGNvbmZpZyBmaWxlICh4ZGcpIg0K K3F1ZXJ5X25hbWU9InRlc3Qke1JBTkRPTX0iDQoreGRnX2NvbmZpZw0KK3ByaW50ZiAiQmVmb3Jl OlxuIiA+IE9VVFBVVA0KK25vdG11Y2ggc2VhcmNoIHF1ZXJ5OiRxdWVyeV9uYW1lIDI+JjEgfCBu b3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSA+PiBPVVRQVVQNCitwcmludGYgIlxuW3F1ZXJ5XVxuJHtx dWVyeV9uYW1lfSA9IGZyb206Y3dvcnRoXG4iID4+ICR7Q09ORklHX1BBVEh9DQorcHJpbnRmICJB ZnRlcjpcbiIgPj4gT1VUUFVUDQorbm90bXVjaCBzZWFyY2ggcXVlcnk6JHF1ZXJ5X25hbWUgMj4m MSB8IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXplID4+IE9VVFBVVA0KK3Jlc3RvcmVfY29uZmlnDQor dGVzdF9leHBlY3RfZXF1YWxfZmlsZSBFWFBFQ1RFRCBPVVRQVVQNCisNCit0ZXN0X2JlZ2luX3N1 YnRlc3QgInNlYXJjaCB3aXRoIHNhdmVkIHF1ZXJ5IGZyb20gY29uZmlnIGZpbGUgKHhkZyArIHBy b2ZpbGUpIg0KK3F1ZXJ5X25hbWU9InRlc3Qke1JBTkRPTX0iDQoreGRnX2NvbmZpZyAkcXVlcnlf bmFtZQ0KK3ByaW50ZiAiQmVmb3JlOlxuIiA+IE9VVFBVVA0KK25vdG11Y2ggc2VhcmNoIHF1ZXJ5 OiRxdWVyeV9uYW1lIDI+JjEgfCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSA+PiBPVVRQVVQNCitw cmludGYgIlxuW3F1ZXJ5XVxuJHtxdWVyeV9uYW1lfSA9IGZyb206Y3dvcnRoXG4iID4+ICR7Q09O RklHX1BBVEh9DQorcHJpbnRmICJBZnRlcjpcbiIgPj4gT1VUUFVUDQorbm90bXVjaCBzZWFyY2gg cXVlcnk6JHF1ZXJ5X25hbWUgMj4mMSB8IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXplID4+IE9VVFBV VA0KK3Jlc3RvcmVfY29uZmlnDQordGVzdF9leHBlY3RfZXF1YWxfZmlsZSBFWFBFQ1RFRCBPVVRQ VVQNCisNCitjYXQgPDxFT0YgPiBFWFBFQ1RFRA0KK0JlZm9yZToNCitBZnRlcjoNCitBbGV4IEJv dGVyby1Mb3dyeSA8YWxleC5ib3Rlcm9sb3dyeUBnbWFpbC5jb20+DQorQWxleGFuZGVyIEJvdGVy by1Mb3dyeSA8YWxleC5ib3Rlcm9sb3dyeUBnbWFpbC5jb20+DQorRnJhbsOnb2lzIEJvdWxvZ25l IDxib3Vsb2duZS5mQGdtYWlsLmNvbT4NCitKamdvZCBKaWFuZyA8Z3pqamdvZEBnbWFpbC5jb20+ DQorRU9GDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJhZGRyZXNzOiBzYXZlZCBxdWVyeSBmcm9t IGNvbmZpZyBmaWxlIg0KK2JhY2t1cF9jb25maWcNCitxdWVyeV9uYW1lPSJ0ZXN0JHtSQU5ET019 Ig0KK3ByaW50ZiAiQmVmb3JlOlxuIiA+IE9VVFBVVA0KK25vdG11Y2ggYWRkcmVzcyAtLWRlZHVw bGljYXRlPW5vIC0tb3V0cHV0PXNlbmRlciBxdWVyeTokcXVlcnlfbmFtZSAyPiYxIHwgc29ydCA+ PiBPVVRQVVQNCitwcmludGYgIlxuW3F1ZXJ5XVxuJHtxdWVyeV9uYW1lfSA9IGZyb206Z21haWwu Y29tXG4iID4+IG5vdG11Y2gtY29uZmlnDQorcHJpbnRmICJBZnRlcjpcbiIgPj4gT1VUUFVUDQor bm90bXVjaCBhZGRyZXNzIC0tb3V0cHV0PXNlbmRlciBxdWVyeTokcXVlcnlfbmFtZSB8IHNvcnQg Pj4gT1VUUFVUDQorcmVzdG9yZV9jb25maWcNCit0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVD VEVEIE9VVFBVVA0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiYWRkcmVzczogc2F2ZWQgcXVlcnkg ZnJvbSBjb25maWcgZmlsZSAoeGRnKSINCitxdWVyeV9uYW1lPSJ0ZXN0JHtSQU5ET019Ig0KK3hk Z19jb25maWcNCitwcmludGYgIkJlZm9yZTpcbiIgPiBPVVRQVVQNCitub3RtdWNoIGFkZHJlc3Mg LS1kZWR1cGxpY2F0ZT1ubyAtLW91dHB1dD1zZW5kZXIgcXVlcnk6JHF1ZXJ5X25hbWUgMj4mMSB8 IHNvcnQgPj4gT1VUUFVUDQorcHJpbnRmICJcbltxdWVyeV1cbiR7cXVlcnlfbmFtZX0gPSBmcm9t OmdtYWlsLmNvbVxuIiA+PiAke0NPTkZJR19QQVRIfQ0KK3ByaW50ZiAiQWZ0ZXI6XG4iID4+IE9V VFBVVA0KK25vdG11Y2ggYWRkcmVzcyAtLW91dHB1dD1zZW5kZXIgcXVlcnk6JHF1ZXJ5X25hbWUg fCBzb3J0ID4+IE9VVFBVVA0KK3Jlc3RvcmVfY29uZmlnDQordGVzdF9leHBlY3RfZXF1YWxfZmls ZSBFWFBFQ1RFRCBPVVRQVVQNCisNCit0ZXN0X2JlZ2luX3N1YnRlc3QgImFkZHJlc3M6IHNhdmVk IHF1ZXJ5IGZyb20gY29uZmlnIGZpbGUgKHhkZytwcm9maWxlKSINCitxdWVyeV9uYW1lPSJ0ZXN0 JHtSQU5ET019Ig0KK3hkZ19jb25maWcgJHF1ZXJ5X25hbWUNCitwcmludGYgIkJlZm9yZTpcbiIg PiBPVVRQVVQNCitub3RtdWNoIGFkZHJlc3MgLS1kZWR1cGxpY2F0ZT1ubyAtLW91dHB1dD1zZW5k ZXIgcXVlcnk6JHF1ZXJ5X25hbWUgMj4mMSB8IHNvcnQgPj4gT1VUUFVUDQorcHJpbnRmICJcbltx dWVyeV1cbiR7cXVlcnlfbmFtZX0gPSBmcm9tOmdtYWlsLmNvbVxuIiA+PiAke0NPTkZJR19QQVRI fQ0KK3ByaW50ZiAiQWZ0ZXI6XG4iID4+IE9VVFBVVA0KK25vdG11Y2ggYWRkcmVzcyAtLW91dHB1 dD1zZW5kZXIgcXVlcnk6JHF1ZXJ5X25hbWUgfCBzb3J0ID4+IE9VVFBVVA0KK3Jlc3RvcmVfY29u ZmlnDQordGVzdF9leHBlY3RfZXF1YWxfZmlsZSBFWFBFQ1RFRCBPVVRQVVQNCisNCiB0ZXN0X2Rv bmUNCmRpZmYgLS1naXQgYS90ZXN0L1Q3NTAtdXNlci1oZWFkZXIuc2ggYi90ZXN0L1Q3NTAtdXNl ci1oZWFkZXIuc2gNCmluZGV4IDIwNGMwNTJhLi5mZjU1NGIwNiAxMDA3NTUNCi0tLSBhL3Rlc3Qv VDc1MC11c2VyLWhlYWRlci5zaA0KKysrIGIvdGVzdC9UNzUwLXVzZXItaGVhZGVyLnNoDQpAQCAt MTA4LDQgKzEwOCwyMiBAQCBNQUlMX0RJUi9uZXcvMDQ6MiwNCiBFT0YNCiB0ZXN0X2V4cGVjdF9l cXVhbF9maWxlIEVYUEVDVEVEIE9VVFBVVA0KIA0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiaW5kZXgg dXNlciBoZWFkZXIsIGNvbmZpZyBmcm9tIGZpbGUiDQorZmllbGRfbmFtZT0iVGVzdCINCitwcmlu dGYgIlxuW2luZGV4XVxuaGVhZGVyLiR7ZmllbGRfbmFtZX0gPSBMaXN0LUlkXG4iID4+IG5vdG11 Y2gtY29uZmlnDQorbm90bXVjaCByZWluZGV4ICcqJw0KK25vdG11Y2ggc2VhcmNoIC0tb3V0cHV0 PWZpbGVzICR7ZmllbGRfbmFtZX06bm90bXVjaCB8IG5vdG11Y2hfc2VhcmNoX2ZpbGVzX3Nhbml0 aXplIHwgc29ydCA+IE9VVFBVVA0KK2NhdCA8PEVPRiA+IEVYUEVDVEVEDQorTUFJTF9ESVIvYmFy L2Jhei8wNToyLA0KK01BSUxfRElSL2Jhci9iYXovMjM6MiwNCitNQUlMX0RJUi9iYXIvYmF6LzI0 OjIsDQorTUFJTF9ESVIvYmFyL2N1ci8yMDoyLA0KK01BSUxfRElSL2Jhci9uZXcvMjE6MiwNCitN QUlMX0RJUi9iYXIvbmV3LzIyOjIsDQorTUFJTF9ESVIvZm9vL2N1ci8wODoyLA0KK01BSUxfRElS L2Zvby9uZXcvMDM6MiwNCitNQUlMX0RJUi9uZXcvMDQ6MiwNCitFT0YNCit0ZXN0X2V4cGVjdF9l cXVhbF9maWxlIEVYUEVDVEVEIE9VVFBVVA0KKw0KIHRlc3RfZG9uZQ0KLS0gDQoyLjMwLjAN