summaryrefslogtreecommitdiffstats
BranchCommit messageAuthorAge
nextUpdate recipes for transition to UNPACKDIRScott Murray3 weeks
quillbackmeta-agl-core: update images in conf-notes.txtScott Murray3 weeks
mastermeta-agl-core: update images in conf-notes.txtScott Murray3 weeks
lampreyPrepare Lucky Lamprey 12.1.20Jan-Simon Moeller6 weeks
sandbox/jsmoeller/qt6WIP: Prepare for QT6Jan-Simon Moeller8 weeks
sandbox/jsmoeller/lampreymeta-agl-bsp/meta-ti: remove local patch from meta-agl-bsp before updateJan-Simon Moeller2 months
sandbox/jsmoeller/next-riscv-EW24Include visionfive2 board templatesJan-Simon Moeller2 months
sandbox/jsmoeller/canbusfdWIP canfdJan-Simon Moeller2 months
pikePrepare Prickly Pike 16.0.5Jan-Simon Moeller3 months
sandbox/YAMAGUCHINaoto/rk3588-nanopc-t6Add NanoPC-T6 support to wireplumberNaoto Yamaguchi7 months
octopusPrepare Optimistic Octopus 15.0.5Jan-Simon Moeller9 months
sandbox/hauvolecong/spec4808Restructure Salvator-x .inc filesHau Vo10 months
sandbox/nguyentanloc27/spec4808gstreamer1.0-plugins-bad_%.bbappend: Added a title/appidMarius Vlad10 months
sandbox/nguyentanloc27/S4SK-devAdding s4sk supportLoc Nguyen10 months
needlefishPrepare Nifty Needlefish 14.0.5Jan-Simon Moeller13 months
marlinPrepare Magic Marlin 13.0.3 releaseJan-Simon Moeller22 months
koiaglsetup: Fix append_fragment fails with heredocs on Ubuntu 21.04.vasyl2 years
sandbox/jsmoeller/rmappfwPrepare master for new framework integrationJan-Simon Moeller3 years
jellyfishaglsetup: Override templateconf.cfg in case of -f, --force.Vasyl Vavrychuk3 years
icefishmeta-agl-bsp: extend qemux86-64 hardware supportScott Murray4 years
sandbox/jsmoeller/cleanupCleanup draftJan-Simon Möller4 years
halibutaf-binder: fix bug in reconnectionJose Bollo4 years
floundermeta-agl-bsp: Update dtb and include for raspberrypi3Dennis Field4 years
guppyFix compilation of nasm-native with newer gcc versionsJan-Simon Möller5 years
eelAdd a patch for u-boot-ota to work with qemuEugene Smirnov6 years
dabFix build of json-c on newer hostsJan-Simon Möller6 years
chinookFix for CVE-2017-1000366 in glibcJan-Simon Möller7 years
blowfishFix: CVE-2016-1238 recent perl doesn't include cwdRomain Forlot8 years
albacoreFix hvacplugin cross-compilation issue due to wrong path in CMakeLists.txtJan-Simon Möller8 years
 
TagDownloadAuthorAge
12.1.20commit f57e2f15d8...Jan-Simon Moeller6 weeks
lamprey/12.1.20commit f57e2f15d8...Jan-Simon Moeller6 weeks
lamprey_12.1.20commit f57e2f15d8...Jan-Simon Moeller6 weeks
17.0.2commit d6053c3f40...Jan-Simon Moeller7 weeks
quillback/17.0.2commit d6053c3f40...Jan-Simon Moeller7 weeks
quillback_17.0.2commit d6053c3f40...Jan-Simon Moeller7 weeks
12.1.19commit b7c477e750...Jan-Simon Moeller8 weeks
lamprey/12.1.19commit b7c477e750...Jan-Simon Moeller8 weeks
lamprey_12.1.19commit b7c477e750...Jan-Simon Moeller8 weeks
17.0.1commit 7cf570926f...Jan-Simon Moeller3 months
quillback/17.0.1commit 7cf570926f...Jan-Simon Moeller3 months
quillback_17.0.1commit 7cf570926f...Jan-Simon Moeller3 months
16.0.5commit ea9a6cc06b...Jan-Simon Moeller3 months
pike/16.0.5commit ea9a6cc06b...Jan-Simon Moeller3 months
pike_16.0.5commit ea9a6cc06b...Jan-Simon Moeller3 months
17.0.0commit d276d6a221...Jan-Simon Moeller4 months
quillback/17.0.0commit d276d6a221...Jan-Simon Moeller4 months
quillback_17.0.0commit d276d6a221...Jan-Simon Moeller4 months
17.90.0commit 63e5c14ba2...Jan-Simon Moeller4 months
ricefish/17.90.0commit 63e5c14ba2...Jan-Simon Moeller4 months
ricefish_17.90.0commit 63e5c14ba2...Jan-Simon Moeller4 months
12.1.18commit 6779dc072a...Jan-Simon Moeller4 months
lamprey/12.1.18commit 6779dc072a...Jan-Simon Moeller4 months
lamprey_12.1.18commit 6779dc072a...Jan-Simon Moeller4 months
16.93.0commit ebbd871280...Jan-Simon Moeller4 months
quillback/16.93.0commit ebbd871280...Jan-Simon Moeller4 months
quillback_16.93.0commit ebbd871280...Jan-Simon Moeller4 months
16.0.4commit 0c4ff8ecf9...Jan-Simon Moeller5 months
pike/16.0.4commit 0c4ff8ecf9...Jan-Simon Moeller5 months
pike_16.0.4commit 0c4ff8ecf9...Jan-Simon Moeller5 months
12.1.17commit 4ce5e70c2b...Jan-Simon Moeller5 months
lamprey/12.1.17commit 4ce5e70c2b...Jan-Simon Moeller5 months
lamprey_12.1.17commit 4ce5e70c2b...Jan-Simon Moeller5 months
16.92.0commit 64258485d6...Jan-Simon Moeller6 months
quillback/16.92.0commit 64258485d6...Jan-Simon Moeller6 months
quillback_16.92.0commit 64258485d6...Jan-Simon Moeller6 months
16.0.3commit 35368f9251...Jan-Simon Moeller6 months
pike/16.0.3commit 35368f9251...Jan-Simon Moeller6 months
pike_16.0.3commit 35368f9251...Jan-Simon Moeller6 months
12.1.16commit 512d244d48...Jan-Simon Moeller7 months
lamprey/12.1.16commit 512d244d48...Jan-Simon Moeller7 months
lamprey_12.1.16commit 512d244d48...Jan-Simon Moeller7 months
16.91.0commit 4c9618f6af...Jan-Simon Moeller7 months
quillback/16.91.0commit 4c9618f6af...Jan-Simon Moeller7 months
quillback_16.91.0commit 4c9618f6af...Jan-Simon Moeller7 months
16.91.1commit c764d00258...Jan-Simon Moeller7 months
quillback/16.91.1commit c764d00258...Jan-Simon Moeller7 months
quillback_16.91.1commit c764d00258...Jan-Simon Moeller7 months
16.0.2commit ae3e2918a0...Jan-Simon Moeller8 months
pike/16.0.2commit ae3e2918a0...Jan-Simon Moeller8 months
pike_16.0.2commit ae3e2918a0...Jan-Simon Moeller8 months
12.1.15commit 280f7e70af...Jan-Simon Moeller8 months
lamprey/12.1.15commit 280f7e70af...Jan-Simon Moeller8 months
lamprey_12.1.15commit 280f7e70af...Jan-Simon Moeller8 months
15.0.5commit 36d25dc63d...Jan-Simon Moeller9 months
octopus/15.0.5commit 36d25dc63d...Jan-Simon Moeller9 months
octopus_15.0.5commit 36d25dc63d...Jan-Simon Moeller9 months
16.0.1commit 9af4ff37f3...Jan-Simon Moeller9 months
pike/16.0.1commit 9af4ff37f3...Jan-Simon Moeller9 months
pike_16.0.1commit 9af4ff37f3...Jan-Simon Moeller9 months
12.1.14commit e0f6590189...Jan-Simon Moeller10 months
lamprey/12.1.14commit e0f6590189...Jan-Simon Moeller10 months
lamprey_12.1.14commit e0f6590189...Jan-Simon Moeller10 months
15.0.4commit f0783c76a5...Jan-Simon Moeller10 months
octopus/15.0.4commit f0783c76a5...Jan-Simon Moeller10 months
octopus_15.0.4commit f0783c76a5...Jan-Simon Moeller10 months
16.0.0commit 1c7b328ce8...Jan-Simon Moeller10 months
pike/16.0.0commit 1c7b328ce8...Jan-Simon Moeller10 months
pike_16.0.0commit 1c7b328ce8...Jan-Simon Moeller10 months
15.93.0commit 903e108049...Jan-Simon Moeller11 months
pike/15.93.0commit 903e108049...Jan-Simon Moeller11 months
pike_15.93.0commit 903e108049...Jan-Simon Moeller11 months
15.92.0commit 2d0f4726b3...Jan-Simon Moeller11 months
pike/15.92.0commit 2d0f4726b3...Jan-Simon Moeller11 months
pike_15.92.0commit 2d0f4726b3...Jan-Simon Moeller11 months
12.1.13commit 583f80f8e9...Jan-Simon Moeller11 months
lamprey/12.1.13commit 583f80f8e9...Jan-Simon Moeller11 months
lamprey_12.1.13commit 583f80f8e9...Jan-Simon Moeller11 months
15.0.3commit 2fc0726d1f...Jan-Simon Moeller12 months
octopus/15.0.3commit 2fc0726d1f...Jan-Simon Moeller12 months
octopus_15.0.3commit 2fc0726d1f...Jan-Simon Moeller12 months
15.91.1commit e3c77539cd...Jan-Simon Moeller12 months
pike/15.91.1commit e3c77539cd...Jan-Simon Moeller12 months
pike_15.91.1commit e3c77539cd...Jan-Simon Moeller12 months
15.91.0commit cce8856658...Jan-Simon Moeller12 months
pike/15.91.0commit cce8856658...Jan-Simon Moeller12 months
pike_15.91.0commit cce8856658...Jan-Simon Moeller12 months
12.1.12commit 009153010c...Jan-Simon Moeller12 months
lamprey/12.1.12commit 009153010c...Jan-Simon Moeller12 months
lamprey_12.1.12commit 009153010c...Jan-Simon Moeller12 months
15.0.2commit 89143beca6...Jan-Simon Moeller13 months
octopus/15.0.2commit 89143beca6...Jan-Simon Moeller13 months
octopus_15.0.2commit 89143beca6...Jan-Simon Moeller13 months
14.0.5commit 48af618813...Jan-Simon Moeller13 months
needlefish/14.0.5commit 48af618813...Jan-Simon Moeller13 months
needlefish_14.0.5commit 48af618813...Jan-Simon Moeller13 months
12.1.11commit bb1af1fb24...Jan-Simon Moeller14 months
lamprey/12.1.11commit bb1af1fb24...Jan-Simon Moeller14 months
lamprey_12.1.11commit bb1af1fb24...Jan-Simon Moeller14 months
14.0.4commit a0fd17fd51...Jan-Simon Moeller14 months
needlefish/14.0.4commit a0fd17fd51...Jan-Simon Moeller14 months
needlefish_14.0.4commit a0fd17fd51...Jan-Simon Moeller14 months
15.0.1commit 33ac6e22d9...Jan-Simon Moeller14 months
octopus/15.0.1commit 33ac6e22d9...Jan-Simon Moeller14 months
octopus_15.0.1commit 33ac6e22d9...Jan-Simon Moeller14 months
12.1.10commit b86985a00f...Jan-Simon Moeller15 months
lamprey/12.1.10commit b86985a00f...Jan-Simon Moeller15 months
lamprey_12.1.10commit b86985a00f...Jan-Simon Moeller15 months
15.0.0commit cc1710f95b...Jan-Simon Moeller16 months
octopus/15.0.0commit cc1710f95b...Jan-Simon Moeller16 months
octopus_15.0.0commit cc1710f95b...Jan-Simon Moeller16 months
12.1.9commit 13f0267039...Jan-Simon Moeller16 months
lamprey/12.1.9commit 13f0267039...Jan-Simon Moeller16 months
lamprey_12.1.9commit 13f0267039...Jan-Simon Moeller16 months
14.94.0commit d32e234309...Jan-Simon Moeller17 months
octopus/14.94.0commit d32e234309...Jan-Simon Moeller17 months
octopus_14.94.0commit d32e234309...Jan-Simon Moeller17 months
14.93.0commit b9d4796f44...Jan-Simon Moeller17 months
octopus/14.93.0commit b9d4796f44...Jan-Simon Moeller17 months
octopus_14.93.0commit b9d4796f44...Jan-Simon Moeller17 months
14.0.3commit 0ff2cdad22...Jan-Simon Moeller17 months
needlefish/14.0.3commit 0ff2cdad22...Jan-Simon Moeller17 months
needlefish_14.0.3commit 0ff2cdad22...Jan-Simon Moeller17 months
12.1.8commit ae982d798a...Jan-Simon Moeller18 months
lamprey/12.1.8commit ae982d798a...Jan-Simon Moeller18 months
lamprey_12.1.8commit ae982d798a...Jan-Simon Moeller18 months
14.92.0commit 7406bdefc6...Jan-Simon Moeller18 months
octopus/14.92.0commit 7406bdefc6...Jan-Simon Moeller18 months
octopus_14.92.0commit 7406bdefc6...Jan-Simon Moeller18 months
14.91.0commit fc9f15eef8...Jan-Simon Moeller19 months
octopus/14.91.0commit fc9f15eef8...Jan-Simon Moeller19 months
octopus_14.91.0commit fc9f15eef8...Jan-Simon Moeller19 months
14.0.2commit fdcfaf6bc2...Jan-Simon Moeller19 months
needlefish/14.0.2commit fdcfaf6bc2...Jan-Simon Moeller19 months
needlefish_14.0.2commit fdcfaf6bc2...Jan-Simon Moeller19 months
12.1.7commit 8e87a90505...Jan-Simon Moeller19 months
lamprey/12.1.7commit 8e87a90505...Jan-Simon Moeller19 months
lamprey_12.1.7commit 8e87a90505...Jan-Simon Moeller19 months
12.1.6commit 10a00fc8e9...Jan-Simon Moeller21 months
lamprey/12.1.6commit 10a00fc8e9...Jan-Simon Moeller21 months
lamprey_12.1.6commit 10a00fc8e9...Jan-Simon Moeller21 months
14.0.1commit 5181312423...Jan-Simon Moeller21 months
needlefish/14.0.1commit 5181312423...Jan-Simon Moeller21 months
needlefish_14.0.1commit 5181312423...Jan-Simon Moeller21 months
13.0.3commit ce1e486b05...Jan-Simon Moeller22 months
marlin/13.0.3commit ce1e486b05...Jan-Simon Moeller22 months
marlin_13.0.3commit ce1e486b05...Jan-Simon Moeller22 months
12.1.5commit 68942b0d3c...Jan-Simon Moeller22 months
lamprey/12.1.5commit 68942b0d3c...Jan-Simon Moeller22 months
lamprey_12.1.5commit 68942b0d3c...Jan-Simon Moeller22 months
14.0.0commit 02eef14403...Jan-Simon Moeller22 months
needlefish/14.0.0commit 02eef14403...Jan-Simon Moeller22 months
needlefish_14.0.0commit 02eef14403...Jan-Simon Moeller22 months
13.93.0commit 015a9b684d...Jan-Simon Moeller22 months
needlefish/13.93.0commit 015a9b684d...Jan-Simon Moeller22 months
needlefish_13.93.0commit 015a9b684d...Jan-Simon Moeller22 months
13.92.0commit 1cf04e3f6e...Jan-Simon Moeller23 months
needlefish/13.92.0commit 1cf04e3f6e...Jan-Simon Moeller23 months
needlefish_13.92.0commit 1cf04e3f6e...Jan-Simon Moeller23 months
13.0.2commit 92fb641075...Jan-Simon Moeller23 months
marlin/13.0.2commit 92fb641075...Jan-Simon Moeller23 months
marlin_13.0.2commit 92fb641075...Jan-Simon Moeller23 months
13.91.0commit b5044156fc...Jan-Simon Moeller23 months
needlefish/13.91.0commit b5044156fc...Jan-Simon Moeller23 months
needlefish_13.91.0commit b5044156fc...Jan-Simon Moeller23 months
12.1.4commit dc4729dd4c...Jan-Simon Moeller24 months
lamprey/12.1.4commit dc4729dd4c...Jan-Simon Moeller24 months
lamprey_12.1.4commit dc4729dd4c...Jan-Simon Moeller24 months
13.0.1commit 3a11fd6479...Jan-Simon Moeller2 years
marlin/13.0.1commit 3a11fd6479...Jan-Simon Moeller2 years
marlin_13.0.1commit 3a11fd6479...Jan-Simon Moeller2 years
12.1.3commit be6f8e99b3...Jan-Simon Moeller2 years
lamprey/12.1.3commit be6f8e99b3...Jan-Simon Moeller2 years
lamprey_12.1.3commit be6f8e99b3...Jan-Simon Moeller2 years
12.1.2commit 825a674a08...Jan-Simon Moeller2 years
lamprey/12.1.2commit 825a674a08...Jan-Simon Moeller2 years
lamprey_12.1.2commit 825a674a08...Jan-Simon Moeller2 years
13.0.0commit 70ee918271...Jan-Simon Moeller2 years
marlin/13.0.0commit 70ee918271...Jan-Simon Moeller2 years
marlin_13.0.0commit 70ee918271...Jan-Simon Moeller2 years
12.93.0commit 381e2a9405...Jan-Simon Moeller2 years
marlin/12.93.0commit 381e2a9405...Jan-Simon Moeller2 years
marlin_12.93.0commit 381e2a9405...Jan-Simon Moeller2 years
12.1.1commit e1a973f86e...Jan-Simon Moeller2 years
lamprey/12.1.1commit e1a973f86e...Jan-Simon Moeller2 years
lamprey_12.1.1commit e1a973f86e...Jan-Simon Moeller2 years
12.92.0commit c31a7ac007...Jan-Simon Moeller2 years
marlin/12.92.0commit c31a7ac007...Jan-Simon Moeller2 years
marlin_12.92.0commit c31a7ac007...Jan-Simon Moeller2 years
12.91.0commit 8b273d4b3c...Jan-Simon Moeller2 years
marlin/12.91.0commit 8b273d4b3c...Jan-Simon Moeller2 years
marlin_12.91.0commit 8b273d4b3c...Jan-Simon Moeller2 years
11.0.5commit 38eb21d8a2...Jan-Simon Moeller2 years
koi/11.0.5commit 38eb21d8a2...Jan-Simon Moeller2 years
koi_11.0.5commit 38eb21d8a2...Jan-Simon Moeller2 years
12.1.0commit 663448671f...Jan-Simon Moeller3 years
lamprey/12.1.0commit 663448671f...Jan-Simon Moeller3 years
lamprey_12.1.0commit 663448671f...Jan-Simon Moeller3 years
12.90.1commit abc4742a71...Jan-Simon Möller3 years
marlin/12.90.1commit abc4742a71...Jan-Simon Möller3 years
marlin_12.90.1commit abc4742a71...Jan-Simon Möller3 years
12.0.1commit 1b6d5c8ecf...Jan-Simon Möller3 years
lamprey/12.0.1commit 1b6d5c8ecf...Jan-Simon Möller3 years
lamprey_12.0.1commit 1b6d5c8ecf...Jan-Simon Möller3 years
11.0.4commit b0896b1c70...Jan-Simon Möller3 years
koi/11.0.4commit b0896b1c70...Jan-Simon Möller3 years
koi_11.0.4commit b0896b1c70...Jan-Simon Möller3 years
11.0.3commit 6ae3e85c24...Jan-Simon Moeller3 years
koi/11.0.3commit 6ae3e85c24...Jan-Simon Moeller3 years
koi_11.0.3commit 6ae3e85c24...Jan-Simon Moeller3 years
11.93.0commit 9e95c7ed53...Jan-Simon Möller3 years
lamprey/11.93.0commit 9e95c7ed53...Jan-Simon Möller3 years
lamprey_11.93.0commit 9e95c7ed53...Jan-Simon Möller3 years
12.0.0commit d85019a3ec...Jan-Simon Möller3 years
lamprey/12.0.0commit d85019a3ec...Jan-Simon Möller3 years
lamprey_12.0.0commit d85019a3ec...Jan-Simon Möller3 years
12.90.0commit 552e691f4e...Jan-Simon Möller3 years
marlin/12.90.0commit 552e691f4e...Jan-Simon Möller3 years
marlin_12.90.0commit 552e691f4e...Jan-Simon Möller3 years
11.92.0commit 042f81bc91...Jan-Simon Moeller3 years
lamprey/11.92.0commit 042f81bc91...Jan-Simon Moeller3 years
lamprey_11.92.0commit 042f81bc91...Jan-Simon Moeller3 years
11.0.2commit 496a849e4d...Jan-Simon Moeller3 years
koi/11.0.2commit 496a849e4d...Jan-Simon Moeller3 years
koi_11.0.2commit 496a849e4d...Jan-Simon Moeller3 years
11.91.0commit 851c0a0968...Jan-Simon Möller3 years
lamprey/11.91.0commit 851c0a0968...Jan-Simon Möller3 years
lamprey_11.91.0commit 851c0a0968...Jan-Simon Möller3 years
10.0.3commit 384499f6ac...Jan-Simon Moeller3 years
jellyfish/10.0.3commit 384499f6ac...Jan-Simon Moeller3 years
jellyfish_10.0.3commit 384499f6ac...Jan-Simon Moeller3 years
11.0.1commit 795f0f7aef...Jan-Simon Möller3 years
koi/11.0.1commit 795f0f7aef...Jan-Simon Möller3 years
koi_11.0.1commit 795f0f7aef...Jan-Simon Möller3 years
10.0.2commit 85cc5622e6...Jan-Simon Möller3 years
jellyfish/10.0.2commit 85cc5622e6...Jan-Simon Möller3 years
jellyfish_10.0.2commit 85cc5622e6...Jan-Simon Möller3 years
11.0.0commit 4b755c4e17...Jan-Simon Möller3 years
koi/11.0.0commit 4b755c4e17...Jan-Simon Möller3 years
koi_11.0.0commit 4b755c4e17...Jan-Simon Möller3 years
10.93.1commit 2bab673a36...Jan-Simon Möller3 years
koi/10.93.1commit 2bab673a36...Jan-Simon Möller3 years
koi_10.93.1commit 2bab673a36...Jan-Simon Möller3 years
10.93.0commit 710583ec2e...Jan-Simon Möller3 years
koi/10.93.0commit 710583ec2e...Jan-Simon Möller3 years
koi_10.93.0commit 710583ec2e...Jan-Simon Möller3 years
10.92.0commit 7edeebda38...Jan-Simon Möller3 years
koi/10.92.0commit 7edeebda38...Jan-Simon Möller3 years
koi_10.92.0commit 7edeebda38...Jan-Simon Möller3 years
10.91.0commit d3f1db09e7...Jan-Simon Möller3 years
koi/10.91.0commit d3f1db09e7...Jan-Simon Möller3 years
koi_10.91.0commit d3f1db09e7...Jan-Simon Möller3 years
9.0.4commit e2abf967b9...Jan-Simon Möller4 years
icefish/9.0.4commit e2abf967b9...Jan-Simon Möller4 years
icefish_9.0.4commit e2abf967b9...Jan-Simon Möller4 years
10.0.1commit f092b22cc5...Jan-Simon Möller4 years
jellyfish/10.0.1commit f092b22cc5...Jan-Simon Möller4 years
jellyfish_10.0.1commit f092b22cc5...Jan-Simon Möller4 years
10.0.0commit 2bea3a629b...Jan-Simon Möller4 years
jellyfish/10.0.0commit 2bea3a629b...Jan-Simon Möller4 years
jellyfish_10.0.0commit 2bea3a629b...Jan-Simon Möller4 years
9.99.4commit 6920e60a3d...Jan-Simon Möller4 years
jellyfish/9.99.4commit 6920e60a3d...Jan-Simon Möller4 years
jellyfish_9.99.4commit 6920e60a3d...Jan-Simon Möller4 years
9.99.3commit 4e751e3b5a...Jan-Simon Möller4 years
jellyfish/9.99.3commit 4e751e3b5a...Jan-Simon Möller4 years
jellyfish_9.99.3commit 4e751e3b5a...Jan-Simon Möller4 years
9.0.3commit fdcaa09ee5...Jan-Simon Möller4 years
icefish/9.0.3commit fdcaa09ee5...Jan-Simon Möller4 years
icefish_9.0.3commit fdcaa09ee5...Jan-Simon Möller4 years
9.99.2commit 5e12e21bf0...Jan-Simon Moeller4 years
jellyfish/9.99.2commit 5e12e21bf0...Jan-Simon Moeller4 years
jellyfish_9.99.2commit 5e12e21bf0...Jan-Simon Moeller4 years
9.99.1commit 7a1e961b48...Jan-Simon Möller4 years
jellyfish/9.99.1commit 7a1e961b48...Jan-Simon Möller4 years
jellyfish_9.99.1commit 7a1e961b48...Jan-Simon Möller4 years
9.0.2commit a69184212e...Jan-Simon Möller4 years
icefish/9.0.2commit a69184212e...Jan-Simon Möller4 years
icefish_9.0.2commit a69184212e...Jan-Simon Möller4 years
9.0.1commit be63118538...Jan-Simon Möller4 years
icefish/9.0.1commit be63118538...Jan-Simon Möller4 years
icefish_9.0.1commit be63118538...Jan-Simon Möller4 years
8.0.6commit 052722a079...Jan-Simon Möller4 years
halibut/8.0.6commit 052722a079...Jan-Simon Möller4 years
halibut_8.0.6commit 052722a079...Jan-Simon Möller4 years
9.0.0commit 60308c26c7...Jan-Simon Möller4 years
icefish/9.0.0commit 60308c26c7...Jan-Simon Möller4 years
icefish_9.0.0commit 60308c26c7...Jan-Simon Möller4 years
8.99.5commit 908d7992e1...Jan-Simon Möller4 years
icefish/8.99.5commit 908d7992e1...Jan-Simon Möller4 years
icefish_8.99.5commit 908d7992e1...Jan-Simon Möller4 years
8.0.5commit 9319e53e82...Jan-Simon Möller4 years
halibut/8.0.5commit 9319e53e82...Jan-Simon Möller4 years
halibut_8.0.5commit 9319e53e82...Jan-Simon Möller4 years
8.99.4commit 40fbceab58...Jan-Simon Möller4 years
icefish/8.99.4commit 40fbceab58...Jan-Simon Möller4 years
icefish_8.99.4commit 40fbceab58...Jan-Simon Möller4 years
8.0.4commit ab4c19fb01...Jan-Simon Möller5 years
halibut/8.0.4commit ab4c19fb01...Jan-Simon Möller5 years
halibut_8.0.4commit ab4c19fb01...Jan-Simon Möller5 years
8.99.3commit d444569564...Jan-Simon Möller5 years
icefish/8.99.3commit d444569564...Jan-Simon Möller5 years
icefish_8.99.3commit d444569564...Jan-Simon Möller5 years
8.99.2commit dc3958ce86...Jan-Simon Möller5 years
icefish/8.99.2commit dc3958ce86...Jan-Simon Möller5 years
icefish_8.99.2commit dc3958ce86...Jan-Simon Möller5 years
8.99.1commit 66c26d2329...Jan-Simon Möller5 years
icefish/8.99.1commit 66c26d2329...Jan-Simon Möller5 years
icefish_8.99.1commit 66c26d2329...Jan-Simon Möller5 years
8.0.3commit e15a9df48b...Jan-Simon Möller5 years
halibut/8.0.3commit e15a9df48b...Jan-Simon Möller5 years
halibut_8.0.3commit e15a9df48b...Jan-Simon Möller5 years
8.0.2commit 8a7ddd4627...Jan-Simon Möller5 years
halibut/8.0.2commit 8a7ddd4627...Jan-Simon Möller5 years
halibut_8.0.2commit 8a7ddd4627...Jan-Simon Möller5 years
7.0.4commit 57824f4d8f...Jan-Simon Möller5 years
guppy/7.0.4commit 57824f4d8f...Jan-Simon Möller5 years
guppy_7.0.4commit 57824f4d8f...Jan-Simon Möller5 years
8.0.1commit b4099c5fd7...Jan-Simon Möller5 years
halibut/8.0.1commit b4099c5fd7...Jan-Simon Möller5 years
halibut_8.0.1commit b4099c5fd7...Jan-Simon Möller5 years
8.0.0commit 59f37556d1...Jan-Simon Möller5 years
halibut/8.0.0commit 59f37556d1...Jan-Simon Möller5 years
halibut_8.0.0commit 59f37556d1...Jan-Simon Möller5 years
7.99.3commit 42ab2045be...Jan-Simon Möller5 years
halibut/7.99.3commit 42ab2045be...Jan-Simon Möller5 years
halibut_7.99.3commit 42ab2045be...Jan-Simon Möller5 years
7.0.3commit 5855c1d849...Jan-Simon Möller5 years
guppy/7.0.3commit 5855c1d849...Jan-Simon Möller5 years
guppy_7.0.3commit 5855c1d849...Jan-Simon Möller5 years
7.99.2commit 0723ce7012...Jan-Simon Möller5 years
halibut/7.99.2commit 0723ce7012...Jan-Simon Möller5 years
halibut_7.99.2commit 0723ce7012...Jan-Simon Möller5 years
7.99.1commit a039cce097...Jan-Simon Möller5 years
halibut/7.99.1commit a039cce097...Jan-Simon Möller5 years
halibut_7.99.1commit a039cce097...Jan-Simon Möller5 years
7.0.2commit 6c60ed66a4...Jan-Simon Möller5 years
guppy/7.0.2commit 6c60ed66a4...Jan-Simon Möller5 years
guppy_7.0.2commit 6c60ed66a4...Jan-Simon Möller5 years
7.0.1commit 6a170f94b3...Jan-Simon Möller5 years
guppy/7.0.1commit 6a170f94b3...Jan-Simon Möller5 years
guppy_7.0.1commit 6a170f94b3...Jan-Simon Möller5 years
6.0.5commit bf364d8911...Jan-Simon Möller5 years
flounder/6.0.5commit bf364d8911...Jan-Simon Möller5 years
flounder_6.0.5commit bf364d8911...Jan-Simon Möller5 years
7.0.0commit 725d3c3177...Jan-Simon Möller5 years
guppy/7.0.0commit 725d3c3177...Jan-Simon Möller5 years
guppy_7.0.0commit 725d3c3177...Jan-Simon Möller5 years
7.90.0commit 8117996305...Jan-Simon Möller5 years
halibut/7.90.0commit 8117996305...Jan-Simon Möller5 years
halibut_7.90.0commit 8117996305...Jan-Simon Möller5 years
6.99.5commit 59abc08de3...Jan-Simon Möller5 years
guppy/6.99.5commit 59abc08de3...Jan-Simon Möller5 years
guppy_6.99.5commit 59abc08de3...Jan-Simon Möller5 years
6.0.4commit 4ea0b93b14...Jan-Simon Möller5 years
flounder/6.0.4commit 4ea0b93b14...Jan-Simon Möller5 years
flounder_6.0.4commit 4ea0b93b14...Jan-Simon Möller5 years
6.99.4commit f835ee311c...Jan-Simon Möller5 years
guppy/6.99.4commit f835ee311c...Jan-Simon Möller5 years
guppy_6.99.4commit f835ee311c...Jan-Simon Möller5 years
6.99.3commit cf71a3e8fd...Jan-Simon Möller5 years
guppy/6.99.3commit cf71a3e8fd...Jan-Simon Möller5 years
guppy_6.99.3commit cf71a3e8fd...Jan-Simon Möller5 years
6.0.3commit 0f1bcdcbe3...Jan-Simon Möller6 years
flounder/6.0.3commit 0f1bcdcbe3...Jan-Simon Möller6 years
flounder_6.0.3commit 0f1bcdcbe3...Jan-Simon Möller6 years
6.99.2commit c46d25ae06...Jan-Simon Möller6 years
guppy/6.99.2commit c46d25ae06...Jan-Simon Möller6 years
guppy_6.99.2commit c46d25ae06...Jan-Simon Möller6 years
6.99.1commit 7d027fc628...Jan-Simon Möller6 years
guppy/6.99.1commit 7d027fc628...Jan-Simon Möller6 years
guppy_6.99.1commit 7d027fc628...Jan-Simon Möller6 years
6.0.2commit f76872c5b8...Jan-Simon Möller6 years
flounder/6.0.2commit f76872c5b8...Jan-Simon Möller6 years
flounder_6.0.2commit f76872c5b8...Jan-Simon Möller6 years
6.0.1commit 7a6616c138...Jan-Simon Möller6 years
flounder/6.0.1commit 7a6616c138...Jan-Simon Möller6 years
flounder_6.0.1commit 7a6616c138...Jan-Simon Möller6 years
6.90.0commit 065eb6fcd2...Jan-Simon Möller6 years
guppy/6.90.0commit 065eb6fcd2...Jan-Simon Möller6 years
guppy_6.90.0commit 065eb6fcd2...Jan-Simon Möller6 years
6.0.0commit 0fde830e52...Jan-Simon Möller6 years
flounder/6.0.0commit 0fde830e52...Jan-Simon Möller6 years
flounder_6.0.0commit 0fde830e52...Jan-Simon Möller6 years
5.99.7commit a37385c65b...Jan-Simon Möller6 years
flounder/5.99.7commit a37385c65b...Jan-Simon Möller6 years
flounder_5.99.7commit a37385c65b...Jan-Simon Möller6 years
5.99.6commit 1ac6af91ec...Jan-Simon Möller6 years
flounder/5.99.6commit 1ac6af91ec...Jan-Simon Möller6 years
flounder_5.99.6commit 1ac6af91ec...Jan-Simon Möller6 years
5.99.5commit ea20324404...Jan-Simon Möller6 years
flounder/5.99.5commit ea20324404...Jan-Simon Möller6 years
flounder_5.99.5commit ea20324404...Jan-Simon Möller6 years
5.99.4commit 8ca211abd1...Jan-Simon Möller6 years
flounder/5.99.4commit 8ca211abd1...Jan-Simon Möller6 years
flounder_5.99.4commit 8ca211abd1...Jan-Simon Möller6 years
5.99.3commit 499444bfa9...Jan-Simon Möller6 years
flounder/5.99.3commit 499444bfa9...Jan-Simon Möller6 years
flounder_5.99.3commit 499444bfa9...Jan-Simon Möller6 years
5.99.2commit f126a1cb09...Jan-Simon Möller6 years
flounder/5.99.2commit f126a1cb09...Jan-Simon Möller6 years
flounder_5.99.2commit f126a1cb09...Jan-Simon Möller6 years
5.1.0commit e5cb9cdea2...Jan-Simon Möller6 years
eel/5.1.0commit e5cb9cdea2...Jan-Simon Möller6 years
eel_5.1.0commit e5cb9cdea2...Jan-Simon Möller6 years
5.99.1commit d12df8891a...Jan-Simon Möller6 years
flounder/5.99.1commit d12df8891a...Jan-Simon Möller6 years
flounder_5.99.1commit d12df8891a...Jan-Simon Möller6 years
5.0.3commit e1b558e1f0...Jan-Simon Möller6 years
eel/5.0.3commit e1b558e1f0...Jan-Simon Möller6 years
eel_5.0.3commit e1b558e1f0...Jan-Simon Möller6 years
5.0.2commit 14579523b8...Jan-Simon Möller6 years
eel/5.0.2commit 14579523b8...Jan-Simon Möller6 years
eel_5.0.2commit 14579523b8...Jan-Simon Möller6 years
4.0.3commit 1b2addabaa...Jan-Simon Möller6 years
dab/4.0.3commit 1b2addabaa...Jan-Simon Möller6 years
dab_4.0.3commit 1b2addabaa...Jan-Simon Möller6 years
5.0.1commit bd48aea823...Jan-Simon Möller6 years
eel/5.0.1commit bd48aea823...Jan-Simon Möller6 years
eel_5.0.1commit bd48aea823...Jan-Simon Möller6 years
5.0.0commit b3084b0edd...Jan-Simon Möller6 years
eel/5.0.0commit b3084b0edd...Jan-Simon Möller6 years
eel_5.0.0commit b3084b0edd...Jan-Simon Möller6 years
4.99.5commit 2a1c8e5e89...Jan-Simon Möller6 years
eel/4.99.5commit 2a1c8e5e89...Jan-Simon Möller6 years
eel_4.99.5commit 2a1c8e5e89...Jan-Simon Möller6 years
4.99.4commit 2c5e0e646a...Jan-Simon Möller7 years
eel/4.99.4commit 2c5e0e646a...Jan-Simon Möller7 years
eel_4.99.4commit 2c5e0e646a...Jan-Simon Möller7 years
4.99.3commit 9cdd1e7b56...Jan-Simon Möller7 years
eel/4.99.3commit 9cdd1e7b56...Jan-Simon Möller7 years
eel_4.99.3commit 9cdd1e7b56...Jan-Simon Möller7 years
4.99.2commit f0e87b1656...Jan-Simon Möller7 years
eel/4.99.2commit f0e87b1656...Jan-Simon Möller7 years
eel_4.99.2commit f0e87b1656...Jan-Simon Möller7 years
4.99.1commit 970a7f8e15...Jan-Simon Möller7 years
eel/4.99.1commit 970a7f8e15...Jan-Simon Möller7 years
eel_4.99.1commit 970a7f8e15...Jan-Simon Möller7 years
4.0.2commit a5f69d3d31...Jan-Simon Möller7 years
dab/4.0.2commit a5f69d3d31...Jan-Simon Möller7 years
dab_4.0.2commit a5f69d3d31...Jan-Simon Möller7 years
4.0.1commit 7b971469a8...Jan-Simon Möller7 years
dab/4.0.1commit 7b971469a8...Jan-Simon Möller7 years
dab_4.0.1commit 7b971469a8...Jan-Simon Möller7 years
3.0.5commit 29c296c3e1...Jan-Simon Möller7 years
chinook/3.0.5commit 29c296c3e1...Jan-Simon Möller7 years
chinook_3.0.5commit 29c296c3e1...Jan-Simon Möller7 years
4.0.0commit 84f2e448c6...Jan-Simon Möller7 years
dab/4.0.0commit 84f2e448c6...Jan-Simon Möller7 years
dab_4.0.0commit 84f2e448c6...Jan-Simon Möller7 years
3.99.3commit 4307ed5d28...Jan-Simon Möller7 years
dab/3.99.3commit 4307ed5d28...Jan-Simon Möller7 years
dab_3.99.3commit 4307ed5d28...Jan-Simon Möller7 years
3.99.2commit 0c484021ac...Jan-Simon Möller7 years
dab/3.99.2commit 0c484021ac...Jan-Simon Möller7 years
dab_3.99.2commit 0c484021ac...Jan-Simon Möller7 years
3.0.4commit 29c296c3e1...Jan-Simon Möller7 years
chinook/3.0.4commit 29c296c3e1...Jan-Simon Möller7 years
chinook_3.0.4commit 29c296c3e1...Jan-Simon Möller7 years
3.99.1commit 79fe06d7b1...Jan-Simon Möller7 years
dab/3.99.1commit 79fe06d7b1...Jan-Simon Möller7 years
dab_3.99.1commit 79fe06d7b1...Jan-Simon Möller7 years
3.0.3commit 900c064d04...Jan-Simon Möller7 years
chinook/3.0.3commit 900c064d04...Jan-Simon Möller7 years
chinook_3.0.3commit 900c064d04...Jan-Simon Möller7 years
3.0.2commit f12cf6c411...Jan-Simon Möller7 years
chinook/3.0.2commit f12cf6c411...Jan-Simon Möller7 years
chinook_3.0.2commit f12cf6c411...Jan-Simon Möller7 years
2.0.5commit 775d5687d4...Jan-Simon Möller7 years
blowfish_2.0.5commit 775d5687d4...Jan-Simon Möller7 years
3.0.1commit 301c9b3236...Jan-Simon Möller7 years
chinook/3.0.1commit 301c9b3236...Jan-Simon Möller7 years
chinook_3.0.1commit 301c9b3236...Jan-Simon Möller7 years
3.0.0commit fb57dd647f...Jan-Simon Möller7 years
chinook/3.0.0commit fb57dd647f...Jan-Simon Möller7 years
chinook_3.0.0commit fb57dd647f...Jan-Simon Möller7 years
2.0.4commit 775d5687d4...Jan-Simon Möller8 years
blowfish_2.0.4commit 775d5687d4...Jan-Simon Möller8 years
2.0.3commit fe44384501...Jan-Simon Möller8 years
blowfish_2.0.3commit fe44384501...Jan-Simon Möller8 years
2.0.2commit 2031b8aad4...Tadao Tanikawa8 years
blowflish_2.0.2commit 2031b8aad4...Tadao Tanikawa8 years
blowfish_2.0.1commit 744c7b1093...Jan-Simon Möller8 years
2.0.1commit 744c7b1093...Jan-Simon Möller8 years
2.0.0commit cc54151075...Jan-Simon Möller8 years
blowfish_2.0.0commit cc54151075...Jan-Simon Möller8 years
albacore_1.0commit b346f282b1...Jan-Simon Möller8 years
0.2015.33commit 752f9723fe...Paul Sherwood9 years
LWdldCgkYWxpZ24tdmFsdWVzLCAkb3JpZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgICBAZWFjaCAkb3JpZW50IGluICh0b3AsIGNlbnRlciwgYm90dG9tKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xyXG4gICAgICAgICAgLiN7JHNpemV9LWFsaWduLSN7JG9yaWVudH0ge1xyXG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBtYXAtZ2V0KCRhbGlnbi12YWx1ZXMsICRvcmllbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVmlzaWJpbGl0eVxyXG4gIC5oaWRlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4gIC5pbnZpc2libGUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cclxuXHJcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XHJcbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xyXG4gICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XHJcbiAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuXHJcbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xyXG4gICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XHJcbiAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuXHJcbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XHJcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xyXG4gICAgICAmI3skYmxvY2stc2VsZWN0b3J9IHsgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuXHJcbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XHJcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xyXG4gICAgICAmI3skYmxvY2stc2VsZWN0b3J9IHsgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlYWNoICRvcmllbnRhdGlvbiBpbiAocG9ydHJhaXQsIGxhbmRzY2FwZSkge1xyXG4gICAgLmhpZGUtZm9yLSN7JG9yaWVudGF0aW9ufSB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaG93LWZvci0jeyRvcmllbnRhdGlvbn0ge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgIFxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRvcmllbnRhdGlvbikge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgJiN7JGJsb2NrLXNlbGVjdG9yfSB7IGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgVGV4dCBhbGlnbm1lbnRcclxuICAqL1xyXG4gIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xyXG4gICAgLnRleHQtI3skYWxpZ259IHtcclxuICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xyXG4gICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcclxuICAgICAgICAuI3skc2l6ZX0tb25seS10ZXh0LSN7JGFsaWdufSB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgRmxvYXRpbmdcclxuICAqL1xyXG4gIC5jbGVhcmZpeCB7IEBpbmNsdWRlIGNsZWFyZml4OyB9XHJcblxyXG4gIEBlYWNoICRmbG9hdCBpbiAobGVmdCwgcmlnaHQsIG5vbmUpIHtcclxuICAgIC5mbG9hdC0jeyRmbG9hdH0ge1xyXG4gICAgICBmbG9hdDogI3skZmxvYXR9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBBcHBzXG4vL1xuLy8gTWl4aW5zXG4vLyAtLS0tLS1cbi8vIFRoZSBmcmFtZXdvcmsgY29tZXMgd2l0aCBhIG51bWJlciBvZiBtaXhpbnMgdGhhdCBoZWxwIHlvdSBlYXNpbHkgY3JlYXRlIGNvbW1vbiBzbWFsbCBjb21wb25lbnRzLFxuLy8gbGlrZSB0cmlhbmdsZXMgYW5kIG1lbnUgaWNvbnMuXG5cbi8vLyBDU1MgVHJpYW5nbGVcbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBwb3B1cCB0YWlscywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge2NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtrZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoJHRyaWFuZ2xlLXNpemUsICR0cmlhbmdsZS1jb2xvciwgJHRyaWFuZ2xlLWRpcmVjdGlvbikge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHRvcCkge1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBib3R0b20pIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLy8gSGFtYnVyZ2VyXG4vLy8gQ3JlYXRlcyBhIHRocmVlLWxpbmUgbWVudSBpY29uLCBhZmZlY3Rpb25hdGVseSByZWZlcnJlZCB0byBhcyB0aGUgXCJoYW1idXJnZXIgaWNvblwiLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBpY29uLCBpbiByZW0gdW5pdHMuXG4vLy8gQHBhcmFtIHtudW1iZXJ8Ym9vbGVhbn0gJGxlZnQgLSBMZWZ0IG9mZnNldCBvZiB0aGUgaWNvbi4gU2V0IHRvIGBmYWxzZWAgdG8gY2VudGVyIHRoZSBpY29uIGhvcml6b250YWxseS5cbi8vLyBAcGFyYW0ge251bWJlcnxib29sZWFufSAkdG9wIC0gVG9wIG9mZnNldCBvZiB0aGUgaWNvbi4gU2V0IHRvIGBmYWxzZWAgdG8gY2VudGVyIHRoZSBpY29uIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR0aGlja25lc3MgLSBIZWlnaHQgb2YgZWFjaCBsaW5lIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ2FwIC0gQW1vdW50IG9mIHNwYWNlIGJldHdlZW4gZWFjaCBsaW5lLlxuLy8vIEBwYXJhbSB7Y29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBsaW5lcy5cbi8vLyBAcGFyYW0ge2NvbG9yfSAkaG92ZXItY29sb3IgLSBDb2xvciBvZiB0aGUgbGluZXMgb24gaG92ZXIuXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0kd2lkdGgvMjtcbiAgICAgIH1cbiAgICAgIEBpZiAkbGVmdCB7XG4gICAgICAgIGxlZnQ6ICRsZWZ0O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiAoJHRhYmJhci1tZW51LWljb24td2lkdGggLSAkd2lkdGgpLzI7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLSR3aWR0aC8yO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMHB4IDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRjb2xvcjtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9XG4gIHNwYW46aG92ZXI6YWZ0ZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDBweCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8vIENsZWFyZml4XG4vLy8gVXNlcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy9cbi8vLyBAc2VlIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuQG1peGluIGNsZWFyZml4IHtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIgeyBjb250ZW50OiBcIiBcIjsgZGlzcGxheTogdGFibGU7IH1cbiAgJjphZnRlciB7IGNsZWFyOiBib3RoOyB9XG59XG5cbi8vLyBJbnZpc2libGUgRWxlbWVudFxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgYWNjZXNzaWJsZS5cbi8vL1xuLy8vIEBzZWUgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG5cbi8vLyBJbnZpc2libGUgRWxlbWVudCBPZmZcbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbiR0ZXh0LWlucHV0LXNlbGVjdG9yczogJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sIGlucHV0W3R5cGU9XCJkYXRlXCJdLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSwgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLCBpbnB1dFt0eXBlPVwid2Vla1wiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBpbnB1dFt0eXBlPVwidGVsXCJdLCBpbnB1dFt0eXBlPVwidGltZVwiXSwgaW5wdXRbdHlwZT1cInVybFwiXSwgaW5wdXRbdHlwZT1cImNvbG9yXCJdLCB0ZXh0YXJlYSc7XG4iLCIvKiBcbiAqIEZvdW5kYXRpb24gSWNvbnMgdiAzLjBcbiAqIE1hZGUgYnkgWlVSQiAyMDEzIGh0dHA6Ly96dXJiLmNvbS9wbGF5Z3JvdW5kL2ZvdW5kYXRpb24taWNvbi1mb250cy0zXG4gKiBNSVQgTGljZW5zZVxuICovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJmb3VuZGF0aW9uLWljb25zXCI7XG4gIHNyYzogdXJsKFwiL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1pY29ucy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG4uZmktYWRkcmVzcy1ib29rOmJlZm9yZSxcbi5maS1hbGVydDpiZWZvcmUsXG4uZmktYWxpZ24tY2VudGVyOmJlZm9yZSxcbi5maS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSxcbi5maS1hbGlnbi1sZWZ0OmJlZm9yZSxcbi5maS1hbGlnbi1yaWdodDpiZWZvcmUsXG4uZmktYW5jaG9yOmJlZm9yZSxcbi5maS1hbm5vdGF0ZTpiZWZvcmUsXG4uZmktYXJjaGl2ZTpiZWZvcmUsXG4uZmktYXJyb3ctZG93bjpiZWZvcmUsXG4uZmktYXJyb3ctbGVmdDpiZWZvcmUsXG4uZmktYXJyb3ctcmlnaHQ6YmVmb3JlLFxuLmZpLWFycm93LXVwOmJlZm9yZSxcbi5maS1hcnJvd3MtY29tcHJlc3M6YmVmb3JlLFxuLmZpLWFycm93cy1leHBhbmQ6YmVmb3JlLFxuLmZpLWFycm93cy1pbjpiZWZvcmUsXG4uZmktYXJyb3dzLW91dDpiZWZvcmUsXG4uZmktYXNsOmJlZm9yZSxcbi5maS1hc3RlcmlzazpiZWZvcmUsXG4uZmktYXQtc2lnbjpiZWZvcmUsXG4uZmktYmFja2dyb3VuZC1jb2xvcjpiZWZvcmUsXG4uZmktYmF0dGVyeS1lbXB0eTpiZWZvcmUsXG4uZmktYmF0dGVyeS1mdWxsOmJlZm9yZSxcbi5maS1iYXR0ZXJ5LWhhbGY6YmVmb3JlLFxuLmZpLWJpdGNvaW4tY2lyY2xlOmJlZm9yZSxcbi5maS1iaXRjb2luOmJlZm9yZSxcbi5maS1ibGluZDpiZWZvcmUsXG4uZmktYmx1ZXRvb3RoOmJlZm9yZSxcbi5maS1ib2xkOmJlZm9yZSxcbi5maS1ib29rLWJvb2ttYXJrOmJlZm9yZSxcbi5maS1ib29rOmJlZm9yZSxcbi5maS1ib29rbWFyazpiZWZvcmUsXG4uZmktYnJhaWxsZTpiZWZvcmUsXG4uZmktYnVyc3QtbmV3OmJlZm9yZSxcbi5maS1idXJzdC1zYWxlOmJlZm9yZSxcbi5maS1idXJzdDpiZWZvcmUsXG4uZmktY2FsZW5kYXI6YmVmb3JlLFxuLmZpLWNhbWVyYTpiZWZvcmUsXG4uZmktY2hlY2s6YmVmb3JlLFxuLmZpLWNoZWNrYm94OmJlZm9yZSxcbi5maS1jbGlwYm9hcmQtbm90ZXM6YmVmb3JlLFxuLmZpLWNsaXBib2FyZC1wZW5jaWw6YmVmb3JlLFxuLmZpLWNsaXBib2FyZDpiZWZvcmUsXG4uZmktY2xvY2s6YmVmb3JlLFxuLmZpLWNsb3NlZC1jYXB0aW9uOmJlZm9yZSxcbi5maS1jbG91ZDpiZWZvcmUsXG4uZmktY29tbWVudC1taW51czpiZWZvcmUsXG4uZmktY29tbWVudC1xdW90ZXM6YmVmb3JlLFxuLmZpLWNvbW1lbnQtdmlkZW86YmVmb3JlLFxuLmZpLWNvbW1lbnQ6YmVmb3JlLFxuLmZpLWNvbW1lbnRzOmJlZm9yZSxcbi5maS1jb21wYXNzOmJlZm9yZSxcbi5maS1jb250cmFzdDpiZWZvcmUsXG4uZmktY3JlZGl0LWNhcmQ6YmVmb3JlLFxuLmZpLWNyb3A6YmVmb3JlLFxuLmZpLWNyb3duOmJlZm9yZSxcbi5maS1jc3MzOmJlZm9yZSxcbi5maS1kYXRhYmFzZTpiZWZvcmUsXG4uZmktZGllLWZpdmU6YmVmb3JlLFxuLmZpLWRpZS1mb3VyOmJlZm9yZSxcbi5maS1kaWUtb25lOmJlZm9yZSxcbi5maS1kaWUtc2l4OmJlZm9yZSxcbi5maS1kaWUtdGhyZWU6YmVmb3JlLFxuLmZpLWRpZS10d286YmVmb3JlLFxuLmZpLWRpc2xpa2U6YmVmb3JlLFxuLmZpLWRvbGxhci1iaWxsOmJlZm9yZSxcbi5maS1kb2xsYXI6YmVmb3JlLFxuLmZpLWRvd25sb2FkOmJlZm9yZSxcbi5maS1lamVjdDpiZWZvcmUsXG4uZmktZWxldmF0b3I6YmVmb3JlLFxuLmZpLWV1cm86YmVmb3JlLFxuLmZpLWV5ZTpiZWZvcmUsXG4uZmktZmFzdC1mb3J3YXJkOmJlZm9yZSxcbi5maS1mZW1hbGUtc3ltYm9sOmJlZm9yZSxcbi5maS1mZW1hbGU6YmVmb3JlLFxuLmZpLWZpbHRlcjpiZWZvcmUsXG4uZmktZmlyc3QtYWlkOmJlZm9yZSxcbi5maS1mbGFnOmJlZm9yZSxcbi5maS1mb2xkZXItYWRkOmJlZm9yZSxcbi5maS1mb2xkZXItbG9jazpiZWZvcmUsXG4uZmktZm9sZGVyOmJlZm9yZSxcbi5maS1mb290OmJlZm9yZSxcbi5maS1mb3VuZGF0aW9uOmJlZm9yZSxcbi5maS1ncmFwaC1iYXI6YmVmb3JlLFxuLmZpLWdyYXBoLWhvcml6b250YWw6YmVmb3JlLFxuLmZpLWdyYXBoLXBpZTpiZWZvcmUsXG4uZmktZ3JhcGgtdHJlbmQ6YmVmb3JlLFxuLmZpLWd1aWRlLWRvZzpiZWZvcmUsXG4uZmktaGVhcmluZy1haWQ6YmVmb3JlLFxuLmZpLWhlYXJ0OmJlZm9yZSxcbi5maS1ob21lOmJlZm9yZSxcbi5maS1odG1sNTpiZWZvcmUsXG4uZmktaW5kZW50LWxlc3M6YmVmb3JlLFxuLmZpLWluZGVudC1tb3JlOmJlZm9yZSxcbi5maS1pbmZvOmJlZm9yZSxcbi5maS1pdGFsaWM6YmVmb3JlLFxuLmZpLWtleTpiZWZvcmUsXG4uZmktbGFwdG9wOmJlZm9yZSxcbi5maS1sYXlvdXQ6YmVmb3JlLFxuLmZpLWxpZ2h0YnVsYjpiZWZvcmUsXG4uZmktbGlrZTpiZWZvcmUsXG4uZmktbGluazpiZWZvcmUsXG4uZmktbGlzdC1idWxsZXQ6YmVmb3JlLFxuLmZpLWxpc3QtbnVtYmVyOmJlZm9yZSxcbi5maS1saXN0LXRodW1ibmFpbHM6YmVmb3JlLFxuLmZpLWxpc3Q6YmVmb3JlLFxuLmZpLWxvY2s6YmVmb3JlLFxuLmZpLWxvb3A6YmVmb3JlLFxuLmZpLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlLFxuLmZpLW1haWw6YmVmb3JlLFxuLmZpLW1hbGUtZmVtYWxlOmJlZm9yZSxcbi5maS1tYWxlLXN5bWJvbDpiZWZvcmUsXG4uZmktbWFsZTpiZWZvcmUsXG4uZmktbWFwOmJlZm9yZSxcbi5maS1tYXJrZXI6YmVmb3JlLFxuLmZpLW1lZ2FwaG9uZTpiZWZvcmUsXG4uZmktbWljcm9waG9uZTpiZWZvcmUsXG4uZmktbWludXMtY2lyY2xlOmJlZm9yZSxcbi5maS1taW51czpiZWZvcmUsXG4uZmktbW9iaWxlLXNpZ25hbDpiZWZvcmUsXG4uZmktbW9iaWxlOmJlZm9yZSxcbi5maS1tb25pdG9yOmJlZm9yZSxcbi5maS1tb3VudGFpbnM6YmVmb3JlLFxuLmZpLW11c2ljOmJlZm9yZSxcbi5maS1uZXh0OmJlZm9yZSxcbi5maS1uby1kb2dzOmJlZm9yZSxcbi5maS1uby1zbW9raW5nOmJlZm9yZSxcbi5maS1wYWdlLWFkZDpiZWZvcmUsXG4uZmktcGFnZS1jb3B5OmJlZm9yZSxcbi5maS1wYWdlLWNzdjpiZWZvcmUsXG4uZmktcGFnZS1kZWxldGU6YmVmb3JlLFxuLmZpLXBhZ2UtZG9jOmJlZm9yZSxcbi5maS1wYWdlLWVkaXQ6YmVmb3JlLFxuLmZpLXBhZ2UtZXhwb3J0LWNzdjpiZWZvcmUsXG4uZmktcGFnZS1leHBvcnQtZG9jOmJlZm9yZSxcbi5maS1wYWdlLWV4cG9ydC1wZGY6YmVmb3JlLFxuLmZpLXBhZ2UtZXhwb3J0OmJlZm9yZSxcbi5maS1wYWdlLWZpbGxlZDpiZWZvcmUsXG4uZmktcGFnZS1tdWx0aXBsZTpiZWZvcmUsXG4uZmktcGFnZS1wZGY6YmVmb3JlLFxuLmZpLXBhZ2UtcmVtb3ZlOmJlZm9yZSxcbi5maS1wYWdlLXNlYXJjaDpiZWZvcmUsXG4uZmktcGFnZTpiZWZvcmUsXG4uZmktcGFpbnQtYnVja2V0OmJlZm9yZSxcbi5maS1wYXBlcmNsaXA6YmVmb3JlLFxuLmZpLXBhdXNlOmJlZm9yZSxcbi5maS1wYXc6YmVmb3JlLFxuLmZpLXBheXBhbDpiZWZvcmUsXG4uZmktcGVuY2lsOmJlZm9yZSxcbi5maS1waG90bzpiZWZvcmUsXG4uZmktcGxheS1jaXJjbGU6YmVmb3JlLFxuLmZpLXBsYXktdmlkZW86YmVmb3JlLFxuLmZpLXBsYXk6YmVmb3JlLFxuLmZpLXBsdXM6YmVmb3JlLFxuLmZpLXBvdW5kOmJlZm9yZSxcbi5maS1wb3dlcjpiZWZvcmUsXG4uZmktcHJldmlvdXM6YmVmb3JlLFxuLmZpLXByaWNlLXRhZzpiZWZvcmUsXG4uZmktcHJpY2V0YWctbXVsdGlwbGU6YmVmb3JlLFxuLmZpLXByaW50OmJlZm9yZSxcbi5maS1wcm9oaWJpdGVkOmJlZm9yZSxcbi5maS1wcm9qZWN0aW9uLXNjcmVlbjpiZWZvcmUsXG4uZmktcHV6emxlOmJlZm9yZSxcbi5maS1xdW90ZTpiZWZvcmUsXG4uZmktcmVjb3JkOmJlZm9yZSxcbi5maS1yZWZyZXNoOmJlZm9yZSxcbi5maS1yZXN1bHRzLWRlbW9ncmFwaGljczpiZWZvcmUsXG4uZmktcmVzdWx0czpiZWZvcmUsXG4uZmktcmV3aW5kLXRlbjpiZWZvcmUsXG4uZmktcmV3aW5kOmJlZm9yZSxcbi5maS1yc3M6YmVmb3JlLFxuLmZpLXNhZmV0eS1jb25lOmJlZm9yZSxcbi5maS1zYXZlOmJlZm9yZSxcbi5maS1zaGFyZTpiZWZvcmUsXG4uZmktc2hlcmlmZi1iYWRnZTpiZWZvcmUsXG4uZmktc2hpZWxkOmJlZm9yZSxcbi5maS1zaG9wcGluZy1iYWc6YmVmb3JlLFxuLmZpLXNob3BwaW5nLWNhcnQ6YmVmb3JlLFxuLmZpLXNodWZmbGU6YmVmb3JlLFxuLmZpLXNrdWxsOmJlZm9yZSxcbi5maS1zb2NpYWwtNTAwcHg6YmVmb3JlLFxuLmZpLXNvY2lhbC1hZG9iZTpiZWZvcmUsXG4uZmktc29jaWFsLWFtYXpvbjpiZWZvcmUsXG4uZmktc29jaWFsLWFuZHJvaWQ6YmVmb3JlLFxuLmZpLXNvY2lhbC1hcHBsZTpiZWZvcmUsXG4uZmktc29jaWFsLWJlaGFuY2U6YmVmb3JlLFxuLmZpLXNvY2lhbC1iaW5nOmJlZm9yZSxcbi5maS1zb2NpYWwtYmxvZ2dlcjpiZWZvcmUsXG4uZmktc29jaWFsLWRlbGljaW91czpiZWZvcmUsXG4uZmktc29jaWFsLWRlc2lnbmVyLW5ld3M6YmVmb3JlLFxuLmZpLXNvY2lhbC1kZXZpYW50LWFydDpiZWZvcmUsXG4uZmktc29jaWFsLWRpZ2c6YmVmb3JlLFxuLmZpLXNvY2lhbC1kcmliYmJsZTpiZWZvcmUsXG4uZmktc29jaWFsLWRyaXZlOmJlZm9yZSxcbi5maS1zb2NpYWwtZHJvcGJveDpiZWZvcmUsXG4uZmktc29jaWFsLWV2ZXJub3RlOmJlZm9yZSxcbi5maS1zb2NpYWwtZmFjZWJvb2s6YmVmb3JlLFxuLmZpLXNvY2lhbC1mbGlja3I6YmVmb3JlLFxuLmZpLXNvY2lhbC1mb3Jyc3Q6YmVmb3JlLFxuLmZpLXNvY2lhbC1mb3Vyc3F1YXJlOmJlZm9yZSxcbi5maS1zb2NpYWwtZ2FtZS1jZW50ZXI6YmVmb3JlLFxuLmZpLXNvY2lhbC1naXRodWI6YmVmb3JlLFxuLmZpLXNvY2lhbC1nb29nbGUtcGx1czpiZWZvcmUsXG4uZmktc29jaWFsLWhhY2tlci1uZXdzOmJlZm9yZSxcbi5maS1zb2NpYWwtaGk1OmJlZm9yZSxcbi5maS1zb2NpYWwtaW5zdGFncmFtOmJlZm9yZSxcbi5maS1zb2NpYWwtam9vbWxhOmJlZm9yZSxcbi5maS1zb2NpYWwtbGFzdGZtOmJlZm9yZSxcbi5maS1zb2NpYWwtbGlua2VkaW46YmVmb3JlLFxuLmZpLXNvY2lhbC1tZWRpdW06YmVmb3JlLFxuLmZpLXNvY2lhbC1teXNwYWNlOmJlZm9yZSxcbi5maS1zb2NpYWwtb3JrdXQ6YmVmb3JlLFxuLmZpLXNvY2lhbC1wYXRoOmJlZm9yZSxcbi5maS1zb2NpYWwtcGljYXNhOmJlZm9yZSxcbi5maS1zb2NpYWwtcGludGVyZXN0OmJlZm9yZSxcbi5maS1zb2NpYWwtcmRpbzpiZWZvcmUsXG4uZmktc29jaWFsLXJlZGRpdDpiZWZvcmUsXG4uZmktc29jaWFsLXNraWxsc2hhcmU6YmVmb3JlLFxuLmZpLXNvY2lhbC1za3lwZTpiZWZvcmUsXG4uZmktc29jaWFsLXNtYXNoaW5nLW1hZzpiZWZvcmUsXG4uZmktc29jaWFsLXNuYXBjaGF0OmJlZm9yZSxcbi5maS1zb2NpYWwtc3BvdGlmeTpiZWZvcmUsXG4uZmktc29jaWFsLXNxdWlkb286YmVmb3JlLFxuLmZpLXNvY2lhbC1zdGFjay1vdmVyZmxvdzpiZWZvcmUsXG4uZmktc29jaWFsLXN0ZWFtOmJlZm9yZSxcbi5maS1zb2NpYWwtc3R1bWJsZXVwb246YmVmb3JlLFxuLmZpLXNvY2lhbC10cmVlaG91c2U6YmVmb3JlLFxuLmZpLXNvY2lhbC10dW1ibHI6YmVmb3JlLFxuLmZpLXNvY2lhbC10d2l0dGVyOmJlZm9yZSxcbi5maS1zb2NpYWwtdmltZW86YmVmb3JlLFxuLmZpLXNvY2lhbC13aW5kb3dzOmJlZm9yZSxcbi5maS1zb2NpYWwteGJveDpiZWZvcmUsXG4uZmktc29jaWFsLXlhaG9vOmJlZm9yZSxcbi5maS1zb2NpYWwteWVscDpiZWZvcmUsXG4uZmktc29jaWFsLXlvdXR1YmU6YmVmb3JlLFxuLmZpLXNvY2lhbC16ZXJwbHk6YmVmb3JlLFxuLmZpLXNvY2lhbC16dXJiOmJlZm9yZSxcbi5maS1zb3VuZDpiZWZvcmUsXG4uZmktc3RhcjpiZWZvcmUsXG4uZmktc3RvcDpiZWZvcmUsXG4uZmktc3RyaWtldGhyb3VnaDpiZWZvcmUsXG4uZmktc3Vic2NyaXB0OmJlZm9yZSxcbi5maS1zdXBlcnNjcmlwdDpiZWZvcmUsXG4uZmktdGFibGV0LWxhbmRzY2FwZTpiZWZvcmUsXG4uZmktdGFibGV0LXBvcnRyYWl0OmJlZm9yZSxcbi5maS10YXJnZXQtdHdvOmJlZm9yZSxcbi5maS10YXJnZXQ6YmVmb3JlLFxuLmZpLXRlbGVwaG9uZS1hY2Nlc3NpYmxlOmJlZm9yZSxcbi5maS10ZWxlcGhvbmU6YmVmb3JlLFxuLmZpLXRleHQtY29sb3I6YmVmb3JlLFxuLmZpLXRodW1ibmFpbHM6YmVmb3JlLFxuLmZpLXRpY2tldDpiZWZvcmUsXG4uZmktdG9yc28tYnVzaW5lc3M6YmVmb3JlLFxuLmZpLXRvcnNvLWZlbWFsZTpiZWZvcmUsXG4uZmktdG9yc286YmVmb3JlLFxuLmZpLXRvcnNvcy1hbGwtZmVtYWxlOmJlZm9yZSxcbi5maS10b3Jzb3MtYWxsOmJlZm9yZSxcbi5maS10b3Jzb3MtZmVtYWxlLW1hbGU6YmVmb3JlLFxuLmZpLXRvcnNvcy1tYWxlLWZlbWFsZTpiZWZvcmUsXG4uZmktdG9yc29zOmJlZm9yZSxcbi5maS10cmFzaDpiZWZvcmUsXG4uZmktdHJlZXM6YmVmb3JlLFxuLmZpLXRyb3BoeTpiZWZvcmUsXG4uZmktdW5kZXJsaW5lOmJlZm9yZSxcbi5maS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSxcbi5maS11bmxpbms6YmVmb3JlLFxuLmZpLXVubG9jazpiZWZvcmUsXG4uZmktdXBsb2FkLWNsb3VkOmJlZm9yZSxcbi5maS11cGxvYWQ6YmVmb3JlLFxuLmZpLXVzYjpiZWZvcmUsXG4uZmktdmlkZW86YmVmb3JlLFxuLmZpLXZvbHVtZS1ub25lOmJlZm9yZSxcbi5maS12b2x1bWUtc3RyaWtlOmJlZm9yZSxcbi5maS12b2x1bWU6YmVmb3JlLFxuLmZpLXdlYjpiZWZvcmUsXG4uZmktd2hlZWxjaGFpcjpiZWZvcmUsXG4uZmktd2lkZ2V0OmJlZm9yZSxcbi5maS13cmVuY2g6YmVmb3JlLFxuLmZpLXgtY2lyY2xlOmJlZm9yZSxcbi5maS14OmJlZm9yZSxcbi5maS15ZW46YmVmb3JlLFxuLmZpLXpvb20taW46YmVmb3JlLFxuLmZpLXpvb20tb3V0OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImZvdW5kYXRpb24taWNvbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi5maS1hZGRyZXNzLWJvb2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDBcIjsgfVxuLmZpLWFsZXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTAxXCI7IH1cbi5maS1hbGlnbi1jZW50ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDJcIjsgfVxuLmZpLWFsaWduLWp1c3RpZnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDNcIjsgfVxuLmZpLWFsaWduLWxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDRcIjsgfVxuLmZpLWFsaWduLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA1XCI7IH1cbi5maS1hbmNob3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDZcIjsgfVxuLmZpLWFubm90YXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA3XCI7IH1cbi5maS1hcmNoaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA4XCI7IH1cbi5maS1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA5XCI7IH1cbi5maS1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTBhXCI7IH1cbi5maS1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwYlwiOyB9XG4uZmktYXJyb3ctdXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMGNcIjsgfVxuLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwZFwiOyB9XG4uZmktYXJyb3dzLWV4cGFuZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwZVwiOyB9XG4uZmktYXJyb3dzLWluOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTBmXCI7IH1cbi5maS1hcnJvd3Mtb3V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEwXCI7IH1cbi5maS1hc2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTFcIjsgfVxuLmZpLWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEyXCI7IH1cbi5maS1hdC1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEzXCI7IH1cbi5maS1iYWNrZ3JvdW5kLWNvbG9yOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTE0XCI7IH1cbi5maS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTE1XCI7IH1cbi5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTZcIjsgfVxuLmZpLWJhdHRlcnktaGFsZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExN1wiOyB9XG4uZmktYml0Y29pbi1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMThcIjsgfVxuLmZpLWJpdGNvaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTlcIjsgfVxuLmZpLWJsaW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTFhXCI7IH1cbi5maS1ibHVldG9vdGg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWJcIjsgfVxuLmZpLWJvbGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWNcIjsgfVxuLmZpLWJvb2stYm9va21hcms6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWRcIjsgfVxuLmZpLWJvb2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWVcIjsgfVxuLmZpLWJvb2ttYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTFmXCI7IH1cbi5maS1icmFpbGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTIwXCI7IH1cbi5maS1idXJzdC1uZXc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjFcIjsgfVxuLmZpLWJ1cnN0LXNhbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjJcIjsgfVxuLmZpLWJ1cnN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTIzXCI7IH1cbi5maS1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNFwiOyB9XG4uZmktY2FtZXJhOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTI1XCI7IH1cbi5maS1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNlwiOyB9XG4uZmktY2hlY2tib3g6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjdcIjsgfVxuLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyOFwiOyB9XG4uZmktY2xpcGJvYXJkLXBlbmNpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyOVwiOyB9XG4uZmktY2xpcGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJhXCI7IH1cbi5maS1jbG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyYlwiOyB9XG4uZmktY2xvc2VkLWNhcHRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxMmNcIjsgfVxuLmZpLWNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJkXCI7IH1cbi5maS1jb21tZW50LW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJlXCI7IH1cbi5maS1jb21tZW50LXF1b3RlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyZlwiOyB9XG4uZmktY29tbWVudC12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzMFwiOyB9XG4uZmktY29tbWVudDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzMVwiOyB9XG4uZmktY29tbWVudHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzJcIjsgfVxuLmZpLWNvbXBhc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzNcIjsgfVxuLmZpLWNvbnRyYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM0XCI7IH1cbi5maS1jcmVkaXQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzNVwiOyB9XG4uZmktY3JvcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzNlwiOyB9XG4uZmktY3Jvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzdcIjsgfVxuLmZpLWNzczM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzhcIjsgfVxuLmZpLWRhdGFiYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM5XCI7IH1cbi5maS1kaWUtZml2ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzYVwiOyB9XG4uZmktZGllLWZvdXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2JcIjsgfVxuLmZpLWRpZS1vbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2NcIjsgfVxuLmZpLWRpZS1zaXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2RcIjsgfVxuLmZpLWRpZS10aHJlZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzZVwiOyB9XG4uZmktZGllLXR3bzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzZlwiOyB9XG4uZmktZGlzbGlrZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0MFwiOyB9XG4uZmktZG9sbGFyLWJpbGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDFcIjsgfVxuLmZpLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0MlwiOyB9XG4uZmktZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDNcIjsgfVxuLmZpLWVqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQ0XCI7IH1cbi5maS1lbGV2YXRvcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NVwiOyB9XG4uZmktZXVybzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NlwiOyB9XG4uZmktZXllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQ3XCI7IH1cbi5maS1mYXN0LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDhcIjsgfVxuLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDlcIjsgfVxuLmZpLWZlbWFsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0YVwiOyB9XG4uZmktZmlsdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRiXCI7IH1cbi5maS1maXJzdC1haWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGNcIjsgfVxuLmZpLWZsYWc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGRcIjsgfVxuLmZpLWZvbGRlci1hZGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGVcIjsgfVxuLmZpLWZvbGRlci1sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRmXCI7IH1cbi5maS1mb2xkZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTBcIjsgfVxuLmZpLWZvb3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTFcIjsgfVxuLmZpLWZvdW5kYXRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTJcIjsgfVxuLmZpLWdyYXBoLWJhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1M1wiOyB9XG4uZmktZ3JhcGgtaG9yaXpvbnRhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NFwiOyB9XG4uZmktZ3JhcGgtcGllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU1XCI7IH1cbi5maS1ncmFwaC10cmVuZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NlwiOyB9XG4uZmktZ3VpZGUtZG9nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU3XCI7IH1cbi5maS1oZWFyaW5nLWFpZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1OFwiOyB9XG4uZmktaGVhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTlcIjsgfVxuLmZpLWhvbWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWFcIjsgfVxuLmZpLWh0bWw1OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTViXCI7IH1cbi5maS1pbmRlbnQtbGVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1Y1wiOyB9XG4uZmktaW5kZW50LW1vcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWRcIjsgfVxuLmZpLWluZm86YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWVcIjsgfVxuLmZpLWl0YWxpYzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1ZlwiOyB9XG4uZmkta2V5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYwXCI7IH1cbi5maS1sYXB0b3A6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjFcIjsgfVxuLmZpLWxheW91dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2MlwiOyB9XG4uZmktbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYzXCI7IH1cbi5maS1saWtlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTY0XCI7IH1cbi5maS1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTY1XCI7IH1cbi5maS1saXN0LWJ1bGxldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2NlwiOyB9XG4uZmktbGlzdC1udW1iZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjdcIjsgfVxuLmZpLWxpc3QtdGh1bWJuYWlsczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2OFwiOyB9XG4uZmktbGlzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2OVwiOyB9XG4uZmktbG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2YVwiOyB9XG4uZmktbG9vcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2YlwiOyB9XG4uZmktbWFnbmlmeWluZy1nbGFzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2Y1wiOyB9XG4uZmktbWFpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2ZFwiOyB9XG4uZmktbWFsZS1mZW1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNmVcIjsgfVxuLmZpLW1hbGUtc3ltYm9sOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTZmXCI7IH1cbi5maS1tYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTcwXCI7IH1cbi5maS1tYXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzFcIjsgfVxuLmZpLW1hcmtlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3MlwiOyB9XG4uZmktbWVnYXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTczXCI7IH1cbi5maS1taWNyb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc0XCI7IH1cbi5maS1taW51cy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzVcIjsgfVxuLmZpLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc2XCI7IH1cbi5maS1tb2JpbGUtc2lnbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc3XCI7IH1cbi5maS1tb2JpbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzhcIjsgfVxuLmZpLW1vbml0b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzlcIjsgfVxuLmZpLW1vdW50YWluczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3YVwiOyB9XG4uZmktbXVzaWM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2JcIjsgfVxuLmZpLW5leHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2NcIjsgfVxuLmZpLW5vLWRvZ3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2RcIjsgfVxuLmZpLW5vLXNtb2tpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2VcIjsgfVxuLmZpLXBhZ2UtYWRkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTdmXCI7IH1cbi5maS1wYWdlLWNvcHk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODBcIjsgfVxuLmZpLXBhZ2UtY3N2OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTgxXCI7IH1cbi5maS1wYWdlLWRlbGV0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4MlwiOyB9XG4uZmktcGFnZS1kb2M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODNcIjsgfVxuLmZpLXBhZ2UtZWRpdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4NFwiOyB9XG4uZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg1XCI7IH1cbi5maS1wYWdlLWV4cG9ydC1kb2M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODZcIjsgfVxuLmZpLXBhZ2UtZXhwb3J0LXBkZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4N1wiOyB9XG4uZmktcGFnZS1leHBvcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODhcIjsgfVxuLmZpLXBhZ2UtZmlsbGVkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg5XCI7IH1cbi5maS1wYWdlLW11bHRpcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThhXCI7IH1cbi5maS1wYWdlLXBkZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4YlwiOyB9XG4uZmktcGFnZS1yZW1vdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGNcIjsgfVxuLmZpLXBhZ2Utc2VhcmNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThkXCI7IH1cbi5maS1wYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThlXCI7IH1cbi5maS1wYWludC1idWNrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGZcIjsgfVxuLmZpLXBhcGVyY2xpcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5MFwiOyB9XG4uZmktcGF1c2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTFcIjsgfVxuLmZpLXBhdzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5MlwiOyB9XG4uZmktcGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTkzXCI7IH1cbi5maS1wZW5jaWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTRcIjsgfVxuLmZpLXBob3RvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTk1XCI7IH1cbi5maS1wbGF5LWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5NlwiOyB9XG4uZmktcGxheS12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5N1wiOyB9XG4uZmktcGxheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OFwiOyB9XG4uZmktcGx1czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OVwiOyB9XG4uZmktcG91bmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWFcIjsgfVxuLmZpLXBvd2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTliXCI7IH1cbi5maS1wcmV2aW91czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5Y1wiOyB9XG4uZmktcHJpY2UtdGFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTlkXCI7IH1cbi5maS1wcmljZXRhZy1tdWx0aXBsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5ZVwiOyB9XG4uZmktcHJpbnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWZcIjsgfVxuLmZpLXByb2hpYml0ZWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTBcIjsgfVxuLmZpLXByb2plY3Rpb24tc2NyZWVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWExXCI7IH1cbi5maS1wdXp6bGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTJcIjsgfVxuLmZpLXF1b3RlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWEzXCI7IH1cbi5maS1yZWNvcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTRcIjsgfVxuLmZpLXJlZnJlc2g6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTVcIjsgfVxuLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE2XCI7IH1cbi5maS1yZXN1bHRzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE3XCI7IH1cbi5maS1yZXdpbmQtdGVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE4XCI7IH1cbi5maS1yZXdpbmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTlcIjsgfVxuLmZpLXJzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFhYVwiOyB9XG4uZmktc2FmZXR5LWNvbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWJcIjsgfVxuLmZpLXNhdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWNcIjsgfVxuLmZpLXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFkXCI7IH1cbi5maS1zaGVyaWZmLWJhZGdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFlXCI7IH1cbi5maS1zaGllbGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWZcIjsgfVxuLmZpLXNob3BwaW5nLWJhZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMFwiOyB9XG4uZmktc2hvcHBpbmctY2FydDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMVwiOyB9XG4uZmktc2h1ZmZsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMlwiOyB9XG4uZmktc2t1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYjNcIjsgfVxuLmZpLXNvY2lhbC01MDBweDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiNFwiOyB9XG4uZmktc29jaWFsLWFkb2JlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI1XCI7IH1cbi5maS1zb2NpYWwtYW1hem9uOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI2XCI7IH1cbi5maS1zb2NpYWwtYW5kcm9pZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiN1wiOyB9XG4uZmktc29jaWFsLWFwcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI4XCI7IH1cbi5maS1zb2NpYWwtYmVoYW5jZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiOVwiOyB9XG4uZmktc29jaWFsLWJpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYmFcIjsgfVxuLmZpLXNvY2lhbC1ibG9nZ2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJiXCI7IH1cbi5maS1zb2NpYWwtZGVsaWNpb3VzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJjXCI7IH1cbi5maS1zb2NpYWwtZGVzaWduZXItbmV3czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiZFwiOyB9XG4uZmktc29jaWFsLWRldmlhbnQtYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJlXCI7IH1cbi5maS1zb2NpYWwtZGlnZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiZlwiOyB9XG4uZmktc29jaWFsLWRyaWJiYmxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMwXCI7IH1cbi5maS1zb2NpYWwtZHJpdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzFcIjsgfVxuLmZpLXNvY2lhbC1kcm9wYm94OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMyXCI7IH1cbi5maS1zb2NpYWwtZXZlcm5vdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzNcIjsgfVxuLmZpLXNvY2lhbC1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNFwiOyB9XG4uZmktc29jaWFsLWZsaWNrcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNVwiOyB9XG4uZmktc29jaWFsLWZvcnJzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNlwiOyB9XG4uZmktc29jaWFsLWZvdXJzcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzdcIjsgfVxuLmZpLXNvY2lhbC1nYW1lLWNlbnRlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjOFwiOyB9XG4uZmktc29jaWFsLWdpdGh1YjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjOVwiOyB9XG4uZmktc29jaWFsLWdvb2dsZS1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWNhXCI7IH1cbi5maS1zb2NpYWwtaGFja2VyLW5ld3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2JcIjsgfVxuLmZpLXNvY2lhbC1oaTU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2NcIjsgfVxuLmZpLXNvY2lhbC1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2RcIjsgfVxuLmZpLXNvY2lhbC1qb29tbGE6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2VcIjsgfVxuLmZpLXNvY2lhbC1sYXN0Zm06YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2ZcIjsgfVxuLmZpLXNvY2lhbC1saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkMFwiOyB9XG4uZmktc29jaWFsLW1lZGl1bTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkMVwiOyB9XG4uZmktc29jaWFsLW15c3BhY2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDJcIjsgfVxuLmZpLXNvY2lhbC1vcmt1dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkM1wiOyB9XG4uZmktc29jaWFsLXBhdGg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDRcIjsgfVxuLmZpLXNvY2lhbC1waWNhc2E6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDVcIjsgfVxuLmZpLXNvY2lhbC1waW50ZXJlc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDZcIjsgfVxuLmZpLXNvY2lhbC1yZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ3XCI7IH1cbi5maS1zb2NpYWwtcmVkZGl0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ4XCI7IH1cbi5maS1zb2NpYWwtc2tpbGxzaGFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkOVwiOyB9XG4uZmktc29jaWFsLXNreXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRhXCI7IH1cbi5maS1zb2NpYWwtc21hc2hpbmctbWFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRiXCI7IH1cbi5maS1zb2NpYWwtc25hcGNoYXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZGNcIjsgfVxuLmZpLXNvY2lhbC1zcG90aWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRkXCI7IH1cbi5maS1zb2NpYWwtc3F1aWRvbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkZVwiOyB9XG4uZmktc29jaWFsLXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRmXCI7IH1cbi5maS1zb2NpYWwtc3RlYW06YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTBcIjsgfVxuLmZpLXNvY2lhbC1zdHVtYmxldXBvbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlMVwiOyB9XG4uZmktc29jaWFsLXRyZWVob3VzZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlMlwiOyB9XG4uZmktc29jaWFsLXR1bWJscjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlM1wiOyB9XG4uZmktc29jaWFsLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTRcIjsgfVxuLmZpLXNvY2lhbC12aW1lbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlNVwiOyB9XG4uZmktc29jaWFsLXdpbmRvd3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTZcIjsgfVxuLmZpLXNvY2lhbC14Ym94OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU3XCI7IH1cbi5maS1zb2NpYWwteWFob286YmVmb3JlIHsgY29udGVudDogXCJcXGYxZThcIjsgfVxuLmZpLXNvY2lhbC15ZWxwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU5XCI7IH1cbi5maS1zb2NpYWwteW91dHViZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYVwiOyB9XG4uZmktc29jaWFsLXplcnBseTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYlwiOyB9XG4uZmktc29jaWFsLXp1cmI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZWNcIjsgfVxuLmZpLXNvdW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVkXCI7IH1cbi5maS1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVlXCI7IH1cbi5maS1zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVmXCI7IH1cbi5maS1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYwXCI7IH1cbi5maS1zdWJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjFcIjsgfVxuLmZpLXN1cGVyc2NyaXB0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYyXCI7IH1cbi5maS10YWJsZXQtbGFuZHNjYXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYzXCI7IH1cbi5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjRcIjsgfVxuLmZpLXRhcmdldC10d286YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjVcIjsgfVxuLmZpLXRhcmdldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmNlwiOyB9XG4uZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjdcIjsgfVxuLmZpLXRlbGVwaG9uZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmOFwiOyB9XG4uZmktdGV4dC1jb2xvcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmOVwiOyB9XG4uZmktdGh1bWJuYWlsczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmYVwiOyB9XG4uZmktdGlja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZiXCI7IH1cbi5maS10b3Jzby1idXNpbmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmY1wiOyB9XG4uZmktdG9yc28tZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZkXCI7IH1cbi5maS10b3JzbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmZVwiOyB9XG4uZmktdG9yc29zLWFsbC1mZW1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZmZcIjsgfVxuLmZpLXRvcnNvcy1hbGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDBcIjsgfVxuLmZpLXRvcnNvcy1mZW1hbGUtbWFsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwMVwiOyB9XG4uZmktdG9yc29zLW1hbGUtZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjAyXCI7IH1cbi5maS10b3Jzb3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDNcIjsgfVxuLmZpLXRyYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA0XCI7IH1cbi5maS10cmVlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwNVwiOyB9XG4uZmktdHJvcGh5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA2XCI7IH1cbi5maS11bmRlcmxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDdcIjsgfVxuLmZpLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDhcIjsgfVxuLmZpLXVubGluazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwOVwiOyB9XG4uZmktdW5sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBhXCI7IH1cbi5maS11cGxvYWQtY2xvdWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGJcIjsgfVxuLmZpLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwY1wiOyB9XG4uZmktdXNiOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBkXCI7IH1cbi5maS12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwZVwiOyB9XG4uZmktdm9sdW1lLW5vbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGZcIjsgfVxuLmZpLXZvbHVtZS1zdHJpa2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTBcIjsgfVxuLmZpLXZvbHVtZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxMVwiOyB9XG4uZmktd2ViOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEyXCI7IH1cbi5maS13aGVlbGNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEzXCI7IH1cbi5maS13aWRnZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTRcIjsgfVxuLmZpLXdyZW5jaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxNVwiOyB9XG4uZmkteC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTZcIjsgfVxuLmZpLXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTdcIjsgfVxuLmZpLXllbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxOFwiOyB9XG4uZmktem9vbS1pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxOVwiOyB9XG4uZmktem9vbS1vdXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMWFcIjsgfVxuIiwiLypcclxuICBUSVRMRSBCQVJcclxuICAtLS0tLS0tLS1cclxuXHJcbiAgQSBuYXZpZ2F0aW9uYWwgY29tcG9uZW50IHdoaWNoIGNhbiBkaXNwbGF5IHRoZSBjdXJyZW50IHNjcmVlbiB0aGUgdXNlciBpcyBvbiwgYWxvbmcgd2l0aCBhZGRpdGlvbmFsIGNvbnRyb2xzIG9yIG1lbnUgaXRlbXMuXHJcblxyXG4gIFRoZSB0aXRsZSBiYXIgaW5jbHVkZXMgY2xhc3NlcyB0byBjcmVhdGUgY2VudGVyLCBsZWZ0LCBhbmQgcmlnaHQgc2VjdGlvbnMsIHdoaWNoIGNhbiBiZSB1c2VkIGluIGFueSBjb21iaW5hdGlvbi4gSG93ZXZlciwgaW4gdGhlIG1hcmt1cCwgdGhlIHNlY3Rpb25zIG11c3QgY29tZSBpbiB0aGlzIG9yZGVyOlxyXG4gICAtIENlbnRlclxyXG4gICAtIExlZnRcclxuICAgLSBSaWdodFxyXG4qL1xyXG5cclxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIFRpdGxlIEJhclxyXG4kdGl0bGViYXItY2VudGVyLXdpZHRoOiA1MCUgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1zaWRlLXdpZHRoOiAoMTAwJSAtICR0aXRsZWJhci1jZW50ZXItd2lkdGgpIC8gMiAhZGVmYXVsdDtcclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICNlZWUgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1jb2xvcjogIzAwMCAhZGVmYXVsdDtcclxuJHRpdGxlYmFyLWJvcmRlcjogMXB4IHNvbGlkICNjY2MgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1pdGVtLWNsYXNzZXM6IChcclxuICBjZW50ZXI6ICdjZW50ZXInLFxyXG4gIGxlZnQ6ICdsZWZ0JyxcclxuICByaWdodDogJ3JpZ2h0JyxcclxuICB0aXRsZTogJ3RpdGxlJyxcclxuKSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4ldGl0bGUtYmFyIHtcclxuICAkY2VudGVyOiBtYXAtZ2V0KCR0aXRsZWJhci1pdGVtLWNsYXNzZXMsIGNlbnRlcik7XHJcbiAgJGxlZnQ6IG1hcC1nZXQoJHRpdGxlYmFyLWl0ZW0tY2xhc3NlcywgbGVmdCk7XHJcbiAgJHJpZ2h0OiBtYXAtZ2V0KCR0aXRsZWJhci1pdGVtLWNsYXNzZXMsIHJpZ2h0KTtcclxuICAkdGl0bGU6IG1hcC1nZXQoJHRpdGxlYmFyLWl0ZW0tY2xhc3NlcywgdGl0bGUpO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cclxuICAvLyBEZW5vdGVzIHRoZSB0aXRsZSBvZiB0aGUgYmFyXHJcbiAgLiN7JHRpdGxlfSB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC8vIERlbm90ZXMgbGVmdCwgcmlnaHQsIGFuZCBjZW50ZXIgc2VjdGlvbnMgb2YgdGhlIGJhclxyXG4gIC4jeyRsZWZ0fSwgLiN7JGNlbnRlcn0sIC4jeyRyaWdodH0ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gICAgLy8gSWYgb25seSBvbmUgc2VjdGlvbiBpcyBpbiB1c2UsIHN0cmV0Y2ggaXQgYWxsIHRoZSB3YXkgb3V0XHJcbiAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBMZWZ0IGFsd2F5cyBjb21lcyBmaXJzdCwgdGhlbiBjZW50ZXIsIHRoZW4gcmlnaHRcclxuICAvLyBUaGUgbGVmdCBhbmQgcmlnaHQgc2VjdGlvbnMgaGF2ZSB0aGUgc2FtZSB3aWR0aFxyXG4gIC4jeyRsZWZ0fSB7XHJcbiAgICBvcmRlcjogMTtcclxuICAgIGZsZXg6IDAgMCAkdGl0bGViYXItc2lkZS13aWR0aDtcclxuICB9XHJcbiAgLiN7JGNlbnRlcn0ge1xyXG4gICAgb3JkZXI6IDI7XHJcbiAgICBmbGV4OiAwIDAgJHRpdGxlYmFyLWNlbnRlci13aWR0aDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbiAgLiN7JHJpZ2h0fSB7XHJcbiAgICBvcmRlcjogMztcclxuICAgIGZsZXg6IDAgMCAkdGl0bGViYXItc2lkZS13aWR0aDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgb25seSBsZWZ0IGFuZCByaWdodCBhcmUgaW4gdXNlLCBzdHJldGNoIHRoZW0gYm90aCBvdXQgZXF1YWxseVxyXG4gIC4jeyRsZWZ0fTpmaXJzdC1jaGlsZCB7XHJcbiAgICBmbGV4OiAxIDEgYXV0bztcclxuICB9XHJcbiAgLiN7JGxlZnR9OmZpcnN0LWNoaWxkICsgLiN7JHJpZ2h0fTpsYXN0LWNoaWxkIHtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgb25seSBjZW50ZXIgYW5kIHJpZ2h0IGFyZSBpbiB1c2UsIHNoaWZ0IHRoZSBjZW50ZXIgc2VjdGlvbiBpbnRvIHRoZSByaWdodCBwb3NpdGlvblxyXG4gIC4jeyRjZW50ZXJ9OmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgbWFyZ2luLWxlZnQ6ICR0aXRsZWJhci1zaWRlLXdpZHRoO1xyXG4gIH1cclxuICAvLyBJZiBvbmx5IGNlbnRlciBhbmQgbGVmdCBhcmUgaW4gdXNlLCBvdmVycmlkZSB0aGUgYWJvdmUgc3R5bGVcclxuICAuI3skY2VudGVyfSArIC4jeyRsZWZ0fSB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0oJHRpdGxlYmFyLXNpZGUtd2lkdGgpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRpdGxlLWJhci1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQsXHJcbiAgJGNvbG9yOiAkdGl0bGViYXItY29sb3IsXHJcbiAgJGJvcmRlcjogJHRpdGxlYmFyLWJvcmRlcixcclxuICAkcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmdcclxuKSB7XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xyXG59XHJcblxyXG5AbWl4aW4gdGl0bGUtYmFyKFxyXG4gICRiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZCxcclxuICAkY29sb3I6ICR0aXRsZWJhci1jb2xvcixcclxuICAkYm9yZGVyOiAkdGl0bGViYXItYm9yZGVyLFxyXG4gICRwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZ1xyXG4pIHtcclxuICBAZXh0ZW5kICV0aXRsZS1iYXI7XHJcbiAgQGluY2x1ZGUgdGl0bGUtYmFyLXN0eWxlKCRiYWNrZ3JvdW5kLCAkY29sb3IsICRib3JkZXIsICRwYWRkaW5nKTtcclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyh0aXRsZS1iYXIpIHtcclxuICAudGl0bGUtYmFyIHtcclxuICAgIEBpbmNsdWRlIHRpdGxlLWJhcjtcclxuXHJcbiAgICAmLnByaW1hcnkge1xyXG4gICAgICBAaW5jbHVkZSB0aXRsZS1iYXItc3R5bGUoJHByaW1hcnktY29sb3IsIGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvcikpO1xyXG4gICAgICBhLCBhOmhvdmVyIHsgY29sb3I6IGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvcik7IH1cclxuICAgICAgQGlmIHVzaW5nKGljb25pYykgeyAuaWNvbmljIHsgQGluY2x1ZGUgY29sb3ItaWNvbihpc2l0bGlnaHQoJHByaW1hcnktY29sb3IpKTsgfSB9XHJcbiAgICB9XHJcbiAgICAmLmRhcmsge1xyXG4gICAgICBAaW5jbHVkZSB0aXRsZS1iYXItc3R5bGUoJGRhcmstY29sb3IsICNmZmYpO1xyXG4gICAgICBhLCBhOmhvdmVyIHsgY29sb3I6ICNmZmY7IH1cclxuICAgICAgQGlmIHVzaW5nKGljb25pYykgeyAuaWNvbmljIHsgQGluY2x1ZGUgY29sb3ItaWNvbigjZmZmKTsgfSB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICAgLnRpdGxlLWJhci1ib3R0b20ge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICBib3JkZXItdG9wOiAkdGl0bGViYXItYm9yZGVyO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vIElDT05JQ1xyXG4vLyAtLS0tLS1cclxuLy9cclxuLy8gQSBzYW1wbGUgb2YgMjQgZmxleGlibGUsIGVhc2lseSBzY2hlbWFibGUgaWNvbnMgZnJvbSB0aGUgZm9sa3MgYXQgSWNvbmljLlxyXG4vLyBcclxuLy8gRmVhdHVyZXM6XHJcbi8vICAtIDI0IGljb25zXHJcbi8vICAtIEJ1aWx0LWluIGNvbG9yaW5nIGFuZCBzaXppbmcgY2xhc3Nlc1xyXG4vLyAgLSBDb2xvcmluZyBtaXhpblxyXG4vLyAgLSBBbmd1bGFyIHN1cHBvcnRcclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBJY29uaWNcclxuJGljb25pYy1wcmltYXJ5LWZpbGw6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbmljLXByaW1hcnktc3Ryb2tlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuJGljb25pYy1hY2NlbnQtZmlsbDogJGljb25pYy1wcmltYXJ5LWZpbGwgIWRlZmF1bHQ7XHJcbiRpY29uaWMtYWNjZW50LXN0cm9rZTogJGljb25pYy1hY2NlbnQtZmlsbCAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4vLyBDb2xvcnMgdGhlIGZpbGwsIGFuZCBvcHRpb25hbGx5IHN0cm9rZSwgYWNjZW50IGZpbGwsIGFuZCBhY2NlbnQgc3Ryb2tlIG9mIGFuIEljb25pYyBpY29uLlxyXG5AbWl4aW4gY29sb3ItaWNvbihcclxuICAkZmlsbCxcclxuICAkc3Ryb2tlOiBudWxsLFxyXG4gICRmaWxsQWNjZW50OiBudWxsLFxyXG4gICRzdHJva2VBY2NlbnQ6IG51bGxcclxuKSB7XHJcbiAgKiB7XHJcbiAgICBmaWxsOiAkZmlsbDtcclxuXHJcbiAgICAvLyBVc2UgdGhlIGZpbGwgY29sb3IgaWYgbm8gc3Ryb2tlIGlzIHByb3ZpZGVkXHJcbiAgICBAaWYgaGFzdmFsdWUoJHN0cm9rZSkge1xyXG4gICAgICBzdHJva2U6ICRzdHJva2U7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIHN0cm9rZTogJGZpbGw7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uaWMtcHJvcGVydHktYWNjZW50IHtcclxuICAgICAgLy8gVXNlIHRoZSBmaWxsIGNvbG9yIGlmIG5vIGFjY2VudCBpcyBwcm92aWRlZFxyXG4gICAgICBAaWYgaGFzdmFsdWUoJGZpbGxBY2NlbnQpIHtcclxuICAgICAgICBmaWxsOiAkZmlsbEFjY2VudDtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgZmlsbDogJGZpbGw7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFVzZSB0aGUgbm9ybWFsIHN0cm9rZSBjb2xvciBpZiBubyBhY2NlbnQgaXMgcHJvdmlkZWRcclxuICAgICAgQGlmIGhhc3ZhbHVlKCRzdHJva2VBY2NlbnQpIHtcclxuICAgICAgICBzdHJva2U6ICRzdHJva2VBY2NlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIC8vIC4uLm9yIHVzZSB0aGUgZmlsbCBpZiBubyBub3JtYWwgc3Ryb2tlIGlzIHByb3ZpZGVkXHJcbiAgICAgICAgQGlmIGhhc3ZhbHVlKCRzdHJva2UpIHtcclxuICAgICAgICAgIHN0cm9rZTogJHN0cm9rZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgc3Ryb2tlOiAkZmlsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoaWNvbmljKSB7XHJcbiAgLmljb25pYyB7XHJcbiAgICB3aWR0aDogMXJlbTtcclxuICAgIGhlaWdodDogMXJlbTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG4gICAgYSA+ICYge1xyXG4gICAgICBAaW5jbHVkZSBjb2xvci1pY29uKCRwcmltYXJ5LWNvbG9yKTtcclxuICAgICAgbWFyZ2luLXRvcDogLTJweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmljb25pYyAqIHtcclxuICAgIGZpbGw6ICRpY29uaWMtcHJpbWFyeS1maWxsO1xyXG4gICAgc3Ryb2tlOiAkaWNvbmljLXByaW1hcnktc3Ryb2tlO1xyXG5cclxuICAgICYuaWNvbmljLXByb3BlcnR5LWFjY2VudCB7XHJcbiAgICAgIGZpbGw6ICRpY29uaWMtYWNjZW50LWZpbGw7XHJcbiAgICAgIHN0cm9rZTogJGljb25pYy1hY2NlbnQtc3Ryb2tlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVhY2ggJGNvbG9yIGluIG1hcC1rZXlzKCRmb3VuZGF0aW9uLWNvbG9ycykge1xyXG4gICAgLmljb25pYy1jb2xvci0jeyRjb2xvcn0ge1xyXG4gICAgICBAaW5jbHVkZSBjb2xvci1pY29uKG1hcC1nZXQoJGZvdW5kYXRpb24tY29sb3JzLCAkY29sb3IpKTtcclxuICAgIH1cclxuICB9XHJcbiAgLmljb25pYy1jb2xvci1zZWNvbmRhcnkge1xyXG4gICAgQGluY2x1ZGUgY29sb3ItaWNvbigkc2Vjb25kYXJ5LWNvbG9yKTtcclxuICB9XHJcbn1cclxuIiwiLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIEJ1dHRvblxyXG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XHJcbiRidXR0b24tbWFyZ2luOiAwICRnbG9iYWwtcGFkZGluZyAkZ2xvYmFsLXBhZGRpbmcgMCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zdHlsZTogc29saWQgIWRlZmF1bHQ7XHJcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1jb2xvcjogYXV0byAhZGVmYXVsdDtcclxuJGJ1dHRvbi1yYWRpdXM6IDAgIWRlZmF1bHQ7XHJcbiRidXR0b24tc2l6ZXM6IChcclxuICB0aW55OiAwLjcsXHJcbiAgc21hbGw6IDAuOCxcclxuICBtZWRpdW06IDEsXHJcbiAgbGFyZ2U6IDEuMyxcclxuKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1mb250LXNpemU6IDAuOXJlbSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjUgIWRlZmF1bHQ7XHJcbiRidXR0b24tdGFnLXNlbGVjdG9yOiBmYWxzZSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4lYnV0dG9uIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgZWFzZS1vdXQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xyXG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XHJcbiAgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc2l6ZTtcclxuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcclxuXHJcbiAgLy8gRHJvcGRvd24gYXJyb3dcclxuICAvLyBUT0RPOiBDaGFuZ2UgdG8gY2xhc3MgYW5kIG1peGluIGJlY2F1c2Ugbm93IHRoZSB0b2dnbGUgaXMgJ2ZhLW9wZW4nIHdoaWNoIGlzIHRvbyBnZW5lcmljXHJcbiAgLy8gJltkYXRhLXBvcHVwLXRvZ2dsZV0ge1xyXG4gIC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIC8vICAgcGFkZGluZy1yaWdodDogMmVtOyAvLyBQbGFjZWhvbGRlclxyXG5cclxuICAvLyAgICY6OmFmdGVyIHtcclxuICAvLyAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgYmxhY2ssIHRvcCk7XHJcbiAgLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAvLyAgICAgcmlnaHQ6IDAuN2VtO1xyXG4gIC8vICAgICB0b3A6IDUwJTtcclxuICAvLyAgICAgbWFyZ2luLXRvcDogLTNweDtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tc2l6ZSgkc2l6ZTogbWVkaXVtLCAkZXhwYW5kOiBmYWxzZSkge1xyXG4gICRzaXplOiAkYnV0dG9uLWZvbnQtc2l6ZSAqIG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgJHNpemUpO1xyXG4gIGZvbnQtc2l6ZTogJHNpemU7XHJcblxyXG4gIEBpZiAkZXhwYW5kIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XHJcbiAgfVxyXG5cclxuICBAaWYgdXNpbmcoaWNvbmljKSB7XHJcbiAgICAuaWNvbmljIHtcclxuICAgICAgd2lkdGg6IDFlbTtcclxuICAgICAgaGVpZ2h0OiAxZW07XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNWVtO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMnB4OyAvLyBUaGUgaWNvbnMgYXJlIG9kZGx5IG1pc2FsaWduZWRcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcclxuICBAaWYgJGV4cGFuZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tc3R5bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcclxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxyXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcclxuICAkc3R5bGU6ICRidXR0b24tc3R5bGUsXHJcbiAgJHJhZGl1czogJGJ1dHRvbi1yYWRpdXMsXHJcbiAgJGJ0bmdyb3VwOiBmYWxzZVxyXG4pe1xyXG4gIEBpZiAkc3R5bGUgPT0gaG9sbG93IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogJGJhY2tncm91bmQ7XHJcblxyXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IDI1JSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IDI1JSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIFNvbGlkIGlzIHRoZSBkZWZhdWx0XHJcbiAgQGVsc2Uge1xyXG4gICAgQGlmICRjb2xvciA9PSBhdXRvIHtcclxuICAgICAgJGNvbG9yOiBpc2l0bGlnaHQoJGJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XHJcbiAgICAgIH1cclxuICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkYnRuZ3JvdXAge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICBib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMjUlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiB1c2luZyhpY29uaWMpIHtcclxuICAgIEBpZiAkc3R5bGUgPT0gaG9sbG93IHtcclxuICAgICAgLmljb25pYyB7XHJcbiAgICAgICAgQGluY2x1ZGUgY29sb3ItaWNvbigkYmFja2dyb3VuZCk7XHJcbiAgICAgIH1cclxuICAgICAgJjpob3ZlciAuaWNvbmljIHtcclxuICAgICAgICBAaW5jbHVkZSBjb2xvci1pY29uKHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAyNSUpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAuaWNvbmljIHtcclxuICAgICAgICBAaW5jbHVkZSBjb2xvci1pY29uKCRjb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoKSB7XHJcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuQG1peGluIGJ1dHRvbihcclxuICAkc2l6ZTogbWVkaXVtLFxyXG4gICRleHBhbmQ6IGZhbHNlLFxyXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXHJcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcclxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXHJcbiAgJHN0eWxlOiAkYnV0dG9uLXN0eWxlLFxyXG4gICRyYWRpdXM6ICRidXR0b24tcmFkaXVzXHJcbikge1xyXG4gIEBleHRlbmQgJWJ1dHRvbjtcclxuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkc2l6ZSk7XHJcbiAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZCgkZXhwYW5kKTtcclxuICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IsICRzdHlsZSk7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoYnV0dG9uKSB7XHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidXR0b247XHJcblxyXG4gICAgJi50aW55ICAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSh0aW55KTsgfVxyXG4gICAgJi5zbWFsbCAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZShzbWFsbCk7IH1cclxuICAgICYubGFyZ2UgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUobGFyZ2UpOyB9XHJcbiAgICAmLmV4cGFuZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cclxuXHJcbiAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yLCBhdXRvKSB9XHJcbiAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc3VjY2Vzcy1jb2xvciwgYXV0bykgfVxyXG4gICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHdhcm5pbmctY29sb3IsIGF1dG8pIH1cclxuICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRhbGVydC1jb2xvciwgYXV0bykgfVxyXG4gICAgJi5pbmZvICAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGluZm8tY29sb3IsIGF1dG8pIH1cclxuICAgICYuZGFyayAgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRkYXJrLWNvbG9yLCBhdXRvKSB9XHJcblxyXG4gICAgQGlmICRidXR0b24tc3R5bGUgIT0gaG9sbG93IHtcclxuICAgICAgJi5ob2xsb3cgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHN0eWxlOiBob2xsb3cpO1xyXG4gICAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRzZWNvbmRhcnktY29sb3IsICRzdHlsZTogaG9sbG93KTsgfVxyXG4gICAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRzdWNjZXNzLWNvbG9yLCAkc3R5bGU6IGhvbGxvdyk7IH1cclxuICAgICAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkd2FybmluZy1jb2xvciwgJHN0eWxlOiBob2xsb3cpOyB9XHJcbiAgICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGFsZXJ0LWNvbG9yLCAkc3R5bGU6IGhvbGxvdyk7IH1cclxuICAgICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkaW5mby1jb2xvciwgJHN0eWxlOiBob2xsb3cpOyB9XHJcbiAgICAgICAgJi5kYXJrICAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGRhcmstY29sb3IsICRzdHlsZTogaG9sbG93KTsgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5kaXNhYmxlZCB7IEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDsgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRidXR0b24tdGFnLXNlbGVjdG9yIHtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIEBleHRlbmQgLmJ1dHRvbjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgQXBwc1xuLy9cbi8vIEJSRUFLUE9JTlRTXG4vLyAtLS0tLS0tLS0tLVxuLy8gRm91bmRhdGlvbiBmb3IgQXBwcyBoYXMgdGhyZWUgY29yZSBicmVha3BvaW50czogc21hbGwgKD4gMCksIG1lZGl1bSAoPj0gNjQwKSwgYW5kIGxhcmdlICg+PSAxMDI0KS5cbi8vIFRoZXJlIGFyZSB0d28gYWRkaXRpb25hbCBicmVha3BvaW50cywgeGxhcmdlLCBhbmQgeHhsYXJnZSwgd2hpY2ggKGJ5IGRlZmF1bHQpIGRvIG5vdCBvdXRwdXQgYXMgc2l6aW5nIGNsYXNzZXMuXG4vLyBBY2Nlc3MgbmFtZWQgYnJlYWtwb2ludHMgdXNpbmcgdGhlIG1peGluIGJyZWFrcG9pbnQoJHNpemUpLCB3aGVyZSAkc2l6ZSBpcyBhIGJyZWFrcG9pbnQgdmFsdWUuXG4vLyBZb3UgY2FuIGFsc28gcGFzcyBhbiBlbSwgcmVtLCBvciBwaXhlbCB2YWx1ZSBpbnRvIHRoaXMgbWl4aW4gdG8gZ2VuZXJhdGUgYW4gZW0tYmFzZWQgbWVkaWEgcXVlcnkuXG4vLyBDcmVhdGUgbmV3IG5hbWVkIGJyZWFrcG9pbnRzIHVzaW5nIHRoZSAkYnJlYWtwb2ludHMgbWFwLiBDaGFuZ2Ugd2hpY2ggbmFtZWQgYnJlYWtwb2ludHMgZ2V0IHRoZWlyIG93biBjbGFzc2VzIGJ5IG1vZGlmeWluZyB0aGUgJGJyZWFrcG9pbnQtY2xhc3NlcyBtYXAuXG4vLyBOT1RFOiBJZiB5b3UgY2hhbmdlIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBrbm93IHRoYXQgYWxsIHZhbHVlcyBtdXN0IGJlIG9yZGVyZWQgYnkgd2lkdGgsIHNtYWxsZXN0IHdpZHRoIGZpcnN0LiBTbyAwIGlzIGFsd2F5cyB5b3VyIGZpcnN0IHZhbHVlLlxuXG4vLyAxLiBWYXJpYWJsZXNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gQnJlYWtwb2ludHNcbi8vIFRoZXNlIGFyZSBvdXIgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZW0gaW4gb3VyIGJyZWFrcG9pbnQgZnVuY3Rpb24gbGlrZSB0aGlzOiBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkgeyAvLyBNZWRpdW0gYW5kIGxhcmdlciBzdHlsZXMgfVxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiByZW0tY2FsYygwKSxcbiAgbWVkaXVtOiByZW0tY2FsYyg2NDApLFxuICBsYXJnZTogcmVtLWNhbGMoMTIwMCksXG4gIHhsYXJnZTogcmVtLWNhbGMoMTQ0MCksXG4gIHh4bGFyZ2U6IHJlbS1jYWxjKDE5MjApLFxuKSAhZGVmYXVsdDtcblxuLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBzbWFsbC0xMiwgbWVkaXVtLTYsIGFuZCBzbyBvbi5cbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuLy8vXG5cbi8vIDIuIE1peGluc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nICRyZW0tYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge21peGVkfSAkdmFsIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L2VtL3JlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsOiBzbWFsbCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnBNYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJ29ubHkgc2NyZWVuJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgICRzdHI6ICRzdHIgKyAnIGFuZCAob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgICAgICRuZXh0LWJwOiBtYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAgICAgQGlmICRuZXh0LWJwID09IG51bGwge1xuICAgICAgICAgICAgJGJwTWF4OiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAkYnBNYXg6ICRuZXh0LWJwIC0gKDEvMTYpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgICAkbmFtZWQ6IHRydWU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRicDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICAgIEBpZiB1bml0KCRicCkgPT0gJ3B4JyBvciB1bml0KCRicCkgPT0gJycge1xuICAgICAgJGJwOiByZW0tY2FsYygkYnApO1xuICAgIH1cbiAgICAvLyBGaW5hbGx5LCB0aGUgcmVtIHZhbHVlIGlzIHR1cm5lZCBpbnRvIGFuIGVtIHZhbHVlXG4gICAgJGJwOiBzdHJpcC11bml0KCRicCkgKiAxZW07XG5cbiAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIHRoZSBpbnB1dCBpcyBcIjAgdXBcIiBvciBcIjAgZG93blwiXG4gICAgQGlmICRicCA+IDAgb3IgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gQW5kIGxvLCBhIG1lZGlhIHF1ZXJ5IHdhcyBib3JuXG4gICAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICAgICAgICBAaWYgJGJwTWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kIChtYXgtd2lkdGg6ICN7JGJwTWF4fSknO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgQGRlYnVnICdFUlJPUjogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlLic7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJG1heDogJGJwIC0gKDEvMTYpO1xuICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3V0cHV0XG4gIEBpZiAkYnAgPT0gMGVtIGFuZCAkZGlyICE9ICdvbmx5JyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAjeyRzdHJ9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUHJlZml4ZXMgc2VsZWN0b3IgJGNsYXNzIHdpdGggYnJlYWtwb2ludCBrZXl3b3JkcywgYWxsb3dpbmcgeW91IHRvIGNyZWF0ZSBhIGJhdGNoIG9mIGJyZWFrcG9pbnQgY2xhc3NlcyB3aXRoIG9uZSBjaHVuayBvZiBjb2RlLiBJZiB5b3Ugd2FudCB0byBza2lwIGEgYnJlYWtwb2ludCAobGlrZSBzbWFsbCwgYmVjYXVzZSBtb2JpbGUgZmlyc3QgYW5kIGFsbCB0aGF0KSwgYWRkIHZhbHVlcyB0byB0aGUgJG9taXQgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRjbGFzcyAtIENsYXNzIHRvIHByZWZpeCB3aXRoIHRoZSBicmVha3BvaW50IG5hbWUgYW5kIGEgaHlwaGVuLlxuLy8vIEBwYXJhbSB7bGlzdH0gJG9taXQgLSBOYW1lZCBicmVha3BvaW50cyB0byBza2lwLiBObyBjbGFzcyB3aWxsIGJlIGFkZGVkIHdpdGggYnJlYWtwb2ludHMgaW4gdGhpcyBsaXN0LlxuQG1peGluIGVhY2gtYnJlYWtwb2ludCgkY2xhc3MsICRvbWl0OiAoKSkge1xuICAvLyBJdGVyYXRlIHRocm91Z2ggYnJlYWtwb2ludCBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIC8vIE9ubHkgZG8gc29tZXRoaW5nIGlmIHRoZSBicmVha3BvaW50IGlzIG5vdCBpbiAkb21pdFxuICAgIEBpZiBpbmRleCgkb21pdCwgJHNpemUpID09IG51bGwge1xuICAgICAgJHZhbDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgICAgIC8vIFByZWZpeCAkY2xhc3Mgd2l0aCAkc2l6ZSBhbmQgYSBoeXBoZW5cbiAgICAgIC4jeyRzaXplICsgJy0nICsgJGNsYXNzfSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAzLiBDU1MgT3V0cHV0XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyBNZXRhIHN0eWxlcyBhcmUgaW5jbHVkZWQgaW4gYWxsIGJ1aWxkcywgYXMgdGhleSBhcmUgYSBkZXBlbmRhbmN5IG9mIHRoZSBKYXZhc2NyaXB0LlxuLy8gVXNlZCB0byBwcm92aWRlIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmb3IgamF2YXNjcmlwdCBjb21wb25lbnRzLlxuLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxuXG5tZXRhLmZvdW5kYXRpb24tdmVyc2lvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIiN7JGZvdW5kYXRpb24tdmVyc2lvbn1cIjtcbn1cbm1ldGEuZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcIiN7bWFwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfVwiO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgQXBwcyBBTFBIQVxyXG4vLyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4kaW5jbHVkZS1jc3M6ICgpICFkZWZhdWx0O1xyXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XHJcbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBtb2R1bGUgaXMgaW4gdXNlLlxyXG5AZnVuY3Rpb24gdXNpbmcoJG5hbWUpIHtcclxuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcclxuICAkaW5jbHVkZS1jc3M6ICRpbmNsdWRlLWNzcyAhZ2xvYmFsO1xyXG4gICRtb2R1bGUta2V5OiBtYXAtZ2V0KCRpbmNsdWRlLWNzcywgJG5hbWUpO1xyXG5cclxuICBAaWYgJG1vZHVsZS1rZXkgPT0gdHJ1ZSBvciAkbW9kdWxlLWtleSA9PSBudWxsIHtcclxuICAgIEByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBDaGVja3MgaWYgYSBtb2R1bGUncyBDU1MgaGFzIGFscmVhZHkgYmVlbiBleHBvcnRlZC5cclxuQGZ1bmN0aW9uIGltcG9ydGVkKCRuYW1lKSB7XHJcbiAgLy8gSW1wb3J0IGZyb20gZ2xvYmFsIHNjb3BlXHJcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XHJcbiAgLy8gQ2hlY2sgaWYgdGhlIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBpbXBvcnRlZCBsaXN0XHJcbiAgQGlmIHR5cGUtb2YoaW5kZXgoJG1vZHVsZXMsICRuYW1lKSkgPT0gJ251bWJlcicge1xyXG4gICAgQHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIE91dHB1dHMgdGhlIGNodW5rIG9mIGNvbnRlbnQgcGFzc2VkIGlmIGNvbXBvbmVudCAkbmFtZSBoYXNuJ3QgeWV0IGJlZW4gb3V0cHV0LlxyXG4vLy8gVGhpcyBwcmV2ZW50cyBjb2RlIGR1cGxpY2F0aW9uIGJ5IGtlZXBpbmcgdHJhY2sgb2Ygd2hpY2ggY29tcG9uZW50cyBoYXZlIGFscmVhZHkgYmVlbiBvdXRwdXQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiBjb21wb25lbnQgdG8gb3V0cHV0XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBUaGUgY29udGVudCBwYXNzZWQsIGlmIHRoZSBjb21wb25lbnQgaGFzIG5vdCB5ZXQgYmVlbiBleHBvcnRlZC5cclxuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcclxuICAvLyBDaGVjayBpZiB0aGUgbW9kdWxlIGhhcyBhbHJlYWR5IGJlZW4gaW1wb3J0ZWRcclxuICBAaWYgbm90KGltcG9ydGVkKCRuYW1lKSkge1xyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIG1vZHVsZSBzaG91bGQgYmUgdXNlZFxyXG4gICAgQGlmIHVzaW5nKCRuYW1lKSB7XHJcbiAgICAgICRtb2R1bGVzOiBhcHBlbmQoJG1vZHVsZXMsICRuYW1lKSAhZ2xvYmFsO1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBNYXAgU2VyaWFsaXplXHJcbi8vLyBDb252ZXJ0cyBhIFNhc3MgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGVuY29kZSB0aGUgbWVkaWEgcXVlcmllcyBpbiB0aGUgYCRicmVha3BvaW50c2AgdmFyaWFibGUsIHNvIGl0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byBvdXIgSmF2YVNjcmlwdCBmb3IgdXNlIHRoZXJlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBBIHN0cmluZyB3aXRoIGEgbWFwIGNvbnZlcnRlZCB0byBhIHN0cmluZy5cclxuQGZ1bmN0aW9uIG1hcC1zZXJpYWxpemUoJG1hcCkge1xyXG4gICRzdHI6ICcnO1xyXG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcclxuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgJHZhbHVlICsgJyYnO1xyXG4gIH1cclxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xyXG5cclxuICBAcmV0dXJuICRzdHI7XHJcbn1cclxuXHJcbi8vLyBNYXAgTmV4dFxyXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHttYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXHJcbi8vLyBAcGFyYW0ge21peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxyXG4vLy9cclxuLy8vIEByZXR1cm4gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIG51bGwuXHJcbkBmdW5jdGlvbiBtYXAtbmV4dCgkbWFwLCAka2V5KSB7XHJcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXHJcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcclxuXHJcbiAgLy8gR2hldHRvIGZvciBsb29wXHJcbiAgJGk6IDE7XHJcbiAgJGZvdW5kOiBmYWxzZTtcclxuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcclxuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xyXG4gICAgICBAaWYgKCRrZXkgPT0gJHZhbCkge1xyXG4gICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAkaTogJGkgKyAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxyXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XHJcbiAgICBAcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSByZXR1cm4gdGhlIHZhbHVlXHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiBudGgoJHZhbHVlcywgJGkpO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIElzIEl0IExpZ2h0P1xyXG4vLy8gQ2hlY2tzIHRoZSBsaWdodG5lc3Mgb2YgJGNvbG9yLCBhbmQgaWYgaXQgcGFzc2VzIHRoZSAkdGhyZXNob2xkIG9mIGxpZ2h0bmVzcywgaXQgcmV0dXJucyB0aGUgYCR5ZXNgIGNvbG9yLiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGAkbm9gIGNvbG9yLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBvdXRwdXQgYSBmb3JlZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIGEgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge2NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbGlnaHRuZXNzIG9mLlxyXG4vLy8gQHBhcmFtIHtjb2xvcn0gJHllcyAtIENvbG9yIHRvIHJldHVybiBpZiAkY29sb3IgaXMgbGlnaHQuXHJcbi8vLyBAcGFyYW0ge2NvbG9yfSAkbm8gLSBDb2xvciB0byByZXR1cm4gaWYgJGNvbG9yIGlzIGRhcmsuXHJcbi8vLyBAcGFyYW0ge3BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBUaGUgJHllcyBjb2xvciBvciAkbm8gY29sb3IuXHJcbkBmdW5jdGlvbiBpc2l0bGlnaHQoJGNvbG9yLCAkeWVzOiAjMDAwLCAkbm86ICNmZmYsICR0aHJlc2hvbGQ6IDYwJSkge1xyXG4gIEBpZiAobGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkKSB7XHJcbiAgICBAcmV0dXJuICR5ZXM7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gJG5vO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNtYXJ0IFNjYWxlXHJcbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBsaWdodGVyIGlmIGl0J3MgbGlnaHQsIG9yIGRhcmtlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIFwiZmFkZVwiIGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge2NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cclxuLy8vIEBwYXJhbSB7cGVyY2VudGFnZX0gJHNjYWxlIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXHJcbi8vLyBAcGFyYW0ge3BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBBIHNjYWxlZCBjb2xvci5cclxuQGZ1bmN0aW9uIHNtYXJ0c2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA2MCUpIHtcclxuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcclxuICAgICRzY2FsZTogLSRzY2FsZTtcclxuICB9XHJcbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XHJcbn1cclxuXHJcbi8vLyBIYXMgVmFsdWVcclxuLy8vIFJldHVybnMgdHJ1ZSBpZiBhIHZhbHVlIGlzIG5vdCAwLCBudWxsLCBvciBub25lLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBjaGVjayBmb3IgdmFsdWVzIGxpa2UgYGJvcmRlcjogMGAgb3IgYGJveC1zaGFkb3c6IG5vbmVgLlxyXG4vLy9cclxuLy8vIEBwYXJhbSAkdmFsIC0gVmFsdWUgdG8gY2hlY2suXHJcbi8vL1xyXG4vLy8gQHJldHVybiBUcnVlIGlmIGAkdmFsYCBpcyBub3QgMCwgbnVsbCwgb3Igbm9uZS5cclxuQGZ1bmN0aW9uIGhhc3ZhbHVlKCR2YWwpIHtcclxuICBAaWYgJHZhbCA9PSBudWxsIG9yICR2YWwgPT0gbm9uZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkdmFsKSA9PSAwIHtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vIEdldCBTaWRlXHJcbi8vLyBEZXRlcm1pbmUgYSB0b3AvcmlnaHQvYm90dG9tL3JpZ2h0IHZhbHVlIG9uIGEgcGFkZGluZywgbWFyZ2luLCBldGMuIHByb3BlcnR5LCBubyBtYXR0ZXIgaG93IG1hbnkgdmFsdWVzIHdlcmUgcGFzc2VkIGluLiBVc2UgdGhpcyBmdW5jdGlvbiBpZiB5b3UgbmVlZCB0byBrbm93IHRoZSBzcGVjaWZpYyBzaWRlIG9mIGEgdmFsdWUsIGJ1dCBkb24ndCBrbm93IGlmIHRoZSB2YWx1ZSBpcyB1c2luZyBzaG9ydGhhbmQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtsaXN0fG51bWJlcn0gJHZhbCAtIFZhbHVlIHRvIGFuYWx5emUuIFNob3VsZCBiZSBhIHNob3J0aGFuZCBzaXppbmcgcHJvcGVydHksIGUuZy4gXCIxZW0gMmVtIDFlbVwiXHJcbi8vLyBAcGFyYW0ge2tleXdvcmR9ICRzaWRlIC0gU2lkZSB0byByZXR1cm4uIFNob3VsZCBiZSB0b3AsIHJpZ2h0LCBib3R0b20sIG9yIGxlZnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBBIHNpbmdsZSB2YWx1ZSBiYXNlZCBvbiBgJHZhbGAgYW5kIGAkc2lkZWAuXHJcbkBmdW5jdGlvbiBnZXQtc2lkZSgkdmFsLCAkc2lkZSkge1xyXG4gICRsZW5ndGg6IGxlbmd0aCgkdmFsKTtcclxuXHJcbiAgQGlmICRsZW5ndGggPT0gMSB7XHJcbiAgICBAcmV0dXJuICR2YWw7XHJcbiAgfVxyXG4gIEBpZiAkbGVuZ3RoID09IDIge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KChcclxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXHJcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDEpLFxyXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXHJcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXHJcbiAgICApLCAkc2lkZSk7XHJcbiAgfVxyXG4gIEBpZiAkbGVuZ3RoID09IDMge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KChcclxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXHJcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcclxuICAgICAgcmlnaHQ6IG50aCgkdmFsLCAyKSxcclxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXHJcbiAgICApLCAkc2lkZSk7XHJcbiAgfVxyXG4gIEBpZiAkbGVuZ3RoID09IDQge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KChcclxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXHJcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXHJcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDMpLFxyXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgNCksXHJcbiAgICApLCAkc2lkZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gR2V0IEJvcmRlciBWYWx1ZVxyXG4vLy8gR2l2ZW4gYm9yZGVyICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBib3JkZXIsIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgd2lkdGgsIHN0eWxlLCBhbmQgY29sb3IuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtsaXN0fSAkdmFsIC0gQm9yZGVyIHZhbHVlIHRvIGZpbmQgYSB2YWx1ZSBpbi5cclxuLy8vIEBwYXJhbSB7a2V5d29yZH0gJGVsZW0gLSBCb3JkZXIgY29tcG9uZW50IHRvIGV4dHJhY3QuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIElmIHRoZSB2YWx1ZSBleGlzdHMsIHJldHVybnMgdGhlIHZhbHVlLiBJZiB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBib3JkZXIgZGVmaW5pdGlvbiwgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgMHB4IHdpZHRoLCBzb2xpZCBzdHlsZSwgb3IgYmxhY2sgYm9yZGVyLlxyXG4gQGZ1bmN0aW9uIGdldC1ib3JkZXItdmFsdWUoJHZhbCwgJGVsZW0pIHtcclxuICAgLy8gRmluZCB0aGUgd2lkdGgsIHN0eWxlLCBvciBjb2xvciBhbmQgcmV0dXJuIGl0XHJcbiAgIEBlYWNoICR2IGluICR2YWwge1xyXG4gICAgICR0eXBlOiB0eXBlLW9mKCR2KTtcclxuICAgICBAaWYgJGVsZW0gPT0gd2lkdGggYW5kICR0eXBlID09ICdudW1iZXInIHtcclxuICAgICAgIEByZXR1cm4gJHY7XHJcbiAgICAgfVxyXG4gICAgIEBpZiAkZWxlbSA9PSBzdHlsZSBhbmQgJHR5cGUgPT0gJ3N0cmluZycge1xyXG4gICAgICAgQHJldHVybiAkdjtcclxuICAgICB9XHJcbiAgICAgQGlmICRlbGVtID09IGNvbG9yIGFuZCAkdHlwZSA9PSAnY29sb3InIHtcclxuICAgICAgIEByZXR1cm4gJHY7XHJcbiAgICAgfVxyXG4gICB9XHJcblxyXG4gICAvLyBEZWZhdWx0c1xyXG4gICAkZGVmYXVsdHM6IChcclxuICAgICB3aWR0aDogMCxcclxuICAgICBzdHlsZTogc29saWQsXHJcbiAgICAgY29sb3I6IGJsYWNrLFxyXG4gICApO1xyXG4gICBAcmV0dXJuIG1hcC1nZXQoJGRlZmF1bHRzLCAkZWxlbSk7XHJcbiB9XHJcblxyXG4vLy8gR2V0IFNoYWRvdyBWYWx1ZVxyXG4vLy8gR2l2ZW4gc2hhZG93IHZhbHVlICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBzaGFkb3csIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgeCwgeSwgc2l6ZSwgc3ByZWFkLCBjb2xvciwgYW5kIGluc2V0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bGlzdH0gJHZhbCAtIFNoYWRvdyB2YWx1ZSB0byBmaW5kIGEgdmFsdWUgaW4uXHJcbi8vLyBAcGFyYW0ge2tleXdvcmR9ICRlbGVtIC0gU2hhZG93IGNvbXBvbmVudCB0byBleHRyYWN0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4gSWYgdGhlIHZhbHVlIGV4aXN0cywgcmV0dXJucyB0aGUgdmFsdWUuIElmIHRoZSB2YWx1ZSBpcyBub3Qgc2V0LCByZXR1cm5zIGZhbHNlLiBJZiBgJGVsZW1gIGlzIFwiaW5zZXRcIiwgcmV0dXJucyB0cnVlLCBvdGhlcndpc2UgZmFsc2UuXHJcbkBmdW5jdGlvbiBnZXQtc2hhZG93LXZhbHVlKCR2YWwsICRlbGVtKSB7XHJcbiAgLy8gUmV0dXJuIFwibm9uZVwiIGlmIHRoZXJlJ3Mgbm8gc2hhZG93XHJcbiAgQGlmICR2YWwgPT0gbm9uZSB7XHJcbiAgICBAcmV0dXJuIG5vbmU7XHJcbiAgfVxyXG5cclxuICAvLyBJbnNldCBhbmQgY29sb3IgYXJlIGFsd2F5cyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmRcclxuICBAaWYgJGVsZW0gPT0gaW5zZXQge1xyXG4gICAgQHJldHVybiBudGgoJHZhbCwgMSkgPT0gaW5zZXQ7XHJcbiAgfVxyXG4gIEBpZiAkZWxlbSA9PSBjb2xvciB7XHJcbiAgICBAaWYgdHlwZS1vZihudGgoJHZhbCwgLTEpKSA9PSBjb2xvciB7XHJcbiAgICAgIEByZXR1cm4gbnRoKCR2YWwsIC0xKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHJldHVybiBibGFjaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFRoZSByZXN0IG9mIHRoZSB2YWx1ZXMgYXJlIGxvY2F0ZWQgcGVyaWxvdXNseSBpbiB0aGUgbWlkZGxlXHJcbiAgJHZhbHVlczogKCk7XHJcbiAgQGVhY2ggJHYgaW4gJHZhbCB7XHJcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicge1xyXG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHYpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAaWYgJGVsZW0gPT0geCB7XHJcbiAgICBAaWYgbGVuZ3RoKCR2YWx1ZXMpID49IDEge1xyXG4gICAgICBAcmV0dXJuIG50aCgkdmFsdWVzLCAxKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkZWxlbSA9PSB5IHtcclxuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPj0gMiB7XHJcbiAgICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsIDIpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRlbGVtID09IHNpemUge1xyXG4gICAgQGlmIGxlbmd0aCgkdmFsdWVzKSA+PSAzIHtcclxuICAgICAgQHJldHVybiBudGgoJHZhbHVlcywgMyk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJGVsZW0gPT0gc3ByZWFkIHtcclxuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPj0gNCB7XHJcbiAgICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsIDQpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU3RyaXAgVW5pdFxyXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxyXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XHJcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XHJcbn1cclxuXHJcbi8vLyBUdXJuIHRvIERlZ3JlZXNcclxuLy8vIENvbnZlcnRzIGEgdHVybiB1bml0IHRvIHRoZSBlcXVpdmFsZW50IHVuaXQgaW4gZGVncmVlcy4gMXR1cm4gaXMgZXF1YWwgdG8gMzYwIGRlZ3JlZXMuIE5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCB0dXJuLCBzbyB0aGlzIGZ1bmN0aW9uIGFsbG93cyB1cyB0byB1c2UgdHVybnMgd2hpbGUgb3V0cHV0dGluZyBhIHZhbHVlIHRoYXQgYWxsIGJyb3dzZXJzIHVuZGVyc3RhbmQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR2YWx1ZSAtIFR1cm4gdmFsdWUgdG8gY29udmVydC5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIFRoZSBzYW1lIHZhbHVlLCBidXQgaW4gZGVncmVlcy5cclxuQGZ1bmN0aW9uIHR1cm4tdG8tZGVnKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMzYwZGVnO1xyXG59XHJcblxyXG4vLy8gQ29udmVydCB0byBSZW1cclxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkcmVtLWJhc2VgIHZhcmlhYmxlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLlxyXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xyXG4gICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZS12YWx1ZSkgKiAxcmVtO1xyXG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMHJlbSBpbnRvIDBcclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuLy8vIFJlbSBDYWxjdWxhdG9yXHJcbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGEgbG90IGxpa2UgYGNvbnZlcnQtdG8tcmVtYCwgZXhjZXB0IGl0IGNhbiBjb252ZXJ0IG1vcmUgdGhhbiBvbmUgdmFsdWUgYXQgb25jZSwgd2hpY2ggaXMgdXNlZnVsIHdoZW4gc2V0dGluZyBtdWx0aXBsZSB2YWx1ZXMgb24gYSBgbWFyZ2luYCBvciBgcGFkZGluZ2AgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtudW1iZXJ8bGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxyXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6IG51bGwpIHtcclxuICBAaWYgJGJhc2UtdmFsdWUgPT0gbnVsbCB7XHJcbiAgICAkYmFzZS12YWx1ZTogJHJlbS1iYXNlO1xyXG4gIH1cclxuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XHJcblxyXG4gIEBpZiAkbWF4ID09IDEgeyBAcmV0dXJuIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAxKSwgJGJhc2UtdmFsdWUpOyB9XHJcblxyXG4gICRyZW1WYWx1ZXM6ICgpO1xyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XHJcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcclxuICB9XHJcbiAgQHJldHVybiAkcmVtVmFsdWVzO1xyXG59XHJcbiIsbnVsbCwiLypcclxuICBDYXJkc1xyXG5cclxuICBTdHJ1Y3R1cmU6XHJcblxyXG4gIHRpdGxlc1xyXG4gIGxpc3RzXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gQ2FyZFxyXG4kY2FyZC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xyXG4kY2FyZC1jb2xvcjogaXNpdGxpZ2h0KCRjYXJkLWJhY2tncm91bmQpICFkZWZhdWx0O1xyXG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCBzbWFydHNjYWxlKCRjYXJkLWJhY2tncm91bmQsIDclKSAhZGVmYXVsdDtcclxuJGNhcmQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuJGNhcmQtc2hhZG93OiAwIDFweCAycHggcmdiYSgjMDAwLCAwLjIpICFkZWZhdWx0O1xyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbiRjYXJkLW1hcmdpbjogMC41cmVtICFkZWZhdWx0O1xyXG5cclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiBzbWFydHNjYWxlKCRjYXJkLWJhY2tncm91bmQsIDclKSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG5AbWl4aW4gY2FyZC1jb250YWluZXIoXHJcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXHJcbiAgJGNvbG9yOiAkY2FyZC1jb2xvcixcclxuICAkYm9yZGVyOiAkY2FyZC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJGNhcmQtcmFkaXVzLFxyXG4gICRzaGFkb3c6ICRjYXJkLXNoYWRvdyxcclxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZyxcclxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW5cclxuKSB7XHJcbiAgYm9yZGVyOiAkYm9yZGVyO1xyXG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gY2FyZC1kaXZpZGVyKFxyXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXHJcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcclxuKSB7XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBtaXhpbiBjYXJkLXNlY3Rpb24oXHJcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcclxuKSB7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoY2FyZCkge1xyXG4gIC5jYXJkIHtcclxuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xyXG5cclxuICAgIEBlYWNoICRjb2xvciBpbiBtYXAta2V5cygkZm91bmRhdGlvbi1jb2xvcnMpIHtcclxuICAgICAgJi4jeyRjb2xvcn0ge1xyXG4gICAgICAgICRjb2xvci12YWx1ZTogbWFwLWdldCgkZm91bmRhdGlvbi1jb2xvcnMsICRjb2xvcik7XHJcbiAgICAgICAgQGluY2x1ZGUgY2FyZC1jb250YWluZXIoXHJcbiAgICAgICAgICAkYmFja2dyb3VuZDogJGNvbG9yLXZhbHVlLFxyXG4gICAgICAgICAgJGNvbG9yOiBpc2l0bGlnaHQoJGNvbG9yLXZhbHVlKSxcclxuICAgICAgICAgICRib3JkZXI6IDBcclxuICAgICAgICApO1xyXG4gICAgICAgIC5jYXJkLWRpdmlkZXIge1xyXG4gICAgICAgICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyKFxyXG4gICAgICAgICAgICAkYmFja2dyb3VuZDogc21hcnRzY2FsZSgkY29sb3ItdmFsdWUsIDclKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgICAuY2FyZC1kaXZpZGVyIHtcclxuICAgICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyO1xyXG4gICAgfVxyXG4gICAgLmNhcmQtc2VjdGlvbiB7XHJcbiAgICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcclxuICAgIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gaW1hZ2UtdHJpYW5nbGUoJGNvbG9yOiAjMDAwKSB7XG4gICRjb2xvcjogcmdiKHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcikpO1xuICBAcmV0dXJuICdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAzMiAyNFwiPjxwb2x5Z29uIHBvaW50cz1cIjAsMCAzMiwwIDE2LDI0XCIgc3R5bGU9XCJmaWxsOiAjeyRjb2xvcn1cIj48L3BvbHlnb24+PC9zdmc+Jztcbn1cblxuQG1peGluIGltYWdlLWNoZWNrbWFyaygkY29sb3I6ICMwMDApIHtcbiAgJGNvbG9yOiByZ2IocmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj48cGF0aCBmaWxsPVwiI3skY29sb3J9XCIgZD1cIk0xNiAwYy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2czcuMTYzIDE2IDE2IDE2IDE2LTcuMTYzIDE2LTE2LTcuMTYzLTE2LTE2LTE2em02LjkwNiA4Ljg3NWwyLjIxOSAyLjAzMS0xMi4wNjMgMTMuMjgxLTYuMTg4LTYuMTg4IDIuMTI1LTIuMTI1IDMuOTM4IDMuOTM4IDkuOTY5LTEwLjkzOHpcIi8+PC9zdmc+Jyk7XG5cbiAgLy8gSUUxMCBmYWxsYmFjaywgc2luY2UgaXQgZG9lc24ndCBzdXBwb3J0IFNWRyBkYXRhIFVSTHNcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFnQ0FZQUFBQnplbnIwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFkbEpSRUZVZU5yTWwwRnVnekFRUlkzVFJaZW9GeWhWTDBCT2tHVFhKZXphSFp3Z3VVbkVDYUNyZEZkNmdxUW5DTjExVXlrNVFla05PbE9OSldNVkdNQ2dmR2xrRUlZM0huc0cyeEZNM2Q5NlBqUUIyQUpzV2RQdEFQWU9sbitkVHdYbnV3NERIRUd6QnZORk42RURDVGlTOVhJQXdCNDBhY05vdWNLb3hPRElpZTBBd0FPQ3U4S09TbklpTngvTWFrSytBN3NXOW9UZmVyeHgzZlAzVDFuVVJvQkcvaXJHVmFoSHdqSG0vR2d4N0UzVE1WZHJRbW9QMGduZ2doaHBaUTNRdkcvRWRQTFVlbEFSV0k4QXljanE5TWQwcU1JZGJjTmhqbU9LTG9ZN3F1azNsMVJlYmVxZzRBd0ZrbXE3TFdHT2gxcG1OWTBldFpBV1NxME9YOEhvUzRKdld1Q29wYlNZMjZFR1IvQ1c4NkswQkYrcHdrTHdsUHV5SEpoT0NsNW9lNFp0Risrdk9xU1QrR2RPWXdPKzcxcE4yVk5Bam1RR1BDZTQyd2V1SERnMFBJOG9sVXduWXJYVEdRSkg5Z3hxOGwxTEt2clF4NE82L1lZMzJLcC91Z2IzZXk3Z1o0eEF6dWhZaVlUeEIvVUhaRkF1YVJFVlhaMmc2eUZsdkVDMnlvS0VtYnNSWllOZ1ZMazJKZWFPYUcreExITitXQ3N6RFdNcUxHT3JKRmExRGxBcGpTZHdvSEpHcUd6TEliMCtjYXMwd2g1Qmg3ODBuZ3N3eDhHSkQ3aDhzSGcyd0xBL21mRExQWnBkeE9GMHF1UDVyd0FEQUFGSXpTUnZ1MW01QUFBQUFFbEZUa1N1UW1DQycpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBZ0NBWUFBQUJ6ZW5yMEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBVDlKUkVGVWVOck1WNHNSZ3lBTURVN2dDSTZBRTdRak1JTGRvQ080Q2QyZzNhQjJBaDJoRzdRYjBPRFJPMnI5OEFucXU4dHhLdklTSUkvQXdCRktLWTZOUUR1Z0hTZTZOV2dQdEJ0anJBTUtJSEdGMWlwLzZIK3FHT0lDN2E3aW9jY29mTWtGMmt2UlFZOGxmS1k4RlNxWHlGUGpaeWFZdmViWXRHZzVwTVVicmNRc2VlcUh6UG9nVnlBSHd5SFhYUGZaL2NDTUEzcnFPWEdrRjlOT2Jid09sNkhzRlM1QmROS2FYVG5UajJkR1hpblJZR1FueDc0Q2lOVE9sdC9jTWZwZUpTRWgrZG5sSnlDVTJpSWtxNENJbkllbXRJc0RjbVl0aCtUYzl4Q0R5SFFTTWVSZURvdzRVVm52ODlEajJ5VU54NXdZa3JlQis2ZFB3OXBIMlFiT3hKQnIxRDVTTEVjY3VFWm1FUDhPMVBvNjRhQnlpOElWZWh4TEF2TC84b3o0VEZqZWZIc3B5VFl2U3ZkVmx1L2lZcktMcTltYWwxTzI5Zlg4SThBQU5wSVF6QzBoVGRFQUFBQUFTVVZPUks1Q1lJST0nKTtcbiAgICB9XG4gIH1cbn0iLCIvKlxyXG4gIFBPUFVQXHJcbiAgLS0tLS1cclxuXHJcbiAgQSBmbG9hdGluZyBjb250YWluZXIgdGhhdCBjYW4gYW5jaG9yIHRvIGFueSBvdGhlciBvbi1zY3JlZW4gZWxlbWVudCwgYW5kIGNvbnRhaW4gYW55IGNvbnRlbnQsIGluY2x1ZGluZyBncmlkIGJsb2NrcyBvciBwYW5lbHMuXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gUG9wdXBcclxuJHBvcHVwLXdpZHRoOiByZW0tY2FsYygzMDApICFkZWZhdWx0O1xyXG4kcG9wdXAtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcclxuJHBvcHVwLWJvcmRlcjogMCAhZGVmYXVsdDtcclxuJHBvcHVwLXJhZGl1czogMCAhZGVmYXVsdDtcclxuJHBvcHVwLXNoYWRvdzogMCAwIDEwcHggcmdiYSgjMDAwLCAwLjI1KSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4lcG9wdXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxMDAwO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAmLnRldGhlci1lbmFibGVkIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBwb3B1cC1sYXlvdXQoXHJcbiAgJHdpZHRoOiAkcG9wdXAtd2lkdGhcclxuKSB7XHJcbiAgd2lkdGg6ICRwb3B1cC13aWR0aDtcclxufVxyXG5AbWl4aW4gcG9wdXAtc3R5bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRwb3B1cC1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogIzAwMCxcclxuICAkcmFkaXVzOiAkcG9wdXAtcmFkaXVzLFxyXG4gICRzaGFkb3c6ICRwb3B1cC1zaGFkb3csXHJcbiAgJGJvcmRlcjogJHBvcHVwLWJvcmRlclxyXG4pIHtcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XHJcbiAgYm9yZGVyOiAkYm9yZGVyO1xyXG59XHJcblxyXG5AbWl4aW4gcG9wdXAoXHJcbiAgJHdpZHRoOiAkcG9wdXAtd2lkdGgsXHJcbiAgJGJhY2tncm91bmQ6ICRwb3B1cC1iYWNrZ3JvdW5kLFxyXG4gICRyYWRpdXM6ICRwb3B1cC1yYWRpdXMsXHJcbiAgJHNoYWRvdzogJHBvcHVwLXNoYWRvdyxcclxuICAkYm9yZGVyOiAkcG9wdXAtYm9yZGVyXHJcbikge1xyXG4gIEBleHRlbmQgJXBvcHVwO1xyXG4gIEBpbmNsdWRlIHBvcHVwLWxheW91dCgkd2lkdGgpO1xyXG4gIEBpbmNsdWRlIHBvcHVwLXN0eWxlKCRiYWNrZ3JvdW5kLCBpc2l0bGlnaHQoJGJhY2tncm91bmQpLCAkcmFkaXVzLCAkc2hhZG93LCAkYm9yZGVyKTtcclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhwb3B1cCkge1xyXG4gIC5wb3B1cCB7XHJcbiAgICBAaW5jbHVkZSBwb3B1cDtcclxuXHJcbiAgICAmLmRhcmsgICAgeyBAaW5jbHVkZSBwb3B1cC1zdHlsZSgkZGFyay1jb2xvciwgI2ZmZik7IH1cclxuICAgICYucHJpbWFyeSB7IEBpbmNsdWRlIHBvcHVwLXN0eWxlKCRwcmltYXJ5LWNvbG9yLCBpc2l0bGlnaHQoJHByaW1hcnktY29sb3IpKTsgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGT1VOREFUSU9OIE1PVElPTiBVSVxyXG4vLyBUYWJsZSBvZiBDb250ZW50c1xyXG4vL1xyXG4vLyAwLiBWYXJpYWJsZXNcclxuLy8gMS4gQmFzZSBUcmFuc2l0aW9uc1xyXG4vLyAgICAgIGEuIFNsaWRlXHJcbi8vICAgICAgYi4gRmFkZVxyXG4vLyAgICAgIGMuIEhpbmdlXHJcbi8vICAgICAgZC4gU2NhbGVcclxuLy8gICAgICBlLiBTcGluXHJcbi8vIDIuIEJhc2UgQW5pbWF0aW9uc1xyXG4vLyAgICAgIGEuIFNoYWtlXHJcbi8vICAgICAgYi4gU3Bpbm5lcnNcclxuLy8gICAgICBjLiBXaWdnbGVcclxuLy8gMy4gSFRNTCBBdHRyaWJ1dGVzXHJcblxyXG4vLyAwLiBWYXJpYWJsZXNcclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxyXG5cclxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIE1vdGlvbiBVSVxyXG4vLyBDbGFzc2VzIHRvIHVzZSB3aGVuIHRyaWdnZXJpbmcgaW4vb3V0IGFuaW1hdGlvbnNcclxuJG1vdGlvbi1jbGFzczogKFxyXG4gIGluOiBcIm5nLWVudGVyXCIsXHJcbiAgb3V0OiBcIm5nLWxlYXZlXCIsXHJcbikgIWRlZmF1bHQ7XHJcbiRtb3Rpb24tY2xhc3MtYWN0aXZlOiAoXHJcbiAgaW46IFwibmctZW50ZXItYWN0aXZlXCIsXHJcbiAgb3V0OiBcIm5nLWxlYXZlLWFjdGl2ZVwiLFxyXG4pICFkZWZhdWx0O1xyXG4kbW90aW9uLWNsYXNzLXN0YWdnZXI6IChcclxuICBpbjogXCJuZy1lbnRlci1zdGFnZ2VyXCIsXHJcbiAgb3V0OiBcIm5nLWxlYXZlLXN0YWdnZXJcIixcclxuKSAhZGVmYXVsdDtcclxuJG1vdGlvbi1jbGFzcy1zaG93aGlkZTogKFxyXG4gIGluOiBcIm5nLWhpZGUtcmVtb3ZlXCIsXHJcbiAgb3V0OiBcIm5nLWhpZGUtYWRkXCIsXHJcbik7XHJcbiRtb3Rpb24tY2xhc3Mtc2hvd2hpZGUtYWN0aXZlOiAoXHJcbiAgaW46IFwibmctaGlkZS1yZW1vdmUtYWN0aXZlXCIsXHJcbiAgb3V0OiBcIm5nLWhpZGUtYWRkLWFjdGl2ZVwiLFxyXG4pO1xyXG5cclxuLy8gU2V0IGlmIG1vdmVtZW50LWJhc2VkIHRyYW5zaXRpb25zIHNob3VsZCBhbHNvIGZhZGUgdGhlIGVsZW1lbnQgaW4gYW5kIG91dFxyXG4kbW90aW9uLXNsaWRlLWFuZC1mYWRlOiBmYWxzZSAhZGVmYXVsdDtcclxuJG1vdGlvbi1oaW5nZS1hbmQtZmFkZTogdHJ1ZSAhZGVmYXVsdDtcclxuJG1vdGlvbi1zY2FsZS1hbmQtZmFkZTogdHJ1ZSAhZGVmYXVsdDtcclxuJG1vdGlvbi1zcGluLWFuZC1mYWRlOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8gRGVmYXVsdCBzcGVlZCBmb3IgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnNcclxuJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0OiA1MDBtcyAhZGVmYXVsdDtcclxuXHJcbi8vIFNsb3cgYW5kIGZhc3QgbW9kaWZpZGVyc1xyXG4kbW90aW9uLWR1cmF0aW9uLXNsb3c6IDc1MG1zICFkZWZhdWx0O1xyXG4kbW90aW9uLWR1cmF0aW9uLWZhc3Q6IDI1MG1zICFkZWZhdWx0O1xyXG4kbW90aW9uLXN0YWdnZXItZHVyYXRpb24tZGVmYXVsdDogMTUwbXMgIWRlZmF1bHQ7XHJcbiRtb3Rpb24tc3RhZ2dlci1kdXJhdGlvbi1zaG9ydDogNTBtcyAhZGVmYXVsdDtcclxuJG1vdGlvbi1zdGFnZ2VyLWR1cmF0aW9uLWxvbmc6IDMwMG1zICFkZWZhdWx0O1xyXG5cclxuLy8gRGVmYXVsdCB0aW1pbmcgZnVuY3Rpb24gZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zXHJcbiRtb3Rpb24tdGltaW5nLWRlZmF1bHQ6IGVhc2UgIWRlZmF1bHQ7XHJcblxyXG4vLyBCdWlsdC1pbiBhbmQgY3VzdG9tIGVhc2luZyBmdW5jdGlvbnNcclxuLy8gRXZlcnkgaXRlbSBpbiB0aGlzIG1hcCBiZWNvbWVzIGEgQ1NTIGNsYXNzXHJcbiRtb3Rpb24tdGltaW5nczogKFxyXG4gIGxpbmVhcjogbGluZWFyLFxyXG4gIGVhc2U6IGVhc2UsXHJcbiAgZWFzZUluOiBlYXNlLWluLFxyXG4gIGVhc2VPdXQ6IGVhc2Utb3V0LFxyXG4gIGVhc2VJbk91dDogZWFzZS1pbi1vdXQsXHJcbiAgYm91bmNlSW46IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQwLCAxLjI0NSksXHJcbiAgYm91bmNlT3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxyXG4gIGJvdW5jZUluT3V0OiBjdWJpYy1iZXppZXIoMC43NjAsIC0wLjI0NSwgMC4yNDAsIDEuMjQ1KSxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vIERlZmF1bHQgZGVsYXkgZm9yIGFsbCB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9uc1xyXG4kbW90aW9uLWRlbGF5LWRlZmF1bHQ6IDAgIWRlZmF1bHQ7XHJcbi8vIFNob3J0IGFuZCBsb25nIGRlbGF5IG1vZGlmaWVyc1xyXG4kbW90aW9uLWRlbGF5LXNob3J0OiAzMDBtcyAhZGVmYXVsdDtcclxuJG1vdGlvbi1kZWxheS1sb25nOiA3MDBtcyAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4vLyBMb29rcyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24gaW4gdGhlIGxpc3Qgb2YgcHJlc2V0c1xyXG4vLyBJZiBub25lIGFyZSBmb3VuZCwgcmV0dXJucyB0aGUgdmFsdWUgYXMtaXMuXHJcbkBmdW5jdGlvbiBnZXQtdGltaW5nKCR0aW1pbmcpIHtcclxuICBAaWYgbWFwLWhhcy1rZXkoJG1vdGlvbi10aW1pbmdzLCAkdGltaW5nKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1vdGlvbi10aW1pbmdzLCAkdGltaW5nKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAkdGltaW5nO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQXBwbGllcyB0cmFuc2l0aW9uIHNldHRpbmdzIGNvbW1vbiB0byBhbGwgbWl4aW5zXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcclxuICAkZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZGVmYXVsdCxcclxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxyXG4gICRkZWxheTogJG1vdGlvbi1kZWxheS1kZWZhdWx0XHJcbikge1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZ2V0LXRpbWluZygkdGltaW5nKTtcclxuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XHJcbn1cclxuXHJcbi8vIFdyYXBzIGNvbnRlbnQgaW4gYW4gZW50ZXIvbGVhdmUgY2xhc3MsIGNoYWluZWQgdG8gdGhlIHBhcmVudCBzZWxlY3RvclxyXG4vLyBEZWZpbmUgdGhlIGluaXRpYWwgc3RhdGUgb2YgYSB0cmFuc2l0aW9uIGhlcmVcclxuQG1peGluIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xyXG4gICRzZWwxOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3MsICRkaXIpO1xyXG4gICRzZWwyOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3Mtc2hvd2hpZGUsICRkaXIpO1xyXG5cclxuICAmLiN7JHNlbDF9LFxyXG4gICYuI3skc2VsMn0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBXcmFwcyBjb250ZW50IGluIGFuIGVudGVyL2xlYXZlIGFjdGl2ZSBjbGFzcywgY2hhaW5lZCB0byB0aGUgbWF0Y2hpbmdcclxuLy8gZW50ZXIvbGVhdmUgY2xhc3MsIGNoYWluZWQgdG8gdGhlIHBhcmVudCBzZWxlY3RvclxyXG4vLyBEZWZpbmUgdGhlIGVuZCBzdGF0ZSBvZiBhIHRyYW5zaXRpb24gaGVyZVxyXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xyXG4gICRzZWwxOiAgbWFwLWdldCgkbW90aW9uLWNsYXNzLCAkZGlyKTtcclxuICAkc2VsMUE6IG1hcC1nZXQoJG1vdGlvbi1jbGFzcy1hY3RpdmUsICRkaXIpO1xyXG5cclxuICAkc2VsMjogIG1hcC1nZXQoJG1vdGlvbi1jbGFzcy1zaG93aGlkZSwgJGRpcik7XHJcbiAgJHNlbDJBOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3Mtc2hvd2hpZGUtYWN0aXZlLCAkZGlyKTtcclxuXHJcbiAgJi4jeyRzZWwxfS4jeyRzZWwxQX0sXHJcbiAgJi4jeyRzZWwyfS4jeyRzZWwyQX0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc3RhZ2dlcigkZGVsYXktYW1vdW50KSB7XHJcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcclxuICAvLyB0aGlzIGlzIHRvIGF2b2lkIGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXHJcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjowO1xyXG59XHJcblxyXG5cclxuLy8gMS4gQmFzZSBUcmFuc2l0aW9uc1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXHJcblxyXG4vLyBTTElERVxyXG5AbWl4aW4gc2xpZGUgKFxyXG4gICRkaXI6IGluLFxyXG4gICRmcm9tOiBsZWZ0LFxyXG4gICRmYWRlOiAkbW90aW9uLXNsaWRlLWFuZC1mYWRlLFxyXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxyXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXHJcbiAgJGRlbGF5OiAkbW90aW9uLWRlbGF5LWRlZmF1bHRcclxuKSB7XHJcbiAgJHNsaWRlRGlyZWN0aW9uczogKFxyXG4gICAgdG9wOiAgICB0cmFuc2xhdGVZKC0xMDAlKSxcclxuICAgIHJpZ2h0OiAgdHJhbnNsYXRlWCgxMDAlKSxcclxuICAgIGJvdHRvbTogdHJhbnNsYXRlWSgxMDAlKSxcclxuICAgIGxlZnQ6ICAgdHJhbnNsYXRlWCgtMTAwJSksXHJcbiAgKTtcclxuICAkc3RhcnQ6ICcnO1xyXG4gICRlbmQ6ICcnO1xyXG5cclxuICBAaWYgJGRpciA9PSBpbiB7XHJcbiAgICAkc3RhcnQ6IG1hcC1nZXQoJHNsaWRlRGlyZWN0aW9ucywgJGZyb20pO1xyXG4gICAgJGVuZDogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAkc3RhcnQ6IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcclxuICAgICRlbmQ6IG1hcC1nZXQoJHNsaWRlRGlyZWN0aW9ucywgJGZyb20pO1xyXG4gIH1cclxuXHJcbiAgLy8gQ1NTIE91dHB1dFxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgdHJhbnNmb3JtOiAkc3RhcnQ7XHJcblxyXG4gICAgQGlmICRmYWRlIHsgb3BhY2l0eTogaWYoJGRpciA9PSBpbiwgMCwgMSk7IH1cclxuICB9XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xyXG4gICAgdHJhbnNmb3JtOiAkZW5kO1xyXG5cclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDEsIDApOyB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGQURFXHJcbkBtaXhpbiBmYWRlKFxyXG4gICRkaXI6IGluLFxyXG4gICRmcm9tOiAwLFxyXG4gICR0bzogMSxcclxuICAkZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZGVmYXVsdCxcclxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxyXG4gICRkZWxheTogJG1vdGlvbi1kZWxheS1kZWZhdWx0XHJcbikge1xyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcclxuICAgIG9wYWNpdHk6ICRmcm9tO1xyXG4gIH1cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XHJcbiAgICBvcGFjaXR5OiAkdG87XHJcbiAgfVxyXG59XHJcblxyXG4vLyBISU5HRVxyXG5AbWl4aW4gaGluZ2UgKFxyXG4gICRkaXI6IGluLFxyXG4gICRmcm9tOiBsZWZ0LFxyXG4gICRheGlzOiBlZGdlLFxyXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxyXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrLFxyXG4gICRmYWRlOiAkbW90aW9uLWhpbmdlLWFuZC1mYWRlLFxyXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxyXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXHJcbiAgJGRlbGF5OiAkbW90aW9uLWRlbGF5LWRlZmF1bHRcclxuKSB7XHJcblxyXG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcclxuICAkcm90YXRpb25BbW91bnQ6IDkwZGVnO1xyXG4gICRyb3RhdGlvbnNCYWNrOiAoXHJcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uQW1vdW50ICogLTEpLFxyXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uQW1vdW50ICogLTEpLFxyXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCksXHJcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbkFtb3VudCksXHJcbiAgKTtcclxuICAkcm90YXRpb25zRnJvbTogKFxyXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCksXHJcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb25BbW91bnQpLFxyXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCAqIC0xKSxcclxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uQW1vdW50ICogLTEpLFxyXG4gICk7XHJcblxyXG4gIC8vIFJvdGF0aW9uIG9yaWdpblxyXG4gICRyb3RhdGlvbjogJyc7XHJcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcclxuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zRnJvbSwgJGZyb20pO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1iYWNrIHtcclxuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zQmFjaywgJGZyb20pO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAkdHVybi1vcmlnaW5gIG11c3QgYmUgZWl0aGVyIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YFwiO1xyXG4gIH1cclxuXHJcbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxyXG4gICRzdGFydDogJyc7XHJcbiAgJGVuZDogJyc7XHJcbiAgQGlmICRkaXIgPT0gaW4ge1xyXG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcclxuICAgICRlbmQ6IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgJHN0YXJ0OiByb3RhdGUoMGRlZyk7XHJcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcclxuICB9XHJcblxyXG4gIC8vIFR1cm4gYXhpc1xyXG4gICRvcmlnaW46ICcnO1xyXG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcclxuICAgICRvcmlnaW46ICRmcm9tO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAkb3JpZ2luOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIHRyYW5zZm9ybTogJHN0YXJ0O1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDAsIDEpOyB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRkaXIpIHtcclxuICAgIHRyYW5zZm9ybTogJGVuZDtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDEsIDApOyB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTQ0FMRVxyXG5AbWl4aW4gc2NhbGUoXHJcbiAgJGRpcjogaW4sXHJcbiAgJGZyb206IDEuNSxcclxuICAkdG86IDEsXHJcbiAgJGZhZGU6ICRtb3Rpb24tc2NhbGUtYW5kLWZhZGUsXHJcbiAgJGR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWRlZmF1bHQsXHJcbiAgJHRpbWluZzogJG1vdGlvbi10aW1pbmctZGVmYXVsdCxcclxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdFxyXG4pIHtcclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgcHJvcGVydHk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCRmcm9tKTtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDAsIDEpIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkdG8pO1xyXG4gICAgQGlmICRmYWRlIHsgb3BhY2l0eTogaWYoJGRpciA9PSBpbiwgMSwgMCkgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gU1BJTlxyXG5AbWl4aW4gc3BpbihcclxuICAkZGlyOiBpbixcclxuICAkYW1vdW50OiAwLjc1dHVybixcclxuICAkY2N3OiBmYWxzZSxcclxuICAkZmFkZTogJG1vdGlvbi1zcGluLWFuZC1mYWRlLFxyXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxyXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXHJcbiAgJGRlbGF5OiAkbW90aW9uLWRlbGF5LWRlZmF1bHRcclxuKSB7XHJcbiAgJGFtb3VudDogdHVybi10by1kZWcoJGFtb3VudCk7XHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDA7XHJcblxyXG4gIEBpZiAkZGlyID09IGluIHtcclxuICAgICRzdGFydDogaWYoJGNjdywgJGFtb3VudCwgJGFtb3VudCAqIC0xKTtcclxuICAgICRlbmQ6IDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgICRzdGFydDogMDtcclxuICAgICRlbmQ6IGlmKCRjY3csICRhbW91bnQgKiAtMSwgJGFtb3VudCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKCRzdGFydCk7XHJcbiAgICBAaWYgJGZhZGUgeyBvcGFjaXR5OiBpZigkZGlyID09IGluLCAwLCAxKTsgfVxyXG4gIH1cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkZW5kKTtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDEsIDApOyB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gMi4gQmFzZSBBbmltYXRpb25zXHJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuXHJcbi8vIFNIQUtFXHJcbkBrZXlmcmFtZXMgc2hha2Uge1xyXG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7XHJcbiAgfVxyXG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpO1xyXG4gIH1cclxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XHJcbn1cclxuXHJcbi8vIFNQSU5ORVJTXHJcbkBrZXlmcmFtZXMgc3Bpbi1jdyB7XHJcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4gIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3Bpbi1jY3cge1xyXG4gIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7IH1cclxufVxyXG5cclxuLy8gV0lHR0xFXHJcbkBrZXlmcmFtZXMgd2lnZ2xlIHtcclxuICA0MCUsIDUwJSwgNjAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpO1xyXG4gIH1cclxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpO1xyXG4gIH1cclxuICAwJSwgMzAlLCA3MCUsIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uKFxyXG4gICRhbmltYXRpb24sXHJcbiAgJGR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWRlZmF1bHQsXHJcbiAgJHRpbWluZzogJG1vdGlvbi10aW1pbmctZGVmYXVsdCxcclxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdCxcclxuICAkaXRlcmF0aW9uczogbnVsbFxyXG4pIHtcclxuICBcclxuICBhbmltYXRpb24tbmFtZTogJGFuaW1hdGlvbjtcclxuICBhbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xyXG5cclxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblxyXG4gIEBpZiAkZGVsYXkgIT0gbnVsbCB7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6ICRkZWxheTtcclxuICB9XHJcbiAgQGlmICRpdGVyYXRpb25zICE9IG51bGwge1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogJGl0ZXJhdGlvbnM7XHJcbiAgfVxyXG5cclxuICBAaWYgJGFuaW1hdGlvbiA9PSBudWxsIHtcclxuICAgIEB3YXJuIFwiUGxlYXNlIGluY2x1ZGUgYW4gYW5pbWF0aW9uIG5hbWVcIjtcclxuICB9XHJcbn1cclxuXHJcbi8vIDMuIEhUTUwgRXhwb3J0c1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKG1vdGlvbikge1xyXG4gIC8qXHJcbiAgICBUcmFuc2l0aW9uc1xyXG4gICovXHJcblxyXG4gIC8vIFNsaWRlXHJcbiAgLnNsaWRlSW5Eb3duICAgIHsgQGluY2x1ZGUgc2xpZGUoJGZyb206IHRvcCk7IH1cclxuICAuc2xpZGVJbkxlZnQgICAgeyBAaW5jbHVkZSBzbGlkZSgkZnJvbTogcmlnaHQpOyB9XHJcbiAgLnNsaWRlSW5VcCAgICAgIHsgQGluY2x1ZGUgc2xpZGUoJGZyb206IGJvdHRvbSk7IH1cclxuICAuc2xpZGVJblJpZ2h0ICAgeyBAaW5jbHVkZSBzbGlkZSgkZnJvbTogbGVmdCk7IH1cclxuICAuc2xpZGVPdXRCb3R0b20geyBAaW5jbHVkZSBzbGlkZSgkZGlyOiBvdXQsICRmcm9tOiBib3R0b20pOyB9XHJcbiAgLnNsaWRlT3V0UmlnaHQgIHsgQGluY2x1ZGUgc2xpZGUoJGRpcjogb3V0LCAkZnJvbTogcmlnaHQpOyB9XHJcbiAgLnNsaWRlT3V0VXAgICAgIHsgQGluY2x1ZGUgc2xpZGUoJGRpcjogb3V0LCAkZnJvbTogdG9wKTsgfVxyXG4gIC5zbGlkZU91dExlZnQgICB7IEBpbmNsdWRlIHNsaWRlKCRkaXI6IG91dCwgJGZyb206IGxlZnQpOyB9XHJcblxyXG4gIC8vIEZhZGVcclxuICAuZmFkZUluICB7IEBpbmNsdWRlIGZhZGUoaW4sIDAsIDEpOyB9XHJcbiAgLmZhZGVPdXQgeyBAaW5jbHVkZSBmYWRlKG91dCwgMSwgMCk7IH1cclxuXHJcbiAgLy8gSGluZ2VcclxuICAuaGluZ2VJbkZyb21Ub3AgICAgICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogdG9wKTsgfVxyXG4gIC5oaW5nZUluRnJvbVJpZ2h0ICAgIHsgQGluY2x1ZGUgaGluZ2UoJGRpcjogaW4sICRmcm9tOiByaWdodCk7IH1cclxuICAuaGluZ2VJbkZyb21Cb3R0b20gICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogYm90dG9tKTsgfVxyXG4gIC5oaW5nZUluRnJvbUxlZnQgICAgIHsgQGluY2x1ZGUgaGluZ2UoJGRpcjogaW4sICRmcm9tOiBsZWZ0KTsgfVxyXG4gIC5oaW5nZUluRnJvbU1pZGRsZVggIHsgQGluY2x1ZGUgaGluZ2UoJGRpcjogaW4sICRmcm9tOiB0b3AsICAgJGF4aXM6IGNlbnRlcik7IH1cclxuICAuaGluZ2VJbkZyb21NaWRkbGVZICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogcmlnaHQsICRheGlzOiBjZW50ZXIpOyB9XHJcbiAgLmhpbmdlT3V0RnJvbVRvcCAgICAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBvdXQsICRmcm9tOiB0b3ApOyB9XHJcbiAgLmhpbmdlT3V0RnJvbVJpZ2h0ICAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBvdXQsICRmcm9tOiByaWdodCk7IH1cclxuICAuaGluZ2VPdXRGcm9tQm90dG9tICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IGJvdHRvbSk7IH1cclxuICAuaGluZ2VPdXRGcm9tTGVmdCAgICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IGxlZnQpOyB9XHJcbiAgLmhpbmdlT3V0RnJvbU1pZGRsZVggeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBvdXQsICRmcm9tOiB0b3AsICAgJGF4aXM6IGNlbnRlcik7IH1cclxuICAuaGluZ2VPdXRGcm9tTWlkZGxlWSB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IHJpZ2h0LCAkYXhpczogY2VudGVyKTsgfVxyXG5cclxuICAvLyBTY2FsZVxyXG4gIC56b29tSW4gIHsgQGluY2x1ZGUgc2NhbGUoaW4sICAxLjUsIDEpOyB9XHJcbiAgLnpvb21PdXQgeyBAaW5jbHVkZSBzY2FsZShvdXQsIDAuNSwgMSk7IH1cclxuXHJcbiAgLy8gU3BpblxyXG4gIC5zcGluSW4gICAgIHsgQGluY2x1ZGUgc3BpbihpbiwgMC43NXR1cm4pOyB9XHJcbiAgLnNwaW5PdXQgICAgeyBAaW5jbHVkZSBzcGluKG91dCwgMC43NXR1cm4pOyB9XHJcbiAgLnNwaW5JbkNDVyAgeyBAaW5jbHVkZSBzcGluKGluLCAwLjc1dHVybiwgdHJ1ZSk7IH1cclxuICAuc3Bpbk91dENDVyB7IEBpbmNsdWRlIHNwaW4ob3V0LCAwLjc1dHVybiwgdHJ1ZSk7IH1cclxuXHJcbiAgLypcclxuICAgIFRyYW5zaXRpb24gbW9kaWZpZXJzXHJcbiAgKi9cclxuXHJcbiAgLy8gRHVyYXRpb25cclxuICAuc2xvdyB7IHRyYW5zaXRpb24tZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tc2xvdyAhaW1wb3J0YW50OyB9XHJcbiAgLmZhc3QgeyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWZhc3QgIWltcG9ydGFudDsgfVxyXG5cclxuICAvLyBFYXNpbmdcclxuICBAZWFjaCAkZWFzaW5nIGluIG1hcC1rZXlzKCRtb3Rpb24tdGltaW5ncykge1xyXG4gICAgLiN7JGVhc2luZ30ge1xyXG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXRpbWluZ3MsICRlYXNpbmcpICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBEZWxheVxyXG4gIC5kZWxheSAgICAgICB7IHRyYW5zaXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktc2hvcnQgIWltcG9ydGFudDsgfVxyXG4gIC5sb25nLWRlbGF5ICB7IHRyYW5zaXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktbG9uZyAhaW1wb3J0YW50OyB9XHJcblxyXG4gIC8qXHJcbiAgICBBbmltYXRpb25zXHJcbiAgKi9cclxuXHJcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgYW5pbWF0aW9uKHNoYWtlKTsgfVxyXG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIGFuaW1hdGlvbihzcGluLWN3KTsgfVxyXG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIGFuaW1hdGlvbihzcGluLWNjdyk7IH1cclxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBhbmltYXRpb24od2lnZ2xlKTsgfVxyXG5cclxuICAvKlxyXG4gICAgQW5pbWF0aW9uIG1vZGlmaWVyc1xyXG4gICovXHJcblxyXG4gIC5zaGFrZSxcclxuICAuc3Bpbi1jdyxcclxuICAuc3Bpbi1jY3csXHJcbiAgLndpZ2dsZSB7XHJcbiAgICAvLyBSZXBlYXRcclxuICAgICYuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxyXG5cclxuICAgIC8vIEVhc2luZ1xyXG4gICAgQGVhY2ggJHRpbWluZyBpbiBtYXAta2V5cygkbW90aW9uLXRpbWluZ3MpIHtcclxuICAgICAgJi4jeyR0aW1pbmd9IHtcclxuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdGltaW5ncywgJHRpbWluZykgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIER1cmF0aW9uXHJcbiAgICAmLnNsb3cgeyBhbmltYXRpb24tZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tc2xvdyAhaW1wb3J0YW50OyB9XHJcbiAgICAmLmZhc3QgeyBhbmltYXRpb24tZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZmFzdCAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgLy8gRGVsYXlcclxuICAgICYuZGVsYXkgICAgICAgeyBhbmltYXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktc2hvcnQgIWltcG9ydGFudDsgfVxyXG4gICAgJi5sb25nLWRlbGF5ICB7IGFuaW1hdGlvbi1kZWxheTogJG1vdGlvbi1kZWxheS1sb25nICFpbXBvcnRhbnQ7IH1cclxuICB9XHJcbiAgLnN0YWdnZXIgeyBAaW5jbHVkZSBzdGFnZ2VyKCRtb3Rpb24tc3RhZ2dlci1kdXJhdGlvbi1kZWZhdWx0KTsgfVxyXG4gIC5zdG9ydC1zdGFnZ2VyIHsgQGluY2x1ZGUgc3RhZ2dlcigkbW90aW9uLXN0YWdnZXItZHVyYXRpb24tZGVmYXVsdCk7IH1cclxuICAubG9uZy1zdGFnZ2VyIHsgQGluY2x1ZGUgc3RhZ2dlcigkbW90aW9uLXN0YWdnZXItZHVyYXRpb24tZGVmYXVsdCk7IH1cclxufVxyXG5cclxuLy8gVmlldyBhbmltYXRpb24gY2xhc3Nlc1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuXHJcbi8vIEFwcGxpZWQgdG8gdGhlIGltbWVkaWF0ZSBwYXJlbnQgb2YgdGhlIGFuaW1hdGluZyB2aWV3c1xyXG4ucG9zaXRpb24tYWJzb2x1dGUge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4vLyBBcHBsaWVkIHRvIHRoZSBhbmltYXRpbmcgdmlld3NcclxuLnVpLWFuaW1hdGlvbiB7XHJcbiAgJi5uZy1lbnRlci1hY3RpdmUsICYubmctbGVhdmUtYWN0aXZlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gIH1cclxufVxyXG4iLCIvKlxuICBPZGRzIGFuZCBlbmRzLlxuKi9cblxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXG4vLyBFeHRyYXNcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogKHRvcCByaWdodCkgIWRlZmF1bHQ7XG4kY2xvc2VidXR0b24tc2l6ZTogMmVtICFkZWZhdWx0O1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDAuNSAhZGVmYXVsdDtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogIzk5OSAhZGVmYXVsdDtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogIzMzMyAhZGVmYXVsdDtcblxuJHRodW1ibmFpbC1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAzcHggMTVweCByZ2JhKGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcbi8vL1xuXG4vLyBBIGJhc2ljIGNsb3NlIGJ1dHRvbi4gVGhleSBwaW4gdG8gdGhlIGNvcm5lciBvZiB0aGUgdGhpbmcgdGhleSdyZSBpbnNpZGUuXG4lY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICAjeyR4fTogJGdsb2JhbC1wYWRkaW5nO1xuICAjeyR5fTogJGdsb2JhbC1wYWRkaW5nO1xuICBmb250LXNpemU6ICRjbG9zZWJ1dHRvbi1zaXplO1xuICBsaW5lLWhlaWdodDogJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vIE1ha2UgeW91ciBpbWFnZXMgZmFuY3ktbGlrZS5cbiV0aHVtYm5haWwge1xuICBwYWRkaW5nOiAkdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKGV4dHJhcykge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVjbG9zZS1idXR0b247XG4gIH1cbiAgLnRodW1ibmFpbCB7XG4gICAgQGV4dGVuZCAldGh1bWJuYWlsO1xuICB9XG4gIHVsLnRodW1ibmFpbHMgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBcbiAgICBhIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICBpbWcgeyBAZXh0ZW5kICV0aHVtYm5haWw7IH1cbiAgfVxufVxuIiwiLypcbiAgUEFORUxcbiAgLS0tLS1cblxuICBUaGUgZnJpZW5kbHkgcGFuZWwgaXMgYW4gYWxsLXB1cnBvc2UgY29udGFpbmVyIGZvciBoaWRpbmcgY29udGVudCBvZmYtc2NyZWVuLlxuXG4gIEZlYXR1cmVzOlxuICAgLSBQb3NpdGlvbiBhdCB0b3AsIHJpZ2h0LCBib3R0b20sIG9yIGxlZnRcbiAgIC0gQW5jaG9yIHRvIGdyaWQgYmxvY2sgb3Igd2luZG93XG4gICAtIERlZmluZSBtYXggd2lkdGggb3IgaGVpZ2h0XG4gICAtIFRyYW5zZm9ybSBpbnRvIGdyaWQgYmxvY2sgZGVwZW5kaW5nIG9uIHNjcmVlbiBzaXplXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIFBhbmVsXG4kcGFuZWwtc2l6ZS1ob3Jpem9udGFsOiAzMDBweCAhZGVmYXVsdDtcbiRwYW5lbC1zaXplLXZlcnRpY2FsOiAzMDBweCAhZGVmYXVsdDtcbiRwYW5lbC1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4kcGFuZWwtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRwYW5lbC1zaGFkb3c6IDNweCAwIDEwcHggcmdiYShibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vIERFUFJFQ0FURUQ6IHRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiRwYW5lbC1hbmltYXRpb24tc3BlZWQ6IDAuMjVzICFkZWZhdWx0O1xuLy8vXG5cbiVwYW5lbC1iYXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gcGFuZWwtbGF5b3V0KFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRzaXplOiBkZWZhdWx0LFxuICAkc2hhZG93OiAkcGFuZWwtc2hhZG93XG4pIHtcbiAgQGlmICRzaXplID09IGRlZmF1bHQge1xuICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCBvciAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgJHNpemU6ICRwYW5lbC1zaXplLWhvcml6b250YWw7XG4gICAgfVxuICAgIEBpZiAkcG9zaXRpb24gPT0gdG9wIG9yICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgJHNpemU6ICRwYW5lbC1zaXplLXZlcnRpY2FsO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAgRGlyZWN0aW9uXG4gICovXG4gIEBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC8qXG4gICAgU2l6aW5nXG4gICovXG4gIC8vIEhvcml6b250YWwgcGFuZWxzIGFyZSBhbHdheXMgYWxsIHRoZSB3YXkgdGFsbCBhbmQgaGF2ZSBhIHNldCB3aWR0aFxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQgb3IgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBAaWYgdW5pdCgkc2l6ZSkgPT0gJyUnIHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gKEZvciBub3cpIHZlcnRpY2FsIHBhbmVscyBkb24ndCBjaGFuZ2Ugc2l6ZVxuICBAaWYgJHBvc2l0aW9uID09IHRvcCBvciAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgLypcbiAgICBTaGFkb3dzXG4gICovXG4gICRzaGFkb3ctZGlzdGFuY2U6IGdldC1zaGFkb3ctdmFsdWUoJHNoYWRvdywgeCk7XG4gICRzaGFkb3ctc2l6ZTogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCBzaXplKTtcbiAgJHNoYWRvdy1jb2xvcjogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCBjb2xvcik7XG4gICYuaXMtYWN0aXZlIHtcbiAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQgICAgICAgIHsgYm94LXNoYWRvdzogJHNoYWRvdy1kaXN0YW5jZSAwICRzaGFkb3ctc2l6ZSAkc2hhZG93LWNvbG9yOyB9XG4gICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0ICB7IGJveC1zaGFkb3c6ICgtJHNoYWRvdy1kaXN0YW5jZSkgMCAkc2hhZG93LXNpemUgJHNoYWRvdy1jb2xvcjsgfVxuICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3AgICAgeyBib3gtc2hhZG93OiAwICRzaGFkb3ctZGlzdGFuY2UgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cbiAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHsgYm94LXNoYWRvdzogMnB4ICgtJHNoYWRvdy1kaXN0YW5jZSkgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cbiAgfVxufVxuXG5AbWl4aW4gcGFuZWwtc3R5bGUoXG4gICRwYWRkaW5nOiAkcGFuZWwtcGFkZGluZyxcbiAgJGJhY2tncm91bmQ6ICRwYW5lbC1iYWNrZ3JvdW5kXG4pIHtcbiAgLypcbiAgICBCYXNpYyBzdHlsZXNcbiAgKi9cbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKHBhbmVsKSB7XG4gIC5wYW5lbCB7XG4gICAgQGV4dGVuZCAlcGFuZWwtYmFzZTtcbiAgICBAaW5jbHVkZSBwYW5lbC1zdHlsZTtcbiAgfVxuXG4gIC5wYW5lbC10b3AgICAgeyBAaW5jbHVkZSBwYW5lbC1sYXlvdXQodG9wKTsgfVxuICAucGFuZWwtcmlnaHQgIHsgQGluY2x1ZGUgcGFuZWwtbGF5b3V0KHJpZ2h0KTsgfVxuICAucGFuZWwtYm90dG9tIHsgQGluY2x1ZGUgcGFuZWwtbGF5b3V0KGJvdHRvbSk7IH1cbiAgLnBhbmVsLWxlZnQgICB7IEBpbmNsdWRlIHBhbmVsLWxheW91dChsZWZ0KTsgfVxuXG4gIC5wYW5lbC1maXhlZCAgeyBwb3NpdGlvbjogZml4ZWQ7IH1cbn0iLCIvKlxyXG4gIExhYmVsXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gTGFiZWxcclxuJGxhYmVsLWZvbnRzaXplOiAwLjhyZW0gIWRlZmF1bHQ7XHJcbiRsYWJlbC1wYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nIC8gMykgKCRnbG9iYWwtcGFkZGluZyAvIDIpICFkZWZhdWx0O1xyXG4kbGFiZWwtcmFkaXVzOiAwICFkZWZhdWx0O1xyXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRsYWJlbC1jb2xvcjogaXNpdGxpZ2h0KCRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcclxuXHJcbiRiYWRnZS1mb250c2l6ZTogMC44ZW0gIWRlZmF1bHQ7XHJcbiRiYWRnZS1kaWFtZXRlcjogMS41cmVtICFkZWZhdWx0O1xyXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRiYWRnZS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4lbGFiZWwge1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuQG1peGluIGxhYmVsLWxheW91dChcclxuICAkZm9udHNpemU6ICRsYWJlbC1mb250c2l6ZSxcclxuICAkcGFkZGluZzogJGxhYmVsLXBhZGRpbmdcclxuKSB7XHJcbiAgZm9udC1zaXplOiAkZm9udHNpemU7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBtaXhpbiBsYWJlbC1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQsXHJcbiAgJGNvbG9yOiAkbGFiZWwtY29sb3IsXHJcbiAgJHJhZGl1czogJGxhYmVsLXJhZGl1c1xyXG4pIHtcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG5cclxuICBAaWYgJGNvbG9yID09IGF1dG8ge1xyXG4gICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGFiZWwoXHJcbiAgJGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJGxhYmVsLWNvbG9yLFxyXG4gICRyYWRpdXM6ICRsYWJlbC1yYWRpdXMsXHJcbiAgJGZvbnRzaXplOiAkbGFiZWwtZm9udHNpemUsXHJcbiAgJHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nXHJcbikge1xyXG4gIEBleHRlbmQgJWxhYmVsO1xyXG4gIEBpbmNsdWRlIGxhYmVsLWxheW91dCgkZm9udHNpemUsICRwYWRkaW5nKTtcclxuICBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkYmFja2dyb3VuZCwgJGNvbG9yLCAkcmFkaXVzKTtcclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhsYWJlbCkge1xyXG4gIC5sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBsYWJlbDtcclxuXHJcbiAgICBAZWFjaCAkY29sb3IgaW4gbWFwLWtleXMoJGZvdW5kYXRpb24tY29sb3JzKSB7XHJcbiAgICAgICYuI3skY29sb3J9IHtcclxuICAgICAgICAkY29sb3ItdmFsdWU6IG1hcC1nZXQoJGZvdW5kYXRpb24tY29sb3JzLCAkY29sb3IpO1xyXG4gICAgICAgIEBpbmNsdWRlIGxhYmVsLXN0eWxlKCRjb2xvci12YWx1ZSwgYXV0byk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qXHJcbiAgQmFkZ2VcclxuKi9cclxuXHJcbiViYWRnZSB7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XHJcbn1cclxuXHJcbkBtaXhpbiBiYWRnZS1sYXlvdXQoXHJcbiAgJGZvbnRzaXplOiAkYmFkZ2UtZm9udHNpemUsXHJcbiAgJGRpYW1ldGVyOiAkYmFkZ2UtZGlhbWV0ZXJcclxuKSB7XHJcbiAgZm9udC1zaXplOiAkZm9udHNpemU7XHJcbiAgd2lkdGg6ICRkaWFtZXRlcjtcclxuICBoZWlnaHQ6ICRkaWFtZXRlcjtcclxufVxyXG5cclxuQG1peGluIGJhZGdlLXN0eWxlKFxyXG4gICRiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZCxcclxuICAkY29sb3I6ICRiYWRnZS1mb250LWNvbG9yXHJcbikge1xyXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICBAaWYgJGNvbG9yID09IGF1dG8ge1xyXG4gICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYmFkZ2UoXHJcbiAgJGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJGJhZGdlLWNvbG9yLFxyXG4gICRkaWFtZXRlcjogJGJhZGdlLWRpYW1ldGVyLFxyXG4gICRmb250c2l6ZTogJGJhZGdlLWZvbnRzaXplXHJcbikge1xyXG4gIEBleHRlbmQgJWJhZGdlO1xyXG4gIEBpbmNsdWRlIGJhZGdlLWxheW91dCgkZm9udHNpemUsICRkaWFtZXRlcik7XHJcbiAgQGluY2x1ZGUgYmFkZ2Utc3R5bGUoJGJhY2tncm91bmQsICRjb2xvcik7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoYmFkZ2UpIHtcclxuICAuYmFkZ2Uge1xyXG4gICAgQGluY2x1ZGUgYmFkZ2U7XHJcblxyXG4gICAgJi5zZWNvbmRhcnkge1xyXG4gICAgICBAaW5jbHVkZSBiYWRnZS1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yLCBhdXRvKTtcclxuICAgIH1cclxuICAgIEBlYWNoICRjb2xvciBpbiBtYXAta2V5cygkZm91bmRhdGlvbi1jb2xvcnMpIHtcclxuICAgICAgJi4jeyRjb2xvcn0ge1xyXG4gICAgICAgICRjb2xvci12YWx1ZTogbWFwLWdldCgkZm91bmRhdGlvbi1jb2xvcnMsICRjb2xvcik7XHJcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Utc3R5bGUoJGNvbG9yLXZhbHVlLCBhdXRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxyXG4gIE1PREFMXHJcbiAgLS0tLS1cclxuXHJcbiAgVGhlIGh1bWJsZSBtb2RhbCBoaWRlcyBvZmYtY2FudmFzIHVudGlsIHN1bW1vbmVkIHdpdGggYW4gZmEtb3BlbiBkaXJlY3RpdmUuIE1vZGFscyBhcHBlYXIgb3ZlciBhbiBvdmVybGF5IHRoYXQgZGFya2VucyB0aGUgcmVzdCBvZiB0aGUgcGFnZSwgYW5kIGhhdmUgYSBtYXhtaW11bSB3aWR0aC4gWW91IGNhbiBjb25zdHJ1Y3QgYSBncmlkIGluc2lkZSBhIG1vZGFsLCBvciBhdHRhY2ggcGFuZWxzIHRvIGl0LlxyXG5cclxuICBOb3RlIHRoYXQgdGhlIG1vZGFsIG92ZXJsYXkgaXMgaGFyZGNvZGVkIGludG8gdGhlIENTUywgYmVjYXVzZSB3aGV0aGVyIG9yIG5vdCB5b3UgYnVpbGQgeW91ciBtb2RhbCBzZW1hbnRpY2FsbHksIHRoZSBvdmVybGF5IGlzIGFsd2F5cyByZXF1aXJlZCBhbmQgd2lsbCBhbHdheXMgbG9vayB0aGUgc2FtZS5cclxuKi9cclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBNb2RhbFxyXG4kbW9kYWwtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcclxuJG1vZGFsLWJvcmRlcjogMCAhZGVmYXVsdDtcclxuJG1vZGFsLXJhZGl1czogMHB4ICFkZWZhdWx0O1xyXG4kbW9kYWwtc2hhZG93OiBub25lICFkZWZhdWx0O1xyXG4kbW9kYWwtemluZGV4OiAxMDAwICFkZWZhdWx0O1xyXG4kbW9kYWwtc2l6ZXM6IChcclxuICB0aW55OiAzMDBweCxcclxuICBzbWFsbDogNTAwcHgsXHJcbiAgbWVkaXVtOiA2MDBweCxcclxuICBsYXJnZTogODAwcHgsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kbW9kYWwtb3ZlcmxheS1jbGFzczogJ21vZGFsLW92ZXJsYXknICFkZWZhdWx0O1xyXG4kbW9kYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCMzMzMsIDAuNykgIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuJW1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogJG1vZGFsLXppbmRleCArIDE7XHJcbiAgYmFja2dyb3VuZDogJG1vZGFsLWJhY2tncm91bmQ7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgbWF4LXdpZHRoOiBtYXAtZ2V0KCRtb2RhbC1zaXplcywgbWVkaXVtKTtcclxuICB9XHJcblxyXG4gIC5ncmlkLWNvbnRlbnQsIC5ncmlkLWJsb2NrIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24sIFtmYS1jbG9zZV0ge1xyXG4gICAgei1pbmRleDogJG1vZGFsLXppbmRleCArIDE7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbW9kYWwtZGlhbG9nKCkge1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5AbWl4aW4gbW9kYWwtbGF5b3V0KFxyXG4gICR3aWR0aDogbWFwLWdldCgkbW9kYWwtc2l6ZXMsIG1lZGl1bSksXHJcbiAgJGRpYWxvZzogZmFsc2VcclxuKSB7XHJcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbn1cclxuQG1peGluIG1vZGFsLXN0eWxlKFxyXG4gICRib3JkZXI6ICRtb2RhbC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJG1vZGFsLXJhZGl1cyxcclxuICAkc2hhZG93OiAkbW9kYWwtc2hhZG93XHJcbikge1xyXG4gIEBpZiAkYm9yZGVyICE9IDAge1xyXG4gICAgYm9yZGVyOiAkYm9yZGVyO1xyXG4gIH1cclxuICBAaWYgJHJhZGl1cyAhPSAwIHtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgfVxyXG4gIEBpZiAkc2hhZG93ICE9IG5vbmUge1xyXG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtb2RhbChcclxuICAkd2lkdGg6IG1hcC1nZXQoJG1vZGFsLXNpemVzLCBtZWRpdW0pLFxyXG4gICRib3JkZXI6ICRtb2RhbC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJG1vZGFsLXJhZGl1cyxcclxuICAkc2hhZG93OiAkbW9kYWwtc2hhZG93XHJcbikge1xyXG4gIEBleHRlbmQgJW1vZGFsO1xyXG4gIEBpbmNsdWRlIG1vZGFsLWxheW91dCgkd2lkdGgpO1xyXG4gIEBpbmNsdWRlIG1vZGFsLXN0eWxlKCRib3JkZXIsICRyYWRpdXMsICRzaGFkb3cpO1xyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKG1vZGFsKSB7XHJcbiAgLm1vZGFsIHtcclxuICAgIEBpbmNsdWRlIG1vZGFsO1xyXG5cclxuICAgIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtb2RhbC1zaXplcykge1xyXG4gICAgICAkd2lkdGg6IG1hcC1nZXQoJG1vZGFsLXNpemVzLCAkc2l6ZSk7XHJcbiAgICAgIEBpZiAkc2l6ZSAhPSBtZWRpdW0ge1xyXG4gICAgICAgIC4jeyRzaXplfSA+ICYgeyBAaW5jbHVkZSBtb2RhbC1sYXlvdXQoJHdpZHRoKTsgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRpYWxvZyA+ICYge1xyXG4gICAgICBAaW5jbHVkZSBtb2RhbC1kaWFsb2c7XHJcbiAgICB9XHJcbiAgICAuY29sbGFwc2UgPiAmIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC4jeyRtb2RhbC1vdmVybGF5LWNsYXNzfSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAkbW9kYWwtemluZGV4O1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbC1vdmVybGF5LWJhY2tncm91bmQ7XHJcblxyXG4gICAgLy8gSG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IGNlbnRlciB0aGUgbW9kYWxcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qXHJcbiAgU1dJVENIXHJcbiAgLS0tLS0tXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gU3dpdGNoXHJcbiRzd2l0Y2gtd2lkdGg6IHJlbS1jYWxjKDUwKSAhZGVmYXVsdDtcclxuJHN3aXRjaC1oZWlnaHQ6IHJlbS1jYWxjKDMyKSAhZGVmYXVsdDtcclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAjY2NjICFkZWZhdWx0O1xyXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuJHN3aXRjaC1ib3JkZXI6IDAgIWRlZmF1bHQ7XHJcbiRzd2l0Y2gtcmFkaXVzOiA5OTk5cHggIWRlZmF1bHQ7XHJcbiRzd2l0Y2gtYW5pbWF0aW9uLXNwZWVkOiAwLjE1cyAhZGVmYXVsdDtcclxuXHJcbiRzd2l0Y2gtcGFkZGxlLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiA0cHggIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuJXN3aXRjaCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICA+IGlucHV0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgPiBsYWJlbCB7XHJcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgIC8vIFBhZGRsZVxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLypcclxuICBEZWZpbmVzIHRoZSBkaW1tZW5zaW9ucyBvZiB0aGUgc3dpdGNoLlxyXG5cclxuICAkd2lkdGggLSB3aWR0aCBvZiB0aGUgc3dpdGNoLlxyXG4gICRoZWlnaHQgLSBoZWlnaHQgb2YgdGhlIHN3aXRjaC5cclxuKi9cclxuQG1peGluIHN3aXRjaC1sYXlvdXQoXHJcbiAgJHdpZHRoOiAkc3dpdGNoLXdpZHRoLFxyXG4gICRoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0XHJcbikge1xyXG4gIHdpZHRoOiAkd2lkdGg7XHJcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG5cclxuICA+IGxhYmVsIHtcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgd2lkdGg6ICRoZWlnaHQ7XHJcbiAgICAgIGhlaWdodDogJGhlaWdodDtcclxuICAgIH1cclxuICB9XHJcbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgbGVmdDogJHdpZHRoIC0gJGhlaWdodDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzd2l0Y2gtc3R5bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZCxcclxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmUsXHJcbiAgJGJvcmRlcjogJHN3aXRjaC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJHN3aXRjaC1yYWRpdXMsXHJcbiAgJHBhZGRsZS1jb2xvcjogJHN3aXRjaC1wYWRkbGUtY29sb3IsXHJcbiAgJHBhZGRsZS1vZmZzZXQ6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldCxcclxuICAkYW5pbWF0aW9uLXNwZWVkOiAkc3dpdGNoLWFuaW1hdGlvbi1zcGVlZFxyXG4pIHtcclxuICBAaWYgaGFzdmFsdWUoJGJvcmRlcikge1xyXG4gICAgYm9yZGVyOiAkYm9yZGVyO1xyXG4gIH1cclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG5cclxuICA+IGxhYmVsIHtcclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJHBhZGRsZS1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuICAgICAgdHJhbnNpdGlvbjogbGVmdCAkYW5pbWF0aW9uLXNwZWVkIGVhc2Utb3V0O1xyXG5cclxuICAgICAgQGlmIGhhc3ZhbHVlKCRwYWRkbGUtb2Zmc2V0KSB7XHJcbiAgICAgICAgYm9yZGVyOiAkcGFkZGxlLW9mZnNldCBzb2xpZCAkYmFja2dyb3VuZFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwge1xyXG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgQGlmIGhhc3ZhbHVlKCRwYWRkbGUtb2Zmc2V0KSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1hY3RpdmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzd2l0Y2goKSB7XHJcbiAgQGV4dGVuZCAlc3dpdGNoO1xyXG4gIEBpbmNsdWRlIHN3aXRjaC1sYXlvdXQ7XHJcbiAgQGluY2x1ZGUgc3dpdGNoLXN0eWxlO1xyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKHN3aXRjaCkge1xyXG4gIC5zd2l0Y2gge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoO1xyXG5cclxuICAgICYuc21hbGwgeyBAaW5jbHVkZSBzd2l0Y2gtbGF5b3V0KHJlbS1jYWxjKDQwKSwgcmVtLWNhbGMoMjYpKTsgfVxyXG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHN3aXRjaC1sYXlvdXQocmVtLWNhbGMoNjApLCByZW0tY2FsYygzOCkpOyB9XHJcbiAgfVxyXG59XHJcbiIsIi8qXHJcbiAgVEFCU1xyXG4gIC0tLS1cclxuKi9cclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBUYWJzXHJcbiR0YWJzdHJpcC1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuXHJcbiR0YWItdGl0bGUtYmFja2dyb3VuZDogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XHJcbiR0YWItdGl0bGUtYmFja2dyb3VuZC1ob3Zlcjogc21hcnRzY2FsZSgkdGFiLXRpdGxlLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJHRhYi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZTogc21hcnRzY2FsZSgkdGFiLXRpdGxlLWJhY2tncm91bmQsIDMlKSAhZGVmYXVsdDtcclxuJHRhYi10aXRsZS1jb2xvcjogaXNpdGxpZ2h0KCR0YWItdGl0bGUtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcbiR0YWItdGl0bGUtY29sb3ItYWN0aXZlOiAkdGFiLXRpdGxlLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJHRhYi10aXRsZS1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbiR0YWItY29udGVudC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuQG1peGluIHRhYnN0cmlwKFxyXG5cdCRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcclxuXHQkYmFja2dyb3VuZDogJHRhYnN0cmlwLWJhY2tncm91bmRcclxuKSB7XHJcblx0LypcclxuXHRcdENvbnRhaW5lciBzdHlsZXNcclxuXHQqL1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcblxyXG5cdEBpZiAkb3JpZW50YXRpb24gPT0gdmVydGljYWwge1xyXG5cdCAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHRhYnN0cmlwLWl0ZW0oXHJcblx0JGJhY2tncm91bmQ6ICR0YWItdGl0bGUtYmFja2dyb3VuZCxcclxuXHQkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi10aXRsZS1iYWNrZ3JvdW5kLWhvdmVyLFxyXG5cdCRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZSxcclxuXHQkY29sb3I6ICR0YWItdGl0bGUtY29sb3IsXHJcblx0JGNvbG9yLWFjdGl2ZTogJHRhYi10aXRsZS1jb2xvci1hY3RpdmUsXHJcblx0JHBhZGRpbmc6ICR0YWItdGl0bGUtcGFkZGluZ1xyXG4pIHtcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBtYXJnaW46IDA7XHJcbiAgZmxleDogMCAxIGF1dG87XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcclxuICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICAgIH1cclxuICB9XHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0YWItY29udGVudChcclxuXHQkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcclxuKSB7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBtaXhpbiB0YWItY29udGVudC1pdGVtIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyh0YWJzKSB7XHJcbiAgLnRhYnMge1xyXG4gICAgQGluY2x1ZGUgdGFic3RyaXAoaG9yaXpvbnRhbCk7XHJcblxyXG4gICAgJi52ZXJ0aWNhbCB7XHJcbiAgICAgIEBpbmNsdWRlIHRhYnN0cmlwKHZlcnRpY2FsKTtcclxuICAgIH1cclxuXHJcbiAgICAudGFiLWl0ZW0ge1xyXG4gICAgICBAaW5jbHVkZSB0YWJzdHJpcC1pdGVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYi1jb250ZW50cyB7XHJcbiAgICBAaW5jbHVkZSB0YWItY29udGVudDtcclxuXHJcbiAgICAudGFiLWNvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSB0YWItY29udGVudC1pdGVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxyXG5cdE9mZi1jYW52YXMgbWVudVxyXG4gIC0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICBBIGdlbmVyaWMgY29udGFpbmVyIHRoYXQgc3RheXMgZml4ZWQgdG8gdGhlIGxlZnQsIHRvcCwgcmlnaHQsIG9yIGJvdHRvbSBvZiB0aGUgc2NyZWVuLCBhbmQgaXMgc3VtbW9uZWQgd2hlbiBuZWVkZWQuIFdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLCB0aGUgYXBwIGZyYW1lIHNoaWZ0cyBvdmVyIHRvIHJldmVhbCB0aGUgbWVudS5cclxuKi9cclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBPZmYtY2FudmFzXHJcbiRvZmZjYW52YXMtc2l6ZS1ob3Jpem9udGFsOiAyNTBweCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1zaXplLXZlcnRpY2FsOiAyNTBweCAhZGVmYXVsdDtcclxuXHJcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1jb2xvcjogaXNpdGxpZ2h0KCRvZmZjYW52YXMtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtcGFkZGluZzogMCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1zaGFkb3c6IDNweCAwIDEwcHggcmdiYShibGFjaywgMC4yNSkgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYW5pbWF0aW9uLXNwZWVkOiAwLjI1cyAhZGVmYXVsdDtcclxuXHJcbiRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3I6ICcuZ3JpZC1mcmFtZScgIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuJW9mZi1jYW52YXMge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtYW5pbWF0aW9uLXNwZWVkIGVhc2Utb3V0O1xyXG4gIHotaW5kZXg6IDI7XHJcblxyXG4gIC8vIEFjdGl2ZSBzdGF0ZVxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC8vIEZyYW1lIHN0eWxlc1xyXG4gICYgfiAjeyRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3J9IHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCwwKTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dDtcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIH1cclxufVxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1kZXRhY2hlZCB7XHJcbiAgei1pbmRleDogMDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG5cclxuICAmLCAmLmlzLWFjdGl2ZSB7XHJcbiAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmIH4gI3skb2ZmY2FudmFzLWZyYW1lLXNlbGVjdG9yfSB7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDE1cHggcmdiYSgwLDAsMCwwLjUpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG9mZi1jYW52YXMtbGF5b3V0KFxyXG4gICRwb3NpdGlvbjogbGVmdCxcclxuICAkc2l6ZTogZGVmYXVsdCxcclxuICAkc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvd1xyXG4pIHtcclxuICAvKlxyXG4gICAgR2V0IHNoYWRvdyB2YWx1ZXMgZm9yIGxhdGVyIHVzZVxyXG4gICovXHJcbiAgJHNoYWRvdy1sZW5ndGg6ICcnO1xyXG4gICRzaGFkb3ctc2l6ZTogJyc7XHJcbiAgJHNoYWRvdy1jb2xvcjogJyc7XHJcbiAgQGlmIGhhc3ZhbHVlKCRzaGFkb3cpIHtcclxuICAgICRzaGFkb3ctbGVuZ3RoOiBnZXQtc2hhZG93LXZhbHVlKCRzaGFkb3csIHgpO1xyXG4gICAgJHNoYWRvdy1zaXplOiBnZXQtc2hhZG93LXZhbHVlKCRzaGFkb3csIHNpemUpO1xyXG4gICAgJHNoYWRvdy1jb2xvcjogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCBjb2xvcik7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgU2l6aW5nXHJcbiAgKi9cclxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQgb3IgJHBvc2l0aW9uID09IHJpZ2h0IHtcclxuICAgIEBpZiAkc2l6ZSA9PSBkZWZhdWx0IHtcclxuICAgICAgJHNpemU6ICRvZmZjYW52YXMtc2l6ZS1ob3Jpem9udGFsO1xyXG4gICAgfVxyXG4gICAgd2lkdGg6ICRzaXplO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAaWYgJHNpemUgPT0gZGVmYXVsdCB7XHJcbiAgICAgICRzaXplOiAkb2ZmY2FudmFzLXNpemUtdmVydGljYWw7XHJcbiAgICB9XHJcbiAgICBoZWlnaHQ6ICRzaXplO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgUG9zaXRpb25pbmdcclxuICAqL1xyXG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgQGlmIGhhc3ZhbHVlKCRzaGFkb3cpIHsgYm94LXNoYWRvdzogaW5zZXQgKC0kc2hhZG93LWxlbmd0aCkgMCAkc2hhZG93LXNpemUgJHNoYWRvdy1jb2xvcjsgfVxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7IGJveC1zaGFkb3c6IGluc2V0ICRzaGFkb3ctbGVuZ3RoIDAgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKSAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XHJcbiAgICBAaWYgaGFzdmFsdWUoJHNoYWRvdykgeyBib3gtc2hhZG93OiBpbnNldCAwICgtJHNoYWRvdy1sZW5ndGgpICRzaGFkb3ctc2l6ZSAkc2hhZG93LWNvbG9yOyB9XHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgICYgfiAjeyRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3J9IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKSAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICAgIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7IGJveC1zaGFkb3c6IGluc2V0IDAgJHNoYWRvdy1sZW5ndGggJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKSAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJG9mZmNhbnZhcy1jb2xvcixcclxuICAkcGFkZGluZzogJG9mZmNhbnZhcy1wYWRkaW5nXHJcbikge1xyXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICBAaWYgJGNvbG9yID09IGF1dG8ge1xyXG4gICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCwgIzAwMCwgI2ZmZik7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG5cclxuICBAaWYgaGFzdmFsdWUoJHBhZGRpbmcpIHtcclxuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhvZmYtY2FudmFzKSB7XHJcbiAgLm9mZi1jYW52YXMge1xyXG4gICAgQGV4dGVuZCAlb2ZmLWNhbnZhcztcclxuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtbGF5b3V0O1xyXG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1zdHlsZTtcclxuXHJcbiAgICAmLnRvcCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbGF5b3V0KHRvcCk7IH1cclxuICAgICYucmlnaHQgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1sYXlvdXQocmlnaHQpOyB9XHJcbiAgICAmLmJvdHRvbSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbGF5b3V0KGJvdHRvbSk7IH1cclxuICAgICYubGVmdCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1sYXlvdXQobGVmdCk7IH1cclxuXHJcbiAgICAmLmRldGFjaGVkIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1kZXRhY2hlZDsgfVxyXG5cclxuICAgICYucHJpbWFyeSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtc3R5bGUoJHByaW1hcnktY29sb3IsIGF1dG8pOyB9XHJcbiAgICAmLmRhcmsgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXN0eWxlKCRkYXJrLWNvbG9yLCBhdXRvKTsgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxyXG4gIEFDQ09SRElPTlxyXG4gIC0tLS0tLS0tLVxyXG5cclxuICBUaGUgdHJ1c3kgYWNjb3JkaW9uIGFsbG93cyB5b3UgdG8gY3JlYXRlIGEgc2VyaWVzIG9mIHZlcnRpY2FsIHRhYnMuXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gQWNjb3JkaW9uXHJcbiRhY2NvcmRpb24tYm9yZGVyOiAxcHggc29saWQgJGdyYXktZGFyayAhZGVmYXVsdDtcclxuXHJcbiRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZDogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XHJcbiRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZC1ob3Zlcjogc21hcnRzY2FsZSgkYWNjb3JkaW9uLXRpdGxlLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZTogc21hcnRzY2FsZSgkYWNjb3JkaW9uLXRpdGxlLWJhY2tncm91bmQsIDMlKSAhZGVmYXVsdDtcclxuJGFjY29yZGlvbi10aXRsZS1jb2xvcjogaXNpdGxpZ2h0KCRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcbiRhY2NvcmRpb24tdGl0bGUtY29sb3ItYWN0aXZlOiBpc2l0bGlnaHQoJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcclxuXHJcbiRhY2NvcmRpb24tdGl0bGUtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xyXG4vLy9cclxuXHJcbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZCxcclxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLWhvdmVyLFxyXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZSxcclxuICAkY29sb3I6ICRhY2NvcmRpb24tdGl0bGUtY29sb3IsXHJcbiAgJGNvbG9yLWFjdGl2ZTogJGFjY29yZGlvbi10aXRsZS1jb2xvci1hY3RpdmUsXHJcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tdGl0bGUtcGFkZGluZ1xyXG4pIHtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICB9XHJcblxyXG4gIC5pcy1hY3RpdmUgPiAmIHtcclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcclxuICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGFjY29yZGlvbi1jb250ZW50KFxyXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZ1xyXG4pIHtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuXHJcbiAgZGlzcGxheTogbm9uZTtcclxuICAuaXMtYWN0aXZlID4gJiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoYWNjb3JkaW9uKSB7XHJcbiAgLmFjY29yZGlvbiB7XHJcbiAgICBAaWYgaGFzdmFsdWUoJGFjY29yZGlvbi1ib3JkZXIpIHtcclxuICAgICAgYm9yZGVyOiAkYWNjb3JkaW9uLWJvcmRlcjtcclxuICAgIH1cclxuICB9XHJcbiAgICAuYWNjb3JkaW9uLWl0ZW0ge1xyXG5cclxuICAgIH1cclxuICAgIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XHJcbiAgICB9XHJcbiAgICAuYWNjb3JkaW9uLWNvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */