From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f71.google.com (mail-lf0-f71.google.com [209.85.215.71]) by kanga.kvack.org (Postfix) with ESMTP id 06A2B6B0293 for ; Sat, 9 Jun 2018 11:17:08 -0400 (EDT) Received: by mail-lf0-f71.google.com with SMTP id y17-v6so5054020lfe.14 for ; Sat, 09 Jun 2018 08:17:07 -0700 (PDT) Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id z144-v6sor6393328lff.44.2018.06.09.08.17.05 for (Google Transport Security); Sat, 09 Jun 2018 08:17:05 -0700 (PDT) MIME-Version: 1.0 Reply-To: sedat.dilek@gmail.com In-Reply-To: References: <20180319172902.GB37438@google.com> <99fbbbe3-df05-446b-9ce0-55787ea038f3@googlegroups.com> From: Sedat Dilek Date: Sat, 9 Jun 2018 17:17:04 +0200 Message-ID: Subject: Re: clang fails on linux-next since commit 8bf705d13039 Content-Type: multipart/mixed; boundary="000000000000580a57056e370265" Sender: owner-linux-mm@kvack.org List-ID: To: Dmitry Vyukov Cc: kasan-dev , Matthias Kaehlcke , Linux-MM , llvmlinux@lists.linuxfoundation.org, Nick Desaulniers --000000000000580a57056e370265 Content-Type: text/plain; charset="UTF-8" Hi, I played a bit more with this. I was irritated when I saw in my full make lines -fstack-protector-strong and -fno-stack-protector simultaneously, especially in x86/vdso. First, I tried... CC_STACKPROTECTOR_NONE n -> y CC_STACKPROTECTOR_STRONG y -> n This breaks at the same place in the same way (see attached file). Then I tried to filter-out -fstack-protector-strong in the relevant code parts with CC_STACKPROTECTOR_STRONG=y... diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile index d998a487c9b1..5482e453a8ca 100644 --- a/arch/x86/entry/vdso/Makefile +++ b/arch/x86/entry/vdso/Makefile @@ -73,6 +73,7 @@ CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \ $(filter -g%,$(KBUILD_CFLAGS)) $(call cc-option, -fno-stack-protector) \ -fno-omit-frame-pointer -foptimize-sibling-calls \ -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO +CFL += $(filter-out -fstack-protector-strong,$(KBUILD_CFLAGS)) $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS)) $(CFL) @@ -141,6 +142,7 @@ KBUILD_CFLAGS_32 := $(filter-out -mcmodel=kernel,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out -fno-pic,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out -mfentry,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS_32)) +KBUILD_CFLAGS_32 := $(filter-out -fstack-protector-strong,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 += -m32 -msoft-float -mregparm=0 -fpic KBUILD_CFLAGS_32 += $(call cc-option, -fno-stack-protector) KBUILD_CFLAGS_32 += $(call cc-option, -foptimize-sibling-calls) This breaks... if [ "" = "-pg" ]; then if [ arch/x86/entry/vdso/vgetcpu.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount "arch/x86/entry/vdso/vgetcpu.o"; fi; fi; mycompiler -nostdlib -o arch/x86/entry/vdso/vdso64.so.dbg -fPIC -shared -Wl,--hash-style=both -Wl,--build-id -Wl,-Bsymbolic -m64 -Wl,-soname=linux-vdso.so.1 -Wl,--no-undefined -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 -Wl,-T,arch/x86/entry/vdso/vdso.lds arch/x86/entry/vdso/vdso-note.o arch/x86/entry/vdso/vclock_gettime.o arch/x86/entry/vdso/vgetcpu.o && sh ./arch/x86/entry/vdso/checkundef.sh 'nm' 'arch/x86/entry/vdso/vdso64.so.dbg' /usr/bin/ld: arch/x86/entry/vdso/vclock_gettime.o: relocation R_X86_64_32S against undefined hidden symbol `vvar_vsyscall_gtod_data' can not be used when making a shared object /usr/bin/ld: final link failed: Nonrepresentable section on output clang: error: linker command failed with exit code 1 (use -v to see invocation) objcopy -S --localize-hidden arch/x86/entry/vdso/vdso64.so.dbg arch/x86/entry/vdso/vdso64.so objcopy: 'arch/x86/entry/vdso/vdso64.so.dbg': No such file arch/x86/entry/vdso/Makefile:124: recipe for target 'arch/x86/entry/vdso/vdso64.so' failed make[6]: *** [arch/x86/entry/vdso/vdso64.so] Error 1 Cannot say stack-protector kconfig settings have an impact on this all. Thanks. Regards, - Sedat - --000000000000580a57056e370265 Content-Type: text/plain; charset="US-ASCII"; name="BROKEN_raw_cmpxchg.txt" Content-Disposition: attachment; filename="BROKEN_raw_cmpxchg.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ji7jbgss0 ICBpZiBbICItcGciID0gIi1wZyIgXTsgdGhlbiBpZiBbIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRz by1pbWFnZS02NC5vICE9ICJzY3JpcHRzL21vZC9lbXB0eS5vIiBdOyB0aGVuIC4vc2NyaXB0cy9y ZWNvcmRtY291bnQgICJhcmNoL3g4Ni9lbnRyeS92ZHNvL3Zkc28taW1hZ2UtNjQubyI7IGZpOyBm aTsKICBteWNvbXBpbGVyIC1FIC1XcCwtTUQsYXJjaC94ODYvZW50cnkvdmRzby92ZHNvMzIvLnZk c28zMi5sZHMuZCAgLW5vc3RkaW5jIC1pc3lzdGVtIC91c3IvbGliL2xsdm0tNy9saWIvY2xhbmcv Ny4wLjAvaW5jbHVkZSAtSS4vYXJjaC94ODYvaW5jbHVkZSAtSS4vYXJjaC94ODYvaW5jbHVkZS9n ZW5lcmF0ZWQgIC1JLi9pbmNsdWRlIC1JLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkgLUkuL2FyY2gv eDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkuL2luY2x1ZGUvdWFwaSAtSS4vaW5jbHVkZS9n ZW5lcmF0ZWQvdWFwaSAtaW5jbHVkZSAuL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIC1EX19LRVJO RUxfXyAtRENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUiAtUXVudXNlZC1hcmd1bWVudHMgICAgIC1Q IC1DIC1QIC1VeDg2IC1EX19BU1NFTUJMWV9fIC1ETElOS0VSX1NDUklQVCAtbyBhcmNoL3g4Ni9l bnRyeS92ZHNvL3Zkc28zMi92ZHNvMzIubGRzIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyL3Zk c28zMi5sZHMuUwogIG15Y29tcGlsZXIgLVdwLC1NRCxhcmNoL3g4Ni9lbnRyeS92ZHNvL3Zkc28z Mi8udmNsb2NrX2dldHRpbWUuby5kICAtbm9zdGRpbmMgLWlzeXN0ZW0gL3Vzci9saWIvbGx2bS03 L2xpYi9jbGFuZy83LjAuMC9pbmNsdWRlIC1JLi9hcmNoL3g4Ni9pbmNsdWRlIC1JLi9hcmNoL3g4 Ni9pbmNsdWRlL2dlbmVyYXRlZCAgLUkuL2luY2x1ZGUgLUkuL2FyY2gveDg2L2luY2x1ZGUvdWFw aSAtSS4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSS4vaW5jbHVkZS91YXBpIC1J Li9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1pbmNsdWRlIC4vaW5jbHVkZS9saW51eC9rY29uZmln LmggLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmggLURfX0tFUk5FTF9f IC1EQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SIC1RdW51c2VkLWFyZ3VtZW50cyAtV2FsbCAtV3Vu ZGVmIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVduby10cmlncmFwaHMgLWZuby1zdHJpY3QtYWxpYXNp bmcgLWZuby1jb21tb24gLWZzaG9ydC13Y2hhciAtV2Vycm9yLWltcGxpY2l0LWZ1bmN0aW9uLWRl Y2xhcmF0aW9uIC1Xbm8tZm9ybWF0LXNlY3VyaXR5IC1zdGQ9Z251ODkgLW5vLWludGVncmF0ZWQt YXMgLWZuby1QSUUgLW1uby1zc2UgLW1uby1tbXggLW1uby1zc2UyIC1tbm8tM2Rub3cgLW1uby1h dnggLW1uby04MDM4NyAtbXN0YWNrLWFsaWdubWVudD04IC1tdHVuZT1nZW5lcmljIC1tbm8tcmVk LXpvbmUgLWZ1bml0LWF0LWEtdGltZSAtRENPTkZJR19BU19DRkk9MSAtRENPTkZJR19BU19DRklf U0lHTkFMX0ZSQU1FPTEgLURDT05GSUdfQVNfQ0ZJX1NFQ1RJT05TPTEgLURDT05GSUdfQVNfRlhT QVZFUT0xIC1EQ09ORklHX0FTX1NTU0UzPTEgLURDT05GSUdfQVNfQ1JDMzI9MSAtRENPTkZJR19B U19BVlg9MSAtRENPTkZJR19BU19BVlgyPTEgLURDT05GSUdfQVNfQVZYNTEyPTEgLURDT05GSUdf QVNfU0hBMV9OST0xIC1EQ09ORklHX0FTX1NIQTI1Nl9OST0xIC1waXBlIC1Xbm8tc2lnbi1jb21w YXJlIC1mbm8tYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMgLW1yZXRwb2xpbmUtZXh0ZXJuYWwt dGh1bmsgLURSRVRQT0xJTkUgLU8yIC1XZnJhbWUtbGFyZ2VyLXRoYW49MjA0OCAtZnN0YWNrLXBy b3RlY3Rvci1zdHJvbmcgLVduby1mb3JtYXQtaW52YWxpZC1zcGVjaWZpZXIgLVduby1nbnUgLVdu by1hZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXIgLVduby10YXV0b2xvZ2ljYWwtY29tcGFyZSAtbW5v LWdsb2JhbC1tZXJnZSAtV25vLXVudXNlZC1jb25zdC12YXJpYWJsZSAtZyAtRENDX1VTSU5HX0ZF TlRSWSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV25vLXBvaW50ZXItc2lnbiAtZm5v LXN0cmljdC1vdmVyZmxvdyAtZm5vLW1lcmdlLWFsbC1jb25zdGFudHMgLWZuby1zdGFjay1jaGVj ayAtV2Vycm9yPWltcGxpY2l0LWludCAtV2Vycm9yPXN0cmljdC1wcm90b3R5cGVzIC1XZXJyb3I9 ZGF0ZS10aW1lIC1XZXJyb3I9aW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXMgLVduby1pbml0aWFs aXplci1vdmVycmlkZXMgLVduby11bnVzZWQtdmFsdWUgLVduby1mb3JtYXQgLVduby1zaWduLWNv bXBhcmUgLVduby1mb3JtYXQtemVyby1sZW5ndGggLVduby11bmluaXRpYWxpemVkIC1tMzIgLW1z b2Z0LWZsb2F0IC1tcmVncGFybT0wIC1mcGljIC1mbm8tc3RhY2stcHJvdGVjdG9yIC1mb3B0aW1p emUtc2libGluZy1jYWxscyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtRERJU0FCTEVfQlJBTkNI X1BST0ZJTElORyAgICAtREtCVUlMRF9CQVNFTkFNRT0nInZjbG9ja19nZXR0aW1lIicgLURLQlVJ TERfTU9ETkFNRT0nInZjbG9ja19nZXR0aW1lIicgLWMgLW8gYXJjaC94ODYvZW50cnkvdmRzby92 ZHNvMzIvLnRtcF92Y2xvY2tfZ2V0dGltZS5vIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyL3Zj bG9ja19nZXR0aW1lLmMKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFyY2gveDg2L2VudHJ5L3Zkc28v dmRzbzMyL3ZjbG9ja19nZXR0aW1lLmM6MzE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhcmNoL3g4 Ni9lbnRyeS92ZHNvL3Zkc28zMi8uLi92Y2xvY2tfZ2V0dGltZS5jOjE1OgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92Z3RvZC5oOjY6CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvY2xvY2tzb3VyY2UuaDoxMzoKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIC4vaW5jbHVkZS9saW51eC90aW1leC5oOjU2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9pbmNsdWRlL3VhcGkvbGludXgvdGltZXguaDo1NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4v aW5jbHVkZS9saW51eC90aW1lLmg6NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9s aW51eC9zZXFsb2NrLmg6MzY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgv c3BpbmxvY2suaDo1MToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9wcmVl bXB0Lmg6ODE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3By ZWVtcHQuaDo3OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9p bmZvLmg6Mzg6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Ro cmVhZF9pbmZvLmg6NTM6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUv YXNtL2NwdWZlYXR1cmUuaDo1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wcm9jZXNzb3IuaDoyMToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYv aW5jbHVkZS9hc20vbXNyLmg6Njc6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2F0b21pYy5oOjI4MzoKLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0 cnVtZW50ZWQuaDozNjU6MTA6IGVycm9yOiBpbnZhbGlkIG91dHB1dCBzaXplIGZvciBjb25zdHJh aW50ICc9YScKICAgICAgICAgICAgICAgIHJldHVybiBhcmNoX2NtcHhjaGcoKHU2NCAqKXB0ciwg KHU2NClvbGQsICh1NjQpbmV3KTsKICAgICAgICAgICAgICAgICAgICAgICBeCi4vYXJjaC94ODYv aW5jbHVkZS9hc20vY21weGNoZy5oOjE0OToyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdh cmNoX2NtcHhjaGcnCiAgICAgICAgX19jbXB4Y2hnKHB0ciwgb2xkLCBuZXcsIHNpemVvZigqKHB0 cikpKQogICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTM0OjI6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19fY21weGNoZycKICAgICAgICBfX3Jhd19jbXB4Y2hn KChwdHIpLCAob2xkKSwgKG5ldyksIChzaXplKSwgTE9DS19QUkVGSVgpCiAgICAgICAgXgouL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDo5NToxNzogbm90ZTogZXhwYW5kZWQgZnJvbSBt YWNybyAnX19yYXdfY21weGNoZycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YSIg KF9fcmV0KSwgIittIiAoKl9fcHRyKSAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gYXJjaC94ODYvZW50cnkv dmRzby92ZHNvMzIvdmNsb2NrX2dldHRpbWUuYzozMToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFy Y2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyLy4uL3ZjbG9ja19nZXR0aW1lLmM6MTU6CkluIGZpbGUg aW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ZndG9kLmg6NjoKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9jbG9ja3NvdXJjZS5oOjEzOgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWV4Lmg6NTY6CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAuL2luY2x1ZGUvdWFwaS9saW51eC90aW1leC5oOjU2OgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gLi9pbmNsdWRlL2xpbnV4L3RpbWUuaDo2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNs dWRlL2xpbnV4L3NlcWxvY2suaDozNjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9s aW51eC9zcGlubG9jay5oOjUxOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4 L3ByZWVtcHQuaDo4MToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9h c20vcHJlZW1wdC5oOjc6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvdGhy ZWFkX2luZm8uaDozODoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9h c20vdGhyZWFkX2luZm8uaDo1MzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5j bHVkZS9hc20vY3B1ZmVhdHVyZS5oOjU6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oOjIxOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9tc3IuaDo2NzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94 ODYvaW5jbHVkZS9hc20vYXRvbWljLmg6MjgzOgouL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWlj LWluc3RydW1lbnRlZC5oOjM2NToxMDogZXJyb3I6IGludmFsaWQgb3V0cHV0IHNpemUgZm9yIGNv bnN0cmFpbnQgJz1hJwouL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxNDk6Mjogbm90 ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYXJjaF9jbXB4Y2hnJwogICAgICAgIF9fY21weGNoZyhw dHIsIG9sZCwgbmV3LCBzaXplb2YoKihwdHIpKSkKICAgICAgICBeCi4vYXJjaC94ODYvaW5jbHVk ZS9hc20vY21weGNoZy5oOjEzNDoyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdfX2NtcHhj aGcnCiAgICAgICAgX19yYXdfY21weGNoZygocHRyKSwgKG9sZCksIChuZXcpLCAoc2l6ZSksIExP Q0tfUFJFRklYKQogICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTA0 OjE3OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdfX3Jhd19jbXB4Y2hnJwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogIj1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpICAgICAgICAg ICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5j bHVkZWQgZnJvbSBhcmNoL3g4Ni9lbnRyeS92ZHNvL3Zkc28zMi92Y2xvY2tfZ2V0dGltZS5jOjMx OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gYXJjaC94ODYvZW50cnkvdmRzby92ZHNvMzIvLi4vdmNs b2NrX2dldHRpbWUuYzoxNToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVk ZS9hc20vdmd0b2QuaDo2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L2Ns b2Nrc291cmNlLmg6MTM6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvdGlt ZXguaDo1NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4 Lmg6NTY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvdGltZS5oOjY6Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oOjM2OgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmg6NTE6CkluIGZpbGUgaW5j bHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oOjgxOgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcmVlbXB0Lmg6NzoKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIC4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oOjM4OgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oOjUzOgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmg6NToKSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmg6MjE6Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oOjY3OgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaDoyODM6Ci4v aW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmg6MzY1OjEwOiBlcnJvcjog aW52YWxpZCBvdXRwdXQgc2l6ZSBmb3IgY29uc3RyYWludCAnPWEnCi4vYXJjaC94ODYvaW5jbHVk ZS9hc20vY21weGNoZy5oOjE0OToyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdhcmNoX2Nt cHhjaGcnCiAgICAgICAgX19jbXB4Y2hnKHB0ciwgb2xkLCBuZXcsIHNpemVvZigqKHB0cikpKQog ICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTM0OjI6IG5vdGU6IGV4 cGFuZGVkIGZyb20gbWFjcm8gJ19fY21weGNoZycKICAgICAgICBfX3Jhd19jbXB4Y2hnKChwdHIp LCAob2xkKSwgKG5ldyksIChzaXplKSwgTE9DS19QUkVGSVgpCiAgICAgICAgXgouL2FyY2gveDg2 L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxMTM6MTc6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8g J19fcmF3X2NtcHhjaGcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWEiIChfX3Jl dCksICIrbSIgKCpfX3B0cikgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFyY2gveDg2L2VudHJ5L3Zkc28v dmRzbzMyL3ZjbG9ja19nZXR0aW1lLmM6MzE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhcmNoL3g4 Ni9lbnRyeS92ZHNvL3Zkc28zMi8uLi92Y2xvY2tfZ2V0dGltZS5jOjE1OgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92Z3RvZC5oOjY6CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvY2xvY2tzb3VyY2UuaDoxMzoKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIC4vaW5jbHVkZS9saW51eC90aW1leC5oOjU2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9pbmNsdWRlL3VhcGkvbGludXgvdGltZXguaDo1NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4v aW5jbHVkZS9saW51eC90aW1lLmg6NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9s aW51eC9zZXFsb2NrLmg6MzY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgv c3BpbmxvY2suaDo1MToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9wcmVl bXB0Lmg6ODE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3By ZWVtcHQuaDo3OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9p bmZvLmg6Mzg6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Ro cmVhZF9pbmZvLmg6NTM6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUv YXNtL2NwdWZlYXR1cmUuaDo1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wcm9jZXNzb3IuaDoyMToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYv aW5jbHVkZS9hc20vbXNyLmg6Njc6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2F0b21pYy5oOjI4MzoKLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0 cnVtZW50ZWQuaDozNjU6MTA6IGVycm9yOiBpbnZhbGlkIG91dHB1dCBzaXplIGZvciBjb25zdHJh aW50ICc9YScKLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTQ5OjI6IG5vdGU6IGV4 cGFuZGVkIGZyb20gbWFjcm8gJ2FyY2hfY21weGNoZycKICAgICAgICBfX2NtcHhjaGcocHRyLCBv bGQsIG5ldywgc2l6ZW9mKCoocHRyKSkpCiAgICAgICAgXgouL2FyY2gveDg2L2luY2x1ZGUvYXNt L2NtcHhjaGcuaDoxMzQ6Mjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnX19jbXB4Y2hnJwog ICAgICAgIF9fcmF3X2NtcHhjaGcoKHB0ciksIChvbGQpLCAobmV3KSwgKHNpemUpLCBMT0NLX1BS RUZJWCkKICAgICAgICBeCi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oOjEyMjoxNzog bm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnX19yYXdfY21weGNoZycKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSAgICAgICAgICAgICAg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gYXJjaC94ODYvZW50cnkvdmRzby92ZHNvMzIvdmNsb2NrX2dldHRpbWUuYzozMToKSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyLy4uL3ZjbG9ja19n ZXR0aW1lLmM6MTU6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNt L3ZndG9kLmg6NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9jbG9ja3Nv dXJjZS5oOjEzOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWV4Lmg6 NTY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvdWFwaS9saW51eC90aW1leC5oOjU2 OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWUuaDo2OgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3NlcWxvY2suaDozNjoKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oOjUxOgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gLi9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaDo4MToKSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oOjc6CkluIGZpbGUgaW5jbHVkZWQgZnJv bSAuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaDozODoKSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaDo1MzoKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oOjU6CkluIGZpbGUgaW5j bHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oOjIxOgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaDo2NzoKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmg6MjgzOgouL2luY2x1 ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oOjM5MToxMDogZXJyb3I6IGludmFs aWQgb3V0cHV0IHNpemUgZm9yIGNvbnN0cmFpbnQgJz1hJwogICAgICAgICAgICAgICAgcmV0dXJu IGFyY2hfc3luY19jbXB4Y2hnKCh1NjQgKilwdHIsICh1NjQpb2xkLCAodTY0KW5ldyk7CiAgICAg ICAgICAgICAgICAgICAgICAgXgouL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxNTI6 Mjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYXJjaF9zeW5jX2NtcHhjaGcnCiAgICAgICAg X19zeW5jX2NtcHhjaGcocHRyLCBvbGQsIG5ldywgc2l6ZW9mKCoocHRyKSkpCiAgICAgICAgXgou L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxMzc6Mjogbm90ZTogZXhwYW5kZWQgZnJv bSBtYWNybyAnX19zeW5jX2NtcHhjaGcnCiAgICAgICAgX19yYXdfY21weGNoZygocHRyKSwgKG9s ZCksIChuZXcpLCAoc2l6ZSksICJsb2NrOyAiKQogICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9jbXB4Y2hnLmg6OTU6MTc6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19fcmF3X2Nt cHhjaGcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWEiIChfX3JldCksICIrbSIg KCpfX3B0cikgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyL3Zj bG9ja19nZXR0aW1lLmM6MzE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhcmNoL3g4Ni9lbnRyeS92 ZHNvL3Zkc28zMi8uLi92Y2xvY2tfZ2V0dGltZS5jOjE1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92Z3RvZC5oOjY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAu L2luY2x1ZGUvbGludXgvY2xvY2tzb3VyY2UuaDoxMzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4v aW5jbHVkZS9saW51eC90aW1leC5oOjU2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRl L3VhcGkvbGludXgvdGltZXguaDo1NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9s aW51eC90aW1lLmg6NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9zZXFs b2NrLmg6MzY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvc3BpbmxvY2su aDo1MToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9wcmVlbXB0Lmg6ODE6 CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ByZWVtcHQuaDo3 OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmg6Mzg6 CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZv Lmg6NTM6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl YXR1cmUuaDo1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w cm9jZXNzb3IuaDoyMToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9h c20vbXNyLmg6Njc6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNt L2F0b21pYy5oOjI4MzoKLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQu aDozOTE6MTA6IGVycm9yOiBpbnZhbGlkIG91dHB1dCBzaXplIGZvciBjb25zdHJhaW50ICc9YScK Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTUyOjI6IG5vdGU6IGV4cGFuZGVkIGZy b20gbWFjcm8gJ2FyY2hfc3luY19jbXB4Y2hnJwogICAgICAgIF9fc3luY19jbXB4Y2hnKHB0ciwg b2xkLCBuZXcsIHNpemVvZigqKHB0cikpKQogICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9jbXB4Y2hnLmg6MTM3OjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19fc3luY19jbXB4 Y2hnJwogICAgICAgIF9fcmF3X2NtcHhjaGcoKHB0ciksIChvbGQpLCAobmV3KSwgKHNpemUpLCAi bG9jazsgIikKICAgICAgICBeCi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oOjEwNDox Nzogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnX19yYXdfY21weGNoZycKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSAgICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gYXJjaC94ODYvZW50cnkvdmRzby92ZHNvMzIvdmNsb2NrX2dldHRpbWUuYzozMToK SW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyLy4uL3ZjbG9j a19nZXR0aW1lLmM6MTU6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUv YXNtL3ZndG9kLmg6NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9jbG9j a3NvdXJjZS5oOjEzOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWV4 Lmg6NTY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvdWFwaS9saW51eC90aW1leC5o OjU2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWUuaDo2OgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3NlcWxvY2suaDozNjoKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oOjUxOgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaDo4MToKSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oOjc6CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaDozODoKSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaDo1MzoKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oOjU6CkluIGZpbGUg aW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oOjIxOgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaDo2NzoKSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmg6MjgzOgouL2lu Y2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oOjM5MToxMDogZXJyb3I6IGlu dmFsaWQgb3V0cHV0IHNpemUgZm9yIGNvbnN0cmFpbnQgJz1hJwouL2FyY2gveDg2L2luY2x1ZGUv YXNtL2NtcHhjaGcuaDoxNTI6Mjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYXJjaF9zeW5j X2NtcHhjaGcnCiAgICAgICAgX19zeW5jX2NtcHhjaGcocHRyLCBvbGQsIG5ldywgc2l6ZW9mKCoo cHRyKSkpCiAgICAgICAgXgouL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxMzc6Mjog bm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnX19zeW5jX2NtcHhjaGcnCiAgICAgICAgX19yYXdf Y21weGNoZygocHRyKSwgKG9sZCksIChuZXcpLCAoc2l6ZSksICJsb2NrOyAiKQogICAgICAgIF4K Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTEzOjE3OiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdfX3Jhd19jbXB4Y2hnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog Ij1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhcmNoL3g4Ni9l bnRyeS92ZHNvL3Zkc28zMi92Y2xvY2tfZ2V0dGltZS5jOjMxOgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gYXJjaC94ODYvZW50cnkvdmRzby92ZHNvMzIvLi4vdmNsb2NrX2dldHRpbWUuYzoxNToKSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vdmd0b2QuaDo2OgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L2Nsb2Nrc291cmNlLmg6MTM6CkluIGZp bGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvdGltZXguaDo1NjoKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4Lmg6NTY6CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvdGltZS5oOjY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAu L2luY2x1ZGUvbGludXgvc2VxbG9jay5oOjM2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNs dWRlL2xpbnV4L3NwaW5sb2NrLmg6NTE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUv bGludXgvcHJlZW1wdC5oOjgxOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wcmVlbXB0Lmg6NzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51 eC90aHJlYWRfaW5mby5oOjM4OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS90aHJlYWRfaW5mby5oOjUzOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmg6NToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJj aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmg6MjE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAu L2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oOjY3OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaDoyODM6Ci4vaW5jbHVkZS9hc20tZ2VuZXJpYy9h dG9taWMtaW5zdHJ1bWVudGVkLmg6MzkxOjEwOiBlcnJvcjogaW52YWxpZCBvdXRwdXQgc2l6ZSBm b3IgY29uc3RyYWludCAnPWEnCi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oOjE1Mjoy OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdhcmNoX3N5bmNfY21weGNoZycKICAgICAgICBf X3N5bmNfY21weGNoZyhwdHIsIG9sZCwgbmV3LCBzaXplb2YoKihwdHIpKSkKICAgICAgICBeCi4v YXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oOjEzNzoyOiBub3RlOiBleHBhbmRlZCBmcm9t IG1hY3JvICdfX3N5bmNfY21weGNoZycKICAgICAgICBfX3Jhd19jbXB4Y2hnKChwdHIpLCAob2xk KSwgKG5ldyksIChzaXplKSwgImxvY2s7ICIpCiAgICAgICAgXgouL2FyY2gveDg2L2luY2x1ZGUv YXNtL2NtcHhjaGcuaDoxMjI6MTc6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19fcmF3X2Nt cHhjaGcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWEiIChfX3JldCksICIrbSIg KCpfX3B0cikgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyL3Zj bG9ja19nZXR0aW1lLmM6MzE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhcmNoL3g4Ni9lbnRyeS92 ZHNvL3Zkc28zMi8uLi92Y2xvY2tfZ2V0dGltZS5jOjE1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92Z3RvZC5oOjY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAu L2luY2x1ZGUvbGludXgvY2xvY2tzb3VyY2UuaDoxMzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4v aW5jbHVkZS9saW51eC90aW1leC5oOjU2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRl L3VhcGkvbGludXgvdGltZXguaDo1NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9s aW51eC90aW1lLmg6NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9zZXFs b2NrLmg6MzY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvc3BpbmxvY2su aDo1MToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9wcmVlbXB0Lmg6ODE6 CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ByZWVtcHQuaDo3 OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmg6Mzg6 CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZv Lmg6NTM6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl YXR1cmUuaDo1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w cm9jZXNzb3IuaDoyMToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9h c20vbXNyLmg6Njc6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNt L2F0b21pYy5oOjI4MzoKLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQu aDo0MTg6MTA6IGVycm9yOiBpbnZhbGlkIG91dHB1dCBzaXplIGZvciBjb25zdHJhaW50ICc9YScK ICAgICAgICAgICAgICAgIHJldHVybiBhcmNoX2NtcHhjaGdfbG9jYWwoKHU2NCAqKXB0ciwgKHU2 NClvbGQsICh1NjQpbmV3KTsKICAgICAgICAgICAgICAgICAgICAgICBeCi4vYXJjaC94ODYvaW5j bHVkZS9hc20vY21weGNoZy5oOjE1NToyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdhcmNo X2NtcHhjaGdfbG9jYWwnCiAgICAgICAgX19jbXB4Y2hnX2xvY2FsKHB0ciwgb2xkLCBuZXcsIHNp emVvZigqKHB0cikpKQogICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6 MTQwOjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19fY21weGNoZ19sb2NhbCcKICAgICAg ICBfX3Jhd19jbXB4Y2hnKChwdHIpLCAob2xkKSwgKG5ldyksIChzaXplKSwgIiIpCiAgICAgICAg XgouL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDo5NToxNzogbm90ZTogZXhwYW5kZWQg ZnJvbSBtYWNybyAnX19yYXdfY21weGNoZycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSAgICAgICAgICAgICAgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gYXJjaC94ODYv ZW50cnkvdmRzby92ZHNvMzIvdmNsb2NrX2dldHRpbWUuYzozMToKSW4gZmlsZSBpbmNsdWRlZCBm cm9tIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyLy4uL3ZjbG9ja19nZXR0aW1lLmM6MTU6Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ZndG9kLmg6NjoKSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9jbG9ja3NvdXJjZS5oOjEzOgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWV4Lmg6NTY6CkluIGZpbGUgaW5j bHVkZWQgZnJvbSAuL2luY2x1ZGUvdWFwaS9saW51eC90aW1leC5oOjU2OgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWUuaDo2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9pbmNsdWRlL2xpbnV4L3NlcWxvY2suaDozNjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5j bHVkZS9saW51eC9zcGlubG9jay5oOjUxOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRl L2xpbnV4L3ByZWVtcHQuaDo4MToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5j bHVkZS9hc20vcHJlZW1wdC5oOjc6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGlu dXgvdGhyZWFkX2luZm8uaDozODoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5j bHVkZS9hc20vdGhyZWFkX2luZm8uaDo1MzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94 ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oOjU6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oOjIxOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaDo2NzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4v YXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmg6MjgzOgouL2luY2x1ZGUvYXNtLWdlbmVyaWMv YXRvbWljLWluc3RydW1lbnRlZC5oOjQxODoxMDogZXJyb3I6IGludmFsaWQgb3V0cHV0IHNpemUg Zm9yIGNvbnN0cmFpbnQgJz1hJwouL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxNTU6 Mjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYXJjaF9jbXB4Y2hnX2xvY2FsJwogICAgICAg IF9fY21weGNoZ19sb2NhbChwdHIsIG9sZCwgbmV3LCBzaXplb2YoKihwdHIpKSkKICAgICAgICBe Ci4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oOjE0MDoyOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdfX2NtcHhjaGdfbG9jYWwnCiAgICAgICAgX19yYXdfY21weGNoZygocHRyKSwg KG9sZCksIChuZXcpLCAoc2l6ZSksICIiKQogICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9jbXB4Y2hnLmg6MTA0OjE3OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdfX3Jhd19jbXB4 Y2hnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1hIiAoX19yZXQpLCAiK20iICgq X19wdHIpICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhcmNoL3g4Ni9lbnRyeS92ZHNvL3Zkc28zMi92Y2xv Y2tfZ2V0dGltZS5jOjMxOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gYXJjaC94ODYvZW50cnkvdmRz by92ZHNvMzIvLi4vdmNsb2NrX2dldHRpbWUuYzoxNToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4v YXJjaC94ODYvaW5jbHVkZS9hc20vdmd0b2QuaDo2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9p bmNsdWRlL2xpbnV4L2Nsb2Nrc291cmNlLmg6MTM6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2lu Y2x1ZGUvbGludXgvdGltZXguaDo1NjoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS91 YXBpL2xpbnV4L3RpbWV4Lmg6NTY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGlu dXgvdGltZS5oOjY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvc2VxbG9j ay5oOjM2OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmg6 NTE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oOjgxOgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcmVlbXB0Lmg6NzoK SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oOjM4OgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5o OjUzOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0 dXJlLmg6NToKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJv Y2Vzc29yLmg6MjE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNt L21zci5oOjY3OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9h dG9taWMuaDoyODM6Ci4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmg6 NDE4OjEwOiBlcnJvcjogaW52YWxpZCBvdXRwdXQgc2l6ZSBmb3IgY29uc3RyYWludCAnPWEnCi4v YXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oOjE1NToyOiBub3RlOiBleHBhbmRlZCBmcm9t IG1hY3JvICdhcmNoX2NtcHhjaGdfbG9jYWwnCiAgICAgICAgX19jbXB4Y2hnX2xvY2FsKHB0ciwg b2xkLCBuZXcsIHNpemVvZigqKHB0cikpKQogICAgICAgIF4KLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9jbXB4Y2hnLmg6MTQwOjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19fY21weGNoZ19s b2NhbCcKICAgICAgICBfX3Jhd19jbXB4Y2hnKChwdHIpLCAob2xkKSwgKG5ldyksIChzaXplKSwg IiIpCiAgICAgICAgXgouL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxMTM6MTc6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ19fcmF3X2NtcHhjaGcnCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0cikgICAgICAgICAgICAgIFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBm cm9tIGFyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyL3ZjbG9ja19nZXR0aW1lLmM6MzE6CkluIGZp bGUgaW5jbHVkZWQgZnJvbSBhcmNoL3g4Ni9lbnRyeS92ZHNvL3Zkc28zMi8uLi92Y2xvY2tfZ2V0 dGltZS5jOjE1OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92 Z3RvZC5oOjY6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvY2xvY2tzb3Vy Y2UuaDoxMzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC90aW1leC5oOjU2 OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL3VhcGkvbGludXgvdGltZXguaDo1NjoK SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC90aW1lLmg6NjoKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmg6MzY6CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaDo1MToKSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC4vaW5jbHVkZS9saW51eC9wcmVlbXB0Lmg6ODE6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAu L2FyY2gveDg2L2luY2x1ZGUvYXNtL3ByZWVtcHQuaDo3OgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9pbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmg6Mzg6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAu L2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmg6NTM6CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaDo1OgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaDoyMToKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmg6Njc6CkluIGZpbGUgaW5j bHVkZWQgZnJvbSAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oOjI4MzoKLi9pbmNsdWRl L2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaDo0MTg6MTA6IGVycm9yOiBpbnZhbGlk IG91dHB1dCBzaXplIGZvciBjb25zdHJhaW50ICc9YScKLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9j bXB4Y2hnLmg6MTU1OjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2FyY2hfY21weGNoZ19s b2NhbCcKICAgICAgICBfX2NtcHhjaGdfbG9jYWwocHRyLCBvbGQsIG5ldywgc2l6ZW9mKCoocHRy KSkpCiAgICAgICAgXgouL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoxNDA6Mjogbm90 ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnX19jbXB4Y2hnX2xvY2FsJwogICAgICAgIF9fcmF3X2Nt cHhjaGcoKHB0ciksIChvbGQpLCAobmV3KSwgKHNpemUpLCAiIikKICAgICAgICBeCi4vYXJjaC94 ODYvaW5jbHVkZS9hc20vY21weGNoZy5oOjEyMjoxNzogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNy byAnX19yYXdfY21weGNoZycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YSIgKF9f cmV0KSwgIittIiAoKl9fcHRyKSAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgoxMiBlcnJvcnMgZ2VuZXJhdGVkLgpzY3JpcHRzL01ha2VmaWxlLmJ1 aWxkOjMxMjogcmVjaXBlIGZvciB0YXJnZXQgJ2FyY2gveDg2L2VudHJ5L3Zkc28vdmRzbzMyL3Zj bG9ja19nZXR0aW1lLm8nIGZhaWxlZAptYWtlWzZdOiAqKiogW2FyY2gveDg2L2VudHJ5L3Zkc28v dmRzbzMyL3ZjbG9ja19nZXR0aW1lLm9dIEVycm9yIDEKc2NyaXB0cy9NYWtlZmlsZS5idWlsZDo1 NTk6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhcmNoL3g4Ni9lbnRyeS92ZHNvJyBmYWlsZWQKbWFrZVs1 XTogKioqIFthcmNoL3g4Ni9lbnRyeS92ZHNvXSBFcnJvciAyCnNjcmlwdHMvTWFrZWZpbGUuYnVp bGQ6NTU5OiByZWNpcGUgZm9yIHRhcmdldCAnYXJjaC94ODYvZW50cnknIGZhaWxlZAptYWtlWzRd OiAqKiogW2FyY2gveDg2L2VudHJ5XSBFcnJvciAyCk1ha2VmaWxlOjEwNjM6IHJlY2lwZSBmb3Ig dGFyZ2V0ICdhcmNoL3g4NicgZmFpbGVkCm1ha2VbM106ICoqKiBbYXJjaC94ODZdIEVycm9yIDIK ZGViaWFuL3J1bGVzOjQ6IHJlY2lwZSBmb3IgdGFyZ2V0ICdidWlsZCcgZmFpbGVkCm1ha2VbMl06 ICoqKiBbYnVpbGRdIEVycm9yIDIKZHBrZy1idWlsZHBhY2thZ2U6IGVycm9yOiBkZWJpYW4vcnVs ZXMgYnVpbGQgc3VicHJvY2VzcyByZXR1cm5lZCBleGl0IHN0YXR1cyAyCnNjcmlwdHMvcGFja2Fn ZS9NYWtlZmlsZTo3OTogcmVjaXBlIGZvciB0YXJnZXQgJ2JpbmRlYi1wa2cnIGZhaWxlZAptYWtl WzFdOiAqKiogW2JpbmRlYi1wa2ddIEVycm9yIDIKTWFrZWZpbGU6MTQwODogcmVjaXBlIGZvciB0 YXJnZXQgJ2JpbmRlYi1wa2cnIGZhaWxlZAptYWtlOiAqKiogW2JpbmRlYi1wa2ddIEVycm9yIDIK --000000000000580a57056e370265--