From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:39439) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hsRaz-0007qY-CJ for guix-patches@gnu.org; Tue, 30 Jul 2019 08:51:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hsRao-00065a-Om for guix-patches@gnu.org; Tue, 30 Jul 2019 08:51:13 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:40871) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hsRao-00065K-Cd for guix-patches@gnu.org; Tue, 30 Jul 2019 08:51:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hsRao-0002mX-8L for guix-patches@gnu.org; Tue, 30 Jul 2019 08:51:02 -0400 Subject: [bug#36856] build: Add julia-build-system Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:39153) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hsRZv-0006vl-VN for guix-patches@gnu.org; Tue, 30 Jul 2019 08:50:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hsRZl-0005V1-Nf for guix-patches@gnu.org; Tue, 30 Jul 2019 08:50:07 -0400 Received: from mail-io1-xd2e.google.com ([2607:f8b0:4864:20::d2e]:38999) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hsRZk-0005UG-QJ for guix-patches@gnu.org; Tue, 30 Jul 2019 08:49:57 -0400 Received: by mail-io1-xd2e.google.com with SMTP id f4so127765668ioh.6 for ; Tue, 30 Jul 2019 05:49:56 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Nicol=C3=B2?= Balzarotti Date: Tue, 30 Jul 2019 12:49:43 +0000 Message-ID: Content-Type: multipart/mixed; boundary="00000000000001c5f3058ee5728a" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 36856@debbugs.gnu.org --00000000000001c5f3058ee5728a Content-Type: multipart/alternative; boundary="00000000000001c5f1058ee57288" --00000000000001c5f1058ee57288 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello people! :) Lately I've been working a bit on julia packages support in guix. The good news first: I've been able to install dozen of them, including those depending on binaryprovider with simple workarounds. 1. By writing manually the deps.jl file (the one that saves the path of dynamic libraries in a julia const) 2. By "manually" writing required Package.toml files for old packages that are not using it yet (else julia cannot find them) 3. By adding a simple startup.jl script, inspired by what emacs does. This is simplified so I'm not sure it works for every corner case. #+begin_src julia let paths =3D [expanduser("~/.guix-profile"), "/run/current-system/profile"= ] ("GUIX_ENVIRONMENT" in keys(ENV)) && push!(paths, ENV["GUIX_ENVIRONMENT"]) empty!(LOAD_PATH) push!.(Ref(LOAD_PATH), joinpath.(paths, "share/julia/packages/")) push!(LOAD_PATH, "@stdlib") push!.(Ref(DEPOT_PATH), joinpath.(paths, "share/julia/")) nothing end #+end_src With those, I've been able to install the following (with their dependencies): - Plots.jl (GR.jl backend) - HTTP.jl - Gtk.jl - Gumbo.jl/Cascadia.jl - FileIO.jl - CSVFiles.jl ;; TODO: Fix warnings - JSON.jl - JSON2.jl - MsgPack.jl - DataFrames.jl - Query.jl - SQLite.jl - Interact.jl There is a phase called 'precompile' even if I could not get julia actually use the precompiled packages. This is similar to what emacs does (.el -> .elc). Even if currently this cache is not used, is useful to have this phase to verify that package import works. Now the bad news: this patch is really big (mostly because I wanted to be sure that in principle installing every package is possible. Before splitting the second patch into multiple small ones, I wanted to be sure that what I'm doing is somewhat correct. Also, even if I was able to install those by using a separate folder (with guix environment -L .), I'm getting this error now, and I don't know what is causing it (since I'm not touching those files): #+begin_example 626:19 2 (_ #) 293:34 1 (_ #(#(#(#(#(#(#(#(#(#(#(#(# "60.8.0") "60") "8") "0") "60.8.0esr") #) #) #) #) #) #) #)) 159:9 0 (_ #(#(#(#(#(#(#(#(#(#(#(#(# "60.8.0") "60") "8") "0") "60.8.0esr") #) #) #) #) #) #) #)) ice-9/eval.scm:159:9: Throw to key `srfi-34' with args `(#)'. #+end_example I hope somebody is willed to help getting this in a good state :) Thanks, Nicol=C3=B2! --00000000000001c5f1058ee57288 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello people! :)

Lately I= 9;ve been working a bit on julia packages support in guix.

The good news first: I've been able to install dozen of them, = including those depending on binaryprovider with simple workarounds.
<= div>1. By writing manually the deps.jl file (the one that saves the path of= dynamic libraries in a julia const)
2. By "manually" w= riting required Package.toml files for old packages that are not using it y= et (else julia cannot find them)
3. By adding a simple startup.jl= script, inspired by what emacs does. This is simplified so I'm not sur= e it works for every corner case.
#+begin_src julia
let paths =3D [expanduser("~/.guix-profile"), "/run/current= -system/profile"]
=C2=A0=C2=A0=C2=A0 ("GUIX_ENVIRONMENT" = in keys(ENV)) && push!(paths, ENV["GUIX_ENVIRONMENT"])=C2=A0=C2=A0=C2=A0 empty!(LOAD_PATH)
=C2=A0=C2=A0=C2=A0 push!.(Ref(LOAD= _PATH), joinpath.(paths, "share/julia/packages/"))
=C2=A0=C2= =A0=C2=A0 push!(LOAD_PATH, "@stdlib")
=C2=A0=C2=A0=C2=A0 push!= .(Ref(DEPOT_PATH), joinpath.(paths, "share/julia/"))
=C2=A0=C2= =A0=C2=A0 nothing
end
#+end_src

W= ith those, I've been able to install the following (with their dependen= cies):
- Plots.jl (GR.jl backend)
- HTTP.jl
- Gtk.jl
- G= umbo.jl/Cascadia.jl
- FileIO.jl
- CSVFiles.jl ;; TODO: Fix warnings- JSON.jl
- JSON2.jl
- MsgPack.jl
- DataFrames.jl
- Query.jl<= br>- SQLite.jl
- Interact.jl

There is a pha= se called 'precompile' even if I could not get julia actually use t= he precompiled packages. This is similar to what emacs does (.el -> .elc= ). Even if currently this cache is not used, is useful to have this phase t= o verify that package import works.

Now the bad ne= ws: this patch is really big (mostly because I wanted to be sure that in pr= inciple installing every package is possible. Before splitting the second p= atch into multiple small ones, I wanted to be sure that what I'm doing = is somewhat correct.

Also, even if I was able to i= nstall those by using a separate folder (with guix environment -L .), I'= ;m getting this error now, and I don't know what is causing it (since I= 'm not touching those files):

#+begin_example<= br>
=C2=A0=C2=A0 626:19=C2=A0 2 (_ #<directory (gnu packages g= nuzilla) 805fd20>)
=C2=A0=C2=A0 293:34=C2=A0 1 (_ #(#(#(#(#(#(#(#(#(#= (#(#(#<directory (gnu packages gnuzilla) 805fd20> "60.8.0")= "60") "8") "0") "60.8.0esr") #<= origin "https:/= /ftp.mozilla.org/pub/firefox/releas?>) #) #) #) #) #) #))
=C2=A0= =C2=A0=C2=A0 159:9=C2=A0 0 (_ #(#(#(#(#(#(#(#(#(#(#(#(#<directory (gnu p= ackages gnuzilla) 805fd20> "60.8.0") "60") "8&q= uot;) "0") "60.8.0esr") #<origin "https://ftp.mozilla.org/pub/firef= ox/releas?>) #) #) #) #) #) #))

ice-9/eval.scm:159:9: Throw t= o key `srfi-34' with args `(#<condition &message [message: "= ;icecat-makeicecat.patch: patch not found"] 8eeae0>)'.
#+end_example

I hope somebody is willed to h= elp getting this in a good state :)
Thanks, Nicol=C3=B2!
--00000000000001c5f1058ee57288-- --00000000000001c5f3058ee5728a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-build-Add-julia-build-system.patch" Content-Disposition: attachment; filename="0001-build-Add-julia-build-system.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jyptiwmg0 RnJvbSBjZDM4YTE2ZmJjOWY3OGE4ZWRhOTBjMjE1YTZkNjlhNTRmOWU2YzI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBuaXhvIDxuaWNvbG9Abml4by54eXo+CkRhdGU6IE1vbiwgMjkg SnVsIDIwMTkgMTg6NDU6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gYnVpbGQ6IEFkZCBq dWxpYS1idWlsZC1zeXN0ZW0uCgoqIGd1aXgvYnVpbGQvanVsaWEtYnVpbGQtc3lzdGVtLnNjbTog TmV3IGZpbGUuCiogZ3VpeC9idWlsZC1zeXN0ZW0vanVsaWEuc2NtOiBOZXcgZmlsZS4KKiBNYWtl ZmlsZS5hbTogQWRkZWQgbmV3IGZpbGVzLgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArCiBndWl4L2J1aWxkLXN5c3RlbS9qdWxpYS5zY20gICAgICAgfCAxMDYg KysrKysrKysrKysrKysrKysrKysrCiBndWl4L2J1aWxkL2p1bGlhLWJ1aWxkLXN5c3RlbS5zY20g fCAxNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDI1 NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9idWlsZC1zeXN0ZW0vanVs aWEuc2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9idWlsZC9qdWxpYS1idWlsZC1zeXN0ZW0u c2NtCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQppbmRleCAwYmQ4NWU4 ZmNmLi5kMTQ0ODcwNDVhIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5hbQorKysgYi9NYWtlZmlsZS5h bQpAQCAtMTI1LDYgKzEyNSw3IEBAIE1PRFVMRVMgPQkJCQkJXAogICBndWl4L2J1aWxkLXN5c3Rl bS9nbnUuc2NtCQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9ndWlsZS5zY20JCQlcCiAgIGd1aXgv YnVpbGQtc3lzdGVtL2hhc2tlbGwuc2NtCQkJXAorICBndWl4L2J1aWxkLXN5c3RlbS9qdWxpYS5z Y20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2xpbnV4LW1vZHVsZS5zY20JCVwKICAgZ3VpeC9i dWlsZC1zeXN0ZW0vbm9kZS5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL3Blcmwuc2NtCQkJ XApAQCAtMTgzLDYgKzE4NCw3IEBAIE1PRFVMRVMgPQkJCQkJXAogICBndWl4L2J1aWxkL3RleGxp dmUtYnVpbGQtc3lzdGVtLnNjbQkJXAogICBndWl4L2J1aWxkL3dhZi1idWlsZC1zeXN0ZW0uc2Nt CQlcCiAgIGd1aXgvYnVpbGQvaGFza2VsbC1idWlsZC1zeXN0ZW0uc2NtCQlcCisgIGd1aXgvYnVp bGQvanVsaWEtYnVpbGQtc3lzdGVtLnNjbQkJXAogICBndWl4L2J1aWxkL2xpbnV4LW1vZHVsZS1i dWlsZC1zeXN0ZW0uc2NtCVwKICAgZ3VpeC9idWlsZC9zdG9yZS1jb3B5LnNjbQkJCVwKICAgZ3Vp eC9idWlsZC9qc29uLnNjbQkJCQlcCmRpZmYgLS1naXQgYS9ndWl4L2J1aWxkLXN5c3RlbS9qdWxp YS5zY20gYi9ndWl4L2J1aWxkLXN5c3RlbS9qdWxpYS5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uYTU0YjBmMzdmMQotLS0gL2Rldi9udWxsCisrKyBiL2d1aXgvYnVp bGQtc3lzdGVtL2p1bGlhLnNjbQpAQCAtMCwwICsxLDEwNiBAQAorKGRlZmluZS1tb2R1bGUgKGd1 aXggYnVpbGQtc3lzdGVtIGp1bGlhKQorICAjOnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIGp1bGlh LWJ1aWxkLXN5c3RlbSkpCisgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGp1bGlhKQorICAj OnVzZS1tb2R1bGUgKGd1aXggc3RvcmUpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAg Izp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQorICAjOnVzZS1tb2R1bGUgKGd1aXggZGVyaXZh dGlvbnMpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzZWFyY2gtcGF0aHMpCisgICM6dXNlLW1vZHVs ZSAoZ3VpeCBidWlsZC1zeXN0ZW0pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0g Z251KQorICAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKHNyZmkg c3JmaS0yNikKKyAgIzpleHBvcnQgKCVqdWxpYS1idWlsZC1zeXN0ZW0tbW9kdWxlcworICAgICAg ICAgICAganVsaWEtYnVpbGQKKyAgICAgICAgICAgIGp1bGlhLWJ1aWxkLXN5c3RlbSkpCisKKyhk ZWZpbmUgJWp1bGlhLWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgIDs7IEJ1aWxkLXNpZGUgbW9kdWxl cyBpbXBvcnRlZCBieSBkZWZhdWx0LgorICBgKChndWl4IGJ1aWxkIGp1bGlhLWJ1aWxkLXN5c3Rl bSkKKyAgICAsQCVnbnUtYnVpbGQtc3lzdGVtLW1vZHVsZXMpKQorCisoZGVmaW5lKiAobG93ZXIg bmFtZQorICAgICAgICAgICAgICAgICM6a2V5IHNvdXJjZSBpbnB1dHMgbmF0aXZlLWlucHV0cyBv dXRwdXRzIHN5c3RlbSB0YXJnZXQKKyAgICAgICAgICAgICAgICAoanVsaWEganVsaWEpCisgICAg ICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzCisgICAgICAgICAgICAgICAgIzpyZXN0IGFy Z3VtZW50cykKKyAgIlJldHVybiBhIGJhZyBmb3IgTkFNRS4iCisgIChkZWZpbmUgcHJpdmF0ZS1r ZXl3b3JkcworICAgICcoIzp0YXJnZXQgIzpqdWxpYSAjOmlucHV0cyAjOm5hdGl2ZS1pbnB1dHMp KQorCisgIChhbmQgKG5vdCB0YXJnZXQpCQkJO1hYWDogbm8gY3Jvc3MtY29tcGlsYXRpb24KKyAg ICAgICAoYmFnCisJKG5hbWUgbmFtZSkKKwkoc3lzdGVtIHN5c3RlbSkKKwkoaG9zdC1pbnB1dHMg YCgsQChpZiBzb3VyY2UKKwkJCSAgICAgYCgoInNvdXJjZSIgLHNvdXJjZSkpCisJCQkgICAgICco KSkKKwkJICAgICAgICxAaW5wdXRzCisJCSAgICAgICA7OyBLZWVwIHRoZSBzdGFuZGFyZCBpbnB1 dHMgb2YgJ2dudS1idWlsZC1zeXN0ZW0nLgorCQkgICAgICAgLEAoc3RhbmRhcmQtcGFja2FnZXMp KSkKKwkoYnVpbGQtaW5wdXRzIGAoKCJqdWxpYSIgLGp1bGlhKQorCQkJLEBuYXRpdmUtaW5wdXRz KSkKKwkob3V0cHV0cyBvdXRwdXRzKQorCShidWlsZCBqdWxpYS1idWlsZCkKKwkoYXJndW1lbnRz IChzdHJpcC1rZXl3b3JkLWFyZ3VtZW50cyBwcml2YXRlLWtleXdvcmRzIGFyZ3VtZW50cykpKSkp CisKKyhkZWZpbmUqIChqdWxpYS1idWlsZCBzdG9yZSBuYW1lIGlucHV0cworICAgICAgICAgICAg ICAgICAgICAgICM6a2V5IHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICh0ZXN0cz8gI2Yp CisgICAgICAgICAgICAgICAgICAgICAgKHBhcmFsbGVsLXRlc3RzPyAjdCkKKyAgICAgICAgICAg ICAgICAgICAgICAodGVzdC1jb21tYW5kICcnKCJtYWtlIiAiY2hlY2siKSkKKyAgICAgICAgICAg ICAgICAgICAgICAocGhhc2VzICcoQCAoZ3VpeCBidWlsZCBqdWxpYS1idWlsZC1zeXN0ZW0pCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJXN0YW5kYXJkLXBoYXNlcykpCisgICAg ICAgICAgICAgICAgICAgICAgKG91dHB1dHMgJygib3V0IikpCisgICAgICAgICAgICAgICAgICAg ICAgOzsgKGluY2x1ZGUgKHF1b3RlICVkZWZhdWx0LWluY2x1ZGUpKQorICAgICAgICAgICAgICAg ICAgICAgIDs7IChleGNsdWRlIChxdW90ZSAlZGVmYXVsdC1leGNsdWRlKSkKKyAgICAgICAgICAg ICAgICAgICAgICAoc2VhcmNoLXBhdGhzICcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAoc3lz dGVtICglY3VycmVudC1zeXN0ZW0pKQorICAgICAgICAgICAgICAgICAgICAgIChndWlsZSAjZikK KyAgICAgICAgICAgICAgICAgICAgICAoaW1wb3J0ZWQtbW9kdWxlcyAlanVsaWEtYnVpbGQtc3lz dGVtLW1vZHVsZXMpCisgICAgICAgICAgICAgICAgICAgICAgKG1vZHVsZXMgJygoZ3VpeCBidWls ZCBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Z3VpeCBidWlsZCB1dGlscykpKSkKKyAgIkJ1aWxkIFNPVVJDRSB1c2luZyBKdWxpYSwgYW5kIHdp dGggSU5QVVRTLiIKKyAgKGRlZmluZSBidWlsZGVyCisgICAgYChiZWdpbgorICAgICAgICh1c2Ut bW9kdWxlcyAsQG1vZHVsZXMpCisgICAgICAgKGp1bGlhLWJ1aWxkICM6bmFtZSAsbmFtZQorICAg ICAgICAgICAgICAgICAgICAjOnNvdXJjZSAsKG1hdGNoIChhc3NvYy1yZWYgaW5wdXRzICJzb3Vy Y2UiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCg/IGRlcml2YXRpb24/IHNv dXJjZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVyaXZhdGlvbi0+b3V0 cHV0LXBhdGggc291cmNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzb3Vy Y2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNvdXJjZSkpCisgICAgICAgICAgICAgICAgICAgICM6c3lzdGVtICxzeXN0ZW0KKyAg ICAgICAgICAgICAgICAgICAgIzp0ZXN0LWNvbW1hbmQgLHRlc3QtY29tbWFuZAorICAgICAgICAg ICAgICAgICAgICAjOnRlc3RzPyAsdGVzdHM/CisgICAgICAgICAgICAgICAgICAgICM6cGhhc2Vz ICxwaGFzZXMKKyAgICAgICAgICAgICAgICAgICAgIzpvdXRwdXRzICVvdXRwdXRzCisgICAgICAg ICAgICAgICAgICAgIDs7ICM6aW5jbHVkZSAsaW5jbHVkZQorICAgICAgICAgICAgICAgICAgICA7 OyAjOmV4Y2x1ZGUgLGV4Y2x1ZGUKKyAgICAgICAgICAgICAgICAgICAgIzpzZWFyY2gtcGF0aHMg JywobWFwIHNlYXJjaC1wYXRoLXNwZWNpZmljYXRpb24tPnNleHAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC1wYXRocykKKyAgICAgICAgICAgICAgICAg ICAgIzppbnB1dHMgJWJ1aWxkLWlucHV0cykpKQorCisgIChkZWZpbmUgZ3VpbGUtZm9yLWJ1aWxk CisgICAgKG1hdGNoIGd1aWxlCisgICAgICAoKD8gcGFja2FnZT8pCisgICAgICAgKHBhY2thZ2Ut ZGVyaXZhdGlvbiBzdG9yZSBndWlsZSBzeXN0ZW0gIzpncmFmdD8gI2YpKQorICAgICAgKCNmICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHRoZSBkZWZhdWx0CisgICAg ICAgKGxldCogKChkaXN0cm8gKHJlc29sdmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2VzIGNvbW1l bmNlbWVudCkpKQorICAgICAgICAgICAgICAoZ3VpbGUgIChtb2R1bGUtcmVmIGRpc3RybyAnZ3Vp bGUtZmluYWwpKSkKKyAgICAgICAgIChwYWNrYWdlLWRlcml2YXRpb24gc3RvcmUgZ3VpbGUgc3lz dGVtICM6Z3JhZnQ/ICNmKSkpKSkKKworICAoYnVpbGQtZXhwcmVzc2lvbi0+ZGVyaXZhdGlvbiBz dG9yZSBuYW1lIGJ1aWxkZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzppbnB1 dHMgaW5wdXRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6c3lzdGVtIHN5c3Rl bQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOm1vZHVsZXMgaW1wb3J0ZWQtbW9k dWxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOm91dHB1dHMgb3V0cHV0cwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmd1aWxlLWZvci1idWlsZCBndWlsZS1m b3ItYnVpbGQpKQorCisoZGVmaW5lIGp1bGlhLWJ1aWxkLXN5c3RlbQorICAoYnVpbGQtc3lzdGVt CisgICAobmFtZSAnanVsaWEpCisgICAoZGVzY3JpcHRpb24gIlRoZSBidWlsZCBzeXN0ZW0gZm9y IEp1bGlhIHBhY2thZ2VzIikKKyAgIChsb3dlciBsb3dlcikpKQpkaWZmIC0tZ2l0IGEvZ3VpeC9i dWlsZC9qdWxpYS1idWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC9qdWxpYS1idWlsZC1zeXN0 ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjVmMjIyZjA4NTAK LS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxkL2p1bGlhLWJ1aWxkLXN5c3RlbS5zY20KQEAg LTAsMCArMSwxNDcgQEAKKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxkIGp1bGlhLWJ1aWxkLXN5 c3RlbSkKKyAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBnbnUtYnVpbGQtc3lzdGVtKSAjOnBy ZWZpeCBnbnU6KQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgIDs7ICM6dXNl LW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgIDs7ICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTExKQor ICA7OyAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0yNikKKyAgOzsgIzp1c2UtbW9kdWxlIChpY2Ut OSByZGVsaW0pCisgIDs7ICM6dXNlLW1vZHVsZSAoaWNlLTkgcmVnZXgpCisgICM6dXNlLW1vZHVs ZSAoaWNlLTkgbWF0Y2gpCisgICM6ZXhwb3J0ICglc3RhbmRhcmQtcGhhc2VzCisJICAgIGp1bGlh LWNyZWF0ZS1wYWNrYWdlLXRvbWwKKyAgICAgICAgICAgIGp1bGlhLWJ1aWxkKSkKKworOzsgKGRl ZmluZSogKHNldC1lbWFjcy1sb2FkLXBhdGggIzprZXkgc291cmNlIGlucHV0cyAjOmFsbG93LW90 aGVyLWtleXMpCis7OyAgIChkZWZpbmUgKGlucHV0cy0+ZGlyZWN0b3JpZXMgaW5wdXRzKQorOzsg ICAgICJFeHRyYWN0IHRoZSBkaXJlY3RvcnkgcGFydCBmcm9tIElOUFVUUy4iCis7OyAgICAgKG1h dGNoIGlucHV0cworOzsgICAgICAgKCgobmFtZXMgLiBkaXJlY3RvcmllcykgLi4uKSBkaXJlY3Rv cmllcykpKQorCis7OyAgIChkZWZpbmUgKGlucHV0LWRpcmVjdG9yeS0+ZWwtZGlyZWN0b3J5IGlu cHV0LWRpcmVjdG9yeSkKKzs7ICAgICAiUmV0dXJuIHRoZSBjb3JyZWN0IEVtYWNzIExpc3AgZGly ZWN0b3J5IGluIElOUFVULURJUkVDVE9SWSBvciAjZiwgaWYgdGhlcmUKKzs7IGlzIG5vIEVtYWNz IExpc3AgZGlyZWN0b3J5LiIKKzs7ICAgICAobGV0ICgobGVnYWN5LWVsaXNwLWRpcmVjdG9yeSAo c3RyaW5nLWFwcGVuZCBpbnB1dC1kaXJlY3RvcnkgJWxlZ2FjeS1pbnN0YWxsLXN1ZmZpeCkpCis7 OyAgICAgICAgICAgKGd1aXgtZWxpc3AtZGlyZWN0b3J5Cis7OyAgICAgICAgICAgIChzdHJpbmct YXBwZW5kCis7OyAgICAgICAgICAgICBpbnB1dC1kaXJlY3RvcnkgJWluc3RhbGwtc3VmZml4ICIv IgorOzsgICAgICAgICAgICAgKHN0b3JlLWRpcmVjdG9yeS0+ZWxwYS1uYW1lLXZlcnNpb24gaW5w dXQtZGlyZWN0b3J5KSkpKQorOzsgICAgICAgKGNvbmQKKzs7ICAgICAgICAoKGZpbGUtZXhpc3Rz PyBndWl4LWVsaXNwLWRpcmVjdG9yeSkgZ3VpeC1lbGlzcC1kaXJlY3RvcnkpCis7OyAgICAgICAg KChmaWxlLWV4aXN0cz8gbGVnYWN5LWVsaXNwLWRpcmVjdG9yeSkgbGVnYWN5LWVsaXNwLWRpcmVj dG9yeSkKKzs7ICAgICAgICAoZWxzZSAjZikpKSkKKworOzsgICAoZGVmaW5lIChpbnB1dC1kaXJl Y3Rvcmllcy0+ZWwtZGlyZWN0b3JpZXMgaW5wdXQtZGlyZWN0b3JpZXMpCis7OyAgICAgIlJldHVy biB0aGUgbGlzdCBvZiBFbWFjcyBMaXNwIGRpcmVjdG9yaWVzIGluIElOUFVULURJUkVDVE9SSUVT LiIKKzs7ICAgICAoZmlsdGVyLW1hcCBpbnB1dC1kaXJlY3RvcnktPmVsLWRpcmVjdG9yeSBpbnB1 dC1kaXJlY3RvcmllcykpCisKKzs7ICAgIlNldCB0aGUgRU1BQ1NMT0FEUEFUSCBlbnZpcm9ubWVu dCB2YXJpYWJsZSBzbyB0aGF0IGRlcGVuZGVuY2llcyBhcmUgZm91bmQuIgorOzsgICAobGV0KiAo KHNvdXJjZS1kaXJlY3RvcnkgKGdldGN3ZCkpCis7OyAgICAgICAgICAoaW5wdXQtZWxpc3AtZGly ZWN0b3JpZXMgKGlucHV0LWRpcmVjdG9yaWVzLT5lbC1kaXJlY3RvcmllcworOzsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXRzLT5kaXJlY3RvcmllcyBpbnB1dHMpKSkK Kzs7ICAgICAgICAgIChlbWFjcy1sb2FkLXBhdGgtdmFsdWUKKzs7ICAgICAgICAgICAoc3RyaW5n LWpvaW4KKzs7ICAgICAgICAgICAgKGFwcGVuZCBpbnB1dC1lbGlzcC1kaXJlY3RvcmllcyAobGlz dCBzb3VyY2UtZGlyZWN0b3J5KSkKKzs7ICAgICAgICAgICAgIjoiICdzdWZmaXgpKSkKKzs7ICAg ICAoc2V0ZW52ICJFTUFDU0xPQURQQVRIIiBlbWFjcy1sb2FkLXBhdGgtdmFsdWUpCis7OyAgICAg KGZvcm1hdCAjdCAiZW52aXJvbm1lbnQgdmFyaWFibGUgYEVNQUNTTE9BRFBBVEgnIHNldCB0byB+ YVxuIgorOzsgICAgICAgICAgICAgZW1hY3MtbG9hZC1wYXRoLXZhbHVlKSkpCisKKworKGRlZmlu ZSogKGluc3RhbGwgIzprZXkgb3V0cHV0cyBzb3VyY2UgIzphbGxvdy1vdGhlci1rZXlzKQorICAo bGV0KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQorCSAocGFja2FnZS1kaXIgKHN0 cmluZy1hcHBlbmQgb3V0ICIvc2hhcmUvanVsaWEvcGFja2FnZXMvIgorCQkJCSAgICAgKHN0cmlu Zy1hcHBlbmQKKwkJCQkgICAgICAoc3RyaXAtc3RvcmUtZmlsZS1uYW1lIHNvdXJjZSkpKSkpCisg ICAgKG1rZGlyLXAgcGFja2FnZS1kaXIpCisgICAgKGNvcHktcmVjdXJzaXZlbHkgc291cmNlIHBh Y2thZ2UtZGlyKSkKKyAgI3QpCisKKzs7IEZJWE1FOiBQcmVjb21waWxhdGlvbiBpcyB3b3JraW5n LCBidXQgSSBkb24ndCBrbm93IGhvdyB0byB0ZWxsCis7OyBqdWxpYSB0byB1c2UgdXNlIGl0LiBJ ZiBzZXR0aW5nIEhPTUUgdG8KKzs7IC9nbnUvc3RvcmUveGliNDhqeGtoaXkwZ3lsbm0zcTQzMHpm d2s2YW00N2gtcHJvZmlsZS9zaGFyZS9qdWxpYS9jb21waWxlZC8sCis7OyBqdWxpYSB0cmllcyB0 byB3cml0ZSBmaWxlcyB0aGVyZQorKGRlZmluZSogKHByZWNvbXBpbGUgIzprZXkgb3V0cHV0cyBz b3VyY2UgaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgKGRlZmluZSAoaW5wdXRzLT5kaXJl Y3RvcmllcyBpbnB1dHMpCisgICAgIkV4dHJhY3QgdGhlIGRpcmVjdG9yeSBwYXJ0IGZyb20gSU5Q VVRTLiIKKyAgICAobWF0Y2ggaW5wdXRzCisgICAgICAoKChuYW1lcyAuIGRpcmVjdG9yaWVzKSAu Li4pIGRpcmVjdG9yaWVzKSkpCisgIChsZXQqICgob3V0IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0 IikpCisJIChidWlsZGRpciAoc3RyaW5nLWFwcGVuZCBvdXQgIi9zaGFyZS9qdWxpYS8iKSkKKwkg KHBhY2FrZ2UgKHN0cmlwLXN0b3JlLWZpbGUtbmFtZSBzb3VyY2UpKSkKKyAgICAobWtkaXItcCBi dWlsZGRpcikKKyAgICAoc2V0ZW52ICJKVUxJQV9ERVBPVF9QQVRIIiBidWlsZGRpcikKKyAgICAo c2V0ZW52ICJKVUxJQV9MT0FEX1BBVEgiCisJICAgIChzdHJpbmctYXBwZW5kCisJICAgICAiQHN0 ZGxpYjoiCisJICAgICAoc3RyaW5nLWFwcGVuZCBvdXQgIi9zaGFyZS9qdWxpYS9wYWNrYWdlcy86 IikKKwkgICAgIChzdHJpbmctam9pbiAoaW5wdXRzLT5kaXJlY3RvcmllcyBpbnB1dHMpICIvc2hh cmUvanVsaWEvcGFja2FnZXMvOiIpKSkKKyAgICA7OyAoaW52b2tlICJqdWxpYSIgIi1lIiAoc3Ry aW5nLWFwcGVuZCAicHJpbnRsbihMT0FEX1BBVEgpIikpCisgICAgKGludm9rZSAianVsaWEiICIt ZSIgKHN0cmluZy1hcHBlbmQgInVzaW5nICIgcGFjYWtnZSkpCisgICAgKQorICAjdCkKKworOzsg KGRlZmluZSogKGNoZWNrICM6a2V5IG91dHB1dHMgc291cmNlIGlucHV0cyAjOmFsbG93LW90aGVy LWtleXMpCis7OyAgIChkZWZpbmUgKGlucHV0cy0+ZGlyZWN0b3JpZXMgaW5wdXRzKQorOzsgICAg ICJFeHRyYWN0IHRoZSBkaXJlY3RvcnkgcGFydCBmcm9tIElOUFVUUy4iCis7OyAgICAgKG1hdGNo IGlucHV0cworOzsgICAgICAgKCgobmFtZXMgLiBkaXJlY3RvcmllcykgLi4uKSBkaXJlY3Rvcmll cykpKQorOzsgICAobGV0KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQorOzsgCSAo YnVpbGRkaXIgKHN0cmluZy1hcHBlbmQgb3V0ICIvc2hhcmUvanVsaWEvIikpCis7OyAJIChwYWNh a2dlIChzdHJpcC1zdG9yZS1maWxlLW5hbWUgc291cmNlKSkpCis7OyAgICAgKG1rZGlyLXAgYnVp bGRkaXIpCis7OyAgICAgKHNldGVudiAiSlVMSUFfREVQT1RfUEFUSCIgYnVpbGRkaXIpCis7OyAg ICAgKHNldGVudiAiSlVMSUFfTE9BRF9QQVRIIgorOzsgICAgIAkgICAgKHN0cmluZy1hcHBlbmQK Kzs7IAkgICAgICJAOkB2Iy4jOkBzdGRsaWI6IgorOzsgICAgIAkgICAgIChzdHJpbmctYXBwZW5k IG91dCAiL3NoYXJlL2p1bGlhL3BhY2thZ2VzLzoiKQorOzsgICAgIAkgICAgIChzdHJpbmctam9p biAoaW5wdXRzLT5kaXJlY3RvcmllcyBpbnB1dHMpICIvc2hhcmUvanVsaWEvcGFja2FnZXMvOiIp KSkKKzs7ICAgICA7OyAoaW52b2tlICJqdWxpYSIgIi1lIiAoc3RyaW5nLWFwcGVuZCAicHJpbnRs bihMT0FEX1BBVEgpIikpCis7OyAgICAgKGludm9rZSAianVsaWEiICItZSIgKHN0cmluZy1hcHBl bmQgInVzaW5nIFBrZzsgUGtnLnRlc3QoXCIiIHBhY2FrZ2UgIlwiKSIpKQorOzsgICAgICkKKzs7 ICAgI3QpCisKKzs7KiAKKyhkZWZpbmUgKGp1bGlhLWNyZWF0ZS1wYWNrYWdlLXRvbWwgb3V0cHV0 cyBzb3VyY2UKKwkJCQkgICBuYW1lIHV1aWQgdmVyc2lvbgorCQkJCSAgIGRlcHMpIAorICAobGV0 ICgoZiAob3Blbi1maWxlCisJICAgIChzdHJpbmctYXBwZW5kCisJICAgICAoYXNzb2MtcmVmIG91 dHB1dHMgIm91dCIpCisJICAgICAiL3NoYXJlL2p1bGlhL3BhY2thZ2VzLyIKKwkgICAgIChzdHJp bmctYXBwZW5kCisJICAgICAgbmFtZSAiL1Byb2plY3QudG9tbCIpKQorCSAgICAidyIpKSkKKyAg ICAoZGlzcGxheSAoc3RyaW5nLWFwcGVuZAorCSAgICAgICIKK25hbWUgPSBcIiIgbmFtZSAiXCIK K3V1aWQgPSBcIiIgdXVpZCAiXCIKK3ZlcnNpb24gPSBcIiIgdmVyc2lvbiAiXCIKKyIpIGYpCisg ICAgKHdoZW4gKG5vdCAobnVsbD8gZGVwcykpCisgICAgICAoZGlzcGxheSAiW2RlcHNdXG4iIGYp CisgICAgICAoZm9yLWVhY2ggKGxhbWJkYSBkZXAKKwkJICAoZGlzcGxheSAoc3RyaW5nLWFwcGVu ZCAoY2FyIChjYXIgZGVwKSkgIiA9IFwiIiAoY2RyIChjYXIgZGVwKSkgIlwiXG4iKQorCQkJICAg ZikpCisJCWRlcHMpKQorICAgIChjbG9zZS1wb3J0IGYpKQorICAjdCkKKworKGRlZmluZSAlc3Rh bmRhcmQtcGhhc2VzCisgIChtb2RpZnktcGhhc2VzIGdudTolc3RhbmRhcmQtcGhhc2VzCisgICAg KHJlcGxhY2UgJ2luc3RhbGwgaW5zdGFsbCkKKyAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdwcmVj b21waWxlIHByZWNvbXBpbGUpCisgICAgOzsgKHJlcGxhY2UgJ2NoZWNrIGNoZWNrKQorICAgIDs7 IChhZGQtYWZ0ZXIgJ3VucGFjayAnc2V0LWp1bGlhLWxvYWQtcGF0aCBzZXQtanVsaWEtbG9hZC1w YXRoKQorICAgIChkZWxldGUgJ2NvbmZpZ3VyZSkKKyAgICAoZGVsZXRlICdib290c3RyYXApCisg ICAgKGRlbGV0ZSAncGF0Y2gtdXNyLWJpbi1maWxlKQorICAgIChkZWxldGUgJ2J1aWxkKQorICAg IChkZWxldGUgJ3Jlc2V0LWd6aXAtdGltZXN0YW1wcykKKyAgICAoZGVsZXRlICdjaGVjaykpKQor CisoZGVmaW5lKiAoanVsaWEtYnVpbGQgIzprZXkgaW5wdXRzIChwaGFzZXMgJXN0YW5kYXJkLXBo YXNlcykKKyAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0IGFy Z3MpCisgICJCdWlsZCB0aGUgZ2l2ZW4gSnVsaWEgcGFja2FnZSwgYXBwbHlpbmcgYWxsIG9mIFBI QVNFUyBpbiBvcmRlci4iCisgIChhcHBseSBnbnU6Z251LWJ1aWxkCisgICAgICAgICAjOmlucHV0 cyBpbnB1dHMgIzpwaGFzZXMgcGhhc2VzCisgICAgICAgICBhcmdzKSkKLS0gCjIuMjIuMAoK --00000000000001c5f3058ee5728a Content-Type: text/x-patch; charset="US-ASCII"; name="0002-add-many-julia-packages.patch" Content-Disposition: attachment; filename="0002-add-many-julia-packages.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jyptiwp81 RnJvbSA1YTdhMjM1ZTJhYTgxZjJiN2E2NWE3MTAxZjc5Zjg2MmQxYjA2ZTdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBuaXhvIDxuaWNvbG9Abml4by54eXo+CkRhdGU6IFR1ZSwgMzAg SnVsIDIwMTkgMTQ6MzM6MjMgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvMl0gYWRkIG1hbnkganVs aWEgcGFja2FnZXMKCi0tLQogZ251L2xvY2FsLm1rICAgICAgICAgICAgICAgfCAgICAxICsKIGdu dS9wYWNrYWdlcy9qdWxpYS14eXouc2NtIHwgMzUxMCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzUxMSBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgZ251L3BhY2thZ2VzL2p1bGlhLXh5ei5zY20KCmRpZmYgLS1naXQgYS9nbnUv bG9jYWwubWsgYi9nbnUvbG9jYWwubWsKaW5kZXggYmQ1MDk2NDdkYy4uODQ5OWQ1YjM4MiAxMDA2 NDQKLS0tIGEvZ251L2xvY2FsLm1rCisrKyBiL2dudS9sb2NhbC5tawpAQCAtMjY1LDYgKzI2NSw3 IEBAIEdOVV9TWVNURU1fTU9EVUxFUyA9CQkJCVwKICAgJUQlL3BhY2thZ2VzL2pybmwuc2NtCQkJ CVwKICAgJUQlL3BhY2thZ2VzL2pvc2Uuc2NtCQkJCVwKICAgJUQlL3BhY2thZ2VzL2p1bGlhLnNj bQkJCVwKKyAgJUQlL3BhY2thZ2VzL2p1bGlhLXh5ei5zY20JCQlcCiAgICVEJS9wYWNrYWdlcy9r YXdhLnNjbQkJCQlcCiAgICVEJS9wYWNrYWdlcy9rZGUuc2NtCQkJCVwKICAgJUQlL3BhY2thZ2Vz L2tkZS1mcmFtZXdvcmtzLnNjbQkJXApkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL2p1bGlhLXh5 ei5zY20gYi9nbnUvcGFja2FnZXMvanVsaWEteHl6LnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi43NzBkMmViNmU3Ci0tLSAvZGV2L251bGwKKysrIGIvZ251L3BhY2th Z2VzL2p1bGlhLXh5ei5zY20KQEAgLTAsMCArMSwzNTEwIEBACisoZGVmaW5lLW1vZHVsZSAoZ251 IHBhY2thZ2VzIGp1bGlhLXh5eikKKyAgIzp1c2UtbW9kdWxlICgoZ3VpeCBsaWNlbnNlcykgIzpw cmVmaXggbGljZW5zZTopCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBwYWNrYWdlcykKKyAgIzp1c2Ut bW9kdWxlIChndWl4IGRvd25sb2FkKQorICAjOnVzZS1tb2R1bGUgKGd1aXggdXRpbHMpCisgICM6 dXNlLW1vZHVsZSAoZ3VpeCBnaXQtZG93bmxvYWQpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWls ZC1zeXN0ZW0ganVsaWEpCisgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzKQorICAjOnVzZS1t b2R1bGUgKGdudSBwYWNrYWdlcyBqdWxpYSkKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMg dmVyc2lvbi1jb250cm9sKQorICAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQorICA7OyBwYWNh a2dlIGRlcGVuZGVuY2llcworICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBjb21wcmVzc2lv bikKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgY3VybCkKKyAgIzp1c2UtbW9kdWxlIChn bnUgcGFja2FnZXMgZ2xpYikKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgdGxzKQorICAj OnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB2aWRlbykKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFj a2FnZXMgZ3RrKQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBweXRob24teHl6KQorICAj OnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB3ZWIpCisgICM6dXNlLW1vZHVsZSAoZ251IHBhY2th Z2VzIG1hdGhzKQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBzcWxpdGUpCisgICkKKwor OzsgV29ya2luZyB0b3AtbGV2ZWwgcGFja2FnZXM6Cis7OyAtIFBsb3RzLmpsIChHUi5qbCBiYWNr ZW5kKQorOzsgLSBIVFRQLmpsCis7OyAtIEd0ay5qbAorOzsgLSBHdW1iby5qbC9DYXNjYWRpYS5q bAorOzsgLSBGaWxlSU8uamwKKzs7IC0gQ1NWRmlsZXMuamwgOzsgVE9ETzogRml4IHdhcm5pbmdz Cis7OyAtIEpTT04uamwKKzs7IC0gSlNPTjIuamwKKzs7IC0gTXNnUGFjay5qbAorOzsgLSBEYXRh RnJhbWVzLmpsCis7OyAtIFF1ZXJ5LmpsCis7OyAtIFNRTGl0ZS5qbAorOzsgLSBJbnRlcmFjdC5q bAorOzsgOzsgLSBXSVAgR3RrUmVhY3RpdmUuamwKKzs7IHByb2JsZW1zOgorOzsgLSBSZXZpc2Uu amw6IG5vIGxhb2RlZCBwcm9qZWN0cywgaXNzdWVzIGEgd2FybmluZworOzsgLSBJSnVsaWEuamw6 IEknbSBub3QgbXlzZWxmIGFuIElqdWxpYSB1c2VyLCBidXQgaXQgd291bGQgbmljZSB0byBzdXBw b3J0IGl0LgorOzsgICBob3dldmVyIGl0IHNlZW1zIHRvIHdhbnQgdG8gaW5zdGFsbCB0aGluZ3Mg dG8gdGhlIFhER19EQVRBX0hPTUUgcGF0aCwgSlVQWVRFUl9EQVRBX0RJUgorOzsgVGhvc2UgZXhh bXBsZXMgc2hvdWxkIGV4cGxhaW4gaG93IHRvIGFkZCBuZXcgcGFja2FnZXMgYW5kIGhvdyB0bwor OzsgZml4IHBvc3NpYmxlIHByb2JsZW1zCisKKzs7OyBUTyBHRVQgSVQgV09SS0lORywgYWRkIHRo aXMgdG8geW91ciB+Ly5qdWxpYS9jb25maWcvc3RhcnR1cC5qbCBmaWxlCisKKzs7IGxldCBwYXRo cyA9IFtleHBhbmR1c2VyKCJ+Ly5ndWl4LXByb2ZpbGUiKSwgIi9ydW4vY3VycmVudC1zeXN0ZW0v cHJvZmlsZSJdCis7OyAgICAgKCJHVUlYX0VOVklST05NRU5UIiBpbiBrZXlzKEVOVikpICYmIHB1 c2ghKHBhdGhzLCBFTlZbIkdVSVhfRU5WSVJPTk1FTlQiXSkKKzs7ICAgICBlbXB0eSEoTE9BRF9Q QVRIKQorOzsgICAgICMgZiA9IHBvcGZpcnN0IShERVBPVF9QQVRIKQorOzsgICAgIHB1c2ghLihS ZWYoTE9BRF9QQVRIKSwgam9pbnBhdGguKHBhdGhzLCAic2hhcmUvanVsaWEvcGFja2FnZXMvIikp Cis7OyAgICAgcHVzaCEoTE9BRF9QQVRILCAiQHN0ZGxpYiIpCis7OyAgICAgcHVzaCEuKFJlZihE RVBPVF9QQVRIKSwgam9pbnBhdGguKHBhdGhzLCAic2hhcmUvanVsaWEvIikpCis7OyAgICAgIyBw dXNoIShERVBPVF9QQVRILCBmKQorOzsgICAgIG5vdGhpbmcKKzs7IGVuZAorCis7OzsgVGhpcyBp cyBpbnNwaXJlZCBieSBlbWFjcy14eXogYW5kIGhvdyBlbWFjcyBmaW5kcyBkZXBlbmRlbmNpZXMg YXQKKzs7OyBzdGFydHVwLiAgSXQncyBzaW1wbGlmaWVkIGJ1dCBzZWVtcyB0byBkbyB0aGUgam9i LCBmb3Igbm93LiAgQWxzbywKKzs7OyBqdWxpYSB3aWxsIHN0aWxsIHByZWNvbXBpbGUgdGhpbmdz IHRvIGEgZm9sZGVyIGluc2lkZSAkSE9NRQorOzs7ICgkSE9NRS8uanVsaWEvY29tcGlsZWQpLiAg UHJlY29tcGlsYXRpb24gZHVyaW5nIGluc3RhbGwgaXMgbm90Cis7OzsgcG9zc2libGUgKGp1bGlh IGF0IHJ1bnRpbWUgd2lsbCBzdGlsbCBwcmVjb21waWxlIHRvIHRoZSBob21lCis7OzsgZGlyZWN0 b3J5LiBDaGFpbmdpbmcgdGhlIGhvbWUgZGlyZWN0b3J5IHRvIHRoZSAkR1VJWF9FTlZJUk9OTUVO VAorOzs7IHBhdGggZG9lcyBub3Qgd29yayBiZWNhdXNlIGl0J3MgcmVhZG9ubHkgYW5kIGp1bGlh IHdhbnRzIHRvIHdyaXRlCis7OzsgdGhlcmUuIFNvIGZvciBub3csIHRvIGVuc3VyZSBhIGNsZWFu IGVudmlyb25tZW50LCBydW4ganVsaWEgd2l0aAorOzs7IEhPTUU9JChta3RlbXAgLWQpIGp1bGlh LgorOzs7IFRPRE86IEZpbmQgYSBiZXR0ZXIgd2F5IChlLmcuLCBwYXRjaGluZyBqdWxpYSkKKwor KGRlZmluZS1wdWJsaWMganVsaWEtaW5pZmlsZQorICAocGFja2FnZQorICAgIChuYW1lICJqdWxp YS1pbmlmaWxlIikKKyAgICAodmVyc2lvbiAiMC41LjAiKQorICAgIChzb3VyY2UgKG9yaWdpbgor CSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJ ICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUlPL0luaUZpbGUuamwuZ2l0IikKKwkJ ICAgIDs7IG1hc3RlciBicmFuY2ggZG9lcyBub3QgaGF2ZSBhIFByb2plY3QudG9tbCBmaWxlCisJ CSAgICAoY29tbWl0ICI4YmE1OTk1ODQ5NWZhMjc2ZDY0ODlkMmMzOTAzZTc2NWQ3NWUwYmMwIikp KQorCSAgICAgIChmaWxlLW5hbWUgIkluaUZpbGUiKQorCSAgICAgIChzaGEyNTYKKwkgICAgICAg KGJhc2UzMiAiMTFoNmY5OWpwYmc3MjlscGx3ODQxbTY4anBya2E3cTNuOHl3MzkwYm5kbG1jZHNq YWJwZCIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKSkKKyAgICAoYnVpbGQtc3lzdGVt IGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20v SnVsaWFJTy9JbmlGaWxlLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlw dGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGlj IGp1bGlhLWNvbXBhdAorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1jb21wYXQiKQorICAg ICh2ZXJzaW9uICIyLjEuMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBn aXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhTGFuZy9Db21wYXQuamwuZ2l0IikKKwkJICAgIChjb21taXQgImE2 YjI4MzFjNDM4YmY5ZjA2ZjVkZGJmZGQ0M2M1MzY4YTc3NmVhYjQiKSkpCisJICAgICAgKGZpbGUt bmFtZSAiQ29tcGF0IikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjF5bmw5OXcz eWxodnpyd3gyd2Jmdm14bHo0ang3dndjazJuaDdqODhhMHd6c3lnaXBtZjIiKSkpKQorICAgIChw cm9wYWdhdGVkLWlucHV0cyBgKCkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0 ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhTGFuZy9Db21wYXQu amwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChs aWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtYmluYXJ5cHJv dmlkZXIKKyAgOzsgSW4gdGhlb3J5IHdlIHNob3VsZCByZXBsYWNlIHRoaXMgd2l0aCBhIHBhY2th Z2UgdGhhdCBlcnJvcnMgd2hlbiB1c2VkCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWJp bmFyeXByb3ZpZGVyIikKKyAgICAodmVyc2lvbiAiMC41LjUiKQorICAgIChzb3VyY2UgKG9yaWdp bgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UK KwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVBhY2thZ2luZy9CaW5hcnlQcm92 aWRlci5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikp KSkKKwkgICAgICAoZmlsZS1uYW1lICJCaW5hcnlQcm92aWRlciIpCisJICAgICAgKHNoYTI1Ngor CSAgICAgICAoYmFzZTMyICIxcGFwc3o1a2k1aXd2MXYzYWMxZGR5Ymp4YWs5M255ZGg3ZHFjMzIz MXptMGZ6ZDkxOHlzIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLXNoYSIg LGp1bGlhLXNoYSkKKwkJCSA7OyAoImp1bGlhLWxvZ2dpbmciICxqdWxpYS1sb2dnaW5nKQorCQkJ ICkpCisgICAgKGFyZ3VtZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgOzsgd2FudHMgdG8g ZG93bmxvYWQgdGhpbmdzIHdpdGggY3VybC93Z2V0CisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0 YW5kYXJkLXBoYXNlcyAoZGVsZXRlICdwcmVjb21waWxlKSkpKQorICAgIChidWlsZC1zeXN0ZW0g anVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9K dWxpYVBhY2thZ2luZy9CaW5hcnlQcm92aWRlci5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikK KyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCiso ZGVmaW5lLXB1YmxpYyBqdWxpYS1tYmVkdGxzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlh LW1iZWR0bHMiKQorICAgICh2ZXJzaW9uICIwLjcuMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJ ICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkg ICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhV2ViL01iZWRUTFMuamwuZ2l0IikKKwkJ ICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUt bmFtZSAiTWJlZFRMUyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIxYThzbnc5 Z2kyMWxtNnIza2g2bHk3bmdpOTlzOWs1c2hxa2ZpaXpqM2c5bGkyMHEyM2gyIikpKSkKKyAgICAo cHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLWJpbmFyeXByb3ZpZGVyIiAsanVsaWEtYmluYXJ5 cHJvdmlkZXIpCisJCQkgKCJtYmVkdGxzLWFwYWNoZSIgLG1iZWR0bHMtYXBhY2hlKSkpCisgICAg KGFyZ3VtZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5k YXJkLXBoYXNlcworCSAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnYnVpbGQtZGVwcworCSAgIChs YW1iZGEqICgjOmtleSBvdXRwdXRzIHNvdXJjZSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQor CSAgICAgKGxldCAoKGYgKG9wZW4tZmlsZQorCQkgICAgICAgKHN0cmluZy1hcHBlbmQKKwkJCShh c3NvYy1yZWYgb3V0cHV0cyAib3V0IikKKwkJCSIvc2hhcmUvanVsaWEvcGFja2FnZXMvIgorCQkJ KHN0cmluZy1hcHBlbmQKKwkJCSAoc3RyaXAtc3RvcmUtZmlsZS1uYW1lIHNvdXJjZSkgIi9kZXBz L2RlcHMuamwiKSkKKwkJICAgICAgICJ3IikpKQorCSAgICAgICAoZGlzcGxheSAoc3RyaW5nLWFw cGVuZCAiY29uc3QgbGlibWJlZGNyeXB0byA9IFwiIgorCQkJCSAgICAgICAoYXNzb2MtcmVmIGlu cHV0cyAibWJlZHRscy1hcGFjaGUiKQorCQkJCSAgICAgICAiL2xpYi9saWJtYmVkY3J5cHRvLnNv XCJcbiIpIGYpCisJICAgICAgIChkaXNwbGF5IChzdHJpbmctYXBwZW5kICJjb25zdCBsaWJtYmVk dGxzID0gXCIiCisJCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJtYmVkdGxzLWFwYWNoZSIp CisJCQkJICAgICAgICIvbGliL2xpYm1iZWR0bHMuc29cIlxuIikgZikKKwkgICAgICAgKGRpc3Bs YXkgKHN0cmluZy1hcHBlbmQgImNvbnN0IGxpYm1iZWR4NTA5ID0gXCIiCisJCQkJICAgICAgIChh c3NvYy1yZWYgaW5wdXRzICJtYmVkdGxzLWFwYWNoZSIpCisJCQkJICAgICAgICIvbGliL2xpYm1i ZWR4NTA5LnNvXCJcbiIpIGYpCisJICAgICAgIChjbG9zZS1wb3J0IGYpKQorCSAgICAgI3QpCisJ ICAgKSkpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVdlYi9NYmVkVExTLmpsLmdpdCIpCisgICAg KHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNl OmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWJpbmRlcHMKKyAgKHBhY2thZ2UKKyAg ICAobmFtZSAianVsaWEtYmluZGVwcyIpCisgICAgKHZlcnNpb24gIjAuOC4xMCIpCisgICAgKHNv dXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0 LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhUGFja2FnaW5n L0JpbkRlcHMuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNp b24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiQmluRGVwcyIpCisJICAgICAgKHNoYTI1NgorCSAg ICAgICAoYmFzZTMyICIxZGE3ejRpaTc4Z2FxbmphbDdjNGQxeHZpY3lzaGlpbDRsczZ4aGk5aWQ0 cThwbG1mYTJtIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLXVyaXBhcnNl ciIgLGp1bGlhLXVyaXBhcnNlcikKKwkJCSAoImp1bGlhLXNoYSIgLGp1bGlhLXNoYSkKKwkJCSAo Imp1bGlhLWNvbXBhdCIgLGp1bGlhLWNvbXBhdCkpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEt YnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVBh Y2thZ2luZy9CaW5EZXBzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlw dGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGlj IGp1bGlhLWJ1ZmZlcmVkc3RyZWFtcworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1idWZm ZXJlZHN0cmVhbXMiKQorICAgICh2ZXJzaW9uICIxLjAuMCIpCisgICAgKHNvdXJjZSAob3JpZ2lu CisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQor CQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0Jpb0p1bGlhL0J1ZmZlcmVkU3RyZWFtcy5q bC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkg ICAgICAoZmlsZS1uYW1lICJCdWZmZXJlZFN0cmVhbXMiKQorCSAgICAgIChzaGEyNTYKKwkgICAg ICAgKGJhc2UzMiAiMHNmNHN4YnE1NW1nMnB3eHl4ZjBjODM5ejFsazB5eGc4bm1iNzYxN2JmYnZ3 MzFjcDg4eiIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQiICxq dWxpYS1jb21wYXQpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAg ICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vQmlvSnVsaWEvQnVmZmVyZWRTdHJlYW1z LmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAo bGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWxpYnoKKyAg KHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtbGlieiIpCisgICAgKHZlcnNpb24gIjEuMC4wIikK KyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAo dXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vQmlvSnVs aWEvTGliei5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lv bikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJMaWJ6IikKKwkgICAgICAoc2hhMjU2CisJICAgICAg IChiYXNlMzIgIjE0MzRpMmhoZjhobmNuY2hucnZ6MWozZ3lkbTgzeXlnbHNqZ2djM2kxenpnODIx cHdyYnYiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtYnVmZmVyZWRzdHJl YW1zIiAsanVsaWEtYnVmZmVyZWRzdHJlYW1zKQorCQkJICgianVsaWEtY29tcGF0IiAsanVsaWEt Y29tcGF0KQorCQkJICgiemxpYiIgLHpsaWIpKSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAoIzpw aGFzZXMKKyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJIChhZGQtYmVm b3JlICdwcmVjb21waWxlICdidWlsZC1kZXBzCisJICAgKGxhbWJkYSoKKwkgICAgICAgKCM6a2V5 IG91dHB1dHMgc291cmNlIGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisJICAgICAoc3Vic3Rp dHV0ZSogKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiBvdXRwdXRzICJvdXQiKSAiL3NoYXJlL2p1 bGlhL3BhY2thZ2VzLyIKKwkJCQkJIChzdHJpbmctYXBwZW5kIChzdHJpcC1zdG9yZS1maWxlLW5h bWUgc291cmNlKSAiL3NyYy9sb3dsZXZlbC5qbCIpKQorCSAgICAgICAoKCJjb25zdCB6bGliID0g XCJsaWJ6XCIiKQorCQkoc3RyaW5nLWFwcGVuZCAiY29uc3QgemxpYiA9IFwiIgorCQkJICAgICAg IChhc3NvYy1yZWYgaW5wdXRzICJ6bGliIikKKwkJCSAgICAgICAiL2xpYi9saWJ6LnNvXCJcbiIp KSkKKwkgICAgICN0KSkpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkK KyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vQmlvSnVsaWEvTGliei5qbC5naXQi KQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2Ug bGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1saWJlcGF0CisgIChwYWNr YWdlCisgICAgKG5hbWUgImp1bGlhLWxpYmV4cGF0IikKKyAgICAodmVyc2lvbiAiMC41LjAiKQor ICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1 cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUlP L0xpYkV4cGF0LmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJz aW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkxpYkV4cGF0IikKKwkgICAgICAoc2hhMjU2CisJ ICAgICAgIChiYXNlMzIgIjFpbnkxOHo3NmJrZjN5aTZjdnBmaWE3ejFqN2tuNzg5aXkwbndpZ3Nq MnNiOW1maTV4OGIiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29tcGF0 IiAsanVsaWEtY29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0p CisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhSU8vTGliRXhwYXQuamwu Z2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNl bnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtbGliY3VybAorICAo cGFja2FnZQorICAgIChuYW1lICJqdWxpYS1saWJjdXJsIikKKyAgICAodmVyc2lvbiAiMC41LjIi KQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAg ICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxp YVdlYi9MaWJDVVJMLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2 ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkxpYkNVUkwiKQorCSAgICAgIChzaGEyNTYK KwkgICAgICAgKGJhc2UzMiAiMWt3cGsxOTMzOHd2bnE2N25pbWR6cDgxNWh6aHZicGs3N3FwMnI4 NTFmN3N6cWpiZDFxYyIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1iaW5h cnlwcm92aWRlciIgLGp1bGlhLWJpbmFyeXByb3ZpZGVyKQorCQkJICgiY3VybCIgLGN1cmwpCisJ CQkgKCJ6bGliIiAsemxpYikKKwkJCSAoIm1iZWR0bHMtYXBhY2hlIiAsbWJlZHRscy1hcGFjaGUp KSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAoIzpwaGFzZXMKKyAgICAgICAobW9kaWZ5LXBoYXNl cyAlc3RhbmRhcmQtcGhhc2VzCisJIChhZGQtYmVmb3JlICdwcmVjb21waWxlICdidWlsZC1kZXBz CisJICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgc291cmNlIGlucHV0cyAjOmFsbG93LW90aGVy LWtleXMpCisJICAgICAobGV0ICgoZiAob3Blbi1maWxlCisJCSAgICAgICAoc3RyaW5nLWFwcGVu ZAorCQkJKGFzc29jLXJlZiBvdXRwdXRzICJvdXQiKQorCQkJIi9zaGFyZS9qdWxpYS9wYWNrYWdl cy8iCisJCQkoc3RyaW5nLWFwcGVuZAorCQkJIChzdHJpcC1zdG9yZS1maWxlLW5hbWUgc291cmNl KSAiL2RlcHMvZGVwcy5qbCIpKQorCQkgICAgICAgInciKSkpCisJICAgICAgIAorCSAgICAgICAo ZGlzcGxheSAoc3RyaW5nLWFwcGVuZCAiY29uc3QgbGliY3VybCA9IFwiIgorCQkJCSAgICAgICAo YXNzb2MtcmVmIGlucHV0cyAiY3VybCIpCisJCQkJICAgICAgICIvbGliL2xpYmN1cmwuc29cIlxu IikgZikKKwkgICAgICAgKGRpc3BsYXkgKHN0cmluZy1hcHBlbmQgImNvbnN0IGxpYnogPSBcIiIK KwkJCQkgICAgICAgKGFzc29jLXJlZiBpbnB1dHMgInpsaWIiKQorCQkJCSAgICAgICAiL2xpYi9s aWJ6LnNvXCJcbiIpIGYpCisJICAgICAgIChkaXNwbGF5IChzdHJpbmctYXBwZW5kICJjb25zdCBs aWJtYmVkY3J5cHRvID0gXCIiCisJCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJtYmVkdGxz LWFwYWNoZSIpCisJCQkJICAgICAgICIvbGliL2xpYm1iZWRjcnlwdG8uc29cIlxuIikgZikKKwkg ICAgICAgKGRpc3BsYXkgKHN0cmluZy1hcHBlbmQgImNvbnN0IGxpYm1iZWRjcnlwdG8gPSBcIiIK KwkJCQkgICAgICAgKGFzc29jLXJlZiBpbnB1dHMgIm1iZWR0bHMtYXBhY2hlIikKKwkJCQkgICAg ICAgIi9saWIvbGlibWJlZGNyeXB0by5zb1wiXG4iKSBmKQorCSAgICAgICAoZGlzcGxheSAoc3Ry aW5nLWFwcGVuZCAiY29uc3QgbGlibWJlZHRscyA9IFwiIgorCQkJCSAgICAgICAoYXNzb2MtcmVm IGlucHV0cyAibWJlZHRscy1hcGFjaGUiKQorCQkJCSAgICAgICAiL2xpYi9saWJtYmVkdGxzLnNv XCJcbiIpIGYpCisJICAgICAgIChkaXNwbGF5IChzdHJpbmctYXBwZW5kICJjb25zdCBsaWJtYmVk eDUwOSA9IFwiIgorCQkJCSAgICAgICAoYXNzb2MtcmVmIGlucHV0cyAibWJlZHRscy1hcGFjaGUi KQorCQkJCSAgICAgICAiL2xpYi9saWJtYmVkeDUwOS5zb1wiXG4iKSBmKSAKKwkgICAgICAgKGRp c3BsYXkgKHN0cmluZy1hcHBlbmQgImNoZWNrX2RlcHMoKSA9IG5vdGhpbmdcbiIpIGYpCisJICAg ICAgIChjbG9zZS1wb3J0IGYpKQorCSAgICAgI3QpCisJICAgKSkpKQorICAgIChidWlsZC1zeXN0 ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNv bS9KdWxpYVdlYi9MaWJDVVJMLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNj cmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVi bGljIGp1bGlhLWh0dHAKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtaHR0cCIpCisgICAg KHZlcnNpb24gIjAuOC40IikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdp dC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczov L2dpdGh1Yi5jb20vSnVsaWFXZWIvSFRUUC5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5n LWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJIVFRQIikKKwkgICAg ICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjFoMmNnamlqbG1jaWxqZGZ6NGxxaWdxOGxocnZk YXg1azVmZmZsdnB2MmFubml5d21zeDAiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgi anVsaWEtaW5pZmlsZSIgLGp1bGlhLWluaWZpbGUpCisJCQkgKCJqdWxpYS1tYmVkdGxzIiAsanVs aWEtbWJlZHRscykKKwkJCSAoImp1bGlhLWNvbXBhdCIgLGp1bGlhLWNvbXBhdCkpKQorICAgIChi dWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8v Z2l0aHViLmNvbS9KdWxpYVdlYi9IVFRQLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAg IChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZp bmUtcHVibGljIGp1bGlhLWl0ZXJhdG9yaW50ZXJmYWNlZXh0ZW5zaW9ucworICAocGFja2FnZQor ICAgIChuYW1lICJqdWxpYS1pdGVyYXRvcmludGVyZmFjZWV4dGVuc2lvbnMiKQorICAgICh2ZXJz aW9uICIxLjAuMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRo dWIuY29tL3F1ZXJ5dmVyc2UvSXRlcmF0b3JJbnRlcmZhY2VFeHRlbnNpb25zLmpsLmdpdCIpCisJ CSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxl LW5hbWUgIkl0ZXJhdG9ySW50ZXJmYWNlRXh0ZW5zaW9ucyIpCisJICAgICAgKHNoYTI1NgorCSAg ICAgICAoYmFzZTMyICIxc2xwYXkxZGhqYThmOWd5Nno3YjNwc2d2Z2Nrbm45NjNkdmZxcWFrdmcx Z3JrOXBwYTA5IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgpKQorICAgIChidWlsZC1z eXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHVi LmNvbS9xdWVyeXZlcnNlL0l0ZXJhdG9ySW50ZXJmYWNlRXh0ZW5zaW9ucy5qbC5naXQiKQorICAg IChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5z ZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS10YWJsZXRyYWl0cworICAocGFja2Fn ZQorICAgIChuYW1lICJqdWxpYS10YWJsZXRyYWl0cyIpCisgICAgKHZlcnNpb24gIjEuMC4wIikK KyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAo dXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vcXVlcnl2 ZXJzZS9UYWJsZVRyYWl0cy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAi diIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJUYWJsZVRyYWl0cyIpCisJICAgICAg KHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIwbHpiOXhxbmhnamJ2a3NjYzRwOXZ3M3B6YWptM2E1 YTZheXY2YnlxYzUzd3M4ZnhxazJ2IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1 bGlhLWl0ZXJhdG9yaW50ZXJmYWNlZXh0ZW5zaW9ucyIgLGp1bGlhLWl0ZXJhdG9yaW50ZXJmYWNl ZXh0ZW5zaW9ucykpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAg IChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9xdWVyeXZlcnNlL1RhYmxlVHJhaXRzLmps LmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGlj ZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWRhdGFhcGkKKyAg KHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtZGF0YWFwaSIpCisgICAgKHZlcnNpb24gIjEuMC4w IikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVs aWFEYXRhL0RhdGFBUEkuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYi IHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiRGF0YUFQSSIpCisJICAgICAgKHNoYTI1 NgorCSAgICAgICAoYmFzZTMyICIxOXpyMnkxMGJkcDVoYXJyanNqZ3g0YjV4cjdodmhheTBteTU4 NHZ4ZmoxbTdya3N6M3NuIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgpKQorICAgIChi dWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8v Z2l0aHViLmNvbS9KdWxpYURhdGEvRGF0YUFQSS5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikK KyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCiso ZGVmaW5lLXB1YmxpYyBqdWxpYS1kYXRhdmFsdWVzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1 bGlhLWRhdGF2YWx1ZXMiKQorICAgICh2ZXJzaW9uICIwLjQuMTIiKQorICAgIChzb3VyY2UgKG9y aWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVu Y2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9xdWVyeXZlcnNlL0RhdGFWYWx1ZXMu amwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJ ICAgICAgKGZpbGUtbmFtZSAiRGF0YVZhbHVlcyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAo YmFzZTMyICIxeDBzaTM5MnBzYzZkcmMxeDl2bnpsbjRhaTR5NDgzbjYzOXlkN3dxa241aDFuc3hh YTFjIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLWRhdGF2YWx1ZWludGVy ZmFjZXMiICxqdWxpYS1kYXRhdmFsdWVpbnRlcmZhY2VzKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBq dWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3F1 ZXJ5dmVyc2UvRGF0YVZhbHVlcy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVz Y3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1 YmxpYyBqdWxpYS1kYXRhdmFsdWVpbnRlcmZhY2VzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1 bGlhLWRhdGF2YWx1ZWludGVyZmFjZXMiKQorICAgICh2ZXJzaW9uICIxLjAuMCIpCisgICAgKHNv dXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0 LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3F1ZXJ5dmVyc2UvRGF0 YVZhbHVlSW50ZXJmYWNlcy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAi diIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJEYXRhVmFsdWVJbnRlcmZhY2VzIikK KwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjBnMndqNnE3amo5NTZueDZnN2RrOHg3 dzFjNGwyeGNtbnIxa3E1eDhzOGZpbGQ5a3NsZzgiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0 cyBgKCkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3F1ZXJ5dmVyc2UvRGF0YVZhbHVlSW50ZXJmYWNlcy5q bC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxp Y2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS10YWJsZXMKKyAg KHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtdGFibGVzIikKKyAgICAodmVyc2lvbiAiMC4yLjEw IikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVs aWFEYXRhL1RhYmxlcy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIg dmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJUYWJsZXMiKQorCSAgICAgIChzaGEyNTYK KwkgICAgICAgKGJhc2UzMiAiMXgwNGNkZnhxbWY0bjRhOXh5ZzVtZDRqMmgxaXp6eXBqeWQzcGxw N2d6azJidmlwNTNqdiIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1pdGVy YXRvcmludGVyZmFjZWV4dGVuc2lvbnMiICxqdWxpYS1pdGVyYXRvcmludGVyZmFjZWV4dGVuc2lv bnMpCisJCQkgKCJqdWxpYS10YWJsZXRyYWl0cyIgLGp1bGlhLXRhYmxldHJhaXRzKQorCQkJICgi anVsaWEtZGF0YWFwaSIgLGp1bGlhLWRhdGFhcGkpCisJCQkgKCJqdWxpYS1kYXRhdmFsdWVpbnRl cmZhY2VzIiAsanVsaWEtZGF0YXZhbHVlaW50ZXJmYWNlcykpKQorICAgIChidWlsZC1zeXN0ZW0g anVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9K dWxpYURhdGEvVGFibGVzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlw dGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGlj IGp1bGlhLW1pc3NpbmdzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLW1pc3NpbmdzIikK KyAgICAodmVyc2lvbiAiMC40LjEiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRo b2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0 dHBzOi8vZ2l0aHViLmNvbS9KdWxpYURhdGEvTWlzc2luZ3MuamwuZ2l0IikKKwkJICAgIChjb21t aXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiTWlz c2luZ3MiKQorCSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMDd6bGh5aDZqMmoxZ3M3 ZnAxNjZiajZ6cWRnYXNkMGQxc2NwYmN5bXdwemdxOWFucDh2MCIpKSkpCisgICAgKHByb3BhZ2F0 ZWQtaW5wdXRzIGAoKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAg ICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFEYXRhL01pc3NpbmdzLmpsLmdp dCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5z ZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLW9yZGVyZWRjb2xsZWN0 aW9ucworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1vcmRlcmVkY29sbGVjdGlvbnMiKQor ICAgICh2ZXJzaW9uICIxLjEuMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhv ZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0 cHM6Ly9naXRodWIuY29tL0p1bGlhQ29sbGVjdGlvbnMvT3JkZXJlZENvbGxlY3Rpb25zLmpsLmdp dCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAg IChmaWxlLW5hbWUgIk9yZGVyZWRDb2xsZWN0aW9ucyIpCisJICAgICAgKHNoYTI1NgorCSAgICAg ICAoYmFzZTMyICIwcmgxdzhzYjY5Yjg2NzB4cWQzajB4aDdwZnNsODlqaHE2NnhkcmRwMDA2MGxp ZjVpNWxpIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgpKQorICAgIChhcmd1bWVudHMK KyAgICAgYCgjOnBoYXNlcworICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMK KwkgKGFkZC1iZWZvcmUgJ3ByZWNvbXBpbGUgJ2ZpeC10b21sCisJICAgKGxhbWJkYSogKCM6a2V5 IG91dHB1dHMgc291cmNlICM6YWxsb3ctb3RoZXIta2V5cykKKwkgICAgIChqdWxpYS1jcmVhdGUt cGFja2FnZS10b21sCisJICAgICAgb3V0cHV0cyBzb3VyY2UKKwkgICAgICAiT3JkZXJlZENvbGxl Y3Rpb25zIgorCSAgICAgICJiYWM1NThlMS01ZTcyLTVlYmMtOGZlZS1hYmU4YTQ2OWY1NWQiCisJ ICAgICAgIjEuMS4wIgorCSAgICAgICcoKSkKKwkgICAgICN0KSkpKSkKKyAgICAoYnVpbGQtc3lz dGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5j b20vSnVsaWFDb2xsZWN0aW9ucy9PcmRlcmVkQ29sbGVjdGlvbnMuamwuZ2l0IikKKyAgICAoc3lu b3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhw YXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtZGF0YXN0cnVjdHVyZXMKKyAgKHBhY2thZ2UK KyAgICAobmFtZSAianVsaWEtZGF0YXN0cnVjdHVyZXMiKQorICAgICh2ZXJzaW9uICIwLjE3LjAi KQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAg ICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxp YUNvbGxlY3Rpb25zL0RhdGFTdHJ1Y3R1cmVzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJp bmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkRhdGFTdHJ1Y3R1 cmVzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjE5ZDFrMDIxaXB5MXdyMHcw bDdtMmpuc3B3enAycnZsMnloY3NhbDlremZsMndsMGE3cjgiKSkpKQorICAgIChwcm9wYWdhdGVk LWlucHV0cyBgKCgianVsaWEtb3JkZXJlZGNvbGxlY3Rpb25zIiAsanVsaWEtb3JkZXJlZGNvbGxl Y3Rpb25zKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhv bWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhQ29sbGVjdGlvbnMvRGF0YVN0cnVjdHVy ZXMuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAg IChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworOzsgKGRlZmluZS1wdWJsaWMganVsaWEtYXJy YXl2aWV3cworOzsgICAocGFja2FnZQorOzsgICAgIChuYW1lICJqdWxpYS1hcnJheXZpZXdzIikK Kzs7ICAgICAodmVyc2lvbiAiMC43LjAiKQorOzsgICAgIChzb3VyY2UgKG9yaWdpbgorOzsgCSAg ICAgIChtZXRob2QgZ2l0LWZldGNoKQorOzsgCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKzs7 IAkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUFycmF5cy9BcnJheVZpZXdzLmps LmdpdCIpCis7OyAJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQor OzsgCSAgICAgIChmaWxlLW5hbWUgIkFycmF5Vmlld3MiKQorOzsgCSAgICAgIChzaGEyNTYKKzs7 IAkgICAgICAgKGJhc2UzMiAiMHhzMWlmNGRoeTJtNjA0cjFpdnp2eWtpNmphcDd4bDhoa2lpbmhp MzRxcGxmbG5yNTZmMSIpKSkpCis7OyAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1j b21wYXQiICxqdWxpYS1jb21wYXQpKSkKKzs7ICAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxk LXN5c3RlbSkKKzs7ICAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFBcnJh eXMvQXJyYXlWaWV3cy5qbC5naXQiKQorOzsgICAgIChzeW5vcHNpcyAiIikKKzs7ICAgICAoZGVz Y3JpcHRpb24gIiIpCis7OyAgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCis7OyAoZGVm aW5lLXB1YmxpYyBqdWxpYS1udW1lcmljZnVucworOzsgICAocGFja2FnZQorOzsgICAgIChuYW1l ICJqdWxpYS1udW1lcmljZnVucyIpCis7OyAgICAgKHZlcnNpb24gIjAuMi40IikKKzs7ICAgICAo c291cmNlIChvcmlnaW4KKzs7IAkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKzs7IAkgICAgICAo dXJpIChnaXQtcmVmZXJlbmNlCis7OyAJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vbGlu ZGFodWEvTnVtZXJpY0Z1bnMuamwuZ2l0IikKKzs7IAkJICAgIChjb21taXQgKHN0cmluZy1hcHBl bmQgInYiIHZlcnNpb24pKSkpCis7OyAJICAgICAgKGZpbGUtbmFtZSAiTnVtZXJpY0Z1bnMiKQor OzsgCSAgICAgIChzaGEyNTYKKzs7IAkgICAgICAgKGJhc2UzMiAiMXZpdjJibDRmYnh3bnk1MmQ0 YWxwc2dhczhxczFpMHl3MGxkMTluemd2NDRpdnBkNG1naiIpKSkpCis7OyAgICAgKHByb3BhZ2F0 ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpKSkKKzs7ICAgICAoYnVp bGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKzs7ICAgICAoaG9tZS1wYWdlICJodHRwczov L2dpdGh1Yi5jb20vbGluZGFodWEvTnVtZXJpY0Z1bnMuamwuZ2l0IikKKzs7ICAgICAoc3lub3Bz aXMgIiIpCis7OyAgICAgKGRlc2NyaXB0aW9uICIiKQorOzsgICAgIChsaWNlbnNlIGxpY2Vuc2U6 ZXhwYXQpKSkKKworOzsgKGRlZmluZS1wdWJsaWMganVsaWEtbnVtZXJpY2V4dGVuc2lvbnMKKzs7 ICAgKHBhY2thZ2UKKzs7ICAgICAobmFtZSAianVsaWEtbnVtZXJpY2V4dGVuc2lvbnMiKQorOzsg ICAgICh2ZXJzaW9uICIwLjYuMiIpCis7OyAgICAgKHNvdXJjZSAob3JpZ2luCis7OyAJICAgICAg KG1ldGhvZCBnaXQtZmV0Y2gpCis7OyAJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorOzsgCQkg ICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL2xpbmRhaHVhL051bWVyaWNFeHRlbnNpb25zLmps LmdpdCIpCis7OyAJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQor OzsgCSAgICAgIChmaWxlLW5hbWUgIk51bWVyaWNFeHRlbnNpb25zIikKKzs7IAkgICAgICAoc2hh MjU2Cis7OyAJICAgICAgIChiYXNlMzIgIjBxcjdrNDVqcDN6Y3JxOWpnbDYxazVodmt4czBoMXo5 MHdsNmtzZmF6OGdiODQ4djdzMHciKSkpKQorOzsgICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKDs7 ICgianVsaWEtYXJyYXl2aWV3cyIgLGp1bGlhLWFycmF5dmlld3MpCis7OyAJCQkgOzsgKCJqdWxp YS1udW1lcmljZnVucyIgLGp1bGlhLW51bWVyaWNmdW5zKQorOzsgCQkJICkpCis7OyAgICAgKGJ1 aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCis7OyAgICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9naXRodWIuY29tL2xpbmRhaHVhL051bWVyaWNFeHRlbnNpb25zLmpsLmdpdCIpCis7OyAgICAg KHN5bm9wc2lzICIiKQorOzsgICAgIChkZXNjcmlwdGlvbiAiIikKKzs7ICAgICAobGljZW5zZSBs aWNlbnNlOmV4cGF0KSkpCisKKzs7IE5PIFByb2plY3QudG9tbCwganVsaWEgZmFpbHMgdG8gaW1w b3J0IERhdGFGcmFtZXMgLi0uCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1zb3J0aW5nYWxnb3JpdGht cworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1zb3J0aW5nYWxnb3JpdGhtcyIpCisgICAg KHZlcnNpb24gIjAuMy4xIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdp dC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczov L2dpdGh1Yi5jb20vSnVsaWFDb2xsZWN0aW9ucy9Tb3J0aW5nQWxnb3JpdGhtcy5qbC5naXQiKQor CQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmls ZS1uYW1lICJTb3J0aW5nQWxnb3JpdGhtcyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFz ZTMyICIxbno5NnNjY2dsNmg2YWtuY2s1OWdteTF5cnp4MzU2a2s5ejY4c3ZqMmc2eWlhbHBydjFq IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLWRhdGFzdHJ1Y3R1cmVzIiAs anVsaWEtZGF0YXN0cnVjdHVyZXMpKSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAoIzpwaGFzZXMK KyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJIChhZGQtYmVmb3JlICdw cmVjb21waWxlICdmaXgtdG9tbAorCSAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRzIHNvdXJjZSAj OmFsbG93LW90aGVyLWtleXMpCisJICAgICAoanVsaWEtY3JlYXRlLXBhY2thZ2UtdG9tbAorCSAg ICAgIG91dHB1dHMgc291cmNlCisJICAgICAgIlNvcnRpbmdBbGdvcml0aG1zIgorCSAgICAgICJh MmFmMTE2Ni1hMDhmLTVmNjQtODQ2Yy05NGEwZDNjZWY0OGMiCisJICAgICAgIjAuMy4xIgorCSAg ICAgICcoKCJEYXRhU3RydWN0dXJlcyIgLiAiODY0ZWRiM2ItOTljYy01ZTc1LThkMmQtODI5Y2Iw YTljZmU4IikpKQorCSAgICAgI3QpKSkpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQt c3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUNvbGxlY3Rp b25zL1NvcnRpbmdBbGdvcml0aG1zLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChk ZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUt cHVibGljIGp1bGlhLXN0YXRzYmFzZQorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1zdGF0 c2Jhc2UiKQorICAgICh2ZXJzaW9uICIwLjMxLjAiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAg ICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAg ICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVN0YXRzL1N0YXRzQmFzZS5qbC5naXQiKQor CQkgICAgKGNvbW1pdCAiYjk0NTRmOTc5ZmY4YmRiYzNlY2ZmZTI0OTBjYzEzMzFhODI0ZTc5OCIp KSkKKwkgICAgICAoZmlsZS1uYW1lICJTdGF0c0Jhc2UiKQorCSAgICAgIChzaGEyNTYKKwkgICAg ICAgKGJhc2UzMiAiMWs2emNibHBkcmRxNTY4bHNnbmE4M2xkMmtqNDdoMmN4bjVpZHA4ZzQxZmRt OXNjcGg1YiIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1kYXRhc3RydWN0 dXJlcyIgLGp1bGlhLWRhdGFzdHJ1Y3R1cmVzKQorCQkJIDs7ICgianVsaWEtbnVtZXJpY2V4dGVu c2lvbnMiICxqdWxpYS1udW1lcmljZXh0ZW5zaW9ucykKKwkJCSAoImp1bGlhLXNvcnRpbmdhbGdv cml0aG1zIiAsanVsaWEtc29ydGluZ2FsZ29yaXRobXMpCisJCQkgKCJqdWxpYS1taXNzaW5ncyIg LGp1bGlhLW1pc3NpbmdzKQorCQkJICgianVsaWEtZGF0YWFwaSIgLGp1bGlhLWRhdGFhcGkpKSkK KyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdGh1Yi5jb20vSnVsaWFTdGF0cy9TdGF0c0Jhc2UuamwuZ2l0IikKKyAgICAoc3lu b3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhw YXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtcmVleHBvcnQKKyAgKHBhY2thZ2UKKyAgICAo bmFtZSAianVsaWEtcmVleHBvcnQiKQorICAgICh2ZXJzaW9uICIwLjIuMCIpCisgICAgKHNvdXJj ZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJl ZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3NpbW9uc3Rlci9SZWV4cG9y dC5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAiMjU4YTQwODhiYjc3ZWU0ODIxYmYyZGExYzczZmQ2 ZTQ4OTdmZDQzYyIpKSkKKwkgICAgICAoZmlsZS1uYW1lICJSZWV4cG9ydCIpCisJICAgICAgKHNo YTI1NgorCSAgICAgICAoYmFzZTMyICIwaDhwZnF3ejBnMGd5d2NzcjVmN3MzejZnN3EwbW1sYjJ5 bmtpMm5uMTZyOHg0aTA3NG54IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgpKQorICAg IChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBz Oi8vZ2l0aHViLmNvbS9zaW1vbnN0ZXIvUmVleHBvcnQuamwuZ2l0IikKKyAgICAoc3lub3BzaXMg IiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkK KworOzsgKGRlZmluZS1wdWJsaWMganVsaWEtbnVsbGFibGVhcnJheXMKKzs7ICAgKHBhY2thZ2UK Kzs7ICAgICAobmFtZSAianVsaWEtbnVsbGFibGVhcnJheXMiKQorOzsgICAgICh2ZXJzaW9uICIw LjEuMiIpCis7OyAgICAgKHNvdXJjZSAob3JpZ2luCis7OyAJICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCis7OyAJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorOzsgCQkgICAgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhU3RhdHMvTnVsbGFibGVBcnJheXMuamwuZ2l0IikKKzs7IAkJICAg IChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCis7OyAJICAgICAgKGZpbGUt bmFtZSAiTnVsbGFibGVBcnJheXMiKQorOzsgCSAgICAgIChzaGEyNTYKKzs7IAkgICAgICAgKGJh c2UzMiAiMThzbDRjazMxMXdqZG52N2h3NmpnOHlkMG44bmp6Y2ZxOXBzejdraGhyNTNqOWM2cjRh YiIpKSkpCis7OyAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoOzsgKCJqdWxpYS1zdGF0c2Jhc2Ui ICxqdWxpYS1zdGF0c2Jhc2UpCis7OyAJCQkgKCJqdWxpYS1yZWV4cG9ydCIgLGp1bGlhLXJlZXhw b3J0KQorOzsgCQkJICgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KSkpCis7OyAgICAgKGJ1 aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCis7OyAgICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhU3RhdHMvTnVsbGFibGVBcnJheXMuamwuZ2l0IikKKzs7ICAgICAo c3lub3BzaXMgIiIpCis7OyAgICAgKGRlc2NyaXB0aW9uICIiKQorOzsgICAgIChsaWNlbnNlIGxp Y2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtcGFyc2VycworICAocGFja2Fn ZQorICAgIChuYW1lICJqdWxpYS1wYXJzZXJzIikKKyAgICAodmVyc2lvbiAiMC4zLjYiKQorICAg IChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkg KGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYURhdGEv UGFyc2Vycy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lv bikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJQYXJzZXJzIikKKwkgICAgICAoc2hhMjU2CisJICAg ICAgIChiYXNlMzIgIjF4amZnNzJpcDdpNXhjaTZuZmM4OHN3eW55NGRzYXJ4cWF2ZmNmYTJzbmpp cjFqd3MxemsiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCkpCisgICAgKGJ1aWxkLXN5 c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIu Y29tL0p1bGlhRGF0YS9QYXJzZXJzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChk ZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUt cHVibGljIGp1bGlhLWpzb24KKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtanNvbiIpCisg ICAgKHZlcnNpb24gIjAuMjEuMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhv ZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0 cHM6Ly9naXRodWIuY29tL0p1bGlhSU8vSlNPTi5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3Ry aW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJKU09OIikKKwkg ICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjBrbm1mamhjaGQzZ2d5ODZkc2Z5YjdsNHYz ZnY1ZGNyMjA3Y2dwNTRtajdyajk2Y2Fxc20iKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBg KCgianVsaWEtcGFyc2VycyIgLGp1bGlhLXBhcnNlcnMpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1 bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVs aWFJTy9KU09OLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAi IikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlh LWNhdGVnb3JpY2FsYXJyYXlzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWNhdGVnb3Jp Y2FsYXJyYXlzIikKKyAgICAodmVyc2lvbiAiMC41LjUiKQorICAgIChzb3VyY2UgKG9yaWdpbgor CSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJ ICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYURhdGEvQ2F0ZWdvcmljYWxBcnJheXMu amwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJ ICAgICAgKGZpbGUtbmFtZSAiQ2F0ZWdvcmljYWxBcnJheXMiKQorCSAgICAgIChzaGEyNTYKKwkg ICAgICAgKGJhc2UzMiAiMGJxcTIwdzY0cGp2ZDJtZnZpc3F4MXo3ZG4zNDRhZHk2OTQyanE4MHhy MGpiYzRyamR4aCIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQi ICxqdWxpYS1jb21wYXQpCisJCQkgOzsgKCJqdWxpYS1udWxsYWJsZWFycmF5cyIgLGp1bGlhLW51 bGxhYmxlYXJyYXlzKQorCQkJICgianVsaWEtbWlzc2luZ3MiICxqdWxpYS1taXNzaW5ncykKKwkJ CSAoImp1bGlhLWRhdGFhcGkiICxqdWxpYS1kYXRhYXBpKQorCQkJICgianVsaWEtcmVleHBvcnQi ICxqdWxpYS1yZWV4cG9ydCkKKwkJCSAoImp1bGlhLWpzb24iICxqdWxpYS1qc29uKSkpCisgICAg KGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhRGF0YS9DYXRlZ29yaWNhbEFycmF5cy5qbC5naXQiKQorICAgIChz eW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpl eHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1pbnZlcnRlZGluZGljZXMKKyAgKHBhY2th Z2UKKyAgICAobmFtZSAianVsaWEtaW52ZXJ0ZWRpbmRpY2VzIikKKyAgICAodmVyc2lvbiAiMS4w LjAiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAg ICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9t YmF1bWFuL0ludmVydGVkSW5kaWNlcy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFw cGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJJbnZlcnRlZEluZGljZXMi KQorCSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMTE3OXoyMHl4bmt5emlpcDdnbjI2 d3IxZzNrM3NzbDFjaTdwaWcza2hjOTAwZjYyZGk0NiIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5w dXRzIGAoKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9t ZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vbWJhdW1hbi9JbnZlcnRlZEluZGljZXMuamwuZ2l0 IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNl IGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtc3RhdHMKKyAgKHBhY2th Z2UKKyAgICAobmFtZSAianVsaWEtc3RhdHMiKQorICAgICh2ZXJzaW9uICIwLjEuMCIpCisgICAg KHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAo Z2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhU3RhdHMv U3RhdHNLaXQuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNp b24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiU3RhdHMiKQorCSAgICAgIChzaGEyNTYKKwkgICAg ICAgKGJhc2UzMiAiMHZ6NjE4M3JqOTEyMmQ1M2kzNXg4NmZ6aXI2Y3Eyc2pocW1hY2IxaWQxNDBk MmFiODB6bCIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1zdGF0c2Jhc2Ui ICxqdWxpYS1zdGF0c2Jhc2UpCisJCQkgKCJqdWxpYS1vcmRlcmVkY29sbGVjdGlvbnMiICxqdWxp YS1vcmRlcmVkY29sbGVjdGlvbnMpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5 c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFTdGF0cy9TdGF0 c0tpdC5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisg ICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1maXhl ZHBvaW50bnVtYmVycworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1maXhlZHBvaW50bnVt YmVycyIpCisgICAgKHZlcnNpb24gIjAuNi4xIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAg ICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAo dXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFNYXRoL0ZpeGVkUG9pbnROdW1iZXJzLmpsLmdp dCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAg IChmaWxlLW5hbWUgIkZpeGVkUG9pbnROdW1iZXJzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAg IChiYXNlMzIgIjAzM3M5Z2k5NHhzOTdrc2h5Mm1jeDVtdmRraWdkZjRhcWdhYTZxZ3E2a3o0czZn YnBhOXIiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29tcGF0IiAsanVs aWEtY29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAg KGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhTWF0aC9GaXhlZFBvaW50TnVtYmVy cy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAg KGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS10b2tlbml6 ZQorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS10b2tlbml6ZSIpCisgICAgKHZlcnNpb24g IjAuNS41IikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkK KwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5j b20vSnVsaWFMYW5nL1Rva2VuaXplLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBw ZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIlRva2VuaXplIikKKwkgICAg ICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjA3Mmo0MHhiM3Y4emNuM3pqenY2MGl6bmFucGx2 bTRibjBsbno5eGhyaTFzeDJ5Mmw1ZzAiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCkp CisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAi aHR0cHM6Ly9naXRodWIuY29tL0p1bGlhTGFuZy9Ub2tlbml6ZS5qbC5naXQiKQorICAgIChzeW5v cHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBh dCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS11cmlwYXJzZXIKKyAgKHBhY2thZ2UKKyAgICAo bmFtZSAianVsaWEtdXJpcGFyc2VyIikKKyAgICAodmVyc2lvbiAiMC40LjAiKQorICAgIChzb3Vy Y2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1y ZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVdlYi9VUklQYXJz ZXIuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkp CisJICAgICAgKGZpbGUtbmFtZSAiVVJJUGFyc2VyIikKKwkgICAgICAoc2hhMjU2CisJICAgICAg IChiYXNlMzIgIjFpNDV3emE2amg5azd4OGpycWlpbDZrMnliODFoZHptM3MwenFoenkzeTJzYnk2 NnA0NHAiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCkpCisgICAgKGJ1aWxkLXN5c3Rl bSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29t L0p1bGlhV2ViL1VSSVBhcnNlci5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVz Y3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1 YmxpYyBqdWxpYS1zaGEKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtc2hhIikKKyAgICAo dmVyc2lvbiAiMC41LjciKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0 LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8v Z2l0aHViLmNvbS9zdGF0aWNmbG9hdC9TSEEuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmlu Zy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiU0hBIikKKwkgICAg ICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjEwYTA5a2c5ejBtOHJ2d21sZ3NuYTZwMzQya3l2 aXp4MmF4ZHFjNnB6eWhyYWRkcjhqcnAiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgi anVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1i dWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3N0YXRpY2Zs b2F0L1NIQS5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIp CisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1i aW5kZXBzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWJpbmRlcHMiKQorICAgICh2ZXJz aW9uICIwLjguMTAiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZl dGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0 aHViLmNvbS9KdWxpYVBhY2thZ2luZy9CaW5EZXBzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChz dHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkJpbkRlcHMi KQorCSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMWRhN3o0aWk3OGdhcW5qYWw3YzRk MXh2aWN5c2hpaWw0bHM2eGhpOWlkNHE4cGxtZmEybSIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5w dXRzIGAoKCJqdWxpYS11cmlwYXJzZXIiICxqdWxpYS11cmlwYXJzZXIpCisJCQkgKCJqdWxpYS1z aGEiICxqdWxpYS1zaGEpCisJCQkgKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpKSkKKyAg ICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRw czovL2dpdGh1Yi5jb20vSnVsaWFQYWNrYWdpbmcvQmluRGVwcy5qbC5naXQiKQorICAgIChzeW5v cHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBh dCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1jc3RwYXJzZXIKKyAgKHBhY2thZ2UKKyAgICAo bmFtZSAianVsaWEtY3N0cGFyc2VyIikKKyAgICAodmVyc2lvbiAiMC42LjEiKQorICAgIChzb3Vy Y2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1y ZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9qdWxpYS12c2NvZGUvQ1NU UGFyc2VyLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9u KSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkNTVFBhcnNlciIpCisJICAgICAgKHNoYTI1NgorCSAg ICAgICAoYmFzZTMyICIxbTZ5NmpkNzAzZDl4eWhobTAwZDV3aGJpcnN5eTk5d2pjcW1kdnd4a2pm OW5tNzdpZnp2IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLXRva2VuaXpl IiAsanVsaWEtdG9rZW5pemUpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3Rl bSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vanVsaWEtdnNjb2RlL0NTVFBh cnNlci5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisg ICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1tYWNy b3Rvb2xzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLW1hY3JvdG9vbHMiKQorICAgICh2 ZXJzaW9uICIwLjUuMSIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQt ZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9n aXRodWIuY29tL01pa2VJbm5lcy9NYWNyb1Rvb2xzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChz dHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIk1hY3JvVG9v bHMiKQorCSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMHNzcHA4bmEzY2o3cG5pMWIz ZHF6enB2Mm1remxuNGY1dzBuMHdyaDJqdm44cnoxZmpqeCIpKSkpCisgICAgOzsgQ0FOVCBGSU5E IENPTVBBVCEKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLWNvbXBhdCIgLGp1bGlh LWNvbXBhdCkKKwkJCSAoImp1bGlhLXRva2VuaXplIiAsanVsaWEtdG9rZW5pemUpCisJCQkgKCJq dWxpYS1kYXRhc3RydWN0dXJlcyIgLGp1bGlhLWRhdGFzdHJ1Y3R1cmVzKQorCQkJICgianVsaWEt Y3N0cGFyc2VyIiAsanVsaWEtY3N0cGFyc2VyKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1i dWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL01pa2VJbm5l cy9NYWNyb1Rvb2xzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlv biAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1 bGlhLWxhenkKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtbGF6eSIpCisgICAgKHZlcnNp b24gIjAuMTMuMiIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRo dWIuY29tL01pa2VJbm5lcy9MYXp5LmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBw ZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkxhenkiKQorCSAgICAgIChz aGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMDZmZmZscGpxdjI3d2dhbGk0NGxqNjhkcGxmbWppbmQ0 MjFqanJ2Z2phNXAybHloMmtyZyIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxp YS1tYWNyb3Rvb2xzIiAsanVsaWEtbWFjcm90b29scykKKwkJCSAoImp1bGlhLWNvbXBhdCIgLGp1 bGlhLWNvbXBhdCkpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAg IChhcmd1bWVudHMKKyAgICAgYCgjOnBoYXNlcworICAgICAgIDs7IG1hY3JvdG9vbHMgY2FuJ3Qg ZmluZCBjb21wYXQKKyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzIChkZWxl dGUgJ3ByZWNvbXBpbGUpKSkpCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL01p a2VJbm5lcy9MYXp5LmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlv biAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1 bGlhLW1hcmtkb3duCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLW1hcmtkb3duIikKKyAg ICAodmVyc2lvbiAiMC4zLjAiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2Qg Z2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBz Oi8vZ2l0aHViLmNvbS9KdWxpYUF0dGljL01hcmtkb3duLmpsLmdpdCIpCisJCSAgICAoY29tbWl0 ICJkMTdmM2IxOTI4MmU3MTlhMzNiMTY5ZWE0NmQ2NjBkNTFiYmY1YTlkIikpKQorCSAgICAgIChm aWxlLW5hbWUgIk1hcmtkb3duIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjAy aGZ4M3g4Nnc0Y2Y0eHEwbmloczhoNHF2cXJ5YmZycHNsOWg4YnNoNGIwNzdkd3ppMXMiKSkpKQor ICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtbGF6eSIgLGp1bGlhLWxhenkpKSkKKyAg ICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRw czovL2dpdGh1Yi5jb20vSnVsaWFBdHRpYy9NYXJrZG93bi5qbC5naXQiKQorICAgIChzeW5vcHNp cyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkp KQorCis7OyAoZGVmaW5lLXB1YmxpYyBqdWxpYS1kb2NpbGUKKzs7ICAgKHBhY2thZ2UKKzs7ICAg ICAobmFtZSAianVsaWEtZG9jaWxlIikKKzs7ICAgICAodmVyc2lvbiAiMC41LjIzIikKKzs7ICAg ICAoc291cmNlIChvcmlnaW4KKzs7IAkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKzs7IAkgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCis7OyAJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20v TWljaGFlbEhhdGhlcmx5L0RvY2lsZS5qbC5naXQiKQorOzsgCQkgICAgKGNvbW1pdCAoc3RyaW5n LWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKzs7IAkgICAgICAoZmlsZS1uYW1lICJEb2NpbGUiKQor OzsgCSAgICAgIChzaGEyNTYKKzs7IAkgICAgICAgKGJhc2UzMiAiMXIzNXdka3A2enhmNGI2Nm43 ZnFzdzU2eTBncjA0aG40cnJ6Y21zYmEzNDZsYjM5cjhiOCIpKSkpCis7OyAgICAgKHByb3BhZ2F0 ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpCis7OyAJCQkgKCJqdWxp YS1tYXJrZG93biIgLGp1bGlhLW1hcmtkb3duKSkpCis7OyAgICAgKGJ1aWxkLXN5c3RlbSBqdWxp YS1idWlsZC1zeXN0ZW0pCis7OyAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL01p Y2hhZWxIYXRoZXJseS9Eb2NpbGUuamwuZ2l0IikKKzs7ICAgICAoc3lub3BzaXMgIiIpCis7OyAg ICAgKGRlc2NyaXB0aW9uICIiKQorOzsgICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKwor OzsgKGRlZmluZS1wdWJsaWMganVsaWEtZml4ZWRzaXplYXJyYXlzCis7OyAgIChwYWNrYWdlCis7 OyAgICAgKG5hbWUgImp1bGlhLWZpeGVkc2l6ZWFycmF5cyIpCis7OyAgICAgKHZlcnNpb24gIjAu Mi41IikKKzs7ICAgICAoc291cmNlIChvcmlnaW4KKzs7IAkgICAgICAobWV0aG9kIGdpdC1mZXRj aCkKKzs7IAkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCis7OyAJCSAgICAodXJsICJodHRwczov L2dpdGh1Yi5jb20vU2ltb25EYW5pc2NoL0ZpeGVkU2l6ZUFycmF5cy5qbC5naXQiKQorOzsgCQkg ICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKzs7IAkgICAgICAoZmls ZS1uYW1lICJGaXhlZFNpemVBcnJheXMiKQorOzsgCSAgICAgIChzaGEyNTYKKzs7IAkgICAgICAg KGJhc2UzMiAiMGhpOXF2MGI5cDk1MWNpc3M1MWdkc3BydmRyNWlxazZnYTV2bTZpczgzMGJ3YnZ2 bjczayIpKSkpCis7OyAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQiICxq dWxpYS1jb21wYXQpKSkKKzs7ICAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkK Kzs7ICAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vU2ltb25EYW5pc2NoL0ZpeGVk U2l6ZUFycmF5cy5qbC5naXQiKQorOzsgICAgIChzeW5vcHNpcyAiIikKKzs7ICAgICAoZGVzY3Jp cHRpb24gIiIpCis7OyAgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1 YmxpYyBqdWxpYS1jb2xvcnR5cGVzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWNvbG9y dHlwZXMiKQorICAgICh2ZXJzaW9uICIwLjguMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAg ICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAg KHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR3JhcGhpY3MvQ29sb3JUeXBlcy5qbC5naXQi KQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAo ZmlsZS1uYW1lICJDb2xvclR5cGVzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIg IjB5c2tiejY1OThhYWEzNjUwMmp6cTU5YXFxeTBkYXhjcmN4Y21oazZqbmJiNWExcHNyOTUiKSkp KQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0 KQorCQkJIDs7ICgianVsaWEtZG9jaWxlIiAsanVsaWEtZG9jaWxlKQorCQkJICgianVsaWEtZml4 ZWRwb2ludG51bWJlcnMiICxqdWxpYS1maXhlZHBvaW50bnVtYmVycykKKwkJCSA7OyAoImp1bGlh LWZpeGVkc2l6ZWFycmF5cyIgLGp1bGlhLWZpeGVkc2l6ZWFycmF5cykKKwkJCSApKQorICAgIChi dWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8v Z2l0aHViLmNvbS9KdWxpYUdyYXBoaWNzL0NvbG9yVHlwZXMuamwuZ2l0IikKKyAgICAoc3lub3Bz aXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQp KSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtY29sb3JzCisgIChwYWNrYWdlCisgICAgKG5hbWUg Imp1bGlhLWNvbG9ycyIpCisgICAgKHZlcnNpb24gIjAuOS41IikKKyAgICAoc291cmNlIChvcmln aW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNl CisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHcmFwaGljcy9Db2xvcnMuamwu Z2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAg ICAgKGZpbGUtbmFtZSAiQ29sb3JzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIg IjFhNnF2aGltMDI0aTUyNGc2eGp6N3E4ZmprZ205bWJkaHJxaTE4cnJ4cmptYnkwY3I5MmEiKSkp KQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtZml4ZWRwb2ludG51bWJlcnMiICxq dWxpYS1maXhlZHBvaW50bnVtYmVycykKKwkJCSAoImp1bGlhLWNvbG9ydHlwZXMiICxqdWxpYS1j b2xvcnR5cGVzKQorCQkJICgianVsaWEtcmVleHBvcnQiICxqdWxpYS1yZWV4cG9ydCkpKQorICAg IChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBz Oi8vZ2l0aHViLmNvbS9KdWxpYUdyYXBoaWNzL0NvbG9ycy5qbC5naXQiKQorICAgIChzeW5vcHNp cyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkp KQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1uYW5tYXRoCisgIChwYWNrYWdlCisgICAgKG5hbWUg Imp1bGlhLW5hbm1hdGgiKQorICAgICh2ZXJzaW9uICIwLjMuMiIpCisgICAgKHNvdXJjZSAob3Jp Z2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5j ZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL21sdWJpbi9OYU5NYXRoLmpsLmdpdCIp CisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChm aWxlLW5hbWUgIk5hTk1hdGgiKQorCSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMTdj cDlmbno4eWRsNjg0ZGtrcWJzZ2k0YzZ4a2Q5c2t3cmp5c2Nhd25zOWMxZmhuemwybCIpKSkpCisg ICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpKSkK KyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoYXJndW1lbnRzCisg ICAgIGAoIzpwaGFzZXMKKyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJ IChhZGQtYmVmb3JlICdwcmVjb21waWxlICdmaXgtdG9tbAorCSAgIChsYW1iZGEqICgjOmtleSBv dXRwdXRzIHNvdXJjZSAjOmFsbG93LW90aGVyLWtleXMpCisJICAgICAoanVsaWEtY3JlYXRlLXBh Y2thZ2UtdG9tbAorCSAgICAgIG91dHB1dHMgc291cmNlCisJICAgICAgIk5hTk1hdGgiCisJICAg ICAgIjc3YmE0NDE5LTJkMWYtNThjZC05YmIxLThmZmVlNjA0YTJlMyIKKwkgICAgICAiMC4zLjIi CisJICAgICAgJygoIkNvbXBhdCIgLiAiMzRkYTIxODUtYjI5Yi01YzEzLWIwYzctYWNmMTcyNTEz ZDIwIikpKQorCSAgICAgI3QpKSkpKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNv bS9tbHViaW4vTmFOTWF0aC5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3Jp cHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1Ymxp YyBqdWxpYS1ncmFwaGljcworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1ncmFwaGljcyIp CisgICAgKHZlcnNpb24gIjAuNC4wIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0 aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJo dHRwczovL2dpdGh1Yi5jb20vSnVsaWFHcmFwaGljcy9HcmFwaGljcy5qbC5naXQiKQorCQkgICAg KGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1l ICJHcmFwaGljcyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIwM2Q5OGo0OWZu N3praHhraTVuMWIxYnI5cDloczM4MGRwZHAwYTQ4MG03eWgxYzQ1MDkxIikpKSkKKyAgICAocHJv cGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLWNvbG9ycyIgLGp1bGlhLWNvbG9ycykKKwkJCSAoImp1 bGlhLW5hbm1hdGgiICxqdWxpYS1uYW5tYXRoKQorCQkJICgianVsaWEtY29tcGF0IiAsanVsaWEt Y29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGFy Z3VtZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJk LXBoYXNlcworCSAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4LXRvbWwKKwkgICAobGFtYmRh KiAoIzprZXkgb3V0cHV0cyBzb3VyY2UgIzphbGxvdy1vdGhlci1rZXlzKQorCSAgICAgKGp1bGlh LWNyZWF0ZS1wYWNrYWdlLXRvbWwKKwkgICAgICBvdXRwdXRzIHNvdXJjZQorCSAgICAgICJHcmFw aGljcyIKKwkgICAgICAiYTJiZDMwZWItZTI1Ny01NDMxLWE5MTktMTg2M2VhYjUxMzY0IgorCSAg ICAgICIwLjQuMCIKKwkgICAgICAnKCkpCisJICAgICAjdCkpKSkpCisgICAgKGhvbWUtcGFnZSAi aHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR3JhcGhpY3MvR3JhcGhpY3MuamwuZ2l0IikKKyAgICAo c3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6 ZXhwYXQpKSkKKworOzsgKGRlZmluZS1wdWJsaWMganVsaWEtY29sb3IKKzs7ICAgKHBhY2thZ2UK Kzs7ICAgICAobmFtZSAianVsaWEtY29sb3IiKQorOzsgICAgICh2ZXJzaW9uICIwLjQuOCIpCis7 OyAgICAgKHNvdXJjZSAob3JpZ2luCis7OyAJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCis7OyAJ ICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorOzsgCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIu Y29tL0p1bGlhQXR0aWMvQ29sb3IuamwuZ2l0IikKKzs7IAkJICAgIChjb21taXQgKHN0cmluZy1h cHBlbmQgInYiIHZlcnNpb24pKSkpCis7OyAJICAgICAgKGZpbGUtbmFtZSAiQ29sb3IiKQorOzsg CSAgICAgIChzaGEyNTYKKzs7IAkgICAgICAgKGJhc2UzMiAiMDExbmhjN2hkOXl2bjU5YXE1OGR2 ZDg0aHN4ZDJ6N3gyOTQ5Ymk2OXcwOTV2ejhpY2lreSIpKSkpCis7OyAgICAgKHByb3BhZ2F0ZWQt aW5wdXRzIGAoKCJqdWxpYS1ncmFwaGljcyIgLGp1bGlhLWdyYXBoaWNzKQorOzsgCQkJICgianVs aWEtZml4ZWRwb2ludG51bWJlcnMiICxqdWxpYS1maXhlZHBvaW50bnVtYmVycykKKzs7IAkJCSAo Imp1bGlhLWNvbXBhdCIgLGp1bGlhLWNvbXBhdCkpKQorOzsgICAgIChidWlsZC1zeXN0ZW0ganVs aWEtYnVpbGQtc3lzdGVtKQorOzsgICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9K dWxpYUF0dGljL0NvbG9yLmpsLmdpdCIpCis7OyAgICAgKHN5bm9wc2lzICIiKQorOzsgICAgIChk ZXNjcmlwdGlvbiAiIikKKzs7ICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKzs7IChk ZWZpbmUtcHVibGljIGp1bGlhLXRlcm1pbmFscworOzsgICAocGFja2FnZQorOzsgICAgIChuYW1l ICJqdWxpYS10ZXJtaW5hbHMiKQorOzsgICAgICh2ZXJzaW9uICIwLjAuMSIpCis7OyAgICAgKHNv dXJjZSAob3JpZ2luCis7OyAJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCis7OyAJICAgICAgKHVy aSAoZ2l0LXJlZmVyZW5jZQorOzsgCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0tlbm8v VGVybWluYWxzLmpsLmdpdCIpCis7OyAJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2 ZXJzaW9uKSkpKQorOzsgCSAgICAgIChmaWxlLW5hbWUgIlRlcm1pbmFscyIpCis7OyAJICAgICAg KHNoYTI1NgorOzsgCSAgICAgICAoYmFzZTMyICIxeGM1dzgyYzE5YjE3eWRnbHByMDNtbnpyMDdt cGM1OWp6ZjViNXdjYTZxcmlscWR4OHFiIikpKSkKKzs7ICAgICAocHJvcGFnYXRlZC1pbnB1dHMg YCg7OyAoImp1bGlhLWNvbG9yIiAsanVsaWEtY29sb3IpCis7OyAJCQkgKSkKKzs7ICAgICAoYnVp bGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKzs7ICAgICAoaG9tZS1wYWdlICJodHRwczov L2dpdGh1Yi5jb20vS2Vuby9UZXJtaW5hbHMuamwuZ2l0IikKKzs7ICAgICAoc3lub3BzaXMgIiIp Cis7OyAgICAgKGRlc2NyaXB0aW9uICIiKQorOzsgICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQp KSkKKworOzsgKGRlZmluZS1wdWJsaWMganVsaWEtbGluZWVkaXQKKzs7ICAgKHBhY2thZ2UKKzs7 ICAgICAobmFtZSAianVsaWEtbGluZWVkaXQiKQorOzsgICAgICh2ZXJzaW9uICIwLjAuMSIpCis7 OyAgICAgKHNvdXJjZSAob3JpZ2luCis7OyAJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCis7OyAJ ICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorOzsgCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIu Y29tL0tlbm8vTGluZUVkaXQuamwuZ2l0IikKKzs7IAkJICAgIChjb21taXQgKHN0cmluZy1hcHBl bmQgInYiIHZlcnNpb24pKSkpCis7OyAJICAgICAgKGZpbGUtbmFtZSAiTGluZUVkaXQiKQorOzsg CSAgICAgIChzaGEyNTYKKzs7IAkgICAgICAgKGJhc2UzMiAiMDVpbHk1am16bnl6YjAwYzBwd2xn d3Bsdm1reXZjYWxjaWEzazQzOHAzYWducXBxa3JuaCIpKSkpCis7OyAgICAgKHByb3BhZ2F0ZWQt aW5wdXRzIGAoOzsgKCJqdWxpYS10ZXJtaW5hbHMiICxqdWxpYS10ZXJtaW5hbHMpCis7OyAJCQkg KSkKKzs7ICAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKzs7ICAgICAoaG9t ZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vS2Vuby9MaW5lRWRpdC5qbC5naXQiKQorOzsgICAg IChzeW5vcHNpcyAiIikKKzs7ICAgICAoZGVzY3JpcHRpb24gIiIpCis7OyAgICAgKGxpY2Vuc2Ug bGljZW5zZTpleHBhdCkpKQorCis7OyAoZGVmaW5lLXB1YmxpYyBqdWxpYS1yZXBsCis7OyAgIChw YWNrYWdlCis7OyAgICAgKG5hbWUgImp1bGlhLXJlcGwiKQorOzsgICAgICh2ZXJzaW9uICIwLjAu MiIpCis7OyAgICAgKHNvdXJjZSAob3JpZ2luCis7OyAJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gp Cis7OyAJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorOzsgCQkgICAgKHVybCAiaHR0cHM6Ly9n aXRodWIuY29tL0tlbm8vUkVQTC5qbC5naXQiKQorOzsgCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFw cGVuZCAidiIgdmVyc2lvbikpKSkKKzs7IAkgICAgICAoZmlsZS1uYW1lICJSRVBMIikKKzs7IAkg ICAgICAoc2hhMjU2Cis7OyAJICAgICAgIChiYXNlMzIgIjF6ZjB4NXJrajBpMzF6NGlkd3MwcHdz ZHB2M3l2NW0wYW1qemdmeWxhN2RzdjdtdjBkN2kiKSkpKQorOzsgICAgIChwcm9wYWdhdGVkLWlu cHV0cyBgKDs7ICgianVsaWEtbGluZWVkaXQiICxqdWxpYS1saW5lZWRpdCkKKzs7IAkJCSApKQor OzsgICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorOzsgICAgIChob21lLXBh Z2UgImh0dHBzOi8vZ2l0aHViLmNvbS9LZW5vL1JFUEwuamwuZ2l0IikKKzs7ICAgICAoc3lub3Bz aXMgIiIpCis7OyAgICAgKGRlc2NyaXB0aW9uICIiKQorOzsgICAgIChsaWNlbnNlIGxpY2Vuc2U6 ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtcG9vbGVkYXJyYXlzCisgIChwYWNrYWdl CisgICAgKG5hbWUgImp1bGlhLXBvb2xlZGFycmF5cyIpCisgICAgKHZlcnNpb24gIjAuNS4yIikK KyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAo dXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFE YXRhL1Bvb2xlZEFycmF5cy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAi diIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJQb29sZWRBcnJheXMiKQorCSAgICAg IChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMHNkbjk2NWJiOTNhcGk0M2RqOGRzZDMybHAzeXlo NTNtcDIyeHIwdmZqMTE1eDN5bTJ3aiIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKSkK KyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdGh1Yi5jb20vSnVsaWFEYXRhL1Bvb2xlZEFycmF5cy5qbC5naXQiKQorICAgIChz eW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpl eHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1kYXRhZnJhbWVzCisgIChwYWNrYWdlCisg ICAgKG5hbWUgImp1bGlhLWRhdGFmcmFtZXMiKQorICAgICh2ZXJzaW9uICIwLjE5LjEiKQorICAg IChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkg KGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYURhdGEv RGF0YUZyYW1lcy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVy c2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJEYXRhRnJhbWVzIikKKwkgICAgICAoc2hhMjU2 CisJICAgICAgIChiYXNlMzIgIjBpNThraGNnNDg2azdhZmZra2o0M2IyM3pyZzRmbG15ODVzOXJr d3AwMjFnbmFsODBwNmIiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtdGFi bGVzIiAsanVsaWEtdGFibGVzKQorCQkJICgianVsaWEtaXRlcmF0b3JpbnRlcmZhY2VleHRlbnNp b25zIiAsanVsaWEtaXRlcmF0b3JpbnRlcmZhY2VleHRlbnNpb25zKQorCQkJICgianVsaWEtdGFi bGV0cmFpdHMiICxqdWxpYS10YWJsZXRyYWl0cykKKwkJCSAoImp1bGlhLW1pc3NpbmdzIiAsanVs aWEtbWlzc2luZ3MpCisJCQkgKCJqdWxpYS1jYXRlZ29yaWNhbGFycmF5cyIgLGp1bGlhLWNhdGVn b3JpY2FsYXJyYXlzKQorCQkJICgianVsaWEtaW52ZXJ0ZWRpbmRpY2VzIiAsanVsaWEtaW52ZXJ0 ZWRpbmRpY2VzKQorCQkJICgianVsaWEtc3RhdHMiICxqdWxpYS1zdGF0cykKKwkJCSAoImp1bGlh LWNvbXBhdCIgLGp1bGlhLWNvbXBhdCkKKwkJCSA7OyAoImp1bGlhLXJlcGwiICxqdWxpYS1yZXBs KQorCQkJICgianVsaWEtcG9vbGVkYXJyYXlzIiAsanVsaWEtcG9vbGVkYXJyYXlzKQorCQkJICgi anVsaWEtc29ydGluZ2FsZ29yaXRobXMiICxqdWxpYS1zb3J0aW5nYWxnb3JpdGhtcykKKwkJCSAo Imp1bGlhLXJlZXhwb3J0IiAsanVsaWEtcmVleHBvcnQpCisJCQkgKCJqdWxpYS1kYXRhYXBpIiAs anVsaWEtZGF0YWFwaSkKKwkJCSAoImp1bGlhLXBhcnNlcnMiICxqdWxpYS1wYXJzZXJzKSkpCisg ICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0 cHM6Ly9naXRodWIuY29tL0p1bGlhRGF0YS9EYXRhRnJhbWVzLmpsLmdpdCIpCisgICAgKHN5bm9w c2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0 KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLW1lYXN1cmVzCisgIChwYWNrYWdlCisgICAgKG5h bWUgImp1bGlhLW1lYXN1cmVzIikKKyAgICAodmVyc2lvbiAiMC4zLjAiKQorICAgIChzb3VyY2Ug KG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZl cmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUdyYXBoaWNzL01lYXN1 cmVzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkp KQorCSAgICAgIChmaWxlLW5hbWUgIk1lYXN1cmVzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAg IChiYXNlMzIgIjAyMHlmNGE3d21tMGpoa3B6eGd6NGJpZjJsNGwwem1yemFnejBnYzJocnZuejBr cDltM2IiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCkpCisgICAgKGFyZ3VtZW50cwor ICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwor CSAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4LXRvbWwKKwkgICAobGFtYmRhKiAoIzprZXkg b3V0cHV0cyBzb3VyY2UgIzphbGxvdy1vdGhlci1rZXlzKQorCSAgICAgKGp1bGlhLWNyZWF0ZS1w YWNrYWdlLXRvbWwKKwkgICAgICBvdXRwdXRzIHNvdXJjZQorCSAgICAgICJNZWFzdXJlcyIKKwkg ICAgICAiNDQyZmRjZGQtMjU0My01ZGEyLWIwZjMtOGM4NmMzMDY1MTNlIgorCSAgICAgICIwLjMu MCIKKwkgICAgICAnKCkpCisJICAgICAjdCkpKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1i dWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR3Jh cGhpY3MvTWVhc3VyZXMuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0 aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMg anVsaWEtcGxvdHV0aWxzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLXBsb3R1dGlscyIp CisgICAgKHZlcnNpb24gIjAuNS44IikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0 aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJo dHRwczovL2dpdGh1Yi5jb20vSnVsaWFQbG90cy9QbG90VXRpbHMuamwuZ2l0IikKKwkJICAgIChj b21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAi UGxvdFV0aWxzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjA0MDZqcTY0Znly YW1manF6Znc0cDBsc2dzOXAyc2luZHh4aW16bWNzYXY4aGE3cjB2d3kiKSkpKQorICAgIChwcm9w YWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29sb3JzIiAsanVsaWEtY29sb3JzKQorCQkJICgianVs aWEtcmVleHBvcnQiICxqdWxpYS1yZWV4cG9ydCkpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEt YnVpbGQtc3lzdGVtKQorICAgIChhcmd1bWVudHMKKyAgICAgYCgjOnBoYXNlcworICAgICAgICht b2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKKwkgKGFkZC1iZWZvcmUgJ3ByZWNvbXBpbGUg J2ZpeC10b21sCisJICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgc291cmNlICM6YWxsb3ctb3Ro ZXIta2V5cykKKwkgICAgIChqdWxpYS1jcmVhdGUtcGFja2FnZS10b21sCisJICAgICAgb3V0cHV0 cyBzb3VyY2UKKwkgICAgICAiUGxvdFV0aWxzIgorCSAgICAgICI5OTViOTFhOS1kMzA4LTVhZmQt OWVjNi03NDZlMjFkYmMwNDMiCisJICAgICAgIjAuNS44IgorCSAgICAgICcoKCJEYXRlcyIgLiAi YWRlMmNhNzAtMzg5MS01OTQ1LTk4ZmItZGMwOTk0MzJlMDZhIikKKwkJKCJSZWV4cG9ydCIgLiAi MTg5YTM4NjctMzA1MC01MmRhLWE4MzYtZTYzMGJhOTBhYjY5IikKKwkJKCJQcmludGYiIC4gImRl MDg1OGRhLTYzMDMtNWU2Ny04NzQ0LTUxZWRkZWVlYjhkNyIpCisJCSgiQ29sb3JzIiAuICI1YWU1 OTA5NS05YTliLTU5ZmUtYTQ2Ny02ZjkxM2MxODg1ODEiKQorCQkoIlJhbmRvbSIgLiAiOWEzZjgy ODQtYTJjOS01ZjAyLTlhMTEtODQ1OTgwYTFmZDVjIikpKQorCSAgICAgI3QpKSkpKQorICAgICho b21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVBsb3RzL1Bsb3RVdGlscy5qbC5naXQi KQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2Ug bGljZW5zZTpleHBhdCkpKQorCis7OyAoZGVmaW5lLXB1YmxpYyBqdWxpYS1pbW11dGFibGVhcnJh eXMKKzs7ICAgKHBhY2thZ2UKKzs7ICAgICAobmFtZSAianVsaWEtaW1tdXRhYmxlYXJyYXlzIikK Kzs7ICAgICAodmVyc2lvbiAiMC4wLjEyIikKKzs7ICAgICAoc291cmNlIChvcmlnaW4KKzs7IAkg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKzs7IAkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCis7 OyAJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHZW9tZXRyeS9JbW11dGFibGVB cnJheXMuamwuZ2l0IikKKzs7IAkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNp b24pKSkpCis7OyAJICAgICAgKGZpbGUtbmFtZSAiSW1tdXRhYmxlQXJyYXlzIikKKzs7IAkgICAg ICAoc2hhMjU2Cis7OyAJICAgICAgIChiYXNlMzIgIjB5dmo0OTRjcnBrdms4aDM4aXF6NmtjcjY2 YmhsMzk0cGd5MmpnMnc5NjBkdzNicDR5MjEiKSkpKQorOzsgICAgIChwcm9wYWdhdGVkLWlucHV0 cyBgKCgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KSkpCis7OyAgICAgKGJ1aWxkLXN5c3Rl bSBqdWxpYS1idWlsZC1zeXN0ZW0pCis7OyAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIu Y29tL0p1bGlhR2VvbWV0cnkvSW1tdXRhYmxlQXJyYXlzLmpsLmdpdCIpCis7OyAgICAgKHN5bm9w c2lzICIiKQorOzsgICAgIChkZXNjcmlwdGlvbiAiIikKKzs7ICAgICAobGljZW5zZSBsaWNlbnNl OmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLXN0YXRpY2FycmF5cworICAocGFja2Fn ZQorICAgIChuYW1lICJqdWxpYS1zdGF0aWNhcnJheXMiKQorICAgICh2ZXJzaW9uICIwLjExLjAi KQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAg ICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxp YUFycmF5cy9TdGF0aWNBcnJheXMuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBl bmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiU3RhdGljQXJyYXlzIikKKwkg ICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjBuaTRyZHE4cXE0YzdtNDlteTg4NWlzcGls cXZoYnphMGlkOTJqMTZycXpoZGZmOGJnaGciKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBg KCkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFn ZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhQXJyYXlzL1N0YXRpY0FycmF5cy5qbC5naXQiKQor ICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGlj ZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1jb250b3VyCisgIChwYWNrYWdl CisgICAgKG5hbWUgImp1bGlhLWNvbnRvdXIiKQorICAgICh2ZXJzaW9uICIwLjUuMSIpCisgICAg KHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAo Z2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR2VvbWV0 cnkvQ29udG91ci5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVy c2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJDb250b3VyIikKKwkgICAgICAoc2hhMjU2CisJ ICAgICAgIChiYXNlMzIgIjBsN3ppMnhzaHl2ODF4bHAxc3ptNDdmNjIwMGxuaGZ5bGZkcnNrN2cw eGlhanI4MWFjcGQiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKDs7ICgianVsaWEtaW1t dXRhYmxlYXJyYXlzIiAsanVsaWEtaW1tdXRhYmxlYXJyYXlzKQorCQkJICgianVsaWEtc3RhdGlj YXJyYXlzIiAsanVsaWEtc3RhdGljYXJyYXlzKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1i dWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR2Vv bWV0cnkvQ29udG91ci5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRp b24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBq dWxpYS1yZXF1aXJlcworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1yZXF1aXJlcyIpCisg ICAgKHZlcnNpb24gIjAuNS4yIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9k IGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRw czovL2dpdGh1Yi5jb20vTWlrZUlubmVzL1JlcXVpcmVzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0 ICJiMjMxOWNkODc1MTE4YzhkYThjYTA5OWJjZDczMzI0NmVkZTEzNjI4IikpKQorCSAgICAgIChm aWxlLW5hbWUgIlJlcXVpcmVzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjAw a3Nkc2RnbjhwZHI5djcyNjNwZG1ucW1wMTRwbW42cXBmMGJ2aThuMGc1OWYybmliaTkiKSkpKQor ICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtbWFjcm90b29scyIgLGp1bGlhLW1hY3Jv dG9vbHMpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9t ZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vTWlrZUlubmVzL1JlcXVpcmVzLmpsLmdpdCIpCisg ICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNl bnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWl0ZXJ0b29scworICAocGFja2Fn ZQorICAgIChuYW1lICJqdWxpYS1pdGVydG9vbHMiKQorICAgICh2ZXJzaW9uICIxLjIuMCIpCisg ICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVy aSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhQ29s bGVjdGlvbnMvSXRlclRvb2xzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5k ICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkl0ZXJUb29scyIpCisJICAgICAg KHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIxaXEwOHhwajFnYjJ3ejJoeDdnMTc3Y2x4bnhjd2xt YTEyZGoyNDB4bms3cTBnNjIzaGJ2IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgpKQor ICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0 dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUNvbGxlY3Rpb25zL0l0ZXJUb29scy5qbC5naXQiKQorICAg IChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5z ZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1nZW9tZXRyeXR5cGVzCisgIChwYWNr YWdlCisgICAgKG5hbWUgImp1bGlhLWdlb21ldHJ5dHlwZXMiKQorICAgICh2ZXJzaW9uICIwLjcu MyIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAg ICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1 bGlhR2VvbWV0cnkvR2VvbWV0cnlUeXBlcy5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAiOTI5NGRj YmExMGU3ZmJiNGI2ZjUwNGI2YzU2ZDNmY2JjM2JjNWNhNyIpKSkKKwkgICAgICAoZmlsZS1uYW1l ICJHZW9tZXRyeVR5cGVzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjFza2c0 cngwYTByaXBtNjhhaGo5MjZ4c3F5ZDd6cWtxbHFpajAybDE2bjB4MWsxY3ZiajQiKSkpKQorICAg IChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtc3RhdGljYXJyYXlzIiAsanVsaWEtc3RhdGlj YXJyYXlzKQorCQkJICgianVsaWEtZml4ZWRwb2ludG51bWJlcnMiICxqdWxpYS1maXhlZHBvaW50 bnVtYmVycykKKwkJCSAoImp1bGlhLWl0ZXJ0b29scyIgLGp1bGlhLWl0ZXJ0b29scykKKwkJCSAo Imp1bGlhLWNvbG9ydHlwZXMiICxqdWxpYS1jb2xvcnR5cGVzKSkpCisgICAgKGJ1aWxkLXN5c3Rl bSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29t L0p1bGlhR2VvbWV0cnkvR2VvbWV0cnlUeXBlcy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikK KyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCiso ZGVmaW5lLXB1YmxpYyBqdWxpYS1wbG90dGhlbWVzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1 bGlhLXBsb3R0aGVtZXMiKQorICAgICh2ZXJzaW9uICIwLjMuMCIpCisgICAgKHNvdXJjZSAob3Jp Z2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5j ZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhUGxvdHMvUGxvdFRoZW1lcy5q bC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkg ICAgICAoZmlsZS1uYW1lICJQbG90VGhlbWVzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChi YXNlMzIgIjFoeXJoZm4zcmhpdzk2NzQzemxxenI1ejY3dmd5cmZwcXF5MjN5d3c3emgweDNxem01 bTAiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtcGxvdHV0aWxzIiAsanVs aWEtcGxvdHV0aWxzKQorCQkJICgianVsaWEtcmVxdWlyZXMiICxqdWxpYS1yZXF1aXJlcykpKQor ICAgIChhcmd1bWVudHMKKyAgICAgYCgjOnBoYXNlcworICAgICAgIChtb2RpZnktcGhhc2VzICVz dGFuZGFyZC1waGFzZXMKKwkgKGFkZC1iZWZvcmUgJ3ByZWNvbXBpbGUgJ2ZpeC10b21sCisJICAg KGxhbWJkYSogKCM6a2V5IG91dHB1dHMgc291cmNlICM6YWxsb3ctb3RoZXIta2V5cykKKwkgICAg IChqdWxpYS1jcmVhdGUtcGFja2FnZS10b21sCisJICAgICAgb3V0cHV0cyBzb3VyY2UKKwkgICAg ICAiUGxvdFRoZW1lcyIKKwkgICAgICAiY2NmMmY4YWQtMjQzMS01YzgzLWJmMjktYzUzMzhiNjYz YjZhIgorCSAgICAgICIwLjMuMCIKKwkgICAgICAnKCgiUGxvdFV0aWxzIiAuICI5OTViOTFhOS1k MzA4LTVhZmQtOWVjNi03NDZlMjFkYmMwNDMiKQorCQkoIlJlcXVpcmVzIiAuICJhZTAyOTAxMi1h NGRkLTUxMDQtOWRhYS1kNzQ3ODg0ODA1ZGYiKQorCQkoIlN0YXRpc3RpY3MiIC4gIjEwNzQ1YjE2 LTc5Y2UtMTFlOC0xMWY5LTdkMTNhZDMyYTNiMiIpKSkKKwkgICAgICN0KSkpKSkKKyAgICAoYnVp bGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dp dGh1Yi5jb20vSnVsaWFQbG90cy9QbG90VGhlbWVzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIi KQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisK Kzs7IC0tIFRISVMgU0hPVUxEIEJFIE1PVkVEIFNPTUVXSEVSRSBFTFNFIQorKHVzZS1tb2R1bGVz ICgoZ3VpeCBsaWNlbnNlcykgIzpwcmVmaXggbGljZW5zZTopKQorKHVzZS1tb2R1bGVzIChndWl4 IHBhY2thZ2VzKSkKKyh1c2UtbW9kdWxlcyAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KSkKKyh1c2Ut bW9kdWxlcyAoZ3VpeCBnaXQtZG93bmxvYWQpKQorKHVzZS1tb2R1bGVzIChndWl4IGRvd25sb2Fk KSkKKworKHVzZS1tb2R1bGVzIChnbnUgcGFja2FnZXMgZ2NjKSkKKyh1c2UtbW9kdWxlcyAoZ251 IHBhY2thZ2VzIHF0KSkKKyh1c2UtbW9kdWxlcyAoZ251IHBhY2thZ2VzIG5ldHdvcmtpbmcpKQor KHVzZS1tb2R1bGVzIChnbnUgcGFja2FnZXMgZ3RrKSkKKyh1c2UtbW9kdWxlcyAoZ251IHBhY2th Z2VzIGdsKSkKKyh1c2UtbW9kdWxlcyAoZ251IHBhY2thZ2VzIGltYWdlKSkKKyh1c2UtbW9kdWxl cyAoZ251IHBhY2thZ2VzIHhvcmcpKQorCisoZGVmaW5lLXB1YmxpYyBncgorICAocGFja2FnZQor ICAgIChuYW1lICJnciIpCisgICAgKHZlcnNpb24gIjAuNDAuMCIpCisgICAgKHNvdXJjZSAob3Jp Z2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5j ZQorCQkgICAgKHVybCAoc3RyaW5nLWFwcGVuZAorCQkJICAiaHR0cHM6Ly9naXRodWIuY29tL2po ZWluZW4vIiBuYW1lKSkKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24p KSkpCisJICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQorCSAg ICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMgorCQkiMWZ4MTFoYTJscHJ4OXk5aDlsNWxjc3Jk Z3Awa3h4em5mNHFhOGNpM24xbGRzODljcHlwNCIpKQorCSAgICAgIChtb2R1bGVzICcoKGd1aXgg YnVpbGQgdXRpbHMpKSkpKQorICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKKyAg ICAoYXJndW1lbnRzCisgICAgICcoIzpwYXJhbGxlbC1idWlsZD8gI2YgCQk7IGZhaWxzIHdoZW4g cGFyYWxsZWwKKyAgICAgICAjOnBoYXNlcworICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFy ZC1waGFzZXMKKwkgKGRlbGV0ZSAnY29uZmlndXJlKQorCSAoZGVsZXRlICdjaGVjaykKKwkgKGRl bGV0ZSAndmFsaWRhdGUtcnVucGF0aCkKKwkgKGFkZC1iZWZvcmUgJ2J1aWxkICdmaXgtemVyb21x CisJICAgKGxhbWJkYSBfCisJICAgICA7OyByZW1vdmUgcHJlcmVxdWlzaXRlcyBmcm9tIHRhcmdl dHMgKHdlIGFscmVhZHkgaGF2ZSB6bXEpCisJICAgICAoc3Vic3RpdHV0ZSogImxpYi9na3MvTWFr ZWZpbGUiCisJICAgICAgICgoInRhcmdldHM6IHByZXJlcXVpc2l0ZXMgbGliR0tTLmEiKSAidGFy Z2V0czogbGliR0tTLmEiKSkKKwkgICAgICN0KSkKKwkgKGFkZC1iZWZvcmUgJ2J1aWxkICdmaXgt Z2tzLWluc3RhbGwKKwkgICAobGFtYmRhIF8KKwkgICAgIDs7IGZvbnRzIGFuZCBoZWFkZXIgaGFz IGFscmVhZHkgYmVlbiBjb3BpZWQsIG92ZXJyaWRlIGlzIG5lZWRlZAorCSAgICAgKHN1YnN0aXR1 dGUqICJsaWIvZ2tzL01ha2VmaWxlIgorCSAgICAgICAoKCJjcCAtYSBmb250cyIpICJjcCAtYWYg Zm9udHMiKSkKKwkgICAgIChzdWJzdGl0dXRlKiAibGliL2drcy9NYWtlZmlsZSIKKwkgICAgICAg KCgiY3AgLXAgZ2tzLmgiKSAiY3AgLXBmIGdrcy5oIikpCisJICAgICAjdCkpKQorICAgICAgICM6 bWFrZS1mbGFncworICAgICAgIChsaXN0ICJDQz1nY2MiCisJICAgICAoc3RyaW5nLWFwcGVuZCAi R1JESVI9IiAoYXNzb2MtcmVmICVvdXRwdXRzICJvdXQiKSkpKSkKKyAgICAoaW5wdXRzCisgICAg IGAoKCJnY2MiICxnY2MtOCkKKyAgICAgICAoInF0IiAscXRiYXNlKQorICAgICAgICgiem1xIiAs emVyb21xKQorICAgICAgICgiY3ptcSIgLGN6bXEpCisgICAgICAgKCJjYWlybyIgLGNhaXJvKQor ICAgICAgICgiZ2xmdyIgLGdsZncpCisgICAgICAgKCJsaWJ0aWZmIiAsbGlidGlmZikKKyAgICAg ICAoIngxMSIgLGxpYngxMSkKKyAgICAgICAoInh0IiAsbGlieHQpKSkKKyAgICAoaG9tZS1wYWdl ICJodHRwOi8vZ3ItZnJhbWV3b3JrLm9yZyIpCisgICAgKHN5bm9wc2lzICJVbml2ZXJzYWwgZnJh bWV3b3JrIGZvciBjcm9zcy1wbGF0Zm9ybSB2aXN1YWxpemF0aW9uIGFwcGxpY2F0aW9ucy4iKQor ICAgIChkZXNjcmlwdGlvbiAiT2ZmZXJzIGRldmVsb3BlcnMgYSBjb21wYWN0LCBwb3J0YWJsZSBh bmQgY29uc2lzdGVudCBncmFwaGljcyBsaWJyYXJ5IGZvciB0aGVpciBwcm9ncmFtcy4KK0FwcGxp Y2F0aW9ucyByYW5nZSBmcm9tIHB1YmxpY2F0aW9uIHF1YWxpdHkgMkQgZ3JhcGhzIHRvIHRoZSBy ZXByZXNlbnRhdGlvbiBvZiBjb21wbGV4IDNEIHNjZW5lcy4iKQorICAgIChsaWNlbnNlIGxpY2Vu c2U6ZXhwYXQpKSkKKzs7IC0tLSB1bnRpbCBoZXJlCisKKworKGRlZmluZS1wdWJsaWMganVsaWEt Z3IKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtZ3IiKQorICAgICh2ZXJzaW9uICIwLjQw LjAiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAg ICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9q aGVpbmVuL0dSLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJz aW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkdSIikKKwkgICAgICAoc2hhMjU2CisJICAgICAg IChiYXNlMzIgIjBubXJjNnhqNG41NWd2NDdkNGNhOWxoejA1M2IyNmkxanEwbnNpczA5dzVtZ3oz eTZua2wiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgiZ3IiICxncikpKQorICAgIChh cmd1bWVudHMKKyAgICAgYCgjOnBoYXNlcworICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFy ZC1waGFzZXMKKwkgKGFkZC1iZWZvcmUgJ3ByZWNvbXBpbGUgJ2J1aWxkLWRlcHMKKwkgICAobGFt YmRhKgorCSAgICAgICAoIzprZXkgb3V0cHV0cyBzb3VyY2UgaW5wdXRzICM6YWxsb3ctb3RoZXIt a2V5cykKKwkgICAgIChzdWJzdGl0dXRlKiAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1 dHMgIm91dCIpICIvc2hhcmUvanVsaWEvcGFja2FnZXMvIgorCQkJCQkgKHN0cmluZy1hcHBlbmQg KHN0cmlwLXN0b3JlLWZpbGUtbmFtZSBzb3VyY2UpICIvc3JjL0dSLmpsIikpCisJICAgICAgICgo ImNvbnN0IGxpYkdSID0gXCJsaWJHUi5zb1wiIikKKwkJKHN0cmluZy1hcHBlbmQgImNvbnN0IGxp YkdSID0gXCIiCisJCQkgICAgICAgKGFzc29jLXJlZiBpbnB1dHMgImdyIikKKwkJCSAgICAgICAi L2xpYi9saWJHUi5zb1wiIikpCisJICAgICAgICgoImNvbnN0IGxpYkdSMyA9IFwibGliR1IzLnNv XCIiKQorCQkoc3RyaW5nLWFwcGVuZCAiY29uc3QgbGliR1IzID0gXCIiCisJCQkgICAgICAgKGFz c29jLXJlZiBpbnB1dHMgImdyIikKKwkJCSAgICAgICAiL2xpYi9saWJHUjMuc29cIiIpKQorCSAg ICAgICAoKCIgPSBncmRpciIpCisJCShzdHJpbmctYXBwZW5kICIgPSBcIiIKKwkJCSAgICAgICAo YXNzb2MtcmVmIGlucHV0cyAiZ3IiKQorCQkJICAgICAgICJcIiIpKSkKKwkgICAgICN0KSkpKSkK KyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdGh1Yi5jb20vamhlaW5lbi9HUi5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikK KyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisK KyhkZWZpbmUtcHVibGljIGp1bGlhLWZmbXBlZworICAocGFja2FnZQorICAgIChuYW1lICJqdWxp YS1mZm1wZWciKQorICAgICh2ZXJzaW9uICIwLjIuMiIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJ ICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkg ICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhSU8vRkZNUEVHLmpsLmdpdCIpCisJCSAg ICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5h bWUgIkZGTVBFRyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIwbmJkbThsaml6 Y2dqbWNhYTEyajNjdjg0eWhjdm5sbmE5ZzFsODZtOGdmOG5oYWNrd2E1IikpKSkKKyAgICAoYXJn dW1lbnRzCisgICAgIGAoIzpwaGFzZXMKKyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQt cGhhc2VzCisJIChhZGQtYmVmb3JlICdwcmVjb21waWxlICdidWlsZC1kZXBzCisJICAgKGxhbWJk YSogKCM6a2V5IG91dHB1dHMgc291cmNlIGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisJICAg ICAobGV0ICgoZiAob3Blbi1maWxlCisJCSAgICAgICAoc3RyaW5nLWFwcGVuZAorCQkJKGFzc29j LXJlZiBvdXRwdXRzICJvdXQiKQorCQkJIi9zaGFyZS9qdWxpYS9wYWNrYWdlcy8iCisJCQkoc3Ry aW5nLWFwcGVuZAorCQkJIChzdHJpcC1zdG9yZS1maWxlLW5hbWUgc291cmNlKSAiL2RlcHMvZGVw cy5qbCIpKQorCQkgICAgICAgInciKSkpCisJICAgICAgIChkaXNwbGF5IChzdHJpbmctYXBwZW5k ICJjb25zdCBsaWJhdmNvZGVjID0gXCIiCisJCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJm Zm1wZWciKQorCQkJCSAgICAgICAiL2xpYi9saWJhdmNvZGVjLnNvXCJcbiIpIGYpCisJICAgICAg IChkaXNwbGF5IChzdHJpbmctYXBwZW5kICJjb25zdCBsaWJhdmZvcm1hdCA9IFwiIgorCQkJCSAg ICAgICAoYXNzb2MtcmVmIGlucHV0cyAiZmZtcGVnIikKKwkJCQkgICAgICAgIi9saWIvbGliYXZm b3JtYXQuc29cIlxuIikgZikKKwkgICAgICAgKGRpc3BsYXkgKHN0cmluZy1hcHBlbmQgImNvbnN0 IGxpYmF2Y29kZWMgPSBcIiIKKwkJCQkgICAgICAgKGFzc29jLXJlZiBpbnB1dHMgImZmbXBlZyIp CisJCQkJICAgICAgICIvbGliL2xpYmF2Y29kZWMuc29cIlxuIikgZikKKwkgICAgICAgKGRpc3Bs YXkgKHN0cmluZy1hcHBlbmQgImNvbnN0IGxpYmF2dXRpbCA9IFwiIgorCQkJCSAgICAgICAoYXNz b2MtcmVmIGlucHV0cyAiZmZtcGVnIikKKwkJCQkgICAgICAgIi9saWIvbGliYXZ1dGlsLnNvXCJc biIpIGYpCisJICAgICAgIChkaXNwbGF5IChzdHJpbmctYXBwZW5kICJjb25zdCBsaWJzd3NjYWxl ID0gXCIiCisJCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJmZm1wZWciKQorCQkJCSAgICAg ICAiL2xpYi9saWJzd3NjYWxlLnNvXCJcbiIpIGYpCisJICAgICAgIChkaXNwbGF5IChzdHJpbmct YXBwZW5kICJjb25zdCBsaWJhdmRldmljZSA9IFwiIgorCQkJCSAgICAgICAoYXNzb2MtcmVmIGlu cHV0cyAiZmZtcGVnIikKKwkJCQkgICAgICAgIi9saWIvbGliYXZkZXZpY2Uuc29cIlxuIikgZikK KwkgICAgICAgKGRpc3BsYXkgKHN0cmluZy1hcHBlbmQgImNvbnN0IGxpYmF2ZmlsdGVyID0gXCIi CisJCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJmZm1wZWciKQorCQkJCSAgICAgICAiL2xp Yi9saWJhdmZpbHRlci5zb1wiXG4iKSBmKQorCSAgICAgICAoZGlzcGxheSAoc3RyaW5nLWFwcGVu ZCAiY29uc3QgZmZtcGVnID0gXCIiCisJCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJmZm1w ZWciKQorCQkJCSAgICAgICAiL2Jpbi9mZm1wZWdcIlxuIikgZikKKwkgICAgICAgKGNsb3NlLXBv cnQgZikpCisJICAgICAoc3Vic3RpdHV0ZSoKKwkJIChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYg b3V0cHV0cyAib3V0IikgIi9zaGFyZS9qdWxpYS9wYWNrYWdlcy8iCisJCQkJKHN0cmluZy1hcHBl bmQgKHN0cmlwLXN0b3JlLWZpbGUtbmFtZSBzb3VyY2UpICIvc3JjL0ZGTVBFRy5qbCIpKQorCSAg ICAgICAoKCJjb25zdCBsaWJwYXRoID0gam9pbnBhdGgoQF9fRElSX18sIFwiLi5cIiwgXCJkZXBz XCIsIFwidXNyXCIsIFwibGliXCIpIikKKwkJKHN0cmluZy1hcHBlbmQgImNvbnN0IGxpYnBhdGgg PSBcIiIKKwkJCSAgICAgICAoYXNzb2MtcmVmIGlucHV0cyAiZmZtcGVnIikKKwkJCSAgICAgICAi L2xpYiIpKSkKKwkgICAgIAorCSAgICAgI3QpCisJICAgKSkpKQorICAgIChwcm9wYWdhdGVkLWlu cHV0cyBgKCgianVsaWEtYmluYXJ5cHJvdmlkZXIiICxqdWxpYS1iaW5hcnlwcm92aWRlcikKKwkJ CSAoImZmbXBlZyIgLGZmbXBlZykpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lz dGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUlPL0ZGTVBFRy5q bC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxp Y2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1yZWNpcGVzYmFz ZQorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1yZWNpcGVzYmFzZSIpCisgICAgKHZlcnNp b24gIjAuNy4wIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRj aCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1 Yi5jb20vSnVsaWFQbG90cy9SZWNpcGVzQmFzZS5qbC5naXQiKQorCQkgICAgKGNvbW1pdCAoc3Ry aW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJSZWNpcGVzQmFz ZSIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIxOGRrenZueDZqY3F2amFxeDU5 MmJieHY1d2dzbDc1amFwcTU2aWoyczhwNmdjODY4bHZzIikpKSkKKyAgICAocHJvcGFnYXRlZC1p bnB1dHMgYCgpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgICho b21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVBsb3RzL1JlY2lwZXNCYXNlLmpsLmdp dCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5z ZSBsaWNlbnNlOmV4cGF0KSkpCisKKworOzsgKGRlZmluZS1wdWJsaWMganVsaWEtaXRlcmF0b3Jz Cis7OyAgIChwYWNrYWdlCis7OyAgICAgKG5hbWUgImp1bGlhLWl0ZXJhdG9ycyIpCis7OyAgICAg KHZlcnNpb24gIjAuMy4xIikKKzs7ICAgICAoc291cmNlIChvcmlnaW4KKzs7IAkgICAgICAobWV0 aG9kIGdpdC1mZXRjaCkKKzs7IAkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCis7OyAJCSAgICAo dXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFDb2xsZWN0aW9ucy9JdGVyYXRvcnMuamwuZ2l0 IikKKzs7IAkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCis7OyAJ ICAgICAgKGZpbGUtbmFtZSAiSXRlcmF0b3JzIikKKzs7IAkgICAgICAoc2hhMjU2Cis7OyAJICAg ICAgIChiYXNlMzIgIjFpaXhmY2M0bXE5MjhhMGpqcmQ0bnZsNThkYXd4eHd2NzkzNXdrM203Zmg3 Z2I2cjY4eWsiKSkpKQorOzsgICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCkpCis7OyAgICAgKGJ1 aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCis7OyAgICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhQ29sbGVjdGlvbnMvSXRlcmF0b3JzLmpsLmdpdCIpCis7OyAgICAg KHN5bm9wc2lzICIiKQorOzsgICAgIChkZXNjcmlwdGlvbiAiIikKKzs7ICAgICAobGljZW5zZSBs aWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLXNob3dvZmYKKyAgKHBhY2th Z2UKKyAgICAobmFtZSAianVsaWEtc2hvd29mZiIpCisgICAgKHZlcnNpb24gIjAuMi4xIikKKyAg ICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJp IChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHcmFw aGljcy9TaG93b2ZmLmpsLmdpdCIpCisJCSAgICAoY29tbWl0ICI4NTAyYzJlYzExZjkzYzRmNTBj NjA5ZmY0MTY4YWFiMzExNTRiMzlkIikpKQorCSAgICAgIChmaWxlLW5hbWUgIlNob3dvZmYiKQor CSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMTBpeWR2YTh2cWxmdjRpNWp3MzFxOXBj Nzg3N3N5ZDBiZnoyZGpnOTN4ZHk5MGw0YzYxNyIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRz IGAoIDs7ICgianVsaWEtaXRlcmF0b3JzIiAsanVsaWEtaXRlcmF0b3JzKQorCQkJICgianVsaWEt Y29tcGF0IiAsanVsaWEtY29tcGF0KQorCQkJICkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1i dWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR3Jh cGhpY3MvU2hvd29mZi5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRp b24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBq dWxpYS1wbG90cworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1wbG90cyIpCisgICAgKHZl cnNpb24gIjAuMjYuMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQt ZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9n aXRodWIuY29tL0p1bGlhUGxvdHMvUGxvdHMuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmlu Zy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiUGxvdHMiKQorCSAg ICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMW4zYXo3OGZ6ajVoMmczeGgwYWFyMnJxNXFm bndmaWRrMHN6bjRjOHY3bTJzbjY5eWkxNSIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAo KCJqdWxpYS1yZWV4cG9ydCIgLGp1bGlhLXJlZXhwb3J0KQorCQkJICgianVsaWEtanNvbiIgLGp1 bGlhLWpzb24pCisJCQkgKCJqdWxpYS1maXhlZHBvaW50bnVtYmVycyIgLGp1bGlhLWZpeGVkcG9p bnRudW1iZXJzKQorCQkJICgianVsaWEtbmFubWF0aCIgLGp1bGlhLW5hbm1hdGgpCisJCQkgKCJq dWxpYS1zdGF0c2Jhc2UiICxqdWxpYS1zdGF0c2Jhc2UpCisJCQkgKCJqdWxpYS1tZWFzdXJlcyIg LGp1bGlhLW1lYXN1cmVzKQorCQkJICgianVsaWEtcGxvdHV0aWxzIiAsanVsaWEtcGxvdHV0aWxz KQorCQkJICgianVsaWEtY29udG91ciIgLGp1bGlhLWNvbnRvdXIpCisJCQkgKCJqdWxpYS1yZXF1 aXJlcyIgLGp1bGlhLXJlcXVpcmVzKQorCQkJICgianVsaWEtZ2VvbWV0cnl0eXBlcyIgLGp1bGlh LWdlb21ldHJ5dHlwZXMpCisJCQkgKCJqdWxpYS1wbG90dGhlbWVzIiAsanVsaWEtcGxvdHRoZW1l cykKKwkJCSA7OyAoImp1bGlhLXJlcGwiICxqdWxpYS1yZXBsKQorCQkJICgianVsaWEtZ3IiICxq dWxpYS1ncikKKwkJCSAoImp1bGlhLWZmbXBlZyIgLGp1bGlhLWZmbXBlZykKKwkJCSAoImp1bGlh LXJlY2lwZXNiYXNlIiAsanVsaWEtcmVjaXBlc2Jhc2UpCisJCQkgKCJqdWxpYS1zaG93b2ZmIiAs anVsaWEtc2hvd29mZikpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQor ICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVBsb3RzL1Bsb3RzLmpsLmdp dCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5z ZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWNvZGV0cmFja2luZwor ICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1jb2RldHJhY2tpbmciKQorICAgICh2ZXJzaW9u ICIwLjUuNyIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gp CisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIu Y29tL3RpbWhvbHkvQ29kZVRyYWNraW5nLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmct YXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkNvZGVUcmFja2luZyIp CisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIweWN3aHhmajl5NjE4d2l4ZmZ4cWZt cjd2eXg2d3czZmF4N2MxbjFpMWhpenNnc2dmandsIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1 dHMgYCgpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS90aW1ob2x5L0NvZGVUcmFja2luZy5qbC5naXQiKQor ICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGlj ZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1qdWxpYWludGVycHJldGVyCisg IChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWp1bGlhaW50ZXJwcmV0ZXIiKQorICAgICh2ZXJz aW9uICIwLjYuMCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRo dWIuY29tL0p1bGlhRGVidWcvSnVsaWFJbnRlcnByZXRlci5qbC5naXQiKQorCQkgICAgKGNvbW1p dCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1lICJKdWxp YUludGVycHJldGVyIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjBtZ3I3Zmdo YzMzZ2I5cG1qcXA3eXJxcnc3OWQwaW5qNHZuMzg0Zm1nbDJ5cjFxNGs4NnAiKSkpKQorICAgIChw cm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29kZXRyYWNraW5nIiAsanVsaWEtY29kZXRyYWNr aW5nKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhRGVidWcvSnVsaWFJbnRlcnByZXRlci5qbC5n aXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vu c2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1sb3dlcmVkY29kZXV0 aWxzCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWxvd2VyZWRjb2RldXRpbHMiKQorICAg ICh2ZXJzaW9uICIwLjMuNiIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBn aXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhRGVidWcvTG93ZXJlZENvZGVVdGlscy5qbC5naXQiKQorCQkgICAg KGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1uYW1l ICJMb3dlcmVkQ29kZVV0aWxzIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjE0 bHNtNThzMXN3aHl3eXM3ejA1bHkzODZjMjF3MWduMHBkYjg3c2hteXM5OWxtemc2aWIiKSkpKQor ICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtanVsaWFpbnRlcnByZXRlciIgLGp1bGlh LWp1bGlhaW50ZXJwcmV0ZXIpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3Rl bSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFEZWJ1Zy9Mb3dlcmVk Q29kZVV0aWxzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAi IikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlh LXJldmlzZQorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1yZXZpc2UiKQorICAgICh2ZXJz aW9uICIyLjEuNiIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRo dWIuY29tL3RpbWhvbHkvUmV2aXNlLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBw ZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIlJldmlzZSIpCisJICAgICAg KHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIwcW5mZ3NmNGgxM2J3NmpqNmRkNDU1OWkwMGZkajhx Yms4bG12cnF4OHFpdmI4YjB5a3hpIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1 bGlhLWxvd2VyZWRjb2RldXRpbHMiICxqdWxpYS1sb3dlcmVkY29kZXV0aWxzKQorCQkJICgianVs aWEtanVsaWFpbnRlcnByZXRlciIgLGp1bGlhLWp1bGlhaW50ZXJwcmV0ZXIpCisJCQkgKCJqdWxp YS1vcmRlcmVkY29sbGVjdGlvbnMiICxqdWxpYS1vcmRlcmVkY29sbGVjdGlvbnMpKSkKKyAgICAo YnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczov L2dpdGh1Yi5jb20vdGltaG9seS9SZXZpc2UuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisg ICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRl ZmluZS1wdWJsaWMganVsaWEtdGFibGVzaG93dXRpbHMKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAi anVsaWEtdGFibGVzaG93dXRpbHMiKQorICAgICh2ZXJzaW9uICIwLjIuNSIpCisgICAgKHNvdXJj ZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJl ZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3F1ZXJ5dmVyc2UvVGFibGVT aG93VXRpbHMuamwuZ2l0IikKKwkJICAgIChjb21taXQgIjA1MTVhMmNjNjE1ZDU1YzJjNTQxMmU4 ZDg0NzQwZWEwMWZhNGY3YWEiKSkpCisJICAgICAgKGZpbGUtbmFtZSAiVGFibGVTaG93VXRpbHMi KQorCSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMW1ibmliYTVsbGY0ZjBrNTd3d2Qy YTBpNWM3N2Qxc3J5NjZ4YXo5aDl3NWIybGh4N2NkeSIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5w dXRzIGAoKCJqdWxpYS1tYXJrZG93biIgLGp1bGlhLW1hcmtkb3duKQorCQkJICgianVsaWEtanNv biIgLGp1bGlhLWpzb24pCisJCQkgKCJqdWxpYS1kYXRhdmFsdWVzIiAsanVsaWEtZGF0YXZhbHVl cykpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBh Z2UgImh0dHBzOi8vZ2l0aHViLmNvbS9xdWVyeXZlcnNlL1RhYmxlU2hvd1V0aWxzLmpsLmdpdCIp CisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBs aWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWl0ZXJhdG9yaW50ZXJmYWNl ZXh0ZW5zaW9ucworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1pdGVyYXRvcmludGVyZmFj ZWV4dGVuc2lvbnMiKQorICAgICh2ZXJzaW9uICIxLjAuMCIpCisgICAgKHNvdXJjZSAob3JpZ2lu CisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQor CQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3F1ZXJ5dmVyc2UvSXRlcmF0b3JJbnRlcmZh Y2VFeHRlbnNpb25zLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2 ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkl0ZXJhdG9ySW50ZXJmYWNlRXh0ZW5zaW9u cyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIxc2xwYXkxZGhqYThmOWd5Nno3 YjNwc2d2Z2Nrbm45NjNkdmZxcWFrdmcxZ3JrOXBwYTA5IikpKSkKKyAgICAocHJvcGFnYXRlZC1p bnB1dHMgYCgpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgICho b21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9xdWVyeXZlcnNlL0l0ZXJhdG9ySW50ZXJmYWNl RXh0ZW5zaW9ucy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24g IiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxp YS1xdWVyeW9wZXJhdG9ycworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1xdWVyeW9wZXJh dG9ycyIpCisgICAgKHZlcnNpb24gIjAuOS4wIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAg ICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAo dXJsICJodHRwczovL2dpdGh1Yi5jb20vcXVlcnl2ZXJzZS9RdWVyeU9wZXJhdG9ycy5qbC5naXQi KQorCQkgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAo ZmlsZS1uYW1lICJRdWVyeU9wZXJhdG9ycyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFz ZTMyICIwYmZ3amFocGNmbXJwMnowZ3lqOThubTFmMTlrMWhxYWZ6OXpuem5iOHl2bjFycjU4eG0z IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLWRhdGF2YWx1ZXMiICxqdWxp YS1kYXRhdmFsdWVzKQorCQkJICgianVsaWEtZGF0YXN0cnVjdHVyZXMiICxqdWxpYS1kYXRhc3Ry dWN0dXJlcykKKwkJCSAoImp1bGlhLXRhYmxlc2hvd3V0aWxzIiAsanVsaWEtdGFibGVzaG93dXRp bHMpCisJCQkgKCJqdWxpYS1pdGVyYXRvcmludGVyZmFjZWV4dGVuc2lvbnMiICxqdWxpYS1pdGVy YXRvcmludGVyZmFjZWV4dGVuc2lvbnMpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxk LXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcXVlcnl2ZXJzZS9R dWVyeU9wZXJhdG9ycy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRp b24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBq dWxpYS10YWJsZXRyYWl0cworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS10YWJsZXRyYWl0 cyIpCisgICAgKHZlcnNpb24gIjEuMC4wIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAo bWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJs ICJodHRwczovL2dpdGh1Yi5jb20vcXVlcnl2ZXJzZS9UYWJsZVRyYWl0cy5qbC5naXQiKQorCQkg ICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAgICAoZmlsZS1u YW1lICJUYWJsZVRyYWl0cyIpCisJICAgICAgKHNoYTI1NgorCSAgICAgICAoYmFzZTMyICIwbHpi OXhxbmhnamJ2a3NjYzRwOXZ3M3B6YWptM2E1YTZheXY2YnlxYzUzd3M4ZnhxazJ2IikpKSkKKyAg ICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLWl0ZXJhdG9yaW50ZXJmYWNlZXh0ZW5zaW9u cyIgLGp1bGlhLWl0ZXJhdG9yaW50ZXJmYWNlZXh0ZW5zaW9ucykpKQorICAgIChidWlsZC1zeXN0 ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNv bS9xdWVyeXZlcnNlL1RhYmxlVHJhaXRzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAg IChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZp bmUtcHVibGljIGp1bGlhLXRhYmxldHJhaXRzdXRpbHMKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAi anVsaWEtdGFibGV0cmFpdHN1dGlscyIpCisgICAgKHZlcnNpb24gIjEuMC4wIikKKyAgICAoc291 cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChnaXQt cmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vcXVlcnl2ZXJzZS9UYWJs ZVRyYWl0c1V0aWxzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2 ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIlRhYmxlVHJhaXRzVXRpbHMiKQorCSAgICAg IChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMGF4bXJ6bmZtaWk3YzkwOW1jZ3IyenB6bGRkajYy ajFkaG5zczZkMmdsOWFyNW13NWNsOSIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJq dWxpYS1kYXRhdmFsdWVzIiAsanVsaWEtZGF0YXZhbHVlcykKKwkJCSAoImp1bGlhLXRhYmxldHJh aXRzIiAsanVsaWEtdGFibGV0cmFpdHMpCisJCQkgKCJqdWxpYS1taXNzaW5ncyIgLGp1bGlhLW1p c3NpbmdzKQorCQkJICgianVsaWEtaXRlcmF0b3JpbnRlcmZhY2VleHRlbnNpb25zIiAsanVsaWEt aXRlcmF0b3JpbnRlcmZhY2VleHRlbnNpb25zKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1i dWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3F1ZXJ5dmVy c2UvVGFibGVUcmFpdHNVdGlscy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVz Y3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1 YmxpYyBqdWxpYS1pdGVyYWJsZXRhYmxlcworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1p dGVyYWJsZXRhYmxlcyIpCisgICAgKHZlcnNpb24gIjAuMTEuMCIpCisgICAgKHNvdXJjZSAob3Jp Z2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5j ZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3F1ZXJ5dmVyc2UvSXRlcmFibGVUYWJs ZXMuamwuZ2l0IikKKwkJICAgIChjb21taXQgIjI2ODNjMDA2MTM0NjEzMTMxYzFmNzQ3YzBmMGZh NDBlYzZlNDliZjAiKSkpCisJICAgICAgKGZpbGUtbmFtZSAiSXRlcmFibGVUYWJsZXMiKQorCSAg ICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAiMWlmaGx2cnExNm5raTExcGE2c3F5czlmbmEw djkxNjU5c25wMHgweTJzYjFxMnkybHY0ZyIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAo KCJqdWxpYS1kYXRhdmFsdWVzIiAsanVsaWEtZGF0YXZhbHVlcykKKwkJCSAoImp1bGlhLXJlcXVp cmVzIiAsanVsaWEtcmVxdWlyZXMpCisJCQkgKCJqdWxpYS10YWJsZXRyYWl0cyIgLGp1bGlhLXRh YmxldHJhaXRzKQorCQkJICgianVsaWEtdGFibGV0cmFpdHN1dGlscyIgLGp1bGlhLXRhYmxldHJh aXRzdXRpbHMpCisJCQkgKCJqdWxpYS1pdGVyYXRvcmludGVyZmFjZWV4dGVuc2lvbnMiICxqdWxp YS1pdGVyYXRvcmludGVyZmFjZWV4dGVuc2lvbnMpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlh LWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcXVlcnl2 ZXJzZS9JdGVyYWJsZVRhYmxlcy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVz Y3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1 YmxpYyBqdWxpYS1xdWVyeQorKHBhY2thZ2UKKyhuYW1lICJqdWxpYS1xdWVyeSIpCisodmVyc2lv biAiMC4xMi4wIikKKyhzb3VyY2UKKyhvcmlnaW4KKyhtZXRob2QgZ2l0LWZldGNoKQorKHVyaQor KGdpdC1yZWZlcmVuY2UKKyh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9xdWVyeXZlcnNlL1F1ZXJ5 LmpsLmdpdCIpCisoY29tbWl0Cisoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyhmaWxl LW5hbWUgIlF1ZXJ5IikKKyhzaGEyNTYKKyhiYXNlMzIgIjE5bTg3ZDU5MTNtbms1dmxma2tsOTU2 MGRuc2puNGM1azAwYWlncmhwY2d2djhuczBwMDciKSkpKQorKHByb3BhZ2F0ZWQtaW5wdXRzCitg KCgianVsaWEtbWFjcm90b29scyIgLGp1bGlhLW1hY3JvdG9vbHMpCisoImp1bGlhLXF1ZXJ5b3Bl cmF0b3JzIiAsanVsaWEtcXVlcnlvcGVyYXRvcnMpCisoImp1bGlhLWl0ZXJhYmxldGFibGVzIiAs anVsaWEtaXRlcmFibGV0YWJsZXMpCisoImp1bGlhLWRhdGF2YWx1ZXMiICxqdWxpYS1kYXRhdmFs dWVzKSkpCisoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyhob21lLXBhZ2UgImh0 dHBzOi8vZ2l0aHViLmNvbS9xdWVyeXZlcnNlL1F1ZXJ5LmpsLmdpdCIpCisgICAgKHN5bm9wc2lz ICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkp CisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWNhaXJvCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1 bGlhLWNhaXJvIikKKyAgICAodmVyc2lvbiAiMC42LjAiKQorICAgIChzb3VyY2UKKyAgICAgKG9y aWdpbgorICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkKKwkoZ2l0LXJlZmVy ZW5jZQorCSAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHcmFwaGljcy9DYWlyby5qbC5n aXQiKQorCSAoY29tbWl0CisJICAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAg ICAoZmlsZS1uYW1lICJDYWlybyIpCisgICAgICAgKHNoYTI1NgorCShiYXNlMzIgIjFocnY4cHhy eXdsMTg0NXdxNjk3cXFrMGw0MWZqaDA2Z3ZsOWNmcWh5bTF4MDRmM2o5cWoiKSkpKQorICAgIChw cm9wYWdhdGVkLWlucHV0cworICAgICBgKCgianVsaWEtZ3JhcGhpY3MiICxqdWxpYS1ncmFwaGlj cykKKyAgICAgICAoImp1bGlhLWNvbG9ycyIgLGp1bGlhLWNvbG9ycykKKyAgICAgICAoImp1bGlh LWJpbmRlcHMiICxqdWxpYS1iaW5kZXBzKQorICAgICAgICgianVsaWEtY29tcGF0IiAsanVsaWEt Y29tcGF0KQorICAgICAgICgiZ2xpYiIgLGdsaWIpCisgICAgICAgKCJjYWlybyIgLGNhaXJvKQor ICAgICAgICgicGFuZ28iICxwYW5nbykpKQorICAgIChhcmd1bWVudHMKKyAgICAgYCgjOnBoYXNl cworICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKKwkgKGFkZC1iZWZvcmUg J3ByZWNvbXBpbGUgJ2J1aWxkLWRlcHMKKwkgICAobGFtYmRhKgorCSAgICAgICAoIzprZXkgb3V0 cHV0cyBzb3VyY2UgaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKwkgICAgIChsZXQKKwkJICgo ZgorCQkgICAob3Blbi1maWxlCisJCSAgICAoc3RyaW5nLWFwcGVuZAorCQkgICAgIChhc3NvYy1y ZWYgb3V0cHV0cyAib3V0IikKKwkJICAgICAiL3NoYXJlL2p1bGlhL3BhY2thZ2VzLyIKKwkJICAg ICAoc3RyaW5nLWFwcGVuZAorCQkgICAgICAoc3RyaXAtc3RvcmUtZmlsZS1uYW1lIHNvdXJjZSkK KwkJICAgICAgIi9kZXBzL2RlcHMuamwiKSkKKwkJICAgICJ3IikpKQorCSAgICAgICAoZGlzcGxh eQorCQkoc3RyaW5nLWFwcGVuZCAiY29uc3QgX2psX2xpYmNhaXJvID0gXCIiCisJCQkgICAgICAg KGFzc29jLXJlZiBpbnB1dHMgImNhaXJvIikKKwkJCSAgICAgICAiL2xpYi9saWJjYWlyby5zb1wi XG4iKQorCQlmKQorCSAgICAgICAoZGlzcGxheQorCQkoc3RyaW5nLWFwcGVuZCAiY29uc3QgX2ps X2xpYnBhbmdvID0gXCIiCisJCQkgICAgICAgKGFzc29jLXJlZiBpbnB1dHMgInBhbmdvIikKKwkJ CSAgICAgICAiL2xpYi9saWJwYW5nby0xLjAuc29cIlxuIikKKwkJZikKKwkgICAgICAgKGRpc3Bs YXkKKwkJKHN0cmluZy1hcHBlbmQgImNvbnN0IF9qbF9saWJwYW5nb2NhaXJvID0gXCIiCisJCQkg ICAgICAgKGFzc29jLXJlZiBpbnB1dHMgInBhbmdvIikKKwkJCSAgICAgICAiL2xpYi9saWJwYW5n b2NhaXJvLTEuMC5zb1wiXG4iKQorCQlmKQorCSAgICAgICAoZGlzcGxheQorCQkoc3RyaW5nLWFw cGVuZCAiY29uc3QgX2psX2xpYmdvYmplY3QgPSBcIiIKKwkJCSAgICAgICAoYXNzb2MtcmVmIGlu cHV0cyAiZ2xpYiIpCisJCQkgICAgICAgIi9saWIvbGliZ29iamVjdC0yLjAuc29cIlxuIikKKwkJ ZikKKwkgICAgICAgKGNsb3NlLXBvcnQgZikpCisJICAgICAjdCkKKwkgICApKSkpCisgICAgKGJ1 aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9n aXRodWIuY29tL0p1bGlhR3JhcGhpY3MvQ2Fpcm8uamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIp CisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKwor KGRlZmluZS1wdWJsaWMganVsaWEtZ3RrCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWd0 ayIpCisgICAgKHZlcnNpb24gIjAuMTcuMCIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisg ICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaQorCShnaXQtcmVmZXJlbmNlCisJ ICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUdyYXBoaWNzL0d0ay5qbC5naXQiKQorCSAo Y29tbWl0CisJICAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1u YW1lICJHdGsiKQorICAgICAgIChzaGEyNTYKKwkoYmFzZTMyICIwaXZ2aWEyaXE4bWZxaHlqZjli anc5cDF3YW16aTY5Z3NyOGo3YXY5ajFoazV4bjd4eGM1IikpKSkKKyAgICAocHJvcGFnYXRlZC1p bnB1dHMKKyAgICAgYCgoImp1bGlhLWJpbmRlcHMiICxqdWxpYS1iaW5kZXBzKQorICAgICAgICgi anVsaWEtY2Fpcm8iICxqdWxpYS1jYWlybykKKyAgICAgICAoImp1bGlhLXJlZXhwb3J0IiAsanVs aWEtcmVleHBvcnQpCisgICAgICAgKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpCisgICAg ICAgKCJqdWxpYS1ncmFwaGljcyIgLGp1bGlhLWdyYXBoaWNzKQorICAgICAgICgiZ2xpYiIgLGds aWIpCisgICAgICAgKCJndGsrIiAsZ3RrKykKKyAgICAgICAoImdkay1waXhidWYiICxnZGstcGl4 YnVmKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGFyZ3Vt ZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBo YXNlcworCSA7OyBQcmVjb21waWxhdGlvbiB0cmllcyB0byBvcGVuIGRpc3BsYXkKKwkgKGRlbGV0 ZSAncHJlY29tcGlsZSkKKwkgKGFkZC1hZnRlciAnaW5zdGFsbCAnYnVpbGQtZGVwcworCSAgIChs YW1iZGEqCisJICAgICAgICgjOmtleSBvdXRwdXRzIHNvdXJjZSBpbnB1dHMgIzphbGxvdy1vdGhl ci1rZXlzKQorCSAgICAgKHN1YnN0aXR1dGUqCisJCSAoc3RyaW5nLWFwcGVuZAorCQkgIChhc3Nv Yy1yZWYgb3V0cHV0cyAib3V0IikKKwkJICAiL3NoYXJlL2p1bGlhL3BhY2thZ2VzLyIKKwkJICAo c3RyaW5nLWFwcGVuZAorCQkgICAoc3RyaXAtc3RvcmUtZmlsZS1uYW1lIHNvdXJjZSkKKwkJICAg Ii9kZXBzL2V4dF9nbGliLmpsIikpCisJICAgICAgICgoIlwibGliZ29iamVjdC0yLjBcIiIpCisJ CShzdHJpbmctYXBwZW5kICJcIiIKKwkJCSAgICAgICAoYXNzb2MtcmVmIGlucHV0cyAiZ2xpYiIp CisJCQkgICAgICAgIi9saWIvbGliZ29iamVjdC0yLjAuc29cIiIpKQorCSAgICAgICAoKCJcImxp YmdsaWItMi4wXCIiKQorCQkoc3RyaW5nLWFwcGVuZCAiXCIiCisJCQkgICAgICAgKGFzc29jLXJl ZiBpbnB1dHMgImdsaWIiKQorCQkJICAgICAgICIvbGliL2xpYmdsaWItMi4wLnNvXCIiKSkpCisJ ICAgICAoc3Vic3RpdHV0ZSoKKwkJIChzdHJpbmctYXBwZW5kCisJCSAgKGFzc29jLXJlZiBvdXRw dXRzICJvdXQiKQorCQkgICIvc2hhcmUvanVsaWEvcGFja2FnZXMvIgorCQkgIChzdHJpbmctYXBw ZW5kCisJCSAgIChzdHJpcC1zdG9yZS1maWxlLW5hbWUgc291cmNlKQorCQkgICAiL2RlcHMvZXh0 LmpsIikpCisJICAgICAgICgoIlwibGliZ3RrLTNcIiIpCisJCShzdHJpbmctYXBwZW5kICJcIiIK KwkJCSAgICAgICAoYXNzb2MtcmVmIGlucHV0cyAiZ3RrKyIpCisJCQkgICAgICAgIi9saWIvbGli Z3RrLTMuc29cIiIpKQorCSAgICAgICAoKCJcImxpYmdkay0zXCIiKQorCQkoc3RyaW5nLWFwcGVu ZCAiXCIiCisJCQkgICAgICAgKGFzc29jLXJlZiBpbnB1dHMgImd0aysiKQorCQkJICAgICAgICIv bGliL2xpYmd0ay0zLnNvXCIiKSkKKwkgICAgICAgKCgiXCJsaWJnZGtfcGl4YnVmLTIuMFwiIikK KwkJKHN0cmluZy1hcHBlbmQgIlwiIgorCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJnZGst cGl4YnVmIikKKwkJCSAgICAgICAiL2xpYi9saWJnZGtfcGl4YnVmLTIuMC5zb1wiIikpCisJICAg ICAgICgoIlwibGliZ2lvLTIuMFwiIikKKwkJKHN0cmluZy1hcHBlbmQgIlwiIgorCQkJICAgICAg IChhc3NvYy1yZWYgaW5wdXRzICJnbGliIikKKwkJCSAgICAgICAiL2xpYi9saWJnaW8tMi4wLnNv XCIiKSkpCisJICAgICAjdCkpKSkpCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29t L0p1bGlhR3JhcGhpY3MvR3RrLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNj cmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVi bGljIGp1bGlhLWhpY2N1cAorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1oaWNjdXAiKQor ICAgICh2ZXJzaW9uICIwLjIuMiIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAg KG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaQorCShnaXQtcmVmZXJlbmNlCisJICh1cmwg Imh0dHBzOi8vZ2l0aHViLmNvbS9KdW5vTGFiL0hpY2N1cC5qbC5naXQiKQorCSAoY29tbWl0CisJ ICAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1lICJIaWNj dXAiKQorICAgICAgIChzaGEyNTYKKwkoYmFzZTMyICIwbTZteTdkNDg2NTh4NHYwZ2x2MTAwNmYw eXZxZDQ5Zjg3NWI3NHE3a3EzeTZhOXN4eTV6IikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMK KyAgICAgYCgoImp1bGlhLW1hY3JvdG9vbHMiICxqdWxpYS1tYWNyb3Rvb2xzKQorICAgICAgICgi anVsaWEtb3JkZXJlZGNvbGxlY3Rpb25zIiAsanVsaWEtb3JkZXJlZGNvbGxlY3Rpb25zKQorICAg ICAgICgianVsaWEtbGF6eSIgLGp1bGlhLWxhenkpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlh LWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVub0xh Yi9IaWNjdXAuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIi KQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEt d2Vic29ja2V0cworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS13ZWJzb2NrZXRzIikKKyAg ICAodmVyc2lvbiAiMS41LjIiKQorICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAgICAgICht ZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkKKwkoZ2l0LXJlZmVyZW5jZQorCSAodXJsICJo dHRwczovL2dpdGh1Yi5jb20vSnVsaWFXZWIvV2ViU29ja2V0cy5qbC5naXQiKQorCSAoY29tbWl0 CisJICAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1lICJX ZWJTb2NrZXRzIikKKyAgICAgICAoc2hhMjU2CisJKGJhc2UzMiAiMWZwdnNrYmF4ODh4MDU5bHdu bDIxMXBzMTNqOHMyamY5N2Fnd3dyNjlzaXIxMWkweGg1MSIpKSkpCisgICAgKHByb3BhZ2F0ZWQt aW5wdXRzCisgICAgIGAoKCJqdWxpYS1odHRwIiAsanVsaWEtaHR0cCkKKyAgICAgICAoImp1bGlh LXJlcXVpcmVzIiAsanVsaWEtcmVxdWlyZXMpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1 aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFXZWIv V2ViU29ja2V0cy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24g IiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxp YS1waWRmaWxlCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLXBpZGZpbGUiKQorICAgICh2 ZXJzaW9uICIxLjEuMCIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1ldGhv ZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaQorCShnaXQtcmVmZXJlbmNlCisJICh1cmwgImh0dHBz Oi8vZ2l0aHViLmNvbS92dGpuYXNoL1BpZGZpbGUuamwuZ2l0IikKKwkgKGNvbW1pdAorCSAgKHN0 cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisgICAgICAgKGZpbGUtbmFtZSAiUGlkZmlsZSIp CisgICAgICAgKHNoYTI1NgorCShiYXNlMzIgIjE2eHliOG15Ymo5MGw0MHJjZDQ5aWk2aWQyeGxs cjlsZ3JiNnA2bDBnMWdneWJhbGx3Y2QiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAg ICBgKCgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBq dWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3Z0 am5hc2gvUGlkZmlsZS5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRp b24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBq dWxpYS1hc3NldHJlZ2lzdHJ5CisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWFzc2V0cmVn aXN0cnkiKQorICAgICh2ZXJzaW9uICIwLjEuMCIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2lu CisgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaQorCShnaXQtcmVmZXJlbmNl CisJICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUdpem1vcy9Bc3NldFJlZ2lzdHJ5Lmps LmdpdCIpCisJIChjb21taXQKKwkgIChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorICAg ICAgIChmaWxlLW5hbWUgIkFzc2V0UmVnaXN0cnkiKQorICAgICAgIChzaGEyNTYKKwkoYmFzZTMy ICIweHBsZGowOGFwdmJsZ25nNnZuZGI5MzExZ2w2eHhiazFmOWpoYThhNjYxcDJ6ZmowcjRiIikp KSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoImp1bGlhLWpzb24iICxqdWxpYS1q c29uKQorICAgICAgICgianVsaWEtc2hhIiAsanVsaWEtc2hhKQorICAgICAgICgianVsaWEtcGlk ZmlsZSIgLGp1bGlhLXBpZGZpbGUpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5 c3RlbSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAoIzpwaGFzZXMKKyAgICAgICAobW9kaWZ5LXBo YXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJIChhZGQtYmVmb3JlICdwcmVjb21waWxlICdmaXgtdG9t bAorCSAgIChsYW1iZGEqCisJICAgICAgICgjOmtleSBvdXRwdXRzIHNvdXJjZSAjOmFsbG93LW90 aGVyLWtleXMpCisJICAgICAoanVsaWEtY3JlYXRlLXBhY2thZ2UtdG9tbAorCSAgICAgIG91dHB1 dHMgc291cmNlCisJICAgICAgIkFzc2V0UmVnaXN0cnkiCisJICAgICAgImJmNDcyMGJjLWUxMWEt NWQwYy04NTRlLWJkY2ExNjYzYzg5MyIKKwkgICAgICAiMC4xLjAiCisJICAgICAgJygoIlNIQSIg LiAiZWE4ZTkxOWMtMjQzYy01MWFmLTg4MjUtYWFhNjNjZDcyMWNlIikKKwkJKCJKU09OIiAuICI2 ODJjMDZhMC1kZTZhLTU0YWItYTE0Mi1jOGIxY2Y3OWNkZTYiKQorCQk7OyAoIlBpZGZpbGUiIC4g ImZhOTM5Zjg3LWU3MmUtNWJlNC1hMDAwLTdmYzgzNmRiZTMwNyIpCisJCSkpCisJICAgICAjdCkp KSkpCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR2l6bW9zL0Fzc2V0 UmVnaXN0cnkuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIi KQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEt bXV4CisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLW11eCIpCisgICAgKHZlcnNpb24gIjAu Ny4wIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRj aCkKKyAgICAgICAodXJpCisJKGdpdC1yZWZlcmVuY2UKKwkgKHVybCAiaHR0cHM6Ly9naXRodWIu Y29tL0p1bGlhV2ViL011eC5qbC5naXQiKQorCSAoY29tbWl0CisJICAoc3RyaW5nLWFwcGVuZCAi diIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1lICJNdXgiKQorICAgICAgIChzaGEyNTYK KwkoYmFzZTMyICIxd21naDlpamkwc214NnZrbjl5MWtpeWxnY2kxYXkwanJiOTY4YjYxaDZncndr OWd4dmxqIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoImp1bGlhLWh0dHAi ICxqdWxpYS1odHRwKQorICAgICAgICgianVsaWEtaGljY3VwIiAsanVsaWEtaGljY3VwKQorICAg ICAgICgianVsaWEtbGF6eSIgLGp1bGlhLWxhenkpCisgICAgICAgKCJqdWxpYS13ZWJzb2NrZXRz IiAsanVsaWEtd2Vic29ja2V0cykKKyAgICAgICAoImp1bGlhLWFzc2V0cmVnaXN0cnkiICxqdWxp YS1hc3NldHJlZ2lzdHJ5KQorICAgICAgICgianVsaWEtcGFyc2VycyIgLGp1bGlhLXBhcnNlcnMp CisgICAgICAgKCJqdWxpYS10b2tlbml6ZSIgLGp1bGlhLXRva2VuaXplKQorICAgICAgICgianVs aWEtZGF0YXN0cnVjdHVyZXMiICxqdWxpYS1kYXRhc3RydWN0dXJlcykKKyAgICAgICAoImp1bGlh LWNzdHBhcnNlciIgLGp1bGlhLWNzdHBhcnNlcikpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEt YnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVdl Yi9NdXguamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQor ICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtb2Jz ZXJ2YWJsZXMKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtb2JzZXJ2YWJsZXMiKQorICAg ICh2ZXJzaW9uICIwLjIuMyIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1l dGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaQorCShnaXQtcmVmZXJlbmNlCisJICh1cmwgImh0 dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUdpem1vcy9PYnNlcnZhYmxlcy5qbC5naXQiKQorCSAoY29t bWl0CisJICAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1l ICJPYnNlcnZhYmxlcyIpCisgICAgICAgKHNoYTI1NgorCShiYXNlMzIgIjE2cWpqYWdhYTZkdmkz ZmhxeWxqaHhnMDdyNWNqejZkMWg4eWwzOHgzYzExaWxydmR5NTAiKSkpKQorICAgIChwcm9wYWdh dGVkLWlucHV0cworICAgICBgKCkpCisgICAgKGFyZ3VtZW50cworICAgICBgKCM6cGhhc2VzCisg ICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworCSAoYWRkLWJlZm9yZSAncHJl Y29tcGlsZSAnZml4LXRvbWwKKwkgICAobGFtYmRhKgorCSAgICAgICAoIzprZXkgb3V0cHV0cyBz b3VyY2UgIzphbGxvdy1vdGhlci1rZXlzKQorCSAgICAgKGp1bGlhLWNyZWF0ZS1wYWNrYWdlLXRv bWwKKwkgICAgICBvdXRwdXRzIHNvdXJjZQorCSAgICAgICJPYnNlcnZhYmxlcyIKKwkgICAgICAi NTEwMjE1ZmMtNDIwNy01ZGRlLWIyMjYtODMzZmM0NDg4ZWUyIgorCSAgICAgICIwLjIuMyIKKwkg ICAgICAnKCkpCisJICAgICAjdCkpKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1z eXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR2l6bW9zL09i c2VydmFibGVzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAi IikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlh LXdpZGdldHMKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtd2lkZ2V0cyIpCisgICAgKHZl cnNpb24gIjAuNi4xIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9k IGdpdC1mZXRjaCkKKyAgICAgICAodXJpCisJKGdpdC1yZWZlcmVuY2UKKwkgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL3BpZXZlci9XaWRnZXRzLmpsLmdpdCIpCisJIChjb21taXQKKwkgIChzdHJp bmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorICAgICAgIChmaWxlLW5hbWUgIldpZGdldHMiKQor ICAgICAgIChzaGEyNTYKKwkoYmFzZTMyICIxdzhyZ2FxcHJtejhnNGtranYyYmEzaGQ2Nms1cjYy cmE5cDdqMmJocnZ2bXc1aDZkY2hwIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAg YCgoImp1bGlhLW9ic2VydmFibGVzIiAsanVsaWEtb2JzZXJ2YWJsZXMpCisgICAgICAgKCJqdWxp YS1vcmRlcmVkY29sbGVjdGlvbnMiICxqdWxpYS1vcmRlcmVkY29sbGVjdGlvbnMpCisgICAgICAg KCJqdWxpYS1jb2xvcnMiICxqdWxpYS1jb2xvcnMpKSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAo IzpwaGFzZXMKKyAgICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJIChhZGQt YmVmb3JlICdwcmVjb21waWxlICdmaXgtdG9tbAorCSAgIChsYW1iZGEqCisJICAgICAgICgjOmtl eSBvdXRwdXRzIHNvdXJjZSAjOmFsbG93LW90aGVyLWtleXMpCisJICAgICAoanVsaWEtY3JlYXRl LXBhY2thZ2UtdG9tbAorCSAgICAgIG91dHB1dHMgc291cmNlCisJICAgICAgIldpZGdldHMiCisJ ICAgICAgImNjOGJjNGE4LTI3ZDYtNTc2OS1hOTNiLTlkOTEzZTY5YWE2MiIKKwkgICAgICAiMC42 LjEiCisJICAgICAgJygpKQorCSAgICAgI3QpKSkpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEt YnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9waWV2ZXIv V2lkZ2V0cy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIp CisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1m dW5jdGlvbmFsY29sbGVjdGlvbnMKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtZnVuY3Rp b25hbGNvbGxlY3Rpb25zIikKKyAgICAodmVyc2lvbiAiMC41LjAiKQorICAgIChzb3VyY2UKKyAg ICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkKKwkoZ2l0 LXJlZmVyZW5jZQorCSAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFDb2xsZWN0aW9ucy9G dW5jdGlvbmFsQ29sbGVjdGlvbnMuamwuZ2l0IikKKwkgKGNvbW1pdAorCSAgKHN0cmluZy1hcHBl bmQgInYiIHZlcnNpb24pKSkpCisgICAgICAgKGZpbGUtbmFtZSAiRnVuY3Rpb25hbENvbGxlY3Rp b25zIikKKyAgICAgICAoc2hhMjU2CisJKGJhc2UzMiAiMWx2Yjd4YXFnMXc1Y3FxMXo1anY0ZmN5 YWdiMnBzcTlrOGk3azduMnB6MXFmN3J3ZmdjZCIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRz CisgICAgIGAoKSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAoIzpwaGFzZXMKKyAgICAgICAobW9k aWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJIChhZGQtYmVmb3JlICdwcmVjb21waWxlICdm aXgtdG9tbAorCSAgIChsYW1iZGEqCisJICAgICAgICgjOmtleSBvdXRwdXRzIHNvdXJjZSAjOmFs bG93LW90aGVyLWtleXMpCisJICAgICAoanVsaWEtY3JlYXRlLXBhY2thZ2UtdG9tbAorCSAgICAg IG91dHB1dHMgc291cmNlCisJICAgICAgIkZ1bmN0aW9uYWxDb2xsZWN0aW9ucyIKKwkgICAgICAi ZGUzMWE3NGMtYWM0Zi01NzUxLWIzZmQtZTE4Y2QwNDk5M2NhIgorCSAgICAgICIwLjUuMCIKKwkg ICAgICAnKCkpCisJICAgICAjdCkpKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1z eXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhQ29sbGVjdGlv bnMvRnVuY3Rpb25hbENvbGxlY3Rpb25zLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAg IChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZp bmUtcHVibGljIGp1bGlhLXdlYmlvCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLXdlYmlv IikKKyAgICAodmVyc2lvbiAiMC44LjgiKQorICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAg ICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkKKwkoZ2l0LXJlZmVyZW5jZQorCSAo dXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHaXptb3MvV2ViSU8uamwuZ2l0IikKKwkgKGNv bW1pdAorCSAgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisgICAgICAgKGZpbGUtbmFt ZSAiV2ViSU8iKQorICAgICAgIChzaGEyNTYKKwkoYmFzZTMyICIwdzBqcWtrbTltNGg5aW5ramhq bTY5eThmYnZ2cXZtY3lhc3ptN3k1bWQ4YTJ4eWMzOTJ3IikpKSkKKyAgICAocHJvcGFnYXRlZC1p bnB1dHMKKyAgICAgYCgoImp1bGlhLXdpZGdldHMiICxqdWxpYS13aWRnZXRzKQorICAgICAgICgi anVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KQorICAgICAgICgianVsaWEtanNvbiIgLGp1bGlh LWpzb24pCisgICAgICAgKCJqdWxpYS1vYnNlcnZhYmxlcyIgLGp1bGlhLW9ic2VydmFibGVzKQor ICAgICAgICgianVsaWEtZnVuY3Rpb25hbGNvbGxlY3Rpb25zIiAsanVsaWEtZnVuY3Rpb25hbGNv bGxlY3Rpb25zKQorICAgICAgICgianVsaWEtcmVxdWlyZXMiICxqdWxpYS1yZXF1aXJlcykKKyAg ICAgICAoImp1bGlhLXdlYnNvY2tldHMiICxqdWxpYS13ZWJzb2NrZXRzKQorICAgICAgICgianVs aWEtYXNzZXRyZWdpc3RyeSIgLGp1bGlhLWFzc2V0cmVnaXN0cnkpKSkKKyAgICAoYnVpbGQtc3lz dGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5j b20vSnVsaWFHaXptb3MvV2ViSU8uamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRl c2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1w dWJsaWMganVsaWEtanNleHByCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWpzZXhwciIp CisgICAgKHZlcnNpb24gIjAuNS4wIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAg ICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJpCisJKGdpdC1yZWZlcmVuY2UKKwkgKHVy bCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR2l6bW9zL0pTRXhwci5qbC5naXQiKQorCSAoY29t bWl0CisJICAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1l ICJKU0V4cHIiKQorICAgICAgIChzaGEyNTYKKwkoYmFzZTMyICIwemRqZmcyMzEyejdnY3JybDYw bmh4N2wwa3Jkajhiazhrazh4MXF5NGh5eDQ4NmRwMWx2IikpKSkKKyAgICAocHJvcGFnYXRlZC1p bnB1dHMKKyAgICAgYCgoImp1bGlhLW9ic2VydmFibGVzIiAsanVsaWEtb2JzZXJ2YWJsZXMpCisg ICAgICAgKCJqdWxpYS1tYWNyb3Rvb2xzIiAsanVsaWEtbWFjcm90b29scykKKyAgICAgICAoImp1 bGlhLWpzb24iICxqdWxpYS1qc29uKQorICAgICAgICgianVsaWEtd2ViaW8iICxqdWxpYS13ZWJp bykpKQorICAgIChhcmd1bWVudHMKKyAgICAgYCgjOnBoYXNlcworICAgICAgIChtb2RpZnktcGhh c2VzICVzdGFuZGFyZC1waGFzZXMKKwkgKGFkZC1iZWZvcmUgJ3ByZWNvbXBpbGUgJ2ZpeC10b21s CisJICAgKGxhbWJkYSoKKwkgICAgICAgKCM6a2V5IG91dHB1dHMgc291cmNlICM6YWxsb3ctb3Ro ZXIta2V5cykKKwkgICAgIChqdWxpYS1jcmVhdGUtcGFja2FnZS10b21sCisJICAgICAgb3V0cHV0 cyBzb3VyY2UKKwkgICAgICAiSlNFeHByIgorCSAgICAgICI5N2MxMzM1YS1jOWM1LTU3ZmUtYmM1 ZC1lYzM1Y2ViZTg2NjAiCisJICAgICAgIjAuNS4wIgorCSAgICAgICcoKSkKKwkgICAgICN0KSkp KSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdl ICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHaXptb3MvSlNFeHByLmpsLmdpdCIpCisgICAgKHN5 bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4 cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWtub2Nrb3V0CisgIChwYWNrYWdlCisgICAg KG5hbWUgImp1bGlhLWtub2Nrb3V0IikKKyAgICAodmVyc2lvbiAiMC4yLjMiKQorICAgIChzb3Vy Y2UKKyAgICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkK KwkoZ2l0LXJlZmVyZW5jZQorCSAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHaXptb3Mv S25vY2tvdXQuamwuZ2l0IikKKwkgKGNvbW1pdAorCSAgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNp b24pKSkpCisgICAgICAgKGZpbGUtbmFtZSAiS25vY2tvdXQiKQorICAgICAgIChzaGEyNTYKKwko YmFzZTMyICIxa3dyOTgybjA3ODl5cWdxMXdkcng4bHo0aDVjNTh3bGRnemZuNmFtODdmbGxrZ2Ju YTVsIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoImp1bGlhLWpzb24iICxq dWxpYS1qc29uKQorICAgICAgICgianVsaWEtanNleHByIiAsanVsaWEtanNleHByKQorICAgICAg ICgianVsaWEtb2JzZXJ2YWJsZXMiICxqdWxpYS1vYnNlcnZhYmxlcykKKyAgICAgICAoImp1bGlh LXdlYmlvIiAsanVsaWEtd2ViaW8pKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5 c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHaXptb3MvS25v Y2tvdXQuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQor ICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtY3Nz dXRpbAorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1jc3N1dGlsIikKKyAgICAodmVyc2lv biAiMC4xLjAiKQorICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0 LWZldGNoKQorICAgICAgICh1cmkKKwkoZ2l0LXJlZmVyZW5jZQorCSAodXJsICJodHRwczovL2dp dGh1Yi5jb20vSnVsaWFHaXptb3MvQ1NTVXRpbC5qbC5naXQiKQorCSAoY29tbWl0CisJICAoc3Ry aW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1lICJDU1NVdGlsIikK KyAgICAgICAoc2hhMjU2CisJKGJhc2UzMiAiMWR2bHdrcGJqd3dnZ3l4NXNoMzY0NXN6MDJ5ZDlo MDY3cGN5bWNhbTVrNHNwcng0cWR3eCIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAg IGAoKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpCisgICAgICAgKCJqdWxpYS1tZWFzdXJl cyIgLGp1bGlhLW1lYXN1cmVzKQorICAgICAgICgianVsaWEtanNvbiIgLGp1bGlhLWpzb24pCisg ICAgICAgKCJqdWxpYS1jb2xvcnMiICxqdWxpYS1jb2xvcnMpCisgICAgICAgKCJqdWxpYS13ZWJp byIgLGp1bGlhLXdlYmlvKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0p CisgICAgKGFyZ3VtZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMg JXN0YW5kYXJkLXBoYXNlcworCSAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4LXRvbWwKKwkg ICAobGFtYmRhKgorCSAgICAgICAoIzprZXkgb3V0cHV0cyBzb3VyY2UgIzphbGxvdy1vdGhlci1r ZXlzKQorCSAgICAgKGp1bGlhLWNyZWF0ZS1wYWNrYWdlLXRvbWwKKwkgICAgICBvdXRwdXRzIHNv dXJjZQorCSAgICAgICJDU1NVdGlsIgorCSAgICAgICI3MDU4OGVlOC02MTAwLTUwNzAtOTdjMS0z Y2I1MGVkMDVmZTgiCisJICAgICAgIjAuMS4wIgorCSAgICAgICcoKSkKKwkgICAgICN0KSkpKSkK KyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFHaXptb3MvQ1NTVXRpbC5q bC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxp Y2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1pbnRlcmFjdGJh c2UKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtaW50ZXJhY3RiYXNlIikKKyAgICAodmVy c2lvbiAiMC4xMC4yIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9k IGdpdC1mZXRjaCkKKyAgICAgICAodXJpCisJKGdpdC1yZWZlcmVuY2UKKwkgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL3BpZXZlci9JbnRlcmFjdEJhc2UuamwuZ2l0IikKKwkgKGNvbW1pdAorCSAg KHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisgICAgICAgKGZpbGUtbmFtZSAiSW50ZXJh Y3RCYXNlIikKKyAgICAgICAoc2hhMjU2CisJKGJhc2UzMiAiMGppdzkzczhjcXdicDduaGRtYmhw OXhuNzZhbjgxaDl5eXlmcTZtaGl3eGtjZGhubTIxMyIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5w dXRzCisgICAgIGAoKCJqdWxpYS1qc29uIiAsanVsaWEtanNvbikKKyAgICAgICAoImp1bGlhLWtu b2Nrb3V0IiAsanVsaWEta25vY2tvdXQpCisgICAgICAgKCJqdWxpYS1qc2V4cHIiICxqdWxpYS1q c2V4cHIpCisgICAgICAgKCJqdWxpYS1jb2xvcnMiICxqdWxpYS1jb2xvcnMpCisgICAgICAgKCJq dWxpYS1vcmRlcmVkY29sbGVjdGlvbnMiICxqdWxpYS1vcmRlcmVkY29sbGVjdGlvbnMpCisgICAg ICAgKCJqdWxpYS13aWRnZXRzIiAsanVsaWEtd2lkZ2V0cykKKyAgICAgICAoImp1bGlhLW9ic2Vy dmFibGVzIiAsanVsaWEtb2JzZXJ2YWJsZXMpCisgICAgICAgKCJqdWxpYS1jc3N1dGlsIiAsanVs aWEtY3NzdXRpbCkKKyAgICAgICAoImp1bGlhLXdlYmlvIiAsanVsaWEtd2ViaW8pKSkKKyAgICAo YnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczov L2dpdGh1Yi5jb20vcGlldmVyL0ludGVyYWN0QmFzZS5qbC5naXQiKQorICAgIChzeW5vcHNpcyAi IikKKyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQor CisoZGVmaW5lLXB1YmxpYyBqdWxpYS1pbnRlcmFjdAorICAocGFja2FnZQorICAgIChuYW1lICJq dWxpYS1pbnRlcmFjdCIpCisgICAgKHZlcnNpb24gIjAuMTAuMiIpCisgICAgKHNvdXJjZQorICAg ICAob3JpZ2luCisgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaQorCShnaXQt cmVmZXJlbmNlCisJICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUdpem1vcy9JbnRlcmFj dC5qbC5naXQiKQorCSAoY29tbWl0CisJICAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkK KyAgICAgICAoZmlsZS1uYW1lICJJbnRlcmFjdCIpCisgICAgICAgKHNoYTI1NgorCShiYXNlMzIg IjBqaW4xeW0zazQ4ejFjeHk3c3E5NGN2bTk1aGMxOWxzaDdyNWNqZm1jamkxeWFoZ2JuM3AiKSkp KQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBgKCgianVsaWEtb2JzZXJ2YWJsZXMiICxq dWxpYS1vYnNlcnZhYmxlcykKKyAgICAgICAoImp1bGlhLXJlZXhwb3J0IiAsanVsaWEtcmVleHBv cnQpCisgICAgICAgKCJqdWxpYS1vcmRlcmVkY29sbGVjdGlvbnMiICxqdWxpYS1vcmRlcmVkY29s bGVjdGlvbnMpCisgICAgICAgKCJqdWxpYS1qc29uIiAsanVsaWEtanNvbikKKyAgICAgICAoImp1 bGlhLWludGVyYWN0YmFzZSIgLGp1bGlhLWludGVyYWN0YmFzZSkKKyAgICAgICAoImp1bGlhLXdp ZGdldHMiICxqdWxpYS13aWRnZXRzKQorICAgICAgICgianVsaWEta25vY2tvdXQiICxqdWxpYS1r bm9ja291dCkKKyAgICAgICAoImp1bGlhLWNzc3V0aWwiICxqdWxpYS1jc3N1dGlsKQorICAgICAg ICgianVsaWEtd2ViaW8iICxqdWxpYS13ZWJpbykpKQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEt YnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUdp em1vcy9JbnRlcmFjdC5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAoZGVzY3JpcHRp b24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBq dWxpYS1qc29uMgorICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1qc29uMiIpCisgICAgKHZl cnNpb24gIjAuMy4xIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9k IGdpdC1mZXRjaCkKKyAgICAgICAodXJpCisJKGdpdC1yZWZlcmVuY2UKKwkgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL3F1aW5uai9KU09OMi5qbC5naXQiKQorCSAoY29tbWl0CisJICAoc3RyaW5n LWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1lICJKU09OMiIpCisgICAg ICAgKHNoYTI1NgorCShiYXNlMzIgIjFoYzNwd2p4a2EyMDZmZDY5eDhkbWRnMTFubnhhbmQ5Ynhi aHMwbGYzcHpkaHBmODFqbmEiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBgKCgi anVsaWEtcGFyc2VycyIgLGp1bGlhLXBhcnNlcnMpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlh LWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcXVpbm5q L0pTT04yLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikK KyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLW1z Z3BhY2sKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtbXNncGFjayIpCisgICAgKHZlcnNp b24gIjAuMi4wIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdp dC1mZXRjaCkKKyAgICAgICAodXJpCisJKGdpdC1yZWZlcmVuY2UKKwkgKHVybCAiaHR0cHM6Ly9n aXRodWIuY29tL0p1bGlhSU8vTXNnUGFjay5qbC5naXQiKQorCSAoY29tbWl0CisJICAoc3RyaW5n LWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKyAgICAgICAoZmlsZS1uYW1lICJNc2dQYWNrIikKKyAg ICAgICAoc2hhMjU2CisJKGJhc2UzMiAiMWR2eThiaGtmNmdqcDhmc3hsNWc4NWpoamRuZ2l6d2xu OWlrbGdybnZmNXJtMG5jN3kxOCIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAo KCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlh LWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFJ Ty9Nc2dQYWNrLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAi IikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlh LW9zYworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1vc2MiKQorICAgICh2ZXJzaW9uICIw LjEuMCIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCisgICAgICAgKHVyaQorCShnaXQtcmVmZXJlbmNlCisJICh1cmwgImh0dHBzOi8vZ2l0Lm5p eG8ueHl6L25peG8vT1NDLmpsLmdpdCIpCisJIChjb21taXQgImQxOGFjZWZmMTQwMDIxZTdlYjk2 MWI1YjQyZDE3YzIzZTY0MDc0YTQiKSkpCisgICAgICAgKGZpbGUtbmFtZSAiT1NDIikKKyAgICAg ICAoc2hhMjU2CisJKGJhc2UzMiAiMTFucGJ5MTNuc3czcWNqbHdhN20yMHB6Zm5iNDNrdmF4NWFy amRnZG03bW1sem0xd2kzMiIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKSkK KyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdC5uaXhvLnh5ei9uaXhvL09TQy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikK KyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCiso ZGVmaW5lLXB1YmxpYyBqdWxpYS1yZWFjdGl2ZQorICAocGFja2FnZQorICAgIChuYW1lICJqdWxp YS1yZWFjdGl2ZSIpCisgICAgKHZlcnNpb24gIjAuOC4zIikKKyAgICAoc291cmNlCisgICAgIChv cmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJpCisJKGdpdC1yZWZl cmVuY2UKKwkgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR2l6bW9zL1JlYWN0aXZlLmps LmdpdCIpCisJIChjb21taXQKKwkgIChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorICAg ICAgIChmaWxlLW5hbWUgIlJlYWN0aXZlIikKKyAgICAgICAoc2hhMjU2CisJKGJhc2UzMiAiMGE1 czFheHhkcWt2aTF3Mzc1aDIxNWpqbW15cTcyYTBweWpxcmJwdnIxemlrcGxtendkYyIpKSkpCisg ICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKCJqdWxpYS1kYXRhc3RydWN0dXJlcyIgLGp1 bGlhLWRhdGFzdHJ1Y3R1cmVzKQorICAgICAgICgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0 KQorICAgICAgIDs7ICgianVsaWEtZmFjdGNoZWNrIiAsanVsaWEtZmFjdGNoZWNrKQorICAgICAg ICkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFn ZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR2l6bW9zL1JlYWN0aXZlLmpsLmdpdCIpCisgICAg KHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNl OmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWludGVydmFsc2V0cworICAocGFja2Fn ZQorICAgIChuYW1lICJqdWxpYS1pbnRlcnZhbHNldHMiKQorICAgICh2ZXJzaW9uICIwLjMuMSIp CisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisg ICAgICAgKHVyaQorCShnaXQtcmVmZXJlbmNlCisJICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9K dWxpYU1hdGgvSW50ZXJ2YWxTZXRzLmpsLmdpdCIpCisJIChjb21taXQKKwkgIChzdHJpbmctYXBw ZW5kICJ2IiB2ZXJzaW9uKSkpKQorICAgICAgIChmaWxlLW5hbWUgIkludGVydmFsU2V0cyIpCisg ICAgICAgKHNoYTI1NgorCShiYXNlMzIgIjBmMHNzNHp3aHBoaWhtZ3EwMzdxcXZhMWtua252ajJt cXMyNnh6cGczd3Z2djJyemQ5c2IiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBg KCgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxp YS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlh TWF0aC9JbnRlcnZhbFNldHMuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2Ny aXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJs aWMganVsaWEtcm91bmRpbmdpbnRlZ2VycworICAocGFja2FnZQorICAgIChuYW1lICJqdWxpYS1y b3VuZGluZ2ludGVnZXJzIikKKyAgICAodmVyc2lvbiAiMC4yLjAiKQorICAgIChzb3VyY2UKKyAg ICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkKKwkoZ2l0 LXJlZmVyZW5jZQorCSAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFNYXRoL1JvdW5kaW5n SW50ZWdlcnMuamwuZ2l0IikKKwkgKGNvbW1pdAorCSAgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNp b24pKSkpCisgICAgICAgKGZpbGUtbmFtZSAiUm91bmRpbmdJbnRlZ2VycyIpCisgICAgICAgKHNo YTI1NgorCShiYXNlMzIgIjBnOGF2bDY3MTgxcTI5dm56YTFnbW1jM2hqMTgzanFrbnZpNGRhcnlq NDkzMTN6MHdoajMiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBgKCgianVsaWEt Y29tcGF0IiAsanVsaWEtY29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1z eXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhTWF0aC9Sb3Vu ZGluZ0ludGVnZXJzLmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlv biAiIikKKyAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKzs7IChkZWZpbmUtcHVibGlj IGp1bGlhLWd0a3JlYWN0aXZlCis7OyAgIChwYWNrYWdlCis7OyAgICAgKG5hbWUgImp1bGlhLWd0 a3JlYWN0aXZlIikKKzs7ICAgICAodmVyc2lvbiAiMC42LjAiKQorOzsgICAgIChzb3VyY2UKKzs7 ICAgICAgKG9yaWdpbgorOzsgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorOzsgICAgICAgICh1 cmkKKzs7IAkoZ2l0LXJlZmVyZW5jZQorOzsgCSAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVs aWFHaXptb3MvR3RrUmVhY3RpdmUuamwuZ2l0IikKKzs7IAkgKGNvbW1pdAorOzsgCSAgKHN0cmlu Zy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCis7OyAgICAgICAgKGZpbGUtbmFtZSAiR3RrUmVhY3Rp dmUiKQorOzsgICAgICAgIChzaGEyNTYKKzs7IAkoYmFzZTMyICIwczM3amRqbnNwMjk5ZHJtcmoy d2E3enA4OXBubmg0NHFsNnN4eTU5bXExMHdqamhtaGo3IikpKSkKKzs7ICAgICAocHJvcGFnYXRl ZC1pbnB1dHMKKzs7ICAgICAgYCgoImp1bGlhLXJlYWN0aXZlIiAsanVsaWEtcmVhY3RpdmUpCis7 OyAgICAgICAgKCJqdWxpYS1pbnRlcnZhbHNldHMiICxqdWxpYS1pbnRlcnZhbHNldHMpCis7OyAg ICAgICAgKCJqdWxpYS1jYWlybyIgLGp1bGlhLWNhaXJvKQorOzsgICAgICAgICgianVsaWEtY29s b3JzIiAsanVsaWEtY29sb3JzKQorOzsgICAgICAgICgianVsaWEtcm91bmRpbmdpbnRlZ2VycyIg LGp1bGlhLXJvdW5kaW5naW50ZWdlcnMpCis7OyAgICAgICAgKCJqdWxpYS1yZWV4cG9ydCIgLGp1 bGlhLXJlZXhwb3J0KQorOzsgICAgICAgICgianVsaWEtZ3JhcGhpY3MiICxqdWxpYS1ncmFwaGlj cykKKzs7ICAgICAgICAoImp1bGlhLWd0ayIgLGp1bGlhLWd0aykKKzs7ICAgICAgICAoImp1bGlh LWZpeGVkcG9pbnRudW1iZXJzIiAsanVsaWEtZml4ZWRwb2ludG51bWJlcnMpKSkKKzs7ICAgICAo YnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKzs7ICAgICAoaG9tZS1wYWdlICJodHRw czovL2dpdGh1Yi5jb20vSnVsaWFHaXptb3MvR3RrUmVhY3RpdmUuamwuZ2l0IikKKzs7ICAgICAo c3lub3BzaXMgIiIpCis7OyAgICAgKGRlc2NyaXB0aW9uICIiKQorOzsgICAgIChsaWNlbnNlIGxp Y2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtem1xCisgICAgICAocGFja2Fn ZQorCShuYW1lICJqdWxpYS16bXEiKQorCSh2ZXJzaW9uICIxLjAuMCIpCisJKHNvdXJjZSAob3Jp Z2luCisJICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICAgICAodXJpIChnaXQt cmVmZXJlbmNlCisJCQkodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFJbnRlcm9wL1pNUS5q bC5naXQiKQorCQkJKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKwkgICAg ICAgICAgKGZpbGUtbmFtZSAiWk1RIikKKwkgICAgICAgICAgKHNoYTI1NgorICAgICAgICAgICAg ICAgICAgIChiYXNlMzIgIjBsZmNxMHhkdzU1c2lscXk0N2hmc204MTQxOGFneHhyOHFseTRzeDls cGE5ZjNqczEycHoiKSkpKQorCShwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtYmluYXJ5cHJv dmlkZXIiICxqdWxpYS1iaW5hcnlwcm92aWRlcikKKwkJCSAgICAgKCJqdWxpYS1jb21wYXQiICxq dWxpYS1jb21wYXQpCisJCQkgICAgICgiemVyb21xIiAsemVyb21xKSkpCisJKGFyZ3VtZW50cwor CSBgKCM6cGhhc2VzCisJICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworCSAgICAg KGFkZC1iZWZvcmUgJ3ByZWNvbXBpbGUgJ2J1aWxkLWRlcHMKKwkgICAgICAgKGxhbWJkYSogKCM6 a2V5IG91dHB1dHMgc291cmNlIGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisJCSAobGV0ICgo ZiAob3Blbi1maWxlCisJCQkgICAoc3RyaW5nLWFwcGVuZAorCQkJICAgIChhc3NvYy1yZWYgb3V0 cHV0cyAib3V0IikKKwkJCSAgICAiL3NoYXJlL2p1bGlhL3BhY2thZ2VzLyIKKwkJCSAgICAoc3Ry aW5nLWFwcGVuZAorCQkJICAgICAoc3RyaXAtc3RvcmUtZmlsZS1uYW1lIHNvdXJjZSkgIi9kZXBz L2RlcHMuamwiKSkKKwkJCSAgICJ3IikpKQorCQkgICAoZGlzcGxheSAoc3RyaW5nLWFwcGVuZCAi Y29uc3QgbGliem1xID0gXCIiCisJCQkJCSAgIChhc3NvYy1yZWYgaW5wdXRzICJ6ZXJvbXEiKQor CQkJCQkgICAiL2xpYi9saWJ6bXEuc29cIlxuIikgZikgCisJCSAgIChkaXNwbGF5IChzdHJpbmct YXBwZW5kICJjaGVja19kZXBzKCkgPSBub3RoaW5nXG4iKSBmKQorCQkgICAoY2xvc2UtcG9ydCBm KSkKKwkJICN0KQorCSAgICAgICApCisJICAgICAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4 LXRvbWwKKwkgICAobGFtYmRhKgorCSAgICAgICAoIzprZXkgb3V0cHV0cyBzb3VyY2UgIzphbGxv dy1vdGhlci1rZXlzKQorCSAgICAgKGp1bGlhLWNyZWF0ZS1wYWNrYWdlLXRvbWwKKwkgICAgICBv dXRwdXRzIHNvdXJjZQorCSAgICAgICJaTVEiCisJICAgICAgImMyMjk3ZGVkLWY0YWYtNTFhZS1i YjIzLTE2ZjkxMDg5ZTRlMSIKKwkgICAgICAiMS4wLjAiCisJICAgICAgJygoIkxpYmRsIiAuICI4 ZjM5OWRhMy0zNTU3LTU2NzUtYjVmZi1mYjgzMmM5N2NiZGIiKQorCQkoIkZpbGVXYXRjaGluZyIg LiAiN2IxZjYwNzktNzM3YS01OGRjLWI4YmMtN2EyY2E1YzFiNWVlIikKKwkJKCJTb2NrZXRzIiAu ICI2NDYyZmUwYi0yNGRlLTU2MzEtODY5Ny1kZDk0MWY5MGRlY2MiKSkpCisJICAgICAjdCkpKSkp CisJKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisJKGhvbWUtcGFnZSAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhSW50ZXJvcC9aTVEuamwuZ2l0IikKKwkoc3lub3BzaXMgIiIpCisJ KGRlc2NyaXB0aW9uICIiKQorCShsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1w dWJsaWMganVsaWEtc29mdGdsb2JhbHNjb3BlCisgICAgICAocGFja2FnZQorCShuYW1lICJqdWxp YS1zb2Z0Z2xvYmFsc2NvcGUiKQorCSh2ZXJzaW9uICIxLjAuMTAiKQorCShzb3VyY2UgKG9yaWdp bgorCSAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAgICAgKHVyaSAoZ2l0LXJl ZmVyZW5jZQorCQkJKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXZlbmdqL1NvZnRHbG9iYWxT Y29wZS5qbC5naXQiKQorCQkJKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkK KwkgICAgICAgICAgKGZpbGUtbmFtZSAiU29mdEdsb2JhbFNjb3BlIikKKwkgICAgICAgICAgKHNo YTI1NgorICAgICAgICAgICAgICAgICAgIChiYXNlMzIgIjFoNmNrYTJpdjR4MjFubmp5bjRqMHpp emk3a203NW02eHZ6MmltaWg2Z3lqbXE5aHFsbnAiKSkpKQorCShwcm9wYWdhdGVkLWlucHV0cyBg KCkpCisJKGFyZ3VtZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMg JXN0YW5kYXJkLXBoYXNlcworCSAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4LXRvbWwKKwkg ICAobGFtYmRhKgorCSAgICAgICAoIzprZXkgb3V0cHV0cyBzb3VyY2UgIzphbGxvdy1vdGhlci1r ZXlzKQorCSAgICAgKGp1bGlhLWNyZWF0ZS1wYWNrYWdlLXRvbWwKKwkgICAgICBvdXRwdXRzIHNv dXJjZQorCSAgICAgICJTb2Z0R2xvYmFsU2NvcGUiCisJICAgICAgImI4NWY0Njk3LWUyMzQtNTQ0 OS1hODM2LWVjOGUyZjk4YjMwMiIKKwkgICAgICAiMS4wLjEwIgorCSAgICAgICcoKSkKKwkgICAg ICN0KSkpKSkKKwkoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKwkoaG9tZS1wYWdl ICJodHRwczovL2dpdGh1Yi5jb20vc3RldmVuZ2ovU29mdEdsb2JhbFNjb3BlLmpsLmdpdCIpCisJ KHN5bm9wc2lzICIiKQorCShkZXNjcmlwdGlvbiAiIikKKwkobGljZW5zZSBsaWNlbnNlOmV4cGF0 KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLXZlcnNpb25wYXJzaW5nCisgICAgICAocGFja2Fn ZQorCShuYW1lICJqdWxpYS12ZXJzaW9ucGFyc2luZyIpCisJKHZlcnNpb24gIjEuMS4zIikKKwko c291cmNlIChvcmlnaW4KKwkgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgICAg ICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJCSh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9zdGV2ZW5n ai9WZXJzaW9uUGFyc2luZy5qbC5naXQiKQorCQkJKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIg dmVyc2lvbikpKSkKKwkgICAgICAgICAgKGZpbGUtbmFtZSAiVmVyc2lvblBhcnNpbmciKQorCSAg ICAgICAgICAoc2hhMjU2CisgICAgICAgICAgICAgICAgICAgKGJhc2UzMiAiMDlia3p3MjF5eWh2 bmtuazZjczk2ajR5ZGIwNWZ6cHB5aHgwcWdsNWZxaWpzYm44ZHdxayIpKSkpCisJKHByb3BhZ2F0 ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpKSkKKwkoYnVpbGQtc3lz dGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKwkoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20v c3RldmVuZ2ovVmVyc2lvblBhcnNpbmcuamwuZ2l0IikKKwkoYXJndW1lbnRzCisJIGAoIzpwaGFz ZXMKKwkgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJICAgICAoYWRkLWJlZm9y ZSAncHJlY29tcGlsZSAnZml4LXRvbWwKKwkgICAgICAgKGxhbWJkYSoKKwkJICAgKCM6a2V5IG91 dHB1dHMgc291cmNlICM6YWxsb3ctb3RoZXIta2V5cykKKwkJIChqdWxpYS1jcmVhdGUtcGFja2Fn ZS10b21sCisJCSAgb3V0cHV0cyBzb3VyY2UKKwkJICAiVmVyc2lvblBhcnNpbmciCisJCSAgIjgx ZGVmODkyLTlhMGUtNWZkZC1iMTA1LWZmYzkxZTA1MzI4OSIKKwkJICAiMS4xLjMiCisJCSAgJygp KQorCQkgI3QpKSkpKQorCShzeW5vcHNpcyAiIikKKwkoZGVzY3JpcHRpb24gIiIpCisJKGxpY2Vu c2UgbGljZW5zZTpleHBhdCkpKQorCis7OyAoZGVmaW5lLXB1YmxpYyBqdWxpYS1jb25kYQorOzsg ICAgICAgKHBhY2thZ2UKKzs7ICAgICAgICAobmFtZSAianVsaWEtY29uZGEiKQorOzsgICAgICAg ICh2ZXJzaW9uICIxLjMuMCIpCis7OyAgICAgICAgKHNvdXJjZSAob3JpZ2luCis7OyAJICAgICAg ICAobWV0aG9kIGdpdC1mZXRjaCkKKzs7IAkgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKzs7 IAkJICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhUHkvQ29uZGEuamwuZ2l0IikK Kzs7IAkJICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkKKzs7IAkg ICAgICAgIChmaWxlLW5hbWUgIkNvbmRhIikKKzs7IAkgICAgICAgIChzaGEyNTYKKzs7ICAgICAg ICAgICAgICAgICAgKGJhc2UzMiAiMXpja2dsd2dyN3ZkMDJyemdwc2hmMGpxc2ZqYnkydms4eHZh eGo2ODA1NnBrdzUyOWlhMiIpKSkpCis7OyAgICAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJq dWxpYS1iaW5kZXBzIiAsanVsaWEtYmluZGVwcykKKzs7IAkJCSAgICAoImp1bGlhLWpzb24iICxq dWxpYS1qc29uKQorOzsgCQkJICAgICgianVsaWEtdmVyc2lvbnBhcnNpbmciICxqdWxpYS12ZXJz aW9ucGFyc2luZykpKQorOzsgICAgICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVt KQorOzsgICAgICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYVB5L0NvbmRh LmpsLmdpdCIpCis7OyAgICAgICAgKHN5bm9wc2lzICIiKQorOzsgICAgICAgIChkZXNjcmlwdGlv biAiIikKKzs7ICAgICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKzs7IChkZWZpbmUt cHVibGljIGp1bGlhLWlqdWxpYQorOzsgICAocGFja2FnZQorOzsgICAgIChuYW1lICJqdWxpYS1p anVsaWEiKQorOzsgICAgICh2ZXJzaW9uICIxLjE5LjAiKQorOzsgICAgIChzb3VyY2UgKG9yaWdp bgorOzsgCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorOzsgCSAgICAgICh1cmkgKGdpdC1yZWZl cmVuY2UKKzs7IAkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUxhbmcvSUp1bGlh LmpsLmdpdCIpCis7OyAJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkp KQorOzsgCSAgICAgIChmaWxlLW5hbWUgIklKdWxpYSIpCis7OyAJICAgICAgKHNoYTI1NgorOzsg CSAgICAgICAoYmFzZTMyICIweWdxa2w3Z245ZDh5cHBsYmhhOWhybjQyMzU3bWp5Z2w5eGMzYXEx dmE1aDJwYjI3NDBhIikpKSkKKzs7ICAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLXpt cSIgLGp1bGlhLXptcSkKKzs7IAkJCSAoImp1bGlhLWpzb24iICxqdWxpYS1qc29uKQorOzsgCQkJ ICgianVsaWEtbWJlZHRscyIgLGp1bGlhLW1iZWR0bHMpCis7OyAJCQkgKCJqdWxpYS1tYXJrZG93 biIgLGp1bGlhLW1hcmtkb3duKQorOzsgCQkJICgianVsaWEtc29mdGdsb2JhbHNjb3BlIiAsanVs aWEtc29mdGdsb2JhbHNjb3BlKQorOzsgCQkJICgianVsaWEtY29uZGEiICxqdWxpYS1jb25kYSkK Kzs7IAkJCSAoImp1cHl0ZXIiICxqdXB5dGVyKSkpCis7OyAgICAgKGJ1aWxkLXN5c3RlbSBqdWxp YS1idWlsZC1zeXN0ZW0pCis7OyAgICAgKGFyZ3VtZW50cworOzsgICAgICBgKCM6cGhhc2VzCis7 OyAgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworOzsgCSAoYWRkLWFmdGVy ICdpbnN0YWxsICdidWlsZC1kZXBzCis7OyAJICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgc291 cmNlIGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCis7OyAJICAgICAobGV0ICgoZiAob3Blbi1m aWxlCis7OyAJCSAgICAgICAoc3RyaW5nLWFwcGVuZAorOzsgCQkJKGFzc29jLXJlZiBvdXRwdXRz ICJvdXQiKQorOzsgCQkJIi9zaGFyZS9qdWxpYS9wYWNrYWdlcy8iCis7OyAJCQkoc3RyaW5nLWFw cGVuZAorOzsgCQkJIChzdHJpcC1zdG9yZS1maWxlLW5hbWUgc291cmNlKSAiL2RlcHMvZGVwcy5q bCIpKQorOzsgCQkgICAgICAgInciKSkpCis7OyAJICAgICAgIChkaXNwbGF5IChzdHJpbmctYXBw ZW5kCis7OyAJCQkgIgorOzsgY29uc3QgSUpVTElBX0RFQlVHID0gZmFsc2UKKzs7IGNvbnN0IEpV UFlURVIgPSBcIiIKKzs7IAkJCSAoYXNzb2MtcmVmIGlucHV0cyAianVweXRlciIpCis7OyAJCQkg Ii9iaW4vanVweXRlclwiIikKKzs7IAkJCWYpCis7OyAJICAgICAgIChjbG9zZS1wb3J0IGYpKQor OzsgCSAgICAgI3QpKQorOzsgCSA7OyBkZWJ1ZworOzsgCSAoZGVsZXRlICdwcmVjb21waWxlKSkp KQorOzsgICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUxhbmcvSUp1bGlh LmpsLmdpdCIpCis7OyAgICAgKHN5bm9wc2lzICIiKQorOzsgICAgIChkZXNjcmlwdGlvbiAiIikK Kzs7ICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKworKGRlZmluZS1wdWJsaWMganVs aWEtZ2xtCisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWdsbSIpCisgICAgKHZlcnNpb24g IjEuMy4wIikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkK KwkgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5j b20vSnVsaWFTdGF0cy9HTE0uamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQg InYiIHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiR0xNIikKKwkgICAgICAoc2hhMjU2 CisJICAgICAgIChiYXNlMzIgIjAzc2t6aWhsdnl5NzZxYWwxY2hoejNqZnhpbGc1NTZrOWl3azIz enppaGQ0Nmk2ejJwYXIiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29t cGF0IiAsanVsaWEtY29tcGF0KSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0 ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhU3RhdHMvR0xNLmps LmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGlj ZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWZvcm1hdHRpbmcK KyAgICAgIChwYWNrYWdlCisgICAgICAgKG5hbWUgImp1bGlhLWZvcm1hdHRpbmciKQorICAgICAg ICh2ZXJzaW9uICIwLjMuNSIpCisgICAgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgICAobWV0 aG9kIGdpdC1mZXRjaCkKKwkgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICAgKHVy bCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhSU8vRm9ybWF0dGluZy5qbC5naXQiKQorCQkgICAg ICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgICAgKGZpbGUt bmFtZSAiRm9ybWF0dGluZyIpCisJICAgICAgICAoc2hhMjU2CisgICAgICAgICAgICAgICAgIChi YXNlMzIgIjBucmRhY21jemY3eG4xZzhnM2FjYW1wazB3NWhhbDhjd2ZoMTZ5OTZoaTN6YmZ5Y3ho eDkiKSkpKQorICAgICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29tcGF0IiAsanVs aWEtY29tcGF0KSkpCisgICAgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisg ICAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhSU8vRm9ybWF0dGluZy5q bC5naXQiKQorICAgICAgIChzeW5vcHNpcyAiIikKKyAgICAgICAoZGVzY3JpcHRpb24gIiIpCisg ICAgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1u YW1lZGNvbG9ycworICAgICAgKHBhY2thZ2UKKyAgICAgICAobmFtZSAianVsaWEtbmFtZWRjb2xv cnMiKQorICAgICAgICh2ZXJzaW9uICIwLjIuMCIpCisgICAgICAgKHNvdXJjZSAob3JpZ2luCisJ ICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UK KwkJICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhR3JhcGhpY3MvTmFtZWRDb2xv cnMuamwuZ2l0IikKKwkJICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikp KSkKKwkgICAgICAgIChmaWxlLW5hbWUgIk5hbWVkQ29sb3JzIikKKwkgICAgICAgIChzaGEyNTYK KyAgICAgICAgICAgICAgICAgKGJhc2UzMiAiMTNuNjhnZGw1MWc3bWQwaGZ4czNja3B3YjFuZ3Zq d2duZ3FjYWRnM2RhbGlyOXE4bGR5ZiIpKSkpCisgICAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAo KCJqdWxpYS1jb2xvcnR5cGVzIiAsanVsaWEtY29sb3J0eXBlcykKKwkJCSAgICAoImp1bGlhLWNv bG9ycyIgLGp1bGlhLWNvbG9ycykpKQorICAgICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQt c3lzdGVtKQorICAgICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYUdyYXBo aWNzL05hbWVkQ29sb3JzLmpsLmdpdCIpCisgICAgICAgKHN5bm9wc2lzICIiKQorICAgICAgIChk ZXNjcmlwdGlvbiAiIikKKyAgICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZp bmUtcHVibGljIGp1bGlhLWNvZGVjcworICAgICAgKHBhY2thZ2UKKyAgICAgICAobmFtZSAianVs aWEtY29kZWNzIikKKyAgICAgICAodmVyc2lvbiAiMC41LjAiKQorICAgICAgIChzb3VyY2UgKG9y aWdpbgorCSAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgICAodXJpIChnaXQtcmVm ZXJlbmNlCisJCSAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9CaW9KdWxpYS9Db2RlY3Mu amwuZ2l0IikKKwkJICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkK KwkgICAgICAgIChmaWxlLW5hbWUgIkNvZGVjcyIpCisJICAgICAgICAoc2hhMjU2CisgICAgICAg ICAgICAgICAgIChiYXNlMzIgIjFpNHhnMGY3NWdpZHhtc2ltMGFzN3MxOHNiN2c0bXhiMDQ1MTMw MjV2YjE0MzN2dnZjbmkiKSkpKQorICAgICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCkpCisgICAg ICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgICAgKGhvbWUtcGFnZSAi aHR0cHM6Ly9naXRodWIuY29tL0Jpb0p1bGlhL0NvZGVjcy5qbC5naXQiKQorICAgICAgIChzeW5v cHNpcyAiIikKKyAgICAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgICAgKGxpY2Vuc2UgbGljZW5z ZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS15YW1sCisgICAgICAocGFja2FnZQor ICAgICAgIChuYW1lICJqdWxpYS15YW1sIikKKyAgICAgICAodmVyc2lvbiAiMC4zLjIiKQorICAg ICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9C aW9KdWxpYS9ZQU1MLmpsLmdpdCIpCisJCSAgICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYi IHZlcnNpb24pKSkpCisJICAgICAgICAoZmlsZS1uYW1lICJZQU1MIikKKwkgICAgICAgIChzaGEy NTYKKyAgICAgICAgICAgICAgICAgKGJhc2UzMiAiMWNzcmtrN3E1bTJtdzN6bmJrbjdqOGRxaHh4 N2lubmFtMmdjbGwycW13N3BhcTAzZ3p3ciIpKSkpCisgICAgICAgKHByb3BhZ2F0ZWQtaW5wdXRz IGAoKCJqdWxpYS1jb2RlY3MiICxqdWxpYS1jb2RlY3MpCisoImp1bGlhLWNvbXBhdCIgLGp1bGlh LWNvbXBhdCkpKQorICAgICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAg ICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9CaW9KdWxpYS9ZQU1MLmpsLmdpdCIp CisgICAgICAgKHN5bm9wc2lzICIiKQorICAgICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAgICAo bGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWFic3RyYWN0 dHJlZXMKKyAgICAgIChwYWNrYWdlCisgICAgICAgKG5hbWUgImp1bGlhLWFic3RyYWN0dHJlZXMi KQorICAgICAgICh2ZXJzaW9uICIwLjIuMSIpCisgICAgICAgKHNvdXJjZSAob3JpZ2luCisJICAg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJ ICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0tlbm8vQWJzdHJhY3RUcmVlcy5qbC5naXQi KQorCQkgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAg ICAgKGZpbGUtbmFtZSAiQWJzdHJhY3RUcmVlcyIpCisJICAgICAgICAoc2hhMjU2CisgICAgICAg ICAgICAgICAgIChiYXNlMzIgIjB3MDV6YXIxaGx5cXF4N3psemgwNWg3OG1qczl2c2dhaWZuNXoz OTBjcnJoYjFiZ3c0YmoiKSkpKQorICAgICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEt Y29tcGF0IiAsanVsaWEtY29tcGF0KQorCQkJICAgIDs7ICgianVsaWEtbWFya2Rvd24iICxqdWxp YS1tYXJrZG93bikKKwkJCSAgICApKQorICAgICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQt c3lzdGVtKQorICAgICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9LZW5vL0Fic3Ry YWN0VHJlZXMuamwuZ2l0IikKKyAgICAgICAoc3lub3BzaXMgIiIpCisgICAgICAgKGRlc2NyaXB0 aW9uICIiKQorICAgICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJs aWMganVsaWEtZ3VtYm8KKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEtZ3VtYm8iKQorICAg ICh2ZXJzaW9uICIwLjUuMSIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBn aXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhV2ViL0d1bWJvLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJp bmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkd1bWJvIikKKwkg ICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjF3c2RycXozamo2ODRwYWFubXBsYTlrdnBk Y3Y3c2JzdzI5NjdrbGp5a3ZiNHBsdnN4OTUiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBg KCgianVsaWEtc2hhIiAsanVsaWEtc2hhKQorCQkJICgianVsaWEtYWJzdHJhY3R0cmVlcyIgLGp1 bGlhLWFic3RyYWN0dHJlZXMpCisJCQkgKCJqdWxpYS1iaW5hcnlwcm92aWRlciIgLGp1bGlhLWJp bmFyeXByb3ZpZGVyKQorCQkJICgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KQorCQkJICgi Z3VtYm8tcGFyc2VyIiwgZ3VtYm8tcGFyc2VyKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1i dWlsZC1zeXN0ZW0pCisgICAgKGFyZ3VtZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1v ZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworCSAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAn YnVpbGQtZGVwcworCSAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRzIHNvdXJjZSBpbnB1dHMgIzph bGxvdy1vdGhlci1rZXlzKQorCSAgICAgKGxldCAoKGYgKG9wZW4tZmlsZQorCQkgICAgICAgKHN0 cmluZy1hcHBlbmQKKwkJCShhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikKKwkJCSIvc2hhcmUvanVs aWEvcGFja2FnZXMvIgorCQkJKHN0cmluZy1hcHBlbmQKKwkJCSAoc3RyaXAtc3RvcmUtZmlsZS1u YW1lIHNvdXJjZSkgIi9kZXBzL2RlcHMuamwiKSkKKwkJICAgICAgICJ3IikpKQorCSAgICAgICAo ZGlzcGxheSAoc3RyaW5nLWFwcGVuZCAiY29uc3QgbGliZ3VtYm8gPSBcIiIKKwkJCQkgICAgICAg KGFzc29jLXJlZiBpbnB1dHMgImd1bWJvLXBhcnNlciIpCisJCQkJICAgICAgICIvbGliL2xpYmd1 bWJvLnNvXCJcbiIpIGYpCisJICAgICAgIChjbG9zZS1wb3J0IGYpKQorCSAgICAgI3QpCisJICAg KSkpKQorCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhV2ViL0d1bWJv LmpsLmdpdCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAo bGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWNhc2NhZGlh CisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWNhc2NhZGlhIikKKyAgICAodmVyc2lvbiAi MC40LjAiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQor CSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNv bS9BbGdvY2lyY2xlL0Nhc2NhZGlhLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBw ZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIkNhc2NhZGlhIikKKwkgICAg ICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjBqZnoycDk0eTlsNjJmYTZzaTloZmI3Y3poajI2 aTluMXA3Z3piOXZ6MXgzMnYycTJnZHAiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgi anVsaWEtZ3VtYm8iICxqdWxpYS1ndW1ibykKKwkJCSAoImp1bGlhLWFic3RyYWN0dHJlZXMiICxq dWxpYS1hYnN0cmFjdHRyZWVzKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0 ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0FsZ29jaXJjbGUvQ2FzY2Fk aWEuamwuZ2l0IikKKyAgICAoc3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAg IChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtZmlsZWlv CisgIChwYWNrYWdlCisgICAgKG5hbWUgImp1bGlhLWZpbGVpbyIpCisgICAgKHZlcnNpb24gIjEu MC43IikKKyAgICAoc291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkg ICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20v SnVsaWFJTy9GaWxlSU8uamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYi IHZlcnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiRmlsZUlPIikKKwkgICAgICAoc2hhMjU2 CisJICAgICAgIChiYXNlMzIgIjBkd3NrbHh6YzRuaHNpaTloaGpwMWgzY2JmOW41YWJpcGo0NGpm M2kwem5jaWQwNmFhbnYiKSkpKQorICAgIChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtY29t cGF0IiAsanVsaWEtY29tcGF0KQorCQkJIDs7ICgianVsaWEtZG9jaWxlIiAsanVsaWEtZG9jaWxl KQorCQkJICkpCisgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhv bWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhSU8vRmlsZUlPLmpsLmdpdCIpCisgICAg KHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5zZSBsaWNlbnNl OmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLXRyYW5zY29kaW5nc3RyZWFtcworICAg ICAgKHBhY2thZ2UKKyAgICAgICAobmFtZSAianVsaWEtdHJhbnNjb2RpbmdzdHJlYW1zIikKKyAg ICAgICAodmVyc2lvbiAiMC45LjQiKQorICAgICAgIChzb3VyY2UgKG9yaWdpbgorCSAgICAgICAg KG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCSAgICAg ICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9iaWN5Y2xlMTg4NS9UcmFuc2NvZGluZ1N0cmVhbXMu amwuZ2l0IikKKwkJICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVyc2lvbikpKSkK KwkgICAgICAgIChmaWxlLW5hbWUgIlRyYW5zY29kaW5nU3RyZWFtcyIpCisJICAgICAgICAoc2hh MjU2CisgICAgICAgICAgICAgICAgIChiYXNlMzIgIjBkZ244a3FoNHFseW0zYmljZGJscDlyc2cx a3Fsd2xubDIyaWs3NWRmd3dxYnpwbmFmMG0iKSkpKQorICAgICAgIChwcm9wYWdhdGVkLWlucHV0 cyBgKCgianVsaWEtY29tcGF0IiAsanVsaWEtY29tcGF0KSkpCisgICAgICAgKGJ1aWxkLXN5c3Rl bSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIu Y29tL2JpY3ljbGUxODg1L1RyYW5zY29kaW5nU3RyZWFtcy5qbC5naXQiKQorICAgICAgIChzeW5v cHNpcyAiIikKKyAgICAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgICAgKGxpY2Vuc2UgbGljZW5z ZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1jb2RlY3psaWIKKyAgKHBhY2thZ2UK KyAgICAobmFtZSAianVsaWEtY29kZWN6bGliIikKKyAgICAodmVyc2lvbiAiMC41LjIiKQorICAg IChzb3VyY2UgKG9yaWdpbgorCSAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkg KGdpdC1yZWZlcmVuY2UKKwkJICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9iaWN5Y2xlMTg4 NS9Db2RlY1psaWIuamwuZ2l0IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZl cnNpb24pKSkpCisJICAgICAgKGZpbGUtbmFtZSAiQ29kZWNabGliIikKKwkgICAgICAoc2hhMjU2 CisgICAgICAgICAgICAgICAoYmFzZTMyICIwdjNuM2ZrN2lhc2xxanl5N3F4YmFkNHl6ZnNkOGNx OHFkcjhpczZmNzlsOTBud2c4ZDkyIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1 bGlhLXRyYW5zY29kaW5nc3RyZWFtcyIgLGp1bGlhLXRyYW5zY29kaW5nc3RyZWFtcykKKwkJCSAo Imp1bGlhLWJpbmFyeXByb3ZpZGVyIiAsanVsaWEtYmluYXJ5cHJvdmlkZXIpCisJCQkgKCJ6bGli IiAsemxpYikpKQorICAgIChhcmd1bWVudHMKKyAgICAgYCgjOnBoYXNlcworICAgICAgIChtb2Rp ZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKKwkgKGFkZC1iZWZvcmUgJ3ByZWNvbXBpbGUgJ2J1 aWxkLWRlcHMKKwkgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyBzb3VyY2UgaW5wdXRzICM6YWxs b3ctb3RoZXIta2V5cykKKwkgICAgIChsZXQgKChmIChvcGVuLWZpbGUKKwkJICAgICAgIChzdHJp bmctYXBwZW5kCisJCQkoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpCisJCQkiL3NoYXJlL2p1bGlh L3BhY2thZ2VzLyIKKwkJCShzdHJpbmctYXBwZW5kCisJCQkgKHN0cmlwLXN0b3JlLWZpbGUtbmFt ZSBzb3VyY2UpICIvZGVwcy9kZXBzLmpsIikpCisJCSAgICAgICAidyIpKSkKKwkgICAgICAgKGRp c3BsYXkgKHN0cmluZy1hcHBlbmQgImNvbnN0IGxpYnogPSBcIiIKKwkJCQkgICAgICAgKGFzc29j LXJlZiBpbnB1dHMgInpsaWIiKQorCQkJCSAgICAgICAiL2xpYi9saWJ6LnNvXCJcbiIpIGYpCisJ ICAgICAgIChkaXNwbGF5ICJjaGVja19kZXBzKCkgPSB0cnVlXG4iIGYpCisJICAgICAgIChjbG9z ZS1wb3J0IGYpKQorCSAgICAgI3QpKQorCSAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4LXRv bWwKKwkgICAobGFtYmRhKgorCSAgICAgICAoIzprZXkgb3V0cHV0cyBzb3VyY2UgIzphbGxvdy1v dGhlci1rZXlzKQorCSAgICAgKGp1bGlhLWNyZWF0ZS1wYWNrYWdlLXRvbWwKKwkgICAgICBvdXRw dXRzIHNvdXJjZQorCSAgICAgICJDb2RlY1psaWIiCisJICAgICAgIjk0NGIxZDY2LTc4NWMtNWFm ZC05MWYxLTlkZTIwZjUzMzE5MyIKKwkgICAgICAiMC41LjIiCisJICAgICAgJygpKQorCSAgICAg I3QpKQorCSApKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vYmljeWNsZTE4ODUvQ29kZWNabGliLmpsLmdp dCIpCisgICAgKHN5bm9wc2lzICIiKQorICAgIChkZXNjcmlwdGlvbiAiIikKKyAgICAobGljZW5z ZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLW51bGxhYmxlcworICAo cGFja2FnZQorICAgIChuYW1lICJqdWxpYS1udWxsYWJsZXMiKQorICAgICh2ZXJzaW9uICIwLjAu OCIpCisgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAg ICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorCQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1 bGlhQXR0aWMvTnVsbGFibGVzLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5k ICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIk51bGxhYmxlcyIpCisJICAgICAg KHNoYTI1NgorICAgICAgICAgICAgICAgKGJhc2UzMiAiMDBtZG5rNWhybDA0d3l3N2c4ZHd5Ym54 em4yd2gwbDUycGE3Mzk4bDN3Z2dhazJpcXgxYiIpKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRz IGAoKCJqdWxpYS1jb21wYXQiICxqdWxpYS1jb21wYXQpKSkKKyAgICAoYnVpbGQtc3lzdGVtIGp1 bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAoIzpwaGFzZXMKKyAgICAg ICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCisJIChhZGQtYmVmb3JlICdwcmVjb21w aWxlICdmaXgtdG9tbAorCSAgIChsYW1iZGEqCisJICAgICAgICgjOmtleSBvdXRwdXRzIHNvdXJj ZSAjOmFsbG93LW90aGVyLWtleXMpCisJICAgICAoanVsaWEtY3JlYXRlLXBhY2thZ2UtdG9tbAor CSAgICAgIG91dHB1dHMgc291cmNlCisJICAgICAgIk51bGxhYmxlcyIKKwkgICAgICAiNGQxZTFk NzctNjI1ZS01YjQwLTkxMTMtYTU2MGVjN2E4ZWNkIgorCSAgICAgICIwLjAuOCIKKwkgICAgICAn KCkpCisJICAgICAjdCkpCisJICkpKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNv bS9KdWxpYUF0dGljL051bGxhYmxlcy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikKKyAgICAo ZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5l LXB1YmxpYyBqdWxpYS1zcGVjaWFsZnVuY3Rpb25zCisgICAgICAocGFja2FnZQorCShuYW1lICJq dWxpYS1zcGVjaWFsZnVuY3Rpb25zIikKKwkodmVyc2lvbiAiMC43LjIiKQorCShzb3VyY2UgKG9y aWdpbgorCSAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAgICAgKHVyaSAoZ2l0 LXJlZmVyZW5jZQorCQkJKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL0p1bGlhTWF0aC9TcGVjaWFs RnVuY3Rpb25zLmpsLmdpdCIpCisJCQkoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9u KSkpKQorCSAgICAgICAgICAoZmlsZS1uYW1lICJTcGVjaWFsRnVuY3Rpb25zIikKKwkgICAgICAg ICAgKHNoYTI1NgorICAgICAgICAgICAgICAgICAgIChiYXNlMzIgIjE2OGpodjRiNG4xdmZ6djdx cnh4Z3g1anZjNjBsc2dkMmY2anJraTRyMGk5bmZpczgxeXEiKSkpKQorCShwcm9wYWdhdGVkLWlu cHV0cyBgKCgianVsaWEtYmluZGVwcyIgLGp1bGlhLWJpbmRlcHMpCisJCQkgICAgICgianVsaWEt YmluYXJ5cHJvdmlkZXIiICxqdWxpYS1iaW5hcnlwcm92aWRlcikKKwkJCSAgICAgKCJvcGVuc3Bl Y2Z1biIgLG9wZW5zcGVjZnVuKSkpCisgICAgICAgKGFyZ3VtZW50cworCSBgKCM6cGhhc2VzCisJ ICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworCSAgICAgKGFkZC1iZWZvcmUgJ3By ZWNvbXBpbGUgJ2J1aWxkLWRlcHMKKwkgICAgICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgc291 cmNlIGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisJCSAobGV0ICgoZiAob3Blbi1maWxlCisJ CQkgICAoc3RyaW5nLWFwcGVuZAorCQkJICAgIChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikKKwkJ CSAgICAiL3NoYXJlL2p1bGlhL3BhY2thZ2VzLyIKKwkJCSAgICAoc3RyaW5nLWFwcGVuZAorCQkJ ICAgICAoc3RyaXAtc3RvcmUtZmlsZS1uYW1lIHNvdXJjZSkgIi9kZXBzL2RlcHMuamwiKSkKKwkJ CSAgICJ3IikpKQorCQkgICAoZGlzcGxheSAoc3RyaW5nLWFwcGVuZCAiY29uc3Qgb3BlbnNwZWNm dW4gPSBcIiIKKwkJCQkJICAgKGFzc29jLXJlZiBpbnB1dHMgIm9wZW5zcGVjZnVuIikKKwkJCQkJ ICAgIi9saWIvbGlib3BlbnNwZWNmdW4uc29cIlxuIikgZikKKwkJICAgKGRpc3BsYXkgImNoZWNr X2RlcHMoKSA9IHRydWVcbiIgZikKKwkJICAgKGNsb3NlLXBvcnQgZikpCisJCSAjdCkpKSkpCisJ KGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisJKGhvbWUtcGFnZSAiaHR0cHM6Ly9n aXRodWIuY29tL0p1bGlhTWF0aC9TcGVjaWFsRnVuY3Rpb25zLmpsLmdpdCIpCisJKHN5bm9wc2lz ICIiKQorCShkZXNjcmlwdGlvbiAiIikKKwkobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhk ZWZpbmUtcHVibGljIGp1bGlhLXF1YWRtYXRoCisgICAgICAocGFja2FnZQorICAgICAgIChuYW1l ICJqdWxpYS1xdWFkbWF0aCIpCisgICAgICAgKHZlcnNpb24gIjAuNS4wIikKKyAgICAgICAoc291 cmNlIChvcmlnaW4KKwkgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICAgKHVyaSAo Z2l0LXJlZmVyZW5jZQorCQkgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFNYXRo L1F1YWRtYXRoLmpsLmdpdCIpCisJCSAgICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZl cnNpb24pKSkpCisJICAgICAgICAoZmlsZS1uYW1lICJRdWFkbWF0aCIpCisJICAgICAgICAoc2hh MjU2CisgICAgICAgICAgICAgICAgIChiYXNlMzIgIjBzM3kxNjcxM2NzM3p3enlwZHNubDljN2Rs aWxjbG4wMzltbnlweGNuYnhzczdseGtyZmoiKSkpKQorICAgICAgIChwcm9wYWdhdGVkLWlucHV0 cyBgKCgianVsaWEtcmVxdWlyZXMiICxqdWxpYS1yZXF1aXJlcykKKwkJCSAgICAoImp1bGlhLXNw ZWNpYWxmdW5jdGlvbnMiICxqdWxpYS1zcGVjaWFsZnVuY3Rpb25zKQorCQkJICAgICkpCisgICAg ICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgICAgKGhvbWUtcGFnZSAi aHR0cHM6Ly9naXRodWIuY29tL0p1bGlhTWF0aC9RdWFkbWF0aC5qbC5naXQiKQorICAgICAgIChz eW5vcHNpcyAiIikKKyAgICAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgICAgKGxpY2Vuc2UgbGlj ZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS1wb2x5bm9taWFscworICAgICAg KHBhY2thZ2UKKwkobmFtZSAianVsaWEtcG9seW5vbWlhbHMiKQorCSh2ZXJzaW9uICIwLjUuMiIp CisJKHNvdXJjZSAob3JpZ2luCisJICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAg ICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCQkodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVs aWFNYXRoL1BvbHlub21pYWxzLmpsLmdpdCIpCisJCQkoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2 IiB2ZXJzaW9uKSkpKQorCSAgICAgICAgICAoZmlsZS1uYW1lICJQb2x5bm9taWFscyIpCisJICAg ICAgICAgIChzaGEyNTYKKyAgICAgICAgICAgICAgICAgICAoYmFzZTMyICIxZDdibWtqM2ExMWcx ZGlxcXc5ZnluZnc0NHdxaGg4ajF3c3NpajYzem44cG5sZ2g3YjA0IikpKSkKKwkocHJvcGFnYXRl ZC1pbnB1dHMgYCgpKQorCShidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorCShob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYU1hdGgvUG9seW5vbWlhbHMuamwuZ2l0IikK KwkoYXJndW1lbnRzCisJIGAoIzpwaGFzZXMKKwkgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQt cGhhc2VzCisJICAgICAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4LXRvbWwKKwkgICAgICAg KGxhbWJkYSoKKwkJICAgKCM6a2V5IG91dHB1dHMgc291cmNlICM6YWxsb3ctb3RoZXIta2V5cykK KwkJIChqdWxpYS1jcmVhdGUtcGFja2FnZS10b21sCisJCSAgb3V0cHV0cyBzb3VyY2UKKwkJICAi UG9seW5vbWlhbHMiCisJCSAgImYyN2I2ZTM4LWIzMjgtNThkMS04MGNlLTBmZWRkZDVlN2E0NSIK KwkJICAiMC41LjIiCisJCSAgJygpKQorCQkgI3QpKSkpKQorCShzeW5vcHNpcyAiIikKKwkoZGVz Y3JpcHRpb24gIiIpCisJKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCisoZGVmaW5lLXB1Ymxp YyBqdWxpYS1nZW5lcmljc2NodXIKKyAgICAgIChwYWNrYWdlCisgICAgICAgKG5hbWUgImp1bGlh LWdlbmVyaWNzY2h1ciIpCisgICAgICAgKHZlcnNpb24gIjAuMi4zIikKKyAgICAgICAoc291cmNl IChvcmlnaW4KKwkgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICAgKHVyaSAoZ2l0 LXJlZmVyZW5jZQorCQkgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vUmFscGhBUy9HZW5l cmljU2NodXIuamwuZ2l0IikKKwkJICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAidiIgdmVy c2lvbikpKSkKKwkgICAgICAgIChmaWxlLW5hbWUgIkdlbmVyaWNTY2h1ciIpCisJICAgICAgICAo c2hhMjU2CisgICAgICAgICAgICAgICAgIChiYXNlMzIgIjF5ZDkxenFmd2trbnZjcGZrenhwbXlp a3AybTZ6NmY2Z3ZscGEwcXhoeWM5NjY1N202YWgiKSkpKQorICAgICAgIChwcm9wYWdhdGVkLWlu cHV0cyBgKCkpCisgICAgICAgKGJ1aWxkLXN5c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAg ICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL1JhbHBoQVMvR2VuZXJpY1NjaHVyLmps LmdpdCIpCisgICAgICAgKHN5bm9wc2lzICIiKQorICAgICAgIChkZXNjcmlwdGlvbiAiIikKKyAg ICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVibGljIGp1bGlhLWdl bmVyaWNzdmQKKyAgICAgIChwYWNrYWdlCisJKG5hbWUgImp1bGlhLWdlbmVyaWNzdmQiKQorCSh2 ZXJzaW9uICIwLjIuMSIpCisJKHNvdXJjZSAob3JpZ2luCisJICAgICAgICAgIChtZXRob2QgZ2l0 LWZldGNoKQorCSAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisJCQkodXJsICJodHRwczov L2dpdGh1Yi5jb20vSnVsaWFMaW5lYXJBbGdlYnJhL0dlbmVyaWNTVkQuamwuZ2l0IikKKwkJCShj b21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgICAgIChmaWxlLW5h bWUgIkdlbmVyaWNTVkQiKQorCSAgICAgICAgICAoc2hhMjU2CisgICAgICAgICAgICAgICAgICAg KGJhc2UzMiAiMGljZGZ5aXB2aHkzZG5xN3lyaTNjZzNtcjBzemlpMWpnZnFjYjBmczhnN2E5ZmNy ZDBhMyIpKSkpCisJKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb21wYXQiICxqdWxpYS1j b21wYXQpKSkKKwkoYXJndW1lbnRzCisJIGAoIzpwaGFzZXMKKwkgICAobW9kaWZ5LXBoYXNlcyAl c3RhbmRhcmQtcGhhc2VzCisJICAgICAoYWRkLWJlZm9yZSAncHJlY29tcGlsZSAnZml4LXRvbWwK KwkgICAgICAgKGxhbWJkYSoKKwkJICAgKCM6a2V5IG91dHB1dHMgc291cmNlICM6YWxsb3ctb3Ro ZXIta2V5cykKKwkJIChqdWxpYS1jcmVhdGUtcGFja2FnZS10b21sCisJCSAgb3V0cHV0cyBzb3Vy Y2UKKwkJICAiR2VuZXJpY1NWRCIKKwkJICAiMDE2ODBkNzMtNGVlMi01YTA4LWExYWEtNTMzNjA4 YzE4OGJiIgorCQkgICIwLjIuMSIKKwkJICAnKCkpCisJCSAjdCkpKSkpCisJKGJ1aWxkLXN5c3Rl bSBqdWxpYS1idWlsZC1zeXN0ZW0pCisJKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0p1 bGlhTGluZWFyQWxnZWJyYS9HZW5lcmljU1ZELmpsLmdpdCIpCisJKHN5bm9wc2lzICIiKQorCShk ZXNjcmlwdGlvbiAiIikKKwkobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCisKKyhkZWZpbmUtcHVi bGljIGp1bGlhLWRvdWJsZWZsb2F0cworICAgICAgKHBhY2thZ2UKKyAgICAgICAobmFtZSAianVs aWEtZG91YmxlZmxvYXRzIikKKyAgICAgICAodmVyc2lvbiAiMC45LjMiKQorICAgICAgIChzb3Vy Y2UgKG9yaWdpbgorCSAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgICAodXJpIChn aXQtcmVmZXJlbmNlCisJCSAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYU1hdGgv RG91YmxlRmxvYXRzLmpsLmdpdCIpCisJCSAgICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYi IHZlcnNpb24pKSkpCisJICAgICAgICAoZmlsZS1uYW1lICJEb3VibGVGbG9hdHMiKQorCSAgICAg ICAgKHNoYTI1NgorICAgICAgICAgICAgICAgICAoYmFzZTMyICIwaDM5aTI5djJ3cXFtdmJucGhq bWxhcnlkcHZnbjE3YXlsN3FpcHdoMjNxcTJxbTVsY3FuIikpKSkKKyAgICAgICAocHJvcGFnYXRl ZC1pbnB1dHMgYCgoImp1bGlhLXF1YWRtYXRoIiAsanVsaWEtcXVhZG1hdGgpCisoImp1bGlhLXJl cXVpcmVzIiAsanVsaWEtcmVxdWlyZXMpCisoImp1bGlhLXBvbHlub21pYWxzIiAsanVsaWEtcG9s eW5vbWlhbHMpCisoImp1bGlhLWdlbmVyaWNzY2h1ciIgLGp1bGlhLWdlbmVyaWNzY2h1cikKKygi anVsaWEtZ2VuZXJpY3N2ZCIgLGp1bGlhLWdlbmVyaWNzdmQpKSkKKyAgICAgICAoYnVpbGQtc3lz dGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1 Yi5jb20vSnVsaWFNYXRoL0RvdWJsZUZsb2F0cy5qbC5naXQiKQorICAgICAgIChzeW5vcHNpcyAi IikKKyAgICAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBh dCkpKQorCisoZGVmaW5lLXB1YmxpYyBqdWxpYS13ZWFrcmVmc3RyaW5ncworICAgICAgKHBhY2th Z2UKKyAgICAgICAobmFtZSAianVsaWEtd2Vha3JlZnN0cmluZ3MiKQorICAgICAgICh2ZXJzaW9u ICIwLjYuMSIpCisgICAgICAgKHNvdXJjZSAob3JpZ2luCisJICAgICAgICAobWV0aG9kIGdpdC1m ZXRjaCkKKwkgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAgICAgKHVybCAiaHR0cHM6 Ly9naXRodWIuY29tL0p1bGlhRGF0YS9XZWFrUmVmU3RyaW5ncy5qbC5naXQiKQorCQkgICAgICAo Y29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2ZXJzaW9uKSkpKQorCSAgICAgICAgKGZpbGUtbmFt ZSAiV2Vha1JlZlN0cmluZ3MiKQorCSAgICAgICAgKHNoYTI1NgorICAgICAgICAgICAgICAgICAo YmFzZTMyICIwMHNmcWh3Mm5pYXJmbXBuOGkzZG12NWRmaHlqM2J5bHZ3cDR5cnE3N2I1NjBnOTk3 a2hoIikpKSkKKyAgICAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgpKQorICAgICAgIChidWlsZC1z eXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0 aHViLmNvbS9KdWxpYURhdGEvV2Vha1JlZlN0cmluZ3MuamwuZ2l0IikKKyAgICAgICAoc3lub3Bz aXMgIiIpCisgICAgICAgKGRlc2NyaXB0aW9uICIiKQorICAgICAgIChsaWNlbnNlIGxpY2Vuc2U6 ZXhwYXQpKSkKKworKGRlZmluZS1wdWJsaWMganVsaWEtdGV4dHBhcnNlCisgIChwYWNrYWdlCisg ICAgKG5hbWUgImp1bGlhLXRleHRwYXJzZSIpCisgICAgKHZlcnNpb24gIjAuOS4xIikKKyAgICAo c291cmNlIChvcmlnaW4KKwkgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKwkgICAgICAodXJpIChn aXQtcmVmZXJlbmNlCisJCSAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vSnVsaWFDb21wdXRp bmcvVGV4dFBhcnNlLmpsLmdpdCIpCisJCSAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2IiB2 ZXJzaW9uKSkpKQorCSAgICAgIChmaWxlLW5hbWUgIlRleHRQYXJzZSIpCisJICAgICAgKHNoYTI1 NgorCSAgICAgICAoYmFzZTMyICIxdnptbjRnZmhpY2lmNXZoenowaDNtdjFxZ3BzbWpmcTRyejdy aGJta2RxYndqZnBoZncyIikpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMgYCgoImp1bGlhLW51 bGxhYmxlcyIgLGp1bGlhLW51bGxhYmxlcykKKwkJCSAoImp1bGlhLWNvZGVjemxpYiIgLGp1bGlh LWNvZGVjemxpYikKKwkJCSAoImp1bGlhLWRvdWJsZWZsb2F0cyIgLGp1bGlhLWRvdWJsZWZsb2F0 cykKKwkJCSAoImp1bGlhLXdlYWtyZWZzdHJpbmdzIiAsanVsaWEtd2Vha3JlZnN0cmluZ3MpCisJ CQkgKCJqdWxpYS1wb29sZWRhcnJheXMiICxqdWxpYS1wb29sZWRhcnJheXMpCisJCQkgKCJqdWxp YS1kYXRhc3RydWN0dXJlcyIgLGp1bGlhLWRhdGFzdHJ1Y3R1cmVzKSkpCisgICAgKGJ1aWxkLXN5 c3RlbSBqdWxpYS1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIu Y29tL0p1bGlhQ29tcHV0aW5nL1RleHRQYXJzZS5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikK KyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCiso ZGVmaW5lLXB1YmxpYyBqdWxpYS1jc3ZmaWxlcworICAocGFja2FnZQorICAgIChuYW1lICJqdWxp YS1jc3ZmaWxlcyIpCisgICAgKHZlcnNpb24gIjAuMTUuMCIpCisgICAgKHNvdXJjZSAob3JpZ2lu CisJICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisJICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQor CQkgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3F1ZXJ5dmVyc2UvQ1NWRmlsZXMuamwuZ2l0 IikKKwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAg KGZpbGUtbmFtZSAiQ1NWRmlsZXMiKQorCSAgICAgIChzaGEyNTYKKwkgICAgICAgKGJhc2UzMiAi MXZ6ZDZiMWtwOWdqbWw0ODRsZ3ppaWJrcWFzbDV2ODNhZnIyeXhhY2Nza3ZtcTM2Z3hybSIpKSkp CisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzIGAoKCJqdWxpYS1jb2RlY3psaWIiICxqdWxpYS1jb2Rl Y3psaWIpCisJCQkgKCJqdWxpYS1pdGVyYWJsZXRhYmxlcyIgLGp1bGlhLWl0ZXJhYmxldGFibGVz KQorCQkJICgianVsaWEtZmlsZWlvIiAsanVsaWEtZmlsZWlvKQorCQkJICgianVsaWEtdGV4dHBh cnNlIiAsanVsaWEtdGV4dHBhcnNlKQorCQkJICgianVsaWEtZGF0YXZhbHVlcyIgLGp1bGlhLWRh dGF2YWx1ZXMpCisJCQkgKCJqdWxpYS10YWJsZXRyYWl0c3V0aWxzIiAsanVsaWEtdGFibGV0cmFp dHN1dGlscykKKwkJCSAoImp1bGlhLXRhYmxldHJhaXRzIiAsanVsaWEtdGFibGV0cmFpdHMpCisJ CQkgKCJqdWxpYS10YWJsZXNob3d1dGlscyIgLGp1bGlhLXRhYmxlc2hvd3V0aWxzKQorCQkJICgi anVsaWEtaXRlcmF0b3JpbnRlcmZhY2VleHRlbnNpb25zIiAsanVsaWEtaXRlcmF0b3JpbnRlcmZh Y2VleHRlbnNpb25zKQorCQkJICgianVsaWEtaHR0cCIgLGp1bGlhLWh0dHApKSkKKyAgICAoYnVp bGQtc3lzdGVtIGp1bGlhLWJ1aWxkLXN5c3RlbSkKKyAgICAoaG9tZS1wYWdlICJodHRwczovL2dp dGh1Yi5jb20vcXVlcnl2ZXJzZS9DU1ZGaWxlcy5qbC5naXQiKQorICAgIChzeW5vcHNpcyAiIikK KyAgICAoZGVzY3JpcHRpb24gIiIpCisgICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQorCiso ZGVmaW5lLXB1YmxpYyBqdWxpYS1zcWxpdGUKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAianVsaWEt c3FsaXRlIikKKyAgICAodmVyc2lvbiAiMC44LjEiKQorICAgIChzb3VyY2UgKG9yaWdpbgorCSAg ICAgIChtZXRob2QgZ2l0LWZldGNoKQorCSAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJICAg ICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYURhdGFiYXNlcy9TUUxpdGUuamwuZ2l0IikK KwkJICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCisJICAgICAgKGZp bGUtbmFtZSAiU1FMaXRlIikKKwkgICAgICAoc2hhMjU2CisJICAgICAgIChiYXNlMzIgIjBrcGcw ajl3ZDk5cWpseHZjcjR6bDVsbTFkOTkzajNwaHA2N2RzdnJyZDltMml2YTNpN3YiKSkpKQorICAg IChwcm9wYWdhdGVkLWlucHV0cyBgKCgianVsaWEtYmluYXJ5cHJvdmlkZXIiICxqdWxpYS1iaW5h cnlwcm92aWRlcikKKwkJCSAoImp1bGlhLWpzb24iICxqdWxpYS1qc29uKQorCQkJICgianVsaWEt dGFibGVzIiAsanVsaWEtdGFibGVzKQorCQkJICgianVsaWEtd2Vha3JlZnN0cmluZ3MiICxqdWxp YS13ZWFrcmVmc3RyaW5ncykKKwkJCSAoImp1bGlhLWRhdGFmcmFtZXMiICxqdWxpYS1kYXRhZnJh bWVzKQorCQkJICgic3FsaXRlIiAsc3FsaXRlKSkpCisgICAgKGFyZ3VtZW50cworICAgICBgKCM6 cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworCSAoYWRkLWJl Zm9yZSAncHJlY29tcGlsZSAnYnVpbGQtZGVwcworCSAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRz IHNvdXJjZSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorCSAgICAgKGxldCAoKGYgKG9wZW4t ZmlsZQorCQkgICAgICAgKHN0cmluZy1hcHBlbmQKKwkJCShhc3NvYy1yZWYgb3V0cHV0cyAib3V0 IikKKwkJCSIvc2hhcmUvanVsaWEvcGFja2FnZXMvIgorCQkJKHN0cmluZy1hcHBlbmQKKwkJCSAo c3RyaXAtc3RvcmUtZmlsZS1uYW1lIHNvdXJjZSkgIi9kZXBzL2RlcHMuamwiKSkKKwkJICAgICAg ICJ3IikpKQorCSAgICAgICAoZGlzcGxheSAoc3RyaW5nLWFwcGVuZCAiY29uc3QgbGlic3FsaXRl ID0gXCIiCisJCQkJICAgICAgIChhc3NvYy1yZWYgaW5wdXRzICJzcWxpdGUiKQorCQkJCSAgICAg ICAiL2xpYi9saWJzcWxpdGUzLnNvXCJcbiIpIGYpCisJICAgICAgIChkaXNwbGF5ICJjaGVja19k ZXBzKCkgPSB0cnVlXG4iIGYpCisJICAgICAgIChjbG9zZS1wb3J0IGYpKQorCSAgICAgI3QpKSkp KQorICAgIChidWlsZC1zeXN0ZW0ganVsaWEtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2Ug Imh0dHBzOi8vZ2l0aHViLmNvbS9KdWxpYURhdGFiYXNlcy9TUUxpdGUuamwuZ2l0IikKKyAgICAo c3lub3BzaXMgIiIpCisgICAgKGRlc2NyaXB0aW9uICIiKQorICAgIChsaWNlbnNlIGxpY2Vuc2U6 ZXhwYXQpKSkKLS0gCjIuMjIuMAoK --00000000000001c5f3058ee5728a--