diff --git a/README.md b/README.md index e2c9dd0a..13907071 100644 --- a/README.md +++ b/README.md @@ -65,12 +65,11 @@ Why use `scc`? - Large language support - Can ignore duplicate files - Has complexity estimations + - You need to tell the difference between Coq and Verilog in the same directory Why not use `scc`? - - Unable to tell the difference between Coq and Verilog (currently, if enough people raise a bug it will be resolved) - You don't like Go for some reason - - You are working on a Linux system with less than 4 CPU cores and really need the fastest counter possible (use loc or polyglot) ### Usage @@ -307,7 +306,7 @@ Creole (creole) Crystal (cr) CSS (css) CSV (csv) -Cython (pyx) +Cython (pyx,pxi,pxd) D (d) Dart (dart) Device Tree (dts,dtsi) @@ -451,7 +450,7 @@ SVG (svg) Swift (swift) Swig (i) Systemd (automount,device,link,mount,path,scope,service,slice,socket,swap,target,timer) -SystemVerilog (sv,svh) +SystemVerilog (sv,svh,v) TaskPaper (taskpaper) TCL (tcl) TeX (tex,sty) @@ -463,6 +462,7 @@ TypeScript Typings (d.ts) Unreal Script (uc,uci,upkg) Ur/Web (ur,urs) Ur/Web Project (urp) +V (v) Vala (vala) Varnish Configuration (vcl) Verilog (vg,vh) diff --git a/examples/shared_extension/coq/Qabs.v b/examples/shared_extension/coq/Qabs.v new file mode 100644 index 00000000..18655906 --- /dev/null +++ b/examples/shared_extension/coq/Qabs.v @@ -0,0 +1,168 @@ +(************************************************************************) +(* * The Coq Proof Assistant / The Coq Development Team *) +(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *) +(* Type), (0 <= x -> P x) -> (x <= 0 -> P (- x)) -> P (Qabs x). +Proof. +intros x P H1 H2. +destruct x as [[|xn|xn] xd]; +[apply H1|apply H1|apply H2]; +abstract (compute; discriminate). +Defined. + +Add Morphism Qabs with signature Qeq ==> Qeq as Qabs_wd. +intros [xn xd] [yn yd] H. +simpl. +unfold Qeq in *. +simpl in *. +change (Zpos yd)%Z with (Z.abs (Zpos yd)). +change (Zpos xd)%Z with (Z.abs (Zpos xd)). +repeat rewrite <- Z.abs_mul. +congruence. +Qed. + +Lemma Qabs_pos : forall x, 0 <= x -> Qabs x == x. +Proof. +intros x H. +apply Qabs_case. +reflexivity. +intros H0. +setoid_replace x with 0. +reflexivity. +apply Qle_antisym; assumption. +Qed. + +Lemma Qabs_neg : forall x, x <= 0 -> Qabs x == - x. +Proof. +intros x H. +apply Qabs_case. +intros H0. +setoid_replace x with 0. +reflexivity. +apply Qle_antisym; assumption. +reflexivity. +Qed. + +Lemma Qabs_nonneg : forall x, 0 <= (Qabs x). +intros x. +apply Qabs_case. +auto. +apply (Qopp_le_compat x 0). +Qed. + +Lemma Zabs_Qabs : forall n d, (Z.abs n#d)==Qabs (n#d). +Proof. +intros [|n|n]; reflexivity. +Qed. + +Lemma Qabs_opp : forall x, Qabs (-x) == Qabs x. +Proof. +intros x. +do 2 apply Qabs_case; try (intros; ring); +(intros H0 H1; +setoid_replace x with 0;[reflexivity|]; +apply Qle_antisym);try assumption; +rewrite Qle_minus_iff in *; +ring_simplify; +ring_simplify in H1; +assumption. +Qed. + +Lemma Qabs_triangle : forall x y, Qabs (x+y) <= Qabs x + Qabs y. +Proof. +intros [xn xd] [yn yd]. +unfold Qplus. +unfold Qle. +simpl. +apply Z.mul_le_mono_nonneg_r;auto with *. +change (Zpos yd)%Z with (Z.abs (Zpos yd)). +change (Zpos xd)%Z with (Z.abs (Zpos xd)). +repeat rewrite <- Z.abs_mul. +apply Z.abs_triangle. +Qed. + +Lemma Qabs_Qmult : forall a b, Qabs (a*b) == (Qabs a)*(Qabs b). +Proof. +intros [an ad] [bn bd]. +simpl. +rewrite Z.abs_mul. +reflexivity. +Qed. + +Lemma Qabs_Qinv : forall q, Qabs (/ q) == / (Qabs q). +Proof. + intros [n d]; simpl. + unfold Qinv. + case_eq n; intros; simpl in *; apply Qeq_refl. +Qed. + +Lemma Qabs_Qminus x y: Qabs (x - y) = Qabs (y - x). +Proof. + unfold Qminus, Qopp. simpl. + rewrite Pos.mul_comm, <- Z.abs_opp. + do 2 f_equal. ring. +Qed. + +Lemma Qle_Qabs : forall a, a <= Qabs a. +Proof. +intros a. +apply Qabs_case; auto with *. +intros H. +apply Qle_trans with 0; try assumption. +change 0 with (-0). +apply Qopp_le_compat. +assumption. +Qed. + +Lemma Qabs_triangle_reverse : forall x y, Qabs x - Qabs y <= Qabs (x - y). +Proof. +intros x y. +rewrite Qle_minus_iff. +setoid_replace (Qabs (x - y) + - (Qabs x - Qabs y)) with ((Qabs (x - y) + Qabs y) + - Qabs x) by ring. +rewrite <- Qle_minus_iff. +setoid_replace (Qabs x) with (Qabs (x-y+y)). +apply Qabs_triangle. +apply Qabs_wd. +ring. +Qed. + +Lemma Qabs_Qle_condition x y: Qabs x <= y <-> -y <= x <= y. +Proof. + split. + split. + rewrite <- (Qopp_opp x). + apply Qopp_le_compat. + apply Qle_trans with (Qabs (-x)). + apply Qle_Qabs. + now rewrite Qabs_opp. + apply Qle_trans with (Qabs x); auto using Qle_Qabs. + intros (H,H'). + apply Qabs_case; trivial. + intros. rewrite <- (Qopp_opp y). now apply Qopp_le_compat. +Qed. + +Lemma Qabs_diff_Qle_condition x y r: Qabs (x - y) <= r <-> x - r <= y <= x + r. +Proof. + intros. unfold Qminus. + rewrite Qabs_Qle_condition. + rewrite <- (Qplus_le_l (-r) (x+-y) (y+r)). + rewrite <- (Qplus_le_l (x+-y) r (y-r)). + setoid_replace (-r + (y + r)) with y by ring. + setoid_replace (r + (y - r)) with y by ring. + setoid_replace (x + - y + (y + r)) with (x + r) by ring. + setoid_replace (x + - y + (y - r)) with (x - r) by ring. + intuition. +Qed. diff --git a/examples/shared_extension/verilog/button_debounce.v b/examples/shared_extension/verilog/button_debounce.v new file mode 100644 index 00000000..f81119ab --- /dev/null +++ b/examples/shared_extension/verilog/button_debounce.v @@ -0,0 +1,79 @@ +// Copyright 2018 Schuyler Eldridge +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +`timescale 1ns / 1ps +module button_debounce + #( + parameter + CLK_FREQUENCY = 10_000_000, + DEBOUNCE_HZ = 2 + // These parameters are specified such that you can choose any power + // of 2 frequency for a debouncer between 1 Hz and + // CLK_FREQUENCY. Note, that this will throw errors if you choose a + // non power of 2 frequency (i.e. count_value evaluates to some + // number / 3 which isn't interpreted as a logical right shift). I'm + // assuming this will not work for DEBOUNCE_HZ values less than 1, + // however, I'm uncertain of the value of a debouncer for fractional + // hertz button presses. + ) + ( + input clk, // clock + input reset_n, // asynchronous reset + input button, // bouncy button + output reg debounce // debounced 1-cycle signal + ); + + localparam + COUNT_VALUE = CLK_FREQUENCY / DEBOUNCE_HZ, + WAIT = 0, + FIRE = 1, + COUNT = 2; + + reg [1:0] state, next_state; + reg [25:0] count; + + always @ (posedge clk or negedge reset_n) + state <= (!reset_n) ? WAIT : next_state; + + always @ (posedge clk or negedge reset_n) begin + if (!reset_n) begin + debounce <= 0; + count <= 0; + end + else begin + debounce <= 0; + count <= 0; + case (state) + WAIT: begin + end + FIRE: begin + debounce <= 1; + end + COUNT: begin + count <= count + 1; + end + endcase + end + end + + always @ * begin + case (state) + WAIT: next_state = (button) ? FIRE : state; + FIRE: next_state = COUNT; + COUNT: next_state = (count > COUNT_VALUE - 1) ? WAIT : state; + default: next_state = WAIT; + endcase + end + +endmodule diff --git a/examples/shared_extension/vlang/users.v b/examples/shared_extension/vlang/users.v new file mode 100644 index 00000000..c7d68953 --- /dev/null +++ b/examples/shared_extension/vlang/users.v @@ -0,0 +1,73 @@ +// Please share your thoughts, suggestions, questions, etc here: +// https://github.com/vlang-io/V/issues/3 + +// I'm very interested in your feedback. + +module main + +import json // V will automatically insert missing imports (like the goimports tool) +import http + +// Right now V requires all consts to be uppercase. +// I'm still not certain about this. +const API_URL = 'https://vlang.io/users.json' + +// V will generate json.encode and json.decode functions for this type since +// `json.decode([]User, ...)` is called later. This results in better +// performance, since reflection is not used. +struct User { + name string // V will automatically format and align your code. + age int // No need to use an additional tool. + is_registered bool +} + +fn main() { + // `http.get()` returns an optional string. + // V optionals combine the features of Rust's Option and Result. + // We must unwrap all optionals with `or`, otherwise V will complain. + s := http.get(API_URL) or { + // `err` is a reserved variable (not a global) that + // contains an error message if there is one + eprintln('Failed to fetch "users.json": $err') + // `or` blocks must end with `return`, `break`, or `continue` + return + } + // Types can be passed as arguments + users := json.decode([]User, s) or { + eprintln('Failed to parse users.json') + return + } + // Encoding JSON doesn't require a type, since V knows what type + // the variable `users` has + println(json.encode(users)) + // Please note the difference between V and Go: + // when there's only one variable, it's a value, not an index. + for user in users { + println('$user.name: $user.age') + } + // `for` loop has an alternative form when an index is required: + for i, user in users { + println('$i) $user') + if !user.can_register() { + // V allows both ' and " to denote strings. + // However, for consistency V will replace " with ' + // unless the string contains an apostrophe. + println("Can't register") + } + } +} + +// The method declaration is the same as in Go. +// There is one big difference. Here `u` can be either passed by value (User) +// or by reference (&User). The compiler will make the right decision +// depending on the size of the User struct. You no longer have to remember +// which one to use. It works here because `u` can't be modified (it's not +// marked as `mut`). +fn (u User) can_register() bool { + return u.age >= 16 +} + +// Here `u` can be modified and it will always be a reference. +fn (u mut User) register() { + u.is_registered = true +} diff --git a/languages.json b/languages.json index 44868007..4468080a 100644 --- a/languages.json +++ b/languages.json @@ -1281,7 +1281,8 @@ "\"", "\"" ] - ] + ], + "keywords": ["Require", "Hypothesis", "Inductive", "Remark", "Lemma", "Proof", "Definition", "Theorem"] }, "Creole": { "complexitychecks": [], @@ -2178,6 +2179,45 @@ "multi_line": [], "quotes": [] }, + "V": { + "complexitychecks": [ + "for ", + "for(", + "if ", + "if(", + "switch ", + "while ", + "else ", + "|| ", + "&& ", + "!= ", + "== " + ], + "extensions": [ + "v" + ], + "line_comment": [ + "//" + ], + "multi_line": [ + [ + "/*", + "*/" + ] + ], + "nestedmultiline": true, + "quotes": [ + [ + "\"", + "\"" + ], + [ + "`", + "`" + ] + ], + "keywords": ["fn", "const", "println", "import", "struct", "module"] + }, "Go": { "complexitychecks": [ "for ", @@ -5300,7 +5340,8 @@ ], "extensions": [ "sv", - "svh" + "svh", + "v" ], "line_comment": [ "//" @@ -5316,7 +5357,8 @@ "\"", "\"" ] - ] + ], + "keywords": ["endmodule", "posedge", "edge", "always", "wire"] }, "Systemd": { "complexitychecks": [], diff --git a/main.go b/main.go index 7429d776..64ba41c6 100644 --- a/main.go +++ b/main.go @@ -1,10 +1,9 @@ package main import ( - "os" - "github.com/boyter/scc/processor" "github.com/spf13/cobra" + "os" ) //go:generate go run scripts/include.go diff --git a/processor/constants.go b/processor/constants.go index 912b8ebc..4218033f 100644 --- a/processor/constants.go +++ b/processor/constants.go @@ -1,5 +1,5 @@ -package processor +package processor const ( -languages = `ewogICJBQkFQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhYmFwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIiwKICAgICAgIlxcXCIiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFTUCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXNhIiwKICAgICAgImFzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJyIsCiAgICAgICJSRU0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFTUC5ORVQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFzYXgiLAogICAgICAiYXNjeCIsCiAgICAgICJhc214IiwKICAgICAgImFzcHgiLAogICAgICAibWFzdGVyIiwKICAgICAgInNpdGVtYXAiLAogICAgICAid2ViaW5mbyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdLAogICAgICBbCiAgICAgICAgIjwlLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBVFMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiIHRoZW4gIiwKICAgICAgIiBlbHNlICIsCiAgICAgICJjYXNlKyAiLAogICAgICAiaWZjYXNlIiwKICAgICAgImxldCAiLAogICAgICAiYW5kICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRhdHMiLAogICAgICAic2F0cyIsCiAgICAgICJhdHMiLAogICAgICAiaGF0cyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdLAogICAgICBbCiAgICAgICAgIi8vLy8iLAogICAgICAgICJUSElTU0hPVUxETkVWRVJBUFBFQVJXRUhPUEUiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJBV0siOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhd2siCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkFjdGlvblNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJBZGEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFkYSIsCiAgICAgICJhZGIiLAogICAgICAiYWRzIiwKICAgICAgInBhZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFnZGEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFnZGEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBbGV4IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQW5kcm9pZCBJbnRlcmZhY2UgRGVmaW5pdGlvbiBMYW5ndWFnZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYWlkbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoqIiwKICAgICAgICAiKi8iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkFydm8iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhdmRsIiwKICAgICAgImF2cHIiLAogICAgICAiYXZzYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQXNjaWlEb2MiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhZG9jIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBc3NlbWJseSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicyIsCiAgICAgICJhc20iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJBdXRvSG90S2V5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhaGsiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkF1dG9jb25mIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIsCiAgICAgICJkbmwiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJBU0giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJhc2giLAogICAgICAiLmJhc2hfbG9naW4iLAogICAgICAiYmFzaF9sb2dpbiIsCiAgICAgICIuYmFzaF9sb2dvdXQiLAogICAgICAiYmFzaF9sb2dvdXQiLAogICAgICAiLmJhc2hfcHJvZmlsZSIsCiAgICAgICJiYXNoX3Byb2ZpbGUiLAogICAgICAiLmJhc2hyYyIsCiAgICAgICJiYXNocmMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJCYXNpYyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxzZWlmICIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiciCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJCYXRjaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYmF0IiwKICAgICAgImJ0bSIsCiAgICAgICJjbWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIlJFTSIsCiAgICAgICI6OiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQmF6ZWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJ6bCIsCiAgICAgICJidWlsZC5iYXplbCIsCiAgICAgICJidWlsZCIsCiAgICAgICJ3b3Jrc3BhY2UiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkJpdGJha2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJiIiwKICAgICAgImJiYXBwZW5kIiwKICAgICAgImJiY2xhc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkJvbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJpZiAiLAogICAgICAiZWxpZiAiLAogICAgICAidW5sZXNzICIsCiAgICAgICIgYW5kICIsCiAgICAgICJmb3IgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0ZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXCJcIlwiIiwKICAgICAgICAiXCJcIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQnJhaW5mdWNrIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJbIiwKICAgICAgIl0iLAogICAgICAiPCIsCiAgICAgICI+IiwKICAgICAgIisiLAogICAgICAiLSIsCiAgICAgICIuIiwKICAgICAgIiwiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiZiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQnVpbGRTdHJlYW0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJic3QiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImMiLAogICAgICAiZWMiLAogICAgICAicGdjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQyBIZWFkZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2giLAogICAgICAiLmNzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDIyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDKysiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNjIiwKICAgICAgImNwcCIsCiAgICAgICJjeHgiLAogICAgICAiYysrIiwKICAgICAgInBjYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkMrKyBIZWFkZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhoIiwKICAgICAgImhwcCIsCiAgICAgICJoeHgiLAogICAgICAiaW5sIiwKICAgICAgImlwcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkNNYWtlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjbWFrZSIsCiAgICAgICJjbWFrZWxpc3RzLnR4dCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkNPQk9MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjb2IiLAogICAgICAiY2JsIiwKICAgICAgImNjcCIsCiAgICAgICJjb2JvbCIsCiAgICAgICJjcHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIioiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNTUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3NzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQ1NWIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3N2IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYWJhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2FiYWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYXJnbyBMb2NrIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYXJnby5sb2NrIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgIlxcXCJcXFwiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInJyciLAogICAgICAgICInJyciCiAgICAgIF0KICAgIF0KICB9LAogICJDYXNzaXVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYXNzaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQ2V5bG9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjZXlsb24iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDbG9qdXJlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjbGoiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb2p1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNsanMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb3N1cmUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIsCiAgICAgICI+PSAiLAogICAgICAiPD0gIiwKICAgICAgIj86ICIsCiAgICAgICI/IDogIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic295IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKioiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQ29mZmVlU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjb2ZmZWUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiIyMjIiwKICAgICAgICAiIyMjIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkNvZ2VudCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY29nZW50IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQ29sZEZ1c2lvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2ZtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0tIiwKICAgICAgICAiLS0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJDb2xkRnVzaW9uIENGU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjZmMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDb3EiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInYiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkNyZW9sZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNyZW9sZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQ3J5c3RhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3IiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJDeXRob24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgImFuZCAiLAogICAgICAib3IgIiwKICAgICAgIm5vdCAiLAogICAgICAiaW4gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHl4IiwKICAgICAgInB4aSIsCiAgICAgICJweGQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIicnJyIsCiAgICAgICAgIicnJyIKICAgICAgXQogICAgXQogIH0sCiAgIkQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLysiLAogICAgICAgICIrLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiRGFydCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZGFydCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkRldmljZSBUcmVlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkdHMiLAogICAgICAiZHRzaSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkRoYWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZGhhbGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJEb2NrZXJmaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkb2NrZXJmaWxlIiwKICAgICAgImRvY2tlcmlnbm9yZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkRvY3VtZW50IFR5cGUgRGVmaW5pdGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImR0ZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRWxpeGlyIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJleCIsCiAgICAgICJleHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIicnJyIsCiAgICAgICAgIicnJyIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkVsbSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZWxtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7LSIsCiAgICAgICAgIi19IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRW1hY3MgRGV2IEVudiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZWRlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJFbWFjcyBMaXNwIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRXJsYW5nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlcmwiLAogICAgICAiaHJsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIlIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJFeHBlY3QiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImV4cCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkV4dGVuc2libGUgU3R5bGVzaGVldCBMYW5ndWFnZSBUcmFuc2Zvcm1hdGlvbnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ4c2x0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJGIyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZnMiLAogICAgICAiZnNpIiwKICAgICAgImZzeCIsCiAgICAgICJmc3NjcmlwdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkYqIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmc3QiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkZJREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZpZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJGT1JUUkFOIExlZ2FjeSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZiIsCiAgICAgICJmb3IiLAogICAgICAiZnRuIiwKICAgICAgImY3NyIsCiAgICAgICJwZm8iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgImMiLAogICAgICAiQyIsCiAgICAgICIhIiwKICAgICAgIioiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJGT1JUUkFOIE1vZGVybiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZjAzIiwKICAgICAgImYwOCIsCiAgICAgICJmOTAiLAogICAgICAiZjk1IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIhIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdCiAgICBdCiAgfSwKICAiRmlzaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZmlzaCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkZvcnRoIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICI0dGgiLAogICAgICAiZm9ydGgiLAogICAgICAiZnIiLAogICAgICAiZnJ0IiwKICAgICAgImZ0aCIsCiAgICAgICJmODMiLAogICAgICAiZmIiLAogICAgICAiZnBtIiwKICAgICAgImU0IiwKICAgICAgInJ4IiwKICAgICAgImZ0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJcXFxcIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIiggIiwKICAgICAgICAiKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkZyYWdtZW50IFNoYWRlciBGaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmc2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJGcmVlbWFya2VyIFRlbXBsYXRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICI8I2xpc3QgIiwKICAgICAgIjwjYXNzaWduICIsCiAgICAgICI8I2lmICIsCiAgICAgICI8I2Vsc2VpZiAiLAogICAgICAiPCNlbHNlPiIsCiAgICAgICI8I2Vsc2U+ICIsCiAgICAgICI8I3N3aXRjaCAgIiwKICAgICAgIjwjY2FzZSAiLAogICAgICAiPCNkZWZhdWx0PiIsCiAgICAgICI8I2RlZmF1bHQ+ICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZnRsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwjLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJHRFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ2QiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdCiAgICBdCiAgfSwKICAiR0xTTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmVydCIsCiAgICAgICJ0ZXNjIiwKICAgICAgInRlc2UiLAogICAgICAiZ2VvbSIsCiAgICAgICJmcmFnIiwKICAgICAgImNvbXAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJHTiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYoIiwKICAgICAgImlmICgiLAogICAgICAiZWxzZSBpZigiLAogICAgICAiZWxzZSBpZiAoIiwKICAgICAgImVsc2UoIiwKICAgICAgImVsc2UgKCIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJnbiIsCiAgICAgICJnbmkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkdhbWUgTWFrZXIgTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInJlcGVhdCAiLAogICAgICAicmVwZWF0KCIsCiAgICAgICJ8fCAiLAogICAgICAib3IgIiwKICAgICAgIiYmICIsCiAgICAgICJhbmQgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJnbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIi8vLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiR2FtZSBNYWtlciBQcm9qZWN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieXlwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJHaGVya2luIFNwZWNpZmljYXRpb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImdpdmVuIiwKICAgICAgIndoZW4iLAogICAgICAidGhlbiIsCiAgICAgICJhbmQiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmZWF0dXJlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJHbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ28iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiYCIsCiAgICAgICAgImAiCiAgICAgIF0KICAgIF0KICB9LAogICJHbyBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAie3tpZiAiLAogICAgICAie3sgaWYgIiwKICAgICAgInt7ZWxzZSIsCiAgICAgICJ7eyBlbHNlIiwKICAgICAgInt7cmFuZ2UgIiwKICAgICAgInt7IHJhbmdlICIsCiAgICAgICJ7e3dpdGgiLAogICAgICAie3sgd2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRtcGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAie3svKiIsCiAgICAgICAgIiovfX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJHcmFkbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJncmFkbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJHcm9vdnkiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImdyb292eSIsCiAgICAgICJncnQiLAogICAgICAiZ3RwbCIsCiAgICAgICJndnkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJoZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhUTUwiOiB7CiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImh0bWwiLAogICAgICAiaHRtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJIYW1sZXQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhhbWxldCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiSGFuZGxlYmFycyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGJzIiwKICAgICAgImhhbmRsZWJhcnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJIYXBweSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInkiLAogICAgICAibHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhhc2tlbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7LSIsCiAgICAgICAgIi19IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSGF4ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaHgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJJREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImlkbCIsCiAgICAgICJ3ZWJpZGwiLAogICAgICAid2lkbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIklkcmlzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpZHIiLAogICAgICAibGlkciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiey0iLAogICAgICAgICItfSIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJcXFwiXFxcIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJJbnRlbCBIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpaGV4IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJJc2FiZWxsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGh5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7KiIsCiAgICAgICAgIip9IgogICAgICBdLAogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAi4oC5IiwKICAgICAgICAi4oC6IgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXFw8b3Blbj4iLAogICAgICAgICJcXFxcPGNsb3NlPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiJyciLAogICAgICAgICInJyIKICAgICAgXQogICAgXQogIH0sCiAgIkpBSSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamFpIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJKU09OIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAianNvbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSlNPTkwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc29ubCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSlNYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc3giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJKYWRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZiAiLAogICAgICAiZWxzZSBpZiAiLAogICAgICAidW5sZXNzICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImphZGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSmF2YSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamF2YSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkphdmFTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzIiwKICAgICAgIm1qcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkphdmFTZXJ2ZXIgUGFnZXMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkplbmtpbnMgQnVpbGRmaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamVua2luc2ZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkppbmphIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJ7JSBmb3IgIiwKICAgICAgInslLSBmb3IgIiwKICAgICAgInslIGlmICIsCiAgICAgICJ7JS0gaWYgIiwKICAgICAgInslIGVsc2UgIiwKICAgICAgInslLSBlbHNlICIsCiAgICAgICJ7JSBlbGlmICIsCiAgICAgICJ7JSBtYWNybyAiLAogICAgICAieyUtIG1hY3JvICIsCiAgICAgICJ7JSBjYWxsICIsCiAgICAgICJ7JS0gY2FsbCAiLAogICAgICAieyUgZmlsdGVyICIsCiAgICAgICJ7JS0gZmlsdGVyICIsCiAgICAgICJ7JSBzZXQgIiwKICAgICAgInslIGluY2x1ZGUgIiwKICAgICAgInslIGZyb20gIiwKICAgICAgInslIGV4dGVuZHMgIiwKICAgICAgInslIHdpdGggIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamluamEiLAogICAgICAiajIiLAogICAgICAiamluamEyIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInsjIiwKICAgICAgICAiI30iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKdWxpYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiIz0iLAogICAgICAgICI9IyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJcXFwiXFxcIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJKdWxpdXMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImp1bGl1cyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkp1cHl0ZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpcHluYiIsCiAgICAgICJqcHluYiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSnVzdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAianVzdGZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJLb3JuIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJrc2giLAogICAgICAiLmtzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiS290bGluIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJrdCIsCiAgICAgICJrdHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkxEIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibGRzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTEVTUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxlc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJMRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJMT0xDT0RFIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJBV1NVTSBUSFggIiwKICAgICAgIk8gTk9FUyAiLAogICAgICAiUExaIE9QRU4gRklMRSAiLAogICAgICAiSU0gSU4gWVIgIiwKICAgICAgIk8gUkxZPyIsCiAgICAgICJPIFJMWT8gIiwKICAgICAgIldURj8iLAogICAgICAiV1RGPyAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsb2wiLAogICAgICAibG9scyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiQlRXIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIk9CVFciLAogICAgICAgICJUTERSIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTGFUZVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0ZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkxlYW4iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxlYW4iLAogICAgICAiaGxlYW4iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8tIiwKICAgICAgICAiLS8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkxpY2Vuc2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsaWNlbnNlIiwKICAgICAgImxpY2VuY2UiLAogICAgICAiY29weWluZyIsCiAgICAgICJjb3B5aW5nMyIsCiAgICAgICJ1bmxpY2Vuc2UiLAogICAgICAidW5saWNlbmNlIiwKICAgICAgImxpY2Vuc2UtbWl0IiwKICAgICAgImxpY2VuY2UtbWl0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJMaXNwIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsaXNwIiwKICAgICAgImxzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10KICB9LAogICJMdWEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImx1YSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLS1bWyIsCiAgICAgICAgIl1dIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkx1Y2l1cyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibHVjaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVFMIEhlYWRlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXFoIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVFMNCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXE0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVFMNSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXE1IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVNCdWlsZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3Nwcm9qIiwKICAgICAgInZicHJvaiIsCiAgICAgICJmc3Byb2oiLAogICAgICAicHJvcHMiLAogICAgICAidGFyZ2V0cyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVVNUFMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1wcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTWFjcm9tZWRpYSBlWHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm14bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1hZGxhbmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1hZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7IyIsCiAgICAgICAgIiN9IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWFrZWZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1ha2VmaWxlIiwKICAgICAgIm1hayIsCiAgICAgICJtayIsCiAgICAgICJicCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWFrbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiJSBmb3IgIiwKICAgICAgIiUgaWYgIiwKICAgICAgIiUgZWxzZSAiLAogICAgICAiJSBlbGlmICIsCiAgICAgICI8JSBpbmNsdWRlICIsCiAgICAgICI8JWRlZiAiLAogICAgICAiPCVwYWdlICIsCiAgICAgICI8JWRlZiAiLAogICAgICAiPCVibG9jayAiLAogICAgICAiPCVuYW1lc3BhY2UgIiwKICAgICAgIjwlaW5oZXJpdCAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtYWtvIiwKICAgICAgIm1hbyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCVkb2M+IiwKICAgICAgICAiPC8lZG9jPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1hcmtkb3duIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibWQiLAogICAgICAibWFya2Rvd24iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1lc29uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3JlYWNoICIsCiAgICAgICJpZiAiLAogICAgICAiZWxpZiAiLAogICAgICAidW5sZXNzICIsCiAgICAgICJhbmQgIiwKICAgICAgIm9yICIsCiAgICAgICJlbHNlICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1lc29uLmJ1aWxkIiwKICAgICAgIm1lc29uX29wdGlvbnMudHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJycnIiwKICAgICAgICAiJycnIgogICAgICBdCiAgICBdCiAgfSwKICAiTW9kdWxhMyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibTMiLAogICAgICAibWciLAogICAgICAiaWciLAogICAgICAiaTMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIk1vZHVsZS1EZWZpbml0aW9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkZWYiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk11c3RhY2hlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtdXN0YWNoZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJOaW0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm5pbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJcXFwiXFxcIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJOaXgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm5peCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIk9DYW1sIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtbCIsCiAgICAgICJtbGkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIk9iamVjdGl2ZSBDIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiT2JqZWN0aXZlIEMrKyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibW0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJPcGFsYW5nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJvcGEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJPcmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm9yZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyAiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk96IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJveiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiUEhQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwaHAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJQS0dCVUlMRCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBrZ2J1aWxkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQU0wgQXNzZXJ0aW9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwc2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJQYXNjYWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBhcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7IiwKICAgICAgICAifSIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdLAogICAgICBbCiAgICAgICAgInsiLAogICAgICAgICIqKSIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIn0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiUGF0Y2giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwYXRjaCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUGVybCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGwiLAogICAgICAicG0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPXBvZCIsCiAgICAgICAgIj1jdXQiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiUGxhaW4gVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRleHQiLAogICAgICAidHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQb2xseSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicG9sbHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlBvd2Vyc2hlbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIndoaWxlICIsCiAgICAgICJ3aGlsZSgiLAogICAgICAidW50aWwgIiwKICAgICAgInVudGlsKCIsCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiZm9yZWFjaCAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiaWYgIiwKICAgICAgImVsc2VpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAic3dpdGNoIiwKICAgICAgInN3aXRjaCgiLAogICAgICAiLWd0IiwKICAgICAgIi1sdCIsCiAgICAgICItZXEiLAogICAgICAiLW5lIiwKICAgICAgIi1nZSIsCiAgICAgICItbGUiLAogICAgICAiLWluIiwKICAgICAgIi1ub3RpbiIsCiAgICAgICItY29udGFpbnMiLAogICAgICAiLW5vdGNvbnRhaW5zIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHMxIiwKICAgICAgInBzbTEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCMiLAogICAgICAgICIjPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlByb2Nlc3NpbmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBkZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlByb2xvZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicCIsCiAgICAgICJwcm8iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlByb3BlcnRpZXMgRmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInByb3BlcnRpZXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlByb3RvY29sIEJ1ZmZlcnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInByb3RvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUHVwcGV0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9YmVnaW4iLAogICAgICAgICI9ZW5kIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlB1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB1cnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQeXRob24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgImFuZCAiLAogICAgICAib3IgIiwKICAgICAgIm5vdCAiLAogICAgICAiaW4gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIicnJyIsCiAgICAgICAgIicnJyIKICAgICAgXQogICAgXQogIH0sCiAgIlFDTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicWNsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiUU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJSIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJSYWtlZmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmFrZSIsCiAgICAgICJyYWtlZmlsZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9YmVnaW4iLAogICAgICAgICI9ZW5kIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlJhem9yIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2h0bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJAKiIsCiAgICAgICAgIipAIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVTdHJ1Y3R1cmVkVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJzdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVwb3J0IERlZmluaXRpb24gTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlJvYm90IEZyYW1ld29yayI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJvYm90IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJSdWJ5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyYiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9YmVnaW4iLAogICAgICAgICI9ZW5kIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlJ1YnkgSFRNTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmh0bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlJ1c3QiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTQVMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImRvIiwKICAgICAgIiVkbyIsCiAgICAgICJpZiIsCiAgICAgICIlaWYiLAogICAgICAiZWxzZSIsCiAgICAgICIlZWxzZSIsCiAgICAgICJjYXNlIiwKICAgICAgIm9yIiwKICAgICAgImFuZCIsCiAgICAgICJePSIsCiAgICAgICLCrD0iLAogICAgICAifj0iLAogICAgICAibmUiLAogICAgICAiZXEiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIioiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlNLSUxMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiU1BEWCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNwZHgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNRTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3FsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlNSZWNvZGUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNydCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOzsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNWRyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3ZnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTYXNzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzYXNzIiwKICAgICAgInNjc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTY2FsYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2MiLAogICAgICAic2NhbGEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTY2hlbWUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNjbSIsCiAgICAgICJzcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10KICB9LAogICJTY29ucyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3NpZyIsCiAgICAgICJzY29uc3RydWN0IiwKICAgICAgInNjb25zY3JpcHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIicnJyIsCiAgICAgICAgIicnJyIKICAgICAgXQogICAgXQogIH0sCiAgIlNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzaCIsCiAgICAgICIudGNzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiU21hcnR5IFRlbXBsYXRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiaW5jbHVkZSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0cGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyoiLAogICAgICAgICIqfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNvZnRicmlkZ2UgQmFzaWMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2JsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdCiAgICBdCiAgfSwKICAiU3BlY21hbiBlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIsCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICInPiIsCiAgICAgICAgIjwnIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiU3BpY2UgTmV0bGlzdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2t0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJTdGFuZGFyZCBNTCAoU01MKSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic21sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTdGF0YSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yZWFjaCIsCiAgICAgICJmb3J2YWx1ZXMiLAogICAgICAiaWYiLAogICAgICAiZWxzZSIsCiAgICAgICJ3aGlsZSIsCiAgICAgICJzd2l0Y2giLAogICAgICAifCIsCiAgICAgICImIiwKICAgICAgIiE9IiwKICAgICAgIj09IgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZG8iLAogICAgICAiYWRvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIsCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiYFwiIiwKICAgICAgICAiXCInIgogICAgICBdCiAgICBdCiAgfSwKICAiU3R5bHVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJ1bmxlc3MgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInN0eWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTd2lmdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3dpZnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlN3aWciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTeXN0ZW1WZXJpbG9nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8ICIsCiAgICAgICImICIsCiAgICAgICIhPSAiLAogICAgICAiIT09ICIsCiAgICAgICI9PSAiLAogICAgICAiZm9yZWFjaCAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiY2FzZSAiLAogICAgICAiY2FzZSgiLAogICAgICAiY2FzZXggIiwKICAgICAgImNhc2V4KCIsCiAgICAgICJjYXNleiAiLAogICAgICAiY2FzZXooIiwKICAgICAgImNhc2V4eiAiLAogICAgICAiY2FzZXh6KCIsCiAgICAgICJmb3JrICIsCiAgICAgICIgPyAiLAogICAgICAiaW5zaWRlIiwKICAgICAgIndpdGgiLAogICAgICAiZXZlbnQgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3YiLAogICAgICAic3ZoIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiU3lzdGVtZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImF1dG9tb3VudCIsCiAgICAgICJkZXZpY2UiLAogICAgICAibGluayIsCiAgICAgICJtb3VudCIsCiAgICAgICJwYXRoIiwKICAgICAgInNjb3BlIiwKICAgICAgInNlcnZpY2UiLAogICAgICAic2xpY2UiLAogICAgICAic29ja2V0IiwKICAgICAgInN3YXAiLAogICAgICAidGFyZ2V0IiwKICAgICAgInRpbWVyIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJUQ0wiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRjbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlRPTUwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRvbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIicnJyIsCiAgICAgICAgIicnJyIKICAgICAgXQogICAgXQogIH0sCiAgIlRhc2tQYXBlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRhc2twYXBlciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVGVYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0ZXgiLAogICAgICAic3R5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIlIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJUaHJpZnQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0aHJpZnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlR3aWcgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgInslIGZvciAiLAogICAgICAieyUgaWYgIiwKICAgICAgInslIGVsc2UgIiwKICAgICAgInslIGVsc2VpZiAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0d2lnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJUeXBlU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8ICIsCiAgICAgICJ8fCAiLAogICAgICAiJiAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICIhPT0gIiwKICAgICAgIj09ICIsCiAgICAgICI9PT0gIiwKICAgICAgImZvcmVhY2goIiwKICAgICAgImNhc2UgIiwKICAgICAgImNhc2UoIiwKICAgICAgImNhc2V4ICIsCiAgICAgICJjYXNleCgiLAogICAgICAiY2FzZXogIiwKICAgICAgImNhc2V6KCIsCiAgICAgICJjYXNleHogIiwKICAgICAgImNhc2V4eigiLAogICAgICAiZm9yayIsCiAgICAgICI/IiwKICAgICAgIjoiLAogICAgICAiaW5zaWRlIiwKICAgICAgIndpdGgiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0cyIsCiAgICAgICJ0c3giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJUeXBlU2NyaXB0IFR5cGluZ3MiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIiE9PSAiLAogICAgICAiPT0gIiwKICAgICAgIj09PSAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiY2FzZSAiLAogICAgICAiY2FzZSgiLAogICAgICAiY2FzZXggIiwKICAgICAgImNhc2V4KCIsCiAgICAgICJjYXNleiAiLAogICAgICAiY2FzZXooIiwKICAgICAgImNhc2V4eiAiLAogICAgICAiY2FzZXh6KCIsCiAgICAgICJmb3JrIiwKICAgICAgIj8iLAogICAgICAiOiIsCiAgICAgICJpbnNpZGUiLAogICAgICAid2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImQudHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJVbnJlYWwgU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ1YyIsCiAgICAgICJ1Y2kiLAogICAgICAidXBrZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlVyL1dlYiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidXIiLAogICAgICAidXJzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJVci9XZWIgUHJvamVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidXJwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJWSERMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2aGQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJWYWxhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2YWxhIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiVmFybmlzaCBDb25maWd1cmF0aW9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmNsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIiwKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJWZXJpbG9nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2ZyIsCiAgICAgICJ2aCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlZlcmlsb2cgQXJncyBGaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaXJ1bmFyZ3MiLAogICAgICAieHJ1bmFyZ3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlZlcnRleCBTaGFkZXIgRmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidnNoIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiVmltIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmltIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJcXFwiIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiVmlzdWFsIEJhc2ljIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZiIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdCiAgICBdCiAgfSwKICAiVmlzdWFsIEJhc2ljIGZvciBBcHBsaWNhdGlvbnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2xzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdCiAgICBdCiAgfSwKICAiVnVlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2dWUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIldvbGZyYW0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm5iIiwKICAgICAgIndsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJYQU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ4YW1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJYQ29kZSBDb25maWciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ4Y2NvbmZpZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlhNTCI6IHsKICAgICJleHRlbnNpb25zIjogWwogICAgICAieG1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJYTUwgU2NoZW1hIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHNkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJYdGVuZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHRlbmQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJZQU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieWFtbCIsCiAgICAgICJ5bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlppZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAid2hpbGUgIiwKICAgICAgImZvciAiLAogICAgICAiaWYgIiwKICAgICAgImVsc2UgIiwKICAgICAgImRlZmVyICIsCiAgICAgICJzd2l0Y2giLAogICAgICAifHwiLAogICAgICAiJiYiLAogICAgICAiIT0iLAogICAgICAiPT0iCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ6aWciCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcXCIsCiAgICAgICAgIlxuIgogICAgICBdCiAgICBdCiAgfSwKICAiWnNoIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ6c2giLAogICAgICAiLnpzaGVudiIsCiAgICAgICJ6c2hlbnYiLAogICAgICAiLnpsb2dpbiIsCiAgICAgICJ6bG9naW4iLAogICAgICAiLnpsb2dvdXQiLAogICAgICAiemxvZ291dCIsCiAgICAgICIuenByb2ZpbGUiLAogICAgICAienByb2ZpbGUiLAogICAgICAiLnpzaHJjIiwKICAgICAgInpzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiZ2l0aWdub3JlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiLmdpdGlnbm9yZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAibTQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtNCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAibnVzcGVjIjogewogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJudXNwZWMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgInNlZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAiYW5kICIsCiAgICAgICJvciAiLAogICAgICAibm90ICIsCiAgICAgICJpbiAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzZWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0KfQ==` + languages = `ewogICJBQkFQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhYmFwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIiwKICAgICAgIlxcXCIiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFTUCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXNhIiwKICAgICAgImFzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJyIsCiAgICAgICJSRU0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFTUC5ORVQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFzYXgiLAogICAgICAiYXNjeCIsCiAgICAgICJhc214IiwKICAgICAgImFzcHgiLAogICAgICAibWFzdGVyIiwKICAgICAgInNpdGVtYXAiLAogICAgICAid2ViaW5mbyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdLAogICAgICBbCiAgICAgICAgIjwlLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBVFMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiIHRoZW4gIiwKICAgICAgIiBlbHNlICIsCiAgICAgICJjYXNlKyAiLAogICAgICAiaWZjYXNlIiwKICAgICAgImxldCAiLAogICAgICAiYW5kICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRhdHMiLAogICAgICAic2F0cyIsCiAgICAgICJhdHMiLAogICAgICAiaGF0cyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdLAogICAgICBbCiAgICAgICAgIi8vLy8iLAogICAgICAgICJUSElTU0hPVUxETkVWRVJBUFBFQVJXRUhPUEUiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJBV0siOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhd2siCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkFjdGlvblNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJBZGEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFkYSIsCiAgICAgICJhZGIiLAogICAgICAiYWRzIiwKICAgICAgInBhZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFnZGEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFnZGEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBbGV4IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQW5kcm9pZCBJbnRlcmZhY2UgRGVmaW5pdGlvbiBMYW5ndWFnZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYWlkbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoqIiwKICAgICAgICAiKi8iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkFydm8iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhdmRsIiwKICAgICAgImF2cHIiLAogICAgICAiYXZzYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQXNjaWlEb2MiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhZG9jIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBc3NlbWJseSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicyIsCiAgICAgICJhc20iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJBdXRvSG90S2V5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhaGsiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkF1dG9jb25mIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIsCiAgICAgICJkbmwiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJBU0giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJhc2giLAogICAgICAiLmJhc2hfbG9naW4iLAogICAgICAiYmFzaF9sb2dpbiIsCiAgICAgICIuYmFzaF9sb2dvdXQiLAogICAgICAiYmFzaF9sb2dvdXQiLAogICAgICAiLmJhc2hfcHJvZmlsZSIsCiAgICAgICJiYXNoX3Byb2ZpbGUiLAogICAgICAiLmJhc2hyYyIsCiAgICAgICJiYXNocmMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJCYXNpYyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxzZWlmICIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiciCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJCYXRjaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYmF0IiwKICAgICAgImJ0bSIsCiAgICAgICJjbWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIlJFTSIsCiAgICAgICI6OiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQmF6ZWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJ6bCIsCiAgICAgICJidWlsZC5iYXplbCIsCiAgICAgICJidWlsZCIsCiAgICAgICJ3b3Jrc3BhY2UiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkJpdGJha2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJiIiwKICAgICAgImJiYXBwZW5kIiwKICAgICAgImJiY2xhc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkJvbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJpZiAiLAogICAgICAiZWxpZiAiLAogICAgICAidW5sZXNzICIsCiAgICAgICIgYW5kICIsCiAgICAgICJmb3IgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0ZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXCJcIlwiIiwKICAgICAgICAiXCJcIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQnJhaW5mdWNrIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJbIiwKICAgICAgIl0iLAogICAgICAiPCIsCiAgICAgICI+IiwKICAgICAgIisiLAogICAgICAiLSIsCiAgICAgICIuIiwKICAgICAgIiwiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiZiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQnVpbGRTdHJlYW0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJic3QiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImMiLAogICAgICAiZWMiLAogICAgICAicGdjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQyBIZWFkZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2giLAogICAgICAiLmNzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDIyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDKysiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNjIiwKICAgICAgImNwcCIsCiAgICAgICJjeHgiLAogICAgICAiYysrIiwKICAgICAgInBjYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkMrKyBIZWFkZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhoIiwKICAgICAgImhwcCIsCiAgICAgICJoeHgiLAogICAgICAiaW5sIiwKICAgICAgImlwcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkNNYWtlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjbWFrZSIsCiAgICAgICJjbWFrZWxpc3RzLnR4dCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkNPQk9MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjb2IiLAogICAgICAiY2JsIiwKICAgICAgImNjcCIsCiAgICAgICJjb2JvbCIsCiAgICAgICJjcHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIioiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNTUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3NzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQ1NWIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3N2IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYWJhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2FiYWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYXJnbyBMb2NrIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYXJnby5sb2NrIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgIlxcXCJcXFwiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInJyciLAogICAgICAgICInJyciCiAgICAgIF0KICAgIF0KICB9LAogICJDYXNzaXVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYXNzaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQ2V5bG9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjZXlsb24iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDbG9qdXJlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjbGoiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb2p1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNsanMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb3N1cmUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIsCiAgICAgICI+PSAiLAogICAgICAiPD0gIiwKICAgICAgIj86ICIsCiAgICAgICI/IDogIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic295IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKioiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiQ29mZmVlU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjb2ZmZWUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiIyMjIiwKICAgICAgICAiIyMjIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkNvZ2VudCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY29nZW50IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQ29sZEZ1c2lvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2ZtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0tIiwKICAgICAgICAiLS0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJDb2xkRnVzaW9uIENGU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjZmMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJDb3EiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInYiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXSwKICAgICJrZXl3b3JkcyI6IFsiUmVxdWlyZSIsICJIeXBvdGhlc2lzIiwgIkluZHVjdGl2ZSIsICJSZW1hcmsiLCAiTGVtbWEiLCAiUHJvb2YiLCAiRGVmaW5pdGlvbiIsICJUaGVvcmVtIl0KICB9LAogICJDcmVvbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjcmVvbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNyeXN0YWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNyIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiQ3l0aG9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJhbmQgIiwKICAgICAgIm9yICIsCiAgICAgICJub3QgIiwKICAgICAgImluICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB5eCIsCiAgICAgICJweGkiLAogICAgICAicHhkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgIlxcXCJcXFwiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInJyciLAogICAgICAgICInJyciCiAgICAgIF0KICAgIF0KICB9LAogICJEIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdLAogICAgICBbCiAgICAgICAgIi8rIiwKICAgICAgICAiKy8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkRhcnQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRhcnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJEZXZpY2UgVHJlZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZHRzIiwKICAgICAgImR0c2kiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJEaGFsbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRoYWxsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7LSIsCiAgICAgICAgIi19IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiRG9ja2VyZmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZG9ja2VyZmlsZSIsCiAgICAgICJkb2NrZXJpZ25vcmUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJEb2N1bWVudCBUeXBlIERlZmluaXRpb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkdGQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkVsaXhpciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZXgiLAogICAgICAiZXhzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgIlxcXCJcXFwiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInJyciLAogICAgICAgICInJyciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJFbG0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImVsbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiey0iLAogICAgICAgICItfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkVtYWNzIERldiBFbnYiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImVkZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRW1hY3MgTGlzcCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkVybGFuZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZXJsIiwKICAgICAgImhybCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRXhwZWN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJleHAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJFeHRlbnNpYmxlIFN0eWxlc2hlZXQgTGFuZ3VhZ2UgVHJhbnNmb3JtYXRpb25zIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHNsdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRiMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZzIiwKICAgICAgImZzaSIsCiAgICAgICJmc3giLAogICAgICAiZnNzY3JpcHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJGKiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZnN0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJGSURMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmaWRsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiRk9SVFJBTiBMZWdhY3kiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImYiLAogICAgICAiZm9yIiwKICAgICAgImZ0biIsCiAgICAgICJmNzciLAogICAgICAicGZvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJjIiwKICAgICAgIkMiLAogICAgICAiISIsCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiRk9SVFJBTiBNb2Rlcm4iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImYwMyIsCiAgICAgICJmMDgiLAogICAgICAiZjkwIiwKICAgICAgImY5NSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiISIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkZpc2giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZpc2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJGb3J0aCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiNHRoIiwKICAgICAgImZvcnRoIiwKICAgICAgImZyIiwKICAgICAgImZydCIsCiAgICAgICJmdGgiLAogICAgICAiZjgzIiwKICAgICAgImZiIiwKICAgICAgImZwbSIsCiAgICAgICJlNCIsCiAgICAgICJyeCIsCiAgICAgICJmdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiXFxcXCIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoICIsCiAgICAgICAgIikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJGcmFnbWVudCBTaGFkZXIgRmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZnNoIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiRnJlZW1hcmtlciBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiPCNsaXN0ICIsCiAgICAgICI8I2Fzc2lnbiAiLAogICAgICAiPCNpZiAiLAogICAgICAiPCNlbHNlaWYgIiwKICAgICAgIjwjZWxzZT4iLAogICAgICAiPCNlbHNlPiAiLAogICAgICAiPCNzd2l0Y2ggICIsCiAgICAgICI8I2Nhc2UgIiwKICAgICAgIjwjZGVmYXVsdD4iLAogICAgICAiPCNkZWZhdWx0PiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZ0bCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8Iy0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiR0RTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImdkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgIlxcXCJcXFwiXFxcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkdMU0wiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZlcnQiLAogICAgICAidGVzYyIsCiAgICAgICJ0ZXNlIiwKICAgICAgImdlb20iLAogICAgICAiZnJhZyIsCiAgICAgICJjb21wIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiR04iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImlmKCIsCiAgICAgICJpZiAoIiwKICAgICAgImVsc2UgaWYoIiwKICAgICAgImVsc2UgaWYgKCIsCiAgICAgICJlbHNlKCIsCiAgICAgICJlbHNlICgiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ24iLAogICAgICAiZ25pIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJHYW1lIE1ha2VyIExhbmd1YWdlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJyZXBlYXQgIiwKICAgICAgInJlcGVhdCgiLAogICAgICAifHwgIiwKICAgICAgIm9yICIsCiAgICAgICImJiAiLAogICAgICAiYW5kICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ21sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIsCiAgICAgICIvLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkdhbWUgTWFrZXIgUHJvamVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInl5cCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiR2hlcmtpbiBTcGVjaWZpY2F0aW9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJnaXZlbiIsCiAgICAgICJ3aGVuIiwKICAgICAgInRoZW4iLAogICAgICAiYW5kIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZmVhdHVyZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiViI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgImAiLAogICAgICAgICJgIgogICAgICBdCiAgICBdLAogICAgImtleXdvcmRzIjogWyJmbiIsICJjb25zdCIsICJwcmludGxuIiwgImltcG9ydCIsICJzdHJ1Y3QiLCAibW9kdWxlIl0KICB9LAogICJHbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ28iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiYCIsCiAgICAgICAgImAiCiAgICAgIF0KICAgIF0KICB9LAogICJHbyBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAie3tpZiAiLAogICAgICAie3sgaWYgIiwKICAgICAgInt7ZWxzZSIsCiAgICAgICJ7eyBlbHNlIiwKICAgICAgInt7cmFuZ2UgIiwKICAgICAgInt7IHJhbmdlICIsCiAgICAgICJ7e3dpdGgiLAogICAgICAie3sgd2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRtcGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAie3svKiIsCiAgICAgICAgIiovfX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJHcmFkbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJncmFkbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJHcm9vdnkiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImdyb292eSIsCiAgICAgICJncnQiLAogICAgICAiZ3RwbCIsCiAgICAgICJndnkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJoZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhUTUwiOiB7CiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImh0bWwiLAogICAgICAiaHRtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJIYW1sZXQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhhbWxldCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiSGFuZGxlYmFycyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGJzIiwKICAgICAgImhhbmRsZWJhcnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJIYXBweSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInkiLAogICAgICAibHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhhc2tlbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7LSIsCiAgICAgICAgIi19IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSGF4ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaHgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJJREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImlkbCIsCiAgICAgICJ3ZWJpZGwiLAogICAgICAid2lkbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIklkcmlzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpZHIiLAogICAgICAibGlkciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiey0iLAogICAgICAgICItfSIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJcXFwiXFxcIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJJbnRlbCBIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpaGV4IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJJc2FiZWxsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGh5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7KiIsCiAgICAgICAgIip9IgogICAgICBdLAogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAi4oC5IiwKICAgICAgICAi4oC6IgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXFw8b3Blbj4iLAogICAgICAgICJcXFxcPGNsb3NlPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiJyciLAogICAgICAgICInJyIKICAgICAgXQogICAgXQogIH0sCiAgIkpBSSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamFpIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJKU09OIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAianNvbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSlNPTkwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc29ubCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSlNYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc3giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJKYWRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZiAiLAogICAgICAiZWxzZSBpZiAiLAogICAgICAidW5sZXNzICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImphZGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSmF2YSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamF2YSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkphdmFTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzIiwKICAgICAgIm1qcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkphdmFTZXJ2ZXIgUGFnZXMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkplbmtpbnMgQnVpbGRmaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamVua2luc2ZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkppbmphIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJ7JSBmb3IgIiwKICAgICAgInslLSBmb3IgIiwKICAgICAgInslIGlmICIsCiAgICAgICJ7JS0gaWYgIiwKICAgICAgInslIGVsc2UgIiwKICAgICAgInslLSBlbHNlICIsCiAgICAgICJ7JSBlbGlmICIsCiAgICAgICJ7JSBtYWNybyAiLAogICAgICAieyUtIG1hY3JvICIsCiAgICAgICJ7JSBjYWxsICIsCiAgICAgICJ7JS0gY2FsbCAiLAogICAgICAieyUgZmlsdGVyICIsCiAgICAgICJ7JS0gZmlsdGVyICIsCiAgICAgICJ7JSBzZXQgIiwKICAgICAgInslIGluY2x1ZGUgIiwKICAgICAgInslIGZyb20gIiwKICAgICAgInslIGV4dGVuZHMgIiwKICAgICAgInslIHdpdGggIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamluamEiLAogICAgICAiajIiLAogICAgICAiamluamEyIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInsjIiwKICAgICAgICAiI30iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKdWxpYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiamwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiIz0iLAogICAgICAgICI9IyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJcXFwiXFxcIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJKdWxpdXMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImp1bGl1cyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkp1cHl0ZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpcHluYiIsCiAgICAgICJqcHluYiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSnVzdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAianVzdGZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJLb3JuIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJrc2giLAogICAgICAiLmtzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiS290bGluIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJrdCIsCiAgICAgICJrdHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIkxEIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibGRzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTEVTUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxlc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJMRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJMT0xDT0RFIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJBV1NVTSBUSFggIiwKICAgICAgIk8gTk9FUyAiLAogICAgICAiUExaIE9QRU4gRklMRSAiLAogICAgICAiSU0gSU4gWVIgIiwKICAgICAgIk8gUkxZPyIsCiAgICAgICJPIFJMWT8gIiwKICAgICAgIldURj8iLAogICAgICAiV1RGPyAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsb2wiLAogICAgICAibG9scyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiQlRXIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIk9CVFciLAogICAgICAgICJUTERSIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTGFUZVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0ZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkxlYW4iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxlYW4iLAogICAgICAiaGxlYW4iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8tIiwKICAgICAgICAiLS8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkxpY2Vuc2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsaWNlbnNlIiwKICAgICAgImxpY2VuY2UiLAogICAgICAiY29weWluZyIsCiAgICAgICJjb3B5aW5nMyIsCiAgICAgICJ1bmxpY2Vuc2UiLAogICAgICAidW5saWNlbmNlIiwKICAgICAgImxpY2Vuc2UtbWl0IiwKICAgICAgImxpY2VuY2UtbWl0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJMaXNwIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsaXNwIiwKICAgICAgImxzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10KICB9LAogICJMdWEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImx1YSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLS1bWyIsCiAgICAgICAgIl1dIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIkx1Y2l1cyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibHVjaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVFMIEhlYWRlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXFoIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVFMNCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXE0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVFMNSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXE1IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVNCdWlsZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3Nwcm9qIiwKICAgICAgInZicHJvaiIsCiAgICAgICJmc3Byb2oiLAogICAgICAicHJvcHMiLAogICAgICAidGFyZ2V0cyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTVVNUFMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1wcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiTWFjcm9tZWRpYSBlWHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm14bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1hZGxhbmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1hZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7IyIsCiAgICAgICAgIiN9IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWFrZWZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1ha2VmaWxlIiwKICAgICAgIm1hayIsCiAgICAgICJtayIsCiAgICAgICJicCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWFrbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiJSBmb3IgIiwKICAgICAgIiUgaWYgIiwKICAgICAgIiUgZWxzZSAiLAogICAgICAiJSBlbGlmICIsCiAgICAgICI8JSBpbmNsdWRlICIsCiAgICAgICI8JWRlZiAiLAogICAgICAiPCVwYWdlICIsCiAgICAgICI8JWRlZiAiLAogICAgICAiPCVibG9jayAiLAogICAgICAiPCVuYW1lc3BhY2UgIiwKICAgICAgIjwlaW5oZXJpdCAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtYWtvIiwKICAgICAgIm1hbyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCVkb2M+IiwKICAgICAgICAiPC8lZG9jPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1hcmtkb3duIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibWQiLAogICAgICAibWFya2Rvd24iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1lc29uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3JlYWNoICIsCiAgICAgICJpZiAiLAogICAgICAiZWxpZiAiLAogICAgICAidW5sZXNzICIsCiAgICAgICJhbmQgIiwKICAgICAgIm9yICIsCiAgICAgICJlbHNlICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1lc29uLmJ1aWxkIiwKICAgICAgIm1lc29uX29wdGlvbnMudHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJycnIiwKICAgICAgICAiJycnIgogICAgICBdCiAgICBdCiAgfSwKICAiTW9kdWxhMyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibTMiLAogICAgICAibWciLAogICAgICAiaWciLAogICAgICAiaTMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIk1vZHVsZS1EZWZpbml0aW9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkZWYiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk11c3RhY2hlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtdXN0YWNoZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJOaW0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm5pbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJcXFwiXFxcIlxcXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJOaXgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm5peCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIk9DYW1sIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtbCIsCiAgICAgICJtbGkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIk9iamVjdGl2ZSBDIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiT2JqZWN0aXZlIEMrKyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibW0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJPcGFsYW5nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJvcGEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJPcmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm9yZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyAiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk96IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJveiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiUEhQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwaHAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJQS0dCVUlMRCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBrZ2J1aWxkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQU0wgQXNzZXJ0aW9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwc2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJQYXNjYWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBhcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7IiwKICAgICAgICAifSIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdLAogICAgICBbCiAgICAgICAgInsiLAogICAgICAgICIqKSIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIn0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiUGF0Y2giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwYXRjaCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUGVybCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGwiLAogICAgICAicG0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPXBvZCIsCiAgICAgICAgIj1jdXQiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiUGxhaW4gVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRleHQiLAogICAgICAidHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQb2xseSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicG9sbHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlBvd2Vyc2hlbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIndoaWxlICIsCiAgICAgICJ3aGlsZSgiLAogICAgICAidW50aWwgIiwKICAgICAgInVudGlsKCIsCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiZm9yZWFjaCAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiaWYgIiwKICAgICAgImVsc2VpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAic3dpdGNoIiwKICAgICAgInN3aXRjaCgiLAogICAgICAiLWd0IiwKICAgICAgIi1sdCIsCiAgICAgICItZXEiLAogICAgICAiLW5lIiwKICAgICAgIi1nZSIsCiAgICAgICItbGUiLAogICAgICAiLWluIiwKICAgICAgIi1ub3RpbiIsCiAgICAgICItY29udGFpbnMiLAogICAgICAiLW5vdGNvbnRhaW5zIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHMxIiwKICAgICAgInBzbTEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCMiLAogICAgICAgICIjPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlByb2Nlc3NpbmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBkZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlByb2xvZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicCIsCiAgICAgICJwcm8iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlByb3BlcnRpZXMgRmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInByb3BlcnRpZXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlByb3RvY29sIEJ1ZmZlcnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInByb3RvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUHVwcGV0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9YmVnaW4iLAogICAgICAgICI9ZW5kIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlB1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB1cnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQeXRob24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgImFuZCAiLAogICAgICAib3IgIiwKICAgICAgIm5vdCAiLAogICAgICAiaW4gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIicnJyIsCiAgICAgICAgIicnJyIKICAgICAgXQogICAgXQogIH0sCiAgIlFDTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicWNsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiUU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJSIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJSYWtlZmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmFrZSIsCiAgICAgICJyYWtlZmlsZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9YmVnaW4iLAogICAgICAgICI9ZW5kIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlJhem9yIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2h0bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJAKiIsCiAgICAgICAgIipAIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVTdHJ1Y3R1cmVkVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJzdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVwb3J0IERlZmluaXRpb24gTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlJvYm90IEZyYW1ld29yayI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJvYm90IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJSdWJ5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyYiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9YmVnaW4iLAogICAgICAgICI9ZW5kIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlJ1YnkgSFRNTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmh0bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlJ1c3QiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTQVMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImRvIiwKICAgICAgIiVkbyIsCiAgICAgICJpZiIsCiAgICAgICIlaWYiLAogICAgICAiZWxzZSIsCiAgICAgICIlZWxzZSIsCiAgICAgICJjYXNlIiwKICAgICAgIm9yIiwKICAgICAgImFuZCIsCiAgICAgICJePSIsCiAgICAgICLCrD0iLAogICAgICAifj0iLAogICAgICAibmUiLAogICAgICAiZXEiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIioiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlNLSUxMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiU1BEWCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNwZHgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNRTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3FsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlNSZWNvZGUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNydCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOzsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNWRyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3ZnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTYXNzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzYXNzIiwKICAgICAgInNjc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTY2FsYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2MiLAogICAgICAic2NhbGEiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTY2hlbWUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNjbSIsCiAgICAgICJzcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10KICB9LAogICJTY29ucyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3NpZyIsCiAgICAgICJzY29uc3RydWN0IiwKICAgICAgInNjb25zY3JpcHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAiXFxcIlxcXCJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIicnJyIsCiAgICAgICAgIicnJyIKICAgICAgXQogICAgXQogIH0sCiAgIlNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzaCIsCiAgICAgICIudGNzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdCiAgICBdCiAgfSwKICAiU21hcnR5IFRlbXBsYXRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiaW5jbHVkZSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0cGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyoiLAogICAgICAgICIqfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNvZnRicmlkZ2UgQmFzaWMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2JsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdCiAgICBdCiAgfSwKICAiU3BlY21hbiBlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIsCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICInPiIsCiAgICAgICAgIjwnIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiU3BpY2UgTmV0bGlzdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2t0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJTdGFuZGFyZCBNTCAoU01MKSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic21sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTdGF0YSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yZWFjaCIsCiAgICAgICJmb3J2YWx1ZXMiLAogICAgICAiaWYiLAogICAgICAiZWxzZSIsCiAgICAgICJ3aGlsZSIsCiAgICAgICJzd2l0Y2giLAogICAgICAifCIsCiAgICAgICImIiwKICAgICAgIiE9IiwKICAgICAgIj09IgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZG8iLAogICAgICAiYWRvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIsCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiYFwiIiwKICAgICAgICAiXCInIgogICAgICBdCiAgICBdCiAgfSwKICAiU3R5bHVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJ1bmxlc3MgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInN0eWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTd2lmdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3dpZnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlN3aWciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJTeXN0ZW1WZXJpbG9nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8ICIsCiAgICAgICImICIsCiAgICAgICIhPSAiLAogICAgICAiIT09ICIsCiAgICAgICI9PSAiLAogICAgICAiZm9yZWFjaCAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiY2FzZSAiLAogICAgICAiY2FzZSgiLAogICAgICAiY2FzZXggIiwKICAgICAgImNhc2V4KCIsCiAgICAgICJjYXNleiAiLAogICAgICAiY2FzZXooIiwKICAgICAgImNhc2V4eiAiLAogICAgICAiY2FzZXh6KCIsCiAgICAgICJmb3JrICIsCiAgICAgICIgPyAiLAogICAgICAiaW5zaWRlIiwKICAgICAgIndpdGgiLAogICAgICAiZXZlbnQgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3YiLAogICAgICAic3ZoIiwKICAgICAgInYiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0sCiAgICAia2V5d29yZHMiOiBbImVuZG1vZHVsZSIsICJwb3NlZGdlIiwgImVkZ2UiLCAiYWx3YXlzIiwgIndpcmUiXQogIH0sCiAgIlN5c3RlbWQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhdXRvbW91bnQiLAogICAgICAiZGV2aWNlIiwKICAgICAgImxpbmsiLAogICAgICAibW91bnQiLAogICAgICAicGF0aCIsCiAgICAgICJzY29wZSIsCiAgICAgICJzZXJ2aWNlIiwKICAgICAgInNsaWNlIiwKICAgICAgInNvY2tldCIsCiAgICAgICJzd2FwIiwKICAgICAgInRhcmdldCIsCiAgICAgICJ0aW1lciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVENMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0Y2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXFxcIiIsCiAgICAgICAgIlxcXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJUT01MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0b21sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIiciLAogICAgICAgICInIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgIlxcXCJcXFwiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInJyciLAogICAgICAgICInJyciCiAgICAgIF0KICAgIF0KICB9LAogICJUYXNrUGFwZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0YXNrcGFwZXIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlRlWCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGV4IiwKICAgICAgInN0eSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVGhyaWZ0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGhyaWZ0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIsCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiJyIsCiAgICAgICAgIiciCiAgICAgIF0KICAgIF0KICB9LAogICJUd2lnIFRlbXBsYXRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJ7JSBmb3IgIiwKICAgICAgInslIGlmICIsCiAgICAgICJ7JSBlbHNlICIsCiAgICAgICJ7JSBlbHNlaWYgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidHdpZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVHlwZVNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifCAiLAogICAgICAifHwgIiwKICAgICAgIiYgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiIT09ICIsCiAgICAgICI9PSAiLAogICAgICAiPT09ICIsCiAgICAgICJmb3JlYWNoKCIsCiAgICAgICJjYXNlICIsCiAgICAgICJjYXNlKCIsCiAgICAgICJjYXNleCAiLAogICAgICAiY2FzZXgoIiwKICAgICAgImNhc2V6ICIsCiAgICAgICJjYXNleigiLAogICAgICAiY2FzZXh6ICIsCiAgICAgICJjYXNleHooIiwKICAgICAgImZvcmsiLAogICAgICAiPyIsCiAgICAgICI6IiwKICAgICAgImluc2lkZSIsCiAgICAgICJ3aXRoIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidHMiLAogICAgICAidHN4IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiVHlwZVNjcmlwdCBUeXBpbmdzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8ICIsCiAgICAgICJ8fCAiLAogICAgICAiJiAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICIhPT0gIiwKICAgICAgIj09ICIsCiAgICAgICI9PT0gIiwKICAgICAgImZvcmVhY2goIiwKICAgICAgImNhc2UgIiwKICAgICAgImNhc2UoIiwKICAgICAgImNhc2V4ICIsCiAgICAgICJjYXNleCgiLAogICAgICAiY2FzZXogIiwKICAgICAgImNhc2V6KCIsCiAgICAgICJjYXNleHogIiwKICAgICAgImNhc2V4eigiLAogICAgICAiZm9yayIsCiAgICAgICI/IiwKICAgICAgIjoiLAogICAgICAiaW5zaWRlIiwKICAgICAgIndpdGgiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkLnRzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiVW5yZWFsIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidWMiLAogICAgICAidWNpIiwKICAgICAgInVwa2ciCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJVci9XZWIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInVyIiwKICAgICAgInVycyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiVXIvV2ViIFByb2plY3QiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInVycCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVkhETCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmhkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVmFsYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmFsYSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlZhcm5pc2ggQ29uZmlndXJhdGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZjbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIsCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVmVyaWxvZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmciLAogICAgICAidmgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJWZXJpbG9nIEFyZ3MgRmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImlydW5hcmdzIiwKICAgICAgInhydW5hcmdzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJWZXJ0ZXggU2hhZGVyIEZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZzaCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIFsKICAgICAgICAiXCIiLAogICAgICAgICJcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlZpbSBTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZpbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiXFxcIiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgIlZpc3VhbCBCYXNpYyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxzZWlmICIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2YiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlZpc3VhbCBCYXNpYyBmb3IgQXBwbGljYXRpb25zIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNscyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXQogICAgXQogIH0sCiAgIlZ1ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidnVlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJXb2xmcmFtIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJuYiIsCiAgICAgICJ3bCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiWEFNTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieGFtbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiWENvZGUgQ29uZmlnIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieGNjb25maWciCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJYTUwiOiB7CiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInhtbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiWE1MIFNjaGVtYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInhzZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiWHRlbmQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInh0ZW5kIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcIiIsCiAgICAgICAgIlwiIgogICAgICBdCiAgICBdCiAgfSwKICAiWUFNTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInlhbWwiLAogICAgICAieW1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJaaWciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIndoaWxlICIsCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJlbHNlICIsCiAgICAgICJkZWZlciAiLAogICAgICAic3dpdGNoIiwKICAgICAgInx8IiwKICAgICAgIiYmIiwKICAgICAgIiE9IiwKICAgICAgIj09IgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiemlnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlxcXCIiLAogICAgICAgICJcXFwiIgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXFwiLAogICAgICAgICJcbiIKICAgICAgXQogICAgXQogIH0sCiAgIlpzaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAienNoIiwKICAgICAgIi56c2hlbnYiLAogICAgICAienNoZW52IiwKICAgICAgIi56bG9naW4iLAogICAgICAiemxvZ2luIiwKICAgICAgIi56bG9nb3V0IiwKICAgICAgInpsb2dvdXQiLAogICAgICAiLnpwcm9maWxlIiwKICAgICAgInpwcm9maWxlIiwKICAgICAgIi56c2hyYyIsCiAgICAgICJ6c2hyYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgWwogICAgICAgICJcXFwiIiwKICAgICAgICAiXFxcIiIKICAgICAgXSwKICAgICAgWwogICAgICAgICInIiwKICAgICAgICAiJyIKICAgICAgXQogICAgXQogIH0sCiAgImdpdGlnbm9yZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIi5naXRpZ25vcmUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIm00IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibTQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIm51c3BlYyI6IHsKICAgICJleHRlbnNpb25zIjogWwogICAgICAibnVzcGVjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICBbCiAgICAgICAgIlwiIiwKICAgICAgICAiXCIiCiAgICAgIF0KICAgIF0KICB9LAogICJzZWQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgImFuZCAiLAogICAgICAib3IgIiwKICAgICAgIm5vdCAiLAogICAgICAiaW4gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2VkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9Cn0=` ) diff --git a/processor/file.go b/processor/file.go index 4b768ad4..342cfc75 100644 --- a/processor/file.go +++ b/processor/file.go @@ -56,7 +56,7 @@ func walkDirectoryParallel(root string, output chan *FileJob) { // If input has a supplied white list of extensions then loop through them // and modify the lookup we use to cut down on extra checks if len(WhiteListExtensions) != 0 { - wlExtensionLookup := map[string]string{} + wlExtensionLookup := map[string][]string{} for _, white := range WhiteListExtensions { language, ok := extensionLookup[white] @@ -128,7 +128,9 @@ func walkDirectoryParallel(root string, output chan *FileJob) { go func(toWalk string) { filejobs := walkDirectory(toWalk, PathBlacklist, extensionLookup) for i := 0; i < len(filejobs); i++ { - LoadLanguageFeature(filejobs[i].Language) + for _, lan := range filejobs[i].PossibleLanguages { + LoadLanguageFeature(lan) + } output <- &filejobs[i] } @@ -183,8 +185,11 @@ func walkDirectoryParallel(root string, output chan *FileJob) { totalCount++ mutex.Unlock() - LoadLanguageFeature(language) - output <- &FileJob{Location: fpath, Filename: f.Name(), Extension: extension, Language: language} + for _, l := range language { + LoadLanguageFeature(l) + } + + output <- &FileJob{Location: fpath, Filename: f.Name(), Extension: extension, PossibleLanguages: language} } else if Verbose { printWarn(fmt.Sprintf("skipping file unknown extension: %s", f.Name())) } @@ -200,7 +205,7 @@ func walkDirectoryParallel(root string, output chan *FileJob) { } } -func walkDirectory(toWalk string, blackList []string, extensionLookup map[string]string) []FileJob { +func walkDirectory(toWalk string, blackList []string, extensionLookup map[string][]string) []FileJob { extension := "" var filejobs []FileJob @@ -257,7 +262,7 @@ func walkDirectory(toWalk string, blackList []string, extensionLookup map[string } if ok { - filejobs = append(filejobs, FileJob{Location: root, Filename: info.Name(), Extension: extension, Language: language}) + filejobs = append(filejobs, FileJob{Location: root, Filename: info.Name(), Extension: extension, PossibleLanguages: language}) } else if Verbose { printWarn(fmt.Sprintf("skipping file unknown extension: %s", info.Name())) } diff --git a/processor/processor.go b/processor/processor.go index 09146777..1fed4fc1 100644 --- a/processor/processor.go +++ b/processor/processor.go @@ -94,7 +94,7 @@ var DirFilePaths = []string{} var languageDatabase = map[string]Language{} // ExtensionToLanguage is loaded from the JSON that is in constants.go -var ExtensionToLanguage = map[string]string{} +var ExtensionToLanguage = map[string][]string{} // LanguageFeatures contains the processed languages from processLanguageFeature var LanguageFeatures = map[string]LanguageFeature{} @@ -122,7 +122,7 @@ func ProcessConstants() { startTime := makeTimestampNano() for name, value := range languageDatabase { for _, ext := range value.Extensions { - ExtensionToLanguage[ext] = name + ExtensionToLanguage[ext] = append(ExtensionToLanguage[ext], name) } } @@ -234,6 +234,7 @@ func processLanguageFeature(name string, value Language) { SingleLineCommentMask: singleLineCommentMask, StringCheckMask: stringMask, ProcessMask: processMask, + Keywords: value.Keywords, } LanguageFeaturesMutex.Unlock() } diff --git a/processor/structs.go b/processor/structs.go index e90ae13f..917537f3 100644 --- a/processor/structs.go +++ b/processor/structs.go @@ -22,6 +22,7 @@ type Language struct { MultiLine [][]string `json:"multi_line"` Quotes [][]string `json:"quotes"` NestedMultiLine bool `json:"nestedmultiline"` + Keywords []string `json:"keywords"` } // LanguageFeature is a struct which represents the conversion from Language into what is used for matching @@ -37,6 +38,7 @@ type LanguageFeature struct { MultiLineCommentMask byte StringCheckMask byte ProcessMask byte + Keywords []string } // FileJobCallback is an interface that FileJobs can implement to get a per line callback with the line type @@ -48,6 +50,7 @@ type FileJobCallback interface { // FileJob is a struct used to hold all of the results of processing internally before sent to the formatter type FileJob struct { Language string + PossibleLanguages []string // Used to hold potentially more than one language which populates language when determined Filename string Extension string Location string diff --git a/processor/workers.go b/processor/workers.go index 7c091f05..96bceb71 100644 --- a/processor/workers.go +++ b/processor/workers.go @@ -5,6 +5,8 @@ import ( "fmt" "hash" "io/ioutil" + "sort" + "strings" "sync" ) @@ -260,6 +262,8 @@ func CountStats(fileJob *FileJob) { return } + determineLanguage(fileJob) + LanguageFeaturesMutex.Lock() langFeatures := LanguageFeatures[fileJob.Language] LanguageFeaturesMutex.Unlock() @@ -393,6 +397,73 @@ func CountStats(fileJob *FileJob) { fileJob.Content = nil } +type languageGuess struct { + Name string + Count int +} + +// Given a filejob which could have multiple language types make a guess to the type +// based on keywords supplied, which is similar to how https://github.com/vmchale/polyglot does it +// If however there is only a single language we +func determineLanguage(fileJob *FileJob) { + + // If being called through an API its possible nothing is set here and as + // such should just return as the Language value should have already been set + if len(fileJob.PossibleLanguages) == 0 { + return + } + + // There should only be two possibilities now, either we have a single language + // in which case we set it and return + // or we have multiple in which case we try to determine it heuristically + if len(fileJob.PossibleLanguages) == 1 { + fileJob.Language = fileJob.PossibleLanguages[0] + return + } + + startTime := makeTimestampNano() + + var toCheck string + if len(fileJob.Content) > 2000 { + toCheck = string(fileJob.Content)[:2000] + } else { + toCheck = string(fileJob.Content) + } + + toSort := []languageGuess{} + for _, lan := range fileJob.PossibleLanguages { + LanguageFeaturesMutex.Lock() + langFeatures := LanguageFeatures[lan] + LanguageFeaturesMutex.Unlock() + + count := 0 + for _, key := range langFeatures.Keywords { + if strings.Contains(toCheck, key) { + fileJob.Language = lan + count++ + } + } + + toSort = append(toSort, languageGuess{Name: lan, Count: count}) + } + + sort.Slice(toSort, func(i, j int) bool { + return toSort[i].Count > toSort[j].Count + }) + + if Verbose { + printWarn(fmt.Sprintf("guessing language %s for file %s", toSort[0].Name, fileJob.Filename)) + } + + if Trace { + printTrace(fmt.Sprintf("nanoseconds to guess language: %s: %d", fileJob.Filename, makeTimestampNano()-startTime)) + } + + if len(toSort) != 0 { + fileJob.Language = toSort[0].Name + } +} + // Reads entire file into memory and then pushes it onto the next queue func fileReaderWorker(input chan *FileJob, output chan *FileJob) { var startTime int64 diff --git a/processor/workers_test.go b/processor/workers_test.go index d5988019..1a91e499 100644 --- a/processor/workers_test.go +++ b/processor/workers_test.go @@ -712,6 +712,59 @@ func TestFileProcessorWorker(t *testing.T) { } } +func TestGuessLanguageCoq(t *testing.T) { + fileJob := &FileJob{ + PossibleLanguages: []string{"Coq", "SystemVerilog"}, + Content: []byte(`Require Hypothesis Inductive`), + } + + determineLanguage(fileJob) + + if fileJob.Language != "Coq" { + t.Error("Expected guessed language to have been Coq got", fileJob.Language) + } +} + +func TestGuessLanguageSystemVerilog(t *testing.T) { + fileJob := &FileJob{ + PossibleLanguages: []string{"Coq", "SystemVerilog"}, + Content: []byte(`endmodule posedge edge always wire`), + } + + determineLanguage(fileJob) + + if fileJob.Language != "SystemVerilog" { + t.Error("Expected guessed language to have been SystemVerilog got", fileJob.Language) + } +} + +func TestGuessLanguageLanguageSetNoPossible(t *testing.T) { + fileJob := &FileJob{ + Language: "Java", + Content: []byte(`endmodule posedge edge always wire`), + } + + determineLanguage(fileJob) + + if fileJob.Language != "Java" { + t.Error("Expected guessed language to have been Java got", fileJob.Language) + } +} + +func TestGuessLanguageSingleLanguageSet(t *testing.T) { + fileJob := &FileJob{ + Language: "Java", + PossibleLanguages: []string{"Rust"}, + Content: []byte(`endmodule posedge edge always wire`), + } + + determineLanguage(fileJob) + + if fileJob.Language != "Rust" { + t.Error("Expected guessed language to have been Rust got", fileJob.Language) + } +} + ////////////////////////////////////////////////// // Benchmarks Below ////////////////////////////////////////////////// diff --git a/test-all.sh b/test-all.sh index dc606198..ab2d92df 100755 --- a/test-all.sh +++ b/test-all.sh @@ -18,7 +18,7 @@ NC='\033[0m' if ./scc --not-a-real-option > /dev/null ; then echo -e "${RED}=================================================" echo -e "FAILED Invalid option should produce error code " - echo -e "=================================================" + echo -e "=======================================================" exit else echo -e "${GREEN}PASSED invalid option test" @@ -38,7 +38,7 @@ if ./scc processor > /dev/null ; then else echo -e "${RED}=======================================================" echo -e "FAILED Should run correctly with directory specified" - echo -e "=================================================" + echo -e "=======================================================" exit fi @@ -47,7 +47,7 @@ if ./scc --avg-wage 10000 --binary --by-file --cocomo --debug --exclude-dir .git else echo -e "${RED}=======================================================" echo -e "FAILED Should run correctly with multiple options" - echo -e "=================================================" + echo -e "=======================================================" exit fi @@ -56,7 +56,34 @@ if ./scc -i sh -M "vendor|examples|p.*" > /dev/null ; then else echo -e "${RED}=======================================================" echo -e "FAILED Should run with regular expression ignore" - echo -e "=================================================" + echo -e "=======================================================" + exit +fi + +if ./scc "examples/shared_extension/" | grep -q "Coq"; then + echo -e "${GREEN}PASSED shared extension test 1" +else + echo -e "${RED}=======================================================" + echo -e "FAILED Should be able to work with shared extension 1" + echo -e "=======================================================" + exit +fi + +if ./scc "examples/shared_extension/" | grep -q "SystemVerilog"; then + echo -e "${GREEN}PASSED shared extension test 2" +else + echo -e "${RED}=======================================================" + echo -e "FAILED Should be able to work with shared extension 2" + echo -e "=======================================================" + exit +fi + +if ./scc "examples/shared_extension/" | grep -q "V "; then + echo -e "${GREEN}PASSED shared extension test 3" +else + echo -e "${RED}=======================================================" + echo -e "FAILED Should be able to work with shared extension 3" + echo -e "=======================================================" exit fi @@ -64,14 +91,15 @@ fi for i in {1..100} do if ./scc > /dev/null ; then - echo -e "${GREEN}PASSED concurrency issues test" + : else echo -e "${RED}=======================================================" - echo -e "FAILED Should not have concurrency issues" + echo -e "FAILED Should not have concurrency issue" echo -e "=================================================" exit fi done +echo -e "${GREEN}PASSED concurrency issue test" if ./scc main.go > /dev/null ; then echo -e "${GREEN}PASSED file specified test"