Corentin Noël
2019-Jan-22 15:14 UTC
Re: [Libguestfs] [PATCH] gobject: Add Vala binding support
Here is the patch with the EXTRA_DIST moved. Note that the .deps file is useless without the .vapi file (that's why it was inside the if ENABLE_VAPIGEN ) Regards, Corentin --- .gitignore | 1 + configure.ac | 4 ++ gobject/Makefile.am | 17 +++++ gobject/libguestfs-gobject-1.0.deps | 2 + m4/vapigen.m4 | 101 ++++++++++++++++++++++++++++ 5 files changed, 125 insertions(+) create mode 100644 gobject/libguestfs-gobject-1.0.deps create mode 100644 m4/vapigen.m4 diff --git a/.gitignore b/.gitignore index 637bf7765..29d3e3aae 100644 --- a/.gitignore +++ b/.gitignore @@ -339,6 +339,7 @@ Makefile.in /gobject/Guestfs-1.0.gir /gobject/Guestfs-1.0.typelib /gobject/guestfs-gobject.3 +/gobject/libguestfs-gobject-1.0.vapi /gobject/stamp-guestfs-gobject.pod /golang/bindtests.go /golang/examples/guestfs-golang.3 diff --git a/configure.ac b/configure.ac index e18e099b9..dfc7a1af3 100644 --- a/configure.ac +++ b/configure.ac @@ -161,6 +161,8 @@ HEADING([Checking for Go]) m4_include([m4/guestfs-golang.m4]) HEADING([Checking for GObject Introspection]) m4_include([m4/guestfs-gobject.m4]) +HEADING([Checking for Vala]) +VAPIGEN_CHECK dnl virt-v2v, virt-p2v. HEADING([Checking the virt-v2v and virt-p2v dependencies]) @@ -421,6 +423,8 @@ AS_ECHO_N(["gobject bindings .................... "]) if test "x$HAVE_GOBJECT_TRUE" = "x"; then echo "yes"; else echo "no"; fi AS_ECHO_N(["gobject introspection ............... "]) if test "x$HAVE_INTROSPECTION_TRUE" = "x"; then echo "yes"; else echo "no"; fi +AS_ECHO_N(["Vala bindings ....................... "]) +if test "x$ENABLE_VAPIGEN" = "x"; then echo "yes"; else echo "no"; fi AS_ECHO_N(["bash completion ..................... "]) if test "x$HAVE_BASH_COMPLETION_TRUE" = "x"; then echo "yes"; else echo "no"; fi echo diff --git a/gobject/Makefile.am b/gobject/Makefile.am index ddedd5b51..c32cc8ec6 100644 --- a/gobject/Makefile.am +++ b/gobject/Makefile.am @@ -105,6 +105,23 @@ $(TESTS): $(typelib_DATA) CLEANFILES += $(gir_DATA) $(typelib_DATA) +if ENABLE_VAPIGEN +-include $(VAPIGEN_MAKEFILE) + +libguestfs-gobject-1.0.vapi: Guestfs-1.0.gir libguestfs-gobject- 1.0.deps + +VAPIGEN_VAPIS = libguestfs-gobject-1.0.vapi + +libguestfs_gobject_1_0_vapi_DEPS = gobject-2.0 gio-2.0 +libguestfs_gobject_1_0_vapi_METADATADIRS = $(srcdir) +libguestfs_gobject_1_0_vapi_FILES = Guestfs-1.0.gir + +vapidir = $(datadir)/vala/vapi +vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps) +endif + +EXTRA_DIST += libguestfs-gobject-1.0.deps + endif HAVE_INTROSPECTION # Documentation. diff --git a/gobject/libguestfs-gobject-1.0.deps b/gobject/libguestfs- gobject-1.0.deps new file mode 100644 index 000000000..d4db05933 --- /dev/null +++ b/gobject/libguestfs-gobject-1.0.deps @@ -0,0 +1,2 @@ +gobject-2.0 +gio-2.0 diff --git a/m4/vapigen.m4 b/m4/vapigen.m4 new file mode 100644 index 000000000..2c435e74b --- /dev/null +++ b/m4/vapigen.m4 @@ -0,0 +1,101 @@ +dnl vapigen.m4 +dnl +dnl Copyright 2012 Evan Nemerson +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License, or (at your option) any later version. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND_INTROSPECTION], [DEFAULT]) +# -------------------------------------- +# Check vapigen existence and version +# +# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation +AC_DEFUN([VAPIGEN_CHECK], +[ + AS_IF([test "x$3" != "xyes"], [ + m4_provide_if([GOBJECT_INTROSPECTION_CHECK], [], [ + m4_provide_if([GOBJECT_INTROSPECTION_REQUIRE], [], [ + AC_MSG_ERROR([[You must call GOBJECT_INTROSPECTION_CHECK or GOBJECT_INTROSPECTION_REQUIRE before using VAPIGEN_CHECK unless using the FOUND_INTROSPECTION argument is "yes"]]) + ]) + ]) + ]) + + AC_ARG_ENABLE([vala], + [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[ + AS_IF([test "x$4" = "x"], [ + enable_vala=auto + ], [ + enable_vala=$4 + ]) + ]) + + AS_CASE([$enable_vala], [no], [enable_vala=no], + [yes], [ + AS_IF([test "x$3" != "xyes" -a "x$found_introspection" !"xyes"], [ + AC_MSG_ERROR([Vala bindings require GObject Introspection]) + ]) + ], [auto], [ + AS_IF([test "x$3" != "xyes" -a "x$found_introspection" !"xyes"], [ + enable_vala=no + ]) + ], [ + AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@]) + ]) + + AS_IF([test "x$2" = "x"], [ + vapigen_pkg_name=vapigen + ], [ + vapigen_pkg_name=vapigen-$2 + ]) + AS_IF([test "x$1" = "x"], [ + vapigen_pkg="$vapigen_pkg_name" + ], [ + vapigen_pkg="$vapigen_pkg_name >= $1" + ]) + + PKG_PROG_PKG_CONFIG + + PKG_CHECK_EXISTS([$vapigen_pkg], [ + AS_IF([test "$enable_vala" = "auto"], [ + enable_vala=yes + ]) + ], [ + AS_CASE([$enable_vala], [yes], [ + AC_MSG_ERROR([$vapigen_pkg not found]) + ], [auto], [ + enable_vala=no + ]) + ]) + + AC_MSG_CHECKING([for vapigen]) + + AS_CASE([$enable_vala], + [yes], [ + VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen + AS_IF([test "x$2" = "x"], [ + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name` + ], [ + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name` + ]) + ]) + + AC_MSG_RESULT([$enable_vala]) + + AC_SUBST([VAPIGEN]) + AC_SUBST([VAPIGEN_VAPIDIR]) + AC_SUBST([VAPIGEN_MAKEFILE]) + + AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes") +])
Richard W.M. Jones
2019-Jan-22 15:34 UTC
Re: [Libguestfs] [PATCH] gobject: Add Vala binding support
This patch is still corrupt. If you can't use git send-email, then try using an email attachment. Thanks, Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
Corentin Noël
2019-Jan-23 10:00 UTC
Re: [Libguestfs] [PATCH] gobject: Add Vala binding support
Here is the attachment. Corentin Le mardi 22 janvier 2019 à 15:34 +0000, Richard W.M. Jones a écrit :> This patch is still corrupt. If you can't use git send-email, then > try using an email attachment. > > Thanks, > > Rich. >--=-aTsmf5bEc4PPFwS1NYMU Content-Disposition: attachment; filename="0001-gobject-Add-Vala-binding-support.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-gobject-Add-Vala-binding-support.patch"; charset="UTF-8" RnJvbSAxYmRmZWUwODI0Y2QxYjYyYWNlYTNkYzBlOGVlNTNmOWMzNDdjZWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q29yZW50aW49MjBObz1DMz1BQmw/PSA8Y29y ZW50aW4ubm9lbEBjb2xsYWJvcmEuY29tPgpEYXRlOiBUdWUsIDIyIEphbiAyMDE5IDEzOjEyOjU3 ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gZ29iamVjdDogQWRkIFZhbGEgYmluZGluZyBzdXBwb3J0 CgotLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGNvbmZp Z3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsrCiBnb2JqZWN0L01ha2VmaWxl LmFtICAgICAgICAgICAgICAgICB8ICAxNyArKysrKwogZ29iamVjdC9saWJndWVzdGZzLWdvYmpl Y3QtMS4wLmRlcHMgfCAgIDIgKwogbTQvdmFwaWdlbi5tNCAgICAgICAgICAgICAgICAgICAgICAg fCAxMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxMjUg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdvYmplY3QvbGliZ3Vlc3Rmcy1nb2Jq ZWN0LTEuMC5kZXBzCiBjcmVhdGUgbW9kZSAxMDA2NDQgbTQvdmFwaWdlbi5tNAoKZGlmZiAtLWdp dCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDYzN2JmNzc2NS4uMjlkM2UzYWFlIDEw MDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTMzOSw2ICszMzksNyBA QCBNYWtlZmlsZS5pbgogL2dvYmplY3QvR3Vlc3Rmcy0xLjAuZ2lyCiAvZ29iamVjdC9HdWVzdGZz LTEuMC50eXBlbGliCiAvZ29iamVjdC9ndWVzdGZzLWdvYmplY3QuMworL2dvYmplY3QvbGliZ3Vl c3Rmcy1nb2JqZWN0LTEuMC52YXBpCiAvZ29iamVjdC9zdGFtcC1ndWVzdGZzLWdvYmplY3QucG9k CiAvZ29sYW5nL2JpbmR0ZXN0cy5nbwogL2dvbGFuZy9leGFtcGxlcy9ndWVzdGZzLWdvbGFuZy4z CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggZTE4ZTA5OWI5 Li5kZmM3YTFhZjMgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMK QEAgLTE2MSw2ICsxNjEsOCBAQCBIRUFESU5HKFtDaGVja2luZyBmb3IgR29dKQogbTRfaW5jbHVk ZShbbTQvZ3Vlc3Rmcy1nb2xhbmcubTRdKQogSEVBRElORyhbQ2hlY2tpbmcgZm9yIEdPYmplY3Qg SW50cm9zcGVjdGlvbl0pCiBtNF9pbmNsdWRlKFttNC9ndWVzdGZzLWdvYmplY3QubTRdKQorSEVB RElORyhbQ2hlY2tpbmcgZm9yIFZhbGFdKQorVkFQSUdFTl9DSEVDSwogCiBkbmwgdmlydC12MnYs IHZpcnQtcDJ2LgogSEVBRElORyhbQ2hlY2tpbmcgdGhlIHZpcnQtdjJ2IGFuZCB2aXJ0LXAydiBk ZXBlbmRlbmNpZXNdKQpAQCAtNDIxLDYgKzQyMyw4IEBAIEFTX0VDSE9fTihbImdvYmplY3QgYmlu ZGluZ3MgLi4uLi4uLi4uLi4uLi4uLi4uLi4gIl0pCiBpZiB0ZXN0ICJ4JEhBVkVfR09CSkVDVF9U UlVFIiA9ICJ4IjsgdGhlbiBlY2hvICJ5ZXMiOyBlbHNlIGVjaG8gIm5vIjsgZmkKIEFTX0VDSE9f TihbImdvYmplY3QgaW50cm9zcGVjdGlvbiAuLi4uLi4uLi4uLi4uLi4gIl0pCiBpZiB0ZXN0ICJ4 JEhBVkVfSU5UUk9TUEVDVElPTl9UUlVFIiA9ICJ4IjsgdGhlbiBlY2hvICJ5ZXMiOyBlbHNlIGVj aG8gIm5vIjsgZmkKK0FTX0VDSE9fTihbIlZhbGEgYmluZGluZ3MgLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4gIl0pCitpZiB0ZXN0ICJ4JEVOQUJMRV9WQVBJR0VOIiA9ICJ4IjsgdGhlbiBlY2hvICJ5 ZXMiOyBlbHNlIGVjaG8gIm5vIjsgZmkKIEFTX0VDSE9fTihbImJhc2ggY29tcGxldGlvbiAuLi4u Li4uLi4uLi4uLi4uLi4uLi4gIl0pCiBpZiB0ZXN0ICJ4JEhBVkVfQkFTSF9DT01QTEVUSU9OX1RS VUUiID0gIngiOyB0aGVuIGVjaG8gInllcyI7IGVsc2UgZWNobyAibm8iOyBmaQogZWNobwpkaWZm IC0tZ2l0IGEvZ29iamVjdC9NYWtlZmlsZS5hbSBiL2dvYmplY3QvTWFrZWZpbGUuYW0KaW5kZXgg ZGRlZGQ1YjUxLi5jMzJjYzhlYzYgMTAwNjQ0Ci0tLSBhL2dvYmplY3QvTWFrZWZpbGUuYW0KKysr IGIvZ29iamVjdC9NYWtlZmlsZS5hbQpAQCAtMTA1LDYgKzEwNSwyMyBAQCAkKFRFU1RTKTogJCh0 eXBlbGliX0RBVEEpCiAKIENMRUFORklMRVMgKz0gJChnaXJfREFUQSkgJCh0eXBlbGliX0RBVEEp CiAKK2lmIEVOQUJMRV9WQVBJR0VOCistaW5jbHVkZSAkKFZBUElHRU5fTUFLRUZJTEUpCisKK2xp Ymd1ZXN0ZnMtZ29iamVjdC0xLjAudmFwaTogR3Vlc3Rmcy0xLjAuZ2lyIGxpYmd1ZXN0ZnMtZ29i amVjdC0xLjAuZGVwcworCitWQVBJR0VOX1ZBUElTID0gbGliZ3Vlc3Rmcy1nb2JqZWN0LTEuMC52 YXBpCisKK2xpYmd1ZXN0ZnNfZ29iamVjdF8xXzBfdmFwaV9ERVBTID0gZ29iamVjdC0yLjAgZ2lv LTIuMAorbGliZ3Vlc3Rmc19nb2JqZWN0XzFfMF92YXBpX01FVEFEQVRBRElSUyA9ICQoc3JjZGly KQorbGliZ3Vlc3Rmc19nb2JqZWN0XzFfMF92YXBpX0ZJTEVTID0gR3Vlc3Rmcy0xLjAuZ2lyCisK K3ZhcGlkaXIgPSAkKGRhdGFkaXIpL3ZhbGEvdmFwaQordmFwaV9EQVRBID0gJChWQVBJR0VOX1ZB UElTKSAkKFZBUElHRU5fVkFQSVM6LnZhcGk9LmRlcHMpCitlbmRpZgorCitFWFRSQV9ESVNUICs9 IGxpYmd1ZXN0ZnMtZ29iamVjdC0xLjAuZGVwcworCiBlbmRpZiBIQVZFX0lOVFJPU1BFQ1RJT04K IAogIyBEb2N1bWVudGF0aW9uLgpkaWZmIC0tZ2l0IGEvZ29iamVjdC9saWJndWVzdGZzLWdvYmpl Y3QtMS4wLmRlcHMgYi9nb2JqZWN0L2xpYmd1ZXN0ZnMtZ29iamVjdC0xLjAuZGVwcwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmQ0ZGIwNTkzMwotLS0gL2Rldi9udWxsCisr KyBiL2dvYmplY3QvbGliZ3Vlc3Rmcy1nb2JqZWN0LTEuMC5kZXBzCkBAIC0wLDAgKzEsMiBAQAor Z29iamVjdC0yLjAKK2dpby0yLjAKZGlmZiAtLWdpdCBhL200L3ZhcGlnZW4ubTQgYi9tNC92YXBp Z2VuLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMmM0MzVlNzRiCi0t LSAvZGV2L251bGwKKysrIGIvbTQvdmFwaWdlbi5tNApAQCAtMCwwICsxLDEwMSBAQAorZG5sIHZh cGlnZW4ubTQKK2RubAorZG5sIENvcHlyaWdodCAyMDEyIEV2YW4gTmVtZXJzb24KK2RubAorZG5s IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKK2RubCBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCitkbmwgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCitkbmwgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCitkbmwKK2RubCBUaGlzIGxpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKK2Ru bCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorZG5sIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCitkbmwgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KK2RubAorZG5sIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK2RubCBMaWNlbnNlIGFsb25nIHdp dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCitkbmwg Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxICBVU0EKKworIyBWQVBJR0VOX0NIRUNLKFtWRVJTSU9OXSwgW0FQSV9W RVJTSU9OXSwgW0ZPVU5EX0lOVFJPU1BFQ1RJT05dLCBbREVGQVVMVF0pCisjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIHZhcGlnZW4gZXhpc3RlbmNlIGFu ZCB2ZXJzaW9uCisjCisjIFNlZSBodHRwOi8vbGl2ZS5nbm9tZS5vcmcvVmFsYS9VcHN0cmVhbUd1 aWRlIGZvciBkZXRhaWxlZCBkb2N1bWVudGF0aW9uCitBQ19ERUZVTihbVkFQSUdFTl9DSEVDS10s CitbCisgIEFTX0lGKFt0ZXN0ICJ4JDMiICE9ICJ4eWVzIl0sIFsKKyAgICAgIG00X3Byb3ZpZGVf aWYoW0dPQkpFQ1RfSU5UUk9TUEVDVElPTl9DSEVDS10sIFtdLCBbCisgICAgICAgICAgbTRfcHJv dmlkZV9pZihbR09CSkVDVF9JTlRST1NQRUNUSU9OX1JFUVVJUkVdLCBbXSwgWworICAgICAgICAg ICAgICBBQ19NU0dfRVJST1IoW1tZb3UgbXVzdCBjYWxsIEdPQkpFQ1RfSU5UUk9TUEVDVElPTl9D SEVDSyBvciBHT0JKRUNUX0lOVFJPU1BFQ1RJT05fUkVRVUlSRSBiZWZvcmUgdXNpbmcgVkFQSUdF Tl9DSEVDSyB1bmxlc3MgdXNpbmcgdGhlIEZPVU5EX0lOVFJPU1BFQ1RJT04gYXJndW1lbnQgaXMg InllcyJdXSkKKyAgICAgICAgICAgIF0pCisgICAgICAgIF0pCisgICAgXSkKKworICBBQ19BUkdf RU5BQkxFKFt2YWxhXSwKKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXZhbGFbPUA8OkBu by9hdXRvL3llc0A6PkBdXSxbYnVpbGQgVmFsYSBiaW5kaW5ncyBAPDpAZGVmYXVsdD1daWZlbHNl KCQ0LCxhdXRvLCQ0KVtAOj5AXSldLCxbCisgICAgICBBU19JRihbdGVzdCAieCQ0IiA9ICJ4Il0s IFsKKyAgICAgICAgICBlbmFibGVfdmFsYT1hdXRvCisgICAgICAgIF0sIFsKKyAgICAgICAgICBl bmFibGVfdmFsYT0kNAorICAgICAgICBdKQorICAgIF0pCisKKyAgQVNfQ0FTRShbJGVuYWJsZV92 YWxhXSwgW25vXSwgW2VuYWJsZV92YWxhPW5vXSwKKyAgICAgIFt5ZXNdLCBbCisgICAgICAgIEFT X0lGKFt0ZXN0ICJ4JDMiICE9ICJ4eWVzIiAtYSAieCRmb3VuZF9pbnRyb3NwZWN0aW9uIiAhPSAi eHllcyJdLCBbCisgICAgICAgICAgICBBQ19NU0dfRVJST1IoW1ZhbGEgYmluZGluZ3MgcmVxdWly ZSBHT2JqZWN0IEludHJvc3BlY3Rpb25dKQorICAgICAgICAgIF0pCisgICAgICBdLCBbYXV0b10s IFsKKyAgICAgICAgQVNfSUYoW3Rlc3QgIngkMyIgIT0gInh5ZXMiIC1hICJ4JGZvdW5kX2ludHJv c3BlY3Rpb24iICE9ICJ4eWVzIl0sIFsKKyAgICAgICAgICAgIGVuYWJsZV92YWxhPW5vCisgICAg ICAgICAgXSkKKyAgICAgIF0sIFsKKyAgICAgICAgQUNfTVNHX0VSUk9SKFtJbnZhbGlkIGFyZ3Vt ZW50IHBhc3NlZCB0byAtLWVuYWJsZS12YWxhLCBzaG91bGQgYmUgb25lIG9mIEA8OkBuby9hdXRv L3llc0A6PkBdKQorICAgICAgXSkKKworICBBU19JRihbdGVzdCAieCQyIiA9ICJ4Il0sIFsKKyAg ICAgIHZhcGlnZW5fcGtnX25hbWU9dmFwaWdlbgorICAgIF0sIFsKKyAgICAgIHZhcGlnZW5fcGtn X25hbWU9dmFwaWdlbi0kMgorICAgIF0pCisgIEFTX0lGKFt0ZXN0ICJ4JDEiID0gIngiXSwgWwor ICAgICAgdmFwaWdlbl9wa2c9IiR2YXBpZ2VuX3BrZ19uYW1lIgorICAgIF0sIFsKKyAgICAgIHZh cGlnZW5fcGtnPSIkdmFwaWdlbl9wa2dfbmFtZSA+PSAkMSIKKyAgICBdKQorCisgIFBLR19QUk9H X1BLR19DT05GSUcKKworICBQS0dfQ0hFQ0tfRVhJU1RTKFskdmFwaWdlbl9wa2ddLCBbCisgICAg ICBBU19JRihbdGVzdCAiJGVuYWJsZV92YWxhIiA9ICJhdXRvIl0sIFsKKyAgICAgICAgICBlbmFi bGVfdmFsYT15ZXMKKyAgICAgICAgXSkKKyAgICBdLCBbCisgICAgICBBU19DQVNFKFskZW5hYmxl X3ZhbGFdLCBbeWVzXSwgWworICAgICAgICAgIEFDX01TR19FUlJPUihbJHZhcGlnZW5fcGtnIG5v dCBmb3VuZF0pCisgICAgICAgIF0sIFthdXRvXSwgWworICAgICAgICAgIGVuYWJsZV92YWxhPW5v CisgICAgICAgIF0pCisgICAgXSkKKworICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB2YXBpZ2VuXSkK KworICBBU19DQVNFKFskZW5hYmxlX3ZhbGFdLAorICAgIFt5ZXNdLCBbCisgICAgICBWQVBJR0VO PWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPXZhcGlnZW4gJHZhcGlnZW5fcGtnX25hbWVgCisgICAg ICBWQVBJR0VOX01BS0VGSUxFPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWRhdGFkaXIgJHZhcGln ZW5fcGtnX25hbWVgL3ZhbGEvTWFrZWZpbGUudmFwaWdlbgorICAgICAgQVNfSUYoW3Rlc3QgIngk MiIgPSAieCJdLCBbCisgICAgICAgICAgVkFQSUdFTl9WQVBJRElSPWAkUEtHX0NPTkZJRyAtLXZh cmlhYmxlPXZhcGlkaXIgJHZhcGlnZW5fcGtnX25hbWVgCisgICAgICAgIF0sIFsKKyAgICAgICAg ICBWQVBJR0VOX1ZBUElESVI9YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9dmFwaWRpcl92ZXJzaW9u ZWQgJHZhcGlnZW5fcGtnX25hbWVgCisgICAgICAgIF0pCisgICAgXSkKKworICBBQ19NU0dfUkVT VUxUKFskZW5hYmxlX3ZhbGFdKQorCisgIEFDX1NVQlNUKFtWQVBJR0VOXSkKKyAgQUNfU1VCU1Qo W1ZBUElHRU5fVkFQSURJUl0pCisgIEFDX1NVQlNUKFtWQVBJR0VOX01BS0VGSUxFXSkKKworICBB TV9DT05ESVRJT05BTChFTkFCTEVfVkFQSUdFTiwgdGVzdCAieCRlbmFibGVfdmFsYSIgPSAieHll cyIpCitdKQotLSAKMi4xNy4xCgo --=-aTsmf5bEc4PPFwS1NYMU--