+m4_define(<:CLIENT_SECRETS_FILE:>, <:CONF_sysconf_dir/client-secrets:>)
+
+m4_define(<:CLIENT_SECRET_GET:>,
+<:${if exists {CLIENT_SECRETS_FILE} \
+ {${lookup {$domain} partial0-lsearch {CLIENT_SECRETS_FILE} \
+ {${extract {$1}{$value}$2$3}} \
+ {${lookup {$host} partial0-lsearch {CLIENT_SECRETS_FILE} \
+ {${extract {$1}{$value}$2$3}} $3}}}} \
+ $3}:>)
+
+m4_define(<:CLIENT_SECRET_EXISTSP:>,
+<:CLIENT_SECRET_GET($1, {true}, {false}):>)
+
+m4_define(<:CLIENT_SECRET:>,
+<:CLIENT_SECRET_GET($1, {${expand:$value}}, fail):>)
+