Completed
Push — master ( 09834f...75dce3 )
by cam
02:05
created
ecrire/tests/Filtre/IdentifiantSlugTest.php 1 patch
Indentation   +668 added lines, -668 removed lines patch added patch discarded remove patch
@@ -13,683 +13,683 @@
 block discarded – undo
13 13
 
14 14
 class IdentifiantSlugTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('./inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('./inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerFiltresIdentifiantSlug')]
21
-	public function testFiltresIdentifiantSlug($expected, ...$args): void {
22
-		$actual = identifiant_slug(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerFiltresIdentifiantSlug')]
21
+    public function testFiltresIdentifiantSlug($expected, ...$args): void {
22
+        $actual = identifiant_slug(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerFiltresIdentifiantSlug(): array {
27
-		return [
28
-			0 => [
29
-				0 => '1',
30
-				1 => true,
31
-			],
32
-			1 => [
33
-				0 => '',
34
-				1 => false,
35
-			],
36
-			2 => [
37
-				0 => '0',
38
-				1 => 0,
39
-			],
40
-			3 => [
41
-				0 => '1',
42
-				1 => -1,
43
-			],
44
-			4 => [
45
-				0 => '1',
46
-				1 => 1,
47
-			],
48
-			5 => [
49
-				0 => '2',
50
-				1 => 2,
51
-			],
52
-			6 => [
53
-				0 => '3',
54
-				1 => 3,
55
-			],
56
-			7 => [
57
-				0 => '4',
58
-				1 => 4,
59
-			],
60
-			8 => [
61
-				0 => '5',
62
-				1 => 5,
63
-			],
64
-			9 => [
65
-				0 => '6',
66
-				1 => 6,
67
-			],
68
-			10 => [
69
-				0 => '7',
70
-				1 => 7,
71
-			],
72
-			11 => [
73
-				0 => '10',
74
-				1 => 10,
75
-			],
76
-			12 => [
77
-				0 => '20',
78
-				1 => 20,
79
-			],
80
-			13 => [
81
-				0 => '30',
82
-				1 => 30,
83
-			],
84
-			14 => [
85
-				0 => '50',
86
-				1 => 50,
87
-			],
88
-			15 => [
89
-				0 => '100',
90
-				1 => 100,
91
-			],
92
-			16 => [
93
-				0 => '1000',
94
-				1 => 1000,
95
-			],
96
-			17 => [
97
-				0 => '10000',
98
-				1 => 10000,
99
-			],
100
-			18 => [
101
-				0 => '0',
102
-				1 => 0.0,
103
-			],
104
-			19 => [
105
-				0 => '0_25',
106
-				1 => 0.25,
107
-			],
108
-			20 => [
109
-				0 => '0_5',
110
-				1 => 0.5,
111
-			],
112
-			21 => [
113
-				0 => '0_75',
114
-				1 => 0.75,
115
-			],
116
-			22 => [
117
-				0 => '1',
118
-				1 => 1.0,
119
-			],
120
-			23 => [
121
-				0 => '',
122
-				1 => '',
123
-			],
124
-			24 => [
125
-				0 => '0',
126
-				1 => '0',
127
-			],
128
-			25 => [
129
-				0 => 'un_texte_avec_des_liens_article_1_art1_spip_https_www_spip_n',
130
-				1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
131
-			],
132
-			26 => [
133
-				0 => 'un_texte_avec_des_entites',
134
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
135
-			],
136
-			27 => [
137
-				0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp',
138
-				1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
139
-			],
140
-			28 => [
141
-				0 => 'un_texte_avec_des_entites_numeriques_38_60_62',
142
-				1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
143
-			],
144
-			29 => [
145
-				0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62',
146
-				1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
147
-			],
148
-			30 => [
149
-				0 => 'un_texte_sans_entites',
150
-				1 => 'Un texte sans entites &<>"\'',
151
-			],
152
-			31 => [
153
-				0 => 'des_raccourcis_italique_gras_du_code',
154
-				1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
155
-			],
156
-			32 => [
157
-				0 => 'un_modele_https_www_spip_net',
158
-				1 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
159
-			],
160
-			33 => [
161
-				0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes',
162
-				1 => 'Un texte avec des retour
26
+    public static function providerFiltresIdentifiantSlug(): array {
27
+        return [
28
+            0 => [
29
+                0 => '1',
30
+                1 => true,
31
+            ],
32
+            1 => [
33
+                0 => '',
34
+                1 => false,
35
+            ],
36
+            2 => [
37
+                0 => '0',
38
+                1 => 0,
39
+            ],
40
+            3 => [
41
+                0 => '1',
42
+                1 => -1,
43
+            ],
44
+            4 => [
45
+                0 => '1',
46
+                1 => 1,
47
+            ],
48
+            5 => [
49
+                0 => '2',
50
+                1 => 2,
51
+            ],
52
+            6 => [
53
+                0 => '3',
54
+                1 => 3,
55
+            ],
56
+            7 => [
57
+                0 => '4',
58
+                1 => 4,
59
+            ],
60
+            8 => [
61
+                0 => '5',
62
+                1 => 5,
63
+            ],
64
+            9 => [
65
+                0 => '6',
66
+                1 => 6,
67
+            ],
68
+            10 => [
69
+                0 => '7',
70
+                1 => 7,
71
+            ],
72
+            11 => [
73
+                0 => '10',
74
+                1 => 10,
75
+            ],
76
+            12 => [
77
+                0 => '20',
78
+                1 => 20,
79
+            ],
80
+            13 => [
81
+                0 => '30',
82
+                1 => 30,
83
+            ],
84
+            14 => [
85
+                0 => '50',
86
+                1 => 50,
87
+            ],
88
+            15 => [
89
+                0 => '100',
90
+                1 => 100,
91
+            ],
92
+            16 => [
93
+                0 => '1000',
94
+                1 => 1000,
95
+            ],
96
+            17 => [
97
+                0 => '10000',
98
+                1 => 10000,
99
+            ],
100
+            18 => [
101
+                0 => '0',
102
+                1 => 0.0,
103
+            ],
104
+            19 => [
105
+                0 => '0_25',
106
+                1 => 0.25,
107
+            ],
108
+            20 => [
109
+                0 => '0_5',
110
+                1 => 0.5,
111
+            ],
112
+            21 => [
113
+                0 => '0_75',
114
+                1 => 0.75,
115
+            ],
116
+            22 => [
117
+                0 => '1',
118
+                1 => 1.0,
119
+            ],
120
+            23 => [
121
+                0 => '',
122
+                1 => '',
123
+            ],
124
+            24 => [
125
+                0 => '0',
126
+                1 => '0',
127
+            ],
128
+            25 => [
129
+                0 => 'un_texte_avec_des_liens_article_1_art1_spip_https_www_spip_n',
130
+                1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
131
+            ],
132
+            26 => [
133
+                0 => 'un_texte_avec_des_entites',
134
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
135
+            ],
136
+            27 => [
137
+                0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp',
138
+                1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
139
+            ],
140
+            28 => [
141
+                0 => 'un_texte_avec_des_entites_numeriques_38_60_62',
142
+                1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
143
+            ],
144
+            29 => [
145
+                0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62',
146
+                1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
147
+            ],
148
+            30 => [
149
+                0 => 'un_texte_sans_entites',
150
+                1 => 'Un texte sans entites &<>"\'',
151
+            ],
152
+            31 => [
153
+                0 => 'des_raccourcis_italique_gras_du_code',
154
+                1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
155
+            ],
156
+            32 => [
157
+                0 => 'un_modele_https_www_spip_net',
158
+                1 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
159
+            ],
160
+            33 => [
161
+                0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes',
162
+                1 => 'Un texte avec des retour
163 163
 a la ligne et meme des
164 164
 
165 165
 paragraphes',
166
-			],
167
-			34 => [
168
-				0 => 'un_texte_avec_des_liens_avec_des_accents_iso_a_e_i_o_u_artic',
169
-				1 => "Un texte avec des <a href=\"http://spip.net\">liens avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</a> [Article 1 avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->art1] [spip avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net] https://www.spip.net",
170
-			],
171
-			35 => [
172
-				0 => 'un_texte_avec_des_entites_et_avec_des_accents_iso_a_e_i_o_u',
173
-				1 => "Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
174
-			],
175
-			36 => [
176
-				0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
177
-				1 => "Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
178
-			],
179
-			37 => [
180
-				0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
181
-				1 => "Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
182
-			],
183
-			38 => [
184
-				0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
185
-				1 => "Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
186
-			],
187
-			39 => [
188
-				0 => 'un_texte_sans_entites_et_avec_des_accents_iso_a_e_i_o_u',
189
-				1 => "Un texte sans entites &<>\"' et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
190
-			],
191
-			40 => [
192
-				0 => 'des_raccourcis_avec_des_accents_iso_a_e_i_o_u_italique_avec_',
193
-				1 => "{{{Des raccourcis avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}}} {italique avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC} {{gras avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}} <code>du code avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</code>",
194
-			],
195
-			41 => [
196
-				0 => 'un_modele_avec_des_accents_iso_a_e_i_o_u_https_www_spip_net',
197
-				1 => "Un modele avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC <modeleinexistant|lien=[avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net]>",
198
-			],
199
-			42 => [
200
-				0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
201
-				1 => 'Un texte avec des retour
166
+            ],
167
+            34 => [
168
+                0 => 'un_texte_avec_des_liens_avec_des_accents_iso_a_e_i_o_u_artic',
169
+                1 => "Un texte avec des <a href=\"http://spip.net\">liens avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</a> [Article 1 avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->art1] [spip avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net] https://www.spip.net",
170
+            ],
171
+            35 => [
172
+                0 => 'un_texte_avec_des_entites_et_avec_des_accents_iso_a_e_i_o_u',
173
+                1 => "Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
174
+            ],
175
+            36 => [
176
+                0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
177
+                1 => "Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
178
+            ],
179
+            37 => [
180
+                0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
181
+                1 => "Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
182
+            ],
183
+            38 => [
184
+                0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
185
+                1 => "Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
186
+            ],
187
+            39 => [
188
+                0 => 'un_texte_sans_entites_et_avec_des_accents_iso_a_e_i_o_u',
189
+                1 => "Un texte sans entites &<>\"' et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
190
+            ],
191
+            40 => [
192
+                0 => 'des_raccourcis_avec_des_accents_iso_a_e_i_o_u_italique_avec_',
193
+                1 => "{{{Des raccourcis avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}}} {italique avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC} {{gras avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}} <code>du code avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</code>",
194
+            ],
195
+            41 => [
196
+                0 => 'un_modele_avec_des_accents_iso_a_e_i_o_u_https_www_spip_net',
197
+                1 => "Un modele avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC <modeleinexistant|lien=[avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net]>",
198
+            ],
199
+            42 => [
200
+                0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
201
+                1 => 'Un texte avec des retour
202 202
 a la ligne et meme des
203 203
 
204 204
 paragraphes avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC',
205
-			],
206
-			43 => [
207
-				0 => 'un_texte_avec_des_liens_avec_des_accents_utf_8_aaaa_eeeee_ii',
208
-				1 => 'Un texte avec des <a href="http://spip.net">liens avec des accents UTF-8 aàâä eéèêë iîï oô uùü</a> [Article 1 avec des accents UTF-8 aàâä eéèêë iîï oô uùü->art1] [spip avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net] https://www.spip.net',
209
-			],
210
-			44 => [
211
-				0 => 'un_texte_avec_des_entites_et_avec_des_accents_utf_8_aaaa_eee',
212
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
213
-			],
214
-			45 => [
215
-				0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
216
-				1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
217
-			],
218
-			46 => [
219
-				0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
220
-				1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
221
-			],
222
-			47 => [
223
-				0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
224
-				1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
225
-			],
226
-			48 => [
227
-				0 => 'un_texte_sans_entites_et_avec_des_accents_utf_8_aaaa_eeeee_i',
228
-				1 => 'Un texte sans entites &<>"\' et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
229
-			],
230
-			49 => [
231
-				0 => 'des_raccourcis_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_',
232
-				1 => '{{{Des raccourcis avec des accents UTF-8 aàâä eéèêë iîï oô uùü}}} {italique avec des accents UTF-8 aàâä eéèêë iîï oô uùü} {{gras avec des accents UTF-8 aàâä eéèêë iîï oô uùü}} <code>du code avec des accents UTF-8 aàâä eéèêë iîï oô uùü</code>',
233
-			],
234
-			50 => [
235
-				0 => 'un_modele_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_https',
236
-				1 => 'Un modele avec des accents UTF-8 aàâä eéèêë iîï oô uùü <modeleinexistant|lien=[avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net]>',
237
-			],
238
-			51 => [
239
-				0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
240
-				1 => 'Un texte avec des retour
205
+            ],
206
+            43 => [
207
+                0 => 'un_texte_avec_des_liens_avec_des_accents_utf_8_aaaa_eeeee_ii',
208
+                1 => 'Un texte avec des <a href="http://spip.net">liens avec des accents UTF-8 aàâä eéèêë iîï oô uùü</a> [Article 1 avec des accents UTF-8 aàâä eéèêë iîï oô uùü->art1] [spip avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net] https://www.spip.net',
209
+            ],
210
+            44 => [
211
+                0 => 'un_texte_avec_des_entites_et_avec_des_accents_utf_8_aaaa_eee',
212
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
213
+            ],
214
+            45 => [
215
+                0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
216
+                1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
217
+            ],
218
+            46 => [
219
+                0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
220
+                1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
221
+            ],
222
+            47 => [
223
+                0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
224
+                1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
225
+            ],
226
+            48 => [
227
+                0 => 'un_texte_sans_entites_et_avec_des_accents_utf_8_aaaa_eeeee_i',
228
+                1 => 'Un texte sans entites &<>"\' et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
229
+            ],
230
+            49 => [
231
+                0 => 'des_raccourcis_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_',
232
+                1 => '{{{Des raccourcis avec des accents UTF-8 aàâä eéèêë iîï oô uùü}}} {italique avec des accents UTF-8 aàâä eéèêë iîï oô uùü} {{gras avec des accents UTF-8 aàâä eéèêë iîï oô uùü}} <code>du code avec des accents UTF-8 aàâä eéèêë iîï oô uùü</code>',
233
+            ],
234
+            50 => [
235
+                0 => 'un_modele_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_https',
236
+                1 => 'Un modele avec des accents UTF-8 aàâä eéèêë iîï oô uùü <modeleinexistant|lien=[avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net]>',
237
+            ],
238
+            51 => [
239
+                0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
240
+                1 => 'Un texte avec des retour
241 241
 a la ligne et meme des
242 242
 
243 243
 paragraphes avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
244
-			],
245
-			52 => [
246
-				0 => 'c0',
247
-				1 => 0,
248
-				2 => 'class',
249
-			],
250
-			53 => [
251
-				0 => 'c1',
252
-				1 => -1,
253
-				2 => 'class',
254
-			],
255
-			54 => [
256
-				0 => 'c1',
257
-				1 => 1,
258
-				2 => 'class',
259
-			],
260
-			55 => [
261
-				0 => 'c2',
262
-				1 => 2,
263
-				2 => 'class',
264
-			],
265
-			56 => [
266
-				0 => 'c3',
267
-				1 => 3,
268
-				2 => 'class',
269
-			],
270
-			57 => [
271
-				0 => 'c4',
272
-				1 => 4,
273
-				2 => 'class',
274
-			],
275
-			58 => [
276
-				0 => 'c5',
277
-				1 => 5,
278
-				2 => 'class',
279
-			],
280
-			59 => [
281
-				0 => 'c6',
282
-				1 => 6,
283
-				2 => 'class',
284
-			],
285
-			60 => [
286
-				0 => 'c7',
287
-				1 => 7,
288
-				2 => 'class',
289
-			],
290
-			61 => [
291
-				0 => 'c10',
292
-				1 => 10,
293
-				2 => 'class',
294
-			],
295
-			62 => [
296
-				0 => 'c20',
297
-				1 => 20,
298
-				2 => 'class',
299
-			],
300
-			63 => [
301
-				0 => 'c30',
302
-				1 => 30,
303
-				2 => 'class',
304
-			],
305
-			64 => [
306
-				0 => 'c50',
307
-				1 => 50,
308
-				2 => 'class',
309
-			],
310
-			65 => [
311
-				0 => 'c100',
312
-				1 => 100,
313
-				2 => 'class',
314
-			],
315
-			66 => [
316
-				0 => 'c1000',
317
-				1 => 1000,
318
-				2 => 'class',
319
-			],
320
-			67 => [
321
-				0 => 'c10000',
322
-				1 => 10000,
323
-				2 => 'class',
324
-			],
325
-			68 => [
326
-				0 => 'i0',
327
-				1 => 0,
328
-				2 => 'id',
329
-			],
330
-			69 => [
331
-				0 => 'i1',
332
-				1 => -1,
333
-				2 => 'id',
334
-			],
335
-			70 => [
336
-				0 => 'i1',
337
-				1 => 1,
338
-				2 => 'id',
339
-			],
340
-			71 => [
341
-				0 => 'i2',
342
-				1 => 2,
343
-				2 => 'id',
344
-			],
345
-			72 => [
346
-				0 => 'i3',
347
-				1 => 3,
348
-				2 => 'id',
349
-			],
350
-			73 => [
351
-				0 => 'i4',
352
-				1 => 4,
353
-				2 => 'id',
354
-			],
355
-			74 => [
356
-				0 => 'i5',
357
-				1 => 5,
358
-				2 => 'id',
359
-			],
360
-			75 => [
361
-				0 => 'i6',
362
-				1 => 6,
363
-				2 => 'id',
364
-			],
365
-			76 => [
366
-				0 => 'i7',
367
-				1 => 7,
368
-				2 => 'id',
369
-			],
370
-			77 => [
371
-				0 => 'i10',
372
-				1 => 10,
373
-				2 => 'id',
374
-			],
375
-			78 => [
376
-				0 => 'i20',
377
-				1 => 20,
378
-				2 => 'id',
379
-			],
380
-			79 => [
381
-				0 => 'i30',
382
-				1 => 30,
383
-				2 => 'id',
384
-			],
385
-			80 => [
386
-				0 => 'i50',
387
-				1 => 50,
388
-				2 => 'id',
389
-			],
390
-			81 => [
391
-				0 => 'i100',
392
-				1 => 100,
393
-				2 => 'id',
394
-			],
395
-			82 => [
396
-				0 => 'i1000',
397
-				1 => 1000,
398
-				2 => 'id',
399
-			],
400
-			83 => [
401
-				0 => 'i10000',
402
-				1 => 10000,
403
-				2 => 'id',
404
-			],
405
-			84 => [
406
-				0 => 'a0',
407
-				1 => 0,
408
-				2 => 'anchor',
409
-			],
410
-			85 => [
411
-				0 => 'a1',
412
-				1 => -1,
413
-				2 => 'anchor',
414
-			],
415
-			86 => [
416
-				0 => 'a1',
417
-				1 => 1,
418
-				2 => 'anchor',
419
-			],
420
-			87 => [
421
-				0 => 'a2',
422
-				1 => 2,
423
-				2 => 'anchor',
424
-			],
425
-			88 => [
426
-				0 => 'a3',
427
-				1 => 3,
428
-				2 => 'anchor',
429
-			],
430
-			89 => [
431
-				0 => 'a4',
432
-				1 => 4,
433
-				2 => 'anchor',
434
-			],
435
-			90 => [
436
-				0 => 'a5',
437
-				1 => 5,
438
-				2 => 'anchor',
439
-			],
440
-			91 => [
441
-				0 => 'a6',
442
-				1 => 6,
443
-				2 => 'anchor',
444
-			],
445
-			92 => [
446
-				0 => 'a7',
447
-				1 => 7,
448
-				2 => 'anchor',
449
-			],
450
-			93 => [
451
-				0 => 'a10',
452
-				1 => 10,
453
-				2 => 'anchor',
454
-			],
455
-			94 => [
456
-				0 => 'a20',
457
-				1 => 20,
458
-				2 => 'anchor',
459
-			],
460
-			95 => [
461
-				0 => 'a30',
462
-				1 => 30,
463
-				2 => 'anchor',
464
-			],
465
-			96 => [
466
-				0 => 'a50',
467
-				1 => 50,
468
-				2 => 'anchor',
469
-			],
470
-			97 => [
471
-				0 => 'a100',
472
-				1 => 100,
473
-				2 => 'anchor',
474
-			],
475
-			98 => [
476
-				0 => 'a1000',
477
-				1 => 1000,
478
-				2 => 'anchor',
479
-			],
480
-			99 => [
481
-				0 => 'a10000',
482
-				1 => 10000,
483
-				2 => 'anchor',
484
-			],
485
-			100 => [
486
-				0 => '0',
487
-				1 => 0,
488
-				2 => 'name',
489
-			],
490
-			101 => [
491
-				0 => '1',
492
-				1 => -1,
493
-				2 => 'name',
494
-			],
495
-			102 => [
496
-				0 => '1',
497
-				1 => 1,
498
-				2 => 'name',
499
-			],
500
-			103 => [
501
-				0 => '2',
502
-				1 => 2,
503
-				2 => 'name',
504
-			],
505
-			104 => [
506
-				0 => '3',
507
-				1 => 3,
508
-				2 => 'name',
509
-			],
510
-			105 => [
511
-				0 => '4',
512
-				1 => 4,
513
-				2 => 'name',
514
-			],
515
-			106 => [
516
-				0 => '5',
517
-				1 => 5,
518
-				2 => 'name',
519
-			],
520
-			107 => [
521
-				0 => '6',
522
-				1 => 6,
523
-				2 => 'name',
524
-			],
525
-			108 => [
526
-				0 => '7',
527
-				1 => 7,
528
-				2 => 'name',
529
-			],
530
-			109 => [
531
-				0 => '10',
532
-				1 => 10,
533
-				2 => 'name',
534
-			],
535
-			110 => [
536
-				0 => '20',
537
-				1 => 20,
538
-				2 => 'name',
539
-			],
540
-			111 => [
541
-				0 => '30',
542
-				1 => 30,
543
-				2 => 'name',
544
-			],
545
-			112 => [
546
-				0 => '50',
547
-				1 => 50,
548
-				2 => 'name',
549
-			],
550
-			113 => [
551
-				0 => '100',
552
-				1 => 100,
553
-				2 => 'name',
554
-			],
555
-			114 => [
556
-				0 => '1000',
557
-				1 => 1000,
558
-				2 => 'name',
559
-			],
560
-			115 => [
561
-				0 => '10000',
562
-				1 => 10000,
563
-				2 => 'name',
564
-			],
565
-			116 => [
566
-				0 => 's0_cfcd208',
567
-				1 => 0,
568
-				2 => '',
569
-				3 => [
570
-					'longueur_mini' => 10,
571
-				],
572
-			],
573
-			117 => [
574
-				0 => 's1_6bb61e3',
575
-				1 => -1,
576
-				2 => '',
577
-				3 => [
578
-					'longueur_mini' => 10,
579
-				],
580
-			],
581
-			118 => [
582
-				0 => 's1_c4ca423',
583
-				1 => 1,
584
-				2 => '',
585
-				3 => [
586
-					'longueur_mini' => 10,
587
-				],
588
-			],
589
-			119 => [
590
-				0 => 's2_c81e728',
591
-				1 => 2,
592
-				2 => '',
593
-				3 => [
594
-					'longueur_mini' => 10,
595
-				],
596
-			],
597
-			120 => [
598
-				0 => 's3_eccbc87',
599
-				1 => 3,
600
-				2 => '',
601
-				3 => [
602
-					'longueur_mini' => 10,
603
-				],
604
-			],
605
-			121 => [
606
-				0 => 's4_a87ff67',
607
-				1 => 4,
608
-				2 => '',
609
-				3 => [
610
-					'longueur_mini' => 10,
611
-				],
612
-			],
613
-			122 => [
614
-				0 => 's5_e4da3b7',
615
-				1 => 5,
616
-				2 => '',
617
-				3 => [
618
-					'longueur_mini' => 10,
619
-				],
620
-			],
621
-			123 => [
622
-				0 => 's6_1679091',
623
-				1 => 6,
624
-				2 => '',
625
-				3 => [
626
-					'longueur_mini' => 10,
627
-				],
628
-			],
629
-			124 => [
630
-				0 => 's7_8f14e45',
631
-				1 => 7,
632
-				2 => '',
633
-				3 => [
634
-					'longueur_mini' => 10,
635
-				],
636
-			],
637
-			125 => [
638
-				0 => 's10_d3d944',
639
-				1 => 10,
640
-				2 => '',
641
-				3 => [
642
-					'longueur_mini' => 10,
643
-				],
644
-			],
645
-			126 => [
646
-				0 => 's20_98f137',
647
-				1 => 20,
648
-				2 => '',
649
-				3 => [
650
-					'longueur_mini' => 10,
651
-				],
652
-			],
653
-			127 => [
654
-				0 => 's30_34173c',
655
-				1 => 30,
656
-				2 => '',
657
-				3 => [
658
-					'longueur_mini' => 10,
659
-				],
660
-			],
661
-			128 => [
662
-				0 => 's50_c0c7c7',
663
-				1 => 50,
664
-				2 => '',
665
-				3 => [
666
-					'longueur_mini' => 10,
667
-				],
668
-			],
669
-			129 => [
670
-				0 => 's100_f8991',
671
-				1 => 100,
672
-				2 => '',
673
-				3 => [
674
-					'longueur_mini' => 10,
675
-				],
676
-			],
677
-			130 => [
678
-				0 => 's1000_a9b7',
679
-				1 => 1000,
680
-				2 => '',
681
-				3 => [
682
-					'longueur_mini' => 10,
683
-				],
684
-			],
685
-			131 => [
686
-				0 => 's10000_b7a',
687
-				1 => 10000,
688
-				2 => '',
689
-				3 => [
690
-					'longueur_mini' => 10,
691
-				],
692
-			],
693
-		];
694
-	}
244
+            ],
245
+            52 => [
246
+                0 => 'c0',
247
+                1 => 0,
248
+                2 => 'class',
249
+            ],
250
+            53 => [
251
+                0 => 'c1',
252
+                1 => -1,
253
+                2 => 'class',
254
+            ],
255
+            54 => [
256
+                0 => 'c1',
257
+                1 => 1,
258
+                2 => 'class',
259
+            ],
260
+            55 => [
261
+                0 => 'c2',
262
+                1 => 2,
263
+                2 => 'class',
264
+            ],
265
+            56 => [
266
+                0 => 'c3',
267
+                1 => 3,
268
+                2 => 'class',
269
+            ],
270
+            57 => [
271
+                0 => 'c4',
272
+                1 => 4,
273
+                2 => 'class',
274
+            ],
275
+            58 => [
276
+                0 => 'c5',
277
+                1 => 5,
278
+                2 => 'class',
279
+            ],
280
+            59 => [
281
+                0 => 'c6',
282
+                1 => 6,
283
+                2 => 'class',
284
+            ],
285
+            60 => [
286
+                0 => 'c7',
287
+                1 => 7,
288
+                2 => 'class',
289
+            ],
290
+            61 => [
291
+                0 => 'c10',
292
+                1 => 10,
293
+                2 => 'class',
294
+            ],
295
+            62 => [
296
+                0 => 'c20',
297
+                1 => 20,
298
+                2 => 'class',
299
+            ],
300
+            63 => [
301
+                0 => 'c30',
302
+                1 => 30,
303
+                2 => 'class',
304
+            ],
305
+            64 => [
306
+                0 => 'c50',
307
+                1 => 50,
308
+                2 => 'class',
309
+            ],
310
+            65 => [
311
+                0 => 'c100',
312
+                1 => 100,
313
+                2 => 'class',
314
+            ],
315
+            66 => [
316
+                0 => 'c1000',
317
+                1 => 1000,
318
+                2 => 'class',
319
+            ],
320
+            67 => [
321
+                0 => 'c10000',
322
+                1 => 10000,
323
+                2 => 'class',
324
+            ],
325
+            68 => [
326
+                0 => 'i0',
327
+                1 => 0,
328
+                2 => 'id',
329
+            ],
330
+            69 => [
331
+                0 => 'i1',
332
+                1 => -1,
333
+                2 => 'id',
334
+            ],
335
+            70 => [
336
+                0 => 'i1',
337
+                1 => 1,
338
+                2 => 'id',
339
+            ],
340
+            71 => [
341
+                0 => 'i2',
342
+                1 => 2,
343
+                2 => 'id',
344
+            ],
345
+            72 => [
346
+                0 => 'i3',
347
+                1 => 3,
348
+                2 => 'id',
349
+            ],
350
+            73 => [
351
+                0 => 'i4',
352
+                1 => 4,
353
+                2 => 'id',
354
+            ],
355
+            74 => [
356
+                0 => 'i5',
357
+                1 => 5,
358
+                2 => 'id',
359
+            ],
360
+            75 => [
361
+                0 => 'i6',
362
+                1 => 6,
363
+                2 => 'id',
364
+            ],
365
+            76 => [
366
+                0 => 'i7',
367
+                1 => 7,
368
+                2 => 'id',
369
+            ],
370
+            77 => [
371
+                0 => 'i10',
372
+                1 => 10,
373
+                2 => 'id',
374
+            ],
375
+            78 => [
376
+                0 => 'i20',
377
+                1 => 20,
378
+                2 => 'id',
379
+            ],
380
+            79 => [
381
+                0 => 'i30',
382
+                1 => 30,
383
+                2 => 'id',
384
+            ],
385
+            80 => [
386
+                0 => 'i50',
387
+                1 => 50,
388
+                2 => 'id',
389
+            ],
390
+            81 => [
391
+                0 => 'i100',
392
+                1 => 100,
393
+                2 => 'id',
394
+            ],
395
+            82 => [
396
+                0 => 'i1000',
397
+                1 => 1000,
398
+                2 => 'id',
399
+            ],
400
+            83 => [
401
+                0 => 'i10000',
402
+                1 => 10000,
403
+                2 => 'id',
404
+            ],
405
+            84 => [
406
+                0 => 'a0',
407
+                1 => 0,
408
+                2 => 'anchor',
409
+            ],
410
+            85 => [
411
+                0 => 'a1',
412
+                1 => -1,
413
+                2 => 'anchor',
414
+            ],
415
+            86 => [
416
+                0 => 'a1',
417
+                1 => 1,
418
+                2 => 'anchor',
419
+            ],
420
+            87 => [
421
+                0 => 'a2',
422
+                1 => 2,
423
+                2 => 'anchor',
424
+            ],
425
+            88 => [
426
+                0 => 'a3',
427
+                1 => 3,
428
+                2 => 'anchor',
429
+            ],
430
+            89 => [
431
+                0 => 'a4',
432
+                1 => 4,
433
+                2 => 'anchor',
434
+            ],
435
+            90 => [
436
+                0 => 'a5',
437
+                1 => 5,
438
+                2 => 'anchor',
439
+            ],
440
+            91 => [
441
+                0 => 'a6',
442
+                1 => 6,
443
+                2 => 'anchor',
444
+            ],
445
+            92 => [
446
+                0 => 'a7',
447
+                1 => 7,
448
+                2 => 'anchor',
449
+            ],
450
+            93 => [
451
+                0 => 'a10',
452
+                1 => 10,
453
+                2 => 'anchor',
454
+            ],
455
+            94 => [
456
+                0 => 'a20',
457
+                1 => 20,
458
+                2 => 'anchor',
459
+            ],
460
+            95 => [
461
+                0 => 'a30',
462
+                1 => 30,
463
+                2 => 'anchor',
464
+            ],
465
+            96 => [
466
+                0 => 'a50',
467
+                1 => 50,
468
+                2 => 'anchor',
469
+            ],
470
+            97 => [
471
+                0 => 'a100',
472
+                1 => 100,
473
+                2 => 'anchor',
474
+            ],
475
+            98 => [
476
+                0 => 'a1000',
477
+                1 => 1000,
478
+                2 => 'anchor',
479
+            ],
480
+            99 => [
481
+                0 => 'a10000',
482
+                1 => 10000,
483
+                2 => 'anchor',
484
+            ],
485
+            100 => [
486
+                0 => '0',
487
+                1 => 0,
488
+                2 => 'name',
489
+            ],
490
+            101 => [
491
+                0 => '1',
492
+                1 => -1,
493
+                2 => 'name',
494
+            ],
495
+            102 => [
496
+                0 => '1',
497
+                1 => 1,
498
+                2 => 'name',
499
+            ],
500
+            103 => [
501
+                0 => '2',
502
+                1 => 2,
503
+                2 => 'name',
504
+            ],
505
+            104 => [
506
+                0 => '3',
507
+                1 => 3,
508
+                2 => 'name',
509
+            ],
510
+            105 => [
511
+                0 => '4',
512
+                1 => 4,
513
+                2 => 'name',
514
+            ],
515
+            106 => [
516
+                0 => '5',
517
+                1 => 5,
518
+                2 => 'name',
519
+            ],
520
+            107 => [
521
+                0 => '6',
522
+                1 => 6,
523
+                2 => 'name',
524
+            ],
525
+            108 => [
526
+                0 => '7',
527
+                1 => 7,
528
+                2 => 'name',
529
+            ],
530
+            109 => [
531
+                0 => '10',
532
+                1 => 10,
533
+                2 => 'name',
534
+            ],
535
+            110 => [
536
+                0 => '20',
537
+                1 => 20,
538
+                2 => 'name',
539
+            ],
540
+            111 => [
541
+                0 => '30',
542
+                1 => 30,
543
+                2 => 'name',
544
+            ],
545
+            112 => [
546
+                0 => '50',
547
+                1 => 50,
548
+                2 => 'name',
549
+            ],
550
+            113 => [
551
+                0 => '100',
552
+                1 => 100,
553
+                2 => 'name',
554
+            ],
555
+            114 => [
556
+                0 => '1000',
557
+                1 => 1000,
558
+                2 => 'name',
559
+            ],
560
+            115 => [
561
+                0 => '10000',
562
+                1 => 10000,
563
+                2 => 'name',
564
+            ],
565
+            116 => [
566
+                0 => 's0_cfcd208',
567
+                1 => 0,
568
+                2 => '',
569
+                3 => [
570
+                    'longueur_mini' => 10,
571
+                ],
572
+            ],
573
+            117 => [
574
+                0 => 's1_6bb61e3',
575
+                1 => -1,
576
+                2 => '',
577
+                3 => [
578
+                    'longueur_mini' => 10,
579
+                ],
580
+            ],
581
+            118 => [
582
+                0 => 's1_c4ca423',
583
+                1 => 1,
584
+                2 => '',
585
+                3 => [
586
+                    'longueur_mini' => 10,
587
+                ],
588
+            ],
589
+            119 => [
590
+                0 => 's2_c81e728',
591
+                1 => 2,
592
+                2 => '',
593
+                3 => [
594
+                    'longueur_mini' => 10,
595
+                ],
596
+            ],
597
+            120 => [
598
+                0 => 's3_eccbc87',
599
+                1 => 3,
600
+                2 => '',
601
+                3 => [
602
+                    'longueur_mini' => 10,
603
+                ],
604
+            ],
605
+            121 => [
606
+                0 => 's4_a87ff67',
607
+                1 => 4,
608
+                2 => '',
609
+                3 => [
610
+                    'longueur_mini' => 10,
611
+                ],
612
+            ],
613
+            122 => [
614
+                0 => 's5_e4da3b7',
615
+                1 => 5,
616
+                2 => '',
617
+                3 => [
618
+                    'longueur_mini' => 10,
619
+                ],
620
+            ],
621
+            123 => [
622
+                0 => 's6_1679091',
623
+                1 => 6,
624
+                2 => '',
625
+                3 => [
626
+                    'longueur_mini' => 10,
627
+                ],
628
+            ],
629
+            124 => [
630
+                0 => 's7_8f14e45',
631
+                1 => 7,
632
+                2 => '',
633
+                3 => [
634
+                    'longueur_mini' => 10,
635
+                ],
636
+            ],
637
+            125 => [
638
+                0 => 's10_d3d944',
639
+                1 => 10,
640
+                2 => '',
641
+                3 => [
642
+                    'longueur_mini' => 10,
643
+                ],
644
+            ],
645
+            126 => [
646
+                0 => 's20_98f137',
647
+                1 => 20,
648
+                2 => '',
649
+                3 => [
650
+                    'longueur_mini' => 10,
651
+                ],
652
+            ],
653
+            127 => [
654
+                0 => 's30_34173c',
655
+                1 => 30,
656
+                2 => '',
657
+                3 => [
658
+                    'longueur_mini' => 10,
659
+                ],
660
+            ],
661
+            128 => [
662
+                0 => 's50_c0c7c7',
663
+                1 => 50,
664
+                2 => '',
665
+                3 => [
666
+                    'longueur_mini' => 10,
667
+                ],
668
+            ],
669
+            129 => [
670
+                0 => 's100_f8991',
671
+                1 => 100,
672
+                2 => '',
673
+                3 => [
674
+                    'longueur_mini' => 10,
675
+                ],
676
+            ],
677
+            130 => [
678
+                0 => 's1000_a9b7',
679
+                1 => 1000,
680
+                2 => '',
681
+                3 => [
682
+                    'longueur_mini' => 10,
683
+                ],
684
+            ],
685
+            131 => [
686
+                0 => 's10000_b7a',
687
+                1 => 10000,
688
+                2 => '',
689
+                3 => [
690
+                    'longueur_mini' => 10,
691
+                ],
692
+            ],
693
+        ];
694
+    }
695 695
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/LabelTest.php 1 patch
Indentation   +73 added lines, -73 removed lines patch added patch discarded remove patch
@@ -20,87 +20,87 @@
 block discarded – undo
20 20
 
21 21
 class LabelTest extends TestCase
22 22
 {
23
-	public static function setUpBeforeClass(): void {
24
-		include_spip('inc/filtres');
25
-		changer_langue('fr');
26
-	}
23
+    public static function setUpBeforeClass(): void {
24
+        include_spip('inc/filtres');
25
+        changer_langue('fr');
26
+    }
27 27
 
28
-	public static function providerlabelNettoyer(): array {
29
-		$list = [
30
-			'bonjour' => 'bonjour',
31
-			'bonjour ' => 'bonjour',
32
-			'bonjour : ' => 'bonjour',
33
-			"bonjour\t:\t" => 'bonjour',
34
-			"bonjour\n:\n" => 'bonjour',
35
-			"boujour\v:\v" => 'boujour',
36
-			"bonjour\u{a0}:\u{a0}" => 'bonjour',
37
-			'bonjour&nbsp;:&nbsp;' => 'bonjour',
38
-			'Ah là là' => 'Ah là là',
39
-		];
40
-		return array_map(null, array_keys($list), array_values($list));
41
-	}
28
+    public static function providerlabelNettoyer(): array {
29
+        $list = [
30
+            'bonjour' => 'bonjour',
31
+            'bonjour ' => 'bonjour',
32
+            'bonjour : ' => 'bonjour',
33
+            "bonjour\t:\t" => 'bonjour',
34
+            "bonjour\n:\n" => 'bonjour',
35
+            "boujour\v:\v" => 'boujour',
36
+            "bonjour\u{a0}:\u{a0}" => 'bonjour',
37
+            'bonjour&nbsp;:&nbsp;' => 'bonjour',
38
+            'Ah là là' => 'Ah là là',
39
+        ];
40
+        return array_map(null, array_keys($list), array_values($list));
41
+    }
42 42
 
43
-	public static function providerlabelNettoyerInitialeMajuscule(): array {
44
-		$list = [
45
-			'bonjour' => 'Bonjour',
46
-			'à l’arrivée : ' => 'À l’arrivée',
47
-			'Êtes-vous prêt·es ? ' => 'Êtes-vous prêt·es ?',
48
-		];
49
-		return array_map(null, array_keys($list), array_values($list));
50
-	}
43
+    public static function providerlabelNettoyerInitialeMajuscule(): array {
44
+        $list = [
45
+            'bonjour' => 'Bonjour',
46
+            'à l’arrivée : ' => 'À l’arrivée',
47
+            'Êtes-vous prêt·es ? ' => 'Êtes-vous prêt·es ?',
48
+        ];
49
+        return array_map(null, array_keys($list), array_values($list));
50
+    }
51 51
 
52
-	public static function providerlabelPonctuer(): array {
53
-		$list = [
54
-			'bonjour' => 'bonjour :',
55
-			'bonjour :' => 'bonjour :',
56
-			'bonjour : ' => 'bonjour :',
57
-			'à la bonne heure : ' => 'à la bonne heure :',
58
-		];
59
-		return array_map(null, array_keys($list), array_values($list));
60
-	}
52
+    public static function providerlabelPonctuer(): array {
53
+        $list = [
54
+            'bonjour' => 'bonjour :',
55
+            'bonjour :' => 'bonjour :',
56
+            'bonjour : ' => 'bonjour :',
57
+            'à la bonne heure : ' => 'à la bonne heure :',
58
+        ];
59
+        return array_map(null, array_keys($list), array_values($list));
60
+    }
61 61
 
62
-	public static function providerlabelPonctuerInitialeMajuscule(): array {
63
-		$list = [
64
-			'bonjour' => 'Bonjour :',
65
-			'à la bonne heure : ' => 'À la bonne heure :',
66
-		];
67
-		return array_map(null, array_keys($list), array_values($list));
68
-	}
62
+    public static function providerlabelPonctuerInitialeMajuscule(): array {
63
+        $list = [
64
+            'bonjour' => 'Bonjour :',
65
+            'à la bonne heure : ' => 'À la bonne heure :',
66
+        ];
67
+        return array_map(null, array_keys($list), array_values($list));
68
+    }
69 69
 
70
-	#[DataProvider('providerLabelNettoyer')]
71
-	public function testLabelNettoyer($source, $expected): void {
72
-		$this->assertEquals($expected, label_nettoyer($source, false));
73
-	}
70
+    #[DataProvider('providerLabelNettoyer')]
71
+    public function testLabelNettoyer($source, $expected): void {
72
+        $this->assertEquals($expected, label_nettoyer($source, false));
73
+    }
74 74
 
75
-	#[Depends('testLabelNettoyer')]
76
-	#[DataProvider('providerLabelNettoyerInitialeMajuscule')]
77
-	public function testLabelNettoyerInitialeMajuscule($source, $expected): void {
78
-		$this->assertEquals($expected, label_nettoyer($source, true));
79
-	}
75
+    #[Depends('testLabelNettoyer')]
76
+    #[DataProvider('providerLabelNettoyerInitialeMajuscule')]
77
+    public function testLabelNettoyerInitialeMajuscule($source, $expected): void {
78
+        $this->assertEquals($expected, label_nettoyer($source, true));
79
+    }
80 80
 
81
-	#[Depends('testLabelNettoyer')]
82
-	#[DataProvider('providerLabelNettoyerInitialeMajuscule')]
83
-	public function testLabelNettoyerInitialeMajusculeParDefaut($source, $expected): void {
84
-		$this->assertEquals($expected, label_nettoyer($source));
85
-	}
81
+    #[Depends('testLabelNettoyer')]
82
+    #[DataProvider('providerLabelNettoyerInitialeMajuscule')]
83
+    public function testLabelNettoyerInitialeMajusculeParDefaut($source, $expected): void {
84
+        $this->assertEquals($expected, label_nettoyer($source));
85
+    }
86 86
 
87
-	#[Depends('testLabelNettoyer')]
88
-	#[DataProvider('providerLabelPonctuer')]
89
-	public function testLabelPonctuer($source, $expected): never {
90
-		// TODO
91
-		$this->markTestSkipped('NIY');
92
-		$this->assertEquals($expected, label_ponctuer($source, false));
93
-	}
87
+    #[Depends('testLabelNettoyer')]
88
+    #[DataProvider('providerLabelPonctuer')]
89
+    public function testLabelPonctuer($source, $expected): never {
90
+        // TODO
91
+        $this->markTestSkipped('NIY');
92
+        $this->assertEquals($expected, label_ponctuer($source, false));
93
+    }
94 94
 
95
-	#[Depends('testLabelNettoyer')]
96
-	#[DataProvider('providerLabelPonctuerInitialeMajuscule')]
97
-	public function testLabelPonctuerInitialeMajuscule($source, $expected): void {
98
-		$this->assertEquals($expected, label_ponctuer($source, true));
99
-	}
95
+    #[Depends('testLabelNettoyer')]
96
+    #[DataProvider('providerLabelPonctuerInitialeMajuscule')]
97
+    public function testLabelPonctuerInitialeMajuscule($source, $expected): void {
98
+        $this->assertEquals($expected, label_ponctuer($source, true));
99
+    }
100 100
 
101
-	#[Depends('testLabelNettoyer')]
102
-	#[DataProvider('providerLabelPonctuerInitialeMajuscule')]
103
-	public function testLabelPonctuerInitialeMajusculeParDefaut($source, $expected): void {
104
-		$this->assertEquals($expected, label_ponctuer($source));
105
-	}
101
+    #[Depends('testLabelNettoyer')]
102
+    #[DataProvider('providerLabelPonctuerInitialeMajuscule')]
103
+    public function testLabelPonctuerInitialeMajusculeParDefaut($source, $expected): void {
104
+        $this->assertEquals($expected, label_ponctuer($source));
105
+    }
106 106
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/ProtegerAmpTest.php 1 patch
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -13,46 +13,46 @@
 block discarded – undo
13 13
 
14 14
 class ProtegerAmpTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerFiltresProtegerAmp')]
21
-	public function testFiltresProtegerAmp($expected, ...$args): void {
22
-		$actual = proteger_amp(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerFiltresProtegerAmp')]
21
+    public function testFiltresProtegerAmp($expected, ...$args): void {
22
+        $actual = proteger_amp(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerFiltresProtegerAmp(): array {
27
-		return [
28
-			0 => [
29
-				0 => '',
30
-				1 => '',
31
-			],
32
-			1 => [
33
-				0 => '0',
34
-				1 => '0',
35
-			],
36
-			2 => [
37
-				0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
-				1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
-			],
40
-			3 => [
41
-				0 => 'Un texte avec des entit&amp;eacute;s &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
42
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
-			],
44
-			4 => [
45
-				0 => 'Un texte sans entites &amp;<>"\'',
46
-				1 => 'Un texte sans entites &<>"\'',
47
-			],
48
-			5 => [
49
-				0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
50
-				1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
51
-			],
52
-			6 => [
53
-				0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
54
-				1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
55
-			],
56
-		];
57
-	}
26
+    public static function providerFiltresProtegerAmp(): array {
27
+        return [
28
+            0 => [
29
+                0 => '',
30
+                1 => '',
31
+            ],
32
+            1 => [
33
+                0 => '0',
34
+                1 => '0',
35
+            ],
36
+            2 => [
37
+                0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
+                1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
+            ],
40
+            3 => [
41
+                0 => 'Un texte avec des entit&amp;eacute;s &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
42
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
+            ],
44
+            4 => [
45
+                0 => 'Un texte sans entites &amp;<>"\'',
46
+                1 => 'Un texte sans entites &<>"\'',
47
+            ],
48
+            5 => [
49
+                0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
50
+                1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
51
+            ],
52
+            6 => [
53
+                0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
54
+                1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
55
+            ],
56
+        ];
57
+    }
58 58
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/AttributHtmlTest.php 1 patch
Indentation   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -13,30 +13,30 @@
 block discarded – undo
13 13
 
14 14
 class AttributHtmlTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('./inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('./inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerAttributHtml')]
21
-	public function testAttributHtml($expected, $texte): void {
22
-		$actual = attribut_html($texte);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerAttributHtml')]
21
+    public function testAttributHtml($expected, $texte): void {
22
+        $actual = attribut_html($texte);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerAttributHtml(): array {
27
-		return [
28
-			0 => [
29
-				'expected' => 'aujourd&#039;hui &gt; &#034;30&#034; &rarr; 50',
30
-				'texte' => 'aujourd\'hui > "30" &rarr; <a href=\'http://www.spip.net\'>50</a>',
31
-			],
32
-			1 => [
33
-				'expected' => 'L&#039;histoire &#039;tr&#232;s&#039; &#034;folle&#034; des m&#233;tas en iitalik',
34
-				'texte' => 'L\'histoire \'tr&egrave;s\' "folle" <strong>des</strong>&nbsp;m&eacute;tas<p>en <em>ii</em>talik</p>',
35
-			],
36
-			2 => [
37
-				'expected' => 'allons &#224; la mer',
38
-				'texte' => 'allons ' . chr(195) . chr(160) . ' la mer', // le a` risque de matcher \s
39
-			],
40
-		];
41
-	}
26
+    public static function providerAttributHtml(): array {
27
+        return [
28
+            0 => [
29
+                'expected' => 'aujourd&#039;hui &gt; &#034;30&#034; &rarr; 50',
30
+                'texte' => 'aujourd\'hui > "30" &rarr; <a href=\'http://www.spip.net\'>50</a>',
31
+            ],
32
+            1 => [
33
+                'expected' => 'L&#039;histoire &#039;tr&#232;s&#039; &#034;folle&#034; des m&#233;tas en iitalik',
34
+                'texte' => 'L\'histoire \'tr&egrave;s\' "folle" <strong>des</strong>&nbsp;m&eacute;tas<p>en <em>ii</em>talik</p>',
35
+            ],
36
+            2 => [
37
+                'expected' => 'allons &#224; la mer',
38
+                'texte' => 'allons ' . chr(195) . chr(160) . ' la mer', // le a` risque de matcher \s
39
+            ],
40
+        ];
41
+    }
42 42
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/CorrigerEntitesHtmlTest.php 1 patch
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -13,68 +13,68 @@
 block discarded – undo
13 13
 
14 14
 class CorrigerEntitesHtmlTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('./inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('./inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerFiltresCorrigerEntitesHtml')]
21
-	public function testFiltresCorrigerEntitesHtml($expected, ...$args): void {
22
-		$actual = corriger_entites_html(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerFiltresCorrigerEntitesHtml')]
21
+    public function testFiltresCorrigerEntitesHtml($expected, ...$args): void {
22
+        $actual = corriger_entites_html(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerFiltresCorrigerEntitesHtml(): array {
27
-		return [
28
-			0 => [
29
-				0 => '',
30
-				1 => '',
31
-			],
32
-			1 => [
33
-				0 => '0',
34
-				1 => '0',
35
-			],
36
-			2 => [
37
-				0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
-				1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
-			],
40
-			3 => [
41
-				0 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
42
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
-			],
44
-			4 => [
45
-				0 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;&amp;lt;&amp;gt;&amp;quot;',
46
-				1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
47
-			],
48
-			5 => [
49
-				0 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
50
-				1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
51
-			],
52
-			6 => [
53
-				0 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
54
-				1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
55
-			],
56
-			7 => [
57
-				0 => 'Un texte sans entites &<>"\'',
58
-				1 => 'Un texte sans entites &<>"\'',
59
-			],
60
-			8 => [
61
-				0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
62
-				1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
63
-			],
64
-			9 => [
65
-				0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
66
-				1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
67
-			],
68
-			10 => [
69
-				0 => 'Un texte avec des retour
26
+    public static function providerFiltresCorrigerEntitesHtml(): array {
27
+        return [
28
+            0 => [
29
+                0 => '',
30
+                1 => '',
31
+            ],
32
+            1 => [
33
+                0 => '0',
34
+                1 => '0',
35
+            ],
36
+            2 => [
37
+                0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
+                1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
+            ],
40
+            3 => [
41
+                0 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
42
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
+            ],
44
+            4 => [
45
+                0 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;&amp;lt;&amp;gt;&amp;quot;',
46
+                1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
47
+            ],
48
+            5 => [
49
+                0 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
50
+                1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
51
+            ],
52
+            6 => [
53
+                0 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
54
+                1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
55
+            ],
56
+            7 => [
57
+                0 => 'Un texte sans entites &<>"\'',
58
+                1 => 'Un texte sans entites &<>"\'',
59
+            ],
60
+            8 => [
61
+                0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
62
+                1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
63
+            ],
64
+            9 => [
65
+                0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
66
+                1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
67
+            ],
68
+            10 => [
69
+                0 => 'Un texte avec des retour
70 70
 a la ligne et meme des
71 71
 
72 72
 paragraphes',
73
-				1 => 'Un texte avec des retour
73
+                1 => 'Un texte avec des retour
74 74
 a la ligne et meme des
75 75
 
76 76
 paragraphes',
77
-			],
78
-		];
79
-	}
77
+            ],
78
+        ];
79
+    }
80 80
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/ExtraireAttributTest.php 1 patch
Indentation   +197 added lines, -197 removed lines patch added patch discarded remove patch
@@ -9,214 +9,214 @@
 block discarded – undo
9 9
 
10 10
 class ExtraireAttributTest extends TestCase
11 11
 {
12
-	public static function setUpBeforeClass(): void {
13
-		find_in_path('inc/filtres.php', '', true);
14
-	}
12
+    public static function setUpBeforeClass(): void {
13
+        find_in_path('inc/filtres.php', '', true);
14
+    }
15 15
 
16
-	#[DataProvider('providerExtraireAttribut')]
17
-	public function testExtraireAttribut($expected, ...$args): void {
18
-		$actual = extraire_attribut(...$args);
19
-		$this->assertSame($expected, $actual);
20
-	}
16
+    #[DataProvider('providerExtraireAttribut')]
17
+    public function testExtraireAttribut($expected, ...$args): void {
18
+        $actual = extraire_attribut(...$args);
19
+        $this->assertSame($expected, $actual);
20
+    }
21 21
 
22
-	public static function providerExtraireAttribut(): array {
23
-		find_in_path('inc/filtres.php', '', true);
24
-		return [
25
-			'img-src' => [
26
-				'expected' => 'sha\'dok',
27
-				'balise' => '<img src="sha\'dok" width="10" height=100 />',
28
-				'attribut' => 'src',
29
-			],
30
-			'img-width' => [
31
-				'expected' => '10',
32
-				'balise' => '<img src="sha\'dok" width="10" height=100 />',
33
-				'attribut' => 'width',
34
-			],
35
-			'img-height' => [
36
-				'expected' => '100',
37
-				'balise' => '<img src="sha\'dok" width="10" height=100 />',
38
-				'attribut' => 'height',
39
-			],
40
-			'img-entites' => [
41
-				'expected' => '"&#38;\'',
42
-				'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
43
-				'attribut' => 'src',
44
-			],
45
-			'img-entites-width' => [
46
-				'expected' => '10',
47
-				'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
48
-				'attribut' => 'width',
49
-			],
50
-			// Dans les crayons on s'etait fait avoir par un titre
51
-			// qui valait "<span class="color:xxx;">Titre</span>
52
-			// et que inserer_attribut detruisait en inserant a tort
53
-			// le style='width:560px' dans l'attribut value="" du <input/>
54
-			// (bon je sais c'est pas clair)
55
-			'attribut imbrique' => [
56
-				'expected' => '<span style="color:red;">ho</span>',
57
-				'balise' => inserer_attribut(
58
-					inserer_attribut('<input />', 'value', '<span style="color:red;">ho</span>'),
59
-					'style',
60
-					'width: 120px;'
61
-				),
62
-				'attribut' => 'value',
63
-			],
64
-			// attribut autodefini
65
-			'attribut autodefini #1' => [
66
-				'expected' => 'checked',
67
-				'balise' => '<input checked />',
68
-				'attribut' => 'checked',
69
-			],
70
-			'attribut autodefini #2' => [
71
-				'expected' => 'checked',
72
-				'balise' => '<input checked/>',
73
-				'attribut' => 'checked',
74
-			],
75
-			'attribut autodefini #3' => [
76
-				'expected' => 'checked',
77
-				'balise' => '<input checked>',
78
-				'attribut' => 'checked',
79
-			],
80
-			// inserer un attribut deja existant
81
-			'remplacement attribut' => [
82
-				'expected' => 'b',
83
-				'balise' => inserer_attribut('<img src="a" width=12>', 'src', 'b'),
84
-				'attribut' => 'src',
85
-			],
86
-			// Ne pas confondre "", "0" et attribut autodefini
87
-			'title=\'\'' => [
88
-				'expected' => '',
89
-				'balise' => '<a title=\'\'>',
90
-				'attribut' => 'title',
91
-			],
92
-			'title=""' => [
93
-				'expected' => '',
94
-				'balise' => '<a title="">',
95
-				'attribut' => 'title',
96
-			],
97
-			'width=0' => [
98
-				'expected' => '0',
99
-				'balise' => '<img width=0>',
100
-				'attribut' => 'width',
101
-			],
102
-			'width=\'0\'' => [
103
-				'expected' => '0',
104
-				'balise' => '<img width=\'0\'>',
105
-				'attribut' => 'width',
106
-			],
107
-			'width="0"' => [
108
-				'expected' => '0',
109
-				'balise' => '<img width="0">',
110
-				'attribut' => 'width',
111
-			],
112
-			// extraire un attribut d'une balise xml:truc :
113
-			'xml:deuxpoints' => [
114
-				'expected' => 'a',
115
-				'balise' => '<chose:truc machin=\'a\'/>',
116
-				'attribut' => 'machin',
117
-			],
118
-			// manipuler des listes de balises
119
-			'liste' => [
120
-				'expected' => ['a', 'b'],
121
-				'balise' => ['<chose machin="a"/>', '<chose machin="b"/>'],
122
-				'attribut' => 'machin',
123
-			],
124
-			// ne pas confondre d’attribut
125
-			'nom attribut partiel #1' => [
126
-				'expected' => null,
127
-				'balise' => '<img mysrc="test">',
128
-				'attribut' => 'src',
129
-			],
130
-			'nom attribut partiel #2' => [
131
-				'expected' => null,
132
-				'balise' => '<img src-alt="test">',
133
-				'attribut' => 'src',
134
-			],
135
-			'nom attribut partiel #3' => [
136
-				'expected' => null,
137
-				'balise' => '<img data-src="test">',
138
-				'attribut' => 'src',
139
-			],
140
-			// Attrapper un attribut d'un tag interne (oui oui)...
141
-			'extraction tag interne' => [
142
-				'expected' => 'image',
143
-				'balise' => '<a href="url"><img src="image" /></a>',
144
-				'attribut' => 'src',
145
-			],
146
-			// autoriser les points et tirets dans les attributs
147
-			'points et tirets #1' => [
148
-				'expected' => '1',
149
-				'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
150
-				'attribut' => 'toto',
151
-			],
152
-			'points et tirets #2' => [
153
-				'expected' => 'yo',
154
-				'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
155
-				'attribut' => 'chose.truc',
156
-			],
157
-			'points et tirets #3' => [
158
-				'expected' => 'ouais',
159
-				'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
160
-				'attribut' => 'machin-lol',
161
-			],
162
-			'tirets et pas tirets #1' => [
163
-				'expected' => 'a',
164
-				'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
165
-				'attribut' => 'toto-a',
166
-			],
167
-			'tirets et pas tirets #2' => [
168
-				'expected' => 'b',
169
-				'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
170
-				'attribut' => 'toto-b',
171
-			],
172
-			'tirets et pas tirets #3' => [
173
-				'expected' => '1',
174
-				'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
175
-				'attribut' => 'toto',
176
-			],
177
-		];
178
-	}
22
+    public static function providerExtraireAttribut(): array {
23
+        find_in_path('inc/filtres.php', '', true);
24
+        return [
25
+            'img-src' => [
26
+                'expected' => 'sha\'dok',
27
+                'balise' => '<img src="sha\'dok" width="10" height=100 />',
28
+                'attribut' => 'src',
29
+            ],
30
+            'img-width' => [
31
+                'expected' => '10',
32
+                'balise' => '<img src="sha\'dok" width="10" height=100 />',
33
+                'attribut' => 'width',
34
+            ],
35
+            'img-height' => [
36
+                'expected' => '100',
37
+                'balise' => '<img src="sha\'dok" width="10" height=100 />',
38
+                'attribut' => 'height',
39
+            ],
40
+            'img-entites' => [
41
+                'expected' => '"&#38;\'',
42
+                'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
43
+                'attribut' => 'src',
44
+            ],
45
+            'img-entites-width' => [
46
+                'expected' => '10',
47
+                'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
48
+                'attribut' => 'width',
49
+            ],
50
+            // Dans les crayons on s'etait fait avoir par un titre
51
+            // qui valait "<span class="color:xxx;">Titre</span>
52
+            // et que inserer_attribut detruisait en inserant a tort
53
+            // le style='width:560px' dans l'attribut value="" du <input/>
54
+            // (bon je sais c'est pas clair)
55
+            'attribut imbrique' => [
56
+                'expected' => '<span style="color:red;">ho</span>',
57
+                'balise' => inserer_attribut(
58
+                    inserer_attribut('<input />', 'value', '<span style="color:red;">ho</span>'),
59
+                    'style',
60
+                    'width: 120px;'
61
+                ),
62
+                'attribut' => 'value',
63
+            ],
64
+            // attribut autodefini
65
+            'attribut autodefini #1' => [
66
+                'expected' => 'checked',
67
+                'balise' => '<input checked />',
68
+                'attribut' => 'checked',
69
+            ],
70
+            'attribut autodefini #2' => [
71
+                'expected' => 'checked',
72
+                'balise' => '<input checked/>',
73
+                'attribut' => 'checked',
74
+            ],
75
+            'attribut autodefini #3' => [
76
+                'expected' => 'checked',
77
+                'balise' => '<input checked>',
78
+                'attribut' => 'checked',
79
+            ],
80
+            // inserer un attribut deja existant
81
+            'remplacement attribut' => [
82
+                'expected' => 'b',
83
+                'balise' => inserer_attribut('<img src="a" width=12>', 'src', 'b'),
84
+                'attribut' => 'src',
85
+            ],
86
+            // Ne pas confondre "", "0" et attribut autodefini
87
+            'title=\'\'' => [
88
+                'expected' => '',
89
+                'balise' => '<a title=\'\'>',
90
+                'attribut' => 'title',
91
+            ],
92
+            'title=""' => [
93
+                'expected' => '',
94
+                'balise' => '<a title="">',
95
+                'attribut' => 'title',
96
+            ],
97
+            'width=0' => [
98
+                'expected' => '0',
99
+                'balise' => '<img width=0>',
100
+                'attribut' => 'width',
101
+            ],
102
+            'width=\'0\'' => [
103
+                'expected' => '0',
104
+                'balise' => '<img width=\'0\'>',
105
+                'attribut' => 'width',
106
+            ],
107
+            'width="0"' => [
108
+                'expected' => '0',
109
+                'balise' => '<img width="0">',
110
+                'attribut' => 'width',
111
+            ],
112
+            // extraire un attribut d'une balise xml:truc :
113
+            'xml:deuxpoints' => [
114
+                'expected' => 'a',
115
+                'balise' => '<chose:truc machin=\'a\'/>',
116
+                'attribut' => 'machin',
117
+            ],
118
+            // manipuler des listes de balises
119
+            'liste' => [
120
+                'expected' => ['a', 'b'],
121
+                'balise' => ['<chose machin="a"/>', '<chose machin="b"/>'],
122
+                'attribut' => 'machin',
123
+            ],
124
+            // ne pas confondre d’attribut
125
+            'nom attribut partiel #1' => [
126
+                'expected' => null,
127
+                'balise' => '<img mysrc="test">',
128
+                'attribut' => 'src',
129
+            ],
130
+            'nom attribut partiel #2' => [
131
+                'expected' => null,
132
+                'balise' => '<img src-alt="test">',
133
+                'attribut' => 'src',
134
+            ],
135
+            'nom attribut partiel #3' => [
136
+                'expected' => null,
137
+                'balise' => '<img data-src="test">',
138
+                'attribut' => 'src',
139
+            ],
140
+            // Attrapper un attribut d'un tag interne (oui oui)...
141
+            'extraction tag interne' => [
142
+                'expected' => 'image',
143
+                'balise' => '<a href="url"><img src="image" /></a>',
144
+                'attribut' => 'src',
145
+            ],
146
+            // autoriser les points et tirets dans les attributs
147
+            'points et tirets #1' => [
148
+                'expected' => '1',
149
+                'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
150
+                'attribut' => 'toto',
151
+            ],
152
+            'points et tirets #2' => [
153
+                'expected' => 'yo',
154
+                'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
155
+                'attribut' => 'chose.truc',
156
+            ],
157
+            'points et tirets #3' => [
158
+                'expected' => 'ouais',
159
+                'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
160
+                'attribut' => 'machin-lol',
161
+            ],
162
+            'tirets et pas tirets #1' => [
163
+                'expected' => 'a',
164
+                'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
165
+                'attribut' => 'toto-a',
166
+            ],
167
+            'tirets et pas tirets #2' => [
168
+                'expected' => 'b',
169
+                'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
170
+                'attribut' => 'toto-b',
171
+            ],
172
+            'tirets et pas tirets #3' => [
173
+                'expected' => '1',
174
+                'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
175
+                'attribut' => 'toto',
176
+            ],
177
+        ];
178
+    }
179 179
 
180
-	public function testExtraireAttributSpecial() {
181
-		$this->assertStringNotContainsString(
182
-			'x',
183
-			inserer_attribut('<a><img src="x"/></a>', 'src', 'y'),
184
-			'erreur remplacement tag interne'
185
-		);
180
+    public function testExtraireAttributSpecial() {
181
+        $this->assertStringNotContainsString(
182
+            'x',
183
+            inserer_attribut('<a><img src="x"/></a>', 'src', 'y'),
184
+            'erreur remplacement tag interne'
185
+        );
186 186
 
187
-		$balise = <<<HTML
187
+        $balise = <<<HTML
188 188
 			<img
189 189
 				src='sites/sunny/local/cache-gd2/648a4f8c1b5f8885415bc80228800d87.png'
190 190
 				width='96' height='96' style='height:96px;width:96px;'
191 191
 				class='format_png' />
192 192
 			HTML;
193
-		$this->assertSame(
194
-			'sites/sunny/local/cache-gd2/648a4f8c1b5f8885415bc80228800d87.png',
195
-			extraire_attribut($balise, 'src'),
196
-			'Une image + src parfois ca casse, va comprendre'
197
-		);
198
-	}
193
+        $this->assertSame(
194
+            'sites/sunny/local/cache-gd2/648a4f8c1b5f8885415bc80228800d87.png',
195
+            extraire_attribut($balise, 'src'),
196
+            'Une image + src parfois ca casse, va comprendre'
197
+        );
198
+    }
199 199
 
200 200
 
201
-	#[DataProvider('providerBase64')]
202
-	public function testBase64($expected, ...$args): void {
203
-		$actual = extraire_attribut(...$args);
204
-		$this->assertSame($expected, $actual);
205
-	}
201
+    #[DataProvider('providerBase64')]
202
+    public function testBase64($expected, ...$args): void {
203
+        $actual = extraire_attribut(...$args);
204
+        $this->assertSame($expected, $actual);
205
+    }
206 206
 
207
-	public static function providerBase64(): array {
208
-		return [
209
-			'base64 #1' => [
210
-				'expected' => 'PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==',
211
-				'balise' => '<div class="base64" title="PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==" ></div>',
212
-				'attribut' => 'title',
213
-			],
214
-			'base64 #2' => [
215
-				'expected' => 'bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+',
216
-				'balise' => '<div class="base64" title="bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+" ></div>',
217
-				'attribut' => 'title',
218
-			],
207
+    public static function providerBase64(): array {
208
+        return [
209
+            'base64 #1' => [
210
+                'expected' => 'PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==',
211
+                'balise' => '<div class="base64" title="PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==" ></div>',
212
+                'attribut' => 'title',
213
+            ],
214
+            'base64 #2' => [
215
+                'expected' => 'bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+',
216
+                'balise' => '<div class="base64" title="bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+" ></div>',
217
+                'attribut' => 'title',
218
+            ],
219 219
 
220
-		];
221
-	}
220
+        ];
221
+    }
222 222
 }
Please login to merge, or discard this patch.
ecrire/tests/Sql/SqlInMysqlTest.php 1 patch
Indentation   +169 added lines, -169 removed lines patch added patch discarded remove patch
@@ -9,186 +9,186 @@
 block discarded – undo
9 9
 
10 10
 class SqlInMysqlTest extends TestCase
11 11
 {
12
-	public static function setUpBeforeClass(): void {
13
-		find_in_path('base/abstract_sql.php', '', true);
14
-	}
12
+    public static function setUpBeforeClass(): void {
13
+        find_in_path('base/abstract_sql.php', '', true);
14
+    }
15 15
 
16
-	protected function setUp(): void {
17
-		if ($this->getSqlType() !== 'mysql') {
18
-			$this->markTestSkipped('Needs a Mysql database');
19
-		}
20
-	}
16
+    protected function setUp(): void {
17
+        if ($this->getSqlType() !== 'mysql') {
18
+            $this->markTestSkipped('Needs a Mysql database');
19
+        }
20
+    }
21 21
 
22
-	#[DataProvider('providerMysqlSqliIn')]
23
-	public function testMysqlSqlIn($expected, ...$args): void {
24
-		$this->assertEquals($expected, sql_in(...$args));
25
-	}
22
+    #[DataProvider('providerMysqlSqliIn')]
23
+    public function testMysqlSqlIn($expected, ...$args): void {
24
+        $this->assertEquals($expected, sql_in(...$args));
25
+    }
26 26
 
27
-	public static function providerMysqlSqliIn(): array {
28
-		return [
29
-			0 =>
30
-			[
31
-				0 => '(id_rubrique  IN (1,2,3))',
32
-				1 => 'id_rubrique',
33
-				2 => '1,2,3',
34
-			],
35
-			1 =>
36
-			[
37
-				0 => '(id_rubrique  IN (1,2,3))',
38
-				1 => 'id_rubrique',
39
-				2 =>
40
-				[
41
-					0 => 1,
42
-					1 => 2,
43
-					2 => 3,
44
-				],
45
-			],
46
-			2 =>
47
-			[
48
-				0 => '(id_rubrique NOT IN (1,2,3))',
49
-				1 => 'id_rubrique',
50
-				2 => '1,2,3',
51
-				3 => 'NOT',
52
-			],
53
-			3 =>
54
-			[
55
-				0 => '(id_rubrique NOT IN (1,2,3))',
56
-				1 => 'id_rubrique',
57
-				2 =>
58
-				[
59
-					0 => 1,
60
-					1 => 2,
61
-					2 => 3,
62
-				],
63
-				3 => 'NOT',
64
-			],
65
-			4 =>
66
-			[
67
-				0 => '0=1',
68
-				1 => 'id_rubrique',
69
-				2 =>
70
-				[],
71
-			],
72
-			5 =>
73
-			[
74
-				0 => '(id_rubrique  IN (\'\',0,\'Un texte avec des <a href=\"http://spip.net\">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net\',\'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;\',\'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;\',\'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;\',\'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;\',\'Un texte sans entites &<>\"\\\'\',\'{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>\',\'Un modele <modeleinexistant|lien=[->https://www.spip.net]>\',\'Un texte avec des retour
27
+    public static function providerMysqlSqliIn(): array {
28
+        return [
29
+            0 =>
30
+            [
31
+                0 => '(id_rubrique  IN (1,2,3))',
32
+                1 => 'id_rubrique',
33
+                2 => '1,2,3',
34
+            ],
35
+            1 =>
36
+            [
37
+                0 => '(id_rubrique  IN (1,2,3))',
38
+                1 => 'id_rubrique',
39
+                2 =>
40
+                [
41
+                    0 => 1,
42
+                    1 => 2,
43
+                    2 => 3,
44
+                ],
45
+            ],
46
+            2 =>
47
+            [
48
+                0 => '(id_rubrique NOT IN (1,2,3))',
49
+                1 => 'id_rubrique',
50
+                2 => '1,2,3',
51
+                3 => 'NOT',
52
+            ],
53
+            3 =>
54
+            [
55
+                0 => '(id_rubrique NOT IN (1,2,3))',
56
+                1 => 'id_rubrique',
57
+                2 =>
58
+                [
59
+                    0 => 1,
60
+                    1 => 2,
61
+                    2 => 3,
62
+                ],
63
+                3 => 'NOT',
64
+            ],
65
+            4 =>
66
+            [
67
+                0 => '0=1',
68
+                1 => 'id_rubrique',
69
+                2 =>
70
+                [],
71
+            ],
72
+            5 =>
73
+            [
74
+                0 => '(id_rubrique  IN (\'\',0,\'Un texte avec des <a href=\"http://spip.net\">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net\',\'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;\',\'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;\',\'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;\',\'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;\',\'Un texte sans entites &<>\"\\\'\',\'{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>\',\'Un modele <modeleinexistant|lien=[->https://www.spip.net]>\',\'Un texte avec des retour
75 75
 a la ligne et meme des
76 76
 
77 77
 paragraphes\'))',
78
-				1 => 'id_rubrique',
79
-				2 =>
80
-				[
81
-					0 => '',
82
-					1 => '0',
83
-					2 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
84
-					3 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
85
-					4 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
86
-					5 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
87
-					6 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
88
-					7 => 'Un texte sans entites &<>"\'',
89
-					8 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
90
-					9 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
91
-					10 => 'Un texte avec des retour
78
+                1 => 'id_rubrique',
79
+                2 =>
80
+                [
81
+                    0 => '',
82
+                    1 => '0',
83
+                    2 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
84
+                    3 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
85
+                    4 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
86
+                    5 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
87
+                    6 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
88
+                    7 => 'Un texte sans entites &<>"\'',
89
+                    8 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
90
+                    9 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
91
+                    10 => 'Un texte avec des retour
92 92
 a la ligne et meme des
93 93
 
94 94
 paragraphes',
95
-				],
96
-			],
97
-			6 =>
98
-			[
99
-				0 => '(id_rubrique  IN (0,-1,1,2,3,4,5,6,7,10,20,30,50,100,1000,10000))',
100
-				1 => 'id_rubrique',
101
-				2 =>
102
-				[
103
-					0 => 0,
104
-					1 => -1,
105
-					2 => 1,
106
-					3 => 2,
107
-					4 => 3,
108
-					5 => 4,
109
-					6 => 5,
110
-					7 => 6,
111
-					8 => 7,
112
-					9 => 10,
113
-					10 => 20,
114
-					11 => 30,
115
-					12 => 50,
116
-					13 => 100,
117
-					14 => 1000,
118
-					15 => 10000,
119
-				],
120
-			],
121
-			7 =>
122
-			[
123
-				0 => '0=1',
124
-				1 => 'id_rubrique',
125
-				2 =>
126
-				[
127
-					0 =>
128
-					[],
129
-					1 =>
130
-					[
131
-						0 => '',
132
-						1 => '0',
133
-						2 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
134
-						3 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
135
-						4 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
136
-						5 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
137
-						6 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
138
-						7 => 'Un texte sans entites &<>"\'',
139
-						8 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
140
-						9 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
141
-						10 => 'Un texte avec des retour
95
+                ],
96
+            ],
97
+            6 =>
98
+            [
99
+                0 => '(id_rubrique  IN (0,-1,1,2,3,4,5,6,7,10,20,30,50,100,1000,10000))',
100
+                1 => 'id_rubrique',
101
+                2 =>
102
+                [
103
+                    0 => 0,
104
+                    1 => -1,
105
+                    2 => 1,
106
+                    3 => 2,
107
+                    4 => 3,
108
+                    5 => 4,
109
+                    6 => 5,
110
+                    7 => 6,
111
+                    8 => 7,
112
+                    9 => 10,
113
+                    10 => 20,
114
+                    11 => 30,
115
+                    12 => 50,
116
+                    13 => 100,
117
+                    14 => 1000,
118
+                    15 => 10000,
119
+                ],
120
+            ],
121
+            7 =>
122
+            [
123
+                0 => '0=1',
124
+                1 => 'id_rubrique',
125
+                2 =>
126
+                [
127
+                    0 =>
128
+                    [],
129
+                    1 =>
130
+                    [
131
+                        0 => '',
132
+                        1 => '0',
133
+                        2 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
134
+                        3 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
135
+                        4 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
136
+                        5 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
137
+                        6 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
138
+                        7 => 'Un texte sans entites &<>"\'',
139
+                        8 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
140
+                        9 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
141
+                        10 => 'Un texte avec des retour
142 142
 a la ligne et meme des
143 143
 
144 144
 paragraphes',
145
-					],
146
-					2 =>
147
-					[
148
-						0 => 0,
149
-						1 => -1,
150
-						2 => 1,
151
-						3 => 2,
152
-						4 => 3,
153
-						5 => 4,
154
-						6 => 5,
155
-						7 => 6,
156
-						8 => 7,
157
-						9 => 10,
158
-						10 => 20,
159
-						11 => 30,
160
-						12 => 50,
161
-						13 => 100,
162
-						14 => 1000,
163
-						15 => 10000,
164
-					],
165
-					3 =>
166
-					[
167
-						0 => true,
168
-						1 => false,
169
-					],
170
-				],
171
-			],
172
-			8 =>
173
-			[
174
-				0 => '(id_rubrique  IN (2))',
175
-				1 => 'id_rubrique',
176
-				2 => 2,
177
-			],
178
-			9 =>
179
-			[
180
-				0 => '(id_rubrique  IN (1,0))',
181
-				1 => 'id_rubrique',
182
-				2 =>
183
-				[
184
-					0 => true,
185
-					1 => false,
186
-				],
187
-			],
188
-		];
189
-	}
145
+                    ],
146
+                    2 =>
147
+                    [
148
+                        0 => 0,
149
+                        1 => -1,
150
+                        2 => 1,
151
+                        3 => 2,
152
+                        4 => 3,
153
+                        5 => 4,
154
+                        6 => 5,
155
+                        7 => 6,
156
+                        8 => 7,
157
+                        9 => 10,
158
+                        10 => 20,
159
+                        11 => 30,
160
+                        12 => 50,
161
+                        13 => 100,
162
+                        14 => 1000,
163
+                        15 => 10000,
164
+                    ],
165
+                    3 =>
166
+                    [
167
+                        0 => true,
168
+                        1 => false,
169
+                    ],
170
+                ],
171
+            ],
172
+            8 =>
173
+            [
174
+                0 => '(id_rubrique  IN (2))',
175
+                1 => 'id_rubrique',
176
+                2 => 2,
177
+            ],
178
+            9 =>
179
+            [
180
+                0 => '(id_rubrique  IN (1,0))',
181
+                1 => 'id_rubrique',
182
+                2 =>
183
+                [
184
+                    0 => true,
185
+                    1 => false,
186
+                ],
187
+            ],
188
+        ];
189
+    }
190 190
 
191
-	private function getSqlType(): string {
192
-		return $GLOBALS['connexions'][0]['type'] ?? '';
193
-	}
191
+    private function getSqlType(): string {
192
+        return $GLOBALS['connexions'][0]['type'] ?? '';
193
+    }
194 194
 }
Please login to merge, or discard this patch.
ecrire/tests/Sql/Objets/TableObjetTest.php 1 patch
Indentation   +86 added lines, -86 removed lines patch added patch discarded remove patch
@@ -13,92 +13,92 @@
 block discarded – undo
13 13
 
14 14
 class TableObjetTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('base/connect_sql.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('base/connect_sql.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerConnectSqlTableObjet')]
21
-	public function testConnectSqlTableObjet($expected, ...$args): void {
22
-		$actual = table_objet(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerConnectSqlTableObjet')]
21
+    public function testConnectSqlTableObjet($expected, ...$args): void {
22
+        $actual = table_objet(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerConnectSqlTableObjet(): array {
27
-		return [[
28
-			0 => 'articles',
29
-			1 => 'articles',
30
-		], [
31
-			0 => 'articles',
32
-			1 => 'article',
33
-		], [
34
-			0 => 'articles',
35
-			1 => 'spip_articles',
36
-		], [
37
-			0 => 'articles',
38
-			1 => 'id_article',
39
-		], [
40
-			0 => 'rubriques',
41
-			1 => 'rubrique',
42
-		], [
43
-			0 => 'rubriques',
44
-			1 => 'spip_rubriques',
45
-		], [
46
-			0 => 'rubriques',
47
-			1 => 'id_rubrique',
48
-		], [
49
-			0 => 'mots',
50
-			1 => 'mot',
51
-		], [
52
-			0 => 'mots',
53
-			1 => 'spip_mots',
54
-		], [
55
-			0 => 'mots',
56
-			1 => 'id_mot',
57
-		], [
58
-			0 => 'groupes_mots',
59
-			1 => 'groupe_mots',
60
-		], [
61
-			0 => 'groupes_mots',
62
-			1 => 'spip_groupes_mots',
63
-		], [
64
-			0 => 'groupes_mots',
65
-			1 => 'id_groupe',
66
-		], [
67
-			0 => 'groupes_mots',
68
-			1 => 'groupes_mot',
69
-		], [
70
-			0 => 'syndic',
71
-			1 => 'syndic',
72
-		], [
73
-			0 => 'syndic',
74
-			1 => 'site',
75
-		], [
76
-			0 => 'syndic',
77
-			1 => 'spip_syndic',
78
-		], [
79
-			0 => 'syndic',
80
-			1 => 'id_syndic',
81
-		], [
82
-			0 => 'syndic_articles',
83
-			1 => 'syndic_article',
84
-		], [
85
-			0 => 'syndic_articles',
86
-			1 => 'spip_syndic_articles',
87
-		], [
88
-			0 => 'syndic_articles',
89
-			1 => 'id_syndic_article',
90
-		], [
91
-			0 => 'syndic_articles',
92
-			1 => 'syndic_article',
93
-		], ['articles', 'article'], ['auteurs', 'auteur'], ['documents', 'document'], ['documents', 'doc'], [
94
-			'documents',
95
-			'img',
96
-		], ['documents', 'img'], ['forums', 'forum'], [
97
-			'groupes_mots',
98
-			'groupe_mots',
99
-		], ['groupes_mots', 'groupe_mot'], ['groupes_mots', 'groupe'], ['mots', 'mot'], ['rubriques', 'rubrique'], [
100
-			'syndic',
101
-			'syndic',
102
-		], ['syndic', 'site'], ['syndic_articles', 'syndic_article'], ['types_documents', 'type_document']];
103
-	}
26
+    public static function providerConnectSqlTableObjet(): array {
27
+        return [[
28
+            0 => 'articles',
29
+            1 => 'articles',
30
+        ], [
31
+            0 => 'articles',
32
+            1 => 'article',
33
+        ], [
34
+            0 => 'articles',
35
+            1 => 'spip_articles',
36
+        ], [
37
+            0 => 'articles',
38
+            1 => 'id_article',
39
+        ], [
40
+            0 => 'rubriques',
41
+            1 => 'rubrique',
42
+        ], [
43
+            0 => 'rubriques',
44
+            1 => 'spip_rubriques',
45
+        ], [
46
+            0 => 'rubriques',
47
+            1 => 'id_rubrique',
48
+        ], [
49
+            0 => 'mots',
50
+            1 => 'mot',
51
+        ], [
52
+            0 => 'mots',
53
+            1 => 'spip_mots',
54
+        ], [
55
+            0 => 'mots',
56
+            1 => 'id_mot',
57
+        ], [
58
+            0 => 'groupes_mots',
59
+            1 => 'groupe_mots',
60
+        ], [
61
+            0 => 'groupes_mots',
62
+            1 => 'spip_groupes_mots',
63
+        ], [
64
+            0 => 'groupes_mots',
65
+            1 => 'id_groupe',
66
+        ], [
67
+            0 => 'groupes_mots',
68
+            1 => 'groupes_mot',
69
+        ], [
70
+            0 => 'syndic',
71
+            1 => 'syndic',
72
+        ], [
73
+            0 => 'syndic',
74
+            1 => 'site',
75
+        ], [
76
+            0 => 'syndic',
77
+            1 => 'spip_syndic',
78
+        ], [
79
+            0 => 'syndic',
80
+            1 => 'id_syndic',
81
+        ], [
82
+            0 => 'syndic_articles',
83
+            1 => 'syndic_article',
84
+        ], [
85
+            0 => 'syndic_articles',
86
+            1 => 'spip_syndic_articles',
87
+        ], [
88
+            0 => 'syndic_articles',
89
+            1 => 'id_syndic_article',
90
+        ], [
91
+            0 => 'syndic_articles',
92
+            1 => 'syndic_article',
93
+        ], ['articles', 'article'], ['auteurs', 'auteur'], ['documents', 'document'], ['documents', 'doc'], [
94
+            'documents',
95
+            'img',
96
+        ], ['documents', 'img'], ['forums', 'forum'], [
97
+            'groupes_mots',
98
+            'groupe_mots',
99
+        ], ['groupes_mots', 'groupe_mot'], ['groupes_mots', 'groupe'], ['mots', 'mot'], ['rubriques', 'rubrique'], [
100
+            'syndic',
101
+            'syndic',
102
+        ], ['syndic', 'site'], ['syndic_articles', 'syndic_article'], ['types_documents', 'type_document']];
103
+    }
104 104
 }
Please login to merge, or discard this patch.
ecrire/tests/Sql/Objets/TableObjetSqlTest.php 1 patch
Indentation   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -13,95 +13,95 @@
 block discarded – undo
13 13
 
14 14
 class TableObjetSqlTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('base/connect_sql.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('base/connect_sql.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerConnectSqlTableObjetSql')]
21
-	public function testConnectSqlTableObjetSql($expected, ...$args): void {
22
-		$actual = table_objet_sql(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerConnectSqlTableObjetSql')]
21
+    public function testConnectSqlTableObjetSql($expected, ...$args): void {
22
+        $actual = table_objet_sql(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerConnectSqlTableObjetSql(): array {
27
-		return [[
28
-			0 => 'spip_articles',
29
-			1 => 'articles',
30
-		], [
31
-			0 => 'spip_articles',
32
-			1 => 'article',
33
-		], [
34
-			0 => 'spip_articles',
35
-			1 => 'spip_articles',
36
-		], [
37
-			0 => 'spip_articles',
38
-			1 => 'id_article',
39
-		], [
40
-			0 => 'spip_rubriques',
41
-			1 => 'rubrique',
42
-		], [
43
-			0 => 'spip_rubriques',
44
-			1 => 'spip_rubriques',
45
-		], [
46
-			0 => 'spip_rubriques',
47
-			1 => 'id_rubrique',
48
-		], [
49
-			0 => 'spip_mots',
50
-			1 => 'mot',
51
-		], [
52
-			0 => 'spip_mots',
53
-			1 => 'spip_mots',
54
-		], [
55
-			0 => 'spip_mots',
56
-			1 => 'id_mot',
57
-		], [
58
-			0 => 'spip_groupes_mots',
59
-			1 => 'groupe_mots',
60
-		], [
61
-			0 => 'spip_groupes_mots',
62
-			1 => 'spip_groupes_mots',
63
-		], [
64
-			0 => 'spip_groupes_mots',
65
-			1 => 'id_groupe',
66
-		], [
67
-			0 => 'spip_groupes_mots',
68
-			1 => 'groupes_mot',
69
-		], [
70
-			0 => 'spip_syndic',
71
-			1 => 'syndic',
72
-		], [
73
-			0 => 'spip_syndic',
74
-			1 => 'site',
75
-		], [
76
-			0 => 'spip_syndic',
77
-			1 => 'spip_syndic',
78
-		], [
79
-			0 => 'spip_syndic',
80
-			1 => 'id_syndic',
81
-		], [
82
-			0 => 'spip_syndic_articles',
83
-			1 => 'syndic_article',
84
-		], [
85
-			0 => 'spip_syndic_articles',
86
-			1 => 'spip_syndic_articles',
87
-		], [
88
-			0 => 'spip_syndic_articles',
89
-			1 => 'id_syndic_article',
90
-		], [
91
-			0 => 'spip_syndic_articles',
92
-			1 => 'syndic_article',
93
-		], ['spip_articles', 'article'], ['spip_auteurs', 'auteur'], ['spip_documents', 'document'], [
94
-			'spip_documents',
95
-			'doc',
96
-		], ['spip_documents', 'img'], ['spip_documents', 'img'], ['spip_forum', 'forum'], [
97
-			'spip_groupes_mots',
98
-			'groupes_mots',
99
-		], ['spip_groupes_mots', 'groupe_mots'], ['spip_groupes_mots', 'groupe_mot'], [
100
-			'spip_groupes_mots',
101
-			'groupe',
102
-		], ['spip_mots', 'mot'], ['spip_rubriques', 'rubrique'], ['spip_syndic', 'syndic'], [
103
-			'spip_syndic',
104
-			'site',
105
-		], ['spip_syndic_articles', 'syndic_article'], ['spip_types_documents', 'type_document']];
106
-	}
26
+    public static function providerConnectSqlTableObjetSql(): array {
27
+        return [[
28
+            0 => 'spip_articles',
29
+            1 => 'articles',
30
+        ], [
31
+            0 => 'spip_articles',
32
+            1 => 'article',
33
+        ], [
34
+            0 => 'spip_articles',
35
+            1 => 'spip_articles',
36
+        ], [
37
+            0 => 'spip_articles',
38
+            1 => 'id_article',
39
+        ], [
40
+            0 => 'spip_rubriques',
41
+            1 => 'rubrique',
42
+        ], [
43
+            0 => 'spip_rubriques',
44
+            1 => 'spip_rubriques',
45
+        ], [
46
+            0 => 'spip_rubriques',
47
+            1 => 'id_rubrique',
48
+        ], [
49
+            0 => 'spip_mots',
50
+            1 => 'mot',
51
+        ], [
52
+            0 => 'spip_mots',
53
+            1 => 'spip_mots',
54
+        ], [
55
+            0 => 'spip_mots',
56
+            1 => 'id_mot',
57
+        ], [
58
+            0 => 'spip_groupes_mots',
59
+            1 => 'groupe_mots',
60
+        ], [
61
+            0 => 'spip_groupes_mots',
62
+            1 => 'spip_groupes_mots',
63
+        ], [
64
+            0 => 'spip_groupes_mots',
65
+            1 => 'id_groupe',
66
+        ], [
67
+            0 => 'spip_groupes_mots',
68
+            1 => 'groupes_mot',
69
+        ], [
70
+            0 => 'spip_syndic',
71
+            1 => 'syndic',
72
+        ], [
73
+            0 => 'spip_syndic',
74
+            1 => 'site',
75
+        ], [
76
+            0 => 'spip_syndic',
77
+            1 => 'spip_syndic',
78
+        ], [
79
+            0 => 'spip_syndic',
80
+            1 => 'id_syndic',
81
+        ], [
82
+            0 => 'spip_syndic_articles',
83
+            1 => 'syndic_article',
84
+        ], [
85
+            0 => 'spip_syndic_articles',
86
+            1 => 'spip_syndic_articles',
87
+        ], [
88
+            0 => 'spip_syndic_articles',
89
+            1 => 'id_syndic_article',
90
+        ], [
91
+            0 => 'spip_syndic_articles',
92
+            1 => 'syndic_article',
93
+        ], ['spip_articles', 'article'], ['spip_auteurs', 'auteur'], ['spip_documents', 'document'], [
94
+            'spip_documents',
95
+            'doc',
96
+        ], ['spip_documents', 'img'], ['spip_documents', 'img'], ['spip_forum', 'forum'], [
97
+            'spip_groupes_mots',
98
+            'groupes_mots',
99
+        ], ['spip_groupes_mots', 'groupe_mots'], ['spip_groupes_mots', 'groupe_mot'], [
100
+            'spip_groupes_mots',
101
+            'groupe',
102
+        ], ['spip_mots', 'mot'], ['spip_rubriques', 'rubrique'], ['spip_syndic', 'syndic'], [
103
+            'spip_syndic',
104
+            'site',
105
+        ], ['spip_syndic_articles', 'syndic_article'], ['spip_types_documents', 'type_document']];
106
+    }
107 107
 }
Please login to merge, or discard this patch.